From d624a6204a68cd9ae75e2fa4cefeadbbec1330e8 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sat, 26 Sep 2015 19:25:54 -0500 Subject: [PATCH 01/10] InstantX to BTX. Pre-chainparams stage. --- .gitignore | 26 +- .travis.yml | 10 +- .tx/config | 8 +- COPYING | 2 +- INSTALL | 8 +- Makefile.am | 46 +- README.md | 36 +- btx.pro | 606 ++ build-aux/m4/bitcoin_qt.m4 | 6 +- configure.ac | 18 +- contrib/dash-qt.pro | 659 -- contrib/dashd.bash-completion | 145 - contrib/debian/README.md | 16 +- contrib/debian/changelog | 8 +- contrib/debian/control | 22 +- contrib/debian/dash-qt.desktop | 12 - contrib/debian/dash-qt.install | 6 - contrib/debian/dash-qt.lintian-overrides | 2 - contrib/debian/dash-qt.protocol | 11 - contrib/debian/dashd.bash-completion | 1 - contrib/debian/dashd.examples | 1 - contrib/debian/dashd.install | 2 - contrib/debian/dashd.lintian-overrides | 2 - contrib/debian/dashd.manpages | 2 - contrib/debian/examples/dash.conf | 115 - contrib/debian/manpages/dash-qt.1 | 203 - contrib/debian/manpages/dash.conf.5 | 89 - contrib/debian/manpages/dashd.1 | 209 - contrib/debian/rules | 6 +- contrib/devtools/README.md | 8 +- contrib/devtools/update-translations.py | 2 +- contrib/gitian-descriptors/README.md | 4 +- contrib/gitian-descriptors/gitian-linux.yml | 12 +- .../gitian-descriptors/gitian-osx-signer.yml | 10 +- contrib/gitian-descriptors/gitian-osx.yml | 14 +- contrib/gitian-descriptors/gitian-rpi2.yml | 12 +- contrib/gitian-descriptors/gitian-win.yml | 14 +- contrib/gitian-downloader/luke-jr-key.pgp | Bin 7322 -> 7319 bytes contrib/init/README.md | 8 +- contrib/init/dashd.conf | 65 - contrib/init/dashd.openrc | 86 - contrib/init/dashd.openrcconf | 27 - contrib/init/dashd.service | 22 - contrib/macdeploy/README.md | 2 +- contrib/macdeploy/background.psd | Bin 163518 -> 163514 bytes contrib/macdeploy/detached-sig-apply.sh | 2 +- contrib/macdeploy/detached-sig-create.sh | 2 +- contrib/macdeploy/fancy.plist | 2 +- contrib/macdeploy/macdeployqtplus | 2 +- contrib/spendfrom/README.md | 4 +- contrib/spendfrom/spendfrom.py | 76 +- doc/Doxyfile | 2 +- doc/README.md | 28 +- doc/README_windows.txt | 12 +- doc/build-osx.md | 40 +- doc/build-unix.md | 28 +- doc/gitian-building.md | 42 +- doc/guide-startmany.md | 18 +- doc/keepass.md | 18 +- doc/masternode-budget.md | 10 +- doc/masternode_conf.md | 8 +- doc/multiwallet-qt.md | 6 +- doc/release-notes.md | 24 +- .../bitcoin/release-notes-0.10.0.md | 2 +- .../bitcoin/release-notes-0.3.20.2.md | 2 +- .../bitcoin/release-notes-0.4.3.md | 4 +- .../bitcoin/release-notes-0.4.4.md | 2 +- .../bitcoin/release-notes-0.5.2.md | 2 +- .../bitcoin/release-notes-0.7.0.md | 2 +- .../bitcoin/release-notes-0.7.1.md | 2 +- .../bitcoin/release-notes-0.7.2.md | 2 +- .../bitcoin/release-notes-0.8.0.md | 4 +- .../bitcoin/release-notes-0.8.2.md | 2 +- .../bitcoin/release-notes-0.9.2.1.md | 2 +- .../bitcoin/release-notes-0.9.2.md | 2 +- .../bitcoin/release-notes-0.9.4.md | 2 +- .../dash/release-notes-0.10.0.md | 718 -- .../dash/release-notes-0.11.0.md | 291 - .../dash/release-notes-0.11.1.md | 49 - .../dash/release-notes-0.11.2.md | 110 - .../dash/release-notes-0.12.0.md | 103 - doc/release-notes/dash/release-notes-0.9.0.md | 538 -- doc/release-process.md | 58 +- doc/tor.md | 30 +- doc/translation_process.md | 28 +- doc/unit-tests.md | 8 +- qa/pull-tester/run-bitcoind-for-test.sh.in | 4 +- qa/pull-tester/tests-config.sh.in | 4 +- qa/rpc-tests/util.py | 22 +- qa/rpc-tests/util.sh | 6 +- share/pixmaps/bitcoin256.png | Bin 6298 -> 6296 bytes share/qt/Info.plist.in | 20 +- share/qt/extract_strings_qt.py | 6 +- share/seeds/generate-seeds.py | 2 +- share/setup.nsi.in | 40 +- src/Makefile.am | 52 +- src/Makefile.qt.include | 98 +- src/Makefile.qttest.include | 28 +- src/Makefile.test.include | 30 +- src/activemasternode.cpp | 4 +- src/activemasternode.h | 4 +- src/base58.h | 2 +- src/bignum.h | 726 +++ src/chainparams.cpp | 177 +- src/chainparams.h | 3 +- src/chainparamsbase.h | 4 +- src/checkpoints.cpp | 2 +- src/clientversion.cpp | 4 +- src/clientversion.h | 8 +- src/coins.h | 2 +- src/compat.h | 2 +- src/compat/glibc_compat.cpp | 2 +- src/compat/glibc_sanity.cpp | 2 +- src/compat/strnlen.cpp | 2 +- src/crypto/common.h | 2 +- src/darksend-relay.h | 2 +- src/darksend.cpp | 12 +- src/darksend.h | 4 +- src/dash-cli-res.rc | 35 - src/dash-cli.cpp | 262 - src/dash-tx.cpp | 633 -- src/dashd-res.rc | 35 - src/dashd.cpp | 195 - src/hash.h | 78 +- src/init.cpp | 40 +- src/instantx.h | 2 +- src/keepass.cpp | 6 +- src/keepass.h | 2 +- src/main.cpp | 6 +- src/main.h | 4 +- src/masternode-budget.cpp | 2 +- src/masternode-budget.h | 4 +- src/masternode-payments.cpp | 2 +- src/masternode-payments.h | 2 +- src/masternode-sync.cpp | 2 +- src/masternode-sync.h | 2 +- src/masternode.cpp | 2 +- src/masternode.h | 2 +- src/masternodeconfig.h | 2 +- src/masternodeman.cpp | 2 +- src/masternodeman.h | 2 +- src/miner.cpp | 20 +- src/net.cpp | 10 +- src/netbase.cpp | 2 +- src/netbase.h | 2 +- src/noui.cpp | 4 +- src/pow.cpp | 2 +- src/primitives/block.cpp | 2 +- src/qt/addressbookpage.cpp | 8 +- src/qt/addresstablemodel.cpp | 4 +- src/qt/askpassphrasedialog.cpp | 6 +- src/qt/bitcoinaddressvalidator.cpp | 4 +- src/qt/bitcoingui.cpp | 30 +- src/qt/bitcoingui.h | 2 +- src/qt/bitcoinunits.cpp | 24 +- src/qt/bitcoinunits.h | 6 +- src/qt/{dash.cpp => btx.cpp} | 38 +- src/qt/{dash.qrc => btx.qrc} | 14 +- src/qt/btx_locale.qrc | 19 + src/qt/btxstrings.cpp | 442 ++ src/qt/clientmodel.cpp | 2 +- src/qt/clientmodel.h | 4 +- src/qt/coincontroldialog.cpp | 4 +- src/qt/darksendconfig.cpp | 6 +- src/qt/dash_locale.qrc | 19 - src/qt/dashstrings.cpp | 442 -- src/qt/editaddressdialog.cpp | 4 +- src/qt/forms/addressbookpage.ui | 10 +- src/qt/forms/helpmessagedialog.ui | 6 +- src/qt/forms/intro.ui | 6 +- src/qt/forms/optionsdialog.ui | 14 +- src/qt/forms/overviewpage.ui | 6 +- src/qt/forms/receivecoinsdialog.ui | 14 +- src/qt/forms/rpcconsole.ui | 6 +- src/qt/forms/sendcoinsdialog.ui | 12 +- src/qt/forms/sendcoinsentry.ui | 16 +- src/qt/forms/signverifymessagedialog.ui | 26 +- src/qt/guiconstants.h | 10 +- src/qt/guiutil.cpp | 34 +- src/qt/guiutil.h | 8 +- src/qt/intro.cpp | 8 +- src/qt/locale/dash_bg.ts | 4530 ------------- src/qt/locale/dash_de.ts | 4539 ------------- src/qt/locale/dash_en.ts | 5759 ----------------- src/qt/locale/dash_es.ts | 4540 ------------- src/qt/locale/dash_fi.ts | 4546 ------------- src/qt/locale/dash_fr.ts | 4535 ------------- src/qt/locale/dash_it.ts | 3848 ----------- src/qt/locale/dash_pl.ts | 4538 ------------- src/qt/locale/dash_pt.ts | 4423 ------------- src/qt/locale/dash_ru.ts | 4539 ------------- src/qt/locale/dash_sk.ts | 3558 ---------- src/qt/locale/dash_sv.ts | 3257 ---------- src/qt/locale/dash_vi.ts | 4390 ------------- src/qt/locale/dash_zh_CN.ts | 3234 --------- src/qt/locale/dash_zh_TW.ts | 3885 ----------- src/qt/macnotificationhandler.mm | 2 +- src/qt/notificator.h | 2 +- src/qt/openuridialog.cpp | 6 +- src/qt/optionsdialog.cpp | 2 +- src/qt/optionsmodel.cpp | 8 +- src/qt/overviewpage.cpp | 2 +- src/qt/paymentserver.cpp | 32 +- src/qt/paymentserver.h | 2 +- src/qt/receiverequestdialog.cpp | 2 +- src/qt/recentrequeststablemodel.h | 2 +- src/qt/res/css/drkblue.css | 8 +- src/qt/res/dash-qt-res.rc | 38 - src/qt/res/icons/add.png | Bin 1456 -> 1279 bytes src/qt/res/icons/address-book.png | Bin 1758 -> 735 bytes src/qt/res/icons/bitcoin.ico | Bin 15086 -> 159472 bytes src/qt/res/icons/bitcoin.png | Bin 6610 -> 60639 bytes src/qt/res/icons/bitcoin_testnet.ico | Bin 15086 -> 159472 bytes src/qt/res/icons/bitcoin_testnet.png | Bin 5535 -> 53063 bytes src/qt/res/icons/clock1.png | Bin 1262 -> 946 bytes src/qt/res/icons/clock2.png | Bin 1262 -> 944 bytes src/qt/res/icons/clock3.png | Bin 1259 -> 946 bytes src/qt/res/icons/clock4.png | Bin 1263 -> 962 bytes src/qt/res/icons/clock5.png | Bin 1258 -> 956 bytes src/qt/res/icons/configure.png | Bin 1292 -> 1055 bytes src/qt/res/icons/connect0_16.png | Bin 1148 -> 702 bytes src/qt/res/icons/connect1_16.png | Bin 1108 -> 612 bytes src/qt/res/icons/connect2_16.png | Bin 1120 -> 623 bytes src/qt/res/icons/connect3_16.png | Bin 1121 -> 625 bytes src/qt/res/icons/connect4_16.png | Bin 1108 -> 673 bytes src/qt/res/icons/debugwindow.png | Bin 5472 -> 5402 bytes src/qt/res/icons/edit.png | Bin 1457 -> 1627 bytes src/qt/res/icons/editcopy.png | Bin 830 -> 879 bytes src/qt/res/icons/editpaste.png | Bin 1439 -> 1458 bytes src/qt/res/icons/export.png | Bin 2429 -> 2148 bytes src/qt/res/icons/filesave.png | Bin 1534 -> 1741 bytes src/qt/res/icons/history.png | Bin 1631 -> 573 bytes src/qt/res/icons/key.png | Bin 1961 -> 1727 bytes src/qt/res/icons/lock_closed.png | Bin 1918 -> 1679 bytes src/qt/res/icons/lock_open.png | Bin 1923 -> 1644 bytes src/qt/res/icons/notsynced.png | Bin 1301 -> 1013 bytes src/qt/res/icons/overview.png | Bin 7304 -> 438 bytes src/qt/res/icons/qrcode.png | Bin 403 -> 237 bytes src/qt/res/icons/quit.png | Bin 2309 -> 2163 bytes src/qt/res/icons/receive.png | Bin 1500 -> 663 bytes src/qt/res/icons/remove.png | Bin 1382 -> 1224 bytes src/qt/res/icons/send.png | Bin 1518 -> 637 bytes src/qt/res/icons/synced.png | Bin 1095 -> 781 bytes src/qt/res/icons/transaction0.png | Bin 598 -> 569 bytes src/qt/res/icons/transaction2.png | Bin 573 -> 413 bytes src/qt/res/icons/transaction_conflicted.png | Bin 500 -> 474 bytes src/qt/res/icons/tx_inout.png | Bin 799 -> 2442 bytes src/qt/res/icons/tx_input.png | Bin 567 -> 2152 bytes src/qt/res/icons/tx_mined.png | Bin 864 -> 3287 bytes src/qt/res/icons/tx_output.png | Bin 587 -> 2129 bytes src/qt/res/icons/unit_dash.png | Bin 478 -> 0 bytes src/qt/res/icons/unit_mdash.png | Bin 511 -> 0 bytes src/qt/res/icons/unit_tdash.png | Bin 496 -> 0 bytes src/qt/res/icons/unit_tmdash.png | Bin 524 -> 0 bytes src/qt/res/icons/unit_tudash.png | Bin 514 -> 0 bytes src/qt/res/icons/unit_udash.png | Bin 500 -> 0 bytes src/qt/res/images/about.png | Bin 29116 -> 60639 bytes src/qt/res/images/dash_logo_horizontal.png | Bin 7194 -> 0 bytes src/qt/res/images/splash.png | Bin 141339 -> 60639 bytes src/qt/res/images/splash_testnet.png | Bin 159154 -> 60639 bytes src/qt/rpcconsole.cpp | 4 +- src/qt/rpcconsole.h | 2 +- src/qt/sendcoinsdialog.cpp | 6 +- src/qt/sendcoinsentry.cpp | 6 +- src/qt/signverifymessagedialog.cpp | 2 +- src/qt/splashscreen.cpp | 8 +- src/qt/test/Makefile | 6 +- src/qt/test/test_main.cpp | 6 +- src/qt/test/uritests.cpp | 22 +- src/qt/transactiondesc.cpp | 4 +- src/qt/transactionrecord.cpp | 8 +- src/qt/utilitydialog.cpp | 10 +- src/qt/walletmodel.cpp | 6 +- src/rpcblockchain.cpp | 8 +- src/rpcclient.cpp | 2 +- src/rpcdump.cpp | 18 +- src/rpcmasternode-budget.cpp | 20 +- src/rpcmasternode.cpp | 14 +- src/rpcmining.cpp | 8 +- src/rpcmisc.cpp | 28 +- src/rpcnet.cpp | 10 +- src/rpcprotocol.cpp | 10 +- src/rpcprotocol.h | 4 +- src/rpcrawtransaction.cpp | 20 +- src/rpcserver.cpp | 30 +- src/rpcserver.h | 2 +- src/rpcwallet.cpp | 94 +- src/script/bitcoinconsensus.h | 2 +- src/spork.h | 2 +- src/test/Makefile | 6 +- src/test/README.md | 4 +- src/test/getarg_tests.cpp | 2 +- src/test/main_tests.cpp | 2 +- src/test/netbase_tests.cpp | 2 +- src/test/test_dash.cpp | 93 - src/timedata.cpp | 2 +- src/uint256.h | 2 +- src/util.cpp | 34 +- src/util.h | 10 +- src/utiltime.cpp | 2 +- src/version.h | 2 +- src/wallet.cpp | 4 +- src/wallet.h | 2 +- src/walletdb.cpp | 4 +- 304 files changed, 3012 insertions(+), 70492 deletions(-) create mode 100644 btx.pro delete mode 100644 contrib/dash-qt.pro delete mode 100644 contrib/dashd.bash-completion delete mode 100644 contrib/debian/dash-qt.desktop delete mode 100644 contrib/debian/dash-qt.install delete mode 100644 contrib/debian/dash-qt.lintian-overrides delete mode 100644 contrib/debian/dash-qt.protocol delete mode 100644 contrib/debian/dashd.bash-completion delete mode 100644 contrib/debian/dashd.examples delete mode 100644 contrib/debian/dashd.install delete mode 100644 contrib/debian/dashd.lintian-overrides delete mode 100644 contrib/debian/dashd.manpages delete mode 100644 contrib/debian/examples/dash.conf delete mode 100644 contrib/debian/manpages/dash-qt.1 delete mode 100644 contrib/debian/manpages/dash.conf.5 delete mode 100644 contrib/debian/manpages/dashd.1 delete mode 100644 contrib/init/dashd.conf delete mode 100644 contrib/init/dashd.openrc delete mode 100644 contrib/init/dashd.openrcconf delete mode 100644 contrib/init/dashd.service delete mode 100644 doc/release-notes/dash/release-notes-0.10.0.md delete mode 100644 doc/release-notes/dash/release-notes-0.11.0.md delete mode 100644 doc/release-notes/dash/release-notes-0.11.1.md delete mode 100644 doc/release-notes/dash/release-notes-0.11.2.md delete mode 100644 doc/release-notes/dash/release-notes-0.12.0.md delete mode 100644 doc/release-notes/dash/release-notes-0.9.0.md create mode 100644 src/bignum.h delete mode 100644 src/dash-cli-res.rc delete mode 100644 src/dash-cli.cpp delete mode 100644 src/dash-tx.cpp delete mode 100644 src/dashd-res.rc delete mode 100644 src/dashd.cpp rename src/qt/{dash.cpp => btx.cpp} (95%) rename src/qt/{dash.qrc => btx.qrc} (93%) create mode 100644 src/qt/btx_locale.qrc create mode 100644 src/qt/btxstrings.cpp delete mode 100644 src/qt/dash_locale.qrc delete mode 100644 src/qt/dashstrings.cpp delete mode 100644 src/qt/locale/dash_bg.ts delete mode 100644 src/qt/locale/dash_de.ts delete mode 100644 src/qt/locale/dash_en.ts delete mode 100644 src/qt/locale/dash_es.ts delete mode 100644 src/qt/locale/dash_fi.ts delete mode 100644 src/qt/locale/dash_fr.ts delete mode 100644 src/qt/locale/dash_it.ts delete mode 100644 src/qt/locale/dash_pl.ts delete mode 100644 src/qt/locale/dash_pt.ts delete mode 100644 src/qt/locale/dash_ru.ts delete mode 100644 src/qt/locale/dash_sk.ts delete mode 100644 src/qt/locale/dash_sv.ts delete mode 100644 src/qt/locale/dash_vi.ts delete mode 100644 src/qt/locale/dash_zh_CN.ts delete mode 100644 src/qt/locale/dash_zh_TW.ts delete mode 100644 src/qt/res/dash-qt-res.rc mode change 100755 => 100644 src/qt/res/icons/bitcoin.ico mode change 100755 => 100644 src/qt/res/icons/bitcoin_testnet.ico delete mode 100644 src/qt/res/icons/unit_dash.png delete mode 100644 src/qt/res/icons/unit_mdash.png delete mode 100644 src/qt/res/icons/unit_tdash.png delete mode 100644 src/qt/res/icons/unit_tmdash.png delete mode 100644 src/qt/res/icons/unit_tudash.png delete mode 100644 src/qt/res/icons/unit_udash.png mode change 100755 => 100644 src/qt/res/images/about.png delete mode 100644 src/qt/res/images/dash_logo_horizontal.png delete mode 100644 src/test/test_dash.cpp diff --git a/.gitignore b/.gitignore index 7557ba990016..61024f19ebf4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,12 +6,12 @@ reset-files.bash *.tar.gz *.exe -src/dash -src/dashd -src/dash-cli -src/dash-tx -src/test/test_dash -src/qt/test/test_dash-qt +src/btx +src/btxd +src/btx-cli +src/btx-tx +src/test/test_btx +src/qt/test/test_btx-qt # autoreconf Makefile.in @@ -34,8 +34,8 @@ config.log config.status configure libtool -src/config/dash-config.h -src/config/dash-config.h.in +src/config/btx-config.h +src/config/btx-config.h.in src/config/stamp-h1 share/setup.nsi share/qt/Info.plist @@ -60,7 +60,7 @@ src/qt/test/moc*.cpp *.o *.o-* *.patch -.dash +.btx *.a *.pb.cc *.pb.h @@ -79,12 +79,12 @@ src/qt/test/moc*.cpp # Compilation and Qt preprocessor part *.qm Makefile -dash-qt -Dash-Qt.app +btx-qt +BTX-Qt.app # Unit-tests Makefile.test -dash-qt_test +btx-qt_test src/test/buildenv.py # Resources cpp @@ -100,7 +100,7 @@ build #lcov *.gcno /*.info -test_dash.coverage/ +test_btx.coverage/ total.coverage/ coverage_percent.txt diff --git a/.travis.yml b/.travis.yml index 6cc24facfd14..16649febb958 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,12 +26,12 @@ matrix: include: - compiler: ": ARM" env: HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" - - compiler: ": dashd" + - compiler: ": btxd" env: HOST=x86_64-unknown-linux-gnu PACKAGES="bc" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat CPPFLAGS=-DDEBUG_LOCKORDER" - compiler: ": No wallet" env: HOST=x86_64-unknown-linux-gnu DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" - - compiler: ": 32-bit + dash" - env: HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" USE_SHELL="/bin/dash" + - compiler: ": 32-bit + btx" + env: HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat" USE_SHELL="/bin/btx" - compiler: ": Cross-Mac" env: HOST=x86_64-apple-darwin11 PACKAGES="gcc-multilib g++-multilib cmake libcap-dev libz-dev libbz2-dev" OSX_SDK=10.7 GOAL="deploy" - compiler: ": Win64" @@ -55,8 +55,8 @@ script: - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export CCACHE_READONLY=1; fi - test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh - ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) - - make distdir PACKAGE=dash VERSION=$HOST - - cd dash-$HOST + - make distdir PACKAGE=btx VERSION=$HOST + - cd btx-$HOST - ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false) - make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false ) - export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib diff --git a/.tx/config b/.tx/config index c8b4b405cf70..0d8e473b6f53 100644 --- a/.tx/config +++ b/.tx/config @@ -1,7 +1,7 @@ [main] -host = https://www.transifex.com +host = https://www.btxcoin.com -[dash.qt-translation-010x] -file_filter = src/qt/locale/dash_.ts -source_file = src/qt/locale/dash_en.ts +[btx.qt-translation-010x] +file_filter = src/qt/locale/btx_.ts +source_file = src/qt/locale/btx_en.ts source_lang = en diff --git a/COPYING b/COPYING index 5826391abf1c..4b44686657c1 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,5 @@ Copyright (c) 2009-2015 Bitcoin Developers -Copyright (c) 2014-2015 Dash Developers +Copyright (c) 2014-2015 BTX Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/INSTALL b/INSTALL index dd9b8408af1f..fea6aacc6ee1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,4 +1,4 @@ -Building Dash +Building BTX Use the autogen script to prepare the build environment. @@ -7,10 +7,10 @@ Use the autogen script to prepare the build environment. make Precompiled binaries are available at github, see -https://github.com/dashproject/dash-binaries +https://github.com/btxproject/btx-binaries Always verify the signatures and checksums. -See doc/build-*.md for instructions on building dashd, +See doc/build-*.md for instructions on building btxd, the intended-for-services, no-graphical-interface, reference -implementation of Dash. +implementation of BTX. diff --git a/Makefile.am b/Makefile.am index e5de3ac81938..8844375be174 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,13 +4,13 @@ SUBDIRS = src GZIP_ENV="-9n" -BITCOIND_BIN=$(top_builddir)/src/dashd$(EXEEXT) -BITCOIN_QT_BIN=$(top_builddir)/src/qt/dash-qt$(EXEEXT) -BITCOIN_CLI_BIN=$(top_builddir)/src/dash-cli$(EXEEXT) +BITCOIND_BIN=$(top_builddir)/src/btxd$(EXEEXT) +BITCOIN_QT_BIN=$(top_builddir)/src/qt/btx-qt$(EXEEXT) +BITCOIN_CLI_BIN=$(top_builddir)/src/btx-cli$(EXEEXT) BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EXEEXT) -OSX_APP=Dash-Qt.app -OSX_DMG=Dash-Qt.dmg +OSX_APP=BTX-Qt.app +OSX_DMG=BTX-Qt.dmg OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns @@ -31,9 +31,9 @@ OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT) $(OSX_FANCY_PLIST) $(OSX_INSTALLER_ICONS) \ $(top_srcdir)/contrib/macdeploy/detached-sig-create.sh COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \ - leveldb_baseline.info test_dash_filtered.info total_coverage.info \ + leveldb_baseline.info test_btx_filtered.info total_coverage.info \ baseline_filtered.info block_test_filtered.info \ - leveldb_baseline_filtered.info test_dash_coverage.info test_dash.info + leveldb_baseline_filtered.info test_btx_coverage.info test_btx.info dist-hook: -$(MAKE) -C $(top_distdir)/src/leveldb clean @@ -75,13 +75,13 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS) $(MKDIR_P) $(@D) $(INSTALL_DATA) $< $@ -$(OSX_APP)/Contents/MacOS/Dash-Qt: $(BITCOIN_QT_BIN) +$(OSX_APP)/Contents/MacOS/BTX-Qt: $(BITCOIN_QT_BIN) $(MKDIR_P) $(@D) STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@ OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \ $(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \ - $(OSX_APP)/Contents/MacOS/Dash-Qt + $(OSX_APP)/Contents/MacOS/BTX-Qt if BUILD_DARWIN $(OSX_DMG): $(OSX_APP_BUILT) $(OSX_PACKAGING) @@ -96,10 +96,10 @@ $(APP_DIST_DIR)/Applications: @rm -f $@ @cd $(@D); $(LN_S) /Applications $(@F) -$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt +$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/BTX-Qt $(OSX_DMG): $(APP_DIST_EXTRAS) - $(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "Dash-Qt" -no-pad -r -apple -o $@ dist + $(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "BTX-Qt" -no-pad -r -apple -o $@ dist $(APP_DIST_DIR)/.background/background.png: $(MKDIR_P) $(@D) @@ -107,7 +107,7 @@ $(APP_DIST_DIR)/.background/background.png: $(APP_DIST_DIR)/.DS_Store: $(INSTALL) $(top_srcdir)/contrib/macdeploy/DS_Store $@ -$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Dash-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) +$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/BTX-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING) INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) -translations-dir=$(QT_TRANSLATION_DIR) -add-qt-tr $(OSX_QT_TRANSLATIONS) -verbose 2 deploydir: $(APP_DIST_EXTRAS) @@ -147,16 +147,16 @@ leveldb_baseline_filtered.info: leveldb_baseline.info baseline_filtered_combined.info: leveldb_baseline_filtered.info baseline_filtered.info $(LCOV) -a leveldb_baseline_filtered.info -a baseline_filtered.info -o $@ -test_dash.info: baseline_filtered_combined.info +test_btx.info: baseline_filtered_combined.info $(MAKE) -C src/ check - $(LCOV) -c -d $(abs_builddir)/src -t test_dash -o $@ + $(LCOV) -c -d $(abs_builddir)/src -t test_btx -o $@ $(LCOV) -z -d $(abs_builddir)/src $(LCOV) -z -d $(abs_builddir)/src/leveldb -test_dash_filtered.info: test_dash.info +test_btx_filtered.info: test_btx.info $(LCOV) -r $< "/usr/include/*" -o $@ -block_test.info: test_dash_filtered.info +block_test.info: test_btx_filtered.info $(MKDIR_P) qa/tmp -@TIMEOUT=15 qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool 0 $(LCOV) -c -d $(abs_builddir)/src --t BitcoinJBlockTest -o $@ @@ -166,13 +166,13 @@ block_test.info: test_dash_filtered.info block_test_filtered.info: block_test.info $(LCOV) -r $< "/usr/include/*" -o $@ -test_dash_coverage.info: baseline_filtered_combined.info test_dash_filtered.info - $(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_dash_filtered.info -o $@ +test_btx_coverage.info: baseline_filtered_combined.info test_btx_filtered.info + $(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_btx_filtered.info -o $@ -total_coverage.info: baseline_filtered_combined.info test_dash_filtered.info block_test_filtered.info - $(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_dash_filtered.info -a block_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt +total_coverage.info: baseline_filtered_combined.info test_btx_filtered.info block_test_filtered.info + $(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_btx_filtered.info -a block_test_filtered.info -o $@ | $(GREP) "\%" | $(AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt -test_dash.coverage/.dirstamp: test_dash_coverage.info +test_btx.coverage/.dirstamp: test_btx_coverage.info $(GENHTML) -s $< -o $(@D) @touch $@ @@ -180,7 +180,7 @@ total.coverage/.dirstamp: total_coverage.info $(GENHTML) -s $< -o $(@D) @touch $@ -cov: test_dash.coverage/.dirstamp total.coverage/.dirstamp +cov: test_btx.coverage/.dirstamp total.coverage/.dirstamp endif @@ -197,4 +197,4 @@ CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER) .INTERMEDIATE: $(COVERAGE_INFO) clean-local: - rm -rf test_dash.coverage/ total.coverage/ $(OSX_APP) + rm -rf test_btx.coverage/ total.coverage/ $(OSX_APP) diff --git a/README.md b/README.md index 3178aa4849da..1069e46ff03b 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,30 @@ -Dash Core staging tree 0.12 +BTX Core staging tree 0.12 =============================== -https://www.dashpay.io +https://www.btxpay.io Copyright (c) 2009-2015 Bitcoin Core Developers -Copyright (c) 2014-2015 Dash Core Developers +Copyright (c) 2014-2015 BTX Core Developers -What is Dash? +What is BTX? ---------------- -Dash is an experimental new digital currency that enables anonymous, instant -payments to anyone, anywhere in the world. Dash uses peer-to-peer technology +BTX is an experimental new digital currency that enables anonymous, instant +payments to anyone, anywhere in the world. BTX uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money -are carried out collectively by the network. Dash Core is the name of open +are carried out collectively by the network. BTX Core is the name of open source software which enables the use of this currency. For more information, as well as an immediately useable, binary version of -the Dash Core software, see https://www.dashpay.io/downloads. +the BTX Core software, see https://www.btxpay.io/downloads. License ------- -Dash Core is released under the terms of the MIT license. See [COPYING](COPYING) for more +BTX Core is released under the terms of the MIT license. See [COPYING](COPYING) for more information or see http://opensource.org/licenses/MIT. Development process @@ -33,7 +33,7 @@ Development process Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready. -If it is a simple/trivial/non-controversial change, then one of the Dash +If it is a simple/trivial/non-controversial change, then one of the BTX development team members simply pulls it. If it is a *more complicated or potentially controversial* change, then the patch @@ -46,8 +46,8 @@ match the project's coding conventions (see [doc/coding.md](doc/coding.md)) or a controversial. The `master` branch is regularly built and tested, but is not guaranteed to be -completely stable. [Tags](https://github.com/dashpay/dash/tags) are created -regularly to indicate new official, stable release versions of Dash. ***TODO*** +completely stable. [Tags](https://github.com/btxpay/btx/tags) are created +regularly to indicate new official, stable release versions of BTX. ***TODO*** Testing ------- @@ -65,20 +65,20 @@ submit new unit tests for old code. Unit tests can be compiled and run (assuming Every pull request is built for both Windows and Linux on a dedicated server, and unit and sanity tests are automatically run. The binaries produced may be used for manual QA testing — a link to them will appear in a comment on the -pull request posted by [DashPullTester](https://github.com/dashpay/PullTester). See https://github.com/TheBlueMatt/test-scripts +pull request posted by [BTXPullTester](https://github.com/btxpay/PullTester). See https://github.com/TheBlueMatt/test-scripts for the build/test scripts. ***TODO*** ### Manual Quality Assurance (QA) Testing Large changes should have a test plan, and should be tested by somebody other than the developer who wrote the code. -See https://github.com/dashpay/QA/ for how to create a test plan. ***TODO*** +See https://github.com/btxpay/QA/ for how to create a test plan. ***TODO*** Translations ------------ Changes to translations as well as new translations can be submitted to -[Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/dash/). +[Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/btx/). Translations are periodically pulled from Transifex and merged into the git repository. See the [translation process](doc/translation_process.md) for details on how this works. @@ -86,7 +86,7 @@ Translations are periodically pulled from Transifex and merged into the git repo **Important**: We do not accept translation changes as GitHub pull requests because the next pull from Transifex would automatically overwrite them again. -Translators should also subscribe to the [mailing list](https://groups.google.com/forum/#!forum/dash-translators). ***TODO*** +Translators should also subscribe to the [mailing list](https://groups.google.com/forum/#!forum/btx-translators). ***TODO*** Development tips and tricks --------------------------- @@ -109,7 +109,7 @@ to see it. **testnet and regtest modes** -Run with the -testnet option to run with "play dash" on the test network, if you +Run with the -testnet option to run with "play btx" on the test network, if you are testing multi-machine code that needs to operate across the internet. If you are testing something that can run on one machine, run with the -regtest option. @@ -118,7 +118,7 @@ that run in -regtest mode. **DEBUG_LOCKORDER** -Dash Core is a multithreaded application, and deadlocks or other multithreading bugs +BTX Core is a multithreaded application, and deadlocks or other multithreading bugs can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks are held, and adds warnings to the debug.log file if inconsistencies are detected. diff --git a/btx.pro b/btx.pro new file mode 100644 index 000000000000..4120f6864a12 --- /dev/null +++ b/btx.pro @@ -0,0 +1,606 @@ +TEMPLATE = app +TARGET = btx +VERSION = 2.7.3.5 +INCLUDEPATH += src \ + src/json \ + src/qt \ + src/secp256k1/include \ + src/leveldb/helpers/memenv + + +INCLUDEPATH += $$PWD/../../../../usr/lib/x86_64-linux-gnu +DEPENDPATH += $$PWD/../../../../usr/lib/x86_64-linux-gnu +LIBS += -lrt + +QT += core gui network widgets printsupport + +DEFINES += ENABLE_WALLET +DEFINES += BOOST_THREAD_USE_LIB BOOST_SPIRIT_THREADSAFE +CONFIG += no_include_pwd +CONFIG += thread + + +greaterThan(QT_MAJOR_VERSION, 4) { + QT += widgets + DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 +} + +linux { + SECP256K1_LIB_PATH = /usr/local/lib + SECP256K1_INCLUDE_PATH = /usr/local/include +} + +# LIBSEC256K1 SUPPORT +QMAKE_CXXFLAGS *= -DUSE_SECP256K1 + +# for boost 1.37, add -mt to the boost libraries +# use: qmake BOOST_LIB_SUFFIX=-mt +# for boost thread win32 with _win32 sufix +# use: BOOST_THREAD_LIB_SUFFIX=_win32-... +# or when linking against a specific BerkelyDB version: BDB_LIB_SUFFIX=-4.8 + +# Dependency library locations can be customized with: +# BOOST_INCLUDE_PATH, BOOST_LIB_PATH, BDB_INCLUDE_PATH, +# BDB_LIB_PATH, OPENSSL_INCLUDE_PATH and OPENSSL_LIB_PATH respectively + +OBJECTS_DIR = build +MOC_DIR = build +UI_DIR = build + +# use: qmake "RELEASE=1" +contains(RELEASE, 1) { + # Mac: compile for maximum compatibility (10.5, 32-bit) + macx:QMAKE_CXXFLAGS += -mmacosx-version-min=10.5 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk + + !windows:!macx { + # Linux: static link + LIBS += -Wl,-Bstatic + } +} + +!win32 { +# for extra security against potential buffer overflows: enable GCCs Stack Smashing Protection +QMAKE_CXXFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 +QMAKE_LFLAGS *= -fstack-protector-all --param ssp-buffer-size=1 +# We need to exclude this for Windows cross compile with MinGW 4.2.x, as it will result in a non-working executable! +# This can be enabled for Windows, when we switch to MinGW >= 4.4.x. +} +# for extra security on Windows: enable ASLR and DEP via GCC linker flags +win32:QMAKE_LFLAGS *= -Wl,--dynamicbase -Wl,--nxcompat -static +win32:QMAKE_LFLAGS += -static-libgcc -static-libstdc++ + +# use: qmake "USE_QRCODE=1" +# libqrencode (http://fukuchi.org/works/qrencode/index.en.html) must be installed for support +contains(USE_QRCODE, 1) { + message(Building with QRCode support) + DEFINES += USE_QRCODE + LIBS += -lqrencode +} + +# use: qmake "USE_UPNP=1" ( enabled by default; default) +# or: qmake "USE_UPNP=0" (disabled by default) +# or: qmake "USE_UPNP=-" (not supported) +# miniupnpc (http://miniupnp.free.fr/files/) must be installed for support +contains(USE_UPNP, -) { + message(Building without UPNP support) +} else { + message(Building with UPNP support) + count(USE_UPNP, 0) { + USE_UPNP=1 + } + DEFINES += USE_UPNP=$$USE_UPNP STATICLIB + INCLUDEPATH += $$MINIUPNPC_INCLUDE_PATH + LIBS += $$join(MINIUPNPC_LIB_PATH,,-L,) -lminiupnpc + win32:LIBS += -liphlpapi +} + +# use: qmake "USE_DBUS=1" or qmake "USE_DBUS=0" +linux:count(USE_DBUS, 0) { + USE_DBUS=1 +} +contains(USE_DBUS, 1) { + message(Building with DBUS (Freedesktop notifications) support) + DEFINES += USE_DBUS + QT += dbus +} + +contains(BITCOIN_NEED_QT_PLUGINS, 1) { + DEFINES += BITCOIN_NEED_QT_PLUGINS + QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets +} + +INCLUDEPATH += src/leveldb/include src/leveldb/helpers +LIBS += $$PWD/src/leveldb/libleveldb.a $$PWD/src/leveldb/libmemenv.a +SOURCES += \ + src/activemasternode.cpp \ + src/addrman.cpp \ + src/alert.cpp \ + src/allocators.cpp \ + src/amount.cpp \ + src/base58.cpp \ + src/bloom.cpp \ + src/chain.cpp \ + src/chainparams.cpp \ + src/chainparamsbase.cpp \ + src/checkpoints.cpp \ + src/clientversion.cpp \ + src/coins.cpp \ + src/compressor.cpp \ + src/core_read.cpp \ + src/core_write.cpp \ + src/crypter.cpp \ + src/darksend-relay.cpp \ + src/darksend.cpp \ + src/db.cpp \ + src/eccryptoverify.cpp \ + src/ecwrapper.cpp \ + src/hash.cpp \ + src/init.cpp \ + src/instantx.cpp \ + src/keepass.cpp \ + src/key.cpp \ + src/keystore.cpp \ + src/leveldbwrapper.cpp \ + src/main.cpp \ + src/masternode-budget.cpp \ + src/masternode-payments.cpp \ + src/masternode-sync.cpp \ + src/masternode.cpp \ + src/masternodeconfig.cpp \ + src/masternodeman.cpp \ + src/merkleblock.cpp \ + src/miner.cpp \ + src/net.cpp \ + src/netbase.cpp \ + src/noui.cpp \ + src/pow.cpp \ + src/protocol.cpp \ + src/pubkey.cpp \ + src/random.cpp \ + src/rest.cpp \ + src/rpcblockchain.cpp \ + src/rpcclient.cpp \ + src/rpcdump.cpp \ + src/rpcmasternode-budget.cpp \ + src/rpcmasternode.cpp \ + src/rpcmining.cpp \ + src/rpcmisc.cpp \ + src/rpcnet.cpp \ + src/rpcprotocol.cpp \ + src/rpcrawtransaction.cpp \ + src/rpcserver.cpp \ + src/rpcwallet.cpp \ + src/spork.cpp \ + src/sync.cpp \ + src/timedata.cpp \ + src/txmempool.cpp \ + src/uint256.cpp \ + src/util.cpp \ + src/utilmoneystr.cpp \ + src/utilstrencodings.cpp \ + src/wallet_ismine.cpp \ + src/wallet.cpp \ + src/walletdb.cpp \ + src/qt/addresstablemodel.cpp \ + src/qt/bitcoinaddressvalidator.cpp \ + src/qt/bitcoinamountfield.cpp \ + src/qt/bitcoingui.cpp \ + src/qt/bitcoinunits.cpp \ + src/qt/clientmodel.cpp \ + src/qt/coincontroldialog.cpp \ + src/qt/coincontroltreewidget.cpp \ + src/qt/csvmodelwriter.cpp \ + src/qt/btx.cpp \ + src/qt/btxstrings.cpp \ + src/qt/editaddressdialog.cpp \ + src/qt/guiutil.cpp \ + src/qt/intro.cpp \ + src/qt/networkstyle.cpp \ + src/qt/notificator.cpp \ + src/qt/openuridialog.cpp \ + src/qt/optionsdialog.cpp \ + src/qt/optionsmodel.cpp \ + src/qt/overviewpage.cpp \ + src/qt/peertablemodel.cpp \ + src/qt/qvalidatedlineedit.cpp \ + src/qt/qvaluecombobox.cpp \ + src/qt/receivecoinsdialog.cpp \ + src/qt/receiverequestdialog.cpp \ + src/qt/recentrequeststablemodel.cpp \ + src/qt/rpcconsole.cpp \ + src/qt/sendcoinsdialog.cpp \ + src/qt/sendcoinsentry.cpp \ + src/qt/signverifymessagedialog.cpp \ + src/qt/splashscreen.cpp \ + src/qt/trafficgraphwidget.cpp \ + src/qt/transactiondesc.cpp \ + src/qt/transactiondescdialog.cpp \ + src/qt/transactionfilterproxy.cpp \ + src/qt/transactionrecord.cpp \ + src/qt/transactiontablemodel.cpp \ + src/qt/transactionview.cpp \ + src/qt/utilitydialog.cpp \ + src/qt/walletframe.cpp \ + src/qt/walletmodel.cpp \ + src/qt/walletmodeltransaction.cpp \ + src/qt/walletview.cpp \ + src/qt/winshutdownmonitor.cpp \ + src/qt/paymentserver.cpp \ + src/qt/paymentrequest.pb.cc \ + src/qt/paymentrequestplus.cpp \ + src/primitives/block.cpp \ + src/primitives/transaction.cpp \ + src/script/bitcoinconsensus.cpp \ + src/script/interpreter.cpp \ + src/script/script_error.cpp \ + src/script/script.cpp \ + src/script/sigcache.cpp \ + src/script/sign.cpp \ + src/script/standard.cpp \ + src/crypto/hmac_sha256.cpp \ + src/crypto/hmac_sha512.cpp \ + src/crypto/rfc6979_hmac_sha256.cpp \ + src/crypto/ripemd160.cpp \ + src/crypto/sha1.cpp \ + src/crypto/sha256.cpp \ + src/crypto/sha512.cpp \ + src/crypto/aes_helper.c \ + src/crypto/blake.c \ + src/crypto/bmw.c \ + src/crypto/cubehash.c \ + src/crypto/echo.c \ + src/crypto/groestl.c \ + src/crypto/jh.c \ + src/crypto/keccak.c \ + src/crypto/luffa.c \ + src/crypto/shavite.c \ + src/crypto/simd.c \ + src/crypto/skein.c \ + src/univalue/univalue_read.cpp \ + src/univalue/univalue_write.cpp \ + src/univalue/univalue.cpp \ + src/utiltime.cpp \ + src/txdb.cpp +!win32 { + # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences + genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a +} else { + # make an educated guess about what the ranlib command is called + isEmpty(QMAKE_RANLIB) { + QMAKE_RANLIB = $$replace(QMAKE_STRIP, strip, ranlib) + } + LIBS += -lshlwapi + genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX TARGET_OS=OS_WINDOWS_CROSSCOMPILE $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libleveldb.a && $$QMAKE_RANLIB $$PWD/src/leveldb/libmemenv.a +} +genleveldb.target = $$PWD/src/leveldb/libleveldb.a +genleveldb.depends = FORCE +PRE_TARGETDEPS += $$PWD/src/leveldb/libleveldb.a +QMAKE_EXTRA_TARGETS += genleveldb +# Gross ugly hack that depends on qmake internals, unfortunately there is no other way to do it. +QMAKE_CLEAN += $$PWD/src/leveldb/libleveldb.a; cd $$PWD/src/leveldb ; $(MAKE) clean + +# regenerate src/build.h +!windows|contains(USE_BUILD_INFO, 1) { + genbuild.depends = FORCE + genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h + genbuild.target = $$OUT_PWD/build/build.h + PRE_TARGETDEPS += $$OUT_PWD/build/build.h + QMAKE_EXTRA_TARGETS += genbuild + DEFINES += HAVE_BUILD_INFO +} + +contains(USE_O3, 1) { + message(Building O3 optimization flag) + QMAKE_CXXFLAGS_RELEASE -= -O2 + QMAKE_CFLAGS_RELEASE -= -O2 + QMAKE_CXXFLAGS += -O3 + QMAKE_CFLAGS += -O3 +} + +*-g++-32 { + message("32 platform, adding -msse2 flag") + + QMAKE_CXXFLAGS += -msse2 + QMAKE_CFLAGS += -msse2 +} + +QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wstack-protector + +# Input +DEPENDPATH += src src/json src/qt +HEADERS += src/alert.h \ + src/activemasternode.h \ + src/addrman.h \ + src/allocators.h \ + src/amount.h \ + src/base58.h \ + src/bloom.h \ + src/chain.h \ + src/chainparams.h \ + src/chainparamsbase.h \ + src/chainparamsseeds.h \ + src/checkpoints.h \ + src/checkqueue.h \ + src/clientversion.h \ + src/coincontrol.h \ + src/coins.h \ + src/compat.h \ + src/compressor.h \ + src/core_io.h \ + src/crypter.h \ + src/darksend-relay.h \ + src/darksend.h \ + src/db.h \ + src/eccryptoverify.h \ + src/ecwrapper.h \ + src/hash.h \ + src/init.h \ + src/instantx.h \ + src/keepass.h \ + src/key.h \ + src/keystore.h \ + src/leveldbwrapper.h \ + src/limitedmap.h \ + src/main.h \ + src/masternode-budget.h \ + src/masternode-payments.h \ + src/masternode-sync.h \ + src/masternode.h \ + src/masternodeconfig.h \ + src/masternodeman.h \ + src/merkleblock.h \ + src/miner.h \ + src/mruset.h \ + src/net.h \ + src/netbase.h \ + src/noui.h \ + src/pow.h \ + src/protocol.h \ + src/pubkey.h \ + src/random.h \ + src/rpcclient.h \ + src/rpcprotocol.h \ + src/rpcserver.h \ + src/serialize.h \ + src/spork.h \ + src/streams.h \ + src/sync.h \ + src/threadsafety.h \ + src/timedata.h \ + src/tinyformat.h \ + src/txmempool.h \ + src/ui_interface.h \ + src/uint256.h \ + src/undo.h \ + src/util.h \ + src/utilmoneystr.h \ + src/utilstrencodings.h \ + src/utiltime.h \ + src/version.h \ + src/wallet_ismine.h \ + src/wallet.h \ + src/walletdb.h \ + src/qt/addressbookpage.h \ + src/qt/addresstablemodel.h \ + src/qt/askpassphrasedialog.h \ + src/qt/bitcoinaddressvalidator.h \ + src/qt/bitcoinamountfield.h \ + src/qt/bitcoingui.h \ + src/qt/bitcoinunits.h \ + src/qt/clientmodel.h \ + src/qt/coincontroldialog.h \ + src/qt/coincontroltreewidget.h \ + src/qt/csvmodelwriter.h \ + src/qt/darksendconfig.h \ + src/qt/editaddressdialog.h \ + src/qt/guiconstants.h \ + src/qt/guiutil.h \ + src/qt/intro.h \ + src/qt/macnotificationhandler.h \ + src/qt/networkstyle.h \ + src/qt/notificator.h \ + src/qt/openuridialog.h \ + src/qt/optionsdialog.h \ + src/qt/optionsmodel.h \ + src/qt/overviewpage.h \ + src/qt/peertablemodel.h \ + src/qt/qvalidatedlineedit.h \ + src/qt/qvaluecombobox.h \ + src/qt/receivecoinsdialog.h \ + src/qt/receiverequestdialog.h \ + src/qt/recentrequeststablemodel.h \ + src/qt/rpcconsole.h \ + src/qt/sendcoinsdialog.h \ + src/qt/sendcoinsentry.h \ + src/qt/signverifymessagedialog.h \ + src/qt/splashscreen.h \ + src/qt/trafficgraphwidget.h \ + src/qt/transactiondesc.h \ + src/qt/transactiondescdialog.h \ + src/qt/transactionfilterproxy.h \ + src/qt/transactionrecord.h \ + src/qt/transactiontablemodel.h \ + src/qt/transactionview.h \ + src/qt/utilitydialog.h \ + src/qt/walletframe.h \ + src/qt/walletmodel.h \ + src/qt/walletmodeltransaction.h \ + src/qt/walletview.h \ + src/qt/winshutdownmonitor.h \ + src/qt/paymentserver.h \ + src/qt/paymentrequest.pb.h \ + src/qt/paymentrequestplus.h \ + src/primitives/block.h \ + src/primitives/transaction.h \ + src/script/bitcoinconsensus.h \ + src/script/interpreter.h \ + src/script/script_error.h \ + src/script/script.h \ + src/script/sigcache.h \ + src/script/sign.h \ + src/script/standard.h \ + src/crypto/common.h \ + src/crypto/hmac_sha256.h \ + src/crypto/hmac_sha512.h \ + src/crypto/rfc6979_hmac_sha256.h \ + src/crypto/ripemd160.h \ + src/crypto/sha1.h \ + src/crypto/sha256.h \ + src/crypto/sha512.h \ + src/crypto/sph_blake.h \ + src/crypto/sph_bmw.h \ + src/crypto/sph_cubehash.h \ + src/crypto/sph_echo.h \ + src/crypto/sph_groestl.h \ + src/crypto/sph_jh.h \ + src/crypto/sph_keccak.h \ + src/crypto/sph_luffa.h \ + src/crypto/sph_shavite.h \ + src/crypto/sph_simd.h \ + src/crypto/sph_skein.h \ + src/crypto/sph_types.h \ + src/univalue/univalue_escapes.h \ + src/univalue/univalue.h \ + src/txdb.h \ + src/compat/sanity.h \ + src/secp256k1/include/secp256k1.h \ + src/bignum.h + +FORMS += \ + src/qt/forms/sendcoinsdialog.ui \ + src/qt/forms/addressbookpage.ui \ + src/qt/forms/askpassphrasedialog.ui \ + src/qt/forms/coincontroldialog.ui \ + src/qt/forms/darksendconfig.ui \ + src/qt/forms/editaddressdialog.ui \ + src/qt/forms/helpmessagedialog.ui \ + src/qt/forms/intro.ui \ + src/qt/forms/openuridialog.ui \ + src/qt/forms/optionsdialog.ui \ + src/qt/forms/overviewpage.ui \ + src/qt/forms/receivecoinsdialog.ui \ + src/qt/forms/receiverequestdialog.ui \ + src/qt/forms/rpcconsole.ui \ + src/qt/forms/sendcoinsentry.ui \ + src/qt/forms/signverifymessagedialog.ui \ + src/qt/forms/transactiondescdialog.ui + +contains(USE_QRCODE, 1) { +HEADERS += src/qt/qrcodedialog.h +SOURCES += src/qt/qrcodedialog.cpp +FORMS += src/qt/forms/qrcodedialog.ui +} + +CODECFORTR = UTF-8 + +# for lrelease/lupdate +# also add new translations to src/qt/bitcoin.qrc under translations/ +TRANSLATIONS = $$files(src/qt/locale/bitcoin_*.ts) + +isEmpty(QMAKE_LRELEASE) { + win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe + else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease +} +isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale +# automatically build translations, so they can be included in resource file +TSQM.name = lrelease ${QMAKE_FILE_IN} +TSQM.input = TRANSLATIONS +TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm +TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} +TSQM.CONFIG = no_link +QMAKE_EXTRA_COMPILERS += TSQM + + +# platform specific defaults, if not overridden on command line +isEmpty(BOOST_LIB_SUFFIX) { + macx:BOOST_LIB_SUFFIX = -mt + windows:BOOST_LIB_SUFFIX = -mt +} + +isEmpty(BOOST_THREAD_LIB_SUFFIX) { + win32:BOOST_THREAD_LIB_SUFFIX = _win32$$BOOST_LIB_SUFFIX + else:BOOST_THREAD_LIB_SUFFIX = $$BOOST_LIB_SUFFIX +} + +isEmpty(BDB_LIB_PATH) { + macx:BDB_LIB_PATH = /opt/local/lib/db48 +} + +isEmpty(BDB_LIB_SUFFIX) { + macx:BDB_LIB_SUFFIX = -4.8 +} + +isEmpty(BDB_INCLUDE_PATH) { + macx:BDB_INCLUDE_PATH = /opt/local/include/db48 +} + +isEmpty(BOOST_LIB_PATH) { + macx:BOOST_LIB_PATH = /opt/local/lib +} + +isEmpty(BOOST_INCLUDE_PATH) { + macx:BOOST_INCLUDE_PATH = /opt/local/include +} + +windows:DEFINES += WIN32 +windows:RC_FILE = src/qt/res/bitcoin-qt.rc + +windows:!contains(MINGW_THREAD_BUGFIX, 0) { + # At least qmake's win32-g++-cross profile is missing the -lmingwthrd + # thread-safety flag. GCC has -mthreads to enable this, but it doesn't + # work with static linking. -lmingwthrd must come BEFORE -lmingw, so + # it is prepended to QMAKE_LIBS_QT_ENTRY. + # It can be turned off with MINGW_THREAD_BUGFIX=0, just in case it causes + # any problems on some untested qmake profile now or in the future. + DEFINES += _MT BOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN + QMAKE_LIBS_QT_ENTRY = -lmingwthrd $$QMAKE_LIBS_QT_ENTRY +} + +macx:HEADERS += src/qt/macdockiconhandler.h +macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm +macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit +macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 +macx:ICON = src/qt/res/icons/bitcoin.icns +macx:TARGET = "Crave-Qt" +macx:QMAKE_CFLAGS_THREAD += -pthread +macx:QMAKE_LFLAGS_THREAD += -pthread +macx:QMAKE_CXXFLAGS_THREAD += -pthread +macx:QMAKE_INFO_PLIST = share/qt/Info.plist + +# Set libraries and includes at end, to use platform-defined defaults if not overridden +INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH +INCLUDEPATH += $$SECP256K1_INCLUDE_PATH +LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,) +LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX +LIBS += $$join(SECP256K1_LIB_PATH,,-L,) +# -lgdi32 has to happen after -lcrypto (see #681) +windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32 + +LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX +windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX + +contains(RELEASE, 1) { + !windows:!macx { + # Linux: turn dynamic linking back on for c/c++ runtime libraries + LIBS += -Wl,-Bdynamic + } +} + +!windows:!macx { + DEFINES += LINUX + LIBS += -lrt -ldl +} + +system($$QMAKE_LRELEASE -silent $$_PRO_FILE_) + +RESOURCES += \ + src/qt/btx_locale.qrc \ + src/qt/btx.qrc + +OBJECTIVE_SOURCES += \ + src/qt/macnotificationhandler.mm + +OTHER_FILES += \ + src/qt/paymentrequest.proto + + diff --git a/build-aux/m4/bitcoin_qt.m4 b/build-aux/m4/bitcoin_qt.m4 index d709c78533d3..719961f70547 100644 --- a/build-aux/m4/bitcoin_qt.m4 +++ b/build-aux/m4/bitcoin_qt.m4 @@ -3,7 +3,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit. AC_DEFUN([BITCOIN_QT_FAIL],[ if test "x$bitcoin_qt_want_version" = "xauto" && test x$bitcoin_qt_force != xyes; then if test x$bitcoin_enable_qt != xno; then - AC_MSG_WARN([$1; dash-qt frontend will not be built]) + AC_MSG_WARN([$1; btx-qt frontend will not be built]) fi bitcoin_enable_qt=no else @@ -49,7 +49,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[ dnl enable qt support AC_ARG_WITH([gui], [AS_HELP_STRING([--with-gui@<:@=no|qt4|qt5|auto@:>@], - [build dash-qt GUI (default=auto, qt4 tried first)])], + [build btx-qt GUI (default=auto, qt4 tried first)])], [ bitcoin_qt_want_version=$withval if test x$bitcoin_qt_want_version = xyes; then @@ -182,7 +182,7 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[ dnl enable qt support - AC_MSG_CHECKING(whether to build Dash Core GUI) + AC_MSG_CHECKING(whether to build BTX Core GUI) BITCOIN_QT_CHECK([ bitcoin_enable_qt=yes bitcoin_enable_qt_test=yes diff --git a/configure.ac b/configure.ac index 5f647caad060..be0f354c35ba 100644 --- a/configure.ac +++ b/configure.ac @@ -6,9 +6,9 @@ define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_BUILD, 53) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2015) -AC_INIT([Dash Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@dashpay.io],[dash]) +AC_INIT([BTX Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@btxpay.io],[btx]) AC_CONFIG_SRCDIR([src/main.cpp]) -AC_CONFIG_HEADERS([src/config/dash-config.h]) +AC_CONFIG_HEADERS([src/config/btx-config.h]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([build-aux/m4]) @@ -173,7 +173,7 @@ CPPFLAGS="$CPPFLAGS -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_ AC_ARG_WITH([utils], [AS_HELP_STRING([--with-utils], - [build dash-cli dash-tx (default=yes)])], + [build btx-cli btx-tx (default=yes)])], [build_bitcoin_utils=$withval], [build_bitcoin_utils=yes]) @@ -185,7 +185,7 @@ AC_ARG_WITH([libs], AC_ARG_WITH([daemon], [AS_HELP_STRING([--with-daemon], - [build dashd daemon (default=yes)])], + [build btxd daemon (default=yes)])], [build_bitcoind=$withval], [build_bitcoind=yes]) @@ -363,7 +363,7 @@ AC_C_BIGENDIAN([AC_MSG_ERROR("Big Endian not supported")]) dnl Check for pthread compile/link requirements AX_PTHREAD -# The following macro will add the necessary defines to dash-config.h, but +# The following macro will add the necessary defines to btx-config.h, but # they also need to be passed down to any subprojects. Pull the results out of # the cache and add them to CPPFLAGS. AC_SYS_LARGEFILE @@ -719,11 +719,11 @@ LIBS="$LIBS_TEMP" BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path) -AC_MSG_CHECKING([whether to build dashd]) +AC_MSG_CHECKING([whether to build btxd]) AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes]) AC_MSG_RESULT($build_bitcoind) -AC_MSG_CHECKING([whether to build utils (dash-cli dash-tx)]) +AC_MSG_CHECKING([whether to build utils (btx-cli btx-tx)]) AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes]) AC_MSG_RESULT($build_bitcoin_utils) @@ -823,7 +823,7 @@ if test x$bitcoin_enable_qt != xno; then AC_MSG_WARN("xgettext is required to update qt translations") fi - AC_MSG_CHECKING([whether to build test_dash-qt]) + AC_MSG_CHECKING([whether to build test_btx-qt]) if test x$use_tests$bitcoin_enable_qt_test = xyesyes; then AC_MSG_RESULT([yes]) BUILD_TEST_QT="test" @@ -832,7 +832,7 @@ if test x$bitcoin_enable_qt != xno; then fi fi -AC_MSG_CHECKING([whether to build test_dash]) +AC_MSG_CHECKING([whether to build test_btx]) if test x$use_tests = xyes; then AC_MSG_RESULT([yes]) BUILD_TEST="test" diff --git a/contrib/dash-qt.pro b/contrib/dash-qt.pro deleted file mode 100644 index 4c73679bd23d..000000000000 --- a/contrib/dash-qt.pro +++ /dev/null @@ -1,659 +0,0 @@ -###################################################################### -# Automatically generated by qmake (2.01a) ?? ??? 23 17:50:54 2015 -###################################################################### - -DEFINES += ENABLE_WALLET - -TEMPLATE = app -TARGET = -DEPENDPATH += . \ - src \ - src/compat \ - src/config \ - src/crypto \ - src/json \ - src/obj \ - src/primitives \ - src/qt \ - src/script \ - src/test \ - src/univalue \ - src/leveldb/db \ - src/leveldb/issues \ - src/leveldb/port \ - src/leveldb/table \ - src/leveldb/util \ - src/qt/forms \ - src/qt/locale \ - src/qt/test \ - src/secp256k1/include \ - src/secp256k1/src \ - src/test/data \ - src/leveldb/doc/bench \ - src/leveldb/helpers/memenv \ - src/leveldb/include/leveldb \ - src/leveldb/port/win \ - src/secp256k1/src/java -INCLUDEPATH += . \ - src \ - src/config \ - src/leveldb/port/win \ - src/crypto \ - src/primitives \ - src/script \ - src/obj \ - src/univalue \ - src/json \ - src/qt \ - src/qt/forms \ - src/compat \ - src/secp256k1/include \ - src/leveldb/helpers/memenv \ - src/test/data \ - src/test \ - src/qt/test \ - src/secp256k1/src \ - src/secp256k1/src/java - -# Input -HEADERS += src/activemasternode.h \ - src/addrman.h \ - src/alert.h \ - src/allocators.h \ - src/amount.h \ - src/base58.h \ - src/bloom.h \ - src/chain.h \ - src/chainparams.h \ - src/chainparamsbase.h \ - src/chainparamsseeds.h \ - src/checkpoints.h \ - src/checkqueue.h \ - src/clientversion.h \ - src/coincontrol.h \ - src/coins.h \ - src/compat.h \ - src/compressor.h \ - src/core_io.h \ - src/crypter.h \ - src/darksend-relay.h \ - src/darksend.h \ - src/dash-config.h \ - src/db.h \ - src/eccryptoverify.h \ - src/ecwrapper.h \ - src/hash.h \ - src/init.h \ - src/instantx.h \ - src/keepass.h \ - src/key.h \ - src/keystore.h \ - src/leveldbwrapper.h \ - src/limitedmap.h \ - src/main.h \ - src/masternode-budget.h \ - src/masternode-payments.h \ - src/masternode-sync.h \ - src/masternode.h \ - src/masternodeconfig.h \ - src/masternodeman.h \ - src/merkleblock.h \ - src/miner.h \ - src/mruset.h \ - src/net.h \ - src/netbase.h \ - src/noui.h \ - src/pow.h \ - src/protocol.h \ - src/pubkey.h \ - src/random.h \ - src/rpcclient.h \ - src/rpcprotocol.h \ - src/rpcserver.h \ - src/serialize.h \ - src/spork.h \ - src/streams.h \ - src/sync.h \ - src/threadsafety.h \ - src/timedata.h \ - src/tinyformat.h \ - src/txdb.h \ - src/txmempool.h \ - src/ui_interface.h \ - src/uint256.h \ - src/undo.h \ - src/util.h \ - src/utilmoneystr.h \ - src/utilstrencodings.h \ - src/utiltime.h \ - src/version.h \ - src/wallet.h \ - src/wallet_ismine.h \ - src/walletdb.h \ - src/compat/sanity.h \ - src/config/dash-config.h \ - src/crypto/common.h \ - src/crypto/hmac_sha256.h \ - src/crypto/hmac_sha512.h \ - src/crypto/rfc6979_hmac_sha256.h \ - src/crypto/ripemd160.h \ - src/crypto/sha1.h \ - src/crypto/sha256.h \ - src/crypto/sha512.h \ - src/crypto/sph_blake.h \ - src/crypto/sph_bmw.h \ - src/crypto/sph_cubehash.h \ - src/crypto/sph_echo.h \ - src/crypto/sph_groestl.h \ - src/crypto/sph_jh.h \ - src/crypto/sph_keccak.h \ - src/crypto/sph_luffa.h \ - src/crypto/sph_shavite.h \ - src/crypto/sph_simd.h \ - src/crypto/sph_skein.h \ - src/crypto/sph_types.h \ - src/json/json_spirit.h \ - src/json/json_spirit_error_position.h \ - src/json/json_spirit_reader.h \ - src/json/json_spirit_reader_template.h \ - src/json/json_spirit_stream_reader.h \ - src/json/json_spirit_utils.h \ - src/json/json_spirit_value.h \ - src/json/json_spirit_writer.h \ - src/json/json_spirit_writer_template.h \ - src/obj/build.h \ - src/primitives/block.h \ - src/primitives/transaction.h \ - src/qt/addressbookpage.h \ - src/qt/addresstablemodel.h \ - src/qt/askpassphrasedialog.h \ - src/qt/bitcoinaddressvalidator.h \ - src/qt/bitcoinamountfield.h \ - src/qt/bitcoingui.h \ - src/qt/bitcoinunits.h \ - src/qt/clientmodel.h \ - src/qt/coincontroldialog.h \ - src/qt/coincontroltreewidget.h \ - src/qt/csvmodelwriter.h \ - src/qt/darksendconfig.h \ - src/qt/editaddressdialog.h \ - src/qt/guiconstants.h \ - src/qt/guiutil.h \ - src/qt/intro.h \ - src/qt/macdockiconhandler.h \ - src/qt/macnotificationhandler.h \ - src/qt/networkstyle.h \ - src/qt/notificator.h \ - src/qt/openuridialog.h \ - src/qt/optionsdialog.h \ - src/qt/optionsmodel.h \ - src/qt/overviewpage.h \ - src/qt/paymentrequest.pb.h \ - src/qt/paymentrequestplus.h \ - src/qt/paymentserver.h \ - src/qt/peertablemodel.h \ - src/qt/qvalidatedlineedit.h \ - src/qt/qvaluecombobox.h \ - src/qt/receivecoinsdialog.h \ - src/qt/receiverequestdialog.h \ - src/qt/recentrequeststablemodel.h \ - src/qt/rpcconsole.h \ - src/qt/sendcoinsdialog.h \ - src/qt/sendcoinsentry.h \ - src/qt/signverifymessagedialog.h \ - src/qt/splashscreen.h \ - src/qt/trafficgraphwidget.h \ - src/qt/transactiondesc.h \ - src/qt/transactiondescdialog.h \ - src/qt/transactionfilterproxy.h \ - src/qt/transactionrecord.h \ - src/qt/transactiontablemodel.h \ - src/qt/transactionview.h \ - src/qt/utilitydialog.h \ - src/qt/walletframe.h \ - src/qt/walletmodel.h \ - src/qt/walletmodeltransaction.h \ - src/qt/walletview.h \ - src/qt/winshutdownmonitor.h \ - src/script/bitcoinconsensus.h \ - src/script/interpreter.h \ - src/script/script.h \ - src/script/script_error.h \ - src/script/sigcache.h \ - src/script/sign.h \ - src/script/standard.h \ - src/test/bignum.h \ - src/univalue/univalue.h \ - src/univalue/univalue_escapes.h \ - src/leveldb/db/builder.h \ - src/leveldb/db/db_impl.h \ - src/leveldb/db/db_iter.h \ - src/leveldb/db/dbformat.h \ - src/leveldb/db/filename.h \ - src/leveldb/db/log_format.h \ - src/leveldb/db/log_reader.h \ - src/leveldb/db/log_writer.h \ - src/leveldb/db/memtable.h \ - src/leveldb/db/skiplist.h \ - src/leveldb/db/snapshot.h \ - src/leveldb/db/table_cache.h \ - src/leveldb/db/version_edit.h \ - src/leveldb/db/version_set.h \ - src/leveldb/db/write_batch_internal.h \ - src/leveldb/port/atomic_pointer.h \ - src/leveldb/port/port.h \ - src/leveldb/port/port_example.h \ - src/leveldb/port/port_posix.h \ - src/leveldb/port/port_win.h \ - src/leveldb/port/thread_annotations.h \ - src/leveldb/table/block.h \ - src/leveldb/table/block_builder.h \ - src/leveldb/table/filter_block.h \ - src/leveldb/table/format.h \ - src/leveldb/table/iterator_wrapper.h \ - src/leveldb/table/merger.h \ - src/leveldb/table/two_level_iterator.h \ - src/leveldb/util/arena.h \ - src/leveldb/util/coding.h \ - src/leveldb/util/crc32c.h \ - src/leveldb/util/hash.h \ - src/leveldb/util/histogram.h \ - src/leveldb/util/logging.h \ - src/leveldb/util/mutexlock.h \ - src/leveldb/util/posix_logger.h \ - src/leveldb/util/random.h \ - src/leveldb/util/testharness.h \ - src/leveldb/util/testutil.h \ - src/qt/forms/ui_aboutdialog.h \ - src/qt/test/paymentrequestdata.h \ - src/qt/test/paymentservertests.h \ - src/qt/test/uritests.h \ - src/secp256k1/include/secp256k1.h \ - src/secp256k1/src/ecdsa.h \ - src/secp256k1/src/ecdsa_impl.h \ - src/secp256k1/src/eckey.h \ - src/secp256k1/src/eckey_impl.h \ - src/secp256k1/src/ecmult.h \ - src/secp256k1/src/ecmult_gen.h \ - src/secp256k1/src/ecmult_gen_impl.h \ - src/secp256k1/src/ecmult_impl.h \ - src/secp256k1/src/field.h \ - src/secp256k1/src/field_10x26.h \ - src/secp256k1/src/field_10x26_impl.h \ - src/secp256k1/src/field_5x52.h \ - src/secp256k1/src/field_5x52_asm_impl.h \ - src/secp256k1/src/field_5x52_impl.h \ - src/secp256k1/src/field_5x52_int128_impl.h \ - src/secp256k1/src/field_gmp.h \ - src/secp256k1/src/field_gmp_impl.h \ - src/secp256k1/src/field_impl.h \ - src/secp256k1/src/group.h \ - src/secp256k1/src/group_impl.h \ - src/secp256k1/src/libsecp256k1-config.h \ - src/secp256k1/src/num.h \ - src/secp256k1/src/num_gmp.h \ - src/secp256k1/src/num_gmp_impl.h \ - src/secp256k1/src/num_impl.h \ - src/secp256k1/src/scalar.h \ - src/secp256k1/src/scalar_4x64.h \ - src/secp256k1/src/scalar_4x64_impl.h \ - src/secp256k1/src/scalar_8x32.h \ - src/secp256k1/src/scalar_8x32_impl.h \ - src/secp256k1/src/scalar_impl.h \ - src/secp256k1/src/testrand.h \ - src/secp256k1/src/testrand_impl.h \ - src/secp256k1/src/util.h \ - src/test/data/alertTests.raw.h \ - src/test/data/base58_encode_decode.json.h \ - src/test/data/base58_keys_invalid.json.h \ - src/test/data/base58_keys_valid.json.h \ - src/test/data/script_invalid.json.h \ - src/test/data/script_valid.json.h \ - src/test/data/sig_canonical.json.h \ - src/test/data/sig_noncanonical.json.h \ - src/test/data/sighash.json.h \ - src/test/data/tx_invalid.json.h \ - src/test/data/tx_valid.json.h \ - src/leveldb/helpers/memenv/memenv.h \ - src/leveldb/include/leveldb/c.h \ - src/leveldb/include/leveldb/cache.h \ - src/leveldb/include/leveldb/comparator.h \ - src/leveldb/include/leveldb/db.h \ - src/leveldb/include/leveldb/dumpfile.h \ - src/leveldb/include/leveldb/env.h \ - src/leveldb/include/leveldb/filter_policy.h \ - src/leveldb/include/leveldb/iterator.h \ - src/leveldb/include/leveldb/options.h \ - src/leveldb/include/leveldb/slice.h \ - src/leveldb/include/leveldb/status.h \ - src/leveldb/include/leveldb/table.h \ - src/leveldb/include/leveldb/table_builder.h \ - src/leveldb/include/leveldb/write_batch.h \ - src/leveldb/port/win/stdint.h \ - src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.h \ - src/crypto/aes_helper.c \ - src/qt/bitcoinamountfield.moc \ - src/qt/dash.moc \ - src/qt/intro.moc \ - src/qt/overviewpage.moc \ - src/qt/rpcconsole.moc \ - src/secp256k1/src/secp256k1.c -FORMS += src/qt/forms/addressbookpage.ui \ - src/qt/forms/askpassphrasedialog.ui \ - src/qt/forms/coincontroldialog.ui \ - src/qt/forms/darksendconfig.ui \ - src/qt/forms/editaddressdialog.ui \ - src/qt/forms/helpmessagedialog.ui \ - src/qt/forms/intro.ui \ - src/qt/forms/openuridialog.ui \ - src/qt/forms/optionsdialog.ui \ - src/qt/forms/overviewpage.ui \ - src/qt/forms/receivecoinsdialog.ui \ - src/qt/forms/receiverequestdialog.ui \ - src/qt/forms/rpcconsole.ui \ - src/qt/forms/sendcoinsdialog.ui \ - src/qt/forms/sendcoinsentry.ui \ - src/qt/forms/signverifymessagedialog.ui \ - src/qt/forms/transactiondescdialog.ui -SOURCES += src/activemasternode.cpp \ - src/addrman.cpp \ - src/alert.cpp \ - src/allocators.cpp \ - src/amount.cpp \ - src/base58.cpp \ - src/bloom.cpp \ - src/chain.cpp \ - src/chainparams.cpp \ - src/chainparamsbase.cpp \ - src/checkpoints.cpp \ - src/clientversion.cpp \ - src/coins.cpp \ - src/compressor.cpp \ - src/core_read.cpp \ - src/core_write.cpp \ - src/crypter.cpp \ - src/darksend-relay.cpp \ - src/darksend.cpp \ - src/dash-cli.cpp \ - src/dash-tx.cpp \ - src/dashd.cpp \ - src/db.cpp \ - src/eccryptoverify.cpp \ - src/ecwrapper.cpp \ - src/editaddressdialog.cpp \ - src/hash.cpp \ - src/init.cpp \ - src/instantx.cpp \ - src/keepass.cpp \ - src/key.cpp \ - src/keystore.cpp \ - src/leveldbwrapper.cpp \ - src/main.cpp \ - src/masternode-budget.cpp \ - src/masternode-payments.cpp \ - src/masternode-sync.cpp \ - src/masternode.cpp \ - src/masternodeconfig.cpp \ - src/masternodeman.cpp \ - src/merkleblock.cpp \ - src/miner.cpp \ - src/net.cpp \ - src/netbase.cpp \ - src/noui.cpp \ - src/pow.cpp \ - src/protocol.cpp \ - src/pubkey.cpp \ - src/random.cpp \ - src/rest.cpp \ - src/rpcblockchain.cpp \ - src/rpcclient.cpp \ - src/rpcdump.cpp \ - src/rpcmasternode-budget.cpp \ - src/rpcmasternode.cpp \ - src/rpcmining.cpp \ - src/rpcmisc.cpp \ - src/rpcnet.cpp \ - src/rpcprotocol.cpp \ - src/rpcrawtransaction.cpp \ - src/rpcserver.cpp \ - src/rpcwallet.cpp \ - src/spork.cpp \ - src/sync.cpp \ - src/timedata.cpp \ - src/txdb.cpp \ - src/txmempool.cpp \ - src/uint256.cpp \ - src/util.cpp \ - src/utilmoneystr.cpp \ - src/utilstrencodings.cpp \ - src/utiltime.cpp \ - src/wallet.cpp \ - src/wallet_ismine.cpp \ - src/walletdb.cpp \ - src/compat/glibc_compat.cpp \ - src/compat/glibc_sanity.cpp \ - src/compat/glibcxx_compat.cpp \ - src/compat/glibcxx_sanity.cpp \ - src/compat/strnlen.cpp \ - src/crypto/aes_helper.c \ - src/crypto/blake.c \ - src/crypto/bmw.c \ - src/crypto/cubehash.c \ - src/crypto/echo.c \ - src/crypto/groestl.c \ - src/crypto/hmac_sha256.cpp \ - src/crypto/hmac_sha512.cpp \ - src/crypto/jh.c \ - src/crypto/keccak.c \ - src/crypto/luffa.c \ - src/crypto/rfc6979_hmac_sha256.cpp \ - src/crypto/ripemd160.cpp \ - src/crypto/sha1.cpp \ - src/crypto/sha256.cpp \ - src/crypto/sha512.cpp \ - src/crypto/shavite.c \ - src/crypto/simd.c \ - src/crypto/skein.c \ - src/json/json_spirit_reader.cpp \ - src/json/json_spirit_value.cpp \ - src/json/json_spirit_writer.cpp \ - src/primitives/block.cpp \ - src/primitives/transaction.cpp \ - src/qt/addressbookpage.cpp \ - src/qt/addresstablemodel.cpp \ - src/qt/askpassphrasedialog.cpp \ - src/qt/bitcoinaddressvalidator.cpp \ - src/qt/bitcoinamountfield.cpp \ - src/qt/bitcoingui.cpp \ - src/qt/bitcoinunits.cpp \ - src/qt/clientmodel.cpp \ - src/qt/coincontroldialog.cpp \ - src/qt/coincontroltreewidget.cpp \ - src/qt/csvmodelwriter.cpp \ - src/qt/darksendconfig.cpp \ - src/qt/dash.cpp \ - src/qt/dashstrings.cpp \ - src/qt/editaddressdialog.cpp \ - src/qt/guiutil.cpp \ - src/qt/intro.cpp \ - src/qt/networkstyle.cpp \ - src/qt/notificator.cpp \ - src/qt/openuridialog.cpp \ - src/qt/optionsdialog.cpp \ - src/qt/optionsmodel.cpp \ - src/qt/overviewpage.cpp \ - src/qt/paymentrequest.pb.cc \ - src/qt/paymentrequestplus.cpp \ - src/qt/paymentserver.cpp \ - src/qt/peertablemodel.cpp \ - src/qt/qvalidatedlineedit.cpp \ - src/qt/qvaluecombobox.cpp \ - src/qt/receivecoinsdialog.cpp \ - src/qt/receiverequestdialog.cpp \ - src/qt/recentrequeststablemodel.cpp \ - src/qt/rpcconsole.cpp \ - src/qt/sendcoinsdialog.cpp \ - src/qt/sendcoinsentry.cpp \ - src/qt/signverifymessagedialog.cpp \ - src/qt/splashscreen.cpp \ - src/qt/trafficgraphwidget.cpp \ - src/qt/transactiondesc.cpp \ - src/qt/transactiondescdialog.cpp \ - src/qt/transactionfilterproxy.cpp \ - src/qt/transactionrecord.cpp \ - src/qt/transactiontablemodel.cpp \ - src/qt/transactionview.cpp \ - src/qt/utilitydialog.cpp \ - src/qt/walletframe.cpp \ - src/qt/walletmodel.cpp \ - src/qt/walletmodeltransaction.cpp \ - src/qt/walletview.cpp \ - src/qt/winshutdownmonitor.cpp \ - src/script/bitcoinconsensus.cpp \ - src/script/interpreter.cpp \ - src/script/script.cpp \ - src/script/script_error.cpp \ - src/script/sigcache.cpp \ - src/script/sign.cpp \ - src/script/standard.cpp \ - src/test/accounting_tests.cpp \ - src/test/alert_tests.cpp \ - src/test/allocator_tests.cpp \ - src/test/base32_tests.cpp \ - src/test/base58_tests.cpp \ - src/test/base64_tests.cpp \ - src/test/bip32_tests.cpp \ - src/test/bloom_tests.cpp \ - src/test/checkblock_tests.cpp \ - src/test/Checkpoints_tests.cpp \ - src/test/coins_tests.cpp \ - src/test/compress_tests.cpp \ - src/test/crypto_tests.cpp \ - src/test/DoS_tests.cpp \ - src/test/getarg_tests.cpp \ - src/test/hash_tests.cpp \ - src/test/key_tests.cpp \ - src/test/main_tests.cpp \ - src/test/mempool_tests.cpp \ - src/test/miner_tests.cpp \ - src/test/mruset_tests.cpp \ - src/test/multisig_tests.cpp \ - src/test/netbase_tests.cpp \ - src/test/pmt_tests.cpp \ - src/test/rpc_tests.cpp \ - src/test/rpc_wallet_tests.cpp \ - src/test/sanity_tests.cpp \ - src/test/script_P2SH_tests.cpp \ - src/test/script_tests.cpp \ - src/test/scriptnum_tests.cpp \ - src/test/serialize_tests.cpp \ - src/test/sighash_tests.cpp \ - src/test/sigopcount_tests.cpp \ - src/test/skiplist_tests.cpp \ - src/test/test_dash.cpp \ - src/test/timedata_tests.cpp \ - src/test/transaction_tests.cpp \ - src/test/uint256_tests.cpp \ - src/test/univalue_tests.cpp \ - src/test/util_tests.cpp \ - src/test/wallet_tests.cpp \ - src/univalue/gen.cpp \ - src/univalue/univalue.cpp \ - src/univalue/univalue_read.cpp \ - src/univalue/univalue_write.cpp \ - src/leveldb/db/autocompact_test.cc \ - src/leveldb/db/builder.cc \ - src/leveldb/db/c.cc \ - src/leveldb/db/c_test.c \ - src/leveldb/db/corruption_test.cc \ - src/leveldb/db/db_bench.cc \ - src/leveldb/db/db_impl.cc \ - src/leveldb/db/db_iter.cc \ - src/leveldb/db/db_test.cc \ - src/leveldb/db/dbformat.cc \ - src/leveldb/db/dbformat_test.cc \ - src/leveldb/db/dumpfile.cc \ - src/leveldb/db/filename.cc \ - src/leveldb/db/filename_test.cc \ - src/leveldb/db/leveldb_main.cc \ - src/leveldb/db/log_reader.cc \ - src/leveldb/db/log_test.cc \ - src/leveldb/db/log_writer.cc \ - src/leveldb/db/memtable.cc \ - src/leveldb/db/repair.cc \ - src/leveldb/db/skiplist_test.cc \ - src/leveldb/db/table_cache.cc \ - src/leveldb/db/version_edit.cc \ - src/leveldb/db/version_edit_test.cc \ - src/leveldb/db/version_set.cc \ - src/leveldb/db/version_set_test.cc \ - src/leveldb/db/write_batch.cc \ - src/leveldb/db/write_batch_test.cc \ - src/leveldb/issues/issue178_test.cc \ - src/leveldb/issues/issue200_test.cc \ - src/leveldb/port/port_posix.cc \ - src/leveldb/port/port_win.cc \ - src/leveldb/table/block.cc \ - src/leveldb/table/block_builder.cc \ - src/leveldb/table/filter_block.cc \ - src/leveldb/table/filter_block_test.cc \ - src/leveldb/table/format.cc \ - src/leveldb/table/iterator.cc \ - src/leveldb/table/merger.cc \ - src/leveldb/table/table.cc \ - src/leveldb/table/table_builder.cc \ - src/leveldb/table/table_test.cc \ - src/leveldb/table/two_level_iterator.cc \ - src/leveldb/util/arena.cc \ - src/leveldb/util/arena_test.cc \ - src/leveldb/util/bloom.cc \ - src/leveldb/util/bloom_test.cc \ - src/leveldb/util/cache.cc \ - src/leveldb/util/cache_test.cc \ - src/leveldb/util/coding.cc \ - src/leveldb/util/coding_test.cc \ - src/leveldb/util/comparator.cc \ - src/leveldb/util/crc32c.cc \ - src/leveldb/util/crc32c_test.cc \ - src/leveldb/util/env.cc \ - src/leveldb/util/env_posix.cc \ - src/leveldb/util/env_test.cc \ - src/leveldb/util/env_win.cc \ - src/leveldb/util/filter_policy.cc \ - src/leveldb/util/hash.cc \ - src/leveldb/util/hash_test.cc \ - src/leveldb/util/histogram.cc \ - src/leveldb/util/logging.cc \ - src/leveldb/util/options.cc \ - src/leveldb/util/status.cc \ - src/leveldb/util/testharness.cc \ - src/leveldb/util/testutil.cc \ - src/qt/test/paymentservertests.cpp \ - src/qt/test/test_main.cpp \ - src/qt/test/uritests.cpp \ - src/secp256k1/src/bench_inv.c \ - src/secp256k1/src/bench_sign.c \ - src/secp256k1/src/bench_verify.c \ - src/secp256k1/src/secp256k1.c \ - src/secp256k1/src/tests.c \ - src/leveldb/doc/bench/db_bench_sqlite3.cc \ - src/leveldb/doc/bench/db_bench_tree_db.cc \ - src/leveldb/helpers/memenv/memenv.cc \ - src/leveldb/helpers/memenv/memenv_test.cc \ - src/secp256k1/src/java/org_bitcoin_NativeSecp256k1.c -RESOURCES += src/qt/dash.qrc src/qt/dash_locale.qrc -TRANSLATIONS += src/qt/locale/dash_bg.ts \ - src/qt/locale/dash_de.ts \ - src/qt/locale/dash_en.ts \ - src/qt/locale/dash_es.ts \ - src/qt/locale/dash_fi.ts \ - src/qt/locale/dash_fr.ts \ - src/qt/locale/dash_it.ts \ - src/qt/locale/dash_pl.ts \ - src/qt/locale/dash_pt.ts \ - src/qt/locale/dash_ru.ts \ - src/qt/locale/dash_sk.ts \ - src/qt/locale/dash_sv.ts \ - src/qt/locale/dash_vi.ts \ - src/qt/locale/dash_zh_CN.ts \ - src/qt/locale/dash_zh_TW.ts diff --git a/contrib/dashd.bash-completion b/contrib/dashd.bash-completion deleted file mode 100644 index 11a4dc9e7c3b..000000000000 --- a/contrib/dashd.bash-completion +++ /dev/null @@ -1,145 +0,0 @@ -# bash programmable completion for dashd(1) and dash-cli(1) -# Copyright (c) 2012,2014 Christian von Roques -# Distributed under the MIT/X11 software license, see the accompanying -# file COPYING or http://www.opensource.org/licenses/mit-license.php. - -have dashd && { - -# call $dashd for RPC -_dash_rpc() { - # determine already specified args necessary for RPC - local rpcargs=() - for i in ${COMP_LINE}; do - case "$i" in - -conf=*|-proxy*|-rpc*) - rpcargs=( "${rpcargs[@]}" "$i" ) - ;; - esac - done - $dashd "${rpcargs[@]}" "$@" -} - -# Add dash accounts to COMPREPLY -_dash_accounts() { - local accounts - accounts=$(_dash_rpc listaccounts | awk '/".*"/ { a=$1; gsub(/"/, "", a); print a}') - COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$accounts" -- "$cur" ) ) -} - -_dashd() { - local cur prev words=() cword - local dashd - - # save and use original argument to invoke dashd - # dashd might not be in $PATH - dashd="$1" - - COMPREPLY=() - _get_comp_words_by_ref -n = cur prev words cword - - if ((cword > 4)); then - case ${words[cword-4]} in - listtransactions) - COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) - return 0 - ;; - signrawtransaction) - COMPREPLY=( $( compgen -W "ALL NONE SINGLE ALL|ANYONECANPAY NONE|ANYONECANPAY SINGLE|ANYONECANPAY" -- "$cur" ) ) - return 0 - ;; - esac - fi - - if ((cword > 3)); then - case ${words[cword-3]} in - addmultisigaddress) - _dash_accounts - return 0 - ;; - getbalance|gettxout|importaddress|importprivkey|listreceivedbyaccount|listreceivedbyaddress|listsinceblock) - COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) - return 0 - ;; - esac - fi - - if ((cword > 2)); then - case ${words[cword-2]} in - addnode) - COMPREPLY=( $( compgen -W "add remove onetry" -- "$cur" ) ) - return 0 - ;; - getblock|getrawtransaction|gettransaction|listaccounts|listreceivedbyaccount|listreceivedbyaddress|sendrawtransaction) - COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) - return 0 - ;; - move|setaccount) - _dash_accounts - return 0 - ;; - esac - fi - - case "$prev" in - backupwallet|dumpwallet|importwallet) - _filedir - return 0 - ;; - getmempool|lockunspent|setgenerate) - COMPREPLY=( $( compgen -W "true false" -- "$cur" ) ) - return 0 - ;; - getaccountaddress|getaddressesbyaccount|getbalance|getnewaddress|getreceivedbyaccount|listtransactions|move|sendfrom|sendmany) - _dash_accounts - return 0 - ;; - esac - - case "$cur" in - -conf=*|-pid=*|-loadblock=*|-wallet=*|-rpcsslcertificatechainfile=*|-rpcsslprivatekeyfile=*) - cur="${cur#*=}" - _filedir - return 0 - ;; - -datadir=*) - cur="${cur#*=}" - _filedir -d - return 0 - ;; - -*=*) # prevent nonsense completions - return 0 - ;; - *) - local helpopts commands - - # only parse --help if senseful - if [[ -z "$cur" || "$cur" =~ ^- ]]; then - helpopts=$($dashd --help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) - fi - - # only parse help if senseful - if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then - commands=$(_dash_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }') - fi - - COMPREPLY=( $( compgen -W "$helpopts $commands" -- "$cur" ) ) - - # Prevent space if an argument is desired - if [[ $COMPREPLY == *= ]]; then - compopt -o nospace - fi - return 0 - ;; - esac -} - -complete -F _dashd dashd dash-cli -} - -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: -# ex: ts=4 sw=4 et filetype=sh diff --git a/contrib/debian/README.md b/contrib/debian/README.md index 55ff57497f95..01803ff9ed8f 100644 --- a/contrib/debian/README.md +++ b/contrib/debian/README.md @@ -1,21 +1,21 @@ Debian ==================== -This directory contains files used to package dashd/dash-qt -for Debian-based Linux systems. If you compile dashd/dash-qt yourself, there are some useful files here. +This directory contains files used to package btxd/btx-qt +for Debian-based Linux systems. If you compile btxd/btx-qt yourself, there are some useful files here. -## dash: URI support ## +## btx: URI support ## -dash-qt.desktop (Gnome / Open Desktop) +btx-qt.desktop (Gnome / Open Desktop) To install: - sudo desktop-file-install dash-qt.desktop + sudo desktop-file-install btx-qt.desktop sudo update-desktop-database If you build yourself, you will either need to modify the paths in -the .desktop file or copy or symlink your dash-qt binary to `/usr/bin` -and the `../../share/pixmaps/dash128.png` to `/usr/share/pixmaps` +the .desktop file or copy or symlink your btx-qt binary to `/usr/bin` +and the `../../share/pixmaps/btx128.png` to `/usr/share/pixmaps` -dash-qt.protocol (KDE) +btx-qt.protocol (KDE) diff --git a/contrib/debian/changelog b/contrib/debian/changelog index f31f23871144..4489ed97d8d5 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -132,7 +132,7 @@ bitcoin (0.5.3-natty0) natty; urgency=low * New upstream release. - -- Luke Dashjr Tue, 10 Jan 2012 15:57:00 -0500 + -- Luke BTXjr Tue, 10 Jan 2012 15:57:00 -0500 bitcoin (0.5.2-natty1) natty; urgency=low @@ -147,7 +147,7 @@ bitcoin (0.5.2-natty0) natty; urgency=low * New upstream release. - -- Luke Dashjr Fri, 16 Dec 2011 17:57:00 -0500 + -- Luke BTXjr Fri, 16 Dec 2011 17:57:00 -0500 bitcoin (0.5.1-natty0) natty; urgency=low @@ -365,8 +365,8 @@ bitcoin (0.3.19~dfsg-5) unstable; urgency=low bitcoin (0.3.19~dfsg-4) unstable; urgency=low [ Micah Anderson ] - * Provide example dash.conf. - * Add bitcoind(1) and dash.conf(5) man pages. + * Provide example btx.conf. + * Add bitcoind(1) and btx.conf(5) man pages. [ Jonas Smedegaard ] * Ease backporting: diff --git a/contrib/debian/control b/contrib/debian/control index 72cfb9747cb1..6a2de85d93a4 100644 --- a/contrib/debian/control +++ b/contrib/debian/control @@ -1,4 +1,4 @@ -Source: dash +Source: btx Section: utils Priority: optional Maintainer: Jonas Smedegaard ***TODO*** @@ -22,15 +22,15 @@ Build-Depends: debhelper, libqrencode-dev, libprotobuf-dev, protobuf-compiler Standards-Version: 3.9.2 -Homepage: http://www.dashpay.io/ -Vcs-Git: git://github.com/dashpay/dash.git -Vcs-Browser: http://github.com/dashpay/dash +Homepage: http://www.btxpay.io/ +Vcs-Git: git://github.com/btxpay/btx.git +Vcs-Browser: http://github.com/btxpay/btx -Package: dashd +Package: btxd Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: peer-to-peer network based digital currency - daemon - Dash is a free open source peer-to-peer electronic cash system that + BTX is a free open source peer-to-peer electronic cash system that is completely decentralized, without the need for a central server or trusted parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to @@ -39,14 +39,14 @@ Description: peer-to-peer network based digital currency - daemon Full transaction history is stored locally at each client. This requires 1+ GB of space, slowly growing. . - This package provides the daemon, dashd, and the CLI tool - dash-cli to interact with the daemon. + This package provides the daemon, btxd, and the CLI tool + btx-cli to interact with the daemon. -Package: dash-qt +Package: btx-qt Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: peer-to-peer network based digital currency - Qt GUI - Dash is a free open source peer-to-peer electronic cash system that + BTX is a free open source peer-to-peer electronic cash system that is completely decentralized, without the need for a central server or trusted parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to @@ -55,4 +55,4 @@ Description: peer-to-peer network based digital currency - Qt GUI Full transaction history is stored locally at each client. This requires 1+ GB of space, slowly growing. . - This package provides Dash-Qt, a GUI for Dash based on Qt. + This package provides BTX-Qt, a GUI for BTX based on Qt. diff --git a/contrib/debian/dash-qt.desktop b/contrib/debian/dash-qt.desktop deleted file mode 100644 index 2a2536ad6eb8..000000000000 --- a/contrib/debian/dash-qt.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Dash -Comment=Dash P2P Cryptocurrency -Comment[fr]=Dash, monnaie virtuelle cryptographique pair à pair -Comment[tr]=Dash, eşten eşe kriptografik sanal para birimi -Exec=dash-qt %u -Terminal=false -Type=Application -Icon=dash128 -MimeType=x-scheme-handler/dash; -Categories=Office;Finance; diff --git a/contrib/debian/dash-qt.install b/contrib/debian/dash-qt.install deleted file mode 100644 index 4c10ef60d9d6..000000000000 --- a/contrib/debian/dash-qt.install +++ /dev/null @@ -1,6 +0,0 @@ -usr/local/bin/dash-qt usr/bin -share/pixmaps/bitcoin32.xpm usr/share/pixmaps -share/pixmaps/bitcoin16.xpm usr/share/pixmaps -share/pixmaps/bitcoin128.png usr/share/pixmaps -debian/dash-qt.desktop usr/share/applications -debian/dash-qt.protocol usr/share/kde4/services/ diff --git a/contrib/debian/dash-qt.lintian-overrides b/contrib/debian/dash-qt.lintian-overrides deleted file mode 100644 index bfb8d9a84bc3..000000000000 --- a/contrib/debian/dash-qt.lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -# Linked code is Expat - only Debian packaging is GPL-2+ -dash-qt: possible-gpl-code-linked-with-openssl diff --git a/contrib/debian/dash-qt.protocol b/contrib/debian/dash-qt.protocol deleted file mode 100644 index 7487092412ba..000000000000 --- a/contrib/debian/dash-qt.protocol +++ /dev/null @@ -1,11 +0,0 @@ -[Protocol] -exec=dash-qt '%u' -protocol=dash -input=none -output=none -helper=true -listing= -reading=false -writing=false -makedir=false -deleting=false diff --git a/contrib/debian/dashd.bash-completion b/contrib/debian/dashd.bash-completion deleted file mode 100644 index d92f33da7bf3..000000000000 --- a/contrib/debian/dashd.bash-completion +++ /dev/null @@ -1 +0,0 @@ -contrib/dashd.bash-completion dashd diff --git a/contrib/debian/dashd.examples b/contrib/debian/dashd.examples deleted file mode 100644 index 0b6950852dfa..000000000000 --- a/contrib/debian/dashd.examples +++ /dev/null @@ -1 +0,0 @@ -debian/examples/dash.conf diff --git a/contrib/debian/dashd.install b/contrib/debian/dashd.install deleted file mode 100644 index 65878933fa99..000000000000 --- a/contrib/debian/dashd.install +++ /dev/null @@ -1,2 +0,0 @@ -usr/local/bin/dashd usr/bin -usr/local/bin/dash-cli usr/bin diff --git a/contrib/debian/dashd.lintian-overrides b/contrib/debian/dashd.lintian-overrides deleted file mode 100644 index ef02ada1e05c..000000000000 --- a/contrib/debian/dashd.lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -# Linked code is Expat - only Debian packaging is GPL-2+ -dashd: possible-gpl-code-linked-with-openssl diff --git a/contrib/debian/dashd.manpages b/contrib/debian/dashd.manpages deleted file mode 100644 index 949916bee278..000000000000 --- a/contrib/debian/dashd.manpages +++ /dev/null @@ -1,2 +0,0 @@ -debian/manpages/dashd.1 -debian/manpages/dash.conf.5 diff --git a/contrib/debian/examples/dash.conf b/contrib/debian/examples/dash.conf deleted file mode 100644 index be781d1bb1e8..000000000000 --- a/contrib/debian/examples/dash.conf +++ /dev/null @@ -1,115 +0,0 @@ -## -## dash.conf configuration file. Lines beginning with # are comments. -## - -# Network-related settings: - -# Run on the test network instead of the real dash network. -#testnet=0 - -# Run a regression test network -#regtest=0 - -# Connect via a SOCKS5 proxy -#proxy=127.0.0.1:9050 - -############################################################## -## Quick Primer on addnode vs connect ## -## Let's say for instance you use addnode=4.2.2.4 ## -## addnode will connect you to and tell you about the ## -## nodes connected to 4.2.2.4. In addition it will tell ## -## the other nodes connected to it that you exist so ## -## they can connect to you. ## -## connect will not do the above when you 'connect' to it. ## -## It will *only* connect you to 4.2.2.4 and no one else.## -## ## -## So if you're behind a firewall, or have other problems ## -## finding nodes, add some using 'addnode'. ## -## ## -## If you want to stay private, use 'connect' to only ## -## connect to "trusted" nodes. ## -## ## -## If you run multiple nodes on a LAN, there's no need for ## -## all of them to open lots of connections. Instead ## -## 'connect' them all to one node that is port forwarded ## -## and has lots of connections. ## -## Thanks goes to [Noodle] on Freenode. ## -############################################################## - -# Use as many addnode= settings as you like to connect to specific peers -#addnode=69.164.218.197 -#addnode=10.0.0.2:9999 - -# Alternatively use as many connect= settings as you like to connect ONLY to specific peers -#connect=69.164.218.197 -#connect=10.0.0.1:9999 - -# Listening mode, enabled by default except when 'connect' is being used -#listen=1 - -# Maximum number of inbound+outbound connections. -#maxconnections= - -# -# JSON-RPC options (for controlling a running Dash/dashd process) -# - -# server=1 tells Dash-QT and dashd to accept JSON-RPC commands -#server=0 - -# You must set rpcuser and rpcpassword to secure the JSON-RPC api -#rpcuser=Ulysseys -#rpcpassword=YourSuperGreatPasswordNumber_DO_NOT_USE_THIS_OR_YOU_WILL_GET_ROBBED_385593 - -# How many seconds dash will wait for a complete RPC HTTP request. -# after the HTTP connection is established. -#rpctimeout=30 - -# By default, only RPC connections from localhost are allowed. -# Specify as many rpcallowip= settings as you like to allow connections from other hosts, -# either as a single IPv4/IPv6 or with a subnet specification. - -# NOTE: opening up the RPC port to hosts outside your local trusted network is NOT RECOMMENDED, -# because the rpcpassword is transmitted over the network unencrypted. - -# server=1 tells Dash-QT to accept JSON-RPC commands. -# it is also read by dashd to determine if RPC should be enabled -#rpcallowip=10.1.1.34/255.255.255.0 -#rpcallowip=1.2.3.4/24 -#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96 - -# Listen for RPC connections on this TCP port: -#rpcport=9998 - -# You can use Dash or dashd to send commands to Dash/dashd -# running on another host using this option: -#rpcconnect=127.0.0.1 - -# Use Secure Sockets Layer (also known as TLS or HTTPS) to communicate -# with Dash -server or dashd -#rpcssl=1 - -# OpenSSL settings used when rpcssl=1 -#rpcsslciphers=TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH -#rpcsslcertificatechainfile=server.cert -#rpcsslprivatekeyfile=server.pem - - -# Miscellaneous options - -# Pre-generate this many public/private key pairs, so wallet backups will be valid for -# both prior transactions and several dozen future transactions. -#keypool=100 - -# Pay an optional transaction fee every time you send dashs. Transactions with fees -# are more likely than free transactions to be included in generated blocks, so may -# be validated sooner. -#paytxfee=0.00 - -# User interface options - -# Start Dash minimized -#min=1 - -# Minimize to the system tray -#minimizetotray=1 diff --git a/contrib/debian/manpages/dash-qt.1 b/contrib/debian/manpages/dash-qt.1 deleted file mode 100644 index dc9381f8ad89..000000000000 --- a/contrib/debian/manpages/dash-qt.1 +++ /dev/null @@ -1,203 +0,0 @@ -.TH DASH-QT "1" "March 2015" "dash-qt 1" -.SH NAME -dash-qt \- peer-to-peer network based digital currency -.SH DESCRIPTION -.SS "Usage:" -.IP -dash\-qt [command\-line options] -.SH OPTIONS -.TP -\-? -This help message -.TP -\fB\-conf=\fR -Specify configuration file (default: dash.conf) -.TP -\fB\-pid=\fR -Specify pid file (default: dashd.pid) -.TP -\fB\-gen\fR -Generate coins -.TP -\fB\-gen\fR=\fI0\fR -Don't generate coins -.TP -\fB\-datadir=\fR -Specify data directory -.TP -\fB\-dbcache=\fR -Set database cache size in megabytes (default: 25) -.TP -\fB\-timeout=\fR -Specify connection timeout in milliseconds (default: 5000) -.TP -\fB\-proxy=\fR -Connect through SOCKS5 proxy -.TP -\fB\-tor=\fR -Use proxy to reach tor hidden services (default: same as \fB\-proxy\fR) -.TP -\fB\-dns\fR -Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR -.TP -\fB\-port=\fR -Listen for connections on (default: 9999 or testnet: 19999) -.TP -\fB\-maxconnections=\fR -Maintain at most connections to peers (default: 125) -.TP -\fB\-addnode=\fR -Add a node to connect to and attempt to keep the connection open -.TP -\fB\-connect=\fR -Connect only to the specified node(s) -.TP -\fB\-seednode=\fR -Connect to a node to retrieve peer addresses, and disconnect -.TP -\fB\-externalip=\fR -Specify your own public address -.TP -\fB\-onlynet=\fR -Only connect to nodes in network (IPv4, IPv6 or Tor) -.TP -\fB\-discover\fR -Discover own IP address (default: 1 when listening and no \fB\-externalip\fR) -.TP -\fB\-checkpoints\fR -Only accept block chain matching built\-in checkpoints (default: 1) -.TP -\fB\-listen\fR -Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR) -.TP -\fB\-bind=\fR -Bind to given address and always listen on it. Use [host]:port notation for IPv6 -.TP -\fB\-dnsseed\fR -Find peers using DNS lookup (default: 1 unless \fB\-connect\fR) -.TP -\fB\-banscore=\fR -Threshold for disconnecting misbehaving peers (default: 100) -.TP -\fB\-bantime=\fR -Number of seconds to keep misbehaving peers from reconnecting (default: 86400) -.TP -\fB\-maxreceivebuffer=\fR -Maximum per\-connection receive buffer, *1000 bytes (default: 5000) -.TP -\fB\-maxsendbuffer=\fR -Maximum per\-connection send buffer, *1000 bytes (default: 1000) -.TP -\fB\-upnp\fR -Use UPnP to map the listening port (default: 1 when listening) -.TP -\fB\-paytxfee=\fR -Fee per KB to add to transactions you send -.TP -\fB\-server\fR -Accept command line and JSON\-RPC commands -.TP -\fB\-testnet\fR -Use the test network -.TP -\fB\-debug\fR -Output extra debugging information. Implies all other \fB\-debug\fR* options -.TP -\fB\-debugnet\fR -Output extra network debugging information -.TP -\fB\-logtimestamps\fR -Prepend debug output with timestamp -.TP -\fB\-shrinkdebugfile\fR -Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR) -.TP -\fB\-printtoconsole\fR -Send trace/debug info to console instead of debug.log file -.TP -\fB\-rpcuser=\fR -Username for JSON\-RPC connections -.TP -\fB\-rpcpassword=\fR -Password for JSON\-RPC connections -.TP -\fB\-rpcport=\fR -Listen for JSON\-RPC connections on (default: 9998 or testnet: 19998) -.TP -\fB\-rpcallowip=\fR -Allow JSON\-RPC connections from specified IP address -.TP -\fB\-rpcthreads=\fR -Set the number of threads to service RPC calls (default: 4) -.TP -\fB\-blocknotify=\fR -Execute command when the best block changes (%s in cmd is replaced by block hash) -.TP -\fB\-walletnotify=\fR -Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) -.TP -\fB\-alertnotify=\fR -Execute command when a relevant alert is received (%s in cmd is replaced by message) -.TP -\fB\-upgradewallet\fR -Upgrade wallet to latest format -.TP -\fB\-keypool=\fR -Set key pool size to (default: 100) -.TP -\fB\-rescan\fR -Rescan the block chain for missing wallet transactions -.TP -\fB\-salvagewallet\fR -Attempt to recover private keys from a corrupt wallet.dat -.TP -\fB\-checkblocks=\fR -How many blocks to check at startup (default: 288, 0 = all) -.TP -\fB\-checklevel=\fR -How thorough the block verification is (0\-4, default: 3) -.TP -\fB\-txindex\fR -Maintain a full transaction index (default: 0) -.TP -\fB\-loadblock=\fR -Imports blocks from external blk000??.dat file -.TP -\fB\-reindex\fR -Rebuild block chain index from current blk000??.dat files -.TP -\fB\-par=\fR -Set the number of script verification threads (1\-16, 0=auto, default: 0) -.SS "Block creation options:" -.TP -\fB\-blockminsize=\fR -Set minimum block size in bytes (default: 0) -.TP -\fB\-blockmaxsize=\fR -Set maximum block size in bytes (default: 250000) -.HP -\fB\-blockprioritysize=\fR Set maximum size of high\-priority/low\-fee transactions in bytes (default: 27000) -.PP -SSL options: (see the Bitcoin Wiki for SSL setup instructions) -.TP -\fB\-rpcssl\fR -Use OpenSSL (https) for JSON\-RPC connections -.TP -\fB\-rpcsslcertificatechainfile=\fR -Server certificate file (default: server.cert) -.TP -\fB\-rpcsslprivatekeyfile=\fR -Server private key (default: server.pem) -.TP -\fB\-rpcsslciphers=\fR -Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH) -.SS "UI options:" -.TP -\fB\-lang=\fR -Set language, for example "de_DE" (default: system locale) -.TP -\fB\-min\fR -Start minimized -.TP -\fB\-splash\fR -Show splash screen on startup (default: 1) diff --git a/contrib/debian/manpages/dash.conf.5 b/contrib/debian/manpages/dash.conf.5 deleted file mode 100644 index 319c84b44558..000000000000 --- a/contrib/debian/manpages/dash.conf.5 +++ /dev/null @@ -1,89 +0,0 @@ -.TH DASH.CONF "5" "January 2011" "dash.conf 3.19" -.SH NAME -dash.conf \- dash configuration file -.SH SYNOPSIS -All command-line options (except for '\-conf') may be specified in a configuration file, and all configuration file options may also be specified on the command line. Command-line options override values set in the configuration file. -.TP -The configuration file is a list of 'setting=value' pairs, one per line, with optional comments starting with the '#' character. -.TP -The configuration file is not automatically created; you can create it using your favorite plain-text editor. By default, dashd(1) will look for a file named dash.conf(5) in the dash data directory, but both the data directory and the configuration file path may be changed using the '\-datadir' and '\-conf' command-line arguments. -.SH LOCATION -dash.conf should be located in $HOME/.dash -.SH NETWORK-RELATED SETTINGS -.TP -.TP -\fBtestnet=\fR[\fI'1'\fR|\fI'0'\fR] -Enable or disable run on the test network instead of the real *dash* network. -.TP -\fBproxy=\fR\fI'127.0.0.1:9050'\fR -Connect via a socks4 proxy. -.TP -\fBaddnode=\fR\fI'10.0.0.2:9999'\fR -Use as many *addnode=* settings as you like to connect to specific peers. -.TP -\fBconnect=\fR\fI'10.0.0.1:9999'\fR -Use as many *connect=* settings as you like to connect ONLY to specific peers. -.TP -\fRmaxconnections=\fR\fI'value'\fR -Maximum number of inbound+outbound connections. -.SH JSON-RPC OPTIONS -.TP -\fBserver=\fR[\fI'1'\fR|\fI'0'\fR] -Tells *dash* to accept or not accept JSON-RPC commands. -.TP -\fBrpcuser=\fR\fI'username'\fR -You must set *rpcuser* to secure the JSON-RPC api. -.TP -\fBrpcpassword=\fR\fI'password'\fR -You must set *rpcpassword* to secure the JSON-RPC api. -.TP -\fBrpcallowip=\fR\fI'192.168.1.*'\fR -By default, only RPC connections from localhost are allowed. Specify as many *rpcallowip=* settings as you like to allow connections from other hosts (and you may use * as a wildcard character). -.TP -\fBrpcport=\fR\fI'9998'\fR -Listen for RPC connections on this TCP port. -.TP -\fBrpcconnect=\fR\fI'127.0.0.1'\fR -You can use *dash* or *dashd(1)* to send commands to *dash*/*dashd(1)* running on another host using this option. -.TP -\fBrpcssl=\fR\fI'1'\fR -Use Secure Sockets Layer (also known as TLS or HTTPS) to communicate with *dash* '\-server' or *dashd(1)*. Example of OpenSSL settings used when *rpcssl*='1': -.TP -\fB\-rpcsslciphers=\fR -Acceptable ciphers (default: TLSv1+HIGH:\:!SSLv2:\:!aNULL:\:!eNULL:\:!AH:\:!3DES:\:@STRENGTH) -.TP -\fBrpcsslcertificatechainfile=\fR\fI'server.cert'\fR -.TP -\fBrpcsslprivatekeyfile=\fR\fI'server.pem'\fR -.TP -.SH MISCELLANEOUS OPTIONS -.TP -\fBgen=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable attempt to generate dashs. -.TP -\fB4way=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable use SSE instructions to try to generate dashs faster. -.TP -\fBkeypool=\fR\fI'100'\fR -Pre-generate this many public/private key pairs, so wallet backups will be valid for both prior transactions and several dozen future transactions. -.TP -\fBpaytxfee=\fR\fI'0.00'\fR -Pay an optional transaction fee every time you send dashs. Transactions with fees are more likely than free transactions to be included in generated blocks, so may be validated sooner. -.TP -\fBallowreceivebyip=\fR\fI'1'\fR -Allow direct connections for the 'pay via IP address' feature. -.TP -.SH USER INTERFACE OPTIONS -.TP -\fBmin=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable start dashd minimized. -.TP -\fBminimizetotray=\fR[\fI'0'\fR|\fI'1'\fR] -Enable or disable minimize to the system tray. -.SH "SEE ALSO" -dashd(1) -.SH AUTHOR -This manual page was written by Micah Anderson for the Debian system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or any later version published by the Free Software Foundation. - -On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. - diff --git a/contrib/debian/manpages/dashd.1 b/contrib/debian/manpages/dashd.1 deleted file mode 100644 index b31f828737c4..000000000000 --- a/contrib/debian/manpages/dashd.1 +++ /dev/null @@ -1,209 +0,0 @@ -.TH DASHD "1" "January 2011" "dashd 3.19" -.SH NAME -Dash \- peer-to-peer network based digital currency -.SH SYNOPSIS -dashd [options] [params] -.TP -dashd [options] help \- Get help for a command -.SH DESCRIPTION -This manual page documents the dashd program. Dash is a peer-to-peer digital currency. Peer-to-peer (P2P) means that there is no central authority to issue new money or keep track of transactions. Instead, these tasks are managed collectively by the nodes of the network. Advantages: - -Dash can be sent easily through the Internet, without having to trust middlemen. Transactions are designed to be irreversible. Be safe from instability caused by fractional reserve banking and central banks. The limited inflation of the Dash system’s money supply is distributed evenly (by CPU power) throughout the network, not monopolized by banks. - -.SH OPTIONS -.TP -\fB\-conf=\fR -Specify configuration file (default: dash.conf) -.TP -\fB\-gen\fR -Generate coins -.TP -\fB\-gen\fR=\fI0\fR -Don't generate coins -.TP -\fB\-min\fR -Start minimized -.TP -\fB\-datadir=\fR -Specify data directory -.TP -\fB\-proxy=\fR -Connect through SOCKS5 proxy -.TP -\fB\-addnode=\fR -Add a node to connect to -.TP -\fB\-connect=\fR -Connect only to the specified node -.TP -\fB\-paytxfee=\fR -Fee per KB to add to transactions you send -.TP -\fB\-server\fR -Accept command line and JSON\-RPC commands -.TP -\fB\-daemon\fR -Run in the background as a daemon and accept commands -.TP -\fB\-testnet\fR -Use the test network -.TP -\fB\-rpcuser=\fR -Username for JSON\-RPC connections -.TP -\fB\-rpcpassword=\fR -Password for JSON\-RPC connections -.TP -\fB\-rpcport=\fR -Listen for JSON\-RPC connections on -.TP -\fB\-rpcallowip=\fR -Allow JSON\-RPC connections from specified IP address -.TP -\fB\-rpcconnect=\fR -Send commands to node running on -.PP -SSL options: (see the Bitcoin Wiki for SSL setup instructions) -.TP -\fB\-rpcssl\fR=\fI1\fR -Use OpenSSL (https) for JSON\-RPC connections -.TP -\fB\-rpcsslcertificatchainfile=\fR -Server certificate file (default: server.cert) -.TP -\fB\-rpcsslprivatekeyfile=\fR -Server private key (default: server.pem) -.TP -\fB\-rpcsslciphers=\fR -Acceptable ciphers (default: TLSv1+HIGH:\:!SSLv2:\:!aNULL:\:!eNULL:\:!AH:\:!3DES:\:@STRENGTH) -.TP -\-? -This help message -.SH COMMANDS -.TP -\fBbackupwallet 'destination'\fR -Safely copies *wallet.dat* to 'destination', which can be a directory or a path with filename. -.TP -\fBgetaccount 'dashaddress'\fR -Returns the account associated with the given address. -.TP -\fBsetaccount 'dashaddress' ['account']\fR -Sets the ['account'] associated with the given address. ['account'] may be omitted to remove an address from ['account']. -.TP -\fBgetaccountaddress 'account'\fR -Returns a new dash address for 'account'. -.TP -\fBgetaddressesbyaccount 'account'\fR -Returns the list of addresses associated with the given 'account'. -.TP -\fBgetbalance 'account'\fR -Returns the server's available balance, or the balance for 'account'. -.TP -\fBgetblockcount\fR -Returns the number of blocks in the longest block chain. -.TP -\fBgetblocknumber\fR -Returns the block number of the latest block in the longest block chain. -.TP -\fBgetconnectioncount\fR -Returns the number of connections to other nodes. -.TP -\fBgetdifficulty\fR -Returns the proof-of-work difficulty as a multiple of the minimum difficulty. -.TP -\fBgetgenerate\fR -Returns boolean true if server is trying to generate DASH, false otherwise. -.TP -\fBsetgenerate 'generate' ['genproclimit']\fR -Generation is limited to ['genproclimit'] processors, \-1 is unlimited. -.TP -\fBgethashespersec\fR -Returns a recent hashes per second performance measurement while generating. -.TP -\fBgetinfo\fR -Returns an object containing server information. -.TP -\fBgetnewaddress 'account'\fR -Returns a new dash address for receiving payments. If 'account' is specified (recommended), it is added to the address book so payments received with the address will be credited to 'account'. -.TP -\fBgetreceivedbyaccount 'account' ['minconf=1']\fR -Returns the total amount received by addresses associated with 'account' in transactions with at least ['minconf'] confirmations. -.TP -\fBgetreceivedbyaddress 'dashaddress' ['minconf=1']\fR -Returns the total amount received by 'dashaddress' in transactions with at least ['minconf'] confirmations. -.TP -\fBgettransaction 'txid'\fR -Returns information about a specific transaction, given hexadecimal transaction ID. -.TP -\fBgetwork 'data'\fR -If 'data' is specified, tries to solve the block and returns true if it was successful. If 'data' is not specified, returns formatted hash 'data' to work on: - - "midstate" : precomputed hash state after hashing the first half of the data. - "data" : block data. - "hash1" : formatted hash buffer for second hash. - "target" : little endian hash target. -.TP -\fBhelp 'command'\fR -List commands, or get help for a command. -.TP -\fBlistaccounts ['minconf=1']\fR -List accounts and their current balances. - *note: requires dash 0.3.20 or later. -.TP -\fBlistreceivedbyaccount ['minconf=1'] ['includeempty=false']\fR -['minconf'] is the minimum number of confirmations before payments are included. ['includeempty'] whether to include addresses that haven't received any payments. Returns an array of objects containing: - - "account" : the account of the receiving address. - "amount" : total amount received by the address. - "confirmations" : number of confirmations of the most recent transaction included. -.TP -\fBlistreceivedbyaddress ['minconf=1'] ['includeempty=false']\fR -['minconf'] is the minimum number of confirmations before payments are included. ['includeempty'] whether to include addresses that haven't received any payments. Returns an array of objects containing: - - "address" : receiving address. - "account" : the account of the receiving address. - "amount" : total amount received by the address. - "confirmations" : number of confirmations of the most recent transaction included. -.TP -\fBlisttransactions 'account' ['count=10']\fR -Returns a list of the last ['count'] transactions for 'account' \- for all accounts if 'account' is not specified or is "*". Each entry in the list may contain: - - "category" : will be generate, send, receive, or move. - "amount" : amount of transaction. - "fee" : Fee (if any) paid (only for send transactions). - "confirmations" : number of confirmations (only for generate/send/receive). - "txid" : transaction ID (only for generate/send/receive). - "otheraccount" : account funds were moved to or from (only for move). - "message" : message associated with transaction (only for send). - "to" : message-to associated with transaction (only for send). - - *note: requires dash 0.3.20 or later. -.TP -\fBmove <'fromaccount'> <'toaccount'> <'amount'> ['minconf=1'] ['comment']\fR -Moves funds between accounts. -.TP -\fBsendfrom* <'account'> <'dashaddress'> <'amount'> ['minconf=1'] ['comment'] ['comment-to']\fR -Sends amount from account's balance to 'dashaddress'. This method will fail if there is less than amount DASH with ['minconf'] confirmations in the account's balance (unless account is the empty-string-named default account; it behaves like the *sendtoaddress* method). Returns transaction ID on success. -.TP -\fBsendtoaddress 'dashaddress' 'amount' ['comment'] ['comment-to']\fR -Sends amount from the server's available balance to 'dashaddress'. amount is a real and is rounded to the nearest 0.01. Returns transaction id on success. -.TP -\fBstop\fR -Stops the dash server. -.TP -\fBvalidateaddress 'dashaddress'\fR -Checks that 'dashaddress' looks like a proper Dash address. Returns an object containing: - - "isvalid" : true or false. - "ismine" : true if the address is in the server's wallet. - "address" : dashaddress. - - *note: ismine and address are only returned if the address is valid. - -.SH "SEE ALSO" -dash.conf(5) -.SH AUTHOR -This manual page was written by Micah Anderson for the Debian system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 or any later version published by the Free Software Foundation. - -On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. - diff --git a/contrib/debian/rules b/contrib/debian/rules index 23f79be5a2d7..8209fd6a2da6 100755 --- a/contrib/debian/rules +++ b/contrib/debian/rules @@ -1,9 +1,9 @@ #!/usr/bin/make -f # -*- mode: makefile; coding: utf-8 -*- -#DEB_MAKE_CHECK_TARGET = test_dash +#DEB_MAKE_CHECK_TARGET = test_btx #build/bitcoind:: -# $(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),,src/test_dash) +# $(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),,src/test_btx) DEB_INSTALL_EXAMPLES_bitcoind += debian/examples/* DEB_INSTALL_MANPAGES_bitcoind += debian/manpages/* @@ -13,7 +13,7 @@ DEB_INSTALL_MANPAGES_bitcoind += debian/manpages/* override_dh_auto_clean: if [ -f Makefile ]; then $(MAKE) distclean; fi - rm -rf Makefile.in aclocal.m4 configure src/Makefile.in src/dash-config.h.in src/build-aux src/qt/Makefile.in src/qt/test/Makefile.in src/test/Makefile.in + rm -rf Makefile.in aclocal.m4 configure src/Makefile.in src/btx-config.h.in src/build-aux src/qt/Makefile.in src/qt/test/Makefile.in src/test/Makefile.in # Yea, autogen should be run on the source archive, but I like doing git archive override_dh_auto_configure: diff --git a/contrib/devtools/README.md b/contrib/devtools/README.md index 8cfff884a996..e4620b802f8e 100644 --- a/contrib/devtools/README.md +++ b/contrib/devtools/README.md @@ -64,10 +64,10 @@ If only supported symbols are used the return value will be 0 and the output wil If there are 'unsupported' symbols, the return value will be 1 a list like this will be printed: - .../64/test_dash: symbol memcpy from unsupported version GLIBC_2.14 - .../64/test_dash: symbol __fdelt_chk from unsupported version GLIBC_2.15 - .../64/test_dash: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15 - .../64/test_dash: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15 + .../64/test_btx: symbol memcpy from unsupported version GLIBC_2.14 + .../64/test_btx: symbol __fdelt_chk from unsupported version GLIBC_2.15 + .../64/test_btx: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15 + .../64/test_btx: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15 update-translations.py ======================= diff --git a/contrib/devtools/update-translations.py b/contrib/devtools/update-translations.py index a121c1a3c449..4740cf6e83eb 100755 --- a/contrib/devtools/update-translations.py +++ b/contrib/devtools/update-translations.py @@ -26,7 +26,7 @@ # Name of transifex tool TX = 'tx' # Name of source language file -SOURCE_LANG = 'dash_en.ts' +SOURCE_LANG = 'btx_en.ts' # Directory with locale files LOCALE_DIR = 'src/qt/locale' diff --git a/contrib/gitian-descriptors/README.md b/contrib/gitian-descriptors/README.md index faa1c4b194ee..6c6a341e869f 100644 --- a/contrib/gitian-descriptors/README.md +++ b/contrib/gitian-descriptors/README.md @@ -20,7 +20,7 @@ Sanity checks: Once you've got the right hardware and software: - git clone git://github.com/dashpay/dash.git + git clone git://github.com/btxpay/btx.git git clone git://github.com/devrandom/gitian-builder.git mkdir gitian-builder/inputs cd gitian-builder/inputs @@ -62,5 +62,5 @@ Here's a description of Gavin's setup on OSX 10.6: 5. Still inside Ubuntu, tell gitian-builder to use LXC, then follow the "Once you've got the right hardware and software" instructions above: export USE_LXC=1 - git clone git://github.com/dashpay/dash.git + git clone git://github.com/btxpay/btx.git ... etc diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 5a7897ee3206..ddf84d0a85ed 100755 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -1,5 +1,5 @@ --- -name: "dash-linux-0.12" +name: "btx-linux-0.12" enable_cache: true suites: - "precise" @@ -17,8 +17,8 @@ packages: - "binutils-gold" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/dashpay/dash.git" - "dir": "dash" +- "url": "https://github.com/btxpay/btx.git" + "dir": "btx" files: [] script: | WRAP_DIR=$HOME/wrapped @@ -62,7 +62,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd dash + cd btx BASEPREFIX=`pwd`/depends # Build dependencies for each host for i in $HOSTS; do @@ -73,13 +73,13 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - SOURCEDIST=`echo dash-*.tar.gz` + SOURCEDIST=`echo btx-*.tar.gz` DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find btx-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" diff --git a/contrib/gitian-descriptors/gitian-osx-signer.yml b/contrib/gitian-descriptors/gitian-osx-signer.yml index f3c78be5e8b6..b6f5c9d6f2b9 100644 --- a/contrib/gitian-descriptors/gitian-osx-signer.yml +++ b/contrib/gitian-descriptors/gitian-osx-signer.yml @@ -1,5 +1,5 @@ --- -name: "dash-dmg-signer" +name: "btx-dmg-signer" suites: - "precise" architectures: @@ -10,7 +10,7 @@ packages: reference_datetime: "2013-06-01 00:00:00" remotes: [] files: -- "dash-osx-unsigned.tar.gz" +- "btx-osx-unsigned.tar.gz" - "signature.tar.gz" script: | WRAP_DIR=$HOME/wrapped @@ -28,10 +28,10 @@ script: | chmod +x ${WRAP_DIR}/${prog} done - UNSIGNED=dash-osx-unsigned.tar.gz - SIGNED=dash-osx-signed.dmg + UNSIGNED=btx-osx-unsigned.tar.gz + SIGNED=btx-osx-signed.dmg tar -xf ${UNSIGNED} ./detached-sig-apply.sh ${UNSIGNED} signature.tar.gz - ${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "Dash-Qt" -no-pad -r -apple -o uncompressed.dmg signed-app + ${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "BTX-Qt" -no-pad -r -apple -o uncompressed.dmg signed-app ${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED} diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index f8cb34deef22..38e09ad0b4b4 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -1,5 +1,5 @@ --- -name: "dash-osx-0.12" +name: "btx-osx-0.12" enable_cache: true suites: - "precise" @@ -20,8 +20,8 @@ packages: - "libbz2-dev" reference_datetime: "2013-06-01 00:00:00" remotes: -- "url": "https://github.com/dashpay/dash.git" - "dir": "dash" +- "url": "https://github.com/btxpay/btx.git" + "dir": "btx" files: - "MacOSX10.7.sdk.tar.gz" script: | @@ -68,7 +68,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd dash + cd btx BASEPREFIX=`pwd`/depends mkdir -p ${BASEPREFIX}/SDKs @@ -83,14 +83,14 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - SOURCEDIST=`echo dash-*.tar.gz` + SOURCEDIST=`echo btx-*.tar.gz` DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find btx-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -120,7 +120,7 @@ script: | popd make deploy - ${WRAP_DIR}/dmg dmg Dash-Qt.dmg ${OUTDIR}/${DISTNAME}-osx-unsigned.dmg + ${WRAP_DIR}/dmg dmg BTX-Qt.dmg ${OUTDIR}/${DISTNAME}-osx-unsigned.dmg cd installed find . -name "lib*.la" -delete diff --git a/contrib/gitian-descriptors/gitian-rpi2.yml b/contrib/gitian-descriptors/gitian-rpi2.yml index 6bf051f8c21f..fc23a8ca4b92 100644 --- a/contrib/gitian-descriptors/gitian-rpi2.yml +++ b/contrib/gitian-descriptors/gitian-rpi2.yml @@ -1,5 +1,5 @@ --- -name: "dash-raspberry-0.12" +name: "btx-raspberry-0.12" enable_cache: true suites: - "precise" @@ -17,8 +17,8 @@ packages: - "binutils-gold" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/dashpay/dash.git" - "dir": "dash" +- "url": "https://github.com/btxpay/btx.git" + "dir": "btx" files: - "raspberrypi-tools.tar.gz" script: | @@ -67,7 +67,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd dash + cd btx BASEPREFIX=`pwd`/depends # Build dependencies for each host for i in $HOSTS; do @@ -78,13 +78,13 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make NO_QT=1 dist - SOURCEDIST=`echo dash-*.tar.gz` + SOURCEDIST=`echo btx-*.tar.gz` DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find btx-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 9ca5ab6e496d..48b4866f8014 100755 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -1,5 +1,5 @@ --- -name: "dash-win-0.12" +name: "btx-win-0.12" enable_cache: true suites: - "precise" @@ -20,8 +20,8 @@ packages: - "zip" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/dashpay/dash.git" - "dir": "dash" +- "url": "https://github.com/btxpay/btx.git" + "dir": "btx" files: [] script: | WRAP_DIR=$HOME/wrapped @@ -65,7 +65,7 @@ script: | done export PATH=${WRAP_DIR}:${PATH} - cd dash + cd btx BASEPREFIX=`pwd`/depends # Build dependencies for each host for i in $HOSTS; do @@ -76,14 +76,14 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - SOURCEDIST=`echo dash-*.tar.gz` + SOURCEDIST=`echo btx-*.tar.gz` DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp tar xf ../$SOURCEDIST - find dash-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST + find btx-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -100,7 +100,7 @@ script: | make ${MAKEOPTS} make deploy make install-strip - cp -f dash-*setup*.exe $OUTDIR/ + cp -f btx-*setup*.exe $OUTDIR/ cd installed mv ${DISTNAME}/bin/*.dll ${DISTNAME}/lib/ find . -name "lib*.la" -delete diff --git a/contrib/gitian-downloader/luke-jr-key.pgp b/contrib/gitian-downloader/luke-jr-key.pgp index 275b041d2059ece19e1a4ade74b32654ab3a2c56..69445d6cf9796eae4e5c13f97201bb9b1d1d88bd 100644 GIT binary patch delta 37 rcmbPbIo)!DI19g1NJLhVf=y0ocB(^CNyTOjmMAV}py1{c`IE$c5VsS=Rk%CQ5X?ChZ3Xro|jU|eU1th$=nNNfd02Xcx^Z)<= diff --git a/contrib/init/README.md b/contrib/init/README.md index 6b8e244a7faa..91b1b86f959b 100644 --- a/contrib/init/README.md +++ b/contrib/init/README.md @@ -1,9 +1,9 @@ Sample configuration files for: -SystemD: dashd.service -Upstart: dashd.conf -OpenRC: dashd.openrc - dashd.openrcconf +SystemD: btxd.service +Upstart: btxd.conf +OpenRC: btxd.openrc + btxd.openrcconf have been made available to assist packagers in creating node packages here. diff --git a/contrib/init/dashd.conf b/contrib/init/dashd.conf deleted file mode 100644 index 40b9b9a4f986..000000000000 --- a/contrib/init/dashd.conf +++ /dev/null @@ -1,65 +0,0 @@ -description "Dash Core Daemon" - -start on runlevel [2345] -stop on starting rc RUNLEVEL=[016] - -env BITCOIND_BIN="/usr/bin/dashd" -env BITCOIND_USER="dash" -env BITCOIND_GROUP="dash" -env BITCOIND_PIDDIR="/var/run/dashd" -# upstart can't handle variables constructed with other variables -env BITCOIND_PIDFILE="/var/run/dashd/dashd.pid" -env BITCOIND_CONFIGFILE="/etc/dash/dash.conf" -env BITCOIND_DATADIR="/var/lib/dashd" - -expect fork - -respawn -respawn limit 5 120 -kill timeout 60 - -pre-start script - # this will catch non-existent config files - # dashd will check and exit with this very warning, but it can do so - # long after forking, leaving upstart to think everything started fine. - # since this is a commonly encountered case on install, just check and - # warn here. - if ! grep -qs '^rpcpassword=' "$BITCOIND_CONFIGFILE" ; then - echo "ERROR: You must set a secure rpcpassword to run dashd." - echo "The setting must appear in $BITCOIND_CONFIGFILE" - echo - echo "This password is security critical to securing wallets " - echo "and must not be the same as the rpcuser setting." - echo "You can generate a suitable random password using the following" - echo "command from the shell:" - echo - echo "bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'" - echo - echo "It is also recommended that you also set alertnotify so you are " - echo "notified of problems:" - echo - echo "ie: alertnotify=echo %%s | mail -s \"Dash Alert\"" \ - "admin@foo.com" - echo - exit 1 - fi - - mkdir -p "$BITCOIND_PIDDIR" - chmod 0755 "$BITCOIND_PIDDIR" - chown $BITCOIND_USER:$BITCOIND_GROUP "$BITCOIND_PIDDIR" - chown $BITCOIND_USER:$BITCOIND_GROUP "$BITCOIND_CONFIGFILE" - chmod 0660 "$BITCOIND_CONFIGFILE" -end script - -exec start-stop-daemon \ - --start \ - --pidfile "$BITCOIND_PIDFILE" \ - --chuid $BITCOIND_USER:$BITCOIND_GROUP \ - --exec "$BITCOIND_BIN" \ - -- \ - -pid="$BITCOIND_PIDFILE" \ - -conf="$BITCOIND_CONFIGFILE" \ - -datadir="$BITCOIND_DATADIR" \ - -disablewallet \ - -daemon - diff --git a/contrib/init/dashd.openrc b/contrib/init/dashd.openrc deleted file mode 100644 index b1b7144d8770..000000000000 --- a/contrib/init/dashd.openrc +++ /dev/null @@ -1,86 +0,0 @@ -#!/sbin/runscript - -# backward compatibility for existing gentoo layout -# -if [ -d "/var/lib/dash/.dash" ]; then - BITCOIND_DEFAULT_DATADIR="/var/lib/dash/.dash" -else - BITCOIND_DEFAULT_DATADIR="/var/lib/dashd" -fi - -BITCOIND_CONFIGFILE=${BITCOIND_CONFIGFILE:-/etc/dash/dash.conf} -BITCOIND_PIDDIR=${BITCOIND_PIDDIR:-/var/run/dashd} -BITCOIND_PIDFILE=${BITCOIND_PIDFILE:-${BITCOIND_PIDDIR}/dashd.pid} -BITCOIND_DATADIR=${BITCOIND_DATADIR:-${BITCOIND_DEFAULT_DATADIR}} -BITCOIND_USER=${BITCOIND_USER:-dash} -BITCOIND_GROUP=${BITCOIND_GROUP:-dash} -BITCOIND_BIN=${BITCOIND_BIN:-/usr/bin/dashd} - -name="Dash Core Daemon" -description="Dash crypto-currency p2p network daemon" - -command="/usr/bin/dashd" -command_args="-pid=\"${BITCOIND_PIDFILE}\" \ - -conf=\"${BITCOIND_CONFIGFILE}\" \ - -datadir=\"${BITCOIND_DATADIR}\" \ - -daemon \ - ${BITCOIND_OPTS}" - -required_files="${BITCOIND_CONFIGFILE}" -start_stop_daemon_args="-u ${BITCOIND_USER} \ - -N ${BITCOIND_NICE:-0} -w 2000" -pidfile="${BITCOIND_PIDFILE}" -retry=60 - -depend() { - need localmount net -} - -# verify -# 1) that the datadir exists and is writable (or create it) -# 2) that a directory for the pid exists and is writable -# 3) ownership and permissions on the config file -start_pre() { - checkpath \ - -d \ - --mode 0750 \ - --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" \ - "${BITCOIND_DATADIR}" - - checkpath \ - -d \ - --mode 0755 \ - --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" \ - "${BITCOIND_PIDDIR}" - - checkpath -f \ - -o ${BITCOIND_USER}:${BITCOIND_GROUP} \ - -m 0660 \ - ${BITCOIND_CONFIGFILE} - - checkconfig || return 1 -} - -checkconfig() -{ - if ! grep -qs '^rpcpassword=' "${BITCOIND_CONFIGFILE}" ; then - eerror "" - eerror "ERROR: You must set a secure rpcpassword to run dashd." - eerror "The setting must appear in ${BITCOIND_CONFIGFILE}" - eerror "" - eerror "This password is security critical to securing wallets " - eerror "and must not be the same as the rpcuser setting." - eerror "You can generate a suitable random password using the following" - eerror "command from the shell:" - eerror "" - eerror "bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'" - eerror "" - eerror "It is also recommended that you also set alertnotify so you are " - eerror "notified of problems:" - eerror "" - eerror "ie: alertnotify=echo %%s | mail -s \"Dash Alert\"" \ - "admin@foo.com" - eerror "" - return 1 - fi -} diff --git a/contrib/init/dashd.openrcconf b/contrib/init/dashd.openrcconf deleted file mode 100644 index 05f033ae8ec0..000000000000 --- a/contrib/init/dashd.openrcconf +++ /dev/null @@ -1,27 +0,0 @@ -# /etc/conf.d/dashd: config file for /etc/init.d/dashd - -# Config file location -#BITCOIND_CONFIGFILE="/etc/dash/dash.conf" - -# What directory to write pidfile to? (created and owned by $BITCOIND_USER) -#BITCOIND_PIDDIR="/var/run/dashd" - -# What filename to give the pidfile -#BITCOIND_PIDFILE="${BITCOIND_PIDDIR}/dashd.pid" - -# Where to write dashd data (be mindful that the blockchain is large) -#BITCOIND_DATADIR="/var/lib/dashd" - -# User and group to own dashd process -#BITCOIND_USER="dash" -#BITCOIND_GROUP="dash" - -# Path to dashd executable -#BITCOIND_BIN="/usr/bin/dashd" - -# Nice value to run dashd under -#BITCOIND_NICE=0 - -# Additional options (avoid -conf and -datadir, use flags above) -BITCOIND_OPTS="-disablewallet" - diff --git a/contrib/init/dashd.service b/contrib/init/dashd.service deleted file mode 100644 index 732ac647d38a..000000000000 --- a/contrib/init/dashd.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Dash's distributed currency daemon -After=network.target - -[Service] -User=dash -Group=dash - -Type=forking -PIDFile=/var/lib/dashd/dashd.pid -ExecStart=/usr/bin/dashd -daemon -pid=/var/lib/dashd/dashd.pid \ --conf=/etc/dash/dash.conf -datadir=/var/lib/dashd -disablewallet - -Restart=always -PrivateTmp=true -TimeoutStopSec=60s -TimeoutStartSec=2s -StartLimitInterval=120s -StartLimitBurst=5 - -[Install] -WantedBy=multi-user.target diff --git a/contrib/macdeploy/README.md b/contrib/macdeploy/README.md index 19b0f1a01f1e..d5a96648d07c 100644 --- a/contrib/macdeploy/README.md +++ b/contrib/macdeploy/README.md @@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual: During the process, the disk image window will pop up briefly where the fancy settings are applied. This is normal, please do not interfere. -When finished, it will produce `Dash-Qt.dmg`. +When finished, it will produce `BTX-Qt.dmg`. diff --git a/contrib/macdeploy/background.psd b/contrib/macdeploy/background.psd index 5889676f8e3d805568b63d9702eced2376ca8f7e..76aab6d90266d868dae134b83567805dcfa992ab 100644 GIT binary patch delta 72 zcmdn@mvh%&&W0_FVG&|ZArby*X~n4}3I=)x3i>{od8t65?GA?-TNs&vtm%yXj8b66 XgJq0T(~dI6w0A`@Ztsd>GEo5lyoVV3 delta 37 vcmV+=0NVe${RzJP34pW#R#>+lr2*Ihm;A&5T$hlq0S1SRS^>9=S^_R4OZyM3 diff --git a/contrib/macdeploy/detached-sig-apply.sh b/contrib/macdeploy/detached-sig-apply.sh index b9c64ef94078..3ce361cab1f7 100755 --- a/contrib/macdeploy/detached-sig-apply.sh +++ b/contrib/macdeploy/detached-sig-apply.sh @@ -5,7 +5,7 @@ UNSIGNED=$1 SIGNATURE=$2 ARCH=x86_64 ROOTDIR=dist -BUNDLE=${ROOTDIR}/Dash-Qt.app +BUNDLE=${ROOTDIR}/BTX-Qt.app TEMPDIR=signed.temp OUTDIR=signed-app diff --git a/contrib/macdeploy/detached-sig-create.sh b/contrib/macdeploy/detached-sig-create.sh index 200b71ce44e8..f9beb91f216d 100755 --- a/contrib/macdeploy/detached-sig-create.sh +++ b/contrib/macdeploy/detached-sig-create.sh @@ -2,7 +2,7 @@ set -e ROOTDIR=dist -BUNDLE=${ROOTDIR}/Dash-Qt.app +BUNDLE=${ROOTDIR}/BTX-Qt.app CODESIGN=codesign TEMPDIR=sign.temp TEMPLIST=${TEMPDIR}/signatures.txt diff --git a/contrib/macdeploy/fancy.plist b/contrib/macdeploy/fancy.plist index 3ee710478467..583b07f492c7 100644 --- a/contrib/macdeploy/fancy.plist +++ b/contrib/macdeploy/fancy.plist @@ -22,7 +22,7 @@ 370 156 - Dash-Qt.app + BTX-Qt.app 128 156 diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus index a3358033af8a..050eb4256f70 100755 --- a/contrib/macdeploy/macdeployqtplus +++ b/contrib/macdeploy/macdeployqtplus @@ -836,7 +836,7 @@ if config.dmg is not None: items_positions.append(itemscript.substitute(params)) params = { - "disk" : "Dash-Qt", + "disk" : "BTX-Qt", "window_bounds" : "300,300,800,620", "icon_size" : "96", "background_commands" : "", diff --git a/contrib/spendfrom/README.md b/contrib/spendfrom/README.md index 9a6924dca873..e2bec067caa2 100644 --- a/contrib/spendfrom/README.md +++ b/contrib/spendfrom/README.md @@ -7,7 +7,7 @@ address (or addresses). Depends on [jsonrpc](http://json-rpc.org/). spendfrom.py --from=FROMADDRESS1[,FROMADDRESS2] --to=TOADDRESS --amount=amount \ - --fee=fee --datadir=/path/to/.dash --testnet --dry_run + --fee=fee --datadir=/path/to/.btx --testnet --dry_run With no arguments, outputs a list of amounts associated with addresses. @@ -16,7 +16,7 @@ With arguments, sends coins received by the `FROMADDRESS` addresses to the `TOAD ### Notes ### - You may explicitly specify how much fee to pay (a fee more than 1% of the amount -will fail, though, to prevent dash-losing accidents). Spendfrom may fail if +will fail, though, to prevent btx-losing accidents). Spendfrom may fail if it thinks the transaction would never be confirmed (if the amount being sent is too small, or if the transaction is too many bytes for the fee). diff --git a/contrib/spendfrom/spendfrom.py b/contrib/spendfrom/spendfrom.py index e8d3d9fd77a5..52e54084025f 100755 --- a/contrib/spendfrom/spendfrom.py +++ b/contrib/spendfrom/spendfrom.py @@ -1,13 +1,13 @@ #!/usr/bin/env python # -# Use the raw transactions API to spend dashs received on particular addresses, +# Use the raw transactions API to spend btxs received on particular addresses, # and send any change back to that same address. # # Example usage: # spendfrom.py # Lists available funds # spendfrom.py --from=ADDRESS --to=ADDRESS --amount=11.00 # -# Assumes it will talk to a dashd or Dash-Qt running +# Assumes it will talk to a btxd or BTX-Qt running # on localhost. # # Depends on jsonrpc @@ -33,15 +33,15 @@ def check_json_precision(): raise RuntimeError("JSON encode/decode loses precision") def determine_db_dir(): - """Return the default location of the dash data directory""" + """Return the default location of the btx data directory""" if platform.system() == "Darwin": - return os.path.expanduser("~/Library/Application Support/Dash/") + return os.path.expanduser("~/Library/Application Support/BTX/") elif platform.system() == "Windows": - return os.path.join(os.environ['APPDATA'], "Dash") - return os.path.expanduser("~/.dash") + return os.path.join(os.environ['APPDATA'], "BTX") + return os.path.expanduser("~/.btx") def read_bitcoin_config(dbdir): - """Read the dash.conf file from dbdir, returns dictionary of settings""" + """Read the btx.conf file from dbdir, returns dictionary of settings""" from ConfigParser import SafeConfigParser class FakeSecHead(object): @@ -59,11 +59,11 @@ def readline(self): return s config_parser = SafeConfigParser() - config_parser.readfp(FakeSecHead(open(os.path.join(dbdir, "dash.conf")))) + config_parser.readfp(FakeSecHead(open(os.path.join(dbdir, "btx.conf")))) return dict(config_parser.items("all")) def connect_JSON(config): - """Connect to a dash JSON-RPC server""" + """Connect to a btx JSON-RPC server""" testnet = config.get('testnet', '0') testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False if not 'rpcport' in config: @@ -72,7 +72,7 @@ def connect_JSON(config): try: result = ServiceProxy(connect) # ServiceProxy is lazy-connect, so send an RPC command mostly to catch connection errors, - # but also make sure the dashd we're talking to is/isn't testnet: + # but also make sure the btxd we're talking to is/isn't testnet: if result.getmininginfo()['testnet'] != testnet: sys.stderr.write("RPC server at "+connect+" testnet setting mismatch\n") sys.exit(1) @@ -81,36 +81,36 @@ def connect_JSON(config): sys.stderr.write("Error connecting to RPC server at "+connect+"\n") sys.exit(1) -def unlock_wallet(dashd): - info = dashd.getinfo() +def unlock_wallet(btxd): + info = btxd.getinfo() if 'unlocked_until' not in info: return True # wallet is not encrypted t = int(info['unlocked_until']) if t <= time.time(): try: passphrase = getpass.getpass("Wallet is locked; enter passphrase: ") - dashd.walletpassphrase(passphrase, 5) + btxd.walletpassphrase(passphrase, 5) except: sys.stderr.write("Wrong passphrase\n") - info = dashd.getinfo() + info = btxd.getinfo() return int(info['unlocked_until']) > time.time() -def list_available(dashd): +def list_available(btxd): address_summary = dict() address_to_account = dict() - for info in dashd.listreceivedbyaddress(0): + for info in btxd.listreceivedbyaddress(0): address_to_account[info["address"]] = info["account"] - unspent = dashd.listunspent(0) + unspent = btxd.listunspent(0) for output in unspent: # listunspent doesn't give addresses, so: - rawtx = dashd.getrawtransaction(output['txid'], 1) + rawtx = btxd.getrawtransaction(output['txid'], 1) vout = rawtx["vout"][output['vout']] pk = vout["scriptPubKey"] - # This code only deals with ordinary pay-to-dash-address + # This code only deals with ordinary pay-to-btx-address # or pay-to-script-hash outputs right now; anything exotic is ignored. if pk["type"] != "pubkeyhash" and pk["type"] != "scripthash": continue @@ -139,8 +139,8 @@ def select_coins(needed, inputs): n += 1 return (outputs, have-needed) -def create_tx(dashd, fromaddresses, toaddress, amount, fee): - all_coins = list_available(dashd) +def create_tx(btxd, fromaddresses, toaddress, amount, fee): + all_coins = list_available(btxd) total_available = Decimal("0.0") needed = amount+fee @@ -159,7 +159,7 @@ def create_tx(dashd, fromaddresses, toaddress, amount, fee): # Note: # Python's json/jsonrpc modules have inconsistent support for Decimal numbers. # Instead of wrestling with getting json.dumps() (used by jsonrpc) to encode - # Decimals, I'm casting amounts to float before sending them to dashd. + # Decimals, I'm casting amounts to float before sending them to btxd. # outputs = { toaddress : float(amount) } (inputs, change_amount) = select_coins(needed, potential_inputs) @@ -170,8 +170,8 @@ def create_tx(dashd, fromaddresses, toaddress, amount, fee): else: outputs[change_address] = float(change_amount) - rawtx = dashd.createrawtransaction(inputs, outputs) - signed_rawtx = dashd.signrawtransaction(rawtx) + rawtx = btxd.createrawtransaction(inputs, outputs) + signed_rawtx = btxd.signrawtransaction(rawtx) if not signed_rawtx["complete"]: sys.stderr.write("signrawtransaction failed\n") sys.exit(1) @@ -179,10 +179,10 @@ def create_tx(dashd, fromaddresses, toaddress, amount, fee): return txdata -def compute_amount_in(dashd, txinfo): +def compute_amount_in(btxd, txinfo): result = Decimal("0.0") for vin in txinfo['vin']: - in_info = dashd.getrawtransaction(vin['txid'], 1) + in_info = btxd.getrawtransaction(vin['txid'], 1) vout = in_info['vout'][vin['vout']] result = result + vout['value'] return result @@ -193,12 +193,12 @@ def compute_amount_out(txinfo): result = result + vout['value'] return result -def sanity_test_fee(dashd, txdata_hex, max_fee): +def sanity_test_fee(btxd, txdata_hex, max_fee): class FeeError(RuntimeError): pass try: - txinfo = dashd.decoderawtransaction(txdata_hex) - total_in = compute_amount_in(dashd, txinfo) + txinfo = btxd.decoderawtransaction(txdata_hex) + total_in = compute_amount_in(btxd, txinfo) total_out = compute_amount_out(txinfo) if total_in-total_out > max_fee: raise FeeError("Rejecting transaction, unreasonable fee of "+str(total_in-total_out)) @@ -221,15 +221,15 @@ def main(): parser = optparse.OptionParser(usage="%prog [options]") parser.add_option("--from", dest="fromaddresses", default=None, - help="addresses to get dashs from") + help="addresses to get btxs from") parser.add_option("--to", dest="to", default=None, - help="address to get send dashs to") + help="address to get send btxs to") parser.add_option("--amount", dest="amount", default=None, help="amount to send") parser.add_option("--fee", dest="fee", default="0.0", help="fee to include") parser.add_option("--datadir", dest="datadir", default=determine_db_dir(), - help="location of dash.conf file with RPC username/password (default: %default)") + help="location of btx.conf file with RPC username/password (default: %default)") parser.add_option("--testnet", dest="testnet", default=False, action="store_true", help="Use the test network") parser.add_option("--dry_run", dest="dry_run", default=False, action="store_true", @@ -240,10 +240,10 @@ def main(): check_json_precision() config = read_bitcoin_config(options.datadir) if options.testnet: config['testnet'] = True - dashd = connect_JSON(config) + btxd = connect_JSON(config) if options.amount is None: - address_summary = list_available(dashd) + address_summary = list_available(btxd) for address,info in address_summary.iteritems(): n_transactions = len(info['outputs']) if n_transactions > 1: @@ -253,14 +253,14 @@ def main(): else: fee = Decimal(options.fee) amount = Decimal(options.amount) - while unlock_wallet(dashd) == False: + while unlock_wallet(btxd) == False: pass # Keep asking for passphrase until they get it right - txdata = create_tx(dashd, options.fromaddresses.split(","), options.to, amount, fee) - sanity_test_fee(dashd, txdata, amount*Decimal("0.01")) + txdata = create_tx(btxd, options.fromaddresses.split(","), options.to, amount, fee) + sanity_test_fee(btxd, txdata, amount*Decimal("0.01")) if options.dry_run: print(txdata) else: - txid = dashd.sendrawtransaction(txdata) + txid = btxd.sendrawtransaction(txdata) print(txid) if __name__ == '__main__': diff --git a/doc/Doxyfile b/doc/Doxyfile index 563edc64b268..847a2b90161f 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -28,7 +28,7 @@ DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = Dash +PROJECT_NAME = BTX # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or diff --git a/doc/README.md b/doc/README.md index 2dab1a7c7a84..7c062301d818 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,4 +1,4 @@ -Dash Core 0.12.0 +BTX Core 0.12.0 ===================== Setup @@ -7,46 +7,46 @@ Setup Running --------------------- -The following are some helpful notes on how to run Dash on your native platform. +The following are some helpful notes on how to run BTX on your native platform. ### Unix -You need the Qt4 run-time libraries to run Dash-Qt. On Debian or Ubuntu: +You need the Qt4 run-time libraries to run BTX-Qt. On Debian or Ubuntu: sudo apt-get install libqtgui4 Unpack the files into a directory and run: -- bin/32/dash-qt (GUI, 32-bit) or bin/32/dashd (headless, 32-bit) -- bin/64/dash-qt (GUI, 64-bit) or bin/64/dashd (headless, 64-bit) +- bin/32/btx-qt (GUI, 32-bit) or bin/32/btxd (headless, 32-bit) +- bin/64/btx-qt (GUI, 64-bit) or bin/64/btxd (headless, 64-bit) ### Windows -Unpack the files into a directory, and then run dash-qt.exe. +Unpack the files into a directory, and then run btx-qt.exe. ### OSX -Drag Dash-Qt to your applications folder, and then run Dash-Qt. +Drag BTX-Qt to your applications folder, and then run BTX-Qt. ### Need Help? -* See the documentation at the [Dash Wiki](https://en.bitcoin.it/wiki/Main_Page) ***TODO*** +* See the documentation at the [BTX Wiki](https://en.bitcoin.it/wiki/Main_Page) ***TODO*** for help and more information. -* Ask for help on [#dashpay](http://webchat.freenode.net?channels=dashpay) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=dashpay). -* Ask for help on the [DashTalk](https://dashtalk.org/) forums. +* Ask for help on [#btxpay](http://webchat.freenode.net?channels=btxpay) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=btxpay). +* Ask for help on the [BTXTalk](https://btxtalk.org/) forums. Building --------------------- -The following are developer notes on how to build Dash on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc. +The following are developer notes on how to build BTX on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc. - [OSX Build Notes](build-osx.md) - [Unix Build Notes](build-unix.md) Development --------------------- -The Dash repo's [root README](https://github.com/dashpay/dash/blob/master/README.md) contains relevant information on the development process and automated testing. +The BTX repo's [root README](https://github.com/btxpay/btx/blob/master/README.md) contains relevant information on the development process and automated testing. - [Coding Guidelines](coding.md) - [Multiwallet Qt Development](multiwallet-qt.md) @@ -57,8 +57,8 @@ The Dash repo's [root README](https://github.com/dashpay/dash/blob/master/README - [Unit Tests](unit-tests.md) ### Resources -* Discuss on the [DashTalk](https://dashtalk.org/) forums, in the Development & Technical Discussion board. -* Discuss on [#dashpay](http://webchat.freenode.net/?channels=dashpay) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=dashpay). +* Discuss on the [BTXTalk](https://btxtalk.org/) forums, in the Development & Technical Discussion board. +* Discuss on [#btxpay](http://webchat.freenode.net/?channels=btxpay) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=btxpay). ### Miscellaneous - [Assets Attribution](assets-attribution.md) diff --git a/doc/README_windows.txt b/doc/README_windows.txt index dedbad6b722e..b4ec0ce98f69 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,9 +1,9 @@ -Dash Core 0.12.0 +BTX Core 0.12.0 ===================== Intro ----- -Dash is a free open source peer-to-peer electronic cash system that is +BTX is a free open source peer-to-peer electronic cash system that is completely decentralized, without the need for a central server or trusted parties. Users hold the crypto keys to their own money and transact directly with each other, with the help of a P2P network to check for double-spending. @@ -11,13 +11,13 @@ with each other, with the help of a P2P network to check for double-spending. Setup ----- -Unpack the files into a directory and run dash-qt.exe. +Unpack the files into a directory and run btx-qt.exe. -Dash Core is the original Dash client and it builds the backbone of the network. -However, it downloads and stores the entire history of Dash transactions; +BTX Core is the original BTX client and it builds the backbone of the network. +However, it downloads and stores the entire history of BTX transactions; depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. -See the dash wiki at: +See the btx wiki at: https://en.bitcoin.it/wiki/Main_Page ***TODO*** for more help and information. diff --git a/doc/build-osx.md b/doc/build-osx.md index e4354beeee37..016d4860f804 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -1,6 +1,6 @@ Mac OS X Build Instructions and Notes ==================================== -This guide will show you how to build dashd (headless client) for OSX. +This guide will show you how to build btxd (headless client) for OSX. Notes ----- @@ -58,19 +58,19 @@ The rest of these commands are run inside brew interactive mode: /private/tmp/berkeley-db4-UGpd0O $ exit ``` -After exiting, you'll get a warning that the install is keg-only, which means it wasn't symlinked to `/usr/local`. You don't need it to link it to build dash, but if you want to, here's how: +After exiting, you'll get a warning that the install is keg-only, which means it wasn't symlinked to `/usr/local`. You don't need it to link it to build btx, but if you want to, here's how: $ brew link --force berkeley-db4 -### Building `dashd` +### Building `btxd` 1. Clone the github tree to get the source code and go into the directory. - git clone https://github.com/dashpay/dash.git - cd dash + git clone https://github.com/btxpay/btx.git + cd btx -2. Build dashd: +2. Build btxd: ./autogen.sh ./configure @@ -80,7 +80,7 @@ After exiting, you'll get a warning that the install is keg-only, which means it make check -4. (Optional) You can also install dashd to your path: +4. (Optional) You can also install btxd to your path: make install @@ -92,7 +92,7 @@ Download Qt Creator from http://www.qt.io/download/. Download the "community edi 1. Make sure you installed everything through homebrew mentioned above 2. Do a proper ./configure --with-gui=qt5 --enable-debug 3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project -4. Enter "dash-qt" as project name, enter src/qt as location +4. Enter "btx-qt" as project name, enter src/qt as location 5. Leave the file selection as it is 6. Confirm the "summary page" 7. In the "Projects" tab select "Manage Kits..." @@ -102,11 +102,11 @@ Download Qt Creator from http://www.qt.io/download/. Download the "community edi Creating a release build ------------------------ -You can ignore this section if you are building `dashd` for your own use. +You can ignore this section if you are building `btxd` for your own use. -dashd/dash-cli binaries are not included in the Dash-Qt.app bundle. +btxd/btx-cli binaries are not included in the BTX-Qt.app bundle. -If you are building `dashd` or `Dash-Qt` for others, your build machine should be set up +If you are building `btxd` or `BTX-Qt` for others, your build machine should be set up as follows for maximum compatibility: All dependencies should be compiled with these flags: @@ -115,30 +115,30 @@ All dependencies should be compiled with these flags: -arch x86_64 -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -Once dependencies are compiled, see release-process.md for how the Dash-Qt.app +Once dependencies are compiled, see release-process.md for how the BTX-Qt.app bundle is packaged and signed to create the .dmg disk image that is distributed. Running ------- -It's now available at `./dashd`, provided that you are still in the `src` +It's now available at `./btxd`, provided that you are still in the `src` directory. We have to first create the RPC configuration file, though. -Run `./dashd` to get the filename where it should be put, or just try these +Run `./btxd` to get the filename where it should be put, or just try these commands: - echo -e "rpcuser=dashrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Dash/dash.conf" - chmod 600 "/Users/${USER}/Library/Application Support/Dash/dash.conf" + echo -e "rpcuser=btxrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/BTX/btx.conf" + chmod 600 "/Users/${USER}/Library/Application Support/BTX/btx.conf" The next time you run it, it will start downloading the blockchain, but it won't output anything while it's doing this. This process may take several hours; you can monitor its process by looking at the debug.log file, like this: - tail -f $HOME/Library/Application\ Support/Dash/debug.log + tail -f $HOME/Library/Application\ Support/BTX/debug.log Other commands: ------- - ./dashd -daemon # to start the dash daemon. - ./dash-cli --help # for a list of command-line options. - ./dash-cli help # When the daemon is running, to get a list of RPC commands + ./btxd -daemon # to start the btx daemon. + ./btx-cli --help # for a list of command-line options. + ./btx-cli help # When the daemon is running, to get a list of RPC commands diff --git a/doc/build-unix.md b/doc/build-unix.md index 53966f95abb0..b83332961699 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -1,10 +1,10 @@ UNIX BUILD NOTES ==================== -Some notes on how to build Dash in Unix. +Some notes on how to build BTX in Unix. Note --------------------- -Always use absolute paths to configure and compile dash and the dependencies, +Always use absolute paths to configure and compile btx and the dependencies, for example, when specifying the the path of the dependency: ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX @@ -22,7 +22,7 @@ make make install # optional ``` -This will build dash-qt as well if the dependencies are met. +This will build btx-qt as well if the dependencies are met. Dependencies --------------------- @@ -50,7 +50,7 @@ System requirements -------------------- C++ compilers are memory-hungry. It is recommended to have at least 1 GB of -memory available when compiling Dash Core. With 512MB of memory or less +memory available when compiling BTX Core. With 512MB of memory or less compilation will take much longer due to swap thrashing. Dependency Build Instructions: Ubuntu & Debian @@ -94,7 +94,7 @@ Optional: Dependencies for the GUI: Ubuntu & Debian ----------------------------------------- -If you want to build Dash-Qt, make sure that the required packages for Qt development +If you want to build BTX-Qt, make sure that the required packages for Qt development are installed. Either Qt 4 or Qt 5 are necessary to build the GUI. If both Qt 4 and Qt 5 are installed, Qt 4 will be used. Pass `--with-gui=qt5` to configure to choose Qt5. To build without GUI pass `--without-gui`. @@ -111,12 +111,12 @@ libqrencode (optional) can be installed with: sudo apt-get install libqrencode-dev -Once these are installed, they will be found by configure and a dash-qt executable will be +Once these are installed, they will be found by configure and a btx-qt executable will be built by default. Notes ----- -The release is built with GCC and then "strip dashd" to strip the debug +The release is built with GCC and then "strip btxd" to strip the debug symbols, which reduces the executable size by about 90%. @@ -147,7 +147,7 @@ It is recommended to use Berkeley DB 4.8. If you have to build it yourself: ```bash DASH_ROOT=$(pwd) -# Pick some path to install BDB to, here we create a directory within the dash directory +# Pick some path to install BDB to, here we create a directory within the btx directory BDB_PREFIX="${DASH_ROOT}/db4" mkdir -p $BDB_PREFIX @@ -163,7 +163,7 @@ cd db-4.8.30.NC/build_unix/ ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX make install -# Configure Dash Core to use our own-built instance of BDB +# Configure BTX Core to use our own-built instance of BDB cd $DASH_ROOT ./configure (other args...) LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" ``` @@ -181,7 +181,7 @@ If you need to build Boost yourself: Security -------- -To help make your Dash installation more secure by making certain attacks impossible to +To help make your BTX installation more secure by making certain attacks impossible to exploit even if a vulnerability is found, binaries are hardened by default. This can be disabled with: @@ -205,7 +205,7 @@ Hardening enables the following features: To test that you have built PIE executable, install scanelf, part of paxutils, and use: - scanelf -e ./dashd + scanelf -e ./btxd The output should contain: TYPE @@ -213,13 +213,13 @@ Hardening enables the following features: * Non-executable Stack If the stack is executable then trivial stack based buffer overflow exploits are possible if - vulnerable buffers are found. By default, dash should be built with a non-executable stack + vulnerable buffers are found. By default, btx should be built with a non-executable stack but if one of the libraries it uses asks for an executable stack or someone makes a mistake and uses a compiler extension which requires an executable stack, it will silently build an executable without the non-executable stack protection. To verify that the stack is non-executable after compiling use: - `scanelf -e ./dashd` + `scanelf -e ./btxd` the output should contain: STK/REL/PTL @@ -229,7 +229,7 @@ Hardening enables the following features: Disable-wallet mode -------------------- -When the intention is to run only a P2P node without a wallet, dash may be compiled in +When the intention is to run only a P2P node without a wallet, btx may be compiled in disable-wallet mode with: ./configure --disable-wallet diff --git a/doc/gitian-building.md b/doc/gitian-building.md index d287c675ec5e..5c0048a5745c 100644 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -1,9 +1,9 @@ Gitian building ================ -*Setup instructions for a gitian build of Dash using a Debian VM or physical system.* +*Setup instructions for a gitian build of BTX using a Debian VM or physical system.* -Gitian is the deterministic build process that is used to build the Dash +Gitian is the deterministic build process that is used to build the BTX Core executables. It provides a way to be reasonably sure that the executables are really built from source on GitHub. It also makes sure that the same, tested dependencies are used and statically built into the executable. @@ -11,7 +11,7 @@ the same, tested dependencies are used and statically built into the executable. Multiple developers build the source code by following a specific descriptor ("recipe"), cryptographically sign the result, and upload the resulting signature. These results are compared and only if they match, the build is accepted and uploaded -to dashpay.io. +to btxpay.io. More independent gitian builders are needed, which is why I wrote this guide. It is preferred to follow these steps yourself instead of using someone else's @@ -26,7 +26,7 @@ Table of Contents - [Installing gitian](#installing-gitian) - [Setting up gitian images](#setting-up-gitian-images) - [Getting and building the inputs](#getting-and-building-the-inputs) -- [Building Dash](#building-dash) +- [Building BTX](#building-btx) - [Building an alternative repository](#building-an-alternative-repository) - [Signing externally](#signing-externally) - [Uploading signatures](#uploading-signatures) @@ -277,12 +277,12 @@ cd .. **Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. -Clone the git repositories for dash and gitian and then checkout the dash version that you want to build. +Clone the git repositories for btx and gitian and then checkout the btx version that you want to build. ```bash git clone https://github.com/devrandom/gitian-builder.git -git clone https://github.com/dashpay/dash.git -cd dash +git clone https://github.com/btxpay/btx.git +cd btx git checkout v${VERSION} cd .. ``` @@ -321,16 +321,16 @@ There will be a lot of warnings printed during build of the images. These can be Getting and building the inputs -------------------------------- -Follow the instructions in [doc/release-process.md](release-process.md) in the dash repository +Follow the instructions in [doc/release-process.md](release-process.md) in the btx repository under 'Fetch and build inputs' to install sources which require manual intervention. Also follow the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing for gitian to work offline. -Building Dash +Building BTX ---------------- -To build Dash (for Linux, OSX and Windows) just follow the steps under 'perform -gitian builds' in [doc/release-process.md](release-process.md) in the dash repository. +To build BTX (for Linux, OSX and Windows) just follow the steps under 'perform +gitian builds' in [doc/release-process.md](release-process.md) in the btx repository. This may take a long time as it also builds the dependencies needed for each descriptor. These dependencies will be cached after a successful build to avoid rebuilding them when possible. @@ -345,12 +345,12 @@ tail -f var/build.log Output from `gbuild` will look something like ```bash - Initialized empty Git repository in /home/debian/gitian-builder/inputs/dash/.git/ + Initialized empty Git repository in /home/debian/gitian-builder/inputs/btx/.git/ remote: Reusing existing pack: 35606, done. remote: Total 35606 (delta 0), reused 0 (delta 0) Receiving objects: 100% (35606/35606), 26.52 MiB | 4.28 MiB/s, done. Resolving deltas: 100% (25724/25724), done. - From https://github.com/dashpay/dash + From https://github.com/btxpay/btx ... (new tags, new branch etc) --- Building for precise x86_64 --- Stopping target if it is up @@ -377,11 +377,11 @@ and inputs. For example: ```bash -URL=https://github.com/crowning-/dash.git +URL=https://github.com/crowning-/btx.git COMMIT=b616fb8ef0d49a919b72b0388b091aaec5849b96 -./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-linux.yml -./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-win.yml -./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-osx.yml +./bin/gbuild --commit btx=${COMMIT} --url btx=${URL} ../btx/contrib/gitian-descriptors/gitian-linux.yml +./bin/gbuild --commit btx=${COMMIT} --url btx=${URL} ../btx/contrib/gitian-descriptors/gitian-win.yml +./bin/gbuild --commit btx=${COMMIT} --url btx=${URL} ../btx/contrib/gitian-descriptors/gitian-osx.yml ``` Signing externally @@ -396,9 +396,9 @@ When you execute `gsign` you will get an error from GPG, which can be ignored. C in `gitian.sigs` to your signing machine and do ```bash - gpg --detach-sign ${VERSION}-linux/${SIGNER}/dash-build.assert - gpg --detach-sign ${VERSION}-win/${SIGNER}/dash-build.assert - gpg --detach-sign ${VERSION}-osx/${SIGNER}/dash-build.assert + gpg --detach-sign ${VERSION}-linux/${SIGNER}/btx-build.assert + gpg --detach-sign ${VERSION}-win/${SIGNER}/btx-build.assert + gpg --detach-sign ${VERSION}-osx/${SIGNER}/btx-build.assert ``` This will create the `.sig` files that can be committed together with the `.assert` files to assert your @@ -408,6 +408,6 @@ Uploading signatures (not yet implemented) --------------------- In the future it will be possible to push your signatures (both the `.assert` and `.assert.sig` files) to the -[dash/gitian.sigs](https://github.com/dashpay/gitian.sigs/) repository, or if that's not possible to create a pull +[btx/gitian.sigs](https://github.com/btxpay/gitian.sigs/) repository, or if that's not possible to create a pull request. There will be an official announcement when this repository is online. diff --git a/doc/guide-startmany.md b/doc/guide-startmany.md index 322fec1dc78b..c401e6d806d9 100644 --- a/doc/guide-startmany.md +++ b/doc/guide-startmany.md @@ -95,7 +95,7 @@ Issue the following: Make note of the hash (which is your collaterla_output) and index. ### Enter your MasterNode details into your masternode.conf file -[From the dash github repo](https://github.com/darkcoin/darkcoin/blob/master/doc/masternode_conf.md) +[From the btx github repo](https://github.com/darkcoin/darkcoin/blob/master/doc/masternode_conf.md) The new masternode.conf format consists of a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id and collateral output index, donation address and donation percentage (the latter two are optional and should be in format "address:percentage"). @@ -112,20 +112,20 @@ mn01 127.0.0.1:9999 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84 mn02 127.0.0.2:9999 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh:25 ``` -## What about the dash.conf file? +## What about the btx.conf file? -If you are using a masternode.conf file you no longer need the dash.conf file. The exception is if you need custom settings (thanks oblox). +If you are using a masternode.conf file you no longer need the btx.conf file. The exception is if you need custom settings (thanks oblox). -## Update dash.conf on server +## Update btx.conf on server -If you generated a new masternode private key, you will need to update the remote dash.conf files. +If you generated a new masternode private key, you will need to update the remote btx.conf files. Shut down the daemon and then edit the file. -```sudo nano .dash/dash.conf``` +```sudo nano .btx/btx.conf``` ### Edit the masternodeprivkey -If you generated a new masternode private key, you will need to update the masternodeprivkey value in your remote dash.conf file. +If you generated a new masternode private key, you will need to update the masternodeprivkey value in your remote btx.conf file. ## Start your MasterNodes @@ -135,9 +135,9 @@ If your remote server is not running, start your remote daemon as you normally w I usually confirm that remote is on the correct block by issuing: -```dashd getinfo``` +```btxd getinfo``` -And compare with the official explorer at http://explorer.dashpay.io/chain/Dash +And compare with the official explorer at http://explorer.btxpay.io/chain/BTX ### Local diff --git a/doc/keepass.md b/doc/keepass.md index 6b9756f77e85..c934e7bc0ba3 100644 --- a/doc/keepass.md +++ b/doc/keepass.md @@ -12,7 +12,7 @@ The implementation is dependent on the following: ###What's new### -The following new options are available for dashd and dash-qt: +The following new options are available for btxd and btx-qt: - _-keepass_ Use KeePass 2 integration using KeePassHttp plugin (default: 0) - _-keepassport=_ Connect to KeePassHttp on port (default: 19455) - _-keepasskey=_ KeePassHttp key for AES encrypted communication with KeePass @@ -22,27 +22,27 @@ The following new options are available for dashd and dash-qt: The following rpc commands are available: - _keepass genkey_: generates a base64 encoded 256 bit AES key that can be used for the communication with KeePassHttp. Only necessary for manual configuration. Use init for automatic configuration. - - _keepass init_: sets up the association between dashd and keepass by generating an AES key and sending an association message to KeePassHttp. This will trigger KeePass to ask for an Id for the association. Returns the association and the base64 encoded string for the AES key. + - _keepass init_: sets up the association between btxd and keepass by generating an AES key and sending an association message to KeePassHttp. This will trigger KeePass to ask for an Id for the association. Returns the association and the base64 encoded string for the AES key. - _keepass setpassphrase_: updates the passphrase in KeePassHttp to a new value. This should match the passphrase you intend to use for the wallet. Please note that the standard RPC commands _walletpassphrasechange_ and the wallet encrption from the QT GUI already send the updates to KeePassHttp, so this is only necessary for manual manipulation of the password. ###How to setup### -Sample initialization flow from _dash-qt_ console (this needs to be done only once to set up the association): +Sample initialization flow from _btx-qt_ console (this needs to be done only once to set up the association): - Have KeePass running with an open database - - Start _dash-qt_ + - Start _btx-qt_ - Open console - - Type "_keepass init_" in dash-qt console + - Type "_keepass init_" in btx-qt console - Keepass pops up and asks for an association id, fill that in, for example, "_mydrkwallet_" - - You should get a response like this "_Association successful. Id: mydrkwalletdash - Key: AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=_" - - Edit _dash.conf_ and fill in these values + - You should get a response like this "_Association successful. Id: mydrkwalletbtx - Key: AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=_" + - Edit _btx.conf_ and fill in these values ``` keepass=1 keepasskey=AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE= keepassid=mydrkwallet keepassname=testwallet ``` - - Restart _dash-qt_ + - Restart _btx-qt_ At this point, the association is made. The next action depends on your particular situation: @@ -51,4 +51,4 @@ At this point, the association is made. The next action depends on your particul At this point, the passphrase is stored in KeePassHttp. When Unlocking the wallet, one can use _keepass_ as the passphrase to trigger retrieval of the password. This works from the RPC commands as well as the GUI. -Extended guide with screenshots is also available: https://dashtalk.org/threads/keepass-integration.3620/ +Extended guide with screenshots is also available: https://btxtalk.org/threads/keepass-integration.3620/ diff --git a/doc/masternode-budget.md b/doc/masternode-budget.md index 2189d9d66e4b..f8cb371936fc 100644 --- a/doc/masternode-budget.md +++ b/doc/masternode-budget.md @@ -1,7 +1,7 @@ Masternode Budget API ======================= -Dash now supports full decentralized budgets that are paid directly from the blockchain via superblocks once per month. +BTX now supports full decentralized budgets that are paid directly from the blockchain via superblocks once per month. Budgets go through a series of stages before being paid: * prepare - create a special transaction that destroys coins in order to make a proposal @@ -16,7 +16,7 @@ Budgets go through a series of stages before being paid: 1. Prepare collateral transaction -- -mnbudget prepare proposal-name url payment_count block_start dash_address monthly_payment_dash [use_ix(true|false)] +mnbudget prepare proposal-name url payment_count block_start btx_address monthly_payment_btx [use_ix(true|false)] Example: ```mnbudget prepare cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 true``` @@ -117,9 +117,9 @@ The following new RPC commands are supported: - mnbudget "command"... ( "passphrase" ) - prepare - Prepare proposal for network by signing and creating tx - submit - Submit proposal for network - - vote-many - Vote on a Dash initiative - - vote-alias - Vote on a Dash initiative - - vote - Vote on a Dash initiative/budget + - vote-many - Vote on a BTX initiative + - vote-alias - Vote on a BTX initiative + - vote - Vote on a BTX initiative/budget - getvotes - Show current masternode budgets - getinfo - Show current masternode budgets - show - Show all budgets diff --git a/doc/masternode_conf.md b/doc/masternode_conf.md index 0cb343e11b7c..086367238306 100644 --- a/doc/masternode_conf.md +++ b/doc/masternode_conf.md @@ -2,9 +2,9 @@ Multi masternode config ======================= The multi masternode config allows to control multiple masternodes from a single wallet. The wallet needs to have a valid collaral output of 1000 coins for each masternode. To use this, place a file named masternode.conf in the data directory of your install: - * Windows: %APPDATA%\Dash\ - * Mac OS: ~/Library/Application Support/Dash/ - * Unix/Linux: ~/.dash/ + * Windows: %APPDATA%\BTX\ + * Mac OS: ~/Library/Application Support/BTX/ + * Unix/Linux: ~/.btx/ The new masternode.conf format consists of a space seperated text file. Each line consisting of an alias, IP address followed by port, masternode private key, collateral output transaction id, collateral output index, donation address and donation percentage (the latter two are optional and should be in format "address:percentage"). @@ -16,7 +16,7 @@ mn3 127.0.0.4:19999 92Da1aYg6sbenP6uwskJgEY2XWB5LwJ7bXRqc3UPeShtHWJDjDv db478e78 ``` In the example above: -* the collateral for mn1 consists of transaction http://test.explorer.dash.fr/tx/2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c, output index 0 has amount 1000 +* the collateral for mn1 consists of transaction http://test.explorer.btx.fr/tx/2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c, output index 0 has amount 1000 * masternode 2 will donate 33% of its income * masternode 3 will donate 100% of its income diff --git a/doc/multiwallet-qt.md b/doc/multiwallet-qt.md index 3f8b2b2f9475..4167fa259386 100644 --- a/doc/multiwallet-qt.md +++ b/doc/multiwallet-qt.md @@ -10,7 +10,7 @@ implemented in the BitcoinGUI class moved over to these new classes. The two existing files most affected, by far, are bitcoingui.h and bitcoingui.cpp, as the BitcoinGUI class will require some major retrofitting. -Only requiring some minor changes is dash.cpp. +Only requiring some minor changes is btx.cpp. Finally, two new headers and source files will have to be added to bitcoin-qt.pro. @@ -30,9 +30,9 @@ that takes the place of what used to be centralWidget in BitcoinGUI. The purpose refinements of the wallet controls with minimal need for further modifications to BitcoinGUI, thus greatly simplifying merges while reducing the risk of breaking top-level stuff. -Changes to dash.cpp +Changes to btx.cpp ---------------------- -dash.cpp is the entry point into bitcoin-qt, and as such, will require some minor modifications to provide hooks for +btx.cpp is the entry point into bitcoin-qt, and as such, will require some minor modifications to provide hooks for multiple wallet support. Most importantly will be the way it instantiates WalletModels and passes them to the singleton BitcoinGUI instance called window. Formerly, BitcoinGUI kept a pointer to a single instance of a WalletModel. The initial change required is very simple: rather than calling `window.setWalletModel(&walletModel);` we perform the diff --git a/doc/release-notes.md b/doc/release-notes.md index 3fc3eee20de1..36fa9ae0f900 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,17 +1,17 @@ -Dash Core 0.12 +BTX Core 0.12 ================== -Dash Core tree 0.12.x release notes can be found here: -- [v0.12.0](release-notes/dash/release-notes-0.12.0.md) +BTX Core tree 0.12.x release notes can be found here: +- [v0.12.0](release-notes/btx/release-notes-0.12.0.md) -Dash Core tree 0.12.x is a fork of Bitcoin Core tree 0.10.2 +BTX Core tree 0.12.x is a fork of Bitcoin Core tree 0.10.2 Older releases -------------- -Dash was previously known as Darkcoin. +BTX was previously known as Darkcoin. Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin which was first released on Jan/18/2014. @@ -22,13 +22,13 @@ the 0.8.x tree and was first released on Mar/13/2014. Darkcoin tree 0.10.x used to be the closed source implementation of Darksend which was released open source on Sep/25/2014. -Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, Darkcoin was rebranded -to Dash. +BTX Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, Darkcoin was rebranded +to BTX. These release are considered obsolete. Old changelogs can be found here: -- [v0.11.2](release-notes/dash/release-notes-0.11.2.md) released Mar/25/2015 -- [v0.11.1](release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 -- [v0.11.0](release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 -- [v0.10.x](release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 -- [v0.9.x](release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 +- [v0.11.2](release-notes/btx/release-notes-0.11.2.md) released Mar/25/2015 +- [v0.11.1](release-notes/btx/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](release-notes/btx/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](release-notes/btx/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](release-notes/btx/release-notes-0.9.0.md) released Mar/13/2014 diff --git a/doc/release-notes/bitcoin/release-notes-0.10.0.md b/doc/release-notes/bitcoin/release-notes-0.10.0.md index 986b8832ec18..72a60e413830 100644 --- a/doc/release-notes/bitcoin/release-notes-0.10.0.md +++ b/doc/release-notes/bitcoin/release-notes-0.10.0.md @@ -714,7 +714,7 @@ Thanks to everyone who contributed to this release: - kiwigb - Kosta Zertsekel - LongShao007 -- Luke Dashjr +- Luke BTXjr - Mark Friedenbach - Mathy Vanvoorden - Matt Corallo diff --git a/doc/release-notes/bitcoin/release-notes-0.3.20.2.md b/doc/release-notes/bitcoin/release-notes-0.3.20.2.md index 10ad2251439e..ad40d884c677 100644 --- a/doc/release-notes/bitcoin/release-notes-0.3.20.2.md +++ b/doc/release-notes/bitcoin/release-notes-0.3.20.2.md @@ -9,7 +9,7 @@ The Amazon Machine Images I used to do the builds are available: (mac build will be done soon) -If you have already downloaded version 0.3.20.1, please either add this to your dash.conf file: +If you have already downloaded version 0.3.20.1, please either add this to your btx.conf file: maxsendbuffer=10000 maxreceivebuffer=10000 diff --git a/doc/release-notes/bitcoin/release-notes-0.4.3.md b/doc/release-notes/bitcoin/release-notes-0.4.3.md index fea1ae75b5e8..c269fd8ffd6c 100644 --- a/doc/release-notes/bitcoin/release-notes-0.4.3.md +++ b/doc/release-notes/bitcoin/release-notes-0.4.3.md @@ -1,5 +1,5 @@ bitcoind version 0.4.3 is now available for download at: -http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ (until Gavin uploads to SourceForge) +http://luke.btxjr.org/programs/bitcoin/files/bitcoind-0.4.3/ (until Gavin uploads to SourceForge) This is a bugfix-only release based on 0.4.0. @@ -17,5 +17,5 @@ Cease locking memory used by non-sensitive information (this caused a huge perfo Fixed some address-handling deadlocks (client freezes). No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak). Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed). -Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr). +Add new DNS seeds (maintained by Pieter Wuille and Luke BTXjr). diff --git a/doc/release-notes/bitcoin/release-notes-0.4.4.md b/doc/release-notes/bitcoin/release-notes-0.4.4.md index f435ba71604d..1372ba4ddcfe 100644 --- a/doc/release-notes/bitcoin/release-notes-0.4.4.md +++ b/doc/release-notes/bitcoin/release-notes-0.4.4.md @@ -1,5 +1,5 @@ Bitcoin version 0.4.4 is now available for download at: -http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.4/ +http://luke.btxjr.org/programs/bitcoin/files/bitcoind-0.4.4/ This is a bugfix-only release based on 0.4.0. diff --git a/doc/release-notes/bitcoin/release-notes-0.5.2.md b/doc/release-notes/bitcoin/release-notes-0.5.2.md index f79816668d8c..bef94570056e 100644 --- a/doc/release-notes/bitcoin/release-notes-0.5.2.md +++ b/doc/release-notes/bitcoin/release-notes-0.5.2.md @@ -19,4 +19,4 @@ No longer accept inbound connections over the internet when Bitcoin is being use Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 and 0.5.1 release Linux binaries). Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed). Don't show "IP" for transactions which are not necessarily IP transactions. -Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr). +Add new DNS seeds (maintained by Pieter Wuille and Luke BTXjr). diff --git a/doc/release-notes/bitcoin/release-notes-0.7.0.md b/doc/release-notes/bitcoin/release-notes-0.7.0.md index d33a58f99ffe..be9cc9597e46 100644 --- a/doc/release-notes/bitcoin/release-notes-0.7.0.md +++ b/doc/release-notes/bitcoin/release-notes-0.7.0.md @@ -146,7 +146,7 @@ Gavin Andresen Giel van Schijndel Gregory Maxwell Jeff Garzik -Luke Dashjr +Luke BTXjr Matt Corallo Michael Ford Michael Hendricks diff --git a/doc/release-notes/bitcoin/release-notes-0.7.1.md b/doc/release-notes/bitcoin/release-notes-0.7.1.md index 0704419582ff..6d2475640325 100644 --- a/doc/release-notes/bitcoin/release-notes-0.7.1.md +++ b/doc/release-notes/bitcoin/release-notes-0.7.1.md @@ -97,7 +97,7 @@ Thanks to everybody who contributed to this release: Gavin Andresen Jeff Garzik -Luke Dashjr +Luke BTXjr Mark Friedenbach Matt Corallo Philip Kaufmann diff --git a/doc/release-notes/bitcoin/release-notes-0.7.2.md b/doc/release-notes/bitcoin/release-notes-0.7.2.md index 40af34962bd9..77388e4367f6 100644 --- a/doc/release-notes/bitcoin/release-notes-0.7.2.md +++ b/doc/release-notes/bitcoin/release-notes-0.7.2.md @@ -61,7 +61,7 @@ dansmith Gavin Andresen Gregory Maxwell Jeff Garzik -Luke Dashjr +Luke BTXjr Philip Kaufmann Pieter Wuille Wladimir J. van der Laan diff --git a/doc/release-notes/bitcoin/release-notes-0.8.0.md b/doc/release-notes/bitcoin/release-notes-0.8.0.md index 1825269f5c9a..ef6cf6ebeee3 100644 --- a/doc/release-notes/bitcoin/release-notes-0.8.0.md +++ b/doc/release-notes/bitcoin/release-notes-0.8.0.md @@ -61,7 +61,7 @@ contrib/spendfrom is a python-language command-line utility that demonstrates how to use the "raw transactions" JSON-RPC api to send coins received from particular addresses (also known as "coin control"). -New/changed settings (command-line or dash.conf file) +New/changed settings (command-line or btx.conf file) -------------------------------------------------------- dbcache : controls LevelDB memory usage. @@ -117,7 +117,7 @@ Forrest Voight Gavin Andresen Gregory Maxwell Jeff Garzik -Luke Dashjr +Luke BTXjr Matt Corallo Mike Cassano Mike Hearn diff --git a/doc/release-notes/bitcoin/release-notes-0.8.2.md b/doc/release-notes/bitcoin/release-notes-0.8.2.md index eea9ba2a2c3c..afdde32dff86 100644 --- a/doc/release-notes/bitcoin/release-notes-0.8.2.md +++ b/doc/release-notes/bitcoin/release-notes-0.8.2.md @@ -116,7 +116,7 @@ Gregory Maxwell Jeff Garzik Jonas Schnelli Larry Gilbert -Luke Dashjr +Luke BTXjr Matt Corallo Michael Ford Mike Hearn diff --git a/doc/release-notes/bitcoin/release-notes-0.9.2.1.md b/doc/release-notes/bitcoin/release-notes-0.9.2.1.md index 3168ad1a5ad7..659d9f10b469 100644 --- a/doc/release-notes/bitcoin/release-notes-0.9.2.1.md +++ b/doc/release-notes/bitcoin/release-notes-0.9.2.1.md @@ -175,7 +175,7 @@ Thanks to everyone who contributed to this release: - jtimon - Kamil Domanski - langerhans -- Luke Dashjr +- Luke BTXjr - Manuel Araoz - Mark Friedenbach - Matt Corallo diff --git a/doc/release-notes/bitcoin/release-notes-0.9.2.md b/doc/release-notes/bitcoin/release-notes-0.9.2.md index a2749e549f76..0a1ba468577a 100644 --- a/doc/release-notes/bitcoin/release-notes-0.9.2.md +++ b/doc/release-notes/bitcoin/release-notes-0.9.2.md @@ -175,7 +175,7 @@ Thanks to everyone who contributed to this release: - jtimon - Kamil Domanski - langerhans -- Luke Dashjr +- Luke BTXjr - Manuel Araoz - Mark Friedenbach - Matt Corallo diff --git a/doc/release-notes/bitcoin/release-notes-0.9.4.md b/doc/release-notes/bitcoin/release-notes-0.9.4.md index 7ee73246a9b0..532441208510 100644 --- a/doc/release-notes/bitcoin/release-notes-0.9.4.md +++ b/doc/release-notes/bitcoin/release-notes-0.9.4.md @@ -85,7 +85,7 @@ Thanks to who contributed to this release, at least: - Gavin Andresen - Gregory Maxwell - Jeff Garzik -- Luke Dashjr +- Luke BTXjr - Matt Corallo - Pieter Wuille - Saivann diff --git a/doc/release-notes/dash/release-notes-0.10.0.md b/doc/release-notes/dash/release-notes-0.10.0.md deleted file mode 100644 index 2537421183fd..000000000000 --- a/doc/release-notes/dash/release-notes-0.10.0.md +++ /dev/null @@ -1,718 +0,0 @@ -0.10.x Release notes -==================== - -This branch was released open source with v0.10.14 on Sept/25/2014. The -changelog reaches back further but remains valid as all commits are visible now. - - -0.10.16.7-16 Release notes --------------------------- - -- Fixed queuing system timeout values (causing mixing issues) - - -0.10.16.7-15 Release notes --------------------------- - -- Fixed memory issues -- Fixed remote masternode issues -- Fixed darksend definitions -- Fixed mixing issues -- Reduced collateral charges by 90% -- Changed ping time to 5m - - -0.10.16.6 Release notes ------------------------ - -- saction for Darksend. These are special transactions that require a signature that only the masternodes can create. -- Darksend now has no fees to track what-so-ever, all that will ever be in Darksend transactions are Darksend denominations. -- Added queue gaming protection -- Clients remember which masternodes they've connected to in the past and won't use them against. -- Dsee/Dseep messages have been fixed so they only take newer signatures than the one they have -- 2 different kinds of client crashes have been fixed -- Split up main.cpp into core.cpp -- Split up darksend.cpp into masternode.cpp, activemasternode.cpp and instantx.cpp -- Added modular ProcessMessages for Darksend, Masternodes and InstantX -- Client can now join sessions with any other users - -0.10.15.20/21 Release notes ---------------------------- - -- added bloom filters for dsee/dseep broadcasts, moved expensive dsee search, masternode vote caching - - -0.10.15.19 Release notes ------------------------- - -- Added sanity check and debugging - - -0.10.15.18 Release notes ------------------------- - -- Fixed masternode payment check for out-of-order blocks - - -0.10.15.17 Release notes ------------------------- - -- fixed GetBlockPayee - - -0.10.15.16 Release notes ------------------------- - -- masternode only take newest dsee now - - -0.10.15.15 Release notes ------------------------- - -- fixed fragmentation issue, allow masternodes to update pubkey2 - - -0.10.15.14 Release notes ------------------------- - -- fixed dsee duplication issue and added better cleanup for - inactive masternodes - - -0.10.15.13 Release notes ------------------------- - -- Onyx Release! - - -0.10.15.12 Release notes ------------------------- - -- Added some debugging log output to track down why some users are still - getting charged collateral. If anyone gets hit with a collateral fee, - please send me the debu.log so I can check it out. -- Includes a possible fix to the collateral issue -- Protocol bump, all users must update! - - -0.10.15.10 Release notes ------------------------- - -- Fixed a couple more collateral charge issues, plus an issue causing - "incompatible denominations" when it should have worked. Mixing - should be faster now. - - -0.10.15.9 Release notes ------------------------- - -- Fixed a race condition causing collateral changes in rare cases. - - -0.10.15.8 Release notes ------------------------- - -- Fixed all sorts of issues with collateral and Darksend. - I tested five rounds and it worked flawlessly. - - -0.10.15.7 Release notes ------------------------- - -- Fixed the stuck blockchain (due to masternode payments) -- Improves collateral creation for those getting "invalid collateral" -- Minimum confirmation requirements before masternode payment. - Must have more confirmations then there are masternodes. - - -0.10.15.6 Release notes ------------------------- - -- This updates the min protocol version to kick off older clients -- Improves collateral charging -- Changes the masternode payments keys, you'll only recieve masternode - payments and be able to mine on 15.6 -- If anyone has that warning message, start the client - with --disablesafemode --reindex - - -0.10.15.5 Release notes ------------------------- - -- I've made some huge progress with enforcement. Each masternode will - have exactly the same distribution of payments after this. - - -0.10.15.4 Release notes ------------------------- - -- Fixed some issues with masternode payments syncing - - -0.10.15.3 Release notes ------------------------- - -- Incremented protocol / protocol version requirements due - to the testnet-hardfork - - -0.10.15.2 Release notes ------------------------- - -- Fixed some issues with the way the masternode payment list - was being handled -- Masternode confirmation error now displays 200 required instead of 6 -- Changed the pinging settings around -- Block reward reduction is set to have it's first 7% reduction in a couple - days on testnet to test that code - - -0.10.15.1 Release notes ------------------------- - -- Darksend tested with 2.5 DRK successfully and I've set that as the minimum - amount that's compatible -- Fixed a locking bug on inputs -- Fixed a collateral calculation bug - - -0.10.14.1 Release notes ------------------------- - -- security update: This update simply verifies that the signature was - not forged and that the masternodes entering the list are authentic. - - -0.10.14.0 Release notes ------------------------- - -- community release - - -0.10.13.14 Release notes ------------------------- - -- RC5 released! - - -0.10.13.13 Release notes ------------------------- - -- Bounds checking in a few places where it was lacking -- Output list in transactions lacked random seeding -- masternode constants for communication are much easier to read now - - -0.10.13.12 Release notes ------------------------- - -- disconnect on rejecting enforced block - - -0.10.13.11 Release notes ------------------------- - -- Improved handling of enforcement for bad masternode lists -- Removed old masternode override code - - -0.10.13.10 Release notes ------------------------- - -- Changed splitting strategy to deal with some edge cases (endless splitting for a few users) -- Updated stable proto version - - -0.10.13.9 Release notes ------------------------ - -- Testnet merges use two, while mainnet merges will use 3 participants -- Fixed the endless splitting issue causes by splitting 1000DRK and not making a DS compatible input - - -0.10.13.8 Release notes ------------------------ - -- Debugged progress bar -- New terms of use window -- Darksend UI is disabled for masternodes now and titlebar says "[masternode]" -- Improvement for dealing with splitting large inputs -- Protocol version bump to kick old masternodes off - - -0.10.13.7 Release notes ------------------------ - -- Redid the way the progress calculation works (should be smoother now and accurate) -- Updated stable to prepare for enforcement testing - - -0.10.13.6 Release notes ------------------------ - -- Added toggle off/on button to overview screen -- Updated wording for darksend messages -- Removed disable darksend checkbox from config screen -- Added "-enabledarksend" cli option -- Toggle button shows the basic configuration when started for - the first time now -- Added tooltips for config screen -- Changed DS participants to three -- Bump minimum protocol to RC4 -- Added a spork for enforcing masternode payments (this will ensure misconfigured - pools break when we enable the spork) - - -0.10.13.5 Release notes ------------------------ - -- This should fix the endless splitting bug -- Overview updates when you update settings and click OK now - - -0.10.13.4 Release notes ------------------------ - -- Fixed issue with denominating small amounts of DRK in large wallet - (http://jira.darkcoin.qa/browse/DRK-46) -- Made splitting up initial inputs much more efficient. Now when splitting up, - it will use powers of two from 4096 DRK in reverse to get the best possible - mix of inputs for the next phase without any bloat to the blockchain or to - the users wallet. -- Fixed "transaction too large" due to the initial splitting function -- Stopeed collateral/fee creation when it should have been doing a full - split instead -- Sometimes the client would denominate less than the intended amount, then do - small denominations to make up the difference. This slowed down the - transactions and created extra transactions that weren't needed. -- Darksend should anonymize very close to the intended amount now -- Added Amount/Rounds to overview screen so you can see current settings -- Overview darksend cache is cleared on settings change (will instantly update) -- Fixed issue with completed amount jumping around - (http://jira.darkcoin.qa/browse/DRK-46) -- Made messages less threatening (http://jira.darkcoin.qa/browse/DRK-60) - -PS : Please move testing funds to a new wallet. This version has massive -optimizations for the way inputs are stored and split up. This will make -everything much more efficient. - - -0.10.13.3 Release notes ------------------------ - -- This update deals with freezing, slow wallets, slow load times and the - "not compatible" error. I debugged one of the slow wallets and found it had - 38,000 keys in the keypool, then after more investigation I found the passive - Darksend process has been reserve keys for every attempt! To rectify this - I've modified the queuing system, so users wait in a masternode queue without - actually sending the transactions until the queue is full. - -Please move any testing funds to a new wallet to test the new version. - - -0.10.13.2 Release notes ------------------------ - -- Easy to read darksend progress bar (Mouse over for very detailed info) -- Fixed a collateral bug -- Moved around the overview screen, changed some of the text -- Removed lots of debug messages (they show up only with debug=1 now) - - -0.10.13.1 Release notes ------------------------ - -- Fixed a bug where the client gives the error "No funds detected in need of - denominating (2)" when it should have split - - -0.10.12.27 Release notes ------------------------- - -- removed inputs < 1 COIN from DS - - -0.10.12.26 Release notes ------------------------- - -- minor bugfix - - -0.10.12.25 Release notes ------------------------- - -RC4 released! - - -0.10.12.24 Release notes ------------------------- - -- Reverted the pairing fix, seems the network didn't improve at all. -- Inc protocol version - - -0.10.12.23 Release notes ------------------------- - -- Fixed an issue with pairing, hopefully it should be faster now -- The client can now recongize it's out of fee inputs and make some more. -- erasetransaction help (thanks BelStar) -- inc protocol to kick off old versions - - -0.10.12.22 Release notes ------------------------- - -All fees will use 0.001 sized inputs (they have no change so you can't follow -them), all transactions now should look like this one: - -http://test.explorer.darkcoin.fr/tx/ce0ea2bdf630233955d459489b6f764e0d0bbe9e8a62531dd2a14b455626b59c - -- Client now creates fee sizes inputs for use in darksend denomination phases - to improve anonymity -- new rpc command erasetransaction. Some users have reported non-confirming - transactions due to opening their wallet at multiple locations. This can and - will create double spent transactions that will not confirm. erasetransaction - is for removing them. -- SplitUpMoney can only execute every 10 blocks now. -- removed matching masternode debugging messages, that's not really an error -- Client now prioritises sending denominated funds back into Darksend. This will - improve anonymity and help to respect the "anonymize darkcoin" amount in the - configuration. -- fixed a bug where masternodes send failed transactions -- changed max to 100k in configuration -- added a warning message to startup (delete ~/.darkcoin/.agree_to_tou to see it) -- found a bug causing inputs to get locked forever. -- Darksend now checks diskspace before sending anything to a masternode. -- incrementing protocol version to knock all old clients off - - -0.10.12.21 Release notes ------------------------- - -- Majorly improved the way darksend participants are paired together. It should - be super fast now. - - -0.10.12.20 Release notes ------------------------- - -- Disabled collateral charging for now. We'll work on this after RC4 is - released and update the masternode network after it's working properly. It's - not incredibly important at this stage (while we're closed source), so - I don't want it holding up the release. Plus it's really - the only issue we're experiencing -- Merged rebroad's (https://github.com/rebroad) changes to bring debugging - output more in line with the bitcoin project. Output is now much cleaner and - can be split by category. -- Removed some debug messages -- Merged mac/windows build icons -- Fixed windows "Apply" configuration bug -- Darksend now shows address instead of "n/a" -- Incremented protocol version to kick off old versions that charge fees. Fees - should be completely gone now. -- Found a bug that was causing "not compatible" errors too often. This should - speed up pairing. - - -0.10.12.19 Release notes ------------------------- - -- Added GUI configuration for Darksend Rounds, Enable Darksend and Anonymize - amount of DRK -- Removed 5000DRK hard limit -- Fixed another cause of getting hit by collateral -- Send dialog now shows selected balance (Anon, non-anon and Total) - - -0.10.12.18 Release notes ------------------------- - -This version uses the new queuing system to seek out compatible transactions -(where the same denominations are used). It's also enforcing these limitations -now, so it might be a bit slower. - -All transactions after this should look like this one: - -http://test.explorer.darkcoin.fr/tx/6de2c5204abdea451da930f61bae0f954eef13188a3a37a572a24c9d92057d5d - - -0.10.12.17 Release notes ------------------------- - -- I've switched up the way the masternode network works. - 1.) Users now will join a random masternode (1 of the entire list, just - completely randomly) - 2.) Upon joining if it's the first user, the masternode will propagate - a message stating it's taking participants for a merge - 3.) Another user will check that queue, if it's got a recent node, it will - try that node first, otherwise it will go to 1.) - -- Darksend limited to 5000DRK per wallet.dat. Client will warn about this the - first time it's opened, then disable darksend from then on. -- Fixed some bugs with connecting to the correct masternodes -- Send was sending way too many coins for all modes, (I sent 100DRK anon and it - sent 2000DRK, then sent me change for the rest causing a whole reprocess of - everything in the wallet) -- Client now updates Anonymized balance when you send money out -- Fixed coin locking issues - - -0.10.12.16 Release notes ------------------------- - -- bugfixes - - -0.10.12.15 Release notes ------------------------- - -- Added session IDs for masternode communication. Clients were getting - confused when they got messages about other sessions (sometimes happened when - they all jumped on the same masternode at once) -- Added a pre-session state where the client will query a random masternode - and ask if they can perform a merge on N darkcoin without giving any other - information. If that amount is compatible without losing anonymity, the client - will then add it's entry for merging -- Added code to randomly use the top 20 masternodes, this can dynamically be - increased as more transaction traffic starts to happen (although it's not - implemented but it could be done later) -- After successful transactions clients will now automatically attempt another - session on a random masternode, then repeat until they get any kind of error - or run out of funds that need to be processed. -- Fixed a change address reuse issue -- Fixed an issue with the compatible join algorithm (Masternodes will only join - the same denominations, this wasn't always the case before) -- Inc protocol to kick old users odd again - - -0.10.12.14 Release notes ------------------------- - -- Fixed an issue where clients weren't connected to the correct masternode -- Fixed masternode relay issues -- Anonymous Balance now calculates correctly -- Inc protocol to kick old users odd again - - -0.10.12.13 Release notes ------------------------- - -- This version automatically resets the masternode state machine after a short - period of inactivity. -- Updated protocol version to kick old masternodes off - - -0.10.12.12 Release notes ------------------------- - -- Fixed change calc for Denominations in GUI -- Flare found a logging error for dseep, fixed -- Collateral now includes a fee (sometimes they took forever to get into a block) -- Found race condition with new blocks and clearing darksend entries that was - causing some collateral fees -- Found a communication mix up where clients would see messages from the wrong - masternode and think it was theirs, also causing collateral fees -- Added "Anonymized Balance" to overview -- Added "anonymized_balance" to getinfo -- Changed dropbox box on Send Dialog to be clearer -- Added text to the confirmation screen with what funds will be sent -- incremented protocol version to force masternode updates - - -0.10.12.11 Release notes ------------------------- - -- Darksend Denominate Outputs are now in a random order: - -http://test.explorer.darkcoin.fr/tx/072ca56cbf705b87749513a2d2ee02080d506adcf8fe178f6dc2967f0711788e -http://test.explorer.darkcoin.fr/tx/32daa8ca46462e7e99f3532251d68a8c3835a080c937bd83b11db74e47b770ff - -- Darksend now uses 3 participants instead of two. -- SplitUpMoney can now make collateral inputs when needed -- Transactions now shows darksend transaction types for easier understanding - of what's going on: -- Fixed a couple more cases where collateral was charged when it shouldn't - have happened (let me know if it happens after this version) -- Fixed the money destruction bug, it was caused by "darksend denominate 8000". - I missed a reference and the client passed an empty address to - SendMoneyToDestination. rcp darksend source: http://pastebin.com/r14piKuq -- Unlocking/Locking wallet fixes (was spamming the logs) -- Unencrypted wallet fixes (was trying to lock every 10 seconds) -- Flare found and fixed an issue with DGW3 for win32 -- Added Darksend detection to the UI -- fixed senttoaddress, it will use all inputs when darksend is disabled now. - Otherwise it will ONLY use non-denom. -- "darksend addr amount" now returns the hash of the transaction it creates - - -0.10.12.10 Release notes ------------------------- - -Another huge update to the RC client, most of these are stability fixes and -anonymity improvements: - -- Removed "darksend denominate", darksend now will figure out the most it can - denominate. Use "darksend auto" instead. -- Fixed "Unknown State" display error -- Fixed 0.0025 collateral issues caused by issues in the state machine, you - should only be charged this amount now if you shutdown your client during - the Darksend process. -- Client will only submit 1 transaction into the pool fixing possible - anonymity issues -- Masternodes will only merge compatible transactions using the same - denominations. For example (500,500,100) would be able to merge - with (500,100), (10,1) with (10,1,1), but not (500,1) with (10,1). - This improves the anonmity by not allowing someone to follow transactions by - the missing denominations. -- Transactions use unique change addresses for every output of each round. -- QT GUI will now ask to unlock the wallet when it detects Darksend wants to do - something and lock it when it's done again. -- Darksend is turned off by default in the daemon now. In most cases daemons - won't want to run with anonymity (pools, exchanges, etc), if a user does they - can override the default setting with -enabledaemondarksend=true -- Fees per round of Darksend are 0.001DRK or $0.00538 at current prices. This - means to anonymize 1000DRK with 3 rounds (an average use case) it would cost - a user 1.5 cents. -- Protocol version is updated to kick old clients off testnet - - -0.10.12.9 Release notes ------------------------ - -DS+ seems to be pretty stable now :-) - -- SplitUpMoney now calculates the balance correctly -- Denominations are now 1 satoshi higher (denominated inputs will have to be - regenerated as the client will not recognize the old ones) -- SplitUpMoney does a better job of splitting up really large wallets now -- Fixed crashing issues -- Added possible fix for masternode list syncing - -- RPC calls are changed a bit: - - darksend denominate 100 - Will denominate 100DRK - darksend auto - Will run AutoDenominate - darksend Xaddr 100 - Will send 100 denominated DRK to Xaddr - sendtoaddress Xaddr 100 - Will send 100 non-denominated DRK to Xaddr - - -0.10.12.8 Release notes ------------------------ - -- Fixed a few issues with input selection causing the - "Insufficent Funds 2" error -- Masternodes now reset themselves when they give "entries is full". - Not sure what's causing it but a client will just try again -- Improved the split up function -- Fixed issues with AutoDenom in wallets larger than a few hundred -- Fixed a case for collateral charges where the client gave up - when it shouldn't have -- Input selection will now only select denominated, non-denominated or - all inputs. This caused ds+ inputs to get interrupted by the splitting - mechanism sometimes. -- Added new GUI element for selecting which inputs you want to send -- Fixed darksend+ rounds function, it was returning bad data in some cases - causing darksend inputs to never stop being sent through darksend. -- Fixed "Send" dialog to be able to use the different kinds of inputs available. - Sending anonymous transactions should now work properly. -- Fixed some coin select issues -- Collateral selection issues -- SplitUpMoney was sending denominated inputs and destroying the anonymity - -DoAutoDenominate should work in nearly all cases now. -However, there are some known issues: - -- Random collateral charges (still will happen, but it's more uncommon.) -- Password protected wallets - - -Testing commands, you can start multiple wallets up and all denominate -on the same masternode for testing purposes: -/darkcoin-qt -datadir=/home/user/.darkcoin -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" -/darkcoin-qt -datadir=/home/user/.darkcoin2 -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" - -and even disable darksend auto-denom if wanted: -/darkcoin-qt -datadir=/home/user/.darkcoin -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" -disabledarksend=1 - - -0.10.12.7 Release notes ------------------------ - -- Added a smart input splitting method. Place 1000+DRK into a brand new wallet - and it will be split into many inputs compatible with Darksend -- DoAutodenomination now tries the correct balance (it was getting stuck on - the wrong inputs) -- "entries is full" fix for at least one of the causes -- Changed merging parties to two for easier debugging. -- Fixed mod again (missed the one for the actual command you guys are using, - I was overriding the default there) - - -0.10.12.6 Release notes ------------------------ - -- Fixed AutoDenominate. It seems to work pretty well now. -- Inputs that are large will be broken up automatically for denomination -- Masternodes should change every block now (missed a mod=10 last time) -- Mixing requires 5 clients to merge now, should improve anonymity. -- Mixing rounds are limited to 1000DRK, per block - - -0.10.12.5 Release notes ------------------------ - -- Masternodes should change every block now -- DoAutomaticDenomination should happen every block now -- DarkSendRounds had a bug that I fixed, should calculate correctly now - - -0.10.12.4 Release notes ------------------------ - -This is a pretty large update to the RC client. - -- New column "Darksend Rounds" in coincontrol to show how secure a given input is -- Fixed a few issues causing darksend to fail. We should see many more darksends - occuring now if it's fixed. -- Redid denominations to 1, 10, 100, and 500. Maybe this is too simple, but it - seems effective, all change from transactions will de denominated automatically - again through darksend for the next transactions. We'll see how it works. -- usemasternode option, will override active masternode (only in RC, just for testing) - -0.10.12.3 Release notes ------------------------ - -- min merged transactions - -0.10.12.2 Release notes ------------------------ - -- Fixed payout issues (masternode consessus was paying out to vout(0) by default) -- Improved DarksendInput add entry verification. Masternodes will now reject - transactions that look like fees are too low, too high, have spent inputs, etc. -- Incremented protocol version to kick off clients with vout(0) payment bug -- DoAutomaticDenominations 100DRK limit changed to 500DRK (we should see a bunch - of denominations happen now) - - -0.10.12.1 Release notes ------------------------ - -- Fixed a signing bug with the masternode voting system causing a bunch of issues -- Updated unit tests -- Incremented protocol version to kick off clients with signing bug - - -0.10.11.6 Release notes ------------------------ - -- resolves issue with wallet not syncing by adding the capability to retrieve nodes through dnsseed - (see https://github.com/darkcoinproject/darkcoin/pull/21) -- Linux 32 and Mac OS X are now officially supported platforms - (see https://github.com/darkcoinproject/darkcoin/pull/17) -- improved overall unit test code coverage - (see https://github.com/darkcoinproject/darkcoin/pull/13 and https://github.com/darkcoinproject/darkcoin/pull/15) -- minor documentation updates - (https://github.com/darkcoinproject/darkcoin/pull/18) -- improved distribution packaging (win: zip, linux: tar.gz, osx: dmg) diff --git a/doc/release-notes/dash/release-notes-0.11.0.md b/doc/release-notes/dash/release-notes-0.11.0.md deleted file mode 100644 index 5a4a69cdfa15..000000000000 --- a/doc/release-notes/dash/release-notes-0.11.0.md +++ /dev/null @@ -1,291 +0,0 @@ -0.11.0 Release notes -==================== - -Darkcoin Core 0.11.0 is forked off the Bitcoin Core 0.9.3. The old darkcoin -versions 0.10.x were forked from the Litecoin 0.8 tree. The following changes -are introduced in this major release. This list is compiled from the release -notes of Bitcoin Core 0.9.0, 0.9.1, 0.9.2, 0.9.2.1, 0.9.3 and was completed -with the introduced changes to the Darkcoin Core 0.11.0. - - -Darkcoin Core: - -- Rebrand to `Darkcoin Core` -- Version bumped to 0.11 to indicate a new major release -- Renamed client to identify with network from `Satoshi` to `Core` -- Bumped protocol version to 70052 -- Changed p2sh-address versions to start with `7` (instead of `3`, this affects - public keys only, old scripts remain valid and usable!) -- Changed testnet address versions to start with `x` or `y` (instead of `m` or - `n`, this affects public keys only, old wallets remain valid and usable!) -- Defined BIP32 (HD) address versions to start with `drkp`/`drkv` (`DRKP`/`DRKV` - for testnet) -- Adapted BIP44 coin type `5` for Darkcoin (0x80000005) as defined in SLIP-0044 -- Added new units: `duffs` (1 / 100.000.000 DRK) -- Added units for testnet: tDRK, mtDRK, utDRK, tduffs -- Added new DNS seed from masternode.io -- Fixed wallet locking after sending coins -- Add `-regtest` mode, similar to testnet but private with instant block - generation with `setgenerate` RPC. -- Add separate darkcoin-cli client -- Implemented KeyPass integration for CLI, RPC and Qt: - `keepass`, `keepassport`, `keepasskey`, `keepassid`, `keepassname` - - -Masternodes: - -- Improve support for start-many with multi masternode config -- New masternode rpc commands: stop-many, start-alias, stop-alias, list-conf -- Fixed possible masternode payments exploit -- Better support for non-specific masternode payments -- Added masternode support for regtest -- Randomly sort masternodes before picking next winner -- Show number of masternodes in debug window - - -Darksend: - -- Reduced lower darksend limit to 1.5 DRK -- Fixed progress bar calculation for low amounts -- Improved support for adding DRK after anon has completed -- Added denomination information to Overview tab -- Added more detailed Darksend status information to Overview tab -- Added Darksend high precision matching engine -- Added Darksend balance to `getinfo` -- Changed maximum rounds of mixing to 16 - - -RPC: - -- Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls - (will replace hodge-podge `getinfo` at some point) -- Add a `relayfee` field to `getnetworkinfo` -- Always show syncnode in `getpeerinfo` -- `sendrawtransaction`: report the reject code and reason, and make it possible - to re-send transactions that are already in the mempool -- `getmininginfo` show right genproclimit -- New notion of 'conflicted' transactions, reported as confirmations: -1 -- 'listreceivedbyaddress' now provides tx ids -- Add raw transaction hex to 'gettransaction' output -- Updated help and tests for 'getreceivedby(account|address)' -- In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction, - but defaulting to 1 for backward compatibility -- Add 'verifychain', to verify chain database at runtime -- Add 'dumpwallet' and 'importwallet' RPCs -- 'keypoolrefill' gains optional size parameter -- Add 'getbestblockhash', to return tip of best chain -- Add 'chainwork' (the total work done by all blocks since the genesis block) - to 'getblock' output -- Make RPC password resistant to timing attacks -- Clarify help messages and add examples -- Add 'getrawchangeaddress' call for raw transaction change destinations -- Reject insanely high fees by default in 'sendrawtransaction' -- Add RPC call 'decodescript' to decode a hex-encoded transaction script -- Make 'validateaddress' provide redeemScript -- Add 'getnetworkhashps' to get the calculated network hashrate -- New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields - in 'getpeerinfo' output -- Adding new 'addrlocal' field to 'getpeerinfo' output -- Add verbose boolean to 'getrawmempool' -- Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance -- Explicitly ensure that wallet is unlocked in `importprivkey` -- Add check for valid keys in `importprivkey` -- Disable SSLv3 (in favor of TLS) for the RPC client and server. - - -Command-line options: - -- Fix `-printblocktree` output -- Show error message if ReadConfigFile fails -- New option: -nospendzeroconfchange to never spend unconfirmed change outputs -- New option: -zapwallettxes to rebuild the wallet's transaction information -- Rename option '-tor' to '-onion' to better reflect what it does -- Add '-disablewallet' mode to let dashd run entirely without wallet (when - built with wallet) -- Update default '-rpcsslciphers' to include TLSv1.2 -- make '-logtimestamps' default on and rework help-message -- RPC client option: '-rpcwait', to wait for server start -- Remove '-logtodebugger' -- Allow `-noserver` with dashd -- Make -proxy set all network types, avoiding a connect leak. - - -Block-chain handling and storage: - -- Upgrade leveldb to 1.17 -- Check for correct genesis (prevent cases where a datadir from the wrong - network is accidentally loaded) -- Allow txindex to be removed and add a reindex dialog -- Log aborted block database rebuilds -- Store orphan blocks in serialized form, to save memory -- Limit the number of orphan blocks in memory to 750 -- Fix non-standard disconnected transactions causing mempool orphans - - -Protocol and network code: - -- Don't poll showmyip.com, it doesn't exist anymore -- Add a way to limit deserialized string lengths and use it -- Increase IsStandard() scriptSig length -- Avoid querying DNS seeds, if we have open connections -- Remove a useless millisleep in socket handler -- Stricter memory limits on CNode -- Better orphan transaction handling -- Add `-maxorphantx=` and `-maxorphanblocks=` options for control over the - maximum orphan transactions and blocks -- Per-peer block download tracking and stalled download detection -- Prevent socket leak in ThreadSocketHandler and correct some proxy related - socket leaks -- Use pnode->nLastRecv as sync score (was the wrong way around) -- Drop the fee required to relay a transaction to 0.01mDRK per kilobyte -- Send tx relay flag with version -- New 'reject' P2P message (BIP 0061, see - https://gist.github.com/gavinandresen/7079034 for draft) -- Dump addresses every 15 minutes instead of 10 seconds -- Relay OP_RETURN data TxOut as standard transaction type -- Remove CENT-output free transaction rule when relaying -- Lower maximum size for free transaction creation -- Send multiple inv messages if mempool.size > MAX_INV_SZ -- Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION -- Do not treat fFromMe transaction differently when broadcasting -- Process received messages one at a time without sleeping between messages -- Improve logging of failed connections -- Add some additional logging to give extra network insight -- Limit the number of new addressses to accumulate - - -Wallet: - -- Check redeemScript size does not exceed 520 byte limit -- Ignore (and warn about) too-long redeemScripts while loading wallet -- Make GetAvailableCredit run GetHash() only once per transaction (performance - improvement) -- Lower paytxfee warning threshold -- Fix importwallet nTimeFirstKey (trigger necessary rescans) -- Log BerkeleyDB version at startup -- CWallet init fix -- Bug fixes and new regression tests to correctly compute - the balance of wallets containing double-spent (or mutated) transactions -- Store key creation time. Calculate whole-wallet birthday. -- Optimize rescan to skip blocks prior to birthday -- Let user select wallet file with -wallet=foo.dat -- Don't count txins for priority to encourage sweeping -- Don't create empty transactions when reading a corrupted wallet -- Fix rescan to start from beginning after importprivkey - - -Mining: - -- Increase default -blockmaxsize/prioritysize to 750K/50K -- 'getblocktemplate' does not require a key to create a block template -- Mining code fee policy now matches relay fee policy - - -GUI: - -- fix 'opens in testnet mode when presented with a BIP-72 link with no fallback' -- AvailableCoins: acquire cs_main mutex -- Fix unicode character display on MacOSX -- Fix various coin control visual issues -- Show number of in/out connections in debug console -- Show weeks as well as years behind for long timespans behind -- Enable and disable the Show and Remove buttons for requested payments history - based on whether any entry is selected. -- Show also value for options overridden on command line in options dialog -- Fill in label from address book also for URIs -- Fixes feel when resizing the last column on tables -- Fix ESC in disablewallet mode -- Add expert section to wallet tab in optionsdialog -- Do proper boost::path conversion (fixes unicode in datadir) -- Only override -datadir if different from the default (fixes -datadir in config - file) -- Show rescan progress at start-up -- Show importwallet progress -- Get required locks upfront in polling functions (avoids hanging on locks) -- Catch Windows shutdown events while client is running -- Optionally add third party links to transaction context menu -- Check for !pixmap() before trying to export QR code (avoids crashes when no QR - code could be generated) -- Fix "Start darkcoin on system login" -- Switch to Qt 5.2.0 for Windows build -- Add payment request (BIP 0070) support -- Improve options dialog -- Show transaction fee in new send confirmation dialog -- Add total balance in overview page -- Allow user to choose data directory on first start, when data directory is - missing, or when the -choosedatadir option is passed -- Save and restore window positions -- Add vout index to transaction id in transactions details dialog -- Add network traffic graph in debug window -- Add open URI dialog -- Improve receive coins workflow: make the 'Receive' tab into a form to request - payments, and move historical address list functionality to File menu. -- Move initialization/shutdown to a thread. This prevents "Not responding" - messages during startup. Also show a window during shutdown. -- Don't regenerate autostart link on every client startup -- Show and store message of normal darkcoin:URI -- Fix richtext detection hang issue on very old Qt versions -- OS X: Make use of the 10.8+ user notification center to display Growl-like - notifications -- OS X: Added NSHighResolutionCapable flag to Info.plist for better font - rendering on Retina displays. -- OS X: Fix darkcoin-qt startup crash when clicking dock icon -- Linux: Fix Gnome darkcoin: URI handler - - -Validation: - -- Log reason for non-standard transaction rejection -- Prune provably-unspendable outputs, and adapt consistency check for it. -- Detect any sufficiently long fork and add a warning -- Call the -alertnotify script when we see a long or invalid fork -- Fix multi-block reorg transaction resurrection -- Reject non-canonically-encoded serialization sizes -- Reject dust amounts during validation -- Accept nLockTime transactions that finalize in the next block -- consensus: guard against openssl's new strict DER checks -- fail immediately on an empty signature -- Improve robustness of DER recoding code - - -Build system: - -- Add OSX build descriptors to gitian -- Fix explicit --disable-qt-dbus -- Don't require db_cxx.h when compiling with wallet disabled and GUI enabled -- Improve missing boost error reporting -- gitian-linux: --enable-glibc-back-compat for binary compatibility with old - distributions -- gitian: don't export any symbols from executable -- gitian: build against Qt 4.6 -- devtools: add script to check symbols from Linux gitian executables -- Remove build-time no-IPv6 setting -- Add statically built executables to Linux build -- Switch to autotools-based build system -- Build without wallet by passing `--disable-wallet` to configure, this - removes the BerkeleyDB dependency -- Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more - recent versions -- Windows 64-bit build support -- Solaris compatibility fixes -- Check integrity of gitian input source tarballs -- Enable full GCC Stack-smashing protection for all OSes -- build: Fix OSX build when using Homebrew and qt5 -- Keep symlinks when copying into .app bundle -- osx: fix signing to make Gatekeeper happy (again) - - -Miscellaneous: - -- key.cpp: fail with a friendlier message on missing ssl EC support -- Remove bignum dependency for scripts -- Upgrade OpenSSL to 1.0.1i, includes CVE-2014-0224, CVE-2014-0160 and - CVE-2014-0076 (see https://www.openssl.org/news/secadv_20140806.txt) -- Upgrade miniupnpc to 1.9.20140701 -- Fix boost detection in build system on some platforms -- Replace non-threadsafe C functions (gmtime, strerror and setlocale) -- Add missing cs_main and wallet locks -- Avoid exception at startup when system locale not recognized -- devtools: add a script to fetch and postprocess translations -- Refactor -alertnotify code -- doc: Add instructions for consistent Mac OS X build names diff --git a/doc/release-notes/dash/release-notes-0.11.1.md b/doc/release-notes/dash/release-notes-0.11.1.md deleted file mode 100644 index 95502e5bbddf..000000000000 --- a/doc/release-notes/dash/release-notes-0.11.1.md +++ /dev/null @@ -1,49 +0,0 @@ -0.11.1 Release notes -==================== - -Darkcoin Core 0.11.1 supports a full implementation of InstantX, Darksend improvements -and a new version of enforcement compatible with the newer Bitcoin architechure. -Latest release in 0.11.1.x tree is v0.11.1.26, which is rebranding Darkcoin to Dash. - -- Fully implemented IX -- Added support for DSTX messages, as a result DS should be much faster -- Clear vValue in SelectCoinsMinConf - should fix an issue with conflicted txes -- "Debug window" -> "Tools window" renaming -- "Last Darksend message" text added in overview page -- Many new languages are supported, such as German, Vietnamese, Spanish -- Fixed required maturity of coins before sending -- New masternode payments enforcement implementation -- Added support to ignore IX confirmations when needed -- Added --instantxdepth, which will show X confirmations when a transaction lock is present -- fix coin control crash https://github.com/bitcoin/bitcoin/pull/5700 -- always get only confirmed coins by AvailableCoins for every DS relative action -- New languages supported Portuguese, German, Russian, Polish, Spanish, Vietnamese, French, -Italian, Catalan, Chinese, Danish, Finnish, Swedish, Czech, Turkish and Bavarian (and many more) -- Full implementation of spork. Currently this includes 4 different sporks, InstantX, InstantX block enforcement, masternode payments enforcement, and reconverge. This uses the inventory system, so it's super efficient and very powerful for future development. Reconverge will put the blockchain into a mode where it will attempt to reprocess any forks without restarting the client, this means if we even had a fork in the future this can be triggered to fix it without any damage to the network. -- Masternode payments now uses the inventory system, which will result in much lower bandwidth usage -- Improved caching -- use wallet db ds flag in rpc -- update tx types in UI / fix tx decomposition / use wallet db ds flag -- use wallet db to save ds flag / debug -- use AvailableCoinsType instead of string in walletmodel -- New inventory system for IX messaging, providing super fast/low bandwidth IX communication - -Thanks to who contributed to this release, at least: - -- eduffield -- Vertoe -- UdjinM6 -- Holger Schinzel -- Raze -- Mario Müller -- Crowning -- Alexandre Devilliers -- Stuart Buck -- Tiago Serôdio -- Slawek -- Moli -- Lukas Jackson -- Snogcel -- Jimbit -- Coingun -- Sub-Ether \ No newline at end of file diff --git a/doc/release-notes/dash/release-notes-0.11.2.md b/doc/release-notes/dash/release-notes-0.11.2.md deleted file mode 100644 index 9679921104eb..000000000000 --- a/doc/release-notes/dash/release-notes-0.11.2.md +++ /dev/null @@ -1,110 +0,0 @@ -0.11.2 Release notes -==================== - -Dash Core version 0.11.2 is now available from: - - https://dashpay.io/downloads - -Please report bugs using the issue tracker at github: - - https://github.com/darkcoin/darkcoin/issues - - -Masternode enhancements ------------------------ - -When restarting the client the masternodes will be stored in the datadir in -*mncache.dat* file (make sure you don't have any wallet with such name or this -functionality will not be available for you) - - -Mining and relay policy enhancements ------------------------------------- - -Dash Core's block templates are now for version 3 blocks only, and any -mining software relying on its `getblocktemplate` must be updated in parallel -to use libblkmaker either version 0.4.2 or any version from 0.5.1 onward. If you -are solo mining, this will affect you the moment you upgrade Dash Core, -which must be done prior to BIP66 achieving its 951/1001 status. If you are -mining with the stratum mining protocol: this does not affect you. If you are -mining with the getblocktemplate protocol to a pool: this will affect you at the -pool operator's discretion, which must be no later than BIP66 achieving its -951/1001 status. - - -BIP 66: strict DER encoding for signatures ------------------------------------------- - -Dash Core 0.11.2 implements BIP 66, which introduces block version 3, and a -new consensus rule, which prohibits non-DER signatures. Such transactions have -been non-standard since Dash 0.8, but were technically still permitted -inside blocks. - -This change breaks the dependency on OpenSSL's signature parsing, and is -required if implementations would want to remove all of OpenSSL from the -consensus code. - -The same miner-voting mechanism as in BIP 34 is used: when 751 out of a -sequence of 1001 blocks have version number 3 or higher, the new consensus -rule becomes active for those blocks. When 951 out of a sequence of 1001 -blocks have version number 3 or higher, it becomes mandatory for all blocks. - -Backward compatibility with current mining software is NOT provided, thus -miners should read the first paragraph of "Mining and relay policy -enhancements" above. - -Also compare with [upstream release notes](https://github.com/bitcoin/bitcoin/blob/0.10/doc/release-notes.md#mining-and-relay-policy-enhancements). - -More info on [BIP 66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki). - - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or -dashd/dash-qt (on Linux). - - -0.11.2 changelog ----------------- - -- BIP 66 integration -- Strict DER signatures -- Bump block header version to 3 (see notes above) -- Masternode caching -- Masternode payment scheduler -- Better protection from cheating masternodes -- Extended functionality for `masternode list` RPC command -- Live Darksend and InstantX fee calculations in CoinControl -- Darksend input caching -- Open config file from within the wallet -- New CSS-based wallet GUI with selectable interface themes -- Configurable automatic wallet backups -- Show sum of selected transactions in 'Transactions'-tab -- Wallet GUI perfomance improvements -- General stability improvements and bug fixes -- Code restructure and modularization -- Update Tor documentation -- Translation updates - - -Credits --------- - -Thanks to who contributed to this release, at least: - -- eduffield -- UdjinM6 -- vertoe -- mkinney -- elanaint -- absolutebit -- Crowning -- snogcel -- morcos -- 21E14 - -As well as the Bitcoin Core developers and everyone that helped translating on -[Transifex](https://www.transifex.com/projects/p/darkcoin/). diff --git a/doc/release-notes/dash/release-notes-0.12.0.md b/doc/release-notes/dash/release-notes-0.12.0.md deleted file mode 100644 index 6bae7f87ce22..000000000000 --- a/doc/release-notes/dash/release-notes-0.12.0.md +++ /dev/null @@ -1,103 +0,0 @@ -0.12.0 Release notes -==================== - - -Dash Core version 0.12.0 is now available from: - - https://dashpay.io/downloads - -Please report bugs using the issue tracker at github: - - https://github.com/dashpay/dash/issues - - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or -dashd/dash-qt (on Linux). - -**This new version uses transaction indexing by default, you will need to reindex -the blockchain. To do so, start the client with --reindex.** - - -Downgrade warning ------------------- - -Because release 0.12.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.12 versions of Dash Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - - -0.12.0 changelog ----------------- - -Switched to Bitcoin Core version 0.10 - https://bitcoin.org/en/release/v0.10.0 -- Implemented decentralized budget system -- Removed reference node -- Implemented new decentralized masternode payment consensus system -- Improved speed of DS -- New masternode payment/winners/budgets syncing strategy -- Platform independent masternode ranking system -- Masternode broadcasts, pings and winners now use the inventory system -- Transaction indexing is enabled by default for all clients -- Better implementation of IX block reprocessing to find and remove an invalid block -- IX nearly 100% successful with new implementation -- Lots of UI improvements and fixes including DS progress, wallet repair buttons, UI settings/filters persistence etc - - -Credits --------- - -Thanks to who contributed to this release, at least: - -eduffield -UdjinM6 -Crowning -moli -flare -thelazier -adios -poiuty -scratchy -moocowmoo -the-baker -BrainShutdown -Lukas_Jackson -Sub-Ether -italx -yidakee -TanteStefana -coingun -tungfa -MangledBlue -AjM -Lariondos -elbereth -minersday -qwizzie -TaoOfSatoshi -dark-sailor -AlexMomo -snogcel -bertlebbert - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/dash/). diff --git a/doc/release-notes/dash/release-notes-0.9.0.md b/doc/release-notes/dash/release-notes-0.9.0.md deleted file mode 100644 index 4ba52b4fb63f..000000000000 --- a/doc/release-notes/dash/release-notes-0.9.0.md +++ /dev/null @@ -1,538 +0,0 @@ -0.9.x Release notes -=================== - -The 0.9.x branch was discontienued with the open source release of Darksend in -v0.10.14 on Sept/25/2014. - - -0.9.13.14 Release notes ------------------------ - -- RC5 released! - - -0.9.13.13 Release notes ------------------------ - -- Bounds checking in a few places where it was lacking -- Output list in transactions lacked random seeding -- masternode constants for communication are much easier to read now - - -0.9.13.12 Release notes ------------------------ - -- disconnect on rejecting enforced block - - -0.9.13.11 Release notes ------------------------ - -- Improved handling of enforcement for bad masternode lists -- Removed old masternode override code - - -0.9.13.10 Release notes ------------------------ - -- Changed splitting strategy to deal with some edge cases (endless splitting for a few users) -- Updated stable proto version - - -0.9.13.9 Release notes ----------------------- - -- Testnet merges use two, while mainnet merges will use 3 participants -- Fixed the endless splitting issue causes by splitting 1000DRK and not making a DS compatible input - - -0.9.13.8 Release notes ----------------------- - -- Debugged progress bar -- New terms of use window -- Darksend UI is disabled for masternodes now and titlebar says "[masternode]" -- Improvement for dealing with splitting large inputs -- Protocol version bump to kick old masternodes off - - -0.9.13.7 Release notes ----------------------- - -- Redid the way the progress calculation works (should be smoother now and accurate) -- Updated stable to prepare for enforcement testing - - -0.9.13.6 Release notes ----------------------- - -- Added toggle off/on button to overview screen -- Updated wording for darksend messages -- Removed disable darksend checkbox from config screen -- Added "-enabledarksend" cli option -- Toggle button shows the basic configuration when started for - the first time now -- Added tooltips for config screen -- Changed DS participants to three -- Bump minimum protocol to RC4 -- Added a spork for enforcing masternode payments (this will ensure misconfigured - pools break when we enable the spork) - - -0.9.13.5 Release notes ----------------------- - -- This should fix the endless splitting bug -- Overview updates when you update settings and click OK now - - -0.9.13.4 Release notes ----------------------- - -- Fixed issue with denominating small amounts of DRK in large wallet - (http://jira.darkcoin.qa/browse/DRK-46) -- Made splitting up initial inputs much more efficient. Now when splitting up, - it will use powers of two from 4096 DRK in reverse to get the best possible - mix of inputs for the next phase without any bloat to the blockchain or to - the users wallet. -- Fixed "transaction too large" due to the initial splitting function -- Stopeed collateral/fee creation when it should have been doing a full - split instead -- Sometimes the client would denominate less than the intended amount, then do - small denominations to make up the difference. This slowed down the - transactions and created extra transactions that weren't needed. -- Darksend should anonymize very close to the intended amount now -- Added Amount/Rounds to overview screen so you can see current settings -- Overview darksend cache is cleared on settings change (will instantly update) -- Fixed issue with completed amount jumping around - (http://jira.darkcoin.qa/browse/DRK-46) -- Made messages less threatening (http://jira.darkcoin.qa/browse/DRK-60) - -PS : Please move testing funds to a new wallet. This version has massive -optimizations for the way inputs are stored and split up. This will make -everything much more efficient. - - -0.9.13.3 Release notes ----------------------- - -- This update deals with freezing, slow wallets, slow load times and the - "not compatible" error. I debugged one of the slow wallets and found it had - 38,000 keys in the keypool, then after more investigation I found the passive - Darksend process has been reserve keys for every attempt! To rectify this - I've modified the queuing system, so users wait in a masternode queue without - actually sending the transactions until the queue is full. - -Please move any testing funds to a new wallet to test the new version. - - -0.9.13.2 Release notes ----------------------- - -- Easy to read darksend progress bar (Mouse over for very detailed info) -- Fixed a collateral bug -- Moved around the overview screen, changed some of the text -- Removed lots of debug messages (they show up only with debug=1 now) - - -0.9.13.1 Release notes ----------------------- - -- Fixed a bug where the client gives the error "No funds detected in need of - denominating (2)" when it should have split - - -0.9.12.27 Release notes ------------------------ - -- removed inputs < 1 COIN from DS - - -0.9.12.26 Release notes ------------------------ - -- minor bugfix - - -0.9.12.25 Release notes ------------------------ - -RC4 released! - - -0.9.12.24 Release notes ------------------------ - -- Reverted the pairing fix, seems the network didn't improve at all. -- Inc protocol version - - -0.9.12.23 Release notes ------------------------ - -- Fixed an issue with pairing, hopefully it should be faster now -- The client can now recongize it's out of fee inputs and make some more. -- erasetransaction help (thanks BelStar) -- inc protocol to kick off old versions - - -0.9.12.22 Release notes ------------------------ - -All fees will use 0.001 sized inputs (they have no change so you can't follow -them), all transactions now should look like this one: - -http://test.explorer.darkcoin.fr/tx/ce0ea2bdf630233955d459489b6f764e0d0bbe9e8a62531dd2a14b455626b59c - -- Client now creates fee sizes inputs for use in darksend denomination phases - to improve anonymity -- new rpc command erasetransaction. Some users have reported non-confirming - transactions due to opening their wallet at multiple locations. This can and - will create double spent transactions that will not confirm. erasetransaction - is for removing them. -- SplitUpMoney can only execute every 10 blocks now. -- removed matching masternode debugging messages, that's not really an error -- Client now prioritises sending denominated funds back into Darksend. This will - improve anonymity and help to respect the "anonymize darkcoin" amount in the - configuration. -- fixed a bug where masternodes send failed transactions -- changed max to 100k in configuration -- added a warning message to startup (delete ~/.darkcoin/.agree_to_tou to see it) -- found a bug causing inputs to get locked forever. -- Darksend now checks diskspace before sending anything to a masternode. -- incrementing protocol version to knock all old clients off - - -0.9.12.21 Release notes ------------------------ - -- Majorly improved the way darksend participants are paired together. It should - be super fast now. - - -0.9.12.20 Release notes ------------------------ - -- Disabled collateral charging for now. We'll work on this after RC4 is - released and update the masternode network after it's working properly. It's - not incredibly important at this stage (while we're closed source), so - I don't want it holding up the release. Plus it's really - the only issue we're experiencing -- Merged rebroad's (https://github.com/rebroad) changes to bring debugging - output more in line with the bitcoin project. Output is now much cleaner and - can be split by category. -- Removed some debug messages -- Merged mac/windows build icons -- Fixed windows "Apply" configuration bug -- Darksend now shows address instead of "n/a" -- Incremented protocol version to kick off old versions that charge fees. Fees - should be completely gone now. -- Found a bug that was causing "not compatible" errors too often. This should - speed up pairing. - - - -0.9.12.19 Release notes ------------------------ - -- Added GUI configuration for Darksend Rounds, Enable Darksend and Anonymize - amount of DRK -- Removed 5000DRK hard limit -- Fixed another cause of getting hit by collateral -- Send dialog now shows selected balance (Anon, non-anon and Total) - - -0.9.12.18 Release notes ------------------------ - -This version uses the new queuing system to seek out compatible transactions -(where the same denominations are used). It's also enforcing these limitations -now, so it might be a bit slower. - -All transactions after this should look like this one: - -http://test.explorer.darkcoin.fr/tx/6de2c5204abdea451da930f61bae0f954eef13188a3a37a572a24c9d92057d5d - - -0.9.12.17 Release notes ------------------------ - -- I've switched up the way the masternode network works. - 1.) Users now will join a random masternode (1 of the entire list, just - completely randomly) - 2.) Upon joining if it's the first user, the masternode will propagate - a message stating it's taking participants for a merge - 3.) Another user will check that queue, if it's got a recent node, it will - try that node first, otherwise it will go to 1.) - -- Darksend limited to 5000DRK per wallet.dat. Client will warn about this the - first time it's opened, then disable darksend from then on. -- Fixed some bugs with connecting to the correct masternodes -- Send was sending way too many coins for all modes, (I sent 100DRK anon and it - sent 2000DRK, then sent me change for the rest causing a whole reprocess of - everything in the wallet) -- Client now updates Anonymized balance when you send money out -- Fixed coin locking issues - - -0.9.12.16 Release notes ------------------------ - -- bugfixes - - -0.9.12.15 Release notes ------------------------ - -- Added session IDs for masternode communication. Clients were getting - confused when they got messages about other sessions (sometimes happened when - they all jumped on the same masternode at once) -- Added a pre-session state where the client will query a random masternode - and ask if they can perform a merge on N darkcoin without giving any other - information. If that amount is compatible without losing anonymity, the client - will then add it's entry for merging -- Added code to randomly use the top 20 masternodes, this can dynamically be - increased as more transaction traffic starts to happen (although it's not - implemented but it could be done later) -- After successful transactions clients will now automatically attempt another - session on a random masternode, then repeat until they get any kind of error - or run out of funds that need to be processed. -- Fixed a change address reuse issue -- Fixed an issue with the compatible join algorithm (Masternodes will only join - the same denominations, this wasn't always the case before) -- Inc protocol to kick old users odd again - - -0.9.12.14 Release notes ------------------------ - -- Fixed an issue where clients weren't connected to the correct masternode -- Fixed masternode relay issues -- Anonymous Balance now calculates correctly -- Inc protocol to kick old users odd again - - -0.9.12.13 Release notes ------------------------ - -- This version automatically resets the masternode state machine after a short - period of inactivity. -- Updated protocol version to kick old masternodes off - - -0.9.12.12 Release notes ------------------------ - -- Fixed change calc for Denominations in GUI -- Flare found a logging error for dseep, fixed -- Collateral now includes a fee (sometimes they took forever to get into a block) -- Found race condition with new blocks and clearing darksend entries that was - causing some collateral fees -- Found a communication mix up where clients would see messages from the wrong - masternode and think it was theirs, also causing collateral fees -- Added "Anonymized Balance" to overview -- Added "anonymized_balance" to getinfo -- Changed dropbox box on Send Dialog to be clearer -- Added text to the confirmation screen with what funds will be sent -- incremented protocol version to force masternode updates - - -0.9.12.11 Release notes ------------------------ - -- Darksend Denominate Outputs are now in a random order: - -http://test.explorer.darkcoin.fr/tx/072ca56cbf705b87749513a2d2ee02080d506adcf8fe178f6dc2967f0711788e -http://test.explorer.darkcoin.fr/tx/32daa8ca46462e7e99f3532251d68a8c3835a080c937bd83b11db74e47b770ff - -- Darksend now uses 3 participants instead of two. -- SplitUpMoney can now make collateral inputs when needed -- Transactions now shows darksend transaction types for easier understanding - of what's going on: -- Fixed a couple more cases where collateral was charged when it shouldn't - have happened (let me know if it happens after this version) -- Fixed the money destruction bug, it was caused by "darksend denominate 8000". - I missed a reference and the client passed an empty address to - SendMoneyToDestination. rcp darksend source: http://pastebin.com/r14piKuq -- Unlocking/Locking wallet fixes (was spamming the logs) -- Unencrypted wallet fixes (was trying to lock every 10 seconds) -- Flare found and fixed an issue with DGW3 for win32 -- Added Darksend detection to the UI -- fixed senttoaddress, it will use all inputs when darksend is disabled now. - Otherwise it will ONLY use non-denom. -- "darksend addr amount" now returns the hash of the transaction it creates - - -0.9.12.10 Release notes ------------------------ - -Another huge update to the RC client, most of these are stability fixes and -anonymity improvements: - -- Removed "darksend denominate", darksend now will figure out the most it can - denominate. Use "darksend auto" instead. -- Fixed "Unknown State" display error -- Fixed 0.0025 collateral issues caused by issues in the state machine, you - should only be charged this amount now if you shutdown your client during - the Darksend process. -- Client will only submit 1 transaction into the pool fixing possible - anonymity issues -- Masternodes will only merge compatible transactions using the same - denominations. For example (500,500,100) would be able to merge - with (500,100), (10,1) with (10,1,1), but not (500,1) with (10,1). - This improves the anonmity by not allowing someone to follow transactions by - the missing denominations. -- Transactions use unique change addresses for every output of each round. -- QT GUI will now ask to unlock the wallet when it detects Darksend wants to do - something and lock it when it's done again. -- Darksend is turned off by default in the daemon now. In most cases daemons - won't want to run with anonymity (pools, exchanges, etc), if a user does they - can override the default setting with -enabledaemondarksend=true -- Fees per round of Darksend are 0.001DRK or $0.00538 at current prices. This - means to anonymize 1000DRK with 3 rounds (an average use case) it would cost - a user 1.5 cents. -- Protocol version is updated to kick old clients off testnet - - -0.9.12.9 Release notes ----------------------- - - -DS+ seems to be pretty stable now :-) - -- SplitUpMoney now calculates the balance correctly -- Denominations are now 1 satoshi higher (denominated inputs will have to be - regenerated as the client will not recognize the old ones) -- SplitUpMoney does a better job of splitting up really large wallets now -- Fixed crashing issues -- Added possible fix for masternode list syncing - -- RPC calls are changed a bit: - - darksend denominate 100 - Will denominate 100DRK - darksend auto - Will run AutoDenominate - darksend Xaddr 100 - Will send 100 denominated DRK to Xaddr - sendtoaddress Xaddr 100 - Will send 100 non-denominated DRK to Xaddr - - -0.9.12.8 Release notes ----------------------- - -- Fixed a few issues with input selection causing the - "Insufficent Funds 2" error -- Masternodes now reset themselves when they give "entries is full". - Not sure what's causing it but a client will just try again -- Improved the split up function -- Fixed issues with AutoDenom in wallets larger than a few hundred -- Fixed a case for collateral charges where the client gave up - when it shouldn't have -- Input selection will now only select denominated, non-denominated or - all inputs. This caused ds+ inputs to get interrupted by the splitting - mechanism sometimes. -- Added new GUI element for selecting which inputs you want to send -- Fixed darksend+ rounds function, it was returning bad data in some cases - causing darksend inputs to never stop being sent through darksend. -- Fixed "Send" dialog to be able to use the different kinds of inputs available. - Sending anonymous transactions should now work properly. -- Fixed some coin select issues -- Collateral selection issues -- SplitUpMoney was sending denominated inputs and destroying the anonymity - - -DoAutoDenominate should work in nearly all cases now. -However, there are some known issues: - -- Random collateral charges (still will happen, but it's more uncommon.) -- Password protected wallets - - -Testing commands, you can start multiple wallets up and all denominate -on the same masternode for testing purposes: -/darkcoin-qt -datadir=/home/user/.darkcoin -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" -/darkcoin-qt -datadir=/home/user/.darkcoin2 -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" - -and even disable darksend auto-denom if wanted: -/darkcoin-qt -datadir=/home/user/.darkcoin -listen=0 -darksendrounds=8 -usemasternode="192.168.56.102:19999" -disabledarksend=1 - - -0.9.12.7 Release notes ----------------------- - -- Added a smart input splitting method. Place 1000+DRK into a brand new wallet - and it will be split into many inputs compatible with Darksend -- DoAutodenomination now tries the correct balance (it was getting stuck on - the wrong inputs) -- "entries is full" fix for at least one of the causes -- Changed merging parties to two for easier debugging. -- Fixed mod again (missed the one for the actual command you guys are using, - I was overriding the default there) - - -0.9.12.6 Release notes ----------------------- - -- Fixed AutoDenominate. It seems to work pretty well now. -- Inputs that are large will be broken up automatically for denomination -- Masternodes should change every block now (missed a mod=10 last time) -- Mixing requires 5 clients to merge now, should improve anonymity. -- Mixing rounds are limited to 1000DRK, per block - - -0.9.12.5 Release notes ----------------------- - -- Masternodes should change every block now -- DoAutomaticDenomination should happen every block now -- DarkSendRounds had a bug that I fixed, should calculate correctly now - - -0.9.12.4 Release notes ----------------------- - -This is a pretty large update to the RC client. - -- New column "Darksend Rounds" in coincontrol to show how secure a given input is -- Fixed a few issues causing darksend to fail. We should see many more darksends - occuring now if it's fixed. -- Redid denominations to 1, 10, 100, and 500. Maybe this is too simple, but it - seems effective, all change from transactions will de denominated automatically - again through darksend for the next transactions. We'll see how it works. -- usemasternode option, will override active masternode (only in RC, just for testing) - -0.9.12.3 Release notes ----------------------- - -- min merged transactions - -0.9.12.2 Release notes ----------------------- - -- Fixed payout issues (masternode consessus was paying out to vout(0) by default) -- Improved DarksendInput add entry verification. Masternodes will now reject - transactions that look like fees are too low, too high, have spent inputs, etc. -- Incremented protocol version to kick off clients with vout(0) payment bug -- DoAutomaticDenominations 100DRK limit changed to 500DRK (we should see a bunch - of denominations happen now) - - -0.9.12.1 Release notes ----------------------- - -- Fixed a signing bug with the masternode voting system causing a bunch of issues -- Updated unit tests -- Incremented protocol version to kick off clients with signing bug - - - -0.9.11.6 Release notes ----------------------- - -- resolves issue with wallet not syncing by adding the capability to retrieve nodes through dnsseed - (see https://github.com/darkcoinproject/darkcoin/pull/21) -- Linux 32 and Mac OS X are now officially supported platforms - (see https://github.com/darkcoinproject/darkcoin/pull/17) -- improved overall unit test code coverage - (see https://github.com/darkcoinproject/darkcoin/pull/13 and https://github.com/darkcoinproject/darkcoin/pull/15) -- minor documentation updates - (https://github.com/darkcoinproject/darkcoin/pull/18) -- improved distribution packaging (win: zip, linux: tar.gz, osx: dmg) diff --git a/doc/release-process.md b/doc/release-process.md index 250eb63b80c9..58d30c0fe9ba 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -2,7 +2,7 @@ Release Process ==================== * update translations (ping wumpus, Diapolo or tcatm on IRC) -* see https://github.com/dashpay/dash/blob/master/doc/translation_process.md#syncing-with-transifex +* see https://github.com/btxpay/btx/blob/master/doc/translation_process.md#syncing-with-transifex * * * @@ -33,7 +33,7 @@ Release Process export SIGNER=(your gitian key, ie bluematt, sipa, etc) export VERSION=(new version, e.g. 0.8.0) - pushd ./dash + pushd ./btx git checkout v${VERSION} popd pushd ./gitian-builder @@ -54,29 +54,29 @@ Release Process By default, gitian will fetch source files as needed. For offline builds, they can be fetched ahead of time: - make -C ../dash/depends download SOURCES_PATH=`pwd`/cache/common + make -C ../btx/depends download SOURCES_PATH=`pwd`/cache/common Only missing files will be fetched, so this is safe to re-run for each build. -###Build Dash Core for Linux, Windows, and OS X: - - ./bin/gbuild --commit dash=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-linux.yml - ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-linux.yml - mv build/out/dash-*.tar.gz build/out/src/dash-*.tar.gz ../ - ./bin/gbuild --commit dash=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-win.yml - ./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-win.yml - mv build/out/dash-*.zip build/out/dash-*.exe ../ - ./bin/gbuild --commit bitcoin=v${VERSION} ../dash/contrib/gitian-descriptors/gitian-osx.yml - ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-osx.yml - mv build/out/dash-*-unsigned.tar.gz inputs/dash-osx-unsigned.tar.gz - mv build/out/dash-*.tar.gz build/out/dash-*.dmg ../ +###Build BTX Core for Linux, Windows, and OS X: + + ./bin/gbuild --commit btx=v${VERSION} ../btx/contrib/gitian-descriptors/gitian-linux.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../btx/contrib/gitian-descriptors/gitian-linux.yml + mv build/out/btx-*.tar.gz build/out/src/btx-*.tar.gz ../ + ./bin/gbuild --commit btx=v${VERSION} ../btx/contrib/gitian-descriptors/gitian-win.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../btx/contrib/gitian-descriptors/gitian-win.yml + mv build/out/btx-*.zip build/out/btx-*.exe ../ + ./bin/gbuild --commit bitcoin=v${VERSION} ../btx/contrib/gitian-descriptors/gitian-osx.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../btx/contrib/gitian-descriptors/gitian-osx.yml + mv build/out/btx-*-unsigned.tar.gz inputs/btx-osx-unsigned.tar.gz + mv build/out/btx-*.tar.gz build/out/btx-*.dmg ../ popd Build output expected: - 1. source tarball (dash-${VERSION}.tar.gz) - 2. linux 32-bit and 64-bit binaries dist tarballs (dash-${VERSION}-linux[32|64].tar.gz) - 3. windows 32-bit and 64-bit installers and dist zips (dash-${VERSION}-win[32|64]-setup.exe, dash-${VERSION}-win[32|64].zip) - 4. OSX unsigned installer (dash-${VERSION}-osx-unsigned.dmg) + 1. source tarball (btx-${VERSION}.tar.gz) + 2. linux 32-bit and 64-bit binaries dist tarballs (btx-${VERSION}-linux[32|64].tar.gz) + 3. windows 32-bit and 64-bit installers and dist zips (btx-${VERSION}-win[32|64]-setup.exe, btx-${VERSION}-win[32|64].zip) + 4. OSX unsigned installer (btx-${VERSION}-osx-unsigned.dmg) 5. Gitian signatures (in gitian.sigs/${VERSION}-/(your gitian key)/ ###Next steps: @@ -100,9 +100,9 @@ Commit your signature to gitian.sigs: pushd ./gitian-builder # Fetch the signature as instructed by Evan cp signature.tar.gz inputs/ - ./bin/gbuild -i ../dash/contrib/gitian-descriptors/gitian-osx-signer.yml - ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../dash/contrib/gitian-descriptors/gitian-osx-signer.yml - mv build/out/dash-osx-signed.dmg ../dash-${VERSION}-osx.dmg + ./bin/gbuild -i ../btx/contrib/gitian-descriptors/gitian-osx-signer.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs/ ../btx/contrib/gitian-descriptors/gitian-osx-signer.yml + mv build/out/btx-osx-signed.dmg ../btx-${VERSION}-osx.dmg popd Commit your signature for the signed OSX binary: @@ -134,9 +134,9 @@ rm SHA256SUMS - Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the bitcoin.org server into `/var/www/bin/bitcoin-core-${VERSION}` -- Update dashpay.io version ***TODO*** +- Update btxpay.io version ***TODO*** - - First, check to see if the dashpay.io maintainers have prepared a + - First, check to see if the btxpay.io maintainers have prepared a release: https://github.com/bitcoin/bitcoin.org/labels/Releases - If they have, it will have previously failed their Travis CI @@ -151,15 +151,15 @@ rm SHA256SUMS - Announce the release: - - Release sticky on dashtalk: https://dashtalk.org/index.php?board=1.0 ***TODO*** + - Release sticky on btxtalk: https://btxtalk.org/index.php?board=1.0 ***TODO*** - - Dash-development mailing list + - BTX-development mailing list - - Update title of #dashpay on Freenode IRC + - Update title of #btxpay on Freenode IRC - - Optionally reddit /r/Dashpay, ... but this will usually sort out itself + - Optionally reddit /r/BTXpay, ... but this will usually sort out itself -- Notify Flare (?) ***TODO*** so that he can start building [https://launchpad.net/~dashpay/+archive/ubuntu/dash](the PPAs) ***TODO*** +- Notify Flare (?) ***TODO*** so that he can start building [https://launchpad.net/~btxpay/+archive/ubuntu/btx](the PPAs) ***TODO*** - Add release notes for the new version to the directory `doc/release-notes` in git master diff --git a/doc/tor.md b/doc/tor.md index a3864ea1dc9f..f2b76eef5f42 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -1,7 +1,7 @@ TOR SUPPORT IN DASH ======================= -It is possible to run Dash as a Tor hidden service, and connect to such services. +It is possible to run BTX as a Tor hidden service, and connect to such services. The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others @@ -10,10 +10,10 @@ port. See [Tor Project FAQ:TBBSocksPort](https://www.torproject.org/docs/faq.htm for how to properly configure Tor. -1. Run dash behind a Tor proxy +1. Run btx behind a Tor proxy ---------------------------------- -The first step is running Dash behind a Tor proxy. This will already make all +The first step is running BTX behind a Tor proxy. This will already make all outgoing connections be anonymized, but more is possible. -proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy @@ -37,31 +37,31 @@ outgoing connections be anonymized, but more is possible. An example how to start the client if the Tor proxy is running on local host on port 9050 and only allows .onion nodes to connect: - ./dashd -onion=127.0.0.1:9050 -onlynet=tor -listen=0 -addnode=ssapp53tmftyjmjb.onion + ./btxd -onion=127.0.0.1:9050 -onlynet=tor -listen=0 -addnode=ssapp53tmftyjmjb.onion In a typical situation, this suffices to run behind a Tor proxy: - ./dashd -proxy=127.0.0.1:9050 + ./btxd -proxy=127.0.0.1:9050 -2. Run a dash hidden server +2. Run a btx hidden server ------------------------------- If you configure your Tor system accordingly, it is possible to make your node also reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent config file): - HiddenServiceDir /var/lib/tor/dash-service/ + HiddenServiceDir /var/lib/tor/btx-service/ HiddenServicePort 9999 127.0.0.1:9999 HiddenServicePort 19999 127.0.0.1:19999 The directory can be different of course, but (both) port numbers should be equal to -your dashd's P2P listen port (9999 by default). +your btxd's P2P listen port (9999 by default). - -externalip=X You can tell dash about its publicly reachable address using + -externalip=X You can tell btx about its publicly reachable address using this option, and this can be a .onion address. Given the above configuration, you can find your onion address in - /var/lib/tor/dash-service/hostname. Onion addresses are given + /var/lib/tor/btx-service/hostname. Onion addresses are given preference for your node to advertize itself with, for connections coming from unroutable addresses (such as 127.0.0.1, where the Tor proxy typically runs). @@ -78,26 +78,26 @@ your dashd's P2P listen port (9999 by default). In a typical situation, where you're only reachable via Tor, this should suffice: - ./dashd -proxy=127.0.0.1:9050 -externalip=ssapp53tmftyjmjb.onion -listen + ./btxd -proxy=127.0.0.1:9050 -externalip=ssapp53tmftyjmjb.onion -listen (obviously, replace the Onion address with your own). If you don't care too much about hiding your node, and want to be reachable on IPv4 as well, additionally specify: - ./dashd ... -discover + ./btxd ... -discover and open port 9999 on your firewall (or use -upnp). If you only want to use Tor to reach onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: - ./dashd -onion=127.0.0.1:9050 -externalip=ssapp53tmftyjmjb.onion -discover + ./btxd -onion=127.0.0.1:9050 -externalip=ssapp53tmftyjmjb.onion -discover -3. List of known dash Tor relays +3. List of known btx Tor relays ------------------------------------ -* [dashie7ghp67.onion](http://dashie7ghp67.onion/) +* [btxie7ghp67.onion](http://btxie7ghp67.onion/) * [drktalkwaybgxnoq.onion](http://drktalkwaybgxnoq.onion/) * [drkcoinooditvool.onion](http://drkcoinooditvool.onion/) * [darkcoxbtzggpmcc.onion](http://darkcoxbtzggpmcc.onion/) diff --git a/doc/translation_process.md b/doc/translation_process.md index 055bff70502d..cca93aba74d1 100644 --- a/doc/translation_process.md +++ b/doc/translation_process.md @@ -1,25 +1,25 @@ Translations ============ -The Dash Core GUI can be easily translated into other languages. Here's how we +The BTX Core GUI can be easily translated into other languages. Here's how we handle those translations. Files and Folders ----------------- -### dash-qt.pro +### btx-qt.pro This file takes care of generating `.qm` files from `.ts` files. It is mostly automated. -### src/qt/dash.qrc +### src/qt/btx.qrc This file must be updated whenever a new translation is added. Please note that files must end with `.qm`, not `.ts`. ```xml - locale/dash_en.qm + locale/btx_en.qm ... ``` @@ -28,17 +28,17 @@ files must end with `.qm`, not `.ts`. This directory contains all translations. Filenames must adhere to this format: - dash_xx_YY.ts or dash_xx.ts + btx_xx_YY.ts or btx_xx.ts -#### dash_en.ts (Source file) +#### btx_en.ts (Source file) -`src/qt/locale/dash_en.ts` is treated in a special way. It is used as the +`src/qt/locale/btx_en.ts` is treated in a special way. It is used as the source for all other translations. Whenever a string in the code is changed this file must be updated to reflect those changes. A custom script is used to extract strings from the non-Qt parts. This script makes use of `gettext`, so make sure that utility is installed (ie, `apt-get install gettext` on Ubuntu/Debian). Once this has been updated, lupdate (included in the Qt SDK) -is used to update dash_en.ts. This process has been automated, from src/, +is used to update btx_en.ts. This process has been automated, from src/, simply run: make translate @@ -46,7 +46,7 @@ simply run: When new plurals are added to the source file, it's important to do the following steps: -1. Open dash_en.ts in Qt Linguist (also included in the Qt SDK) +1. Open btx_en.ts in Qt Linguist (also included in the Qt SDK) 2. Search for `%n`, which will take you to the parts in the translation that use plurals 3. Look for empty `English Translation (Singular)` and `English Translation (Plural)` fields 4. Add the appropriate strings for the singular and plural form of the base string @@ -62,7 +62,7 @@ in Transifex and can be translated. To create the pull-request you have to do: - git add src/qt/dashstrings.cpp src/qt/locale/dash_en.ts + git add src/qt/btxstrings.cpp src/qt/locale/btx_en.ts git commit Syncing with Transifex @@ -70,7 +70,7 @@ Syncing with Transifex We are using https://transifex.com as a frontend for translating the client. -https://www.transifex.com/projects/p/dash/ +https://www.transifex.com/projects/p/btx/ The "Transifex client" (see: http://support.transifex.com/customer/portal/topics/440187-transifex-client/articles) is used to fetch new translations from Transifex. The configuration for this client (`.tx/config`) @@ -82,8 +82,8 @@ postprocessing steps before committing the translations. ### Fetching new translations 1. `python contrib/devtools/update-translations.py` -2. update `src/qt/dash.qrc` manually or via - `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(dash_\(.*\)\).ts/ locale\/\1.qm<\/file>/'` +2. update `src/qt/btx.qrc` manually or via + `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(btx_\(.*\)\).ts/ locale\/\1.qm<\/file>/'` 3. update `src/Makefile.qt.include` manually or via - `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(dash_\(.*\)\).ts/ qt\/locale\/\1.ts \\/'` + `ls src/qt/locale/*ts|xargs -n1 basename|sed 's/\(btx_\(.*\)\).ts/ qt\/locale\/\1.ts \\/'` 4. `git add` new translations from `src/qt/locale/` diff --git a/doc/unit-tests.md b/doc/unit-tests.md index 1cc34a8af334..3f3d0b22777d 100644 --- a/doc/unit-tests.md +++ b/doc/unit-tests.md @@ -6,13 +6,13 @@ and tests weren't explicitly disabled. After configuring, they can be run with 'make check'. -To run the dashd tests manually, launch src/test/test_dash . +To run the btxd tests manually, launch src/test/test_btx . -To add more dashd tests, add `BOOST_AUTO_TEST_CASE` functions to the existing +To add more btxd tests, add `BOOST_AUTO_TEST_CASE` functions to the existing .cpp files in the test/ directory or add new .cpp files that implement new BOOST_AUTO_TEST_SUITE sections. -To run the dash-qt tests manually, launch src/qt/test/dash-qt_test +To run the btx-qt tests manually, launch src/qt/test/btx-qt_test -To add more dash-qt tests, add them to the `src/qt/test/` directory and +To add more btx-qt tests, add them to the `src/qt/test/` directory and the `src/qt/test/test_main.cpp` file. diff --git a/qa/pull-tester/run-bitcoind-for-test.sh.in b/qa/pull-tester/run-bitcoind-for-test.sh.in index f711b2bb1492..c67e1aea17a4 100755 --- a/qa/pull-tester/run-bitcoind-for-test.sh.in +++ b/qa/pull-tester/run-bitcoind-for-test.sh.in @@ -3,14 +3,14 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. # -DATADIR="@abs_top_builddir@/.dash" +DATADIR="@abs_top_builddir@/.btx" rm -rf "$DATADIR" mkdir -p "$DATADIR"/regtest touch "$DATADIR/regtest/debug.log" tail -q -n 1 -F "$DATADIR/regtest/debug.log" | grep -m 1 -q "Done loading" & WAITER=$! PORT=`expr 10000 + $$ % 55536` -"@abs_top_builddir@/src/dashd@EXEEXT@" -connect=0.0.0.0 -datadir="$DATADIR" -rpcuser=user -rpcpassword=pass -listen -keypool=3 -debug -debug=net -logtimestamps -checkmempool=0 -relaypriority=0 -port=$PORT -whitelist=127.0.0.1 -regtest -rpcport=`expr $PORT + 1` & +"@abs_top_builddir@/src/btxd@EXEEXT@" -connect=0.0.0.0 -datadir="$DATADIR" -rpcuser=user -rpcpassword=pass -listen -keypool=3 -debug -debug=net -logtimestamps -checkmempool=0 -relaypriority=0 -port=$PORT -whitelist=127.0.0.1 -regtest -rpcport=`expr $PORT + 1` & BITCOIND=$! #Install a watchdog. diff --git a/qa/pull-tester/tests-config.sh.in b/qa/pull-tester/tests-config.sh.in index e64e80a14be7..f310789ba0dd 100755 --- a/qa/pull-tester/tests-config.sh.in +++ b/qa/pull-tester/tests-config.sh.in @@ -11,6 +11,6 @@ EXEEXT="@EXEEXT@" @BUILD_BITCOIN_UTILS_TRUE@ENABLE_UTILS=1 @BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=1 -REAL_BITCOIND="$BUILDDIR/src/dashd${EXEEXT}" -REAL_BITCOINCLI="$BUILDDIR/src/dash-cli${EXEEXT}" +REAL_BITCOIND="$BUILDDIR/src/btxd${EXEEXT}" +REAL_BITCOINCLI="$BUILDDIR/src/btx-cli${EXEEXT}" diff --git a/qa/rpc-tests/util.py b/qa/rpc-tests/util.py index d40e3b1f78fa..27ed076d6137 100644 --- a/qa/rpc-tests/util.py +++ b/qa/rpc-tests/util.py @@ -1,5 +1,5 @@ # Copyright (c) 2014 The Bitcoin Core developers -# Copyright (c) 2014-2015 The Dash developers +# Copyright (c) 2014-2015 The BTX developers # Distributed under the MIT/X11 software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. # @@ -65,7 +65,7 @@ def initialize_datadir(dirname, n): datadir = os.path.join(dirname, "node"+str(n)) if not os.path.isdir(datadir): os.makedirs(datadir) - with open(os.path.join(datadir, "dash.conf"), 'w') as f: + with open(os.path.join(datadir, "btx.conf"), 'w') as f: f.write("regtest=1\n"); f.write("rpcuser=rt\n"); f.write("rpcpassword=rt\n"); @@ -77,19 +77,19 @@ def initialize_chain(test_dir): """ Create (or copy from cache) a 200-block-long chain and 4 wallets. - dashd and dash-cli must be in search path. + btxd and btx-cli must be in search path. """ if not os.path.isdir(os.path.join("cache", "node0")): devnull = open("/dev/null", "w+") - # Create cache directories, run dashds: + # Create cache directories, run btxds: for i in range(4): datadir=initialize_datadir("cache", i) - args = [ os.getenv("BITCOIND", "dashd"), "-keypool=1", "-datadir="+datadir, "-discover=0" ] + args = [ os.getenv("BITCOIND", "btxd"), "-keypool=1", "-datadir="+datadir, "-discover=0" ] if i > 0: args.append("-connect=127.0.0.1:"+str(p2p_port(0))) bitcoind_processes[i] = subprocess.Popen(args) - subprocess.check_call([ os.getenv("BITCOINCLI", "dash-cli"), "-datadir="+datadir, + subprocess.check_call([ os.getenv("BITCOINCLI", "btx-cli"), "-datadir="+datadir, "-rpcwait", "getblockcount"], stdout=devnull) devnull.close() rpcs = [] @@ -128,7 +128,7 @@ def initialize_chain(test_dir): from_dir = os.path.join("cache", "node"+str(i)) to_dir = os.path.join(test_dir, "node"+str(i)) shutil.copytree(from_dir, to_dir) - initialize_datadir(test_dir, i) # Overwrite port/rpcport in dash.conf + initialize_datadir(test_dir, i) # Overwrite port/rpcport in btx.conf def initialize_chain_clean(test_dir, num_nodes): """ @@ -161,14 +161,14 @@ def _rpchost_to_args(rpchost): def start_node(i, dirname, extra_args=None, rpchost=None): """ - Start a dashd and return RPC connection to it + Start a btxd and return RPC connection to it """ datadir = os.path.join(dirname, "node"+str(i)) - args = [ os.getenv("BITCOIND", "dashd"), "-datadir="+datadir, "-keypool=1", "-discover=0", "-rest" ] + args = [ os.getenv("BITCOIND", "btxd"), "-datadir="+datadir, "-keypool=1", "-discover=0", "-rest" ] if extra_args is not None: args.extend(extra_args) bitcoind_processes[i] = subprocess.Popen(args) devnull = open("/dev/null", "w+") - subprocess.check_call([ os.getenv("BITCOINCLI", "dash-cli"), "-datadir="+datadir] + + subprocess.check_call([ os.getenv("BITCOINCLI", "btx-cli"), "-datadir="+datadir] + _rpchost_to_args(rpchost) + ["-rpcwait", "getblockcount"], stdout=devnull) devnull.close() @@ -179,7 +179,7 @@ def start_node(i, dirname, extra_args=None, rpchost=None): def start_nodes(num_nodes, dirname, extra_args=None, rpchost=None): """ - Start multiple dashds, return RPC connections to them + Start multiple btxds, return RPC connections to them """ if extra_args is None: extra_args = [ None for i in range(num_nodes) ] return [ start_node(i, dirname, extra_args[i], rpchost) for i in range(num_nodes) ] diff --git a/qa/rpc-tests/util.sh b/qa/rpc-tests/util.sh index e3e24a4b5e56..309f5e79c2f9 100644 --- a/qa/rpc-tests/util.sh +++ b/qa/rpc-tests/util.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Copyright (c) 2014 The Bitcoin Core developers -# Copyright (c) 2014-2015 The Dash developers +# Copyright (c) 2014-2015 The BTX developers # Distributed under the MIT/X11 software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -12,7 +12,7 @@ function echoerr { # Usage: ExtractKey "" # Warning: this will only work for the very-well-behaved -# JSON produced by dashd, do NOT use it to try to +# JSON produced by btxd, do NOT use it to try to # parse arbitrary/nested/etc JSON. function ExtractKey { echo $2 | tr -d ' "{}\n' | awk -v RS=',' -F: "\$1 ~ /$1/ { print \$2}" @@ -21,7 +21,7 @@ function ExtractKey { function CreateDataDir { DIR=$1 mkdir -p $DIR - CONF=$DIR/dash.conf + CONF=$DIR/btx.conf echo "regtest=1" >> $CONF echo "keypool=2" >> $CONF echo "rpcuser=rt" >> $CONF diff --git a/share/pixmaps/bitcoin256.png b/share/pixmaps/bitcoin256.png index 4a92d931eba297b8b3a9ab82b2cb812154254a39..4054e097af9bd3947b55dbdea1c08cf181989e6b 100644 GIT binary patch delta 27 gcmbPbIKyzlQ)Z`-h{-Zc^^-FgH-OliWti&30F0LjEdT%j delta 29 hcmbPXILmOtQx=!R;*7~sO!bq~88?7Ao28iQ!~mxF3Qhn3 diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index 1a9c34038fcb..a7be9a59b1a9 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -17,7 +17,7 @@ APPL CFBundleGetInfoString - @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@, Copyright © 2009-@COPYRIGHT_YEAR@ The Bitcoin Core developers, 2014-@COPYRIGHT_YEAR@ The Dash Core developers + @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@, Copyright © 2009-@COPYRIGHT_YEAR@ The Bitcoin Core developers, 2014-@COPYRIGHT_YEAR@ The BTX Core developers CFBundleShortVersionString @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@ @@ -29,10 +29,10 @@ ???? CFBundleExecutable - Dash-Qt + BTX-Qt CFBundleIdentifier - io.dashpay.Dash-Qt + io.btxpay.BTX-Qt CFBundleURLTypes @@ -40,10 +40,10 @@ CFBundleTypeRole Editor CFBundleURLName - io.dash.DashPayment + io.btx.BTXPayment CFBundleURLSchemes - dash + btx @@ -52,9 +52,9 @@ UTTypeIdentifier - io.dash.paymentrequest + io.btx.paymentrequest UTTypeDescription - Dash payment request + BTX payment request UTTypeConformsTo public.data @@ -62,10 +62,10 @@ UTTypeTagSpecification public.mime-type - application/x-dash-payment-request + application/x-btx-payment-request public.filename-extension - dashpaymentrequest + btxpaymentrequest @@ -78,7 +78,7 @@ Editor LSItemContentTypes - io.dash.paymentrequest + io.btx.paymentrequest LSHandlerRank Owner diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py index 8508a4ae5ca1..5edc65a08b86 100755 --- a/share/qt/extract_strings_qt.py +++ b/share/qt/extract_strings_qt.py @@ -9,7 +9,7 @@ import os import sys -OUT_CPP="qt/dashstrings.cpp" +OUT_CPP="qt/btxstrings.cpp" EMPTY=['""'] def parse_po(text): @@ -69,10 +69,10 @@ def parse_po(text): #define UNUSED #endif """) -f.write('static const char UNUSED *dash_strings[] = {\n') +f.write('static const char UNUSED *btx_strings[] = {\n') messages.sort(key=operator.itemgetter(0)) for (msgid, msgstr) in messages: if msgid != EMPTY: - f.write('QT_TRANSLATE_NOOP("dash-core", %s),\n' % ('\n'.join(msgid))) + f.write('QT_TRANSLATE_NOOP("btx-core", %s),\n' % ('\n'.join(msgid))) f.write('};\n') f.close() diff --git a/share/seeds/generate-seeds.py b/share/seeds/generate-seeds.py index 2431ded86edb..720f9fba4dc0 100755 --- a/share/seeds/generate-seeds.py +++ b/share/seeds/generate-seeds.py @@ -117,7 +117,7 @@ def main(): g.write('#ifndef BITCOIN_CHAINPARAMSSEEDS_H\n') g.write('#define BITCOIN_CHAINPARAMSSEEDS_H\n') g.write('/**\n') - g.write(' * List of fixed seed nodes for the dash network\n') + g.write(' * List of fixed seed nodes for the btx network\n') g.write(' * AUTOGENERATED by share/seeds/generate-seeds.py\n') g.write(' *\n') g.write(' * Each line contains a 16-byte IPv6 address and a port.\n') diff --git a/share/setup.nsi.in b/share/setup.nsi.in index 083ec8875c18..316ec7438c13 100644 --- a/share/setup.nsi.in +++ b/share/setup.nsi.in @@ -6,8 +6,8 @@ SetCompressor /SOLID lzma # General Symbol Definitions !define REGKEY "SOFTWARE\$(^Name)" !define VERSION @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@ -!define COMPANY "Dash Core project" -!define URL https://www.dashpay.io/ +!define COMPANY "BTX Core project" +!define URL https://www.btxpay.io/ # MUI Symbol Definitions !define MUI_ICON "@abs_top_srcdir@/share/pixmaps/bitcoin.ico" @@ -20,7 +20,7 @@ SetCompressor /SOLID lzma !define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup !define MUI_STARTMENUPAGE_DEFAULTFOLDER "@PACKAGE_NAME@" -!define MUI_FINISHPAGE_RUN $INSTDIR\dash-qt.exe +!define MUI_FINISHPAGE_RUN $INSTDIR\btx-qt.exe !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp" !define MUI_UNFINISHPAGE_NOAUTOCLOSE @@ -48,18 +48,18 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -OutFile @abs_top_srcdir@/dash-${VERSION}-win@WINDOWS_BITS@-setup.exe +OutFile @abs_top_srcdir@/btx-${VERSION}-win@WINDOWS_BITS@-setup.exe !if "@WINDOWS_BITS@" == "64" -InstallDir $PROGRAMFILES64\Dash +InstallDir $PROGRAMFILES64\BTX !else -InstallDir $PROGRAMFILES\Dash +InstallDir $PROGRAMFILES\BTX !endif CRCCheck on XPStyle on BrandingText " " ShowInstDetails show VIProductVersion ${VERSION}.@CLIENT_VERSION_BUILD@ -VIAddVersionKey ProductName "Dash Core" +VIAddVersionKey ProductName "BTX Core" VIAddVersionKey ProductVersion "${VERSION}" VIAddVersionKey CompanyName "${COMPANY}" VIAddVersionKey CompanyWebsite "${URL}" @@ -73,19 +73,19 @@ ShowUninstDetails show Section -Main SEC0000 SetOutPath $INSTDIR SetOverwrite on - File @abs_top_srcdir@/release/dash-qt.exe + File @abs_top_srcdir@/release/btx-qt.exe File /oname=COPYING.txt @abs_top_srcdir@/COPYING File /oname=readme.txt @abs_top_srcdir@/doc/README_windows.txt SetOutPath $INSTDIR\daemon - File @abs_top_srcdir@/release/dashd.exe - File @abs_top_srcdir@/release/dash-cli.exe + File @abs_top_srcdir@/release/btxd.exe + File @abs_top_srcdir@/release/btx-cli.exe SetOutPath $INSTDIR\doc File /r @abs_top_srcdir@/doc\*.* SetOutPath $INSTDIR WriteRegStr HKCU "${REGKEY}\Components" Main 1 - # Remove old wxwidgets-based-dash executable and locales: - Delete /REBOOTOK $INSTDIR\dash.exe + # Remove old wxwidgets-based-btx executable and locales: + Delete /REBOOTOK $INSTDIR\btx.exe RMDir /r /REBOOTOK $INSTDIR\locale SectionEnd @@ -95,7 +95,7 @@ Section -post SEC0001 WriteUninstaller $INSTDIR\uninstall.exe !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory $SMPROGRAMS\$StartMenuGroup - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" $INSTDIR\dash-qt.exe + CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" $INSTDIR\btx-qt.exe CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" $INSTDIR\uninstall.exe !insertmacro MUI_STARTMENU_WRITE_END WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" @@ -106,10 +106,10 @@ Section -post SEC0001 WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 - WriteRegStr HKCR "dash" "URL Protocol" "" - WriteRegStr HKCR "dash" "" "URL:Dash" - WriteRegStr HKCR "dash\DefaultIcon" "" $INSTDIR\dash-qt.exe - WriteRegStr HKCR "dash\shell\open\command" "" '"$INSTDIR\dash-qt.exe" "%1"' + WriteRegStr HKCR "btx" "URL Protocol" "" + WriteRegStr HKCR "btx" "" "URL:BTX" + WriteRegStr HKCR "btx\DefaultIcon" "" $INSTDIR\btx-qt.exe + WriteRegStr HKCR "btx\shell\open\command" "" '"$INSTDIR\btx-qt.exe" "%1"' SectionEnd # Macro for selecting uninstaller sections @@ -127,7 +127,7 @@ done${UNSECTION_ID}: # Uninstaller sections Section /o -un.Main UNSEC0000 - Delete /REBOOTOK $INSTDIR\dash-qt.exe + Delete /REBOOTOK $INSTDIR\btx-qt.exe Delete /REBOOTOK $INSTDIR\COPYING.txt Delete /REBOOTOK $INSTDIR\readme.txt RMDir /r /REBOOTOK $INSTDIR\daemon @@ -139,7 +139,7 @@ Section -un.post UNSEC0001 DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" - Delete /REBOOTOK "$SMSTARTUP\Dash.lnk" + Delete /REBOOTOK "$SMSTARTUP\BTX.lnk" Delete /REBOOTOK $INSTDIR\uninstall.exe Delete /REBOOTOK $INSTDIR\debug.log Delete /REBOOTOK $INSTDIR\db.log @@ -147,7 +147,7 @@ Section -un.post UNSEC0001 DeleteRegValue HKCU "${REGKEY}" Path DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components" DeleteRegKey /IfEmpty HKCU "${REGKEY}" - DeleteRegKey HKCR "dash" + DeleteRegKey HKCR "btx" RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup RmDir /REBOOTOK $INSTDIR Push $R0 diff --git a/src/Makefile.am b/src/Makefile.am index 92eaca819a13..5ca37145a4c8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -60,15 +60,15 @@ bin_PROGRAMS = TESTS = if BUILD_BITCOIND - bin_PROGRAMS += dashd + bin_PROGRAMS += btxd endif if BUILD_BITCOIN_UTILS - bin_PROGRAMS += dash-cli dash-tx + bin_PROGRAMS += btx-cli btx-tx endif .PHONY: FORCE -# dash core # +# btx core # BITCOIN_CORE_H = \ activemasternode.h \ addrman.h \ @@ -170,7 +170,7 @@ obj/build.h: FORCE $(abs_top_srcdir) libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h -# server: shared between dashd and dash-qt +# server: shared between btxd and btx-qt libbitcoin_server_a_CPPFLAGS = $(BITCOIN_INCLUDES) $(MINIUPNPC_CPPFLAGS) libbitcoin_server_a_SOURCES = \ addrman.cpp \ @@ -202,7 +202,7 @@ libbitcoin_server_a_SOURCES = \ $(JSON_H) \ $(BITCOIN_CORE_H) -# wallet: shared between dashd and dash-qt, but only linked +# wallet: shared between btxd and btx-qt, but only linked # when wallet enabled libbitcoin_wallet_a_CPPFLAGS = $(BITCOIN_INCLUDES) libbitcoin_wallet_a_SOURCES = \ @@ -278,7 +278,7 @@ univalue_libbitcoin_univalue_a_SOURCES = \ univalue/univalue_escapes.h \ univalue/univalue.h -# common: shared between dashd, and dash-qt and non-server tools +# common: shared between btxd, and btx-qt and non-server tools libbitcoin_common_a_CPPFLAGS = $(BITCOIN_INCLUDES) libbitcoin_common_a_SOURCES = \ allocators.cpp \ @@ -333,7 +333,7 @@ libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp libbitcoin_util_a_SOURCES += compat/glibcxx_compat.cpp endif -# cli: shared between dash-cli and dash-qt +# cli: shared between btx-cli and btx-qt libbitcoin_cli_a_CPPFLAGS = $(BITCOIN_INCLUDES) libbitcoin_cli_a_SOURCES = \ rpcclient.cpp \ @@ -343,7 +343,7 @@ nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h # # bitcoind binary # -dashd_LDADD = \ +btxd_LDADD = \ $(LIBBITCOIN_SERVER) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UNIVALUE) \ @@ -354,35 +354,35 @@ dashd_LDADD = \ $(LIBSECP256K1) if ENABLE_WALLET -dashd_LDADD += libbitcoin_wallet.a +btxd_LDADD += libbitcoin_wallet.a endif -dashd_SOURCES = dashd.cpp +btxd_SOURCES = btxd.cpp # if TARGET_WINDOWS -dashd_SOURCES += dashd-res.rc +btxd_SOURCES += btxd-res.rc endif -dashd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) -dashd_CPPFLAGS = $(BITCOIN_INCLUDES) -dashd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +btxd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) +btxd_CPPFLAGS = $(BITCOIN_INCLUDES) +btxd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -# dash-cli binary # -dash_cli_LDADD = \ +# btx-cli binary # +btx_cli_LDADD = \ $(LIBBITCOIN_CLI) \ $(LIBBITCOIN_UTIL) \ $(BOOST_LIBS) \ $(SSL_LIBS) \ $(CRYPTO_LIBS) -dash_cli_SOURCES = \ - dash-cli.cpp +btx_cli_SOURCES = \ + btx-cli.cpp -dash_cli_CPPFLAGS = $(BITCOIN_INCLUDES) +btx_cli_CPPFLAGS = $(BITCOIN_INCLUDES) # -# dash-tx binary # -dash_tx_LDADD = \ +# btx-tx binary # +btx_tx_LDADD = \ $(LIBBITCOIN_UNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -391,15 +391,15 @@ dash_tx_LDADD = \ $(BOOST_LIBS) \ $(CRYPTO_LIBS) -dash_tx_SOURCES = dash-tx.cpp -dash_tx_CPPFLAGS = $(BITCOIN_INCLUDES) +btx_tx_SOURCES = btx-tx.cpp +btx_tx_CPPFLAGS = $(BITCOIN_INCLUDES) # -dash_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +btx_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if TARGET_WINDOWS -dash_cli_SOURCES += dash-cli-res.rc +btx_cli_SOURCES += btx-cli-res.rc endif -dash_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +btx_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) if BUILD_BITCOIN_LIBS include_HEADERS = script/bitcoinconsensus.h diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index cedce007abdc..2a4bbbd9bb40 100755 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -1,23 +1,23 @@ -bin_PROGRAMS += qt/dash-qt +bin_PROGRAMS += qt/btx-qt EXTRA_LIBRARIES += qt/libbitcoinqt.a -# dash qt core # +# btx qt core # QT_TS = \ - qt/locale/dash_bg.ts \ - qt/locale/dash_de.ts \ - qt/locale/dash_en.ts \ - qt/locale/dash_es.ts \ - qt/locale/dash_fi.ts \ - qt/locale/dash_fr.ts \ - qt/locale/dash_it.ts \ - qt/locale/dash_pl.ts \ - qt/locale/dash_pt.ts \ - qt/locale/dash_ru.ts \ - qt/locale/dash_sk.ts \ - qt/locale/dash_sv.ts \ - qt/locale/dash_vi.ts \ - qt/locale/dash_zh_CN.ts \ - qt/locale/dash_zh_TW.ts + qt/locale/btx_bg.ts \ + qt/locale/btx_de.ts \ + qt/locale/btx_en.ts \ + qt/locale/btx_es.ts \ + qt/locale/btx_fi.ts \ + qt/locale/btx_fr.ts \ + qt/locale/btx_it.ts \ + qt/locale/btx_pl.ts \ + qt/locale/btx_pt.ts \ + qt/locale/btx_ru.ts \ + qt/locale/btx_sk.ts \ + qt/locale/btx_sv.ts \ + qt/locale/btx_vi.ts \ + qt/locale/btx_zh_CN.ts \ + qt/locale/btx_zh_TW.ts QT_FORMS_UI = \ qt/forms/addressbookpage.ui \ @@ -89,16 +89,16 @@ BITCOIN_MM = \ qt/macnotificationhandler.mm QT_MOC = \ - qt/dash.moc \ + qt/btx.moc \ qt/bitcoinamountfield.moc \ qt/intro.moc \ qt/overviewpage.moc \ qt/rpcconsole.moc -QT_QRC_CPP = qt/qrc_dash.cpp -QT_QRC = qt/dash.qrc -QT_QRC_LOCALE_CPP = qt/qrc_dash_locale.cpp -QT_QRC_LOCALE = qt/dash_locale.qrc +QT_QRC_CPP = qt/qrc_btx.cpp +QT_QRC = qt/btx.qrc +QT_QRC_LOCALE_CPP = qt/qrc_btx_locale.cpp +QT_QRC_LOCALE = qt/btx_locale.qrc PROTOBUF_CC = qt/paymentrequest.pb.cc PROTOBUF_H = qt/paymentrequest.pb.h @@ -206,13 +206,13 @@ RES_ICONS = \ qt/res/icons/tx_input.png \ qt/res/icons/tx_output.png \ qt/res/icons/tx_mined.png \ - qt/res/icons/unit_dash.png \ - qt/res/icons/unit_mdash.png \ - qt/res/icons/unit_udash.png \ + qt/res/icons/unit_btx.png \ + qt/res/icons/unit_mbtx.png \ + qt/res/icons/unit_ubtx.png \ qt/res/icons/unit_duffs.png \ - qt/res/icons/unit_tdash.png \ - qt/res/icons/unit_tmdash.png \ - qt/res/icons/unit_tudash.png \ + qt/res/icons/unit_tbtx.png \ + qt/res/icons/unit_tmbtx.png \ + qt/res/icons/unit_tubtx.png \ qt/res/icons/unit_tduffs.png BITCOIN_QT_CPP = \ @@ -272,7 +272,7 @@ RES_IMAGES = \ qt/res/images/about.png \ qt/res/images/splash.png \ qt/res/images/splash_testnet.png \ - qt/res/images/dash_logo_horizontal.png \ + qt/res/images/btx_logo_horizontal.png \ qt/res/images/drkblue_downArrow.png \ qt/res/images/drkblue_downArrow_small.png \ qt/res/images/drkblue_upArrow_small.png \ @@ -287,7 +287,7 @@ RES_CSS = \ RES_MOVIES = $(wildcard qt/res/movies/spinner-*.png) -BITCOIN_RC = qt/res/dash-qt-res.rc +BITCOIN_RC = qt/res/btx-qt-res.rc BITCOIN_QT_INCLUDES = -I$(builddir)/qt -I$(srcdir)/qt -I$(srcdir)/qt/forms \ -I$(builddir)/qt/forms @@ -307,65 +307,65 @@ QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI: # Most files will depend on the forms and moc files as includes. Generate them # before anything else. $(QT_MOC): $(QT_FORMS_H) -$(qt_libbitcoinqt_a_OBJECTS) $(qt_dash_qt_OBJECTS) : | $(QT_MOC) +$(qt_libbitcoinqt_a_OBJECTS) $(qt_btx_qt_OBJECTS) : | $(QT_MOC) #Generating these with a half-written protobuf header leads to wacky results. #This makes sure it's done. $(QT_MOC): $(PROTOBUF_H) $(QT_MOC_CPP): $(PROTOBUF_H) -# dash-qt binary # -qt_dash_qt_CPPFLAGS = $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +# btx-qt binary # +qt_btx_qt_CPPFLAGS = $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS) -qt_dash_qt_SOURCES = qt/dash.cpp +qt_btx_qt_SOURCES = qt/btx.cpp if TARGET_DARWIN - qt_dash_qt_SOURCES += $(BITCOIN_MM) + qt_btx_qt_SOURCES += $(BITCOIN_MM) endif if TARGET_WINDOWS - qt_dash_qt_SOURCES += $(BITCOIN_RC) + qt_btx_qt_SOURCES += $(BITCOIN_RC) endif -qt_dash_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER) +qt_btx_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER) if ENABLE_WALLET -qt_dash_qt_LDADD += $(LIBBITCOIN_WALLET) +qt_btx_qt_LDADD += $(LIBBITCOIN_WALLET) endif -qt_dash_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ +qt_btx_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) -qt_dash_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -qt_dash_qt_LIBTOOLFLAGS = --tag CXX +qt_btx_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +qt_btx_qt_LIBTOOLFLAGS = --tag CXX #locale/foo.ts -> locale/foo.qm QT_QM=$(QT_TS:.ts=.qm) .SECONDARY: $(QT_QM) -qt/dashstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) +qt/btxstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) @test -n $(XGETTEXT) || echo "xgettext is required for updating translations" $(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) ../share/qt/extract_strings_qt.py $^ -translate: qt/dashstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) +translate: qt/btxstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) @test -n $(LUPDATE) || echo "lupdate is required for updating translations" - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) $^ -locations relative -no-obsolete -ts qt/locale/dash_en.ts + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) $^ -locations relative -no-obsolete -ts qt/locale/btx_en.ts $(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM) @test -f $(RCC) @test -f $(@D)/$( $@ $(QT_QRC_CPP): $(QT_QRC) $(QT_FORMS_H) $(RES_ICONS) $(RES_IMAGES) $(RES_CSS) $(RES_MOVIES) $(PROTOBUF_H) @test -f $(RCC) - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name dash $< | \ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name btx $< | \ $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@ CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno CLEANFILES += $(CLEAN_QT) -dash_qt_clean: FORCE - rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_dash_qt_OBJECTS) qt/dash-qt$(EXEEXT) $(LIBBITCOINQT) +btx_qt_clean: FORCE + rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_btx_qt_OBJECTS) qt/btx-qt$(EXEEXT) $(LIBBITCOINQT) -dash_qt : qt/dash-qt$(EXEEXT) +btx_qt : qt/btx-qt$(EXEEXT) ui_%.h: %.ui @test -f $(UIC) diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include index 1a1f03d1a1ad..afc8e315a9f2 100644 --- a/src/Makefile.qttest.include +++ b/src/Makefile.qttest.include @@ -1,5 +1,5 @@ -bin_PROGRAMS += qt/test/test_dash-qt -TESTS += qt/test/test_dash-qt +bin_PROGRAMS += qt/test/test_btx-qt +TESTS += qt/test/test_btx-qt TEST_QT_MOC_CPP = qt/test/moc_uritests.cpp @@ -12,37 +12,37 @@ TEST_QT_H = \ qt/test/paymentrequestdata.h \ qt/test/paymentservertests.h -qt_test_test_dash_qt_CPPFLAGS = $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_test_test_btx_qt_CPPFLAGS = $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_TEST_INCLUDES) $(PROTOBUF_CFLAGS) -qt_test_test_dash_qt_SOURCES = \ +qt_test_test_btx_qt_SOURCES = \ qt/test/test_main.cpp \ qt/test/uritests.cpp \ $(TEST_QT_H) if ENABLE_WALLET -qt_test_test_dash_qt_SOURCES += \ +qt_test_test_btx_qt_SOURCES += \ qt/test/paymentservertests.cpp endif -nodist_qt_test_test_dash_qt_SOURCES = $(TEST_QT_MOC_CPP) +nodist_qt_test_test_btx_qt_SOURCES = $(TEST_QT_MOC_CPP) -qt_test_test_dash_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) +qt_test_test_btx_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER) if ENABLE_WALLET -qt_test_test_dash_qt_LDADD += $(LIBBITCOIN_WALLET) +qt_test_test_btx_qt_LDADD += $(LIBBITCOIN_WALLET) endif -qt_test_test_dash_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) \ +qt_test_test_btx_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) \ $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \ $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) -qt_test_test_dash_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) +qt_test_test_btx_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno CLEANFILES += $(CLEAN_BITCOIN_QT_TEST) -test_dash_qt : qt/test/test_dash-qt$(EXEEXT) +test_btx_qt : qt/test/test_btx-qt$(EXEEXT) -test_dash_qt_check : qt/test/test_dash-qt$(EXEEXT) FORCE +test_btx_qt_check : qt/test/test_btx-qt$(EXEEXT) FORCE $(MAKE) check-TESTS TESTS=$^ -test_dash_qt_clean: FORCE - rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_dash_qt_OBJECTS) +test_btx_qt_clean: FORCE + rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_btx_qt_OBJECTS) diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 50e6540171c7..683f9e56df42 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -1,7 +1,7 @@ -TESTS += test/test_dash test/bitcoin-util-test.py -bin_PROGRAMS += test/test_dash +TESTS += test/test_btx test/bitcoin-util-test.py +bin_PROGRAMS += test/test_btx TEST_SRCDIR = test -TEST_BINARY=test/test_dash$(EXEEXT) +TEST_BINARY=test/test_btx$(EXEEXT) EXTRA_DIST += \ @@ -66,7 +66,7 @@ BITCOIN_TESTS =\ test/sighash_tests.cpp \ test/sigopcount_tests.cpp \ test/skiplist_tests.cpp \ - test/test_dash.cpp \ + test/test_btx.cpp \ test/timedata_tests.cpp \ test/transaction_tests.cpp \ test/uint256_tests.cpp \ @@ -80,18 +80,18 @@ BITCOIN_TESTS += \ test/rpc_wallet_tests.cpp endif -test_test_dash_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) -test_test_dash_CPPFLAGS = $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) -test_test_dash_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ +test_test_btx_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) +test_test_btx_CPPFLAGS = $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) +test_test_btx_LDADD = $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) if ENABLE_WALLET -test_test_dash_LDADD += $(LIBBITCOIN_WALLET) +test_test_btx_LDADD += $(LIBBITCOIN_WALLET) endif -test_test_dash_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) -test_test_dash_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static +test_test_btx_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) +test_test_btx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static -nodist_test_test_dash_SOURCES = $(GENERATED_TEST_FILES) +nodist_test_test_btx_SOURCES = $(GENERATED_TEST_FILES) $(BITCOIN_TESTS): $(GENERATED_TEST_FILES) @@ -99,13 +99,13 @@ CLEAN_BITCOIN_TEST = test/*.gcda test/*.gcno $(GENERATED_TEST_FILES) CLEANFILES += $(CLEAN_BITCOIN_TEST) -dash_test: $(TEST_BINARY) +btx_test: $(TEST_BINARY) -dash_test_check: $(TEST_BINARY) FORCE +btx_test_check: $(TEST_BINARY) FORCE $(MAKE) check-TESTS TESTS=$^ -dash_test_clean : FORCE - rm -f $(CLEAN_BITCOIN_TEST) $(test_test_dash_OBJECTS) $(TEST_BINARY) +btx_test_clean : FORCE + rm -f $(CLEAN_BITCOIN_TEST) $(test_test_btx_OBJECTS) $(TEST_BINARY) check-local: $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check diff --git a/src/activemasternode.cpp b/src/activemasternode.cpp index e65725386ced..df17270a6221 100644 --- a/src/activemasternode.cpp +++ b/src/activemasternode.cpp @@ -8,7 +8,7 @@ #include "spork.h" // -// Bootup the Masternode, look for a 1000DRK input and register on the network +// Bootup the Masternode, look for a 250000BTX input and register on the network // void CActiveMasternode::ManageStatus() { @@ -455,7 +455,7 @@ vector CActiveMasternode::SelectCoinsMasternode() // Filter BOOST_FOREACH(const COutput& out, vCoins) { - if(out.tx->vout[out.i].nValue == 1000*COIN) { //exactly + if(out.tx->vout[out.i].nValue == 250000*COIN) { //exactly filteredCoins.push_back(out); } } diff --git a/src/activemasternode.h b/src/activemasternode.h index 93a64eeab253..587eb0a3f776 100644 --- a/src/activemasternode.h +++ b/src/activemasternode.h @@ -32,7 +32,7 @@ class CActiveMasternode /// Register any Masternode bool Register(CTxIn vin, CService service, CKey key, CPubKey pubKey, CKey keyMasternode, CPubKey pubKeyMasternode, std::string &errorMessage); - /// Get 1000DRK input that can be used for the Masternode + /// Get 250000BTX input that can be used for the Masternode bool GetMasterNodeVin(CTxIn& vin, CPubKey& pubkey, CKey& secretKey, std::string strTxHash, std::string strOutputIndex); bool GetVinFromOutput(COutput out, CTxIn& vin, CPubKey& pubkey, CKey& secretKey); @@ -60,7 +60,7 @@ class CActiveMasternode /// Register remote Masternode bool Register(std::string strService, std::string strKey, std::string strTxHash, std::string strOutputIndex, std::string& errorMessage); - /// Get 1000DRK input that can be used for the Masternode + /// Get 250000BTX input that can be used for the Masternode bool GetMasterNodeVin(CTxIn& vin, CPubKey& pubkey, CKey& secretKey); vector SelectCoinsMasternode(); diff --git a/src/base58.h b/src/base58.h index 74dc66f1096b..432dde26a183 100644 --- a/src/base58.h +++ b/src/base58.h @@ -94,7 +94,7 @@ class CBase58Data bool operator> (const CBase58Data& b58) const { return CompareTo(b58) > 0; } }; -/** base58-encoded Dash addresses. +/** base58-encoded BTX addresses. * Public-key-hash-addresses have version 0 (or 111 testnet). * The data vector contains RIPEMD160(SHA256(pubkey)), where pubkey is the serialized public key. * Script-hash-addresses have version 5 (or 196 testnet). diff --git a/src/bignum.h b/src/bignum.h new file mode 100644 index 000000000000..2352e7bd7efc --- /dev/null +++ b/src/bignum.h @@ -0,0 +1,726 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2012 The Bitcoin developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_BIGNUM_H +#define BITCOIN_BIGNUM_H + +#include "serialize.h" +#include "uint256.h" +#include "version.h" + +#include + +#include +#include + +#include + +/** Errors thrown by the bignum class */ +class bignum_error : public std::runtime_error +{ +public: + explicit bignum_error(const std::string& str) : std::runtime_error(str) {} +}; + + +/** RAII encapsulated BN_CTX (OpenSSL bignum context) */ +class CAutoBN_CTX +{ +protected: + BN_CTX* pctx; + BN_CTX* operator=(BN_CTX* pnew) { return pctx = pnew; } + +public: + CAutoBN_CTX() + { + pctx = BN_CTX_new(); + if (pctx == NULL) + throw bignum_error("CAutoBN_CTX : BN_CTX_new() returned NULL"); + } + + ~CAutoBN_CTX() + { + if (pctx != NULL) + BN_CTX_free(pctx); + } + + operator BN_CTX*() { return pctx; } + BN_CTX& operator*() { return *pctx; } + BN_CTX** operator&() { return &pctx; } + bool operator!() { return (pctx == NULL); } +}; + + +/** C++ wrapper for BIGNUM (OpenSSL bignum) */ +class CBigNum : public BIGNUM +{ +public: + CBigNum() + { + BN_init(this); + } + + CBigNum(const CBigNum& b) + { + BN_init(this); + if (!BN_copy(this, &b)) + { + BN_clear_free(this); + throw bignum_error("CBigNum::CBigNum(const CBigNum&) : BN_copy failed"); + } + } + + CBigNum& operator=(const CBigNum& b) + { + if (!BN_copy(this, &b)) + throw bignum_error("CBigNum::operator= : BN_copy failed"); + return (*this); + } + + ~CBigNum() + { + BN_clear_free(this); + } + + //CBigNum(char n) is not portable. Use 'signed char' or 'unsigned char'. + CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } + CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } + CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } + CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); } + CBigNum(long long n) { BN_init(this); setint64(n); } + CBigNum(unsigned char n) { BN_init(this); setulong(n); } + CBigNum(unsigned short n) { BN_init(this); setulong(n); } + CBigNum(unsigned int n) { BN_init(this); setulong(n); } + CBigNum(unsigned long n) { BN_init(this); setulong(n); } + CBigNum(unsigned long long n) { BN_init(this); setuint64(n); } + explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); } + + explicit CBigNum(const std::vector& vch) + { + BN_init(this); + setvch(vch); + } + + /** Generates a cryptographically secure random number between zero and range exclusive + * i.e. 0 < returned number < range + * @param range The upper bound on the number. + * @return + */ + static CBigNum randBignum(const CBigNum& range) { + CBigNum ret; + if(!BN_rand_range(&ret, &range)){ + throw bignum_error("CBigNum:rand element : BN_rand_range failed"); + } + return ret; + } + + /** Generates a cryptographically secure random k-bit number + * @param k The bit length of the number. + * @return + */ + static CBigNum RandKBitBigum(const uint32_t k){ + CBigNum ret; + if(!BN_rand(&ret, k, -1, 0)){ + throw bignum_error("CBigNum:rand element : BN_rand failed"); + } + return ret; + } + + /**Returns the size in bits of the underlying bignum. + * + * @return the size + */ + int bitSize() const{ + return BN_num_bits(this); + } + + + void setulong(unsigned long n) + { + if (!BN_set_word(this, n)) + throw bignum_error("CBigNum conversion from unsigned long : BN_set_word failed"); + } + + unsigned long getulong() const + { + return BN_get_word(this); + } + + unsigned int getuint() const + { + return BN_get_word(this); + } + + int getint() const + { + unsigned long n = BN_get_word(this); + if (!BN_is_negative(this)) + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::max() : n); + else + return (n > (unsigned long)std::numeric_limits::max() ? std::numeric_limits::min() : -(int)n); + } + + void setint64(int64_t sn) + { + unsigned char pch[sizeof(sn) + 6]; + unsigned char* p = pch + 4; + bool fNegative; + uint64_t n; + + if (sn < (int64_t)0) + { + // Since the minimum signed integer cannot be represented as positive so long as its type is signed, and it's not well-defined what happens if you make it unsigned before negating it, we instead increment the negative integer by 1, convert it, then increment the (now positive) unsigned integer by 1 to compensate + n = -(sn + 1); + ++n; + fNegative = true; + } else { + n = sn; + fNegative = false; + } + + bool fLeadingZeroes = true; + for (int i = 0; i < 8; i++) + { + unsigned char c = (n >> 56) & 0xff; + n <<= 8; + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = (fNegative ? 0x80 : 0); + else if (fNegative) + c |= 0x80; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize) & 0xff; + BN_mpi2bn(pch, p - pch, this); + } + + uint64_t getuint64() + { + unsigned int nSize = BN_bn2mpi(this, NULL); + if (nSize < 4) + return 0; + std::vector vch(nSize); + BN_bn2mpi(this, &vch[0]); + if (vch.size() > 4) + vch[4] &= 0x7f; + uint64_t n = 0; + for (unsigned int i = 0, j = vch.size()-1; i < sizeof(n) && j >= 4; i++, j--) + ((unsigned char*)&n)[i] = vch[j]; + return n; + } + + void setuint64(uint64_t n) + { + unsigned char pch[sizeof(n) + 6]; + unsigned char* p = pch + 4; + bool fLeadingZeroes = true; + for (int i = 0; i < 8; i++) + { + unsigned char c = (n >> 56) & 0xff; + n <<= 8; + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = 0; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize) & 0xff; + BN_mpi2bn(pch, p - pch, this); + } + + void setuint256(uint256 n) + { + unsigned char pch[sizeof(n) + 6]; + unsigned char* p = pch + 4; + bool fLeadingZeroes = true; + unsigned char* pbegin = (unsigned char*)&n; + unsigned char* psrc = pbegin + sizeof(n); + while (psrc != pbegin) + { + unsigned char c = *(--psrc); + if (fLeadingZeroes) + { + if (c == 0) + continue; + if (c & 0x80) + *p++ = 0; + fLeadingZeroes = false; + } + *p++ = c; + } + unsigned int nSize = p - (pch + 4); + pch[0] = (nSize >> 24) & 0xff; + pch[1] = (nSize >> 16) & 0xff; + pch[2] = (nSize >> 8) & 0xff; + pch[3] = (nSize >> 0) & 0xff; + BN_mpi2bn(pch, p - pch, this); + } + + uint256 getuint256() const + { + unsigned int nSize = BN_bn2mpi(this, NULL); + if (nSize < 4) + return 0; + std::vector vch(nSize); + BN_bn2mpi(this, &vch[0]); + if (vch.size() > 4) + vch[4] &= 0x7f; + uint256 n = 0; + for (unsigned int i = 0, j = vch.size()-1; i < sizeof(n) && j >= 4; i++, j--) + ((unsigned char*)&n)[i] = vch[j]; + return n; + } + + + void setvch(const std::vector& vch) + { + std::vector vch2(vch.size() + 4); + unsigned int nSize = vch.size(); + // BIGNUM's byte stream format expects 4 bytes of + // big endian size data info at the front + vch2[0] = (nSize >> 24) & 0xff; + vch2[1] = (nSize >> 16) & 0xff; + vch2[2] = (nSize >> 8) & 0xff; + vch2[3] = (nSize >> 0) & 0xff; + // swap data to big endian + reverse_copy(vch.begin(), vch.end(), vch2.begin() + 4); + BN_mpi2bn(&vch2[0], vch2.size(), this); + } + + std::vector getvch() const + { + unsigned int nSize = BN_bn2mpi(this, NULL); + if (nSize <= 4) + return std::vector(); + std::vector vch(nSize); + BN_bn2mpi(this, &vch[0]); + vch.erase(vch.begin(), vch.begin() + 4); + reverse(vch.begin(), vch.end()); + return vch; + } + + CBigNum& SetCompact(unsigned int nCompact) + { + unsigned int nSize = nCompact >> 24; + std::vector vch(4 + nSize); + vch[3] = nSize; + if (nSize >= 1) vch[4] = (nCompact >> 16) & 0xff; + if (nSize >= 2) vch[5] = (nCompact >> 8) & 0xff; + if (nSize >= 3) vch[6] = (nCompact >> 0) & 0xff; + BN_mpi2bn(&vch[0], vch.size(), this); + return *this; + } + + unsigned int GetCompact() const + { + unsigned int nSize = BN_bn2mpi(this, NULL); + std::vector vch(nSize); + nSize -= 4; + BN_bn2mpi(this, &vch[0]); + unsigned int nCompact = nSize << 24; + if (nSize >= 1) nCompact |= (vch[4] << 16); + if (nSize >= 2) nCompact |= (vch[5] << 8); + if (nSize >= 3) nCompact |= (vch[6] << 0); + return nCompact; + } + + void SetHex(const std::string& str) + { + // skip 0x + const char* psz = str.c_str(); + while (isspace(*psz)) + psz++; + bool fNegative = false; + if (*psz == '-') + { + fNegative = true; + psz++; + } + if (psz[0] == '0' && tolower(psz[1]) == 'x') + psz += 2; + while (isspace(*psz)) + psz++; + + // hex string to bignum + static const signed char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 }; + *this = 0; + while (isxdigit(*psz)) + { + *this <<= 4; + int n = phexdigit[(unsigned char)*psz++]; + *this += n; + } + if (fNegative) + *this = 0 - *this; + } + + std::string ToString(int nBase=10) const + { + CAutoBN_CTX pctx; + CBigNum bnBase = nBase; + CBigNum bn0 = 0; + std::string str; + CBigNum bn = *this; + BN_set_negative(&bn, false); + CBigNum dv; + CBigNum rem; + if (BN_cmp(&bn, &bn0) == 0) + return "0"; + while (BN_cmp(&bn, &bn0) > 0) + { + if (!BN_div(&dv, &rem, &bn, &bnBase, pctx)) + throw bignum_error("CBigNum::ToString() : BN_div failed"); + bn = dv; + unsigned int c = rem.getulong(); + str += "0123456789abcdef"[c]; + } + if (BN_is_negative(this)) + str += "-"; + reverse(str.begin(), str.end()); + return str; + } + + std::string GetHex() const + { + return ToString(16); + } + + unsigned int GetSerializeSize(int nType=0, int nVersion=PROTOCOL_VERSION) const + { + return ::GetSerializeSize(getvch(), nType, nVersion); + } + + template + void Serialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) const + { + ::Serialize(s, getvch(), nType, nVersion); + } + + template + void Unserialize(Stream& s, int nType=0, int nVersion=PROTOCOL_VERSION) + { + std::vector vch; + ::Unserialize(s, vch, nType, nVersion); + setvch(vch); + } + + /** + * exponentiation with an int. this^e + * @param e the exponent as an int + * @return + */ + CBigNum pow(const int e) const { + return this->pow(CBigNum(e)); + } + + /** + * exponentiation this^e + * @param e the exponent + * @return + */ + CBigNum pow(const CBigNum& e) const { + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_exp(&ret, this, &e, pctx)) + throw bignum_error("CBigNum::pow : BN_exp failed"); + return ret; + } + + /** + * modular multiplication: (this * b) mod m + * @param b operand + * @param m modulus + */ + CBigNum mul_mod(const CBigNum& b, const CBigNum& m) const { + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_mod_mul(&ret, this, &b, &m, pctx)) + throw bignum_error("CBigNum::mul_mod : BN_mod_mul failed"); + + return ret; + } + + /** + * modular exponentiation: this^e mod n + * @param e exponent + * @param m modulus + */ + CBigNum pow_mod(const CBigNum& e, const CBigNum& m) const { + CAutoBN_CTX pctx; + CBigNum ret; + if( e < 0){ + // g^-x = (g^-1)^x + CBigNum inv = this->inverse(m); + CBigNum posE = e * -1; + if (!BN_mod_exp(&ret, &inv, &posE, &m, pctx)) + throw bignum_error("CBigNum::pow_mod: BN_mod_exp failed on negative exponent"); + }else + if (!BN_mod_exp(&ret, this, &e, &m, pctx)) + throw bignum_error("CBigNum::pow_mod : BN_mod_exp failed"); + + return ret; + } + + /** + * Calculates the inverse of this element mod m. + * i.e. i such this*i = 1 mod m + * @param m the modu + * @return the inverse + */ + CBigNum inverse(const CBigNum& m) const { + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_mod_inverse(&ret, this, &m, pctx)) + throw bignum_error("CBigNum::inverse*= :BN_mod_inverse"); + return ret; + } + + /** + * Generates a random (safe) prime of numBits bits + * @param numBits the number of bits + * @param safe true for a safe prime + * @return the prime + */ + static CBigNum generatePrime(const unsigned int numBits, bool safe = false) { + CBigNum ret; + if(!BN_generate_prime_ex(&ret, numBits, (safe == true), NULL, NULL, NULL)) + throw bignum_error("CBigNum::generatePrime*= :BN_generate_prime_ex"); + return ret; + } + + /** + * Calculates the greatest common divisor (GCD) of two numbers. + * @param m the second element + * @return the GCD + */ + CBigNum gcd( const CBigNum& b) const{ + CAutoBN_CTX pctx; + CBigNum ret; + if (!BN_gcd(&ret, this, &b, pctx)) + throw bignum_error("CBigNum::gcd*= :BN_gcd"); + return ret; + } + + /** + * Miller-Rabin primality test on this element + * @param checks: optional, the number of Miller-Rabin tests to run + * default causes error rate of 2^-80. + * @return true if prime + */ + bool isPrime(const int checks=BN_prime_checks) const { + CAutoBN_CTX pctx; + int ret = BN_is_prime(this, checks, NULL, pctx, NULL); + if(ret < 0){ + throw bignum_error("CBigNum::isPrime :BN_is_prime"); + } + return ret; + } + + bool isOne() const { + return BN_is_one(this); + } + + + bool operator!() const + { + return BN_is_zero(this); + } + + CBigNum& operator+=(const CBigNum& b) + { + if (!BN_add(this, this, &b)) + throw bignum_error("CBigNum::operator+= : BN_add failed"); + return *this; + } + + CBigNum& operator-=(const CBigNum& b) + { + *this = *this - b; + return *this; + } + + CBigNum& operator*=(const CBigNum& b) + { + CAutoBN_CTX pctx; + if (!BN_mul(this, this, &b, pctx)) + throw bignum_error("CBigNum::operator*= : BN_mul failed"); + return *this; + } + + CBigNum& operator/=(const CBigNum& b) + { + *this = *this / b; + return *this; + } + + CBigNum& operator%=(const CBigNum& b) + { + *this = *this % b; + return *this; + } + + CBigNum& operator<<=(unsigned int shift) + { + if (!BN_lshift(this, this, shift)) + throw bignum_error("CBigNum:operator<<= : BN_lshift failed"); + return *this; + } + + CBigNum& operator>>=(unsigned int shift) + { + // Note: BN_rshift segfaults on 64-bit if 2^shift is greater than the number + // if built on ubuntu 9.04 or 9.10, probably depends on version of OpenSSL + CBigNum a = 1; + a <<= shift; + if (BN_cmp(&a, this) > 0) + { + *this = 0; + return *this; + } + + if (!BN_rshift(this, this, shift)) + throw bignum_error("CBigNum:operator>>= : BN_rshift failed"); + return *this; + } + + + CBigNum& operator++() + { + // prefix operator + if (!BN_add(this, this, BN_value_one())) + throw bignum_error("CBigNum::operator++ : BN_add failed"); + return *this; + } + + const CBigNum operator++(int) + { + // postfix operator + const CBigNum ret = *this; + ++(*this); + return ret; + } + + CBigNum& operator--() + { + // prefix operator + CBigNum r; + if (!BN_sub(&r, this, BN_value_one())) + throw bignum_error("CBigNum::operator-- : BN_sub failed"); + *this = r; + return *this; + } + + const CBigNum operator--(int) + { + // postfix operator + const CBigNum ret = *this; + --(*this); + return ret; + } + + + friend inline const CBigNum operator-(const CBigNum& a, const CBigNum& b); + friend inline const CBigNum operator/(const CBigNum& a, const CBigNum& b); + friend inline const CBigNum operator%(const CBigNum& a, const CBigNum& b); + friend inline const CBigNum operator*(const CBigNum& a, const CBigNum& b); + friend inline bool operator<(const CBigNum& a, const CBigNum& b); +}; + + + +inline const CBigNum operator+(const CBigNum& a, const CBigNum& b) +{ + CBigNum r; + if (!BN_add(&r, &a, &b)) + throw bignum_error("CBigNum::operator+ : BN_add failed"); + return r; +} + +inline const CBigNum operator-(const CBigNum& a, const CBigNum& b) +{ + CBigNum r; + if (!BN_sub(&r, &a, &b)) + throw bignum_error("CBigNum::operator- : BN_sub failed"); + return r; +} + +inline const CBigNum operator-(const CBigNum& a) +{ + CBigNum r(a); + BN_set_negative(&r, !BN_is_negative(&r)); + return r; +} + +inline const CBigNum operator*(const CBigNum& a, const CBigNum& b) +{ + CAutoBN_CTX pctx; + CBigNum r; + if (!BN_mul(&r, &a, &b, pctx)) + throw bignum_error("CBigNum::operator* : BN_mul failed"); + return r; +} + +inline const CBigNum operator/(const CBigNum& a, const CBigNum& b) +{ + CAutoBN_CTX pctx; + CBigNum r; + if (!BN_div(&r, NULL, &a, &b, pctx)) + throw bignum_error("CBigNum::operator/ : BN_div failed"); + return r; +} + +inline const CBigNum operator%(const CBigNum& a, const CBigNum& b) +{ + CAutoBN_CTX pctx; + CBigNum r; + if (!BN_nnmod(&r, &a, &b, pctx)) + throw bignum_error("CBigNum::operator% : BN_div failed"); + return r; +} + +inline const CBigNum operator<<(const CBigNum& a, unsigned int shift) +{ + CBigNum r; + if (!BN_lshift(&r, &a, shift)) + throw bignum_error("CBigNum:operator<< : BN_lshift failed"); + return r; +} + +inline const CBigNum operator>>(const CBigNum& a, unsigned int shift) +{ + CBigNum r = a; + r >>= shift; + return r; +} + +inline bool operator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); } +inline bool operator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); } +inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); } +inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); } +inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); } +inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); } + +inline std::ostream& operator<<(std::ostream &strm, const CBigNum &b) { return strm << b.ToString(10); } + +typedef CBigNum Bignum; + +#endif diff --git a/src/chainparams.cpp b/src/chainparams.cpp index f8fe2363c0ac..410bfbbf5208 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -56,48 +56,39 @@ static void convertSeed6(std::vector &vSeedsOut, const SeedSpec6 *data static Checkpoints::MapCheckpoints mapCheckpoints = boost::assign::map_list_of - ( 1500, uint256("0x000000aaf0300f59f49bc3e970bad15c11f961fe2347accffff19d96ec9778e3")) - ( 4991, uint256("0x000000003b01809551952460744d5dbb8fcbd6cbae3c220267bf7fa43f837367")) - ( 9918, uint256("0x00000000213e229f332c0ffbe34defdaa9e74de87f2d8d1f01af8d121c3c170b")) - ( 16912, uint256("0x00000000075c0d10371d55a60634da70f197548dbbfa4123e12abfcbc5738af9")) - ( 23912, uint256("0x0000000000335eac6703f3b1732ec8b2f89c3ba3a7889e5767b090556bb9a276")) - ( 35457, uint256("0x0000000000b0ae211be59b048df14820475ad0dd53b9ff83b010f71a77342d9f")) - ( 45479, uint256("0x000000000063d411655d590590e16960f15ceea4257122ac430c6fbe39fbf02d")) - ( 55895, uint256("0x0000000000ae4c53a43639a4ca027282f69da9c67ba951768a20415b6439a2d7")) - ( 68899, uint256("0x0000000000194ab4d3d9eeb1f2f792f21bb39ff767cb547fe977640f969d77b7")) - ( 74619, uint256("0x000000000011d28f38f05d01650a502cc3f4d0e793fbc26e2a2ca71f07dc3842")) - ( 75095, uint256("0x0000000000193d12f6ad352a9996ee58ef8bdc4946818a5fec5ce99c11b87f0d")) - ( 88805, uint256("0x00000000001392f1652e9bf45cd8bc79dc60fe935277cd11538565b4a94fa85f")) - ( 107996, uint256("0x00000000000a23840ac16115407488267aa3da2b9bc843e301185b7d17e4dc40")) - ( 137993, uint256("0x00000000000cf69ce152b1bffdeddc59188d7a80879210d6e5c9503011929c3c")) - ( 167996, uint256("0x000000000009486020a80f7f2cc065342b0c2fb59af5e090cd813dba68ab0fed")) - ( 207992, uint256("0x00000000000d85c22be098f74576ef00b7aa00c05777e966aff68a270f1e01a5")) - ( 312645, uint256("0x0000000000059dcb71ad35a9e40526c44e7aae6c99169a9e7017b7d84b1c2daf")) + ( 0, uint256("0x00000449ae58462bbad8d26c7eb0270d332948872cfe97b7d5c42c154bfa5523")) + ( 9950, uint256("0x2bc193c75c0f967825ea78f1e92e57880040f011fa9343d321b34742563039d4")) + ( 25000, uint256("0x2c3628b858553f96771ef8771bfc85e6738442e8e995927abe1287f4f45a53f8")) + ( 56000, uint256("0x317c2f300b998e885a914e551270ec199aef14ade90d94c454685225b50d50d5")) + ( 76000, uint256("0x5ae7590572ff76223dffaa04ef87c24e824bb3ea614a9f23b1f89c9acf259c08")) + ( 90001, uint256("0x5c89cf3a408121b7850bfbbe01bd0b3cacf2927b3803b2e502bec0329f43af57")) + ( 100014, uint256("0x70050e7917796b8fe4974b226b8e5fbdb386174bb4904daf3465a94de5876443")) + ( 120010, uint256("0x74f3a0917a0ca006445df6753f1a80de6c05659b6e1ae51105659ce3b446f7ac")) + ( 130542, uint256("0x902fe4e1e0a51ccbf806bb79b582b90b415a7c3bca272b763488633fb04187d4")) ; +//TODO: Change params below: static const Checkpoints::CCheckpointData data = { &mapCheckpoints, - 1423563332, // * UNIX timestamp of last checkpoint block - 853742, // * total number of transactions between genesis and last checkpoint - // (the tx=... number in the SetBestChain debug.log lines) - 2800 // * estimated number of transactions per day after checkpoint + 0, // * UNIX timestamp of last checkpoint block + 0, // * total number of transactions between genesis and last checkpoint + // (the tx=... number in the SetBestChain debug.log lines) + 0 // * estimated number of transactions per day after checkpoint }; static Checkpoints::MapCheckpoints mapCheckpointsTestnet = boost::assign::map_list_of - ( 261, uint256("00000c26026d0815a7e2ce4fa270775f61403c040647ff2c3091f99e894a4618")) - ( 77900, uint256("00000007e5ec67e2a626c07b7d66673c3dd8df0aed5018ca984b99fba2b71024")) - ( 82313, uint256("000000156a313af1d69fe855609175b276996235e8f4f7da41b10e4a7a750a19")) + ( 0, uint256("0x0")) ; static const Checkpoints::CCheckpointData dataTestnet = { &mapCheckpointsTestnet, - 1405699509, - 201, - 500 - }; + 0, + 0, + 0 + }; static Checkpoints::MapCheckpoints mapCheckpointsRegtest = boost::assign::map_list_of - ( 0, uint256("0x000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e")) + ( 0, uint256("0x0")) ; static const Checkpoints::CCheckpointData dataRegtest = { &mapCheckpointsRegtest, @@ -116,21 +107,23 @@ class CMainParams : public CChainParams { * The characters are rarely used upper ASCII, not valid as UTF-8, and produce * a large 4-byte int at any alignment. */ - pchMessageStart[0] = 0xbf; - pchMessageStart[1] = 0x0c; - pchMessageStart[2] = 0x6b; - pchMessageStart[3] = 0xbd; - vAlertPubKey = ParseHex("048240a8748a80a286b270ba126705ced4f2ce5a7847b3610ea3c06513150dade2a8512ed5ea86320824683fc0818f0ac019214973e677acd1244f6d0571fc5103"); - nDefaultPort = 9999; - bnProofOfWorkLimit = ~uint256(0) >> 20; // Dash starting difficulty is 1 / 2^12 + pchMessageStart[0] = 0xb1; + pchMessageStart[1] = 0xb5; + pchMessageStart[2] = 0xa2; + pchMessageStart[3] = 0xa4; + //Need a new alert pub key. + vAlertPubKey = ParseHex("0469983e0cc246fb426e7358f2aa29e09e4033c841455dc296f8f2dc99bb41fafda903f80f617ce9414aecb895d501cb5fb73c0bef8bb30ddab8e4a78f504dfd83"); + nDefaultPort = 28280; + bnProofOfWorkLimit = ~uint256(0) >> 20; // BTX starting difficulty is 1 / 2^12 + //TODO: What are these???????? nSubsidyHalvingInterval = 210000; nEnforceBlockUpgradeMajority = 750; nRejectBlockOutdatedMajority = 950; nToCheckBlockUpgradeMajority = 1000; nMinerThreads = 0; - nTargetTimespan = 24 * 60 * 60; // Dash: 1 day - nTargetSpacing = 2.5 * 60; // Dash: 2.5 minutes - + nTargetTimespan = 24 * 60 * 60; // BTX: 1 day + nTargetSpacing = 2.5 * 60; // BTX: 2.5 minutes + //TODO: What are these???????? /** * Build the genesis block. Note that the output of the genesis coinbase cannot * be spent as it did not originally exist in the database. @@ -141,38 +134,39 @@ class CMainParams : public CChainParams { * CTxOut(nValue=50.00000000, scriptPubKey=0xA9037BAC7050C479B121CF) * vMerkleTree: e0028e */ - const char* pszTimestamp = "Wired 09/Jan/2014 The Grand Experiment Goes Live: Overstock.com Is Now Accepting Bitcoins"; + const char* pszTimestamp = "BT, currency for people (and robots...and animals, maybe)"; CMutableTransaction txNew; + //txNew.nTime = 1430222400; txNew.vin.resize(1); txNew.vout.resize(1); - txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); - txNew.vout[0].nValue = 50 * COIN; - txNew.vout[0].scriptPubKey = CScript() << ParseHex("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9") << OP_CHECKSIG; + txNew.vin[0].scriptSig = CScript() << 0 << 42 << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); + txNew.vout[0].nValue = NULL; genesis.vtx.push_back(txNew); genesis.hashPrevBlock = 0; genesis.hashMerkleRoot = genesis.BuildMerkleTree(); genesis.nVersion = 1; - genesis.nTime = 1390095618; - genesis.nBits = 0x1e0ffff0; - genesis.nNonce = 28917698; + genesis.nTime = 1430222400; + genesis.nBits = 0x1e0fffff; + genesis.nNonce = 171310; hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0x00000ffd590b1485b3caadc19b22e6379c733355108f107a430458cdf3407ab6")); - assert(genesis.hashMerkleRoot == uint256("0xe0028eb9648db56b1ac77cf090b99048a8007e2bb64b68f092c03c7f56a662c7")); + assert(hashGenesisBlock == uint256("0x00000449ae58462bbad8d26c7eb0270d332948872cfe97b7d5c42c154bfa5523")); + assert(genesis.hashMerkleRoot == uint256("0x543528ec7c8617e4816916806d3536b6a22f18907deae54c13c30d725b7d908f")); - vSeeds.push_back(CDNSSeedData("darkcoin.io", "dnsseed.darkcoin.io")); - vSeeds.push_back(CDNSSeedData("darkcoin.qa", "dnsseed.darkcoin.qa")); - vSeeds.push_back(CDNSSeedData("masternode.io", "dnsseed.masternode.io")); - vSeeds.push_back(CDNSSeedData("dashpay.io", "dnsseed.dashpay.io")); + vSeeds.push_back(CDNSSeedData("btxcoin.com", "dnsseed.btxcoin.com")); + vSeeds.push_back(CDNSSeedData("btxcoin.net", "dnsseed.btxcoin.net")); + vSeeds.push_back(CDNSSeedData("bitcointx.io", "dnsseed.bitcointx.io")); + vSeeds.push_back(CDNSSeedData("bitcointx.info", "dnsseed.bitcointx.info")); - base58Prefixes[PUBKEY_ADDRESS] = list_of( 76); // Dash addresses start with 'X' - base58Prefixes[SCRIPT_ADDRESS] = list_of( 16); // Dash script addresses start with '7' - base58Prefixes[SECRET_KEY] = list_of(204); // Dash private keys start with '7' or 'X' - base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x02)(0xFE)(0x52)(0xF8); // Dash BIP32 pubkeys start with 'drkv' - base58Prefixes[EXT_SECRET_KEY] = list_of(0x02)(0xFE)(0x52)(0xCC); // Dash BIP32 prvkeys start with 'drkp' - base58Prefixes[EXT_COIN_TYPE] = list_of(0x80000005); // Dash BIP44 coin type is '5' + base58Prefixes[PUBKEY_ADDRESS] = list_of(35); + base58Prefixes[SCRIPT_ADDRESS] = list_of(85); + base58Prefixes[SECRET_KEY] = list_of(153); + base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x88)(0xB2)(0x1E); + base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x88)(0xAD)(0xE4); // BTX BIP44 coin type is '5' convertSeed6(vFixedSeeds, pnSeed6_main, ARRAYLEN(pnSeed6_main)); + //TODO: Trace this variable in original code. + nLastPOWBlock = 2000; fRequireRPCPassword = true; fMiningRequiresPeers = true; @@ -184,9 +178,9 @@ class CMainParams : public CChainParams { fTestnetToBeDeprecatedFieldRPC = false; nPoolMaxTransactions = 3; - strSporkKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; - strMasternodePaymentsPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; - strDarksendPoolDummyAddress = "Xq19GqFvajRrEdDHYRKGYjTsQfpV5jyipF"; + strSporkKey = "0"; + strMasternodePaymentsPubKey = "0"; + strDarksendPoolDummyAddress = "New BTX address"; nStartMasternodePayments = 1403728576; //Wed, 25 Jun 2014 20:36:16 GMT } @@ -205,42 +199,41 @@ class CTestNetParams : public CMainParams { CTestNetParams() { networkID = CBaseChainParams::TESTNET; strNetworkID = "test"; - pchMessageStart[0] = 0xce; - pchMessageStart[1] = 0xe2; - pchMessageStart[2] = 0xca; - pchMessageStart[3] = 0xff; - vAlertPubKey = ParseHex("04517d8a699cb43d3938d7b24faaff7cda448ca4ea267723ba614784de661949bf632d6304316b244646dea079735b9a6fc4af804efb4752075b9fe2245e14e412"); - nDefaultPort = 19999; + pchMessageStart[0] = 0xb2; + pchMessageStart[1] = 0xa0; + pchMessageStart[2] = 0xa2; + pchMessageStart[3] = 0xa3; + bnProofOfWorkLimit = ~uint256(0) >> 12; + vAlertPubKey = ParseHex("04bce55edfa485b7f0efb41f56be9356cc597c570d2b9479b9ee0f1eb4bcd271ca8dc7b12289fa3b366d1868453544e369abfeb00b646aff8d61cfc8111e122c5e"); + nDefaultPort = 28281; nEnforceBlockUpgradeMajority = 51; nRejectBlockOutdatedMajority = 75; nToCheckBlockUpgradeMajority = 100; nMinerThreads = 0; - nTargetTimespan = 24 * 60 * 60; // Dash: 1 day - nTargetSpacing = 2.5 * 60; // Dash: 2.5 minutes + nTargetTimespan = 24 * 60 * 60; // BTX: 1 day + nTargetSpacing = 2.5 * 60; // BTX: 2.5 minutes //! Modify the testnet genesis block so the timestamp is valid for a later start. genesis.nTime = 1390666206; genesis.nNonce = 3861367235; - + genesis.nBits = bnProofOfWorkLimit.GetCompact(); + genesis.nNonce = 219671; hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0x00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c")); + assert(hashGenesisBlock == uint256("0xd3aa2697d4c3d92664895cac715a3f2529e377a36bdb22cff4d28ea11ec85796")); vFixedSeeds.clear(); vSeeds.clear(); - /*vSeeds.push_back(CDNSSeedData("dashpay.io", "testnet-seed.dashpay.io")); - vSeeds.push_back(CDNSSeedData("dash.qa", "testnet-seed.dash.qa")); + /*vSeeds.push_back(CDNSSeedData("btxpay.io", "testnet-seed.btxpay.io")); + vSeeds.push_back(CDNSSeedData("btx.qa", "testnet-seed.btx.qa")); *///legacy seeders - vSeeds.push_back(CDNSSeedData("darkcoin.io", "testnet-seed.darkcoin.io")); - vSeeds.push_back(CDNSSeedData("darkcoin.qa", "testnet-seed.darkcoin.qa")); - vSeeds.push_back(CDNSSeedData("masternode.io", "test.dnsseed.masternode.io")); - base58Prefixes[PUBKEY_ADDRESS] = list_of(139); // Testnet dash addresses start with 'x' or 'y' - base58Prefixes[SCRIPT_ADDRESS] = list_of( 19); // Testnet dash script addresses start with '8' or '9' - base58Prefixes[SECRET_KEY] = list_of(239); // Testnet private keys start with '9' or 'c' (Bitcoin defaults) - base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x3a)(0x80)(0x61)(0xa0); // Testnet dash BIP32 pubkeys start with 'DRKV' - base58Prefixes[EXT_SECRET_KEY] = list_of(0x3a)(0x80)(0x58)(0x37); // Testnet dash BIP32 prvkeys start with 'DRKP' - base58Prefixes[EXT_COIN_TYPE] = list_of(0x80000001); // Testnet dash BIP44 coin type is '5' (All coin's testnet default) + base58Prefixes[PUBKEY_ADDRESS] = list_of(125); + base58Prefixes[SCRIPT_ADDRESS] = list_of(196); + base58Prefixes[SECRET_KEY] = list_of(239); + base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF); + base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94); + // Testnet btx BIP44 coin type is '5' (All coin's testnet default) convertSeed6(vFixedSeeds, pnSeed6_test, ARRAYLEN(pnSeed6_test)); fRequireRPCPassword = true; @@ -252,9 +245,9 @@ class CTestNetParams : public CMainParams { fTestnetToBeDeprecatedFieldRPC = true; nPoolMaxTransactions = 2; - strSporkKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; - strMasternodePaymentsPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; - strDarksendPoolDummyAddress = "y1EZuxhhNMAUofTBEeLqGE1bJrpC2TWRNp"; + strSporkKey = "0"; + strMasternodePaymentsPubKey = "0"; + strDarksendPoolDummyAddress = "new"; nStartMasternodePayments = 1420837558; //Fri, 09 Jan 2015 21:05:58 GMT } const Checkpoints::CCheckpointData& Checkpoints() const @@ -272,17 +265,17 @@ class CRegTestParams : public CTestNetParams { CRegTestParams() { networkID = CBaseChainParams::REGTEST; strNetworkID = "regtest"; - pchMessageStart[0] = 0xfc; - pchMessageStart[1] = 0xc1; - pchMessageStart[2] = 0xb7; - pchMessageStart[3] = 0xdc; + pchMessageStart[0] = 0xcc; + pchMessageStart[1] = 0xcc; + pchMessageStart[2] = 0xcc; + pchMessageStart[3] = 0xcc; nSubsidyHalvingInterval = 150; nEnforceBlockUpgradeMajority = 750; nRejectBlockOutdatedMajority = 950; nToCheckBlockUpgradeMajority = 1000; nMinerThreads = 1; - nTargetTimespan = 24 * 60 * 60; // Dash: 1 day - nTargetSpacing = 2.5 * 60; // Dash: 2.5 minutes + nTargetTimespan = 24 * 60 * 60; // BTX: 1 day + nTargetSpacing = 2.5 * 60; // BTX: 2.5 minutes bnProofOfWorkLimit = ~uint256(0) >> 1; genesis.nTime = 1417713337; genesis.nBits = 0x207fffff; @@ -317,7 +310,7 @@ class CUnitTestParams : public CMainParams, public CModifiableParams { CUnitTestParams() { networkID = CBaseChainParams::UNITTEST; strNetworkID = "unittest"; - nDefaultPort = 18445; + nDefaultPort = 28445; vFixedSeeds.clear(); //! Unit test mode doesn't have any fixed seeds. vSeeds.clear(); //! Unit test mode doesn't have any DNS seeds. diff --git a/src/chainparams.h b/src/chainparams.h index 1b77635e8d92..c17af9abb12b 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -23,7 +23,7 @@ struct CDNSSeedData { /** * CChainParams defines various tweakable parameters of a given instance of the - * Dash system. There are three: the main network on which people trade goods + * BTX system. There are three: the main network on which people trade goods * and services, the public test network which gets reset from time to time and * a regression test mode which is intended for private networks only. It has * minimal difficulty to ensure that blocks can be found instantly. @@ -121,6 +121,7 @@ class CChainParams std::string strMasternodePaymentsPubKey; std::string strDarksendPoolDummyAddress; int64_t nStartMasternodePayments; + int nLastPOWBlock; }; /** diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index 71a7176d8c23..0a2bfaebae55 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -9,8 +9,8 @@ #include /** - * CBaseChainParams defines the base parameters (shared between dash-cli and dashd) - * of a given instance of the Dash system. + * CBaseChainParams defines the base parameters (shared between btx-cli and btxd) + * of a given instance of the BTX system. */ class CBaseChainParams { diff --git a/src/checkpoints.cpp b/src/checkpoints.cpp index a8fd488efd97..4cacf7c062f4 100644 --- a/src/checkpoints.cpp +++ b/src/checkpoints.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/clientversion.cpp b/src/clientversion.cpp index c51c261dd18b..c11be66abbdf 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -10,10 +10,10 @@ /** * Name of client reported in the 'version' message. Report the same name - * for both dashd and dash-qt, to make it harder for attackers to + * for both btxd and btx-qt, to make it harder for attackers to * target servers or GUI users specifically. */ -const std::string CLIENT_NAME("Dash Core"); +const std::string CLIENT_NAME("BTX Core"); /** * Client version number diff --git a/src/clientversion.h b/src/clientversion.h index ae7036d49cff..09687e0d4c84 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -6,14 +6,14 @@ #define BITCOIN_CLIENTVERSION_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #else /** * client versioning and copyright year */ -//! These need to be macros, as clientversion.cpp's and dash*-res.rc's voodoo requires it +//! These need to be macros, as clientversion.cpp's and btx*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 12 #define CLIENT_VERSION_REVISION 0 @@ -38,10 +38,10 @@ #define DO_STRINGIZE(X) #X //! Copyright string used in Windows .rc files -#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core Developers, 2014-" STRINGIZE(COPYRIGHT_YEAR) " The Dash Core Developers" +#define COPYRIGHT_STR "2009-" STRINGIZE(COPYRIGHT_YEAR) " The Bitcoin Core Developers, 2014-" STRINGIZE(COPYRIGHT_YEAR) " The BTX Core Developers" /** - * dashd-res.rc includes this file, but it cannot cope with real c++ code. + * btxd-res.rc includes this file, but it cannot cope with real c++ code. * WINDRES_PREPROC is defined to indicate that its pre-processor is running. * Anything other than a define should be guarded below. */ diff --git a/src/coins.h b/src/coins.h index f58c9f1d3e42..16625f59e95c 100644 --- a/src/coins.h +++ b/src/coins.h @@ -419,7 +419,7 @@ class CCoinsViewCache : public CCoinsViewBacked unsigned int GetCacheSize() const; /** - * Amount of dash coming in to a transaction + * Amount of btx coming in to a transaction * Note that lightweight clients may not know anything besides the hash of previous transactions, * so may not be able to calculate this. * diff --git a/src/compat.h b/src/compat.h index dd120e96356f..66666e853ff1 100644 --- a/src/compat.h +++ b/src/compat.h @@ -7,7 +7,7 @@ #define BITCOIN_COMPAT_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #ifdef WIN32 diff --git a/src/compat/glibc_compat.cpp b/src/compat/glibc_compat.cpp index 88b6508c5b75..90b24a84cc9a 100644 --- a/src/compat/glibc_compat.cpp +++ b/src/compat/glibc_compat.cpp @@ -3,7 +3,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include diff --git a/src/compat/glibc_sanity.cpp b/src/compat/glibc_sanity.cpp index 7ea476697202..7c1e748cbf12 100644 --- a/src/compat/glibc_sanity.cpp +++ b/src/compat/glibc_sanity.cpp @@ -3,7 +3,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include diff --git a/src/compat/strnlen.cpp b/src/compat/strnlen.cpp index c32762f0aee6..a4ad12c19b9e 100644 --- a/src/compat/strnlen.cpp +++ b/src/compat/strnlen.cpp @@ -3,7 +3,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include diff --git a/src/crypto/common.h b/src/crypto/common.h index c30ca83c97cd..3427f52df59a 100644 --- a/src/crypto/common.h +++ b/src/crypto/common.h @@ -6,7 +6,7 @@ #define BITCOIN_CRYPTO_COMMON_H #if defined(HAVE_CONFIG_H) -#include "dash-config.h" +#include "btx-config.h" #endif #include diff --git a/src/darksend-relay.h b/src/darksend-relay.h index 5dc2cb4c958a..c81178f0234c 100644 --- a/src/darksend-relay.h +++ b/src/darksend-relay.h @@ -1,5 +1,5 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/darksend.cpp b/src/darksend.cpp index 2168fee8b06d..c2de035d4048 100644 --- a/src/darksend.cpp +++ b/src/darksend.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -36,9 +36,9 @@ map mapDarksendBroadcastTxes; CActiveMasternode activeMasternode; /* *** BEGIN DARKSEND MAGIC - DASH ********** - Copyright (c) 2014-2015, Dash Developers - eduffield - evan@dashpay.io - udjinm6 - udjinm6@dashpay.io + Copyright (c) 2014-2015, BTX Developers + eduffield - evan@btxpay.io + udjinm6 - udjinm6@btxpay.io */ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand, CDataStream& vRecv) @@ -766,7 +766,7 @@ void CDarksendPool::ChargeRandomFees(){ Being that Darksend has "no fees" we need to have some kind of cost associated with using it to stop abuse. Otherwise it could serve as an attack vector and - allow endless transaction that would bloat Dash and make it unusable. To + allow endless transaction that would bloat BTX and make it unusable. To stop these kinds of attacks 1 in 10 successful transactions are charged. This adds up to a cost of 0.001DRK per transaction on average. */ @@ -2211,7 +2211,7 @@ void ThreadCheckDarkSendPool() if(fLiteMode) return; //disable all Darksend/Masternode related functionality // Make this thread recognisable as the wallet flushing thread - RenameThread("dash-darksend"); + RenameThread("btx-darksend"); unsigned int c = 0; diff --git a/src/darksend.h b/src/darksend.h index f0a439e13993..acae7c318e4f 100644 --- a/src/darksend.h +++ b/src/darksend.h @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -486,7 +486,7 @@ class CDarksendPool void GetDenominationsToString(int nDenom, std::string& strDenom); - /// Get the denominations for a specific amount of dash. + /// Get the denominations for a specific amount of btx. int GetDenominationsByAmount(int64_t nAmount, int nDenomTarget=0); // is not used anymore? int GetDenominationsByAmounts(std::vector& vecAmount); diff --git a/src/dash-cli-res.rc b/src/dash-cli-res.rc deleted file mode 100644 index e6347e906192..000000000000 --- a/src/dash-cli-res.rc +++ /dev/null @@ -1,35 +0,0 @@ -#include // needed for VERSIONINFO -#include "clientversion.h" // holds the needed client version information - -#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD -#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) -#define VER_FILEVERSION VER_PRODUCTVERSION -#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR - -VS_VERSION_INFO VERSIONINFO -FILEVERSION VER_FILEVERSION -PRODUCTVERSION VER_PRODUCTVERSION -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_APP -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" // U.S. English - multilingual (hex) - BEGIN - VALUE "CompanyName", "Dash" - VALUE "FileDescription", "Dash-cli (OSS RPC client for Dash)" - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "dash-cli" - VALUE "LegalCopyright", COPYRIGHT_STR - VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "dash-cli.exe" - VALUE "ProductName", "Dash-cli" - VALUE "ProductVersion", VER_PRODUCTVERSION_STR - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) - END -END diff --git a/src/dash-cli.cpp b/src/dash-cli.cpp deleted file mode 100644 index 798741ddac5d..000000000000 --- a/src/dash-cli.cpp +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2015 The Bitcoin developers -// Copyright (c) 2009-2015 The Dash developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include "chainparamsbase.h" -#include "clientversion.h" -#include "rpcclient.h" -#include "rpcprotocol.h" -#include "util.h" -#include "utilstrencodings.h" - -#include - -#define _(x) std::string(x) /* Keep the _() around in case gettext or such will be used later to translate non-UI */ - -using namespace std; -using namespace boost; -using namespace boost::asio; -using namespace json_spirit; - -std::string HelpMessageCli() -{ - string strUsage; - strUsage += _("Options:") + "\n"; - strUsage += " -? " + _("This help message") + "\n"; - strUsage += " -conf= " + strprintf(_("Specify configuration file (default: %s)"), "dash.conf") + "\n"; - strUsage += " -datadir= " + _("Specify data directory") + "\n"; - strUsage += " -testnet " + _("Use the test network") + "\n"; - strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be " - "solved instantly. This is intended for regression testing tools and app development.") + "\n"; - strUsage += " -rpcconnect= " + strprintf(_("Send commands to node running on (default: %s)"), "127.0.0.1") + "\n"; - strUsage += " -rpcport= " + strprintf(_("Connect to JSON-RPC on (default: %u or testnet: %u)"), 9998, 19998) + "\n"; - strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n"; - strUsage += " -rpcuser= " + _("Username for JSON-RPC connections") + "\n"; - strUsage += " -rpcpassword= " + _("Password for JSON-RPC connections") + "\n"; - - strUsage += "\n" + _("SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n"; - strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n"; - - return strUsage; -} - -////////////////////////////////////////////////////////////////////////////// -// -// Start -// - -// -// Exception thrown on connection error. This error is used to determine -// when to wait if -rpcwait is given. -// -class CConnectionFailed : public std::runtime_error -{ -public: - - explicit inline CConnectionFailed(const std::string& msg) : - std::runtime_error(msg) - {} - -}; - -static bool AppInitRPC(int argc, char* argv[]) -{ - // - // Parameters - // - ParseParameters(argc, argv); - if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { - std::string strUsage = _("Dash Core RPC client version") + " " + FormatFullVersion() + "\n"; - if (!mapArgs.count("-version")) { - strUsage += "\n" + _("Usage:") + "\n" + - " dash-cli [options] [params] " + _("Send command to Dash Core") + "\n" + - " dash-cli [options] help " + _("List commands") + "\n" + - " dash-cli [options] help " + _("Get help for a command") + "\n"; - - strUsage += "\n" + HelpMessageCli(); - } - - fprintf(stdout, "%s", strUsage.c_str()); - return false; - } - if (!boost::filesystem::is_directory(GetDataDir(false))) { - fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); - return false; - } - try { - ReadConfigFile(mapArgs, mapMultiArgs); - } catch(std::exception &e) { - fprintf(stderr,"Error reading configuration file: %s\n", e.what()); - return false; - } - // Check for -testnet or -regtest parameter (BaseParams() calls are only valid after this clause) - if (!SelectBaseParamsFromCommandLine()) { - fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); - return false; - } - return true; -} - -Object CallRPC(const string& strMethod, const Array& params) -{ - if (mapArgs["-rpcuser"] == "" && mapArgs["-rpcpassword"] == "") - throw runtime_error(strprintf( - _("You must set rpcpassword= in the configuration file:\n%s\n" - "If the file does not exist, create it with owner-readable-only file permissions."), - GetConfigFile().string().c_str())); - - // Connect to localhost - bool fUseSSL = GetBoolArg("-rpcssl", false); - asio::io_service io_service; - ssl::context context(io_service, ssl::context::sslv23); - context.set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3); - asio::ssl::stream sslStream(io_service, context); - SSLIOStreamDevice d(sslStream, fUseSSL); - iostreams::stream< SSLIOStreamDevice > stream(d); - - const bool fConnected = d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", itostr(BaseParams().RPCPort()))); - if (!fConnected) - throw CConnectionFailed("couldn't connect to server"); - - // HTTP basic authentication - string strUserPass64 = EncodeBase64(mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]); - map mapRequestHeaders; - mapRequestHeaders["Authorization"] = string("Basic ") + strUserPass64; - - // Send request - string strRequest = JSONRPCRequest(strMethod, params, 1); - string strPost = HTTPPost(strRequest, mapRequestHeaders); - stream << strPost << std::flush; - - // Receive HTTP reply status - int nProto = 0; - int nStatus = ReadHTTPStatus(stream, nProto); - - // Receive HTTP reply message headers and body - map mapHeaders; - string strReply; - ReadHTTPMessage(stream, mapHeaders, strReply, nProto, std::numeric_limits::max()); - - if (nStatus == HTTP_UNAUTHORIZED) - throw runtime_error("incorrect rpcuser or rpcpassword (authorization failed)"); - else if (nStatus >= 400 && nStatus != HTTP_BAD_REQUEST && nStatus != HTTP_NOT_FOUND && nStatus != HTTP_INTERNAL_SERVER_ERROR) - throw runtime_error(strprintf("server returned HTTP error %d", nStatus)); - else if (strReply.empty()) - throw runtime_error("no response from server"); - - // Parse reply - Value valReply; - if (!read_string(strReply, valReply)) - throw runtime_error("couldn't parse reply from server"); - const Object& reply = valReply.get_obj(); - if (reply.empty()) - throw runtime_error("expected reply to have result, error and id properties"); - - return reply; -} - -int CommandLineRPC(int argc, char *argv[]) -{ - string strPrint; - int nRet = 0; - try { - // Skip switches - while (argc > 1 && IsSwitchChar(argv[1][0])) { - argc--; - argv++; - } - - // Method - if (argc < 2) - throw runtime_error("too few parameters"); - string strMethod = argv[1]; - - // Parameters default to strings - std::vector strParams(&argv[2], &argv[argc]); - Array params = RPCConvertValues(strMethod, strParams); - - // Execute and handle connection failures with -rpcwait - const bool fWait = GetBoolArg("-rpcwait", false); - do { - try { - const Object reply = CallRPC(strMethod, params); - - // Parse reply - const Value& result = find_value(reply, "result"); - const Value& error = find_value(reply, "error"); - - if (error.type() != null_type) { - // Error - const int code = find_value(error.get_obj(), "code").get_int(); - if (fWait && code == RPC_IN_WARMUP) - throw CConnectionFailed("server in warmup"); - strPrint = "error: " + write_string(error, false); - nRet = abs(code); - } else { - // Result - if (result.type() == null_type) - strPrint = ""; - else if (result.type() == str_type) - strPrint = result.get_str(); - else - strPrint = write_string(result, true); - } - - // Connection succeeded, no need to retry. - break; - } - catch (const CConnectionFailed& e) { - if (fWait) - MilliSleep(1000); - else - throw; - } - } while (fWait); - } - catch (boost::thread_interrupted) { - throw; - } - catch (std::exception& e) { - strPrint = string("error: ") + e.what(); - nRet = EXIT_FAILURE; - } - catch (...) { - PrintExceptionContinue(NULL, "CommandLineRPC()"); - throw; - } - - if (strPrint != "") { - fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); - } - return nRet; -} - -int main(int argc, char* argv[]) -{ - SetupEnvironment(); - - try { - if(!AppInitRPC(argc, argv)) - return EXIT_FAILURE; - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "AppInitRPC()"); - return EXIT_FAILURE; - } catch (...) { - PrintExceptionContinue(NULL, "AppInitRPC()"); - return EXIT_FAILURE; - } - - int ret = EXIT_FAILURE; - try { - ret = CommandLineRPC(argc, argv); - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "CommandLineRPC()"); - } catch (...) { - PrintExceptionContinue(NULL, "CommandLineRPC()"); - } - return ret; -} diff --git a/src/dash-tx.cpp b/src/dash-tx.cpp deleted file mode 100644 index 8e190604877b..000000000000 --- a/src/dash-tx.cpp +++ /dev/null @@ -1,633 +0,0 @@ -// Copyright (c) 2009-2014 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include "base58.h" -#include "clientversion.h" -#include "primitives/block.h" // for MAX_BLOCK_SIZE -#include "primitives/transaction.h" -#include "core_io.h" -#include "coins.h" -#include "keystore.h" -#include "script/script.h" -#include "script/sign.h" -#include "ui_interface.h" // for _(...) -#include "univalue/univalue.h" -#include "util.h" -#include "utilstrencodings.h" -#include "utilmoneystr.h" - -#include - -#include -#include - -using namespace boost::assign; -using namespace std; - -static bool fCreateBlank; -static map registers; -CClientUIInterface uiInterface; - -static bool AppInitRawTx(int argc, char* argv[]) -{ - // - // Parameters - // - ParseParameters(argc, argv); - - // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) - if (!SelectParamsFromCommandLine()) { - fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); - return false; - } - - fCreateBlank = GetBoolArg("-create", false); - - if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help")) - { - // First part of help message is specific to this utility - std::string strUsage = _("Dash Core dash-tx utility version") + " " + FormatFullVersion() + "\n\n" + - _("Usage:") + "\n" + - " dash-tx [options] [commands] " + _("Update hex-encoded dash transaction") + "\n" + - " dash-tx [options] -create [commands] " + _("Create hex-encoded dash transaction") + "\n" + - "\n"; - - fprintf(stdout, "%s", strUsage.c_str()); - - strUsage = _("Options:") + "\n"; - strUsage += " -? " + _("This help message") + "\n"; - strUsage += " -create " + _("Create new, empty TX.") + "\n"; - strUsage += " -json " + _("Select JSON output") + "\n"; - strUsage += " -txid " + _("Output only the hex-encoded transaction id of the resultant transaction.") + "\n"; - strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be solved instantly.") + "\n"; - strUsage += " -testnet " + _("Use the test network") + "\n"; - strUsage += "\n"; - - fprintf(stdout, "%s", strUsage.c_str()); - - - strUsage = _("Commands:") + "\n"; - strUsage += " delin=N " + _("Delete input N from TX") + "\n"; - strUsage += " delout=N " + _("Delete output N from TX") + "\n"; - strUsage += " in=TXID:VOUT " + _("Add input to TX") + "\n"; - strUsage += " locktime=N " + _("Set TX lock time to N") + "\n"; - strUsage += " nversion=N " + _("Set TX version to N") + "\n"; - strUsage += " outaddr=VALUE:ADDRESS " + _("Add address-based output to TX") + "\n"; - strUsage += " outscript=VALUE:SCRIPT " + _("Add raw script output to TX") + "\n"; - strUsage += " sign=SIGHASH-FLAGS " + _("Add zero or more signatures to transaction") + "\n"; - strUsage += " This command requires JSON registers:\n"; - strUsage += " prevtxs=JSON object\n"; - strUsage += " privatekeys=JSON object\n"; - strUsage += " See signrawtransaction docs for format of sighash flags, JSON objects.\n"; - strUsage += "\n"; - fprintf(stdout, "%s", strUsage.c_str()); - - strUsage = _("Register Commands:") + "\n"; - strUsage += " load=NAME:FILENAME " + _("Load JSON file FILENAME into register NAME") + "\n"; - strUsage += " set=NAME:JSON-STRING " + _("Set register NAME to given JSON-STRING") + "\n"; - strUsage += "\n"; - fprintf(stdout, "%s", strUsage.c_str()); - - return false; - } - return true; -} - -static void RegisterSetJson(const string& key, const string& rawJson) -{ - UniValue val; - if (!val.read(rawJson)) { - string strErr = "Cannot parse JSON for key " + key; - throw runtime_error(strErr); - } - - registers[key] = val; -} - -static void RegisterSet(const string& strInput) -{ - // separate NAME:VALUE in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("Register input requires NAME:VALUE"); - - string key = strInput.substr(0, pos); - string valStr = strInput.substr(pos + 1, string::npos); - - RegisterSetJson(key, valStr); -} - -static void RegisterLoad(const string& strInput) -{ - // separate NAME:FILENAME in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("Register load requires NAME:FILENAME"); - - string key = strInput.substr(0, pos); - string filename = strInput.substr(pos + 1, string::npos); - - FILE *f = fopen(filename.c_str(), "r"); - if (!f) { - string strErr = "Cannot open file " + filename; - throw runtime_error(strErr); - } - - // load file chunks into one big buffer - string valStr; - while ((!feof(f)) && (!ferror(f))) { - char buf[4096]; - int bread = fread(buf, 1, sizeof(buf), f); - if (bread <= 0) - break; - - valStr.insert(valStr.size(), buf, bread); - } - - if (ferror(f)) { - string strErr = "Error reading file " + filename; - throw runtime_error(strErr); - } - - fclose(f); - - // evaluate as JSON buffer register - RegisterSetJson(key, valStr); -} - -static void MutateTxVersion(CMutableTransaction& tx, const string& cmdVal) -{ - int64_t newVersion = atoi64(cmdVal); - if (newVersion < 1 || newVersion > CTransaction::CURRENT_VERSION) - throw runtime_error("Invalid TX version requested"); - - tx.nVersion = (int) newVersion; -} - -static void MutateTxLocktime(CMutableTransaction& tx, const string& cmdVal) -{ - int64_t newLocktime = atoi64(cmdVal); - if (newLocktime < 0LL || newLocktime > 0xffffffffLL) - throw runtime_error("Invalid TX locktime requested"); - - tx.nLockTime = (unsigned int) newLocktime; -} - -static void MutateTxAddInput(CMutableTransaction& tx, const string& strInput) -{ - // separate TXID:VOUT in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("TX input missing separator"); - - // extract and validate TXID - string strTxid = strInput.substr(0, pos); - if ((strTxid.size() != 64) || !IsHex(strTxid)) - throw runtime_error("invalid TX input txid"); - uint256 txid(strTxid); - - static const unsigned int minTxOutSz = 9; - static const unsigned int maxVout = MAX_BLOCK_SIZE / minTxOutSz; - - // extract and validate vout - string strVout = strInput.substr(pos + 1, string::npos); - int vout = atoi(strVout); - if ((vout < 0) || (vout > (int)maxVout)) - throw runtime_error("invalid TX input vout"); - - // append to transaction input list - CTxIn txin(txid, vout); - tx.vin.push_back(txin); -} - -static void MutateTxAddOutAddr(CMutableTransaction& tx, const string& strInput) -{ - // separate VALUE:ADDRESS in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0) || - (pos == (strInput.size() - 1))) - throw runtime_error("TX output missing separator"); - - // extract and validate VALUE - string strValue = strInput.substr(0, pos); - CAmount value; - if (!ParseMoney(strValue, value)) - throw runtime_error("invalid TX output value"); - - // extract and validate ADDRESS - string strAddr = strInput.substr(pos + 1, string::npos); - CBitcoinAddress addr(strAddr); - if (!addr.IsValid()) - throw runtime_error("invalid TX output address"); - - // build standard output script via GetScriptForDestination() - CScript scriptPubKey = GetScriptForDestination(addr.Get()); - - // construct TxOut, append to transaction output list - CTxOut txout(value, scriptPubKey); - tx.vout.push_back(txout); -} - -static void MutateTxAddOutScript(CMutableTransaction& tx, const string& strInput) -{ - // separate VALUE:SCRIPT in string - size_t pos = strInput.find(':'); - if ((pos == string::npos) || - (pos == 0)) - throw runtime_error("TX output missing separator"); - - // extract and validate VALUE - string strValue = strInput.substr(0, pos); - CAmount value; - if (!ParseMoney(strValue, value)) - throw runtime_error("invalid TX output value"); - - // extract and validate script - string strScript = strInput.substr(pos + 1, string::npos); - CScript scriptPubKey = ParseScript(strScript); // throws on err - - // construct TxOut, append to transaction output list - CTxOut txout(value, scriptPubKey); - tx.vout.push_back(txout); -} - -static void MutateTxDelInput(CMutableTransaction& tx, const string& strInIdx) -{ - // parse requested deletion index - int inIdx = atoi(strInIdx); - if (inIdx < 0 || inIdx >= (int)tx.vin.size()) { - string strErr = "Invalid TX input index '" + strInIdx + "'"; - throw runtime_error(strErr.c_str()); - } - - // delete input from transaction - tx.vin.erase(tx.vin.begin() + inIdx); -} - -static void MutateTxDelOutput(CMutableTransaction& tx, const string& strOutIdx) -{ - // parse requested deletion index - int outIdx = atoi(strOutIdx); - if (outIdx < 0 || outIdx >= (int)tx.vout.size()) { - string strErr = "Invalid TX output index '" + strOutIdx + "'"; - throw runtime_error(strErr.c_str()); - } - - // delete output from transaction - tx.vout.erase(tx.vout.begin() + outIdx); -} - -static const unsigned int N_SIGHASH_OPTS = 6; -static const struct { - const char *flagStr; - int flags; -} sighashOptions[N_SIGHASH_OPTS] = { - {"ALL", SIGHASH_ALL}, - {"NONE", SIGHASH_NONE}, - {"SINGLE", SIGHASH_SINGLE}, - {"ALL|ANYONECANPAY", SIGHASH_ALL|SIGHASH_ANYONECANPAY}, - {"NONE|ANYONECANPAY", SIGHASH_NONE|SIGHASH_ANYONECANPAY}, - {"SINGLE|ANYONECANPAY", SIGHASH_SINGLE|SIGHASH_ANYONECANPAY}, -}; - -static bool findSighashFlags(int& flags, const string& flagStr) -{ - flags = 0; - - for (unsigned int i = 0; i < N_SIGHASH_OPTS; i++) { - if (flagStr == sighashOptions[i].flagStr) { - flags = sighashOptions[i].flags; - return true; - } - } - - return false; -} - -uint256 ParseHashUO(map& o, string strKey) -{ - if (!o.count(strKey)) - return 0; - return ParseHashUV(o[strKey], strKey); -} - -vector ParseHexUO(map& o, string strKey) -{ - if (!o.count(strKey)) { - vector emptyVec; - return emptyVec; - } - return ParseHexUV(o[strKey], strKey); -} - -static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) -{ - int nHashType = SIGHASH_ALL; - - if (flagStr.size() > 0) - if (!findSighashFlags(nHashType, flagStr)) - throw runtime_error("unknown sighash flag/sign option"); - - vector txVariants; - txVariants.push_back(tx); - - // mergedTx will end up with all the signatures; it - // starts as a clone of the raw tx: - CMutableTransaction mergedTx(txVariants[0]); - bool fComplete = true; - CCoinsView viewDummy; - CCoinsViewCache view(&viewDummy); - - if (!registers.count("privatekeys")) - throw runtime_error("privatekeys register variable must be set."); - bool fGivenKeys = false; - CBasicKeyStore tempKeystore; - UniValue keysObj = registers["privatekeys"]; - fGivenKeys = true; - - for (unsigned int kidx = 0; kidx < keysObj.count(); kidx++) { - if (!keysObj[kidx].isStr()) - throw runtime_error("privatekey not a string"); - CBitcoinSecret vchSecret; - bool fGood = vchSecret.SetString(keysObj[kidx].getValStr()); - if (!fGood) - throw runtime_error("privatekey not valid"); - - CKey key = vchSecret.GetKey(); - tempKeystore.AddKey(key); - } - - // Add previous txouts given in the RPC call: - if (!registers.count("prevtxs")) - throw runtime_error("prevtxs register variable must be set."); - UniValue prevtxsObj = registers["prevtxs"]; - { - for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) { - UniValue prevOut = prevtxsObj[previdx]; - if (!prevOut.isObject()) - throw runtime_error("expected prevtxs internal object"); - - map types = map_list_of("txid", UniValue::VSTR)("vout",UniValue::VNUM)("scriptPubKey",UniValue::VSTR); - if (!prevOut.checkObject(types)) - throw runtime_error("prevtxs internal object typecheck fail"); - - uint256 txid = ParseHashUV(prevOut["txid"], "txid"); - - int nOut = atoi(prevOut["vout"].getValStr()); - if (nOut < 0) - throw runtime_error("vout must be positive"); - - vector pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey")); - CScript scriptPubKey(pkData.begin(), pkData.end()); - - { - CCoinsModifier coins = view.ModifyCoins(txid); - if (coins->IsAvailable(nOut) && coins->vout[nOut].scriptPubKey != scriptPubKey) { - string err("Previous output scriptPubKey mismatch:\n"); - err = err + coins->vout[nOut].scriptPubKey.ToString() + "\nvs:\n"+ - scriptPubKey.ToString(); - throw runtime_error(err); - } - if ((unsigned int)nOut >= coins->vout.size()) - coins->vout.resize(nOut+1); - coins->vout[nOut].scriptPubKey = scriptPubKey; - coins->vout[nOut].nValue = 0; // we don't know the actual output value - } - - // if redeemScript given and private keys given, - // add redeemScript to the tempKeystore so it can be signed: - if (fGivenKeys && scriptPubKey.IsPayToScriptHash() && - prevOut.exists("redeemScript")) { - UniValue v = prevOut["redeemScript"]; - vector rsData(ParseHexUV(v, "redeemScript")); - CScript redeemScript(rsData.begin(), rsData.end()); - tempKeystore.AddCScript(redeemScript); - } - } - } - - const CKeyStore& keystore = tempKeystore; - - bool fHashSingle = ((nHashType & ~SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE); - - // Sign what we can: - for (unsigned int i = 0; i < mergedTx.vin.size(); i++) { - CTxIn& txin = mergedTx.vin[i]; - const CCoins* coins = view.AccessCoins(txin.prevout.hash); - if (!coins || !coins->IsAvailable(txin.prevout.n)) { - fComplete = false; - continue; - } - const CScript& prevPubKey = coins->vout[txin.prevout.n].scriptPubKey; - - txin.scriptSig.clear(); - // Only sign SIGHASH_SINGLE if there's a corresponding output: - if (!fHashSingle || (i < mergedTx.vout.size())) - SignSignature(keystore, prevPubKey, mergedTx, i, nHashType); - - // ... and merge in other signatures: - BOOST_FOREACH(const CTransaction& txv, txVariants) { - txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); - } - if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) - fComplete = false; - } - - if (fComplete) { - // do nothing... for now - // perhaps store this for later optional JSON output - } - - tx = mergedTx; -} - -static void MutateTx(CMutableTransaction& tx, const string& command, - const string& commandVal) -{ - if (command == "nversion") - MutateTxVersion(tx, commandVal); - else if (command == "locktime") - MutateTxLocktime(tx, commandVal); - - else if (command == "delin") - MutateTxDelInput(tx, commandVal); - else if (command == "in") - MutateTxAddInput(tx, commandVal); - - else if (command == "delout") - MutateTxDelOutput(tx, commandVal); - else if (command == "outaddr") - MutateTxAddOutAddr(tx, commandVal); - else if (command == "outscript") - MutateTxAddOutScript(tx, commandVal); - - else if (command == "sign") - MutateTxSign(tx, commandVal); - - else if (command == "load") - RegisterLoad(commandVal); - - else if (command == "set") - RegisterSet(commandVal); - - else - throw runtime_error("unknown command"); -} - -static void OutputTxJSON(const CTransaction& tx) -{ - UniValue entry(UniValue::VOBJ); - TxToUniv(tx, 0, entry); - - string jsonOutput = entry.write(4); - fprintf(stdout, "%s\n", jsonOutput.c_str()); -} - -static void OutputTxHash(const CTransaction& tx) -{ - string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id) - - fprintf(stdout, "%s\n", strHexHash.c_str()); -} - -static void OutputTxHex(const CTransaction& tx) -{ - string strHex = EncodeHexTx(tx); - - fprintf(stdout, "%s\n", strHex.c_str()); -} - -static void OutputTx(const CTransaction& tx) -{ - if (GetBoolArg("-json", false)) - OutputTxJSON(tx); - else if (GetBoolArg("-txid", false)) - OutputTxHash(tx); - else - OutputTxHex(tx); -} - -static string readStdin() -{ - char buf[4096]; - string ret; - - while (!feof(stdin)) { - size_t bread = fread(buf, 1, sizeof(buf), stdin); - ret.append(buf, bread); - if (bread < sizeof(buf)) - break; - } - - if (ferror(stdin)) - throw runtime_error("error reading stdin"); - - boost::algorithm::trim_right(ret); - - return ret; -} - -static int CommandLineRawTx(int argc, char* argv[]) -{ - string strPrint; - int nRet = 0; - try { - // Skip switches; Permit common stdin convention "-" - while (argc > 1 && IsSwitchChar(argv[1][0]) && - (argv[1][1] != 0)) { - argc--; - argv++; - } - - CTransaction txDecodeTmp; - int startArg; - - if (!fCreateBlank) { - // require at least one param - if (argc < 2) - throw runtime_error("too few parameters"); - - // param: hex-encoded dash transaction - string strHexTx(argv[1]); - if (strHexTx == "-") // "-" implies standard input - strHexTx = readStdin(); - - if (!DecodeHexTx(txDecodeTmp, strHexTx)) - throw runtime_error("invalid transaction encoding"); - - startArg = 2; - } else - startArg = 1; - - CMutableTransaction tx(txDecodeTmp); - - for (int i = startArg; i < argc; i++) { - string arg = argv[i]; - string key, value; - size_t eqpos = arg.find('='); - if (eqpos == string::npos) - key = arg; - else { - key = arg.substr(0, eqpos); - value = arg.substr(eqpos + 1); - } - - MutateTx(tx, key, value); - } - - OutputTx(tx); - } - - catch (boost::thread_interrupted) { - throw; - } - catch (std::exception& e) { - strPrint = string("error: ") + e.what(); - nRet = EXIT_FAILURE; - } - catch (...) { - PrintExceptionContinue(NULL, "CommandLineRawTx()"); - throw; - } - - if (strPrint != "") { - fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); - } - return nRet; -} - -int main(int argc, char* argv[]) -{ - SetupEnvironment(); - - try { - if(!AppInitRawTx(argc, argv)) - return EXIT_FAILURE; - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "AppInitRawTx()"); - return EXIT_FAILURE; - } catch (...) { - PrintExceptionContinue(NULL, "AppInitRawTx()"); - return EXIT_FAILURE; - } - - int ret = EXIT_FAILURE; - try { - ret = CommandLineRawTx(argc, argv); - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "CommandLineRawTx()"); - } catch (...) { - PrintExceptionContinue(NULL, "CommandLineRawTx()"); - } - return ret; -} diff --git a/src/dashd-res.rc b/src/dashd-res.rc deleted file mode 100644 index 5a2180104444..000000000000 --- a/src/dashd-res.rc +++ /dev/null @@ -1,35 +0,0 @@ -#include // needed for VERSIONINFO -#include "clientversion.h" // holds the needed client version information - -#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD -#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) -#define VER_FILEVERSION VER_PRODUCTVERSION -#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR - -VS_VERSION_INFO VERSIONINFO -FILEVERSION VER_FILEVERSION -PRODUCTVERSION VER_PRODUCTVERSION -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_APP -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" // U.S. English - multilingual (hex) - BEGIN - VALUE "CompanyName", "Dash" - VALUE "FileDescription", "Darkcoind (OSS daemon/client for Dash)" - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "dashd" - VALUE "LegalCopyright", COPYRIGHT_STR - VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "dashd.exe" - VALUE "ProductName", "Darkcoind" - VALUE "ProductVersion", VER_PRODUCTVERSION_STR - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) - END -END diff --git a/src/dashd.cpp b/src/dashd.cpp deleted file mode 100644 index ad94af7b642d..000000000000 --- a/src/dashd.cpp +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#include "clientversion.h" -#include "rpcserver.h" -#include "init.h" -#include "main.h" -#include "noui.h" -#include "ui_interface.h" -#include "util.h" -#include "masternodeconfig.h" - -#include -#include -#include - -/* Introduction text for doxygen: */ - -/*! \mainpage Developer documentation - * - * \section intro_sec Introduction - * - * This is the developer documentation of the reference client for an experimental new digital currency called Dash (http://www.dashpay.io/), - * which enables instant payments to anyone, anywhere in the world. Dash uses peer-to-peer technology to operate - * with no central authority: managing transactions and issuing money are carried out collectively by the network. - * - * The software is a community-driven open source project, released under the MIT license. - * - * \section Navigation - * Use the buttons Namespaces, Classes or Files at the top of the page to start navigating the code. - */ - -static bool fDaemon; - -void DetectShutdownThread(boost::thread_group* threadGroup) -{ - bool fShutdown = ShutdownRequested(); - // Tell the main threads to shutdown. - while (!fShutdown) - { - MilliSleep(200); - fShutdown = ShutdownRequested(); - } - if (threadGroup) - { - threadGroup->interrupt_all(); - threadGroup->join_all(); - } -} - -////////////////////////////////////////////////////////////////////////////// -// -// Start -// -bool AppInit(int argc, char* argv[]) -{ - boost::thread_group threadGroup; - boost::thread* detectShutdownThread = NULL; - - bool fRet = false; - - // - // Parameters - // - // If Qt is used, parameters/dash.conf are parsed in qt/dash.cpp's main() - ParseParameters(argc, argv); - - // Process help and version before taking care about datadir - if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) - { - std::string strUsage = _("Dash Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n"; - - if (mapArgs.count("-version")) - { - strUsage += LicenseInfo(); - } - else - { - strUsage += "\n" + _("Usage:") + "\n" + - " dashd [options] " + _("Start Dash Core Daemon") + "\n"; - - strUsage += "\n" + HelpMessage(HMM_BITCOIND); - } - - fprintf(stdout, "%s", strUsage.c_str()); - return false; - } - - try - { - if (!boost::filesystem::is_directory(GetDataDir(false))) - { - fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); - return false; - } - try - { - ReadConfigFile(mapArgs, mapMultiArgs); - } catch(std::exception &e) { - fprintf(stderr,"Error reading configuration file: %s\n", e.what()); - return false; - } - // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) - if (!SelectParamsFromCommandLine()) { - fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); - return false; - } - - // parse masternode.conf - std::string strErr; - if(!masternodeConfig.read(strErr)) { - fprintf(stderr,"Error reading masternode configuration file: %s\n", strErr.c_str()); - return false; - } - - // Command-line RPC - bool fCommandLine = false; - for (int i = 1; i < argc; i++) - if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "dash:")) - fCommandLine = true; - - if (fCommandLine) - { - fprintf(stderr, "Error: There is no RPC client functionality in dashd anymore. Use the dash-cli utility instead.\n"); - exit(1); - } -#ifndef WIN32 - fDaemon = GetBoolArg("-daemon", false); - if (fDaemon) - { - fprintf(stdout, "Dash server starting\n"); - - // Daemonize - pid_t pid = fork(); - if (pid < 0) - { - fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno); - return false; - } - if (pid > 0) // Parent process, pid is child process id - { - return true; - } - // Child process falls through to rest of initialization - - pid_t sid = setsid(); - if (sid < 0) - fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno); - } -#endif - SoftSetBoolArg("-server", true); - - detectShutdownThread = new boost::thread(boost::bind(&DetectShutdownThread, &threadGroup)); - fRet = AppInit2(threadGroup); - } - catch (std::exception& e) { - PrintExceptionContinue(&e, "AppInit()"); - } catch (...) { - PrintExceptionContinue(NULL, "AppInit()"); - } - - if (!fRet) - { - if (detectShutdownThread) - detectShutdownThread->interrupt(); - - threadGroup.interrupt_all(); - // threadGroup.join_all(); was left out intentionally here, because we didn't re-test all of - // the startup-failure cases to make sure they don't result in a hang due to some - // thread-blocking-waiting-for-another-thread-during-startup case - } - - if (detectShutdownThread) - { - detectShutdownThread->join(); - delete detectShutdownThread; - detectShutdownThread = NULL; - } - Shutdown(); - - return fRet; -} - -int main(int argc, char* argv[]) -{ - SetupEnvironment(); - - // Connect dashd signal handlers - noui_connect(); - - return (AppInit(argc, argv) ? 0 : 1); -} diff --git a/src/hash.h b/src/hash.h index ac01947fbc85..d5b773532e80 100644 --- a/src/hash.h +++ b/src/hash.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -272,7 +272,8 @@ void BIP32Hash(const unsigned char chainCode[32], unsigned int nChild, unsigned //int HMAC_SHA512_Update(HMAC_SHA512_CTX *pctx, const void *pdata, size_t len); //int HMAC_SHA512_Final(unsigned char *pmd, HMAC_SHA512_CTX *pctx); -/* ----------- Dash Hash ------------------------------------------------ */ +/* ----------- BTX Hash ------------------------------------------------ */ +//TODO: Make sure this is not used. template inline uint256 HashX11(const T1 pbegin, const T1 pend) @@ -339,4 +340,77 @@ inline uint256 HashX11(const T1 pbegin, const T1 pend) return hash[10].trim256(); } + +template +inline uint256 Hash9(const T1 pbegin, const T1 pend) + +{ + sph_blake512_context ctx_blake; + sph_bmw512_context ctx_bmw; + sph_groestl512_context ctx_groestl; + sph_jh512_context ctx_jh; + sph_keccak512_context ctx_keccak; + sph_skein512_context ctx_skein; + sph_luffa512_context ctx_luffa; + sph_cubehash512_context ctx_cubehash; + sph_shavite512_context ctx_shavite; + sph_simd512_context ctx_simd; + sph_echo512_context ctx_echo; + static unsigned char pblank[1]; + +#ifndef QT_NO_DEBUG + //std::string strhash; + //strhash = ""; +#endif + + uint512 hash[17]; + + sph_blake512_init(&ctx_blake); + sph_blake512 (&ctx_blake, (pbegin == pend ? pblank : static_cast(&pbegin[0])), (pend - pbegin) * sizeof(pbegin[0])); + sph_blake512_close(&ctx_blake, static_cast(&hash[0])); + + sph_bmw512_init(&ctx_bmw); + sph_bmw512 (&ctx_bmw, static_cast(&hash[0]), 64); + sph_bmw512_close(&ctx_bmw, static_cast(&hash[1])); + + sph_groestl512_init(&ctx_groestl); + sph_groestl512 (&ctx_groestl, static_cast(&hash[1]), 64); + sph_groestl512_close(&ctx_groestl, static_cast(&hash[2])); + + sph_skein512_init(&ctx_skein); + sph_skein512 (&ctx_skein, static_cast(&hash[2]), 64); + sph_skein512_close(&ctx_skein, static_cast(&hash[3])); + + sph_jh512_init(&ctx_jh); + sph_jh512 (&ctx_jh, static_cast(&hash[3]), 64); + sph_jh512_close(&ctx_jh, static_cast(&hash[4])); + + sph_keccak512_init(&ctx_keccak); + sph_keccak512 (&ctx_keccak, static_cast(&hash[4]), 64); + sph_keccak512_close(&ctx_keccak, static_cast(&hash[5])); + + sph_luffa512_init(&ctx_luffa); + sph_luffa512 (&ctx_luffa, static_cast(&hash[5]), 64); + sph_luffa512_close(&ctx_luffa, static_cast(&hash[6])); + + sph_cubehash512_init(&ctx_cubehash); + sph_cubehash512 (&ctx_cubehash, static_cast(&hash[6]), 64); + sph_cubehash512_close(&ctx_cubehash, static_cast(&hash[7])); + + sph_shavite512_init(&ctx_shavite); + sph_shavite512(&ctx_shavite, static_cast(&hash[7]), 64); + sph_shavite512_close(&ctx_shavite, static_cast(&hash[8])); + + sph_simd512_init(&ctx_simd); + sph_simd512 (&ctx_simd, static_cast(&hash[8]), 64); + sph_simd512_close(&ctx_simd, static_cast(&hash[9])); + + sph_echo512_init(&ctx_echo); + sph_echo512 (&ctx_echo, static_cast(&hash[9]), 64); + sph_echo512_close(&ctx_echo, static_cast(&hash[10])); + + return hash[10].trim256(); +} + + #endif // BITCOIN_HASH_H diff --git a/src/init.cpp b/src/init.cpp index 901f7397940e..c40713d44f2c 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1,11 +1,11 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "init.h" @@ -160,7 +160,7 @@ void PrepareShutdown() /// for example if the data directory was found to be locked. /// Be sure that anything that writes files or flushes caches only does this if the respective /// module was initialized. - RenameThread("dash-shutoff"); + RenameThread("btx-shutoff"); mempool.AddTransactionsUpdated(1); StopRPCThreads(); #ifdef ENABLE_WALLET @@ -280,7 +280,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -blocknotify= " + _("Execute command when the best block changes (%s in cmd is replaced by block hash)") + "\n"; strUsage += " -checkblocks= " + strprintf(_("How many blocks to check at startup (default: %u, 0 = all)"), 288) + "\n"; strUsage += " -checklevel= " + strprintf(_("How thorough the block verification of -checkblocks is (0-4, default: %u)"), 3) + "\n"; - strUsage += " -conf= " + strprintf(_("Specify configuration file (default: %s)"), "dash.conf") + "\n"; + strUsage += " -conf= " + strprintf(_("Specify configuration file (default: %s)"), "btx.conf") + "\n"; if (mode == HMM_BITCOIND) { #if !defined(WIN32) @@ -293,7 +293,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -maxorphantx= " + strprintf(_("Keep at most unconnectable transactions in memory (default: %u)"), DEFAULT_MAX_ORPHAN_TRANSACTIONS) + "\n"; strUsage += " -par= " + strprintf(_("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)"), -(int)boost::thread::hardware_concurrency(), MAX_SCRIPTCHECK_THREADS, DEFAULT_SCRIPTCHECK_THREADS) + "\n"; #ifndef WIN32 - strUsage += " -pid= " + strprintf(_("Specify pid file (default: %s)"), "dashd.pid") + "\n"; + strUsage += " -pid= " + strprintf(_("Specify pid file (default: %s)"), "btxd.pid") + "\n"; #endif strUsage += " -reindex " + _("Rebuild block chain index from current blk000??.dat files") + " " + _("on startup") + "\n"; #if !defined(WIN32) @@ -378,7 +378,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " " + _("If is not supplied, output all debugging information.") + "\n"; strUsage += " " + _(" can be:\n"); strUsage += " addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, mempool, net,\n"; // Don't translate these and qt below - strUsage += " dash (or specifically: darksend, instantx, masternode, keepass, mnpayments, mnbudget)"; // Don't translate these and qt below + strUsage += " btx (or specifically: darksend, instantx, masternode, keepass, mnpayments, mnbudget)"; // Don't translate these and qt below if (mode == HMM_BITCOIN_QT) strUsage += ", qt"; strUsage += ".\n"; @@ -407,7 +407,7 @@ std::string HelpMessage(HelpMessageMode mode) } strUsage += " -shrinkdebugfile " + _("Shrink debug.log file on client startup (default: 1 when no -debug)") + "\n"; strUsage += " -testnet " + _("Use the test network") + "\n"; - strUsage += " -litemode= " + strprintf(_("Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u)"), 0) + "\n"; + strUsage += " -litemode= " + strprintf(_("Disable all BTX specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u)"), 0) + "\n"; strUsage += "\n" + _("Masternode options:") + "\n"; strUsage += " -masternode= " + strprintf(_("Enable the client to act as a masternode (0-1, default: %u)"), 0) + "\n"; @@ -420,7 +420,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += "\n" + _("Darksend options:") + "\n"; strUsage += " -enabledarksend= " + strprintf(_("Enable use of automated darksend for funds stored in this wallet (0-1, default: %u)"), 0) + "\n"; strUsage += " -darksendrounds= " + strprintf(_("Use N separate masternodes to anonymize funds (2-8, default: %u)"), 2) + "\n"; - strUsage += " -anonymizedashamount= " + strprintf(_("Keep N DASH anonymized (default: %u)"), 0) + "\n"; + strUsage += " -anonymizebtxamount= " + strprintf(_("Keep N DASH anonymized (default: %u)"), 0) + "\n"; strUsage += " -liquidityprovider= " + strprintf(_("Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees)"), 0) + "\n"; strUsage += "\n" + _("InstantX options:") + "\n"; @@ -460,7 +460,7 @@ std::string LicenseInfo() { return FormatParagraph(strprintf(_("Copyright (C) 2009-%i The Bitcoin Core Developers"), COPYRIGHT_YEAR)) + "\n" + "\n" + - FormatParagraph(strprintf(_("Copyright (C) 2014-%i The Dash Core Developers"), COPYRIGHT_YEAR)) + "\n" + + FormatParagraph(strprintf(_("Copyright (C) 2014-%i The BTX Core Developers"), COPYRIGHT_YEAR)) + "\n" + "\n" + FormatParagraph(_("This is experimental software.")) + "\n" + "\n" + @@ -493,7 +493,7 @@ struct CImportingNow void ThreadImport(std::vector vImportFiles) { - RenameThread("dash-loadblk"); + RenameThread("btx-loadblk"); // -reindex if (fReindex) { @@ -551,7 +551,7 @@ void ThreadImport(std::vector vImportFiles) } /** Sanity checks - * Ensure that Dash is running in a usable environment with all + * Ensure that BTX is running in a usable environment with all * necessary library support. */ bool InitSanityCheck(void) @@ -569,7 +569,7 @@ bool InitSanityCheck(void) -/** Initialize dash. +/** Initialize btx. * @pre Parameters should be parsed and config file should be read. */ bool AppInit2(boost::thread_group& threadGroup) @@ -821,7 +821,7 @@ bool AppInit2(boost::thread_group& threadGroup) // Sanity check if (!InitSanityCheck()) - return InitError(_("Initialization sanity check failed. Dash Core is shutting down.")); + return InitError(_("Initialization sanity check failed. BTX Core is shutting down.")); std::string strDataDir = GetDataDir().string(); #ifdef ENABLE_WALLET @@ -829,7 +829,7 @@ bool AppInit2(boost::thread_group& threadGroup) if (strWalletFile != boost::filesystem::basename(strWalletFile) + boost::filesystem::extension(strWalletFile)) return InitError(strprintf(_("Wallet %s resides outside data directory %s"), strWalletFile, strDataDir)); #endif - // Make sure only a single Dash process is using the data directory. + // Make sure only a single BTX process is using the data directory. boost::filesystem::path pathLockFile = GetDataDir() / ".lock"; FILE* file = fopen(pathLockFile.string().c_str(), "a"); // empty lock file; created if it doesn't exist. if (file) fclose(file); @@ -837,7 +837,7 @@ bool AppInit2(boost::thread_group& threadGroup) // Wait maximum 10 seconds if an old wallet is still running. Avoids lockup during restart if (!lock.timed_lock(boost::get_system_time() + boost::posix_time::seconds(10))) - return InitError(strprintf(_("Cannot obtain a lock on data directory %s. Dash Core is probably already running."), strDataDir)); + return InitError(strprintf(_("Cannot obtain a lock on data directory %s. BTX Core is probably already running."), strDataDir)); #ifndef WIN32 CreatePidFile(GetPidFile(), getpid()); @@ -845,7 +845,7 @@ bool AppInit2(boost::thread_group& threadGroup) if (GetBoolArg("-shrinkdebugfile", !fDebug)) ShrinkDebugFile(); LogPrintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - LogPrintf("Dash version %s (%s)\n", FormatFullVersion(), CLIENT_DATE); + LogPrintf("BTX version %s (%s)\n", FormatFullVersion(), CLIENT_DATE); LogPrintf("Using OpenSSL version %s\n", SSLeay_version(SSLEAY_VERSION)); #ifdef ENABLE_WALLET LogPrintf("Using BerkeleyDB version %s\n", DbEnv::version(0, 0, 0)); @@ -1288,10 +1288,10 @@ bool AppInit2(boost::thread_group& threadGroup) InitWarning(msg); } else if (nLoadWalletRet == DB_TOO_NEW) - strErrors << _("Error loading wallet.dat: Wallet requires newer version of Dash Core") << "\n"; + strErrors << _("Error loading wallet.dat: Wallet requires newer version of BTX Core") << "\n"; else if (nLoadWalletRet == DB_NEED_REWRITE) { - strErrors << _("Wallet needed to be rewritten: restart Dash Core to complete") << "\n"; + strErrors << _("Wallet needed to be rewritten: restart BTX Core to complete") << "\n"; LogPrintf("%s", strErrors.str()); return InitError(strErrors.str()); } @@ -1528,7 +1528,7 @@ bool AppInit2(boost::thread_group& threadGroup) nDarksendRounds = 99999; } - nAnonymizeDarkcoinAmount = GetArg("-anonymizedashamount", 0); + nAnonymizeDarkcoinAmount = GetArg("-anonymizebtxamount", 0); if(nAnonymizeDarkcoinAmount > 999999) nAnonymizeDarkcoinAmount = 999999; if(nAnonymizeDarkcoinAmount < 2) nAnonymizeDarkcoinAmount = 2; @@ -1550,7 +1550,7 @@ bool AppInit2(boost::thread_group& threadGroup) LogPrintf("fLiteMode %d\n", fLiteMode); LogPrintf("nInstantXDepth %d\n", nInstantXDepth); LogPrintf("Darksend rounds %d\n", nDarksendRounds); - LogPrintf("Anonymize Dash Amount %d\n", nAnonymizeDarkcoinAmount); + LogPrintf("Anonymize BTX Amount %d\n", nAnonymizeDarkcoinAmount); LogPrintf("Budget Mode %s\n", strBudgetMode.c_str()); /* Denominations diff --git a/src/instantx.h b/src/instantx.h index b81f4d745aaf..c76766b287c2 100644 --- a/src/instantx.h +++ b/src/instantx.h @@ -1,5 +1,5 @@ -// Copyright (c) 2009-2012 The Dash developers +// Copyright (c) 2009-2012 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef INSTANTX_H diff --git a/src/keepass.cpp b/src/keepass.cpp index a4453fa89ea7..acebb233a4b6 100644 --- a/src/keepass.cpp +++ b/src/keepass.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014 The Dash developers +// Copyright (c) 2014 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -184,7 +184,7 @@ std::string CKeePassIntegrator::constructHTTPPost(const std::string& strMsg, con { std::ostringstream s; s << "POST / HTTP/1.1\r\n" - << "User-Agent: dash-json-rpc/" << FormatFullVersion() << "\r\n" + << "User-Agent: btx-json-rpc/" << FormatFullVersion() << "\r\n" << "Host: localhost\r\n" << "Content-Type: application/json\r\n" << "Content-Length: " << strMsg.size() << "\r\n" @@ -343,7 +343,7 @@ void CKeePassIntegrator::rpcSetLogin(const SecureString& strWalletPass, const Se LogPrint("keepass", "CKeePassIntegrator::rpcSetLogin - send Url: %s\n", sUrl); //request.addStrParameter("SubmitUrl", sSubmitUrl); // Is used to construct the entry title - request.addStrParameter("Login", SecureString("dash")); + request.addStrParameter("Login", SecureString("btx")); request.addStrParameter("Password", strWalletPass); if(sEntryId.size() != 0) { diff --git a/src/keepass.h b/src/keepass.h index 0347e173fce4..252105cd917a 100644 --- a/src/keepass.h +++ b/src/keepass.h @@ -1,4 +1,4 @@ -// Copyright (c) 2014 The Dash developers +// Copyright (c) 2014 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/main.cpp b/src/main.cpp index a55fd367aa6e..0bf66325a142 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -39,7 +39,7 @@ using namespace boost; using namespace std; #if defined(NDEBUG) -# error "Dash cannot be compiled without assertions." +# error "BTX cannot be compiled without assertions." #endif /** @@ -2013,7 +2013,7 @@ bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigne static CCheckQueue scriptcheckqueue(128); void ThreadScriptCheck() { - RenameThread("dash-scriptch"); + RenameThread("btx-scriptch"); scriptcheckqueue.Thread(); } diff --git a/src/main.h b/src/main.h index f08c15e7af7e..2194e90055a0 100644 --- a/src/main.h +++ b/src/main.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -8,7 +8,7 @@ #define BITCOIN_MAIN_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "amount.h" diff --git a/src/masternode-budget.cpp b/src/masternode-budget.cpp index b764cf24c11e..7a7211ea0512 100644 --- a/src/masternode-budget.cpp +++ b/src/masternode-budget.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternode-budget.h b/src/masternode-budget.h index e75d36b7440a..2581097a6354 100644 --- a/src/masternode-budget.h +++ b/src/masternode-budget.h @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -261,7 +261,7 @@ class CFinalizedBudget //check to see if we should vote on this void AutoCheck(); - //total dash paid out by this budget + //total btx paid out by this budget CAmount GetTotalPayout(); //vote on this finalized budget as a masternode void SubmitVote(); diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index 8608c0bc0efd..589c6a934fa5 100644 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternode-payments.h b/src/masternode-payments.h index e4783a5a81ee..dbe781540930 100644 --- a/src/masternode-payments.h +++ b/src/masternode-payments.h @@ -1,6 +1,6 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef MASTERNODE_PAYMENTS_H diff --git a/src/masternode-sync.cpp b/src/masternode-sync.cpp index 2359ec31b190..f296f39ab3be 100644 --- a/src/masternode-sync.cpp +++ b/src/masternode-sync.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternode-sync.h b/src/masternode-sync.h index 1ea6b015d6d6..0734644535a7 100644 --- a/src/masternode-sync.h +++ b/src/masternode-sync.h @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternode.cpp b/src/masternode.cpp index f65f052c1d26..667b934cd8be 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternode.h b/src/masternode.h index 0bdf396691a4..e57043019bd0 100644 --- a/src/masternode.h +++ b/src/masternode.h @@ -1,5 +1,5 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef MASTERNODE_H diff --git a/src/masternodeconfig.h b/src/masternodeconfig.h index 59e7012c300b..4a6f469e0229 100644 --- a/src/masternodeconfig.h +++ b/src/masternodeconfig.h @@ -1,5 +1,5 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index 35eef991acff..be62b5fec219 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/masternodeman.h b/src/masternodeman.h index 033f197c9200..ac8d1401c68b 100644 --- a/src/masternodeman.h +++ b/src/masternodeman.h @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/miner.cpp b/src/miner.cpp index 7c9accbd19e8..1374d69a8258 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -28,7 +28,7 @@ using namespace std; ////////////////////////////////////////////////////////////////////////////// // -// DashMiner +// BTXMiner // // @@ -377,7 +377,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& double dHashesPerSec = 0.0; int64_t nHPSTimerStart = 0; -// ***TODO*** ScanHash is not yet used in Dash +// ***TODO*** ScanHash is not yet used in BTX // // ScanHash scans nonces looking for a hash with at least some zero bits. // The nonce is usually preserved between calls, but periodically or if the @@ -432,7 +432,7 @@ bool ProcessBlockFound(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey) { LOCK(cs_main); if (pblock->hashPrevBlock != chainActive.Tip()->GetBlockHash()) - return error("DashMiner : generated block is stale"); + return error("BTXMiner : generated block is stale"); } // Remove key from key pool @@ -447,7 +447,7 @@ bool ProcessBlockFound(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey) // Process this block the same as if we had received it from another node CValidationState state; if (!ProcessNewBlock(state, NULL, pblock)) - return error("DashMiner : ProcessNewBlock, block not accepted"); + return error("BTXMiner : ProcessNewBlock, block not accepted"); return true; } @@ -455,9 +455,9 @@ bool ProcessBlockFound(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey) // ***TODO*** that part changed in bitcoin, we are using a mix with old one here for now void static BitcoinMiner(CWallet *pwallet) { - LogPrintf("DashMiner started\n"); + LogPrintf("BTXMiner started\n"); SetThreadPriority(THREAD_PRIORITY_LOWEST); - RenameThread("dash-miner"); + RenameThread("btx-miner"); // Each thread has its own key and counter CReserveKey reservekey(pwallet); @@ -490,13 +490,13 @@ void static BitcoinMiner(CWallet *pwallet) auto_ptr pblocktemplate(CreateNewBlockWithKey(reservekey)); if (!pblocktemplate.get()) { - LogPrintf("Error in DashMiner: Keypool ran out, please call keypoolrefill before restarting the mining thread\n"); + LogPrintf("Error in BTXMiner: Keypool ran out, please call keypoolrefill before restarting the mining thread\n"); return; } CBlock *pblock = &pblocktemplate->block; IncrementExtraNonce(pblock, pindexPrev, nExtraNonce); - LogPrintf("Running DashMiner with %u transactions in block (%u bytes)\n", pblock->vtx.size(), + LogPrintf("Running BTXMiner with %u transactions in block (%u bytes)\n", pblock->vtx.size(), ::GetSerializeSize(*pblock, SER_NETWORK, PROTOCOL_VERSION)); // @@ -587,7 +587,7 @@ void static BitcoinMiner(CWallet *pwallet) } catch (boost::thread_interrupted) { - LogPrintf("DashMiner terminated\n"); + LogPrintf("BTXMiner terminated\n"); throw; } catch (const std::runtime_error &e) diff --git a/src/net.cpp b/src/net.cpp index 3f39f399c5d9..f9d19a955834 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1,11 +1,11 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "net.h" @@ -565,7 +565,7 @@ void CNode::copyStats(CNodeStats &stats) nPingUsecWait = GetTimeMicros() - nPingUsecStart; } - // Raw ping time is in microseconds, but show it to user as whole seconds (Dash users should be well used to small numbers with many decimal places by now :) + // Raw ping time is in microseconds, but show it to user as whole seconds (BTX users should be well used to small numbers with many decimal places by now :) stats.dPingTime = (((double)nPingUsecTime) / 1e6); stats.dPingWait = (((double)nPingUsecWait) / 1e6); @@ -1080,7 +1080,7 @@ void ThreadMapPort() } } - string strDesc = "Dash " + FormatFullVersion(); + string strDesc = "BTX " + FormatFullVersion(); try { while (true) { @@ -1577,7 +1577,7 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste { int nErr = WSAGetLastError(); if (nErr == WSAEADDRINUSE) - strError = strprintf(_("Unable to bind to %s on this computer. Dash Core is probably already running."), addrBind.ToString()); + strError = strprintf(_("Unable to bind to %s on this computer. BTX Core is probably already running."), addrBind.ToString()); else strError = strprintf(_("Unable to bind to %s on this computer (bind returned error %s)"), addrBind.ToString(), NetworkErrorString(nErr)); LogPrintf("%s\n", strError); diff --git a/src/netbase.cpp b/src/netbase.cpp index 5436d2dca0a0..48724abd8e86 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -4,7 +4,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifdef HAVE_CONFIG_H -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "netbase.h" diff --git a/src/netbase.h b/src/netbase.h index 2a2f150c073a..7d9e1e6e12bf 100644 --- a/src/netbase.h +++ b/src/netbase.h @@ -6,7 +6,7 @@ #define BITCOIN_NETBASE_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "compat.h" diff --git a/src/noui.cpp b/src/noui.cpp index a73a4e69efc6..57cb0187e65a 100644 --- a/src/noui.cpp +++ b/src/noui.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -47,7 +47,7 @@ static void noui_InitMessage(const std::string& message) void noui_connect() { - // Connect dashd signal handlers + // Connect btxd signal handlers uiInterface.ThreadSafeMessageBox.connect(noui_ThreadSafeMessageBox); uiInterface.InitMessage.connect(noui_InitMessage); } diff --git a/src/pow.cpp b/src/pow.cpp index ade2ec915c8d..591e8b69fb03 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -80,7 +80,7 @@ unsigned int static KimotoGravityWell(const CBlockIndex* pindexLast) { } unsigned int static DarkGravityWave(const CBlockIndex* pindexLast) { - /* current difficulty formula, dash - DarkGravity v3, written by Evan Duffield - evan@dashpay.io */ + /* current difficulty formula, btx - DarkGravity v3, written by Evan Duffield - evan@btxpay.io */ const CBlockIndex *BlockLastSolved = pindexLast; const CBlockIndex *BlockReading = pindexLast; int64_t nActualTimespan = 0; diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index fa38cebf685c..6dd34028a766 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -11,7 +11,7 @@ uint256 CBlockHeader::GetHash() const { - return HashX11(BEGIN(nVersion), END(nNonce)); + return Hash9(BEGIN(nVersion), END(nNonce)); } uint256 CBlock::BuildMerkleTree(bool* fMutated) const diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp index bb4c429293be..69fd427aaa32 100644 --- a/src/qt/addressbookpage.cpp +++ b/src/qt/addressbookpage.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "addressbookpage.h" @@ -62,11 +62,11 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) : switch(tab) { case SendingTab: - ui->labelExplanation->setText(tr("These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins.")); + ui->labelExplanation->setText(tr("These are your BTX addresses for sending payments. Always check the amount and the receiving address before sending coins.")); ui->deleteAddress->setVisible(true); break; case ReceivingTab: - ui->labelExplanation->setText(tr("These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction.")); + ui->labelExplanation->setText(tr("These are your BTX addresses for receiving payments. It is recommended to use a new receiving address for each transaction.")); ui->deleteAddress->setVisible(false); break; } diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp index e48f6e91212b..1b89fc6a8acb 100644 --- a/src/qt/addresstablemodel.cpp +++ b/src/qt/addresstablemodel.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -337,7 +337,7 @@ QModelIndex AddressTableModel::index(int row, int column, const QModelIndex &par void AddressTableModel::updateEntry(const QString &address, const QString &label, bool isMine, const QString &purpose, int status) { - // Update address book model from Dash core + // Update address book model from BTX core priv->updateEntry(address, label, isMine, purpose, status); } diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp index 0a983de5a988..8e313e031e84 100644 --- a/src/qt/askpassphrasedialog.cpp +++ b/src/qt/askpassphrasedialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -124,9 +124,9 @@ void AskPassphraseDialog::accept() { QMessageBox::warning(this, tr("Wallet encrypted"), "" + - tr("Dash will close now to finish the encryption process. " + tr("BTX will close now to finish the encryption process. " "Remember that encrypting your wallet cannot fully protect " - "your dashs from being stolen by malware infecting your computer.") + + "your btxs from being stolen by malware infecting your computer.") + "

" + tr("IMPORTANT: Any previous backups you have made of your wallet file " "should be replaced with the newly generated, encrypted wallet file. " diff --git a/src/qt/bitcoinaddressvalidator.cpp b/src/qt/bitcoinaddressvalidator.cpp index 80c6ff115c9a..8a3e6bd6f96c 100644 --- a/src/qt/bitcoinaddressvalidator.cpp +++ b/src/qt/bitcoinaddressvalidator.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -89,7 +89,7 @@ BitcoinAddressCheckValidator::BitcoinAddressCheckValidator(QObject *parent) : QValidator::State BitcoinAddressCheckValidator::validate(QString &input, int &pos) const { Q_UNUSED(pos); - // Validate the passed Dash address + // Validate the passed BTX address CBitcoinAddress addr(input.toStdString()); if (addr.IsValid()) return QValidator::Acceptable; diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 754a6604236a..51b480014a93 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -104,7 +104,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) : GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this); - QString windowTitle = tr("Dash Core") + " - "; + QString windowTitle = tr("BTX Core") + " - "; #ifdef ENABLE_WALLET /* if compiled with wallet support, -disablewallet can still disable the wallet */ enableWallet = !GetBoolArg("-disablewallet", false); @@ -271,7 +271,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) tabGroup->addAction(overviewAction); sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send"), this); - sendCoinsAction->setStatusTip(tr("Send coins to a Dash address")); + sendCoinsAction->setStatusTip(tr("Send coins to a BTX address")); sendCoinsAction->setToolTip(sendCoinsAction->statusTip()); sendCoinsAction->setCheckable(true); #ifdef Q_OS_MAC @@ -282,7 +282,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) tabGroup->addAction(sendCoinsAction); receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses"), tr("&Receive"), this); - receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and dash: URIs)")); + receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and btx: URIs)")); receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip()); receiveCoinsAction->setCheckable(true); #ifdef Q_OS_MAC @@ -320,8 +320,8 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) quitAction->setStatusTip(tr("Quit application")); quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); quitAction->setMenuRole(QAction::QuitRole); - aboutAction = new QAction(networkStyle->getAppIcon(), tr("&About Dash Core"), this); - aboutAction->setStatusTip(tr("Show information about Dash Core")); + aboutAction = new QAction(networkStyle->getAppIcon(), tr("&About BTX Core"), this); + aboutAction->setStatusTip(tr("Show information about BTX Core")); aboutAction->setMenuRole(QAction::AboutRole); #if QT_VERSION < 0x050000 aboutQtAction = new QAction(QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"), tr("About &Qt"), this); @@ -331,7 +331,7 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) aboutQtAction->setStatusTip(tr("Show information about Qt")); aboutQtAction->setMenuRole(QAction::AboutQtRole); optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this); - optionsAction->setStatusTip(tr("Modify configuration options for Dash")); + optionsAction->setStatusTip(tr("Modify configuration options for BTX")); optionsAction->setMenuRole(QAction::PreferencesRole); toggleHideAction = new QAction(networkStyle->getAppIcon(), tr("&Show / Hide"), this); toggleHideAction->setStatusTip(tr("Show or hide the main Window")); @@ -347,9 +347,9 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) unlockWalletAction->setToolTip(tr("Unlock wallet")); lockWalletAction = new QAction(tr("&Lock Wallet"), this); signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this); - signMessageAction->setStatusTip(tr("Sign messages with your Dash addresses to prove you own them")); + signMessageAction->setStatusTip(tr("Sign messages with your BTX addresses to prove you own them")); verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this); - verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Dash addresses")); + verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified BTX addresses")); openInfoAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Information"), this); openInfoAction->setStatusTip(tr("Show diagnostic information")); @@ -372,11 +372,11 @@ void BitcoinGUI::createActions(const NetworkStyle *networkStyle) usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); - openAction->setStatusTip(tr("Open a dash: URI or payment request")); + openAction->setStatusTip(tr("Open a btx: URI or payment request")); showHelpMessageAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Command-line options"), this); showHelpMessageAction->setMenuRole(QAction::NoRole); - showHelpMessageAction->setStatusTip(tr("Show the Dash Core help message to get a list with possible Dash command-line options")); + showHelpMessageAction->setStatusTip(tr("Show the BTX Core help message to get a list with possible BTX command-line options")); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked())); @@ -570,7 +570,7 @@ void BitcoinGUI::createTrayIcon(const NetworkStyle *networkStyle) { #ifndef Q_OS_MAC trayIcon = new QSystemTrayIcon(this); - QString toolTip = tr("Dash Core client") + " " + networkStyle->getTitleAddText(); + QString toolTip = tr("BTX Core client") + " " + networkStyle->getTitleAddText(); trayIcon->setToolTip(toolTip); trayIcon->setIcon(networkStyle->getAppIcon()); trayIcon->show(); @@ -717,7 +717,7 @@ void BitcoinGUI::setNumConnections(int count) } QIcon connectionItem = QIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE); labelConnectionsIcon->setIcon(connectionItem); - labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Dash network", "", count)); + labelConnectionsIcon->setToolTip(tr("%n active connection(s) to BTX network", "", count)); } void BitcoinGUI::setNumBlocks(int count) @@ -856,7 +856,7 @@ void BitcoinGUI::setNumBlocks(int count) void BitcoinGUI::message(const QString &title, const QString &message, unsigned int style, bool *ret) { - QString strTitle = tr("Dash Core"); // default title + QString strTitle = tr("BTX Core"); // default title // Default to information icon int nMBoxIcon = QMessageBox::Information; int nNotifyIcon = Notificator::Information; @@ -882,7 +882,7 @@ void BitcoinGUI::message(const QString &title, const QString &message, unsigned break; } } - // Append title to "Dash - " + // Append title to "BTX - " if (!msgType.isEmpty()) strTitle += " - " + msgType; diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index d58c87cf7763..c7d683e8c89e 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -6,7 +6,7 @@ #define BITCOIN_QT_BITCOINGUI_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "amount.h" diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 9616b7cd90da..15512c36c344 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -44,9 +44,9 @@ QString BitcoinUnits::id(int unit) { switch(unit) { - case DASH: return QString("dash"); - case mDASH: return QString("mdash"); - case uDASH: return QString::fromUtf8("udash"); + case DASH: return QString("btx"); + case mDASH: return QString("mbtx"); + case uDASH: return QString::fromUtf8("ubtx"); case duffs: return QString("duffs"); default: return QString("???"); } @@ -84,10 +84,10 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case DASH: return QString("Dash"); - case mDASH: return QString("Milli-Dash (1 / 1" THIN_SP_UTF8 "000)"); - case uDASH: return QString("Micro-Dash (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); - case duffs: return QString("Ten Nano-Dash (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case DASH: return QString("BTX"); + case mDASH: return QString("Milli-BTX (1 / 1" THIN_SP_UTF8 "000)"); + case uDASH: return QString("Micro-BTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case duffs: return QString("Ten Nano-BTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } } @@ -95,10 +95,10 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case DASH: return QString("TestDashs"); - case mDASH: return QString("Milli-TestDash (1 / 1" THIN_SP_UTF8 "000)"); - case uDASH: return QString("Micro-TestDash (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); - case duffs: return QString("Ten Nano-TestDash (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case DASH: return QString("TestBTXs"); + case mDASH: return QString("Milli-TestBTX (1 / 1" THIN_SP_UTF8 "000)"); + case uDASH: return QString("Micro-TestBTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case duffs: return QString("Ten Nano-TestBTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } } diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index 483f05559074..107a42b28088 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -42,7 +42,7 @@ #define THIN_SP_UTF8 REAL_THIN_SP_UTF8 #define THIN_SP_HTML HTML_HACK_SP -/** Dash unit definitions. Encapsulates parsing and formatting +/** BTX unit definitions. Encapsulates parsing and formatting and serves as list model for drop-down selection boxes. */ class BitcoinUnits: public QAbstractListModel @@ -52,7 +52,7 @@ class BitcoinUnits: public QAbstractListModel public: explicit BitcoinUnits(QObject *parent); - /** Dash units. + /** BTX units. @note Source: https://en.bitcoin.it/wiki/Units . Please add only sensible ones */ enum Unit diff --git a/src/qt/dash.cpp b/src/qt/btx.cpp similarity index 95% rename from src/qt/dash.cpp rename to src/qt/btx.cpp index 9e6d9395bbee..13246d459d60 100644 --- a/src/qt/dash.cpp +++ b/src/qt/btx.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "bitcoingui.h" @@ -90,7 +90,7 @@ static void InitMessage(const std::string &message) */ static std::string Translate(const char* psz) { - return QCoreApplication::translate("dash-core", psz).toStdString(); + return QCoreApplication::translate("btx-core", psz).toStdString(); } static QString GetLangTerritory() @@ -138,11 +138,11 @@ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTrans if (qtTranslator.load("qt_" + lang_territory, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) QApplication::installTranslator(&qtTranslator); - // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in dash.qrc) + // Load e.g. bitcoin_de.qm (shortcut "de" needs to be defined in btx.qrc) if (translatorBase.load(lang, ":/translations/")) QApplication::installTranslator(&translatorBase); - // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in dash.qrc) + // Load e.g. bitcoin_de_DE.qm (shortcut "de_DE" needs to be defined in btx.qrc) if (translator.load(lang_territory, ":/translations/")) QApplication::installTranslator(&translator); } @@ -163,7 +163,7 @@ void DebugMessageHandler(QtMsgType type, const QMessageLogContext& context, cons } #endif -/** Class encapsulating Dash Core startup and shutdown. +/** Class encapsulating BTX Core startup and shutdown. * Allows running startup and shutdown in a different thread from the UI thread. */ class BitcoinCore: public QObject @@ -192,7 +192,7 @@ public slots: void handleRunawayException(std::exception *e); }; -/** Main Dash application object */ +/** Main BTX application object */ class BitcoinApplication: public QApplication { Q_OBJECT @@ -250,7 +250,7 @@ public slots: void startThread(); }; -#include "dash.moc" +#include "btx.moc" BitcoinCore::BitcoinCore(): QObject() @@ -493,7 +493,7 @@ void BitcoinApplication::initializeResult(int retval) #ifdef ENABLE_WALLET // Now that initialization/startup is done, process any command-line - // dash: URIs or payment requests: + // btx: URIs or payment requests: connect(paymentServer, SIGNAL(receivedPaymentRequest(SendCoinsRecipient)), window, SLOT(handlePaymentRequest(SendCoinsRecipient))); connect(window, SIGNAL(receivedURI(QString)), @@ -515,7 +515,7 @@ void BitcoinApplication::shutdownResult(int retval) void BitcoinApplication::handleRunawayException(const QString &message) { - QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Dash can no longer continue safely and will quit.") + QString("\n\n") + message); + QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. BTX can no longer continue safely and will quit.") + QString("\n\n") + message); ::exit(1); } @@ -545,8 +545,8 @@ int main(int argc, char *argv[]) QTextCodec::setCodecForCStrings(QTextCodec::codecForTr()); #endif - Q_INIT_RESOURCE(dash); - Q_INIT_RESOURCE(dash_locale); + Q_INIT_RESOURCE(btx); + Q_INIT_RESOURCE(btx_locale); BitcoinApplication app(argc, argv); #if QT_VERSION > 0x050100 @@ -590,18 +590,18 @@ int main(int argc, char *argv[]) // User language is set up: pick a data directory Intro::pickDataDirectory(); - /// 6. Determine availability of data directory and parse dash.conf + /// 6. Determine availability of data directory and parse btx.conf /// - Do not call GetDataDir(true) before this step finishes if (!boost::filesystem::is_directory(GetDataDir(false))) { - QMessageBox::critical(0, QObject::tr("Dash Core"), + QMessageBox::critical(0, QObject::tr("BTX Core"), QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); return 1; } try { ReadConfigFile(mapArgs, mapMultiArgs); } catch(std::exception &e) { - QMessageBox::critical(0, QObject::tr("Dash Core"), + QMessageBox::critical(0, QObject::tr("BTX Core"), QObject::tr("Error: Cannot parse configuration file: %1. Only use key=value syntax.").arg(e.what())); return false; } @@ -614,7 +614,7 @@ int main(int argc, char *argv[]) // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { - QMessageBox::critical(0, QObject::tr("Dash Core"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); + QMessageBox::critical(0, QObject::tr("BTX Core"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); return 1; } #ifdef ENABLE_WALLET @@ -633,7 +633,7 @@ int main(int argc, char *argv[]) /// 7a. parse masternode.conf string strErr; if(!masternodeConfig.read(strErr)) { - QMessageBox::critical(0, QObject::tr("Dash Core"), + QMessageBox::critical(0, QObject::tr("BTX Core"), QObject::tr("Error reading masternode configuration file: %1").arg(strErr.c_str())); return false; } @@ -648,7 +648,7 @@ int main(int argc, char *argv[]) exit(0); // Start up the payment server early, too, so impatient users that click on - // dash: links repeatedly have their payment requests routed to this process: + // btx: links repeatedly have their payment requests routed to this process: app.createPaymentServer(); #endif @@ -680,7 +680,7 @@ int main(int argc, char *argv[]) app.createWindow(networkStyle.data()); app.requestInitialize(); #if defined(Q_OS_WIN) && QT_VERSION >= 0x050000 - WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("Dash Core didn't yet exit safely..."), (HWND)app.getMainWinId()); + WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("BTX Core didn't yet exit safely..."), (HWND)app.getMainWinId()); #endif app.exec(); app.requestShutdown(); diff --git a/src/qt/dash.qrc b/src/qt/btx.qrc similarity index 93% rename from src/qt/dash.qrc rename to src/qt/btx.qrc index 9e4fa270f403..215aa4936c7e 100644 --- a/src/qt/dash.qrc +++ b/src/qt/btx.qrc @@ -36,13 +36,13 @@ res/icons/tx_input.png res/icons/tx_output.png res/icons/tx_inout.png - res/icons/unit_dash.png - res/icons/unit_mdash.png - res/icons/unit_udash.png + res/icons/unit_btx.png + res/icons/unit_mbtx.png + res/icons/unit_ubtx.png res/icons/unit_duffs.png - res/icons/unit_tdash.png - res/icons/unit_tmdash.png - res/icons/unit_tudash.png + res/icons/unit_tbtx.png + res/icons/unit_tmbtx.png + res/icons/unit_tubtx.png res/icons/unit_tduffs.png res/icons/lock_closed.png res/icons/lock_open.png @@ -61,7 +61,7 @@ res/images/about.png - res/images/dash_logo_horizontal.png + res/images/btx_logo_horizontal.png res/images/drkblue_downArrow.png res/images/drkblue_downArrow_small.png res/images/drkblue_upArrow_small.png diff --git a/src/qt/btx_locale.qrc b/src/qt/btx_locale.qrc new file mode 100644 index 000000000000..7580ce317eee --- /dev/null +++ b/src/qt/btx_locale.qrc @@ -0,0 +1,19 @@ + + + locale/btx_bg.qm + locale/btx_de.qm + locale/btx_en.qm + locale/btx_es.qm + locale/btx_fi.qm + locale/btx_fr.qm + locale/btx_it.qm + locale/btx_pl.qm + locale/btx_pt.qm + locale/btx_ru.qm + locale/btx_sk.qm + locale/btx_sv.qm + locale/btx_vi.qm + locale/btx_zh_CN.qm + locale/btx_zh_TW.qm + + diff --git a/src/qt/btxstrings.cpp b/src/qt/btxstrings.cpp new file mode 100644 index 000000000000..dd04a210fe84 --- /dev/null +++ b/src/qt/btxstrings.cpp @@ -0,0 +1,442 @@ + + +#include + +// Automatically generated by extract_strings.py +#ifdef __GNUC__ +#define UNUSED __attribute__((unused)) +#else +#define UNUSED +#endif +static const char UNUSED *btx_strings[] = { +QT_TRANSLATE_NOOP("btx-core", "" +"(1 = keep tx meta data e.g. account owner and payment request information, 2 " +"= drop tx meta data)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Allow JSON-RPC connections from specified source. Valid for are a " +"single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or " +"a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times"), +QT_TRANSLATE_NOOP("btx-core", "" +"An error occurred while setting up the RPC address %s port %u for listening: " +"%s"), +QT_TRANSLATE_NOOP("btx-core", "" +"Bind to given address and always listen on it. Use [host]:port notation for " +"IPv6"), +QT_TRANSLATE_NOOP("btx-core", "" +"Bind to given address and whitelist peers connecting to it. Use [host]:port " +"notation for IPv6"), +QT_TRANSLATE_NOOP("btx-core", "" +"Bind to given address to listen for JSON-RPC connections. Use [host]:port " +"notation for IPv6. This option can be specified multiple times (default: " +"bind to all interfaces)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Cannot obtain a lock on data directory %s. BTX Core is probably already " +"running."), +QT_TRANSLATE_NOOP("btx-core", "" +"Change automatic finalized budget voting behavior. mode=auto: Vote for only " +"exact finalized budget match to my generated budget. (string, default: auto)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Continuously rate-limit free transactions to *1000 bytes per minute " +"(default:%u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Create new files with system default permissions, instead of umask 077 (only " +"effective with disabled wallet functionality)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Darksend uses exact denominated amounts to send funds, you might simply need " +"to anonymize some more coins."), +QT_TRANSLATE_NOOP("btx-core", "" +"Delete all wallet transactions and only recover those parts of the " +"blockchain through -rescan on startup"), +QT_TRANSLATE_NOOP("btx-core", "" +"Disable all BTX specific functionality (Masternodes, Darksend, InstantX, " +"Budgeting) (0-1, default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Distributed under the MIT software license, see the accompanying file " +"COPYING or ."), +QT_TRANSLATE_NOOP("btx-core", "" +"Enable instantx, show confirmations for locked transactions (bool, default: " +"%s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Enable use of automated darksend for funds stored in this wallet (0-1, " +"default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Enter regression test mode, which uses a special chain in which blocks can " +"be solved instantly."), +QT_TRANSLATE_NOOP("btx-core", "" +"Error: Listening for incoming connections failed (listen returned error %s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Error: Unsupported argument -socks found. Setting SOCKS version isn't " +"possible anymore, only SOCKS5 proxies are supported."), +QT_TRANSLATE_NOOP("btx-core", "" +"Execute command when a relevant alert is received or we see a really long " +"fork (%s in cmd is replaced by message)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Execute command when a wallet transaction changes (%s in cmd is replaced by " +"TxID)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Execute command when the best block changes (%s in cmd is replaced by block " +"hash)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Fees (in DASH/Kb) smaller than this are considered zero fee for relaying " +"(default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Fees (in DASH/Kb) smaller than this are considered zero fee for transaction " +"creation (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Flush database activity from memory pool to disk log every megabytes " +"(default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Found unconfirmed denominated outputs, will wait till they confirm to " +"continue."), +QT_TRANSLATE_NOOP("btx-core", "" +"How thorough the block verification of -checkblocks is (0-4, default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"If paytxfee is not set, include enough fee so transactions begin " +"confirmation on average within n blocks (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"In this mode -genproclimit controls how many blocks are generated " +"immediately."), +QT_TRANSLATE_NOOP("btx-core", "" +"InstantX requires inputs with at least 6 confirmations, you might need to " +"wait a few minutes and try again."), +QT_TRANSLATE_NOOP("btx-core", "" +"Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay " +"fee of %s to prevent stuck transactions)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Log transaction priority and fee per kB when mining blocks (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Maintain a full transaction index, used by the getrawtransaction rpc call " +"(default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Maximum size of data in data carrier transactions we relay and mine " +"(default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Maximum total fees to use in a single wallet transaction, setting too low " +"may abort large transactions (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Name to construct url for KeePass entry that stores the wallet passphrase"), +QT_TRANSLATE_NOOP("btx-core", "" +"Number of seconds to keep misbehaving peers from reconnecting (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Output debugging information (default: %u, supplying is optional)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Provide liquidity to Darksend by infrequently mixing coins on a continual " +"basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, " +"low fees)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Query for peer addresses via DNS lookup, if low on addresses (default: 1 " +"unless -connect)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Require high priority for relaying free or low-fee transactions (default:%u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Send trace/debug info to console instead of debug.log file (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Set maximum size of high-priority/low-fee transactions in bytes (default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Set the number of script verification threads (%u to %d, 0 = auto, <0 = " +"leave that many cores free, default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Set the number of threads for coin generation if enabled (-1 = all cores, " +"default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Show N confirmations for a successfully locked transaction (0-9999, default: " +"%u)"), +QT_TRANSLATE_NOOP("btx-core", "" +"This is a pre-release test build - use at your own risk - do not use for " +"mining or merchant applications"), +QT_TRANSLATE_NOOP("btx-core", "" +"This product includes software developed by the OpenSSL Project for use in " +"the OpenSSL Toolkit and cryptographic software " +"written by Eric Young and UPnP software written by Thomas Bernard."), +QT_TRANSLATE_NOOP("btx-core", "" +"To use btxd, or the -server option to btx-qt, you must set an rpcpassword " +"in the configuration file:\n" +"%s\n" +"It is recommended you use the following random password:\n" +"rpcuser=btxrpc\n" +"rpcpassword=%s\n" +"(you do not need to remember this password)\n" +"The username and password MUST NOT be the same.\n" +"If the file does not exist, create it with owner-readable-only file " +"permissions.\n" +"It is also recommended to set alertnotify so you are notified of problems;\n" +"for example: alertnotify=echo %%s | mail -s \"BTX Alert\" admin@foo.com\n"), +QT_TRANSLATE_NOOP("btx-core", "" +"Unable to bind to %s on this computer. BTX Core is probably already running."), +QT_TRANSLATE_NOOP("btx-core", "" +"Unable to locate enough Darksend denominated funds for this transaction."), +QT_TRANSLATE_NOOP("btx-core", "" +"Unable to locate enough Darksend non-denominated funds for this transaction " +"that are not equal 1000 DASH."), +QT_TRANSLATE_NOOP("btx-core", "" +"Unable to locate enough funds for this transaction that are not equal 1000 " +"DASH."), +QT_TRANSLATE_NOOP("btx-core", "" +"Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: " +"%s)"), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: -maxtxfee is set very high! Fees this large could be paid on a " +"single transaction."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: -paytxfee is set very high! This is the transaction fee you will " +"pay if you send a transaction."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: Please check that your computer's date and time are correct! If " +"your clock is wrong BTX Core will not work properly."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: The network does not appear to fully agree! Some miners appear to " +"be experiencing issues."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: We do not appear to fully agree with our peers! You may need to " +"upgrade, or other nodes may need to upgrade."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: error reading wallet.dat! All keys read correctly, but transaction " +"data or address book entries might be missing or incorrect."), +QT_TRANSLATE_NOOP("btx-core", "" +"Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as " +"wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect " +"you should restore from a backup."), +QT_TRANSLATE_NOOP("btx-core", "" +"Whitelist peers connecting from the given netmask or IP address. Can be " +"specified multiple times."), +QT_TRANSLATE_NOOP("btx-core", "" +"Whitelisted peers cannot be DoS banned and their transactions are always " +"relayed, even if they are already in the mempool, useful e.g. for a gateway"), +QT_TRANSLATE_NOOP("btx-core", "" +"You must specify a masternodeprivkey in the configuration. Please see " +"documentation for help."), +QT_TRANSLATE_NOOP("btx-core", "(9999 could be used only on mainnet)"), +QT_TRANSLATE_NOOP("btx-core", "(default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "(default: 1)"), +QT_TRANSLATE_NOOP("btx-core", "(must be 9999 for mainnet)"), +QT_TRANSLATE_NOOP("btx-core", " can be:\n"), +QT_TRANSLATE_NOOP("btx-core", "Accept command line and JSON-RPC commands"), +QT_TRANSLATE_NOOP("btx-core", "Accept connections from outside (default: 1 if no -proxy or -connect)"), +QT_TRANSLATE_NOOP("btx-core", "Accept public REST requests (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Acceptable ciphers (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Add a node to connect to and attempt to keep the connection open"), +QT_TRANSLATE_NOOP("btx-core", "Allow DNS lookups for -addnode, -seednode and -connect"), +QT_TRANSLATE_NOOP("btx-core", "Already have that input."), +QT_TRANSLATE_NOOP("btx-core", "Always query for peer addresses via DNS lookup (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Attempt to recover private keys from a corrupt wallet.dat"), +QT_TRANSLATE_NOOP("btx-core", "Block creation options:"), +QT_TRANSLATE_NOOP("btx-core", "Can't denominate: no compatible inputs left."), +QT_TRANSLATE_NOOP("btx-core", "Can't find random Masternode."), +QT_TRANSLATE_NOOP("btx-core", "Can't mix while sync in progress."), +QT_TRANSLATE_NOOP("btx-core", "Cannot downgrade wallet"), +QT_TRANSLATE_NOOP("btx-core", "Cannot resolve -bind address: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Cannot resolve -externalip address: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Cannot resolve -whitebind address: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Cannot write default address"), +QT_TRANSLATE_NOOP("btx-core", "Collateral not valid."), +QT_TRANSLATE_NOOP("btx-core", "Connect only to the specified node(s)"), +QT_TRANSLATE_NOOP("btx-core", "Connect through SOCKS5 proxy"), +QT_TRANSLATE_NOOP("btx-core", "Connect to KeePassHttp on port (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Connect to a node to retrieve peer addresses, and disconnect"), +QT_TRANSLATE_NOOP("btx-core", "Connection options:"), +QT_TRANSLATE_NOOP("btx-core", "Copyright (C) 2009-%i The Bitcoin Core Developers"), +QT_TRANSLATE_NOOP("btx-core", "Copyright (C) 2014-%i The BTX Core Developers"), +QT_TRANSLATE_NOOP("btx-core", "Corrupted block database detected"), +QT_TRANSLATE_NOOP("btx-core", "Could not parse -rpcbind value %s as network address"), +QT_TRANSLATE_NOOP("btx-core", "Could not parse masternode.conf"), +QT_TRANSLATE_NOOP("btx-core", "Darksend is idle."), +QT_TRANSLATE_NOOP("btx-core", "Darksend options:"), +QT_TRANSLATE_NOOP("btx-core", "Darksend request complete:"), +QT_TRANSLATE_NOOP("btx-core", "Darksend request incomplete:"), +QT_TRANSLATE_NOOP("btx-core", "Debugging/Testing options:"), +QT_TRANSLATE_NOOP("btx-core", "Disable safemode, override a real safe mode event (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Discover own IP address (default: 1 when listening and no -externalip)"), +QT_TRANSLATE_NOOP("btx-core", "Do not load the wallet and disable wallet RPC calls"), +QT_TRANSLATE_NOOP("btx-core", "Do you want to rebuild the block database now?"), +QT_TRANSLATE_NOOP("btx-core", "Done loading"), +QT_TRANSLATE_NOOP("btx-core", "Enable the client to act as a masternode (0-1, default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Entries are full."), +QT_TRANSLATE_NOOP("btx-core", "Error connecting to Masternode."), +QT_TRANSLATE_NOOP("btx-core", "Error initializing block database"), +QT_TRANSLATE_NOOP("btx-core", "Error initializing wallet database environment %s!"), +QT_TRANSLATE_NOOP("btx-core", "Error loading block database"), +QT_TRANSLATE_NOOP("btx-core", "Error loading wallet.dat"), +QT_TRANSLATE_NOOP("btx-core", "Error loading wallet.dat: Wallet corrupted"), +QT_TRANSLATE_NOOP("btx-core", "Error loading wallet.dat: Wallet requires newer version of BTX Core"), +QT_TRANSLATE_NOOP("btx-core", "Error opening block database"), +QT_TRANSLATE_NOOP("btx-core", "Error reading from database, shutting down."), +QT_TRANSLATE_NOOP("btx-core", "Error recovering public key."), +QT_TRANSLATE_NOOP("btx-core", "Error"), +QT_TRANSLATE_NOOP("btx-core", "Error: A fatal internal error occured, see debug.log for details"), +QT_TRANSLATE_NOOP("btx-core", "Error: Can't select current denominated inputs"), +QT_TRANSLATE_NOOP("btx-core", "Error: Disk space is low!"), +QT_TRANSLATE_NOOP("btx-core", "Error: Unsupported argument -tor found, use -onion."), +QT_TRANSLATE_NOOP("btx-core", "Error: Wallet locked, unable to create transaction!"), +QT_TRANSLATE_NOOP("btx-core", "Error: You already have pending entries in the Darksend pool"), +QT_TRANSLATE_NOOP("btx-core", "Failed to listen on any port. Use -listen=0 if you want this."), +QT_TRANSLATE_NOOP("btx-core", "Failed to read block"), +QT_TRANSLATE_NOOP("btx-core", "Fee (in DASH/kB) to add to transactions you send (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Finalizing transaction."), +QT_TRANSLATE_NOOP("btx-core", "Force safe mode (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Found enough users, signing ( waiting %s )"), +QT_TRANSLATE_NOOP("btx-core", "Found enough users, signing ..."), +QT_TRANSLATE_NOOP("btx-core", "Generate coins (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "How many blocks to check at startup (default: %u, 0 = all)"), +QT_TRANSLATE_NOOP("btx-core", "If is not supplied, output all debugging information."), +QT_TRANSLATE_NOOP("btx-core", "Importing..."), +QT_TRANSLATE_NOOP("btx-core", "Imports blocks from external blk000??.dat file"), +QT_TRANSLATE_NOOP("btx-core", "Include IP addresses in debug output (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Incompatible mode."), +QT_TRANSLATE_NOOP("btx-core", "Incompatible version."), +QT_TRANSLATE_NOOP("btx-core", "Incorrect or no genesis block found. Wrong datadir for network?"), +QT_TRANSLATE_NOOP("btx-core", "Information"), +QT_TRANSLATE_NOOP("btx-core", "Initialization sanity check failed. BTX Core is shutting down."), +QT_TRANSLATE_NOOP("btx-core", "Input is not valid."), +QT_TRANSLATE_NOOP("btx-core", "InstantX options:"), +QT_TRANSLATE_NOOP("btx-core", "Insufficient funds."), +QT_TRANSLATE_NOOP("btx-core", "Invalid -onion address: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid -proxy address: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid amount for -maxtxfee=: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid amount for -minrelaytxfee=: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid amount for -mintxfee=: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), +QT_TRANSLATE_NOOP("btx-core", "Invalid amount for -paytxfee=: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid masternodeprivkey. Please see documenation."), +QT_TRANSLATE_NOOP("btx-core", "Invalid netmask specified in -whitelist: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Invalid port detected in masternode.conf"), +QT_TRANSLATE_NOOP("btx-core", "Invalid private key."), +QT_TRANSLATE_NOOP("btx-core", "Invalid script detected."), +QT_TRANSLATE_NOOP("btx-core", "KeePassHttp id for the established association"), +QT_TRANSLATE_NOOP("btx-core", "KeePassHttp key for AES encrypted communication with KeePass"), +QT_TRANSLATE_NOOP("btx-core", "Keep N DASH anonymized (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Keep at most unconnectable transactions in memory (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Last Darksend was too recent."), +QT_TRANSLATE_NOOP("btx-core", "Last successful Darksend action was too recent."), +QT_TRANSLATE_NOOP("btx-core", "Limit size of signature cache to entries (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Line: %d"), +QT_TRANSLATE_NOOP("btx-core", "Listen for JSON-RPC connections on (default: %u or testnet: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Listen for connections on (default: %u or testnet: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Loading addresses..."), +QT_TRANSLATE_NOOP("btx-core", "Loading block index..."), +QT_TRANSLATE_NOOP("btx-core", "Loading budget cache..."), +QT_TRANSLATE_NOOP("btx-core", "Loading masternode cache..."), +QT_TRANSLATE_NOOP("btx-core", "Loading masternode payment cache..."), +QT_TRANSLATE_NOOP("btx-core", "Loading wallet... (%3.2f %%)"), +QT_TRANSLATE_NOOP("btx-core", "Loading wallet..."), +QT_TRANSLATE_NOOP("btx-core", "Lock is already in place."), +QT_TRANSLATE_NOOP("btx-core", "Lock masternodes from masternode configuration file (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Maintain at most connections to peers (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Masternode options:"), +QT_TRANSLATE_NOOP("btx-core", "Masternode queue is full."), +QT_TRANSLATE_NOOP("btx-core", "Masternode:"), +QT_TRANSLATE_NOOP("btx-core", "Maximum per-connection receive buffer, *1000 bytes (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Maximum per-connection send buffer, *1000 bytes (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Missing input transaction information."), +QT_TRANSLATE_NOOP("btx-core", "Mixing in progress..."), +QT_TRANSLATE_NOOP("btx-core", "Need to specify a port with -whitebind: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "No Masternodes detected."), +QT_TRANSLATE_NOOP("btx-core", "No compatible Masternode found."), +QT_TRANSLATE_NOOP("btx-core", "No funds detected in need of denominating."), +QT_TRANSLATE_NOOP("btx-core", "No matching denominations found for mixing."), +QT_TRANSLATE_NOOP("btx-core", "Node relay options:"), +QT_TRANSLATE_NOOP("btx-core", "Non-standard public key detected."), +QT_TRANSLATE_NOOP("btx-core", "Not compatible with existing transactions."), +QT_TRANSLATE_NOOP("btx-core", "Not enough file descriptors available."), +QT_TRANSLATE_NOOP("btx-core", "Not in the Masternode list."), +QT_TRANSLATE_NOOP("btx-core", "Number of automatic wallet backups (default: 10)"), +QT_TRANSLATE_NOOP("btx-core", "Only accept block chain matching built-in checkpoints (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Only connect to nodes in network (ipv4, ipv6 or onion)"), +QT_TRANSLATE_NOOP("btx-core", "Options:"), +QT_TRANSLATE_NOOP("btx-core", "Password for JSON-RPC connections"), +QT_TRANSLATE_NOOP("btx-core", "Prepend debug output with timestamp (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)"), +QT_TRANSLATE_NOOP("btx-core", "RPC server options:"), +QT_TRANSLATE_NOOP("btx-core", "RPC support for HTTP persistent connections (default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "Randomly drop 1 of every network messages"), +QT_TRANSLATE_NOOP("btx-core", "Randomly fuzz 1 of every network messages"), +QT_TRANSLATE_NOOP("btx-core", "Rebuild block chain index from current blk000??.dat files"), +QT_TRANSLATE_NOOP("btx-core", "Receive and display P2P network alerts (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Relay and mine data carrier transactions (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Relay non-P2SH multisig (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Rescan the block chain for missing wallet transactions"), +QT_TRANSLATE_NOOP("btx-core", "Rescanning..."), +QT_TRANSLATE_NOOP("btx-core", "Run a thread to flush wallet periodically (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Run in the background as a daemon and accept commands"), +QT_TRANSLATE_NOOP("btx-core", "Send trace/debug info to debug.log file (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Send transactions as zero-fee transactions if possible (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Server certificate file (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Server private key (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Session not complete!"), +QT_TRANSLATE_NOOP("btx-core", "Session timed out."), +QT_TRANSLATE_NOOP("btx-core", "Set database cache size in megabytes (%d to %d, default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "Set external address:port to get to this masternode (example: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Set key pool size to (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Set maximum block size in bytes (default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "Set minimum block size in bytes (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Set the masternode private key"), +QT_TRANSLATE_NOOP("btx-core", "Set the number of threads to service RPC calls (default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "Sets the DB_PRIVATE flag in the wallet db environment (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Show all debugging options (usage: --help -help-debug)"), +QT_TRANSLATE_NOOP("btx-core", "Shrink debug.log file on client startup (default: 1 when no -debug)"), +QT_TRANSLATE_NOOP("btx-core", "Signing failed."), +QT_TRANSLATE_NOOP("btx-core", "Signing timed out."), +QT_TRANSLATE_NOOP("btx-core", "Signing transaction failed"), +QT_TRANSLATE_NOOP("btx-core", "Specify configuration file (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Specify connection timeout in milliseconds (minimum: 1, default: %d)"), +QT_TRANSLATE_NOOP("btx-core", "Specify data directory"), +QT_TRANSLATE_NOOP("btx-core", "Specify masternode configuration file (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Specify pid file (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Specify wallet file (within data directory)"), +QT_TRANSLATE_NOOP("btx-core", "Specify your own public address"), +QT_TRANSLATE_NOOP("btx-core", "Spend unconfirmed change when sending transactions (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Stop running after importing blocks from disk (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Submitted following entries to masternode: %u / %d"), +QT_TRANSLATE_NOOP("btx-core", "Submitted to masternode, waiting for more entries ( %u / %d ) %s"), +QT_TRANSLATE_NOOP("btx-core", "Submitted to masternode, waiting in queue %s"), +QT_TRANSLATE_NOOP("btx-core", "Synchronization failed"), +QT_TRANSLATE_NOOP("btx-core", "Synchronization finished"), +QT_TRANSLATE_NOOP("btx-core", "Synchronization pending..."), +QT_TRANSLATE_NOOP("btx-core", "Synchronizing budgets..."), +QT_TRANSLATE_NOOP("btx-core", "Synchronizing masternode winners..."), +QT_TRANSLATE_NOOP("btx-core", "Synchronizing masternodes..."), +QT_TRANSLATE_NOOP("btx-core", "Synchronizing sporks..."), +QT_TRANSLATE_NOOP("btx-core", "This help message"), +QT_TRANSLATE_NOOP("btx-core", "This is experimental software."), +QT_TRANSLATE_NOOP("btx-core", "This is intended for regression testing tools and app development."), +QT_TRANSLATE_NOOP("btx-core", "This is not a Masternode."), +QT_TRANSLATE_NOOP("btx-core", "Threshold for disconnecting misbehaving peers (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Transaction amount too small"), +QT_TRANSLATE_NOOP("btx-core", "Transaction amounts must be positive"), +QT_TRANSLATE_NOOP("btx-core", "Transaction created successfully."), +QT_TRANSLATE_NOOP("btx-core", "Transaction fees are too high."), +QT_TRANSLATE_NOOP("btx-core", "Transaction not valid."), +QT_TRANSLATE_NOOP("btx-core", "Transaction too large for fee policy"), +QT_TRANSLATE_NOOP("btx-core", "Transaction too large"), +QT_TRANSLATE_NOOP("btx-core", "Transmitting final transaction."), +QT_TRANSLATE_NOOP("btx-core", "Unable to bind to %s on this computer (bind returned error %s)"), +QT_TRANSLATE_NOOP("btx-core", "Unable to sign spork message, wrong key?"), +QT_TRANSLATE_NOOP("btx-core", "Unknown network specified in -onlynet: '%s'"), +QT_TRANSLATE_NOOP("btx-core", "Unknown state: id = %u"), +QT_TRANSLATE_NOOP("btx-core", "Upgrade wallet to latest format"), +QT_TRANSLATE_NOOP("btx-core", "Use KeePass 2 integration using KeePassHttp plugin (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Use N separate masternodes to anonymize funds (2-8, default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Use OpenSSL (https) for JSON-RPC connections"), +QT_TRANSLATE_NOOP("btx-core", "Use UPnP to map the listening port (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Use UPnP to map the listening port (default: 1 when listening)"), +QT_TRANSLATE_NOOP("btx-core", "Use the test network"), +QT_TRANSLATE_NOOP("btx-core", "Username for JSON-RPC connections"), +QT_TRANSLATE_NOOP("btx-core", "Value more than Darksend pool maximum allows."), +QT_TRANSLATE_NOOP("btx-core", "Verifying blocks..."), +QT_TRANSLATE_NOOP("btx-core", "Verifying wallet..."), +QT_TRANSLATE_NOOP("btx-core", "Wallet %s resides outside data directory %s"), +QT_TRANSLATE_NOOP("btx-core", "Wallet is locked."), +QT_TRANSLATE_NOOP("btx-core", "Wallet needed to be rewritten: restart BTX Core to complete"), +QT_TRANSLATE_NOOP("btx-core", "Wallet options:"), +QT_TRANSLATE_NOOP("btx-core", "Wallet window title"), +QT_TRANSLATE_NOOP("btx-core", "Warning"), +QT_TRANSLATE_NOOP("btx-core", "Warning: This version is obsolete, upgrade required!"), +QT_TRANSLATE_NOOP("btx-core", "Warning: Unsupported argument -benchmark ignored, use -debug=bench."), +QT_TRANSLATE_NOOP("btx-core", "Warning: Unsupported argument -debugnet ignored, use -debug=net."), +QT_TRANSLATE_NOOP("btx-core", "Will retry..."), +QT_TRANSLATE_NOOP("btx-core", "You need to rebuild the database using -reindex to change -txindex"), +QT_TRANSLATE_NOOP("btx-core", "Your entries added successfully."), +QT_TRANSLATE_NOOP("btx-core", "Your transaction was accepted into the pool!"), +QT_TRANSLATE_NOOP("btx-core", "Zapping all transactions from wallet..."), +QT_TRANSLATE_NOOP("btx-core", "on startup"), +QT_TRANSLATE_NOOP("btx-core", "wallet.dat corrupt, salvage failed"), +}; diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 299d147cb30e..da149186104d 100644 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index b07444165205..c0aeba512f61 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -34,7 +34,7 @@ enum NumConnections { CONNECTIONS_ALL = (CONNECTIONS_IN | CONNECTIONS_OUT), }; -/** Model for Dash network client. */ +/** Model for BTX network client. */ class ClientModel : public QObject { Q_OBJECT diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index f21483759f21..d3cefa327002 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -786,7 +786,7 @@ void CoinControlDialog::updateView() { sAddress = QString::fromStdString(CBitcoinAddress(outputAddress).ToString()); - // if listMode or change => show dash address. In tree mode, address is not shown again for direct wallet address outputs + // if listMode or change => show btx address. In tree mode, address is not shown again for direct wallet address outputs if (!treeMode || (!(sAddress == sWalletAddress))) itemOutput->setText(COLUMN_ADDRESS, sAddress); diff --git a/src/qt/darksendconfig.cpp b/src/qt/darksendconfig.cpp index 5929efa13984..9fed9a3fb5d2 100644 --- a/src/qt/darksendconfig.cpp +++ b/src/qt/darksendconfig.cpp @@ -42,7 +42,7 @@ void DarksendConfig::clickBasic() model->getOptionsModel()->getDisplayUnit(), 1000 * COIN)); QMessageBox::information(this, tr("Darksend Configuration"), tr( - "Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen." + "Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening BTX's configuration screen." ).arg(strAmount) ); @@ -57,7 +57,7 @@ void DarksendConfig::clickHigh() model->getOptionsModel()->getDisplayUnit(), 1000 * COIN)); QMessageBox::information(this, tr("Darksend Configuration"), tr( - "Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen." + "Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening BTX's configuration screen." ).arg(strAmount) ); @@ -72,7 +72,7 @@ void DarksendConfig::clickMax() model->getOptionsModel()->getDisplayUnit(), 1000 * COIN)); QMessageBox::information(this, tr("Darksend Configuration"), tr( - "Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen." + "Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening BTX's configuration screen." ).arg(strAmount) ); diff --git a/src/qt/dash_locale.qrc b/src/qt/dash_locale.qrc deleted file mode 100644 index 8ec5b625847f..000000000000 --- a/src/qt/dash_locale.qrc +++ /dev/null @@ -1,19 +0,0 @@ - - - locale/dash_bg.qm - locale/dash_de.qm - locale/dash_en.qm - locale/dash_es.qm - locale/dash_fi.qm - locale/dash_fr.qm - locale/dash_it.qm - locale/dash_pl.qm - locale/dash_pt.qm - locale/dash_ru.qm - locale/dash_sk.qm - locale/dash_sv.qm - locale/dash_vi.qm - locale/dash_zh_CN.qm - locale/dash_zh_TW.qm - - diff --git a/src/qt/dashstrings.cpp b/src/qt/dashstrings.cpp deleted file mode 100644 index feaba224a02b..000000000000 --- a/src/qt/dashstrings.cpp +++ /dev/null @@ -1,442 +0,0 @@ - - -#include - -// Automatically generated by extract_strings.py -#ifdef __GNUC__ -#define UNUSED __attribute__((unused)) -#else -#define UNUSED -#endif -static const char UNUSED *dash_strings[] = { -QT_TRANSLATE_NOOP("dash-core", "" -"(1 = keep tx meta data e.g. account owner and payment request information, 2 " -"= drop tx meta data)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Allow JSON-RPC connections from specified source. Valid for are a " -"single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or " -"a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times"), -QT_TRANSLATE_NOOP("dash-core", "" -"An error occurred while setting up the RPC address %s port %u for listening: " -"%s"), -QT_TRANSLATE_NOOP("dash-core", "" -"Bind to given address and always listen on it. Use [host]:port notation for " -"IPv6"), -QT_TRANSLATE_NOOP("dash-core", "" -"Bind to given address and whitelist peers connecting to it. Use [host]:port " -"notation for IPv6"), -QT_TRANSLATE_NOOP("dash-core", "" -"Bind to given address to listen for JSON-RPC connections. Use [host]:port " -"notation for IPv6. This option can be specified multiple times (default: " -"bind to all interfaces)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Cannot obtain a lock on data directory %s. Dash Core is probably already " -"running."), -QT_TRANSLATE_NOOP("dash-core", "" -"Change automatic finalized budget voting behavior. mode=auto: Vote for only " -"exact finalized budget match to my generated budget. (string, default: auto)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Continuously rate-limit free transactions to *1000 bytes per minute " -"(default:%u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Create new files with system default permissions, instead of umask 077 (only " -"effective with disabled wallet functionality)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Darksend uses exact denominated amounts to send funds, you might simply need " -"to anonymize some more coins."), -QT_TRANSLATE_NOOP("dash-core", "" -"Delete all wallet transactions and only recover those parts of the " -"blockchain through -rescan on startup"), -QT_TRANSLATE_NOOP("dash-core", "" -"Disable all Dash specific functionality (Masternodes, Darksend, InstantX, " -"Budgeting) (0-1, default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Distributed under the MIT software license, see the accompanying file " -"COPYING or ."), -QT_TRANSLATE_NOOP("dash-core", "" -"Enable instantx, show confirmations for locked transactions (bool, default: " -"%s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Enable use of automated darksend for funds stored in this wallet (0-1, " -"default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Enter regression test mode, which uses a special chain in which blocks can " -"be solved instantly."), -QT_TRANSLATE_NOOP("dash-core", "" -"Error: Listening for incoming connections failed (listen returned error %s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Error: Unsupported argument -socks found. Setting SOCKS version isn't " -"possible anymore, only SOCKS5 proxies are supported."), -QT_TRANSLATE_NOOP("dash-core", "" -"Execute command when a relevant alert is received or we see a really long " -"fork (%s in cmd is replaced by message)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Execute command when a wallet transaction changes (%s in cmd is replaced by " -"TxID)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Execute command when the best block changes (%s in cmd is replaced by block " -"hash)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Fees (in DASH/Kb) smaller than this are considered zero fee for relaying " -"(default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Fees (in DASH/Kb) smaller than this are considered zero fee for transaction " -"creation (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Flush database activity from memory pool to disk log every megabytes " -"(default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Found unconfirmed denominated outputs, will wait till they confirm to " -"continue."), -QT_TRANSLATE_NOOP("dash-core", "" -"How thorough the block verification of -checkblocks is (0-4, default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"If paytxfee is not set, include enough fee so transactions begin " -"confirmation on average within n blocks (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"In this mode -genproclimit controls how many blocks are generated " -"immediately."), -QT_TRANSLATE_NOOP("dash-core", "" -"InstantX requires inputs with at least 6 confirmations, you might need to " -"wait a few minutes and try again."), -QT_TRANSLATE_NOOP("dash-core", "" -"Invalid amount for -maxtxfee=: '%s' (must be at least the minrelay " -"fee of %s to prevent stuck transactions)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Log transaction priority and fee per kB when mining blocks (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Maintain a full transaction index, used by the getrawtransaction rpc call " -"(default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Maximum size of data in data carrier transactions we relay and mine " -"(default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Maximum total fees to use in a single wallet transaction, setting too low " -"may abort large transactions (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Name to construct url for KeePass entry that stores the wallet passphrase"), -QT_TRANSLATE_NOOP("dash-core", "" -"Number of seconds to keep misbehaving peers from reconnecting (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Output debugging information (default: %u, supplying is optional)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Provide liquidity to Darksend by infrequently mixing coins on a continual " -"basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, " -"low fees)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Query for peer addresses via DNS lookup, if low on addresses (default: 1 " -"unless -connect)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Require high priority for relaying free or low-fee transactions (default:%u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Send trace/debug info to console instead of debug.log file (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Set maximum size of high-priority/low-fee transactions in bytes (default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Set the number of script verification threads (%u to %d, 0 = auto, <0 = " -"leave that many cores free, default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Set the number of threads for coin generation if enabled (-1 = all cores, " -"default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Show N confirmations for a successfully locked transaction (0-9999, default: " -"%u)"), -QT_TRANSLATE_NOOP("dash-core", "" -"This is a pre-release test build - use at your own risk - do not use for " -"mining or merchant applications"), -QT_TRANSLATE_NOOP("dash-core", "" -"This product includes software developed by the OpenSSL Project for use in " -"the OpenSSL Toolkit and cryptographic software " -"written by Eric Young and UPnP software written by Thomas Bernard."), -QT_TRANSLATE_NOOP("dash-core", "" -"To use dashd, or the -server option to dash-qt, you must set an rpcpassword " -"in the configuration file:\n" -"%s\n" -"It is recommended you use the following random password:\n" -"rpcuser=dashrpc\n" -"rpcpassword=%s\n" -"(you do not need to remember this password)\n" -"The username and password MUST NOT be the same.\n" -"If the file does not exist, create it with owner-readable-only file " -"permissions.\n" -"It is also recommended to set alertnotify so you are notified of problems;\n" -"for example: alertnotify=echo %%s | mail -s \"Dash Alert\" admin@foo.com\n"), -QT_TRANSLATE_NOOP("dash-core", "" -"Unable to bind to %s on this computer. Dash Core is probably already running."), -QT_TRANSLATE_NOOP("dash-core", "" -"Unable to locate enough Darksend denominated funds for this transaction."), -QT_TRANSLATE_NOOP("dash-core", "" -"Unable to locate enough Darksend non-denominated funds for this transaction " -"that are not equal 1000 DASH."), -QT_TRANSLATE_NOOP("dash-core", "" -"Unable to locate enough funds for this transaction that are not equal 1000 " -"DASH."), -QT_TRANSLATE_NOOP("dash-core", "" -"Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: " -"%s)"), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: -maxtxfee is set very high! Fees this large could be paid on a " -"single transaction."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: -paytxfee is set very high! This is the transaction fee you will " -"pay if you send a transaction."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: Please check that your computer's date and time are correct! If " -"your clock is wrong Dash Core will not work properly."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: The network does not appear to fully agree! Some miners appear to " -"be experiencing issues."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: We do not appear to fully agree with our peers! You may need to " -"upgrade, or other nodes may need to upgrade."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: error reading wallet.dat! All keys read correctly, but transaction " -"data or address book entries might be missing or incorrect."), -QT_TRANSLATE_NOOP("dash-core", "" -"Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as " -"wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect " -"you should restore from a backup."), -QT_TRANSLATE_NOOP("dash-core", "" -"Whitelist peers connecting from the given netmask or IP address. Can be " -"specified multiple times."), -QT_TRANSLATE_NOOP("dash-core", "" -"Whitelisted peers cannot be DoS banned and their transactions are always " -"relayed, even if they are already in the mempool, useful e.g. for a gateway"), -QT_TRANSLATE_NOOP("dash-core", "" -"You must specify a masternodeprivkey in the configuration. Please see " -"documentation for help."), -QT_TRANSLATE_NOOP("dash-core", "(9999 could be used only on mainnet)"), -QT_TRANSLATE_NOOP("dash-core", "(default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "(default: 1)"), -QT_TRANSLATE_NOOP("dash-core", "(must be 9999 for mainnet)"), -QT_TRANSLATE_NOOP("dash-core", " can be:\n"), -QT_TRANSLATE_NOOP("dash-core", "Accept command line and JSON-RPC commands"), -QT_TRANSLATE_NOOP("dash-core", "Accept connections from outside (default: 1 if no -proxy or -connect)"), -QT_TRANSLATE_NOOP("dash-core", "Accept public REST requests (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Acceptable ciphers (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Add a node to connect to and attempt to keep the connection open"), -QT_TRANSLATE_NOOP("dash-core", "Allow DNS lookups for -addnode, -seednode and -connect"), -QT_TRANSLATE_NOOP("dash-core", "Already have that input."), -QT_TRANSLATE_NOOP("dash-core", "Always query for peer addresses via DNS lookup (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Attempt to recover private keys from a corrupt wallet.dat"), -QT_TRANSLATE_NOOP("dash-core", "Block creation options:"), -QT_TRANSLATE_NOOP("dash-core", "Can't denominate: no compatible inputs left."), -QT_TRANSLATE_NOOP("dash-core", "Can't find random Masternode."), -QT_TRANSLATE_NOOP("dash-core", "Can't mix while sync in progress."), -QT_TRANSLATE_NOOP("dash-core", "Cannot downgrade wallet"), -QT_TRANSLATE_NOOP("dash-core", "Cannot resolve -bind address: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Cannot resolve -externalip address: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Cannot resolve -whitebind address: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Cannot write default address"), -QT_TRANSLATE_NOOP("dash-core", "Collateral not valid."), -QT_TRANSLATE_NOOP("dash-core", "Connect only to the specified node(s)"), -QT_TRANSLATE_NOOP("dash-core", "Connect through SOCKS5 proxy"), -QT_TRANSLATE_NOOP("dash-core", "Connect to KeePassHttp on port (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Connect to a node to retrieve peer addresses, and disconnect"), -QT_TRANSLATE_NOOP("dash-core", "Connection options:"), -QT_TRANSLATE_NOOP("dash-core", "Copyright (C) 2009-%i The Bitcoin Core Developers"), -QT_TRANSLATE_NOOP("dash-core", "Copyright (C) 2014-%i The Dash Core Developers"), -QT_TRANSLATE_NOOP("dash-core", "Corrupted block database detected"), -QT_TRANSLATE_NOOP("dash-core", "Could not parse -rpcbind value %s as network address"), -QT_TRANSLATE_NOOP("dash-core", "Could not parse masternode.conf"), -QT_TRANSLATE_NOOP("dash-core", "Darksend is idle."), -QT_TRANSLATE_NOOP("dash-core", "Darksend options:"), -QT_TRANSLATE_NOOP("dash-core", "Darksend request complete:"), -QT_TRANSLATE_NOOP("dash-core", "Darksend request incomplete:"), -QT_TRANSLATE_NOOP("dash-core", "Debugging/Testing options:"), -QT_TRANSLATE_NOOP("dash-core", "Disable safemode, override a real safe mode event (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Discover own IP address (default: 1 when listening and no -externalip)"), -QT_TRANSLATE_NOOP("dash-core", "Do not load the wallet and disable wallet RPC calls"), -QT_TRANSLATE_NOOP("dash-core", "Do you want to rebuild the block database now?"), -QT_TRANSLATE_NOOP("dash-core", "Done loading"), -QT_TRANSLATE_NOOP("dash-core", "Enable the client to act as a masternode (0-1, default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Entries are full."), -QT_TRANSLATE_NOOP("dash-core", "Error connecting to Masternode."), -QT_TRANSLATE_NOOP("dash-core", "Error initializing block database"), -QT_TRANSLATE_NOOP("dash-core", "Error initializing wallet database environment %s!"), -QT_TRANSLATE_NOOP("dash-core", "Error loading block database"), -QT_TRANSLATE_NOOP("dash-core", "Error loading wallet.dat"), -QT_TRANSLATE_NOOP("dash-core", "Error loading wallet.dat: Wallet corrupted"), -QT_TRANSLATE_NOOP("dash-core", "Error loading wallet.dat: Wallet requires newer version of Dash Core"), -QT_TRANSLATE_NOOP("dash-core", "Error opening block database"), -QT_TRANSLATE_NOOP("dash-core", "Error reading from database, shutting down."), -QT_TRANSLATE_NOOP("dash-core", "Error recovering public key."), -QT_TRANSLATE_NOOP("dash-core", "Error"), -QT_TRANSLATE_NOOP("dash-core", "Error: A fatal internal error occured, see debug.log for details"), -QT_TRANSLATE_NOOP("dash-core", "Error: Can't select current denominated inputs"), -QT_TRANSLATE_NOOP("dash-core", "Error: Disk space is low!"), -QT_TRANSLATE_NOOP("dash-core", "Error: Unsupported argument -tor found, use -onion."), -QT_TRANSLATE_NOOP("dash-core", "Error: Wallet locked, unable to create transaction!"), -QT_TRANSLATE_NOOP("dash-core", "Error: You already have pending entries in the Darksend pool"), -QT_TRANSLATE_NOOP("dash-core", "Failed to listen on any port. Use -listen=0 if you want this."), -QT_TRANSLATE_NOOP("dash-core", "Failed to read block"), -QT_TRANSLATE_NOOP("dash-core", "Fee (in DASH/kB) to add to transactions you send (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Finalizing transaction."), -QT_TRANSLATE_NOOP("dash-core", "Force safe mode (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Found enough users, signing ( waiting %s )"), -QT_TRANSLATE_NOOP("dash-core", "Found enough users, signing ..."), -QT_TRANSLATE_NOOP("dash-core", "Generate coins (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "How many blocks to check at startup (default: %u, 0 = all)"), -QT_TRANSLATE_NOOP("dash-core", "If is not supplied, output all debugging information."), -QT_TRANSLATE_NOOP("dash-core", "Importing..."), -QT_TRANSLATE_NOOP("dash-core", "Imports blocks from external blk000??.dat file"), -QT_TRANSLATE_NOOP("dash-core", "Include IP addresses in debug output (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Incompatible mode."), -QT_TRANSLATE_NOOP("dash-core", "Incompatible version."), -QT_TRANSLATE_NOOP("dash-core", "Incorrect or no genesis block found. Wrong datadir for network?"), -QT_TRANSLATE_NOOP("dash-core", "Information"), -QT_TRANSLATE_NOOP("dash-core", "Initialization sanity check failed. Dash Core is shutting down."), -QT_TRANSLATE_NOOP("dash-core", "Input is not valid."), -QT_TRANSLATE_NOOP("dash-core", "InstantX options:"), -QT_TRANSLATE_NOOP("dash-core", "Insufficient funds."), -QT_TRANSLATE_NOOP("dash-core", "Invalid -onion address: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid -proxy address: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid amount for -maxtxfee=: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid amount for -minrelaytxfee=: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid amount for -mintxfee=: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid amount for -paytxfee=: '%s' (must be at least %s)"), -QT_TRANSLATE_NOOP("dash-core", "Invalid amount for -paytxfee=: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid masternodeprivkey. Please see documenation."), -QT_TRANSLATE_NOOP("dash-core", "Invalid netmask specified in -whitelist: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Invalid port detected in masternode.conf"), -QT_TRANSLATE_NOOP("dash-core", "Invalid private key."), -QT_TRANSLATE_NOOP("dash-core", "Invalid script detected."), -QT_TRANSLATE_NOOP("dash-core", "KeePassHttp id for the established association"), -QT_TRANSLATE_NOOP("dash-core", "KeePassHttp key for AES encrypted communication with KeePass"), -QT_TRANSLATE_NOOP("dash-core", "Keep N DASH anonymized (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Keep at most unconnectable transactions in memory (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Last Darksend was too recent."), -QT_TRANSLATE_NOOP("dash-core", "Last successful Darksend action was too recent."), -QT_TRANSLATE_NOOP("dash-core", "Limit size of signature cache to entries (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Line: %d"), -QT_TRANSLATE_NOOP("dash-core", "Listen for JSON-RPC connections on (default: %u or testnet: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Listen for connections on (default: %u or testnet: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Loading addresses..."), -QT_TRANSLATE_NOOP("dash-core", "Loading block index..."), -QT_TRANSLATE_NOOP("dash-core", "Loading budget cache..."), -QT_TRANSLATE_NOOP("dash-core", "Loading masternode cache..."), -QT_TRANSLATE_NOOP("dash-core", "Loading masternode payment cache..."), -QT_TRANSLATE_NOOP("dash-core", "Loading wallet... (%3.2f %%)"), -QT_TRANSLATE_NOOP("dash-core", "Loading wallet..."), -QT_TRANSLATE_NOOP("dash-core", "Lock is already in place."), -QT_TRANSLATE_NOOP("dash-core", "Lock masternodes from masternode configuration file (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Maintain at most connections to peers (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Masternode options:"), -QT_TRANSLATE_NOOP("dash-core", "Masternode queue is full."), -QT_TRANSLATE_NOOP("dash-core", "Masternode:"), -QT_TRANSLATE_NOOP("dash-core", "Maximum per-connection receive buffer, *1000 bytes (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Maximum per-connection send buffer, *1000 bytes (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Missing input transaction information."), -QT_TRANSLATE_NOOP("dash-core", "Mixing in progress..."), -QT_TRANSLATE_NOOP("dash-core", "Need to specify a port with -whitebind: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "No Masternodes detected."), -QT_TRANSLATE_NOOP("dash-core", "No compatible Masternode found."), -QT_TRANSLATE_NOOP("dash-core", "No funds detected in need of denominating."), -QT_TRANSLATE_NOOP("dash-core", "No matching denominations found for mixing."), -QT_TRANSLATE_NOOP("dash-core", "Node relay options:"), -QT_TRANSLATE_NOOP("dash-core", "Non-standard public key detected."), -QT_TRANSLATE_NOOP("dash-core", "Not compatible with existing transactions."), -QT_TRANSLATE_NOOP("dash-core", "Not enough file descriptors available."), -QT_TRANSLATE_NOOP("dash-core", "Not in the Masternode list."), -QT_TRANSLATE_NOOP("dash-core", "Number of automatic wallet backups (default: 10)"), -QT_TRANSLATE_NOOP("dash-core", "Only accept block chain matching built-in checkpoints (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Only connect to nodes in network (ipv4, ipv6 or onion)"), -QT_TRANSLATE_NOOP("dash-core", "Options:"), -QT_TRANSLATE_NOOP("dash-core", "Password for JSON-RPC connections"), -QT_TRANSLATE_NOOP("dash-core", "Prepend debug output with timestamp (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions)"), -QT_TRANSLATE_NOOP("dash-core", "RPC server options:"), -QT_TRANSLATE_NOOP("dash-core", "RPC support for HTTP persistent connections (default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "Randomly drop 1 of every network messages"), -QT_TRANSLATE_NOOP("dash-core", "Randomly fuzz 1 of every network messages"), -QT_TRANSLATE_NOOP("dash-core", "Rebuild block chain index from current blk000??.dat files"), -QT_TRANSLATE_NOOP("dash-core", "Receive and display P2P network alerts (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Relay and mine data carrier transactions (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Relay non-P2SH multisig (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Rescan the block chain for missing wallet transactions"), -QT_TRANSLATE_NOOP("dash-core", "Rescanning..."), -QT_TRANSLATE_NOOP("dash-core", "Run a thread to flush wallet periodically (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Run in the background as a daemon and accept commands"), -QT_TRANSLATE_NOOP("dash-core", "Send trace/debug info to debug.log file (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Send transactions as zero-fee transactions if possible (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Server certificate file (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Server private key (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Session not complete!"), -QT_TRANSLATE_NOOP("dash-core", "Session timed out."), -QT_TRANSLATE_NOOP("dash-core", "Set database cache size in megabytes (%d to %d, default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "Set external address:port to get to this masternode (example: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Set key pool size to (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Set maximum block size in bytes (default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "Set minimum block size in bytes (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Set the masternode private key"), -QT_TRANSLATE_NOOP("dash-core", "Set the number of threads to service RPC calls (default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "Sets the DB_PRIVATE flag in the wallet db environment (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Show all debugging options (usage: --help -help-debug)"), -QT_TRANSLATE_NOOP("dash-core", "Shrink debug.log file on client startup (default: 1 when no -debug)"), -QT_TRANSLATE_NOOP("dash-core", "Signing failed."), -QT_TRANSLATE_NOOP("dash-core", "Signing timed out."), -QT_TRANSLATE_NOOP("dash-core", "Signing transaction failed"), -QT_TRANSLATE_NOOP("dash-core", "Specify configuration file (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Specify connection timeout in milliseconds (minimum: 1, default: %d)"), -QT_TRANSLATE_NOOP("dash-core", "Specify data directory"), -QT_TRANSLATE_NOOP("dash-core", "Specify masternode configuration file (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Specify pid file (default: %s)"), -QT_TRANSLATE_NOOP("dash-core", "Specify wallet file (within data directory)"), -QT_TRANSLATE_NOOP("dash-core", "Specify your own public address"), -QT_TRANSLATE_NOOP("dash-core", "Spend unconfirmed change when sending transactions (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Stop running after importing blocks from disk (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Submitted following entries to masternode: %u / %d"), -QT_TRANSLATE_NOOP("dash-core", "Submitted to masternode, waiting for more entries ( %u / %d ) %s"), -QT_TRANSLATE_NOOP("dash-core", "Submitted to masternode, waiting in queue %s"), -QT_TRANSLATE_NOOP("dash-core", "Synchronization failed"), -QT_TRANSLATE_NOOP("dash-core", "Synchronization finished"), -QT_TRANSLATE_NOOP("dash-core", "Synchronization pending..."), -QT_TRANSLATE_NOOP("dash-core", "Synchronizing budgets..."), -QT_TRANSLATE_NOOP("dash-core", "Synchronizing masternode winners..."), -QT_TRANSLATE_NOOP("dash-core", "Synchronizing masternodes..."), -QT_TRANSLATE_NOOP("dash-core", "Synchronizing sporks..."), -QT_TRANSLATE_NOOP("dash-core", "This help message"), -QT_TRANSLATE_NOOP("dash-core", "This is experimental software."), -QT_TRANSLATE_NOOP("dash-core", "This is intended for regression testing tools and app development."), -QT_TRANSLATE_NOOP("dash-core", "This is not a Masternode."), -QT_TRANSLATE_NOOP("dash-core", "Threshold for disconnecting misbehaving peers (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Transaction amount too small"), -QT_TRANSLATE_NOOP("dash-core", "Transaction amounts must be positive"), -QT_TRANSLATE_NOOP("dash-core", "Transaction created successfully."), -QT_TRANSLATE_NOOP("dash-core", "Transaction fees are too high."), -QT_TRANSLATE_NOOP("dash-core", "Transaction not valid."), -QT_TRANSLATE_NOOP("dash-core", "Transaction too large for fee policy"), -QT_TRANSLATE_NOOP("dash-core", "Transaction too large"), -QT_TRANSLATE_NOOP("dash-core", "Transmitting final transaction."), -QT_TRANSLATE_NOOP("dash-core", "Unable to bind to %s on this computer (bind returned error %s)"), -QT_TRANSLATE_NOOP("dash-core", "Unable to sign spork message, wrong key?"), -QT_TRANSLATE_NOOP("dash-core", "Unknown network specified in -onlynet: '%s'"), -QT_TRANSLATE_NOOP("dash-core", "Unknown state: id = %u"), -QT_TRANSLATE_NOOP("dash-core", "Upgrade wallet to latest format"), -QT_TRANSLATE_NOOP("dash-core", "Use KeePass 2 integration using KeePassHttp plugin (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Use N separate masternodes to anonymize funds (2-8, default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Use OpenSSL (https) for JSON-RPC connections"), -QT_TRANSLATE_NOOP("dash-core", "Use UPnP to map the listening port (default: %u)"), -QT_TRANSLATE_NOOP("dash-core", "Use UPnP to map the listening port (default: 1 when listening)"), -QT_TRANSLATE_NOOP("dash-core", "Use the test network"), -QT_TRANSLATE_NOOP("dash-core", "Username for JSON-RPC connections"), -QT_TRANSLATE_NOOP("dash-core", "Value more than Darksend pool maximum allows."), -QT_TRANSLATE_NOOP("dash-core", "Verifying blocks..."), -QT_TRANSLATE_NOOP("dash-core", "Verifying wallet..."), -QT_TRANSLATE_NOOP("dash-core", "Wallet %s resides outside data directory %s"), -QT_TRANSLATE_NOOP("dash-core", "Wallet is locked."), -QT_TRANSLATE_NOOP("dash-core", "Wallet needed to be rewritten: restart Dash Core to complete"), -QT_TRANSLATE_NOOP("dash-core", "Wallet options:"), -QT_TRANSLATE_NOOP("dash-core", "Wallet window title"), -QT_TRANSLATE_NOOP("dash-core", "Warning"), -QT_TRANSLATE_NOOP("dash-core", "Warning: This version is obsolete, upgrade required!"), -QT_TRANSLATE_NOOP("dash-core", "Warning: Unsupported argument -benchmark ignored, use -debug=bench."), -QT_TRANSLATE_NOOP("dash-core", "Warning: Unsupported argument -debugnet ignored, use -debug=net."), -QT_TRANSLATE_NOOP("dash-core", "Will retry..."), -QT_TRANSLATE_NOOP("dash-core", "You need to rebuild the database using -reindex to change -txindex"), -QT_TRANSLATE_NOOP("dash-core", "Your entries added successfully."), -QT_TRANSLATE_NOOP("dash-core", "Your transaction was accepted into the pool!"), -QT_TRANSLATE_NOOP("dash-core", "Zapping all transactions from wallet..."), -QT_TRANSLATE_NOOP("dash-core", "on startup"), -QT_TRANSLATE_NOOP("dash-core", "wallet.dat corrupt, salvage failed"), -}; diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp index 0a7fee4f1b33..f4bad1f079e5 100644 --- a/src/qt/editaddressdialog.cpp +++ b/src/qt/editaddressdialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -108,7 +108,7 @@ void EditAddressDialog::accept() break; case AddressTableModel::INVALID_ADDRESS: QMessageBox::warning(this, windowTitle(), - tr("The entered address \"%1\" is not a valid Dash address.").arg(ui->addressEdit->text()), + tr("The entered address \"%1\" is not a valid BTX address.").arg(ui->addressEdit->text()), QMessageBox::Ok, QMessageBox::Ok); break; case AddressTableModel::DUPLICATE_ADDRESS: diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui index b45d0c10a12c..a8295aa69d07 100644 --- a/src/qt/forms/addressbookpage.ui +++ b/src/qt/forms/addressbookpage.ui @@ -60,7 +60,7 @@ &New - + :/icons/add:/icons/add @@ -77,7 +77,7 @@ &Copy - + :/icons/editcopy:/icons/editcopy @@ -94,7 +94,7 @@ &Delete - + :/icons/remove:/icons/remove @@ -124,7 +124,7 @@ &Export - + :/icons/export:/icons/export @@ -153,7 +153,7 @@ - + diff --git a/src/qt/forms/helpmessagedialog.ui b/src/qt/forms/helpmessagedialog.ui index e1edf5891685..25b7620066fb 100644 --- a/src/qt/forms/helpmessagedialog.ui +++ b/src/qt/forms/helpmessagedialog.ui @@ -16,7 +16,7 @@ - Dash Core - Command-line options + BTX Core - Command-line options @@ -28,7 +28,7 @@ - :/images/about + :/images/about @@ -87,7 +87,7 @@ - + diff --git a/src/qt/forms/intro.ui b/src/qt/forms/intro.ui index dd014d90a936..9e5a63e743eb 100644 --- a/src/qt/forms/intro.ui +++ b/src/qt/forms/intro.ui @@ -20,7 +20,7 @@ QLabel { font-style:italic; } - Welcome to Dash Core. + Welcome to BTX Core. true @@ -46,7 +46,7 @@ - As this is the first time the program is launched, you can choose where Dash Core will store its data. + As this is the first time the program is launched, you can choose where BTX Core will store its data. true @@ -56,7 +56,7 @@ - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + BTX Core will download and store a copy of the BTX block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. true diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 27e8773fcac8..f63e0e73eae0 100644 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -30,10 +30,10 @@ - Automatically start Dash after logging in to the system. + Automatically start BTX after logging in to the system. - &Start Dash on system login + &Start BTX on system login @@ -177,7 +177,7 @@ - Amount of Dash to keep anonymized + Amount of BTX to keep anonymized @@ -258,7 +258,7 @@ - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the BTX client port on the router. This only works when your router supports UPnP and it is enabled. Map port using &UPnP @@ -278,7 +278,7 @@ - Connect to the Dash network through a SOCKS5 proxy. + Connect to the BTX network through a SOCKS5 proxy. &Connect through SOCKS5 proxy (default proxy): @@ -444,7 +444,7 @@ - The user interface language can be set here. This setting will take effect after restarting Dash. + The user interface language can be set here. This setting will take effect after restarting BTX. @@ -466,7 +466,7 @@ Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ +https://www.transifex.com/projects/p/btx/ true diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index a7925a3730b3..57ef9fae022e 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -70,7 +70,7 @@ WhatsThisCursor - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the BTX network after a connection is established, but this process has not completed yet. QLabel { color: red; } @@ -1085,7 +1085,7 @@ - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the BTX network after a connection is established, but this process has not completed yet. QLabel { color: red; } @@ -1162,7 +1162,7 @@ WhatsThisCursor - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the BTX network after a connection is established, but this process has not completed yet. QLabel { color: red; } diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index e0234fb368f0..c01d2ec512c2 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -48,7 +48,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the BTX network. &Message: @@ -71,7 +71,7 @@ - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the BTX network. @@ -141,7 +141,7 @@ &Request payment - + :/icons/receiving_addresses:/icons/receiving_addresses @@ -161,7 +161,7 @@ Clear - + :/icons/remove:/icons/remove @@ -264,7 +264,7 @@ Show - + :/icons/edit:/icons/edit @@ -284,7 +284,7 @@ Remove - + :/icons/remove:/icons/remove @@ -332,7 +332,7 @@ removeRequestButton - + diff --git a/src/qt/forms/rpcconsole.ui b/src/qt/forms/rpcconsole.ui index 089b9de898e9..e5144c35503e 100644 --- a/src/qt/forms/rpcconsole.ui +++ b/src/qt/forms/rpcconsole.ui @@ -185,7 +185,7 @@ - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. + Open the BTX debug log file from the current data directory. This can take a few seconds for large log files. &Open @@ -414,7 +414,7 @@ - + :/icons/remove:/icons/remove @@ -1334,7 +1334,7 @@ - + diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index e89957058d42..498de493182f 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -904,7 +904,7 @@ - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for btx transactions than the network can process. @@ -917,7 +917,7 @@ true - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for btx transactions than the network can process. (read the tooltip) @@ -1258,7 +1258,7 @@ S&end - + :/icons/send:/icons/send @@ -1284,7 +1284,7 @@ Clear &All - + :/icons/remove:/icons/remove @@ -1301,7 +1301,7 @@ Add &Recipient - + :/icons/add:/icons/add @@ -1405,7 +1405,7 @@ - + diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index a6d0a8cf242e..0c105256509d 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -51,7 +51,7 @@ - The Dash address to send the payment to + The BTX address to send the payment to @@ -64,7 +64,7 @@ - + :/icons/address-book:/icons/address-book @@ -81,7 +81,7 @@ - + :/icons/editpaste:/icons/editpaste @@ -98,7 +98,7 @@ - + :/icons/remove:/icons/remove @@ -154,7 +154,7 @@ - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. + A message that was attached to the btx: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the BTX network. Qt::PlainText @@ -622,7 +622,7 @@ - + :/icons/remove:/icons/remove @@ -1158,7 +1158,7 @@ - + :/icons/remove:/icons/remove @@ -1230,7 +1230,7 @@ deleteButton_s - + diff --git a/src/qt/forms/signverifymessagedialog.ui b/src/qt/forms/signverifymessagedialog.ui index 66d7c5b111df..f3aa9b227076 100644 --- a/src/qt/forms/signverifymessagedialog.ui +++ b/src/qt/forms/signverifymessagedialog.ui @@ -48,7 +48,7 @@ - The Dash address to sign the message with + The BTX address to sign the message with @@ -61,7 +61,7 @@ - + :/icons/address-book:/icons/address-book @@ -81,7 +81,7 @@ - + :/icons/editpaste:/icons/editpaste @@ -137,7 +137,7 @@ - + :/icons/editcopy:/icons/editcopy @@ -152,13 +152,13 @@ - Sign the message to prove you own this Dash address + Sign the message to prove you own this BTX address Sign &Message - + :/icons/edit:/icons/edit @@ -175,7 +175,7 @@ Clear &All - + :/icons/remove:/icons/remove @@ -258,7 +258,7 @@ - The Dash address the message was signed with + The BTX address the message was signed with @@ -271,7 +271,7 @@ - + :/icons/address-book:/icons/address-book @@ -295,13 +295,13 @@ - Verify the message to ensure it was signed with the specified Dash address + Verify the message to ensure it was signed with the specified BTX address Verify &Message - + :/icons/transaction_0:/icons/transaction_0 @@ -318,7 +318,7 @@ Clear &All - + :/icons/remove:/icons/remove @@ -384,7 +384,7 @@ - + diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index 74d5f39b011c..1432e3fd0c25 100644 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -45,9 +45,9 @@ static const int MAX_URI_LENGTH = 255; /* Number of frames in spinner animation */ #define SPINNER_FRAMES 35 -#define QAPP_ORG_NAME "Dash" -#define QAPP_ORG_DOMAIN "dashpay.io" -#define QAPP_APP_NAME_DEFAULT "Dash-Qt" -#define QAPP_APP_NAME_TESTNET "Dash-Qt-testnet" +#define QAPP_ORG_NAME "BTX" +#define QAPP_ORG_DOMAIN "btxpay.io" +#define QAPP_APP_NAME_DEFAULT "BTX-Qt" +#define QAPP_APP_NAME_TESTNET "BTX-Qt-testnet" #endif // BITCOIN_QT_GUICONSTANTS_H diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 6f495230b65d..7e0395d8900d 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -107,7 +107,7 @@ void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent) #if QT_VERSION >= 0x040700 // We don't want translators to use own addresses in translations // and this is the only place, where this address is supplied. - widget->setPlaceholderText(QObject::tr("Enter a Dash address (e.g. %1)").arg("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); + widget->setPlaceholderText(QObject::tr("Enter a BTX address (e.g. %1)").arg("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); #endif widget->setValidator(new BitcoinAddressEntryValidator(parent)); widget->setCheckValidator(new BitcoinAddressCheckValidator(parent)); @@ -124,8 +124,8 @@ void setupAmountWidget(QLineEdit *widget, QWidget *parent) bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out) { - // return if URI is not valid or is no dash: URI - if(!uri.isValid() || uri.scheme() != QString("dash")) + // return if URI is not valid or is no btx: URI + if(!uri.isValid() || uri.scheme() != QString("btx")) return false; SendCoinsRecipient rv; @@ -185,13 +185,13 @@ bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out) bool parseBitcoinURI(QString uri, SendCoinsRecipient *out) { - // Convert dash:// to dash: + // Convert btx:// to btx: // - // Cannot handle this later, because dash:// will cause Qt to see the part after // as host, + // Cannot handle this later, because btx:// will cause Qt to see the part after // as host, // which will lower-case it (and thus invalidate the address). - if(uri.startsWith("dash://", Qt::CaseInsensitive)) + if(uri.startsWith("btx://", Qt::CaseInsensitive)) { - uri.replace(0, 7, "dash:"); + uri.replace(0, 7, "btx:"); } QUrl uriInstance(uri); return parseBitcoinURI(uriInstance, out); @@ -199,7 +199,7 @@ bool parseBitcoinURI(QString uri, SendCoinsRecipient *out) QString formatBitcoinURI(const SendCoinsRecipient &info) { - QString ret = QString("dash:%1").arg(info.address); + QString ret = QString("btx:%1").arg(info.address); int paramCount = 0; if (info.amount) @@ -392,7 +392,7 @@ void openConfigfile() { boost::filesystem::path pathConfig = GetConfigFile(); - /* Open dash.conf with the associated application */ + /* Open btx.conf with the associated application */ if (boost::filesystem::exists(pathConfig)) QDesktopServices::openUrl(QUrl::fromLocalFile(boostPathToQString(pathConfig))); } @@ -590,12 +590,12 @@ TableViewLastColumnResizingFixer::TableViewLastColumnResizingFixer(QTableView* t #ifdef WIN32 boost::filesystem::path static StartupShortcutPath() { - return GetSpecialFolderPath(CSIDL_STARTUP) / "Dash.lnk"; + return GetSpecialFolderPath(CSIDL_STARTUP) / "BTX.lnk"; } bool GetStartOnSystemStartup() { - // check for Dash.lnk + // check for BTX.lnk return boost::filesystem::exists(StartupShortcutPath()); } @@ -672,7 +672,7 @@ boost::filesystem::path static GetAutostartDir() boost::filesystem::path static GetAutostartFilePath() { - return GetAutostartDir() / "dash.desktop"; + return GetAutostartDir() / "btx.desktop"; } bool GetStartOnSystemStartup() @@ -710,10 +710,10 @@ bool SetStartOnSystemStartup(bool fAutoStart) boost::filesystem::ofstream optionFile(GetAutostartFilePath(), std::ios_base::out|std::ios_base::trunc); if (!optionFile.good()) return false; - // Write a dash.desktop file to the autostart directory: + // Write a btx.desktop file to the autostart directory: optionFile << "[Desktop Entry]\n"; optionFile << "Type=Application\n"; - optionFile << "Name=Dash\n"; + optionFile << "Name=BTX\n"; optionFile << "Exec=" << pszExePath << " -min\n"; optionFile << "Terminal=false\n"; optionFile << "Hidden=false\n"; @@ -732,7 +732,7 @@ bool SetStartOnSystemStartup(bool fAutoStart) LSSharedFileListItemRef findStartupItemInList(LSSharedFileListRef list, CFURLRef findUrl); LSSharedFileListItemRef findStartupItemInList(LSSharedFileListRef list, CFURLRef findUrl) { - // loop through the list of startup items and try to find the dash app + // loop through the list of startup items and try to find the btx app CFArrayRef listSnapshot = LSSharedFileListCopySnapshot(list, NULL); for(int i = 0; i < CFArrayGetCount(listSnapshot); i++) { LSSharedFileListItemRef item = (LSSharedFileListItemRef)CFArrayGetValueAtIndex(listSnapshot, i); @@ -766,7 +766,7 @@ bool SetStartOnSystemStartup(bool fAutoStart) LSSharedFileListItemRef foundItem = findStartupItemInList(loginItems, bitcoinAppUrl); if(fAutoStart && !foundItem) { - // add dash app to startup item list + // add btx app to startup item list LSSharedFileListInsertItemURL(loginItems, kLSSharedFileListItemBeforeFirst, NULL, NULL, bitcoinAppUrl, NULL, NULL); } else if(!fAutoStart && foundItem) { diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 4dd6ca2f6c5a..d3b98aea42a7 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -29,7 +29,7 @@ class QUrl; class QWidget; QT_END_NAMESPACE -/** Utility functions used by the Dash Qt UI. +/** Utility functions used by the BTX Qt UI. */ namespace GUIUtil { @@ -37,14 +37,14 @@ namespace GUIUtil QString dateTimeStr(const QDateTime &datetime); QString dateTimeStr(qint64 nTime); - // Render Dash addresses in monospace font + // Render BTX addresses in monospace font QFont bitcoinAddressFont(); // Set up widgets for address and amounts void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent); void setupAmountWidget(QLineEdit *widget, QWidget *parent); - // Parse "dash:" URI into recipient object, return true on successful parsing + // Parse "btx:" URI into recipient object, return true on successful parsing bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out); bool parseBitcoinURI(QString uri, SendCoinsRecipient *out); QString formatBitcoinURI(const SendCoinsRecipient &info); @@ -106,7 +106,7 @@ namespace GUIUtil // Open debug.log void openDebugLogfile(); - // Open dash.conf + // Open btx.conf void openConfigfile(); // Browse backup folder diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index b31091ceb575..43d407b2dbdc 100644 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -182,7 +182,7 @@ void Intro::pickDataDirectory() TryCreateDirectory(GUIUtil::qstringToBoostPath(dataDir)); break; } catch(fs::filesystem_error &e) { - QMessageBox::critical(0, tr("Dash Core"), + QMessageBox::critical(0, tr("BTX Core"), tr("Error: Specified data directory \"%1\" cannot be created.").arg(dataDir)); /* fall through, back to choosing screen */ } @@ -191,8 +191,8 @@ void Intro::pickDataDirectory() settings.setValue("strDataDir", dataDir); } /* Only override -datadir if different from the default, to make it possible to - * override -datadir in the dash.conf file in the default data directory - * (to be consistent with dashd behavior) + * override -datadir in the btx.conf file in the default data directory + * (to be consistent with btxd behavior) */ if(dataDir != getDefaultDataDirectory()) SoftSetArg("-datadir", GUIUtil::qstringToBoostPath(dataDir).string()); // use OS locale for path setting diff --git a/src/qt/locale/dash_bg.ts b/src/qt/locale/dash_bg.ts deleted file mode 100644 index c9b6fcf5efe9..000000000000 --- a/src/qt/locale/dash_bg.ts +++ /dev/null @@ -1,4530 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Десен бутон за да редактирате адрес или наименование - - - Create a new address - Създаване на нов адрес - - - &New - &Нов - - - Copy the currently selected address to the system clipboard - Копиране на избрания адрес в системния клипборд - - - &Copy - &Копирай - - - Delete the currently selected address from the list - Изтрийте избрания адрес от списъка - - - &Delete - &Изтриване - - - Export the data in the current tab to a file - Запишете данните от текущия раздел във файл - - - &Export - &Експортиране - - - C&lose - Затвори - - - Choose the address to send coins to - Изберете адрес, на който ще изпращате монети - - - Choose the address to receive coins with - Изберете адрес, на който ще получавате монети - - - C&hoose - Избери - - - Sending addresses - Адреси за изпращане - - - Receiving addresses - Адреси за получаване - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Това са вашите Dash адреси за изпращане на плащания. Преди изпращане винаги проверявайте количеството и адреса за получаване на монетите. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Това са вашите Dash адреси за получаване на плащания. Препоръчително е да използвате нов адрес за всяка нова транзакция. - - - &Copy Address - &Копирай адрес - - - Copy &Label - Копирай &наименование - - - &Edit - &Редактирай - - - Export Address List - Експортиране на списъка с адреси - - - Comma separated file (*.csv) - CSV файл (*.csv) - - - Exporting Failed - Грешка при експортирането - - - There was an error trying to save the address list to %1. Please try again. - Възникна грешка при опита за запазване на списъка с адресите към %1. - - - - AddressTableModel - - Label - Наименование - - - Address - Адрес - - - (no label) - (без наименование) - - - - AskPassphraseDialog - - Passphrase Dialog - Поле за парола - - - Enter passphrase - Въведете текущата парола - - - New passphrase - Нова парола - - - Repeat new passphrase - Въведете новата парола повторно - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Служи да изключи изпращането на средства, когато акаунта на Операционната система е компрометиран. Не предоставя реална сигурност. - - - For anonymization only - Само за анонимизиране - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Въведете нова парола за портфейла.<br/>Моля използвайте <b>поне 10 случайни символа</b> или <b>8, или повече думи</b>. - - - Encrypt wallet - Шифриране на портфейла - - - This operation needs your wallet passphrase to unlock the wallet. - Тази операция изисква Вашата парола за отключване на портфейла. - - - Unlock wallet - Отключване на портфейла - - - This operation needs your wallet passphrase to decrypt the wallet. - Тази операция изисква Вашата парола за дешифриране на портфейла. - - - Decrypt wallet - Дешифриране на портфейла - - - Change passphrase - Смяна на паролата - - - Enter the old and new passphrase to the wallet. - Въведете текущата и новата парола за портфейла. - - - Confirm wallet encryption - Потвърдете на шифрирането на портфейла - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Внимание: Ако шифрирате вашия портфейл и загубите паролата си, <b>ЩЕ ЗАГУБИТЕ ВСИЧКИ DASH МОНЕТИ!</b>! - - - Are you sure you wish to encrypt your wallet? - Наистина ли желаете да шифрирате портфейла си? - - - Wallet encrypted - Портфейлът е шифриран - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash ще се затвори, за да завърши процеса по шифриране. Запомнете, че шифрирането на вашия портфейл не може напълно да ви предпази от кражба на монетите чрез зловреден софтуер инфектирал компютъра ви. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ВАЖНО: Всички стари запазвания, които сте направили на Вашият портфейл трябва да замените с запазване на новополучения, шифриран портфейл. От съображения за сигурност, предишните запазвания на нешифрирани портфейли ще станат неизползваеми веднага, щом започнете да използвате новият, шифриран портфейл. - - - Wallet encryption failed - Шифрирането беше неуспешно - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Шифрирането на портфейла беше неуспешно, поради софтуерен проблем. Портфейлът не е шифриран. - - - The supplied passphrases do not match. - Паролите не съвпадат - - - Wallet unlock failed - Неуспешно отключване на портфейла - - - The passphrase entered for the wallet decryption was incorrect. - Паролата въведена за дешифриране на портфейла е грешна. - - - Wallet decryption failed - Дешифрирането на портфейла беше неуспешно - - - Wallet passphrase was successfully changed. - Паролата на портфейла беше променена успешно. - - - Warning: The Caps Lock key is on! - Внимание: Caps Lock (главни букви) е включен. - - - - BitcoinGUI - - Dash Core - Dash Ядро - - - Wallet - Портфейл - - - Node - Възел - - - &Overview - &Баланс - - - Show general overview of wallet - Обобщена информация за портфейла - - - &Send - &Изпращане - - - Send coins to a Dash address - Изпращане на монети към Dash адрес - - - &Receive - &Получаване - - - Request payments (generates QR codes and dash: URIs) - Заявка за плащане (генерира QR кодове и Dash: URI) - - - &Transactions - &Транзакции - - - Browse transaction history - История на транзакциите - - - E&xit - Из&ход - - - Quit application - Изход от приложението - - - &About Dash Core - &За Dash ядрото - - - Show information about Dash Core - Покаци информация за Dash Core - - - About &Qt - За &Qt - - - Show information about Qt - Покажи информация за Qt - - - &Options... - &Опции... - - - Modify configuration options for Dash - Промяна на опции за конфигуриране на Dash - - - &Show / Hide - &Показване / Скриване - - - Show or hide the main Window - Показване и скриване на основния прозорец - - - &Encrypt Wallet... - &Шифриране на портфейла... - - - Encrypt the private keys that belong to your wallet - Криптирай частните ключове принадлежащи към твоя портфейл - - - &Backup Wallet... - &Запазване на портфейла... - - - Backup wallet to another location - Запазване на портфейла на друго място - - - &Change Passphrase... - &Смяна на паролата... - - - Change the passphrase used for wallet encryption - Променя паролата за криптиране на портфейла - - - &Unlock Wallet... - &Отключи Портфейл... - - - Unlock wallet - Отключване на портфейла - - - &Lock Wallet - &Заключи Портфейл - - - Sign &message... - Подписване на &съобщение... - - - Sign messages with your Dash addresses to prove you own them - Подпиши съобщения с твоите Dash адреси за да докажеш че ги притежаваш - - - &Verify message... - &Проверка на съобщение... - - - Verify messages to ensure they were signed with specified Dash addresses - Проверете съобщенията, за да сте сигурни че са подписани с определен Dash адрес - - - &Information - Данни - - - Show diagnostic information - Покажи диагностична информация - - - &Debug console - &Конзола за отстраняване на грешки - - - Open debugging console - Отваряне конзола за отстраняване на грешки - - - &Network Monitor - &Наблюдение на мрежата - - - Show network monitor - Покажи наблюдение на мрежата - - - &Peers list - &Списък с пиъри - - - Show peers info - Покажи информация за пиърите - - - Wallet &Repair - Портфейл &Поправяне - - - Show wallet repair options - Покажи опции за възстановяване на портфейла - - - Open &Configuration File - Отвори &Конфигурационен файл - - - Open configuration file - Отвори конфигурационния файл - - - Show Automatic &Backups - Покажи автоматичните &Резервни копия - - - Show automatically created wallet backups - Покажи автоматично направените резервни копия на портфейла - - - &Sending addresses... - &Адреси за изпращане... - - - Show the list of used sending addresses and labels - Покажи списъкът от използваните адреси за изпращане и наименования - - - &Receiving addresses... - &Адреси за получаване - - - Show the list of used receiving addresses and labels - Покажи списъкът от използвани адреси за получаване и наименования - - - Open &URI... - Отвори &URI... - - - Open a dash: URI or payment request - Отвори Dash: URI или заявка за плащане - - - &Command-line options - &Опции на командния ред - - - Dash Core client - Dash Core клиент - - - Processed %n blocks of transaction history. - Обработени %n блока от историята на транзакциите.Обработени %n блока от историята на транзакциите. - - - Synchronizing additional data: %p% - Синхронизиране на допълнителни данни: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Покажи съобщението за помощ на Dash ядрото за да получиш списък на възможните опции за командния ред - - - &File - &Файл - - - &Settings - &Настройки - - - &Tools - &Инструменти - - - &Help - &Помощ - - - Tabs toolbar - Лента с инструменти - - - %n active connection(s) to Dash network - %n активни връзки към Dash мрежата%n активни връзки към Dash мрежата - - - Synchronizing with network... - Синхронизиране с мрежата... - - - Importing blocks from disk... - Въвеждат се блокове от диска... - - - Reindexing blocks on disk... - Преиндексиране на блокове на диска... - - - No block source available... - Няма източник на блокове... - - - Up to date - Синхронизиран - - - %n hour(s) - %n часа%n часа - - - %n day(s) - %n дни%n дни - - - %n week(s) - %n седмици%n седмици - - - %1 and %2 - %1 и %2 - - - %n year(s) - %n години%n години - - - %1 behind - %1 назад - - - Catching up... - Зарежда блокове... - - - Last received block was generated %1 ago. - Последният получен блок беше генериран преди %1. - - - Transactions after this will not yet be visible. - Транзакции след това, все още няма да се виждат. - - - Error - Грешка - - - Warning - Предупреждение - - - Information - Информация - - - Sent transaction - Изходяща транзакция - - - Incoming transaction - Входяща транзакция - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Дата: %1 -Сума: %2 -Вид: %3 -Адрес: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Портфейлът е <b>криптиран</b> и в момента <b>отключен</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Портфейлът е <b>шифриран</b> и в момента <b>отключен</b> само за анонимизиране - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Портфейлът е <b>криптиран</b> и в момента <b>заключен</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Общо: %1 (DS съвместими: %2 / Позволени: %3) - - - Network Alert - Предупреждение от мрежата - - - - CoinControlDialog - - Quantity: - Количество: - - - Bytes: - Байтове: - - - Amount: - Сума: - - - Priority: - Приоритет: - - - Fee: - Такса: - - - Coin Selection - Избор на монети - - - Dust: - Незначителен остатък: - - - After Fee: - След таксата: - - - Change: - Ресто: - - - (un)select all - (де)маркирай всичко - - - Tree mode - Режим дърво - - - List mode - Режим списък - - - (1 locked) - (1 заключен) - - - Amount - Сума - - - Received with label - Получени с наименование - - - Received with address - Получени с адрес - - - DS Rounds - DS цикли - - - Date - Дата - - - Confirmations - Потвърждения - - - Confirmed - Потвърдени - - - Priority - Приоритет - - - Copy address - Копирай адрес - - - Copy label - Копирай наименование - - - Copy amount - Копирай сума - - - Copy transaction ID - Копирай транзакция с ID - - - Lock unspent - Заключи неизхарченото - - - Unlock unspent - Отключи неизхарченото - - - Copy quantity - Копирай количество - - - Copy fee - Копирай таксата - - - Copy after fee - Копирай след таксата - - - Copy bytes - Копирай байтовете - - - Copy priority - Копирай приоритета - - - Copy dust - Копирай остатъка - - - Copy change - Копирай рестото - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Избрани са не-анонимизирани наличности. <b>Darksend ще бъде изключен.</b><br><br>Ако искате да използвате Darksend, моля отменете избора на всички не-анонимизирани наличности и след това изберете чекбокса на Darksend отново. - - - highest - най-висок - - - higher - по-висок - - - high - висок - - - medium-high - средно-висок - - - Can vary +/- %1 duff(s) per input. - Може да варира +/- %1 duff(s) за вход. - - - n/a - няма такъв - - - medium - среден - - - low-medium - средно-нисък - - - low - нисък - - - lower - по-нисък - - - lowest - най-нисък - - - (%1 locked) - (%1 заключен) - - - none - липсва - - - yes - да - - - no - не - - - This label turns red, if the transaction size is greater than 1000 bytes. - Това наименование става червено, ако размерът на транзакцията е по-голям от 1000 байта. - - - This means a fee of at least %1 per kB is required. - Това означава, че е нужна такса поне %1 за кБ. - - - Can vary +/- 1 byte per input. - Може да варира +/- 1 байта за вход. - - - Transactions with higher priority are more likely to get included into a block. - Транзакции с по-висок приоритет е по-вероятно да бъдат включени в блок. - - - This label turns red, if the priority is smaller than "medium". - Това наименование става червено, ако приоритетът е по-малък от "среден". - - - This label turns red, if any recipient receives an amount smaller than %1. - Това наименование става червено, ако произволен получател получи сума по-малка от %1. - - - (no label) - (без наименование) - - - change from %1 (%2) - ресто от %1 (%2) - - - (change) - (ресто) - - - - DarksendConfig - - Configure Darksend - Настройка на Darksend - - - Basic Privacy - Нормална сигурност - - - High Privacy - Висока сигурност - - - Maximum Privacy - Максимална сигурност - - - Please select a privacy level. - Моля изберете ниво на сигурност. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Използване на 2 различни masternodes за смесване на средства до 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Използване на 8 различни masternodes за смесване на средства до 1000 DASH - - - Use 16 separate masternodes - Използване на 16 различни masternodes за смесване на средства до 1000 DASH - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Това е най-бързият вариант, анонимизиране на 1000 DASH ще ви струва около 0.025 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Това е средно бърз вариант, анонимизиране на 1000 DASH ще ви струва около 0.05 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH за всеки 1000 DASH които анонимизирате. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Това е най-бавния и най-сигурен начин. Използването на максимална анонимност ще ви коства - - - Darksend Configuration - Настройка на Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend беше успешно настроен на режим основен (%1 и 2 цикъла). Можете да промените тази настройка по всяко време, като отворите конфигурационния прозорец на Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend беше успешно настроен на режим висок (%1 и 8 цикъла). Можете да промените тази настройка по всяко време, като отворите конфигурационния прозорец на Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend беше успешно настроен на режим максимум (%1 и 16 цикъла). Можете да промените тази настройка по всяко време, като отворите конфигурационния прозорец на Dash. - - - - EditAddressDialog - - Edit Address - Редактиране на адрес - - - &Label - &Наименование - - - The label associated with this address list entry - Наименованието се свързва с този запис от списъка с адреси - - - &Address - &Адрес - - - The address associated with this address list entry. This can only be modified for sending addresses. - Адресът свързан с този запис от списък с адреси. Може да бъде променен само за адреси за изпращане. - - - New receiving address - Нов адрес за получаване - - - New sending address - Нов адрес за изпращане - - - Edit receiving address - Редактиране на адрес за получаване - - - Edit sending address - Редактиране на адрес за изпращане - - - The entered address "%1" is not a valid Dash address. - Въведеният адрес "%1" не е валиден Dash адрес. - - - The entered address "%1" is already in the address book. - Вече има адрес "%1" в списъка с адреси. - - - Could not unlock wallet. - Отключването на портфейла беше неуспешно. - - - New key generation failed. - Създаването на ключ беше неуспешно. - - - - FreespaceChecker - - A new data directory will be created. - Ще се създаде нова папка за данни. - - - name - име - - - Directory already exists. Add %1 if you intend to create a new directory here. - Има такава папка. Добавете %1 ако искате да създадете нова папка тук. - - - Path already exists, and is not a directory. - Пътят вече съществува и не е папка. - - - Cannot create data directory here. - Не може да създадете папка за данни тук. - - - - HelpMessageDialog - - Dash Core - Dash ядро - - - version - версия - - - (%1-bit) - (%1-битов) - - - About Dash Core - За Dash ядрото - - - Command-line options - Опции за командния ред - - - Usage: - Използване: - - - command-line options - опции на командния ред - - - UI options - UI Опции - - - Choose data directory on startup (default: 0) - Избери папка с данни при стартиране (по подразбиране: 0) - - - Set language, for example "de_DE" (default: system locale) - Задаване на език, например "de_DE" (по подразбиране: какъвто е от системата) - - - Start minimized - Стартирай минимизиран - - - Set SSL root certificates for payment request (default: -system-) - Задай SSL основен сертификат при искане за плащане (по подразбиране: -system-) - - - Show splash screen on startup (default: 1) - Покажи начален екран при стартиране(по подразбиране: 1) - - - - Intro - - Welcome - Добре дошли - - - Welcome to Dash Core. - Добре дошли в ядрото на Dash. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Тъй като програмата се стартира за първи път вие може да изберете къде Dash да съхранява своята информация. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash ще свали и съхрани копие на Dash регистъра на блокове. Информацията ще заеме поне %1ГБ пространство и ще нараства с времето. В тази папка ще бъде съхранен и портфейла. - - - Use the default data directory - Използвайте директория за данните по подразбиране - - - Use a custom data directory: - Определете папка по ваш избор: - - - Dash Core - Dash ядро - - - Error: Specified data directory "%1" cannot be created. - Грешка: Посочената директория с данни "%1" не може да бъде създадена. - - - Error - Грешка - - - %1 GB of free space available - %1 GB от свободното пространство - - - (of %1 GB needed) - (от %1 GB са необходими) - - - - OpenURIDialog - - Open URI - Отвори URI - - - Open payment request from URI or file - Отвори заявка за плащане от URI или файл - - - URI: - URI: - - - Select payment request file - Избор на файл за заявка за плащане - - - Select payment request file to open - Изберете за отваряне файл с заявка за плащане - - - - OptionsDialog - - Options - Опции - - - &Main - &Основни - - - Automatically start Dash after logging in to the system. - Автоматично стартиране на Dash след влизане в системата. - - - &Start Dash on system login - &Стартирне на Dash при влизане в системата. - - - Size of &database cache - Размер на &кеша на базата данни - - - MB - МБ - - - Number of script &verification threads - Брой нишки на &скриптовете за проверка - - - (0 = auto, <0 = leave that many cores free) - (0 = автоматично, <0 = оставете толкова неизползвани ядра) - - - Darksend rounds to use - Използвани Dash цикли - - - This amount acts as a threshold to turn off Darksend once it's reached. - Тази сума действа като праг, за да се изключи Darksend, когато той е достигнат. - - - Amount of Dash to keep anonymized - Постоянно поддържано количество анонимни Dash монети - - - W&allet - П&ортфейл - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Ако деактивирате харченето на непотвърдено ресто, рестото от транзакция<br/> няма да може да се използва преди да бъде получено поне едно потвърждение. <br/>Това се отразява и на начина на изчисление на баланса ви. - - - Accept connections from outside - риемай връзки отвън - - - Allow incoming connections - Разрешени входящи връзки - - - Connect to the Dash network through a SOCKS5 proxy. - Свързване с мрежата на Dash чрез SOCKS5 прокси. - - - &Connect through SOCKS5 proxy (default proxy): - &Свързване през SOCKS5 прокси (прокси по подразбиране): - - - Expert - Експерт - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Тази настройка определя броя на отделните masternodes, чрез които ще се извършва анонимизирането.<br/>Повече цикли на анонимизиране дава по-висока степен на сигурност, но и по-високи такси. - - - Whether to show coin control features or not. - Да покаже или скрие възможностите за контрол на монетата. - - - Enable coin &control features - Активиране &контролните функции на монетата - - - &Spend unconfirmed change - &Изхарчете непотвърденото ресто - - - &Network - &Мрежа - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматично отваря порта за Dash клиента в маршрутизатора. Това работи само когато вашият маршрутизатор поддържа UPnP и той е разрешен. - - - Map port using &UPnP - Отваряне на входящия порт чрез &UPnP - - - Proxy &IP: - Прокси & IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP адрес на прокси (напр. за IPv4: 127.0.0.1 / за IPv6: ::1) - - - &Port: - &Порт: - - - Port of the proxy (e.g. 9050) - Порт на прокси сървъра (пр. 9050) - - - &Window - &Прозорец - - - Show only a tray icon after minimizing the window. - След минимизиране ще е видима само иконата в системния трей. - - - &Minimize to the tray instead of the taskbar - &Минимизиране в системния трей - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - При затваряне на прозореца приложението остава минимизирано. Ако изберете тази опция, приложението може да се затвори само чрез Изход в менюто. - - - M&inimize on close - М&инимизиране при затваряне - - - &Display - &Интерфейс - - - User Interface &language: - Език на потребителски &изглед : - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Тук можете да промените езика на потребителския изглед. Настройката ще влезе в сила след рестартиране на Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Липсва език или превода е непълен? Можете да помогнете с превода тук: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Изглед на потребителския интерфейс: - - - &Unit to show amounts in: - Мерна единица за показваните суми: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Изберете единиците, показвани по подразбиране в интерфейса. - - - Decimal digits - Десетични цифри - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL адреси на трети страни (например block Explorer), които се появяват в раздела с транзакции, като елементи от контекстното меню. %s в URL е заменен с хеша на транзакцията. Отделните URL адреси са разделени с вертикална линия |. - - - Third party transaction URLs - URL транзакции на трети страни - - - Active command-line options that override above options: - Активна опция от командния ред, която замества горните опции: - - - Reset all client options to default. - Изчисти всички опции до фабричните. - - - &Reset Options - &Изчисти настройките - - - &OK - &ОК - - - &Cancel - &Отказ - - - default - по подразбиране - - - none - няма - - - Confirm options reset - Потвърди изчистване на настройките - - - Client restart required to activate changes. - За да влязат в сила промените е необходим рестарт на клиента. - - - Client will be shutdown, do you want to proceed? - Клиентът ще бъде изключен, искате ли да продължите? - - - This change would require a client restart. - Тази промяна ще изисква рестартиране на клиента. - - - The supplied proxy address is invalid. - Текущият прокси адрес е невалиден. - - - - OverviewPage - - Form - Формуляр - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Показаната информация може да е остаряла. Вашият портфейл се синхронизира автоматично след изграждането на връзка с Dash мрежата, но този процес все още не е завършен. - - - Available: - Налично: - - - Your current spendable balance - Текущият ви баланс за харчене - - - Pending: - Изчакващо: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Общо транзакции, които предстоят да бъдат потвърдени, и все още не се включват към баланса за харчене - - - Immature: - Неотлежал: - - - Mined balance that has not yet matured - Изкопан баланс, който все още не е отлежал - - - Balances - Баланс - - - Unconfirmed transactions to watch-only addresses - Непотвърдени транзакции към наблюдаваните адреси - - - Mined balance in watch-only addresses that has not yet matured - Изкопан баланс в наблюдаваните адреси, който все още не е отлежал - - - Total: - Общо: - - - Your current total balance - Текущият ви общ баланс - - - Current total balance in watch-only addresses - настоящ общ баланс на наблюдаваните адреси - - - Watch-only: - Наблюдавани: - - - Your current balance in watch-only addresses - Вашият настоящ общ баланс на наблюдаваните адреси - - - Spendable: - Изразходени: - - - Status: - Статус: - - - Enabled/Disabled - Включено/Изключено - - - Completion: - Завършено: - - - Darksend Balance: - Darksend баланс: - - - Amount and Rounds: - Количество и цикли: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Цикъла - - - Submitted Denom: - Изпратени за Denom: - - - n/a - Няма такова - - - Darksend - Darksend - - - Recent transactions - Последни транзакции - - - Start/Stop Mixing - Пусни/Спри Смесване - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Деноминираните суми, които сте изпратили към Masternode. За смесване, другите потребители трябва да изпратят абсолютно същите деноминирани суми. - - - (Last Message) - (Последно съобщение) - - - Try to manually submit a Darksend request. - Опитай ръчно изпращане на Darksend заявка. - - - Try Mix - Опитай смесване - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Изчистване на текущия статус на Darksend (може да прекъсне Darksend по време на миксиране, което може да ви коства пари!) - - - Reset - Изчистване - - - out of sync - несинхронизиран - - - Disabled - Неактивно - - - Start Darksend Mixing - Пусни Darksend смесването - - - Stop Darksend Mixing - Спри Darksend смесването - - - No inputs detected - Не са открити монети - - - %n Rounds - %n Цикли%n Цикли - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Няма достатъчно съвместими постъпления за анонимизиране <span style='color:red;'>%1</span>,<br/>ще бъдат анонимизирани <span style='color:red;'>%2</span> вместо - - - Overall progress - Общ прогрес - - - Denominated - Деноминирани - - - Anonymized - Анонимизирани - - - Denominated inputs have %5 of %n rounds on average - Деноминирани входове имат %5 от %n цикъла средноДеноминирани входове имат %5 от %n цикъла средно - - - Found enough compatible inputs to anonymize %1 - Намерени са достатъчно съвместими постъпления за анонимизиране %1 - - - Mixed - Смесени - - - Enabled - Активирано - - - Last Darksend message: - - Последно Darksend съобщение: - - - - N/A - N/A - - - Darksend was successfully reset. - Darksend беше успешно нулиран. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Ако не искате да видите вътрешните Darksend такси/транзакции изберете "Най-често срещаните" като тип от раздел "Операции" . - - - Darksend requires at least %1 to use. - Darksend се нуждае от поне %1 за да започне. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Портфейлът е заключен и потребителя отказва отключване. Darksend е деактивиран. - - - - PaymentServer - - Payment request error - Грешка в заявката за плащане - - - Cannot start dash: click-to-pay handler - Не може да стартира dash: кликни за плащане на притежателя - - - URI handling - Обработка на URI - - - Payment request fetch URL is invalid: %1 - Неправилен URL на заявка за плащане: %1 - - - Payment request file handling - Обработка на файл със заявка за плащане - - - Invalid payment address %1 - Невалиден адрес за плащане %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - Грешка при анализ на URI! Това може да е следствие от неправилен Dash адрес или неправилно зададени URI параметри. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Файлът със заявката за плащане не може да се прочете! Причината за това може да бъде невалиден файл със заявка за плащане. - - - Payment request rejected - Заявката за плашане отказана - - - Payment request network doesn't match client network. - Заявка за плащане на мрежата не съвпада с клиентската мрежа. - - - Payment request has expired. - Заявката за плащане е изткла. - - - Payment request is not initialized. - Заявката за плащане не е инициализирана. - - - Unverified payment requests to custom payment scripts are unsupported. - Непотвърдените заявки за плащане към клиентски скриптове за плащане не се поддържат. - - - Requested payment amount of %1 is too small (considered dust). - Заявената сума за плащане: %1 е твърде малка (се приема за незначителен остатък) - - - Refund from %1 - Възстановяване от %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Заявка за плащане %1 е твърде голяма (%2 байта, позволени %3 bytes). - - - Payment request DoS protection - Заявката за плащане е DoS защитена - - - Error communicating with %1: %2 - Грeшка при комуникация с %1: %2 - - - Payment request cannot be parsed! - Заявката за плащане не може да бъде анализирана! - - - Bad response from server %1 - Невалиден отговор от сървъра %1 - - - Network request error - Грешка в мрежовата заявка - - - Payment acknowledged - Плащането е приетo - - - - PeerTableModel - - Address/Hostname - Адрес/Име на хост - - - User Agent - Потребителски агент - - - Ping Time - Време пинг - - - - QObject - - Amount - Сума - - - Enter a Dash address (e.g. %1) - Въведете Dash адрес (напр.%1) - - - %1 d - %1 дни - - - %1 h - %1 часа - - - %1 m - %1 минути - - - %1 s - %1 сек. - - - NETWORK - МРЕЖА - - - UNKNOWN - НЕПОЗНАТ - - - None - няма - - - N/A - Не е налично - - - %1 ms - %1 милисекунди - - - - QRImageWidget - - &Save Image... - &Запиши изображението... - - - &Copy Image - &Копирай изображението - - - Save QR Code - Запази QR Кода - - - PNG Image (*.png) - PNG Image (*.png) - - - - RPCConsole - - Tools window - Прозорец с инструменти - - - &Information - Данни - - - General - Главен - - - Name - Име - - - Client name - Име на клиента - - - N/A - N/A - - - Number of connections - Брой връзки - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Отваря файла за откриване на грешки на Dash от текущата папка. За по-големите файлове това може да отнеме няколко секунди. - - - &Open - &Отвори - - - Startup time - Време за стартиране - - - Network - Мрежа - - - Last block time - Време на последния блок - - - Debug log file - Лог-файл за откриване на грешки - - - Using OpenSSL version - Използване на OpenSSL версия - - - Build date - Дата на създаване - - - Current number of blocks - Текущ брой блокове - - - Client version - Версия на клиента - - - Using BerkeleyDB version - Използва BerkeleyDB версия - - - Block chain - Регистър на блокове - - - Number of Masternodes - Брой на Masternodes - - - &Console - &Конзола - - - Clear console - Изчисти конзолата - - - &Network Traffic - &Мрежов трафик - - - &Clear - &Изчисти - - - Totals - Общо: - - - Received - Получени - - - Sent - Изпратени - - - &Peers - &Пиъри - - - Select a peer to view detailed information. - Избери пиър за подробна информация. - - - Direction - Направление - - - Version - Версия - - - User Agent - Потребителски агент - - - Services - Услуги - - - Starting Height - Стартираща височина - - - Sync Height - Синхронизирана височина - - - Ban Score - Точки за бан - - - Connection Time - Време на връзката - - - Last Send - Последно изпратени - - - Last Receive - Последно получени - - - Bytes Sent - Изпратени байтове - - - Bytes Received - Получени байтове - - - Ping Time - Време пинг - - - &Wallet Repair - &Поправяне на портфейла - - - Salvage wallet - Възстановен портфейл - - - Rescan blockchain files - Повторно сканиране на блокчейн файловете - - - Recover transactions 1 - Възстановени транзакции 1 - - - Recover transactions 2 - Възстановени транзакции 2 - - - Upgrade wallet format - Обновен формат на портфейла - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Бутоните отдолу ще рестартират портфейла с опция от командния ред за поправка на портфейла,ще фиксира проблеми с неправилни блок-верига файлове или липсващи/остарели транзакции. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Опит да се възстановят частни ключове от повреден wallet.dat - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Повторно сканиране на регистъра от блокове за липсващи транзакции в портфейла. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Възстановява транзакции от блок веригата (запазва meta-data,напр. собственик на акаунта). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Възстановява транзакции от блок веригата(отпада meta-data). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Надгражда до последната версия на портфейла при стартиране. (Белажка: това НЕ Е самообновяване на портфейла) - - - Wallet repair options. - Опции за възстановяване на портфейла. - - - Rebuild index - Възстановяване на индекса - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Възстановява блок индекс веригата от настоящия blk000??.dat файл. - - - In: - Вход: - - - Out: - Изход: - - - Welcome to the Dash RPC console. - Добре дошли в Dash RPC (Remote Procedure Call) конзолата. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Използвайте стрелки надолу и нагореза разглеждане на историятаот команди и <b>Ctrl-L</b> за изчистване на конзолата. - - - Type <b>help</b> for an overview of available commands. - Напишете <b>help</b>, за да прегледате възможните команди. - - - %1 B - %1 Б - - - %1 KB - %1 КБ - - - %1 MB - %1 МБ - - - %1 GB - %1 ГБ - - - via %1 - чрез %1 - - - never - никога - - - Inbound - Входящи - - - Outbound - Изходящи - - - Unknown - Неизвестни - - - Fetching... - Привличане... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Повторна употреба на един от адресите за получаване.<br>При повторно използване на адреси са възможни проблеми със сигурността и личната неприкосновеност.<br>Не използвайте адреса, освен ако не ре-генерирате предишна заявка за плащане. - - - R&euse an existing receiving address (not recommended) - П&овторно използване на съществуващ адрес за получаване (не се препоръчва) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Възможност да се прикрепи съобщение към заявката за плащане, което да бъде показано при отваряне на заявката. Забележка: съобщението няма да бъде изпратено с плащането по мрежата на Dash. - - - &Message: - &Съобщение: - - - An optional label to associate with the new receiving address. - Възможност да се прикрепи наименование към новия адрес за получаване. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Възможност да се прикрепи съобщение към заявката за плащане, което да бъде показано при отваряне на заявката. <br>Забележка: съобщението няма да бъде изпратено с плащането по мрежата на Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Използвате този формуляр за заявяване на плащания. Всички полета са <b>незадължителни</b>. - - - &Label: - &Наименование: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Незадължително заявяване на сума. Оставете полето празно или нулево, за да не заявите конкретна сума. - - - &Amount: - &Сума - - - &Request payment - &Заявка за плащане - - - Clear all fields of the form. - Изчисти всички полета от формуляра. - - - Clear - Изчистване - - - Requested payments history - История на заявките за плащане - - - Show the selected request (does the same as double clicking an entry) - Покажи избраната заявка (прави същото като двойно щракане върху запис) - - - Show - Показване - - - Remove the selected entries from the list - Премахни избраните позиции от списъка - - - Remove - Премахване - - - Copy label - Копирай наименование - - - Copy message - Копиране на съобщението - - - Copy amount - Копирай сума - - - - ReceiveRequestDialog - - QR Code - QR Код - - - Copy &URI - Копирай &URI - - - Copy &Address - &Копирай адрес - - - &Save Image... - &Запиши изображението... - - - Request payment to %1 - Заявка за плащане на %1 - - - Payment information - Данни за плащането - - - URI - URI - - - Address - Адрес - - - Amount - Сума - - - Label - Наименование - - - Message - Съобщение - - - Resulting URI too long, try to reduce the text for label / message. - Получения URI е твърде дълъг, опитайте да съкратите текста на наименованието / съобщението. - - - Error encoding URI into QR Code. - Грешка при създаването на QR Code от URI. - - - - RecentRequestsTableModel - - Date - Дата - - - Label - Наименование - - - Message - Съобщение - - - Amount - Сума - - - (no label) - (няма наименование) - - - (no message) - (няма съобщение) - - - (no amount) - (липсва сума) - - - - SendCoinsDialog - - Send Coins - Изпращане на монети - - - Coin Control Features - Функции за контрол на монетата - - - Inputs... - Входове... - - - automatically selected - автоматично избрано - - - Insufficient funds! - Недостатъчно средства! - - - Quantity: - Количество: - - - Bytes: - Байтове: - - - Amount: - Сума: - - - Priority: - Приоритет: - - - medium - среден - - - Fee: - Такса: - - - Dust: - Незначителен остатък: - - - no - не - - - After Fee: - След таксата: - - - Change: - Ресто: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Ако това е активирано, но адреса за рестото е неверен или празен, рестото ще бъде изпратено към новосъздаден адрес. - - - Custom change address - Адрес за ресто по избор - - - Transaction Fee: - Такса транзакция: - - - Choose... - Избери... - - - collapse fee-settings - Показване настройки за такса - - - Minimize - Минимизиране - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Ако променената такса е 1000 duffs и транзакцията е само 250 байта, тогава "за килобайт" само плаща такса 250 duffs,,<br /> тогава"за последно" заплаща 1000 duffs. За транзакции по-големи от килобайт едновременно се заплащат от килобайт. - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Ако променената такса е 1000 duffs и транзакцията е само 250 байта, тогава "за килобайт" само плаща такса 250 duffs,<br /> тогава"за последно" заплаща 1000 duffs. За транзакции по-големи от килобайт едновременно се заплащат от килобайт. - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Разплащането само минималната такса ще продължи толкова дълго,докато транзакцията заема по-малък обем в блоковото пространство.<br /> Но имайте предвид, че транзакцията може да се окаже без първоначално потвърждение ако се появи голямо търсене на dash транзакции отколкото мрежата може да обработи. - - - per kilobyte - за килобайт - - - total at least - сбор на края - - - (read the tooltip) - (прочети пояснението) - - - Recommended: - Препоръчано: - - - Custom: - Персонализиран: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Смарт таксата не е разпозната все още.Това ще отнеме няколко блока... ) - - - Confirmation time: - Време за потвърждение: - - - normal - нормално - - - fast - бързо - - - Send as zero-fee transaction if possible - Изпрати с нулева такса за транзакция ако е възможно - - - (confirmation may take longer) - (потвърждението може да отнеме повече време) - - - Confirm the send action - Потвърдете изпращането - - - S&end - И&зпрати - - - Clear all fields of the form. - Изчисти всички полета от формуляра. - - - Clear &All - Изчисти &всичко - - - Send to multiple recipients at once - Изпращане към повече от един получател - - - Add &Recipient - Добави &получател - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Баланс: - - - Copy quantity - Копирай количеството - - - Copy amount - Копирай сумата - - - Copy fee - Копирай таксата - - - Copy after fee - Копирай след таксата - - - Copy bytes - Копирай байтовете - - - Copy priority - Копирай приоритета - - - Copy dust - Копирай остатъка - - - Copy change - Копирай рестото - - - using - използвайки - - - anonymous funds - анонимни средства - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend изисква тази сума да бъде закръглена до най-близката %1). - - - any available funds (not recommended) - всякакви налични средства (не се препоръчва) - - - and InstantX - и InstantX - - - %1 to %2 - %1 до %2 - - - Are you sure you want to send? - Наистина ли искате да изпратите? - - - are added as transaction fee - се добавя като такса за транзакция - - - Total Amount = <b>%1</b><br />= %2 - Обща сума = <b>%1</b><br />= %2 - - - Confirm send coins - Потвърди изпращането на монетите - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Такса %1 е по-голяма от %2 за kB се счита за твърде висока такса. - - - Estimated to begin confirmation within %n block(s). - Очаква се да започне потвърждение в %n блока.Очаква се да започне потвърждение в %n блока. - - - The recipient address is not valid, please recheck. - Невалиден адрес на получателя. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 of %2 показани записи)</b> - - - The amount to pay must be larger than 0. - Сумата трябва да е по-голяма от 0. - - - The amount exceeds your balance. - Сумата надвишава текущия баланс - - - The total exceeds your balance when the %1 transaction fee is included. - Общият сбор надхвърля вашия баланс, когато се добави %1 такса за операцията. - - - Duplicate address found, can only send to each address once per send operation. - Намерен е дублиран адрес, може да се изпраща само по веднъж до всеки адрес в рамките на едно изпращане. - - - Transaction creation failed! - Грешка при създаването на транзакция! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Транзакцията беше отхвърлена! Това може да се случи, ако някои от монетите в портфейла ви, вече са изразходвани, например ако се използва копие от wallet.dat и монетите са изразходвани в копието, но не са отбелязани като изразходвани тук. - - - Error: The wallet was unlocked only to anonymize coins. - Грешка: Портфейлът е отключен само за анонимизиране на монети. - - - Pay only the minimum fee of %1 - Плати само минималната такса от %1 - - - Warning: Invalid Dash address - Внимание: Невалиден Dash адрес - - - Warning: Unknown change address - Внимание: Непознат адрес за ресто - - - (no label) - (без наименование) - - - - SendCoinsEntry - - This is a normal payment. - Това е нормално плащане. - - - Pay &To: - Плати &На: - - - The Dash address to send the payment to - Dash адресът да изпрати плащането към - - - Choose previously used address - Изберете използван преди адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вмъкни от клипборда - - - Alt+P - Alt+P - - - Remove this entry - Премахване на този запис - - - &Label: - &Наименование: - - - Enter a label for this address to add it to the list of used addresses - Въведете наименование за този адрес, за да го добавите в списъка с адреси - - - A&mount: - С&ума: - - - Message: - Съобщение: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Съобщението което беше прикрепено към dash: URI ще бъде запазено с транзакцията за ваше сведение. Забележка: Това съобщение няма да бъде изпратено през Dash мрежата. - - - This is an unverified payment request. - Това е непроверена заявка за плащане. - - - Pay To: - Плащане на: - - - Memo: - Бележка: - - - This is a verified payment request. - Това е валидно искане за плащане. - - - Enter a label for this address to add it to your address book - Въведете наименование за този адрес, за да го добавите в списъка с адреси - - - - ShutdownWindow - - Dash Core is shutting down... - Dash ядрото се изключва... - - - Do not shut down the computer until this window disappears. - Не изключвайте компютърът докато не изчезне този прозорец. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Подписи - Подпиши / Провери съобщение - - - &Sign Message - &Подпиши - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Можете да подпишете съобщение като доказателство, че притежавате определен адрес. Бъдете внимателни и не подписвайте съобщения, които биха разкрили лична информация без вашето съгласие. - - - The Dash address to sign the message with - Dash адресът да подпише съобщението - - - Choose previously used address - Изберете използван преди адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вмъкни адрес от клипборда - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Въведете съобщението тук - - - Signature - Подпис - - - Copy the current signature to the system clipboard - Копиране на текущия подпис в системния клипборд - - - Sign the message to prove you own this Dash address - Подпиши съобщението за да докажеш че притежаваш този Dash адрес - - - Sign &Message - Подпиши &съобщение - - - Reset all sign message fields - Изчисти всички подписаните съобщения - - - Clear &All - &Изчисти - - - &Verify Message - &Провери съобщението - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Въведете подписания адрес, съобщението (уверете се, че сте копирали редовете, спациите, табовете и другите точно) и подпишете отдолу, за да удостоверите съобщението. Внимавайте да не вмъкнете излишни символи в подписа от това, което е в самото съобщение, за да избегнете риска от злонамерна външа намеса. - - - The Dash address the message was signed with - Dash адресът ,с който е подписано съобщението - - - Verify the message to ensure it was signed with the specified Dash address - Проверете съобщението, за да сте сигурни че е подписано с определен Dash адрес - - - Verify &Message - Провери &Съобщение - - - Reset all verify message fields - Изчисти всички проверени съобщения в полето - - - Click "Sign Message" to generate signature - Натиснете "Подписване на съобщение" за да създадете подпис - - - The entered address is invalid. - Въведеният адрес е невалиден. - - - Please check the address and try again. - Моля проверете адреса и опитайте отново. - - - The entered address does not refer to a key. - Въведеният адрес не може да се съпостави с валиден ключ. - - - Wallet unlock was cancelled. - Отключването на портфейла беше отменено. - - - Private key for the entered address is not available. - Не е наличен частен ключ за въведеният адрес. - - - Message signing failed. - Подписването на съобщение беше неуспешно. - - - Message signed. - Съобщението е подписано. - - - The signature could not be decoded. - Подписът не може да бъде декодиран. - - - Please check the signature and try again. - Проверете подписа и опитайте отново. - - - The signature did not match the message digest. - Подписът не отговаря на комбинацията от съобщение и адрес. - - - Message verification failed. - Проверката на съобщението беше неуспешна. - - - Message verified. - Съобщението е потвърдено. - - - - SplashScreen - - Dash Core - Dash Ядро - - - Version %1 - Версия %1 - - - The Bitcoin Core developers - Водещи Bitcoin разработчици - - - The Dash Core developers - Водещи Dash разработчици - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - КБ/с - - - - TransactionDesc - - Open for %n more block(s) - Отворен за още %n блокаОтворен за още %n блока - - - Open until %1 - Подлежи на промяна до %1 - - - conflicted - конфликтно - - - %1/offline (verified via instantx) - %1/офлайн(проверено през instantx) - - - %1/confirmed (verified via instantx) - %1/потвърдени (проверено от instantx) - - - %1 confirmations (verified via instantx) - %1 потвърждения (проверено от instantx) - - - %1/offline - %1/офлайн - - - %1/unconfirmed - %1/непотвърдени - - - %1 confirmations - включена в %1 блока - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/офлайн (InstantX проверка в процес - %2 of %3 подписани) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/потвърдени (InstantX проверка в процес - %2 of %3 подписани ) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 потвърждения (InstantX проверка в процес - %2 of %3 подписвания) - - - %1/offline (InstantX verification failed) - %1/офлайн (InstantX проверката е неуспешна) - - - %1/confirmed (InstantX verification failed) - %1/потвърдени (InstantX проверката е неуспешна) - - - Status - Статус - - - , has not been successfully broadcast yet - , все още не е изпратено - - - , broadcast through %n node(s) - , излъчено през %n нода, излъчено през %n нода - - - Date - Дата - - - Source - Източник - - - Generated - Издадени - - - From - От - - - unknown - неизвестен - - - To - За - - - own address - собствен адрес - - - watch-only - наблюдавани - - - label - наименование - - - Credit - Кредит - - - matures in %n more block(s) - отлежава след %n блокаотлежава след %n блока - - - not accepted - не е приет - - - Debit - Дебит - - - Total debit - Общо дебит - - - Total credit - Общо кредит - - - Transaction fee - Такса - - - Net amount - Нетна сума - - - Message - Съобщение - - - Comment - Коментар - - - Transaction ID - ID на транзакцията - - - Merchant - Търговец - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Генерираните монети трябва да отлежат %1 блока преди да могат да се използват. Когато генерирате този блок той бива излъчен в мрежата, за да се добави в регистъра на блокове. Ако добавянето в регистъра е неуспешно, състоянието му ще е "неприет" и няма да можете да използвате тези монети. Това се случва понякога, когато друг възел генерира блок по същото време с вас. - - - Debug information - Информация за грешки - - - Transaction - Транзакция - - - Inputs - Входящи - - - Amount - Сума - - - true - вярно - - - false - грешно - - - - TransactionDescDialog - - Transaction details - Транзакция - - - This pane shows a detailed description of the transaction - Описание на транзакцията - - - - TransactionTableModel - - Date - Дата - - - Type - Тип - - - Address - Адрес - - - Open for %n more block(s) - Отворен за още %n блокаОтворен за още %n блока - - - Open until %1 - Подлежи на промяна до %1 - - - Offline - Офлайн - - - Unconfirmed - Непотвърдено - - - Confirming (%1 of %2 recommended confirmations) - Потвърждаване (%1 от %2 препоръчвани потвърждения) - - - Confirmed (%1 confirmations) - Потвърдени (%1 потвърждения) - - - Conflicted - Конфликтно - - - Immature (%1 confirmations, will be available after %2) - Неотлежал (%1 потвърждения, ще бъдат на разположение след %2) - - - This block was not received by any other nodes and will probably not be accepted! - Блокът не е получен от останалите участници и най-вероятно няма да бъде одобрен. - - - Generated but not accepted - Генерирана, но отхвърлена - - - Received with - Получени с - - - Received from - Получен от - - - Received via Darksend - Получени с Darksend - - - Sent to - Изпратени на - - - Payment to yourself - Плащане към себе си - - - Mined - Емитирани - - - Darksend Denominate - Darksend деноминация - - - Darksend Collateral Payment - Darksend обезпечава плащането - - - Darksend Make Collateral Inputs - Darksend направи обезпечение на постъпленията - - - Darksend Create Denominations - Darksend направени деноминации - - - Darksent - Darksent - - - watch-only - наблюдавани - - - (n/a) - (n/a) - - - Transaction status. Hover over this field to show number of confirmations. - Състояние на транзакцията. Задръжте върху това поле за да видите броя потвърждения. - - - Date and time that the transaction was received. - Дата и час на получаване на транзакцията. - - - Type of transaction. - Вид транзакция. - - - Whether or not a watch-only address is involved in this transaction. - Дали има или не наблюдаван/watch-only адрес участващ в тази транзакция. - - - Destination address of transaction. - Адрес на получател на транзакцията. - - - Amount removed from or added to balance. - Сума извадена или добавена към баланса. - - - - TransactionView - - All - Всички - - - Today - Днес - - - This week - Тази седмица - - - This month - Този месец - - - Last month - Предния месец - - - This year - Тази година - - - Range... - От - до... - - - Most Common - Най-често - - - Received with - Получени - - - Sent to - Изпратени на - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend направи обезпечение на постъпленията - - - Darksend Create Denominations - Darksend създава деноминации - - - Darksend Denominate - Darksend деноминация - - - Darksend Collateral Payment - Darksend обезпечава плащането - - - To yourself - За себе си - - - Mined - Емитирани - - - Other - Други - - - Enter address or label to search - Търсене по адрес или наименование - - - Min amount - Минимална сума - - - Copy address - Копирай адрес - - - Copy label - Копирай наименование - - - Copy amount - Копирай сума - - - Copy transaction ID - Копирай транзакция с ID - - - Edit label - Редактирай наименование - - - Show transaction details - Подробности за транзакцията - - - Export Transaction History - Изнасяне историята на транзакциите - - - Comma separated file (*.csv) - CSV файл (*.csv) - - - Confirmed - Потвърдени - - - Watch-only - Наблюдавани - - - Date - Дата - - - Type - Тип - - - Label - Наименование - - - Address - Адрес - - - ID - ИД - - - Exporting Failed - Грешка при изнасянето - - - There was an error trying to save the transaction history to %1. - Възникна грешка при опит за записване историята на транзакциите в %1. - - - Exporting Successful - Изнасянето е успешно - - - The transaction history was successfully saved to %1. - Направените транзакции са запазени до %1. - - - Range: - От: - - - to - до - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Единица за показване на количеството.Клик за избиране на друга единица. - - - - WalletFrame - - No wallet has been loaded. - Няма зареден портфейл. - - - - WalletModel - - Send Coins - Изпращане - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX не поддържа изпращане на толкова големи суми. Транзакциите са ограничени до %1 DASH. - - - - WalletView - - &Export - &Изнеси - - - Export the data in the current tab to a file - Запишете данните от текущия раздел във файл - - - Selected amount: - Избрана сума: - - - Backup Wallet - Запазване на портфейла - - - Wallet Data (*.dat) - Данните за портфейла(*.dat) - - - Backup Failed - Неуспешно запазване на портфейла - - - There was an error trying to save the wallet data to %1. - Възникна грешка при опит за записване данните на портфейла в %1. - - - Backup Successful - Успешно запазване на портфейла - - - The wallet data was successfully saved to %1. - Базата на портфейла беше запазена успешно в %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Свързва се с посочения адрес и винаги слуша за него. Използвайте [хост]:порт за изписване при IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Не може да се заключи дата директорията %s. Dash ядрото вече работи. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend използва всички деноминирани наличности за да изпрати сумата, може би ще е необходимо да бъдат анонимизирани още монети. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Влиза в регресивен тестов режим, който използва специална верига в която блоковете могат да бъдат намерени мигновено. - - - Error: Listening for incoming connections failed (listen returned error %s) - Грешка: Очакването на входящи връзки е неуспешно (върната грешка %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Изпълни командата когато се получи съответното предупреждение или се появи друг проблем с мрежата (%s в cmd е подменено от съобщение) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Изпълнете командата когато транзакцията в портфейла се променя (%s в cmd е подменено с TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Изпълнете командата когато има промяна в най-добрият блок (%s в cmd е подменена от block hash) - - - In this mode -genproclimit controls how many blocks are generated immediately. - В този режим -genproclimit се контролира колко блока са генерирани моментално. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX изисква средства с поне 6 потвърждения, може да се наложи да почакате няколко минути и да опитате отново. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Име за създаване на URL за KeePass входа , който съхранява паролата за портфейла - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Заявка за адреси на пиъри чрез DNS справка, ако адресите са недостатъчно (по-подразбиране: 1 освен ако -свързан) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Определя максималния размер на висок приоритет/ниска такса за транзакция в байтове (по подразбиране: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Задаване броя на нишките потвърждаващи скрипта (%u до %d, 0 = автоматично, <0 = да се оставят толкова ядра свободни, по подразбиране: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Това е предварителна тест версия - използвайте я на ваша отговорност - не използвайте за копане или за търговски приложения. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Не може да се свърже с %s на този компютър. Dash ядрото най-вероятно вече работи. - - - Unable to locate enough Darksend denominated funds for this transaction. - Не са намерени достатъчно Darksend деноминирани средства за тази транзакция. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Не са намерени достатъчно Darksend неденоминирани средства за тази транзакция, които не са равни на 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Внимание: -paytxfee е с много голяма зададена стойност! Това е транзакционната такса, която ще платите ако направите транзакция. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Внимание! Изглежда няма пълно съгласуване в мрежата! Някой копачи изглежда изпитват проблеми. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Внимание: Не е намерена пълна съвместимост с останалите в мрежата ! Може би се нуждаете от обновяване , или някой от другите нодове се нуждае от обновяване . - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Внимание: грешка при четене на wallet.dat! Всички ключове са прочетени коректно, но записи в данните за транзакциите или в адресната книга може би липсват или са грешни. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Внимание: wallet.dat е развален, данните са спасени! Оригиналния wallet.dat е запазен като wallet.{timestamp}.bak в %s; ако твоят баланс или транзакции са неверни трябва да възстановите от резервното копие. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Трябва да посочите masternodeprivkey в конфигурацията. Моля прочетете документацията за помощ. - - - (default: 1) - (по подразбиране 1) - - - Accept command line and JSON-RPC commands - Приемай команден ред и JSON-RPC команди - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Приемай връзки отвън (по подразбиране: 1, ако няма -proxy или -connect) - - - Add a node to connect to and attempt to keep the connection open - Добави възел, към който да се свърже и поддържай връзката отворена - - - Allow DNS lookups for -addnode, -seednode and -connect - Разреши DNS справка за -addnode, -seednode и -connect - - - Already have that input. - Вече има такъв вход. - - - Attempt to recover private keys from a corrupt wallet.dat - Опит да се възстановят частни ключове от повреден wallet.dat - - - Block creation options: - Опции за създаване на блок: - - - Can't denominate: no compatible inputs left. - Не може да бъде деноминирано: няма останали съвместими входящи средства. - - - Cannot downgrade wallet - Връщане към по-стара версия на портфейла е невъзможно - - - Cannot resolve -bind address: '%s' - Не може да установи -bind адрес: '%s' - - - Cannot resolve -externalip address: '%s' - Не може да установи -externalip адрес: '%s' - - - Cannot write default address - Не може да напише адреса по подразбиране - - - Collateral not valid. - Обезпечението невалидно. - - - Connect only to the specified node(s) - Свързване само към определена възлова точка(и) - - - Connect to a node to retrieve peer addresses, and disconnect - Свържи се с възел за зараждане на адреси на пиъри, след това прекъсни връзката - - - Connection options: - Настройки на връзката: - - - Corrupted block database detected - Открита е повредена блок база данни - - - Darksend options: - Опции на Darksend: - - - Debugging/Testing options: - Опции за Откриване на грешки/Тестване: - - - Discover own IP address (default: 1 when listening and no -externalip) - Открий собствения IP адрес (по подразбиране: 1, когато слуша и няма -externalip) - - - Do not load the wallet and disable wallet RPC calls - Не зареждай портфейла и деактивирай RPC повикванията на портфейла - - - Do you want to rebuild the block database now? - Искате ли да възстановяване блок базата данни сега? - - - Done loading - Зареждането е завършено - - - Entries are full. - Записите са пълни - - - Error initializing block database - Грешка при инициализация на блок базата данни - - - Error initializing wallet database environment %s! - Грешка при инициализиране на средата на базата данни на портфейла %s! - - - Error loading block database - Грешка при зареждане на блок базата данни - - - Error loading wallet.dat - Грешка при зареждане на wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Грешка при зареждане на wallet.dat: портфейлът е повреден - - - Error opening block database - Грешка при отваряне на блок базата данни - - - Error reading from database, shutting down. - Грешка при четене от базата данни, изключване. - - - Error recovering public key. - Грешка при възстановяване на публичния ключ. - - - Error - Грешка - - - Error: Disk space is low! - Грешка: Мястото на твърдия диск е малко! - - - Error: Wallet locked, unable to create transaction! - Грешка: Портфейлът е заключен, транзакцията е невъзможна! - - - Error: You already have pending entries in the Darksend pool - Грешка: Вече имате чакащи вписвания в Darksend басейна - - - Failed to listen on any port. Use -listen=0 if you want this. - Неуспешно "слушане" на всеки порт. Използвайте -listen=0 ако искате това. - - - Failed to read block - Неуспешно четене на блок - - - If <category> is not supplied, output all debugging information. - Ако <category> не е предоставена, изведи цялата информация за отстраняването на грешки. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 =запазва tx meta data напр.акаунта на собственика и информация за искането за плащане, 2 = отпада tx meta data) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Позволява JSON-RPC връзки от определен източник. Важи за <IP> са един единствен IP (например 1.2.3.4), мрежа / мрежова маска (напр. 1.2.3.4/255.255.255.0) или мрежа / CIDR (напр. 1.2.3.4/24). Тази опция може да бъде променяна многократно - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Възникна грешка при настройване на RPC адрес %s порт %u за слушане: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Свързва се с посочения адрес и добави в whitelist свързаните към него пиъри. Използвайте [хост]:порт за изписване при IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Свързват с даден адрес, за да слушат за JSON-RPC връзки. Използвайте [host]: port нотация за IPv6. Тази опция може да бъде променяна многократно (по подразбиране: свързват с всички интерфейси) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Променете автоматичното финализиране гласуването на бюджет. Режим = Auto: Гласувайте само за точно финализиран съвпадащ с моят генериран бюджет. (string,, по подразбиране: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Непрекъснат лимит на безплатните транзакции до <n>*1000 байта в минута (по подразбиране:%u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Създаване на нови файлове с достъп по подразбиране , вместо umask 077 (в сила само при изключена функционалност на портфейла) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Изтриване на всички транзакции на портфейла и възстановява само тези части на блок веригата чрез -rescan при стартиране - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Изключване на всички специфични Dash функции (Masternodes, Darksend, InstantX, Budgeting) (0-1, по подразбиране: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Разпространява се под MIT софтуерен лиценз,вижте придружаващият файл COPYING или<http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Включен instantx,покажи потвърждения за заключени транзакции (bool, по подразбиране: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Включено автоматично използване на darksend за средствата в този портфейл (0-1, по подразбиране: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Грешка: Открит е неподдържан аргумент -socks .настройка SOCKS версия вече не е възможна, само SOCKS5 прокси се поддържа. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Такси (в DASH/Kb) по-малки от това се считат за нулева такса за прилагане (по подразбиране: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Такси (в DASH/Kb) по-малки от това се считат за нулева такса при създаване на транзакция (по подразбиране: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Изчиствай активността по базата от паметта към лог на диска на всеки <n> мегабайта (по подразбиране: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Намерени са непотвърдени деноминирани средства, трябва да изчакате потвърждаването им за да продължите - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Как цялостната проверка на блок от -checkblocks е (0-4, по подразбиране: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Ако paytxfee не е зададен,включва достатъчно такса, така транзакциите започват потвърждение средно в рамките n блокове(по подразбиране: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Невалидна сума за -maxtxfee=<amount>: '%s' (трябва да бъде най-малко от %s за да се избегне забиване на транзакциите) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Запиши в лога приоритета на транзакцията и таксата за КБ при добив на блокове (по подразбиране: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Поддържай пълен списък с транзакциите, използван от getrawtransaction rpc повикването (по подразбиране: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Максимален размер на данните в данни съдържащите транзакции , които можем да предадем или изкопаем (по подразбиране: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Максимална крайна такса използвана в единична транзакция, ако настроите твърде малка няма да бъдят възможни големи транзакции (по подразбиране: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Брой секунди до възтановяване на връзката за зле държащите се пиъри (по подразбиране %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Изходяща информация за грешки (по подразбиране: %u, задаването на <category> е опция) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Осигуряване на ликвидност Darksend от рядко смесване монети непрекъснато в съответствие (0-100, по подразбиране: %u, 1=много чести, високи такси, 100=твърде редки, ниски такси) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Определя максималния приоритет за свободно предаване или ниска такса за транзакция (по подразбиране:%u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Изпрати информацията за грешки към конзолата, вместо файла debug.log (по подразбиране: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Задай брой заявки, когато се използва генериране (-1 =всички ядра, по подразбиране: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Покажи N потвърждения при успешно заключена транзакция (0-9999, по подразбиране: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Този продукт включва софтуер, разработен от проекта OpenSSL за използване в OpenSSL Toolkit <https://www.openssl.org/> и криптографски софтуер, написан от Eric Young и UPnP софтуер, написан от Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - За използване на dashd, или the -server опция към dash-qt, трябва да зададете rpcpassword в конфигурационния файл: %s Препоръчително е да използвате следната произволна парола: rpcuser=dashrpc rpcpassword=%s (не е нужно да запомняте тази парола) Потребителя и паролата НЕ ТРЯБВА да са еднакви. Ако файла не съществува , създайте го с права за само за четене. Препоръчително е да създадете сигнал за уведомяване за да бъдете осведомени при проблем; Пример: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Не са намерени достатъчно средства за тази транзакция, които не са равни на 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Използва отделен SOCKS5 прокси, за достигне на пиъри чрез Tor скрити услуги (по подразбиране: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Внимание: -maxtxfee е с много голяма зададена стойност! Това е транзакционната такса, която ще платите ако направите единична транзакция. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Внимание: Моля проверете дали датата и часът на вашият компютър са верни! Ако часовникът ви не е сверен, Dash Core няма да работи правилно. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Whitelist пиъри свързани от дадената мрежома маска или IP адрес. Може да бъде определян многократно. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Whitelisted не могат да бъдат DoS забранени и техните транзакции ще бъдат винаги предадени, дори ако вече са в mempool, полезно напр. за gateway - - - (9999 could be used only on mainnet) - (9999 може да бъде използван в основната мрежа) - - - (default: %s) - (по подразбиране: %s) - - - <category> can be: - - <category> може да бъде: - - - - Accept public REST requests (default: %u) - Приема публични REST заявки (по подразбиране: %u) - - - Acceptable ciphers (default: %s) - Приемливи шифри (по подразбиране: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Винаги пускай заявка за адреси на пиъри през DNS справката (по подразбиране: %u) - - - Cannot resolve -whitebind address: '%s' - Не може да установи -whitebind адрес: '%s' - - - Connect through SOCKS5 proxy - Свързване през SOCKS5 прокси - - - Connect to KeePassHttp on port <port> (default: %u) - Свързване към KeePassHttp през порт <port> (по подразбиране: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Запазени права (C) 2009-%i Bitcoin Core разработчици - - - Copyright (C) 2014-%i The Dash Core Developers - Запазени права (C) 2014-%i Dash Core разработчиците - - - Could not parse -rpcbind value %s as network address - Не успя да се анализира -rpcbind стойност %s като мрежов адрес - - - Darksend is idle. - Darksend бездейства. - - - Darksend request complete: - Darksend заявката е завършена: - - - Darksend request incomplete: - Darksend заявката незавършена: - - - Disable safemode, override a real safe mode event (default: %u) - Деактивирай безопасен режим, замени събитието за истинския безопасен режим (по подразбиране: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Активиране на клиента да работи като masternode (0-1, по подразбиране: %u) - - - Error connecting to Masternode. - Грешка при свързване с Masternode. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Грешка при зареждане на wallet.dat: портфейлът изисква по-нова версия на Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Грешка: Възникна сериозна вътрешна грешка, виж debug.log за подробности - - - Error: Can't select current denominated inputs - Грешка: Не можете да изберете настоящите деноминирани входове - - - Error: Unsupported argument -tor found, use -onion. - Грешка:Открит е неподдържан аргумент -tor, моля използвай -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Такси (в DASH/Kb) добавена към направената транзакция(по подразбиране: %s) - - - Finalizing transaction. - Приключване на транзакцията. - - - Force safe mode (default: %u) - Принудителен безопасен режим (по подразбиране: %u) - - - Found enough users, signing ( waiting %s ) - Открити са достатъчно потребители, подписване ( изчаква %s ) - - - Found enough users, signing ... - Открити са достатъчно потребители, подписва... - - - Generate coins (default: %u) - Генериране на монети (по подразбиране: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Колко блока да проверява при стартиране (по подразбиране: %u, 0 = всички) - - - Importing... - Внасяне... - - - Imports blocks from external blk000??.dat file - Внасяне на блокове от външен blk000??.dat файл - - - Include IP addresses in debug output (default: %u) - Прикрепва IP адреси към debug записа (по подразбиране: %u) - - - Incompatible mode. - Несъвместим режим. - - - Incompatible version. - Несъвместима версия. - - - Incorrect or no genesis block found. Wrong datadir for network? - Намерен е неправилен или не създаден блок. Грешна data директория за мрежата? - - - Information - Информация - - - Initialization sanity check failed. Dash Core is shutting down. - Инициализационната проверка не успешна. Dash ядрото се изключва. - - - Input is not valid. - Въвеждането е невалидно. - - - InstantX options: - InstantX опции: - - - Insufficient funds. - Недостатъчно средства. - - - Invalid -onion address: '%s' - Невалиден -onion адрес: '%s' - - - Invalid -proxy address: '%s' - Невалиден -proxy address: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Невалидна сума за -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Невалидна сума за -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Невалидна сума за -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Невалидна сума за -paytxfee=<amount>: '%s' (трябва да бъде най-малко %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Невалидна сума за -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - Последното успешно Darksend действие беше твърде скоро. - - - Limit size of signature cache to <n> entries (default: %u) - Ограничение на размера на кеша за подпис до <n> реда (по подразбиране: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Очаквай JSON-RPC входящи връзки на <port> (по подразбиране:%u или за тестовата мрежа: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Слушане за входящи връзки на <port> (по подразбиране:%u или за тестовата мрежа: %u) - - - Loading budget cache... - Зареждане на бюджетния кеш... - - - Loading masternode cache... - Зареждане на masternode кеш... - - - Loading masternode payment cache... - Зараждане на masternode кеш за плащане - - - Lock is already in place. - Заключването е вече налично. - - - Lock masternodes from masternode configuration file (default: %u) - Заключване на masternodes от конфигурационния файл(по подразбиране: %u) - - - Maintain at most <n> connections to peers (default: %u) - Поддържай най-много <n> връзки към пиърите (по подразбиране: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Максимален размер на буфера при получаване, <n>*1000 байта (по подразбиране: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Максимален размер на буфера при изпращане, <n>*1000 байта (по подразбиране: %u) - - - Mixing in progress... - В процес на смесване... - - - Need to specify a port with -whitebind: '%s' - Нужно е определяне на порта с -whitebind: '%s' - - - No Masternodes detected. - Не са открити Masternodes. - - - No compatible Masternode found. - Не e намерен съвместим Masternode. - - - Not in the Masternode list. - Не е в Мasternode списъка. - - - Number of automatic wallet backups (default: 10) - Брой на автоматичните резервни копия (по подразбиране: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Приема само блок регистъра съвпадащ с вградените контролни точки (по подразбиране: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Свързване само към точки от мрежата <net> (IPv4, IPv6 или onion) - - - Prepend debug output with timestamp (default: %u) - Прикрепва справката за грешки към времевия запис(по подразбиране: %u) - - - Run a thread to flush wallet periodically (default: %u) - Стартирай нишка за почистване на портфейла периодично (по подразбиране: %u) - - - Send trace/debug info to debug.log file (default: %u) - Изпрати информацията за грешки към файла debug.log (по подразбиране: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Изпрати с нулева такса за транзакция ако е възможно (по подразбиране: %u) - - - Server certificate file (default: %s) - Сертификационен файл на сървъра (По подразбиране: %s) - - - Server private key (default: %s) - Частен ключ за сървъра (по подразбиране %s) - - - Set external address:port to get to this masternode (example: %s) - Задаване на външен address:port на този masternode (пример: %s) - - - Set key pool size to <n> (default: %u) - Задайте максимален брой на генерираните ключове до <n> (по подразбиране: %u) - - - Set minimum block size in bytes (default: %u) - Задайте минимален размер на блок-а в байтове (подразбиране: %u) - - - Set the number of threads to service RPC calls (default: %d) - Задай брой заявки обслужващи процеса RPC повикванията (по подразбиране: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Определете флага DB_PRIVATE в средата база от данни на портфейла (по подразбиране: %u) - - - Signing timed out. - Времето за подпис е изтекло. - - - Specify configuration file (default: %s) - Посочете конфигурационен файл (по подразбиране: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Определете таймаут за свързване в милисекунди (минимум: 1, подразбиране: %d) - - - Specify masternode configuration file (default: %s) - Посочете конфигурационен файл (по подразбиране: %s) - - - Specify pid file (default: %s) - Посочете pid-файла (по подразбиране: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Изхарчете непотвърденото ресто при изпращане на транзакциите (по подразбиране: %u) - - - Stop running after importing blocks from disk (default: %u) - Спри работата след импортиране на блоковете от диска (по подразбиране: %u) - - - Submitted following entries to masternode: %u / %d - Изпратени са следните записи към masternode: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Изпратено към masternode, чака за още записи ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Изпратено към Мастернода, чака в опашката %s - - - Synchronization failed - Синхронизацията е неуспешна - - - Synchronization finished - Синхронизацията е завършена - - - Synchronizing budgets... - Синхронизиране на бюджетите ... - - - Synchronizing masternode winners... - Синхронизиране на masternode победителите ... - - - Synchronizing masternodes... - Синхронизиране на masternodes ... - - - Synchronizing sporks... - Синхронизиране на sporks... - - - This is not a Masternode. - Това не е Masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Праг на прекъсване на връзката при непорядъчно държащи се пиъри (по подразбиране: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Използвай KeePass 2 интеграция чрез плъгина KeePassHttp (по подразбиране: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Използвай N отделни Masternode за анонимизиране на средствата (2-8, по подразбиране: %u) - - - Use UPnP to map the listening port (default: %u) - Използвай UPnP за определяне на порта за слушане (по подразбиране: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Портфейлът трябва да бъде презаписан: рестартирайте Dash за да завършите - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Внимание: Неподдържан аргумен -benchmark е игнориран, използвайте -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Внимание: Аргументът -debugnet е невалиден, използвайте -debug=net . - - - Will retry... - Ще опита отново... - - - Invalid masternodeprivkey. Please see documenation. - Невалиден частен ключ на Masternode. Моля вижте документацията. - - - (must be 9999 for mainnet) - (трябва да е 9999 за основната мрежа) - - - Can't find random Masternode. - Не можете да намери случаен Masternode. - - - Can't mix while sync in progress. - Не може да се смесват, докато се синхронизира. - - - Could not parse masternode.conf - Несъвместимост в masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Невалидна мрежова маска в -whitelist: '%s' - - - Invalid port detected in masternode.conf - Открит е невалиден порт в masternode.conf - - - Invalid private key. - Невалиден личен ключ. - - - Invalid script detected. - Открит е невалиден скрипт. - - - KeePassHttp id for the established association - KeePassHttp id за осъществяване на връзка - - - KeePassHttp key for AES encrypted communication with KeePass - KeePassHttp ключ за AES криптирана връзка с KeePass - - - Keep N DASH anonymized (default: %u) - Поддържай N Dash анонимизирани (по подразбиране: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Пази поне <n> неосъществени транзакции в паметта (по подразбиране: %u) - - - Last Darksend was too recent. - Последния Derksend беше твърде скоро. - - - Line: %d - Линия: %d - - - Loading addresses... - Зареждане на адреси... - - - Loading block index... - Зареждане на блок индекса... - - - Loading wallet... (%3.2f %%) - Зареждане на портфейла... (%3.2f %%) - - - Loading wallet... - Зареждане на портфейла... - - - Masternode options: - Masternode опции: - - - Masternode queue is full. - Опашката с задачи на Masternode е пълна. - - - Masternode: - Masternode: - - - Missing input transaction information. - Липсва входяща информация за транзакцията. - - - No funds detected in need of denominating. - Не са открити суми нуждаещи се от деноминиране. - - - No matching denominations found for mixing. - Няма съвпадащи деноминации за миксирането. - - - Node relay options: - Сменящи опции на node: - - - Non-standard public key detected. - Засечен е нестандартен публичен ключ. - - - Not compatible with existing transactions. - Несъвместим със съществуващите транзакции. - - - Not enough file descriptors available. - Няма достатъчно налични файлови описания. - - - Options: - Опции: - - - Password for JSON-RPC connections - Парола за JSON-RPC връзките - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL опции: (виж Bitcoin Wiki за SSL инструкции за настройка) - - - RPC server options: - Опции на RPC сървъра: - - - RPC support for HTTP persistent connections (default: %d) - RPC поддръжка за HTTP постоянни връзки (по подразбиране: %d) - - - Randomly drop 1 of every <n> network messages - Произволно спира 1 от всеки <n> мрежови съобщения - - - Randomly fuzz 1 of every <n> network messages - Произволно проверява 1 на всеки <n> мрежови съобщения - - - Rebuild block chain index from current blk000??.dat files - Възстановяване индекса на блок регистъра от настоящия blk000??.dat файл - - - Receive and display P2P network alerts (default: %u) - Получаване и показване на P2P мрежови известия (по подразбиране: %u) - - - Relay and mine data carrier transactions (default: %u) - Смени и изкопай носещите данни транзакции (по подразбиране: %u) - - - Relay non-P2SH multisig (default: %u) - Смяна на не-P2SH многоподписани (по подразбиране: %u) - - - Rescan the block chain for missing wallet transactions - Повторно сканиране на регистъра на блокове за липсващи транзакции от портфейла - - - Rescanning... - Повторно сканиране... - - - Run in the background as a daemon and accept commands - Стартира във фонов режим като демон и приема команди - - - Session not complete! - Незавършена сесия! - - - Session timed out. - Сесията е изтекла. - - - Set database cache size in megabytes (%d to %d, default: %d) - Определи размера на кеша на базата от данни в мегабайти (%d до %d, по подразбиране: %d) - - - Set maximum block size in bytes (default: %d) - Определи максималния размер на блока в байтове (по подразбиране: %d) - - - Set the masternode private key - Задаване на личен ключ на Masternode - - - Show all debugging options (usage: --help -help-debug) - Покажи всички опции за откриване на грешки (синтаксис: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Свий debug.log файла при стартиране на клиента (по подразбиране: 1, когато няма -debug) - - - Signing failed. - Подписването неуспешно. - - - Signing transaction failed - Подписването на транзакцията се провали - - - Specify data directory - Определете директория за данните - - - Specify wallet file (within data directory) - Посочете файла с портфейла (в папката с данни) - - - Specify your own public address - Въведете Ваш публичен адрес - - - Synchronization pending... - Изчаква синхронизация ... - - - This help message - Това помощно съобщение - - - This is experimental software. - Това е експериментален софтуер. - - - This is intended for regression testing tools and app development. - Това е предназначено за инструментите за регресивно тестване и разработка на приложението. - - - Transaction amount too small - Сумата на транзакцията е твърде малка - - - Transaction amounts must be positive - Сумите на транзакциите трябва да са положителни - - - Transaction created successfully. - Транзакцията създадена успешно. - - - Transaction fees are too high. - Таксите за транзакция са твърде високи. - - - Transaction not valid. - Транзакцията е невалидна. - - - Transaction too large for fee policy - Транзакцията е твърде голяма за таксовите политики. - - - Transaction too large - Транзакцията е твърде голяма - - - Transmitting final transaction. - Предава окончателната транзакция. - - - Unable to bind to %s on this computer (bind returned error %s) - Не може да се свърже с %s на този компютър (връща грешка %s) - - - Unable to sign spork message, wrong key? - Неуспешно подписване на spork-съобщение. Грешен ключ? - - - Unknown network specified in -onlynet: '%s' - Неизвестна мрежа определена от -onlynet: '%s' - - - Unknown state: id = %u - Неизвестно състояние: id = %u - - - Upgrade wallet to latest format - Обновяване на портфейла до най-новия формат - - - Use OpenSSL (https) for JSON-RPC connections - Използвайте OpenSSL (https) за JSON-RPC връзките - - - Use UPnP to map the listening port (default: 1 when listening) - Използвай UPnP за определяне на порта за слушане (по подразбиране: 1 когато слуша) - - - Use the test network - Използвайте тестовата мрежа - - - Username for JSON-RPC connections - Потребителско име за JSON-RPC връзките - - - Value more than Darksend pool maximum allows. - Стойност повече от максимално позволената в Darksend басейна. - - - Verifying blocks... - Проверка на блоковете... - - - Verifying wallet... - Проверка на портфейла... - - - Wallet %s resides outside data directory %s - Портфейла %s е разположен извън папката с данни %s - - - Wallet is locked. - Портфейлът е заключен. - - - Wallet options: - Настройки на портфейла: - - - Wallet window title - Заглавие на wallet прозореца - - - Warning - Предупреждение - - - Warning: This version is obsolete, upgrade required! - Внимание: Използвате остаряла версия, необходимо е обновление! - - - You need to rebuild the database using -reindex to change -txindex - Необходимо е повторно изграждане на базата данни използвайки -reindex, за да промените -txindex - - - Your entries added successfully. - Вашите записи са добавени успешно. - - - Your transaction was accepted into the pool! - Вашата транзакция е била приета в басейна! - - - Zapping all transactions from wallet... - Премахване на всички транзакции от портфейла ... - - - on startup - при стартиране - - - wallet.dat corrupt, salvage failed - wallet.dat е повреден, възстановяването неуспешно - - - \ No newline at end of file diff --git a/src/qt/locale/dash_de.ts b/src/qt/locale/dash_de.ts deleted file mode 100644 index 4c99ff23404a..000000000000 --- a/src/qt/locale/dash_de.ts +++ /dev/null @@ -1,4539 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Rechts-Klick um Adresse oder Bezeichnung zu bearbeiten - - - Create a new address - Eine neue Adresse erstellen - - - &New - &Neu - - - Copy the currently selected address to the system clipboard - Ausgewählte Adresse in die Zwischenablage kopieren - - - &Copy - &Kopieren - - - Delete the currently selected address from the list - Ausgewählte Adresse aus der Liste entfernen - - - &Delete - &Löschen - - - Export the data in the current tab to a file - Daten der aktuellen Ansicht in eine Datei exportieren - - - &Export - &Exportieren - - - C&lose - &Schließen - - - Choose the address to send coins to - Wählen Sie die Adresse aus, an die Sie Dash überweisen möchten - - - Choose the address to receive coins with - Wählen Sie die Adresse aus, über die Sie Dash empfangen wollen - - - C&hoose - &Auswählen - - - Sending addresses - Zahlungsadressen - - - Receiving addresses - Empfangsadressen - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dies sind ihre Dash-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Empfangsadresse, bevor Sie Dash überweisen. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Dies sind ihre Dash-Adressen zum Empfangen von Zahlungen. Es wird empfohlen für jede Transaktion eine neue Empfangsadresse zu verwenden. - - - &Copy Address - &Adresse kopieren - - - Copy &Label - &Bezeichnung kopieren - - - &Edit - &Editieren - - - Export Address List - Adressliste exportieren - - - Comma separated file (*.csv) - Kommagetrennte-Datei (*.csv) - - - Exporting Failed - Exportieren fehlgeschlagen - - - There was an error trying to save the address list to %1. Please try again. - Beim Speichern der Adressliste nach %1 ist ein Fehler aufgetreten. Bitte noch einmal versuchen - - - - AddressTableModel - - Label - Bezeichnung - - - Address - Adresse - - - (no label) - (keine Bezeichnung) - - - - AskPassphraseDialog - - Passphrase Dialog - Passphrasendialog - - - Enter passphrase - Passphrase eingeben - - - New passphrase - Neue Passphrase - - - Repeat new passphrase - Neue Passphrase wiederholen - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Verhindert das einfache Überweisen von Geld, falls das Systemkonto kompromittiert wurde. Bietet keine wirkliche Sicherheit. - - - For anonymization only - Nur zur Anonymisierung - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Geben Sie die neue Passphrase für die Wallet ein.<br>Bitte benutzen Sie eine Passphrase bestehend aus <b>10 oder mehr zufälligen Zeichen</b> oder <b>8 oder mehr Wörtern</b>. - - - Encrypt wallet - Wallet verschlüsseln - - - This operation needs your wallet passphrase to unlock the wallet. - Dieser Vorgang benötigt ihre Passphrase, um die Wallet zu entsperren. - - - Unlock wallet - Wallet entsperren - - - This operation needs your wallet passphrase to decrypt the wallet. - Dieser Vorgang benötigt ihre Passphrase, um die Wallet zu entschlüsseln. - - - Decrypt wallet - Wallet entschlüsseln - - - Change passphrase - Passphrase ändern - - - Enter the old and new passphrase to the wallet. - Geben Sie die alte und neue Wallet-Passphrase ein. - - - Confirm wallet encryption - Wallet-Verschlüsselung bestätigen - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Warnung: Wenn Sie ihre Wallet verschlüsseln und ihre Passphrase verlieren werden Sie <b>alle ihre Dash verlieren</b>! - - - Are you sure you wish to encrypt your wallet? - Sind Sie sich sicher, dass Sie ihre Wallet verschlüsseln möchten? - - - Wallet encrypted - Wallet verschlüsselt - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash wird jetzt beendet, um den Verschlüsselungsprozess abzuschließen. Bitte beachten Sie, dass die Wallet-Verschlüsselung nicht vollständig vor Diebstahl ihrer Dash durch Schadsoftware schützt, die ihren Computer befällt. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - WICHTIG: Alle vorherigen Wallet-Sicherungen sollten durch die neu erzeugte, verschlüsselte Wallet ersetzt werden. Aus Sicherheitsgründen werden vorherige Sicherungen der unverschlüsselten Wallet nutzlos, sobald Sie die neue, verschlüsselte Wallet verwenden. - - - Wallet encryption failed - Wallet-Verschlüsselung fehlgeschlagen - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Die Wallet-Verschlüsselung ist aufgrund eines internen Fehlers fehlgeschlagen. Ihre Wallet wurde nicht verschlüsselt. - - - The supplied passphrases do not match. - Die eingegebenen Passphrasen stimmen nicht überein. - - - Wallet unlock failed - Wallet-Entsperrung fehlgeschlagen - - - The passphrase entered for the wallet decryption was incorrect. - Die eingegebene Passphrase zur Wallet-Entschlüsselung war nicht korrekt. - - - Wallet decryption failed - Wallet-Entschlüsselung fehlgeschlagen - - - Wallet passphrase was successfully changed. - Die Wallet-Passphrase wurde erfolgreich geändert. - - - Warning: The Caps Lock key is on! - Warnung: Die Feststelltaste ist aktiviert! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Wallet - - - Node - Knoten - - - &Overview - &Übersicht - - - Show general overview of wallet - Allgemeine Wallet-Übersicht anzeigen - - - &Send - &Überweisen - - - Send coins to a Dash address - Dash an eine Dash-Adresse überweisen - - - &Receive - &Empfangen - - - Request payments (generates QR codes and dash: URIs) - Zahlungen anfordern (erzeugt QR-Codes und "dash:"-URIs) - - - &Transactions - &Transaktionen - - - Browse transaction history - Transaktionsverlauf durchsehen - - - E&xit - &Beenden - - - Quit application - Anwendung beenden - - - &About Dash Core - &Über Dash Core - - - Show information about Dash Core - Informationen über Dash Core anzeigen - - - About &Qt - Über &Qt - - - Show information about Qt - Informationen über Qt anzeigen - - - &Options... - &Konfiguration... - - - Modify configuration options for Dash - Die Konfiguration des Clients bearbeiten - - - &Show / Hide - &Anzeigen / Verstecken - - - Show or hide the main Window - Das Hauptfenster anzeigen oder verstecken - - - &Encrypt Wallet... - Wallet &verschlüsseln... - - - Encrypt the private keys that belong to your wallet - Verschlüsselt die zu ihrer Wallet gehörenden privaten Schlüssel - - - &Backup Wallet... - Wallet &sichern... - - - Backup wallet to another location - Eine Wallet-Sicherungskopie erstellen und abspeichern - - - &Change Passphrase... - Passphrase &ändern... - - - Change the passphrase used for wallet encryption - Ändert die Passphrase, die für die Wallet-Verschlüsselung benutzt wird - - - &Unlock Wallet... - Wallet &entsperren - - - Unlock wallet - Wallet entsperren - - - &Lock Wallet - Wallet &sperren - - - Sign &message... - Nachricht s&ignieren... - - - Sign messages with your Dash addresses to prove you own them - Nachrichten signieren, um den Besitz ihrer Dash-Adressen zu beweisen - - - &Verify message... - Nachricht &verifizieren... - - - Verify messages to ensure they were signed with specified Dash addresses - Nachrichten verifizieren, um sicherzustellen, dass diese mit den angegebenen Dash-Adressen signiert wurden - - - &Information - &Information - - - Show diagnostic information - Diagnoseinformation anzeigen - - - &Debug console - &Debugkonsole - - - Open debugging console - Debugkonsole öffnen - - - &Network Monitor - &Netzwerkmonitor - - - Show network monitor - Netzwerkmonitor anzeigen - - - &Peers list - &Gegenstellen-Liste - - - Show peers info - Informationen zu Gegenstellen anzeigen - - - Wallet &Repair - Wallet-&Reparatur - - - Show wallet repair options - Optionen zur Wallet-Reparatur anzeigen - - - Open &Configuration File - &Konfigurationsdatei öffnen - - - Open configuration file - Konfigurationsdatei öffnen - - - Show Automatic &Backups - Automatische &Sicherheitskopien anzeigen - - - Show automatically created wallet backups - Automatisch erzeugte Wallet-Sicherheitskopien anzeigen - - - &Sending addresses... - &Zahlungsadressen... - - - Show the list of used sending addresses and labels - Liste verwendeter Zahlungsadressen und Bezeichnungen anzeigen - - - &Receiving addresses... - &Empfangsadressen... - - - Show the list of used receiving addresses and labels - Liste verwendeter Empfangsadressen und Bezeichnungen anzeigen - - - Open &URI... - &URI öffnen... - - - Open a dash: URI or payment request - Eine "dash:"-URI oder Zahlungsanforderung öffnen - - - &Command-line options - &Kommandozeilenoptionen - - - Dash Core client - Dash Core Client - - - Processed %n blocks of transaction history. - %n Block des Transaktionsverlaufs verarbeitet.%n Blöcke des Transaktionsverlaufs verarbeitet. - - - Synchronizing additional data: %p% - Synchronisiere zusätzliche Daten: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Zeige den "Dash Core"-Hilfetext, um eine Liste mit möglichen Kommandozeilenoptionen zu erhalten - - - &File - &Datei - - - &Settings - &Einstellungen - - - &Tools - &Werkzeuge - - - &Help - &Hilfe - - - Tabs toolbar - Registerkartenleiste - - - %n active connection(s) to Dash network - %n aktive Verbindung zum Dash-Netzwerk%n aktive Verbindungen zum Dash-Netzwerk - - - Synchronizing with network... - Synchronisiere mit Netzwerk... - - - Importing blocks from disk... - Importiere Blöcke von Datenträger... - - - Reindexing blocks on disk... - Reindiziere Blöcke auf Datenträger... - - - No block source available... - Keine Blockquelle verfügbar... - - - Up to date - Auf aktuellem Stand - - - %n hour(s) - %n Stunde%n Stunden - - - %n day(s) - %n Tag%n Tage - - - %n week(s) - %n Woche%n Wochen - - - %1 and %2 - %1 und %2 - - - %n year(s) - %n Jahr%n Jahre - - - %1 behind - %1 im Rückstand - - - Catching up... - Hole auf... - - - Last received block was generated %1 ago. - Der letzte empfangene Block ist %1 alt. - - - Transactions after this will not yet be visible. - Transaktionen hiernach werden noch nicht angezeigt. - - - Error - Fehler - - - Warning - Warnung - - - Information - Hinweis - - - Sent transaction - Gesendete Transaktion - - - Incoming transaction - Eingehende Transaktion - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Datum: %1 -Betrag: %2 -Typ: %3 -Adresse: %4 - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Wallet ist <b>verschlüsselt</b> und aktuell <b>entsperrt</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Wallet ist <b>verschlüsselt</b> und aktuell nur zum Anonymisieren <b>entsperrt</b> - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Wallet ist <b>verschlüsselt</b> und aktuell <b>gesperrt</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Gesamt: %1 (DS kompatibel: %2 / Aktiviert: %3) - - - Network Alert - Netzwerkalarm - - - - CoinControlDialog - - Quantity: - Anzahl: - - - Bytes: - Byte: - - - Amount: - Betrag: - - - Priority: - Priorität: - - - Fee: - Gebühr: - - - Coin Selection - "Coin Control"-Auswahl - - - Dust: - "Dust" - - - After Fee: - Abzüglich Gebühr: - - - Change: - Wechselgeld: - - - (un)select all - Alles (de)selektieren - - - Tree mode - Baumansicht - - - List mode - Listenansicht - - - (1 locked) - (1 gesperrt) - - - Amount - Betrag - - - Received with label - Empfangen über Bezeichner - - - Received with address - Empfangen über Adresse - - - DS Rounds - DS Runden - - - Date - Datum - - - Confirmations - Bestätigungen - - - Confirmed - Bestätigt - - - Priority - Priorität - - - Copy address - Adresse kopieren - - - Copy label - Bezeichnung kopieren - - - Copy amount - Betrag kopieren - - - Copy transaction ID - Transaktions-ID kopieren - - - Lock unspent - Nicht ausgegebenen Betrag sperren - - - Unlock unspent - Nicht ausgegebenen Betrag entsperren - - - Copy quantity - Anzahl kopieren - - - Copy fee - Gebühr kopieren - - - Copy after fee - Abzüglich Gebühr kopieren - - - Copy bytes - Byte kopieren - - - Copy priority - Priorität kopieren - - - Copy dust - "Dust" Betrag kopieren - - - Copy change - Wechselgeld kopieren - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Nicht-anonymisierter Input ausgewählt. <b>Darksend wird deaktiviert.</b><br><br>Sollten Sie trotzdem Darksend verwenden wollen, müssen Sie zuerst alle nicht-anonymisierten Inputs entmarkieren und das Ankreuzfeld "Darksend" erneut auswählen. - - - highest - am höchsten - - - higher - höher - - - high - hoch - - - medium-high - mittel-hoch - - - Can vary +/- %1 duff(s) per input. - Kann um +/- %1 duff(s) pro Eingabe variieren. - - - n/a - k.A. - - - medium - mittel - - - low-medium - niedrig-mittel - - - low - niedrig - - - lower - niedriger - - - lowest - am niedrigsten - - - (%1 locked) - (%1 gesperrt) - - - none - keine - - - yes - ja - - - no - nein - - - This label turns red, if the transaction size is greater than 1000 bytes. - Diese Bezeichnung wird rot, wenn die Transaktion größer als 1000 Byte ist. - - - This means a fee of at least %1 per kB is required. - Das bedeutet, dass eine Gebühr von mindestens %1 pro kB erforderlich ist. - - - Can vary +/- 1 byte per input. - Kann um +/- 1 Byte pro Eingabe variieren. - - - Transactions with higher priority are more likely to get included into a block. - Transaktionen mit höherer Priorität haben eine größere Chance in einen Block aufgenommen zu werden. - - - This label turns red, if the priority is smaller than "medium". - Diese Bezeichnung wird rot, wenn die Priorität niedriger als "mittel" ist. - - - This label turns red, if any recipient receives an amount smaller than %1. - Diese Bezeichnung wird rot, wenn irgendein Empfänger einen Betrag kleiner als %1 erhält. - - - (no label) - (keine Bezeichnung) - - - change from %1 (%2) - Wechselgeld von %1 (%2) - - - (change) - (Wechselgeld) - - - - DarksendConfig - - Configure Darksend - Darksend konfigurieren - - - Basic Privacy - Einfacher Datenschutz - - - High Privacy - Hoher Datenschutz - - - Maximum Privacy - Maximaler Datenschutz - - - Please select a privacy level. - Bitten wählen Sie eine Datenschutz-Stufe. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Benutze 2 separate Masternodes um bis zu 1000 DASH zu mixen - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Benutze 8 separate Masternodes um bis zu 1000 DASH zu mixen - - - Use 16 separate masternodes - Benutze 16 separate Masternodes - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Diese Option ist am Schnellsten und kostet ungefähr 0,025 DASH, um 1000 DASH zu anonymisieren - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Diese Option ist einigermaßen schnell und kostet ungefähr 0,05 DASH, um 1000 DASH zu anonymisieren - - - 0.1 DASH per 1000 DASH you anonymize. - 0,1 DASH pro 1000 zu anonymisierende Dash. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Dies ist die langsamste und sicherste Option. Maximale Anonymität kostet - - - Darksend Configuration - Darksend-Konfiguration - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend wurde erfolgreich auf einfachen Datenschutz (%1 und 2 Runden) gesetzt. Sie können dies jederzeit im Konfigurationsfenster von Dash ändern. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend wurde erfolgreich auf hohen Datenschutz (%1 und 8 Runden) gesetzt. Sie können dies jederzeit im Konfigurationsfenster von Dash ändern. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend wurde erfolgreich auf maximalen Datenschutz (%1 und 16 Runden) gesetzt. Sie können dies jederzeit im Konfigurationsfenster von Dash ändern. - - - - EditAddressDialog - - Edit Address - Adresse bearbeiten - - - &Label - &Bezeichnung - - - The label associated with this address list entry - Bezeichnung, die dem Adresslisteneintrag zugeordnet ist. - - - &Address - &Adresse - - - The address associated with this address list entry. This can only be modified for sending addresses. - Adresse, die dem Adresslisteneintrag zugeordnet ist. Diese kann nur bei Zahlungsadressen verändert werden. - - - New receiving address - Neue Empfangsadresse - - - New sending address - Neue Zahlungsadresse - - - Edit receiving address - Empfangsadresse bearbeiten - - - Edit sending address - Zahlungsadresse bearbeiten - - - The entered address "%1" is not a valid Dash address. - Die eingegebene Adresse "%1" ist keine gültige Dash-Adresse. - - - The entered address "%1" is already in the address book. - Die eingegebene Adresse "%1" befindet sich bereits im Adressbuch. - - - Could not unlock wallet. - Wallet konnte nicht entsperrt werden. - - - New key generation failed. - Erzeugung eines neuen Schlüssels fehlgeschlagen. - - - - FreespaceChecker - - A new data directory will be created. - Es wird ein neues Datenverzeichnis angelegt. - - - name - Name - - - Directory already exists. Add %1 if you intend to create a new directory here. - Verzeichnis existiert bereits. Fügen Sie %1 an, wenn Sie beabsichtigen hier ein neues Verzeichnis anzulegen. - - - Path already exists, and is not a directory. - Pfad existiert bereits und ist kein Verzeichnis. - - - Cannot create data directory here. - Datenverzeichnis kann hier nicht angelegt werden. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - Version - - - (%1-bit) - (%1-Bit) - - - About Dash Core - Über Dash Core - - - Command-line options - Kommandozeilenoptionen - - - Usage: - Benutzung: - - - command-line options - Kommandozeilenoptionen - - - UI options - UI-Optionen - - - Choose data directory on startup (default: 0) - Datenverzeichnis beim Starten auswählen (Standard: 0) - - - Set language, for example "de_DE" (default: system locale) - Sprache festlegen, z.B. "de_DE" (Standard: Systemstandard) - - - Start minimized - Minimiert starten - - - Set SSL root certificates for payment request (default: -system-) - SSL-Wurzelzertifikate für Zahlungsanforderungen festlegen (Standard: Systemstandard) - - - Show splash screen on startup (default: 1) - Startbildschirm beim Starten anzeigen (Standard: 1) - - - - Intro - - Welcome - Willkommen - - - Welcome to Dash Core. - Willkommen zu Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Da dies das erste Mal ist, dass Sie Dash Core starten, legen Sie jetzt bitte fest, an welchem Ort die Daten gespeichert werden sollen. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core wird jetzt die Blockchain laden und lokal speichern. Dafür sind mindestens %1GB freier Speicherplatz erforderlich. Der Speicherbedarf wird mit der Zeit anwachsen. Das Wallet wird ebenfalls in diesem Verzeichnis gespeichert. - - - Use the default data directory - Standard-Datenverzeichnis verwenden - - - Use a custom data directory: - Ein benutzerdefiniertes Datenverzeichnis verwenden: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Fehler: Angegebenes Datenverzeichnis "%1" kann nicht angelegt werden. - - - Error - Fehler - - - %1 GB of free space available - %1 GB freier Speicherplatz verfügbar - - - (of %1 GB needed) - (von benötigten %1 GB) - - - - OpenURIDialog - - Open URI - URI öffnen - - - Open payment request from URI or file - Zahlungsanforderung über URI oder aus Datei öffnen - - - URI: - URI: - - - Select payment request file - Zahlungsanforderungsdatei auswählen - - - Select payment request file to open - Zu öffnende Zahlungsanforderungsdatei auswählen - - - - OptionsDialog - - Options - Konfiguration - - - &Main - &Allgemein - - - Automatically start Dash after logging in to the system. - Dash nach der Anmeldung am System automatisch starten. - - - &Start Dash on system login - &Starte Dash automatisch nach Systemanmeldung - - - Size of &database cache - Größe des &Datenbankcaches - - - MB - MB - - - Number of script &verification threads - Anzahl an Skript-&Verifizierungs-Threads - - - (0 = auto, <0 = leave that many cores free) - (0 = automatisch, <0 = so viele Kerne frei lassen) - - - Darksend rounds to use - Darksend Runden - - - This amount acts as a threshold to turn off Darksend once it's reached. - Beim Erreichen dieses Betrages wird Darksend ausgeschaltet. - - - Amount of Dash to keep anonymized - Anzahl anonymisierter Dash - - - W&allet - W&allet - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Wenn Sie das Ausgeben von unbestätigtem Wechselgeld deaktivieren, kann das Wechselgeld einer <br/> Transaktion nicht verwendet werden, bis es mindestens eine Bestätigung erhalten hat.<br/>Dies wirkt sich auf die Berechnung des Kontostands aus. - - - Accept connections from outside - Eingehende Verbindungen annehmen - - - Allow incoming connections - Eingehende Verbindungen erlauben - - - Connect to the Dash network through a SOCKS5 proxy. - Über einen SOCKS5-Proxy mit dem Dash-Netzwerk verbinden. - - - &Connect through SOCKS5 proxy (default proxy): - Über einen SOCKS5-Proxy &verbinden (Standardproxy): - - - Expert - Erweiterte Wallet-Optionen - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Diese Einstellung setzt fest, durch wie viele Masternodes ein Input anonymisiert wird. <br/> Eine höhere Anzahl bedeutet höhere Anonymität, verursacht allerdings auch höhere Gebühren. - - - Whether to show coin control features or not. - Legt fest, ob die "Coin Control"-Funktionen angezeigt werden. - - - Enable coin &control features - "&Coin Control"-Funktionen aktivieren - - - &Spend unconfirmed change - &Unbestätigtes Wechselgeld darf ausgegeben werden - - - &Network - &Netzwerk - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Automatisch den Dash-Clientport auf dem Router öffnen. Dies funktioniert nur, wenn Ihr Router UPnP unterstützt und dies aktiviert ist. - - - Map port using &UPnP - Portweiterleitung via &UPnP - - - Proxy &IP: - Proxy-&IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP-Adresse des Proxies (z.B. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Port des Proxies (z.B. 9050) - - - &Window - &Programmfenster - - - Show only a tray icon after minimizing the window. - Nur ein Symbol im Infobereich anzeigen, nachdem das Programmfenster minimiert wurde. - - - &Minimize to the tray instead of the taskbar - In den Infobereich anstatt in die Taskleiste &minimieren - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimiert die Anwendung anstatt sie zu beenden wenn das Fenster geschlossen wird. Wenn dies aktiviert ist, müssen Sie das Programm über "Beenden" im Menü schließen. - - - M&inimize on close - Beim Schließen m&inimieren - - - &Display - Anzei&ge - - - User Interface &language: - &Sprache der Benutzeroberfläche: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Legt die Sprache der Benutzeroberfläche fest. Diese Einstellung wird erst nach einem Neustart von Dash aktiv. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Fehlt eine Sprache oder ist unvollständig übersetzt? Hier können Sie helfen: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Design/Thema der Benutzeroberfläche: - - - &Unit to show amounts in: - &Einheit der Beträge: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Wählen Sie die standardmäßige Untereinheit, die in der Benutzeroberfläche und beim Überweisen von Dash angezeigt werden soll. - - - Decimal digits - Dezimalziffern - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Externe URLs (z.B. ein Block-Explorer), die im Kontextmenü des Transaktionsverlaufs eingefügt werden. In der URL wird %s durch den Transaktionshash ersetzt. Bei Angabe mehrerer URLs müssen diese durch "|" voneinander getrennt werden. - - - Third party transaction URLs - Externe Transaktions-URLs - - - Active command-line options that override above options: - Aktive Kommandozeilenoptionen, die obige Konfiguration überschreiben: - - - Reset all client options to default. - Setzt die Clientkonfiguration auf Standardwerte zurück. - - - &Reset Options - Konfiguration &zurücksetzen - - - &OK - &OK - - - &Cancel - A&bbrechen - - - default - Standard - - - none - keine - - - Confirm options reset - Zurücksetzen der Konfiguration bestätigen - - - Client restart required to activate changes. - Clientneustart nötig, um die Änderungen zu aktivieren. - - - Client will be shutdown, do you want to proceed? - Client wird beendet, wollen Sie fortfahren? - - - This change would require a client restart. - Diese Änderung würde einen Clientneustart benötigen. - - - The supplied proxy address is invalid. - Die eingegebene Proxyadresse ist ungültig. - - - - OverviewPage - - Form - Formular - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Die angezeigten Informationen sind möglicherweise nicht mehr aktuell. Ihre Wallet wird automatisch synchronisiert, nachdem eine Verbindung zum Dash-Netzwerk hergestellt wurde. Dieser Prozess ist jedoch derzeit noch nicht abgeschlossen. - - - Available: - Verfügbar: - - - Your current spendable balance - Ihr aktuell verfügbarer Kontostand - - - Pending: - Ausstehend: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Betrag aus unbestätigten Transaktionen, der noch nicht im aktuell verfügbaren Kontostand enthalten ist - - - Immature: - Unreif: - - - Mined balance that has not yet matured - Erarbeiteter Betrag der noch nicht gereift ist - - - Balances - Kontostände - - - Unconfirmed transactions to watch-only addresses - Unbestätigte Transaktionen zu beobachteten Adressen - - - Mined balance in watch-only addresses that has not yet matured - Erarbeiteter Betrag der beobachteten Adressen der noch nicht gereift ist - - - Total: - Gesamtbetrag: - - - Your current total balance - Aktueller Gesamtbetrag aus obigen Kategorien - - - Current total balance in watch-only addresses - Kontostand der beobachteten Adressen - - - Watch-only: - Beobachtet: - - - Your current balance in watch-only addresses - Aktueller Kontostand der beobachteten Adressen - - - Spendable: - Verfügbar: - - - Status: - Status: - - - Enabled/Disabled - Aktiviert/Deaktiviert - - - Completion: - Vollendet: - - - Darksend Balance: - Darksend Kontostand: - - - Amount and Rounds: - Betrag und Runden: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Runden - - - Submitted Denom: - Stückelung des Betrages: - - - n/a - k.A. - - - Darksend - Darksend - - - Recent transactions - Letzte Transaktionen - - - Start/Stop Mixing - Starte/Stoppe das Mixen - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Die gestückelten Beträge, die Sie zu dem Masternode gesendet haben.<br> Zum Erfolgreichen Mixen müssen andere Benutzer exakt gleich gestückelte Beträge senden. - - - (Last Message) - (Letzte Nachricht) - - - Try to manually submit a Darksend request. - Versuche eine Darksendanfrage manuell abzusetzen. - - - Try Mix - Versuche zu Mixen - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Aktuellen Darksend Status zurücksetzen (wenn der Prozess des Mixens bereits begonnen hat kann es passieren, dass Darksend unterbrochen wird. Bereits gezahlte Gebühren werden einbehalten!) - - - Reset - Zurücksetzen - - - out of sync - nicht synchron - - - Disabled - Deaktiviert - - - Start Darksend Mixing - Starte Darksend Mixen - - - Stop Darksend Mixing - Stoppe Darksend Mixen - - - No inputs detected - Keine Inputs gefunden - - - %n Rounds - %n Runde%n Runden - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Nicht genug kompatible Inputs zum Anonymisieren von <span style='color:red;'>%1</span> gefunden,<br/><span style='color:red;'>%2</span> wird stattdessen anonymisiert - - - Overall progress - Fortschritt - - - Denominated - Gestückelt - - - Anonymized - Anonymisiert - - - Denominated inputs have %5 of %n rounds on average - Gestückelte Inputs haben im Durchschnitt %5 von %n RundeGestückelte Inputs haben im Durchschnitt %5 von %n Runden - - - Found enough compatible inputs to anonymize %1 - Genug kompatible Inputs zum Anonymisieren von %1 gefunden - - - Mixed - Gemixt - - - Enabled - Aktiviert - - - Last Darksend message: - - Letzter Darksend Status: - - - - N/A - k.A. - - - Darksend was successfully reset. - Darksend wurde erfolgreich zurückgesetzt. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Wenn Sie keine internen Darksend-Gebühren oder -Transaktionen sehen wollen wählen Sie "Gängigste" als Typ auf der "Transaktionen" Karteikarte. - - - Darksend requires at least %1 to use. - Zur Benutzung von Darksend benötigt man mindestens %1 - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Das Wallet ist gesperrt und der Benutzer hat abgelehnt, es zu entsperren. Darksend wird deaktiviert. - - - - PaymentServer - - Payment request error - Fehlerhafte Zahlungsanforderung - - - Cannot start dash: click-to-pay handler - Dash kann nicht gestartet werden: click-to-pay handler - - - URI handling - URI-Verarbeitung - - - Payment request fetch URL is invalid: %1 - Abruf-URL der Zahlungsanforderung ist ungültig: %1 - - - Payment request file handling - Zahlungsanforderungsdatei-Verarbeitung - - - Invalid payment address %1 - Ungültige Zahlungsadresse %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - URI konnte nicht erfolgreich verarbeitet werden. Höchstwahrscheinlich ist dies entweder keine gültige Dash-Adresse oder die URI-Parameter sind falsch gesetzt. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Zahlungsanforderungsdatei kann nicht gelesen werden! Dies kann durch eine ungültige Zahlungsanforderungsdatei verursacht werden. - - - Payment request rejected - Zahlungsanforderung abgelehnt - - - Payment request network doesn't match client network. - Netzwerk der Zahlungsanforderung passt nicht zum Client-Netzwerk. - - - Payment request has expired. - Zahlungsanforderung ist abgelaufen - - - Payment request is not initialized. - Zahlungsanforderung ist nicht initialisiert. - - - Unverified payment requests to custom payment scripts are unsupported. - Unverifizierte Zahlungsanforderungen an benutzerdefinierte Zahlungsskripte werden nicht unterstützt. - - - Requested payment amount of %1 is too small (considered dust). - Angeforderter Zahlungsbetrag in Höhe von %1 ist zu niedrig und wurde als "Dust" eingestuft. - - - Refund from %1 - Rücküberweisung von %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Zahlungsanforderung %1 ist zu groß (%2 Bytes, erlaubt sind %3 Bytes). - - - Payment request DoS protection - Überlastungs-Schutz Zahlungsanforderung - - - Error communicating with %1: %2 - Kommunikationsfehler mit %1: %2 - - - Payment request cannot be parsed! - Zahlungsanforderung kann nicht analysiert werden! - - - Bad response from server %1 - Fehlerhafte Antwort vom Server: %1 - - - Network request error - fehlerhafte Netzwerkanfrage - - - Payment acknowledged - Zahlung bestätigt - - - - PeerTableModel - - Address/Hostname - Adresse/Rechnername - - - User Agent - Benutzerprogramm - - - Ping Time - Ping-Antwort-Zeit - - - - QObject - - Amount - Betrag - - - Enter a Dash address (e.g. %1) - Dash-Adresse eingeben (z.B. %1) - - - %1 d - %1 T - - - %1 h - %1 St. - - - %1 m - %1 Min. - - - %1 s - %1 S - - - NETWORK - NETZWERK - - - UNKNOWN - UNBEKANNT - - - None - Keine - - - N/A - k.A. - - - %1 ms - %1 Ms - - - - QRImageWidget - - &Save Image... - Grafik &speichern... - - - &Copy Image - Grafik &kopieren - - - Save QR Code - QR-Code speichern - - - PNG Image (*.png) - PNG-Grafik (*.png) - - - - RPCConsole - - Tools window - Werkzeuge - - - &Information - &Information - - - General - Allgemein - - - Name - Name - - - Client name - Clientname - - - N/A - k.A. - - - Number of connections - Anzahl Verbindungen - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Öffnet die Dash-Debugprotokolldatei aus dem aktuellen Datenverzeichnis. Dies kann bei großen Protokolldateien einige Sekunden dauern. - - - &Open - &Öffnen - - - Startup time - Startzeit - - - Network - Netzwerk - - - Last block time - Letzte Blockzeit - - - Debug log file - Debugprotokolldatei - - - Using OpenSSL version - Verwendete OpenSSL-Version - - - Build date - Erstellungsdatum - - - Current number of blocks - Aktuelle Anzahl Blöcke - - - Client version - Clientversion - - - Using BerkeleyDB version - Verwendete BerkeleyDB-Version - - - Block chain - Blockkette - - - Number of Masternodes - Anzahl Masternodes - - - &Console - &Konsole - - - Clear console - Konsole zurücksetzen - - - &Network Traffic - &Netzwerkauslastung - - - &Clear - &Zurücksetzen - - - Totals - Summen - - - Received - Empfangen - - - Sent - Überwiesen - - - &Peers - &Gegenstellen - - - Select a peer to view detailed information. - Gegenstelle auswählen, um Detailinformationen zu sehen. - - - Direction - Richtung - - - Version - Version - - - User Agent - Benutzerprogramm - - - Services - Dienste - - - Starting Height - Ausgangs-Blocknummer - - - Sync Height - Synchronisierte Blocknummer - - - Ban Score - Ausschluss-Punktzahl - - - Connection Time - Verbindungszeit - - - Last Send - Letzte Überweisung - - - Last Receive - Letzter Empfang - - - Bytes Sent - Bytes gesendet: - - - Bytes Received - Bytes empfangen - - - Ping Time - Ping-Antwort-Zeit - - - &Wallet Repair - &Wallet-Reparatur - - - Salvage wallet - Wallet Datenwiederherstellungen - - - Rescan blockchain files - Dateien der Blockkette erneut durchsuchen - - - Recover transactions 1 - Transaktion wiederherstellen 1 - - - Recover transactions 2 - Transaktion wiederherstellen 2 - - - Upgrade wallet format - Wallet-Format aktualisieren - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Diese Buttons starten die Wallet mit Kommandozeilen-Parametern zur Reparatur von etwaigen Fehlern. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: versucht private Schlüssel aus einer beschädigten wallet.dat wiederherzustellen - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Blockkette erneut nach fehlenden Wallet-Transaktionen durchsuchen - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Transaktion wiederherstellen (Metadaten, z.B. Kontoinhaber, behalten) - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Transaktion wiederherstellen (Metadaten verwerfen) - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - Wallet-Format aktualisieren. (dies ist KEINE Aktualisierung des Wallet) - - - Wallet repair options. - Optionen zur Wallet-Reparatur. - - - Rebuild index - Index neu aufbauen - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Blockkettenindex aus aktuellen Dateien blk000??.dat wieder aufbauen - - - In: - eingehend: - - - Out: - ausgehend: - - - Welcome to the Dash RPC console. - Willkommen in der Dash RPC-Console. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Pfeiltaste hoch und runter, um den Verlauf durchzublättern und <b>Strg-L</b>, um die Konsole zurückzusetzen. - - - Type <b>help</b> for an overview of available commands. - Bitte <b>help</b> eingeben, um eine Übersicht verfügbarer Befehle zu erhalten. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - über %1 - - - never - niemals - - - Inbound - Eingehend - - - Outbound - Ausgehend - - - Unknown - Unbekannt - - - Fetching... - Am Abrufen... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Eine der bereits verwendeten Empfangsadressen wiederverwenden.<br> Addressen wiederzuverwenden birgt Sicherheits- und Datenschutzrisiken.<br> Außer zum Neuerstellen einer bereits erzeugten Zahlungsanforderung sollten Sie dies nicht nutzen. - - - R&euse an existing receiving address (not recommended) - Vorhandene Empfangsadresse &wiederverwenden (nicht empfohlen) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Eine optionale Nachricht, die an die Zahlungsanforderung angehängt wird. Sie wird angezeigt, wenn die Anforderung geöffnet wird. Hinweis: Diese Nachricht wird nicht mit der Zahlung über das Dash-Netzwerk gesendet. - - - &Message: - &Nachricht: - - - An optional label to associate with the new receiving address. - Eine optionale Bezeichnung, die der neuen Empfangsadresse zugeordnet wird. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Eine optionale Nachricht, die an die Zahlungsanforderung angehängt wird. Sie wird angezeigt, wenn die Anforderung geöffnet wird.<br> Hinweis: Diese Nachricht wird nicht mit der Zahlung über das Dash-Netzwerk gesendet. - - - Use this form to request payments. All fields are <b>optional</b>. - Verwenden Sie dieses Formular, um Zahlungen anzufordern. Alle Felder sind <b>optional</b>. - - - &Label: - &Bezeichnung: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Ein optional angeforderte Betrag. Lassen Sie dieses Feld leer oder setzen Sie es auf 0, um keinen spezifischen Betrag anzufordern. - - - &Amount: - &Betrag: - - - &Request payment - &Zahlung anfordern - - - Clear all fields of the form. - Alle Formularfelder zurücksetzen. - - - Clear - Zurücksetzen - - - Requested payments history - Verlauf der angeforderten Zahlungen - - - Show the selected request (does the same as double clicking an entry) - Ausgewählte Zahlungsanforderungen anzeigen (entspricht einem Doppelklick auf einen Eintrag) - - - Show - Anzeigen - - - Remove the selected entries from the list - Ausgewählte Einträge aus der Liste entfernen - - - Remove - Entfernen - - - Copy label - Bezeichnung kopieren - - - Copy message - Nachricht kopieren - - - Copy amount - Betrag kopieren - - - - ReceiveRequestDialog - - QR Code - QR-Code - - - Copy &URI - &URI kopieren - - - Copy &Address - &Addresse kopieren - - - &Save Image... - Grafik &speichern... - - - Request payment to %1 - Zahlung anfordern an %1 - - - Payment information - Zahlungsinformationen - - - URI - URI - - - Address - Adresse - - - Amount - Betrag - - - Label - Bezeichnung - - - Message - Nachricht - - - Resulting URI too long, try to reduce the text for label / message. - Resultierende URI ist zu lang, bitte den Text für Bezeichnung/Nachricht kürzen. - - - Error encoding URI into QR Code. - Beim Enkodieren der URI in den QR-Code ist ein Fehler aufgetreten. - - - - RecentRequestsTableModel - - Date - Datum - - - Label - Bezeichnung - - - Message - Nachricht - - - Amount - Betrag - - - (no label) - (keine Bezeichnung) - - - (no message) - (keine Nachricht) - - - (no amount) - (kein Betrag) - - - - SendCoinsDialog - - Send Coins - Dash überweisen - - - Coin Control Features - "Coin Control"-Funktionen - - - Inputs... - Inputs... - - - automatically selected - automatisch ausgewählt - - - Insufficient funds! - Unzureichender Kontostand! - - - Quantity: - Anzahl: - - - Bytes: - Byte: - - - Amount: - Betrag: - - - Priority: - Priorität: - - - medium - mittel - - - Fee: - Gebühr: - - - Dust: - "Dust" - - - no - nein - - - After Fee: - Abzüglich Gebühr: - - - Change: - Wechselgeld: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Wenn dies aktivert, und die Wechselgeld-Adresse leer oder ungültig ist, wird das Wechselgeld einer neu erzeugten Adresse gutgeschrieben. - - - Custom change address - Benutzerdefinierte Wechselgeld-Adresse - - - Transaction Fee: - Transaktionsgebühr: - - - Choose... - Auswählen... - - - collapse fee-settings - Gebühreneinstellungen reduzieren - - - Minimize - Minimieren - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Wenn die benutzerdefinierten Gebühren auf 1000 duffs gesetzt sind und eine Transaktion hat nur 250 Bytes, dann kostet "pro Kilobyte" nur 250 duffs Gebühren,<br/> während "mindestens" 1000 duffs kostet. Transaktionen größer als 1 Kilobyte werden immer pro Kilobyte bezahlt. - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Wenn die benutzerdefinierten Gebühren auf 1000 duffs gesetzt sind und eine Transaktion hat nur 250 Bytes, dann kostet "pro Kilobyte" nur 250 duffs Gebühren, während "mindestens" 1000 duffs kostet. Transaktionen größer als 1 Kilobyte werden immer pro Kilobyte bezahlt. - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Nur die minimalen Gebühren zu zahlen ist völlig ausreichend so lange in einem neuen Block der Blockkette noch genug Platz für neue Transaktionen ist.<br /> Bitte beachten Sie dass wenn dies in der Zukunft nicht mehr der Fall sein sollte Ihre Transaktion eventuell niemals in einen neuen Block aufgenommen werden wird, also niemals bestätigt wird. - - - per kilobyte - pro Kilobyte - - - total at least - mindestens - - - (read the tooltip) - (Kurzinfo lesen) - - - Recommended: - Empfohlen: - - - Custom: - Benutzerdefiniert: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - ("Intelligente" Gebühren sind noch nicht initialisiert. Dies dauert normalerweise ein paar Blöcke...) - - - Confirmation time: - Bestätigungszeit: - - - normal - normal - - - fast - schnell - - - Send as zero-fee transaction if possible - Wenn möglich als gebührenfreie Transaktion versenden - - - (confirmation may take longer) - (Bestätigung könnte länger dauern) - - - Confirm the send action - Überweisung bestätigen - - - S&end - &Überweisen - - - Clear all fields of the form. - Alle Formularfelder zurücksetzen. - - - Clear &All - &Zurücksetzen - - - Send to multiple recipients at once - An mehrere Empfänger auf einmal überweisen - - - Add &Recipient - Empfänger &hinzufügen - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Kontostand: - - - Copy quantity - Anzahl kopieren - - - Copy amount - Betrag kopieren - - - Copy fee - Gebühr kopieren - - - Copy after fee - Abzüglich Gebühr kopieren - - - Copy bytes - Byte kopieren - - - Copy priority - Priorität kopieren - - - Copy dust - "Dust" Betrag kopieren - - - Copy change - Wechselgeld kopieren - - - using - mittels - - - anonymous funds - anonymisierte Coins - - - (darksend requires this amount to be rounded up to the nearest %1). - (Darksend verlangt, dass dieser Betrag auf den nächsten %1 aufgerundet wird) - - - any available funds (not recommended) - beliebiger verfügbarer Coins (nicht empfohlen) - - - and InstantX - und InstantX - - - %1 to %2 - %1 an %2 - - - Are you sure you want to send? - Wollen Sie die Überweisung ausführen? - - - are added as transaction fee - werden als Transaktionsgebühr hinzugefügt - - - Total Amount = <b>%1</b><br />= %2 - Gesamtbetrag = <b>%1</b><br />= %2 - - - Confirm send coins - Überweisung bestätigen - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Gebühren %1 x höher als %2 pro Kilobyte sind wahnsinnig überhöht. - - - Estimated to begin confirmation within %n block(s). - Geschätzter Beginn der Bestätigung in %n Block.Geschätzter Beginn der Bestätigung in %n Blocks. - - - The recipient address is not valid, please recheck. - Die Zahlungsadresse ist ungültig, bitte nochmals überprüfen. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 von %2 Einträgen angezeigt)</b> - - - The amount to pay must be larger than 0. - Der zu zahlende Betrag muss größer als 0 sein. - - - The amount exceeds your balance. - Der angegebene Betrag übersteigt ihren Kontostand. - - - The total exceeds your balance when the %1 transaction fee is included. - Der angegebene Betrag übersteigt aufgrund der Transaktionsgebühr in Höhe von %1 ihren Kontostand. - - - Duplicate address found, can only send to each address once per send operation. - Doppelte Zahlungsadresse gefunden, pro Überweisung kann an jede Adresse nur einmalig etwas überwiesen werden. - - - Transaction creation failed! - Transaktionserstellung fehlgeschlagen! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Die Transaktion wurde abgelehnt! -Dies kann passieren, wenn einige Dash aus ihrer Wallet bereits ausgegeben wurden. Beispielsweise weil Sie eine Kopie ihrer wallet.dat nutzten und die Dash dort ausgegeben haben. Diese Ausgaben sind in diesem Fall in der derzeit aktiven Wallet nicht vermerkt. - - - Error: The wallet was unlocked only to anonymize coins. - Fehler: das Wallet wurde nur zum Anonymisieren entsperrt. - - - Pay only the minimum fee of %1 - Nur die minimalen Gebühren von %1 zahlen - - - Warning: Invalid Dash address - Warnung: ungültige Dash-Adresse - - - Warning: Unknown change address - Warnung: Unbekannte Wechselgeld-Adresse - - - (no label) - (keine Bezeichnung) - - - - SendCoinsEntry - - This is a normal payment. - Dies ist eine normale Überweisung. - - - Pay &To: - E&mpfänger: - - - The Dash address to send the payment to - Dash-Adresse, an die überwiesen werden soll - - - Choose previously used address - Bereits verwendete Adresse auswählen - - - Alt+A - Alt+A - - - Paste address from clipboard - Adresse aus der Zwischenablage einfügen - - - Alt+P - Alt+P - - - Remove this entry - Diesen Eintrag entfernen - - - &Label: - &Bezeichnung: - - - Enter a label for this address to add it to the list of used addresses - Adressbezeichnung eingeben, die dann zusammen mit der Adresse der Liste bereits verwendeter Adressen hinzugefügt wird. - - - A&mount: - Betra&g: - - - Message: - Nachricht: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Eine an die "dash:"-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Dash-Netzwerk gesendet. - - - This is an unverified payment request. - Dies is eine unverifizierte Zahlungsanforderung. - - - Pay To: - Empfänger: - - - Memo: - Memo: - - - This is a verified payment request. - Dies is eine verifizierte Zahlungsanforderung. - - - Enter a label for this address to add it to your address book - Adressbezeichnung eingeben (diese wird zusammen mit der Adresse dem Adressbuch hinzugefügt) - - - - ShutdownWindow - - Dash Core is shutting down... - Dash-Core wird herunter gefahren... - - - Do not shut down the computer until this window disappears. - Fahren Sie den Computer nicht herunter, bevor dieses Fenster verschwindet. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Signaturen - eine Nachricht signieren / verifizieren - - - &Sign Message - Nachricht &signieren - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Sie können Nachrichten mit ihren Adressen signieren, um den Besitz dieser Adressen zu beweisen. Bitte nutzen Sie diese Funktion mit Vorsicht und nehmen Sie sich vor Phishingangriffen in Acht. Signieren Sie nur Nachrichten, mit denen Sie vollständig einverstanden sind. - - - The Dash address to sign the message with - Dash-Adresse, mit der die Nachricht signiert werden soll - - - Choose previously used address - Bereits verwendete Adresse auswählen - - - Alt+A - Alt+A - - - Paste address from clipboard - Adresse aus der Zwischenablage einfügen - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Zu signierende Nachricht hier eingeben - - - Signature - Signatur - - - Copy the current signature to the system clipboard - Aktuelle Signatur in die Zwischenablage kopieren - - - Sign the message to prove you own this Dash address - Die Nachricht signieren, um den Besitz dieser Dash-Adresse zu belegen - - - Sign &Message - &Nachricht signieren - - - Reset all sign message fields - Alle "Nachricht signieren"-Felder zurücksetzen - - - Clear &All - &Zurücksetzen - - - &Verify Message - Nachricht &verifizieren - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Geben Sie die signierende Adresse, Nachricht (achten Sie darauf Zeilenumbrüche, Leerzeichen, Tabulatoren usw. exakt zu kopieren) und Signatur unten ein, um die Nachricht zu verifizieren. Vorsicht, interpretieren Sie nicht mehr in die Signatur hinein, als in der signierten Nachricht selber enthalten ist, um nicht von einem Man-in-the-middle-Angriff hinters Licht geführt zu werden. - - - The Dash address the message was signed with - Dash-Adresse, mit der die Nachricht signiert worden ist - - - Verify the message to ensure it was signed with the specified Dash address - Die Nachricht verifizieren, um sicherzustellen, dass diese mit der angegebenen Dash-Adresse signiert wurde - - - Verify &Message - &Nachricht verifizieren - - - Reset all verify message fields - Alle "Nachricht verifizieren"-Felder zurücksetzen - - - Click "Sign Message" to generate signature - Auf "Nachricht signieren" klicken, um die Signatur zu erzeugen - - - The entered address is invalid. - Die eingegebene Adresse ist ungültig. - - - Please check the address and try again. - Bitte überprüfen Sie die Adresse und versuchen Sie es erneut. - - - The entered address does not refer to a key. - Die eingegebene Adresse verweist nicht auf einen Schlüssel. - - - Wallet unlock was cancelled. - Wallet-Entsperrung wurde abgebrochen. - - - Private key for the entered address is not available. - Privater Schlüssel zur eingegebenen Adresse ist nicht verfügbar. - - - Message signing failed. - Signierung der Nachricht fehlgeschlagen. - - - Message signed. - Nachricht signiert. - - - The signature could not be decoded. - Die Signatur konnte nicht dekodiert werden. - - - Please check the signature and try again. - Bitte überprüfen Sie die Signatur und versuchen Sie es erneut. - - - The signature did not match the message digest. - Die Signatur entspricht nicht dem "Message Digest". - - - Message verification failed. - Verifikation der Nachricht fehlgeschlagen. - - - Message verified. - Nachricht verifiziert. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Version %1 - - - The Bitcoin Core developers - Die "Bitcoin Core"-Entwickler - - - The Dash Core developers - Die "Dash Core"-Entwickler - - - [testnet] - [Testnetz] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Geöffnet für %n weiteren BlockGeöffnet für %n weitere Blöcke - - - Open until %1 - Offen bis %1 - - - conflicted - in Konflikt stehend - - - %1/offline (verified via instantx) - %1/offline (Überprüft durch InstantX) - - - %1/confirmed (verified via instantx) - %1/bestätigt (Überprüft durch InstantX) - - - %1 confirmations (verified via instantx) - %1 Bestätigungen (Überprüft durch InstantX) - - - %1/offline - %1/offline - - - %1/unconfirmed - %1/unbestätigt - - - %1 confirmations - %1 Bestätigungen - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/offline (Überprüfung durch InstantX - %2 von %3 Signaturen) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/bestätigt (Überprüfung durch InstantX - %2 von %3 Signaturen) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 Bestätigungen (Überprüfung durch InstantX - %2 von %3 Signaturen) - - - %1/offline (InstantX verification failed) - %1/offline (Überprüfung durch InstantX fehlgeschlagen) - - - %1/confirmed (InstantX verification failed) - %1/bestätigt (Überprüfung durch InstantX fehlgeschlagen) - - - Status - Status - - - , has not been successfully broadcast yet - , wurde noch nicht erfolgreich übertragen - - - , broadcast through %n node(s) - , über %n Knoten übertragen, über %n Knoten übertragen - - - Date - Datum - - - Source - Quelle - - - Generated - Erzeugt - - - From - Von - - - unknown - unbekannt - - - To - An - - - own address - eigene Adresse - - - watch-only - beobachtet - - - label - Bezeichnung - - - Credit - Gutschrift - - - matures in %n more block(s) - reift noch %n Blockreift noch %n weitere Blöcke - - - not accepted - nicht angenommen - - - Debit - Belastung - - - Total debit - Gesamtbelastung - - - Total credit - Gesamtgutschrift - - - Transaction fee - Transaktionsgebühr - - - Net amount - Nettobetrag - - - Message - Nachricht - - - Comment - Kommentar - - - Transaction ID - Transaktions-ID - - - Merchant - Händler - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Erzeugte Dash müssen %1 Blöcke lang reifen, bevor sie ausgegeben werden können. Als Sie diesen Block erzeugten, wurde er an das Netzwerk übertragen, um ihn der Blockkette hinzuzufügen. Falls dies fehlschlägt wird der Status in "nicht angenommen" geändert und Sie werden keine Dash gutgeschrieben bekommen. Das kann gelegentlich passieren, wenn ein anderer Knoten einen Block fast zeitgleich erzeugt. - - - Debug information - Debuginformationen - - - Transaction - Transaktion - - - Inputs - Eingaben - - - Amount - Betrag - - - true - wahr - - - false - falsch - - - - TransactionDescDialog - - Transaction details - Transaktionsdetails - - - This pane shows a detailed description of the transaction - Dieser Bereich zeigt eine detaillierte Beschreibung der Transaktion an - - - - TransactionTableModel - - Date - Datum - - - Type - Typ - - - Address - Adresse - - - Open for %n more block(s) - Geöffnet für %n weiteren BlockGeöffnet für %n weitere Blöcke - - - Open until %1 - Offen bis %1 - - - Offline - Offline - - - Unconfirmed - Unbestätigt - - - Confirming (%1 of %2 recommended confirmations) - Wird bestätigt (%1 von %2 empfohlenen Bestätigungen) - - - Confirmed (%1 confirmations) - Bestätigt (%1 Bestätigungen) - - - Conflicted - in Konflikt stehend - - - Immature (%1 confirmations, will be available after %2) - Unreif (%1 Bestätigungen, wird verfügbar sein nach %2) - - - This block was not received by any other nodes and will probably not be accepted! - Dieser Block wurde von keinem anderen Knoten empfangen und wird wahrscheinlich nicht angenommen werden! - - - Generated but not accepted - Erzeugt, jedoch nicht angenommen - - - Received with - Empfangen über - - - Received from - Empfangen von - - - Received via Darksend - über/durch Darksend empfangen - - - Sent to - Überwiesen an - - - Payment to yourself - Eigenüberweisung - - - Mined - Erarbeitet - - - Darksend Denominate - Darksend Stückelung - - - Darksend Collateral Payment - Darksend Sicherheits-Zahlung - - - Darksend Make Collateral Inputs - Darksend Sicherheits-Eingänge machen - - - Darksend Create Denominations - Darksend Stückelungs-Gebühr - - - Darksent - Darksend - - - watch-only - beobachtet - - - (n/a) - (k.A.) - - - Transaction status. Hover over this field to show number of confirmations. - Transaktionsstatus, fahren Sie mit der Maus über dieses Feld, um die Anzahl der Bestätigungen zu sehen. - - - Date and time that the transaction was received. - Datum und Uhrzeit zu der die Transaktion empfangen wurde. - - - Type of transaction. - Art der Transaktion - - - Whether or not a watch-only address is involved in this transaction. - Zeigt ob eine beobachtete Adresse in dieser Transaktion beteiligt ist. - - - Destination address of transaction. - Zieladresse der Transaktion - - - Amount removed from or added to balance. - Der Betrag, der dem Kontostand abgezogen oder hinzugefügt wurde. - - - - TransactionView - - All - Alle - - - Today - Heute - - - This week - Diese Woche - - - This month - Diesen Monat - - - Last month - Letzten Monat - - - This year - Dieses Jahr - - - Range... - Zeitraum... - - - Most Common - Gängigste - - - Received with - Empfangen über - - - Sent to - Überwiesen an - - - Darksent - Darksend - - - Darksend Make Collateral Inputs - Darksend Sicherheits-Eingänge machen - - - Darksend Create Denominations - Darksend Stückelungs-Gebühr - - - Darksend Denominate - Darksend Stückelung - - - Darksend Collateral Payment - Darksend Sicherheits-Zahlung - - - To yourself - Eigenüberweisung - - - Mined - Erarbeitet - - - Other - Andere - - - Enter address or label to search - Zu suchende Adresse oder Bezeichnung eingeben - - - Min amount - Minimaler Betrag - - - Copy address - Adresse kopieren - - - Copy label - Bezeichnung kopieren - - - Copy amount - Betrag kopieren - - - Copy transaction ID - Transaktions-ID kopieren - - - Edit label - Bezeichnung bearbeiten - - - Show transaction details - Transaktionsdetails anzeigen - - - Export Transaction History - Transaktionsverlauf exportieren - - - Comma separated file (*.csv) - Kommagetrennte-Datei (*.csv) - - - Confirmed - Bestätigt - - - Watch-only - Beobachtet - - - Date - Datum - - - Type - Typ - - - Label - Bezeichnung - - - Address - Adresse - - - ID - ID - - - Exporting Failed - Exportieren fehlgeschlagen - - - There was an error trying to save the transaction history to %1. - Beim Speichern des Transaktionsverlaufs nach %1 ist ein Fehler aufgetreten. - - - Exporting Successful - Exportieren erfolgreich - - - The transaction history was successfully saved to %1. - Speichern des Transaktionsverlaufs nach %1 war erfolgreich. - - - Range: - Zeitraum: - - - to - bis - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Angezeigte Einheit. Anklicken, um andere Einheit zu wählen. - - - - WalletFrame - - No wallet has been loaded. - Es wurde keine Wallet geladen. - - - - WalletModel - - Send Coins - Dash überweisen - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX unterstützt das Versenden von Beträgen dieser Höhe noch nicht. Transaktionen sind zur Zeit auf maximal %1 DASH begrenzt. - - - - WalletView - - &Export - E&xportieren - - - Export the data in the current tab to a file - Daten der aktuellen Ansicht in eine Datei exportieren - - - Selected amount: - Ausgewählter Betrag: - - - Backup Wallet - Wallet sichern - - - Wallet Data (*.dat) - Wallet-Daten (*.dat) - - - Backup Failed - Sicherung fehlgeschlagen - - - There was an error trying to save the wallet data to %1. - Beim Speichern der Wallet-Daten nach %1 ist ein Fehler aufgetreten. - - - Backup Successful - Sicherung erfolgreich - - - The wallet data was successfully saved to %1. - Speichern der Wallet-Daten nach %1 war erfolgreich. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - An die angegebene Adresse binden und immer abhören. Für IPv6 "[Host]:Port"-Schreibweise verwenden - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Das Programm kann das Daten-Verzeichnis %s nicht als "in Verwendung" markieren. Wahrscheinlich läuft das Programm bereits. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend benutzt exakt gestückelte Beträge zum Versenden, Sie müssen dafür möglicherweise noch mehr Dash anonymisieren. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Regressionstest-Modus aktivieren, der eine spezielle Blockkette nutzt, in der Blöcke sofort gelöst werden können. - - - Error: Listening for incoming connections failed (listen returned error %s) - Fehler: Abhören nach eingehenden Verbindungen fehlgeschlagen (Fehler %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Befehl ausführen wenn ein relevanter Alarm empfangen wird oder wir einen wirklich langen Fork entdecken (%s im Befehl wird durch die Nachricht ersetzt) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Befehl ausführen wenn sich eine Wallet-Transaktion verändert (%s im Befehl wird durch die TxID ersetzt) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Befehl ausführen wenn der beste Block wechselt (%s im Befehl wird durch den Hash des Blocks ersetzt) - - - In this mode -genproclimit controls how many blocks are generated immediately. - In diesem Modus legt -genproclimit fest, wie viele Blöcke sofort erzeugt werden. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX benötigt Zahlungseingänge mit mindestens 6 Bestätigungen, warten Sie also ein paar Minuten und versuchen Sie es dann erneut. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Name, um eine URL für den KeyPass-Eintrag zu erzeugen, der die Wallet-Passphrase speichert. - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Abfrage der Peer-Adressen über DNS, falls es wenige Adressen gibt (Standard: 1, außer wenn -connect konfiguriert wurde) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Maximale Größe in Byte von Transaktionen hoher Priorität/mit niedrigen Gebühren festlegen (Standard: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Maximale Anzahl an Skript-Verifizierungs-Threads festlegen (%u bis %d, 0 = automatisch, <0 = so viele Kerne frei lassen, Standard: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Dies ist eine Vorab-Testversion - Verwendung auf eigene Gefahr - nicht für Mining- oder Handelsanwendungen nutzen! - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Dash Core den Prozess %s auf dem Computer nicht an sich binden. Wahrscheinlich läuft das Programm bereits. - - - Unable to locate enough Darksend denominated funds for this transaction. - Für diese Transaktion konnten nicht genug mit Darksend gestückelte Beträge gefunden werden. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Für diese Transaktion konnten nicht genug nicht mit Darksend gestückelte Beträge gefunden werden, die ungleich 1000 DASH sind. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Warnung: -paytxfee ist auf einen sehr hohen Wert festgelegt! Dies ist die Gebühr die beim Senden einer Transaktion fällig wird. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Warnung: Das Netzwerk scheint nicht vollständig übereinzustimmen! Einige Miner scheinen Probleme zu haben. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Warnung: Wir scheinen nicht vollständig mit unseren Gegenstellen übereinzustimmen! Sie oder die anderen Knoten müssen unter Umständen ihre Client-Software aktualisieren. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Warnung: Lesen von wallet.dat fehlgeschlagen! Alle Schlüssel wurden korrekt gelesen, Transaktionsdaten bzw. Adressbucheinträge fehlen aber möglicherweise oder sind inkorrekt. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Warnung: wallet.dat beschädigt, Datenrettung erfolgreich! Original wallet.dat wurde als wallet.{Zeitstempel}.dat in %s gespeichert. Falls ihr Kontostand oder Transaktionen nicht korrekt sind, sollten Sie dem vorangegangenen Zustand durch die Datensicherung wiederherstellen. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Es muss ein Masternode-Geheimschlüssel (masternodeprivkey) in der Konfiguration angegeben werden. Für weitere Informationen siehe Dokumentation. - - - (default: 1) - (Standard: 1) - - - Accept command line and JSON-RPC commands - Kommandozeilen- und JSON-RPC-Befehle annehmen - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Eingehende Verbindungen annehmen (Standard: 1, wenn nicht -proxy oder -connect) - - - Add a node to connect to and attempt to keep the connection open - Mit dem angegebenen Knoten verbinden und versuchen die Verbindung aufrecht zu erhalten - - - Allow DNS lookups for -addnode, -seednode and -connect - Erlaube DNS-Abfragen für -addnode, -seednode und -connect - - - Already have that input. - Haben diesen Eintrag bereits. - - - Attempt to recover private keys from a corrupt wallet.dat - Versuchen, private Schlüssel aus einer beschädigten wallet.dat wiederherzustellen - - - Block creation options: - Blockerzeugungsoptionen: - - - Can't denominate: no compatible inputs left. - Kann nicht zerstückeln: keine kompatiblen Eingänge übrig. - - - Cannot downgrade wallet - Wallet kann nicht auf eine ältere Version herabgestuft werden - - - Cannot resolve -bind address: '%s' - Kann Adresse in -bind nicht auflösen: '%s' - - - Cannot resolve -externalip address: '%s' - Kann Adresse in -externalip nicht auflösen: '%s' - - - Cannot write default address - Standardadresse kann nicht geschrieben werden - - - Collateral not valid. - Sicherheitszahlung nicht gültig. - - - Connect only to the specified node(s) - Mit nur dem oder den angegebenen Knoten verbinden - - - Connect to a node to retrieve peer addresses, and disconnect - Mit dem angegebenen Knoten verbinden, um Adressen von Gegenstellen abzufragen, danach trennen - - - Connection options: - Verbindungsoptionen: - - - Corrupted block database detected - Beschädigte Blockdatenbank erkannt - - - Darksend options: - Darksend Optionen: - - - Debugging/Testing options: - Debugging-/Testoptionen: - - - Discover own IP address (default: 1 when listening and no -externalip) - Eigene IP-Adresse erkennen (Standard: 1, wenn abgehört wird und nicht -externalip) - - - Do not load the wallet and disable wallet RPC calls - Die Wallet nicht laden und Wallet-RPC-Aufrufe deaktivieren - - - Do you want to rebuild the block database now? - Möchten Sie die Blockdatenbank jetzt neu aufbauen? - - - Done loading - Laden abgeschlossen - - - Entries are full. - Warteschlange ist voll. - - - Error initializing block database - Fehler beim Initialisieren der Blockdatenbank - - - Error initializing wallet database environment %s! - Fehler beim Initialisieren der Wallet-Datenbankumgebung %s! - - - Error loading block database - Fehler beim Laden der Blockdatenbank - - - Error loading wallet.dat - Fehler beim Laden von wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Fehler beim Laden von wallet.dat: Wallet beschädigt - - - Error opening block database - Fehler beim Öffnen der Blockdatenbank - - - Error reading from database, shutting down. - Fehler beim Lesen der Datenbank, Anwendung wird heruntergefahren. - - - Error recovering public key. - Fehler bei der Wiederherstellung des öffentlichen Schlüssels. - - - Error - Fehler - - - Error: Disk space is low! - Fehler: Zu wenig freier Speicherplatz auf dem Datenträger! - - - Error: Wallet locked, unable to create transaction! - Fehler: Wallet gesperrt, Transaktion kann nicht erstellt werden! - - - Error: You already have pending entries in the Darksend pool - Fehler: Es sind bereits anstehende Einträge im Darksend-Pool - - - Failed to listen on any port. Use -listen=0 if you want this. - Fehler, es konnte kein Port abgehört werden. Wenn dies so gewünscht wird -listen=0 verwenden. - - - Failed to read block - Lesen des Blocks fehlgeschlagen - - - If <category> is not supplied, output all debugging information. - Wenn <category> nicht angegeben wird, jegliche Debugginginformationen ausgeben. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = Transaktions-Metadaten wie z.B. Kontoinhaber behalten, 2 = Metadaten verwerfen) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - JSON-RPC Verbindungen von einer bestimmten Quelle zulassen. Für <ip> sind einzelne IPs (z.B. 1.2.3.4), Netzwerk/Netzmasken (z.B. 1.2.3.4/255.255.255.0) oder Netzwerk/CIDR (z.B. 1.2.3.4/24) erlaubt. Diese Option kann mehrmals eingetragen werden. - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Beim Einrichten der RPC-Adresse %s, Port %u zum Abhören von %s ist ein Fehler aufgetreten - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - An die angegebene Adresse binden und Gegenstellen in die Liste der erlaubten Gegenstellen aufnehmen. Für IPv6 "[Host]:Port"-Schreibweise verwenden - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Für JSON-RPC Verbindugen an die angegebene Adresse binden. Für IPv6 "[Host]:Port"-Schreibweise verwenden. Diese Option kann mehrmals eingetragen werden. (Standard: an alle verbinden) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Wahlverhalten für Abschlussbudget ändern. mode=auto: nur wählen, wenn Abschlussbudget genau meinem generierten Budget entspricht. (Standard: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Anzahl der freien Transaktionen auf <n> * 1000 Byte pro Minute begrenzen (Standard: %u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Neue Dateien mit den System-Standardberechtigungen (anstatt 077) erzeugen (nur bei deaktiviertem Wallet möglich) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Lösche alle Wallet-Transaktionen stelle nur diese mittels -rescan beim nächsten Start des Wallets wieder her. - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Deaktiviere all Dash-spezifischen Funktionen (Masternodes, Darksend, InstantX, Budgeting) (0-1, Standard: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Unter MIT Software Lizenz zur Verfügung gestellt, siehe beigefügte Datei COPYING oder <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Aktiviere InstantX, zeige Bestätigungen für gesperrte Transaktionen an (bool, Standard: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Aktiviere Darksend automatisch (0-1, Standard: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Fehler: Parameter -socks wird nicht mehr unterstützt. Setzen der SOCKS-Version ist nicht mehr möglich, es werden nur noch SOCKS5 Proxies unterstützt. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Niedrigere Gebühren (in DASH pro Kb) als diese werden bei der Vermittlung als gebührenfrei angesehen (Standard: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Niedrigere Gebühren (in DASH pro Kb) als diese werden bei der Transaktionserzeugung als gebührenfrei angesehen (Standard: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Datenbankaktivitäten vom Arbeitsspeicher-Pool alle <n> Megabyte auf den Datenträger schreiben (Standard: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Unbestätigte für Darksend vorbereitete Ausgabebeträge gefunden, warte bis sie bestätigt sind bevor weitergemacht wird. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Legt fest, wie gründlich die Blockverifikation von -checkblocks ist (0-4, Standard: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Falls paytxfee nicht gesetzt wurde automatisch genug Transaktionsgebühren hinzufügen, um die Transaktion durchschnittlich innerhalb n Blöcken zu bestätigen (Standard: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Ungültiger Betrag für -maxtxfee=<amount>: '%s' (Betrag muss mindestens minrelay von %s Gebühren sein um "hängende" Transaktionen zu vermeiden) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Transaktionspriorität und Gebühr pro kB beim Erzeugen von Blöcken protokollieren (Standard: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Einen vollständigen Transaktionsindex für den getrawtransaction RPC-Aufruf führen (Standard: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Maximale Datengröße für von uns weitergegebenen Übermittlungstransaktionen (Standard: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Maximale Gesamtgebühren für eine einzelne Transaktion. Sind diese Gebühren zu gering könnten große Transaktionen evtl. abgebrochen werden (Standard: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Anzahl Sekunden, während denen sich nicht konform verhaltenden Gegenstellen die Wiederverbindung verweigert wird (Standard: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Debugging-Informationen ausgeben (Standard: %u, <category> anzugeben ist optional) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Durch diese Einstellung können Sie dem Darksend-Netzwerk zusätzliche Liquidität zur Verfügung stellen in dem Sie von Zeit zu Zeit bereits anonymisierte Dash wieder dem Mixing-Prozess zuführen. (0-100, 0=aus, 1=sehr oft, 100=sehr selten (wenig Gebühren). Standard: %u) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Verlange hohe Priorität für die Vermittlung von kostenlosen oder mit niedrigen Gebühren versehenen Transaktionen (Standard: %u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Rückverfolgungs- und Debuginformationen an die Konsole senden, anstatt sie in debug.log zu schreiben (Standard: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Legt ein Prozessor-/CPU-Kernlimit fest, wenn CPU-Mining aktiviert ist (-1 = unbegrenzt, Standard: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Anzahl Bestätigungen für eine erfolgreich gesperrte Transaktion (0-9999, voreingestellt: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Dieses Produkt enthält vom OpenSSL-Projekt entwickelte Software zur Benutzung des OpenSSL Toolkit <https://www.openssl.org/>, kryptographische Software geschrieben von Eric Young und UPnP Software geschrieben von Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Um dashd (oder dash-qt mit dem -server Parameter) zu benutzen müssen Sie ein rpcpasswort in dieser Konfigurationsdatei angeben: -%s -Es wird empfohlen das folgende Zufallspasswort zu verwenden: -rpcuser=dashrpc -rpcpassword=%s -(Sie müssen sich dieses Passwort nicht merken!) -Der Benutzername und das Passwort dürfen NICHT identisch sein. -Falls die Konfigurationsdatei nicht existiert, erzeugen Sie diese bitte mit Leserechten nur für den Dateibesitzer. -Es wird ebenfalls empfohlen alertnotify anzugeben, um im Problemfall benachrichtigt zu werden; -zum Beispiel: alertnotify=echo %%s | mail -s \"Dash Alert\" admin@foo.com - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Für diese Transaktion konnten nicht genug Beträge gefunden werden, die ungleich 1000 DASH sind. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Separaten SOCKS5-Proxy verwenden, um Gegenstellen über versteckte Tor-Dienste zu erreichen (Standard: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Warnung: -maxtxfee ist auf einen sehr hohen Wert gesetzt! Diese Gebühr könnte schon beim Senden einer einzelnen Transaktion fällig werden. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Warnung: Bitte überprüfen Sie die Datums- und Uhrzeiteinstellungen ihres Computers, da Dash Core ansonsten nicht ordnungsgemäß funktionieren wird! - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Erlaube Gegenstellen mit dieser Netzmaske oder IP-Adresse. Diese Option kann mehrmals eingetragen werden. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Erlaubte Gegenstellen können nicht wegen DoS ausgeschlossen werden und ihre Transaktionen werden immer weitergeleitet, sogar wenn sie schon im Memory-Pool sind. Dies ist z.B. für Gateways nützlich. - - - (9999 could be used only on mainnet) - (9999 kann nur im Standardnetz benutzt werden) - - - (default: %s) - (Standard: %s) - - - <category> can be: - - <category> kann sein: - - - - Accept public REST requests (default: %u) - Akzeptiere öffentliche REST-Anforderungen (Standard: %u) - - - Acceptable ciphers (default: %s) - Akzeptierte Verschlüsselungen (Standard: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Peer-Adressen immer über DNS abfragen (Standard: %u) - - - Cannot resolve -whitebind address: '%s' - Kann Adresse via -whitebind nicht auflösen: '%s' - - - Connect through SOCKS5 proxy - Über einen SOCKS5-Proxy verbinden - - - Connect to KeePassHttp on port <port> (default: %u) - Mit KeePassHttp auf <port> verbinden (Standard: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i Die "Bitcoin Core"-Entwickler - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i Die "Dash Core"-Entwickler - - - Could not parse -rpcbind value %s as network address - -rpcbind Wert %s konnte nicht als Netzwerkadresse erkannt werden - - - Darksend is idle. - Darksend ist untätig. - - - Darksend request complete: - Darksend-Anfrage vollständig: - - - Darksend request incomplete: - Darksend-Anfrage unvollständig: - - - Disable safemode, override a real safe mode event (default: %u) - Sicherheitsmodus deaktivieren, überschreibt ein echtes Sicherheitsmodusereignis (Standard: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Masternode-Modus aktivieren. (0=aus, 1=an; Voreinstellung: %u) - - - Error connecting to Masternode. - Fehler bei der Verbindung zum Masternode. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Fehler beim Laden von wallet.dat: Wallet benötigt neuere Version von Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Fehler: ein interner Fehler ist aufgetreten, Details sind in der Datei debug.log - - - Error: Can't select current denominated inputs - Fehler: die aktuell gestückelten Inputs können nicht ausgewählt werden - - - Error: Unsupported argument -tor found, use -onion. - Fehler: Paramter -tor wird nicht unterstützt, bitte -onion benutzen. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Gebühren (in DASH pro Kb), die gesendeten Transaktionen hinzugefügt werden (Standard: %s) - - - Finalizing transaction. - Füge Transaktion zusammen. - - - Force safe mode (default: %u) - Sicherheitsmodus erzwingen (Standard: %u) - - - Found enough users, signing ( waiting %s ) - Genug Partner gefunden, signiere ( warte %s ) - - - Found enough users, signing ... - Genug Partner gefunden, signiere ... - - - Generate coins (default: %u) - Coins erzeugen (Standard: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Wieviele Blöcke beim Starten geprüft werden sollen (Standard: %u, 0 = alle) - - - Importing... - Importiere... - - - Imports blocks from external blk000??.dat file - Blöcke aus externer Datei blk000??.dat importieren - - - Include IP addresses in debug output (default: %u) - IP-Adressen in die Debug-Ausgabe mit aufnehmen (Standard: %u) - - - Incompatible mode. - Inkompatibler Modus. - - - Incompatible version. - Inkompatible Version. - - - Incorrect or no genesis block found. Wrong datadir for network? - Fehlerhafter oder kein Genesis-Block gefunden. Falsches Datenverzeichnis für das Netzwerk? - - - Information - Hinweis - - - Initialization sanity check failed. Dash Core is shutting down. - Fehler beim Initialisieren (Plausibilitätsprüfung fehlgeschlagen). -Dash Core wird heruntergefahren. - - - Input is not valid. - Eintrag ist nicht gültig. - - - InstantX options: - InstantX Optionen: - - - Insufficient funds. - Unzureichender Kontostand. - - - Invalid -onion address: '%s' - Ungültige "-onion"-Adresse: '%s' - - - Invalid -proxy address: '%s' - Ungültige Adresse in -proxy: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Ungültiger Betrag für -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Ungültiger Betrag für -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Ungültiger Betrag für -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Ungültiger Betrag für -paytxfee=<amount>: '%s' (Betrag muss mindestens %s sein) - - - Invalid amount for -paytxfee=<amount>: '%s' - Ungültiger Betrag für -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - Die letzte erfolgreiche Darksend-Transaktion ist noch zu neu. - - - Limit size of signature cache to <n> entries (default: %u) - Größe des Signaturcaches auf <n> Einträge begrenzen (Standard: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - <port>nach JSON-RPC-Verbindungen abhören (Standard: %u oder Testnetz: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - <port> nach Verbindungen abhören (Standard: %u oder Testnetz: %u) - - - Loading budget cache... - Lade Budget-Cache... - - - Loading masternode cache... - Lade Masternode-Cache... - - - Loading masternode payment cache... - Lade Masternode Zahlungs-Cache... - - - Lock is already in place. - Schon gesperrt. - - - Lock masternodes from masternode configuration file (default: %u) - Masternodes über Masternode-Konfiguration sperren (Standard: %u) - - - Maintain at most <n> connections to peers (default: %u) - Maximal <n> Verbindungen zu Gegenstellen aufrechterhalten (Standard: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Maximale Größe des Empfangspuffers pro Verbindung, <n> * 1000 Byte (Standard: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Maximale Größe des Sendepuffers pro Verbindung, <n> * 1000 Byte (Standard: %u) - - - Mixing in progress... - Am Mixen... - - - Need to specify a port with -whitebind: '%s' - Für -whitebind muss eine Portnummer angegeben werden: '%s' - - - No Masternodes detected. - Keine Masternodes gefunden. - - - No compatible Masternode found. - Kein kompatibler Masternode gefunden. - - - Not in the Masternode list. - Nicht in der Masternode-Liste. - - - Number of automatic wallet backups (default: 10) - Anzahl automatischer Wallet-Sicherungskopien (Standard: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Blockkette nur als gültig ansehen, wenn sie mit den integrierten Prüfpunkten übereinstimmt (Standard: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Verbinde nur zu Knoten des Netztyps <net> (ipv4, ipv6 oder onion) - - - Prepend debug output with timestamp (default: %u) - Debugausgaben einen Zeitstempel voranstellen (Standard: %u) - - - Run a thread to flush wallet periodically (default: %u) - Einen Thread starten, der periodisch die Wallet auf den Datenträger sichert (Standard: %u) - - - Send trace/debug info to debug.log file (default: %u) - Rückverfolgungs- und Debuginformationen in debug.log schreiben (Standard: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Wenn möglich als gebührenfreie Transaktion versenden (Standard: %u) - - - Server certificate file (default: %s) - Datei mit Serverzertifikat (Standard: %s) - - - Server private key (default: %s) - Privater Serverschlüssel (Standard: %s) - - - Set external address:port to get to this masternode (example: %s) - Setze externe Adresse und Port, um diesen Masternode zu erreichen (Beispiel: %s) - - - Set key pool size to <n> (default: %u) - Größe des Schlüsselpools festlegen auf <n> (Standard: %u) - - - Set minimum block size in bytes (default: %u) - Minimale Blockgröße in Bytes festlegen (Standard: %u) - - - Set the number of threads to service RPC calls (default: %d) - Maximale Anzahl an Threads zur Verarbeitung von RPC-Anfragen festlegen (Standard: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - DB_PRIVATE-Flag in der Wallet-Datenbankumgebung setzen (Standard: %u) - - - Signing timed out. - Zeitüberschreitung der Signierung. - - - Specify configuration file (default: %s) - Konfigurationsdatei festlegen (Standard: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Verbindungzeitüberschreitung in Millisekunden festlegen (Minimum: 1, Standard: %d) - - - Specify masternode configuration file (default: %s) - Konfigurationsdatei der Masternode-Einstellungen angeben (Standard: %s) - - - Specify pid file (default: %s) - pid-Datei angeben (Standard: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Unbestätigtes Wechselgeld beim Senden von Transaktionen ausgeben (Standard: %u) - - - Stop running after importing blocks from disk (default: %u) - Nach dem Import von Blöcken von der Festplatte Programm beenden (Standard: %u) - - - Submitted following entries to masternode: %u / %d - Folgende Einträge wurden an Masternode gesendet: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - An Masternode gesendet, warte auf weitere Einträge ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - An Masternode übermittelt, wartet in Warteschlange %s - - - Synchronization failed - Synchronisation fehlgeschlagen - - - Synchronization finished - Synchronisation beendet - - - Synchronizing budgets... - Synchronisiere Budgets... - - - Synchronizing masternode winners... - Synchronisiere Masternode Gewinner... - - - Synchronizing masternodes... - Synchronisiere Masternodes... - - - Synchronizing sporks... - Synchronisiere Sporks... - - - This is not a Masternode. - Dies ist kein Masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Schwellenwert, um Verbindungen zu sich nicht konform verhaltenden Gegenstellen zu beenden (Standard: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - "KeePass 2"-Integration mit KeePassHttp-plugin (Standard: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - N unterschiedliche Masternodes benutzen, um Dash zu anonymisieren (2-8, Standard: %u) - - - Use UPnP to map the listening port (default: %u) - UPnP verwenden, um eine Portweiterleitung einzurichten (Standard: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Die Wallet musste neu geschrieben werden. Bitte das Programm neu starten um den Vorgang abzuschließen - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Warnung: Veraltetes Argument -benchmark wird ignoriert, bitte -debug=bench verwenden. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Warnung: Veraltetes Argument -debugnet wird ignoriert, bitte -debug=net verwenden. - - - Will retry... - Versuche erneut... - - - Invalid masternodeprivkey. Please see documenation. - Masternode-Geheimschlüssel (masternodeprivkey) ist ungültig. Siehe Dokumentation. - - - (must be 9999 for mainnet) - (muss für Standardnetz 9999 sein) - - - Can't find random Masternode. - Kann keinen zufällig ausgewählten Masternode finden - - - Can't mix while sync in progress. - Währen der Synchronisierung kann nicht gemixt werden. - - - Could not parse masternode.conf - masternode.conf konnte nicht analysiert werden - - - Invalid netmask specified in -whitelist: '%s' - Ungültige Netzmaske für -whitelist angegeben: '%s' - - - Invalid port detected in masternode.conf - Ungültige Portnummer in masternode.conf - - - Invalid private key. - Fehlerhafter privater Schlüssel. - - - Invalid script detected. - Invalides Zahlskript entdeckt. - - - KeePassHttp id for the established association - "KeePassHttp id" für bestehende verknüpfte Verbindungen. - - - KeePassHttp key for AES encrypted communication with KeePass - "KeePassHttp key" für die AES-verschlüsselte Kommunikation mit "KeePass" - - - Keep N DASH anonymized (default: %u) - Betrag welcher anonymisiert vorgehalten wird. (Voreinstellung: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Maximal <n> (noch) nicht einsortierte Zahlungen zwischenspeichern (Voreinstellung: %u) - - - Last Darksend was too recent. - Letzte Darksend-Transaktion ist noch zu neu. - - - Line: %d - Zeile: %d - - - Loading addresses... - Lade Adressen... - - - Loading block index... - Lade Blockindex... - - - Loading wallet... (%3.2f %%) - Lade Wallet... (%3.2f %%) - - - Loading wallet... - Lade Wallet... - - - Masternode options: - Masternode Optionen: - - - Masternode queue is full. - Warteschlange der Masternode ist voll. - - - Masternode: - Masternode: - - - Missing input transaction information. - Fehlende Informationen zur Eingangs-Transaktion. - - - No funds detected in need of denominating. - Kein Kapital gefunden, dass zerstückelt werden muss. - - - No matching denominations found for mixing. - Keine passende Zerstückelungen zum Mixen gefunden. - - - Node relay options: - Vermittlungs-Optionen für Knoten: - - - Non-standard public key detected. - nicht Standard öffentlicher Schlüssel erkannt. - - - Not compatible with existing transactions. - Nicht kompatibel mit existierenden Transaktionen. - - - Not enough file descriptors available. - Nicht genügend Datei-Deskriptoren verfügbar. - - - Options: - Optionen: - - - Password for JSON-RPC connections - Passwort für JSON-RPC-Verbindungen - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL Optionen: (siehe Bitcoin Wiki für eine Installationsanleitung) - - - RPC server options: - RPC-Serveroptionen: - - - RPC support for HTTP persistent connections (default: %d) - RPC-Unterstützung für persistente HTTP-Verbindungen (default: %d) - - - Randomly drop 1 of every <n> network messages - Zufällig eine von <n> Netzwerknachrichten verwerfen - - - Randomly fuzz 1 of every <n> network messages - Zufällig eine von <n> Netzwerknachrichten verwürfeln - - - Rebuild block chain index from current blk000??.dat files - Blockkettenindex aus aktuellen Dateien blk000??.dat wieder aufbauen - - - Receive and display P2P network alerts (default: %u) - P2P Netzwerk-Alarme empfangen und anzeigen (Standard: %u) - - - Relay and mine data carrier transactions (default: %u) - "Data Carrier"-Transaktionen weiterleiten (Standard: %u) - - - Relay non-P2SH multisig (default: %u) - Nicht-P2SH-Multisig weiterleiten (Standard: %u) - - - Rescan the block chain for missing wallet transactions - Blockkette erneut nach fehlenden Wallet-Transaktionen durchsuchen - - - Rescanning... - Durchsuche erneut... - - - Run in the background as a daemon and accept commands - Als Hintergrunddienst ausführen und Befehle annehmen - - - Session not complete! - Sitzung ist nicht vollständig! - - - Session timed out. - Zeitüberschreitung der Sitzung. - - - Set database cache size in megabytes (%d to %d, default: %d) - Größe des Datenbankcaches in Megabyte festlegen (%d bis %d, Standard: %d) - - - Set maximum block size in bytes (default: %d) - Maximale Blockgröße in Byte festlegen (Standard: %d) - - - Set the masternode private key - Privaten Masternode-Schlüssel setzen - - - Show all debugging options (usage: --help -help-debug) - Zeige alle Debuggingoptionen (Benutzung: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Protokolldatei debug.log beim Starten des Clients kürzen (Standard: 1, wenn kein -debug) - - - Signing failed. - Signierung fehlgeschalgen. - - - Signing transaction failed - Signierung der Transaktion fehlgeschlagen - - - Specify data directory - Datenverzeichnis festlegen - - - Specify wallet file (within data directory) - Wallet-Datei angeben (innerhalb des Datenverzeichnisses) - - - Specify your own public address - Die eigene öffentliche Adresse angeben - - - Synchronization pending... - Synchronisation steht bevor... - - - This help message - Dieser Hilfetext - - - This is experimental software. - Dies ist experimentelle Software. - - - This is intended for regression testing tools and app development. - Dies ist für Regressionstest-Tools und Anwendungsentwicklung gedacht. - - - Transaction amount too small - Transaktionsbetrag zu niedrig - - - Transaction amounts must be positive - Transaktionsbeträge müssen positiv sein - - - Transaction created successfully. - Transaktion erfolgreich erstellt. - - - Transaction fees are too high. - Transaktionsgebühren sind zu hoch. - - - Transaction not valid. - Transaktion ungültig. - - - Transaction too large for fee policy - Transaktion ist für die Gebührenrichtlinie zu groß - - - Transaction too large - Transaktion zu groß - - - Transmitting final transaction. - Übertrage fertige Transaktion. - - - Unable to bind to %s on this computer (bind returned error %s) - Kann auf diesem Computer nicht an %s binden (von bind zurückgegebener Fehler: %s) - - - Unable to sign spork message, wrong key? - Die Spork-Nachricht konnte nicht signiert werden. Wurde der Key falsch gesetzt? - - - Unknown network specified in -onlynet: '%s' - Unbekannter Netztyp in -onlynet angegeben: '%s' - - - Unknown state: id = %u - Unbekannter Status: id = %u - - - Upgrade wallet to latest format - Wallet auf das neueste Format aktualisieren - - - Use OpenSSL (https) for JSON-RPC connections - OpenSSL (https) für JSON-RPC-Verbindungen verwenden - - - Use UPnP to map the listening port (default: 1 when listening) - UPnP verwenden, um eine Portweiterleitung einzurichten (Standard: 1, wenn abgehört wird) - - - Use the test network - Das Testnetz verwenden - - - Username for JSON-RPC connections - Benutzername für JSON-RPC-Verbindungen - - - Value more than Darksend pool maximum allows. - Wert größer als der vom Darksend Pool maximal erlaubte. - - - Verifying blocks... - Verifiziere Blöcke... - - - Verifying wallet... - Verifiziere Wallet... - - - Wallet %s resides outside data directory %s - Wallet %s liegt außerhalb des Datenverzeichnisses %s - - - Wallet is locked. - Wallet gesperrt. - - - Wallet options: - Wallet-Optionen: - - - Wallet window title - Fensterüberschrift des Wallet - - - Warning - Warnung - - - Warning: This version is obsolete, upgrade required! - Warnung: Diese Version is veraltet, Aktualisierung erforderlich! - - - You need to rebuild the database using -reindex to change -txindex - Sie müssen die Datenbank mit Hilfe von -reindex neu aufbauen, um -txindex zu verändern - - - Your entries added successfully. - Ihre Einträge wurden erfolgreich hinzugefügt. - - - Your transaction was accepted into the pool! - Ihre Transaktion wurde im Pool akzeptiert! - - - Zapping all transactions from wallet... - Lösche alle Transaktionen aus Wallet... - - - on startup - beim Starten - - - wallet.dat corrupt, salvage failed - wallet.dat beschädigt, Datenrettung fehlgeschlagen - - - \ No newline at end of file diff --git a/src/qt/locale/dash_en.ts b/src/qt/locale/dash_en.ts deleted file mode 100644 index 3c86462593e1..000000000000 --- a/src/qt/locale/dash_en.ts +++ /dev/null @@ -1,5759 +0,0 @@ - - - AddressBookPage - - - Right-click to edit address or label - Right-click to edit address or label - - - - Create a new address - Create a new address - - - - &New - &New - - - - Copy the currently selected address to the system clipboard - Copy the currently selected address to the system clipboard - - - - &Copy - &Copy - - - - Delete the currently selected address from the list - Delete the currently selected address from the list - - - - &Delete - &Delete - - - - Export the data in the current tab to a file - Export the data in the current tab to a file - - - - &Export - &Export - - - - C&lose - C&lose - - - - Choose the address to send coins to - Choose the address to send coins to - - - - Choose the address to receive coins with - Choose the address to receive coins with - - - - C&hoose - C&hoose - - - - Sending addresses - Sending addresses - - - - Receiving addresses - Receiving addresses - - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - - - - &Copy Address - &Copy Address - - - - Copy &Label - Copy &Label - - - - &Edit - &Edit - - - - Export Address List - Export Address List - - - - Comma separated file (*.csv) - Comma separated file (*.csv) - - - - Exporting Failed - Exporting Failed - - - - There was an error trying to save the address list to %1. Please try again. - There was an error trying to save the address list to %1. Please try again. - - - - AddressTableModel - - - Label - Label - - - - Address - Address - - - - (no label) - (no label) - - - - AskPassphraseDialog - - - Passphrase Dialog - Passphrase Dialog - - - - Enter passphrase - Enter passphrase - - - - New passphrase - New passphrase - - - - Repeat new passphrase - Repeat new passphrase - - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - - - - For anonymization only - For anonymization only - - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - - - - Encrypt wallet - Encrypt wallet - - - - This operation needs your wallet passphrase to unlock the wallet. - This operation needs your wallet passphrase to unlock the wallet. - - - - Unlock wallet - Unlock wallet - - - - This operation needs your wallet passphrase to decrypt the wallet. - This operation needs your wallet passphrase to decrypt the wallet. - - - - Decrypt wallet - Decrypt wallet - - - - Change passphrase - Change passphrase - - - - Enter the old and new passphrase to the wallet. - Enter the old and new passphrase to the wallet. - - - - Confirm wallet encryption - Confirm wallet encryption - - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - - - - Are you sure you wish to encrypt your wallet? - Are you sure you wish to encrypt your wallet? - - - - - Wallet encrypted - Wallet encrypted - - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - - - - - - - Wallet encryption failed - Wallet encryption failed - - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - - - - - The supplied passphrases do not match. - The supplied passphrases do not match. - - - - Wallet unlock failed - Wallet unlock failed - - - - - - The passphrase entered for the wallet decryption was incorrect. - The passphrase entered for the wallet decryption was incorrect. - - - - Wallet decryption failed - Wallet decryption failed - - - - Wallet passphrase was successfully changed. - Wallet passphrase was successfully changed. - - - - - Warning: The Caps Lock key is on! - Warning: The Caps Lock key is on! - - - - BitcoinGUI - - - - Dash Core - Dash Core - - - - Wallet - Wallet - - - - Node - Node - - - - &Overview - &Overview - - - - Show general overview of wallet - Show general overview of wallet - - - - &Send - &Send - - - - Send coins to a Dash address - Send coins to a Dash address - - - - &Receive - &Receive - - - - Request payments (generates QR codes and dash: URIs) - Request payments (generates QR codes and dash: URIs) - - - - &Transactions - &Transactions - - - - Browse transaction history - Browse transaction history - - - - E&xit - E&xit - - - - Quit application - Quit application - - - - &About Dash Core - &About Dash Core - - - - Show information about Dash Core - Show information about Dash Core - - - - - About &Qt - About &Qt - - - - Show information about Qt - Show information about Qt - - - - &Options... - &Options... - - - - Modify configuration options for Dash - Modify configuration options for Dash - - - - &Show / Hide - &Show / Hide - - - - Show or hide the main Window - Show or hide the main Window - - - - &Encrypt Wallet... - &Encrypt Wallet... - - - - Encrypt the private keys that belong to your wallet - Encrypt the private keys that belong to your wallet - - - - &Backup Wallet... - &Backup Wallet... - - - - Backup wallet to another location - Backup wallet to another location - - - - &Change Passphrase... - &Change Passphrase... - - - - Change the passphrase used for wallet encryption - Change the passphrase used for wallet encryption - - - - &Unlock Wallet... - &Unlock Wallet... - - - - Unlock wallet - Unlock wallet - - - - &Lock Wallet - &Lock Wallet - - - - Sign &message... - Sign &message... - - - - Sign messages with your Dash addresses to prove you own them - Sign messages with your Dash addresses to prove you own them - - - - &Verify message... - &Verify message... - - - - Verify messages to ensure they were signed with specified Dash addresses - Verify messages to ensure they were signed with specified Dash addresses - - - - &Information - &Information - - - - Show diagnostic information - Show diagnostic information - - - - &Debug console - &Debug console - - - - Open debugging console - Open debugging console - - - - &Network Monitor - &Network Monitor - - - - Show network monitor - Show network monitor - - - - &Peers list - &Peers list - - - - Show peers info - Show peers info - - - - Wallet &Repair - Wallet &Repair - - - - Show wallet repair options - Show wallet repair options - - - - Open &Configuration File - Open &Configuration File - - - - Open configuration file - Open configuration file - - - - Show Automatic &Backups - Show Automatic &Backups - - - - Show automatically created wallet backups - Show automatically created wallet backups - - - - &Sending addresses... - &Sending addresses... - - - - Show the list of used sending addresses and labels - Show the list of used sending addresses and labels - - - - &Receiving addresses... - &Receiving addresses... - - - - Show the list of used receiving addresses and labels - Show the list of used receiving addresses and labels - - - - Open &URI... - Open &URI... - - - - Open a dash: URI or payment request - Open a dash: URI or payment request - - - - &Command-line options - &Command-line options - - - - Dash Core client - Dash Core client - - - - Processed %n blocks of transaction history. - Processed %n block of transaction history.Processed %n blocks of transaction history. - - - - Synchronizing additional data: %p% - Synchronizing additional data: %p% - - - - Show the Dash Core help message to get a list with possible Dash command-line options - Show the Dash Core help message to get a list with possible Dash command-line options - - - - &File - &File - - - - &Settings - &Settings - - - - &Tools - &Tools - - - - &Help - &Help - - - - Tabs toolbar - Tabs toolbar - - - - %n active connection(s) to Dash network - %n active connection to Dash network%n active connections to Dash network - - - - Synchronizing with network... - Synchronizing with network... - - - - Importing blocks from disk... - Importing blocks from disk... - - - - Reindexing blocks on disk... - Reindexing blocks on disk... - - - - No block source available... - No block source available... - - - - Up to date - Up to date - - - - %n hour(s) - %n hour%n hours - - - - %n day(s) - %n day%n days - - - - - %n week(s) - %n week%n weeks - - - - %1 and %2 - %1 and %2 - - - - %n year(s) - %n year%n years - - - - %1 behind - %1 behind - - - - Catching up... - Catching up... - - - - Last received block was generated %1 ago. - Last received block was generated %1 ago. - - - - Transactions after this will not yet be visible. - Transactions after this will not yet be visible. - - - - Error - Error - - - - Warning - Warning - - - - Information - Information - - - - Sent transaction - Sent transaction - - - - Incoming transaction - Incoming transaction - - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Wallet is <b>encrypted</b> and currently <b>locked</b> - - - - ClientModel - - - Total: %1 (DS compatible: %2 / Enabled: %3) - Total: %1 (DS compatible: %2 / Enabled: %3) - - - - Network Alert - Network Alert - - - - CoinControlDialog - - - Quantity: - Quantity: - - - - Bytes: - Bytes: - - - - Amount: - Amount: - - - - Priority: - Priority: - - - - Fee: - Fee: - - - - Coin Selection - Coin Selection - - - - Dust: - Dust: - - - - After Fee: - After Fee: - - - - Change: - Change: - - - - (un)select all - (un)select all - - - - Tree mode - Tree mode - - - - List mode - List mode - - - - (1 locked) - (1 locked) - - - - Amount - Amount - - - - Received with label - Received with label - - - - Received with address - Received with address - - - - DS Rounds - DS Rounds - - - - Date - Date - - - - Confirmations - Confirmations - - - - Confirmed - Confirmed - - - - Priority - Priority - - - - Copy address - Copy address - - - - Copy label - Copy label - - - - - Copy amount - Copy amount - - - - Copy transaction ID - Copy transaction ID - - - - Lock unspent - Lock unspent - - - - Unlock unspent - Unlock unspent - - - - Copy quantity - Copy quantity - - - - Copy fee - Copy fee - - - - Copy after fee - Copy after fee - - - - Copy bytes - Copy bytes - - - - Copy priority - Copy priority - - - - Copy dust - Copy dust - - - - Copy change - Copy change - - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - - - - highest - highest - - - - higher - higher - - - - high - high - - - - medium-high - medium-high - - - - Can vary +/- %1 duff(s) per input. - Can vary +/- %1 duff(s) per input. - - - - n/a - n/a - - - - - medium - medium - - - - low-medium - low-medium - - - - low - low - - - - lower - lower - - - - lowest - lowest - - - - (%1 locked) - (%1 locked) - - - - none - none - - - - yes - yes - - - - - no - no - - - - This label turns red, if the transaction size is greater than 1000 bytes. - This label turns red, if the transaction size is greater than 1000 bytes. - - - - - This means a fee of at least %1 per kB is required. - This means a fee of at least %1 per kB is required. - - - - Can vary +/- 1 byte per input. - Can vary +/- 1 byte per input. - - - - Transactions with higher priority are more likely to get included into a block. - Transactions with higher priority are more likely to get included into a block. - - - - This label turns red, if the priority is smaller than "medium". - This label turns red, if the priority is smaller than "medium". - - - - This label turns red, if any recipient receives an amount smaller than %1. - This label turns red, if any recipient receives an amount smaller than %1. - - - - - (no label) - (no label) - - - - change from %1 (%2) - change from %1 (%2) - - - - (change) - (change) - - - - DarksendConfig - - - Configure Darksend - Configure Darksend - - - - Basic Privacy - Basic Privacy - - - - High Privacy - High Privacy - - - - Maximum Privacy - Maximum Privacy - - - - Please select a privacy level. - Please select a privacy level. - - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Use 2 separate masternodes to mix funds up to 1000 DASH - - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Use 8 separate masternodes to mix funds up to 1000 DASH - - - - Use 16 separate masternodes - Use 16 separate masternodes - - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH per 1000 DASH you anonymize. - - - - This is the slowest and most secure option. Using maximum anonymity will cost - This is the slowest and most secure option. Using maximum anonymity will cost - - - - - - Darksend Configuration - Darksend Configuration - - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - - - - EditAddressDialog - - - Edit Address - Edit Address - - - - &Label - &Label - - - - The label associated with this address list entry - The label associated with this address list entry - - - - &Address - &Address - - - - The address associated with this address list entry. This can only be modified for sending addresses. - The address associated with this address list entry. This can only be modified for sending addresses. - - - - New receiving address - New receiving address - - - - New sending address - New sending address - - - - Edit receiving address - Edit receiving address - - - - Edit sending address - Edit sending address - - - - The entered address "%1" is not a valid Dash address. - The entered address "%1" is not a valid Dash address. - - - - The entered address "%1" is already in the address book. - The entered address "%1" is already in the address book. - - - - Could not unlock wallet. - Could not unlock wallet. - - - - New key generation failed. - New key generation failed. - - - - FreespaceChecker - - - A new data directory will be created. - A new data directory will be created. - - - - name - name - - - - Directory already exists. Add %1 if you intend to create a new directory here. - Directory already exists. Add %1 if you intend to create a new directory here. - - - - Path already exists, and is not a directory. - Path already exists, and is not a directory. - - - - Cannot create data directory here. - Cannot create data directory here. - - - - HelpMessageDialog - - - Dash Core - Dash Core - - - - version - version - - - - - (%1-bit) - (%1-bit) - - - - About Dash Core - About Dash Core - - - - Command-line options - Command-line options - - - - Usage: - Usage: - - - - command-line options - command-line options - - - - UI options - UI options - - - - Choose data directory on startup (default: 0) - Choose data directory on startup (default: 0) - - - - Set language, for example "de_DE" (default: system locale) - Set language, for example "de_DE" (default: system locale) - - - - Start minimized - Start minimized - - - - Set SSL root certificates for payment request (default: -system-) - Set SSL root certificates for payment request (default: -system-) - - - - Show splash screen on startup (default: 1) - Show splash screen on startup (default: 1) - - - - Intro - - - Welcome - Welcome - - - - Welcome to Dash Core. - Welcome to Dash Core. - - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - As this is the first time the program is launched, you can choose where Dash Core will store its data. - - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - - - - Use the default data directory - Use the default data directory - - - - Use a custom data directory: - Use a custom data directory: - - - - Dash Core - Dash Core - - - - Error: Specified data directory "%1" cannot be created. - Error: Specified data directory "%1" cannot be created. - - - - Error - Error - - - - %1 GB of free space available - %1 GB of free space available - - - - (of %1 GB needed) - (of %1 GB needed) - - - - OpenURIDialog - - - Open URI - Open URI - - - - Open payment request from URI or file - Open payment request from URI or file - - - - URI: - URI: - - - - Select payment request file - Select payment request file - - - - Select payment request file to open - Select payment request file to open - - - - OptionsDialog - - - Options - Options - - - - &Main - &Main - - - - Automatically start Dash after logging in to the system. - Automatically start Dash after logging in to the system. - - - - &Start Dash on system login - &Start Dash on system login - - - - Size of &database cache - Size of &database cache - - - - MB - MB - - - - Number of script &verification threads - Number of script &verification threads - - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = leave that many cores free) - - - - Darksend rounds to use - Darksend rounds to use - - - - This amount acts as a threshold to turn off Darksend once it's reached. - This amount acts as a threshold to turn off Darksend once it's reached. - - - - Amount of Dash to keep anonymized - Amount of Dash to keep anonymized - - - - W&allet - W&allet - - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - - - - Accept connections from outside - Accept connections from outside - - - - Allow incoming connections - Allow incoming connections - - - - Connect to the Dash network through a SOCKS5 proxy. - Connect to the Dash network through a SOCKS5 proxy. - - - - &Connect through SOCKS5 proxy (default proxy): - &Connect through SOCKS5 proxy (default proxy): - - - - Expert - Expert - - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - - - - Whether to show coin control features or not. - Whether to show coin control features or not. - - - - Enable coin &control features - Enable coin &control features - - - - &Spend unconfirmed change - &Spend unconfirmed change - - - - &Network - &Network - - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - - - - Map port using &UPnP - Map port using &UPnP - - - - Proxy &IP: - Proxy &IP: - - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - - - - &Port: - &Port: - - - - Port of the proxy (e.g. 9050) - Port of the proxy (e.g. 9050) - - - - &Window - &Window - - - - Show only a tray icon after minimizing the window. - Show only a tray icon after minimizing the window. - - - - &Minimize to the tray instead of the taskbar - &Minimize to the tray instead of the taskbar - - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - - - - M&inimize on close - M&inimize on close - - - - &Display - &Display - - - - User Interface &language: - User Interface &language: - - - - The user interface language can be set here. This setting will take effect after restarting Dash. - The user interface language can be set here. This setting will take effect after restarting Dash. - - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - - - - User Interface Theme: - User Interface Theme: - - - - &Unit to show amounts in: - &Unit to show amounts in: - - - - Choose the default subdivision unit to show in the interface and when sending coins. - Choose the default subdivision unit to show in the interface and when sending coins. - - - - Decimal digits - Decimal digits - - - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - - - - Third party transaction URLs - Third party transaction URLs - - - - Active command-line options that override above options: - Active command-line options that override above options: - - - - Reset all client options to default. - Reset all client options to default. - - - - &Reset Options - &Reset Options - - - - &OK - &OK - - - - &Cancel - &Cancel - - - - default - default - - - - none - none - - - - Confirm options reset - Confirm options reset - - - - - Client restart required to activate changes. - Client restart required to activate changes. - - - - Client will be shutdown, do you want to proceed? - Client will be shutdown, do you want to proceed? - - - - This change would require a client restart. - This change would require a client restart. - - - - The supplied proxy address is invalid. - The supplied proxy address is invalid. - - - - OverviewPage - - - Form - Form - - - - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - - - - Available: - Available: - - - - Your current spendable balance - Your current spendable balance - - - - Pending: - Pending: - - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - - - - Immature: - Immature: - - - - Mined balance that has not yet matured - Mined balance that has not yet matured - - - - Balances - Balances - - - - Unconfirmed transactions to watch-only addresses - Unconfirmed transactions to watch-only addresses - - - - Mined balance in watch-only addresses that has not yet matured - Mined balance in watch-only addresses that has not yet matured - - - - Total: - Total: - - - - Your current total balance - Your current total balance - - - - Current total balance in watch-only addresses - Current total balance in watch-only addresses - - - - Watch-only: - Watch-only: - - - - Your current balance in watch-only addresses - Your current balance in watch-only addresses - - - - Spendable: - Spendable: - - - - Status: - Status: - - - - Enabled/Disabled - Enabled/Disabled - - - - Completion: - Completion: - - - - Darksend Balance: - Darksend Balance: - - - - Amount and Rounds: - Amount and Rounds: - - - - 0 DASH / 0 Rounds - 0 DASH / 0 Rounds - - - - Submitted Denom: - Submitted Denom: - - - - n/a - n/a - - - - - - - - Darksend - Darksend - - - - Recent transactions - Recent transactions - - - - Start/Stop Mixing - Start/Stop Mixing - - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - - - - (Last Message) - (Last Message) - - - - Try to manually submit a Darksend request. - Try to manually submit a Darksend request. - - - - Try Mix - Try Mix - - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - - - - Reset - Reset - - - - - - out of sync - out of sync - - - - - - - Disabled - Disabled - - - - - - Start Darksend Mixing - Start Darksend Mixing - - - - - Stop Darksend Mixing - Stop Darksend Mixing - - - - - No inputs detected - No inputs detected - - - - - - %n Rounds - %n Round%n Rounds - - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - - - - Overall progress - Overall progress - - - - Denominated - Denominated - - - - Anonymized - Anonymized - - - - Denominated inputs have %5 of %n rounds on average - Denominated inputs have %5 of %n rounds on averageDenominated inputs have %5 of %n rounds on average - - - - Found enough compatible inputs to anonymize %1 - Found enough compatible inputs to anonymize %1 - - - - Mixed - Mixed - - - - Enabled - Enabled - - - - Last Darksend message: - - Last Darksend message: - - - - - N/A - N/A - - - - Darksend was successfully reset. - Darksend was successfully reset. - - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - - - - Darksend requires at least %1 to use. - Darksend requires at least %1 to use. - - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Wallet is locked and user declined to unlock. Disabling Darksend. - - - - PaymentServer - - - - - - - - Payment request error - Payment request error - - - - Cannot start dash: click-to-pay handler - Cannot start dash: click-to-pay handler - - - - - - URI handling - URI handling - - - - Payment request fetch URL is invalid: %1 - Payment request fetch URL is invalid: %1 - - - - Payment request file handling - Payment request file handling - - - - Invalid payment address %1 - Invalid payment address %1 - - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Payment request file cannot be read! This can be caused by an invalid payment request file. - - - - - - Payment request rejected - Payment request rejected - - - - Payment request network doesn't match client network. - Payment request network doesn't match client network. - - - - Payment request has expired. - Payment request has expired. - - - - Payment request is not initialized. - Payment request is not initialized. - - - - Unverified payment requests to custom payment scripts are unsupported. - Unverified payment requests to custom payment scripts are unsupported. - - - - Requested payment amount of %1 is too small (considered dust). - Requested payment amount of %1 is too small (considered dust). - - - - Refund from %1 - Refund from %1 - - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - - - - Payment request DoS protection - Payment request DoS protection - - - - Error communicating with %1: %2 - Error communicating with %1: %2 - - - - Payment request cannot be parsed! - Payment request cannot be parsed! - - - - Bad response from server %1 - Bad response from server %1 - - - - Network request error - Network request error - - - - Payment acknowledged - Payment acknowledged - - - - PeerTableModel - - - Address/Hostname - Address/Hostname - - - - User Agent - User Agent - - - - Ping Time - Ping Time - - - - QObject - - - Amount - Amount - - - - Enter a Dash address (e.g. %1) - Enter a Dash address (e.g. %1) - - - - %1 d - %1 d - - - - %1 h - %1 h - - - - %1 m - %1 m - - - - %1 s - %1 s - - - - NETWORK - NETWORK - - - - UNKNOWN - UNKNOWN - - - - None - None - - - - N/A - N/A - - - - %1 ms - %1 ms - - - - QRImageWidget - - - &Save Image... - &Save Image... - - - - &Copy Image - &Copy Image - - - - Save QR Code - Save QR Code - - - - PNG Image (*.png) - PNG Image (*.png) - - - - RPCConsole - - - Tools window - Tools window - - - - &Information - &Information - - - - General - General - - - - Name - Name - - - - Client name - Client name - - - - - - - - - - - - - - - - - - - - - - - - - - - N/A - N/A - - - - Number of connections - Number of connections - - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - - - - &Open - &Open - - - - Startup time - Startup time - - - - Network - Network - - - - Last block time - Last block time - - - - Debug log file - Debug log file - - - - Using OpenSSL version - Using OpenSSL version - - - - Build date - Build date - - - - Current number of blocks - Current number of blocks - - - - Client version - Client version - - - - Using BerkeleyDB version - Using BerkeleyDB version - - - - Block chain - Block chain - - - - Number of Masternodes - Number of Masternodes - - - - &Console - &Console - - - - Clear console - Clear console - - - - &Network Traffic - &Network Traffic - - - - &Clear - &Clear - - - - Totals - Totals - - - - Received - Received - - - - Sent - Sent - - - - &Peers - &Peers - - - - - - Select a peer to view detailed information. - Select a peer to view detailed information. - - - - Direction - Direction - - - - Version - Version - - - - User Agent - User Agent - - - - Services - Services - - - - Starting Height - Starting Height - - - - Sync Height - Sync Height - - - - Ban Score - Ban Score - - - - Connection Time - Connection Time - - - - Last Send - Last Send - - - - Last Receive - Last Receive - - - - Bytes Sent - Bytes Sent - - - - Bytes Received - Bytes Received - - - - Ping Time - Ping Time - - - - &Wallet Repair - &Wallet Repair - - - - Salvage wallet - Salvage wallet - - - - Rescan blockchain files - Rescan blockchain files - - - - Recover transactions 1 - Recover transactions 1 - - - - Recover transactions 2 - Recover transactions 2 - - - - Upgrade wallet format - Upgrade wallet format - - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Rescan the block chain for missing wallet transactions. - - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - - - - Wallet repair options. - Wallet repair options. - - - - Rebuild index - Rebuild index - - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Rebuild block chain index from current blk000??.dat files. - - - - In: - In: - - - - Out: - Out: - - - - Welcome to the Dash RPC console. - Welcome to the Dash RPC console. - - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - - - - Type <b>help</b> for an overview of available commands. - Type <b>help</b> for an overview of available commands. - - - - %1 B - %1 B - - - - %1 KB - %1 KB - - - - %1 MB - %1 MB - - - - %1 GB - %1 GB - - - - via %1 - via %1 - - - - - never - never - - - - Inbound - Inbound - - - - Outbound - Outbound - - - - Unknown - Unknown - - - - - Fetching... - Fetching... - - - - ReceiveCoinsDialog - - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - - - - R&euse an existing receiving address (not recommended) - R&euse an existing receiving address (not recommended) - - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - - - - &Message: - &Message: - - - - - An optional label to associate with the new receiving address. - An optional label to associate with the new receiving address. - - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - - - - Use this form to request payments. All fields are <b>optional</b>. - Use this form to request payments. All fields are <b>optional</b>. - - - - &Label: - &Label: - - - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - An optional amount to request. Leave this empty or zero to not request a specific amount. - - - - &Amount: - &Amount: - - - - &Request payment - &Request payment - - - - Clear all fields of the form. - Clear all fields of the form. - - - - Clear - Clear - - - - Requested payments history - Requested payments history - - - - Show the selected request (does the same as double clicking an entry) - Show the selected request (does the same as double clicking an entry) - - - - Show - Show - - - - Remove the selected entries from the list - Remove the selected entries from the list - - - - Remove - Remove - - - - Copy label - Copy label - - - - Copy message - Copy message - - - - Copy amount - Copy amount - - - - ReceiveRequestDialog - - - QR Code - QR Code - - - - Copy &URI - Copy &URI - - - - Copy &Address - Copy &Address - - - - &Save Image... - &Save Image... - - - - Request payment to %1 - Request payment to %1 - - - - Payment information - Payment information - - - - URI - URI - - - - Address - Address - - - - Amount - Amount - - - - Label - Label - - - - Message - Message - - - - Resulting URI too long, try to reduce the text for label / message. - Resulting URI too long, try to reduce the text for label / message. - - - - Error encoding URI into QR Code. - Error encoding URI into QR Code. - - - - RecentRequestsTableModel - - - Date - Date - - - - Label - Label - - - - Message - Message - - - - Amount - Amount - - - - (no label) - (no label) - - - - (no message) - (no message) - - - - (no amount) - (no amount) - - - - SendCoinsDialog - - - - - Send Coins - Send Coins - - - - Coin Control Features - Coin Control Features - - - - Inputs... - Inputs... - - - - automatically selected - automatically selected - - - - Insufficient funds! - Insufficient funds! - - - - Quantity: - Quantity: - - - - Bytes: - Bytes: - - - - Amount: - Amount: - - - - Priority: - Priority: - - - - medium - medium - - - - Fee: - Fee: - - - - Dust: - Dust: - - - - no - no - - - - After Fee: - After Fee: - - - - Change: - Change: - - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - - - - Custom change address - Custom change address - - - - Transaction Fee: - Transaction Fee: - - - - Choose... - Choose... - - - - collapse fee-settings - collapse fee-settings - - - - Minimize - Minimize - - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - - - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - - - - per kilobyte - per kilobyte - - - - total at least - total at least - - - - (read the tooltip) - (read the tooltip) - - - - Recommended: - Recommended: - - - - Custom: - Custom: - - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Smart fee not initialized yet. This usually takes a few blocks...) - - - - Confirmation time: - Confirmation time: - - - - normal - normal - - - - fast - fast - - - - Send as zero-fee transaction if possible - Send as zero-fee transaction if possible - - - - (confirmation may take longer) - (confirmation may take longer) - - - - Confirm the send action - Confirm the send action - - - - S&end - S&end - - - - Clear all fields of the form. - Clear all fields of the form. - - - - Clear &All - Clear &All - - - - Send to multiple recipients at once - Send to multiple recipients at once - - - - Add &Recipient - Add &Recipient - - - - Darksend - Darksend - - - - InstantX - InstantX - - - - Balance: - Balance: - - - - Copy quantity - Copy quantity - - - - Copy amount - Copy amount - - - - Copy fee - Copy fee - - - - Copy after fee - Copy after fee - - - - Copy bytes - Copy bytes - - - - Copy priority - Copy priority - - - - Copy dust - Copy dust - - - - Copy change - Copy change - - - - - - using - using - - - - - anonymous funds - anonymous funds - - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend requires this amount to be rounded up to the nearest %1). - - - - any available funds (not recommended) - any available funds (not recommended) - - - - and InstantX - and InstantX - - - - - - - %1 to %2 - %1 to %2 - - - - Are you sure you want to send? - Are you sure you want to send? - - - - are added as transaction fee - are added as transaction fee - - - - Total Amount = <b>%1</b><br />= %2 - Total Amount = <b>%1</b><br />= %2 - - - - Confirm send coins - Confirm send coins - - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - A fee %1 times higher than %2 per kB is considered an insanely high fee. - - - - Estimated to begin confirmation within %n block(s). - Estimated to begin confirmation within %n block.Estimated to begin confirmation within %n blocks. - - - - The recipient address is not valid, please recheck. - The recipient address is not valid, please recheck. - - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 of %2 entries displayed)</b> - - - - The amount to pay must be larger than 0. - The amount to pay must be larger than 0. - - - - The amount exceeds your balance. - The amount exceeds your balance. - - - - The total exceeds your balance when the %1 transaction fee is included. - The total exceeds your balance when the %1 transaction fee is included. - - - - Duplicate address found, can only send to each address once per send operation. - Duplicate address found, can only send to each address once per send operation. - - - - Transaction creation failed! - Transaction creation failed! - - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - - - - Error: The wallet was unlocked only to anonymize coins. - Error: The wallet was unlocked only to anonymize coins. - - - - Pay only the minimum fee of %1 - Pay only the minimum fee of %1 - - - - Warning: Invalid Dash address - Warning: Invalid Dash address - - - - Warning: Unknown change address - Warning: Unknown change address - - - - (no label) - (no label) - - - - SendCoinsEntry - - - This is a normal payment. - This is a normal payment. - - - - Pay &To: - Pay &To: - - - - The Dash address to send the payment to - The Dash address to send the payment to - - - - Choose previously used address - Choose previously used address - - - - Alt+A - Alt+A - - - - Paste address from clipboard - Paste address from clipboard - - - - Alt+P - Alt+P - - - - - - Remove this entry - Remove this entry - - - - &Label: - &Label: - - - - Enter a label for this address to add it to the list of used addresses - Enter a label for this address to add it to the list of used addresses - - - - - - A&mount: - A&mount: - - - - Message: - Message: - - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - - - - This is an unverified payment request. - This is an unverified payment request. - - - - - Pay To: - Pay To: - - - - - Memo: - Memo: - - - - This is a verified payment request. - This is a verified payment request. - - - - Enter a label for this address to add it to your address book - Enter a label for this address to add it to your address book - - - - ShutdownWindow - - - Dash Core is shutting down... - Dash Core is shutting down... - - - - Do not shut down the computer until this window disappears. - Do not shut down the computer until this window disappears. - - - - SignVerifyMessageDialog - - - Signatures - Sign / Verify a Message - Signatures - Sign / Verify a Message - - - - &Sign Message - &Sign Message - - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - - - - The Dash address to sign the message with - The Dash address to sign the message with - - - - - Choose previously used address - Choose previously used address - - - - - Alt+A - Alt+A - - - - Paste address from clipboard - Paste address from clipboard - - - - Alt+P - Alt+P - - - - Enter the message you want to sign here - Enter the message you want to sign here - - - - Signature - Signature - - - - Copy the current signature to the system clipboard - Copy the current signature to the system clipboard - - - - Sign the message to prove you own this Dash address - Sign the message to prove you own this Dash address - - - - Sign &Message - Sign &Message - - - - Reset all sign message fields - Reset all sign message fields - - - - - Clear &All - Clear &All - - - - &Verify Message - &Verify Message - - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - - - - The Dash address the message was signed with - The Dash address the message was signed with - - - - Verify the message to ensure it was signed with the specified Dash address - Verify the message to ensure it was signed with the specified Dash address - - - - Verify &Message - Verify &Message - - - - Reset all verify message fields - Reset all verify message fields - - - - Click "Sign Message" to generate signature - Click "Sign Message" to generate signature - - - - - The entered address is invalid. - The entered address is invalid. - - - - - - - Please check the address and try again. - Please check the address and try again. - - - - - The entered address does not refer to a key. - The entered address does not refer to a key. - - - - Wallet unlock was cancelled. - Wallet unlock was cancelled. - - - - Private key for the entered address is not available. - Private key for the entered address is not available. - - - - Message signing failed. - Message signing failed. - - - - Message signed. - Message signed. - - - - The signature could not be decoded. - The signature could not be decoded. - - - - - Please check the signature and try again. - Please check the signature and try again. - - - - The signature did not match the message digest. - The signature did not match the message digest. - - - - Message verification failed. - Message verification failed. - - - - Message verified. - Message verified. - - - - SplashScreen - - - Dash Core - Dash Core - - - - Version %1 - Version %1 - - - - The Bitcoin Core developers - The Bitcoin Core developers - - - - The Dash Core developers - The Dash Core developers - - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - - KB/s - KB/s - - - - TransactionDesc - - - Open for %n more block(s) - Open for %n more blockOpen for %n more blocks - - - - Open until %1 - Open until %1 - - - - - - - conflicted - conflicted - - - - %1/offline (verified via instantx) - %1/offline (verified via instantx) - - - - %1/confirmed (verified via instantx) - %1/confirmed (verified via instantx) - - - - %1 confirmations (verified via instantx) - %1 confirmations (verified via instantx) - - - - %1/offline - %1/offline - - - - %1/unconfirmed - %1/unconfirmed - - - - - %1 confirmations - %1 confirmations - - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/offline (InstantX verification in progress - %2 of %3 signatures) - - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - - - - %1/offline (InstantX verification failed) - %1/offline (InstantX verification failed) - - - - %1/confirmed (InstantX verification failed) - %1/confirmed (InstantX verification failed) - - - - Status - Status - - - - , has not been successfully broadcast yet - , has not been successfully broadcast yet - - - - , broadcast through %n node(s) - , broadcast through %n node, broadcast through %n nodes - - - - Date - Date - - - - Source - Source - - - - Generated - Generated - - - - - - From - From - - - - unknown - unknown - - - - - - To - To - - - - own address - own address - - - - - watch-only - watch-only - - - - label - label - - - - - - - - Credit - Credit - - - - matures in %n more block(s) - matures in %n more blockmatures in %n more blocks - - - - not accepted - not accepted - - - - - - Debit - Debit - - - - Total debit - Total debit - - - - Total credit - Total credit - - - - Transaction fee - Transaction fee - - - - Net amount - Net amount - - - - - Message - Message - - - - Comment - Comment - - - - Transaction ID - Transaction ID - - - - Merchant - Merchant - - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - - - - Debug information - Debug information - - - - Transaction - Transaction - - - - Inputs - Inputs - - - - Amount - Amount - - - - - true - true - - - - - false - false - - - - TransactionDescDialog - - - Transaction details - Transaction details - - - - This pane shows a detailed description of the transaction - This pane shows a detailed description of the transaction - - - - TransactionTableModel - - - Date - Date - - - - Type - Type - - - - Address - Address - - - - Open for %n more block(s) - Open for %n more blockOpen for %n more blocks - - - - Open until %1 - Open until %1 - - - - Offline - Offline - - - - Unconfirmed - Unconfirmed - - - - Confirming (%1 of %2 recommended confirmations) - Confirming (%1 of %2 recommended confirmations) - - - - Confirmed (%1 confirmations) - Confirmed (%1 confirmations) - - - - Conflicted - Conflicted - - - - Immature (%1 confirmations, will be available after %2) - Immature (%1 confirmations, will be available after %2) - - - - This block was not received by any other nodes and will probably not be accepted! - This block was not received by any other nodes and will probably not be accepted! - - - - Generated but not accepted - Generated but not accepted - - - - Received with - Received with - - - - Received from - Received from - - - - Received via Darksend - Received via Darksend - - - - Sent to - Sent to - - - - Payment to yourself - Payment to yourself - - - - Mined - Mined - - - - Darksend Denominate - Darksend Denominate - - - - Darksend Collateral Payment - Darksend Collateral Payment - - - - Darksend Make Collateral Inputs - Darksend Make Collateral Inputs - - - - Darksend Create Denominations - Darksend Create Denominations - - - - Darksent - Darksent - - - - watch-only - watch-only - - - - (n/a) - (n/a) - - - - Transaction status. Hover over this field to show number of confirmations. - Transaction status. Hover over this field to show number of confirmations. - - - - Date and time that the transaction was received. - Date and time that the transaction was received. - - - - Type of transaction. - Type of transaction. - - - - Whether or not a watch-only address is involved in this transaction. - Whether or not a watch-only address is involved in this transaction. - - - - Destination address of transaction. - Destination address of transaction. - - - - Amount removed from or added to balance. - Amount removed from or added to balance. - - - - TransactionView - - - - All - All - - - - Today - Today - - - - This week - This week - - - - This month - This month - - - - Last month - Last month - - - - This year - This year - - - - Range... - Range... - - - - Most Common - Most Common - - - - Received with - Received with - - - - Sent to - Sent to - - - - Darksent - Darksent - - - - Darksend Make Collateral Inputs - Darksend Make Collateral Inputs - - - - Darksend Create Denominations - Darksend Create Denominations - - - - Darksend Denominate - Darksend Denominate - - - - Darksend Collateral Payment - Darksend Collateral Payment - - - - To yourself - To yourself - - - - Mined - Mined - - - - Other - Other - - - - Enter address or label to search - Enter address or label to search - - - - Min amount - Min amount - - - - Copy address - Copy address - - - - Copy label - Copy label - - - - Copy amount - Copy amount - - - - Copy transaction ID - Copy transaction ID - - - - Edit label - Edit label - - - - Show transaction details - Show transaction details - - - - Export Transaction History - Export Transaction History - - - - Comma separated file (*.csv) - Comma separated file (*.csv) - - - - Confirmed - Confirmed - - - - Watch-only - Watch-only - - - - Date - Date - - - - Type - Type - - - - Label - Label - - - - Address - Address - - - - ID - ID - - - - Exporting Failed - Exporting Failed - - - - There was an error trying to save the transaction history to %1. - There was an error trying to save the transaction history to %1. - - - - Exporting Successful - Exporting Successful - - - - The transaction history was successfully saved to %1. - The transaction history was successfully saved to %1. - - - - Range: - Range: - - - - to - to - - - - UnitDisplayStatusBarControl - - - Unit to show amounts in. Click to select another unit. - Unit to show amounts in. Click to select another unit. - - - - WalletFrame - - - No wallet has been loaded. - No wallet has been loaded. - - - - WalletModel - - - - - Send Coins - Send Coins - - - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - - - - WalletView - - - &Export - &Export - - - - Export the data in the current tab to a file - Export the data in the current tab to a file - - - - Selected amount: - Selected amount: - - - - Backup Wallet - Backup Wallet - - - - Wallet Data (*.dat) - Wallet Data (*.dat) - - - - Backup Failed - Backup Failed - - - - There was an error trying to save the wallet data to %1. - There was an error trying to save the wallet data to %1. - - - - Backup Successful - Backup Successful - - - - The wallet data was successfully saved to %1. - The wallet data was successfully saved to %1. - - - - dash-core - - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - - - - Error: Listening for incoming connections failed (listen returned error %s) - Error: Listening for incoming connections failed (listen returned error %s) - - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Execute command when the best block changes (%s in cmd is replaced by block hash) - - - - In this mode -genproclimit controls how many blocks are generated immediately. - In this mode -genproclimit controls how many blocks are generated immediately. - - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - - - - Name to construct url for KeePass entry that stores the wallet passphrase - Name to construct url for KeePass entry that stores the wallet passphrase - - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Unable to bind to %s on this computer. Dash Core is probably already running. - - - - Unable to locate enough Darksend denominated funds for this transaction. - Unable to locate enough Darksend denominated funds for this transaction. - - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - - - - (default: 1) - (default: 1) - - - - Accept command line and JSON-RPC commands - Accept command line and JSON-RPC commands - - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Accept connections from outside (default: 1 if no -proxy or -connect) - - - - Add a node to connect to and attempt to keep the connection open - Add a node to connect to and attempt to keep the connection open - - - - Allow DNS lookups for -addnode, -seednode and -connect - Allow DNS lookups for -addnode, -seednode and -connect - - - - Already have that input. - Already have that input. - - - - Attempt to recover private keys from a corrupt wallet.dat - Attempt to recover private keys from a corrupt wallet.dat - - - - Block creation options: - Block creation options: - - - - Can't denominate: no compatible inputs left. - Can't denominate: no compatible inputs left. - - - - Cannot downgrade wallet - Cannot downgrade wallet - - - - Cannot resolve -bind address: '%s' - Cannot resolve -bind address: '%s' - - - - Cannot resolve -externalip address: '%s' - Cannot resolve -externalip address: '%s' - - - - Cannot write default address - Cannot write default address - - - - Collateral not valid. - Collateral not valid. - - - - Connect only to the specified node(s) - Connect only to the specified node(s) - - - - Connect to a node to retrieve peer addresses, and disconnect - Connect to a node to retrieve peer addresses, and disconnect - - - - Connection options: - Connection options: - - - - Corrupted block database detected - Corrupted block database detected - - - - Darksend options: - Darksend options: - - - - Debugging/Testing options: - Debugging/Testing options: - - - - Discover own IP address (default: 1 when listening and no -externalip) - Discover own IP address (default: 1 when listening and no -externalip) - - - - Do not load the wallet and disable wallet RPC calls - Do not load the wallet and disable wallet RPC calls - - - - Do you want to rebuild the block database now? - Do you want to rebuild the block database now? - - - - Done loading - Done loading - - - - Entries are full. - Entries are full. - - - - Error initializing block database - Error initializing block database - - - - Error initializing wallet database environment %s! - Error initializing wallet database environment %s! - - - - Error loading block database - Error loading block database - - - - Error loading wallet.dat - Error loading wallet.dat - - - - Error loading wallet.dat: Wallet corrupted - Error loading wallet.dat: Wallet corrupted - - - - Error opening block database - Error opening block database - - - - Error reading from database, shutting down. - Error reading from database, shutting down. - - - - Error recovering public key. - Error recovering public key. - - - - Error - Error - - - - Error: Disk space is low! - Error: Disk space is low! - - - - Error: Wallet locked, unable to create transaction! - Error: Wallet locked, unable to create transaction! - - - - Error: You already have pending entries in the Darksend pool - Error: You already have pending entries in the Darksend pool - - - - Failed to listen on any port. Use -listen=0 if you want this. - Failed to listen on any port. Use -listen=0 if you want this. - - - - Failed to read block - Failed to read block - - - - If <category> is not supplied, output all debugging information. - If <category> is not supplied, output all debugging information. - - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - - - - An error occurred while setting up the RPC address %s port %u for listening: %s - An error occurred while setting up the RPC address %s port %u for listening: %s - - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Enable instantx, show confirmations for locked transactions (bool, default: %s) - - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Found unconfirmed denominated outputs, will wait till they confirm to continue. - - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - How thorough the block verification of -checkblocks is (0-4, default: %u) - - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Log transaction priority and fee per kB when mining blocks (default: %u) - - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Maximum size of data in data carrier transactions we relay and mine (default: %u) - - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - - - - Output debugging information (default: %u, supplying <category> is optional) - Output debugging information (default: %u, supplying <category> is optional) - - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - - - - Require high priority for relaying free or low-fee transactions (default:%u) - Require high priority for relaying free or low-fee transactions (default:%u) - - - - Send trace/debug info to console instead of debug.log file (default: %u) - Send trace/debug info to console instead of debug.log file (default: %u) - - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - - - - (9999 could be used only on mainnet) - (9999 could be used only on mainnet) - - - - (default: %s) - (default: %s) - - - - <category> can be: - - <category> can be: - - - - - Accept public REST requests (default: %u) - Accept public REST requests (default: %u) - - - - Acceptable ciphers (default: %s) - Acceptable ciphers (default: %s) - - - - Always query for peer addresses via DNS lookup (default: %u) - Always query for peer addresses via DNS lookup (default: %u) - - - - Cannot resolve -whitebind address: '%s' - Cannot resolve -whitebind address: '%s' - - - - Connect through SOCKS5 proxy - Connect through SOCKS5 proxy - - - - Connect to KeePassHttp on port <port> (default: %u) - Connect to KeePassHttp on port <port> (default: %u) - - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i The Bitcoin Core Developers - - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i The Dash Core Developers - - - - Could not parse -rpcbind value %s as network address - Could not parse -rpcbind value %s as network address - - - - Darksend is idle. - Darksend is idle. - - - - Darksend request complete: - Darksend request complete: - - - - Darksend request incomplete: - Darksend request incomplete: - - - - Disable safemode, override a real safe mode event (default: %u) - Disable safemode, override a real safe mode event (default: %u) - - - - Enable the client to act as a masternode (0-1, default: %u) - Enable the client to act as a masternode (0-1, default: %u) - - - - Error connecting to Masternode. - Error connecting to Masternode. - - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Error loading wallet.dat: Wallet requires newer version of Dash Core - - - - Error: A fatal internal error occured, see debug.log for details - Error: A fatal internal error occured, see debug.log for details - - - - Error: Can't select current denominated inputs - Error: Can't select current denominated inputs - - - - Error: Unsupported argument -tor found, use -onion. - Error: Unsupported argument -tor found, use -onion. - - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Fee (in DASH/kB) to add to transactions you send (default: %s) - - - - Finalizing transaction. - Finalizing transaction. - - - - Force safe mode (default: %u) - Force safe mode (default: %u) - - - - Found enough users, signing ( waiting %s ) - Found enough users, signing ( waiting %s ) - - - - Found enough users, signing ... - Found enough users, signing ... - - - - Generate coins (default: %u) - Generate coins (default: %u) - - - - How many blocks to check at startup (default: %u, 0 = all) - How many blocks to check at startup (default: %u, 0 = all) - - - - Importing... - Importing... - - - - Imports blocks from external blk000??.dat file - Imports blocks from external blk000??.dat file - - - - Include IP addresses in debug output (default: %u) - Include IP addresses in debug output (default: %u) - - - - Incompatible mode. - Incompatible mode. - - - - Incompatible version. - Incompatible version. - - - - Incorrect or no genesis block found. Wrong datadir for network? - Incorrect or no genesis block found. Wrong datadir for network? - - - - Information - Information - - - - Initialization sanity check failed. Dash Core is shutting down. - Initialization sanity check failed. Dash Core is shutting down. - - - - Input is not valid. - Input is not valid. - - - - InstantX options: - InstantX options: - - - - Insufficient funds. - Insufficient funds. - - - - Invalid -onion address: '%s' - Invalid -onion address: '%s' - - - - Invalid -proxy address: '%s' - Invalid -proxy address: '%s' - - - - Invalid amount for -maxtxfee=<amount>: '%s' - Invalid amount for -maxtxfee=<amount>: '%s' - - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Invalid amount for -minrelaytxfee=<amount>: '%s' - - - - Invalid amount for -mintxfee=<amount>: '%s' - Invalid amount for -mintxfee=<amount>: '%s' - - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - - - - Invalid amount for -paytxfee=<amount>: '%s' - Invalid amount for -paytxfee=<amount>: '%s' - - - - Last successful Darksend action was too recent. - Last successful Darksend action was too recent. - - - - Limit size of signature cache to <n> entries (default: %u) - Limit size of signature cache to <n> entries (default: %u) - - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - - - - Listen for connections on <port> (default: %u or testnet: %u) - Listen for connections on <port> (default: %u or testnet: %u) - - - - Loading budget cache... - Loading budget cache... - - - - Loading masternode cache... - Loading masternode cache... - - - - Loading masternode payment cache... - Loading masternode payment cache... - - - - Lock is already in place. - Lock is already in place. - - - - Lock masternodes from masternode configuration file (default: %u) - Lock masternodes from masternode configuration file (default: %u) - - - - Maintain at most <n> connections to peers (default: %u) - Maintain at most <n> connections to peers (default: %u) - - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - - - - Mixing in progress... - Mixing in progress... - - - - Need to specify a port with -whitebind: '%s' - Need to specify a port with -whitebind: '%s' - - - - No Masternodes detected. - No Masternodes detected. - - - - No compatible Masternode found. - No compatible Masternode found. - - - - Not in the Masternode list. - Not in the Masternode list. - - - - Number of automatic wallet backups (default: 10) - Number of automatic wallet backups (default: 10) - - - - Only accept block chain matching built-in checkpoints (default: %u) - Only accept block chain matching built-in checkpoints (default: %u) - - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - - - - Prepend debug output with timestamp (default: %u) - Prepend debug output with timestamp (default: %u) - - - - Run a thread to flush wallet periodically (default: %u) - Run a thread to flush wallet periodically (default: %u) - - - - Send trace/debug info to debug.log file (default: %u) - Send trace/debug info to debug.log file (default: %u) - - - - Send transactions as zero-fee transactions if possible (default: %u) - Send transactions as zero-fee transactions if possible (default: %u) - - - - Server certificate file (default: %s) - Server certificate file (default: %s) - - - - Server private key (default: %s) - Server private key (default: %s) - - - - Set external address:port to get to this masternode (example: %s) - Set external address:port to get to this masternode (example: %s) - - - - Set key pool size to <n> (default: %u) - Set key pool size to <n> (default: %u) - - - - Set minimum block size in bytes (default: %u) - Set minimum block size in bytes (default: %u) - - - - Set the number of threads to service RPC calls (default: %d) - Set the number of threads to service RPC calls (default: %d) - - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - - - - Signing timed out. - Signing timed out. - - - - Specify configuration file (default: %s) - Specify configuration file (default: %s) - - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Specify connection timeout in milliseconds (minimum: 1, default: %d) - - - - Specify masternode configuration file (default: %s) - Specify masternode configuration file (default: %s) - - - - Specify pid file (default: %s) - Specify pid file (default: %s) - - - - Spend unconfirmed change when sending transactions (default: %u) - Spend unconfirmed change when sending transactions (default: %u) - - - - Stop running after importing blocks from disk (default: %u) - Stop running after importing blocks from disk (default: %u) - - - - Submitted following entries to masternode: %u / %d - Submitted following entries to masternode: %u / %d - - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Submitted to masternode, waiting for more entries ( %u / %d ) %s - - - - Submitted to masternode, waiting in queue %s - Submitted to masternode, waiting in queue %s - - - - Synchronization failed - Synchronization failed - - - - Synchronization finished - Synchronization finished - - - - Synchronizing budgets... - Synchronizing budgets... - - - - Synchronizing masternode winners... - Synchronizing masternode winners... - - - - Synchronizing masternodes... - Synchronizing masternodes... - - - - Synchronizing sporks... - Synchronizing sporks... - - - - This is not a Masternode. - This is not a Masternode. - - - - Threshold for disconnecting misbehaving peers (default: %u) - Threshold for disconnecting misbehaving peers (default: %u) - - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Use N separate masternodes to anonymize funds (2-8, default: %u) - - - - Use UPnP to map the listening port (default: %u) - Use UPnP to map the listening port (default: %u) - - - - Wallet needed to be rewritten: restart Dash Core to complete - Wallet needed to be rewritten: restart Dash Core to complete - - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Warning: Unsupported argument -debugnet ignored, use -debug=net. - - - - Will retry... - Will retry... - - - - Invalid masternodeprivkey. Please see documenation. - Invalid masternodeprivkey. Please see documenation. - - - - (must be 9999 for mainnet) - (must be 9999 for mainnet) - - - - Can't find random Masternode. - Can't find random Masternode. - - - - Can't mix while sync in progress. - Can't mix while sync in progress. - - - - Could not parse masternode.conf - Could not parse masternode.conf - - - - Invalid netmask specified in -whitelist: '%s' - Invalid netmask specified in -whitelist: '%s' - - - - Invalid port detected in masternode.conf - Invalid port detected in masternode.conf - - - - Invalid private key. - Invalid private key. - - - - Invalid script detected. - Invalid script detected. - - - - KeePassHttp id for the established association - KeePassHttp id for the established association - - - - KeePassHttp key for AES encrypted communication with KeePass - KeePassHttp key for AES encrypted communication with KeePass - - - - Keep N DASH anonymized (default: %u) - Keep N DASH anonymized (default: %u) - - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Keep at most <n> unconnectable transactions in memory (default: %u) - - - - Last Darksend was too recent. - Last Darksend was too recent. - - - - Line: %d - Line: %d - - - - Loading addresses... - Loading addresses... - - - - Loading block index... - Loading block index... - - - - Loading wallet... (%3.2f %%) - Loading wallet... (%3.2f %%) - - - - Loading wallet... - Loading wallet... - - - - Masternode options: - Masternode options: - - - - Masternode queue is full. - Masternode queue is full. - - - - Masternode: - Masternode: - - - - Missing input transaction information. - Missing input transaction information. - - - - No funds detected in need of denominating. - No funds detected in need of denominating. - - - - No matching denominations found for mixing. - No matching denominations found for mixing. - - - - Node relay options: - Node relay options: - - - - Non-standard public key detected. - Non-standard public key detected. - - - - Not compatible with existing transactions. - Not compatible with existing transactions. - - - - Not enough file descriptors available. - Not enough file descriptors available. - - - - Options: - Options: - - - - Password for JSON-RPC connections - Password for JSON-RPC connections - - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - - - - RPC server options: - RPC server options: - - - - RPC support for HTTP persistent connections (default: %d) - RPC support for HTTP persistent connections (default: %d) - - - - Randomly drop 1 of every <n> network messages - Randomly drop 1 of every <n> network messages - - - - Randomly fuzz 1 of every <n> network messages - Randomly fuzz 1 of every <n> network messages - - - - Rebuild block chain index from current blk000??.dat files - Rebuild block chain index from current blk000??.dat files - - - - Receive and display P2P network alerts (default: %u) - Receive and display P2P network alerts (default: %u) - - - - Relay and mine data carrier transactions (default: %u) - Relay and mine data carrier transactions (default: %u) - - - - Relay non-P2SH multisig (default: %u) - Relay non-P2SH multisig (default: %u) - - - - Rescan the block chain for missing wallet transactions - Rescan the block chain for missing wallet transactions - - - - Rescanning... - Rescanning... - - - - Run in the background as a daemon and accept commands - Run in the background as a daemon and accept commands - - - - Session not complete! - Session not complete! - - - - Session timed out. - Session timed out. - - - - Set database cache size in megabytes (%d to %d, default: %d) - Set database cache size in megabytes (%d to %d, default: %d) - - - - Set maximum block size in bytes (default: %d) - Set maximum block size in bytes (default: %d) - - - - Set the masternode private key - Set the masternode private key - - - - Show all debugging options (usage: --help -help-debug) - Show all debugging options (usage: --help -help-debug) - - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Shrink debug.log file on client startup (default: 1 when no -debug) - - - - Signing failed. - Signing failed. - - - - Signing transaction failed - Signing transaction failed - - - - Specify data directory - Specify data directory - - - - Specify wallet file (within data directory) - Specify wallet file (within data directory) - - - - Specify your own public address - Specify your own public address - - - - Synchronization pending... - Synchronization pending... - - - - This help message - This help message - - - - This is experimental software. - This is experimental software. - - - - This is intended for regression testing tools and app development. - This is intended for regression testing tools and app development. - - - - Transaction amount too small - Transaction amount too small - - - - Transaction amounts must be positive - Transaction amounts must be positive - - - - Transaction created successfully. - Transaction created successfully. - - - - Transaction fees are too high. - Transaction fees are too high. - - - - Transaction not valid. - Transaction not valid. - - - - Transaction too large for fee policy - Transaction too large for fee policy - - - - Transaction too large - Transaction too large - - - - Transmitting final transaction. - Transmitting final transaction. - - - - Unable to bind to %s on this computer (bind returned error %s) - Unable to bind to %s on this computer (bind returned error %s) - - - - Unable to sign spork message, wrong key? - Unable to sign spork message, wrong key? - - - - Unknown network specified in -onlynet: '%s' - Unknown network specified in -onlynet: '%s' - - - - Unknown state: id = %u - Unknown state: id = %u - - - - Upgrade wallet to latest format - Upgrade wallet to latest format - - - - Use OpenSSL (https) for JSON-RPC connections - Use OpenSSL (https) for JSON-RPC connections - - - - Use UPnP to map the listening port (default: 1 when listening) - Use UPnP to map the listening port (default: 1 when listening) - - - - Use the test network - Use the test network - - - - Username for JSON-RPC connections - Username for JSON-RPC connections - - - - Value more than Darksend pool maximum allows. - Value more than Darksend pool maximum allows. - - - - Verifying blocks... - Verifying blocks... - - - - Verifying wallet... - Verifying wallet... - - - - Wallet %s resides outside data directory %s - Wallet %s resides outside data directory %s - - - - Wallet is locked. - Wallet is locked. - - - - Wallet options: - Wallet options: - - - - Wallet window title - Wallet window title - - - - Warning - Warning - - - - Warning: This version is obsolete, upgrade required! - Warning: This version is obsolete, upgrade required! - - - - You need to rebuild the database using -reindex to change -txindex - You need to rebuild the database using -reindex to change -txindex - - - - Your entries added successfully. - Your entries added successfully. - - - - Your transaction was accepted into the pool! - Your transaction was accepted into the pool! - - - - Zapping all transactions from wallet... - Zapping all transactions from wallet... - - - - on startup - on startup - - - - wallet.dat corrupt, salvage failed - wallet.dat corrupt, salvage failed - - - \ No newline at end of file diff --git a/src/qt/locale/dash_es.ts b/src/qt/locale/dash_es.ts deleted file mode 100644 index a6f961288fda..000000000000 --- a/src/qt/locale/dash_es.ts +++ /dev/null @@ -1,4540 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Pulsar con el botón derecho para editar la dirección o etiqueta - - - Create a new address - Crear una dirección nueva - - - &New - &Nueva - - - Copy the currently selected address to the system clipboard - Copiar la dirección seleccionada al portapapeles del sistema - - - &Copy - &Copiar - - - Delete the currently selected address from the list - Elimina la dirección seleccionada de la lista - - - &Delete - &Eliminar - - - Export the data in the current tab to a file - Exporta los datos en la pestaña actual a un archivo - - - &Export - E&xportar - - - C&lose - Ce&rrar - - - Choose the address to send coins to - Elija la dirección a la cual enviar los dash - - - Choose the address to receive coins with - Elija la dirección donde recibirá los dash - - - C&hoose - E&scoger - - - Sending addresses - Direcciones de envío - - - Receiving addresses - Direcciones de recepción - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones Dash para enviar pagos. Compruebe siempre la cantidad y la dirección receptora antes de enviar dashs. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estas son sus direcciones de Dash para recibir pagos. Se recomienda utilizar una nueva dirección de recepción para cada transacción. - - - &Copy Address - Copiar &Dirección - - - Copy &Label - Copiar E&tiqueta - - - &Edit - &Editar - - - Export Address List - Exportar la Lista de Direcciones - - - Comma separated file (*.csv) - Archivo de valores separados por comas (*.csv) - - - Exporting Failed - Error al exportar - - - There was an error trying to save the address list to %1. Please try again. - Se produjo un error al intentar guardar la lista de direcciones en %1. Por favor, inténtelo otra vez. - - - - AddressTableModel - - Label - Etiqueta - - - Address - Dirección - - - (no label) - (sin etiqueta) - - - - AskPassphraseDialog - - Passphrase Dialog - Diálogo de contraseña - - - Enter passphrase - Introducir contraseña - - - New passphrase - Nueva contraseña - - - Repeat new passphrase - Repita la nueva contraseña - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Sirve para desactivar sendmoney trivial cuando una cuenta del SO se ve comprometida . No ofrece seguridad real. - - - For anonymization only - Solo para anonimizar - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Introduzca la nueva contraseña del monedero.<br/>Por favor, use una contraseña con <b>diez o más caracteres aleatorios</b>, u <b>ocho o más palabras</b>. - - - Encrypt wallet - Cifrar el monedero - - - This operation needs your wallet passphrase to unlock the wallet. - Esta operación requiere su contraseña para desbloquear el monedero. - - - Unlock wallet - Desbloquear monedero - - - This operation needs your wallet passphrase to decrypt the wallet. - Esta operación requiere su contraseña para descifrar el monedero. - - - Decrypt wallet - Descifrar el monedero - - - Change passphrase - Cambiar contraseña - - - Enter the old and new passphrase to the wallet. - Introduzca la contraseña anterior del monedero y la nueva. - - - Confirm wallet encryption - Confirmar cifrado del monedero - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Advertencia: Si cifra la cartera y pierde su contraseña, ¡<b>PERDERÁ TODOS SUS DASH</b>! - - - Are you sure you wish to encrypt your wallet? - ¿Seguro que desea cifrar su monedero? - - - Wallet encrypted - Monedero cifrado - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash se cerrará ahora para finalizar el proceso de cifrado. Recuerde que el cifrado de su monedero no puede proteger totalmente sus dashs del robo por un malware que infecte su sistema. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Cualquier copia de seguridad que haya realizado previamente de su archivo del monedero debe reemplazarse con el nuevo archivo de monedero cifrado. Por razones de seguridad, las copias de seguridad previas del archivo de monedero no cifradas serán inservibles en cuanto comience a usar el nuevo monedero cifrado. - - - Wallet encryption failed - Ha fallado el cifrado del monedero - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Ha fallado el cifrado del monedero debido a un error interno. El monedero no se cifró. - - - The supplied passphrases do not match. - Las contraseñas no coinciden. - - - Wallet unlock failed - Ha fallado el desbloqueo del monedero - - - The passphrase entered for the wallet decryption was incorrect. - La contraseña introducida para descifrar el monedero es incorrecta. - - - Wallet decryption failed - Ha fallado el descifrado del monedero - - - Wallet passphrase was successfully changed. - Se ha cambiado correctamente la contraseña del monedero. - - - Warning: The Caps Lock key is on! - Aviso: ¡La tecla de bloqueo de mayúsculas está activada! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Monedero - - - Node - Nodo - - - &Overview - &Vista general - - - Show general overview of wallet - Mostrar vista general del monedero - - - &Send - &Enviar - - - Send coins to a Dash address - Enviar cuantía a una dirección Dash - - - &Receive - &Recibir - - - Request payments (generates QR codes and dash: URIs) - Solicitar pagos (genera códigos QR y URIs de Dash) - - - &Transactions - &Transacciones - - - Browse transaction history - Examinar el historial de transacciones - - - E&xit - &Salir - - - Quit application - Salir de la aplicación - - - &About Dash Core - &Acerca de Dash Core - - - Show information about Dash Core - Mostrar información acerca de Dash Core - - - About &Qt - Acerca de &Qt - - - Show information about Qt - Mostrar información acerca de Qt - - - &Options... - &Opciones... - - - Modify configuration options for Dash - Modificar las opciones de configuración de Dash - - - &Show / Hide - Mo&strar/ocultar - - - Show or hide the main Window - Mostrar u ocultar la ventana principal - - - &Encrypt Wallet... - Ci&frar monedero… - - - Encrypt the private keys that belong to your wallet - Cifrar las claves privadas de su monedero - - - &Backup Wallet... - &Guardar copia del monedero... - - - Backup wallet to another location - Crear copia de seguridad del monedero en otra ubicación - - - &Change Passphrase... - &Cambiar la contraseña… - - - Change the passphrase used for wallet encryption - Cambiar la contraseña utilizada para el cifrado del monedero - - - &Unlock Wallet... - &Desbloquear el monedero - - - Unlock wallet - Desbloquear el monedero - - - &Lock Wallet - &Bloquear el monedero - - - Sign &message... - Firmar &mensaje... - - - Sign messages with your Dash addresses to prove you own them - Firmar mensajes con sus direcciones Dash para demostrar su posesión - - - &Verify message... - &Verificar el mensaje... - - - Verify messages to ensure they were signed with specified Dash addresses - Verificar mensajes para comprobar que fueron firmados con la dirección Dash indicada - - - &Information - &Información - - - Show diagnostic information - Muestra información de diagnóstico - - - &Debug console - Consola de &Depuración - - - Open debugging console - Abrir la consola de depuración - - - &Network Monitor - Monitor de &Red - - - Show network monitor - Muestra la monitorización de la red - - - &Peers list - Lista de &Pares - - - Show peers info - Mostrar info de pares - - - Wallet &Repair - Reparar &Monedero - - - Show wallet repair options - Mostrar opciones para reparar monedero - - - Open &Configuration File - Abrir Archivo de &Configuración - - - Open configuration file - Abrir archivo de configuración - - - Show Automatic &Backups - Mostrar Copias de &Seguridad Automáticas - - - Show automatically created wallet backups - Mostrar las copias de seguridad del monedero creadas automáticamente - - - &Sending addresses... - Direcciones de &envío... - - - Show the list of used sending addresses and labels - Mostrar la lista de direcciones de envío y etiquetas - - - &Receiving addresses... - Direcciones de &recepción... - - - Show the list of used receiving addresses and labels - Mostrar la lista de direcciones de recepción y etiquetas - - - Open &URI... - Abrir &URI... - - - Open a dash: URI or payment request - Abrir un dash: URI o petición de pago - - - &Command-line options - &Opciones de consola de comandos - - - Dash Core client - Cliente Dash Core - - - Processed %n blocks of transaction history. - Procesado %n bloque del historial de transacciones.Procesados %n bloques del historial de transacciones. - - - Synchronizing additional data: %p% - Sincronizando datos adicionales: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Mostrar el mensaje de ayuda de Dash Core para obtener una lista con las posibles opciones de la consola de comandos - - - &File - &Archivo - - - &Settings - &Configuración - - - &Tools - &Herramientas - - - &Help - A&yuda - - - Tabs toolbar - Barra de pestañas - - - %n active connection(s) to Dash network - %n conexion(es) activa a la red Dash%n conexion(es) activas a la red Dash - - - Synchronizing with network... - Sincronizando con la red… - - - Importing blocks from disk... - Importando bloques de disco... - - - Reindexing blocks on disk... - Reindexando bloques en disco... - - - No block source available... - Ninguna fuente de bloques disponible ... - - - Up to date - Actualizado - - - %n hour(s) - %n hora(s)%n hora(s) - - - %n day(s) - %n día%n días - - - %n week(s) - %n semana(s)%n semana(s) - - - %1 and %2 - %1 y %2 - - - %n year(s) - %n año(s)%n año(s) - - - %1 behind - %1 por detrás - - - Catching up... - Poniendo al día... - - - Last received block was generated %1 ago. - El último bloque recibido fue generado hace %1. - - - Transactions after this will not yet be visible. - Las transacciones posteriores aún no están visibles. - - - Error - Error - - - Warning - Aviso - - - Information - Información - - - Sent transaction - Transacción enviada - - - Incoming transaction - Transacción entrante - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Fecha: %1 -Cuantía: %2 -Tipo: %3 -Dirección: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - El monedero está <b>cifrado</b> y actualmente <b>desbloqueado</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - El monedero está <b>cifrado</b> y actualmente <b>desbloqueado</b> sólo para anonimización - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - El monedero está <b>cifrado</b> y actualmente <b>bloqueado</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Total: %1 (Compatibles con DS: %2 / Habilitados: %3) - - - Network Alert - Alerta de red - - - - CoinControlDialog - - Quantity: - Cantidad: - - - Bytes: - Bytes: - - - Amount: - Cuantía: - - - Priority: - Prioridad: - - - Fee: - Comisión: - - - Coin Selection - Selección de Dash - - - Dust: - Polvo: - - - After Fee: - Después de comisiones: - - - Change: - Cambio: - - - (un)select all - (des)marcar todos - - - Tree mode - Modo árbol - - - List mode - Modo lista - - - (1 locked) - (1 bloqueada) - - - Amount - Cuantía - - - Received with label - Recibido con la etiqueta - - - Received with address - Recibido con la dirección - - - DS Rounds - Rondas de DS - - - Date - Fecha - - - Confirmations - Confirmaciones - - - Confirmed - Confirmado - - - Priority - Prioridad - - - Copy address - Copiar dirección - - - Copy label - Copiar etiqueta - - - Copy amount - Copiar cuantía - - - Copy transaction ID - Copiar ID de transacción - - - Lock unspent - Bloquear lo no gastado - - - Unlock unspent - Desbloquear lo no gastado - - - Copy quantity - Copiar cantidad - - - Copy fee - Copiar comisión - - - Copy after fee - Copiar después de aplicar comisión - - - Copy bytes - Copiar bytes - - - Copy priority - Copiar prioridad - - - Copy dust - Copiar polvo - - - Copy change - Copiar cambio - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Se seleccionó alguna entrada no anónima. <b>Darksend se desactivará.</b><br><br>Si aún desea usar Darksend, por favor desmarque primero todas las entradas que no son anónimas y luego active de nuevo la casilla de Darksend. - - - highest - la más alta - - - higher - más alta - - - high - alta - - - medium-high - media-alta - - - Can vary +/- %1 duff(s) per input. - Puede variar +/- %1 duff(s) por entrada. - - - n/a - n/d - - - medium - media - - - low-medium - baja-media - - - low - baja - - - lower - más baja - - - lowest - la más baja - - - (%1 locked) - (%1 bloqueadas) - - - none - ninguna - - - yes - si - - - no - no - - - This label turns red, if the transaction size is greater than 1000 bytes. - Esta etiqueta se torna roja si el tamaño de la transación es mayor a 1000 bytes. - - - This means a fee of at least %1 per kB is required. - Esto implica que se requiere una comisión de al menos %1 por kB - - - Can vary +/- 1 byte per input. - Puede variar +/- 1 byte por entrada. - - - Transactions with higher priority are more likely to get included into a block. - Las transacciones con prioridad alta son más propensas a ser incluidas dentro de un bloque. - - - This label turns red, if the priority is smaller than "medium". - Esta etiqueta se torna roja si la prioridad es menor que "media". - - - This label turns red, if any recipient receives an amount smaller than %1. - Esta etiqueta se torna roja si cualquier destinatario recibe una cuantía menor a %1. - - - (no label) - (sin etiqueta) - - - change from %1 (%2) - cambiar desde %1 (%2) - - - (change) - (cambio) - - - - DarksendConfig - - Configure Darksend - Configurar Darksend - - - Basic Privacy - Privacidad Básica - - - High Privacy - Privacidad Alta - - - Maximum Privacy - Privacidad Máxima - - - Please select a privacy level. - Por favor, seleccione el nivel de privacidad. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Usar 2 nodos maestros distintos para mezclar fondos hasta 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Usar 8 nodos maestros diferentes para mezclar fondos hasta 1000 DASH - - - Use 16 separate masternodes - Usar 16 nodos maestros diferentes - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Esta es la opción más rápida y anonimizar 1000 DASH costará alrededor de 0.025 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Esta opción es moderadamente rápida y anonimizar 1000 DASH costará alrededor de 0.05 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH por cada 1000 DASH que anonimice. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Esta es la opción más lenta y segura de todas. Usar la anonimización máxima costará - - - Darksend Configuration - Configuración de Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend fue configurado con éxito en la básica (%1 y 2 rondas). Puede cambiarlo en cualquier momento abriendo la pantalla de configuración de Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend fue configurado con éxito en la alta (%1 y 8 rondas). Puede cambiarlo en cualquier momento abriendo la pantalla de configuración de Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend fue configurado con éxito en la máxima (%1 y 16 rondas). Puede cambiarlo en cualquier momento abriendo la pantalla de configuración de Dash. - - - - EditAddressDialog - - Edit Address - Editar Dirección - - - &Label - E&tiqueta - - - The label associated with this address list entry - La etiqueta asociada con esta entrada de la lista de direcciones - - - &Address - &Dirección - - - The address associated with this address list entry. This can only be modified for sending addresses. - La dirección asociada con esta entrada de la lista de direcciones. Solo puede ser modificada para direcciones de envío. - - - New receiving address - Nueva dirección de recepción - - - New sending address - Nueva dirección de envío - - - Edit receiving address - Editar dirección de recepción - - - Edit sending address - Editar dirección de envío - - - The entered address "%1" is not a valid Dash address. - La dirección introducida "%1" no es una dirección Dash válida. - - - The entered address "%1" is already in the address book. - La dirección introducida "%1" ya está presente en la libreta de direcciones. - - - Could not unlock wallet. - No se pudo desbloquear el monedero. - - - New key generation failed. - Ha fallado la generación de la nueva clave. - - - - FreespaceChecker - - A new data directory will be created. - Se creará un nuevo directorio de datos. - - - name - nombre - - - Directory already exists. Add %1 if you intend to create a new directory here. - El directorio ya existe. Añada %1 si pretende crear aquí un directorio nuevo. - - - Path already exists, and is not a directory. - La ruta ya existe y no es un directorio. - - - Cannot create data directory here. - No se puede crear un directorio de datos aquí. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - versión - - - (%1-bit) - (%1-bit) - - - About Dash Core - Acerca de Dash Core - - - Command-line options - Opciones de la línea de comandos - - - Usage: - Uso: - - - command-line options - opciones de la consola de comandos - - - UI options - Opciones GUI - - - Choose data directory on startup (default: 0) - Elegir directorio de datos al iniciar (predeterminado: 0) - - - Set language, for example "de_DE" (default: system locale) - Establecer el idioma, por ejemplo, "es_ES" (predeterminado: configuración regional del sistema) - - - Start minimized - Arrancar minimizado - - - Set SSL root certificates for payment request (default: -system-) - Establecer los certificados raíz SSL para solicitudes de pago (predeterminado: -system-) - - - Show splash screen on startup (default: 1) - Mostrar pantalla de bienvenida en el inicio (predeterminado: 1) - - - - Intro - - Welcome - Bienvenido - - - Welcome to Dash Core. - Bienvenido a Dash Core - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Al ser la primera vez que se ejecuta el programa, puede elegir dónde almacenará sus datos Dash Core. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core va a descargar y guardar una copia de la cadena de bloques de Dash. Se almacenará al menos %1GB de datos en este directorio, que irá creciendo con el tiempo. El monedero se guardará también en este directorio. - - - Use the default data directory - Utilizar el directorio de datos predeterminado - - - Use a custom data directory: - Utilizar un directorio de datos personalizado: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Error: No puede crearse el directorio de datos especificado "%1". - - - Error - Error - - - %1 GB of free space available - %1 GB de espacio libre disponible - - - (of %1 GB needed) - (de los %1 GB necesarios) - - - - OpenURIDialog - - Open URI - Abrir URI - - - Open payment request from URI or file - Abrir solicitud de pago desde una URI o archivo - - - URI: - URI: - - - Select payment request file - Seleccione archivo de sulicitud de pago - - - Select payment request file to open - Seleccionar archivo de solicitud de pago a abrir - - - - OptionsDialog - - Options - Opciones - - - &Main - &Principal - - - Automatically start Dash after logging in to the system. - Iniciar Dash automáticamente al ingresar en el sistema. - - - &Start Dash on system login - &Iniciar Dash al ingresar en el sistema - - - Size of &database cache - Tamaño de la caché para la &base de datos - - - MB - MB - - - Number of script &verification threads - Número de hilos de &verificación de scripts - - - (0 = auto, <0 = leave that many cores free) - (0 = automático, <0 = dejar libres ese número de núcleos) - - - Darksend rounds to use - Rondas de Darksend a usar - - - This amount acts as a threshold to turn off Darksend once it's reached. - Esta cuantía sirve de umbral para que Darksend se apague, una vez sea alcanzada. - - - Amount of Dash to keep anonymized - Cuantía de Dash a mantener anónima - - - W&allet - &Monedero - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Si desactiva el gasto del cambio sin confirmar, el cambio de una transacción<br/>no se podrá usar hasta que dicha transacción tenga al menos una confirmación.<br/> Esto también afecta al cómputo de su saldo. - - - Accept connections from outside - Aceptar conexiones desde el exterior - - - Allow incoming connections - Permitir conexiones entrantes - - - Connect to the Dash network through a SOCKS5 proxy. - Conectarse a la red Dash a través de un proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Conectarse a través de proxy SOCKS5 (proxy predeterminado): - - - Expert - Experto - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Esta opción determina la cuantía de nodos maestros distintos a través de los cuales circulará una entrada para hacerla anónima.<br/>Cuantas más rondas se realicen para su anonimato mayor será el grado de privacidad, pero cuesta a su vez más comisiones. - - - Whether to show coin control features or not. - Mostrar o no funcionalidad de Coin Control. - - - Enable coin &control features - Activar funcionalidad de &coin control - - - &Spend unconfirmed change - &Gastar cambio no confirmado - - - &Network - &Red - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente Dash en el router. Esta opción solo funciona si el router admite UPnP y está activado. - - - Map port using &UPnP - Mapear el puerto usando &UPnP - - - Proxy &IP: - Dirección &IP del proxy: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Dirección IP del proxy (p. ej. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Puerto: - - - Port of the proxy (e.g. 9050) - Puerto del servidor proxy (ej. 9050) - - - &Window - &Ventana - - - Show only a tray icon after minimizing the window. - Mostrar solo un icono de bandeja tras minimizar la ventana. - - - &Minimize to the tray instead of the taskbar - &Minimizar en la bandeja en vez de en la barra de tareas - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimizar en lugar de salir de la aplicación al cerrar la ventana. Cuando esta opción está activada, la aplicación solo se puede cerrar seleccionando Salir desde el menú. - - - M&inimize on close - M&inimizar al cerrar - - - &Display - &Interfaz - - - User Interface &language: - I&dioma de la interfaz de usuario - - - The user interface language can be set here. This setting will take effect after restarting Dash. - El idioma de la interfaz de usuario puede establecerse aquí. Este ajuste se aplicará después de reiniciar Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - ¿Idioma no disponible o traducción incompleta? Contribuye a la traducción aquí: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Tema de la Interfaz de Usuario: - - - &Unit to show amounts in: - &Unidad para mostrar las cuantías: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Elegir la subdivisión predeterminada para mostrar las cuantías en la interfaz y cuando se envían dashs. - - - Decimal digits - Número de decimales - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URLs de terceros (p.ej. un explorador de bloques) que aparecen en la pestaña de transacciones como elementos del menú contextual. El %s en la URL es reemplazado por el hash de la transacción. Se pueden separar múltiples URLs con una barra vertical |. - - - Third party transaction URLs - URLs de transacciones de terceros - - - Active command-line options that override above options: - Opciones activas de la consola de comandos que tienen preferencia sobre las opciones anteriores: - - - Reset all client options to default. - Restablecer todas las opciones del cliente a las predeterminadas. - - - &Reset Options - &Restablecer opciones - - - &OK - &Aceptar - - - &Cancel - &Cancelar - - - default - predeterminado - - - none - ninguna - - - Confirm options reset - Confirme el restablecimiento de las opciones - - - Client restart required to activate changes. - Se necesita reiniciar el cliente para activar los cambios. - - - Client will be shutdown, do you want to proceed? - El cliente se cerrará. ¿Desea continuar? - - - This change would require a client restart. - Este cambio exige el reinicio del cliente. - - - The supplied proxy address is invalid. - La dirección proxy indicada es inválida. - - - - OverviewPage - - Form - Formulario - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Dash después de que se haya establecido una conexión, pero este proceso aún no se ha completado. - - - Available: - Disponible: - - - Your current spendable balance - Su saldo actual gastable - - - Pending: - Pendiente: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transacciones que deben ser confirmadas, y que no se incluyen en el saldo gastable - - - Immature: - No disponible: - - - Mined balance that has not yet matured - Saldo recién minado que aún no está disponible. - - - Balances - Saldos - - - Unconfirmed transactions to watch-only addresses - Transacciones no confirmadas en direcciones de sólo vigilancia - - - Mined balance in watch-only addresses that has not yet matured - Saldo minado en direcciones de sólo vigilancia que aún no ha madurado - - - Total: - Total: - - - Your current total balance - Su saldo actual total - - - Current total balance in watch-only addresses - El saldo total actual en direcciones de sólo vigilancia - - - Watch-only: - De sólo vigilancia: - - - Your current balance in watch-only addresses - Su saldo actual en direcciones de sólo vigilancia - - - Spendable: - Gastable: - - - Status: - Estado - - - Enabled/Disabled - Activado/Desactivado - - - Completion: - Completado: - - - Darksend Balance: - Saldo de Darksend: - - - Amount and Rounds: - Cuantía y Rondas: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Rondas - - - Submitted Denom: - Denom Enviadas: - - - n/a - n/d - - - Darksend - Darksend - - - Recent transactions - Últimas transacciones - - - Start/Stop Mixing - Comenzar/Parar Mezclado - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Las denominaciones que envió al Nodo Maestro.<br>Para poder mezclar, otros usuarios deben enviar exactamente las mismas denominaciones. - - - (Last Message) - (Último Mensaje) - - - Try to manually submit a Darksend request. - Intentar enviar manualmente una solicitud Darksend. - - - Try Mix - Probar - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Reiniciar el estado actual de Darksend (¡puede interrumpir Darksend si está en el proceso de Mezcla, lo cual puede costarle dinero!) - - - Reset - Reiniciar - - - out of sync - desincronizado - - - Disabled - Desactivado - - - Start Darksend Mixing - Iniciar Mezclador Darksend - - - Stop Darksend Mixing - Parar Mezclador Darksend - - - No inputs detected - No se detectaron entradas - - - %n Rounds - %n Ronda%n Rondas - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - No hay suficientes entradas compatibles para hacer anónimas <span style='color:red;'>%1</span>,<br>se harán en su lugar <span style='color:red;'>%2</span> - - - Overall progress - Avance total - - - Denominated - Denominadas - - - Anonymized - Anónimas - - - Denominated inputs have %5 of %n rounds on average - Las entradas denominadas tienen %5 de %n rondas de mediaLas entradas denominadas tienen %5 de %n rondas de media - - - Found enough compatible inputs to anonymize %1 - Se encontraron suficientes entradas compatibles para hacer anónimo %1 - - - Mixed - Mezcladas - - - Enabled - Activado - - - Last Darksend message: - - Último mensaje de Darksend: - - - - N/A - N/D - - - Darksend was successfully reset. - Darksend se reinició correctamente. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Si no desea ver las comisiones/transacciones internas de Darksend seleccione "Más Habitual" como Tipo en la pestaña de "Transacciones". - - - Darksend requires at least %1 to use. - Darksend requiere al menos %1 para su uso. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - El monedero está bloqueado y el usuario rechazó desbloquearlo. Desactivando Darksend. - - - - PaymentServer - - Payment request error - Error en solicitud de pago - - - Cannot start dash: click-to-pay handler - No se pudo iniciar dash: manejador de pago-al-clic - - - URI handling - Gestión de URI - - - Payment request fetch URL is invalid: %1 - La URL de obtención de la solicitud de pago es inválida: %1 - - - Payment request file handling - Procesado del archivo de solicitud de pago - - - Invalid payment address %1 - Dirección de pago no válida %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - ¡No se puede interpretar la URI! Esto puede deberse a una dirección Dash inválida o a parámetros de URI mal formados. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - ¡No se ha podido leer el archivo de solicitud de pago! Esto puede deberse a un archivo inválido de solicitud de pago. - - - Payment request rejected - Se rechazó la solicitud de pago - - - Payment request network doesn't match client network. - La red de solicitud de pago y la del cliente no coinciden. - - - Payment request has expired. - La solicitud de pago ha caducado. - - - Payment request is not initialized. - La solicitud de pago no está inicializada. - - - Unverified payment requests to custom payment scripts are unsupported. - No están soportadas las solicitudes de pago no verificadas a scripts de pago personalizados. - - - Requested payment amount of %1 is too small (considered dust). - La cuantía de pago solicitado del %1 es demasiado pequeña (considerada polvo). - - - Refund from %1 - Reembolso desde %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - La solicitud de pago %1 es demasiado grande (%2 bytes, %3 bytes permitidos). - - - Payment request DoS protection - Protección DoS de la solicitud de pago - - - Error communicating with %1: %2 - Error en la comunicación con %1: %2 - - - Payment request cannot be parsed! - ¡No se puede intrepretar la solicitud de pago! - - - Bad response from server %1 - Respuesta errónea del servidor %1 - - - Network request error - Error en petición de red - - - Payment acknowledged - Pago aceptado - - - - PeerTableModel - - Address/Hostname - Dirección/Nombre del servidor - - - User Agent - Agente del Usuario - - - Ping Time - Tiempo de Ping - - - - QObject - - Amount - Cuantía - - - Enter a Dash address (e.g. %1) - Introduzca una dirección Dash (e.g. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - RED - - - UNKNOWN - DESCONOCIDA - - - None - Ninguna - - - N/A - N/D - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Guardar Imagen... - - - &Copy Image - &Copiar imagen - - - Save QR Code - Guardar código QR - - - PNG Image (*.png) - Imagen PNG (*.png) - - - - RPCConsole - - Tools window - Ventana de Herramientas - - - &Information - &Información - - - General - General - - - Name - Nombre - - - Client name - Nombre del cliente - - - N/A - N/D - - - Number of connections - Número de conexiones - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Abrir el archivo de registro de depuración en el directorio actual de datos. Esto puede requerir varios segundos para archivos de registro grandes. - - - &Open - &Abrir - - - Startup time - Hora de inicio - - - Network - Red - - - Last block time - Hora del último bloque - - - Debug log file - Archivo de registro de depuración - - - Using OpenSSL version - Utilizando versión de OpenSSL - - - Build date - Fecha de compilación - - - Current number of blocks - Número actual de bloques - - - Client version - Versión del cliente - - - Using BerkeleyDB version - Utilizando versión de BerkeleyDB - - - Block chain - Cadena de bloques - - - Number of Masternodes - Número de Nodos Maestros - - - &Console - &Consola - - - Clear console - Limpiar consola - - - &Network Traffic - &Tráfico de Red - - - &Clear - &Limpiar - - - Totals - Totales: - - - Received - Recibido - - - Sent - Enviado - - - &Peers - &Pares - - - Select a peer to view detailed information. - Seleccione un par para ver información detallada. - - - Direction - Dirección - - - Version - Versión - - - User Agent - Agente del Usuario - - - Services - Servicios - - - Starting Height - Altura de Inicio - - - Sync Height - Altura de Sinc - - - Ban Score - Puntuación de Exclusión - - - Connection Time - Tiempo de Conexión - - - Last Send - Último Enviado - - - Last Receive - Último Recibido - - - Bytes Sent - Bytes Enviados - - - Bytes Received - Bytes Recibidos - - - Ping Time - Tiempo de Ping - - - &Wallet Repair - Reparar &Monedero - - - Salvage wallet - Rescatar monedero - - - Rescan blockchain files - Reexplorar la cadena de bloques - - - Recover transactions 1 - Recuperar transacciones 1 - - - Recover transactions 2 - Recuperar transacciones 2 - - - Upgrade wallet format - Actualizar formato del monedero - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Los botones de abajo reiniciarán el monedero con las opciones de la línea de comandos para repararlo, arreglar problemas con archivos corrompidos de la cadena de bloques o transacciones perdidas/obsoletas. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Intentar recuperar las claves privadas de un wallet.dat corrupto. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Volver a examinar la cadena de bloques en busca de transacciones perdidas. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Recuperar transacciones de la cadena de bloques (conservar metadatos, e.g. propietario de la cuenta). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Recuperar transacciones de la cadena de bloques (descartar metadatos). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Actualizar monedero al último formato en el inicio. (Nota: ¡esto NO es una actualización del propio monedero!) - - - Wallet repair options. - Opciones de reparación del monedero. - - - Rebuild index - Reconstruir el índice - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Reconstruir el índice de la cadena de bloques a partir de los archivos blk000??.dat actuales. - - - In: - Entrante: - - - Out: - Salientes: - - - Welcome to the Dash RPC console. - Bienvenido a la consola RPC de Dash - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Use las flechas arriba y abajo para navegar por el historial y <b>Control+L</b> para vaciar la pantalla. - - - Type <b>help</b> for an overview of available commands. - Escriba <b>help</b> para ver un resumen de los comandos disponibles. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - vía %1 - - - never - nunca - - - Inbound - Entrante - - - Outbound - Salientes - - - Unknown - Desconocido - - - Fetching... - Descargando... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Reutilizar una de las direcciones de recepción previamente usadas.<br>Esta acción conlleva problemas de privacidad y seguridad.<br>No la use salvo si vuelve a generar una solicitud de pago creada con anterioridad. - - - R&euse an existing receiving address (not recommended) - &Reutilizar una dirección receptora existente (no recomendado) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Un mensaje opcional para adjuntar a la solicitud de pago, el cual se muestra cuando se abre la solicitud. Nota: El mensaje no se enviará con el pago por la red Dash. - - - &Message: - &Mensaje: - - - An optional label to associate with the new receiving address. - Etiqueta opcional para asociar con la nueva dirección de recepción. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Un mensaje opcional para adjuntar con la solicitud de pago, el cual aparecerá cuando ésta sea abierta.<br>Nota: El mensaje no se enviará con el pago a la red Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Utilice este formulario para solicitar pagos. Todos los campos son <b>opcionales</b>. - - - &Label: - &Etiqueta: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Una cuantía opcional a solicitar. Deje este campo vacío o con cero para no solicitar una cuantía específica. - - - &Amount: - &Cuantía: - - - &Request payment - &Solicitar pago - - - Clear all fields of the form. - Limpiar todos los campos del formulario. - - - Clear - Limpiar - - - Requested payments history - Historial de pagos solicitados - - - Show the selected request (does the same as double clicking an entry) - Mostrar la solicitud seleccionada (igual que hacer doble clic en una entrada) - - - Show - Mostrar - - - Remove the selected entries from the list - Eliminar las entradas seleccionadas de la lista - - - Remove - Eliminar - - - Copy label - Copiar etiqueta - - - Copy message - Copiar mensaje - - - Copy amount - Copiar cuantía - - - - ReceiveRequestDialog - - QR Code - Código QR - - - Copy &URI - Copiar &URI - - - Copy &Address - Copiar &Dirección - - - &Save Image... - &Guardar Imagen... - - - Request payment to %1 - Solicitar pago a %1 - - - Payment information - Información de pago - - - URI - URI - - - Address - Dirección - - - Amount - Cuantía - - - Label - Etiqueta - - - Message - Mensaje - - - Resulting URI too long, try to reduce the text for label / message. - URI resultante demasiado larga. Intente reducir el texto de la etiqueta / mensaje. - - - Error encoding URI into QR Code. - Error al codificar la URI en el código QR. - - - - RecentRequestsTableModel - - Date - Fecha - - - Label - Etiqueta - - - Message - Mensaje - - - Amount - Cuantía - - - (no label) - (sin etiqueta) - - - (no message) - (ningún mensaje) - - - (no amount) - (ninguna cuantía) - - - - SendCoinsDialog - - Send Coins - Enviar Dash - - - Coin Control Features - Características de Coin Control - - - Inputs... - Entradas... - - - automatically selected - seleccionadas automáticamente - - - Insufficient funds! - ¡Fondos insuficientes! - - - Quantity: - Cantidad: - - - Bytes: - Bytes: - - - Amount: - Cuantía: - - - Priority: - Prioridad: - - - medium - media - - - Fee: - Comisión: - - - Dust: - Polvo: - - - no - no - - - After Fee: - Después de comisión: - - - Change: - Cambio: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Si se marca esta opción pero la dirección de cambio está vacía o es inválida, el cambio se enviará a una nueva dirección recién generada. - - - Custom change address - Dirección de cambio personalizada - - - Transaction Fee: - Comisión por Transacción: - - - Choose... - Elegir... - - - collapse fee-settings - plegar ajustes de comisión - - - Minimize - Minimizar - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Si la comisión personalizada se establece en 1000 duffs y la transacción sólo ocupa 250 bytes, entonces "por kilobyte" sólo se pagan 250 duffs de comisión,<br />mientras que "como mínimo" paga 1000 duffs. Para transacciones mayores de un kilobyte ambas pagan por kilobyte. - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Si la comisión personalizada se establece en 1000 duffs y la transacción sólo ocupa 250 bytes, entonces "por kilobyte" sólo se pagan 250 duffs de comisión,<br />mientras que "total como mínimo" paga 1000 duffs. Para transacciones mayores de un kilobyte ambas pagan por kilobyte. - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Pagar sólo la comisión mínima está bien mientras el volumen de transacciones sea menor al espacio en los bloques.<br />No obstante, tenga en cuenta que esto puede acabar en una transacción que nunca se confirme una vez haya más demanda de transacciones dash a la procesable por la red. - - - per kilobyte - por kilobyte - - - total at least - total al menos - - - (read the tooltip) - (leer la sugerencia) - - - Recommended: - Recomendada: - - - Custom: - Personalizada: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (La comisión inteligente no está aún inicializada. Esto habitualmente tarda unos pocos bloques...) - - - Confirmation time: - Tiempo de confirmación: - - - normal - normal - - - fast - rápida - - - Send as zero-fee transaction if possible - Enviar como transacción con cero comisiones si es posible - - - (confirmation may take longer) - (la confirmación puede tardar más) - - - Confirm the send action - Confirmar el envío - - - S&end - &Enviar - - - Clear all fields of the form. - Limpiar todos los campos del formulario. - - - Clear &All - Limpiar &Todo - - - Send to multiple recipients at once - Enviar a múltiples destinatarios simultáneamente - - - Add &Recipient - Añadir &Destinatario - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Copiar cantidad - - - Copy amount - Copiar cuantía - - - Copy fee - Copiar comisión - - - Copy after fee - Copiar después de aplicar donación - - - Copy bytes - Copiar bytes - - - Copy priority - Copiar prioridad - - - Copy dust - Copiar polvo - - - Copy change - Copiar cambio - - - using - usando - - - anonymous funds - fondos anónimos - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend requiere que esta cantidad sea redondeada al %1 más cercano). - - - any available funds (not recommended) - cualquier fondo disponible (no recomendado) - - - and InstantX - e InstantX - - - %1 to %2 - %1 a %2 - - - Are you sure you want to send? - ¿Está seguro que desea enviar? - - - are added as transaction fee - se añaden como comisión de transacción - - - Total Amount = <b>%1</b><br />= %2 - Cuantía Total = <b>%1</b><br />= %2 - - - Confirm send coins - Confirmar el envío de dashs - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Una comisión %1 veces más alta que %2 por kB se considera extremadamente elevada. - - - Estimated to begin confirmation within %n block(s). - Está previsto que comience la confirmación en %n bloque.Está previsto que comience la confirmación en %n bloques. - - - The recipient address is not valid, please recheck. - La dirección de recepción no es válida, compruébela de nuevo. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 de %2 registros mostrados)</b> - - - The amount to pay must be larger than 0. - La cuantía a pagar debe ser mayor que 0. - - - The amount exceeds your balance. - La cuantía sobrepasa su saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - El total sobrepasa su saldo cuando se incluye la comisión de envío de %1 - - - Duplicate address found, can only send to each address once per send operation. - Se ha encontrado una dirección duplicada. Solo se puede enviar a cada dirección una vez por operación de envío. - - - Transaction creation failed! - ¡Ha fallado la creación de la transacción! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - ¡La transacción fue rechazada! Esto puede suceder si alguno de los dashs de su monedero ya se habían gastado, por ejemplo si usó una copia de wallet.dat y los dash se gastaron en dicha copia pero no se aparecen como gastados aqui. - - - Error: The wallet was unlocked only to anonymize coins. - Error: El monedero se desbloqueó solo para anonimizar dashs. - - - Pay only the minimum fee of %1 - Pagar sólo la comisión mínima de %1 - - - Warning: Invalid Dash address - Aviso: Dirección de Dash no válida - - - Warning: Unknown change address - Aviso: Dirección de cambio desconocida - - - (no label) - (sin etiqueta) - - - - SendCoinsEntry - - This is a normal payment. - Esto es un pago ordinario. - - - Pay &To: - Pagar &a: - - - The Dash address to send the payment to - La dirección Dash a la cual enviar el pago - - - Choose previously used address - Escoger direcciones previamente usadas - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar dirección desde portapapeles - - - Alt+P - Alt+P - - - Remove this entry - Eliminar esta entrada - - - &Label: - E&tiqueta: - - - Enter a label for this address to add it to the list of used addresses - Introduce una etiqueta para esta dirección para añadirla a la lista de direcciones utilizadas - - - A&mount: - C&uantía: - - - Message: - Mensaje: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Un mensaje que se adjuntó al dash: URI que será almacenada con la transacción para su referencia. Nota: Este mensaje no se enviará a través de la red Dash. - - - This is an unverified payment request. - Esto es una solicitud de pago no verificada. - - - Pay To: - Pagar a: - - - Memo: - Memo: - - - This is a verified payment request. - Esta es una solicitud de pago verificada. - - - Enter a label for this address to add it to your address book - Etiquete esta dirección para añadirla a la libreta - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core se está cerrando... - - - Do not shut down the computer until this window disappears. - No apague el equipo hasta que desaparezca esta ventana. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Firmas - Firmar / Verificar un mensaje - - - &Sign Message - &Firmar mensaje - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Puede firmar mensajes con sus direcciones para demostrar que las posee. Tenga cuidado de no firmar cualquier cosa vaga, ya que los ataques de phishing pueden tratar de engañarle para suplantar su identidad. Firme solo declaraciones totalmente detalladas con las que usted esté de acuerdo. - - - The Dash address to sign the message with - La dirección Dash con la cual se firma el mensaje - - - Choose previously used address - Escoger dirección previamente usada - - - Alt+A - Alt+A - - - Paste address from clipboard - Pegar dirección desde portapapeles - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Introduzca aquí el mensaje que desea firmar - - - Signature - Firma - - - Copy the current signature to the system clipboard - Copiar la firma actual al portapapeles del sistema - - - Sign the message to prove you own this Dash address - Firmar el mensaje para demostrar que se posee esta dirección Dash - - - Sign &Message - Firmar &Mensaje - - - Reset all sign message fields - Restablecer todos los campos de la firma de mensaje - - - Clear &All - Limpiar &todo - - - &Verify Message - &Verificar mensaje - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Introduzca la dirección para la firma, el mensaje (asegurándose de copiar tal cual los saltos de línea, espacios, tabulaciones, etc.) y la firma a continuación para verificar el mensaje. Tenga cuidado de no asumir más información de lo que dice el propio mensaje firmado para evitar fraudes basados en ataques de tipo man-in-the-middle. - - - The Dash address the message was signed with - La dirección Dash con la cual se firmó el mensaje - - - Verify the message to ensure it was signed with the specified Dash address - Verificar el mensaje para garantizar que fue firmado con la dirección Dash indicada - - - Verify &Message - Verificar &Mensaje - - - Reset all verify message fields - Restablecer todos los campos de la verificación de mensaje - - - Click "Sign Message" to generate signature - Haga clic en "Firmar mensaje" para generar la firma - - - The entered address is invalid. - La dirección introducida es inválida. - - - Please check the address and try again. - Verifique la dirección e inténtelo de nuevo. - - - The entered address does not refer to a key. - La dirección introducida no corresponde a una clave. - - - Wallet unlock was cancelled. - Se ha cancelado el desbloqueo del monedero. - - - Private key for the entered address is not available. - No se dispone de la clave privada para la dirección introducida. - - - Message signing failed. - Ha fallado la firma del mensaje. - - - Message signed. - Mensaje firmado. - - - The signature could not be decoded. - No se puede decodificar la firma. - - - Please check the signature and try again. - Compruebe la firma e inténtelo de nuevo. - - - The signature did not match the message digest. - La firma no coincide con el resumen del mensaje. - - - Message verification failed. - La verificación del mensaje ha fallado. - - - Message verified. - Mensaje verificado. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Versión %1 - - - The Bitcoin Core developers - Los desarrolladores de Bitcoin Core - - - The Dash Core developers - Los desarrolladores del Dash Core - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Abrir para %n bloque másAbrir para %n bloques más - - - Open until %1 - Abierto hasta %1 - - - conflicted - en conflicto - - - %1/offline (verified via instantx) - %1 desconectado (comprobado por instantx) - - - %1/confirmed (verified via instantx) - %1/confirmado (comprobado por instantx) - - - %1 confirmations (verified via instantx) - %1 confirmaciones (comprobado por instantx) - - - %1/offline - %1/sin conexión - - - %1/unconfirmed - %1/no confirmado - - - %1 confirmations - %1 confirmaciones - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/desconectado (Verificación de InstantX en curso - %2 de %3 firmas) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/confirmada (Verificación de InstantX en curso - %2 de %3 firmas) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 confirmaciones (Verificación de InstantX en curso - %2 de %3 firmas) - - - %1/offline (InstantX verification failed) - %1/desconectado (Falló la verificación de InstantX) - - - %1/confirmed (InstantX verification failed) - %1/confirmada (Falló la verificación de InstantX) - - - Status - Estado - - - , has not been successfully broadcast yet - , todavía no se ha sido difundido satisfactoriamente - - - , broadcast through %n node(s) - , transmitir a través de %n nodo, transmitir a través de %n nodos - - - Date - Fecha - - - Source - Fuente - - - Generated - Generado - - - From - De - - - unknown - desconocido - - - To - Para - - - own address - dirección propia - - - watch-only - de sólo vigilancia - - - label - etiqueta - - - Credit - Crédito - - - matures in %n more block(s) - madrua en %n bloque másmadura en %n bloques más - - - not accepted - no aceptada - - - Debit - Débito - - - Total debit - Total de débito - - - Total credit - Total de crédito - - - Transaction fee - Comisión de transacción - - - Net amount - Cuantía neta - - - Message - Mensaje - - - Comment - Comentario - - - Transaction ID - ID de transacción - - - Merchant - Vendedor - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Los dashs generados deben madurar %1 bloques antes de que puedan gastarse. Cuando generó este bloque, se transmitió a la red para que se añadiera a la cadena de bloques. Si no consigue entrar en la cadena, su estado cambiará a "no aceptado" y ya no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque a pocos segundos del suyo. - - - Debug information - Información de depuración - - - Transaction - Transacción - - - Inputs - Entradas - - - Amount - Cuantía - - - true - verdadero - - - false - falso - - - - TransactionDescDialog - - Transaction details - Detalles de transacción - - - This pane shows a detailed description of the transaction - Esta ventana muestra información detallada sobre la transacción - - - - TransactionTableModel - - Date - Fecha - - - Type - Tipo - - - Address - Dirección - - - Open for %n more block(s) - Abrir para %n bloque másAbrir para %n bloques más - - - Open until %1 - Abierto hasta %1 - - - Offline - Sin conexión - - - Unconfirmed - Sin confirmar - - - Confirming (%1 of %2 recommended confirmations) - Confirmando (%1 de %2 confirmaciones recomendadas) - - - Confirmed (%1 confirmations) - Confirmado (%1 confirmaciones) - - - Conflicted - En conflicto - - - Immature (%1 confirmations, will be available after %2) - No vencidos (%1 confirmaciones. Estarán disponibles al cabo de %2) - - - This block was not received by any other nodes and will probably not be accepted! - Este bloque no ha sido recibido por otros nodos y probablemente no sea aceptado! - - - Generated but not accepted - Generado pero no aceptado - - - Received with - Recibido con - - - Received from - Recibido desde - - - Received via Darksend - Recibido mediante Darksend - - - Sent to - Enviado a - - - Payment to yourself - Pago propio - - - Mined - Minado - - - Darksend Denominate - Denominación Darksend - - - Darksend Collateral Payment - Darksend - Pago de Colateral - - - Darksend Make Collateral Inputs - Darksend - Efectuar Entradas de Colateral - - - Darksend Create Denominations - Darksend - Crear Denominaciones - - - Darksent - Darksent - - - watch-only - de sólo vigilancia - - - (n/a) - (nd) - - - Transaction status. Hover over this field to show number of confirmations. - Estado de transacción. Pasa el ratón sobre este campo para ver el número de confirmaciones. - - - Date and time that the transaction was received. - Fecha y hora en que se recibió la transacción. - - - Type of transaction. - Tipo de transacción. - - - Whether or not a watch-only address is involved in this transaction. - Si una dirección de sólo vigilancia toma parte o no en esta transacción. - - - Destination address of transaction. - Dirección de destino de la transacción. - - - Amount removed from or added to balance. - Cuantía retirada o añadida al saldo. - - - - TransactionView - - All - Todo - - - Today - Hoy - - - This week - Esta semana - - - This month - Este mes - - - Last month - Mes pasado - - - This year - Este año - - - Range... - Rango... - - - Most Common - Más Habitual - - - Received with - Recibido con - - - Sent to - Enviado a - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend - Efectuar Entradas de Colateral - - - Darksend Create Denominations - Darksend - Crear Denominaciones - - - Darksend Denominate - Darksend - Denominar - - - Darksend Collateral Payment - Darksend - Pago de Colateral - - - To yourself - A usted mismo - - - Mined - Minado - - - Other - Otra - - - Enter address or label to search - Introduzca una dirección o etiqueta que buscar - - - Min amount - Cantidad mínima - - - Copy address - Copiar dirección - - - Copy label - Copiar etiqueta - - - Copy amount - Copiar cuantía - - - Copy transaction ID - Copiar ID de transacción - - - Edit label - Editar etiqueta - - - Show transaction details - Mostrar detalles de la transacción - - - Export Transaction History - Exportar historial de transacciones - - - Comma separated file (*.csv) - Archivos de valores separados por comas (*.csv) - - - Confirmed - Confirmado - - - Watch-only - De sólo vigilancia - - - Date - Fecha - - - Type - Tipo - - - Label - Etiqueta - - - Address - Dirección - - - ID - ID - - - Exporting Failed - Error al exportar - - - There was an error trying to save the transaction history to %1. - Se produjo un error al intentar guardar el historial de transacciones en %1. - - - Exporting Successful - Exportación Finalizada - - - The transaction history was successfully saved to %1. - El historial de transacciones se guardó correctamente en %1. - - - Range: - Rango: - - - to - hasta - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unidad con la cual se muestran las cuantías. Pulse para seleccionar otra unidad. - - - - WalletFrame - - No wallet has been loaded. - No se ha cargado ningún monedero. - - - - WalletModel - - Send Coins - Enviar Dash - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX aún no soporta el envío de valores tan elevados. Las transacciones están limitadas actualmente a %1 DASH. - - - - WalletView - - &Export - E&xportar - - - Export the data in the current tab to a file - Exportar a un archivo los datos de esta pestaña - - - Selected amount: - Cuantía seleccionada: - - - Backup Wallet - Realizar Copia de Seguridad del Monedero - - - Wallet Data (*.dat) - Datos de Monedero (*.dat) - - - Backup Failed - Falló la Copia de Seguridad - - - There was an error trying to save the wallet data to %1. - Ha habido un error al intentar guardar los datos del monedero en %1. - - - Backup Successful - Backup Exitoso - - - The wallet data was successfully saved to %1. - Los datos del monedero se han guardado con éxito en %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Vincular a la dirección dada y escuchar siempre en ella. Utilice la notación [host]:port para IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - No se ha podido bloquear el directorio de datos %s. Probablemente ya se está ejecutando Dash Core. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend utiliza cuantías denominadas exactas para enviar fondos, simplemente necesita anonimizar algunos dashs más. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Ingresar en el modo de prueba de regresión, que utiliza una cadena especial en la que los bloques se pueden resolver instantáneamente. - - - Error: Listening for incoming connections failed (listen returned error %s) - Error: Ha fallado la escucha de conexiones entrantes (listen ha devuelto el error %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Ejecutar un comando cuando se reciba un aviso importante o cuando veamos un fork demasiado largo (%s en cmd se reemplazará por el mensaje) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Ejecutar comando cuando una transacción del monedero cambia (%s en cmd se remplazará por TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Ejecutar un comando cuando cambia el mejor bloque (%s en cmd se sustituye por el hash de bloque) - - - In this mode -genproclimit controls how many blocks are generated immediately. - En este modo -genproclimit controla cuántos bloques se generan de inmediato. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX requiere entradas con al menos 6 confirmaciones, puede que neesite esperar unos pocos minutos y volver a intentarlo. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Nombre para construir la url de la entrada KeePass que almacena la contraseña del monedero - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Petición de direcciones de pares mediante búsqueda de DNS , si las direcciones son pocas (predeterminado: 1 salvo con -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Establecer tamaño máximo de las transacciones de alta prioridad/baja comisión en bytes (predeterminado: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Establecer el número de hilos (threads) de verificación de scripts (entre %u y %d, 0 = automático, <0 = dejar libres ese número de núcleos; predeterminado: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Esta es una versión de pre-prueba - utilícela bajo su propio riesgo. No la utilice para usos comerciales o de minería. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - No se puede enlazar a %s en este equipo. Dash Core probablemente ya está en funcionamiento. - - - Unable to locate enough Darksend denominated funds for this transaction. - No se pueden localizar fondos denominados de Darksend suficientes para esta transacción. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - No se pueden localizar fondos no denominados de Darksend suficientes para esta transacción que no sean iguales a 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Aviso: ¡-paytxfee tiene un valor muy alto! Esta es la comisión que pagará si envía una transacción. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Aviso: ¡Parece que la red no está totalmente de acuerdo! Algunos mineros están experimentando problemas. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Aviso: ¡Parece que no estamos completamente de acuerdo con nuestros pares! Podría necesitar una actualización, u otros nodos podrían necesitarla. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Aviso: ¡Error al leer wallet.dat! Todas las claves se han leído correctamente, pero podrían faltar o ser incorrectos los datos de transacciones o las entradas de la libreta de direcciones. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Aviso: ¡Recuperados datos de wallet.dat corrupto! El wallet.dat original se ha guardado como wallet.{timestamp}.bak en %s; si hubiera errores en su saldo o transacciones, deberá restaurar una copia de seguridad. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Debe declarar la variable masternodeprivkey o clave privada para el nodo maestro en la configuración. Por favor, consulte la documentación para obtener ayuda. - - - (default: 1) - (predeterminado: 1) - - - Accept command line and JSON-RPC commands - Aceptar comandos de la consola y JSON-RPC - - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Aceptar conexiones desde el exterior (predeterminado: 1 si no -proxy o -connect) - - - Add a node to connect to and attempt to keep the connection open - Añadir un nodo al que conectarse y tratar de mantener la conexión abierta - - - Allow DNS lookups for -addnode, -seednode and -connect - Permitir búsquedas DNS para -addnode, -seednode y -connect - - - Already have that input. - Ya tiene esa entrada. - - - Attempt to recover private keys from a corrupt wallet.dat - Intentar recuperar claves privadas de un wallet.dat corrupto - - - Block creation options: - Opciones de creación de bloques: - - - Can't denominate: no compatible inputs left. - No se puede denominar: no quedan entradas compatibles. - - - Cannot downgrade wallet - No se puede regresar a una versión anterior del monedero - - - Cannot resolve -bind address: '%s' - No se puede resolver la dirección de -bind: '%s' - - - Cannot resolve -externalip address: '%s' - No se puede resolver la dirección de -externalip: '%s' - - - Cannot write default address - No se puede escribir la dirección predeterminada - - - Collateral not valid. - Colateral no válido. - - - Connect only to the specified node(s) - Conectar sólo a los nodos (o nodo) especificados - - - Connect to a node to retrieve peer addresses, and disconnect - Conectar a un nodo para obtener direcciones de pares y desconectar - - - Connection options: - Opciones de conexión: - - - Corrupted block database detected - Corrupción de base de datos de bloques detectada. - - - Darksend options: - Opciones de Darksend: - - - Debugging/Testing options: - Opciones de Depuración/Pruebas: - - - Discover own IP address (default: 1 when listening and no -externalip) - Descubrir dirección IP propia (predeterminado: 1 al escuchar sin -externalip) - - - Do not load the wallet and disable wallet RPC calls - No cargar el monedero y desactivar las llamadas RPC del monedero - - - Do you want to rebuild the block database now? - ¿Quieres reconstruir la base de datos de bloques ahora? - - - Done loading - Carga finalizada - - - Entries are full. - Las entradas están agotadas. - - - Error initializing block database - Error al inicializar la base de datos de bloques - - - Error initializing wallet database environment %s! - Error al inicializar el entorno de la base de datos del monedero %s - - - Error loading block database - Error cargando base de datos de bloques - - - Error loading wallet.dat - Error al cargar wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Error al cargar wallet.dat: el monedero está dañado - - - Error opening block database - Error al abrir la base de datos de bloques. - - - Error reading from database, shutting down. - Error leyendo la base de datos, cerrando. - - - Error recovering public key. - Error recuperando clave pública. - - - Error - Error - - - Error: Disk space is low! - Error: ¡Espacio en disco bajo! - - - Error: Wallet locked, unable to create transaction! - Error: ¡El monedero está bloqueado; no se puede crear la transacción! - - - Error: You already have pending entries in the Darksend pool - Error: Ya tiene entradas pendientes en el pool de Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Ha fallado la escucha en todos los puertos. Use -listen=0 si desea esto. - - - Failed to read block - No se ha podido leer el bloque - - - If <category> is not supplied, output all debugging information. - Si no se proporciona <category>, mostrar toda la información de depuración - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = conservar metadatos de tx e.g. propietario de la cuenta e información de la solicitud de pago, 2 = descartar metadatos de tx) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Permitir conexiones JSON-RPC desde la fuente especificada. El dato de <ip> válido puede ser una IP única (e.g. 1.2.3.4), una red/máscara de red (e.g. 1.2.3.4/255.255.255.0) ó una red/CIDR (e.g. 1.2.3.4/24). Esta opción se puede indicar múltiples veces - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Se produjo un error al configurar la dirección RPC %s puerto %u para escuchar: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Vincular a la dirección dada y poner en la lista blanca los pares que se conecten a ella. Use la notación [servidor]:puerto de IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Vincular a la dirección dada para escuchar conexiones JSON-RPC. Use la notación [servidor]:puerto de IPv6. Esta opción se puede indicar múltiples veces (predeterminado: vincular a todos los interfaces) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Cambiar el comportamiento de votos de presupuesto finalizado automático. mode=auto: Votar sólo a la coincidencia exacta del presupuesto finalizado para mi presupuesto generado. (cadena de texto, predeterminado: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Limitar continuamente las transacciones gratuitas a <n>*1000 bytes por minuto (predeterminado:%u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Crear archivos nuevos con los permisos por defecto del sistema, en lugar de umask 077 (sólo será efectivo con la funcionalidad del monedero desactivada) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Borrar todas las transacciones del monedero y recuperar únicamente aquellas partes de la cadena de bloques a través de -rescan en el inicio - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Desactivar todas las funciones asociadas a Dash (Nodos Maestros, Darksend, InstantX, Presupuesto) (0-1, predeterminado: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Distribuido bajo la licencia de software MIT, vea el archivo COPYING adjunto o <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Activar InstantX, mostrar las confirmaciones de transacciones bloqueadas (booleano, predeterminado: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Activar uso automatizado de Darksend para los fondos almacenados en este monedero (0-1, predeterminado: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Error: Se encontró el argumento no permitido -socks. Ajustar la versión de SOCKS ya no es posible, sólo se admiten proxies SOCKS5 - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Las comisiones (en DASH/Kb) menores a ésta se consideran como cero a efectos de transmisión (predeterminado: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Las comisiones (en DASH/Kb) menores a ésta se consideran como cero a efectos de creación de transacciones (predeterminado: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Volcar la actividad de la base de datos desde el grupo de memoria al registro en disco cada <n> megabytes (predeterminado: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Se han encontrado salidas denominadas sin confirmar, se esperará a su confirmación para continuar. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Nivel de rigor en la verificación de bloques de -checkblocks (0-4, predeterminado: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Si no se fija la comisión de pago por transferencia o paytxfee, incluir la comisión suficiente para que las transacciones comiencen a confirmarse de media en n bloques (predeterminado: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Cuantía no válida para -maxtxfee=<amount>: '%s' (debe de ser al menos la comisión mínima de la transmisión de %s para evitar transacciones atascadas) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Registrar prioridad de las transacciones y la comisión por kB al minar bloques (predeterminado: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Mantener índice de transacciones completo, utilizado por la llamada rpc getrawtransaction (predeterminado: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Tamaño máximo de datos en las transacciones de portadora de datos que transmitimos y minamos (predeterminado: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Máximo total de comisiones a usar en una única transacción, ajustándolo muy bajo puede abortar grandes transacciones (predeterminado: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Número de segundos en que se evita la reconexión de pares con mal comportamiento (predeterminado: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Información de salida para depuración (predeterminado: %u, proporcionar una <category> es opcional) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Ofrecer liquidez a Darksend mezclando dash con poca frecuencia y de forma continua (0-100, predeterminado: %u, 1=muy frecuente, comisiones altas, 100=muy pocas veces, comisiones bajas) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Requerir una prioridad alta para transmitir transacciones gratuitas o con bajas comisiones (predeterminado: %u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Enviar info de traza/depuración a la consola en lugar de al archivo debug.log (predeterminado: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Establecer el número de hilos para la generación de dash cuando ésta se encuentra activada (-1 = todos los núcleos, predeterminado: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Mostrar N confirmaciones para una transacción bloqueada con éxito (0-9999, predeterminado: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Este producto incluye software desarrollado por el Proyecto OpenSSL para su uso en el Toolkit OpenSSL <https://www.openssl.org/> y software criptográfico escrito por Eric Young y software UPnP escrito por Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Para usar dashd, o la opción -server de dash-qt, debe establecer rpcpassword en el archivo de configuración: -%s -Es recomendable que use la contraseña aleatoria siguiente: -rpcuser=dashrpc -rpcpassword=%s -(no necesita recordar esta contraseña) -El nombre de usuario y la contraseña NO DEBEN ser iguales. -Si el archivo no existe, créelo con permisos de sólo lectura para su propietario. -También resulta recomendable establecer alertnotify para que se le notifique de posibles problemas; -por ejemplo: alertnotify=echo %%s | mail -s "Alerta de Dash" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - No se pueden localizar fondos suficientes para esta transacción que no sean iguales a 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Usar proxy SOCKS5 independiente para comunicarse con otros pares mediante servicios ocultos de la red Tor (predeterminado: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Aviso: ¡-maxtxfee se estableció en un valor muy alto! Comisiones tan grandes no se podrían pagar en una única transacción. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Aviso: ¡Por favor compruebe que la fecha y hora de su computadora son correctas! Si su reloj está mal ajustado, Dash Core no funcionará correctamente. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Pares de la lista blanca conectándose desde la máscara de red o dirección IP facilitadas. Se pueden especificar múltiples veces. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Los pares de la lista blanca no pueden ser excluidos por DoS y sus transacciones siempre se transmitirán, incluso si ya se encuentran en el grupo de memoria, útil e.g. para una pasarela - - - (9999 could be used only on mainnet) - (9999 sólo se puede usar en la red principal) - - - (default: %s) - (predeterminado: %s) - - - <category> can be: - - <category> puede ser: - - - - Accept public REST requests (default: %u) - Admitir peticiones REST públicas (predeterminado: %u) - - - Acceptable ciphers (default: %s) - Cifrados admitidos (predeterminado: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Solicitar siempre direcciones de pares mediante búsqueda de DNS (predeterminado: %u) - - - Cannot resolve -whitebind address: '%s' - No se puede resolver la dirección -whitebind: '%s' - - - Connect through SOCKS5 proxy - Conectarse a través de un proxy SOCKS5 - - - Connect to KeePassHttp on port <port> (default: %u) - Conectarse a KeePassHttp a través del puerto <port> (predeterminado: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i Los Desarrolladores de Bitcoin Core - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i Los Desarrolladores de Dash Core - - - Could not parse -rpcbind value %s as network address - No se pudo intrepretar el valor -rpcbind %s como una dirección de red - - - Darksend is idle. - Darksend está parado. - - - Darksend request complete: - Solicitud Darksend completada: - - - Darksend request incomplete: - Petición de Darksend incompleta: - - - Disable safemode, override a real safe mode event (default: %u) - Desactivar el modo seguro, no considerar un suceso real de modo seguro (predeterminado: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Activar el cliente para que se comporte como un nodo maestro (0-1, predeterminado: %u) - - - Error connecting to Masternode. - Error al conectar al Nodo Maestro. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Error al cargar wallet.dat: El monedero requiere una versión más reciente de Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Error: Se produjo un error interno fatal, vea debug.log para más detalles - - - Error: Can't select current denominated inputs - Error: No se pueden seleccionar las entradas denominadas actuales - - - Error: Unsupported argument -tor found, use -onion. - Error: Se encontró el argumento no soportado -tor, use -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Comisión (en DASH/kB) a añadir sobre las transacciones que envíe (predeterminado: %s) - - - Finalizing transaction. - Finalizando transacción. - - - Force safe mode (default: %u) - Forzar modo seguro (predeterminado: %u) - - - Found enough users, signing ( waiting %s ) - Se encontraron suficientes usuarios, firmando (esperando %s) - - - Found enough users, signing ... - Se encontraron suficientes usuarios, firmando... - - - Generate coins (default: %u) - Generar dash (predeterminado: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Cuántos bloques se comprueban durante el inicio (predeterminado: %u, 0 = todos) - - - Importing... - Importando... - - - Imports blocks from external blk000??.dat file - Importa los bloques desde un archivo blk000??.dat externo - - - Include IP addresses in debug output (default: %u) - Incluir direcciones IP en la salida de depuración (predeterminado: %u) - - - Incompatible mode. - Modo incompatible. - - - Incompatible version. - Versión incompatible. - - - Incorrect or no genesis block found. Wrong datadir for network? - Bloque génesis incorrecto o no encontrado. ¿Es el directorio datadir incorrecto para la red? - - - Information - Información - - - Initialization sanity check failed. Dash Core is shutting down. - La comprobación de validez de inicio falló. Dash Core se está cerrando. - - - Input is not valid. - La entrada no es válida. - - - InstantX options: - Opciones de InstantX: - - - Insufficient funds. - Fondos insuficientes. - - - Invalid -onion address: '%s' - Dirección -onion inválida: '%s' - - - Invalid -proxy address: '%s' - Dirección -proxy inválida: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Cuantía inválida para -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Cuantía inválida para -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Cuantía inválida para -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Cuantía inválida para -paytxfee=<amount>: '%s' (debe ser al menos %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Cuantía inválida para -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - La última acción de Darksend exitosa era demasiado reciente. - - - Limit size of signature cache to <n> entries (default: %u) - Limitar el tamaño de la caché de firma a <n> registros (predeterminado: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Escuchar a conexiones JSON-RPC en el <port> (predeterminado: %u ó testnet: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Escuchar a las conexiones en el <port> (predeterminado: %u ó testnet: %u) - - - Loading budget cache... - Cargando caché del presupuesto... - - - Loading masternode cache... - Cargando caché de nodos maestros... - - - Loading masternode payment cache... - Cargando caché de pago del nodo maestro... - - - Lock is already in place. - El bloqueo ya está activo. - - - Lock masternodes from masternode configuration file (default: %u) - Asegurar nodos maestros a partir del archivo de configuración del nodo maestro (predeterminado: %u) - - - Maintain at most <n> connections to peers (default: %u) - Mantener como máximo <n> conexiones a pares (predeterminado: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Buffer de recepción máximo por conexión, <n>*1000 bytes (predeterminado: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Buffer de recepción máximo por conexión, <n>*1000 bytes (predeterminado: %u) - - - Mixing in progress... - Mezclado en curso... - - - Need to specify a port with -whitebind: '%s' - Ha de indicar un puerto con -whitebind: '%s' - - - No Masternodes detected. - No se detectaron Nodos Maestros. - - - No compatible Masternode found. - No se encontró un Nodo Maestro compatible. - - - Not in the Masternode list. - Ausente de la lista de Nodos Maestros. - - - Number of automatic wallet backups (default: 10) - Número de copias de seguridad automáticas del monedero (predeterminado: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Admitir sólo la cadena de bloques que concuerde con los puntos de control incorporados (predeterminado: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Conectar sólo a los nodos de la red <net> (IPv4, IPv6 u onion) - - - Prepend debug output with timestamp (default: %u) - Anteponer marca temporal a la salida para depuración (predeterminado: %u) - - - Run a thread to flush wallet periodically (default: %u) - Correr un hilo para volcar el monedero periódicamente (predeterminado: %u) - - - Send trace/debug info to debug.log file (default: %u) - Enviar info de traza/depuración al archivo debug.log (predeterminado: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Enviar las transacciones como transacciones con cero comisiones si es posible (predeterminado: %u) - - - Server certificate file (default: %s) - Archivo de certificado del servidor (predeterminado: %s) - - - Server private key (default: %s) - Clave privada del servidor (predeterminado: %s) - - - Set external address:port to get to this masternode (example: %s) - Establecer dirección:puerto externos para acceder a este nodo maestro (ejemplo: %s) - - - Set key pool size to <n> (default: %u) - Establecer el tamaño del grupo de claves a <n> (predeterminado: %u) - - - Set minimum block size in bytes (default: %u) - Establecer tamaño mínimo del bloque en bytes (predeterminado: %u) - - - Set the number of threads to service RPC calls (default: %d) - Establecer el número de hilos para atender las llamadas RPC (predeterminado: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Establece la opción DB_PRIVATE en el entorno de base de datos del monedero (predeterminado: %u) - - - Signing timed out. - El tiempo máximo para firma se agotó. - - - Specify configuration file (default: %s) - Indicar el archivo de configuración (predeterminado: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Indicar tiempo máximo de desconexión en milisegundos (mínimo: 1, predeterminado: %d) - - - Specify masternode configuration file (default: %s) - Indicar archivo de configuración del nodo maestro (predeterminado: %s) - - - Specify pid file (default: %s) - Indicar archivo de pid (predeterminado: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Gastar el cambio no confirmado al enviar las transacciones (predeterminado: %u) - - - Stop running after importing blocks from disk (default: %u) - Detener la ejecución después de importar los bloques desde el disco (predeterminado: %u) - - - Submitted following entries to masternode: %u / %d - Se han enviado la entradas siguientes al nodo maestro: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Enviado al nodo maestro, esperando a más entradas ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Enviado al nodo maestro, esperando en cola %s - - - Synchronization failed - La sincronización falló - - - Synchronization finished - La sincronización finalizó - - - Synchronizing budgets... - Sincronizando presupuestos... - - - Synchronizing masternode winners... - Sincronizando ganadores de los nodos maestros... - - - Synchronizing masternodes... - Sincronizando nodos maestros... - - - Synchronizing sporks... - Sincronizando sporks... - - - This is not a Masternode. - Esto no es un Nodo Maestro. - - - Threshold for disconnecting misbehaving peers (default: %u) - Umbral para la desconexión de pares con mal comportamiento (predeterminado: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - sar la integración de KeePass2 con el conector KeePassHttp (predeterminado: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Usar N nodos maestros distintos para generar fondos anónimos (2-8, predeterminado: %u) - - - Use UPnP to map the listening port (default: %u) - Usar UPnP para asignar el puerto de escucha (predeterminado: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - El monedero se ha de reescribir: reinicie Dash Core para completarlo - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Aviso: El argumento no permitido -benchmark se ignoró, use -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Aviso: El argumento no permitido -debugnet se ignoró, use -debug=net. - - - Will retry... - Se volverá a intentar... - - - Invalid masternodeprivkey. Please see documenation. - La clave prinvada del nodo maestro no es válida. Por favor, consulte la documentación. - - - (must be 9999 for mainnet) - (debe ser 9999 para la red principal) - - - Can't find random Masternode. - No se pudo encontrar un Nodo Maestro aleatorio. - - - Can't mix while sync in progress. - No se puede mezclar mientras la sincronización esté en curso. - - - Could not parse masternode.conf - No se pudo interpretar masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - La máscara de red especificada en -whitelist no es válida: '%s' - - - Invalid port detected in masternode.conf - Se detectó un puerto no válido en masternode.conf - - - Invalid private key. - Clave privada inválida. - - - Invalid script detected. - Script inválido detectado. - - - KeePassHttp id for the established association - Identificación del KeePassHttp para la asociación establecida - - - KeePassHttp key for AES encrypted communication with KeePass - Clave KeePassHttp para la comunicación cifrada AES con KeePass - - - Keep N DASH anonymized (default: %u) - Conservar N DASH anónimos (predeterminado: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Mantenga a lo sumo <n> transacciones no conectables en la memoria (por defecto: %u) - - - Last Darksend was too recent. - El último Darksend era demasiado reciente. - - - Line: %d - Línea: %d - - - Loading addresses... - Cargando direcciones... - - - Loading block index... - Cargando el índice de bloques... - - - Loading wallet... (%3.2f %%) - Cargando monedero... (%3.2f %%) - - - Loading wallet... - Cargando monedero... - - - Masternode options: - Opciones del Nodo Maestro: - - - Masternode queue is full. - La cola del nodo maestro está llena. - - - Masternode: - Nodo Maestro: - - - Missing input transaction information. - Información ausente en la transacción de entrada. - - - No funds detected in need of denominating. - No se han detectado fondos que necesiten denominarse. - - - No matching denominations found for mixing. - No se han encontrado denominaciones iguales para mezclar. - - - Node relay options: - Opciones de transmisión del nodo: - - - Non-standard public key detected. - Se detectó una llave publica en formato no estándar. - - - Not compatible with existing transactions. - No es compatible con las transacciones existentes. - - - Not enough file descriptors available. - No hay suficientes descriptores de archivo disponibles. - - - Options: - Opciones: - - - Password for JSON-RPC connections - Contraseña para las conexiones JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Opciones SSL de RPC: (véase la wiki de Bitcoin para las instrucciones de instalación de SSL) - - - RPC server options: - Opciones de servidor RPC: - - - RPC support for HTTP persistent connections (default: %d) - Soporte de RPC para conexiones HTTP persistentes (predeterminado: %d) - - - Randomly drop 1 of every <n> network messages - Ignorar 1 de cada <n> mensajes de red al azar - - - Randomly fuzz 1 of every <n> network messages - Fuzzear 1 de cada <n> mensajes de red al azar - - - Rebuild block chain index from current blk000??.dat files - Reconstruir el índice de la cadena de bloques a partir de los archivos blk000??.dat actuales - - - Receive and display P2P network alerts (default: %u) - Recibir y mostrar avisos de la red P2P (predeterminado: %u) - - - Relay and mine data carrier transactions (default: %u) - Transmitir y minar transacciones con portadora de datos (predeterminado: %u) - - - Relay non-P2SH multisig (default: %u) - Transmitir multifirma no P2SH (predeterminado: %u) - - - Rescan the block chain for missing wallet transactions - Volver a examinar la cadena de bloques en busca de transacciones perdidas del monedero - - - Rescanning... - Reexplorando... - - - Run in the background as a daemon and accept commands - Ejecutar en segundo plano como daemon y aceptar comandos - - - Session not complete! - ¡La sesión no está completa! - - - Session timed out. - La sesión caducó. - - - Set database cache size in megabytes (%d to %d, default: %d) - Asignar tamaño de la caché en megabytes (entre %d y %d; predeterminado: %d) - - - Set maximum block size in bytes (default: %d) - Establecer tamaño máximo de bloque en bytes (predeterminado: %d) - - - Set the masternode private key - Establezca la clave privada del nodo maestro - - - Show all debugging options (usage: --help -help-debug) - Muestra todas las opciones de depuración (uso: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Reducir el archivo debug.log al iniciar el cliente (predeterminado: 1 sin -debug) - - - Signing failed. - No se pudo firmar. - - - Signing transaction failed - Falló la firma de la transacción - - - Specify data directory - Especificar directorio para los datos - - - Specify wallet file (within data directory) - Especificar archivo de monedero (dentro del directorio de datos) - - - Specify your own public address - Especifique su propia dirección pública - - - Synchronization pending... - Sincronización pendiente... - - - This help message - Este mensaje de ayuda - - - This is experimental software. - Esto es software experimental. - - - This is intended for regression testing tools and app development. - Esto está enfocado a las herramientas de prueba de regresión y desarrollo de aplicaciones. - - - Transaction amount too small - Cuantía de la transacción demasiado pequeña - - - Transaction amounts must be positive - Las cuantías en las transacciones deben ser positivas - - - Transaction created successfully. - Transacción creada con éxito. - - - Transaction fees are too high. - Las comisiones por transacción son demasiado elevadas. - - - Transaction not valid. - La transacción no es válida. - - - Transaction too large for fee policy - Transacción demasiado grande para la política de comisiones - - - Transaction too large - Transacción demasiado grande - - - Transmitting final transaction. - Transmitiendo transacción final. - - - Unable to bind to %s on this computer (bind returned error %s) - No es posible enlazar con %s en este sistema (bind ha dado el error %s) - - - Unable to sign spork message, wrong key? - No fue posible firmar el mensaje de spork, ¿clave incorrecta? - - - Unknown network specified in -onlynet: '%s' - La red especificada en -onlynet '%s' es desconocida - - - Unknown state: id = %u - Estado desconocido: id = %u - - - Upgrade wallet to latest format - Actualizar el monedero al formato más reciente - - - Use OpenSSL (https) for JSON-RPC connections - Usar OpenSSL (https) para las conexiones JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Usar UPnP para asignar el puerto de escucha (predeterminado: 1 al escuchar) - - - Use the test network - Usar la red de pruebas - - - Username for JSON-RPC connections - Nombre de usuario para las conexiones JSON-RPC - - - Value more than Darksend pool maximum allows. - El valor es mayor al máximo permitido por el pool Darksend. - - - Verifying blocks... - Verificando bloques... - - - Verifying wallet... - Verificando monedero... - - - Wallet %s resides outside data directory %s - El monedero %s se encuentra fuera del directorio de datos %s - - - Wallet is locked. - El monedero está bloqueado. - - - Wallet options: - Opciones de monedero: - - - Wallet window title - Título de la ventana del monedero - - - Warning - Aviso - - - Warning: This version is obsolete, upgrade required! - Aviso: Esta versión se ha quedado obsoleta, ¡actualización obligatoria! - - - You need to rebuild the database using -reindex to change -txindex - Usted necesita reconstruir la base de datos utilizando -reindex para cambiar -txindex - - - Your entries added successfully. - Sus registros se agregaron con éxito. - - - Your transaction was accepted into the pool! - ¡Se admitió su transacción en el grupo! - - - Zapping all transactions from wallet... - Eliminando todas las transacciones del monedero... - - - on startup - al iniciar - - - wallet.dat corrupt, salvage failed - wallet.dat dañado, falló el rescate - - - \ No newline at end of file diff --git a/src/qt/locale/dash_fi.ts b/src/qt/locale/dash_fi.ts deleted file mode 100644 index 0d6608b2bd7e..000000000000 --- a/src/qt/locale/dash_fi.ts +++ /dev/null @@ -1,4546 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Klikkaa hiiren oikealla muokataksesi osoitetta tai nimeä - - - Create a new address - Luo uusi osoite - - - &New - &Uusi - - - Copy the currently selected address to the system clipboard - Kopioi valittu osoite leikepöydälle - - - &Copy - &Kopioi - - - Delete the currently selected address from the list - Poista valittu osoite listalta - - - &Delete - &Poista - - - Export the data in the current tab to a file - Vie auki olevan välilehden tiedot tiedostoon - - - &Export - Vi&e... - - - C&lose - &Sulje - - - Choose the address to send coins to - Valitse osoite johon varat lähetetään - - - Choose the address to receive coins with - Valitse vastaanottava osoite - - - C&hoose - V&alitse - - - Sending addresses - Lähettävä osoite - - - Receiving addresses - Vastaanottava osoite - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Nämä ovat Dash osoitteesi maksujen lähetykseen. Tarkista aina lähetettävä määrä ja vastaanottajan osoite ennen kuin lähetät varoja. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Nämä ovat Dash osoitteesi suoritusten vastaanottamiseen. Suositellaan että annat uuden osoitteen kullekin siirtotapahtumalle. - - - &Copy Address - Kopioi &Osoite - - - Copy &Label - Kopioi &Nimi - - - &Edit - &Muokkaa - - - Export Address List - Vie osoitekirja - - - Comma separated file (*.csv) - Pilkuilla eritelty tiedosto (*.csv) - - - Exporting Failed - Vienti epäonnistui - - - There was an error trying to save the address list to %1. Please try again. - Osoitelistan tallennuksessa tapahtui virhe tiedostoon %1. Yritä uudelleen. - - - - AddressTableModel - - Label - Nimi - - - Address - Osoite - - - (no label) - (ei nimeä) - - - - AskPassphraseDialog - - Passphrase Dialog - Salasanan Dialogi - - - Enter passphrase - Kirjoita salasana - - - New passphrase - Uusi salasana - - - Repeat new passphrase - Uusi salasana uudelleen - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Poistaa käytöstä rahojen lähetyksen kun käyttöjärjestelmän käyttäjätili on vaarantunut. Ei tarjoa oikeaa turvallisuutta. - - - For anonymization only - Vain anonymisointia varten - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Anna lompakolle uusi salasana.<br/>Käytä salasanaa jossa on ainakin <b>10 satunnaista mekkiä</b> tai <b>kahdeksan sanaa</b>. - - - Encrypt wallet - Salaa lompakko - - - This operation needs your wallet passphrase to unlock the wallet. - Tätä toimintoa varten sinun täytyy antaa lompakon salasana sen avaamiseksi. - - - Unlock wallet - Avaa lompakko - - - This operation needs your wallet passphrase to decrypt the wallet. - Tätä toimintoa varten sinun täytyy antaa lompakon salasana salauksen purkuun. - - - Decrypt wallet - Pura lompakon salaus - - - Change passphrase - Vaihda salasana - - - Enter the old and new passphrase to the wallet. - Anna vanha ja uusi salasana. - - - Confirm wallet encryption - Vahvista lompakon salaus - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Varoitus: Jos salaat lompakon ja unohdat salasanan, <b>MENETÄT KAIKKI DASHisi</b>! - - - Are you sure you wish to encrypt your wallet? - Haluatko varmasti salata lompakkosi? - - - Wallet encrypted - Lompakko salattu - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash sulkeutuu nyt salauksen viimeistelyä varten. Muista että salaus pelkästään ei voi estää Dashiesi varastamista jos koneesi saastuu haittaohjelmilla tai viruksilla. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - TÄRKEÄÄ: Kaikki vanhat lompakon varmuuskopiot pitäisi korvata uusilla salatuilla varmuuskopioilla. Turvallisuussyistä edelliset salaamattomat varmuuskopiot muuttuvat turhiksi kun aloitat uuden salatun lompakon käytön. - - - Wallet encryption failed - Lompakon salaus epäonnistui - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Lompakon salaaminen epäonnistui sisäisen virheen vuoksi. Lompakkoasi ei salattu. - - - The supplied passphrases do not match. - Annetut salasanat eivät täsmää. - - - Wallet unlock failed - Lompakon avaaminen epäonnistui. - - - The passphrase entered for the wallet decryption was incorrect. - Annettu salasana oli väärä. - - - Wallet decryption failed - Lompakon salauksen purku epäonnistui. - - - Wallet passphrase was successfully changed. - Lompakon salasana vaihdettiin onnistuneesti. - - - Warning: The Caps Lock key is on! - Varoitus: Caps Lock on käytössä! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Lompakko - - - Node - Solmu - - - &Overview - &Yleisnäkymä - - - Show general overview of wallet - Lompakon tilanteen yleisnäkymä - - - &Send - L&ähetä - - - Send coins to a Dash address - Lähetä varoja Dash osoitteeseen - - - &Receive - &Vastaanota - - - Request payments (generates QR codes and dash: URIs) - Pyydä maksuja (Luo QR koodit ja Dash: URIt) - - - &Transactions - &Tapahtumat - - - Browse transaction history - Selaa tapahtumahistoriaa - - - E&xit - L&opeta - - - Quit application - Sulje ohjelma - - - &About Dash Core - Tietoja &Dash Core:sta - - - Show information about Dash Core - Näytä tietoja Dash Core:sta - - - About &Qt - Tietoja &Qt - - - Show information about Qt - Näytä tietoja QT:sta - - - &Options... - &Asetukset... - - - Modify configuration options for Dash - Muuta Dash asetuksia - - - &Show / Hide - &Näytä / Piilota - - - Show or hide the main Window - Näytä tai piilota Dash pääikkuna - - - &Encrypt Wallet... - &Salaa Lompakko... - - - Encrypt the private keys that belong to your wallet - Salaa yksityiset avaimet jotka kuuluvat lompakkoosi - - - &Backup Wallet... - &Varmuuskopioi Lompakko... - - - Backup wallet to another location - Varmuuskopioi lompakko toiseen sijaintiin - - - &Change Passphrase... - &Vaihda Salasana... - - - Change the passphrase used for wallet encryption - Vaihda lompakon salaukseen käytettävä salasana - - - &Unlock Wallet... - &Avaa Lompakko... - - - Unlock wallet - Avaa lompakko - - - &Lock Wallet - &Lukitse Lompakko - - - Sign &message... - &Allekirjoita Viesti... - - - Sign messages with your Dash addresses to prove you own them - Allekirjoita viestit Dash osoitteillasi todistaaksesi että omistat ne - - - &Verify message... - &Tarkista Viesti... - - - Verify messages to ensure they were signed with specified Dash addresses - Tarkista viestit ollaksesi varma että ne on allekirjoitettu määritetyillä Dash osoitteilla - - - &Information - T&ietoa - - - Show diagnostic information - Näytä diagnostiikka tietoja - - - &Debug console - &Testauskonsoli - - - Open debugging console - Avaa testauskonsoli - - - &Network Monitor - &Verkkoliikenne - - - Show network monitor - Näytä verkkoliikenne - - - &Peers list - &Peers Lista - - - Show peers info - Näytä verkon peers tietoja - - - Wallet &Repair - Lompakon &Korjaus - - - Show wallet repair options - Näytä lompakon korjausvalinnat - - - Open &Configuration File - Avaa &Asetustiedosto - - - Open configuration file - Avaa asetustiedosto - - - Show Automatic &Backups - &Näytä Automaattiset Varmistukset - - - Show automatically created wallet backups - Näytä automaattisesti tehdyt lompakon varmistukset - - - &Sending addresses... - &Lähettävät Osoitteet... - - - Show the list of used sending addresses and labels - Näytä lähettämiseen käytettyjen osoitteiden ja nimien lista - - - &Receiving addresses... - Va&staanottavat Osoitteet... - - - Show the list of used receiving addresses and labels - Näytä vastaanottamiseen käytettyjen osoitteiden ja nimien lista - - - Open &URI... - Avaa &URI... - - - Open a dash: URI or payment request - Avaa Dash: URI tai maksupyyntö - - - &Command-line options - &Komentorivin valinnat - - - Dash Core client - Dash Core asiakasohjelma - - - Processed %n blocks of transaction history. - Käsitelty %n lohko tapahtumahistoriasta.Käsitelty %n lohkoa tapahtumahistoriasta. - - - Synchronizing additional data: %p% - Synkronoidaan lisätietoja: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Näytä Dash Core ohjelista komentorivin valinnoista - - - &File - &Tiedosto - - - &Settings - &Asetukset - - - &Tools - &Työkalut - - - &Help - &Apua - - - Tabs toolbar - Välilehtipalkki - - - %n active connection(s) to Dash network - %n aktiivinen yhteys Dash verkkoon%n aktiivista yhteyttä Dash verkkoon - - - Synchronizing with network... - Synkronoidaan verkkoon... - - - Importing blocks from disk... - Tuodaan lohkoja levyltä... - - - Reindexing blocks on disk... - Uudelleen indeksoidaan lohkoja... - - - No block source available... - Lohkojen lähdettä ei saatavilla... - - - Up to date - Tapahtumahistoria on ajan tasalla - - - %n hour(s) - %n tunti%n tuntia - - - %n day(s) - %n päivä%n päivää - - - %n week(s) - %n viikko%n viikkoa - - - %1 and %2 - %1 ja %2 - - - %n year(s) - %n vuosi%n vuotta - - - %1 behind - %1 jäljessä - - - Catching up... - Saavutetaan verkkoa... - - - Last received block was generated %1 ago. - Viimeisin vastaanotettu lohko luotu %1 sitten. - - - Transactions after this will not yet be visible. - Tämän jälkeiset siirtotapahtumat eivät ole vielä näkyvissä. - - - Error - Virhe - - - Warning - Varoitus - - - Information - Tietoa - - - Sent transaction - Lähetetty siirtotapahtuma - - - Incoming transaction - Saapuva siirtotapahtuma - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Päiväys: %1 -Määrä: %2 -Tyyppi: %3 -Osoite: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Lompakko on <b>salattu</b> ja tällä hetkellä <b>avoinna</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Lompakko on <b>salattu</b> ja tällä hetkellä <b>avoinna</b> vain anonymisointia varten - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Lompakko on <b>salattu</b> ja tällä hetkellä <b>lukittu</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Yhteensä: %1 (DS yht.sopivia: %2 / Käytössä: %3) - - - Network Alert - Verkkohälytys - - - - CoinControlDialog - - Quantity: - Määrä: - - - Bytes: - Tavuja: - - - Amount: - Määrä: - - - Priority: - Prioriteetti: - - - Fee: - Siirtomaksu: - - - Coin Selection - Kolikko Valinta - - - Dust: - Tomu: - - - After Fee: - Siirtomaksun jälkeen: - - - Change: - Vaihtoraha: - - - (un)select all - Poista kaikki valinnat - - - Tree mode - Puurakenne - - - List mode - Listarakenne - - - (1 locked) - (1 lukittu) - - - Amount - Määrä - - - Received with label - Vastaanotettu nimellä - - - Received with address - Vastaanotettu osoitteeseen - - - DS Rounds - DS Kierrokset - - - Date - Päivämäärä - - - Confirmations - Vahvistuksia - - - Confirmed - Vahvistettu - - - Priority - Prioriteetti - - - Copy address - Kopioi osoite - - - Copy label - Kopioi nimi - - - Copy amount - Kopioi määrä - - - Copy transaction ID - Kopioi siirtotunnus - - - Lock unspent - Lukitse käyttämättömät - - - Unlock unspent - Avaa käyttämättömät - - - Copy quantity - Kopioi määrä - - - Copy fee - Kopioi siirtomaksu - - - Copy after fee - Kopioi siirtomaksun jälkeen - - - Copy bytes - Kopioi tavut - - - Copy priority - Kopioi prioriteetti - - - Copy dust - Kopioi tomu - - - Copy change - Kopioi vaihtoraha - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Ei anonyymeja syötteitä valittu. <b>Darksend poistetaan käytöstä.</b><br><br>Jos silti haluat käyttää Darksend:iä, poista ei anonyymit valinnat ensin ja valitse uudelleen Darksend optio. - - - highest - korkein - - - higher - korkeampi - - - high - korkea - - - medium-high - keski-korkea - - - Can vary +/- %1 duff(s) per input. - Voi vaihdella +/- %1 duffs per syöte. - - - n/a - e/s - - - medium - keskisuuri - - - low-medium - pieni-keskisuuri - - - low - pieni - - - lower - pienempi - - - lowest - pienin - - - (%1 locked) - (%1 lukittu) - - - none - ei mitään - - - yes - kyllä - - - no - ei - - - This label turns red, if the transaction size is greater than 1000 bytes. - Tämä nimi muuttuu punaiseksi jos siirtotapahtuman koko on suurempi kuin 1000 tavua. - - - This means a fee of at least %1 per kB is required. - Tämä tarkoittaa että vähintään %1 per kB siirtomaksu on pakollinen. - - - Can vary +/- 1 byte per input. - Voi vaihdella +/- 1 tavu per syöte - - - Transactions with higher priority are more likely to get included into a block. - Siirtotapahtumat korkeammalla prioriteetilla sisällytetään varmemmin lohkoon. - - - This label turns red, if the priority is smaller than "medium". - Tämä nimi muuttuu punaiseksi jos prioriteetti on pienempi kuin "keskisuuri". - - - This label turns red, if any recipient receives an amount smaller than %1. - Tämä nimi muuttuu punaiseksi jos vastaanottaja saa pienemmän määrän kuin %1 - - - (no label) - (ei nimeä) - - - change from %1 (%2) - Vaihda %1 (%2) - - - (change) - (vaihtoraha) - - - - DarksendConfig - - Configure Darksend - Darksend Asetukset - - - Basic Privacy - Perustason Yksityisyys - - - High Privacy - Korkean tason Yksityisyys - - - Maximum Privacy - Maksimaalinen Yksityisyys - - - Please select a privacy level. - Valitse yksityisyyden taso. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Käytä 2 erillistä masternodea sekoittaaksesi varoja - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Käytä 8 erillistä masternodea sekoittaaksesi varoja - - - Use 16 separate masternodes - Käytä 16 erillistä masternodea - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Tämä vaihtoehto on nopein ja maksaa noin ~0.025 DASH kun anonymisoidaan 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Tämä vaihtoehto on keskinopea ja maksaa noin ~0.05 DASH kun anonymisoidaan 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH maksu per 1000 DASH jonka anonymisoit. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Tämä vaihtoehto on hitain ja kaikkein anonyymi. Suurimman yksityisyyden käyttö maksaa - - - Darksend Configuration - Darksend Asetukset - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend on asetettu perusasetuksiin (%1 and 2 kierrosta). Voit muuttaa asetuksia milloin vain Dash asetuksista. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend on asetettu keskitason asetuksiin (%1 and 8 kierrosta). Voit muuttaa asetuksia milloin vain Dash asetuksista. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend on asetettu maksimitason asetuksiin (%1 and 16 kierrosta). Voit muuttaa asetuksia milloin vain Dash asetuksista. - - - - EditAddressDialog - - Edit Address - Muokkaa osoitetta - - - &Label - &Nimi - - - The label associated with this address list entry - Tähän osoitteeseen liitetty nimi - - - &Address - &Osoite - - - The address associated with this address list entry. This can only be modified for sending addresses. - Osoite liitettynä tähän osoitekirjan alkioon. Tämä voidaan muokata vain lähetysosoitteissa. - - - New receiving address - Uusi vastaanottava osoite - - - New sending address - Uusi lähettävä osoite - - - Edit receiving address - Muokkaa vastaanottavaa osoitetta - - - Edit sending address - Muokkaa lähettävää osoitetta - - - The entered address "%1" is not a valid Dash address. - Annettu osoite "%1" ei ole pätevä Dash osoite. - - - The entered address "%1" is already in the address book. - Osoite "%1" on jo osoitekirjassa. - - - Could not unlock wallet. - Lompakkoa ei voitu avata. - - - New key generation failed. - Uuden avaimen luonti epäonnistui. - - - - FreespaceChecker - - A new data directory will be created. - Luodaan uusi datahakemisto. - - - name - Nimi - - - Directory already exists. Add %1 if you intend to create a new directory here. - Hakemisto on jo olemassa. Lisää %1 jos tarkoitus on luoda hakemisto tänne. - - - Path already exists, and is not a directory. - Polku on jo olemassa, eikä se ole hakemisto. - - - Cannot create data directory here. - Ei voida luoda datahakemistoa tänne. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - versio - - - (%1-bit) - (%1-bittinen) - - - About Dash Core - Tietoja Dash Core:sta - - - Command-line options - Komentorivin valinnat - - - Usage: - Käyttö: - - - command-line options - komentorivi valintaparametrit - - - UI options - Käyttöliittymän asetukset - - - Choose data directory on startup (default: 0) - Valitse datahakemisto käynnistyksessä (oletus: 0) - - - Set language, for example "de_DE" (default: system locale) - Aseta kieli, esim. "fi_FI" (oletus: sama kuin järjestelmän) - - - Start minimized - Käynnistä pienennettynä - - - Set SSL root certificates for payment request (default: -system-) - Aseta SSL root varmenne maksupyynnöille (oletus: -system-) - - - Show splash screen on startup (default: 1) - Näytä aloitusruutu käynnistettäessä (oletus: 1) - - - - Intro - - Welcome - Tervetuloa - - - Welcome to Dash Core. - Dash Core - Tervetuloa. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Koska tämä on ensimmäinen kerta kun ohjelma käynnistetään, voit valita minne Dash Core tallettaa datansa. -Varoitus: Jos käytät käyttöjärjestelmää (Live os) suoraan usb, dvd tai cd levyltä, ohjaa talletettava data eri levyasemalle turvalliseen paikkaan. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core lataa ja tallettaa kopion lohkoketjusta. Vähintään %1GB dataa talletetaan tähän hakemistoon, ja se myös kasvaa ajan myötä. Myös lompakko talletetaan tähän hakemistoon. - - - Use the default data directory - Käytä oletushakemistoa - - - Use a custom data directory: - Määritä oma hakemisto: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Virhe: Annettua datahakemistoa "%1" ei voida luoda. - - - Error - Virhe - - - %1 GB of free space available - %1 GB vapaata levytilaa - - - (of %1 GB needed) - (tarvitaan %1GB) - - - - OpenURIDialog - - Open URI - Avaa URI - - - Open payment request from URI or file - Avaa maksupyyntö URI:sta tai tiedostosta - - - URI: - URI: - - - Select payment request file - Valitse maksupyynnön tiedosto - - - Select payment request file to open - Valitse avattava maksypyynnön tiedosto - - - - OptionsDialog - - Options - Asetukset - - - &Main - &Yleiset - - - Automatically start Dash after logging in to the system. - Käynnistä Dash automaattisesti kun järjestelmään kirjaudutaan. - - - &Start Dash on system login - &Käynnistä Dash järjestelmään kirjauduttaessa - - - Size of &database cache - &Tietokannan välimuistin koko - - - MB - MB - - - Number of script &verification threads - Script &vahvistuksien säikeiden määrä - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = jätä näin monta prosessorin ydintä vapaaksi) - - - Darksend rounds to use - Kuinka montaa Darksend kierrosta käytetään - - - This amount acts as a threshold to turn off Darksend once it's reached. - Tämä määrä toimii rajana keskeytykselle kun Darksend anonymisointi sen saavuttaa. - - - Amount of Dash to keep anonymized - Dash määrä joka pidetään anonymisoituna - - - W&allet - &Lompakko - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Jos poistat vahvistamattomien vaihtorahojen käytön, siirtotapahtuman<br/>vaihtorahaa ei voida käyttää ennen vähintään yhtä vahvistusta.<br/>Tämä vaikuttaa myös kuinka saldosi lasketaan. - - - Accept connections from outside - Hyväksy yhteydet ulkopuolelta - - - Allow incoming connections - Salli sisään tulevat yhteydet - - - Connect to the Dash network through a SOCKS5 proxy. - Kytkeydy Dash verkkoon käyttäen SOCKS5 proxy:a. - - - &Connect through SOCKS5 proxy (default proxy): - &Yhdistä SOCKS5 proxyn kautta (oletus: proxy): - - - Expert - Expertti - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Tämä asetus määrittää kuinka monen erillisen masternoden kautta syötteen anonymisointi tehdään.<br/>Mitä enemmän anonymisoinnin kierroksia, sen parempi yksityisyys, mutta se myös maksaa enemmän siirtomaksuina. - - - Whether to show coin control features or not. - Näytetäänkö kolikkokontrollin ominaisuuksia vai ei - - - Enable coin &control features - Ota käytöön &kolikkokontrolli ominaisuudet - - - &Spend unconfirmed change - &Käytä vahvistamattomia vaihtorahoja - - - &Network - &Verkko - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Avaa automaattisesti Dash asiakasohjelmalle portti reitittimeen. Tämä toimii vain jos reitittimesi tukee UPnP:tä ja se on käytössä. - - - Map port using &UPnP - Kartoita portti käyttäen &UPnP:tä - - - Proxy &IP: - Proxy &IP - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP osoite proxy:lle (esim. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Portti - - - Port of the proxy (e.g. 9050) - Proxyn portti (esim. 9050) - - - &Window - &Ikkuna - - - Show only a tray icon after minimizing the window. - Näytä ainoastaan ikoni ilmaisinalueella ikkunan pienentämisen jälkeen. - - - &Minimize to the tray instead of the taskbar - &Pienennä ilmaisinalueelle työkalurivin sijasta - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Ikkunaa suljettaessa pienennä Dash asiakasohjelman ikkuna lopettamatta itse ohjelmaa. Kun tämä asetus on valittuna, ohjelman voi sulkea vain valitsemalla Lopeta ohjelman valikosta. - - - M&inimize on close - P&ienennä suljettaessa - - - &Display - &Käyttöliittymä - - - User Interface &language: - &Käyttöliittymän kieli - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Käyttöliittymän kieli asetetaan tässä, Asetus tulee voimaan kun Dash asiakasohjelma käynnistetään uudelleen. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Puuttuuko sopiva kieli tai käännös on kesken? Auta käännöstyössä täällä: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Käyttöliittymän Teema: - - - &Unit to show amounts in: - Yksikkö joina määrät näytetään - - - Choose the default subdivision unit to show in the interface and when sending coins. - Valitse mitä yksikköä käytetään ensisijaisesti varojen määrien näyttämiseen. - - - Decimal digits - Desimaalit - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Ulkopuoliset URL-osoitteet (esim. lohkoselain,) jotka esiintyvät tapahtumat-välilehdellä valikossa. %s URL-osoitteessa korvataan siirtotunnuksella. Useampi URL-osoite on eroteltu pystyviivalla |. - - - Third party transaction URLs - Kolmannen osapuolen siirtotapahtuma URL:t - - - Active command-line options that override above options: - Aktiiviset komentorivivalinnat jotka ohittavat ylläolevat valinnat: - - - Reset all client options to default. - Palauta kaikki asetukset oletusarvoihin. - - - &Reset Options - Palauta &Asetukset - - - &OK - &OK - - - &Cancel - &Peruuta - - - default - oletus - - - none - ei mitään - - - Confirm options reset - Vahvista asetusten palautus - - - Client restart required to activate changes. - Ohjelman uudelleen käynnistys aktivoi muutokset käyttöön. - - - Client will be shutdown, do you want to proceed? - Ohjelma suljetaan, haluatko jatkaa? - - - This change would require a client restart. - Tämä muutos vaatii ohjelman uudelleen käynnistyksen. - - - The supplied proxy address is invalid. - Antamasi proxyn osoite on virheellinen. - - - - OverviewPage - - Form - Lomake - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Näytetyt tiedot eivät välttämättä ole ajan tasalla.<br>Lompakkosi synkronoituu automaattisesti Dash verkkoon kun<br>yhteys on muodostettu, mutta tämä prosessi ei vielä ole valmis. - - - Available: - Käytettävissä: - - - Your current spendable balance - Nykyinen käytettävissä oleva saldo - - - Pending: - Vahvistamatta: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Vahvistamattomien siirtotapahtumien summa,<br>jota ei vielä lasketa käytettävissä olevaan saldoon - - - Immature: - Kypsymättä: - - - Mined balance that has not yet matured - Louhittu saldo, joka ei ole vielä kypsynyt - - - Balances - Saldot - - - Unconfirmed transactions to watch-only addresses - Vahvistamattomat tapahtumat vain-luku osoitteisiin - - - Mined balance in watch-only addresses that has not yet matured - Louhittu saldo vain-luku osoitteisiin, joka ei ole vielä kypsynyt - - - Total: - Saldo Yhteensä: - - - Your current total balance - Saldo yhteensä tällä hetkellä - - - Current total balance in watch-only addresses - Saldo yhteensä vain-luku osoitteissa - - - Watch-only: - Vain-luku: - - - Your current balance in watch-only addresses - Nykyinen käytettävissä oleva saldo vain-luku osoitteissa - - - Spendable: - Käytettävissä: - - - Status: - Tila: - - - Enabled/Disabled - Käytössä/Ei käytössä - - - Completion: - Valmiina: - - - Darksend Balance: - Darksend Saldo: - - - Amount and Rounds: - Määrä ja Kierrokset: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Kierrosta - - - Submitted Denom: - Lähetetyt Denom: - - - n/a - e/s - - - Darksend - Darksend - - - Recent transactions - Viimeisimmät tapahtumat - - - Start/Stop Mixing - Käynnistä/Lopeta Sekoitus - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Masternodelle lähetetyt denominoinnit.<br>Jotta sekoitus onnistuisi, täytyy muiden käyttäjien käyttää saman arvoisia denominointeja. - - - (Last Message) - (Viimeisin Viesti) - - - Try to manually submit a Darksend request. - Yritä manuaalisesti esittää Darksend sekoituspyyntö. - - - Try Mix - Yritä Sekoittaa - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Nollaa nykyinen Darksend tila (voi keskeyttää Darksend sekoituksen, joka voi maksaa ylimääräisiä kuluja) - - - Reset - Nollaus - - - out of sync - Ei ajan tasalla - - - Disabled - Ei käytössä - - - Start Darksend Mixing - Käynnistä Darksend Sekoitus - - - Stop Darksend Mixing - Lopeta Darksend Sekoitus - - - No inputs detected - Syötteitä ei havaittu - - - %n Rounds - %n Kierros%n Kierrosta - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Ei tarpeeksi yhteensopivia syötteitä anonymisointiin <span style='color:red;'>%1</span>,<br>anonymisoidaan <span style='color:red;'>%2</span> sen sijaan - - - Overall progress - Edistyminen - - - Denominated - Denominoitu - - - Anonymized - Anonymisoitu - - - Denominated inputs have %5 of %n rounds on average - Denominoiduilla syötteillä on keskimäärin %5 / %n kierrostaDenominoiduilla syötteillä on keskimäärin %5 / %n kierrosta - - - Found enough compatible inputs to anonymize %1 - Löytyi tarpeeksi yhteensopivia syötteitä anonymisointiin %1 - - - Mixed - Sekoitettu - - - Enabled - Käytössä - - - Last Darksend message: - - Viimeisin Darksend viesti: - - - - N/A - e/s - - - Darksend was successfully reset. - Darksend nollattu onnistuneesti. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Jos et halua nähdä sisäisiä Darksend sekoituksen kuluja/tapahtumia, valitse "Yleiset" tyypiksi siirtotapahtumissa. - - - Darksend requires at least %1 to use. - Darksendin käyttö vaatii vähintään %1. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Lompakko on lukittu ja käyttäjä ei avannut sitä. Darksend asetetaan pois käytöstä. - - - - PaymentServer - - Payment request error - Maksupyyntövirhe - - - Cannot start dash: click-to-pay handler - Ei voi käynnistää Dashia: click-to-pay handler - - - URI handling - URI käsittely - - - Payment request fetch URL is invalid: %1 - Maksupyynnön haku URL on virheellinen: %1 - - - Payment request file handling - Maksupyynnön tiedoston käsittely - - - Invalid payment address %1 - Virheellinen maksuosoite %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - URI:a ei voida jäsentää! Tämä voi johtua virheellisestä Dash osoitteesta tai virheellisestä URI:n muuttujasta. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Maksupyynnön tiedostoa ei voida lukea! Tämä voi johtua virheellisestä maksupyyntötiedostosta. - - - Payment request rejected - Maksupyyntö hylätty - - - Payment request network doesn't match client network. - Maksupyynnon verkko ei täsmää asiakasverkkon kanssa. - - - Payment request has expired. - Maksupyyntö on vanhentunut. - - - Payment request is not initialized. - Maksupyyntö ei ole alustettu. - - - Unverified payment requests to custom payment scripts are unsupported. - Vahvistamattomia maksupyyntöjä kustomoituun maksupalvelun scripteihin ei tueta. - - - Requested payment amount of %1 is too small (considered dust). - Maksupyyntö %1 on liian pieni (lasketaan tomuksi). - - - Refund from %1 - Maksupalautus %1:sta - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Maksupyyntö %1 on liian iso (%2 tavua, sallitusta %3 tavusta). - - - Payment request DoS protection - Maksupyyntö DoS suojaus - - - Error communicating with %1: %2 - Virhe kommunikoidessa %1: %2 - - - Payment request cannot be parsed! - Maksupyyntöä ei voida jäsentää! - - - Bad response from server %1 - Epäkelpo vastaus palvelimelta %1 - - - Network request error - Tietoverkon pyyntövirhe - - - Payment acknowledged - Rahansiirto tunnistettu - - - - PeerTableModel - - Address/Hostname - Osoite/Isäntänimi - - - User Agent - Käyttäjäohjelma - - - Ping Time - Ping aika - - - - QObject - - Amount - Määrä - - - Enter a Dash address (e.g. %1) - Syötä Dash osoite (esim. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - VERKKO - - - UNKNOWN - TUNTEMATON - - - None - Ei mitään - - - N/A - e/s - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Tallenna Kuva... - - - &Copy Image - &Kopioi kuva - - - Save QR Code - Tallenna QR-koodi - - - PNG Image (*.png) - PNG kuva (*.png) - - - - RPCConsole - - Tools window - Työkaluikkuna - - - &Information - T&ietoa - - - General - Yleinen - - - Name - Nimi - - - Client name - Asiakasohjelman nimi - - - N/A - e/s - - - Number of connections - Yhteyksien määrä - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Avaa Dash debug lokitiedosto nykyisestä datahakemistosta. Tämä saattaa kestää muutaman sekunnin isoilla tiedostoilla. - - - &Open - &Avaa - - - Startup time - Käynnistysaika - - - Network - Verkko - - - Last block time - Viimeisimmän lohkon aika - - - Debug log file - Debug lokitiedosto - - - Using OpenSSL version - Käytössä oleva OpenSSL versio - - - Build date - Ohjelman päiväys - - - Current number of blocks - Nykyinen lohkojen määrä - - - Client version - Asiakasohjelman versio - - - Using BerkeleyDB version - Käytössä oleva BerkeleyDB versio - - - Block chain - Lohkoketju - - - Number of Masternodes - Masternodet määrä - - - &Console - &Konsoli - - - Clear console - Tyhjennä konsoli - - - &Network Traffic - &Verkkoliikenne - - - &Clear - &Tyhjennä - - - Totals - Yhteensä - - - Received - Vastaanotettu - - - Sent - Lähetetty - - - &Peers - &Peers - - - Select a peer to view detailed information. - Valitse peer nähdäksesi tarkempia tietoja. - - - Direction - Suunta - - - Version - Versio - - - User Agent - Käyttäjäohjelma - - - Services - Palvelut - - - Starting Height - Aloituskorkeus - - - Sync Height - Synkronointikorkeus - - - Ban Score - Kieltopisteet - - - Connection Time - Yhteysaika - - - Last Send - Viimeinen lähetys - - - Last Receive - Viimeinen vastaanotto - - - Bytes Sent - Tavuja lähetetty - - - Bytes Received - Tavuja vastaanotettu - - - Ping Time - Ping aika - - - &Wallet Repair - &Lompakon Korjaus - - - Salvage wallet - Pelasta lompakko - - - Rescan blockchain files - Skannaa lohkoketju uudelleen - - - Recover transactions 1 - Palauta tapahtumat 1 - - - Recover transactions 2 - Palauta tapahtumat 2 - - - Upgrade wallet format - Päivitä lompakon formaatti - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Painikkeet käynnistävät lompakon korjauksen komentorivin valintoja käyttäen. -Näillä toiminnoilla voit korjata korruptoituneen lohkoketjun tai puuttuvat/vanhentuneet tapahtumat. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Yrittää pelastaa yksityiset avaimet viallisesta lompakkotiedostosta. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Skannaa uudelleen puuttuvat tapahtumat lohkoketjusta. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Palauta tapahtumat lohkoketjusta - (pidä meta-data, esim. tilin omistaja). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Palauta tapahtumat lohkoketjusta - (poista meta-data). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Päivitä lompakko viimeisimpään formaattiin - (Huom: tämä EI päivitä varsinaista lompakko-ohjelmistoa!). - - - Wallet repair options. - Lompakon korjausvalinnat - - - Rebuild index - Rakenna indeksi uudelleen - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Rakenna uudelleen lohkoketjun indeksi nykyisistä blk000??.dat tiedostoista. - - - In: - Sisään: - - - Out: - Ulos: - - - Welcome to the Dash RPC console. - Tervetuloa Dash RPC konsoliin. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Ylös- ja alas-nuolet selaavat historiaa ja <b>Ctrl-L</b> tyhjentää ruudun. - - - Type <b>help</b> for an overview of available commands. - Kirjoita <b>help</b> nähdäksesi käytettävissä olevat komennot. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - kautta %1 - - - never - ei koskaan - - - Inbound - Saapuva - - - Outbound - Lähtevä - - - Unknown - Tuntematon - - - Fetching... - Haetaan... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Uudelleenkäytä yksi vanhoista vastaanottavista osoitteista.<br>Uudelleenkäyttössä on turvallisuus- ja yksityisyysongelmia.<br>Älä käytä tätä ellet ole uudelleenluomassa aikaisempaa maksupyyntöä. - - - R&euse an existing receiving address (not recommended) - &Uudelleenkäytä vastaanottavaa osoitetta (ei suositella) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Valinnainen viesti liitettäväksi maksupyyntöön, joka näytetään kun pyyntö on avattu.<br>Huomio: Viestiä ei lähetetä maksun mukana Dash verkkoon. - - - &Message: - Vi&esti: - - - An optional label to associate with the new receiving address. - Valinnainen nimi liitetään uuteen vastaanottavaan osoitteeseen. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Valinnainen viesti liitettäväksi maksupyyntöön, joka näytetään kun pyyntö on avattu.<br>Huomio: Viestiä ei lähetetä maksun mukana Dash verkkoon. - - - Use this form to request payments. All fields are <b>optional</b>. - Käytä tätä lomaketta maksupyyntöihin. Kaikki kentät ovat <b>valinnaisia</b>. - - - &Label: - &Nimi: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Valinnainen pyyntömäärä. Jätä tyhjäksi tai nollaksi jos et pyydä tiettyä määrää. - - - &Amount: - &Määrä - - - &Request payment - &Vastaanota maksu - - - Clear all fields of the form. - Tyhjennä lomakkeen kaikki kentät. - - - Clear - Tyhjennä - - - Requested payments history - Pyydettyjen maksujen historia - - - Show the selected request (does the same as double clicking an entry) - Näytä valittu pyyntö (sama toiminta kuin alkion tuplaklikkaus) - - - Show - Näytä - - - Remove the selected entries from the list - Poista valitut merkinnät listasta - - - Remove - Poista - - - Copy label - Kopioi nimi - - - Copy message - Kopioi viesti - - - Copy amount - Kopioi määrä - - - - ReceiveRequestDialog - - QR Code - QR-koodi - - - Copy &URI - Kopioi &URI - - - Copy &Address - Kopioi &Osoite - - - &Save Image... - &Tallenna Kuva - - - Request payment to %1 - Vastaanota maksu %1 - - - Payment information - Maksutiedot - - - URI - URI - - - Address - Osoite - - - Amount - Määrä - - - Label - Nimi - - - Message - Viesti - - - Resulting URI too long, try to reduce the text for label / message. - Tuloksen URI liian pitkä, yritä lyhentää otsikon tekstiä / viestiä. - - - Error encoding URI into QR Code. - Virhe käännettäessä URI:a QR-koodiksi. - - - - RecentRequestsTableModel - - Date - Päivämäärä - - - Label - Nimi - - - Message - Viesti - - - Amount - Määrä - - - (no label) - (ei nimeä) - - - (no message) - (ei viestiä) - - - (no amount) - (ei määrää) - - - - SendCoinsDialog - - Send Coins - Lähetä - - - Coin Control Features - Kolikkokontrolli ominaisuudet - - - Inputs... - Sisääntulot... - - - automatically selected - automaattisesti valitut - - - Insufficient funds! - Lompakon saldo ei riitä! - - - Quantity: - Määrä: - - - Bytes: - Tavuja: - - - Amount: - Määrä: - - - Priority: - Prioriteetti: - - - medium - keskisuuri - - - Fee: - Siirtomaksu: - - - Dust: - Tomu: - - - no - ei - - - After Fee: - Siirtomaksun jälkeen: - - - Change: - Vaihtoraha: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Jos tämä aktivoidaan mutta vaihtorahan osoite on tyhjä tai virheellinen, vaihtoraha tullaan lähettämään uuteen luotuun osoitteeseen. - - - Custom change address - Kustomoitu vaihtorahan osoite - - - Transaction Fee: - Siirtomaksu: - - - Choose... - Valitse... - - - collapse fee-settings - pienennä siirtomaksu asetukset - - - Minimize - Pienennä - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Jos mukautettu siirtomaksu on asetettu 1000 duff ja siirtotapahtuma on vain 250 tavua,<br />tällöin "per kilotavu" maksaa vain 250 duffs siirtomaksun, kun taas "vähintään" maksaa 1000 duffs.<br />Siirtotapahtumat jotka ovat isompia kuin kilotavu, molemmat maksaa "per kilotavu". - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Jos mukautettu siirtomaksu on asetettu 1000 duff ja siirtotapahtuma on vain 250 tavua,<br />tällöin "per kilotavu" maksaa vain 250 duffs siirtomaksun, kun taas "yhteensä vähintään" maksaa 1000 duffs.<br />Siirtotapahtumat jotka ovat isompia kuin kilotavu, molemmat maksaa "per kilotavu". - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Minimi siirtomaksun maksaminen on ok niin kauan kun siirtotapahtumien määrä on pienempi kuin tila lohkoissa.<br />Mutta ota huomioon että tämä voi johtaa siirtotapahtumaan jota ei vahvisteta koskaan, jos siirtotapahtumia on enemmän kuin verkko voi käsitellä. - - - per kilobyte - per kilotavu - - - total at least - yhteensä vähintään - - - (read the tooltip) - (lue vinkki) - - - Recommended: - Suositeltava: - - - Custom: - Mukautettu: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Älykästä siirtomaksua ei ole alustettu vielä. Tämä kestää yleensä muutaman lohkon...) - - - Confirmation time: - Vahvistusaika: - - - normal - normaali - - - fast - nopea - - - Send as zero-fee transaction if possible - Lähetä nolla siirtomaksulla jos mahdollista - - - (confirmation may take longer) - (vahvistus voi kestää pidempään) - - - Confirm the send action - Lähetä klikkaamalla - - - S&end - &Lähetä - - - Clear all fields of the form. - Tyhjennä lomakkeen kaikki kentät. - - - Clear &All - T&yhjennä Kaikki - - - Send to multiple recipients at once - Lähetä usealle vastaanottajalle samanaikaisesti - - - Add &Recipient - Lisää &Vastaanottaja - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Kopioi määrä - - - Copy amount - Kopioi määrä - - - Copy fee - Kopioi siirtomaksu - - - Copy after fee - Kopioi siirtomaksun jälkeen - - - Copy bytes - Kopioi tavut - - - Copy priority - Kopioi prioriteetti - - - Copy dust - Kopioi tomu - - - Copy change - Kopioi vaihtoraha - - - using - käyttäen - - - anonymous funds - anonymisoituja varoja - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend pyöristää tämän lähimpään %1). - - - any available funds (not recommended) - kaikkia käytössä olevia varoja (ei suositeltu) - - - and InstantX - ja InstantX - - - %1 to %2 - %1 -> %2 - - - Are you sure you want to send? - Haluatko varmasti lähettää? - - - are added as transaction fee - lisätty siirtomaksuna - - - Total Amount = <b>%1</b><br />= %2 - Määrä yhteensä = <b>%1</b><br />= %2 - - - Confirm send coins - Hyväksy lähettäminen - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Siirtomaksu %1 kertaa korkeampi kuin %2 per kB on erittäin korkea siirtomaksu. - - - Estimated to begin confirmation within %n block(s). - Arvioitu vahvistuksen aloitus %n lohkon kuluessa.Arvioitu vahvistuksen aloitus %n lohkon kuluessa. - - - The recipient address is not valid, please recheck. - Vastaanottajan osoite on virheellinen, tarkista osoite. - - - <b>(%1 of %2 entries displayed)</b> - <b>(Näytetään %1 / %2 merkintää)</b> - - - The amount to pay must be larger than 0. - Maksettavan summan tulee olla suurempi kuin 0. - - - The amount exceeds your balance. - Määrä ylittää käytettävissä olevan saldon. - - - The total exceeds your balance when the %1 transaction fee is included. - Summa yhteensä ylittää saldosi kun siihen lisätään siirtomaksu %1. - - - Duplicate address found, can only send to each address once per send operation. - Sama osoite toistuu useamman kerran, samaan osoitteeseen voi lähettää vain kerran per maksutapahtuma. - - - Transaction creation failed! - Siirtotapahtuman luonti epäonnistui! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Siirtotapahtuma hylättiin! Tämä saattaa tapahtua jos lompakossa olevat varat on jo kulutettu, kuten jos käytät kopiota wallet.dat tiedostosta ja varat oli jo käytetty mutta ei merkattu täällä. - - - Error: The wallet was unlocked only to anonymize coins. - Virhe: Lompakko on avattu vain anonymisointia varten. - - - Pay only the minimum fee of %1 - Maksa vain minimi siirtomaksu %1 - - - Warning: Invalid Dash address - Varoitus: Virheellinen Dash osoite - - - Warning: Unknown change address - Varoitus: Tuntematon vaihtorahan osoite - - - (no label) - (ei nimeä) - - - - SendCoinsEntry - - This is a normal payment. - Tämä on normaali maksu. - - - Pay &To: - Maksun &saaja: - - - The Dash address to send the payment to - Dash osoite johon maksu lähetetään - - - Choose previously used address - Valitse aikaisemmin käytetty osoite - - - Alt+A - Alt+A - - - Paste address from clipboard - Liitä osoite leikepöydältä - - - Alt+P - Alt+P - - - Remove this entry - Poista tämä alkio - - - &Label: - &Nimi: - - - Enter a label for this address to add it to the list of used addresses - Aseta nimi tälle osoitteelle lisätäksesi sen käytettyjen osoitteiden listalle. - - - A&mount: - &Määrä: - - - Message: - Viesti: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Viesti joka liitettiin Dash: URI joka talletetaan siirtotapahtuman kanssa viitteeksi sinulle. Huomio: Tätä viestiä ei lähetetä Dash verkkoon. - - - This is an unverified payment request. - Tämä on vahvistamaton maksupyyntö - - - Pay To: - Saaja: - - - Memo: - Muistio: - - - This is a verified payment request. - Tämä on vahvistettu maksupyyntö. - - - Enter a label for this address to add it to your address book - Anna nimi tälle osoitteelle, jos haluat lisätä sen osoitekirjaan - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core sulkeutuu... - - - Do not shut down the computer until this window disappears. - Älä sammuta tietokonetta ennen kuin tämä ikkuna katoaa. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Allekirjoitukset - Allekirjoita / Tarkista viesti - - - &Sign Message - &Allekirjoita viesti - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Voit allekirjoittaa viestit omilla osoitteillasi todistaaksesi että omistat ne. Ole huolellinen että et allekirjoita mitään epämääräistä, phishing-hyökkäjä voi huijata sinua allekirjoittamaan henkilöllisyytesi omasta puolestaan. Allekirjoita vain yksityiskohtaisesti täytetty selvitys johon sitoudut. - - - The Dash address to sign the message with - Dash osoite jolla viesti allekirjoitetaan - - - Choose previously used address - Valitse aikaisemmin käytetty osoite - - - Alt+A - Alt+A - - - Paste address from clipboard - Liitä osoite leikepöydältä - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Kirjoita tähän viesti jonka haluat allekirjoittaa - - - Signature - Allekirjoitus - - - Copy the current signature to the system clipboard - Kopioi tämän hetkinen allekirjoitus leikepöydälle - - - Sign the message to prove you own this Dash address - Allekirjoita viesti todistaaksesi että omistat tämän Dash osoitteen - - - Sign &Message - Allekirjoita &Viesti - - - Reset all sign message fields - Tyhjennä kaikki kentät - - - Clear &All - T&yhjennä Kaikki - - - &Verify Message - &Tarkista viesti - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Syötä allekirjoittava osoite, viesti ja allekirjoitus alla oleviin kenttiin varmistaaksesi allekirjoituksen aitouden. Varmista että kopioit kaikki kentät täsmälleen oikein, myös rivinvaihdot, välilyönnit, tabulaattorit, jne. - - - The Dash address the message was signed with - Dash osoite jolla viesti on allekirjoitettu - - - Verify the message to ensure it was signed with the specified Dash address - Tarkista että viesti on allekirjoitettu määritetyllä Dash osoitteella - - - Verify &Message - Tarkista &Viesti... - - - Reset all verify message fields - Tyhjennä kaikki kentät - - - Click "Sign Message" to generate signature - Klikkaa "Allekirjoita Viesti" luodaksesi allekirjoituksen - - - The entered address is invalid. - Syötetty osoite on virheellinen. - - - Please check the address and try again. - Tarkista osoite ja yritä uudelleen. - - - The entered address does not refer to a key. - Syötetyn osoitteen avainta ei löydy. - - - Wallet unlock was cancelled. - Lompakon avaaminen peruttiin. - - - Private key for the entered address is not available. - Yksityistä avainta syötetylle osoitteelle ei ole saatavilla. - - - Message signing failed. - Viestin allekirjoitus epäonnistui. - - - Message signed. - Viesti allekirjoitettu. - - - The signature could not be decoded. - Allekirjoitusta ei pystytty tulkitsemaan. - - - Please check the signature and try again. - Tarkista allekirjoitus ja yritä uudelleen. - - - The signature did not match the message digest. - Allekirjoitus ei täsmää viestin tiivisteeseen. - - - Message verification failed. - Viestin tarkistus epäonnistui. - - - Message verified. - Viesti tarkistettu. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Versio %1 - - - The Bitcoin Core developers - Bitcoin Core kehittäjät - - - The Dash Core developers - Dash Core kehittäjät - - - [testnet] - [testiverkko] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Avoinna %n lisälohkolleAvoinna %n lisälohkolle - - - Open until %1 - Avoinna %1 asti - - - conflicted - ristiriitainen - - - %1/offline (verified via instantx) - %1/ei yhteyttä (vahvistettu instantx:lla) - - - %1/confirmed (verified via instantx) - %1/vahvistettu (vahvistettu instantx:lla) - - - %1 confirmations (verified via instantx) - %1 vahvistusta (vahvistettu instantx:lla) - - - %1/offline - %1/ei yhteyttä - - - %1/unconfirmed - %1/vahvistamaton - - - %1 confirmations - %1 vahvistusta - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/ei yhteyttä (vahvistus instantx:lla käynnissä - %2 / %3 allekirjoitusta) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/vahvistettu (vahvistus instantx:lla käynnissä - %2 / %3 allekirjoitusta) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 vahvistusta (vahvistus instantx:lla käynnissä - %2 / %3 allekirjoitusta) - - - %1/offline (InstantX verification failed) - %1/ei yhteyttä (instantx vahvistus epäonnistui) - - - %1/confirmed (InstantX verification failed) - %1/vahvistettu (instantx vahvistus epäonnistui) - - - Status - Tila - - - , has not been successfully broadcast yet - , lähetys ei ole vielä onnistunut - - - , broadcast through %n node(s) - , lähetys %n solmun läpi, lähetys %n solmun läpi - - - Date - Päivämäärä - - - Source - Lähde - - - Generated - Luotu - - - From - Lähettäjä - - - unknown - tuntematon - - - To - Saaja - - - own address - oma osoite - - - watch-only - vain-luku - - - label - nimi - - - Credit - Suoritus - - - matures in %n more block(s) - kypsyy %n lohkon kuluttuakypsyy %n lohkon kuluttua - - - not accepted - ei hyväksytty - - - Debit - Veloitus - - - Total debit - Veloitus yhteensä - - - Total credit - Suoritus yhteensä - - - Transaction fee - Siirtomaksu - - - Net amount - Nettosumma - - - Message - Viesti - - - Comment - Kommentti - - - Transaction ID - Siirtotunnus - - - Merchant - Kauppias - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Luodut (louhitut) varat täytyy kypsyä %1 lohkon ajan kunnes ne voidaan käyttää. Kun generoit tämän lohkon, se lähetettiin verkkoon lohkoketjuun. Jos se epäonnistuu pääsemään lohkoketjuun sen tila tulee muuttumaan "ei hyväksytty" ja sitä ei voida käyttää. Näin voi ajoittain tapahtua kun toisen solmun lohko luodaan samanaikaisesti omasi kanssa. - - - Debug information - Debug tiedot - - - Transaction - Siirtotapahtuma - - - Inputs - Sisääntulot - - - Amount - Määrä - - - true - tosi - - - false - epätosi - - - - TransactionDescDialog - - Transaction details - Siirtotapahtuman yksityiskohdat - - - This pane shows a detailed description of the transaction - Tämä ruutu näyttää yksityiskohtaisen tiedon siirtotapahtumasta - - - - TransactionTableModel - - Date - Päivämäärä - - - Type - Tyyppi - - - Address - Osoite - - - Open for %n more block(s) - Avoinna %n lisälohkolleAvoinna %n lisälohkolle - - - Open until %1 - Avoinna %1 asti - - - Offline - Ei yhteyttä - - - Unconfirmed - Vahvistamaton - - - Confirming (%1 of %2 recommended confirmations) - Vahvistetaan (%1 / %2 vahvistusta) - - - Confirmed (%1 confirmations) - Vahvistettu (%1 vahvistusta) - - - Conflicted - Ristiriitainen - - - Immature (%1 confirmations, will be available after %2) - Epäkypsä (%1 vahvistusta, saatavilla %2 jälkeen) - - - This block was not received by any other nodes and will probably not be accepted! - Tätä lohkoa ei vastaanotettu mistään muusta solmusta ja sitä ei mahdollisesti hyväksytä! - - - Generated but not accepted - Luotu mutta ei hyväksytty - - - Received with - Vastaanotettu osoitteeseen - - - Received from - Vastaanotettu osoitteesta - - - Received via Darksend - Darksend vastaanotettu - - - Sent to - Lähetetty osoitteeseen - - - Payment to yourself - Maksu itsellesi - - - Mined - Louhittu - - - Darksend Denominate - Darksend denominointi - - - Darksend Collateral Payment - Darksend vakuus maksu - - - Darksend Make Collateral Inputs - Darksend luo vakuus syötteet - - - Darksend Create Denominations - Darksend denominointien luonti - - - Darksent - Darksend lähetetty - - - watch-only - vain-luku - - - (n/a) - (e/s) - - - Transaction status. Hover over this field to show number of confirmations. - Siirtotapahtuman tila. Siirrä osoitin kentän päälle nähdäksesi vahvistusten lukumäärä. - - - Date and time that the transaction was received. - Siirtotapahtuman päivämäärä ja aika. - - - Type of transaction. - Siirtotapahtuman tyyppi. - - - Whether or not a watch-only address is involved in this transaction. - Käytetäänkö vai ei lue-vain osoitetta tässä tapahtumassa. - - - Destination address of transaction. - Siirtotapahtuman Dash kohdeosoite - - - Amount removed from or added to balance. - Vähennetty tai lisätty määrä saldoon. - - - - TransactionView - - All - Kaikki - - - Today - Tänään - - - This week - Tällä viikolla - - - This month - Tässä kuussa - - - Last month - Viime kuussa - - - This year - Tänä vuonna - - - Range... - Alue... - - - Most Common - Yleiset - - - Received with - Vastaanotettu - - - Sent to - Lähetetty - - - Darksent - Darksend lähetetty - - - Darksend Make Collateral Inputs - Darksend luo vakuus syötteet - - - Darksend Create Denominations - Darksend denominointien luonti - - - Darksend Denominate - Darksend denominointi - - - Darksend Collateral Payment - Darksend vakuus maksu - - - To yourself - Itsellesi - - - Mined - Louhittu - - - Other - Muu - - - Enter address or label to search - Anna etsittävä osoite tai tunniste - - - Min amount - Minimimäärä - - - Copy address - Kopioi osoite - - - Copy label - Kopioi nimi - - - Copy amount - Kopioi määrä - - - Copy transaction ID - Kopioi siirtotunnus - - - Edit label - Muokkaa nimeä - - - Show transaction details - Näytä siirtotapahtuman yksityiskohdat - - - Export Transaction History - Vie siirtotapahtumien historia - - - Comma separated file (*.csv) - Pilkuilla eritelty tiedosto (*.csv) - - - Confirmed - Vahvistettu - - - Watch-only - Vain-luku - - - Date - Päivämäärä - - - Type - Tyyppi - - - Label - Nimi - - - Address - Osoite - - - ID - ID - - - Exporting Failed - Vienti epäonnistui - - - There was an error trying to save the transaction history to %1. - Siirtotapahtumien historian tallentamisessa tapahtui virhe paikkaan %1. - - - Exporting Successful - Vienti onnistui - - - The transaction history was successfully saved to %1. - Siirtotapahtumien historia tallennettiin onnistuneesti paikkaan %1. - - - Range: - Alue: - - - to - -> - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Yksikkö jona summat näytetään. Klikkaa valitaksesi yksikön. - - - - WalletFrame - - No wallet has been loaded. - Lomakkoa ei ole ladattu. - - - - WalletModel - - Send Coins - Lähetä Dasheja - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX ei tue näin korkeaa lähetysmäärää vielä. Siirtotapahtumat on tällä hetkellä rajoitettu %1 DASH. - - - - WalletView - - &Export - &Vie... - - - Export the data in the current tab to a file - Vie tällä hetkellä valitun välilehden tiedot tiedostoon - - - Selected amount: - Valittu määrä: - - - Backup Wallet - Varmuuskopioi lompakko - - - Wallet Data (*.dat) - Lompakkodata (*.dat) - - - Backup Failed - Varmuuskopiointi epäonnistui - - - There was an error trying to save the wallet data to %1. - Lompakon tallennuksessa tapahtui virhe %1. - - - Backup Successful - Varmuuskopiointi onnistui - - - The wallet data was successfully saved to %1. - Lompakko tallennettiin onnistuneesti tiedostoon %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Kytkeydy annettuun osoitteeseen ja pidä linja aina auki. Käytä [host]:port merkintätapaa IPv6:lle. - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Ei voida lukita data hakemistoa %s. Dash Core on luultavasti jo käynnissä. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend käyttää tarkalleen denominoituja syötteitä lähettäessään varoja, saatat tarvita anonymisoida lisää varoja. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Aloita regressio testimoodi joka käyttää erikoisketjua jossa lohkoja voidaan ratkaista välittömästi. - - - Error: Listening for incoming connections failed (listen returned error %s) - Virhe: Sisääntulevien yhteyksien kuuntelu epäonnistui (kuuntelu palautti virheen %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Aja komento kun olennainen hälytys vastaanotetaan tai nähdään todella pitkä haara (%s cmd korvataan viestillä) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Suorita käsky kun lompakon siirtotapahtuma muuttuu (%s cmd on vaihdettu TxID kanssa) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Suorita käsky kun paras lohko muuttuu (%s cmd on korvattu lohko tarkisteella) - - - In this mode -genproclimit controls how many blocks are generated immediately. - Tässä moodissa -genproclimit ohjaa kuinka monta lohkoa luodaan välittömästi. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX vaatii syötteille vähintään 6 vahvistusta, odota muutama minuutti ja yritä uudelleen. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Rakenne url nimi KeePass merkinnälle joka talentaa lompakon salasanan - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Tiedustele vertaisverkon osoitteita DNS hakua käyttäen jos osoitteita ei ole riittävästi (oletus: 1 paitsi jos -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Aseta maksimikoko korkea prioriteetti/pienen siirtomaksun siirtotapahtumiin tavuissa (oletus: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Aseta script vahvistuksen säikeiden määrä (%u - %d, 0= auto, <0 = jätä näin monta prosessorin ydintä vapaaksi, oletus: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Tämä on esi-julkaistu testiversio - Käytä omalla vastuulla - Älä käytä louhimiseen tai kauppasovelluksiin. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Ei voida yhdistää %s tässä tietokoneessa. Dash Core on luultavasti jo käynnissä. - - - Unable to locate enough Darksend denominated funds for this transaction. - Ei tarpeeksi Darksend anonymisoituja varoja tälle siirtotapahtumalle. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Ei tarpeeksi Darksend ei-anonymisoituja varoja tälle siirtotapahtumalle, joka ei ole 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Varoitus: Siirtomaksu on asetettu erittäin korkeaksi! Tämä on siirtomaksu jonka tulet maksamaan kun lähetät siirron. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Varoitus: Dash verkossa on ristiriitoja! Louhijat näyttävät kokevan virhetilanteita. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Varoitus: Olemme vertaisverkon kanssa ristiriidassa! Sinun ja/tai solmujen tulee päivitää uusimpaan versioon. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Varoitus: Virhe luettaessa wallet.dat lompakkotiedostoa. Kaikki avaimet luettiin onnistuneesti, mutta siirtohistorian tai osoitekirjan merkinnät saattavat olla kadonneet tai virheellisiä. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Varoitus: Wallet.dat lompakkotiedosto on vioittunut, tiedot pelastettu. Alkuperäinen wallet.dat lompakkotiedosto on tallennettu wallet.{timestamp}.bak kansioon %s, jos saldosi tai siirtohistoria on virheellinen, sinun tulisi palauttaa lompakkotiedosto varmuuskopiosta. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Sinun täytyy määritellä masternodeprivkey asetustiedostoon. Katso lisätietoja dokumentaatiosta. - - - (default: 1) - (oletus: 1) - - - Accept command line and JSON-RPC commands - Hyväksy merkkipohjaiset ja JSON-RPC käskyt - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Hyväksy yhteyksiä ulkopuolelta (oletus: 1 jos -proxy tai -connect ei ole määritelty) - - - Add a node to connect to and attempt to keep the connection open - Lisää solmu mihin liittyä pitääksesi yhteyden auki - - - Allow DNS lookups for -addnode, -seednode and -connect - Salli DNS kyselyt -addnode, -seednode ja -connect yhteydessä - - - Already have that input. - Syöte on jo olemassa. - - - Attempt to recover private keys from a corrupt wallet.dat - Yritetään palauttaa yksityisiä avaimia vioittuneesta wallet.dat lompakkotiedostosta - - - Block creation options: - Lohkon luonnin asetukset: - - - Can't denominate: no compatible inputs left. - Ei voida denominoida: yhteensopivia syötteitä ei ole jäljellä. - - - Cannot downgrade wallet - Et voi päivittää lompakkoasi vanhempaan versioon - - - Cannot resolve -bind address: '%s' - -bind osoitteen '%s' selvittäminen epäonnistui - - - Cannot resolve -externalip address: '%s' - -externalip osoitteen '%s' selvittäminen epäonnistui - - - Cannot write default address - Oletusosoitetta ei voi kirjoittaa - - - Collateral not valid. - Vakuus ei ole pätevä. - - - Connect only to the specified node(s) - Yhdistä ainoastaan määriteltyihin solmuihin - - - Connect to a node to retrieve peer addresses, and disconnect - Yhdistä solmuun hakeaksesi peers osoitteet ja katkaise yhteys - - - Connection options: - Yhteyden valinnat: - - - Corrupted block database detected - Vioittunut lohkotietokanta havaittu - - - Darksend options: - Darksend valinnat: - - - Debugging/Testing options: - Debuggaus/Testauksen valinnat: - - - Discover own IP address (default: 1 when listening and no -externalip) - Hae oma IP osoite (oletus: 1 kun kuunnellaan ja ei -externalip) - - - Do not load the wallet and disable wallet RPC calls - Älä lataa lompakkoa ja poista käytöstä lompakon RPC kutsut - - - Do you want to rebuild the block database now? - Haluatko uudelleenrakentaa lohkotietokannan nyt? - - - Done loading - Lataus on valmis - - - Entries are full. - Merkinnät on täynnä. - - - Error initializing block database - Virhe lohkotietokannan alustuksessa - - - Error initializing wallet database environment %s! - Virhe lompakon tietokantaympäristön alustuksessa %s! - - - Error loading block database - Virhe lohkotietokannan latauksessa - - - Error loading wallet.dat - Virhe ladattaessa wallet.dat tiedostoa - - - Error loading wallet.dat: Wallet corrupted - Virhe ladattaessa wallet.dat tiedostoa: Lompakko vioittunut - - - Error opening block database - Virhe lohkotietokannan avauksessa - - - Error reading from database, shutting down. - Virhe luettaessa tietokantaa, ohjelma suljetaan. - - - Error recovering public key. - Virhe yleisen avaimen palautuksessa. - - - Error - Virhe - - - Error: Disk space is low! - Virhe: Levytila on alhainen! - - - Error: Wallet locked, unable to create transaction! - Virhe: Lompakko on lukittu, siirtotapahtumaa ei voida luoda! - - - Error: You already have pending entries in the Darksend pool - Virhe: Sinulla on jo odottavia merkintöjä Darksend varannossa - - - Failed to listen on any port. Use -listen=0 if you want this. - Ei onnistuttu kuuntelemaan mitään porttia. Käytä -listen=0 jos haluat tätä. - - - Failed to read block - Lohkon luku epäonnistui - - - If <category> is not supplied, output all debugging information. - Jos <kategoria> ei ole toimitettu, tulosta kaikki debuggaustieto. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = pidä tx meta data esim. tilin omistaja ja maksupyyntö tiedot, 2 = poista tx meta data) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Salli JSON-RPC yhteydet määritetystä lähteestä. Pätee <ip> yksittäiseen IP:n (esim. 1.2.3.4), verkko/verkkomaski (esim. 1.2.3.4/255.255.255.0) tai verkko/CIDR (esim. 1.2.3.4/24). Tämä asetus voidaan määrittää useita kertoja. - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Virhe asetettaessa RPC osoitetta %s portissa %u kuuntelemaan: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Kytkeydy annettuun osoitteeseen ja merkitse siihen kytkeytyvät peers:it luotettaviksi. Käytä [host]:port merkintätapaa IPv6:lle. - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Kytkeydy annettuun osoitteeseen kuunnellaksesi JSON-RPC yhteyksiä. Käytä [host]:port merkintätapaa IPv6:lle. Tämä asetus voidaan määrittää useita kertoja (oletus: kytkeydy kaikkiin rajapintoihin) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Vaihda automaattisesti viimeistellyn budjetin äänestyskäyttäytyminen. mode=auto: Äänestä vain tarkkaan viimeisteltyä budjettia joka täsmää itse tekemääni budjettiin. (string, oletus: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Rajoita jatkuvasti yhtäaikaiset ilmaiset siirtotapahtumat <n>*1000 tavuun per minuutti (oletus: %u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Luo uudet tiedostot järjestelmän oletus oikeuksilla, paitsi umask 077 (voimassa vain käytöstä poistettujen lompakon toimintojen kanssa) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Poista kaikki lompakon siirtotapahtumat ja palauta vain nuo osat lohkoketjusta -rescan valinnan avulla käynnistyksessä - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Kytke pois käytöstä kaikki Dash:in erityistoiminnot (Masternodet, Darksend, InstantX, Budjetointi) (0-1, oletus: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Levitetään MIT ohjelmistolisenssin alaisuudessa. Tarkemmat tiedot löytyvät tiedostosta COPYING tai osoitteesta <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Ota instantx käyttöön, näytä lukittujen siirtojen vahvistukset (bool, oletus: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Ota käyttöön automaattinen Darksend rahavaroille tässä lompakossa (0-1, oletus: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Virhe: Ei tuettu argumentti -socks. SOCKS version asettaminen ei ole enää mahdollista, vain SOCKS5 proxyt ovat tuettuja. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Siirtomaksut (DASH/Kb) jotka ovat pienempiä kuin tämä, tulkitaan nollamaksuksi välityksessä (oletus: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Siirtomaksut (DASH/Kb) jotka ovat pienempiä kuin tämä, tulkitaan nollamaksuksi siirtotapahtuman luonnissa (oletus: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Aja tietokannan tapahtumat muistivarannosta kovalevylogiin joka <n> megatavu (oletus: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Löytyi vahvistamattomia syötteitä, odotetaan että ne vahvistetaan. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Kuinka vaativa lohkon vahvistus -checkblocks on (0-4, oletus: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Jos paytxfee ei ole asetettu, sisällytä tarpeeksi siirtomaksua jotta siirtotapahtuman vahvistus alkaa keskimäärin lohkon aikana (oletus: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Virheellinen määrä -maxtxfee=<amount>: '%s' (oltava vähintään minimi välitysmaksun verran %s:sta välttääksesi jumissa olevia siirtotapahtumia) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Kirjaa siirtotapahtuman prioriteetti ja siirtomaksu per kB kun louhitaan lohkoja (oletus: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Ylläpidä täyttä siirtotapahtumien indeksiä, jota käyttää getrawtransaction rpc kutsu (oletus: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Maksimi koko datalle datan kuljetustapahtumissa jotka välitämme ja louhimme (oletus: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Yksittäisen siirtotapahtuman maksimi siirtomaksu, jos tämä asetetaan liian matalaksi, se voi keskeyttää isot siirtotapahtumat (oletus: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Sekuntien määrä, kuinka kauan estetään huonosti käyttäytyviä peers:ejä uudelleen kytkeytymästä (oletus: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Tulosta debuggaustieto (oletus: %u, tarjottava <category> on valinnainen) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Tarjoa Darksend:ille likviditeettiä jatkuvaa kolikoiden sekoitusta varten (0-100, oletus: %u, 1=usein, isot maksukulut, 100=harvoin, pienet maksukulut) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Vaadi korkea prioriteetti välitettäville ilmaisille tai matalan siirtomaksun siirtotapahtumille (oletus: %u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Lähetä jäljitys/debug tiedot konsoliin debug.log tiedoston sijaan (default: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Aseta prosessorin ytimien määrä louhintaan, jos päällä (-1 = kaikki ytimet, oletus: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Näytä N vahvistusta onnistuneesti lukitulle siirtotapahtumalle (0-9999, oletus: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Tämä ohjelma sisältää OpenSSL projektin OpenSSL työkalupakin <https://www.openssl.org/> sekä Eric Youngin kehittämän salausohjelmiston ja Thomas Bernardin kehittämän UPnP ohjelmiston. - -Käännös päivitetty: 1.9.2015 by AjM. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Käyttääksesi dashd:ia tai -server valintaa dash-qt:lle, sinun tulee asettaa rpc salasana asetustiedostossa: -%s -Suositellaan että käytät allaolevaa satunnaista salasanaa: -rpcuser=dashrpc -rpcpassword=%s -(sinun ei tarvitse muistaa tätä salasanaa) -Käyttäjätunnus ja salasana on oltava ERILAISET. -Jos tiedostoa ei ole, luo se vain omistajan-luku-oikeudella. -Suositellaan asetettavaksi alertnotify jotta saat tietoa ongelmista, -esimerkiksi: alertnotify=echo %%s | mail -s "Dash Hälytys" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Ei tarpeeksi varoja tälle siirtotapahtumalle, joka ei ole 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Käytä erillistä SOCKS5 proxya tavoittaaksesi peers:it Tor piilotetun palvelun kautta (oletus: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Varoitus: -maxtxfee on asetettu erittäin korkeaksi! Näin isot siirtomaksut voitaisiin maksaa yhdessä siirtotapahtumassa. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Varoitus: Tarkista että tietokoneesi kellonaika ja päivämäärä ovat oikein! Dash ei toimi oikein väärällä päivämäärällä ja/tai kellonajalla. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Merkitse solmut luotettaviksi jotka kytkeytyvät annetusta verkkomaskista tai IP osoitteesta. Voidaan määrittää useita kertoja. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Luotettaviksi merkittyjä peers:ejä ei voida DoS estää, ja niiden siirtotapahtumat välitetään aina, vaikka ne olisvatkin jo muistivarannossa, käyttökelpoinen esim. yhdyskäytävään - - - (9999 could be used only on mainnet) - (9999 voidaan käyttää vain pääverkossa) - - - (default: %s) - (oletus: %s) - - - <category> can be: - - <category> voi olla: - - - - Accept public REST requests (default: %u) - Hyväksy julkiset REST pyynnöt (oletus: %u) - - - Acceptable ciphers (default: %s) - Hyväksyttävät salaukset (oletus: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Tiedustele aina peers osoitteita DNS hakua käyttäen (oletus: %u) - - - Cannot resolve -whitebind address: '%s' - Ei voida selvittää -whitebind osoitetta: '%s' - - - Connect through SOCKS5 proxy - Yhdistä SOCKS5 proxyn kautta - - - Connect to KeePassHttp on port <port> (default: %u) - Yhdistä KeePassHttp porttiin <port> (oletus: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i Bitcoin Core Kehittäjät - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i Dash Core Kehittäjät - - - Could not parse -rpcbind value %s as network address - Ei voida jäsentää -rpcbind arvoa %s verkko-osoitteena - - - Darksend is idle. - Darksend odottaa. - - - Darksend request complete: - Darksend pyyntö valmis: - - - Darksend request incomplete: - Darksend pyyntö kesken: - - - Disable safemode, override a real safe mode event (default: %u) - Poista turvatila käytöstä, ohita todellinen turvatila tapahtuma (oletus: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Aktivoi asiakasohjelman käyttö masternode:na (0-1, oletus: %u) - - - Error connecting to Masternode. - Virhe masternode:en kytkeytymisessä. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Virhe ladattaessa wallet.dat: Lompakko vaatii uudemman version Dash Core:sta - - - Error: A fatal internal error occured, see debug.log for details - Virhe: Vakava sisäinen virhe, katso debug.log saadaksesi lisätietoja - - - Error: Can't select current denominated inputs - Virhe: Ei voida valita nykyisiä denominoituja syötteitä - - - Error: Unsupported argument -tor found, use -onion. - Virhe: Ei tuettu argumentti -tor löytyi, käytä -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Lisättävä siirtomaksu (DASH/Kb) siirtotapahtumaan jonka lähetät (oletus: %s) - - - Finalizing transaction. - Viimeistellään siirtotapahtuma. - - - Force safe mode (default: %u) - Pakota turvatila (oletus: %u) - - - Found enough users, signing ( waiting %s ) - Löytyi tarpeeksi käyttäjiä, kirjaudutaan ( odotetaan %s ) - - - Found enough users, signing ... - Löytyi tarpeeksi käyttäjiä, kirjaudutaan ... - - - Generate coins (default: %u) - Louhi kolikoita (oletus: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Kuinka monta lohkoa tarkistetaan käynnistyksessä (oletus: %u, 0 = kaikki) - - - Importing... - Tuodaan... - - - Imports blocks from external blk000??.dat file - Tuodaan lohkoja ulkoisesta blk000??.dat tiedostosta - - - Include IP addresses in debug output (default: %u) - Sisällytä IP osoitteet virhelogiin (oletus: %u) - - - Incompatible mode. - Yhteensopimaton tila. - - - Incompatible version. - Yhteensopimaton versio. - - - Incorrect or no genesis block found. Wrong datadir for network? - Väärä tai ei alkuperäinen lohko löydetty. Väärä data hakemisto verkolle? - - - Information - Tietoa - - - Initialization sanity check failed. Dash Core is shutting down. - Alkuperäisyyden tarkistus epäonnistui. Dash Core sulkeutuu. - - - Input is not valid. - Syöte ei ole pätevä. - - - InstantX options: - InstantX valinnat: - - - Insufficient funds. - Saldo ei riitä. - - - Invalid -onion address: '%s' - Virheellinen -onion osoite: '%s' - - - Invalid -proxy address: '%s' - Virheellinen proxyn osoite '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Virheellinen määrä -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Virheellinen määrä -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Virheellinen määrä -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Virheellinen määrä -maxtxfee=<amount>: '%s' (oltava vähintään %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Virheellinen määrä -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - Viimeinen onnistunut Darksend tapahtuma oli liian äskettäin. - - - Limit size of signature cache to <n> entries (default: %u) - Rajoita allekirjoitusien välimuisti <n> merkintään (oletus: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Kuuntele JSON-RPC yhteyksiä portissa <port> (oletus: %u tai testiverkossa: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Kuuntele yhteyksiä portissa <port> (oletus: %u tai testiverkossa: %u) - - - Loading budget cache... - Ladataan budjetti välimuistia... - - - Loading masternode cache... - Ladataan masternode välimuistia... - - - Loading masternode payment cache... - Ladataan masternode maksuvälimuistia... - - - Lock is already in place. - On jo lukittu. - - - Lock masternodes from masternode configuration file (default: %u) - Lukitse masternodet niiden asetustiedoston kautta (oletus: %u) - - - Maintain at most <n> connections to peers (default: %u) - Ylläpidä enintään <n> peers yhteyttä (oletus: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Maksimi per yhteys vastaanotto puskuri, <n>*1000 tavua (oletus: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Maksimi per yhteys lähetys puskuri, <n>*1000 tavua (oletus: %u) - - - Mixing in progress... - Sekoitus käynnissä... - - - Need to specify a port with -whitebind: '%s' - Tarvitaan määritellä portti -whitebind: '%s' - - - No Masternodes detected. - Masternodeja ei havaittu. - - - No compatible Masternode found. - Yhteensopivaa Masternodea ei löytynyt. - - - Not in the Masternode list. - Ei ole Masternode listassa. - - - Number of automatic wallet backups (default: 10) - Automaattisten lompakon varmistuksien määrä (oletus: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Hyväksy vain lohkoketju joka täsmää tarkistuspisteisiin (oletus: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Kytkeydy verkon solmuihin vain <net> (ipv4, ipv6 tai onion) - - - Prepend debug output with timestamp (default: %u) - Lisää debug lokitiedoston merkinnän alkuun pvm/aika (oletus: %u) - - - Run a thread to flush wallet periodically (default: %u) - Aja säie joka säännöllisesti tallettaa lompakon (oletus: %u) - - - Send trace/debug info to debug.log file (default: %u) - Lähetä jäljitys/debug tiedot debug.log tiedostoon (default: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Lähetä siirtotapahtumat nolla siirtomaksulla jos mahdollista (oletus: %u) - - - Server certificate file (default: %s) - Serverin sertifikaatti tiedosto (oletus: %s) - - - Server private key (default: %s) - Serverin yksityisavain (oletus: %s) - - - Set external address:port to get to this masternode (example: %s) - Aseta ulkoinen osoite:portti tälle masternodelle (esim: %s) - - - Set key pool size to <n> (default: %u) - Aseta avainvarannon koko <n> (oletus: %u) - - - Set minimum block size in bytes (default: %u) - Aseta minimi lohkon koko tavuina (oletus: %u) - - - Set the number of threads to service RPC calls (default: %d) - Aseta säikeiden lukumäärä RPC kutsuille (oletus: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Asettaa DB_PRIVATE lipun lompakon tietokantaympäristössä (oletus: %u) - - - Signing timed out. - Allekirjoitus aikaraja. - - - Specify configuration file (default: %s) - Määritä asetustiedosto (oletus: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Määritä yhteyden aikakatkaisu millisekunneissa (minimi: 1, oletus: %d) - - - Specify masternode configuration file (default: %s) - Määritä masternoden asetustiedosto (oletus: %s) - - - Specify pid file (default: %s) - Määritä pid tiedosto (oletus: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Käytä vahvistamattomia vaihtorahoja lähetettäessä siirtotapahtumia (oletus: %u) - - - Stop running after importing blocks from disk (default: %u) - Keskeytä kun kaikki lohkot tuotu levyltä (oletus: %u) - - - Submitted following entries to masternode: %u / %d - Esitetty seuraavat merkinnät masternodelle: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Esitetty masternodelle, odotetaan lisää merkintöjä ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Esitetty masternodelle, odotetaan jonossa %s - - - Synchronization failed - Synkronointi epäonnistui - - - Synchronization finished - Synkronointi valmis - - - Synchronizing budgets... - Synkronoidaan budjetit... - - - Synchronizing masternode winners... - Synkronoidaan masternode voittajat... - - - Synchronizing masternodes... - Synkronoidaan masternodet... - - - Synchronizing sporks... - Synkronoidaan sporkit... - - - This is not a Masternode. - Tämä ei ole Masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Yhteyden kynnysaika huonosti käyttäyville peers:lle (oletus: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Käytä KeePass 2 integraatiota käyttäen KeePassHttp liitännäistä (oletus: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Käytä N erillistä masternodea varojen anonymisointiin (2-8, oletus: %u) - - - Use UPnP to map the listening port (default: %u) - Käytä UPnP:tä kuunneltavan portin kartoitukseen (oletus: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Lompakko on kirjoitettava uudelleen: käynnistä Dash Core uudestaan viimeistelyä varten - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Varoitus: Ei tuettu argumentti -benchmark jätetty huomiotta, käytä -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Varoitus: Ei tuettu argumentti -debugnet jätetty huomiotta, käytä -debug=net. - - - Will retry... - Yritetään uudelleen... - - - Invalid masternodeprivkey. Please see documenation. - Virheellinen masternoden yksityisavain (masternodeprivkey). Katso lisätietoja dokumentaatiosta. - - - (must be 9999 for mainnet) - (oltava 9999 pääverkossa) - - - Can't find random Masternode. - Satunnaista Masternodea ei löydy. - - - Can't mix while sync in progress. - Ei voida sekoittaa synkronoinnin aikana. - - - Could not parse masternode.conf - Ei voitu jäsentää masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Virheellinen verkkomaski määritelty -whitelist: '%s' - - - Invalid port detected in masternode.conf - Virheellinen portti löytyi masternode.conf :sta - - - Invalid private key. - Virheellinen yksityisavain. - - - Invalid script detected. - Virheellinen scripti havaittu. - - - KeePassHttp id for the established association - KeePassHttp tunnus (id) yhdistymiseen - - - KeePassHttp key for AES encrypted communication with KeePass - KeePassHttp avain AES salattuun viestintään - - - Keep N DASH anonymized (default: %u) - Pidä N DASH anonymisoituna (oletus: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Pidä enintään <n> ei yhdistettyä siirtotapahtumaa muistissa (oletus: %u) - - - Last Darksend was too recent. - Viimeisin Darksend oli liian äskettäin. - - - Line: %d - Rivi: %d - - - Loading addresses... - Ladataan osoitteita... - - - Loading block index... - Ladataan lohkoindeksiä... - - - Loading wallet... (%3.2f %%) - Ladataan lompakkoa... (%3.2f %%) - - - Loading wallet... - Ladataan lompakkoa... - - - Masternode options: - Masternode valinnat: - - - Masternode queue is full. - Masternode jono on täysi. - - - Masternode: - Masternode: - - - Missing input transaction information. - Puuttuva siirtotapahtuman tieto. - - - No funds detected in need of denominating. - Denominointia tarvitsevia varoja ei löydy. - - - No matching denominations found for mixing. - Vastaavia denominointeja sekoitukseen ei löydy. - - - Node relay options: - Solmun välitysasetukset: - - - Non-standard public key detected. - Epästandardi yleinen avain havaittu. - - - Not compatible with existing transactions. - Ei yhteensopiva olemassa olevien siirtotapahtumien kanssa. - - - Not enough file descriptors available. - Ei tarpeeksi tiedostomerkintöjä saatavilla. - - - Options: - Asetukset: - - - Password for JSON-RPC connections - Salasana JSON-RPC yhteyksille - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL valinnat: (katso Bitcoin Wikistä SSL-asennuksen ohjeet) - - - RPC server options: - RPC palvelimen valinnat: - - - RPC support for HTTP persistent connections (default: %d) - RPC tuki jatkuville HTTP yhteyksille (oletus: %d) - - - Randomly drop 1 of every <n> network messages - Satunnaisesti pudota 1 joka <n> verkkoviestistä - - - Randomly fuzz 1 of every <n> network messages - Satunnaisesti sekoita 1 joka <n> verkkoviestistä - - - Rebuild block chain index from current blk000??.dat files - Uudelleenrakenna lohkoketjun indeksi nykyisistä blk000??.dat tiedostoista - - - Receive and display P2P network alerts (default: %u) - Vastaanota ja näytä P2P verkon hälytykset (oletus: %u) - - - Relay and mine data carrier transactions (default: %u) - Välitä ja louhi datan kuljetustapahtumia (oletus: %u) - - - Relay non-P2SH multisig (default: %u) - Välitä non-P2SH multisig (oletus: %u) - - - Rescan the block chain for missing wallet transactions - Skannaa uudelleen lohkoketju lompakon puuttuvien siirtotapahtumien vuoksi - - - Rescanning... - Skannataan uudelleen... - - - Run in the background as a daemon and accept commands - Aja taustalla palveluprosessina ja hyväksy komennot - - - Session not complete! - Istunto ei ole valmis! - - - Session timed out. - Istunnon aikaraja. - - - Set database cache size in megabytes (%d to %d, default: %d) - Aseta tietokannan välimuistin koko megatavuissa (%d - %d, oletus: %d - - - Set maximum block size in bytes (default: %d) - Aseta lohkon maksimikoko tavuissa (oletus: %d) - - - Set the masternode private key - Aseta masternoden yksityisavain. - - - Show all debugging options (usage: --help -help-debug) - Näytä kaikki debuggaus valinnat: (käyttö: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Pienennä debug.log tiedosto käynnistyksen yhteydessä (vakioasetus: 1 kun ei -debug) - - - Signing failed. - Allekirjoitus epäonnistui. - - - Signing transaction failed - Siirtotapahtuman allekirjoitus epäonnistui - - - Specify data directory - Määritä datahakemisto - - - Specify wallet file (within data directory) - Määritä lompakkotiedosto (datahakemiston sisällä) - - - Specify your own public address - Määritä julkinen osoitteesi - - - Synchronization pending... - Synkronointi odottaa... - - - This help message - Tämä ohjeviesti - - - This is experimental software. - Tämä on kokeellinen ohjelmisto. - - - This is intended for regression testing tools and app development. - Tämä on tarkoitettu regression testityökaluille ja ohjelman kehittämiseen. - - - Transaction amount too small - Siirtosumma on liian pieni - - - Transaction amounts must be positive - Siirtosumman tulee olla positiivinen - - - Transaction created successfully. - Siirtotapahtuma luotu onnistuneesti. - - - Transaction fees are too high. - Siirtotapahtuman siirtomaksu on liian iso. - - - Transaction not valid. - Siirtotapahtuma ei ole voimassa. - - - Transaction too large for fee policy - Siirtotapahtuma on liian iso suhteessa siirtomaksujen käytäntöön. - - - Transaction too large - Siirtosumma on liian iso - - - Transmitting final transaction. - Lähetetään lopullinen siirtotapahtuma. - - - Unable to bind to %s on this computer (bind returned error %s) - Ei voida yhdistää %s tässä tietokoneessa (yhdistäminen palautti virheen %s) - - - Unable to sign spork message, wrong key? - En voida allekirjoittaa spork viestiä, väärä avain? - - - Unknown network specified in -onlynet: '%s' - Tuntematon verkkomääritys -onlynet parametrissa: '%s' - - - Unknown state: id = %u - Tuntematon tila: id = %u - - - Upgrade wallet to latest format - Päivitä lompakko uusimpaan formaattiin - - - Use OpenSSL (https) for JSON-RPC connections - Käytä OpenSSL:ää (https) JSON-RPC yhteyksille - - - Use UPnP to map the listening port (default: 1 when listening) - Käytä UPnP:tä kuunneltavan portin kartoitukseen (oletus: 1 kun kuunellaan) - - - Use the test network - Käytä testiverkkoa - - - Username for JSON-RPC connections - Käyttäjätunnus JSON-RPC yhteyksille - - - Value more than Darksend pool maximum allows. - Määrä on enemmän kuin Darksend varannon maksimi sallii. - - - Verifying blocks... - Tarkistetaan lohkoja... - - - Verifying wallet... - Tarkistetaan lompakko... - - - Wallet %s resides outside data directory %s - Lompakko %s sijaitsee data hakemiston ulkopuolella %s - - - Wallet is locked. - Lompakko on lukittu. - - - Wallet options: - Lompakon valinnat: - - - Wallet window title - Lompakon ikkunaotsikko - - - Warning - Varoitus - - - Warning: This version is obsolete, upgrade required! - Varoitus: Tämä versio on vanhentunut, päivitys vaaditaan! - - - You need to rebuild the database using -reindex to change -txindex - Sinun tulee uudelleenrakentaa tietokanta käyttäen -reindex vaihtaen -txindex - - - Your entries added successfully. - Merkinnnät lisätty onnistuneesti. - - - Your transaction was accepted into the pool! - Siirtotapahtuma hyväksytty varantoon! - - - Zapping all transactions from wallet... - Tyhjennetään kaikki siirtotapahtumat lompakosta.... - - - on startup - käynnistyksessä - - - wallet.dat corrupt, salvage failed - wallet.dat lompakkotiedosto vioittunut, pelastaminen epäonnistui - - - \ No newline at end of file diff --git a/src/qt/locale/dash_fr.ts b/src/qt/locale/dash_fr.ts deleted file mode 100644 index ff551f1a3372..000000000000 --- a/src/qt/locale/dash_fr.ts +++ /dev/null @@ -1,4535 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Faites un clic droit pour modifier l'adresse ou l'étiquette - - - Create a new address - Créer une nouvelle adresse - - - &New - &Nouveau - - - Copy the currently selected address to the system clipboard - Copier l'adresse courante sélectionnée dans le presse-papier - - - &Copy - &Copier - - - Delete the currently selected address from the list - Effacer l'adresse actuellement sélectionnée de la liste - - - &Delete - &Supprimer - - - Export the data in the current tab to a file - Exporter les données de l'onglet courant vers un fichier - - - &Export - &Exporter - - - C&lose - &Fermer - - - Choose the address to send coins to - Choisir l'adresse à laquelle envoyer de la monnaie - - - Choose the address to receive coins with - Choisir l'adresse avec laquelle recevoir de la monnaie - - - C&hoose - C&hoisir - - - Sending addresses - Adresses d'envoi - - - Receiving addresses - Adresses de réception - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Ce sont vos adresses Dash pour l'envoi de paiements. Vérifiez toujours le montant et l'adresse de réception avant l'envoi de monnaies. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Ce sont vos adresses Dash pour la réception de paiements. Il est recommandé d'utiliser une nouvelle adresse de réception pour chaque transaction. - - - &Copy Address - &Copier l'adresse - - - Copy &Label - Copier l'é&tiquette - - - &Edit - &Modifier - - - Export Address List - Exporter la liste d'adresses - - - Comma separated file (*.csv) - Valeurs séparées par des virgules (*.csv) - - - Exporting Failed - L'exportation a échoué - - - There was an error trying to save the address list to %1. Please try again. - Une erreur est survenue lors de l'enregistrement de la liste d'adresses vers %1. Essayez à nouveau. - - - - AddressTableModel - - Label - Étiquette - - - Address - Adresse - - - (no label) - (aucune étiquette) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialogue de phrase de passe - - - Enter passphrase - Saisir la phrase de passe - - - New passphrase - Nouvelle phrase de passe - - - Repeat new passphrase - Répéter la phrase de passe - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Utiliser pour désactiver le mode d'envoi trivial de paiement lorsque le compte système est compromis. N'assure pas une sécurité efficace. - - - For anonymization only - Pour anonymisation uniquement - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Saisir la nouvelle phrase de passe pour le portefeuille.<br/>Veuillez utiliser une phrase de passe de <b>dix caractères aléatoires ou plus</b>, ou de <b>huit mots ou plus</b>. - - - Encrypt wallet - Chiffrer le portefeuille - - - This operation needs your wallet passphrase to unlock the wallet. - Cette opération nécessite votre phrase de passe pour déverrouiller le portefeuille. - - - Unlock wallet - Déverrouiller le portefeuille - - - This operation needs your wallet passphrase to decrypt the wallet. - Cette opération nécessite votre phrase de passe pour déchiffrer le portefeuille. - - - Decrypt wallet - Déchiffrer le portefeuille - - - Change passphrase - Changer le mot de passe - - - Enter the old and new passphrase to the wallet. - Saisir l’ancienne phrase de passe pour le portefeuille ainsi que la nouvelle. - - - Confirm wallet encryption - Confirmer le chiffrement du portefeuille - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Attention : Si vous chiffrez votre portefeuille et perdez votre phrase de passe, vous <b>PERDREZ TOUS VOS DASH</b> ! - - - Are you sure you wish to encrypt your wallet? - Êtes-vous sûr de vouloir chiffrer votre portefeuille ? - - - Wallet encrypted - Portefeuille chiffré - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash va à présent se fermer pour terminer le chiffrement. N'oubliez pas que le chiffrement de votre portefeuille n'est pas une protection totale contre le vol par des logiciels malveillants qui infecteraient votre ordinateur. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANT : Toute sauvegarde précédente de votre fichier de portefeuille devrait être remplacée par le nouveau fichier de portefeuille chiffré. Pour des raisons de sécurité, les sauvegardes précédentes de votre fichier de portefeuille non chiffré deviendront inutilisables dès que vous commencerez à utiliser le nouveau portefeuille chiffré. - - - Wallet encryption failed - Le chiffrement du portefeuille a échoué - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Le chiffrement du portefeuille a échoué en raison d'une erreur interne. Votre portefeuille n'a pas été chiffré. - - - The supplied passphrases do not match. - Les phrases de passe saisies ne correspondent pas. - - - Wallet unlock failed - Le déverrouillage du portefeuille a échoué - - - The passphrase entered for the wallet decryption was incorrect. - La phrase de passe saisie pour déchiffrer le portefeuille était incorrecte. - - - Wallet decryption failed - Le déchiffrage du portefeuille a échoué - - - Wallet passphrase was successfully changed. - La phrase de passe du portefeuille a été modifiée avec succès. - - - Warning: The Caps Lock key is on! - Attention : la touche Verr. Maj. est activée ! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Portefeuille - - - Node - Nœud - - - &Overview - &Vue d'ensemble - - - Show general overview of wallet - Afficher une vue d’ensemble du portefeuille - - - &Send - &Envoyer - - - Send coins to a Dash address - Envoyer des pièces sur une adresse Dash - - - &Receive - &Recevoir - - - Request payments (generates QR codes and dash: URIs) - Demande de paiements (Générer des QR code et des URIs dash) - - - &Transactions - &Transactions - - - Browse transaction history - Parcourir l'historique des transactions - - - E&xit - Q&uitter - - - Quit application - Quitter l’application - - - &About Dash Core - À propos du noyau Dash - - - Show information about Dash Core - Affichez des informations à propos de Dash Core - - - About &Qt - À propos de &Qt - - - Show information about Qt - Afficher des informations sur Qt - - - &Options... - &Options... - - - Modify configuration options for Dash - Modifier les options de configuration pour Dash - - - &Show / Hide - &Afficher / Cacher - - - Show or hide the main Window - Afficher ou masquer la fenêtre principale - - - &Encrypt Wallet... - &Chiffrer le portefeuille... - - - Encrypt the private keys that belong to your wallet - Chiffrer les clefs privées de votre portefeuille - - - &Backup Wallet... - Sauvegarder le &portefeuille... - - - Backup wallet to another location - Sauvegarder le portefeuille vers un autre emplacement - - - &Change Passphrase... - &Changer la phrase de passe... - - - Change the passphrase used for wallet encryption - Modifier la phrase de passe utilisée pour le chiffrement du portefeuille - - - &Unlock Wallet... - &Déverrouiller le portefeuille - - - Unlock wallet - Déverrouiller le portefeuille - - - &Lock Wallet - &Vérouiller le portefeuille - - - Sign &message... - &Signer le message... - - - Sign messages with your Dash addresses to prove you own them - Signer les messages avec votre adresses Dash pour prouver que vous êtes le propriétaire - - - &Verify message... - &Vérifier un message... - - - Verify messages to ensure they were signed with specified Dash addresses - Vérifier les messages pour vous assurer qu'ils ont été signés avec les adresses Dash spécifiées - - - &Information - &Informations - - - Show diagnostic information - Voir les informaion de diagnostique - - - &Debug console - &Console de débogage - - - Open debugging console - Ouvrir la console de débogage - - - &Network Monitor - &Moniteur réseau - - - Show network monitor - Voir le moniteur réseau - - - &Peers list - Et la liste des pairs - - - Show peers info - Voir les infos des pairs - - - Wallet &Repair - Portefeuille et Réparation - - - Show wallet repair options - Afficher les options de réparation du portefeuille - - - Open &Configuration File - Ouvrir Fichier de &Configuration - - - Open configuration file - Ouvrir fichier de configuration - - - Show Automatic &Backups - Afficher les sauvegardes automatiques - - - Show automatically created wallet backups - Afficher automatiquement les sauvegardes de portefeuille créés - - - &Sending addresses... - Adresses d'&envoi... - - - Show the list of used sending addresses and labels - Afficher la liste d'adresses d'envoi et d'étiquettes utilisées - - - &Receiving addresses... - Adresses de &réception... - - - Show the list of used receiving addresses and labels - Afficher la liste d'adresses de réception et d'étiquettes utilisées - - - Open &URI... - Ouvrir un &URI... - - - Open a dash: URI or payment request - Ouvrir une URI ou demande de paiement dash - - - &Command-line options - Options de ligne de &commande - - - Dash Core client - Client Dash Core - - - Processed %n blocks of transaction history. - Traités %n blocs de l'historique des transactions. Traités %n blocs de l'historique des transactions. - - - Synchronizing additional data: %p% - Synchronisation des données additionnelles: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Afficher le message d'aide de Dash Core pour obtenir une liste des options de ligne de commande Bitcoin possibles. - - - &File - &Fichier - - - &Settings - &Réglages - - - &Tools - &Outils - - - &Help - &Aide - - - Tabs toolbar - Barre d'outils des onglets - - - %n active connection(s) to Dash network - %n connexion active au réseau Dash %n connexions actives au réseau Dash - - - Synchronizing with network... - Synchronisation avec le réseau en cours... - - - Importing blocks from disk... - Importation des blocs depuis le disque... - - - Reindexing blocks on disk... - Réindexation des blocs sur le disque... - - - No block source available... - Aucune source de blocs disponible... - - - Up to date - À jour - - - %n hour(s) - %n heures%n heures - - - %n day(s) - %n jours%n jours - - - %n week(s) - %n semaines%n semaines - - - %1 and %2 - %1 et %2 - - - %n year(s) - %n année(s)%n années - - - %1 behind - %1 en retard - - - Catching up... - Rattrapage en cours... - - - Last received block was generated %1 ago. - Le dernier bloc reçu avait été généré il y a %1. - - - Transactions after this will not yet be visible. - Les transactions après ceci ne sont pas encore visibles. - - - Error - Erreur - - - Warning - Avertissement - - - Information - Information - - - Sent transaction - Transaction envoyée - - - Incoming transaction - Transaction entrante - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Date : %1 -Montant : %2 -Type : %3 -Adresse : %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Le portefeuille est <b>chiffré</b> et est actuellement <b>déverrouillé</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Le portefeuille est <b>chiffré</b> et est actuellement <b>déverrouillé</b> seulement pour l'anonymisation - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Le portefeuille est <b>chiffré</b> et actuellement <b>verrouillé</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Total: %1 (Compatible DS: %2 / Actifs: %3) - - - Network Alert - Alerte réseau - - - - CoinControlDialog - - Quantity: - Quantité : - - - Bytes: - Octets : - - - Amount: - Montant : - - - Priority: - Priorité : - - - Fee: - Frais : - - - Coin Selection - Sélection de la Monnaie - - - Dust: - Poussière: - - - After Fee: - Après les frais : - - - Change: - Monnaie : - - - (un)select all - Tout (dé)sélectionner - - - Tree mode - Mode arborescence - - - List mode - Mode liste - - - (1 locked) - (1 verrouillé) - - - Amount - Montant - - - Received with label - Reçu avec étiquette - - - Received with address - Reçu avec adresse - - - DS Rounds - Cycles DS - - - Date - Date - - - Confirmations - Confirmations - - - Confirmed - Confirmée - - - Priority - Priorité - - - Copy address - Copier l’adresse - - - Copy label - Copier l’étiquette - - - Copy amount - Copier le montant - - - Copy transaction ID - Copier l'ID de la transaction - - - Lock unspent - Verrouiller ce qui n'est pas dépensé - - - Unlock unspent - Déverrouiller ce qui n'est pas dépensé - - - Copy quantity - Copier la quantité - - - Copy fee - Copier les frais - - - Copy after fee - Copier le montant après les frais - - - Copy bytes - Copier les octets - - - Copy priority - Copier la priorité - - - Copy dust - Copier poussière - - - Copy change - Copier la monnaie - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Entrée non-anonymisées sélectionnée. <b> Darksend sera désactivé. </ b> <br> Si vous voulez continuer à utiliser Darksend, veuillez désélectionner toutes les entrées non-anonymisées d'abord, puis vérifier à nouveau la case Darksend. - - - highest - la plus élevée - - - higher - plus élevée - - - high - élevée - - - medium-high - moyennement-élevée - - - Can vary +/- %1 duff(s) per input. - Peut varier de +/- %1 duff(s) par entrée. - - - n/a - n/a - - - medium - moyenne - - - low-medium - moyennement-basse - - - low - basse - - - lower - plus basse - - - lowest - la plus basse - - - (%1 locked) - (%1 verrouillé) - - - none - aucun - - - yes - oui - - - no - non - - - This label turns red, if the transaction size is greater than 1000 bytes. - Cette étiquette devient rouge si la taille de la transaction est plus grande que 1 000 octets. - - - This means a fee of at least %1 per kB is required. - Cela signifie qu'une taxe d'au moins %1 par ko est nécessaire - - - Can vary +/- 1 byte per input. - Peut varier +/- 1 octet par entrée. - - - Transactions with higher priority are more likely to get included into a block. - Les transactions à priorité plus haute sont plus à même d'être incluses dans un bloc. - - - This label turns red, if the priority is smaller than "medium". - Cette étiquette devient rouge si la priorité est plus basse que « moyenne » - - - This label turns red, if any recipient receives an amount smaller than %1. - Cette étiquette devient rouge si un destinataire reçoit un montant inférieur à %1. - - - (no label) - (aucune étiquette) - - - change from %1 (%2) - monnaie de %1 (%2) - - - (change) - (monnaie) - - - - DarksendConfig - - Configure Darksend - Configurer Darksend - - - Basic Privacy - Confidentialité normale - - - High Privacy - Confidentialité élevée - - - Maximum Privacy - Confidentialité maximale - - - Please select a privacy level. - Veuillez choisir un niveau de confidentialité. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Utiliser 2 masternodes pour mélanger jusqu'à 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Utiliser 8 masternodes pour mélanger jusqu'à 1000 DASH - - - Use 16 separate masternodes - Utiliser 16 masternodes - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Cette option est la plus rapide et coûtera environ 0,025 DASH pour anonymiser 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Cette option est un peu moins rapide et coûtera environ 0,05 DASH pour anonymiser 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0,1 DASH par 1000 DASH anonymisés. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Cette option est le plus lente et la plus sécurisée. Utiliser l'anonymisation maximale coûtera - - - Darksend Configuration - Configuration de Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend est réglé avec succès sur normal (%1 and 2 rounds). Vous pouvez changer cela à tout moment en ouvrant la fenêtre de configuration du Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend est réglé avec succès sur haut (%1 and 8 rounds). Vous pouvez changer cela à tout moment en ouvrant la fenêtre de configuration du Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend est réglé avec succès sur maximum (%1 and 16 rounds). Vous pouvez changer cela à tout moment en ouvrant la fenêtre de configuration du Dash. - - - - EditAddressDialog - - Edit Address - Modifier l'adresse - - - &Label - &Étiquette - - - The label associated with this address list entry - L'étiquette associée à cette entrée de la liste d'adresses - - - &Address - &Adresse - - - The address associated with this address list entry. This can only be modified for sending addresses. - L'adresse associée à cette entrée de la liste d'adresses. Ceci ne peut être modifié que pour les adresses d'envoi. - - - New receiving address - Nouvelle adresse de réception - - - New sending address - Nouvelle adresse d’envoi - - - Edit receiving address - Modifier l’adresse de réception - - - Edit sending address - Modifier l’adresse d'envoi - - - The entered address "%1" is not a valid Dash address. - L'adresse entrée "%1" est pas une adresse Dash valide - - - The entered address "%1" is already in the address book. - L’adresse fournie « %1 » est déjà présente dans le carnet d'adresses. - - - Could not unlock wallet. - Impossible de déverrouiller le portefeuille. - - - New key generation failed. - Échec de génération de la nouvelle clef. - - - - FreespaceChecker - - A new data directory will be created. - Un nouveau répertoire de données sera créé. - - - name - nom - - - Directory already exists. Add %1 if you intend to create a new directory here. - Le répertoire existe déjà. Ajoutez %1 si vous voulez créer un nouveau répertoire ici. - - - Path already exists, and is not a directory. - Le chemin existe déjà et n'est pas un répertoire. - - - Cannot create data directory here. - Impossible de créer un répertoire de données ici. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - version - - - (%1-bit) - (%1-bit) - - - About Dash Core - A propos de Dash Core - - - Command-line options - Options de ligne de commande - - - Usage: - Utilisation : - - - command-line options - options de ligne de commande - - - UI options - Options de l'interface utilisateur - - - Choose data directory on startup (default: 0) - Choisir un répertoire de données au démarrage (par défaut : 0) - - - Set language, for example "de_DE" (default: system locale) - Définir la langue, par exemple « fr_CA » (par défaut : la langue du système) - - - Start minimized - Démarrer minimisé - - - Set SSL root certificates for payment request (default: -system-) - Définir les certificats SSL racine pour les requêtes de paiement (par défaut : -système-) - - - Show splash screen on startup (default: 1) - Afficher l'écran d'accueil au démarrage (par défaut : 1) - - - - Intro - - Welcome - Bienvenue - - - Welcome to Dash Core. - Bienvenue à Dash Core - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Comme il s'agit du premier lancement du logiciel, vous pouvez choisir l'emplacement où Dash Core sauvegardera ses données. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core téléchargera et sauvegardera une copie de la chaîne de blocs Dash. Au moins %1Go de données seront sauvegardées dans ce répertoire, et cette taille augmentera avec le temps. Le portefeuille sera aussi sauvegardé dans ce répertoire. - - - Use the default data directory - Utiliser le répertoire de données par défaut - - - Use a custom data directory: - Utiliser un répertoire de données personnalisé : - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Erreur: Le répertoire de données spécifié « %1 » ne peut pas être créé. - - - Error - Erreur - - - %1 GB of free space available - %1 Go d'espace libre disponible - - - (of %1 GB needed) - ( de %1 Go nécessaire) - - - - OpenURIDialog - - Open URI - Ouvrir un URI - - - Open payment request from URI or file - Ouvrir une demande de paiement à partir d'un URI ou d'un fichier - - - URI: - URI : - - - Select payment request file - Choisir le fichier de demande de paiement - - - Select payment request file to open - Choisir le fichier de demande de paiement à ouvrir - - - - OptionsDialog - - Options - Options - - - &Main - Réglages &principaux - - - Automatically start Dash after logging in to the system. - Démarrer Dash automatiquement au démarrage du système. - - - &Start Dash on system login - &Démarrer Dash au démarrage du système - - - Size of &database cache - Taille du cache de la base de &données - - - MB - Mo - - - Number of script &verification threads - Nombre d'exétrons de &vérification de script - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, < 0 = laisser ce nombre de cœurs inutilisés) - - - Darksend rounds to use - Nombre de cycles Darksend à effectuer - - - This amount acts as a threshold to turn off Darksend once it's reached. - Ce montant est le seuil pour désactiver Darksend dès qu'il est atteint. - - - Amount of Dash to keep anonymized - Nombre de Dash à conserver anonymisés - - - W&allet - &Portefeuille - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Si vous désactivez la dépense de la monnaie non confirmée, la monnaie d'une transaction<br/>ne peut pas être utilisée tant que cette transaction n'a pas reçu au moins une confirmation.<br/>Ceci affecte aussi comment votre solde est calculé. - - - Accept connections from outside - Accepter les connexions provenant de l'extérieur - - - Allow incoming connections - Autoriser les connexions entrantes - - - Connect to the Dash network through a SOCKS5 proxy. - Se connecter au réseau Dash à travers un proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Connectez par SOCKS5 (proxy par défaut): - - - Expert - Expert - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Ce paramètre détermine le nombre de masternodes uniques par lesquels l'anonymisation sera effectuée.<br/>Plus le nombre de cycles d'anonymisation est important, plus le degré de confidentialité est élevé, mais les frais associés sont d'autant plus importants. - - - Whether to show coin control features or not. - Afficher ou non les fonctions de contrôle des pièces. - - - Enable coin &control features - Activer les fonctions de &contrôle des pièces - - - &Spend unconfirmed change - &Dépenser la monnaie non confirmée - - - &Network - &Réseau - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Ouvrir automatiquement le port client Dash sur le routeur. Cela ne fonctionne que sur les routeurs supportant et ayant activé UPnP. - - - Map port using &UPnP - Mapper le port avec l'&UPnP - - - Proxy &IP: - &IP du serveur mandataire : - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Adresse IP du mandataire (par ex. IPv4 : 127.0.0.1 / IPv6 : ::1) - - - &Port: - &Port : - - - Port of the proxy (e.g. 9050) - Port du serveur mandataire (par ex. 9050) - - - &Window - &Fenêtre - - - Show only a tray icon after minimizing the window. - Afficher uniquement une icône système après minimisation. - - - &Minimize to the tray instead of the taskbar - &Minimiser dans la barre système au lieu de la barre des tâches - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimiser au lieu de quitter l'application lorsque la fenêtre est fermée. Si cette option est activée, l'application ne pourra être fermée qu'en sélectionnant Quitter dans le menu. - - - M&inimize on close - M&inimiser lors de la fermeture - - - &Display - &Affichage - - - User Interface &language: - &Langue de l'interface utilisateur : - - - The user interface language can be set here. This setting will take effect after restarting Dash. - La langue de l'interface utilisateur peut être modifiée ici. Ce paramètre sera pris en compte au redémarrage de Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Langage manquant ou traduction incomplète ? Participez aux traductions ici : -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Thème d'Interface de l'utilisateur : - - - &Unit to show amounts in: - &Unité d'affichage des montants : - - - Choose the default subdivision unit to show in the interface and when sending coins. - Choisissez la sous-unité par défaut pour l'affichage dans l'interface et lors de l'envoi de pièces. - - - Decimal digits - Nombre de décimales - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL de tiers (par ex. un explorateur de blocs) apparaissant dans l'onglet des transactions comme éléments du menu contextuel. %s dans l'URL est remplacé par le hachage de la transaction. Les URL multiples sont séparées par une barre verticale |. - - - Third party transaction URLs - URL de transaction d'un tiers - - - Active command-line options that override above options: - Options actives de ligne de commande qui annulent les options ci-dessus : - - - Reset all client options to default. - Réinitialiser toutes les options du client aux valeurs par défaut. - - - &Reset Options - &Réinitialisation des options - - - &OK - &OK - - - &Cancel - A&nnuler - - - default - par défaut - - - none - aucune - - - Confirm options reset - Confirmer la réinitialisation des options - - - Client restart required to activate changes. - Le redémarrage du client est nécessaire pour activer les changements. - - - Client will be shutdown, do you want to proceed? - Le client sera arrêté, voulez-vous continuer? - - - This change would require a client restart. - Ce changement nécessite un redémarrage du client. - - - The supplied proxy address is invalid. - L'adresse de serveur mandataire fournie est invalide. - - - - OverviewPage - - Form - Formulaire - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - L'information affichée peut être obsolète. Votre portefeuille se synchronise automatiquement avec le réseau Dash lorsque la connection est établie, mais le process n'est pas encore terminé. - - - Available: - Disponible : - - - Your current spendable balance - Votre solde actuel pouvant être dépensé - - - Pending: - En attente : - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total des transactions qui doivent encore être confirmées et qu'il n'est pas encore possible de dépenser - - - Immature: - Immature : - - - Mined balance that has not yet matured - Le solde généré n'est pas encore mûr - - - Balances - soldes - - - Unconfirmed transactions to watch-only addresses - Transactions non confirmés d'adresses en lecture seule - - - Mined balance in watch-only addresses that has not yet matured - Solde miné pour les adresses en lecture seule qui n'ont pas encore mûri - - - Total: - Total : - - - Your current total balance - Votre solde total actuel - - - Current total balance in watch-only addresses - Solde total actuel pour les adresses en lecture seule - - - Watch-only: - Lecture seule: - - - Your current balance in watch-only addresses - Votre solde actuel pour adresses en lecture seule - - - Spendable: - Disponible: - - - Status: - Status : - - - Enabled/Disabled - Activé/Désactivé - - - Completion: - Complétude : - - - Darksend Balance: - Balance Darksend : - - - Amount and Rounds: - Montant et Cycles - - - 0 DASH / 0 Rounds - 0 DASH / 0 Cycles - - - Submitted Denom: - Denom soumis : - - - n/a - n/a - - - Darksend - Darksend - - - Recent transactions - Transactions récentes - - - Start/Stop Mixing - Démarrer/Arrêtér le mélange - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Les dénominations que vous avez soumises à la Masternode.<br>Pour mélanger, d'autres utilisateurs doivent soumettre les mêmes dénominations. - - - (Last Message) - (Dernier Message) - - - Try to manually submit a Darksend request. - Essayer de soumettre manuellement une requête Darksend. - - - Try Mix - Essayer le mélange - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Réinitialiser le statut de Darksend (peut interrompre Darksend si le process de mélange est en cours, ce qui peut vous coûter de l'argent !) - - - Reset - Réinitialiser - - - out of sync - désynchronisé - - - Disabled - Désactivé - - - Start Darksend Mixing - Démarrer le mélange Darksend - - - Stop Darksend Mixing - Arrêter le mélange Darksend - - - No inputs detected - Aucune entrée détectée - - - %n Rounds - %n Cycle%n Cycles - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Pas assez d'entrées compatibles pour anonymiser <span style='color:red;'>%1</span>, <br>nous allons anonymiser <span style='color:red;'>%2</span> à la place - - - Overall progress - Progrès global - - - Denominated - Dénommées - - - Anonymized - Anonymisés - - - Denominated inputs have %5 of %n rounds on average - Les entrées dénommées ont %5 sur %n cycles en moyennesLes entrées dénommées ont %5 sur %n cycles en moyennes - - - Found enough compatible inputs to anonymize %1 - Assez d'entrées compatibles trouvées pour anonymiser %1 - - - Mixed - Mélangés - - - Enabled - Activé - - - Last Darksend message: - - Dernier message de Darksend: - - - - N/A - N.D. - - - Darksend was successfully reset. - Darksend est réinitialisé avec succès - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Pour ne pas voir les transactions/frais Darksend internes sélectionnez "Les plus Communes" comme Type dans l'onglet "Transactions" - - - Darksend requires at least %1 to use. - Darksend nécessite au moins %1 pour l'utiliser - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Le portefeuille est vérouillé et l'utilisateur a refusé de le débloquer. Désactivation de Darksend. - - - - PaymentServer - - Payment request error - Erreur de demande de paiement - - - Cannot start dash: click-to-pay handler - Impossible de démarrer dash: click-to-pay le gestionnaire - - - URI handling - Gestion des URIs - - - Payment request fetch URL is invalid: %1 - L'URL de récupération de la demande de paiement est invalide : %1 - - - Payment request file handling - Gestion des fichiers de demande de paiement - - - Invalid payment address %1 - Adresse de paiement %1 invalide - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - L'URI ne peut être analysé ! Ceci peut être causé par une adresse Dash invalide ou par des paramètres d'URI mal composé. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Le fichier de demande de paiement ne peut pas être lu ou traité ! Ceci peut être causé par un fichier de demande de paiement invalide. - - - Payment request rejected - La demande de paiement a été rejetée - - - Payment request network doesn't match client network. - Le réseau de la demande de paiement ne correspond pas au réseau du client - - - Payment request has expired. - La demande de paiement a expiré - - - Payment request is not initialized. - La demande de paiement n'est pas initialisée - - - Unverified payment requests to custom payment scripts are unsupported. - Les demandes de paiements non vérifiées à des scripts de paiement personnalisés ne sont pas prises en charge. - - - Requested payment amount of %1 is too small (considered dust). - Le paiement demandé d'un montant de %1 est trop faible (considéré comme de la poussière). - - - Refund from %1 - Remboursement de %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - La demande de paiement %1 est trop volumineuse (%2 octets sur %3 permis) - - - Payment request DoS protection - Protection DoS de la demande de paiement - - - Error communicating with %1: %2 - Erreur de communication avec %1 : %2 - - - Payment request cannot be parsed! - La demande de paiement ne peux pas être analyzée! - - - Bad response from server %1 - Mauvaise réponse du serveur %1 - - - Network request error - Erreur de demande réseau - - - Payment acknowledged - Le paiement a été confirmé - - - - PeerTableModel - - Address/Hostname - Adresse/Nom d'hôte - - - User Agent - Agent de l'utilisateur - - - Ping Time - Temps de Ping - - - - QObject - - Amount - Montant - - - Enter a Dash address (e.g. %1) - Entrez une adresse Dash (e.g. %1) - - - %1 d - %1 j - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - RÉSEAU - - - UNKNOWN - INCONNU - - - None - Aucun - - - N/A - N.D. - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Sauvegarder l'image... - - - &Copy Image - &Copier l'image - - - Save QR Code - Sauvegarder le code QR - - - PNG Image (*.png) - Image PNG (*.png) - - - - RPCConsole - - Tools window - Fenêtre des outils - - - &Information - &Informations - - - General - Général - - - Name - Nom - - - Client name - Nom du client - - - N/A - N.D. - - - Number of connections - Nombre de connexions - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Ouvrir le fichier de debug Dash depuis le répertoire de données actuel. Ceci peut prendre plusieurs secondes pour un fichier de debug imposant. - - - &Open - &Ouvrir - - - Startup time - Heure de démarrage - - - Network - Réseau - - - Last block time - Horodatage du dernier bloc - - - Debug log file - Journal de débogage - - - Using OpenSSL version - Version d'OpenSSL utilisée - - - Build date - Date de compilation - - - Current number of blocks - Nombre actuel de blocs - - - Client version - Version du client - - - Using BerkeleyDB version - Version BerkeleyDB utilisée - - - Block chain - Chaîne de blocs - - - Number of Masternodes - Nombre de Masternodes - - - &Console - &Console - - - Clear console - Nettoyer la console - - - &Network Traffic - Trafic &réseau - - - &Clear - &Nettoyer - - - Totals - Totaux - - - Received - Reçus - - - Sent - Envoyés - - - &Peers - Liste des &Pairs - - - Select a peer to view detailed information. - Choisir un pair pour voir les informations détaillées. - - - Direction - Direction - - - Version - Version - - - User Agent - Agent de l'utilisateur - - - Services - Services - - - Starting Height - Hauteur de Démarrage - - - Sync Height - Hauteur de Synchro - - - Ban Score - Score d'interdiction - - - Connection Time - Temps de Connexion - - - Last Send - Dernier Envoi - - - Last Receive - Dernière Reception - - - Bytes Sent - Octets Envoyés - - - Bytes Received - Octets Reçus - - - Ping Time - Temps de Ping - - - &Wallet Repair - &Réparation de Portefeuille - - - Salvage wallet - Sauvetage de portefeuille - - - Rescan blockchain files - Scanner à nouveau les fichiers de la chaîne de blocs - - - Recover transactions 1 - Récupérer les transactions 1 - - - Recover transactions 2 - Récupérer les transactions 2 - - - Upgrade wallet format - Mise à jour du format du portefeuille - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Les boutons ci-dessous redémarreront le portefeuille avec des paramètres de ligne de commande pour réparer le portefeuille, corriger des problèmes de fichiers corrompus de chaine de blocs ou de transactions manquantes ou obsolètes - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Tenter de récupérer les clés privées d'un wallet.dat corrompu - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Réanalyser la chaine de blocs pour les transactions de portefeuille manquantes - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Récupère les transactions depuis la chaine de blocs (en gardant les méta-données, ex. le nom du compte). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Récupère les transactions depuis la chaine de blocs (sans garder les méta-données). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Mise à jour du format du fichier wallet.dat vers la dernière version au démarrage. (Note: ce n'est PAS une mise à jour du logiciel portefeuille!) - - - Wallet repair options. - Options de réparation du portefeuille. - - - Rebuild index - Reconstruire l'index - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Reconstruire l'index de la chaine de blocs à partir des fichiers blk000??.dat actuels. - - - In: - Entrant : - - - Out: - Sortant : - - - Welcome to the Dash RPC console. - Bienvenue sur la console RPC de Dash. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utiliser les touches de curseur pour naviguer dans l'historique et <b>Ctrl-L</b> pour effacer l'écran. - - - Type <b>help</b> for an overview of available commands. - Taper <b>help</b> pour afficher une vue générale des commandes disponibles. - - - %1 B - %1 o - - - %1 KB - %1 Ko - - - %1 MB - %1 Mo - - - %1 GB - %1 Go - - - via %1 - via %1 - - - never - jamais - - - Inbound - Arrivant - - - Outbound - Sortant - - - Unknown - Inconnus - - - Fetching... - Récupération... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Réutilise une adresse de réception précédemment utilisée.<br>Réutiliser une adresse pose des problèmes de sécurité et de vie privée.<br>N'utilisez pas cette option sauf si vous générez à nouveau une demande de paiement déjà faite. - - - R&euse an existing receiving address (not recommended) - Ré&utiliser une adresse de réception existante (non recommandé) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Un message optionnel à joindre à la demande de paiement, qui sera affiché quand la demande sera ouverte. Note : Ce message ne sera pas envoyé avec le paiement à travers le réseau Dash. - - - &Message: - M&essage : - - - An optional label to associate with the new receiving address. - Un étiquette optionnelle à associer à la nouvelle adresse de réception - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Un message optionnel à joindre à la demande de paiement, qui sera affiché quand la demande sera ouverte.<br>Note : Ce message ne sera pas envoyé avec le paiement à travers le réseau Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Utiliser ce formulaire pour demander des paiements. Tous les champs sont <b>optionnels</b>. - - - &Label: - &Étiquette : - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Un montant optionnel à demander. Laisser ceci vide ou à zéro pour ne pas demander de montant spécifique. - - - &Amount: - &Montant : - - - &Request payment - &Demande de paiement - - - Clear all fields of the form. - Effacer tous les champs du formulaire. - - - Clear - Effacer - - - Requested payments history - Historique des paiements demandés - - - Show the selected request (does the same as double clicking an entry) - Afficher la demande choisie (identique à un double-clic sur une entrée) - - - Show - Afficher - - - Remove the selected entries from the list - Enlever les entrées sélectionnées de la liste - - - Remove - Enlever - - - Copy label - Copier l’étiquette - - - Copy message - Copier le message - - - Copy amount - Copier le montant - - - - ReceiveRequestDialog - - QR Code - Code QR - - - Copy &URI - Copier l'&URI - - - Copy &Address - Copier l'&adresse - - - &Save Image... - &Sauvegarder l'image... - - - Request payment to %1 - Demande de paiement à %1 - - - Payment information - Informations de paiement - - - URI - URI - - - Address - Adresse - - - Amount - Montant - - - Label - Étiquette - - - Message - Message - - - Resulting URI too long, try to reduce the text for label / message. - L'URI résultant est trop long, essayez de réduire le texte d'étiquette / de message. - - - Error encoding URI into QR Code. - Erreur d'encodage de l'URI en code QR. - - - - RecentRequestsTableModel - - Date - Date - - - Label - Étiquette - - - Message - Message - - - Amount - Montant - - - (no label) - (pas d'étiquette) - - - (no message) - (pas de message) - - - (no amount) - (aucun montant) - - - - SendCoinsDialog - - Send Coins - Envoyer des pièces - - - Coin Control Features - Fonctions de contrôle des pièces - - - Inputs... - Entrées... - - - automatically selected - choisi automatiquement - - - Insufficient funds! - Fonds insuffisants ! - - - Quantity: - Quantité : - - - Bytes: - Octets : - - - Amount: - Montant : - - - Priority: - Priorité : - - - medium - moyen - - - Fee: - Frais : - - - Dust: - Poussière: - - - no - non - - - After Fee: - Après les frais : - - - Change: - Monnaie : - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Si ceci est actif mais l'adresse de monnaie rendue est vide ou invalide, la monnaie sera envoyée vers une adresse nouvellement générée. - - - Custom change address - Adresse personnalisée de monnaie rendue - - - Transaction Fee: - Frais de Transaction: - - - Choose... - Choisissez... - - - collapse fee-settings - replier les paramètres de frais - - - Minimize - Minimiser - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Si les frais personnalisés sont à 1000 duffs et que la transaction fait seulement 250 octets, alors "par kilooctet" payera seulement 250 duffs de frais,<br />alors que "au moins" payera 1000 duffs. Pour les transactions de plus d'un kilooctet les deux payeront par kilooctet. - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Si les frais personnalisés sont à 1000 duffs et que la transaction fait seulement 250 octets, alors "par kilooctet" payera seulement 250 duffs de frais,<br />alors que "total au moins" payera 1000 duffs. Pour les transactions de plus d'un kilooctet les deux payeront par kilooctet. - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Payer les frais minimums fonctionne tant qu'il y a moins de volume de transactions que de place dans les blocs.<br/>Mais soyez conscients que ceci peut amener a des transactions qui ne seront jamais confirmées lorsqu'il y aura plus de demande que la capacité du réseau. - - - per kilobyte - par kilooctet - - - total at least - total au moins - - - (read the tooltip) - (lisez l'infobulle) - - - Recommended: - Recommandé: - - - Custom: - Personnalisé: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Les frais intelligents ne sont pas encore initialisés . Ceci nécessite quelques blocs généralement...) - - - Confirmation time: - Temps de Confirmation: - - - normal - normal - - - fast - rapide - - - Send as zero-fee transaction if possible - Envoyé en tant que transaction sans frais si possible - - - (confirmation may take longer) - (la confirmation pourra prendre plus de temps) - - - Confirm the send action - Confirmer l’action d'envoi - - - S&end - E&nvoyer - - - Clear all fields of the form. - Effacer tous les champs du formulaire. - - - Clear &All - &Tout nettoyer - - - Send to multiple recipients at once - Envoyer à plusieurs destinataires à la fois - - - Add &Recipient - Ajouter un &destinataire - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Solde : - - - Copy quantity - Copier la quantité - - - Copy amount - Copier le montant - - - Copy fee - Copier les frais - - - Copy after fee - Copier le montant après les frais - - - Copy bytes - Copier les octets - - - Copy priority - Copier la priorité - - - Copy dust - Copier poussière - - - Copy change - Copier la monnaie - - - using - utiliser - - - anonymous funds - fonds anonymisés - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend nécessite que ce montant soit arrondi au plus proche de %1). - - - any available funds (not recommended) - tout fonds disponible (non recommandé) - - - and InstantX - et InstantX - - - %1 to %2 - %1 à %2 - - - Are you sure you want to send? - Êtes-vous sûr de vouloir envoyer ? - - - are added as transaction fee - ajouté en tant que frais de transaction - - - Total Amount = <b>%1</b><br />= %2 - Montant Total = <b>%1</b><br />= %2 - - - Confirm send coins - Confirmer l’envoi des pièces - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Des frais %1 plus grands que %2 par koctets sont considéres comme excessifs. - - - Estimated to begin confirmation within %n block(s). - Le début de confirmation est estimé dans %n bloc.Le début de confirmation est estimé dans les %n blocs. - - - The recipient address is not valid, please recheck. - L'adresse du destinataire n’est pas valide, veuillez la vérifier. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 sur %2 entrées affichées)</b> - - - The amount to pay must be larger than 0. - Le montant à payer doit être supérieur à 0. - - - The amount exceeds your balance. - Le montant dépasse votre solde. - - - The total exceeds your balance when the %1 transaction fee is included. - Le montant dépasse votre solde lorsque les frais de transaction de %1 sont inclus. - - - Duplicate address found, can only send to each address once per send operation. - Adresse indentique trouvée, il n'est possible d'envoyer qu'une fois à chaque adresse par opération d'envoi. - - - Transaction creation failed! - La création de la transaction a échoué ! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - La transaction a été rejetée ! Ceci peut arriver si certaines pièces de votre portefeuille étaient déjà dépensées, par exemple si vous avez utilisé une copie de wallet.dat et que des pièces ont été dépensées dans la copie sans être marquées comme telles ici. - - - Error: The wallet was unlocked only to anonymize coins. - Erreur: Le portefeuille a été déverouillé seulement pour l'anonymisation des pièces. - - - Pay only the minimum fee of %1 - Payer seulement les frais minimum de %1 - - - Warning: Invalid Dash address - Attention: adresse Dash invalide - - - Warning: Unknown change address - Attention : adresse de monnaie rendue inconnue - - - (no label) - (pas d'étiquette) - - - - SendCoinsEntry - - This is a normal payment. - Ceci est un paiement normal. - - - Pay &To: - &Payer à : - - - The Dash address to send the payment to - L'adresse Dash à laquelle envoyer de la monnaie - - - Choose previously used address - Choisir une adresse déjà utilisée - - - Alt+A - Alt+A - - - Paste address from clipboard - Coller l'adresse depuis le presse-papier - - - Alt+P - Alt+P - - - Remove this entry - Enlever cette entrée - - - &Label: - É&tiquette : - - - Enter a label for this address to add it to the list of used addresses - Saisir une étiquette pour cette adresse afin de l'ajouter à la liste d'adresses utilisées - - - A&mount: - &Montant : - - - Message: - Message : - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Un message qui était joint au Dash : URI qui sera sauvegardée avec la transaction pour référence. Note : Ce message ne sera pas envoyé à travers le réseau Dash. - - - This is an unverified payment request. - Ceci est une demande de paiement non vérifiée. - - - Pay To: - Payer à : - - - Memo: - Mémo : - - - This is a verified payment request. - Ceci est une demande de paiement vérifiée. - - - Enter a label for this address to add it to your address book - Saisir une étiquette pour cette adresse afin de l’ajouter à votre carnet d’adresses - - - - ShutdownWindow - - Dash Core is shutting down... - Arrêt de Dash Core... - - - Do not shut down the computer until this window disappears. - Ne pas fermer l'ordinateur jusqu'à la disparition de cette fenêtre. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Signatures - Signer / Vérifier un message - - - &Sign Message - &Signer un message - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Vous pouvez signer des messages avec vos adresses pour prouver que vous les détenez. Faites attention de ne pas signer de vague car des attaques d'hameçonnage peuvent essayer d'usurper votre identité par votre signature. Ne signez que des déclarations entièrement détaillées et avec lesquelles vous serez d'accord. - - - The Dash address to sign the message with - L'adresse Dash avec laquelle signer le message - - - Choose previously used address - Choisir une adresse précédemment utilisée - - - Alt+A - Alt+A - - - Paste address from clipboard - Coller une adresse depuis le presse-papier - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Saisir ici le message que vous désirez signer - - - Signature - Signature - - - Copy the current signature to the system clipboard - Copier la signature actuelle dans le presse-papier - - - Sign the message to prove you own this Dash address - Signer le message pour prouver que vous possédez cette adresse Dash - - - Sign &Message - Signer le &message - - - Reset all sign message fields - Réinitialiser tous les champs de signature de message - - - Clear &All - &Tout nettoyer - - - &Verify Message - &Vérifier un message - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Saisir ci-dessous l'adresse de signature, le message (assurez-vous d'avoir copié exactement les retours à la ligne, les espaces, tabulations etc.) et la signature pour vérifier le message. Faire attention à ne pas déduire davantage de la signature que ce qui est contenu dans le message signé lui-même pour éviter d'être trompé par une attaque d'homme du milieu. - - - The Dash address the message was signed with - L'adresse Dash avec laquelle le message a été signé - - - Verify the message to ensure it was signed with the specified Dash address - Vérifier le message pour s'assurer qu'il a été signé avec l'adresse Dash spécifiée - - - Verify &Message - Vérifier le &message - - - Reset all verify message fields - Réinitialiser tous les champs de vérification de message - - - Click "Sign Message" to generate signature - Cliquez sur « Signer le message » pour générer la signature - - - The entered address is invalid. - L'adresse saisie est invalide. - - - Please check the address and try again. - Veuillez vérifier l'adresse et réessayer. - - - The entered address does not refer to a key. - L'adresse saisie ne fait pas référence à une clef. - - - Wallet unlock was cancelled. - Le déverrouillage du portefeuille a été annulé. - - - Private key for the entered address is not available. - La clef privée pour l'adresse indiquée n'est pas disponible. - - - Message signing failed. - La signature du message a échoué. - - - Message signed. - Le message a été signé. - - - The signature could not be decoded. - La signature n'a pu être décodée. - - - Please check the signature and try again. - Veuillez vérifier la signature et réessayer. - - - The signature did not match the message digest. - La signature ne correspond pas à l'empreinte du message. - - - Message verification failed. - Échec de la vérification du message. - - - Message verified. - Message vérifié. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Version %1 - - - The Bitcoin Core developers - Les développeurs Bitcoin Core - - - The Dash Core developers - Les développeurs Dash Core - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - Ko/s - - - - TransactionDesc - - Open for %n more block(s) - Ouvert pour %n bloc de plusOuvert pour %n blocs de plus - - - Open until %1 - Ouvert jusqu'à %1 - - - conflicted - en conflit - - - %1/offline (verified via instantx) - %1/déconnecté (vérifié avec instantx) - - - %1/confirmed (verified via instantx) - %1/confirmé (verifié avec instantx) - - - %1 confirmations (verified via instantx) - %1 confirmations (verifié avec instantx) - - - %1/offline - %1/déconnecté - - - %1/unconfirmed - %1/non confirmée - - - %1 confirmations - %1 confirmations - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/déconnecté (vérification d'InstantX en cours - %2 sur %3 signatures) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/confirmé (vérification d'InstantX en cours - %2 sur %3 signatures) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 confirmations (vérification d'InstantX en cours - %2 sur %3 signatures) - - - %1/offline (InstantX verification failed) - %1/déconnecté (La vérification d'InstantX a échoué) - - - %1/confirmed (InstantX verification failed) - %1/confirmé (La vérification d'InstantX a échoué) - - - Status - État - - - , has not been successfully broadcast yet - , n’a pas encore été diffusée avec succès - - - , broadcast through %n node(s) - , diffusée à travers %n nœud, diffusée à travers %n nœuds - - - Date - Date - - - Source - Source - - - Generated - Généré - - - From - De - - - unknown - inconnu - - - To - À - - - own address - votre propre adresse - - - watch-only - lecture seule - - - label - étiquette - - - Credit - Crédit - - - matures in %n more block(s) - arrive à maturité dans %n bloc de plusarrive à maturité dans %n blocs de plus - - - not accepted - refusé - - - Debit - Débit - - - Total debit - Total débit - - - Total credit - Total crédit - - - Transaction fee - Frais de transaction - - - Net amount - Montant net - - - Message - Message - - - Comment - Commentaire - - - Transaction ID - ID de la transaction - - - Merchant - Marchand - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Les pièces générées doivent mûrir pendant %1 blocs avant de pouvoir être dépensées. Lorsque vous avez généré ce bloc, il a été diffusé sur le réseau pour être ajouté à la chaîne de blocs. S’il échoue a intégrer la chaîne, son état sera modifié en « non accepté » et il ne sera pas possible de le dépenser. Ceci peut arriver occasionnellement si un autre nœud génère un bloc à quelques secondes du votre. - - - Debug information - Informations de débogage - - - Transaction - Transaction - - - Inputs - Entrées - - - Amount - Montant - - - true - vrai - - - false - faux - - - - TransactionDescDialog - - Transaction details - Détails de la transaction - - - This pane shows a detailed description of the transaction - Ce panneau affiche une description détaillée de la transaction - - - - TransactionTableModel - - Date - Date - - - Type - Type - - - Address - Adresse - - - Open for %n more block(s) - Ouvert pour %n bloc de plusOuvert pour %n blocs de plus - - - Open until %1 - Ouvert jusqu'à %1 - - - Offline - Déconnecté - - - Unconfirmed - Non confirmé - - - Confirming (%1 of %2 recommended confirmations) - Confirmation (%1 sur %2 confirmations recommandées) - - - Confirmed (%1 confirmations) - Confirmée (%1 confirmations) - - - Conflicted - En conflit - - - Immature (%1 confirmations, will be available after %2) - Immature (%1 confirmations, sera disponible après %2) - - - This block was not received by any other nodes and will probably not be accepted! - Ce bloc n’a été reçu par aucun autre nœud et ne sera probablement pas accepté ! - - - Generated but not accepted - Généré mais pas accepté - - - Received with - Reçue avec - - - Received from - Reçue de - - - Received via Darksend - Reçu par Darksend - - - Sent to - Envoyée à - - - Payment to yourself - Paiement à vous-même - - - Mined - Miné - - - Darksend Denominate - Dénomination Darksend - - - Darksend Collateral Payment - Paiement Darksend Collatéral - - - Darksend Make Collateral Inputs - Darksend Création d'Entrées Collatérales - - - Darksend Create Denominations - Darksend Création de Dénominations - - - Darksent - Darksent - - - watch-only - lecture seule - - - (n/a) - (n.d) - - - Transaction status. Hover over this field to show number of confirmations. - État de la transaction. Laissez le pointeur de la souris sur ce champ pour voir le nombre de confirmations. - - - Date and time that the transaction was received. - Date et heure de réception de la transaction. - - - Type of transaction. - Type de transaction. - - - Whether or not a watch-only address is involved in this transaction. - Si une adresse en lecture seule est impliquée dans cette transaction. - - - Destination address of transaction. - L’adresse de destination de la transaction. - - - Amount removed from or added to balance. - Montant ajouté ou enlevé au solde. - - - - TransactionView - - All - Toutes - - - Today - Aujourd’hui - - - This week - Cette semaine - - - This month - Ce mois-ci - - - Last month - Le mois dernier - - - This year - Cette année - - - Range... - Intervalle... - - - Most Common - Les Plus Courants - - - Received with - Reçue avec - - - Sent to - Envoyée à - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend Création d'Entrées Collatérales - - - Darksend Create Denominations - Darksend Création de Dénominations - - - Darksend Denominate - Dénomination Darksend - - - Darksend Collateral Payment - Paiement Darksend Collatéral - - - To yourself - À vous-même - - - Mined - Miné - - - Other - Autres - - - Enter address or label to search - Saisir une adresse ou une étiquette à rechercher - - - Min amount - Montant min. - - - Copy address - Copier l’adresse - - - Copy label - Copier l’étiquette - - - Copy amount - Copier le montant - - - Copy transaction ID - Copier l'ID de la transaction - - - Edit label - Modifier l’étiquette - - - Show transaction details - Afficher les détails de la transaction - - - Export Transaction History - Exporter l'historique des transactions - - - Comma separated file (*.csv) - Valeurs séparées par des virgules (*.csv) - - - Confirmed - Confirmée - - - Watch-only - Lecture seule - - - Date - Date - - - Type - Type - - - Label - Étiquette - - - Address - Adresse - - - ID - ID - - - Exporting Failed - L'exportation a échoué - - - There was an error trying to save the transaction history to %1. - Une erreur est survenue lors de l'enregistrement de l'historique des transactions vers %1. - - - Exporting Successful - Exportation réussie - - - The transaction history was successfully saved to %1. - L'historique des transactions a été sauvegardée avec succès vers %1. - - - Range: - Intervalle : - - - to - à - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unité utilisée pour montrer les montants. Cliquez pour choisir une autre unité. - - - - WalletFrame - - No wallet has been loaded. - Aucun portefeuille de chargé. - - - - WalletModel - - Send Coins - Envoyer des pièces - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX ne supporte pas des transferts aussi élevés. Les transactions sont pour le moment limitées à %11 DASH. - - - - WalletView - - &Export - &Exporter - - - Export the data in the current tab to a file - Exporter les données de l'onglet courant vers un fichier - - - Selected amount: - Montant sélectionné: - - - Backup Wallet - Sauvegarder le portefeuille - - - Wallet Data (*.dat) - Données de portefeuille (*.dat) - - - Backup Failed - Échec de la sauvegarde - - - There was an error trying to save the wallet data to %1. - Une erreur est survenue lors de l'enregistrement des données de portefeuille vers %1. - - - Backup Successful - Sauvegarde réussie - - - The wallet data was successfully saved to %1. - Les données de portefeuille ont été enregistrées avec succès vers %1 - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Se lier à l'adresse donnée et toujours l'écouter. Utilisez la notation [host]:port pour l'IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Impossible d’obtenir un verrou sur le répertoire de données %s. Dash Core fonctionne probablement déjà. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend utilise les montants dénominés exacts pour envoyer des fonds, vous pourriez simplement avoir besoin d'anonymiser plus de pièces. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Passer en mode de test de régression qui utilise une chaîne spéciale dans laquelle les blocs sont résolus instantanément. - - - Error: Listening for incoming connections failed (listen returned error %s) - Erreur: L'écoute de connections entrantes a échouée (erreur retournée: %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Exécuter une commande lorsqu'une alerte pertinente est reçue ou si nous voyons une bifurcation vraiment étendue (%s dans la commande est remplacé par le message) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Exécuter la commande lorsqu'une transaction de portefeuille change (%s dans la commande est remplacée par TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Exécuter la commande lorsque le meilleur bloc change (%s dans cmd est remplacé par le hachage du bloc) - - - In this mode -genproclimit controls how many blocks are generated immediately. - Dans ce mode -genproclimit contrôle combien de blocs sont générés immédiatement. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX nécessite des entrées avec au moins 6 confirmations, vous devriez attendre quelques minutes avant de réessayer. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Nom pour construire l'URL pour l'entrée KeePass qui conserve la phrase de passe du portefeuille - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Requête pour adresses de pairs via recherche DNS, si peu d'adresses (par défaut: 1 sauf si -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Définir la taille maximale en octets des transactions prioritaires/à frais modiques (par défaut : %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Définir le nombre d'exétrons de vérification des scripts (%u à %d, 0 = auto, < 0 = laisser ce nombre de cœurs inutilisés, par défaut : %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Ceci est une pré-version de test - l'utiliser à vos risques et périls - ne pas l'utiliser pour miner ou pour des applications marchandes - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Impossible de se lier à %s sur cet ordinateur. Dash Core fonctionne probablement déjà. - - - Unable to locate enough Darksend denominated funds for this transaction. - Impossible de localiser suffisamment de fonds Darksend dénominés pour cette transaction. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Impossible de localiser suffisamment de fonds non-dénominés Darksend pour cette transaction qui ne sont pas égaux à 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Attention : -paytxfee est réglée sur un montant très élevé ! Il s'agit des frais de transaction que vous payerez si vous envoyez une transaction. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Attention : Le réseau ne semble pas totalement d'accord ! Quelques mineurs semblent éprouver des difficultés. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Attention : Nous ne semblons pas être en accord complet avec nos pairs ! Vous pourriez avoir besoin d'effectuer une mise à niveau, ou d'autres nœuds du réseau pourraient avoir besoin d'effectuer une mise à niveau. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Avertissement : une erreur est survenue lors de la lecture de wallet.dat ! Toutes les clefs ont été lues correctement mais les données de transaction ou les entrées du carnet d'adresses sont peut-être incorrectes ou manquantes. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Avertissement : wallet.dat corrompu, données récupérées ! Le fichier wallet.dat original a été enregistré en tant que wallet.{timestamp}.bak dans %s ; si votre solde ou transactions sont incorrects vous devriez effectuer une restauration depuis une sauvegarde. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Vous devez définir masternodeprivkey dans la configuration. Veuillez consulter la documentation pour plus d'aide. - - - (default: 1) - (par défaut : 1) - - - Accept command line and JSON-RPC commands - Accepter les commandes de JSON-RPC et de la ligne de commande - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Accepter les connexions entrantes (par défaut : 1 si aucun -proxy ou -connect ) - - - Add a node to connect to and attempt to keep the connection open - Ajouter un nœud auquel se connecter et tenter de garder la connexion ouverte - - - Allow DNS lookups for -addnode, -seednode and -connect - Autoriser les recherches DNS pour -addnode, -seednode et -connect - - - Already have that input. - Entrée déjà présente. - - - Attempt to recover private keys from a corrupt wallet.dat - Tenter de récupérer les clefs privées d'un wallet.dat corrompu - - - Block creation options: - Options de création de bloc : - - - Can't denominate: no compatible inputs left. - Ne peux pas dénommée: pas d'entrées compatibles restantes. - - - Cannot downgrade wallet - Impossible de revenir à une version inférieure du portefeuille - - - Cannot resolve -bind address: '%s' - Impossible de résoudre l'adresse -bind : « %s » - - - Cannot resolve -externalip address: '%s' - Impossible de résoudre l'adresse -externalip : « %s » - - - Cannot write default address - Impossible d'écrire l'adresse par défaut - - - Collateral not valid. - Collatéral invalide. - - - Connect only to the specified node(s) - Ne se connecter qu'au(x) nœud(s) spécifié(s) - - - Connect to a node to retrieve peer addresses, and disconnect - Se connecter à un nœud pour obtenir des adresses de pairs puis se déconnecter - - - Connection options: - Options de connexion : - - - Corrupted block database detected - Base corrompue de données des blocs détectée - - - Darksend options: - Options Darksend : - - - Debugging/Testing options: - Options de test/de débogage : - - - Discover own IP address (default: 1 when listening and no -externalip) - Découvrir sa propre adresse IP (par défaut : 1 lors de l'écoute et si aucun -externalip) - - - Do not load the wallet and disable wallet RPC calls - Ne pas charger le portefeuille et désactiver les appels RPC - - - Do you want to rebuild the block database now? - Voulez-vous reconstruire la base de données des blocs maintenant ? - - - Done loading - Chargement terminé - - - Entries are full. - Les entrées sont pleines. - - - Error initializing block database - Erreur lors de l'initialisation de la base de données des blocs - - - Error initializing wallet database environment %s! - Erreur lors de l'initialisation de l'environnement de la base de données du portefeuille %s ! - - - Error loading block database - Erreur du chargement de la base de données des blocs - - - Error loading wallet.dat - Erreur lors du chargement de wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Erreur lors du chargement de wallet.dat : portefeuille corrompu - - - Error opening block database - Erreur lors de l'ouverture de la base de données des blocs - - - Error reading from database, shutting down. - Erreur à la lecture de la base de données, arrêt en cours. - - - Error recovering public key. - Erreur à la récupération de la clé publique. - - - Error - Erreur - - - Error: Disk space is low! - Erreur : l'espace disque est faible ! - - - Error: Wallet locked, unable to create transaction! - Erreur : Portefeuille verrouillé, impossible de créer la transaction ! - - - Error: You already have pending entries in the Darksend pool - Erreur : Vous avez déjà des entrées en attente dans la pool Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Échec de l'écoute sur un port quelconque. Utilisez -listen=0 si vous voulez ceci. - - - Failed to read block - La lecture du bloc a échoué - - - If <category> is not supplied, output all debugging information. - Si <category> n'est pas indiqué, extraire toutes les données de débogage. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = garder les méta-données de tx, par ex nom de compte et infos de paiements, 2 = supprimer méta-données) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Permettre connections JSON-RPC depuis la source spécifiée. Valide pour <ip> sont: une IP seule (ex. 1.2.3.4), un réseau/masque (ex. 1.2.3.4/255.255.255.0) ou un réseau/CIDR (ex. 1.2.3.4/24). Ce paramétre peut être utilisé plusieurs fois. - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Une erreur est survenue lors du réglage RPC avec l'adresse %s port %u pour écouter: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Se lier à l'adresse donnée et mettre les pairs qui se connectent en liste blanche. Utilisez la notation [hôte]:port pour l'IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Se lier à l'adresse indiquée pour écouter des connections JSON-RPC. Utilisez la notation [hôte]:port pour l'IPv6. Ce paramètre peut être utilisée à plusieurs reprises (par défaut: se lie a toutes les interfaces) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Change le comportement d'un vote de budget finalisé automatique. mode=auto: Vote uniquement pour le budget finalisé qui correspond a mon budget généré. (string, par défaut : auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Limiter continuellement les transactions gratuites à <n>*1000 octets par minute (par défaut : %u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Créer les nouveaux fichiers avec les permissions systèmes par défaut, au lieu du umask 077 (utile seulement si le wallet est désactivé) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Effacer toutes les transactions du portefeuille et récupère celle qui font partie de la chaine de blocs via -rescan au démarrage - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Désactivez toutes les fonctionnalités liées à Dash (Masternode, Darksend, InstantX, Budgetisation) (0-1, par défaut: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Distribué sous la licence logicielle MIT, voir le fichier joint COPYING ou <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Activer instantx, montrer les confirmations pour les transactions verrouillées (bool, par defaut: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Activer l'utilisation automatique de Darksend pour les fonds stockés dans ce portefeuille (0-1, défaut: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Erreur: Paramètre obsolète -socks. Il n'est plus possible d'indiquer la version SOCKS, seul les proxy SOCKS5 sont supportés. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Les frais (en DASH/ko) inférieurs à ce seuil sont considérés comme nuls pour le relayage (par défaut : %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Les frais (en DASH/ko) inférieurs à ce seuil sont considérés comme nuls pour la création de transactions (par défaut : %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Purger l’activité de la base de données de la zone de mémoire vers le journal sur disque tous les <n> mégaoctets (par défaut : %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Détection de sorties dénominées non confirmées, attente de leur confirmation pour continuer. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Degré de profondeur de la vérification des blocs -checkblocks (0-4, par défaut : %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Si paytxfee n'est pas indiqué, inclure assez de frais pour que les transactions commencent leur confirmation en moyenne dans les n blocs (par défaut : %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Montant invalide pour -maxtxfee=<montant> : « %s » (doit être au moins du montant de frais minrelay de %s pour éviter des transactions bloquées) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Lors du minage, journaliser la priorité des transactions et les frais par ko (par défaut : %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Maintenir un index complet des transactions, utilisé par l'appel rpc getrawtransaction (par défaut : %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Taille maximale des données dans les transactions support de données que l'on relaye et mine (par défaut : %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Frais totaux maximum pour une transaction portefeuille unique, si trop bas, risque d'annulation pour transactions trop volumineuses (par défaut : %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Délai en secondes de refus de reconnexion pour les pairs présentant un mauvais comportement (par défaut : %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Extraire les informations de débogage (par défaut : %u, fournir <category> est optionnel) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Fournir des liquidités à Darksend en mélangeant occasionnellement mais régulièrement des pièces (0-100, par défaut : %u, 1=très fréquent, frais élevés, 100=très rare, frais bas) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Priorité haute requise pour relayer les transactions à frais modiques ou nuls (par défaut : %u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Envoyer les informations de débogage/trace vers la console au lieu du fichier debug.log (par défaut: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Définir la limite processeur définissant quand la génération est en fonction (-1 = illimité, par défaut : %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Afficher N confirmations for une transaction verrouillée réussie (0-9999, default : %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Ce produit comprend des logiciels développés par le projet OpenSSL afin d'être utilisés dans la boîte à outils OpenSSL <https://www.openssl.org/>, un logiciel de chiffrement écrit par Eric Young et un logiciel UPnP développé par Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Pour utiliser dashd, ou le paramètre -server de dash-qt, vous devez définir un rpc mot de passe dans le fichier de configuration: -%s -Il est recommandé que vous utilisiez ce mot de passe aléatoire: -rpcuser=dashrpc -rpcpassword=%s -(Vous ne devez pas vous souvenir de ce mot de passe) -Le nom d'utilisateur et le mot de passe NE DOIVENT PAS être équivalent. -Si le fichier n'existe pas, créé le avec les permissions de lecture uniquement pour le propriétaire. -Il est recommandé de régler alertnotify pour que vous soyez averti des problèmes; -Pour exemple: alertnotify=echo %%s | mail -s "Alerte Dash" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Impossible de localiser suffisamment de fonds pour cette transaction qui ne sont pas égaux à 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Utiliser un serveur proxy SOCKS5 séparé pour atteindre les pairs par les services cachés de Tor (par défaut : %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Attention : -maxtxfee est réglée sur un montant très élevé ! Il s'agit des frais de transaction que vous payerez si vous envoyez une transaction. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Attention : Veuillez vérifier que la date et l'heure de votre ordinateur sont justes ! Si votre horloge n'est pas à l'heure, Dash Core ne fonctionnera pas correctement. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Pairs en liste blanche qui se connectent via le masque réseau ou adresse IP. Peut être spécifié de multiples fois. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Pairs en liste blanche ne peuvent être bannis pour DoS et leurs transactions sont toujours relayées, même si elles sont déjà en mémoire, utile par ex. pour une passerelle - - - (9999 could be used only on mainnet) - (9999 n'est utilisable que sur mainnet) - - - (default: %s) - (par défaut: %s) - - - <category> can be: - - <category> peut être : - - - - Accept public REST requests (default: %u) - Accepter les requetes REST publiques (par défaut: %u) - - - Acceptable ciphers (default: %s) - Chiffrements acceptables (par défaut: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Toujours requêter via recherche DNS pour des adresses de pairs (par défaut: %u) - - - Cannot resolve -whitebind address: '%s' - Impossible de résoudre l'adresse -whitebind : « %s » - - - Connect through SOCKS5 proxy - Connexion à travers un serveur mandataire SOCKS5 - - - Connect to KeePassHttp on port <port> (default: %u) - Connecter à KeePassHttp sur le port <port> (par défaut: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i The Bitcoin Core Developers - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i The Dash Core Developers - - - Could not parse -rpcbind value %s as network address - Impossible d'analyser la valeur -rpcbind %s en tant qu'adresse réseau - - - Darksend is idle. - Darksend est inactif. - - - Darksend request complete: - Requête Darksend complète : - - - Darksend request incomplete: - Requête Darksend incomplète. - - - Disable safemode, override a real safe mode event (default: %u) - Désactiver le mode sans échec, passer outre un événement sans échec réel (par défaut : %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Autoriser le client à agir en tant que masternode (0-1, par défaut : %u) - - - Error connecting to Masternode. - Erreur de connexion au masternode. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Erreur au chargement de wallet.dat : le Portefeuille nécessite une nouvelle version de Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Erreur: Une erreur interne fatale est survenue, voir debug.log pour les détails - - - Error: Can't select current denominated inputs - Erreur: Impossible de selectionner les entrées denommées - - - Error: Unsupported argument -tor found, use -onion. - Erreur: Paramètre -tor non supporté, utilisez -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Frais (en DASH/ko) à ajouter aux transactions que vous envoyez (par défaut: %s) - - - Finalizing transaction. - Finalisation de la transaction. - - - Force safe mode (default: %u) - Forcer le mode sans échec (par défaut : %u) - - - Found enough users, signing ( waiting %s ) - Nombre suffisant d'utilisateurs trouvé, signature ( attente %s ) - - - Found enough users, signing ... - Nombre suffisant d'utilisateurs trouvé, signature ... - - - Generate coins (default: %u) - Générer des pièces (défaut : %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Nombre de blocs à vérifier au démarrage (par défaut : %u, 0 = tous) - - - Importing... - Importation... - - - Imports blocks from external blk000??.dat file - Importe des blocs depuis un fichier blk000??.dat externe - - - Include IP addresses in debug output (default: %u) - Inclure les adresses IP dans la sortie debug (par défaut: %u) - - - Incompatible mode. - Mode incompatible. - - - Incompatible version. - Version incompatible. - - - Incorrect or no genesis block found. Wrong datadir for network? - Bloc de genèse incorrect ou introuvable. Mauvais répertoire de données pour le réseau ? - - - Information - Informations - - - Initialization sanity check failed. Dash Core is shutting down. - Les tests de cohérences lors de l'initialisation ont échoués. Dash Core est en cours de fermeture. - - - Input is not valid. - L'entrée est invalide. - - - InstantX options: - Options InstantX : - - - Insufficient funds. - Fonds insuffisants - - - Invalid -onion address: '%s' - Adresse -onion invalide : « %s » - - - Invalid -proxy address: '%s' - Adresse -proxy invalide : « %s » - - - Invalid amount for -maxtxfee=<amount>: '%s' - Montant invalide pour -maxtxfee=<montant> : « %s » - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Montant invalide pour -minrelayfee=<montant> : « %s » - - - Invalid amount for -mintxfee=<amount>: '%s' - Montant invalide pour -mintxfee=<montant> : « %s » - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Montant invalide pour -paytxfee=<montant> : « %s » (minimum possible: %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Montant invalide pour -paytxfee=<montant> : « %s » - - - Last successful Darksend action was too recent. - La dernière action Darksend réussie est trop récente. - - - Limit size of signature cache to <n> entries (default: %u) - Limiter la taille du cache des signatures à <n> entrées (par défaut : %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Écouter les connexions JSON-RPC sur <port> (par défaut : %u ou tesnet : %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Écouter les connexions sur <port> (par défaut: %u ou testnet: %u) - - - Loading budget cache... - Chargement du cache de budget... - - - Loading masternode cache... - Chargement du cache de masternode... - - - Loading masternode payment cache... - Chargement du cache de paiement masternode... - - - Lock is already in place. - Verrou déjà en place. - - - Lock masternodes from masternode configuration file (default: %u) - Vérouiller les masternodes depuis le fichier de configuration masternode (par défaut : %u) - - - Maintain at most <n> connections to peers (default: %u) - Garder au plus <n> connexions avec les pairs (par défaut : %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Tampon maximal de réception par connexion, <n>*1000 octets (par défaut : %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Tampon maximal d'envoi par connexion », <n>*1000 octets (par défaut : %u) - - - Mixing in progress... - Mélange en cours... - - - Need to specify a port with -whitebind: '%s' - Un port doit être spécifié avec -whitebind: '%s' - - - No Masternodes detected. - Aucun Masternode détecté. - - - No compatible Masternode found. - Aucun Masternode compatible trouvé. - - - Not in the Masternode list. - Absent de la liste des Masternodes. - - - Number of automatic wallet backups (default: 10) - Nombre de sauvegarde automatique de portefeuille (par défaut : 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - N'accepter qu'une chaîne de blocs correspondant aux points de vérification intégrés (par défaut : %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Se connecter uniquement aux nœuds du réseau <net> (IPv4, IPv6 ou onion) - - - Prepend debug output with timestamp (default: %u) - Ajouter l'horodatage au début de la sortie de débogage (par défaut : %u) - - - Run a thread to flush wallet periodically (default: %u) - Exécuter une tâche pour purger le portefeuille périodiquement (par défaut : %u) - - - Send trace/debug info to debug.log file (default: %u) - Envoyer les informations de débogage/trace au fichier debug.log (par défaut: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - N'envoyer que des transactions sans frais si possible (par défaut : %u) - - - Server certificate file (default: %s) - Fichier de certification du serveur (par défaut : %s) - - - Server private key (default: %s) - Clef privée du serveur (par défaut : %s) - - - Set external address:port to get to this masternode (example: %s) - Définir une adresse:port externe pour accéder à ce masternode (exemple : %s) - - - Set key pool size to <n> (default: %u) - Définir la taille de la réserve de clefs à <n> (par défaut : %u) - - - Set minimum block size in bytes (default: %u) - Définir la taille de bloc minimale en octets (par défaut : %u) - - - Set the number of threads to service RPC calls (default: %d) - Définir le nombre de fils d’exécution pour desservir les appels RPC (par défaut : %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Définit le drapeau DB_PRIVATE dans l'environnement de la BD du portefeuille (par défaut : %u) - - - Signing timed out. - Signature expirée. - - - Specify configuration file (default: %s) - Définir le fichier de configuration (par défaut : %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Spécifier le délai d'expiration de la connexion en millisecondes (minimum : 1, par défaut : %d) - - - Specify masternode configuration file (default: %s) - Définir le fichier de configuration du masternode (par défaut : %s) - - - Specify pid file (default: %s) - Définir le fichier pid (défaut : %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Dépenser la monnaie non confirmée lors de l'envoi de transactions (par défaut : %u) - - - Stop running after importing blocks from disk (default: %u) - Arrêter après l'importation des blocs du disque (par défaut : %u) - - - Submitted following entries to masternode: %u / %d - Les entrées suivantes ont été envoyées au masternode: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Envoyé au masternode, en attente d'entrées supplémentaires ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Soumis au masternode, dans la file d'attente %s - - - Synchronization failed - La synchronisation a échouée - - - Synchronization finished - La synchronisation est terminée - - - Synchronizing budgets... - Synchronisation des budgets... - - - Synchronizing masternode winners... - Synchronisation des masternodes vainqueurs... - - - Synchronizing masternodes... - Synchronisation des masternodes... - - - Synchronizing sporks... - Synchronisation des sporks... - - - This is not a Masternode. - Ceci n'est pas un masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Seuil de déconnexion des pairs présentant un mauvais comportement (par défaut : %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Utiliser l'intégration KeePass 2 en utilisant le greffon KeePassHttp (par défaut : %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Utiliser N masternodes différents pour anonymiser les fonds (2-8, par défaut : %u) - - - Use UPnP to map the listening port (default: %u) - Utiliser l'UPnP pour mapper le port d'écoute (par défaut : %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Le portefeuille devait être réécrit : redémarrer Dash Core pour terminer l'opération. - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Attention : l'argument obsolète -benchmark a été ignoré, utiliser -debug=bench - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Attention : l'argument obsolète -debugnet a été ignoré, utiliser -debug=net - - - Will retry... - Va réessayer ... - - - Invalid masternodeprivkey. Please see documenation. - masternodeprivkey invalide. Veuillez vous référer à la documentation. - - - (must be 9999 for mainnet) - (doit être 9999 pour mainnet) - - - Can't find random Masternode. - Masternode aléatoire introuvable. - - - Can't mix while sync in progress. - Ne peux pas mélanger pendant la synchronisation. - - - Could not parse masternode.conf - Impossible d'analyser masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Masque de réseau inconnu spécifié sur -whitelist : « %s » - - - Invalid port detected in masternode.conf - Port non valide détecté dans masternode.conf - - - Invalid private key. - Clé privée invalide. - - - Invalid script detected. - Script invalide détecté. - - - KeePassHttp id for the established association - Id KeePassHttp pour l'association établie - - - KeePassHttp key for AES encrypted communication with KeePass - Clé KeePassHttp pour la communication chiffrée AES avec KeePass - - - Keep N DASH anonymized (default: %u) - Maintenir N dash anonymisé en permanence (défaut: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Garder au plus <n> transactions sans connexion en mémoire (par défaut : %u) - - - Last Darksend was too recent. - Le dernier Darksend est trop récent. - - - Line: %d - Ligne: %d - - - Loading addresses... - Chargement des adresses... - - - Loading block index... - Chargement de l’index des blocs... - - - Loading wallet... (%3.2f %%) - Chargement du portefeuille... (%3.2f %%) - - - Loading wallet... - Chargement du portefeuille... - - - Masternode options: - Options Masternode : - - - Masternode queue is full. - La file d'attente du masternode est pleine. - - - Masternode: - Masternode : - - - Missing input transaction information. - Informations de transaction entrante manquantes. - - - No funds detected in need of denominating. - Aucuns fonds détectés nécessitant une dénomination. - - - No matching denominations found for mixing. - Pas de dénominations équivalentes trouvées pour le mélange. - - - Node relay options: - Options de noeud de relais: - - - Non-standard public key detected. - Clé publique non standard détectée. - - - Not compatible with existing transactions. - Non compatible avec les transactions existantes. - - - Not enough file descriptors available. - Pas assez de descripteurs de fichiers de disponibles. - - - Options: - Options : - - - Password for JSON-RPC connections - Mot de passe pour les connexions JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Options RPC SSL : (voir le wiki Bitcoin pour les instructions de configuration de SSL) - - - RPC server options: - Options du serveur RPC : - - - RPC support for HTTP persistent connections (default: %d) - Support RPC pour connections HTTP persistantes (par défaut : %d) - - - Randomly drop 1 of every <n> network messages - Abandonner aléatoirement 1 message du réseau sur <n> - - - Randomly fuzz 1 of every <n> network messages - Tester aléatoirement 1 message du réseau sur <n> - - - Rebuild block chain index from current blk000??.dat files - Reconstruire l'index de la chaîne de blocs à partir des fichiers blk000??.dat courants - - - Receive and display P2P network alerts (default: %u) - Recevoir et afficher les alertes réseau P2P (par défaut : %u) - - - Relay and mine data carrier transactions (default: %u) - Relayer et miner les transactions de support de données (par défaut : %u) - - - Relay non-P2SH multisig (default: %u) - Relayer les multisig non-P2SH (par défaut : %u) - - - Rescan the block chain for missing wallet transactions - Réanalyser la chaîne de blocs pour les transactions de portefeuille manquantes - - - Rescanning... - Nouvelle analyse... - - - Run in the background as a daemon and accept commands - Fonctionner en arrière-plan en tant que démon et accepter les commandes - - - Session not complete! - Session incomplète! - - - Session timed out. - Session expirée. - - - Set database cache size in megabytes (%d to %d, default: %d) - Définir la taille du cache de la base de données en mégaoctets (%d to %d, default: %d) - - - Set maximum block size in bytes (default: %d) - Définir la taille minimale de bloc en octets (par défaut : %d) - - - Set the masternode private key - Définir la clé privée du masternode - - - Show all debugging options (usage: --help -help-debug) - Montrer toutes les options de débogage (utilisation : --help --help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Réduire le fichier debug.log lors du démarrage du client (par défaut : 1 lorsque -debug n'est pas présent) - - - Signing failed. - La signature a échoué. - - - Signing transaction failed - La signature de la transaction a échoué - - - Specify data directory - Spécifier le répertoire de données - - - Specify wallet file (within data directory) - Spécifiez le fichier de portefeuille (dans le répertoire de données) - - - Specify your own public address - Spécifier votre propre adresse publique - - - This help message - Ce message d'aide - - - This is experimental software. - Ceci est un logiciel expérimental. - - - This is intended for regression testing tools and app development. - Ceci est à l'intention des outils de test de régression et du développement applicatif. - - - Transaction amount too small - Montant de la transaction trop bas - - - Transaction amounts must be positive - Les montants de transaction doivent être positifs - - - Transaction created successfully. - Transaction créée avec succès. - - - Transaction fees are too high. - Les frais de transaction sont trop élevés. - - - Transaction not valid. - Transaction invalide. - - - Transaction too large for fee policy - La transaction est trop volumineuse pour les règles de frais en vigueur - - - Transaction too large - Transaction trop volumineuse - - - Transmitting final transaction. - Transmission de la transaction finale. - - - Unable to bind to %s on this computer (bind returned error %s) - Impossible de se lier à %s sur cet ordinateur (erreur bind retournée %s) - - - Unable to sign spork message, wrong key? - Impossible de signer le message spork, mauvaise clé? - - - Unknown network specified in -onlynet: '%s' - Réseau inconnu spécifié sur -onlynet : « %s » - - - Unknown state: id = %u - État inconnu: id = %u - - - Upgrade wallet to latest format - Mettre à niveau le portefeuille vers le format le plus récent - - - Use OpenSSL (https) for JSON-RPC connections - Utiliser OpenSSL (https) pour les connexions JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Utiliser l'UPnP pour mapper le port d'écoute (par défaut : 1 lors de l'écoute) - - - Use the test network - Utiliser le réseau de test - - - Username for JSON-RPC connections - Nom d'utilisateur pour les connexions JSON-RPC - - - Value more than Darksend pool maximum allows. - Valeur supérieure au maximum autorisé par le pool. - - - Verifying blocks... - Vérification des blocs en cours... - - - Verifying wallet... - Vérification du portefeuille en cours... - - - Wallet %s resides outside data directory %s - Le portefeuille %s réside en dehors du répertoire de données %s - - - Wallet is locked. - Le Portefeuille est verrouillé. - - - Wallet options: - Options du portefeuille : - - - Wallet window title - Titre de la fenêtre du portefeuille - - - Warning - Avertissement - - - Warning: This version is obsolete, upgrade required! - Avertissement : cette version est obsolète, une mise à niveau est nécessaire ! - - - You need to rebuild the database using -reindex to change -txindex - Vous devez reconstruire la base de données en utilisant -reindex afin de modifier -txindex - - - Your entries added successfully. - Vos entrées ajoutées avec succès. - - - Your transaction was accepted into the pool! - Votre transaction a été acceptée dans la pool! - - - Zapping all transactions from wallet... - Supprimer toutes les transactions du portefeuille... - - - on startup - au démarrage - - - wallet.dat corrupt, salvage failed - wallet.dat corrompu, la récupération a échoué - - - \ No newline at end of file diff --git a/src/qt/locale/dash_it.ts b/src/qt/locale/dash_it.ts deleted file mode 100644 index dcdce039e28a..000000000000 --- a/src/qt/locale/dash_it.ts +++ /dev/null @@ -1,3848 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Bottone destro per modificare l'indirizzo o l'etichetta - - - Create a new address - Crea un nuovo indirizzo - - - &New - &Nuovo - - - Copy the currently selected address to the system clipboard - Copia l'indirizzo attualmente selezionato negli appunti - - - &Copy - &Copia - - - Delete the currently selected address from the list - Cancella l'indirizzo attualmente selezionato dalla lista - - - &Delete - &Cancella - - - Export the data in the current tab to a file - Esporta su file i dati della tabella corrente - - - &Export - &Esporta - - - C&lose - C&hiudi - - - Choose the address to send coins to - Scegli l'indirizzo a cui inviare i dash - - - Choose the address to receive coins with - Scegli l'indirizzo con cui ricevere dash - - - C&hoose - Sc&egli - - - Sending addresses - Indirizzi d'invio - - - Receiving addresses - Indirizzi di ricezione - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questi sono i tuoi indirizzi Dash per inviare i pagamenti. Controlla sempre l'ammontare e l'indirizzo destinatario prima di inviare i dash. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Questi sono i tuoi indirizzi di Dash per ricevere i pagamenti. Si raccomanda di usare un nuovo indirizzo di ricezione per ogni operazione. - - - &Copy Address - &Copia l'indirizzo - - - Copy &Label - Copia &l'etichetta - - - &Edit - &Modifica - - - Export Address List - Esporta Lista Indirizzi - - - Comma separated file (*.csv) - Testo CSV (*.csv) - - - Exporting Failed - Esportazione Fallita. - - - There was an error trying to save the address list to %1. Please try again. - C'é stato un errore mentre si salvava la lista di indirizzi a %1. Per favore provaci di nuovo. - - - - AddressTableModel - - Label - Etichetta - - - Address - Indirizzo - - - (no label) - (nessuna etichetta) - - - - AskPassphraseDialog - - Passphrase Dialog - Finestra parola d'ordine - - - Enter passphrase - Inserisci la parola d'ordine - - - New passphrase - Nuova parola d'ordine - - - Repeat new passphrase - Ripeti la nuova parola d'ordine - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Serve a disabilitare - - - For anonymization only - Per la sola anomizzazione - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Inserisci la nuova parola d'ordine per il portafoglio.<br/>Si prega di usare una parola d'ordine di <b>dieci o più caratteri casuali</b>, o <b>otto o più parole</b>. - - - Encrypt wallet - Cifra il portafoglio - - - This operation needs your wallet passphrase to unlock the wallet. - Quest'operazione necessita della parola d'ordine per sbloccare il portafoglio. - - - Unlock wallet - Sblocca il portafoglio - - - This operation needs your wallet passphrase to decrypt the wallet. - Quest'operazione necessita della parola d'ordine per decifrare il portafoglio. - - - Decrypt wallet - Decifra il portafoglio - - - Change passphrase - Cambia la parola d'ordine - - - Enter the old and new passphrase to the wallet. - Inserisci la vecchia e la nuova parola d'ordine per il portafoglio. - - - Confirm wallet encryption - Conferma la cifratura del portafoglio - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Attenzione: se crittografi il tuo portafoglio e perdi la tua parola d'ordine, <b>PERDERAI TUTTI I TUOI DASH</b>! - - - Are you sure you wish to encrypt your wallet? - Si è sicuri di voler cifrare il portafoglio? - - - Wallet encrypted - Portafoglio cifrato - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash adesso si chiuderá per finire il processo di crittografia. Ricorda che crittografare il tuo portafoglio non ti da una protezione totale se il tuo computer é infettato da malware - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: qualsiasi backup del file portamonete effettuato in precedenza dovrà essere sostituito con il file del portafoglio cifrato appena generato. Per ragioni di sicurezza, i precedenti backup del file del portamonete non cifrato diventeranno inservibili non appena si inizierà ad utilizzare il nuovo portafoglio cifrato. - - - Wallet encryption failed - Cifratura del portafoglio fallita - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Cifratura del portafoglio fallita a causa di un errore interno. Il portafoglio non è stato cifrato. - - - The supplied passphrases do not match. - Le parola d'ordine inserite non corrispondono. - - - Wallet unlock failed - Sblocco del portafoglio fallito - - - The passphrase entered for the wallet decryption was incorrect. - La parola d'ordine inserita per la decifrazione del portafoglio è errata. - - - Wallet decryption failed - Decifrazione del portafoglio fallita - - - Wallet passphrase was successfully changed. - Parola d'ordine del portafoglio modificata con successo. - - - Warning: The Caps Lock key is on! - Attenzione: il tasto Blocco maiuscole è attivo! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Portafoglio - - - Node - Nodo - - - &Overview - &Sintesi - - - Show general overview of wallet - Mostra lo stato generale del portafoglio - - - &Send - &Invia - - - Send coins to a Dash address - Spedire dash ad un indirizzo Dash - - - &Receive - &Ricevi - - - Request payments (generates QR codes and dash: URIs) - Richieste di pagamenti (genera codici QR e dash: URLs) - - - &Transactions - &Transazioni - - - Browse transaction history - Mostra la cronologia delle transazioni - - - E&xit - E&sci - - - Quit application - Chiudi applicazione - - - &About Dash Core - &Su Dash Core - - - Show information about Dash Core - Mostra la informazione su Dash Core - - - About &Qt - Informazioni su &Qt - - - Show information about Qt - Mostra informazioni su Qt - - - &Options... - &Opzioni... - - - Modify configuration options for Dash - Modifica le opzioni di configurazione di Dash - - - &Show / Hide - &Mostra / Nascondi - - - Show or hide the main Window - Mostra o nascondi la Finestra principale - - - &Encrypt Wallet... - &Cifra il portafoglio... - - - Encrypt the private keys that belong to your wallet - Cifra le chiavi private che appartengono al tuo portafoglio - - - &Backup Wallet... - &Backup Portafoglio... - - - Backup wallet to another location - Effettua il backup del portafoglio - - - &Change Passphrase... - &Cambia la parola d'ordine... - - - Change the passphrase used for wallet encryption - Cambia la parola d'ordine utilizzata per la cifratura del portafoglio - - - &Unlock Wallet... - &Sblocca Portafoglio - - - Unlock wallet - Sblocca il portafoglio - - - &Lock Wallet - &Blocca Portafoglio - - - Sign &message... - Firma il &messaggio... - - - Sign messages with your Dash addresses to prove you own them - Firma i messaggi con il tuo indirizzo Dash per dimostrarne che li possiedi - - - &Verify message... - &Verifica messaggio... - - - Verify messages to ensure they were signed with specified Dash addresses - Verificare i messaggi per assicurarsi che sono firmati con gli indirizzi specificati di Dash - - - &Information - &Informazioni - - - Show diagnostic information - Mostra l'informazione di diagnostica - - - &Debug console - &Console di Debug - - - Open debugging console - Apri la console di Debug - - - &Network Monitor - &Monitor di rete - - - Show network monitor - Mostra il monitor di rete - - - Wallet &Repair - Riparare Portafoglio - - - Show wallet repair options - Mostrare le opzioni per riparare il portafoglio - - - Open &Configuration File - Apri il &File della configurazione - - - Open configuration file - Apri il file di configurazione - - - Show Automatic &Backups - Mostra Copie Automatiche - - - Show automatically created wallet backups - Mostra le copie del portafoglio create automaticamente - - - &Sending addresses... - &Indirizzi d'invio... - - - Show the list of used sending addresses and labels - Mostra la lista degli indirizzi di invio utilizzati - - - &Receiving addresses... - Indirizzi di &ricezione... - - - Show the list of used receiving addresses and labels - Mostra la lista degli indirizzi di ricezione utilizzati - - - Open &URI... - Apri &URI... - - - Open a dash: URI or payment request - Apri un dash: URI o una richiesta di pagamento - - - &Command-line options - Opzioni riga di &comando - - - Dash Core client - Cliente Dash Core - - - Processed %n blocks of transaction history. - Processato %n blocco della cronologia transazioni.Processati %n blocchi della cronologia transazioni. - - - Show the Dash Core help message to get a list with possible Dash command-line options - Mostra il messaggio di aiuto di Dash Core per ottenere una lista con le possibili opzioni di linea di comando di Dash - - - &File - &File - - - &Settings - &Impostazioni - - - &Tools - &Strumenti - - - &Help - &Aiuto - - - Tabs toolbar - Barra degli strumenti "Tabs" - - - %n active connection(s) to Dash network - %n connessione attiva alla rete Dash%n connessioni attive alla rete Dash - - - Synchronizing with network... - Sincronizzazione con la rete in corso... - - - Importing blocks from disk... - Importazione blocchi dal disco... - - - Reindexing blocks on disk... - Re-indicizzazione blocchi su disco... - - - No block source available... - Nessuna fonte di blocchi disponibile - - - Up to date - Aggiornato - - - %n hour(s) - %n ora %n ore - - - %n day(s) - %n giorno%n giorni - - - %n week(s) - %n settimana%n settimane - - - %1 and %2 - %1 e %2 - - - %n year(s) - %n anno%n anni - - - %1 behind - Indietro di %1 - - - Catching up... - In aggiornamento... - - - Last received block was generated %1 ago. - L'ultimo blocco ricevuto è stato generato %1 fa. - - - Transactions after this will not yet be visible. - Transazioni successive a questa non saranno ancora visibili. - - - Error - Errore - - - Warning - Attenzione - - - Information - Informazioni - - - Sent transaction - Transazione inviata - - - Incoming transaction - Transazione ricevuta - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Data: %1 -Quantità: %2 -Tipo: %3 -Indirizzo: %4 - - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Il portafoglio è <b>cifrato</b> ed attualmente <b>sbloccato</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Il portafoglio é crittografato e attualmente sbloccato solo per anonimizzare - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Il portafoglio è <b>cifrato</b> ed attualmente <b>bloccato</b> - - - - ClientModel - - Network Alert - Avviso di rete - - - - CoinControlDialog - - Quantity: - Quantità: - - - Bytes: - Byte: - - - Amount: - Importo: - - - Priority: - Priorità: - - - Fee: - Commissione: - - - Coin Selection - Selezione Moneta - - - After Fee: - Dopo Commissione: - - - Change: - Resto: - - - (un)select all - (de)seleziona tutto - - - Tree mode - Modalità Albero - - - List mode - Modalità Lista - - - (1 locked) - (1 bloccato) - - - Amount - Importo - - - Received with label - Ricevuto tramite l'etichetta - - - Received with address - Ricevuto tramite l'indirizzo - - - Date - Data - - - Confirmations - Conferme: - - - Confirmed - Confermato - - - Priority - Priorità - - - Copy address - Copia l'indirizzo - - - Copy label - Copia l'etichetta - - - Copy amount - Copia l'importo - - - Copy transaction ID - Copia l'ID transazione - - - Lock unspent - Blocca i non spesi - - - Unlock unspent - Sblocca i non spesi - - - Copy quantity - Copia quantità - - - Copy fee - Copia commissione - - - Copy after fee - Copia al netto della commissione - - - Copy bytes - Copia byte - - - Copy priority - Copia priorità - - - Copy change - Copia resto - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Selezionati input non anonimizzati.<b>Darksend sará disabilitato.</b><br><br>Se vuoi ancora usare Darksend, per favore per prima cosa togli la selezione a tutti gli inputs non anonimizzati e dopo controlla il Darksend checkbox di nuovo. - - - highest - massima - - - higher - superiore - - - high - alta - - - medium-high - medio-alta - - - n/a - n/a - - - medium - media - - - low-medium - medio-bassa - - - low - bassa - - - lower - minore - - - lowest - minima - - - (%1 locked) - (%1 bloccato) - - - none - nessuno - - - yes - - - - no - no - - - This label turns red, if the transaction size is greater than 1000 bytes. - Questa etichetta diventa rossa se la dimensione della transazione supera i 1000 bytes - - - This means a fee of at least %1 per kB is required. - Questo significa che è richiesta una commissione di almeno %1 per ogni kB. - - - Can vary +/- 1 byte per input. - Può variare di +/- 1 byte per input. - - - Transactions with higher priority are more likely to get included into a block. - Le transazioni con priorità più alta hanno più probabilità di essere incluse in un blocco. - - - This label turns red, if the priority is smaller than "medium". - Questa etichetta diventa rossa se la priorità è inferiore a "media". - - - This label turns red, if any recipient receives an amount smaller than %1. - Questa etichetta diventa rossa se uno qualsiasi dei destinatari riceve un ammontare inferiore di %1. - - - (no label) - (nessuna etichetta) - - - change from %1 (%2) - resto da %1 (%2) - - - (change) - (resto) - - - - DarksendConfig - - Configure Darksend - Configura Darksend - - - Basic Privacy - Privacy base - - - High Privacy - Privacy alta - - - Maximum Privacy - Privacy massima - - - Please select a privacy level. - Selezionare il livello di privacy - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Usa 2 separati masternode per mischiare fino al 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Usa 8 separati masternode per mischiare fino al 1000 DASH - - - Use 16 separate masternodes - Usa 16 separati masternode - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Questa opzione è la più veloce e ti costerà ~0.025DRK circa per anonimizzare 1000DRK - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Questa opzione è moderatamente veloce e costerà 0.05DRK circa per anonimizzare 1000DRK - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1DRK ogni 1000DRK anonimizzati. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Questa è la più lenta ma più sicura opzione. Usare il massimo grado di anonimizzazione costerà - - - Darksend Configuration - Configurazione Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Dark send è statto correttamente impostato su base (%1 e 2 round). Puoi cambiare questa impostazione in qualsiasi momento tu lo voglia dalla finestra di configurazione. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend è stata impostata correttamente a elevato (%1 e 8 turni). È possibile modificare in qualsiasi momento aprendo schermata di configurazione di Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend è stato correttamente settato al massimo (%1 e 16 rounds). Puoi cambiarlo quando vuoi aprendo la finestra di configurazione di Dash - - - - EditAddressDialog - - Edit Address - Modifica l'indirizzo - - - &Label - &Etichetta - - - The label associated with this address list entry - L'etichetta associata con questa voce della lista degli indirizzi - - - &Address - &Indirizzo - - - The address associated with this address list entry. This can only be modified for sending addresses. - L'indirizzo associato a questa voce della rubrica. Può essere modificato solo per gli indirizzi d'invio. - - - New receiving address - Nuovo indirizzo di ricezione - - - New sending address - Nuovo indirizzo d'invio - - - Edit receiving address - Modifica indirizzo di ricezione - - - Edit sending address - Modifica indirizzo d'invio - - - The entered address "%1" is not a valid Dash address. - L'indirizzo inserito "%1" non é un indirizzo Dash valido - - - The entered address "%1" is already in the address book. - L'indirizzo inserito "%1" è già in rubrica. - - - Could not unlock wallet. - Impossibile sbloccare il portafoglio. - - - New key generation failed. - Generazione della nuova chiave non riuscita. - - - - FreespaceChecker - - A new data directory will be created. - Sarà creata una nuova cartella dati. - - - name - Nome - - - Directory already exists. Add %1 if you intend to create a new directory here. - La cartella esiste già. Aggiungi %1 se intendi creare qui una nuova cartella. - - - Path already exists, and is not a directory. - Il percorso è già esistente e non è una cartella. - - - Cannot create data directory here. - Qui non è possibile creare una cartella dati. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - versione - - - About Dash Core - Su Dash Core - - - Command-line options - Opzioni della riga di comando - - - Usage: - Utilizzo: - - - command-line options - opzioni riga di comando - - - UI options - UI opzioni - - - Choose data directory on startup (default: 0) - Scegli una cartella dati all'avvio (predefinito: 0) - - - Set language, for example "de_DE" (default: system locale) - Imposta lingua, ad esempio "it_IT" (predefinita: lingua di sistema) - - - Start minimized - Avvia ridotto a icona - - - Set SSL root certificates for payment request (default: -system-) - Imposta i certificati radice SSL per le richieste di pagamento (predefinito: -system-) - - - Show splash screen on startup (default: 1) - Mostra finestra di presentazione all'avvio (predefinito: 1) - - - - Intro - - Welcome - Benvenuto - - - Welcome to Dash Core. - Benvenuto in Dash Core - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Essendo la prima volta nella quale il programma viene lanciato, puoi scegliere dove Dash Core memorizzerà i propri dati. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core scaricherà e salverà una copia della blocco catena. Almeno %1GB di dati sarà immagazzinato in questa cartella e aumenterà col tempo. Anche il portafoglio sarà conservato in questa cartella. - - - Use the default data directory - Usa la cartella dati predefinita - - - Use a custom data directory: - Usa una cartella dati personalizzata: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Errore: La cartella dati "%1" specificata non può essere creata. - - - Error - Errore - - - %1 GB of free space available - %1 1 GB di spazio libero disponibile - - - (of %1 GB needed) - (di %1 GB richiesti) - - - - OpenURIDialog - - Open URI - Apri URI - - - Open payment request from URI or file - Apri richiesta di pagamento da URI o file - - - URI: - URI: - - - Select payment request file - Seleziona il file di richiesta di pagamento - - - Select payment request file to open - Seleziona il file di richiesta di pagamento da aprire - - - - OptionsDialog - - Options - Opzioni - - - &Main - &Principale - - - Automatically start Dash after logging in to the system. - Esegui automaticamente Dash Core all'avvio del sistema. - - - &Start Dash on system login - &Esegui Dash al login di sistema - - - Size of &database cache - Dimensione della cache del &database. - - - MB - MB - - - Number of script &verification threads - Numero di thread di &verifica degli script - - - (0 = auto, <0 = leave that many cores free) - (0 = automatico, <0 = lascia questo numero di core liberi) - - - Darksend rounds to use - Round darksend da utilizzare - - - This amount acts as a threshold to turn off Darksend once it's reached. - Tale importo si comporta come una soglia per spegnere Darksend una volta che è raggiunto. - - - Amount of Dash to keep anonymized - Quantitá di Dash da mantenere anonima. - - - W&allet - Port&afoglio - - - Accept connections from outside - Accetta connessioni dall'esterno - - - Allow incoming connections - Permetti connessioni in entrata - - - Connect to the Dash network through a SOCKS5 proxy. - Connetta a la rete Dash attraverso un SOCKS5 proxy - - - &Connect through SOCKS5 proxy (default proxy): - &Connessione attraverso proxy SOCKS5 (proxy predefinito): - - - Expert - Esperti - - - Whether to show coin control features or not. - Specifica se le funzionalita di coin control saranno visualizzate. - - - Enable coin &control features - Abilita le funzionalità di coin &control - - - &Spend unconfirmed change - &Spendere resti non confermati - - - &Network - Rete - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Apri automaticamente la porta utilizzata dal client Dash nel router. Funziona solo se il router supporta UPnP ed è attivato. - - - Map port using &UPnP - Mappa le porte tramite &UPnP - - - Proxy &IP: - &IP del proxy: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Indirizzo IP del proxy (es: IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Porta: - - - Port of the proxy (e.g. 9050) - Porta del proxy (es. 9050) - - - &Window - &Finestra - - - Show only a tray icon after minimizing the window. - Mostra solo nella tray bar quando si riduce ad icona. - - - &Minimize to the tray instead of the taskbar - &Minimizza nella tray bar invece che sulla barra delle applicazioni - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Riduci ad icona invece di uscire dall'applicazione quando la finestra viene chiusa. Se l'opzione è attiva, l'applicazione terminerà solo dopo aver selezionato Esci dal menu File. - - - M&inimize on close - M&inimizza alla chiusura - - - &Display - &Mostra - - - User Interface &language: - &Lingua Interfaccia Utente: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - La lingua dell'interfaccia utente può essere impostata qui. Questo settaggio sarà attivo al riavvio del client. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - La tua lingua manca o la traduzione è incompleta? Contribuisci alla traduzione qui: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Tema dell'interfaccia utente. - - - &Unit to show amounts in: - &Unità di misura con cui visualizzare gli importi: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Scegli l'unità di suddivisione predefinita da utilizzare per l'interfaccia e per l'invio di monete. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL di terze parti (es: un block explorer) che appaiono nella tabella delle transazioni come voci nel menu contestuale. %s nell'URL è sostituito dall'hash della transazione. -Più URL vengono separati da una barra verticale |. - - - Third party transaction URLs - URL di transazione di terze parti - - - Active command-line options that override above options: - Opzioni command-line attive che sostituiscono i settaggi sopra elencati: - - - Reset all client options to default. - Reimposta tutte le opzioni del client allo stato predefinito. - - - &Reset Options - &Ripristina Opzioni - - - &OK - &OK - - - &Cancel - &Cancella - - - default - predefinito - - - none - nessuno - - - Confirm options reset - Conferma ripristino opzioni - - - Client restart required to activate changes. - È necessario un riavvio del client per rendere attivi i cambiamenti. - - - Client will be shutdown, do you want to proceed? - Il client sarà arrestato, vuoi procedere? - - - This change would require a client restart. - Questo cambiamento richiede un riavvio del client. - - - The supplied proxy address is invalid. - L'indirizzo proxy che hai fornito è invalido. - - - - OverviewPage - - Form - Modulo - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Le informazioni visualizzate potrebbero essere datate. Il portafoglio si sincronizza automaticamente con il Dash rete dopo che una connessione viene stabilizzata, ma questo processo non è stato ancora completato. - - - Available: - Disponibile: - - - Your current spendable balance - Saldo spendibile attuale - - - Pending: - In attesa: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Totale delle transazioni in corso di conferma e che non sono ancora conteggiate nel saldo spendibile - - - Immature: - Immaturo: - - - Mined balance that has not yet matured - Importo generato dal mining e non ancora maturato - - - Balances - Saldi - - - Unconfirmed transactions to watch-only addresses - Transazione non confermata per gli indirizzi di sola consulta - - - Mined balance in watch-only addresses that has not yet matured - Importo generato dal mining negli indirizzi per sola consulta e non ancora maturato - - - Total: - Totale: - - - Your current total balance - Saldo totale attuale - - - Current total balance in watch-only addresses - Attuale importe totale negli indirizzi di sola consulta - - - Watch-only: - Solo per consultare - - - Your current balance in watch-only addresses - Importo attuale negli indirizzi di sola consulta - - - Spendable: - Spendibile: - - - Status: - Stato: - - - Enabled/Disabled - Attivato/Disattivato - - - Completion: - Completamento: - - - Darksend Balance: - Bilancio Darksend: - - - Amount and Rounds: - Ammontare e Round: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Round - - - Submitted Denom: - Denom inviata - - - n/a - n/a - - - Darksend - Darksend - - - Recent transactions - Transazione recente - - - Start/Stop Mixing - Start/Stop Mixing - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Il valore che hai richiesto al Mastermode. <br> Per mixare, gli altri utenti devono richiedere esattamente gli stessi valori. - - - (Last Message) - (Ultimo messaggio) - - - Try to manually submit a Darksend request. - Prova ad inserire una richiesta Darksend manualmente. - - - Try Mix - Prova il Mix - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Resetta lo stato corrente del Darksend (può interrompere il Darksend se è nel processo di mixaggio, costandoti una perdita economica!) - - - Reset - Reset - - - out of sync - non sincronizzato - - - Disabled - Disabilita - - - Start Darksend Mixing - Avvia Darksend mix - - - Stop Darksend Mixing - Ferma Darksend mix - - - No inputs detected - Non ci sono input rilevati - - - %n Rounds - %n Round%n Rounds - - - Found enough compatible inputs to anonymize %1 - Incontrati sufficienti inputs compatibili per anonimizzare %1 - - - Enabled - Abilitato - - - Last Darksend message: - - Ultimo messaggio Darksend - - - - N/A - N/D - - - Darksend was successfully reset. - Darksend è stato resettato con successo - - - Darksend requires at least %1 to use. - Darksend ha bisogno almeno dell' %1 per essere usato. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Portafoglio è bloccato e l'utente ha rifiutato di sbloccare. Disattivazione Darksend. - - - - PaymentServer - - Payment request error - Errore di richiesta di pagamento - - - Cannot start dash: click-to-pay handler - Impossibile avviare dash: gestore click-to-pay - - - URI handling - Gestione URI - - - Payment request fetch URL is invalid: %1 - URL di recupero della Richiesta di pagamento non valido: %1 - - - Payment request file handling - Gestione del file di richiesta del pagamento - - - Invalid payment address %1 - Invalido indirizzo di pago %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - Impossibile interpretare l'URI! La causa puó essere un indirizzo Dash non valido o parametri URI non corretti. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Il file di richiesta del pagamento non può essere letto! Il file in questione potrebbe essere non valido. - - - Payment request rejected - Richiesta di pago rifiutata - - - Payment request network doesn't match client network. - La rete della richiesta di pagamento non coincide con la rete del cliente. - - - Payment request has expired. - La richiesta di pagamento é scaduta - - - Payment request is not initialized. - La richiesta di pagamento non ha cominciato - - - Unverified payment requests to custom payment scripts are unsupported. - Le richieste di pagamento non verificate verso script di pagamento personalizzati non sono supportate. - - - Requested payment amount of %1 is too small (considered dust). - L'importo di pagamento richiesto di %1 è troppo basso (considerato come trascurabile). - - - Refund from %1 - Rimborso da %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Il pagamento richiesto %1 é troppo grande (%2 bytes, permesso %3 bytes). - - - Payment request DoS protection - Protezione DoS della richiesta di pago - - - Error communicating with %1: %2 - Errore di comunicazione con %1: %2 - - - Payment request cannot be parsed! - La richiesta di pagamento non può essere analizzata o processata! - - - Bad response from server %1 - Risposta errata da parte del server %1 - - - Network request error - Errore di richiesta di rete - - - Payment acknowledged - Pagamento riconosciuto - - - - PeerTableModel - - Address/Hostname - Indirizzo/Hostname - - - User Agent - Agente Utente - - - - QObject - - Amount - Importo - - - Enter a Dash address (e.g. %1) - Inserire un indirizzo Dash (e.g. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - RETE - - - UNKNOWN - SCONOSCIUTO - - - None - Nessuno - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Salva Immagine - - - &Copy Image - &Copia Immagine - - - Save QR Code - Salva codice QR - - - PNG Image (*.png) - Immagine PNG (*.png) - - - - RPCConsole - - Tools window - Finestra strumenti - - - &Information - &Informazioni - - - General - Generale - - - Name - Nome - - - Client name - Nome del client - - - N/A - N/D - - - Number of connections - Numero di connessioni - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Apri il file log di debug dall'attuale cartella dei dati. Può richiedere un paio di secondi per file di grossa dimensione. - - - &Open - &Apri - - - Startup time - Tempo di avvio - - - Network - Rete - - - Last block time - Ora del blocco più recente - - - Debug log file - File log del Debug - - - Using OpenSSL version - Versione OpenSSL in uso - - - Build date - Data di creazione - - - Current number of blocks - Numero attuale di blocchi - - - Client version - Versione client - - - Using BerkeleyDB version - Usando versione BerkeleyDB - - - Block chain - Block chain - - - &Console - &Console - - - Clear console - Cancella console - - - &Network Traffic - &Traffico di Rete - - - &Clear - &Cancella - - - Totals - Totali - - - Received - Ricevuto - - - Sent - Spedito - - - Select a peer to view detailed information. - Seleziona un peer per vedere informazione dettagliata - - - Direction - Direzione - - - Version - Versione - - - User Agent - Agente Utente - - - Services - Servizi - - - Connection Time - Tempo di connessione - - - Last Send - Ultimo Invio - - - Last Receive - Ultima Ricezione - - - Bytes Sent - Bytes Inviati - - - Bytes Received - Bytes Ricevuti - - - &Wallet Repair - &Riparare Portafoglio - - - Salvage wallet - Recuperare il portafoglio - - - Rescan blockchain files - Ripeti l'analisi dei file del blockchain - - - Recover transactions 1 - Ristabilire le transazioni 1 - - - Recover transactions 2 - Ristabilire le transazioni 2 - - - Upgrade wallet format - Aggiorna il formato del portafoglio - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - I bottoni sottostanti reiniziaranno il portafoglio con le opzioni di linea di comando per riparare il portafoglio e sistemare problemi con i file della blockchain corrotti o con transazioni perse o inadeguate - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -recuperareportafoglio: Tenta di recuperare le chiavi private da un wallet.dat corrotto. - - - -rescan: Rescan the block chain for missing wallet transactions. - -ripetereanalisi: Ripete l'analisi della catena dei blocchi per cercare le transazioni mancanti dal portamonete - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Recupera transazioni dalla catena di blocchi (mantiene i meta-data, es. il propietario del conto) - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Recupera transazioni dalla catena di blocchi (non conserva i meta-data) - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -aggiornaportafoglio: Aggiorna il portafoglio all'ultima versione in startup. (Nota: questo NON é un aggiornamento del portafoglio stesso!) - - - Wallet repair options. - Opzioni per riparare il portafoglio. - - - Rebuild index - Ricostruire l'indice - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -riindicizzare: Ricostruisce l'indice della catena di blocchi a partire dagli attuali blk000??.dat files - - - In: - Entrata: - - - Out: - Uscita: - - - Welcome to the Dash RPC console. - Benvenuto nella console RPC Dash - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Usa le frecce direzionali per navigare la cronologia, e <b>Ctrl-L</b> per cancellarla. - - - Type <b>help</b> for an overview of available commands. - Scrivi <b>help</b> per un riassunto dei comandi disponibili - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - via %1 - - - never - mai - - - Inbound - In entrata - - - Outbound - In uscita - - - Unknown - Sconosciuto - - - - ReceiveCoinsDialog - - R&euse an existing receiving address (not recommended) - R&iusa un indirizzo di ricezione (non raccomandato) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Messaggio opzionale da allegare alla richiesta di pagamento, che verrà visualizzato quando la richiesta verrà aperta. Nota: il messaggio non sarà inviato insieme al pagamento nel network Dash. - - - &Message: - &Messaggio: - - - An optional label to associate with the new receiving address. - Un'etichetta facoltativa da associare al nuovo indirizzo di ricezione - - - Use this form to request payments. All fields are <b>optional</b>. - Usa questo modulo per richiedere pagamenti. Tutti i campi sono <b>opzionali</b>. - - - &Label: - &Etichetta - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Un importo opzionale da associare alla richiesta. Lasciare vuoto o a zero per non richiedere un importo specifico. - - - &Amount: - &Importo: - - - &Request payment - &Richiedi pagamento - - - Clear all fields of the form. - Cancellare tutti i campi del modulo. - - - Clear - Cancella - - - Requested payments history - Cronologia pagamenti ricevuti - - - Show the selected request (does the same as double clicking an entry) - Mostra la richiesta selezionata (produce lo stesso effetto di un doppio click su una voce) - - - Show - Mostra - - - Remove the selected entries from the list - Rimuovi le voci selezionate dalla lista - - - Remove - Rimuovi - - - Copy label - Copia l'etichetta - - - Copy message - Copia messaggio - - - Copy amount - Copia l'importo - - - - ReceiveRequestDialog - - QR Code - Codice QR - - - Copy &URI - Copia &URI - - - Copy &Address - Copia &Indirizzo - - - &Save Image... - &Salva Immagine - - - Request payment to %1 - Richiesta di pagamento a %1 - - - Payment information - Informazioni pagamento - - - URI - URI - - - Address - Indirizzo - - - Amount - Importo - - - Label - Etichetta - - - Message - Messaggio - - - Resulting URI too long, try to reduce the text for label / message. - L'URI risultante è troppo lungo, prova a ridurre il testo nell'etichetta / messaggio. - - - Error encoding URI into QR Code. - Errore nella codifica dell'URI nel codice QR - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etichetta - - - Message - Messaggio - - - Amount - Importo - - - (no label) - (nessuna etichetta) - - - (no message) - (nessun messaggio) - - - (no amount) - (nessun importo) - - - - SendCoinsDialog - - Send Coins - Invia dash - - - Coin Control Features - Funzionalità di Coin Control - - - Inputs... - Input... - - - automatically selected - selezionato automaticamente - - - Insufficient funds! - Fondi insufficienti! - - - Quantity: - Quantità: - - - Bytes: - Byte: - - - Amount: - Importo: - - - Priority: - Priorità: - - - medium - media - - - Fee: - Commissione: - - - no - no - - - After Fee: - Dopo Commissione: - - - Change: - Resto: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Se questo è abilitato e l'indirizzo per il resto è vuoto o invalido, il resto sarà inviato ad un nuovo indirizzo generato appositamente. - - - Custom change address - Personalizza indirizzo di resto - - - Transaction Fee: - Commissione della transazione - - - Choose... - Scegli... - - - collapse fee-settings - Abbassare la finestra delle opzioni delle commissioni - - - Minimize - Ridurre - - - per kilobyte - per kilobyte - - - total at least - totale come minimo - - - Recommended: - Raccomandato - - - Confirmation time: - Tempo per la conferma: - - - normal - normale - - - fast - rapido - - - Send as zero-fee transaction if possible - Se é possibile, inviare una transazione senza commissione, - - - (confirmation may take longer) - (la conferma puó avere bisogno di tempo) - - - Confirm the send action - Conferma l'azione di invio - - - S&end - &Invia - - - Clear all fields of the form. - Cancellare tutti i campi del modulo. - - - Clear &All - Cancella &tutto - - - Send to multiple recipients at once - Invia a diversi beneficiari in una volta sola - - - Add &Recipient - &Aggiungi beneficiario - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Copia quantità - - - Copy amount - Copia l'importo - - - Copy fee - Copia commissione - - - Copy after fee - Copia dopo commissione - - - Copy bytes - Copia byte - - - Copy priority - Copia priorità - - - Copy change - Copia resto - - - using - utilizzando - - - anonymous funds - fondi anonimi - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend richiede questo importo da arrotondato al più vicino %1). - - - any available funds (not recommended) - tutti i fondi disponibili (non raccomandato) - - - and InstantX - e InstantX - - - %1 to %2 - %1 a %2 - - - Are you sure you want to send? - Sei sicuro di voler inviare? - - - are added as transaction fee - sono aggiunti come pagamento per la transazione - - - Confirm send coins - Conferma l'invio di dash - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Una commissione %1 volte piú alta che %2 per kB é considerata incredibilmente alta. - - - Estimated to begin confirmation within %n block(s). - Inizio della confirmazione stimato in %n bloccoInizio della confirmazione stimato in %n blocchi - - - The recipient address is not valid, please recheck. - L'indirizzo del beneficiario non è valido, si prega di ricontrollare. - - - The amount to pay must be larger than 0. - L'importo da pagare dev'essere maggiore di 0. - - - The amount exceeds your balance. - L'importo è superiore al tuo saldo attuale - - - The total exceeds your balance when the %1 transaction fee is included. - Il totale è superiore al tuo saldo attuale includendo la commissione di %1. - - - Duplicate address found, can only send to each address once per send operation. - Rilevato un indirizzo duplicato, è possibile inviare una sola volta agli indirizzi durante un'operazione di invio. - - - Transaction creation failed! - Creazione transazione fallita! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - La transazione è stata rifiutata! Questo può accadere se alcuni monete nel tuo portafoglio sono già stati spesi, ad esempio se hai utilizzato una copia del file wallet.dat per spendere monete e questi non sono stati considerati spesi dal portafoglio corrente. - - - Error: The wallet was unlocked only to anonymize coins. - Errore: il portafoglio era sbloccato solo per le monete anonimizzate - - - Pay only the minimum fee of %1 - Pagare solo la minima commissione di %1 - - - Warning: Invalid Dash address - ATTENZIONE: Indirizzo Dash non valido - - - Warning: Unknown change address - Attenzione: Indirizzo per il resto sconosciuto - - - (no label) - (nessuna etichetta) - - - - SendCoinsEntry - - This is a normal payment. - Questo è un normale pagamento. - - - Pay &To: - Paga &a: - - - The Dash address to send the payment to - L'indirizzo Dash per inviare il pagamento a - - - Choose previously used address - Scegli un indirizzo usato precedentemente - - - Alt+A - Alt+A - - - Paste address from clipboard - Incollare l'indirizzo dagli appunti - - - Alt+P - Alt+P - - - Remove this entry - Rimuovi questa voce - - - &Label: - &Etichetta - - - Enter a label for this address to add it to the list of used addresses - Inserisci un'etichetta per questo indirizzo per aggiungerlo alla lista degli indirizzi utilizzati - - - A&mount: - I&mporto: - - - Message: - Messaggio: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Un messaggio allegato con l'URI dash che verrà memorizzato nella transazione per il tuo referente. Nota: questo messaggio non verrà inviato attraverso il network Dash. - - - This is an unverified payment request. - Questa è una richiesta di pagamento non verificata. - - - Pay To: - Pagare a: - - - Memo: - Memo: - - - This is a verified payment request. - Questa è una richiesta di pagamento verificata. - - - Enter a label for this address to add it to your address book - Inserisci un'etichetta per questo indirizzo, per aggiungerlo nella rubrica - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core si sta chiudendo... - - - Do not shut down the computer until this window disappears. - Non spegnere il computer fino a quando questa finestra non si sarà chiusa. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Firme - Firma / Verifica un messaggio - - - &Sign Message - &Firma il messaggio - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Puoi firmare messaggi con i tuoi indirizzi in modo da dimostrarne il possesso. Presta attenzione a non firmare dichiarazioni vaghe, attacchi di phishing potrebbero cercare di spingerti ad apporre la tua firma su di esse. Firma solo dichiarazioni completamente dettagliate e delle quali condividi in pieno il contenuto. - - - The Dash address to sign the message with - L'indirizzo Dash con cui firmare il messaggio - - - Choose previously used address - Scegli un indirizzo usato precedentemente - - - Alt+A - Alt+A - - - Paste address from clipboard - Incolla l'indirizzo dagli appunti - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Inserisci qui il messaggio che vuoi firmare - - - Signature - Firma - - - Copy the current signature to the system clipboard - Copia la firma corrente nella clipboard - - - Sign the message to prove you own this Dash address - Firma il mssaggio per dimostrare il possesso di questo indirizzo Dash - - - Sign &Message - Firma &Messaggio - - - Reset all sign message fields - Reimposta tutti i campi della firma messaggio - - - Clear &All - Cancella &tutto - - - &Verify Message - &Verifica Messaggio - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Inserisci l'indirizzo del firmatario, il messaggio (assicurati di copiare esattamente anche i ritorni a capo, gli spazi, le tabulazioni, etc..) e la firma qui sotto, per verificare il messaggio. Presta attenzione a non vedere nella firma più di quanto non sia riportato nel messaggio stesso, per evitare di cadere vittima di attacchi di tipo man-in-the-middle. - - - The Dash address the message was signed with - L'indirizzo Dash con cui era firmato il messaggio - - - Verify the message to ensure it was signed with the specified Dash address - Verifica il messaggio per assicurarti sia stato firmato con l'indirizzo Dash specificato - - - Verify &Message - Verifica &Messaggio - - - Reset all verify message fields - Reimposta tutti i campi della verifica messaggio - - - Click "Sign Message" to generate signature - Clicca "Firma il messaggio" per ottenere la firma - - - The entered address is invalid. - L'indirizzo inserito non è valido. - - - Please check the address and try again. - Per favore controlla l'indirizzo e prova ancora - - - The entered address does not refer to a key. - L'indirizzo inserito non è associato a nessuna chiave. - - - Wallet unlock was cancelled. - Sblocco del portafoglio annullato. - - - Private key for the entered address is not available. - La chiave privata per l'indirizzo inserito non è disponibile. - - - Message signing failed. - Firma messaggio fallita. - - - Message signed. - Messaggio firmato. - - - The signature could not be decoded. - Non è stato possibile decodificare la firma. - - - Please check the signature and try again. - Per favore controlla la firma e prova ancora. - - - The signature did not match the message digest. - La firma non corrisponde al digest del messaggio. - - - Message verification failed. - Verifica messaggio fallita. - - - Message verified. - Messaggio verificato. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Versione%1 - - - The Bitcoin Core developers - Gli sviluppatori di Bitcoin Core - - - The Dash Core developers - Gli sviluppatori di Dash Core - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Aperto per %n blocco in piúAperto per %n blocchi in piú - - - Open until %1 - Aperto fino a %1 - - - conflicted - in conflitto - - - %1/offline (verified via instantx) - %1/offline (verificato via intantx) - - - %1/confirmed (verified via instantx) - %1/confermato (verificato via instantx) - - - %1 confirmations (verified via instantx) - %1 conferme (verificate via instantx) - - - %1/offline - %1/offline - - - %1/unconfirmed - %1/non confermato - - - %1 confirmations - %1 conferme - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/offline (InstantX verifica in corso - %2 di %3 firme) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/confermato (InstantX verifica in corso - %2 di %3 firme ) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 conferma (InstantX verifica in corso - %2 di %3 firme) - - - %1/offline (InstantX verification failed) - %1/offline (InstantX verifica fallita) - - - %1/confirmed (InstantX verification failed) - %1/confermato (InstantX verifica fallita) - - - Status - Stato - - - , has not been successfully broadcast yet - , non è stato ancora trasmesso con successo - - - , broadcast through %n node(s) - , trasmettere attraverso %n nodo, trasmettere attraverso %n nodi - - - Date - Data - - - Source - Sorgente - - - Generated - Generato - - - From - Da - - - unknown - sconosciuto - - - To - A - - - own address - proprio indirizzo - - - watch-only - Solo per consultare - - - label - etichetta - - - Credit - Credito - - - matures in %n more block(s) - Matura in %n blocco in piúMatura in %n blocchi in piú - - - not accepted - non accettato - - - Debit - Debito - - - Total debit - Debito totale - - - Total credit - Credito totale - - - Transaction fee - Commissione transazione - - - Net amount - Importo netto - - - Message - Messaggio - - - Comment - Commento - - - Transaction ID - ID della transazione - - - Merchant - Mercante - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - È necessario attendere %1 blocchi prima che i monete generati possano essere spesi. Quando è stato generato questo blocco, è stato trasmesso alla rete in modo da poter essere aggiunto alla blocco catena. Se l'inserimento avrà esito negativo il suo stato sarà modificato in "non accettato" e risulterà non spendibile. Questo può occasionalmente accadere se un altro nodo genera un blocco entro pochi secondi dal tuo. - - - Debug information - Informazione di debug - - - Transaction - Transazione - - - Inputs - Input - - - Amount - Importo - - - true - vero - - - false - falso - - - - TransactionDescDialog - - Transaction details - Dettagli sulla transazione - - - This pane shows a detailed description of the transaction - Questo pannello mostra una descrizione dettagliata della transazione - - - - TransactionTableModel - - Date - Data - - - Type - Tipo - - - Address - Indirizzo - - - Open for %n more block(s) - Aperto per %n blocco in piúAperto per %n blocchi in piú - - - Open until %1 - Aperto fino a %1 - - - Offline - Offline - - - Unconfirmed - Non confermato - - - Confirming (%1 of %2 recommended confirmations) - In conferma (%1 di %2 conferme raccomandate) - - - Confirmed (%1 confirmations) - Confermato (%1 conferme) - - - Conflicted - In conflitto - - - Immature (%1 confirmations, will be available after %2) - Immaturo (%1 conferme, sarà disponibile fra %2) - - - This block was not received by any other nodes and will probably not be accepted! - Questo blocco non è stato ricevuto dagli altri nodi e probabilmente non sarà accettato! - - - Generated but not accepted - Generati, ma non accettati - - - Received with - Ricevuto tramite - - - Received from - Ricevuto da - - - Received via Darksend - Ricevuto via Darksend - - - Sent to - Inviato a - - - Payment to yourself - Pagamento a te stesso - - - Mined - Ottenuto dal mining - - - Darksend Denominate - Darksend Denominazione - - - Darksend Collateral Payment - Darksend Collaterale Pagamento - - - Darksend Make Collateral Inputs - Darksend Fa Ingressi Collaterali - - - Darksend Create Denominations - Darksend Crea Denominazioni - - - Darksent - Darksent - - - watch-only - Solo per consultare - - - (n/a) - (N / a) - - - Transaction status. Hover over this field to show number of confirmations. - Stato della transazione. Passare con il mouse su questo campo per visualizzare il numero di conferme. - - - Date and time that the transaction was received. - Data e ora in cui la transazione è stata ricevuta. - - - Type of transaction. - Tipo di transazione. - - - Whether or not a watch-only address is involved in this transaction. - Incluso se in questa transazione é coinvolto un indirizzo di sola consulta - - - Destination address of transaction. - Indirizzo di destinazione della transazione. - - - Amount removed from or added to balance. - Importo rimosso o aggiunto al saldo. - - - - TransactionView - - All - Tutti - - - Today - Oggi - - - This week - Questa settimana - - - This month - Questo mese - - - Last month - Il mese scorso - - - This year - Quest'anno - - - Range... - Intervallo... - - - Most Common - Piú Comune - - - Received with - Ricevuto tramite - - - Sent to - Inviato a - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend Fa Ingressi Collaterali - - - Darksend Create Denominations - Darksend Crea Denominazioni - - - Darksend Denominate - Darksend Denominazione - - - Darksend Collateral Payment - Darksend Collaterale Pagamento - - - To yourself - A te stesso - - - Mined - Ottenuto dal mining - - - Other - Altro - - - Enter address or label to search - Inserisci un indirizzo o un'etichetta da cercare - - - Min amount - Importo minimo - - - Copy address - Copia l'indirizzo - - - Copy label - Copia l'etichetta - - - Copy amount - Copia l'importo - - - Copy transaction ID - Copia l'ID transazione - - - Edit label - Modifica l'etichetta - - - Show transaction details - Mostra i dettagli della transazione - - - Export Transaction History - Esporta lo storico delle transazioni - - - Comma separated file (*.csv) - Testo CSV (*.csv) - - - Confirmed - Confermato - - - Watch-only - Solo per consultare - - - Date - Data - - - Type - Tipo - - - Label - Etichetta - - - Address - Indirizzo - - - ID - ID - - - Exporting Failed - Esportazione Fallita. - - - There was an error trying to save the transaction history to %1. - Si è verificato un errore durante il salvataggio dello storico delle transazioni in %1. - - - Exporting Successful - Esportazione Riuscita - - - The transaction history was successfully saved to %1. - Lo storico delle transazioni e' stato salvato con successo in %1. - - - Range: - Intervallo: - - - to - a - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unitá per mostrare gli importi. Clicca per selezionare un'altra unitá. - - - - WalletFrame - - No wallet has been loaded. - Non è stato caricato alcun portafoglio. - - - - WalletModel - - Send Coins - Invia dash - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX non supporta ancora l'invio di somme così alte. Le transazioni sono attualmente limitate al %1 DASH. - - - - WalletView - - &Export - &Esporta - - - Export the data in the current tab to a file - Esporta su file i dati della tabella corrente - - - Backup Wallet - Backup Portafoglio - - - Wallet Data (*.dat) - Dati Portafoglio (*.dat) - - - Backup Failed - Backup Fallito - - - There was an error trying to save the wallet data to %1. - Si è verificato un errore durante il salvataggio dei dati del portafoglio in %1. - - - Backup Successful - Backup eseguito con successo - - - The wallet data was successfully saved to %1. - Il portafoglio è stato correttamente salvato in %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Associa all'indirizzo indicato e resta permanentemente in ascolto su questo. Usa la notazione [host]:porta per l'IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Impossibile ottenere un blocco sulla data directory %s. Dash Core è probabilmente già in esecuzione. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend utilizza esatto denominato importo a inviare fondi, si potrebbe semplicemente bisogno di anonimizzare alcuni più monete. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Entra in modalità di test di regressione, la quale usa una speciale catena in cui i blocchi possono essere risolti istantaneamente. - - - Error: Listening for incoming connections failed (listen returned error %s) - Errore: Ascolto per le connessioni in entrata non riuscita (ascoltare errore restituito %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Esegue un comando quando viene ricevuto un allarme rilevante o quando vediamo un fork veramente lungo (%s in cmd è sostituito dal messaggio) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Esegui comando quando una transazione del portamonete cambia (%s in cmd è sostituito da TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Esegui il comando quando il migliore blocco cambia(%s nel cmd è sostituito dall'hash del blocco) - - - In this mode -genproclimit controls how many blocks are generated immediately. - In questa modalità -genproclimit determina quanti blocchi saranno generati immediatamente. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX richiede input con almeno 6 conferme, potrebbe essere necessario attendere qualche minuto e poi riprovare. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Nome di costruire url per l'ingresso KeePass che memorizza la parola d'ordine portafoglio - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Fare domande per indirizzi pari via lookup DNS, se a corto di indirizzi (predefinita: 1 a meno -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Imposta la dimensione massima in byte delle transazioni ad alta-priorità/basse-commissioni (predefinita: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Imposta il numero di thread per la verifica degli script (da %u a %d, 0 = automatico, <0 = lascia questo numero di core liberi, predefinito: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Questa versione è una compilazione pre-rilascio - usala a tuo rischio - non utilizzarla per la generazione o per applicazioni di commercio - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Incapace di legare al %s su questo computer. Dash Core è probabilmente già funzionato. - - - Unable to locate enough Darksend denominated funds for this transaction. - Impossibile trovare fondi sufficienti Darksend denominati per questa transazione. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Impossibile trovare un numero sufficiente di non denominati fondi Darksend per questa operazione che non sono uguali a 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Attenzione: -paytxfee è molto alta. Questa è la commissione che si paga quando si invia una transazione. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Attenzione: La rete non sembra essere d'accordo pienamente! Alcuni minatori sembrano riscontrare problemi. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Attenzione: Sembra che non ci sia completo accordo con i nostri peer! Un aggiornamento da parte tua o degli altri nodi potrebbe essere necessario. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Attenzione: errore di lettura di wallet.dat! Tutte le chiavi sono state lette correttamente, ma i dati delle transazioni o le voci in rubrica potrebbero mancare o non essere corretti. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Attenzione: wallet.dat corrotto, dati recuperati! Il wallet.dat originale è stato salvato come wallet.{timestamp}.bak in %s; se il tuo saldo o le transazioni non sono corrette dovresti ripristinare da un backup. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Devi specificare una masternodeprivkey nella configurazione. Per favore consulta la documentazione di aiuto. - - - (default: 1) - (predefinito: 1) - - - Accept command line and JSON-RPC commands - Accetta comandi da riga di comando e JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Accetta connessioni dall'esterno (predefinito: 1 se no -proxy o -connect) - - - Add a node to connect to and attempt to keep the connection open - Aggiunge un nodo a cui connettersi e tenta di tenere aperta la connessione - - - Allow DNS lookups for -addnode, -seednode and -connect - Consenti ricerche DNS per -addnode, -seednode e -connect - - - Already have that input. - Hai già quello ingresso. - - - Attempt to recover private keys from a corrupt wallet.dat - Tenta di recuperare le chiavi private da un wallet.dat corrotto - - - Block creation options: - Opzioni creazione blocco: - - - Can't denominate: no compatible inputs left. - Non può denominare: no ingressi compatibili rimasto. - - - Cannot downgrade wallet - Non è possibile effettuare il downgrade del portafoglio - - - Cannot resolve -bind address: '%s' - Impossibile risolvere -bind address: '%s' - - - Cannot resolve -externalip address: '%s' - Impossibile risolvere indirizzo -externalip: '%s' - - - Cannot write default address - Non è possibile scrivere l'indirizzo predefinito - - - Collateral not valid. - Collateral non valido. - - - Connect only to the specified node(s) - Connetti solo al nodo specificato - - - Connect to a node to retrieve peer addresses, and disconnect - Connettiti ad un nodo per recuperare gli indirizzi dei peer e scollegati - - - Connection options: - Opzioni di connessione: - - - Corrupted block database detected - Rilevato database blocchi corrotto - - - Darksend options: - Opzioni Darksend: - - - Debugging/Testing options: - Opzioni di Debug/Test: - - - Discover own IP address (default: 1 when listening and no -externalip) - Scopre il proprio indirizzo IP (predefinito: 1 se in ascolto e no -externalip) - - - Do not load the wallet and disable wallet RPC calls - Non caricare il portafoglio e disabilita le chiamate RPC al portafoglio - - - Do you want to rebuild the block database now? - Vuoi ricostruire ora il database dei blocchi? - - - Done loading - Caricamento completato - - - Entries are full. - Entrate sono piene. - - - Error initializing block database - Errore durante l'inizializzazione del database dei blocchi - - - Error initializing wallet database environment %s! - Errore durante l'inizializzazione dell'ambiente %s del database del portafoglio! - - - Error loading block database - Errore caricamento database blocchi - - - Error loading wallet.dat - Errore caricamento wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Errore caricamento wallet.dat: Portafoglio corrotto - - - Error opening block database - Errore caricamento database blocchi - - - Error reading from database, shutting down. - Errore di lettura del database, spegnimento - - - Error recovering public key. - Errore nel recupero della chiave pubblica. - - - Error - Errore - - - Error: Disk space is low! - Errore: la spazio libero sul disco è insufficiente! - - - Error: Wallet locked, unable to create transaction! - Errore: portafoglio bloccato, impossibile creare la transazione! - - - Error: You already have pending entries in the Darksend pool - Errore: è già voci in sospeso in piscina Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Nessuna porta disponibile per l'ascolto. Usa -listen=0 se vuoi procedere comunque. - - - Failed to read block - Lettura blocco fallita - - - If <category> is not supplied, output all debugging information. - Se <category> non è specificata, mostra tutte le informazioni di debug. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1= mantiene il testo meta data p.es. propietario del conto e informazione richiesta di pagamento, 2 = scarta il testo meta data) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Permettere la connessione JSON-RPC dalla sorgente specificata. Validi come <ip> sono un singolo IP (p.es. 1.2.3.4), una network/netmask (p.es. 1.2.3.4/255.255.255.0) o una network/CIDR (p.es. 1.2.3.4/24). Questa opzione puó essere specificata molteplici volte - - - An error occurred while setting up the RPC address %s port %u for listening: %s - C'é stato un errore durante la configurazione dell'indirizzo RPC %s porta %u per l'ascolto: %s - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Cancella tutte le transazioni del portafoglio e sistema solo quelle parti della catena di blocchi mediante -rescan quando apri il portafoglio - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Abilita instantx, mostra conferme per le transazioni bloccate (bool, predefinito: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Abilita utilizzo di darksend automatizzato per i fondi conservati in questo portafoglio (0-1, predefinito: %u) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Le commissioni (in DASH/Kb) inferiori a questo valore saranno considerate nulle per la trasmissione (prefedinito:%s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Le commissioni (in DASH/Kb) inferiori a questo valore saranno considerate nulle per la creazione della transazione (prefedinito:%s) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Uscite denominate non confermati trovati, saranno aspettare che confermano per continua. - - - Darksend is idle. - Nessun Masternode trovato. - - - Darksend request complete: - Richiesta di Darksend completa: - - - Darksend request incomplete: - Richiesta di Darksend incompleta: - - - Error connecting to Masternode. - Errore di connessione al Masternode - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Errore caricando il wallet.dat: il Pertafoglio ha bisogno di una versione di Dash Core piú recente. - - - Error: A fatal internal error occured, see debug.log for details - Errore: Un - - - Finalizing transaction. - Finalizzando la transazione. - - - Generate coins (default: %u) - Monete generate (predefinito: %u) - - - Importing... - Importazione... - - - Imports blocks from external blk000??.dat file - Importa blocchi da un file blk000??.dat esterno - - - Incompatible mode. - Modalità incompatibile - - - Incompatible version. - Versione incompatibile - - - Incorrect or no genesis block found. Wrong datadir for network? - Blocco genesis non corretto o non trovato. Cartella dati errata? - - - Information - Informazioni - - - Initialization sanity check failed. Dash Core is shutting down. - Controllo di inizializzazione sanity fallito. Dash Core verrà chiuso. - - - Input is not valid. - L'input non è valido. - - - InstantX options: - Opzioni InstantX - - - Insufficient funds. - Fondi insufficienti. - - - Invalid -onion address: '%s' - Indirizzo -onion non valido: '%s' - - - Invalid -proxy address: '%s' - Indirizzo -proxy non valido: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Importo non valido per -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Importo non valido per -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' - Importo non valido per -paytxfee=<amount>: '%s' - - - Lock masternodes from masternode configuration file (default: %u) - Blocca i masternodes nel file di configurazione del masternode (default: %u) - - - Mixing in progress... - Mixing in corso... - - - No Masternodes detected. - Nessun Masternode trovato. - - - No compatible Masternode found. - Nessun compatibile Masternode trovato. - - - Not in the Masternode list. - Non si trova in lista di Masternode. - - - Invalid masternodeprivkey. Please see documenation. - masternodeprivkey non valida. Per favore consulta la documentazione - - - Invalid private key. - Chiave privata incompatibile - - - Invalid script detected. - Script invalido - - - KeePassHttp id for the established association - ID KeePassHttp per la connessione stabilita - - - KeePassHttp key for AES encrypted communication with KeePass - Chiave KeePassHttp per AES comunicazione cripra con KeePass - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Mantenere al massimo <n> le operazioni in collegabile in memoria (predefinito: %u) - - - Last Darksend was too recent. - L'ultima darksend è troppo recente - - - Loading addresses... - Caricamento indirizzi... - - - Loading block index... - Caricamento dell'indice del blocco... - - - Loading wallet... (%3.2f %%) - Caricando portafoglio... (%3.2f %%) - - - Loading wallet... - Caricamento portafoglio... - - - Masternode options: - Opzioni masternode: - - - Masternode queue is full. - La lista di masternode e' piena. - - - Masternode: - Masternode: - - - Missing input transaction information. - Mancano le informazioni di input della transazione - - - No funds detected in need of denominating. - Nessun fondo rilevato bisogno di denominare. - - - No matching denominations found for mixing. - Nessun denominazioni corrispondente trovato per la miscelazione. - - - Non-standard public key detected. - Fuori norma pubblica chiave e rilevato. - - - Not compatible with existing transactions. - Non compatibile con le operazioni esistenti. - - - Not enough file descriptors available. - Non ci sono abbastanza descrittori di file disponibili. - - - Options: - Opzioni: - - - Password for JSON-RPC connections - Password per connessioni JSON-RPC - - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Opzioni RPC SSL: (consulta la Bitcoin Wiki per le istruzioni relative alla configurazione SSL) - - - RPC server options: - Opzioni server RPC: - - - Randomly drop 1 of every <n> network messages - Scarta casualmente 1 ogni <n> messaggi di rete - - - Randomly fuzz 1 of every <n> network messages - Altera casualmente 1 ogni <n> messaggi di rete - - - Rebuild block chain index from current blk000??.dat files - Ricreare l'indice della catena di blocchi dai file blk000??.dat correnti - - - Rescan the block chain for missing wallet transactions - Ripeti analisi della catena dei blocchi per cercare le transazioni mancanti dal portafoglio - - - - Rescanning... - Ripetizione scansione... - - - Run in the background as a daemon and accept commands - Esegui in background come demone ed accetta i comandi - - - Session not complete! - Sessione non completata! - - - Set database cache size in megabytes (%d to %d, default: %d) - Imposta la dimensione cache del database in megabyte (%d a %d, predefinito: %d) - - - Set maximum block size in bytes (default: %d) - Imposta la dimensione massima del blocco in byte (predefinita: %d) - - - Set the masternode private key - Configura la chiave privata del Masternode - - - Show all debugging options (usage: --help -help-debug) - Mostra tutte le opzioni di debug (utilizzo: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Riduci il file debug.log all'avvio del client (predefinito: 1 se non impostato -debug) - - - Signing failed. - Firma fallita. - - - Signing transaction failed - Transazione di firma fallita - - - Specify data directory - Specifica la cartella dati - - - Specify wallet file (within data directory) - Specifica il file portafoglio (all'interno della cartella dati) - - - Specify your own public address - Specifica il tuo indirizzo pubblico - - - This help message - Questo messaggio di aiuto - - - - This is intended for regression testing tools and app development. - Questo è previsto per l'uso con test di regressione e per lo sviluppo di applicazioni. - - - Transaction amount too small - Importo transazione troppo piccolo - - - Transaction amounts must be positive - L'importo della transazione deve essere positivo - - - Transaction created successfully. - Transazione creata con successo. - - - Transaction fees are too high. - Commissioni della transazione troppo alte. - - - Transaction not valid. - Transazione non valida - - - Transaction too large - Transazione troppo grande - - - Unable to bind to %s on this computer (bind returned error %s) - Incapace di legare al %s su questo computer (legare restituito l'errore %s) - - - Unable to sign spork message, wrong key? - Impossibile firmare messaggio Spork, chiave sbagliato? - - - Unknown network specified in -onlynet: '%s' - Rete sconosciuta specificata in -onlynet: '%s' - - - Upgrade wallet to latest format - Aggiorna il portafoglio all'ultimo formato - - - Use OpenSSL (https) for JSON-RPC connections - Utilizzare OpenSSL (https) per le connessioni JSON-RPC - - - - Use UPnP to map the listening port (default: 1 when listening) - Usa UPnP per mappare la porta in ascolto (predefinito: 1 when listening) - - - Use the test network - Utilizza la rete di prova - - - Username for JSON-RPC connections - Nome utente per connessioni JSON-RPC - - - - Value more than Darksend pool maximum allows. - Più valore di Darksend piscina massima permette. - - - Verifying blocks... - Verifica blocchi... - - - Verifying wallet... - Verifica portafoglio... - - - Wallet %s resides outside data directory %s - Il portafoglio %s si trova al di fuori dalla cartella dati %s - - - Wallet is locked. - Portafoglio bloccato - - - Wallet options: - Opzioni portafoglio: - - - Warning - Attenzione - - - Warning: This version is obsolete, upgrade required! - Attenzione: questa versione è obsoleta, aggiornamento necessario! - - - You need to rebuild the database using -reindex to change -txindex - È necessario ricostruire il database usando -reindex per cambiare -txindex - - - Zapping all transactions from wallet... - Cancella e ricompila tutte le transazioni dal wallet... - - - on startup - all'avvio - - - wallet.dat corrupt, salvage failed - wallet.dat corrotto, recupero fallito - - - \ No newline at end of file diff --git a/src/qt/locale/dash_pl.ts b/src/qt/locale/dash_pl.ts deleted file mode 100644 index 9589ed27725b..000000000000 --- a/src/qt/locale/dash_pl.ts +++ /dev/null @@ -1,4538 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Kliknij prawym przyciskiem myszki w celu edycji adresu lub etykiety - - - Create a new address - Utwórz nowy adres - - - &New - &Nowy - - - Copy the currently selected address to the system clipboard - Skopiuj aktualnie wybrany adres do schowka - - - &Copy - &Kopiuj - - - Delete the currently selected address from the list - Usuń obecnie zaznaczony adres z listy - - - &Delete - &Usuń - - - Export the data in the current tab to a file - Eksportuj dane z aktywnej karty do pliku - - - &Export - &Eksportuj - - - C&lose - Z&amknij - - - Choose the address to send coins to - Wybierz adres na który wysłać monety - - - Choose the address to receive coins with - Wybierz adres do otrzymania monet. - - - C&hoose - W&ybierz - - - Sending addresses - Adres do wysyłania - - - Receiving addresses - Adres odbiorczy - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - To są twoje adresy Dash na które wysyłasz płatności. Zawsze upewnij się, że kwota i adres są prawidłowe zanim wyślesz monety. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - To są twoje adresy do otrzymywania Dashów. Zaleca się aby stworzyć nowy adres dla każdej transakcji - - - &Copy Address - &Kopiuj adres - - - Copy &Label - Kopiuj &Etykietę - - - &Edit - &Edytuj - - - Export Address List - Eksportuj listę adresów - - - Comma separated file (*.csv) - Plik porozdzielany przecinkami (*.csv) - - - Exporting Failed - Próba eksportu nie powiodła się - - - There was an error trying to save the address list to %1. Please try again. - Wystąpił błąd podczas próby zapisu listy adresów do %1. Proszę spróbować ponownie. - - - - AddressTableModel - - Label - Etykieta - - - Address - Adres - - - (no label) - (brak etykiety) - - - - AskPassphraseDialog - - Passphrase Dialog - Okienko Hasła - - - Enter passphrase - Wpisz hasło - - - New passphrase - Nowe hasło - - - Repeat new passphrase - Powtórz nowe hasło - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Służy do zablokowania funkcji wysyłania monet gdy konto użytkownika systemu operacyjnego zostało przejęte przez kogoś innego. Nie gwarantuje prawdziwego bezpieczeństwa. - - - For anonymization only - Tylko dla anonimizacji - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Wprowadź nowe hasło dla twojego portfela.<br/>Proszę używać hasła o długości co najmniej <b>dziesięciu (najlepiej losowych) znaków</b>, lub <b>co najmniej 8 słów</b>. - - - Encrypt wallet - Zaszyfruj portfel - - - This operation needs your wallet passphrase to unlock the wallet. - Ta operacja wymaga hasła do portfela aby móc go odblokować. - - - Unlock wallet - Odblokuj portfel - - - This operation needs your wallet passphrase to decrypt the wallet. - Ta operacja wymaga hasła do portfela aby móc go odszyfrować. - - - Decrypt wallet - Odszyfruj portfel - - - Change passphrase - Zmień hasło - - - Enter the old and new passphrase to the wallet. - Podaj stare i nowe hasło do portfela. - - - Confirm wallet encryption - Potwierdź szyfrowanie portfela - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Ostrzeżenie: Jeśli zaszyfrujesz swój portfel i zgubisz swoje hasło, <b>STRACISZ WSZYSTKIE MONETY DASH</b> - - - Are you sure you wish to encrypt your wallet? - Jesteś pewien, że chcesz zaszyfrować swój portfel? - - - Wallet encrypted - Portfel zaszyfrowany - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash zostanie teraz zamknięty aby zakończyć proces szyfrowania. Pamiętaj, że zaszyfrowanie portfela nie gwarantuje pełnej ochrony przed kradzieżą twoich monet przez złośliwe oprogramowanie. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - WAŻNE: Wszystkie wykonane wcześniej kopie pliku portfela powinny być zamienione na nowe, szyfrowane pliki. Z powodów bezpieczeństwa, poprzednie kopie nieszyfrowanych plików portfela staną się bezużyteczne jak tylko zaczniesz korzystać z nowego, szyfrowanego portfela. - - - Wallet encryption failed - Szyfrowanie portfela nie powiodło się - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Szyfrowanie portfela nie powiodło się z powodu wewnętrznego błędu. Twój portfel nie został zaszyfrowany. - - - The supplied passphrases do not match. - Podane hasła nie są takie same. - - - Wallet unlock failed - Odblokowanie portfela nie powiodło się - - - The passphrase entered for the wallet decryption was incorrect. - Wprowadzone hasło do odszyfrowania portfela jest niepoprawne. - - - Wallet decryption failed - Odszyfrowanie portfela nie powiodło się - - - Wallet passphrase was successfully changed. - Hasło portfela zostało pomyślnie zmienione. - - - Warning: The Caps Lock key is on! - Uwaga: Klawisz Caps Lock jest włączony - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Portfel - - - Node - Węzeł - - - &Overview - P&odsumowanie - - - Show general overview of wallet - Pokazuje ogólny zarys portfela - - - &Send - Wyślij - - - Send coins to a Dash address - Wyślij monety na adres Dash - - - &Receive - Odbie&rz - - - Request payments (generates QR codes and dash: URIs) - Poproś o płatności (generuje kod QR oraz dash: link) - - - &Transactions - &Transakcje - - - Browse transaction history - Przeglądaj historię transakcji - - - E&xit - &Zakończ - - - Quit application - Zamknij program - - - &About Dash Core - &O Dash Core - - - Show information about Dash Core - Pokaż informacje o Dash Core - - - About &Qt - O &Qt - - - Show information about Qt - Pokazuje informacje o Qt - - - &Options... - &Opcje... - - - Modify configuration options for Dash - Zmień opcje konfiguracji dla Dash - - - &Show / Hide - &Pokaż / Ukryj - - - Show or hide the main Window - Pokazuje lub ukrywa główne okno - - - &Encrypt Wallet... - Zaszyfruj Portf&el - - - Encrypt the private keys that belong to your wallet - Szyfruj klucze prywatne, dla twojego portfela - - - &Backup Wallet... - Wykonaj kopię zapasową... - - - Backup wallet to another location - Zapisz kopię zapasową portfela w innym miejscu - - - &Change Passphrase... - &Zmień hasło... - - - Change the passphrase used for wallet encryption - Zmień hasło użyte do szyfrowania portfela - - - &Unlock Wallet... - Odblok&uj Portfel - - - Unlock wallet - Odblokuj portfel - - - &Lock Wallet - Zab&lokuj Porftel - - - Sign &message... - Podpisz wiado&mość... - - - Sign messages with your Dash addresses to prove you own them - Podpisz wiadomości swoim adresem Dash aby udowodnić, że jesteś ich właścicielem. - - - &Verify message... - &Zweryfikuj wiadomość... - - - Verify messages to ensure they were signed with specified Dash addresses - Zweryfikuj wiadomości aby upewnić się, że zostały one podpisane wybranym adresem Dash - - - &Information - &Informacje - - - Show diagnostic information - Pokaż informacje diagnostyczne - - - &Debug console - Konsola &debugowania - - - Open debugging console - Otwórz konsole debugowania - - - &Network Monitor - Mo&nitor Sieci - - - Show network monitor - Pokaż monitor sieci - - - &Peers list - &lista peerów - - - Show peers info - Pokaż informacje peerów - - - Wallet &Repair - Naprawa po&rfela - - - Show wallet repair options - Pokaż opcje naprawy portfela - - - Open &Configuration File - Otwórz plik konfiguracji - - - Open configuration file - Otworz plik konfiguracji - - - Show Automatic &Backups - Pokaż automatyczne kopie zapasowe (&Backups) - - - Show automatically created wallet backups - Pokaż automatycznie stworzone kopie zapasowe porfela. - - - &Sending addresses... - Adres wysyłania - - - Show the list of used sending addresses and labels - Pokaż listę użytych adresów wysyłających i etykiety - - - &Receiving addresses... - Adres odbiorczy - - - Show the list of used receiving addresses and labels - Pokaż listę użytych adresów odbiorczych i etykiety - - - Open &URI... - Otwórz URI... - - - Open a dash: URI or payment request - Otwórz dash: Link lub żądanie zapłaty - - - &Command-line options - &Opcje konsoli - - - Dash Core client - Klient Dash Core - - - Processed %n blocks of transaction history. - Pobrano %n blok z historią transakcji.Przetworzony przez %n bloków historii transakcji.Pobranych zostało %n bloków z historią transakcji. - - - Synchronizing additional data: %p% - Synchronizuję dodatkowe dane: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Pokaż wiadomość pomocy Dash Core aby otrzymać listę z dostępnymi opcjami linii komend. - - - &File - &Plik - - - &Settings - P&referencje - - - &Tools - &Narzędzia - - - &Help - Pomo&c - - - Tabs toolbar - Pasek zakładek - - - %n active connection(s) to Dash network - %n aktywne połączenie do sieci Dash%n aktywne połączenia do sieci Dash%n aktywne połączenia do sieci Dash - - - Synchronizing with network... - Synchronizacja z siecią... - - - Importing blocks from disk... - Importowanie bloków z dysku... - - - Reindexing blocks on disk... - Ponowne indeksowanie bloków na dysku... - - - No block source available... - Brak dostępnych źródeł bloków... - - - Up to date - Aktualny - - - %n hour(s) - %n godzina%n godzin%n godziny - - - %n day(s) - %n dzień%n dni%n dni - - - %n week(s) - %n tydzień%n tygodni%n tygodnie - - - %1 and %2 - %1 i %2 - - - %n year(s) - %n rok%n lat%n lata - - - %1 behind - %1 wstecz - - - Catching up... - Łapanie bloków... - - - Last received block was generated %1 ago. - Ostatni otrzymany blok został wygenerowany %1 temu. - - - Transactions after this will not yet be visible. - Transakcje po tym momencie nie będą jeszcze widoczne. - - - Error - Błąd - - - Warning - Ostrzeżenie - - - Information - Informacja - - - Sent transaction - Transakcja wysłana - - - Incoming transaction - Transakcja przychodząca - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Data: %1 -Kwota: %2 -Typ: %3 -Adres: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portfel jest <b>zaszyfrowany</b> i obecnie <b>niezablokowany</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Portfel jest <b>zaszyfrowany</b> a obecnie <b>odblokowany</b> tylko w celu miksowania - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Portfel jest <b>zaszyfrowany</b> i obecnie <b>zablokowany</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Całość: %1 (zgodne z DS: %2 / włączone: %3) - - - Network Alert - Sieć Alert - - - - CoinControlDialog - - Quantity: - Ilość: - - - Bytes: - Bajtów: - - - Amount: - Kwota: - - - Priority: - Priorytet: - - - Fee: - Opłata: - - - Coin Selection - Wybór Monet - - - Dust: - Pył: - - - After Fee: - Po opłacie: - - - Change: - Reszta: - - - (un)select all - Zaznacz/Odznacz wszystko - - - Tree mode - Widok drzewa - - - List mode - Widok listy - - - (1 locked) - (1 zablokowana) - - - Amount - Kwota - - - Received with label - Otrzymane z nazwą - - - Received with address - Otrzymano z adresem - - - DS Rounds - Rundy DS - - - Date - Data - - - Confirmations - Potwierdzenia - - - Confirmed - Potwierdzony - - - Priority - Priorytet - - - Copy address - Kopiuj adres - - - Copy label - Kopiuj etykietę - - - Copy amount - Kopiuj kwotę - - - Copy transaction ID - Skopiuj ID transakcji - - - Lock unspent - Zablokuj - - - Unlock unspent - Odblokuj - - - Copy quantity - Skopiuj ilość - - - Copy fee - Skopiuj opłatę - - - Copy after fee - Skopiuj ilość po opłacie - - - Copy bytes - Skopiuj ilość bajtów - - - Copy priority - Skopiuj priorytet - - - Copy dust - Kopiuj pył (kwota poniżej 5460 duffów) - - - Copy change - Skopiuj resztę - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Wybrano niezanonimizowane środki. <b>Darksend będzie wyłączony.</b><br><br>Jeśli wciąż chcesz użyć Darksend, cofnij wybór niezanonimizowanych środków i zaznacz kliknij ponownie na pole wyboru obok Darksend. - - - highest - najwyższa - - - higher - wyższa - - - high - wysoka - - - medium-high - średnio wysoki - - - Can vary +/- %1 duff(s) per input. - Może się różnić około +/- %1 duff(ów) na transację. - - - n/a - nie dotyczy - - - medium - średnia - - - low-medium - średnio niski - - - low - niski - - - lower - niższy - - - lowest - najniższy - - - (%1 locked) - (%1 zablokowane) - - - none - żaden - - - yes - tak - - - no - nie - - - This label turns red, if the transaction size is greater than 1000 bytes. - Etykieta staje się czerwona kiedy transakcja jest większa niż 1000 bajtów. - - - This means a fee of at least %1 per kB is required. - Oznacza to wymaganą opłatę minimum %1 na kB. - - - Can vary +/- 1 byte per input. - Waha się +/- 1 bajt na wejście. - - - Transactions with higher priority are more likely to get included into a block. - Transakcje o wyższym priorytecie zostają szybciej dołączone do bloku. - - - This label turns red, if the priority is smaller than "medium". - Ta etykieta jest czerwona, jeżeli priorytet jest mniejszy niż "średni" - - - This label turns red, if any recipient receives an amount smaller than %1. - Etykieta staje się czerwona kiedy którykolwiek odbiorca otrzymuje kwotę mniejszą niż %1. - - - (no label) - (bez etykiety) - - - change from %1 (%2) - reszta z %1 (%2) - - - (change) - (reszta) - - - - DarksendConfig - - Configure Darksend - Skonfiguruj Darksend - - - Basic Privacy - Podstawowa prywatność - - - High Privacy - Wysoka prywatność - - - Maximum Privacy - Maksymalna prywatność - - - Please select a privacy level. - Proszę wybrać poziom bezpieczeństwa. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Użyj 2 oddzielnych masternodów aby wymieszać środki max. do 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Użyj 8 oddzielnych masternodów aby wymieszać środki max. do 1000 DASH - - - Use 16 separate masternodes - Użyj 16 oddzielnych masternodów - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Ta opcja jest najszybsza i kosztuje około 0.025 DASH za zanonimizowanie 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Ta opcja jest w miarę szybka i kosztuje około 0.05 DASH za zanonimizowanie 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH za każde 1000 DASH które zanonimizujesz. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Jest to najwolniejsza lecz najbardziej bezpieczna opcja. Maksymalny poziom zanonimizowania będzie kosztować - - - Darksend Configuration - Konfiguracja Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend został pomyślnie ustawiony na poziom podstawowy (%1 oraz 2 rundy). Możesz to zmienić kiedy chcesz, otwierając ekran z konfiguracją Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend został pomyślnie ustawiony na poziom wysoki (%1 oraz 8 rund). Możesz to zmienić kiedy chcesz, otwierając ekran z konfiguracją Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend został pomyślnie ustawiony na poziom maksymalny (%1 oraz 16 rund). Możesz to zmienić kiedy chcesz, otwierając ekran z konfiguracją Dash. - - - - EditAddressDialog - - Edit Address - Edytuj adres - - - &Label - &Etykieta - - - The label associated with this address list entry - Etykieta skojarzona z tym wpisem na liście adresów - - - &Address - &Adres - - - The address associated with this address list entry. This can only be modified for sending addresses. - Ten adres jest skojarzony z wpisem na liście adresów. Może być zmodyfikowany jedynie dla adresów wysyłających. - - - New receiving address - Nowy adres odbiorczy - - - New sending address - Nowy adres wysyłania - - - Edit receiving address - Zmień adres odbioru - - - Edit sending address - Zmień adres wysyłania - - - The entered address "%1" is not a valid Dash address. - Wprowadzony adres "%1" nie jest właściwym adresem Dash. - - - The entered address "%1" is already in the address book. - Wprowadzony adres "%1" już istnieje w książce adresowej. - - - Could not unlock wallet. - Nie można było odblokować portfela. - - - New key generation failed. - Tworzenie nowego klucza nie powiodło się. - - - - FreespaceChecker - - A new data directory will be created. - Utworzono nowy folder danych. - - - name - nazwa - - - Directory already exists. Add %1 if you intend to create a new directory here. - Katalog już istnieje. Dodaj %1 jeśli masz zamiar utworzyć tutaj nowy katalog. - - - Path already exists, and is not a directory. - Ścieżka już istnieje i nie wskazuje na folder. - - - Cannot create data directory here. - Nie można było tutaj utworzyć folderu. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - wersja - - - (%1-bit) - (%1-bit) - - - About Dash Core - Informacje o Dash Core - - - Command-line options - Opcje lini poleceń - - - Usage: - Użycie: - - - command-line options - opcje konsoli - - - UI options - UI opcje - - - Choose data directory on startup (default: 0) - Wybierz folder danych przy starcie (domyślnie: 0) - - - Set language, for example "de_DE" (default: system locale) - Ustaw Język, na przykład "pl_PL" (domyślnie: systemowy) - - - Start minimized - Uruchom zminimalizowany - - - Set SSL root certificates for payment request (default: -system-) - Ustaw główne cerytfikaty SSL dla żądań płatności (domyślnie: -system-) - - - Show splash screen on startup (default: 1) - Pokazuj okno powitalne przy starcie (domyślnie: 1) - - - - Intro - - Welcome - Witaj - - - Welcome to Dash Core. - Witaj w Dash Core - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Ponieważ uruchomiłeś ten program po raz pierwszy, możesz wybrać gdzie Dash Core będzie przechowywał dane. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core ściągnie i przechowa kopię blockchain na twoim dysku. Co najmniej %1GB danych zostanie zapisanych w tym katalogu, a wraz z upływem czasu blockchain będzie stopniowo wymagał coraz więcej miejsca. Twój portfel również zostanie zapisany w tym katalogu. - - - Use the default data directory - Użyj domyślnego folderu danych - - - Use a custom data directory: - Użyj wybranego folderu dla danych - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Wystąpił błąd: Katalog "%1" nie może zostać stworzony. - - - Error - Błąd - - - %1 GB of free space available - %1 GB wolnego miejsca na dysku - - - (of %1 GB needed) - (z %1GB potrzebnego) - - - - OpenURIDialog - - Open URI - Otwórz URI: - - - Open payment request from URI or file - Otwórz żądanie zapłaty z URI lub pliku - - - URI: - URI: - - - Select payment request file - Otwórz żądanie zapłaty z pliku - - - Select payment request file to open - Wybierz plik żądania zapłaty do otwarcia - - - - OptionsDialog - - Options - Opcje - - - &Main - Główne - - - Automatically start Dash after logging in to the system. - Automatycznie uruchom Dash po zalogowaniu się do systemu. - - - &Start Dash on system login - &Uruchom Dash po zalogowaniu się do systemu - - - Size of &database cache - Rozmiar &pamięci podręcznej bazy danych. - - - MB - MB - - - Number of script &verification threads - Liczba wątków &weryfikacji skryptu - - - (0 = auto, <0 = leave that many cores free) - (0=auto, <0 = zostaw tyle wolnych rdzeni) - - - Darksend rounds to use - Ilość rund Darksend. - - - This amount acts as a threshold to turn off Darksend once it's reached. - Ta kwota działa jako próg po którego przekroczeniu Darksend zostaje wyłączony. - - - Amount of Dash to keep anonymized - Ilość Dashów, które mają pozostać anonimowe. - - - W&allet - Portfel - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Jeśli wyłączysz możliwość wydawania niepotwierdzonej reszty, to reszta z transakcji<br/> nie może zostać użyta dopóki nie ma przynajmniej jednego potwierdzona.<br/> To również wpływa na to jak wyliczane jest twoje saldo. - - - Accept connections from outside - Akceptuj połączenia z zewnątrz - - - Allow incoming connections - Zezwól na przychdzące połączenia - - - Connect to the Dash network through a SOCKS5 proxy. - Połącz się z siecią Dash przez proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - Połą&cz się przez SOCKS5 proxy (opcja domyślna): - - - Expert - Ekspert - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Tutaj możesz ustawić liczbę masternodów, przez które transakcja zostanie przepuszczona.<br/>Im większa liczba masternodów tym większy poziom anonimowości, ale opłata jest również wyższa. - - - Whether to show coin control features or not. - Czy pokazać funkcje kontroli monet czy nie. - - - Enable coin &control features - Włącz funkcje &kontroli monet - - - &Spend unconfirmed change - &Wydaj niepotwierdzoną resztę - - - &Network - &Sieć - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Automatycznie uruchamiaj port klienta Darkcoina na ruterze. To działa tylko jeśli twój ruter wspiera i ma włączone UPnP. - - - Map port using &UPnP - Mapuj port używając &UPnP - - - Proxy &IP: - Proxy &IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Adres IP serwera proxy (np. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Port proxy (np. 9050) - - - &Window - &Okno - - - Show only a tray icon after minimizing the window. - Pokazuj tylko ikonę przy zegarku po zminimalizowaniu okna. - - - &Minimize to the tray instead of the taskbar - &Minimalizuj do paska przy zegarku zamiast do paska zadań - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimalizuje zamiast zakończyć działanie programu przy zamykaniu okna. Kiedy ta opcja jest włączona, program zakończy działanie po wybieraniu Zamknij w menu. - - - M&inimize on close - M&inimalizuj przy zamknięciu - - - &Display - &Wyświetlanie - - - User Interface &language: - Język &Użytkownika: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Tutaj można ustawić język interfejsu użytkownika. To ustawienie zostanie zapisane po ponownym uruchomieniu Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Dash Core nie został przetłumaczony na twój język? Tłumaczenie jest niepełne lub niepoprawne? Możesz pomóc nam tłumaczyć tutaj: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Motyw interefejsu użytkownika: - - - &Unit to show amounts in: - &Jednostka pokazywana przy kwocie: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Wybierz podział jednostki pokazywany w interfejsie oraz podczas wysyłania monet - - - Decimal digits - Cyfry po przecinku - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL osób trzecich (np. eksplorator bloków), które pojawiają się w zakładce transakcji jako pozycje w menu kontekstowym. %s w URL jest zastąpione przez hash transakcji. Wielokrotne URL są oddzielane przez pionową poprzeczkę |. - - - Third party transaction URLs - URL transakcji osób trzecich - - - Active command-line options that override above options: - Aktywne opcje linii komend, które nadpisują powyższe opcje: - - - Reset all client options to default. - Przywróć domyślne wszystkie ustawienia klienta. - - - &Reset Options - Z&resetuj Ustawienia - - - &OK - &OK - - - &Cancel - &Anuluj - - - default - domyślny - - - none - żaden - - - Confirm options reset - Potwierdź reset ustawień - - - Client restart required to activate changes. - Wymagany restart programu, aby uaktywnić zmiany. - - - Client will be shutdown, do you want to proceed? - Program zostanie wyłączony. Czy chcesz kontynuować? - - - This change would require a client restart. - Ta zmiana może wymagać ponownego uruchomienia klienta. - - - The supplied proxy address is invalid. - Adres podanego proxy jest nieprawidłowy - - - - OverviewPage - - Form - Formularz - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Wyświetlona informacja może być przedawniona. Twój portfel automatycznie zsynchronizuje sie z siecią Dash jak tylko zostanie ustanowione połączenie, jednakże proces ten jeszcze się nie zakończył. - - - Available: - Dostępne: - - - Your current spendable balance - Twoje obecne saldo - - - Pending: - W toku: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Suma transakcji, które nie zostały jeszcze potwierdzone, a które nie zostały wliczone do twojego obecnego salda - - - Immature: - Niedojrzały: - - - Mined balance that has not yet matured - Balans wydobycia, który jeszcze nie dojrzał - - - Balances - Balans - - - Unconfirmed transactions to watch-only addresses - Nipotwierdzone transakcje do adresów mogących być jedynie do odczytu. - - - Mined balance in watch-only addresses that has not yet matured - Wykopane fundusze jeszcze nie gotowe będące w adresie tylko do odczytu. - - - Total: - Wynosi ogółem: - - - Your current total balance - Twoje obecne saldo - - - Current total balance in watch-only addresses - Obecny stan konta adresu tylko do odczytu. - - - Watch-only: - Tylko do podglądu: - - - Your current balance in watch-only addresses - Twój obecny stan konta w adresie tylko do odczytu - - - Spendable: - Możliwe do wydania: - - - Status: - Status: - - - Enabled/Disabled - Włączony/Wyłączony - - - Completion: - Ukończone: - - - Darksend Balance: - Bilans Darksend: - - - Amount and Rounds: - Ilość oraz Rundy: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Rund - - - Submitted Denom: - Zgłoszone denominacje: - - - n/a - nie dotyczy - - - Darksend - Darksend - - - Recent transactions - Ostatnie transakcje - - - Start/Stop Mixing - Start/Stop Mieszanie - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Denominacje, które wysłałeś do Masternoda.<br>Aby zostały one wymieszane, inni użytkownicy muszą wysłać dokładnie takie same denominacje. - - - (Last Message) - (Ostatnia Wiadomość) - - - Try to manually submit a Darksend request. - Prubój ręcznie zgłosić żądanie Darksend. - - - Try Mix - Mieszaj - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Zresetuj obecny stan darksend (może przerwać Darksend, jeżeli jest w trakcie mieszania. Może Cię to kosztować! ) - - - Reset - Reset - - - out of sync - desynchronizacja - - - Disabled - Wyłączony - - - Start Darksend Mixing - Uruchom miksowanie Darksend - - - Stop Darksend Mixing - Zatrzymaj miksowanie Darksend - - - No inputs detected - Nie wykryto wejść - - - %n Rounds - %n Runda%n Rundy%n Rundy - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Nie ma wystarczającej ilośći środków aby moć dokonać anonimizacji <span style='color:red;'>%1</span>,<br>zamiast oryginalnej sumy <spam style='color:red;'>%2</spam> zostanie zanonimizowanych. - - - Overall progress - Całkowity postęp - - - Denominated - Zdenominowane - - - Anonymized - Zanonimowane - - - Denominated inputs have %5 of %n rounds on average - Denonimowane wejście ma %5 z %n rund jako średniaDenonimowane wejścia mają %5 z %n rund jako średniaDenonimowane wejścia mają %5 z %n rund jako średnia - - - Found enough compatible inputs to anonymize %1 - Znaleziono wystarczającą ilość odpowiednich środków aby zanonimizowaź %1 - - - Mixed - Zmiksowane - - - Enabled - Włączony - - - Last Darksend message: - - Ostatnia wiadomość Darksend: - - - - N/A - NIEDOSTĘPNE - - - Darksend was successfully reset. - Darksend został pomyślnie zresetowany - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Jeśli nie chcesz widzieć wewnętrznych transakcji/opłat Darksend to wybierz "Najpopularniejsza" jako rodzaj transakcji w zakładce "Transakcje". - - - Darksend requires at least %1 to use. - Darksend wymaga użycia conajmniej %1 - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Portfel jest zablokowany a użytkownik odmówił odblokowania. Darksend zostaje wyłączony. - - - - PaymentServer - - Payment request error - Błąd żądania płatności - - - Cannot start dash: click-to-pay handler - Nie można włączyć dash: kliknij-aby-zapłacić ubsługującemu. - - - URI handling - Obsługa URI - - - Payment request fetch URL is invalid: %1 - Żądanie płatności podowduje że URL jest niewłaściwy: %1 - - - Payment request file handling - Obsługa pliku z żądaniem płatności - - - Invalid payment address %1 - Nieprawidłowy adres płatności %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - URI nie może zostać przeanalizowany! Mogło to być spowodowane przez niewłaściwy adres Dash lub niewłaściwe parametry URI - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Plik z żądaniem płatności nie może zostać odczytany! Może to być spowodowane przez niewłaściwy plik z żądaniem płatności. - - - Payment request rejected - Żądanie płatności zostało odrzucone - - - Payment request network doesn't match client network. - Sieć żądania płatnośc nie pasuje do sieci klienta. - - - Payment request has expired. - Żądanie płatności straciło ważność. - - - Payment request is not initialized. - Żądanie płatności nie zostało zainicjonowane. - - - Unverified payment requests to custom payment scripts are unsupported. - Niezweryfikowane żądania płatności dla specjalnych skryptów z płatnościami nie są obsługiwane. - - - Requested payment amount of %1 is too small (considered dust). - Żądana kwota %1 jest za niska (uznana za pył). - - - Refund from %1 - Zwrot z %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Żądanie płatności %1 jest zbyt duże (%2 bitów, maksymalny rozmiar to %3 bitów). - - - Payment request DoS protection - Ochrona żądania płaności przed DoS - - - Error communicating with %1: %2 - Błąd komunikacji z %1 : %2 - - - Payment request cannot be parsed! - Żądanie płatności nie może zostać przeanalizowane! - - - Bad response from server %1 - Błędna odpowiedź z serwera %1 - - - Network request error - Błąd żądania sieci - - - Payment acknowledged - Płatność potwierdzona - - - - PeerTableModel - - Address/Hostname - Adres/Hostname - - - User Agent - Agent użytkownika - - - Ping Time - czas opóźnienia sieci - - - - QObject - - Amount - Ilość - - - Enter a Dash address (e.g. %1) - Wpisz adres Dash (np. %1) - - - %1 d - %1 dzień - - - %1 h - %1 godz. - - - %1 m - %1 min. - - - %1 s - %1 sec. - - - NETWORK - SIEĆ - - - UNKNOWN - NIEZNANY - - - None - Żaden - - - N/A - Nie ważne - - - %1 ms - %1 milisec. - - - - QRImageWidget - - &Save Image... - &Zapisz obraz... - - - &Copy Image - &Kopiuj obraz - - - Save QR Code - Zapisz Kod QR - - - PNG Image (*.png) - Obraz PNG (*.png) - - - - RPCConsole - - Tools window - Okno narzędzi - - - &Information - &Informacje - - - General - Ogólne - - - Name - Nazwa - - - Client name - Nazwa klienta - - - N/A - NIEDOSTĘPNE - - - Number of connections - Liczba połączeń - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Otwiera plik z zapisami debugowania Darkcoina z obecnego katalogu. Może to potrfać kilka sekund w zależności od rozmiaru pliku. - - - &Open - &Otwórz - - - Startup time - Czas uruchomienia - - - Network - Sieć - - - Last block time - Czas ostatniego bloku - - - Debug log file - Plik logowania debugowania - - - Using OpenSSL version - Używana wersja OpenSSL - - - Build date - Data kompilacji - - - Current number of blocks - Aktualna liczba bloków - - - Client version - Wersja klienta - - - Using BerkeleyDB version - Używana wersja BerkeleyDB - - - Block chain - Ciąg bloków - - - Number of Masternodes - Liczba masternodów - - - &Console - &Konsola - - - Clear console - Wyczyść konsolę - - - &Network Traffic - $Ruch sieci - - - &Clear - &Wyczyść - - - Totals - Kwota ogólna - - - Received - Otrzymany - - - Sent - Wysłany - - - &Peers - &peery - - - Select a peer to view detailed information. - Wybierz peera aby zobaczyć jego szczegółowe informacje. - - - Direction - Kierunek - - - Version - Wersja - - - User Agent - Agent użytkownika - - - Services - Usługi - - - Starting Height - Początkowa wysokość - - - Sync Height - Synchronizuj wysokość - - - Ban Score - zablokuj wynik - - - Connection Time - Czas Połączenia - - - Last Send - Ostatnio Wysłane - - - Last Receive - Ostatnio Odebrane - - - Bytes Sent - Bajty Wysłane - - - Bytes Received - Bajty Odebrane - - - Ping Time - czas opóźnienia sieci - - - &Wallet Repair - &Naprawa portfela - - - Salvage wallet - Ratuj portfel - - - Rescan blockchain files - Przeskanuj pliki lańcucha - - - Recover transactions 1 - Odzyskaj transakcję 1 - - - Recover transactions 2 - Odzyskaj transakcję 2 - - - Upgrade wallet format - Udoskonal format portfela - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Przycisk poniżej, zrestartuje portfel z opcjami lini komend słóżących do naprawy porfela, rozwiązania problemów z plikami łańcucha bloków oraz zgubionych lub nieważnych transakcji . - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Próbuje przywrócić prywatne klucze z uszkodzonego portfela. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Przeskanuje łańcuch w poszukiwaniu brakujących transakcji portfela. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Odzysaj transakcje z blockchainu (nie zmieniaj meta-danych, np. właściciela konta). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Odzyskaj transakcje z blockchainu (pozbądź się meta-danych) - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: podnieś poziom portfela podczas uruchomienia. (Nie jest to to samo co zaktualizowanie porfela do nowej wersji!) - - - Wallet repair options. - Opcje naprawy portfela. - - - Rebuild index - Przebuduj indeks - - - -reindex: Rebuild block chain index from current blk000??.dat files. - reindex: Odtwórz index łańcucha bloków z najnowszego pliku blk000??.dat - - - In: - Wejście: - - - Out: - Wyjście: - - - Welcome to the Dash RPC console. - Witaj w konsoli RPC Darkcoina - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Użyj strzałek do przewijania historii i <b>Ctrl-L</b> aby wyczyścić ekran - - - Type <b>help</b> for an overview of available commands. - Wpisz <b>help</b> aby uzyskać listę dostępnych komend - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - przez %1 - - - never - nigdy - - - Inbound - przychodzące - - - Outbound - wychodzące - - - Unknown - nieznane - - - Fetching... - W trakcie pobierania.... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Użyj jeden z poprzednio użytych adresów odbiorczych.<br> Podczas ponownego używania adresów występują problemy z bezpieczeństwem i prywatnością.<br> Nie korzystaj z tej opcji, chyba że odtwarzasz żądanie płatności wykonane już wcześniej. - - - R&euse an existing receiving address (not recommended) - Użyj istniejący adres odbiorczy (nie zalecane) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Opcjonalna wiadomość do żądania płatności. Wiadomość wyświetli się po otwarciu żądania. Pamiętaj: Wiadomość nie zostanie wysłana razem z płatnością poprzez sieć Dash. - - - &Message: - &Wiadomość: - - - An optional label to associate with the new receiving address. - Opcjonalna etykieta do skojarzenia z nowym adresem odbiorczym. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Opcjonalna wiadomość do żądania płatności. Wiadomość wyświetli się po otwarciu żądania.<br> Pamiętaj: Wiadomość nie zostanie wysłana razem z płatnością poprzez sieć Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Użyj tego formularza do zażądania płatności. Wszystkie pola są <b>opcjonalne</b>. - - - &Label: - &Etykieta: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Opcjonalna kwota żądania. Pozostaw puste pole lub zero aby nie podawać konkretnej kwoty. - - - &Amount: - &Ilość: - - - &Request payment - &Żądaj płatności - - - Clear all fields of the form. - Wyczyść pola formularza - - - Clear - Wyczyść - - - Requested payments history - Żądanie historii płatności - - - Show the selected request (does the same as double clicking an entry) - Pokaż zaznaczone żądanie (działa jak podwójne kliknięcie) - - - Show - Pokaż - - - Remove the selected entries from the list - Usuń zaznaczone z listy - - - Remove - Usuń - - - Copy label - Kopiuj etykietę - - - Copy message - Kopiuj wiadomość - - - Copy amount - Kopiuj kwotę - - - - ReceiveRequestDialog - - QR Code - Kod QR - - - Copy &URI - Kopiuj &URI - - - Copy &Address - Kopiuj &adres - - - &Save Image... - &Zapisz obraz... - - - Request payment to %1 - Żądaj płatności do %1 - - - Payment information - Informacje o płatności - - - URI - URI - - - Address - Adres - - - Amount - Kwota - - - Label - Etykieta - - - Message - Wiadomość - - - Resulting URI too long, try to reduce the text for label / message. - Wynikowy URI jest zbyt długi, spróbuj zmniejszyć tekst etykiety / wiadomości - - - Error encoding URI into QR Code. - Błąd kodowania URI w Kodzie QR. - - - - RecentRequestsTableModel - - Date - Data - - - Label - Etykieta - - - Message - Wiadomość - - - Amount - Kwota - - - (no label) - (bez etykiety) - - - (no message) - (brak wiadomości) - - - (no amount) - (brak kwoty) - - - - SendCoinsDialog - - Send Coins - Wyślij Monety - - - Coin Control Features - Funkcje sterowania monetami - - - Inputs... - Wejścia... - - - automatically selected - zaznaczone automatycznie - - - Insufficient funds! - Niewystarczające środki - - - Quantity: - Ilość: - - - Bytes: - Bajtów: - - - Amount: - Kwota: - - - Priority: - Priorytet: - - - medium - średnia - - - Fee: - Opłata: - - - Dust: - Pył - - - no - nie - - - After Fee: - Po opłacie: - - - Change: - Reszta: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Kiedy ta opcja jest wybrana, ale adres reszty jest pusty lub nieprawidłowy to reszta będzie wysyłana na adres nowo-wygenerowany. - - - Custom change address - Niestandardowe zmiany adresu - - - Transaction Fee: - Opłata za transakcje: - - - Choose... - Wybierz... - - - collapse fee-settings - zamknij ustawienia opłat - - - Minimize - Zminimalizuj - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Jeśli ręcznie ustalona opłata wynosi 1000 Duffów a sama transakcja ma tylko 250 bajtów, to opłata jako "za kilobajt" wynosi tylko 250 duffów. <br/>Dzieje się tak dla każdej transakcji poniżej 1000 duffów. W przypadku transakcji większych niż jedn kilobajt opłata jest naliczana od kilobajta. - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Jeśli ręcznie ustalona opłata wynosi 1000 Duffów a sama transakcja ma tylko 250 bitów, to opłata jako "za kilobajt" wynosi tylko 250 duffów.<br/> Dzieje się tak dla każdej transakcji poniżej 1000 duffów. W przypadku transakcji większych niż jedn kilobajt opłata jest naliczana od kilobajta. - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Uiszczanie minimalnej opłaty za transakcję jest ok dopóki ilość transakcji nie przekracza dostępnego miejsca w bloku. <br />Jednakże, jeśli zaistnieje taka sytuacja w której wysłanych zostaje więcej transakcji niż sieć może przetworzyć, to jest możliwe, że twoja transakcja nigdy nie zostanie potwierdzona. - - - per kilobyte - na kilobajt - - - total at least - Cała suma wynosi co najmniej - - - (read the tooltip) - (przeczytaj powpowiedź w chmurce) - - - Recommended: - Polecany: - - - Custom: - Niestandardowo: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Opłata smart nie została jeszcze zainicjonowana. Zazwyczaj zajmuje to kilka bloków...) - - - Confirmation time: - Czas potwierdzenia: - - - normal - normalny - - - fast - szybki - - - Send as zero-fee transaction if possible - Wyślij transakcję bez uiszczania opłat jeśli jest to możliwe. - - - (confirmation may take longer) - (potwierdzenie może zająć trochę więcej czasu) - - - Confirm the send action - Potwierdź akcję wysyłania - - - S&end - Wy&syłka - - - Clear all fields of the form. - Wyczyść wszystkie pola formularza - - - Clear &All - Wyczyść &wszystko - - - Send to multiple recipients at once - Wyślij do wielu odbiorców na raz - - - Add &Recipient - Dodaj Odbio&rce - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Skopiuj ilość - - - Copy amount - Kopiuj kwotę - - - Copy fee - Skopiuj opłatę - - - Copy after fee - Skopiuj ilość po opłacie - - - Copy bytes - Skopiuj ilość bajtów - - - Copy priority - Skopiuj priorytet - - - Copy dust - skopiuj drobne (poniżej 5460 duffów) - - - Copy change - Skopiuj resztę - - - using - używając - - - anonymous funds - anonimowe środki - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend wymaga aby kwota ta została zaokrąglona do najbliższego %1). - - - any available funds (not recommended) - jakiekolwiek dostępne środki (niezalecane) - - - and InstantX - i InstantX - - - %1 to %2 - %1 do %2 - - - Are you sure you want to send? - Czy na pewno chcesz wysłać? - - - are added as transaction fee - dodane są jako opłata za transakcje - - - Total Amount = <b>%1</b><br />= %2 - Całkowita ilość = <b>%1</b><br />= %2 - - - Confirm send coins - Potwierdź wysyłanie monet - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Opłata %1 razy większa niż %2 za kB jest uważana za obłędnie wysoką. - - - Estimated to begin confirmation within %n block(s). - Potwierdzenia zaczną się około po %n bloku.Potwierdzenia zaczną się za około %n blokówPotwierdzenia zaczną się za około %n bloków - - - The recipient address is not valid, please recheck. - Adres odbiorcy jest nieprawidłowy, proszę poprawić - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 z %2 wyświetlonych wpisów)</b> - - - The amount to pay must be larger than 0. - Kwota do zapłacenia musi być większa od 0. - - - The amount exceeds your balance. - Kwota przekracza twoje saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - Suma przekracza twoje saldo, gdy doliczymy %1 prowizji transakcyjnej. - - - Duplicate address found, can only send to each address once per send operation. - Znaleziono powtórzony adres, można wysłać tylko raz na każdy adres podczas operacji wysyłania. - - - Transaction creation failed! - Utworzenie transakcji nie powiodło się! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Transakcja została odrzucona! Może się to zdarzyć jeśli część monet z portfela została już wydana używając kopii pliku wallet.dat i nie zostało to tutaj uwzględnione. - - - Error: The wallet was unlocked only to anonymize coins. - Błąd: Portfel został odblokowany tylko dla anonimizacji monet. - - - Pay only the minimum fee of %1 - Uiść minimalną opłatę %1 - - - Warning: Invalid Dash address - Ostrzeżenie: adres Dash jest nieprawidlowy - - - Warning: Unknown change address - Ostrzeżenie: Nieznany adres - - - (no label) - (bez etykiety) - - - - SendCoinsEntry - - This is a normal payment. - To jest standardowa płatność - - - Pay &To: - Zapłać &dla: - - - The Dash address to send the payment to - Adres Dash na który wysłać fundusze - - - Choose previously used address - Wybierz wcześniej użyty adres - - - Alt+A - Alt+A - - - Paste address from clipboard - Wklej adres ze schowka - - - Alt+P - Alt+P - - - Remove this entry - Usuń ten wpis - - - &Label: - &Etykieta: - - - Enter a label for this address to add it to the list of used addresses - Wprowadź etykietę dla tego adresu by dodać go do listy użytych adresów - - - A&mount: - Su&ma: - - - Message: - Wiadomość: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Wiadomość, która została dołączona do dash: Link, który zostanie zapisany wraz z transakcją do wglądu w przyszłości. Zauważ. że sama wiadomość nie zostanie wysłana przez sieć Darkcoina. - - - This is an unverified payment request. - To żądanie zapłaty nie zostało zweryfikowane. - - - Pay To: - Wpłać do: - - - Memo: - Notatka: - - - This is a verified payment request. - Zweryfikowano żądanie zapłaty. - - - Enter a label for this address to add it to your address book - Wprowadź etykietę dla tego adresu by dodać go do książki adresowej - - - - ShutdownWindow - - Dash Core is shutting down... - Trwa zamykanie Dash Core - - - Do not shut down the computer until this window disappears. - Nie wyłączaj komputera dopóki to okno nie zniknie. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Podpisy - Podpisz / zweryfikuj wiadomość - - - &Sign Message - Podpi&sz Wiadomość - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Możesz podpisywać wiadomości swoimi adresami aby udowodnić, że jesteś ich właścicielem. Uważaj, aby nie podpisywać niczego co wzbudza Twoje podejrzenia, ponieważ ktoś może stosować phishing próbując nakłonić Cię do ich podpisania. Akceptuj i podpisuj tylko w pełni zrozumiałe komunikaty i wiadomości. - - - The Dash address to sign the message with - Adres Dash do podpisu wiadomości - - - Choose previously used address - Wybierz wcześniej użyty adres - - - Alt+A - Alt+A - - - Paste address from clipboard - Wklej adres ze schowka - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Wprowadź wiadomość, którą chcesz podpisać, tutaj - - - Signature - Podpis - - - Copy the current signature to the system clipboard - Kopiuje aktualny podpis do schowka systemowego - - - Sign the message to prove you own this Dash address - Podpisz wiadomość aby udowodnić, że jesteś właścicielem adresu Dash. - - - Sign &Message - Podpisz Wiado&mość - - - Reset all sign message fields - Zresetuj wszystkie pola podpisanej wiadomości - - - Clear &All - Wyczyść &wszystko - - - &Verify Message - &Zweryfikuj wiadomość - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Wpisz adres podpisujący, podaj wiadomość (upewnij się, że dokładnie skopiujesz wszystkie zakończenia linii, spacje, tabulacje itp.) oraz podpis poniżej by sprawdzić wiadomość. Uważaj by nie dodać więcej do podpisu niż do samej podpisywanej wiadomości by uniknąć ataku man-in-the-middle (człowiek pośrodku) - - - The Dash address the message was signed with - Adres Dash którym wiadomość została podpisana - - - Verify the message to ensure it was signed with the specified Dash address - Zweryfikuj wiadomość aby upewnić się, że została zapisana przez konkretny adres Dash - - - Verify &Message - Zweryfikuj Wiado&mość - - - Reset all verify message fields - Resetuje wszystkie pola weryfikacji wiadomości - - - Click "Sign Message" to generate signature - Kliknij "Podpisz Wiadomość" żeby uzyskać podpis - - - The entered address is invalid. - Podany adres jest nieprawidłowy. - - - Please check the address and try again. - Proszę sprawdzić adres i spróbować ponownie. - - - The entered address does not refer to a key. - Wprowadzony adres nie odnosi się do klucza. - - - Wallet unlock was cancelled. - Odblokowanie portfela zostało anulowane. - - - Private key for the entered address is not available. - Klucz prywatny dla podanego adresu nie jest dostępny - - - Message signing failed. - Podpisanie wiadomości nie powiodło się - - - Message signed. - Wiadomość podpisana. - - - The signature could not be decoded. - Podpis nie może zostać zdekodowany. - - - Please check the signature and try again. - Sprawdź podpis i spróbuj ponownie. - - - The signature did not match the message digest. - Podpis nie odpowiadał streszczeniu wiadomości - - - Message verification failed. - Weryfikacja wiadomości nie powiodła się. - - - Message verified. - Wiadomość zweryfikowana. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Wersja %1 - - - The Bitcoin Core developers - Deweloperzy Bitcoin Core - - - The Dash Core developers - Deweloperzy Dash Core - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Otwórz na %n blokOtwórz na %n więcej blokówOtwórz na %n więcej bloków - - - Open until %1 - Otwórz do %1 - - - conflicted - konflikt - - - %1/offline (verified via instantx) - %1/offline (zweryfikowane przez instantx) - - - %1/confirmed (verified via instantx) - %1/potwierdzony (zweryfikowane przez instantx) - - - %1 confirmations (verified via instantx) - %1 potwierdzeń (zweryfikowane przez instantx) - - - %1/offline - %1/offline - - - %1/unconfirmed - %1/niezatwierdzone - - - %1 confirmations - %1 potwierdzeń - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/nieaktywny (w trakcie weryfikacji InstantX - %2 z %3 oznaczeń) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/potwierdzony (w trakcie weryfikacji InstantX - %2 z %3 oznaczeń) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1/potwierdzeń (w trakcie weryfikacji InstantX - %2 z %3 oznaczeń) - - - %1/offline (InstantX verification failed) - %1/nieaktywny (weryfikacja InstantX niepowiodła się) - - - %1/confirmed (InstantX verification failed) - %1/potwierdzony (weryfikacja InstantX nie powiodła się) - - - Status - Status - - - , has not been successfully broadcast yet - , nie został jeszcze pomyślnie wyemitowany - - - , broadcast through %n node(s) - Nadaj przez %n węzeł.Nadaj przez %n węzłów.Nadaj przez %n węzłów. - - - Date - Data - - - Source - Źródło - - - Generated - Wygenerowano - - - From - Od - - - unknown - nieznany - - - To - Do - - - own address - własny adres - - - watch-only - Tylko do podglądu - - - label - etykieta - - - Credit - Przypisy - - - matures in %n more block(s) - Dojrzewa w %n blokDojrzewa w %n blokówDojrzewa w %n bloków - - - not accepted - niezaakceptowane - - - Debit - Debet - - - Total debit - Całkowity debet - - - Total credit - Całkowity kredyt - - - Transaction fee - Prowizja transakcji - - - Net amount - Kwota netto - - - Message - Wiadomość - - - Comment - Komentarz - - - Transaction ID - ID transakcji - - - Merchant - Kupiec - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Wygenerowane monety muszą dojrzeć przez %1 bloków zanim będzie można je wysłać. Gdy wygenerowałeś ten blok, został on ogłoszony w sieci i dodany do łańcucha bloków. Jeżeli nie uda mu się wejść do łańcucha, jego status zostanie zmieniony na "nie zaakceptowano" i nie będzie można go wydać. To czasem zdarza się gdy inny węzeł wygeneruje blok kilka sekund przed tobą. - - - Debug information - Informacje debugowania - - - Transaction - Transakcja - - - Inputs - Wejścia - - - Amount - Kwota - - - true - prawda - - - false - fałsz - - - - TransactionDescDialog - - Transaction details - Szczegóły transakcji - - - This pane shows a detailed description of the transaction - Ten panel pokazuje szczegółowy opis transakcji - - - - TransactionTableModel - - Date - Data - - - Type - Typ - - - Address - Adres - - - Open for %n more block(s) - Otwarty na %n kolejny blokOtwarty na %n kolejne blokiOtwarty na %n kolejne bloki - - - Open until %1 - Otwórz do %1 - - - Offline - Offline - - - Unconfirmed - Niepotwierdzone: - - - Confirming (%1 of %2 recommended confirmations) - Potwierdzanie (%1 z %2 rekomendowanych potwierdzeń) - - - Confirmed (%1 confirmations) - Zatwierdzony (%1 potwierdzeń) - - - Conflicted - Konflikt - - - Immature (%1 confirmations, will be available after %2) - Niedojrzały (%1 potwierdzenia, będzie dostępny po %2) - - - This block was not received by any other nodes and will probably not be accepted! - Ten blok nie został odebrany przez jakikolwiek inny węzeł i prawdopodobnie nie zostanie zaakceptowany! - - - Generated but not accepted - Wygenerowano ale nie zaakceptowano - - - Received with - Otrzymane przez - - - Received from - Odebrano od - - - Received via Darksend - Otrzymane przez Darksend - - - Sent to - Wysłano do - - - Payment to yourself - Płatność do siebie - - - Mined - Wydobyto - - - Darksend Denominate - Denominacja Darksend - - - Darksend Collateral Payment - Płatność zabezpieczająca Darksend - - - Darksend Make Collateral Inputs - Darksend tworzy poboczne wejscia - - - Darksend Create Denominations - Darksend tworzy denominacje - - - Darksent - Darksent - - - watch-only - Tylko do podgądu - - - (n/a) - (brak) - - - Transaction status. Hover over this field to show number of confirmations. - Status transakcji. Najedź na pole, aby zobaczyć liczbę potwierdzeń. - - - Date and time that the transaction was received. - Data i czas odebrania transakcji. - - - Type of transaction. - Rodzaj transakcji. - - - Whether or not a watch-only address is involved in this transaction. - Bez względu na to czy adres tylko do odczytu jest zawarty w tej transakcji. - - - Destination address of transaction. - Adres docelowy transakcji. - - - Amount removed from or added to balance. - Kwota usunięta z lub dodana do konta. - - - - TransactionView - - All - Wszystko - - - Today - Dzisiaj - - - This week - W tym tygodniu - - - This month - W tym miesiącu - - - Last month - W zeszłym miesiącu - - - This year - W tym roku - - - Range... - Zakres... - - - Most Common - Najbardziej powszechne - - - Received with - Otrzymane przez - - - Sent to - Wysłano do - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend tworzy poboczne wejscia - - - Darksend Create Denominations - Darksend tworzy denominacje - - - Darksend Denominate - Denominacja Darksend - - - Darksend Collateral Payment - Płatność zabezpieczająca Darksend - - - To yourself - Do siebie - - - Mined - Wydobyto - - - Other - Inne - - - Enter address or label to search - Wprowadź adres albo etykietę żeby wyszukać - - - Min amount - Min suma - - - Copy address - Kopiuj adres - - - Copy label - Kopiuj etykietę - - - Copy amount - Kopiuj kwotę - - - Copy transaction ID - Skopiuj ID transakcji - - - Edit label - Zmień etykietę - - - Show transaction details - Pokaż szczegóły transakcji - - - Export Transaction History - Eksport historii transakcji - - - Comma separated file (*.csv) - CSV (rozdzielany przecinkami) - - - Confirmed - Potwierdzony - - - Watch-only - Tylko do odczytu - - - Date - Data - - - Type - Typ - - - Label - Etykieta - - - Address - Adres - - - ID - ID - - - Exporting Failed - Błąd przy próbie eksportu - - - There was an error trying to save the transaction history to %1. - Wystąpił błąd przy próbie zapisu historii transakcji do %1. - - - Exporting Successful - Eksport powiódł się - - - The transaction history was successfully saved to %1. - Historia transakcji została zapisana do %1. - - - Range: - Zakres: - - - to - do - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Jednostki w których wyrażane są kwoty. Kliknij aby wybrać inną jednostkę. - - - - WalletFrame - - No wallet has been loaded. - Nie załadowano żadnego portfela. - - - - WalletModel - - Send Coins - Wyślij płatność - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX jescze nie może przesłać tak wysokich kwot. Obecnie transakcje są ograniczone tylko do %1 DASH: - - - - WalletView - - &Export - &Eksportuj - - - Export the data in the current tab to a file - Eksportuj dane z aktywnej karty do pliku - - - Selected amount: - Zaznaczona ilość: - - - Backup Wallet - Kopia Zapasowa Portfela - - - Wallet Data (*.dat) - Dane Portfela (*.dat) - - - Backup Failed - Nie udało się wykonać kopii zapasowej - - - There was an error trying to save the wallet data to %1. - Wystąpił błąd przy próbie zapisu pliku portfela do %1. - - - Backup Successful - Wykonano Kopię Zapasową - - - The wallet data was successfully saved to %1. - Plik portfela został zapisany do %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Związany z danym adresem oraz zawsze prowadzący na nim nasłuch. Użyj [host]:oznaczenie dla IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Nie można zablokować katalogu danych %s. Prawdopodobnie Dash jest już uruchomiony. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend używa dokładnych denominowanych kwot do przesyłania środków, możliwe że musisz zanonimizować trochę więcej monet. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Wejdź w regresyjny tryb testowy, który używa specjalnego łańcucha, w którym bloki mogą być rozwiązywane natychmiastowo. - - - Error: Listening for incoming connections failed (listen returned error %s) - Błąd: Nie powiodło się nasłuchiwanie połączeń przychodzących (nasłuch zwrócił błąd %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Wykonaj komendę po otrzymaniu odpowiedniego zawiadomienia lub po obserwacji bardzo długiego rozszczepienia (%s w konsoli jest zastąpiony przez wiadomość) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Wykonaj komendę kiedy zmienia się transakcja portfela (%s w konsoli jest zastąpione przez TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Wykonaj komendę przy zmianie najlepszego bloku (%s w konsoli jest zastąpione przez hasz bloku) - - - In this mode -genproclimit controls how many blocks are generated immediately. - W tym trybie -genproclimit kontroluje ile bloków jest generowanych natychmiastowo. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX potrzebuje aby transakcja wejściowa miała co najmniej 6 potwierdzeń. Poczekaj kilka minut i spróbuj ponownie. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Nazwa służąca do stworzenia linka do KeePass w którym trzymane jest hasło portfela - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Jeśli pula adresów jest niska, pytaj o adresy peer przez podgląd DNS (domyślnie: 1 chyba że -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Ustaw maksymalny rozmiar transakcji o wysokim/niskim priorytecie w bajtach (domyślny: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Ustaw liczbę wątków weryfikacji skryptu (%u do %d, 0 = auto, <0 = zostaw tyle rdzeni wolnych, domyślnie: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Ta wersja nie jest jeszcze gotowa na oficjalne wydanie - używaj jej na własne ryzyko - nie używaj tej wersji do kopania monet lub do świadczenia usług komercyjnych. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Niezdolny do związania z %s na tym komputerze. Prawdopodobnie Dash jest już uruchomiony. - - - Unable to locate enough Darksend denominated funds for this transaction. - Nie znaleziono wystarczających denominowanych środków Darksend do wykonania tej transakcji. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Nie znaleziono wystarczającej ilości nie zdenominowanych środków Darksend dla tej transakcji, które nie równają się 1000 DASH - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Uwaga: -paytxfee jest bardzo wysoka! To jest opłata którą będziesz musiał uiścić jeśli dokonasz transakcji. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Uwaga: Wygląda na to, że istnieją pewne rozbieżności w sieci! Możliwe, że niektórzy kopacze doświadczają problemów technicznych. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - dadf - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Uwaga: wystąpił błąd podczas odczytu pliku wallet.dat! Wszystkie klucze są odczytywane poprawnie ale dane transakcji lub wpis w bazie adresów jest niepoprawny lub nie istnieje. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Uwaga: plik wallet.dat jest uszkodzony, ale dane zostały odzyskane! Oryginalny plik wallet.dat został zapisany jako wallet.{timestamp}.bak w %s; jeżeli twoje saldo lub transakcje są nieprawidłowe powinieneś przwyrócić ten plik z kopi zapasowej. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Musisz sprecyzować masternodeprivkey w konfiguracji. Proszę przeglądnij dokumentacje w celu pomocy. - - - (default: 1) - (standardowo: 1) - - - Accept command line and JSON-RPC commands - Zaakceptuj linie poleceń oraz polecenia JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Pozwól na połączenia z zewnątrz (domyślnie: 1 jeśli nie -proxy lub -connect) - - - Add a node to connect to and attempt to keep the connection open - Dodaj węzeł do połączenia się oraz spróbuj utrzymać połączenie otwarte - - - Allow DNS lookups for -addnode, -seednode and -connect - Pozwól na wyszukiwanie DNS dla -addnode, -seednode oraz -connect - - - Already have that input. - Ta wartość wejściowa już istnieje - - - Attempt to recover private keys from a corrupt wallet.dat - Spróbuj odzyskać prywatne klucze z uszkodzonego wallet.dat - - - Block creation options: - Opcje tworzenia bloku - - - Can't denominate: no compatible inputs left. - Niemożna denominować: Nie ma kompatybilnych transakcji wejściowych. - - - Cannot downgrade wallet - Nie można obniżyć wersji portfela - - - Cannot resolve -bind address: '%s' - Nie można rozwiązać -bind dla adresu adresu: '%s' - - - Cannot resolve -externalip address: '%s' - Nie można rozwiązać -externalip dla adresu: '%s' - - - Cannot write default address - Nie można zapisać domyślnych adresów - - - Collateral not valid. - Transakcja pod zastaw jest nie niewłaściwa. - - - Connect only to the specified node(s) - Podłącz tylko do wyszczególnionych węzła(ów) - - - Connect to a node to retrieve peer addresses, and disconnect - Podłącz do węzła aby odzyskać adresy peerów, a potem odłącz - - - Connection options: - Opcje połączenia: - - - Corrupted block database detected - Wykryto uszkodzoną bazę danych bloków - - - Darksend options: - Opcje Darksend: - - - Debugging/Testing options: - Opcje debugowania/testowania: - - - Discover own IP address (default: 1 when listening and no -externalip) - Wykryj własny adres IP (domyślny:1 kiedy nasłuchuje oraz nie ma -externalip) - - - Do not load the wallet and disable wallet RPC calls - Nie wczytuj portfela oraz wyłącz połączenia RPC - - - Do you want to rebuild the block database now? - Czy chcesz teraz przebudować bazę danych bloków? - - - Done loading - Wczytywanie zakończone - - - Entries are full. - Wpisy są pełne. - - - Error initializing block database - Błąd podczas inicjowania bazy dancyh bloku - - - Error initializing wallet database environment %s! - Błąd podczas inicjowania środowiska bazy danych portfela %s! - - - Error loading block database - Błąd wczytywania bloku bazy danych - - - Error loading wallet.dat - Błąd wczytywania wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Błąd wczytywania wallet.dat: Portfel uszkodzony - - - Error opening block database - Błąd otwarcia bloku bazy danych - - - Error reading from database, shutting down. - Błąd odczytu bazy danych, następuje zamknięcie. - - - Error recovering public key. - Błąd odzyskiwania klucza publicznego. - - - Error - Błąd - - - Error: Disk space is low! - Błąd: Przestrzeń dyskowa jest niska! - - - Error: Wallet locked, unable to create transaction! - Błąd: Portfel zamknięty, stworzenie transakcji jest niemożliwe! - - - Error: You already have pending entries in the Darksend pool - Błąd: Już masz oczekujące wejścia do puli Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Nie powiódł się nasłuch żadnego z portów. Użyj -listen=0 jeśli chcesz. - - - Failed to read block - Niepowodzenie przy odczycie bloku - - - If <category> is not supplied, output all debugging information. - Jeśli <kategoria> nie jest dostarczona, utwórz informacje o debugowaniu. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = zaochwaj metadane np. informacje właściciela konta oraz żądania zapłat, 2 = pozbądź się matadanych tx) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Pozwól na połączenia JSON-RPC z konkretnego źródła. Ważne dla <ip> pojedyńczego IP (np. 1.2.3.4), sieci/maski sieci (np. 1.2.3.4/255.255.255.0) lub sieci/CIDR (np. 1.2.3.4/24). Opcja to może być ustawiana wielokrotnie - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Wystąpił błąd podczas zakładania adresu RPC %s portu %u służącego do nasłuchu: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Zwiąż z danym adresem oraz wpisz łączących się peerów na białą liste. Użyj notacji [host]:port dla IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Zwiąż z danym adresem oraz wpisz łączących się peerów na białą liste. Użyj notacji [host]:port dla IPv6. Opcja ta może być ustawiana wielokrotnie (domyślnie: połącz z wszystkimi interfejsami) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Zmeń automatyczne głosowanie. mode=auto: Głosuj tylko na konkretny kompletny budżet, porównaj z wygenerowanym budżetem. (linijka, domyślnie: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Ciągle ograniczaj darmowe transakcje do <n>*1000 bitów na minutę (domyślnie:%u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Zamiast demaskowania 077, stwórz nowe pliki z domyślnymi pozwoleniami systemu (możliwe tylko z wyłączoną funkcją porfela) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Usuń wszystkie transakcje portfela i odzyskaj tylko te części blockchainu - zeskanuj powonie na starcie. - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Wyłącz wszystkie dodatkowe funckje Dash (Masternody, Darksend, InstanX, Budżetowanie) (0-1, domyślnie: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Rozpowszechniane na licencji MIT. Jeśli chcesz się dowiedzieć więcej otwórz towarzyszący plik o nzwie COPYING lub odwiedź <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Włącz instantx, pokaż potwierdzenia dla zamkniętych transakcji (bool, domyślnie: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Włącz możliwość automatyzacji Darksend dla środków zgromadzonych w tym portfelu (0-1, domyślnie: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Błąd: niewspierany argument, znaleziono -socks. Ustawienie wersji SOCKS nie jest już możliwa, wspierane są tylkobramki proxy SOCKS5. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Opłaty (DASH/Kb) za retransmisje mniejsze niż ta, uważane są za równoznaczne z brakiem opłat (domyślnie: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Opłaty (DASH/Kb) mniejsze niż ta, są uważane są za równoznaczne z brakiem opłat za stworzenie transakcji (domyślnie: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Zrzuć zapisy aktywności bazy danych z pamięci na dysk co <n> megabajtów (domyślnie: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Znaleziono niepotwierdzone denominowane transakcje wyjściowe, poczekam aż zostaną one potwierdzone aby móc kontynuować dalej. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Jak dokładna ma być weryfikacja bloku -chceckblocks (0-4, domyślnie: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Jeśli opłata za transakcję (paytxfee) nie jest ustawiona, dodaj wystarczającą opłatę aby proces potwierdzenia rozpoczął się średnio w przeciągu n bloków (domyślnie: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Nieprawidłowa kwota za -maxtxfee=<amount>: '%s' (musi ona wynosić co najmniej tyle co minimalna opłata za retransmisje %s aby zapobiec utknięciu transakcji) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Rejestruj priorytet transakcji oraz opłatę za kB podczas wykopywania bloków (domyślnie: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Utrzymuj pełny index transakcji używany przez getrawtransaction rpc call (domyślnie: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Maksymalny rozmiar danych w wykopanych i retransmitowanych transakcjach przesyłanych przez operatora (domyślnie: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Maksymalna wielkość opłaty za przesłanie jednej transakcji. Ustawienie tej kwoty zbyt nisko może nie pozwolić na przesył większych transakcji. (domyślnie: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Ilość czasu liczonego w sekundach jaki musi upłynąć zanim wadliwy peer znowu może spróbować nawiązać połączenie (domyślnie: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Informacje na temat debugowania danych wyjściowych (domyślnie: %u, podanie <category> jest opcjonalne) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Dostarcz Darksend płynności przez rzadkie ale ciągłe mieszanie monet (0-100, domyślnie: %u, 1=bardzo często, wysokie opłaty, 100=bardzo rzadko, małe opłaty) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Wymagaj wysokiego priorytetu aby retransmitować darmowe transakcje lub te o niskich opłatach (domyślnie: %u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Wyślij informacje o debugowaniu/śladach do konsoli zamiast do pliku debug.log (domyślnie: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Ustaw liczbę wątków do generowania monet, jeśli jest ono włączone (-1 = wszystkie rdzenie. domyślnie: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Pokaż N potwierdzeń dla skutecznie zamkniętej transakcji (0-9999, domyślnie: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Produkt ten zawiera oprogramowanie stworzone przez OpenSSL Project do użytku w OpenSSL Toolkit <https://www.openssl.org/>, oprogramowanie krptograficzne napisane przez Eric Young oraz oprogramowanie UPnP napisane przez Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Aby używać dashd, lub opcje -server w kliencie dash-qt, musisz ustawić hasło rpc w pliku konfiguracji: -%s -Zalecane jest abyś użył te o to losowo stworzone hasło -rpcuser=dashrpc -rpcpassword=%s -(Nie musisz pamiętać tego hasła) -Twoje hasło NIE MOŻE być takie samo jak twój login. -Jeśli plik ten nie istnieje, stwórz go z uprawnieniami do odczytu tylko przez właściciela. -Zaleca się również aby ustawić alarm powiadomień tzw. alertnotify, aby dać ci znać w razie wystąpienia jekiegoś problemu, na przykład: alertnotify=echo %%s I -s "Dash Alert" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Niemożliwe jest zlokalizowanie wystarczającej ilości środków dla tej transakcji, które nie są równe 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Użyj osobnego proxy SOCK5 aby połączyć się z peerami przez sieć Tor (domyślnie: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Uwaga: -maxtxfee jest bardzo wysoka! Tak duże opłaty mogą być uiszczone przy wysłaniu jednej transakcji. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Uwaga: Proszę sprawdzić czy data i czas na twoim komputerze są poprawne! Jeśli twój zegar nie pokazuje prawidłowej godziny to Dash może nie działać poprawidłowo. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Peery z białej listy łączące się z danej maski sieci lub adresu IP. Może byc ustawiane wielokrotnie. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Peery z białej listy nie mogą zostać zbanowane a ich transakcje są zawsze retransmitowane, nawet jeśli już są w pamięci zbiorowej (mempool). Jest to przydatne np. dla bramek wyjściowych - - - (9999 could be used only on mainnet) - (9999 może być użyte tylko dla głównej sieci) - - - (default: %s) - (domyślnie: %s) - - - <category> can be: - - <category> może być: - - - - Accept public REST requests (default: %u) - Akceptuj publiczne żądania REST (domyślnie: %u) - - - Acceptable ciphers (default: %s) - Akceptowane szyfry (domyślnie: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Zawsze wysyłaj zapytanie o adres peera przez podgląd DNS (domyślnie: %u) - - - Cannot resolve -whitebind address: '%s' - Nie można rozwiązać -bind dla adresu adresu: '%s' - - - Connect through SOCKS5 proxy - Połączenie poprzez SOCKS5 proxy - - - Connect to KeePassHttp on port <port> (default: %u) - Podłącz do KeePassHttp na porcie <port> (domyślny: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Prawo autorskie (c) 2009-%i deweloperzy Bitcoin - - - Copyright (C) 2014-%i The Dash Core Developers - Prawa autorskie (C) 2014-%i deweloperzy Dash - - - Could not parse -rpcbind value %s as network address - Analiza -rpcbind wartości %s jako adresu sieci jest niemożliwa - - - Darksend is idle. - Darksend jest w stanie spoczynku. - - - Darksend request complete: - Żądanie Darksend zakończone: - - - Darksend request incomplete: - Żądanie Darksend niezakończone: - - - Disable safemode, override a real safe mode event (default: %u) - Wyłącz tryb awaryjny, nadpisz prawdziwy tryb awaryjny (domyślnie: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Upoważnia klienta aby działał jako masternode (0-1, domyślnie: %u) - - - Error connecting to Masternode. - Błąd w połączeniu z Masternodem. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Błą wczytywania wallet.dat: Portfel wymaga nowszej wersji Dash - - - Error: A fatal internal error occured, see debug.log for details - Błąd: Wystąpił wewnętrzny błąd krytyczny, otwórz debug.log po więcej informacji. - - - Error: Can't select current denominated inputs - Wystąpił błąd: Nie możesz wybrać obecnych denominowanych wartości. - - - Error: Unsupported argument -tor found, use -onion. - Błąd: Znaleziono niewspierany argument -tor, użyj -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Opłata (DASH/kB) do dodania do transakcji, którą chcesz wysłać (domyślnie: %s) - - - Finalizing transaction. - Finalizuje transakcje. - - - Force safe mode (default: %u) - Wymuś tryb awaryjny (domyślnie: %u) - - - Found enough users, signing ( waiting %s ) - Znaleziono wystarczającą ilość użytkowników, trwa podoposywanie ( poczekaj %s ) - - - Found enough users, signing ... - Znaleziono wystarczającą ilość użytkowników, zapisuje ... - - - Generate coins (default: %u) - Generuj monety (domyślny: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Ile bloków sprawdzić podczas uruchomienia (domyślnie: %u, 0 = wszystkie) - - - Importing... - Importuje... - - - Imports blocks from external blk000??.dat file - Importuje bloki z zewnętrznego pliku blk000??.dat - - - Include IP addresses in debug output (default: %u) - Załącz adres IP do wyników debugowania (domyślnie: %u) - - - Incompatible mode. - Niekompatybilny tryb. - - - Incompatible version. - Niekompatybilna wersja. - - - Incorrect or no genesis block found. Wrong datadir for network? - Znaleziono nieprawidłowy blok lub brak bloku początkowego. Nieprawidłowy katalog danych dla sieci - - - Information - Informacja - - - Initialization sanity check failed. Dash Core is shutting down. - Inicjalizacja kontroli poprawności nie powiodła się. Trwa zamykanie Dash Core - - - Input is not valid. - Transakcja wejściowa jest niewłaściwa. - - - InstantX options: - Opcje InstantX: - - - Insufficient funds. - Niewystarczające środki - - - Invalid -onion address: '%s' - Nieprawidłowy adres -onion: '%s' - - - Invalid -proxy address: '%s' - Nieprawidłowy adres -proxy: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Nieprawidłowa kwota dla -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Nieprawidłowa kwota dla -minrelaytxfee=<kwota>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Nieprawidłowa kwota dla -mintxfee=<kwota>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Nieprawidłowa kwota dla -paytxfee=<amount>: '%s' (musi wynosić co najmniej %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Nieprawidłowa kwota dla -paytxfee=<kwota>: '%s' - - - Last successful Darksend action was too recent. - Za mało czasu upłynęło od ostatniej udanej transakcji Darksend. - - - Limit size of signature cache to <n> entries (default: %u) - Ogranicz rozmiar pamięci podrecznej podpisu do <n> wejść (domyślny: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Nasłuchuj połączeń JSON-RPC na <port> (domyślnie: %u lub testnet: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Nasłuchuj połączeń na <port> (domyślnie: %u lub testnet: %u) - - - Loading budget cache... - Ładuje pamięć podręczną budżetu... - - - Loading masternode cache... - Ładuję pamięć podręczną masternoda... - - - Loading masternode payment cache... - Ładuję pamięć podręczną płatności masternodów... - - - Lock is already in place. - Transakcja została już zamknięta. - - - Lock masternodes from masternode configuration file (default: %u) - Zamknij masternody z pliku konfiguracji (domyślnie: %u) - - - Maintain at most <n> connections to peers (default: %u) - Utrzymuj nie więcej niż <n> połączeń z peerami (domyślnie: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Maksymalny bufor odbierający na każde połączenie, <n>*1000 bajtów (domyślny: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Maksymalny bufor wysyłania na każde połączenie, <n>*1000 bajtów (domyślny: %u) - - - Mixing in progress... - W trakcie mieszania... - - - Need to specify a port with -whitebind: '%s' - Musisz wyznaczyć port z -whitebind: '%s' - - - No Masternodes detected. - Nie wykryto żadnego Masternoda. - - - No compatible Masternode found. - Nie znalezione zadnego kompatybilnego Masternoda. - - - Not in the Masternode list. - Nie istnieje na liście masternodów. - - - Number of automatic wallet backups (default: 10) - Liczba automatycznych kopi zapasowych (domyślnie: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Akceptuj tylko blockchain, który pasuje do wbudowanych punktów kontrolnych (domyślnie: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Łącz się tylko z węzłami w sieci <net> (ipv4, ipv6 lub onion) - - - Prepend debug output with timestamp (default: %u) - Poprzedź wyniki debugowania datą i godziną (domyślnie: %u) - - - Run a thread to flush wallet periodically (default: %u) - Włącz wątek aby od czasu do czasu wyrównać portfel (domyślnie: %u) - - - Send trace/debug info to debug.log file (default: %u) - Wyślij informacje o debugowaniu/śladach do pliku debug.log (domyślnie: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Wyślij transakcje jako darmowe jeśli istnieje taka możliwość (domyślnie: %u) - - - Server certificate file (default: %s) - Plik certyfikatu serwera (domyślnie: %s) - - - Server private key (default: %s) - Klucz prywatny serwera (domyślnie: %s) - - - Set external address:port to get to this masternode (example: %s) - Ustaw zewnętrzny address:port aby połączyć się z tym masternodem (na przykład: %s) - - - Set key pool size to <n> (default: %u) - Ustaw ilość kluczy w key pool na <n> (domyślny: %u) - - - Set minimum block size in bytes (default: %u) - Ustaw minimalny rozmiar bloku w bajtach (domyślny: %u) - - - Set the number of threads to service RPC calls (default: %d) - Ustaw liczbę wątków dla usługi połączen RPC (domyślny: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Ustaw flagę DB_PRIVATE w środowisku db portfela (domyślnie: %u) - - - Signing timed out. - Przypisywanie wyszło poza limit czasu. - - - Specify configuration file (default: %s) - Ustaw plik konfiguracji (domyślnie: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - ustaw limit czasu połączenia w milisekundach (minimum: 1, domyślnie: %d) - - - Specify masternode configuration file (default: %s) - Ustaw plik konfiguracji masternoda (domyślnie: %s) - - - Specify pid file (default: %s) - Sprecyjzuj plik pid (domyślny: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Wydaj niepotwierdzoną resztę podczas wysyłania transakcji (domuślnie: %u) - - - Stop running after importing blocks from disk (default: %u) - Zamknij program po zaimportowaniu wszystkich bloków z dysku (domyślnie: %u) - - - Submitted following entries to masternode: %u / %d - Następujące wpisy zostały przesłane do masternoda: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Zapisano do masternoda, czekam na więcej wejść ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Przesłano do masterdnoda, czekaj na swoją kolej %s - - - Synchronization failed - Synchronizacja nie powiodła się - - - Synchronization finished - Synchronizacja zakończona - - - Synchronizing budgets... - Synchronizuję budżet... - - - Synchronizing masternode winners... - Synchronizuję zwycięskie masternody... - - - Synchronizing masternodes... - Synchronizuję masternody... - - - Synchronizing sporks... - Synchronizuję sporki... - - - This is not a Masternode. - To nie jest Masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Próg dla niewłaściwie działających, odłączających sie peerów (domyślnie: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Użyj integracji KeePass 2 z wtyczką KeePass Http (domyślnie: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Użyj N oddzielnych masternodów aby zanonimizować fundusze (2-8, domyślnie: %u) - - - Use UPnP to map the listening port (default: %u) - Użyj UPnP aby zmapować port nasłuchu (domyślnie: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Portfel potrzebuje być przepisany: uruchom ponownie Dash Core aby zakończyć. - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Ostrzeżenie: Niewłaściwy argument - punkt odniesienia (benchmark) został zignorowany, użyj -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Ostrzeżenie: Niewłaściwy argument -debugnet zignorowany, użyj -debug=net - - - Will retry... - Spróbuje ponownie... - - - Invalid masternodeprivkey. Please see documenation. - Nieprawidłowy klucz prywatny masternoda. Przeczytaj dokumentację. - - - (must be 9999 for mainnet) - (musi być 9999 dla głównej sieci) - - - Can't find random Masternode. - Nie można znaleźć przypadkowego masternoda. - - - Can't mix while sync in progress. - Nie możesz miksować w trakcie synchronizacji. - - - Could not parse masternode.conf - Nie można analizować masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Niewłaściwa maska sieci w -whitelist: '%s' - - - Invalid port detected in masternode.conf - Wykryto niewłaściwy port w masternode.conf - - - Invalid private key. - Nieprawidłowy klucz prywatny. - - - Invalid script detected. - Wykryto nieprawidłowy skrypt. - - - KeePassHttp id for the established association - ID KeePassHttp dla ustanowionego skojażenia - - - KeePassHttp key for AES encrypted communication with KeePass - Klucz KeePassHttp dla zaszyfrowanego metodą AES połączenia z KeePass - - - Keep N DASH anonymized (default: %u) - Utrzymuj N zanonimizowanych dash (domyślnie: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Utrzymuj najwyżej <n> niepodłączalnych transakcji w pamięci (domyślny: %u) - - - Last Darksend was too recent. - Za mało czasu upłynęło od ostatniej transakcji Darksend. - - - Line: %d - Linia: %d - - - Loading addresses... - Wczytuje adresy... - - - Loading block index... - Wczytuje indeks bloków - - - Loading wallet... (%3.2f %%) - Ładuje portfel... (%3.2f %%) - - - Loading wallet... - Ładuje portfel... - - - Masternode options: - Opcje masternodów: - - - Masternode queue is full. - Kolejka masternodów jest pełna. - - - Masternode: - Masternod: - - - Missing input transaction information. - Brak informacji o transakcji wejściowej. - - - No funds detected in need of denominating. - Nie odnaleziono środków w celu denominacji. - - - No matching denominations found for mixing. - Nie znaleziono pasujących denominacji w celu miksowania. - - - Node relay options: - Opcje retransmitujących węzłów: - - - Non-standard public key detected. - Wykryto niestandardowy klucz publiczny. - - - Not compatible with existing transactions. - Nie kompatybilny z istniejącymi transakcjami. - - - Not enough file descriptors available. - Dostępny niewystarczający opis pliku. - - - Options: - Opcje: - - - Password for JSON-RPC connections - Hasło dla połączeń JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Opcje RPC SSL: (przeglądnij Bitcoin Wiki po instrukcje ustawień SSL) - - - RPC server options: - Opcje serwera RPC: - - - RPC support for HTTP persistent connections (default: %d) - Wsparcie RPC dla ciągłych połączeń HTTP (domyślnie: %d) - - - Randomly drop 1 of every <n> network messages - Losowo odrzuć 1 co każde <n> komunikatów sieciowych - - - Randomly fuzz 1 of every <n> network messages - Rozmyj losowo 1 co każde <n> komunikatów sieciowych - - - Rebuild block chain index from current blk000??.dat files - Odbuduj łańcuch bloków (block chain) od bieżącego pliku blk000??.dat - - - Receive and display P2P network alerts (default: %u) - Odbiera i wyświetla P2P alarmy sieci (standardowo: %u) - - - Relay and mine data carrier transactions (default: %u) - Retransmituj i przejrzyj transakcje operatora danych (domyślnie: %u) - - - Relay non-P2SH multisig (default: %u) - Retransmituj non-P2SH multisig (doyślnie: %u) - - - Rescan the block chain for missing wallet transactions - Skanuj ponownie łańcuch bloków (block chain) dla brakujących transakcji w portfelu - - - Rescanning... - Ponowne skanowanie... - - - Run in the background as a daemon and accept commands - Działaj w tle jako daemon i akceptuj polecenia - - - Session not complete! - Sesja nie została ukończona! - - - Session timed out. - Sesja wygasła - - - Set database cache size in megabytes (%d to %d, default: %d) - Ustaw pamięć podręczną bazy danych w megabajtach (%d to %d, domyślny: %d) - - - Set maximum block size in bytes (default: %d) - Ustaw maksymalny rozmiar bloku w bajtach (domyślny: %d) - - - Set the masternode private key - Ustaw klucz prywatny masternoda - - - Show all debugging options (usage: --help -help-debug) - Pokaż wszystkie opcje debugowania (użyj: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Zmniejsz plik debug.log podczas włączania klienta (domyślny: 1 kiedy nie ma -debug) - - - Signing failed. - Przypisywanie nie powiodło się. - - - Signing transaction failed - Podpisywanie transakcji nie powiodło się - - - Specify data directory - Sprecyzuj katalog danych - - - Specify wallet file (within data directory) - Sprecyzuj plik wallet (w katalogu danych) - - - Specify your own public address - Sprecyzuj swój adres publiczny - - - Synchronization pending... - Synchronizacja w toku... - - - This help message - Ten komunikat pomocny - - - This is experimental software. - Jest to oprogramowanie testowe. - - - This is intended for regression testing tools and app development. - Używa się tego dla regresywnego testowania narzędzi (opcji) oraz rozwoju aplikacji. - - - Transaction amount too small - Zbyt mała kwota - - - Transaction amounts must be positive - Kwota musi być dodatnia - - - Transaction created successfully. - Skutecznie utworzono transakcję. - - - Transaction fees are too high. - Opłaty za transakcję są zbyt wysokie. - - - Transaction not valid. - Transakcja niewłaściwa. - - - Transaction too large for fee policy - Transakcja nie mieści się w ramach wyznaczających wielkość opłaty za transakcję - - - Transaction too large - Za duża transakcja - - - Transmitting final transaction. - Wysyłanie ostatniej transakcji. - - - Unable to bind to %s on this computer (bind returned error %s) - Nie udało się powiązać do %s na tym komputerze (powiązanie zwróciło błąd %s) - - - Unable to sign spork message, wrong key? - Niemożliwe podpisanie wiadomości spork, nieprawidłowy klucz? - - - Unknown network specified in -onlynet: '%s' - Nieznana sieć określona w -onlynet: '%s' - - - Unknown state: id = %u - Status nieznany: id = %u - - - Upgrade wallet to latest format - Ulepsz plik wallet.dat do nowego formatu - - - Use OpenSSL (https) for JSON-RPC connections - Użyj OpenSSL (https) dal połączeń JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Użyj UPnP aby zmapować używany port (domyślny: 1 kiedy nasłuchuje) - - - Use the test network - Użyj sieci testowej - - - Username for JSON-RPC connections - Nazwa użytkownika dla połączeń JSON-RPC - - - Value more than Darksend pool maximum allows. - Wartość jest większa niż ta maksymalnie dopuszczalna przez Darksend pool - - - Verifying blocks... - Weryfikacja bloków... - - - Verifying wallet... - Weryfikacja portfela... - - - Wallet %s resides outside data directory %s - Plik wallet %s znajduje się poza katalogiem danych %s - - - Wallet is locked. - Portfel jest zamknięty. - - - Wallet options: - Opcje portfela: - - - Wallet window title - Nazwa okna portfela - - - Warning - Ostrzeżenie - - - Warning: This version is obsolete, upgrade required! - Ostrzeżenie: Wersja nieaktualna, zalecana aktualizacja! - - - You need to rebuild the database using -reindex to change -txindex - Musisz odnowić bazę danych używając -reindex aby zmienić -txindex - - - Your entries added successfully. - Twoje wejścia zostały dodane z powodzeniem. - - - Your transaction was accepted into the pool! - Twoja transakcja została dołączona do poola! - - - Zapping all transactions from wallet... - Zappowanie wszystkich transakcji z portfela - - - on startup - podczas uruchomienia - - - wallet.dat corrupt, salvage failed - Plik wallet.dat zepsuty, odzyskiwanie nie powiodło się - - - \ No newline at end of file diff --git a/src/qt/locale/dash_pt.ts b/src/qt/locale/dash_pt.ts deleted file mode 100644 index 0815cbce3b68..000000000000 --- a/src/qt/locale/dash_pt.ts +++ /dev/null @@ -1,4423 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Clique com o botão direito para editar o endereço ou o rótulo - - - Create a new address - Criar novo endereço - - - &New - &Novo - - - Copy the currently selected address to the system clipboard - Copiar o endereço seleccionado para a área de transferência - - - &Copy - &Copiar - - - Delete the currently selected address from the list - Apagar o endereço seleccionado - - - &Delete - &Apagar - - - Export the data in the current tab to a file - Exportar os dados do separador actual para um ficheiro - - - &Export - &Exportar - - - C&lose - &Fechar - - - Choose the address to send coins to - Escolha o endereço para onde enviar as moedas - - - Choose the address to receive coins with - Escolha o endereço onde deseja receber as moedas - - - C&hoose - E&scolha - - - Sending addresses - Endereços para envio - - - Receiving addresses - Endereços para recepção - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estes são os endereços Dash para envio de pagamentos. Confirme sempre a quantia e o endereço antes de enviar as moedas. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estes são os seus endereços Dash para receber pagamentos. É recomendado que seja usado um novo endereço para cada transacção. - - - &Copy Address - &Copiar Endereço - - - Copy &Label - Copiar &Rótulo - - - &Edit - &Editar - - - Export Address List - Exportar lista de endereços - - - Comma separated file (*.csv) - Ficheiro separado por vírgulas (*.csv) - - - Exporting Failed - A exportação falhou - - - There was an error trying to save the address list to %1. Please try again. - Ocorreu um erro ao tentar gravar a lista de endereços para %1. Por favor, tente de novo. - - - - AddressTableModel - - Label - Rótulo - - - Address - Endereço - - - (no label) - (sem rótulo) - - - - AskPassphraseDialog - - Passphrase Dialog - Diálogo de Palavra Passe - - - Enter passphrase - Palavra Passe Actual - - - New passphrase - Nova Palavra Passe - - - Repeat new passphrase - Repita a Nova Palavra Passe - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Serve para desactivar o envio de dinheiro quando a conta do SO for comprometida. Não oferece segurança real. - - - For anonymization only - Apenas para anonimização - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Insira a nova palavra-passe para a carteira.<br/>Por favor use uma palavra-chave com <b>10 ou mais caracteres aleatórios</b>, ou <b>8 ou mais palavras</b>. - - - Encrypt wallet - Cifrar carteira - - - This operation needs your wallet passphrase to unlock the wallet. - Esta operação necessita da sua palavra-passe para desbloquear a carteira. - - - Unlock wallet - Desbloquear carteira - - - This operation needs your wallet passphrase to decrypt the wallet. - Esta operação necessita da sua palavra-passe para decifrar a carteira. - - - Decrypt wallet - Decifrar carteira - - - Change passphrase - Mudar palavra-passe - - - Enter the old and new passphrase to the wallet. - Insira a antiga e a nova palavra-passe para a carteira. - - - Confirm wallet encryption - Confirme cifra da carteira - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Atenção: Se cifrar a carteira e perder a palavra-passe, irá <b>PERDER TODAS AS SUAS MOEDAS DASH</b>! - - - Are you sure you wish to encrypt your wallet? - Tem a certeza que quer cifrar a carteira? - - - Wallet encrypted - Carteira cifrada - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - O cliente Dash irá fechar para finalizar o processo de cifra. Lembre-se que cifrar a sua carteira não consegue proteger totalmente as suas dashs contra roubos feitos por malware presente no seu computador. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - IMPORTANTE: Quaisquer copias de segurança feitas anteriormente à sua carteira, devem ser substituídas pelo novo ficheiro cifrado. Por razões de segurança, as copias de segurança anteriores não cifradas ficarão obsoletas assim que comece a usar a nova carteira cifrada, - - - Wallet encryption failed - Cifra da carteira falhou - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - A cifra da carteira falhou devido a um erro interno. A sua carteira não foi cifrada. - - - The supplied passphrases do not match. - As palavras-passe fornecidas não coincidem. - - - Wallet unlock failed - O desbloqueio da carteira falhou - - - The passphrase entered for the wallet decryption was incorrect. - A palavra-passe fornecida para decifrar a carteira está incorrecta. - - - Wallet decryption failed - Decifra da carteira falhou - - - Wallet passphrase was successfully changed. - A palavra-passe foi alterada com sucesso. - - - Warning: The Caps Lock key is on! - Atenção: O Caps Lock está activo! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Carteira - - - Node - - - - &Overview - &Global - - - Show general overview of wallet - Mostrar visão global da carteira - - - &Send - &Enviar - - - Send coins to a Dash address - Enviar moedas para um endereço Dash - - - &Receive - &Receber - - - Request payments (generates QR codes and dash: URIs) - Solicitar pagamentos (gera códigos QR e dash: URIs) - - - &Transactions - &Transacções - - - Browse transaction history - Visualiza histórico de transacções - - - E&xit - &Sair - - - Quit application - Sair da aplicação - - - &About Dash Core - &Acerca do Dash Core - - - Show information about Dash Core - Mostra informação acerca do Dash Core - - - About &Qt - Acerca do &Qt - - - Show information about Qt - Mostra informação acerca do Qt - - - &Options... - &Opções... - - - Modify configuration options for Dash - Modificar opções de configuração do Dash - - - &Show / Hide - &Mostar / Esconder - - - Show or hide the main Window - Mostrar ou esconder a Janela principal - - - &Encrypt Wallet... - &Cifrar Carteira - - - Encrypt the private keys that belong to your wallet - Cifra as chaves privadas que pertencem à sua carteira - - - &Backup Wallet... - Copia de &Segurança - - - Backup wallet to another location - Criar copia de segurança da carteira noutra localização - - - &Change Passphrase... - &Mudar Palavra-passe - - - Change the passphrase used for wallet encryption - Mudar a palavra-passe usada na cifra da carteira - - - &Unlock Wallet... - &Desbloquear Carteira - - - Unlock wallet - Desbloquear carteira - - - &Lock Wallet - &Bloquear Carteira - - - Sign &message... - &Assinar Mensagem - - - Sign messages with your Dash addresses to prove you own them - Assine mensagens com os seus endereços Dash para provar que são seus - - - &Verify message... - &Verificar Mensagem - - - Verify messages to ensure they were signed with specified Dash addresses - Verifica mensagens para garantir que foram assinadas com um endereço Dash específico - - - &Information - &Informação - - - Show diagnostic information - Mostra informação de diagnóstico - - - &Debug console - Consola de &Depuração - - - Open debugging console - Abrir consola de depuração - - - &Network Monitor - Monitor de &Rede - - - Show network monitor - Mostrar monitor de rede - - - &Peers list - Lista de &Nós - - - Show peers info - Mostrar informação dos nós - - - Wallet &Repair - &Reparar Carteira - - - Show wallet repair options - Mostra as opções de reparação da carteira - - - Open &Configuration File - Abrir Ficheiro de &Configuração - - - Open configuration file - Abrir ficheiro de configuração - - - Show Automatic &Backups - Mostrar &Cópias Automáticas - - - Show automatically created wallet backups - Mostra as cópias automáticas da carteira - - - &Sending addresses... - &Endereços de envio... - - - Show the list of used sending addresses and labels - Mostra a lista de endereços de envio e respectivos rótulos - - - &Receiving addresses... - Endereços de &Recepção... - - - Show the list of used receiving addresses and labels - Mostra a lista de endereços de recepção e respectivos rótulos - - - Open &URI... - Abrir &URI... - - - Open a dash: URI or payment request - Abre um dash: URI ou solicitação de pagamento - - - &Command-line options - Opções de linha de &comandos - - - Dash Core client - Cliente Dash Core - - - Processed %n blocks of transaction history. - %n bloco do histórico de transacções processado.%n blocos do histórico de transacções processados. - - - Show the Dash Core help message to get a list with possible Dash command-line options - Mostra a mensagem de ajuda do Dash Core para obter a lista com as possíveis opções de linha de comandos - - - &File - &Ficheiro - - - &Settings - &Definições - - - &Tools - &Ferramentas - - - &Help - &Ajuda - - - Tabs toolbar - Barra de ferramentas - - - %n active connection(s) to Dash network - %n ligação activa à rede Dash%n ligações activas à rede Dash - - - Synchronizing with network... - A sincronizar com a rede... - - - Importing blocks from disk... - A carregar blocos do disco... - - - Reindexing blocks on disk... - A indexar blocos no disco... - - - No block source available... - Nenhuma fonte de blocos disponível... - - - Up to date - Actualizado - - - %n hour(s) - %n hora%n horas - - - %n day(s) - %n dia%n dias - - - %n week(s) - %n semana%n semanas - - - %1 and %2 - %1 e %2 - - - %n year(s) - %n ano%n anos - - - %1 behind - %1 de atraso - - - Catching up... - A alcançar - - - Last received block was generated %1 ago. - O último bloco recebido foi gerado à %1. - - - Transactions after this will not yet be visible. - Transacções posteriores ainda não serão visíveis. - - - Error - Erro - - - Warning - Aviso - - - Information - Informação - - - Sent transaction - Transacção enviada - - - Incoming transaction - Transacção recebida - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Data: %1 -Quantia: %2 -Tipo: %3 -Endereço: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - A carteira encontra-se <b>cifrada</b> e actualmente <b>desbloqueada</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - A carteira encontra-se <b>cifrada</b> e actualmente <b>desbloqueada</b> somente para anonimização - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - A carteira encontra-se <b>cifrada</b> e actualmente <b>bloqueada</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Total: %1 (Compatível DS: %2 / Ligados: %3) - - - Network Alert - Alerta de Rede - - - - CoinControlDialog - - Quantity: - Quantidade: - - - Bytes: - Bytes: - - - Amount: - Quantia: - - - Priority: - Prioridade: - - - Fee: - Taxa: - - - Coin Selection - Selecção de Moedas - - - Dust: - Poeira: - - - After Fee: - Com taxa: - - - Change: - Troco: - - - (un)select all - (des)seleccionar todos - - - Tree mode - Vista em árvore - - - List mode - Vista em lista - - - (1 locked) - (1 bloqueada) - - - Amount - Quantia - - - Received with label - Recebido com rótulo - - - Received with address - Recebido com endereço - - - DS Rounds - Rondas DS - - - Date - Data - - - Confirmations - Confirmações - - - Confirmed - Confirmada - - - Priority - Prioridade - - - Copy address - Copiar endereço - - - Copy label - Copiar rótulo - - - Copy amount - Copiar quantia - - - Copy transaction ID - Copiar ID de transacção - - - Lock unspent - Bloquear não gasto - - - Unlock unspent - Desbloquear não gasto - - - Copy quantity - Copiar quantidade - - - Copy fee - Copiar taxa - - - Copy after fee - Copiar depois da taxa - - - Copy bytes - Copiar bytes - - - Copy priority - Copiar prioridade - - - Copy dust - Copiar poeira - - - Copy change - Copiar troco - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Entrada não anonimizada seleccionada. <b>O Darksend será desactivado.</b><br><br>Se deseja usar o Darksend, por favor desseleccione primeiro todas as entradas não anonimizadas e em seguida volte a marcar a opção Darksend. - - - highest - a-mais-alta - - - higher - mais-alta - - - high - alta - - - medium-high - média-alta - - - Can vary +/- %1 duff(s) per input. - Pode variar +/- %1 duff(s) por input - - - n/a - n/d - - - medium - média - - - low-medium - média-baixa - - - low - baixa - - - lower - mais-baixa - - - lowest - a-mais-baixa - - - (%1 locked) - (%1 bloqueado) - - - none - nenhuma - - - yes - sim - - - no - não - - - This label turns red, if the transaction size is greater than 1000 bytes. - Este rótulo fica vermelho se o tamanho da transacção exceder 1000 bytes. - - - This means a fee of at least %1 per kB is required. - Isto significa que é necessária uma taxa de pelo menos %1 por kB. - - - Can vary +/- 1 byte per input. - Pode variar +/- 1 byte por entrada. - - - Transactions with higher priority are more likely to get included into a block. - Transacções com prioridade mais alta tem uma maior probabilidade de ser incluídas num bloco. - - - This label turns red, if the priority is smaller than "medium". - Este rótulo fica vermelho se a prioridade for inferior a "média". - - - This label turns red, if any recipient receives an amount smaller than %1. - Este rótulo fica vermelho se algum destinatário receber uma quantia inferior a %1. - - - (no label) - (sem rótulo) - - - change from %1 (%2) - troco de %1 (%2) - - - (change) - (troco) - - - - DarksendConfig - - Configure Darksend - Configurar Darksend - - - Basic Privacy - Privacidade Básica - - - High Privacy - Privacidade Alta - - - Maximum Privacy - Privacidade Máxima - - - Please select a privacy level. - Por favor seleccione um nível de privacidade. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Usar 2 masternodes distintos para misturar os fundos até 1000DRK - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Usar 8 masternodes distintos para misturar os fundos até 1000DRK - - - Use 16 separate masternodes - Usar 16 masternodes - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Esta opção é a mais rápida e irá custar cerca de ~0.025 DASH para anonimizar 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Esta opção é relativamente rápida e irá custar cerca de ~0.05 DASH para anonimizar 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH por cada 1000 DASH a anonimizar. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Esta é a opção mais lenta e mais segura. Usando anonimização máxima irá custar - - - Darksend Configuration - Configuração Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend foi colocado com sucesso no modo básico (%1 e 2 voltas). Pode mudar esta definição em qualquer altura abrindo o ecrã de configuração Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend foi colocado com sucesso no modo alto (%1 e 8 voltas). Pode mudar esta definição em qualquer altura abrindo o ecrã de configuração Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend foi colocado com sucesso no modo máximo (%1 e 16 voltas). Pode mudar esta definição em qualquer altura abrindo o ecrã de configuração Dash. - - - - EditAddressDialog - - Edit Address - Editar Endereço - - - &Label - &Rótulo - - - The label associated with this address list entry - Rótulo associado com este item da lista de endereços - - - &Address - &Endereço - - - The address associated with this address list entry. This can only be modified for sending addresses. - O endereço associado com este item da lista. Isto só pode ser modificado para endereços de envio. - - - New receiving address - Novo endereço de recepção - - - New sending address - Novo endereço de envio - - - Edit receiving address - Editar endereço de recepção - - - Edit sending address - Editar endereço de envio - - - The entered address "%1" is not a valid Dash address. - O endereço introduzido "%1" não é um endereço Dash válido. - - - The entered address "%1" is already in the address book. - O endereço introduzido "%1" já se encontra no livro de endereços. - - - Could not unlock wallet. - Não foi possível desbloquear carteira. - - - New key generation failed. - Falhou a geração de nova chave. - - - - FreespaceChecker - - A new data directory will be created. - Será criada uma nova pasta de dados. - - - name - nome - - - Directory already exists. Add %1 if you intend to create a new directory here. - A pasta já existe. Adicione %1 se desejar criar uma nova pasta aqui. - - - Path already exists, and is not a directory. - O caminho já existe e não é uma pasta. - - - Cannot create data directory here. - Não é possível criar a pasta de dados aqui. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - versão - - - (%1-bit) - (%1-bit) - - - About Dash Core - Acerca do Dash Core - - - Command-line options - Opções de linha de comandos - - - Usage: - Utilização: - - - command-line options - opções de linha de comandos - - - UI options - Opções do interface - - - Choose data directory on startup (default: 0) - Escolher pasta de dados no arranque (omissão: 0) - - - Set language, for example "de_DE" (default: system locale) - Defina a linguagem, por exemplo "pt-PT" (omissão: linguagem do sistema) - - - Start minimized - Arrancar minimizado - - - Set SSL root certificates for payment request (default: -system-) - Definir certificados de raiz SSL para solicitações de pagamento (omissão: -sistema-) - - - Show splash screen on startup (default: 1) - Mostrar ecrã de boas vindas no arranque (omissão: 1) - - - - Intro - - Welcome - Bem-vindo - - - Welcome to Dash Core. - Bem-vindo ao Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Como esta é a primeira vez que o programa é executado, pode escolher onde o cliente Dash Core irá guardar os seus dados. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - O cliente Dash Core irá descarregar e guardar uma copia da cadeia de blocos Dash. Pelo menos %1GB de dados serão guardados nesta pasta e irá aumentar com o tempo. A carteira também ficará guardada nesta pasta. - - - Use the default data directory - Usar a pasta de dados por omissão - - - Use a custom data directory: - Usar uma pasta de dados personalizada - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Erro: A pasta especificada "%1" não pode ser criada. - - - Error - Erro - - - %1 GB of free space available - %1 GB de espaço livre disponível - - - (of %1 GB needed) - (de %1 GB necessários) - - - - OpenURIDialog - - Open URI - Abrir URI - - - Open payment request from URI or file - Abrir solicitação de pagamento a partir de um URI ou ficheiro - - - URI: - URI: - - - Select payment request file - Seleccionar ficheiro de solicitação de pagamento - - - Select payment request file to open - Seleccionar ficheiro de solicitação de pagamento para abrir - - - - OptionsDialog - - Options - Opções - - - &Main - &Geral - - - Automatically start Dash after logging in to the system. - Executar automaticamente o cliente Dash quando entrar no sistema. - - - &Start Dash on system login - &Iniciar o cliente Dash ao entrar no sistema - - - Size of &database cache - Tamanho da &cache de dados - - - MB - MB - - - Number of script &verification threads - Número de processos de &verificação de scripts - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = deixar este número de cores livres) - - - Darksend rounds to use - Número de voltas Darksend a usar - - - This amount acts as a threshold to turn off Darksend once it's reached. - Esta quantia actua como um limite, a partir do qual o Darksend é desligado. - - - Amount of Dash to keep anonymized - Quantia de Dash a manter anonimizada - - - W&allet - C&arteira - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Se desabilitar a funcionalidade de gastar o troco não confirmado, este troco <br/> não poderá ser usado até que a transacção tenha pelo menos uma confirmação. <br/> Isto também afecta a maneira como o seu saldo é calculado. - - - Accept connections from outside - Aceitar ligações do exterior - - - Allow incoming connections - Aceitar ligações de entrada - - - Connect to the Dash network through a SOCKS5 proxy. - Efectuar a ligação à rede Dash através de um proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Ligar através de um proxy SOCKS5 (proxy por omissão) - - - Expert - Avançado - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Esta opção determina o número de masternodes pelos quais uma entrada será anonimizada. <br/> Mais rondas de anonimização fornecem um maior grau de privacidade, mas também tem um custo mais elevado em taxas. - - - Whether to show coin control features or not. - Se deve mostrar as opções de coin control. - - - Enable coin &control features - Activar opções coin &control - - - &Spend unconfirmed change - &Gastar troco não confirmado - - - &Network - &Rede - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automaticamente a porta do cliente Dash no router. Isto só funciona quando o seu router suporta UPnP e este está activo. - - - Map port using &UPnP - Mapear porta usando &UPnP - - - Proxy &IP: - IP do proxy - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Endereço IP do proxy (ex. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Porta: - - - Port of the proxy (e.g. 9050) - Porta do servidor proxy (ex. 9050) - - - &Window - &Janela - - - Show only a tray icon after minimizing the window. - Somente mostrar o ícone no tabuleiro após minimizar aplicação - - - &Minimize to the tray instead of the taskbar - &Minimizar para o tabuleiro, em vez da barra de tarefas - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimizar em vez de fechar ao sair da aplicação. Quando esta opção está activada, a aplicação só será fechada quando seleccionar Sair no menu. - - - M&inimize on close - M&inimizar ao fechar - - - &Display - &Interface - - - User Interface &language: - &Linguagem do interface: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - A linguagem do interface pode ser definida aqui. Esta definição terá efeito depois de reiniciar a aplicação. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Linguagem não encontrada ou tradução incompleta? Ajude a traduzir aqui: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Tema do interface: - - - &Unit to show amounts in: - &Unidade por omissão usada para mostrar as quantias: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Escolha a unidade subdivisão por omissão para mostrar na interface e no envio de moedas. - - - Decimal digits - Dígitos decimais - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URLs de terceiros (ex. explorador de blocos) que aparecem no separador de transacções como itens do menu de contexto. %s no URL é substituído pelo hash da transacção. URLs múltiplos são separados pela barra vertical |. - - - Third party transaction URLs - URLs de transacções de terceiros - - - Active command-line options that override above options: - Opções activas de linha de comandos que sobrescrevem as opções acima: - - - Reset all client options to default. - Reiniciar todas as opções do cliente para os valores por omissão. - - - &Reset Options - &Reiniciar Opções - - - &OK - &OK - - - &Cancel - &Cancelar - - - default - omissão - - - none - nenhum - - - Confirm options reset - Confirme reinicialização das opções - - - Client restart required to activate changes. - Para activar as alterações é necessário reiniciar o cliente. - - - Client will be shutdown, do you want to proceed? - O cliente será fechado, deseja continuar? - - - This change would require a client restart. - Esta alteração necessita que o cliente seja reiniciado. - - - The supplied proxy address is invalid. - O endereço proxy fornecido é inválido. - - - - OverviewPage - - Form - De - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - A informação mostrada pode estar desactualizada. A sua carteira sincroniza automaticamente com a rede Dash assim que for estabelecida uma ligação, mas este processo ainda não terminou. - - - Available: - Disponível: - - - Your current spendable balance - O seu saldo disponível - - - Pending: - Pendente: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Total de transacções que ainda não foram confirmadas e não contam para o saldo disponível - - - Immature: - Imaturo: - - - Mined balance that has not yet matured - Saldo minado que ainda não atingiu a maturidade - - - Balances - Saldos - - - Unconfirmed transactions to watch-only addresses - Transações não confirmadas para endereços somente de visualização - - - Mined balance in watch-only addresses that has not yet matured - Saldo minado que ainda não atingiu a maturidade em endereços somente de visualização - - - Total: - Total: - - - Your current total balance - O seu saldo total - - - Current total balance in watch-only addresses - Saldo total em endereços somente de visualização - - - Watch-only: - Somente de visualização: - - - Your current balance in watch-only addresses - O seu saldo actual em endereços somente de visualização - - - Spendable: - Disponível: - - - Status: - Estado: - - - Enabled/Disabled - Activado/Desactivado - - - Completion: - Progresso: - - - Darksend Balance: - Saldo Darksend: - - - Amount and Rounds: - Quantia e Voltas: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Voltas - - - Submitted Denom: - Denominação submetida: - - - n/a - n/d - - - Darksend - Darksend - - - Recent transactions - Transacções recentes - - - Start/Stop Mixing - Iniciar/Parar Mistura - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - As denominações que foram submetidas para o Masternode.<br>Para misturar, outros utilizadores terão que submeter denominações iguais. - - - (Last Message) - (Última Mensagem) - - - Try to manually submit a Darksend request. - Tentar submeter um pedido Darksend manualmente. - - - Try Mix - Tentar Mistura - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Reinicia o estado actual Darksend (pode interromper o Darksend mesmo quando em processo de Mistura, o que pode ter custos!) - - - Reset - Reiniciar - - - out of sync - fora de sincronia - - - Disabled - Desactivado - - - Start Darksend Mixing - Iniciar Mistura Darksend - - - Stop Darksend Mixing - Parar Mistura Darksend - - - No inputs detected - Nenhuma entrada detectada - - - %n Rounds - %n volta%n voltas - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Número insuficiente de entradas para anonimizar <span style='color:red;'>%1</span>,<br/>a anonimizar <span style='color:red;'>%2</span> em alternativa - - - Overall progress - Progresso Geral - - - Denominated - Denominado - - - Anonymized - Anonimizado - - - Denominated inputs have %5 of %n rounds on average - Entradas denominadas tem %5 de %n volta em médiaEntradas denominadas tem %5 de %n voltas em média - - - Found enough compatible inputs to anonymize %1 - Encontradas entradas suficientes para anonimizar %1 - - - Mixed - Misturado - - - Enabled - Activado - - - Last Darksend message: - - Última mensagem Darksend: - - - - N/A - N/D - - - Darksend was successfully reset. - Darksend foi reposto com sucesso. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Se não deseja visualizar as taxas/transacções internas Darksend seleccione "Mais Comuns" como Tipo no separador "Transacções" - - - Darksend requires at least %1 to use. - Darksend necessita de pelo menos %1 para ser usado. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - A carteira está bloqueada e o utilizador recusou o desbloqueamento. A desactivar Darksend. - - - - PaymentServer - - Payment request error - Erro na solicitação de pagamento - - - Cannot start dash: click-to-pay handler - Não é possível iniciar o dash: click-to-pay handler - - - URI handling - Manipulação de URI - - - Payment request fetch URL is invalid: %1 - URL de solicitação de pagamento é inválido: %1 - - - Payment request file handling - Manipulação de ficheiros de solicitação de pagamento - - - Invalid payment address %1 - Endereço de pagamento inválido %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - O URI não pode ser carregado! Isto pode ser causado por um endereço Dash inválido ou parâmetros do URI incorrectos. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - O ficheiro de solicitação de pagamento não pode ser aberto ou processado! Isto pode ser causado por um ficheiro de solicitação de pagamento inválido. - - - Payment request rejected - Solicitação de pagamento rejeitada - - - Payment request network doesn't match client network. - A rede da solicitação de pagamento não corresponde à rede do cliente. - - - Payment request has expired. - A solicitação de pagamento expirou. - - - Payment request is not initialized. - A solicitação de pagamento não está inicializada. - - - Unverified payment requests to custom payment scripts are unsupported. - Solicitações de pagamento não verificadas para scripts de pagamento personalizados não são suportadas. - - - Requested payment amount of %1 is too small (considered dust). - A quantia %1 para solicitação de pagamento é demasiado pequena (considerada poeira) - - - Refund from %1 - Devolução de %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - A solicitação de pagamento %1 é demasiado grande (%2 bytes, permitido %3 bytes). - - - Payment request DoS protection - Protecção DoS à solicitação de pagamento - - - Error communicating with %1: %2 - Erro de comunicação com %1: %2 - - - Payment request cannot be parsed! - A solicitação de pagamento não pode ser carregada! - - - Bad response from server %1 - Resposta inválida do servidor %1 - - - Network request error - Erro no pedido à rede - - - Payment acknowledged - Pagamento confirmado - - - - PeerTableModel - - Address/Hostname - Endereço/Servidor - - - User Agent - Agente de Usuário - - - Ping Time - Tempo de Ping - - - - QObject - - Amount - Quantia - - - Enter a Dash address (e.g. %1) - Insira um endereço Dash (ex. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - REDE - - - UNKNOWN - DESCONHECIDO - - - None - Nenhum - - - N/A - N/D - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Salvar Imagem... - - - &Copy Image - &Copiar Imagem - - - Save QR Code - Guardar código QR - - - PNG Image (*.png) - Imagem PNG (*.png) - - - - RPCConsole - - Tools window - Janela de ferramentas - - - &Information - &Information - - - General - Geral - - - Name - Nome - - - Client name - Nome do Cliente - - - N/A - N/D - - - Number of connections - Número de ligações - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Abrir o ficheiro de registo de depuração Dash a partir da pasta de dados actual. Para grandes ficheiros de registo pode demorar alguns segundos. - - - &Open - &Abrir - - - Startup time - Hora de inicialização - - - Network - Rede - - - Last block time - Data do último bloco - - - Debug log file - Ficheiro de registo de depuração - - - Using OpenSSL version - A usar versão do OpenSSL - - - Build date - Data de compilação - - - Current number of blocks - Número actual de blocos - - - Client version - Versão do Cliente - - - Using BerkeleyDB version - A usar a versão do BerkeleyDB - - - Block chain - Cadeia de blocos - - - Number of Masternodes - Número de Masternodes - - - &Console - &Consola - - - Clear console - Limpar consola - - - &Network Traffic - &Tráfego de Rede - - - &Clear - &Limpar - - - Totals - Totais - - - Received - Recebido - - - Sent - Enviado - - - &Peers - &Nós - - - Select a peer to view detailed information. - Seleccione um nó para visualizar informação detalhada. - - - Direction - Direcção - - - Version - Versão - - - User Agent - Agente de Usuário - - - Services - Serviços - - - Starting Height - Altura Inicial - - - Sync Height - Altura de Sincronização - - - Ban Score - Pontuação para Banir - - - Connection Time - Tempo de Ligação - - - Last Send - Última Enviado - - - Last Receive - Último Recebido - - - Bytes Sent - Bytes Enviados - - - Bytes Received - Bytes Recebidos - - - Ping Time - Tempo de Ping - - - &Wallet Repair - &Reparar Carteira - - - Salvage wallet - Recuperar Carteira - - - Rescan blockchain files - Reprocessar ficheiros da cadeia de blocos - - - Recover transactions 1 - Recuperar transacções 1 - - - Recover transactions 2 - Recuperar transacções 2 - - - Upgrade wallet format - Actualizar o formato da carteira - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - Os botões abaixo irão reiniciar a carteira passando parâmetros da linha de comandos para reparar a carteira, corrigir problemas com a cadeia de blocos ou com transacções em falta ou obsoletas. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Tenta recuperar as chaves privadas a partir de um ficheiro wallet.dat corrompido. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Examina novamente a cadeia de blocos para encontrar transacções inexistentes na carteira - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Recupera transacções da cadeia de blocos (mantendo os meta-dados, ex. dono da conta) - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Recupera transacções da cadeia de blocos (apagando os meta-dados) - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Actualiza a carteira para o formato mais recente quando arranca. (Nota: Isto NÃO é uma actualização da carteira em si!) - - - Wallet repair options. - Opções de reparação da carteira. - - - Rebuild index - Reconstruir indexação - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Reconstroi o índice da cadeia de blocos a partir dos ficheiros actuais blk000??.dat. - - - In: - Entrada: - - - Out: - Saída: - - - Welcome to the Dash RPC console. - Bem-vindo à consola RPC Dash - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Use as setas para cima / baixo para navegar no histórico, e <b>Ctrl-L</b> para limpar o ecran. - - - Type <b>help</b> for an overview of available commands. - Digite <b>help</b> para ter uma visão global dos comandos disponíveis. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - via %1 - - - never - nunca - - - Inbound - Entrada - - - Outbound - Saída - - - Unknown - Desconhecido - - - Fetching... - Carregando... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Reutilizar um dos endereços de recebimento usados anteriormente. <br> Reutilizar endereços tem problemas de segurança e privacidade. <br>Não use isto a menos que se trate de uma reutilização de um pedido de pagamento feito anteriormente. - - - R&euse an existing receiving address (not recommended) - R&eutilizar um endereço de recebimento existente (não recomendado) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Mensagem opcional para anexar à solicitação de pagamento, que será mostrada quando a solicitação for aberta. Nota: A mensagem não será enviada com o pagamento através da rede Dash. - - - &Message: - &Mensagem: - - - An optional label to associate with the new receiving address. - Rótulo opcional para associar com o novo endereço de recebimento. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Mensagem opcional para anexar à solicitação de pagamento, que será mostrada quando a solicitação for aberta. <br>Nota: A mensagem não será enviada com o pagamento através da rede Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Utilize este formulário para solicitar pagamentos. Todos os campos são <b>opcionais</b>. - - - &Label: - &Rótulo: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Quantia opcional a solicitar. Deixar vazio ou zero para não solicitar uma quantia específica. - - - &Amount: - &Quantia - - - &Request payment - &Pedir pagamento - - - Clear all fields of the form. - Limpar todos os campos do formulário. - - - Clear - Limpar - - - Requested payments history - Histórico de solicitações de pagamento - - - Show the selected request (does the same as double clicking an entry) - Mostrar a solicitação seleccionada (igual a clicar duas vezes) - - - Show - Mostrar - - - Remove the selected entries from the list - Remover as entradas seleccionadas da lista - - - Remove - Remover - - - Copy label - Copiar rótulo - - - Copy message - Copiar mensagem - - - Copy amount - Copiar quantia - - - - ReceiveRequestDialog - - QR Code - QR Code - - - Copy &URI - Copiar &URI - - - Copy &Address - Copiar &Endereço - - - &Save Image... - &Salvar Imagem... - - - Request payment to %1 - Solicitar pagamento a %1 - - - Payment information - Informação de pagamento - - - URI - URI - - - Address - Endereço - - - Amount - Quantia - - - Label - Rótulo - - - Message - Mensagem - - - Resulting URI too long, try to reduce the text for label / message. - O URI resultante é demasiado longo, tente reduzir o texto do rótulo ou da mensagem. - - - Error encoding URI into QR Code. - Erro ao codificar o URI para código QR. - - - - RecentRequestsTableModel - - Date - Data - - - Label - Rótulo - - - Message - Mensagem - - - Amount - Quantia - - - (no label) - (sem rótulo) - - - (no message) - (sem mensagem) - - - (no amount) - (sem quantia) - - - - SendCoinsDialog - - Send Coins - Enviar Moedas - - - Coin Control Features - Funcionalidades de Coin Control - - - Inputs... - Entradas... - - - automatically selected - seleccionadas automáticamente - - - Insufficient funds! - Fundos insuficientes! - - - Quantity: - Quantidade: - - - Bytes: - Bytes: - - - Amount: - Quantia: - - - Priority: - Prioridade: - - - medium - média - - - Fee: - Taxa: - - - Dust: - Poeira: - - - no - não - - - After Fee: - Com taxa: - - - Change: - Troco: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Se isto for activado e o endereço de troco se encontrar vazio, o troco será enviado para um novo endereço gerado. - - - Custom change address - Endereço de troco personalizado - - - Transaction Fee: - Taxa de Transacção: - - - Choose... - Escolha... - - - collapse fee-settings - fechar opções de taxa - - - Minimize - Minimizar - - - per kilobyte - por kilobyte - - - total at least - pelo menos total - - - (read the tooltip) - (leia a tooltip) - - - Recommended: - Recomendado: - - - Custom: - Personalizado: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (A taxa inteligente ainda não foi inicializada. Normalmente demora alguns blocos...) - - - Confirmation time: - Tempo de confirmação: - - - normal - normal - - - fast - rápido - - - Send as zero-fee transaction if possible - Enviar com taxa-zero se possível - - - (confirmation may take longer) - (a confirmação pode demorar mais) - - - Confirm the send action - Confirmar envio - - - S&end - &Enviar - - - Clear all fields of the form. - Limpar todos os campos do formulário. - - - Clear &All - Limpar &Tudo - - - Send to multiple recipients at once - Enviar para múltiplos destinatários de uma vez - - - Add &Recipient - Adicionar &Destinatário - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Copiar quantidade - - - Copy amount - Copiar quantia - - - Copy fee - Copiar taxa - - - Copy after fee - Copiar depois da taxa - - - Copy bytes - Copiar bytes - - - Copy priority - Copiar prioridade - - - Copy dust - Copiar pó - - - Copy change - Copiar troco - - - using - a usar - - - anonymous funds - fundos anónimos - - - (darksend requires this amount to be rounded up to the nearest %1). - (o darksend requer que esta quantia seja arredondada até ao %1 mais próximo). - - - any available funds (not recommended) - quaisquer fundos disponíveis (não recomendado) - - - and InstantX - e InstantX - - - %1 to %2 - %1 a %2 - - - Are you sure you want to send? - Tem a certeza que quer enviar? - - - are added as transaction fee - são adicionadas como taxa de transacção - - - Total Amount = <b>%1</b><br />= %2 - Quantidade Total = <b>%1</b><br />= %2 - - - Confirm send coins - Confirmar envio de moedas - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Uma taxa %1 vezes mais alta do que %2 por kB é considerada demasiado alta. - - - Estimated to begin confirmation within %n block(s). - Inicio de confirmação estimado dentro de %n bloco.Inicio de confirmação estimado dentro de %n blocos. - - - The recipient address is not valid, please recheck. - O endereço do destinatário é inválido, por favor verifique. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 de %2 entradas mostradas)</b> - - - The amount to pay must be larger than 0. - A quantia a pagar tem que ser maior que 0. - - - The amount exceeds your balance. - A quantia excede o seu saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - O total excede o seu saldo quando é incluído o valor %1 relativo a taxas de transacção. - - - Duplicate address found, can only send to each address once per send operation. - Endereço duplicado encontrado, só pode enviar para um endereço uma vez por cada operação de envio. - - - Transaction creation failed! - Falha ao criar transacção! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - A transacção foi rejeitada! Isto pode acontecer se algumas das moedas da sua carteira tiverem sido gastas, tal como se usou uma copia do ficheiro wallet.dat e moedas tiverem sido gastas nessa cópia mas não aqui. - - - Error: The wallet was unlocked only to anonymize coins. - Erro: A carteira foi somente desbloqueada para anonimização de moedas. - - - Pay only the minimum fee of %1 - Pagar somente a taxa mínima de %1 - - - Warning: Invalid Dash address - Aviso: Endereço Dash inválido - - - Warning: Unknown change address - Aviso: Endereço de troco desconhecido - - - (no label) - (sem rótulo) - - - - SendCoinsEntry - - This is a normal payment. - Este é um pagamento normal. - - - Pay &To: - &Pagar a: - - - The Dash address to send the payment to - O endereço Dash para onde enviar o pagamento - - - Choose previously used address - Escolher endereço usado previamente - - - Alt+A - Alt+A - - - Paste address from clipboard - Colar endereço da área de transferência - - - Alt+P - Alt+P - - - Remove this entry - Remover esta entrada - - - &Label: - &Rótulo: - - - Enter a label for this address to add it to the list of used addresses - Digite um rótulo para este endereço para adicioná-lo à lista de endereços usados - - - A&mount: - &Quantidade - - - Message: - Mensagem: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Mensagem que foi anexada ao dash: URI e que será guardada com a transacção para sua referência. Nota: Esta mensagem não será enviada para a rede Dash. - - - This is an unverified payment request. - Este é um pedido de pagamento não verificado. - - - Pay To: - Pagar a: - - - Memo: - Rótulo: - - - This is a verified payment request. - Este é um pedido de pagamento verificado. - - - Enter a label for this address to add it to your address book - Introduza um rótulo para este endereço para adicionar ao livro de endereços - - - - ShutdownWindow - - Dash Core is shutting down... - O Dash Core está a desligar... - - - Do not shut down the computer until this window disappears. - Não desligue o computador enquanto está janela estiver visível. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Assinaturas - Assinar / Verificar uma Mensagem - - - &Sign Message - &Assinar Mensagem - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Pode assinar mensagens com os seus endereços para provar que são seus. Tenha atenção para não assinar mensagens vagas, já que, ataques de phishing podem levá-lo a assinar a sua própria identidade para os atacantes. Apenas assine declarações detalhadas com as quais concorde. - - - The Dash address to sign the message with - Endereço Dash com o qual deseja assinar a mensagem - - - Choose previously used address - Escolher endereço usado previamente - - - Alt+A - Alt+A - - - Paste address from clipboard - Colar endereço da área de transferência - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Escreva aqui a mensagem que deseja assinar - - - Signature - Assinatura - - - Copy the current signature to the system clipboard - Copiar a assinatura actual para a área de transferência - - - Sign the message to prove you own this Dash address - Assinar a mensagem para provar que é o proprietário deste endereço Dash - - - Sign &Message - Assinar &Mensagem - - - Reset all sign message fields - Repor todos os campos de assinatura de mensagem - - - Clear &All - Limpar &Tudo - - - &Verify Message - &Verificar Mensagem - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Introduza o endereço de assinatura, mensagem (assegure-se que copia exactamente as quebras de linha, espaços, tabulações, etc) e assinatura abaixo para verificar a mensagem. Tenha atenção para não ler mais na assinatura do que o que estiver na mensagem assinada, para evitar ser enganado por um atacante que se encontre entre si e quem assinou a mensagem. - - - The Dash address the message was signed with - Endereço Dash com o qual a mensagem foi assinada - - - Verify the message to ensure it was signed with the specified Dash address - Verificar a mensagem de forma a garantir que foi assinada com o endereço Dash especificado - - - Verify &Message - Verificar &Mensagem - - - Reset all verify message fields - Repor todos os campos de verificação de mensagem - - - Click "Sign Message" to generate signature - Prima "Assinar Mensagem" para gerar a assinatura - - - The entered address is invalid. - O endereço inserido é inválido. - - - Please check the address and try again. - Por favor verifique o endereço e tente de novo. - - - The entered address does not refer to a key. - O endereço introduzido não corresponde a uma chave. - - - Wallet unlock was cancelled. - O desbloqueamento da carteira foi cancelado. - - - Private key for the entered address is not available. - A chave privada correspondente ao endereço introduzido não está disponível. - - - Message signing failed. - A assinatura da mensagem falhou. - - - Message signed. - Mensagem assinada. - - - The signature could not be decoded. - A assinatura não pode ser descodificada. - - - Please check the signature and try again. - Por favor verifique a assinatura e tente de novo. - - - The signature did not match the message digest. - A assinatura não corresponde à compilação da mensagem. - - - Message verification failed. - A verificação da mensagem falhou. - - - Message verified. - Mensagem verificada. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Versão %1 - - - The Bitcoin Core developers - Os programadores Bitcoin Core - - - The Dash Core developers - Os programadores Dash Core - - - [testnet] - [rede de testes] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Aberta durante mais %n blocoAberta durante mais %n blocos - - - Open until %1 - Aberta até %1 - - - conflicted - conflituosa - - - %1/offline (verified via instantx) - %1/desligado (verificado através de instantx) - - - %1/confirmed (verified via instantx) - %1/confirmado (verificado através de instantx) - - - %1 confirmations (verified via instantx) - %1 confirmações (verificado através de instantx) - - - %1/offline - %1/desligada - - - %1/unconfirmed - %1/não confirmada - - - %1 confirmations - %1 confirmações - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/desligado (verificação InstantX em progresso - %2 de %3 assinaturas) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/confirmada (verificação InstantX em progresso - %2 de %3 assinaturas) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 confirmações (verificação InstantX em progresso - %2 de %3 assinaturas) - - - %1/offline (InstantX verification failed) - %1/desligado (a verificação InstantX falhou) - - - %1/confirmed (InstantX verification failed) - %1/confirmada (a verificação InstantX falhou) - - - Status - Estado - - - , has not been successfully broadcast yet - , ainda não foi transmitida com sucesso - - - , broadcast through %n node(s) - , transmitida através de %n nó, transmitida através de %n nós - - - Date - Data - - - Source - Origem - - - Generated - Gerada - - - From - De - - - unknown - desconhecido - - - To - Para - - - own address - endereço próprio - - - watch-only - somente de visualização - - - label - rótulo - - - Credit - Credito - - - matures in %n more block(s) - maturidade em %n blocomaturidade em %n blocos - - - not accepted - rejeitada - - - Debit - Débito - - - Total debit - Débito total - - - Total credit - Credito total - - - Transaction fee - Taxa de transacção - - - Net amount - Valor líquido - - - Message - Mensagem - - - Comment - Comentário - - - Transaction ID - ID de transacção - - - Merchant - Comerciante - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - As moedas geradas tem que amadurecer %1 blocos antes de poderem ser gastas. Quando gerou este bloco, este foi propagado para a rede de modo a ser incluído na cadeia de blocos. Se não foi incluído na cadeia, o seu estado será alterado para "rejeitado" e não será possível gastar as moedas. Isto pode acontecer ocasionalmente quando outro nó gera um bloco a poucos segundos do seu. - - - Debug information - Informação de depuração - - - Transaction - Transacção - - - Inputs - Entradas - - - Amount - Quantia - - - true - verdadeiro - - - false - falso - - - - TransactionDescDialog - - Transaction details - Detalhes da transação - - - This pane shows a detailed description of the transaction - Esta janela mostra uma descrição detalhada da transação - - - - TransactionTableModel - - Date - Data - - - Type - Tipo - - - Address - Endereço - - - Open for %n more block(s) - Aberta durante mais %n blocoAberta durante mais %n blocos - - - Open until %1 - Aberta até %1 - - - Offline - Desligado - - - Unconfirmed - Não confirmado - - - Confirming (%1 of %2 recommended confirmations) - A confirmar (%1 de %2 confirmações recomendadas) - - - Confirmed (%1 confirmations) - Confirmada (%1 confirmações) - - - Conflicted - Conflituosa - - - Immature (%1 confirmations, will be available after %2) - Imatura (%1 confirmações, estará disponível após %2) - - - This block was not received by any other nodes and will probably not be accepted! - Este bloco não foi recebido por nenhum outro nó e provavelmente será rejeitado! - - - Generated but not accepted - Gerado mas rejeitado - - - Received with - Recebido com - - - Received from - Recebido de - - - Received via Darksend - Recebido via Darksend - - - Sent to - Enviado para - - - Payment to yourself - Pagamento ao próprio - - - Mined - Minado - - - Darksend Denominate - Denominação Darksend - - - Darksend Collateral Payment - Pagamento Colateral Darksend - - - Darksend Make Collateral Inputs - Darksend Fazer Entradas Colaterais - - - Darksend Create Denominations - Darksend Criar Denominações - - - Darksent - Darksent - - - watch-only - somente de visualização - - - (n/a) - (n/d) - - - Transaction status. Hover over this field to show number of confirmations. - Estado da transacção. Passe o ponteiro do rato sobre este campo para mostrar o número de confirmações. - - - Date and time that the transaction was received. - Data e hora à qual a transacção foi recebida. - - - Type of transaction. - Tipo de transacção. - - - Whether or not a watch-only address is involved in this transaction. - Se existe algum endereço somente de visualização envolvido nesta transacção. - - - Destination address of transaction. - Endereço de destino da transacção. - - - Amount removed from or added to balance. - Quantia removida ou adicionada ao saldo. - - - - TransactionView - - All - Todas - - - Today - Hoje - - - This week - Esta semana - - - This month - Este mês - - - Last month - Mês anterior - - - This year - Este ano - - - Range... - Intervalo... - - - Most Common - Mais Comum - - - Received with - Recebido com - - - Sent to - Enviado para - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend Fazer Entradas Colaterais - - - Darksend Create Denominations - Darksend Criar Denominações - - - Darksend Denominate - Denominação Darksend - - - Darksend Collateral Payment - Pagamento Colateral Darksend - - - To yourself - Ao próprio - - - Mined - Minado - - - Other - Outra - - - Enter address or label to search - Introduza endereço ou rótulo a pesquisar - - - Min amount - Quantia mínima - - - Copy address - Copiar endereço - - - Copy label - Copiar rótulo - - - Copy amount - Copiar quantia - - - Copy transaction ID - Copiar ID de transacção - - - Edit label - Editar rótulo - - - Show transaction details - Mostrar detalhes da transacção - - - Export Transaction History - Exportar histórico de transacções - - - Comma separated file (*.csv) - Ficheiro separado por vírgulas (*.csv) - - - Confirmed - Confirmada - - - Watch-only - Somente de visualização - - - Date - Data - - - Type - Tipo - - - Label - Rótulo - - - Address - Endereço - - - ID - ID - - - Exporting Failed - A exportação falhou - - - There was an error trying to save the transaction history to %1. - Ocorreu um erro ao tentar gravar o histórico de transacções para %1. - - - Exporting Successful - Exportação Concluída com Sucesso - - - The transaction history was successfully saved to %1. - O histórico de transacções foi gravado com sucesso para %1. - - - Range: - Intervalo: - - - to - para - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Unidade das quantias. Clique para seleccionar outra unidade. - - - - WalletFrame - - No wallet has been loaded. - Nenhuma carteira carregada - - - - WalletModel - - Send Coins - Enviar Moedas - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - O InstantX não suporta valores tão elevados neste momento. As transacções estão limitadas a %1 DASH. - - - - WalletView - - &Export - &Exportar - - - Export the data in the current tab to a file - Exportar os dados do separador actual para um ficheiro - - - Selected amount: - Quantia seleccionada: - - - Backup Wallet - Criar Cópia de Segurança da Carteira - - - Wallet Data (*.dat) - Dados da Carteira (*.dat) - - - Backup Failed - A Cópia de Segurança Falhou - - - There was an error trying to save the wallet data to %1. - Ocorreu um erro ao tentar criar cópia de segurança da carteira para %1. - - - Backup Successful - Cópia de Segurança Criada com Sucesso - - - The wallet data was successfully saved to %1. - Os dados da carteira foram gravados com sucesso em %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Vincular a um determinado endereço e ouvir sempre aí. Use a notação [endereço]:porta para IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Não foi possível obter acesso exclusivo à pasta de dados %s. Possivelmente o Dash Core já se encontra em execução. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - O Darksend usa denominações exactas para enviar fundos, pode necessitar simplesmente de anonimizar mais algumas moedas. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Entrar no modo de testes de regressão, que usa uma cadeia de blocos especial onde cada bloco é resolvido instantaneamente. - - - Error: Listening for incoming connections failed (listen returned error %s) - Erro: A escuta por ligações de entrada falhou (a escuta devolveu o erro %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Executar comando quando é recebido um alerta ou vemos uma longa bifurcação na cadeia de blocos (%s no comando é substituído pela mensagem) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Executar comando quando muda uma transacção na carteira (%s no comando é substituído pelo TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Executar comando quando o melhor bloco muda (%s no comando é substituído pela hash do bloco) - - - In this mode -genproclimit controls how many blocks are generated immediately. - Neste modo o -genproclimit controla quantos blocos são gerados imediatamente. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - O InstantX necessita de entradas com pelo menos 6 confirmações, pode ser necessário aguardar mais uns minutos e tentar de novo. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Nome para construir o url para a entrada KeePass que guarda a palavra-passe da carteira - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Questionar por endereços dos nós através de pesquisas DNS caso tenha poucos endereços (omissão: 1 excepto -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Definir tamanho máximo de transacções com alta-prioridade/taxa-reduzida em bytes (omissão: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Definir número de processos de verificação de scripts (%u a %d, 0 = auto, <0 = deixar este número de cores livres, omissão: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Esta é uma compilação prévia de teste - use por sua conta e risco - não use para minar nem em aplicações comerciais - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Não foi possível vincular a %s neste computador. Provavelmente o Dash Core já está a ser executado. - - - Unable to locate enough Darksend denominated funds for this transaction. - Não foi possível localizar fundos Darksend denominados suficientes para esta transacção. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Não foi possível localizar fundos Darksend não denominados suficientes para esta transacção que não sejam igual a 1000DRK. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Aviso: -paytxfee tem um valor muito elevado! Esta é a taxa de transacção que será paga se enviar uma transacção. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Aviso: A rede não parece estar concordar! Parece haver alguns mineiros com problemas. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Aviso: Parece que não estamos de acordo com outros nós! Talvez necessite actualizar a aplicação ou os outros nós necessitem actualizar. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Aviso: erro ao carregar wallet.dat! Todas as chaves estão correctas mas os dados das transacções ou as entradas do livro de endereços podem estar ausentes ou incorrectas. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Aviso: wallet.dar corrompido mas os dados foram recuperados! A carteira original foi gravada como wallet{data/hora}.bak in %s; se o seu saldo ou transacções forem incorrectos deverá recuperar a partir de uma cópia de segurança. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Tem que especificar uma masternodeprivkey na configuração. Por favor verifique a documentação para ajuda. - - - (default: 1) - (omissão: 1) - - - Accept command line and JSON-RPC commands - Aceitar comandos da linha de comandos e JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Aceitar ligações do exterior (omissão: 1 se não tiver usado -proxy ou -connect) - - - Add a node to connect to and attempt to keep the connection open - Adicionar um nó ao qual efectuar ligação e tentar manter a ligação aberta - - - Allow DNS lookups for -addnode, -seednode and -connect - Permitir pesquisas de DNS para -addnode, -deednode e -connect - - - Already have that input. - Entrada existente. - - - Attempt to recover private keys from a corrupt wallet.dat - Tentar recuperar as chaves privadas a partir de um ficheiro wallet.dat corrompido - - - Block creation options: - Opções de criação de blocos: - - - Can't denominate: no compatible inputs left. - Não é possível denominar: não existem mais entradas compatíveis. - - - Cannot downgrade wallet - Não é possível reverter para uma versão anterior da carteira - - - Cannot resolve -bind address: '%s' - Não foi possível resolver endereço de vínculo: '%s' - - - Cannot resolve -externalip address: '%s' - Não foi possível resolver endereço -externalip: '%s' - - - Cannot write default address - Não foi possível escrever endereço por omissão - - - Collateral not valid. - Colateral inválido. - - - Connect only to the specified node(s) - Ligar apenas ao(s) nó(s) especificados - - - Connect to a node to retrieve peer addresses, and disconnect - Efectuar ligação a um nó para obter os endereços de outros clientes e desligar - - - Connection options: - Opções de ligação: - - - Corrupted block database detected - Detectada corrupção na base de dados dos blocos - - - Darksend options: - Opções Darksend: - - - Debugging/Testing options: - Opções de Depuração/Teste - - - Discover own IP address (default: 1 when listening and no -externalip) - Descobrir endereço de IP próprio (omissão: 1 quando em escuta e -externalip não definido) - - - Do not load the wallet and disable wallet RPC calls - Não carregar a carteira e desabilitar as chamadas RPC - - - Do you want to rebuild the block database now? - Quer reconstruir agora a base de dados dos blocos? - - - Done loading - Carregamento completo - - - Entries are full. - Entradas completas. - - - Error initializing block database - Erro ao inicializar a base de dados dos blocos - - - Error initializing wallet database environment %s! - Erro ao inicializar o ambiente de base de dados da carteira %s! - - - Error loading block database - Erro ao carregar base de dados de blocos - - - Error loading wallet.dat - Erro ao carregar wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Erro ao carregar wallet.dat: A carteira está corrompida - - - Error opening block database - Erro ao abrir base de dados de blocos - - - Error reading from database, shutting down. - Erro ao ler da base de dados, a encerrar. - - - Error recovering public key. - Erro ao recuperar chave pública. - - - Error - Erro - - - Error: Disk space is low! - Erro: Pouco espaço em disco! - - - Error: Wallet locked, unable to create transaction! - Erro: Carteira bloqueada, não foi possível criar a transacção! - - - Error: You already have pending entries in the Darksend pool - Erro: Já tem entradas pendentes no conjunto Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Falhou a escuta em qualquer porta. Use -listen=0 se é isto que deseja. - - - Failed to read block - Falha ao ler bloco - - - If <category> is not supplied, output all debugging information. - Se a <category> não for fornecida, mostrar toda a informação de depuração. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = mantem meta dados das transacções ex. dono da conta e informação das solicitações de pagamento, 2 = elimina os meta dados das transacções) - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Ocorreu um erro ao configurar o endereço RPC %s na porta %u para escutar: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Vincular a um determinado endereço e ouvir sempre aí. Use a notação [host]:porta para IPv6 - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Continuamente limitar o número de transacções gratuitas por minuto a <n>*1000 bytes (default:%u) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Apaga todas as transacções da carteira e só recupera essas partes da cadeia de blocos com -rescan no arranque - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Activar instantx, mostrar confirmações para transacções bloqueadas (bool, default: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Activar o uso de darksend automatizado para os fundos guardados nesta carteira (0-1, default: %u) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Taxas (em DASH/Kb) inferiores a esta serão consideradas zero para retransmissão (default: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Consolidar a actividade de dados de memoria para disco a cada <n> megabytes (omissão: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Foram encontradas saídas denominadas não confirmadas, a aguardar pela confirmação para prosseguir. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Quão minuciosa é a verificação dos blocos do -checkblocks (0-4, omissão: %u) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Salvar prioridade e taxa da transacção por kB quando minar blocos (omissão: %u) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Número de segundos a não permitir ligações de nós com comportamento inadequado (omissão: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Informação de depuração de saída (omissão: %u, fornecer <category> é opcional) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Providenciar liquidez para o Darksend misturando moedas continuamente com baixa frequência (0-100, omissão: %u, 1=muito frequente taxas elevadas, 100=pouco frequente, taxas reduzidas) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Enviar informação de execução/depuração para a consola em vez de enviar para o ficheiro debug.log (omissão: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Definir o limite de processadores quando a geração está activa (-1 = todos, omissão: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Mostrar N confirmações para uma transacção bloqueada com sucesso (0-9999, omissão: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Este produto inclui software desenvolvido pelo Projecto OpenSSL para uso no OpenSSL Toolkit <https://www.openssl.org/>, software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard. - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Não foi possível localizar fundos suficientes para esta transacção que não sejam igual a 1000DRK. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Usar um proxy SOCKS5 diferente para ligar aos nós através dos serviços escondidos Tor (omissão: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Aviso: -maxtxfee é demasiado alta! Taxas deste tamanho podem ser pagas em apenas uma transacção. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Aviso: Por favor verifique que a data e a hora do computador está correcta! Se o relógio estiver errado o Dash Core não vai funcionar correctamente. - - - (9999 could be used only on mainnet) - (9999 apenas pode ser usado para mainnet) - - - (default: %s) - (default: %s) - - - <category> can be: - - <category> pode ser: - - - - Accept public REST requests (default: %u) - Aceitar REST requests (default: %u) públicos - - - Acceptable ciphers (default: %s) - Cifras aceitáveis (default: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Perguntar sempre por endereços de pares via DNS lookup (default: %u) - - - Cannot resolve -whitebind address: '%s' - Incapaz de resolver -whitebind address: '%s' - - - Connect through SOCKS5 proxy - Conectar através de SOCKS5 proxy - - - Connect to KeePassHttp on port <port> (default: %u) - Conectar a KeePassHttp na porta <port> (default: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i The Bitcoin Core Developers - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i Dash Core Developers - - - Could not parse -rpcbind value %s as network address - Incapaz de analizar -rpcbind value %s como endereço de rede - - - Darksend is idle. - Darksend está inactivo. - - - Darksend request complete: - Pedido Darksend completo: - - - Darksend request incomplete: - Pedido Darksend incompleto: - - - Disable safemode, override a real safe mode event (default: %u) - Desactivar safemode, ultrapassar o evento de modo de segurança real (default: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Permitir ao cliente actuar como um masternode (0-1, omissão: %u) - - - Error connecting to Masternode. - Erro conectando ao Masternode - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Erro carregando wallet.dat Carteira precisa de nova versão do Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Erro: Um erro fatal interno ocorreu, veja debug.log para mais detalhes - - - Error: Can't select current denominated inputs - Erro: Incapaz de seleccionar inputs denominados correntes - - - Error: Unsupported argument -tor found, use -onion. - Erro: Argument não suportado -tor encontrado, utilize -onion - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Taxas (em DASH/Kb) a adicionar às transacções que envia (omissão: %s) - - - Finalizing transaction. - Finalizando transacção. - - - Force safe mode (default: %u) - Forçar safe mode (default: %u) - - - Found enough users, signing ( waiting %s ) - Encontrados utilizadores suficientes, assinando ( waiting %s ) - - - Found enough users, signing ... - Encontrados utilizadores suficientes, assinando ... - - - Generate coins (default: %u) - Gerar moedas (default: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Quanto blocos deve verificar no arranque (omissão: %u, 0 = all) - - - Importing... - A importar... - - - Imports blocks from external blk000??.dat file - Importa blocos a partir de ficheiros blk000??.dat externos - - - Include IP addresses in debug output (default: %u) - Incluir endereços IP no output do debug (default: %u) - - - Incompatible mode. - Modo incompatível. - - - Incompatible version. - Versão incompatível. - - - Incorrect or no genesis block found. Wrong datadir for network? - Bloco original não encontrado ou incorrecto. Pasta de dados errada para esta rede? - - - Information - Informação - - - Initialization sanity check failed. Dash Core is shutting down. - A verificação de consistência no arranque falhou. O Dash Core está a encerrar. - - - Input is not valid. - A entrada não é válida. - - - InstantX options: - Opções InstantX - - - Insufficient funds. - Fundos insuficientes. - - - Invalid -onion address: '%s' - Endereço -onion inválido: '%s' - - - Invalid -proxy address: '%s' - Endereço -proxy inválido: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Quantidade inválida para -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Quantia inválida para -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Quantia inválida para -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Quantia inválida para -paytxfee=<amount>: '%s' (must be at least %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Quantia inválida para -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - Ultima acção Darksend com sucesso é demasiado recente. - - - Limit size of signature cache to <n> entries (default: %u) - Limitar o tamanho da cache de assinaturas a <n> elementos (default: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Escutar por ligações JSON-RPC na porta <port> (default: %u or testnet: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Escutar ligações na <port> (default: %u or testnet: %u) - - - Loading budget cache... - Carregando cache de orçamentos... - - - Loading masternode cache... - A carregar a cache de masternodes... - - - Loading masternode payment cache... - Carregando cache de pagamento de maternodes... - - - Lock is already in place. - Bloqueio já efectuado. - - - Lock masternodes from masternode configuration file (default: %u) - Bloquear masternode presentes no ficheiro de configuração (omissão: %u) - - - Maintain at most <n> connections to peers (default: %u) - Manter no máximo <n> ligações a outros nós (omissão: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Tamanho máximo da memória intermédia de recepção por ligação, <n>*1000 bytes (omissão: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Tamanho máximo da memória intermédia de envio por ligação, <n>*1000 bytes (omissão: %u) - - - Mixing in progress... - Mistura em progresso... - - - Need to specify a port with -whitebind: '%s' - Necessita especificar a porta com -whitebind: '%s' - - - No Masternodes detected. - Nenhum Masternode detectado. - - - No compatible Masternode found. - Nenhum Masternode compatível encontrado. - - - Not in the Masternode list. - Não está na lista de Masternodes. - - - Number of automatic wallet backups (default: 10) - Número de backups automáticos da carteira (omissão: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Somente aceitar pontos de inspecção apropriados presentes na cadeia de blocos (omissão: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Somente ligar a nós na rede <net> (IPv4, IPv6 ou onion) - - - Prepend debug output with timestamp (default: %u) - Adicionar data/hora à informação de depuração (omissão: %u) - - - Run a thread to flush wallet periodically (default: %u) - Executar periodicamente um processo para consolidar a carteira (omissão: %u) - - - Send trace/debug info to debug.log file (default: %u) - Enviar informação de execução/depuração para o ficheiro debug.log (omissão: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Enviar com taxa-zero se possível (ex: %u) - - - Server certificate file (default: %s) - Ficheiro de certificado do servidor (omissão: %s) - - - Server private key (default: %s) - Chave privada do servidor (default: %s) - - - Set external address:port to get to this masternode (example: %s) - Definir endereço:porta externo para ligação a este masternode (ex: %s) - - - Set key pool size to <n> (default: %u) - Define o tamanho do conjunto de chaves para <n> (omissão: %u) - - - Set minimum block size in bytes (default: %u) - Define o tamanho máximo do bloco em bytes (omissão %u) - - - Set the number of threads to service RPC calls (default: %d) - Define o número de threads que processam os pedidos RPC (omissão: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Definir a flag DB_PRIVATE no ambiente db da carteira (default: %u) - - - Signing timed out. - Assinatura fora do tempo. - - - Specify configuration file (default: %s) - Especificar ficheiro de configuração (default: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Especificar timeout da conexão em milisegundos (minimum: 1, default: %d) - - - Specify masternode configuration file (default: %s) - Especificar ficheiro de configuração masternode (default: %s) - - - Specify pid file (default: %s) - Especificar ficheiro pid (default: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Gastar troco não confirmado quando enviando transacções (default: %u) - - - Stop running after importing blocks from disk (default: %u) - Para de correr após importação de blocos do disco (default: %u) - - - Submitted following entries to masternode: %u / %d - Apresentadas as seguintes entradas ao masternode: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Apresentado ao masternode, esperando por mais entradas ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Apresentado ao masternode, esperando na fila %s - - - Synchronizing budgets... - A sincronizar orçamentos... - - - Synchronizing masternode winners... - A sincronizar masternodes vencedores... - - - Synchronizing masternodes... - A sincronizar masternodes... - - - Synchronizing sporks... - A sincronizar sporks... - - - This is not a Masternode. - Este não é um Masternode - - - Threshold for disconnecting misbehaving peers (default: %u) - Limiar para desconectar pares mal comportados (default: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Utilize integração KeePass 2 usando plugin KeePassHttp (default: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Utilize N masternode distintos para anonimizar fundos (2-8, default: %u) - - - Use UPnP to map the listening port (default: %u) - Utilize UPNP para mapear porta de escuta (default: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Carteira necessita de ser re-escrita: reinicie Dash Core para completar - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Aviso: Argumento não suportado -benchmark ignorado, use -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Aviso: Argumento não suportado debugnet ignorado, use -debug=net. - - - Will retry... - Tentar de novo... - - - Invalid masternodeprivkey. Please see documenation. - masternodeprivkey inválida. Por favor reveja a documentação. - - - (must be 9999 for mainnet) - (deve ser 9999 para mainnet) - - - Can't find random Masternode. - Incapaz de encontrar Masternode aleatório. - - - Can't mix while sync in progress. - Incapaz de misturar enquanto sincronização está a decorrer. - - - Could not parse masternode.conf - Incapaz de analizar masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Netmask especificado invalido na -whitelist: '%s' - - - Invalid port detected in masternode.conf - Port inválido detectado em masternode.conf - - - Invalid private key. - Chave privada inválida. - - - Invalid script detected. - Script inválido detectado. - - - KeePassHttp id for the established association - Identificador KeePassHttp para a associação estabelecida - - - KeePassHttp key for AES encrypted communication with KeePass - Chave KeePassHttp para usar na comunicação cifrada AES com o KeePass - - - Keep N DASH anonymized (default: %u) - Manter N DASH anonimizados (default: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Manter no máximo <n> transacções não conectáveis em memória (omissão: %u) - - - Last Darksend was too recent. - O último Darksend é muito recente. - - - Line: %d - Linha: %d - - - Loading addresses... - A carregar endereços... - - - Loading block index... - A carregar índice de blocos... - - - Loading wallet... (%3.2f %%) - A carregar carteira... (%3.2f %%) - - - Loading wallet... - A carregar carteira... - - - Masternode options: - Opções de masternode: - - - Masternode queue is full. - A fila do masternode está cheia. - - - Masternode: - Masternode: - - - Missing input transaction information. - A informação da transacção de entrada não foi encontrada. - - - No funds detected in need of denominating. - Não foram detectados fundos a necessitar de denominação. - - - No matching denominations found for mixing. - Não foram encontradas denominações correspondentes para misturar. - - - Node relay options: - Opções de relé do nódulo: - - - Non-standard public key detected. - Detectada chave pública fora do padrão. - - - Not compatible with existing transactions. - Não é compatível com as transacções existentes. - - - Not enough file descriptors available. - Número insuficiente de descritores de ficheiros disponíveis. - - - Options: - Opções: - - - Password for JSON-RPC connections - Palavra-passe para as ligações JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Opções RPC SSL: (para instruções de configuração SSL dirija-se à Dash Wiki) - - - RPC server options: - Opções do servidor RPC: - - - RPC support for HTTP persistent connections (default: %d) - Suporte RPC para conexões persistentes HTTP (default: %d) - - - Randomly drop 1 of every <n> network messages - Ignorar aleatoriamente 1 de cada <n> mensagens da rede - - - Randomly fuzz 1 of every <n> network messages - Esfiapar aleatoriamente 1 de cada <n> mensagens da rede - - - Rebuild block chain index from current blk000??.dat files - Reconstruir o índice da cadeia de blocos a partir dos ficheiros actuais blk000??.dat - - - Receive and display P2P network alerts (default: %u) - Receber e apresentar alertas da rede P2P (default: %u) - - - Relay and mine data carrier transactions (default: %u) - Relé e mine data de transacções de suporte (default: %u) - - - Relay non-P2SH multisig (default: %u) - Relé não-P2SH multisig (default: %u) - - - Rescan the block chain for missing wallet transactions - Examinar novamente a cadeia de blocos para encontrar transacções inexistentes na carteira - - - Rescanning... - A examinar novamente... - - - Run in the background as a daemon and accept commands - Executar em segundo plano como um serviço e aceitar comandos - - - Session not complete! - Sessão incompleta! - - - Session timed out. - Esgotado o tempo de sessão. - - - Set database cache size in megabytes (%d to %d, default: %d) - Define o tamanho máximo da cache de dados em megabytes (%d até %d, omissão %d) - - - Set maximum block size in bytes (default: %d) - Define o tamanho máximo do bloco em bytes (omissão %d) - - - Set the masternode private key - Define a chave privada do masternode - - - Show all debugging options (usage: --help -help-debug) - Mostrar todas as opções de depuração (uso: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Diminuir o ficheiro debug.log ao iniciar o cliente (omissão: 1 quando não usa opção -debug) - - - Signing failed. - A assinatura falhou. - - - Signing transaction failed - A assinatura da transacção falhou - - - Specify data directory - Especificar a pasta de dados - - - Specify wallet file (within data directory) - Especificar o ficheiro da carteira (dentro da pasta de dados) - - - Specify your own public address - Especificar o seu endereço público - - - This help message - Esta mensagem de ajuda - - - This is experimental software. - Este é um software experimental. - - - This is intended for regression testing tools and app development. - Esta opção destina-se a ferramentas de testes de regressão e desenvolvimento de aplicativos. - - - Transaction amount too small - Quantia da transacção demasiado pequena - - - Transaction amounts must be positive - As quantias da transacção tem que ser positivas - - - Transaction created successfully. - Transacção criada com sucesso. - - - Transaction fees are too high. - As taxas da transacção são demasiado elevadas. - - - Transaction not valid. - A transacção não é válida. - - - Transaction too large for fee policy - Transacção demasiado grande para a política de taxas - - - Transaction too large - Transacção demasiado grande - - - Transmitting final transaction. - Transmitindo transacção final - - - Unable to bind to %s on this computer (bind returned error %s) - Não foi possível vincular a %s neste computador (o vínculo retornou o erro %s) - - - Unable to sign spork message, wrong key? - Não foi possível assinar a mensagem spork, chave incorrecta? - - - Unknown network specified in -onlynet: '%s' - Rede especificada desconhecida em -onlynet: '%s' - - - Unknown state: id = %u - Estado desconhecido: id = %u - - - Upgrade wallet to latest format - Actualizar carteira para o formato mais recente - - - Use OpenSSL (https) for JSON-RPC connections - Usar OpenSSl (https) para as ligações JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Usar UPnP para mapear a porta de entrada (omissão: 1 quando em escuta) - - - Use the test network - Usar a rede de testes - - - Username for JSON-RPC connections - Utilizador para as ligações JSON-RPC - - - Value more than Darksend pool maximum allows. - Valor mais elevado do que o máximo permitido pelo Darksend. - - - Verifying blocks... - A verificar blocos... - - - Verifying wallet... - A verificar carteira... - - - Wallet %s resides outside data directory %s - A carteira %s encontra-se fora da pasta de dados %s - - - Wallet is locked. - A carteira encontra-se bloqueada. - - - Wallet options: - Opções da carteira: - - - Wallet window title - Título da janela - - - Warning - Aviso - - - Warning: This version is obsolete, upgrade required! - Aviso: Esta versão é obsoleta, actualização necessária! - - - You need to rebuild the database using -reindex to change -txindex - Necessita reconstruir a base de dados usando -reindex para alterar -txindex - - - Your entries added successfully. - Suas entradas adicionadas com sucesso. - - - Your transaction was accepted into the pool! - A sua transacção foi aceite na pool! - - - Zapping all transactions from wallet... - A apagar todas as transacções da carteira... - - - on startup - no arranque - - - wallet.dat corrupt, salvage failed - wallet.dat corrompido, recuperação falhou - - - \ No newline at end of file diff --git a/src/qt/locale/dash_ru.ts b/src/qt/locale/dash_ru.ts deleted file mode 100644 index 92f76f4ee042..000000000000 --- a/src/qt/locale/dash_ru.ts +++ /dev/null @@ -1,4539 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Для того, чтобы изменить адрес или метку, кликните по изменяемому объекту правой кнопкой мыши - - - Create a new address - Создать новый адрес - - - &New - &Новый - - - Copy the currently selected address to the system clipboard - Копировать текущий выделенный адрес в буфер обмена - - - &Copy - &Копировать - - - Delete the currently selected address from the list - Удалить выбранный адрес из списка - - - &Delete - &Удалить - - - Export the data in the current tab to a file - Экспортировать данные из вкладки в файл - - - &Export - &Экспорт - - - C&lose - &Закрыть - - - Choose the address to send coins to - Выберите адрес для отправки на него монет - - - Choose the address to receive coins with - Выберите адрес для получения монет - - - C&hoose - &Выбрать - - - Sending addresses - Адреса отправки - - - Receiving addresses - Адреса получения - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Это ваши адреса Dash для отправки платежей. Всегда проверяйте количество и адрес получателя перед отправкой перевода. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Это ваши адреса Dash для приёма платежей. Рекомендуется использовать новый адрес получения для каждой транзакции. - - - &Copy Address - &Копировать адрес - - - Copy &Label - Копировать &метку - - - &Edit - &Правка - - - Export Address List - Экспортировать список адресов - - - Comma separated file (*.csv) - Текст, разделённый запятыми (*.csv) - - - Exporting Failed - Экспорт не удался - - - There was an error trying to save the address list to %1. Please try again. - Произошла ошибка при сохранении адресной книги в %1. Пожалуйста, попробуйте еще раз. - - - - AddressTableModel - - Label - Метка - - - Address - Адрес - - - (no label) - (нет метки) - - - - AskPassphraseDialog - - Passphrase Dialog - Диалог ввода пароля - - - Enter passphrase - Введите пароль - - - New passphrase - Новый пароль - - - Repeat new passphrase - Повторите новый пароль - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Служит для простейшего отключения функции sendmoney в случае компрометации аккаунта ОС. Не обеспечивает существенной безопасности. - - - For anonymization only - Только для анонимизации - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Введите новый пароль кошелька.<br/>Используйте пароль, состоящий из <b>десяти или более случайных символов</b> или <b>восьми или более слов</b>. - - - Encrypt wallet - Зашифровать кошелёк - - - This operation needs your wallet passphrase to unlock the wallet. - Для выполнения операции разблокирования требуется пароль вашего кошелька. - - - Unlock wallet - Разблокировать кошелёк - - - This operation needs your wallet passphrase to decrypt the wallet. - Для выполнения операции расшифровки требуется пароль вашего кошелька. - - - Decrypt wallet - Расшифровать кошелёк - - - Change passphrase - Сменить пароль - - - Enter the old and new passphrase to the wallet. - Введите старый и новый пароль для кошелька. - - - Confirm wallet encryption - Подтвердите шифрование кошелька - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Внимание: если Вы зашифруете кошелёк и потеряете пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ DASH</b>! - - - Are you sure you wish to encrypt your wallet? - Вы уверены, что хотите зашифровать ваш кошелёк? - - - Wallet encrypted - Кошелёк зашифрован - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Сейчас программа закроется для завершения процесса шифрования. Помните, что шифрование вашего кошелька не может полностью защитить ваши даши от кражи с помощью инфицирования вашего компьютера вредоносным ПО. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - ВАЖНО: все предыдущие резервные копии вашего кошелька должны быть заменены новым зашифрованным файлом. В целях безопасности предыдущие резервные копии незашифрованного кошелька станут бесполезны, как только вы начнёте использовать новый зашифрованный кошелёк. - - - Wallet encryption failed - Не удалось зашифровать кошелёк - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Шифрование кошелька не удалось из-за внутренней ошибки. Ваш кошелёк не был зашифрован. - - - The supplied passphrases do not match. - Введённые пароли не совпадают. - - - Wallet unlock failed - Разблокировка кошелька не удалась - - - The passphrase entered for the wallet decryption was incorrect. - Указанный пароль не подходит. - - - Wallet decryption failed - Расшифрование кошелька не удалось - - - Wallet passphrase was successfully changed. - Пароль кошелька успешно изменён. - - - Warning: The Caps Lock key is on! - Внимание: включен Caps Lock! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Кошелёк - - - Node - Узел - - - &Overview - &Обзор - - - Show general overview of wallet - Показать общий обзор действий с кошельком - - - &Send - &Отправить - - - Send coins to a Dash address - Отправить монеты на указанный адрес Dash - - - &Receive - &Получить - - - Request payments (generates QR codes and dash: URIs) - Запросить платежи (создать QR-коды и dash: URI) - - - &Transactions - &Транзакции - - - Browse transaction history - Показать историю транзакций - - - E&xit - В&ыход - - - Quit application - Закрыть приложение - - - &About Dash Core - О &Dash Core - - - Show information about Dash Core - Показать информацию о Dash Core - - - About &Qt - О &Qt - - - Show information about Qt - Показать информацию о Qt - - - &Options... - &Настройки... - - - Modify configuration options for Dash - Изменить параметры конфигурации Dash - - - &Show / Hide - &Показать / Скрыть - - - Show or hide the main Window - Показать или скрыть главное окно - - - &Encrypt Wallet... - За&шифровать кошелёк... - - - Encrypt the private keys that belong to your wallet - Зашифровать закрытые ключи, содержащиеся в вашем кошельке - - - &Backup Wallet... - &Сделать резервную копию кошелька... - - - Backup wallet to another location - Сделать резервную копию кошелька в другом месте - - - &Change Passphrase... - &Изменить пароль... - - - Change the passphrase used for wallet encryption - Изменить пароль шифрования кошелька - - - &Unlock Wallet... - &Разблокировать кошелёк... - - - Unlock wallet - Разблокировать кошелёк - - - &Lock Wallet - За&блокировать кошелёк - - - Sign &message... - П&одписать сообщение... - - - Sign messages with your Dash addresses to prove you own them - Подписать сообщения вашими адресами Dash, чтобы доказать, что вы ими владеете - - - &Verify message... - П&роверить сообщение... - - - Verify messages to ensure they were signed with specified Dash addresses - Проверить сообщения, чтобы удостовериться, что они были подписаны определёнными адресами Dash - - - &Information - &Информация - - - Show diagnostic information - Показать диагностическую информацию - - - &Debug console - &Консоль отладки - - - Open debugging console - Открыть консоль отладки - - - &Network Monitor - &Монитор сети - - - Show network monitor - Показать монитор сети - - - &Peers list - Список &пиров - - - Show peers info - Показать информацию о пирах - - - Wallet &Repair - &Ремонт кошелька - - - Show wallet repair options - Показать варианты ремонта кошелька - - - Open &Configuration File - Открыть файл &настроек - - - Open configuration file - Открыть файл настроек - - - Show Automatic &Backups - Показать автоматические резервные &копии - - - Show automatically created wallet backups - Показать автоматически созданные резервные копии кошелька - - - &Sending addresses... - Адреса &отправки... - - - Show the list of used sending addresses and labels - Показать список использованных адресов отправки и их меток - - - &Receiving addresses... - Адреса &получения... - - - Show the list of used receiving addresses and labels - Показать список использованных адресов получения и их меток - - - Open &URI... - Открыть &URI... - - - Open a dash: URI or payment request - Открыть dash: URI или запрос платежа - - - &Command-line options - &Параметры командной строки - - - Dash Core client - Клиент Dash Core - - - Processed %n blocks of transaction history. - Обработано %n блок из истории транзакций.Обработано %n блока из истории транзакций.Обработано %n блоков из истории транзакций.Обработано %n блоков из истории транзакций. - - - Synchronizing additional data: %p% - Синхронизация дополнительных данных: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Показать помощь о Dash Core со списком возможных параметров командной строки - - - &File - &Файл - - - &Settings - &Настройки - - - &Tools - &Инструменты - - - &Help - &Помощь - - - Tabs toolbar - Панель вкладок - - - %n active connection(s) to Dash network - %n активное соединение с сетью Dash%n активных соединения с сетью Dash%n активных соединений с сетью Dash%n активных соединений с сетью Dash - - - Synchronizing with network... - Синхронизация с сетью... - - - Importing blocks from disk... - Выполняется импорт блоков с диска... - - - Reindexing blocks on disk... - Идёт переиндексация блоков на диске... - - - No block source available... - Источник блоков недоступен... - - - Up to date - Синхронизировано - - - %n hour(s) - %n час%n часа%n часов%n часов - - - %n day(s) - %n день%n дня%n дней%n дней - - - %n week(s) - %n неделя%n недели%n недель%n недель - - - %1 and %2 - %1 и %2 - - - %n year(s) - %n год%n года%n лет%n лет - - - %1 behind - %1 позади - - - Catching up... - Синхронизируется... - - - Last received block was generated %1 ago. - Последний полученный блок был сгенерирован %1 назад. - - - Transactions after this will not yet be visible. - Транзакции после этого времени пока видны не будут. - - - Error - Ошибка - - - Warning - Внимание - - - Information - Информация - - - Sent transaction - Исходящая транзакция - - - Incoming transaction - Входящая транзакция - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Дата: %1 -Сумма: %2 -Тип: %3 -Адрес: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Кошелёк <b>зашифрован</b> и в настоящее время <b>разблокирован</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Кошелёк <b>зашифрован</b> и в данный момент <b>разблокирован</b> только для целей анонимизации - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Кошелёк <b>зашифрован</b> и в настоящее время <b>заблокирован</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Всего: %1 (Совместимых с DS: %2 / Активных: %3) - - - Network Alert - Сетевая тревога - - - - CoinControlDialog - - Quantity: - Количество: - - - Bytes: - Байт: - - - Amount: - Сумма: - - - Priority: - Приоритет: - - - Fee: - Комиссия: - - - Coin Selection - Выбор монет - - - Dust: - Пыль: - - - After Fee: - После комиссии: - - - Change: - Сдача: - - - (un)select all - Выбрать все/ничего - - - Tree mode - Режим дерева - - - List mode - Режим списка - - - (1 locked) - (1 заблокировано) - - - Amount - Сумма - - - Received with label - Получено на метку - - - Received with address - Получено на адрес - - - DS Rounds - Раунды DS - - - Date - Дата - - - Confirmations - Подтверждений - - - Confirmed - Подтверждено - - - Priority - Приоритет - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Скопировать сумму - - - Copy transaction ID - Скопировать ID транзакции - - - Lock unspent - Заблокировать непотраченное - - - Unlock unspent - Разблокировать непотраченное - - - Copy quantity - Копировать количество - - - Copy fee - Копировать комиссию - - - Copy after fee - Копировать после комиссии - - - Copy bytes - Копировать байты - - - Copy priority - Копировать приоритет - - - Copy dust - Скопировать пыль - - - Copy change - Копировать сдачу - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Выбраны неанонимизированные средства. <b>Darksend будет отключен.</b><br><br>Если Вы все-таки хотите использовать Darksend, пожалуйста, снимите выделение с со всех неанонимизированных средств и заново поставьте галочку напротив Darksend. - - - highest - самый высокий - - - higher - выше высокого - - - high - высокий - - - medium-high - выше среднего - - - Can vary +/- %1 duff(s) per input. - Может отличаться на +/- %1 duff(ов) на каждый вход. - - - n/a - н/д - - - medium - средний - - - low-medium - ниже среднего - - - low - низкий - - - lower - ниже низкого - - - lowest - самый низкий - - - (%1 locked) - (%1 заблокировано) - - - none - нет - - - yes - да - - - no - нет - - - This label turns red, if the transaction size is greater than 1000 bytes. - Эта метка становится красной, если размер транзакции больше 1000 байт. - - - This means a fee of at least %1 per kB is required. - Это значит, что требуется комиссия как минимум %1 на КБ. - - - Can vary +/- 1 byte per input. - Может отличаться на +/- 1 байт на каждый вход. - - - Transactions with higher priority are more likely to get included into a block. - Транзакции с более высоким приоритетом имеют больше шансов на включение в блок. - - - This label turns red, if the priority is smaller than "medium". - Эта метка становится красной, если приоритет ниже, чем "средний". - - - This label turns red, if any recipient receives an amount smaller than %1. - Эта метка становится красной, если какой-либо из адресатов получает сумму менее %1. - - - (no label) - (нет метки) - - - change from %1 (%2) - сдача с %1 (%2) - - - (change) - (сдача) - - - - DarksendConfig - - Configure Darksend - Настройте Darksend - - - Basic Privacy - Обычная приватность - - - High Privacy - Высокая приватность - - - Maximum Privacy - Максимальная приватность - - - Please select a privacy level. - Пожалуйста, выберите уровень приватности. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Использовать 2 отдельные мастерноды для перемешивания до 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Использовать 8 отдельных мастернод для перемешивания до 1000 DASH - - - Use 16 separate masternodes - Использовать 16 отдельных мастернод - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Это самый быстрый вариант, анонимизация 1000 DASH будет стоить вам примерно 0.025 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Это относительно быстрый вариант, анонимизация 1000 DASH будет стоить вам примерно 0.05 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH за каждые анонимизированные 1000 DASH. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Этот самый медленный и безопасный вариант. Анонимизация будет стоить - - - Darksend Configuration - Настройки Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend успешно установлен в режим обычной приватности (%1 и 2 раунда). Вы можете изменить это в любое время, используя окно настроек. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend успешно установлен в режим высокой приватности (%1 и 8 раундов). Вы можете изменить это в любое время, используя окно настроек. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend успешно установлен в режим максимально приватности (%1 и 16 раундов). Вы можете изменить это в любое время, используя окно настроек. - - - - EditAddressDialog - - Edit Address - Изменить адрес - - - &Label - &Метка - - - The label associated with this address list entry - Метка, связанная с этой записью списка адресов - - - &Address - &Адрес - - - The address associated with this address list entry. This can only be modified for sending addresses. - Адрес, связанный с этой записью списка адресов. Он может быть изменён только для адресов отправки. - - - New receiving address - Новый адрес для получения - - - New sending address - Новый адрес для отправки - - - Edit receiving address - Изменение адреса для получения - - - Edit sending address - Изменение адреса для отправки - - - The entered address "%1" is not a valid Dash address. - Введённый адрес "%1" не является правильным адресом Dash. - - - The entered address "%1" is already in the address book. - Введённый адрес "%1" уже находится в адресной книге. - - - Could not unlock wallet. - Не удается разблокировать кошелёк. - - - New key generation failed. - Генерация нового ключа не удалась. - - - - FreespaceChecker - - A new data directory will be created. - Будет создан новый каталог данных. - - - name - имя - - - Directory already exists. Add %1 if you intend to create a new directory here. - Каталог уже существует. Добавьте %1, если вы хотите создать здесь новый каталог. - - - Path already exists, and is not a directory. - Путь уже существует и не является каталогом. - - - Cannot create data directory here. - Не удаётся создать здесь каталог данных. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - версия - - - (%1-bit) - (%1-бит) - - - About Dash Core - О Dash Core - - - Command-line options - Параметры командной строки - - - Usage: - Использование: - - - command-line options - параметры командной строки - - - UI options - Настройки интерфейса - - - Choose data directory on startup (default: 0) - Выбрать каталог данных при запуске (по умолчанию: 0) - - - Set language, for example "de_DE" (default: system locale) - Выберите язык, например "de_DE" (по умолчанию: как в системе) - - - Start minimized - Запускать свёрнутым - - - Set SSL root certificates for payment request (default: -system-) - Указать корневые SSL-сертификаты для запроса платежа (по умолчанию: -system-) - - - Show splash screen on startup (default: 1) - Показывать заставку при запуске (по умолчанию: 1) - - - - Intro - - Welcome - Добро пожаловать - - - Welcome to Dash Core. - Добро пожаловать в Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Так как вы впервые запустили программу, вы можете выбрать, где Dash Core будет хранить данные. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core скачает и сохранит копию цепочки блоков. Как минимум %1ГБ данных будет храниться в этом каталоге и размер данных будет со временем расти. В этом же каталоге будет сохранён кошелёк. - - - Use the default data directory - Использовать каталог данных по умолчанию - - - Use a custom data directory: - Использовать другой каталог данных: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Ошибка: не удалось создать указанный каталог данных "%1". - - - Error - Ошибка - - - %1 GB of free space available - доступно %1 ГБ свободного места - - - (of %1 GB needed) - (из требующихся %1 ГБ) - - - - OpenURIDialog - - Open URI - Открыть URI - - - Open payment request from URI or file - Открыть запрос платежа из URI или файла - - - URI: - URI: - - - Select payment request file - Выбрать файл запроса платежа - - - Select payment request file to open - Выберите файл запроса платежа - - - - OptionsDialog - - Options - Настройки - - - &Main - &Главная - - - Automatically start Dash after logging in to the system. - Автоматически запускать Dash после входа в систему. - - - &Start Dash on system login - &Запускать Dash при входе в систему - - - Size of &database cache - Размер кэша &БД - - - MB - МБ - - - Number of script &verification threads - Число потоков проверки &сценария - - - (0 = auto, <0 = leave that many cores free) - (0 = автоматически, <0 = оставить столько незагруженных ядер) - - - Darksend rounds to use - Количество раундов Darksend - - - This amount acts as a threshold to turn off Darksend once it's reached. - Это пороговое значение, при достижении которого автоматическое перемешивание отключается. - - - Amount of Dash to keep anonymized - Сумма постоянно анонимизированных Dash - - - W&allet - К&ошелёк - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - При отключении траты неподтверждённой сдачи, сдача от транзакции<br/>не может быть использована до тех пор, пока у этой транзакции не будет хотя бы одно подтверждение.<br/>Это также влияет на то, как рассчитывается Ваш баланс. - - - Accept connections from outside - Принимать подключения извне - - - Allow incoming connections - Принимать входящие подключения - - - Connect to the Dash network through a SOCKS5 proxy. - Подключаться к сети Dash через прокси SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Подключаться через прокси SOCKS5 (прокси по умолчанию): - - - Expert - Настройки для опытных пользователей - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Эта настройка определяет количество отдельных мастернод, через которые пройдет анонимизация.<br/>Чем больше раундов, тем выше степень конфиденциальности, но также выше и суммарная стоимость комиссий. - - - Whether to show coin control features or not. - Показывать ли функции контроля монет или нет. - - - Enable coin &control features - Включить функции &контроля монет - - - &Spend unconfirmed change - &Тратить неподтверждённую сдачу - - - &Network - &Сеть - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматически открыть порт для клиента Dash на роутере. Работает только в том случае, если Ваш роутер поддерживает UPnP и данная функция включена. - - - Map port using &UPnP - Пробросить порт через &UPnP - - - Proxy &IP: - &IP Прокси: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP-адрес прокси (например, IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - По&рт: - - - Port of the proxy (e.g. 9050) - Порт прокси-сервера (например, 9050) - - - &Window - &Окно - - - Show only a tray icon after minimizing the window. - После сворачивания окна показывать только иконку в системном лотке. - - - &Minimize to the tray instead of the taskbar - &Cворачивать в системный лоток вместо панели задач - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Сворачивать вместо закрытия. Если данная настройка будет выбрана, то приложение закроется только после выбора пункта меню Завершить. - - - M&inimize on close - С&ворачивать при закрытии - - - &Display - О&тображение - - - User Interface &language: - &Язык интерфейса: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Здесь можно выбрать язык интерфейса. Настройки вступят в силу после перезапуска Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Нет Вашего языка или перевод неполон? Помогите нам сделать перевод лучше: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Тема интерфейса: - - - &Unit to show amounts in: - &Отображать суммы в единицах: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Выберите единицу измерения монет при отображении и отправке. - - - Decimal digits - Знаков после запятой - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Сторонние URL (например, block explorer), которые отображаются на вкладке транзакций как пункты контекстного меню. %s в URL заменяется хэшем транзакции. URL отделяются друг от друга вертикальной чертой |. - - - Third party transaction URLs - Сторонние URL для транзакций - - - Active command-line options that override above options: - Активные параметры командной строки, которые перекрывают вышеуказанные настройки: - - - Reset all client options to default. - Сбросить все настройки клиента на значения по умолчанию. - - - &Reset Options - &Сбросить настройки - - - &OK - &OK - - - &Cancel - О&тмена - - - default - по умолчанию - - - none - нет - - - Confirm options reset - Подтвердите сброс настроек - - - Client restart required to activate changes. - Для применения изменений требуется перезапуск клиента. - - - Client will be shutdown, do you want to proceed? - Клиент будет выключен, хотите продолжить? - - - This change would require a client restart. - Это изменение потребует перезапуска клиента. - - - The supplied proxy address is invalid. - Адрес прокси неверен. - - - - OverviewPage - - Form - Форма - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Отображаемая информация может быть устаревшей. Ваш кошелёк автоматически синхронизируется с сетью Dash после подключения, но этот процесс пока не завершён. - - - Available: - Доступно: - - - Your current spendable balance - Ваш текущий баланс, доступный для расходования - - - Pending: - В ожидании: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Общая сумма всех транзакций, которые до сих пор не подтверждены и еще не учитываются в балансе, доступном для расходования - - - Immature: - Незрелые: - - - Mined balance that has not yet matured - Баланс добытых монет, который ещё не созрел - - - Balances - Балансы - - - Unconfirmed transactions to watch-only addresses - Неподтвержденные транзакции на адреса для просмотра - - - Mined balance in watch-only addresses that has not yet matured - Баланс добытых монет на адресах для просмотра, который ещё не созрел - - - Total: - Итого: - - - Your current total balance - Ваш текущий общий баланс - - - Current total balance in watch-only addresses - Текущий полный баланс на адресах для просмотра - - - Watch-only: - Для просмотра: - - - Your current balance in watch-only addresses - Ваш текущий баланс на адресах для просмотра - - - Spendable: - Для расхода: - - - Status: - Статус: - - - Enabled/Disabled - Включен/Выключен - - - Completion: - Завершение: - - - Darksend Balance: - Баланс Darksend: - - - Amount and Rounds: - Сумма и раунды: - - - 0 DASH / 0 Rounds - 0 DASH / 0 раундов - - - Submitted Denom: - Отправленные номиналы: - - - n/a - н/д - - - Darksend - Darksend - - - Recent transactions - Недавние транзакции - - - Start/Stop Mixing - Начать/остановить автоматическое перемешивание - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Номиналы, предоставленные Вами мастерноде.<br>Для перемешивания другие пользователи должны предоставить точно такой же набор номиналов. - - - (Last Message) - (Последнее сообщение) - - - Try to manually submit a Darksend request. - Попробовать отправить Darksend-запрос вручную. - - - Try Mix - Попробовать вручную - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Сбросить текущий статус Darksend (можно прервать процесс перемешивания Darksend, но это может стоить Вам немного денег!) - - - Reset - Сбросить - - - out of sync - несинхронизировано - - - Disabled - Выключен - - - Start Darksend Mixing - Начать автоперемешивание - - - Stop Darksend Mixing - Остановить перемешивание - - - No inputs detected - Монеты не найдены - - - %n Rounds - %n раунд%n раунда%n раундов%n раундов - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Не достаточно совместимых средств для анонимизации <span style='color:red;'>%1</span>,<br/>будет анонимизировано только <span style='color:red;'>%2</span> - - - Overall progress - Прогресс в целом - - - Denominated - Разбито на номиналы - - - Anonymized - Анонимизировано - - - Denominated inputs have %5 of %n rounds on average - Номиналы прошли в среднем %5 из %n раундаНоминалы прошли в среднем %5 из %n раундовНоминалы прошли в среднем %5 из %n раундовНоминалы прошли в среднем %5 из %n раундов - - - Found enough compatible inputs to anonymize %1 - Найдено достаточно совместимых средств для анонимизации %1 - - - Mixed - Перемешано - - - Enabled - Включен - - - Last Darksend message: - - Последнее сообщение Darksend: - - - - N/A - Н/Д - - - Darksend was successfully reset. - Статус Darksend был успешно сброшен. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Если Вы не хотите видеть внутренние транзакции/комиссии от работы Darksend, выберите Тип "Наиболее общие" на закладке "Транзакции". - - - Darksend requires at least %1 to use. - Для работы Darksend требуется минимум %1. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Кошелёк заблокирован и пользователь отказался его разблокировать. Darksend будет выключен. - - - - PaymentServer - - Payment request error - Ошибка запроса платежа - - - Cannot start dash: click-to-pay handler - Не удаётся запустить обработчик dash: click-to-pay - - - URI handling - Обработка URI - - - Payment request fetch URL is invalid: %1 - Неверный URL запроса платежа: %1 - - - Payment request file handling - Обработка файла запроса платежа - - - Invalid payment address %1 - Неверный адрес платежа %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - Не удалось разобрать URI! Возможно указан некорректный адрес Dash либо параметры URI сформированы неверно. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Не удается прочесть либо разобрать файл запроса платежа! Возможно это некоректный файл. - - - Payment request rejected - Запрос платежа отклонен - - - Payment request network doesn't match client network. - Сеть запроса платежа не соответствует сети клиента. - - - Payment request has expired. - Время этого запроса платежа истекло. - - - Payment request is not initialized. - Запрос платежа не инициализирован. - - - Unverified payment requests to custom payment scripts are unsupported. - Непроверенные запросы платежей с нестандартными платёжными сценариями не поддерживаются. - - - Requested payment amount of %1 is too small (considered dust). - Запрошенная сумма платежа %1 слишком мала (считается "пылью"). - - - Refund from %1 - Возврат от %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Запрос платежа %1 слишком большой (%2 байт, разрешено %3 байт). - - - Payment request DoS protection - Защита от DoS через запрос платежа - - - Error communicating with %1: %2 - Ошибка связи с %1: %2 - - - Payment request cannot be parsed! - Не могу разобрать запрос платежа! - - - Bad response from server %1 - Плохой ответ от сервера %1 - - - Network request error - Ошибка сетевого запроса - - - Payment acknowledged - Платёж принят - - - - PeerTableModel - - Address/Hostname - Адрес/Имя хоста - - - User Agent - User Agent - - - Ping Time - Время пинга - - - - QObject - - Amount - Сумма - - - Enter a Dash address (e.g. %1) - Введите адрес Dash (например, %1) - - - %1 d - %1 д - - - %1 h - %1 ч - - - %1 m - %1 м - - - %1 s - %1 с - - - NETWORK - СЕТЬ - - - UNKNOWN - НЕИЗВЕСТНО - - - None - Нет - - - N/A - Н/Д - - - %1 ms - %1 мс - - - - QRImageWidget - - &Save Image... - &Сохранить изображение... - - - &Copy Image - &Копировать изображение - - - Save QR Code - Сохранить QR-код - - - PNG Image (*.png) - Изображение PNG (*.png) - - - - RPCConsole - - Tools window - Окно инструментов - - - &Information - &Информация - - - General - Общие - - - Name - Имя - - - Client name - Имя клиента - - - N/A - Н/Д - - - Number of connections - Число подключений - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Открыть отладочный лог-файл Dash из текущего каталога данных. Для больших лог-файлов эта операция может занять несколько секунд. - - - &Open - &Открыть - - - Startup time - Время запуска - - - Network - Сеть - - - Last block time - Время последнего блока - - - Debug log file - Отладочный лог-файл - - - Using OpenSSL version - Используется версия OpenSSL - - - Build date - Дата сборки - - - Current number of blocks - Текущее количество блоков - - - Client version - Версия клиента - - - Using BerkeleyDB version - Используется версия BerkeleyDB - - - Block chain - Цепочка блоков - - - Number of Masternodes - Количество Мастернод - - - &Console - &Консоль - - - Clear console - Очистить консоль - - - &Network Traffic - Сетевой &трафик - - - &Clear - &Очистить - - - Totals - Всего - - - Received - Получено - - - Sent - Отправлено - - - &Peers - &Пиры - - - Select a peer to view detailed information. - Выберите пира для просмотра детализированной информации. - - - Direction - Направление - - - Version - Версия - - - User Agent - User Agent - - - Services - Сервисы - - - Starting Height - Начальная высота - - - Sync Height - Синхронизированная высота - - - Ban Score - Очки бана - - - Connection Time - Время соединения - - - Last Send - Последняя отправка - - - Last Receive - Последнее получение - - - Bytes Sent - Байт отправлено - - - Bytes Received - Байт получено - - - Ping Time - Время пинга - - - &Wallet Repair - Ремонт &кошелька - - - Salvage wallet - Спасение кошелька - - - Rescan blockchain files - Пересканировать цепочку блоков - - - Recover transactions 1 - Восстановление транзакций 1 - - - Recover transactions 2 - Восстановление транзакций 2 - - - Upgrade wallet format - Обновить формат кошелька - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - С помощью этих кнопок Вы можете перезапустить кошелек с добавлением специальных команд для починки кошелька, исправления проблем с испорченными файлами блокчейна или пропавшими/конфликтующими транзакциями. - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Попытаться восстановить закрытые ключи из повреждённого wallet.dat. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Перепроверить цепочку блоков на предмет отсутствующих в кошельке транзакций. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Восстановить транзакции из цепочки блоков (сохранить мета-данные, например, о владельцах аккаунтов). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Восстановить транзакции из цепочки блоков (удалить мета-данные). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Обновить формат кошелька при следующем запуске. (Примечание: обновление непосредственно клиент кошелька НЕ выполняется!) - - - Wallet repair options. - Варианты ремонта кошелька. - - - Rebuild index - Перестроить индекс - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Перестроить индекс цепочки блоков из текущих файлов blk000??.dat. - - - In: - Вход: - - - Out: - Выход: - - - Welcome to the Dash RPC console. - Добро пожаловать в RPC-консоль Dash. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Используйте стрелки вверх и вниз для просмотра истории и <b>Ctrl-L</b> для очистки экрана. - - - Type <b>help</b> for an overview of available commands. - Напишите <b>help</b> для просмотра доступных команд. - - - %1 B - %1 Б - - - %1 KB - %1 КБ - - - %1 MB - %1 МБ - - - %1 GB - %1 ГБ - - - via %1 - через %1 - - - never - никогда - - - Inbound - Входящие - - - Outbound - Исходящие - - - Unknown - Неизвестно - - - Fetching... - Обновление... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Повторно использовать один из ранее использованных адресов.<br>Повторное использование адресов несёт риски безопасности и приватности.<br>Не используйте эту опцию, если вы не создаёте повторно ранее сделанный запрос платежа. - - - R&euse an existing receiving address (not recommended) - &Повторно использовать существующий адрес получения (не рекомендуется) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса. Обратите внимание: сообщение не будет отправлено вместе с платежом через сеть Dash. - - - &Message: - &Сообщение: - - - An optional label to associate with the new receiving address. - Необязательная метка для нового адреса получения. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Необязательное сообщение для запроса платежа, которое будет показано при открытии запроса.<br>Обратите внимание: сообщение не будет отправлено вместе с платежом через сеть Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Заполните форму для запроса платежей. Все поля <b>необязательны</b>. - - - &Label: - &Метка: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Необязательная сумма для запроса. Оставьте пустым или укажите ноль, чтобы запросить неопределённую сумму. - - - &Amount: - &Сумма: - - - &Request payment - &Запросить платёж - - - Clear all fields of the form. - Очистить все поля формы. - - - Clear - Очистить - - - Requested payments history - История запрошенных платежей - - - Show the selected request (does the same as double clicking an entry) - Показать выбранный запрос (то же самое, что и двойной клик по записи) - - - Show - Показать - - - Remove the selected entries from the list - Удалить выбранные записи из списка - - - Remove - Удалить - - - Copy label - Копировать метку - - - Copy message - Копировать сообщение - - - Copy amount - Скопировать сумму - - - - ReceiveRequestDialog - - QR Code - QR-код - - - Copy &URI - Копировать &URI - - - Copy &Address - Копировать &адрес - - - &Save Image... - &Сохранить изображение... - - - Request payment to %1 - Запросить платёж на %1 - - - Payment information - Информация платежа - - - URI - URI - - - Address - Адрес - - - Amount - Сумма - - - Label - Метка - - - Message - Сообщение - - - Resulting URI too long, try to reduce the text for label / message. - Получившийся URI слишком длинный, попробуйте сократить текст метки / сообщения. - - - Error encoding URI into QR Code. - Ошибка кодирования URI в QR-код. - - - - RecentRequestsTableModel - - Date - Дата - - - Label - Метка - - - Message - Сообщение - - - Amount - Сумма - - - (no label) - (нет метки) - - - (no message) - (нет сообщения) - - - (no amount) - (нет суммы) - - - - SendCoinsDialog - - Send Coins - Отправка - - - Coin Control Features - Функции контроля монет - - - Inputs... - Входы... - - - automatically selected - выбраны автоматически - - - Insufficient funds! - Недостаточно средств! - - - Quantity: - Количество: - - - Bytes: - Байт: - - - Amount: - Сумма: - - - Priority: - Приоритет: - - - medium - средний - - - Fee: - Комиссия: - - - Dust: - Пыль: - - - no - нет - - - After Fee: - После комиссии: - - - Change: - Сдача: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Если это выбрано, но адрес сдачи пустой или неверный, сдача будет отправлена на новый сгенерированный адрес. - - - Custom change address - Свой адрес для сдачи - - - Transaction Fee: - Комиссия транзакции: - - - Choose... - Выбрать... - - - collapse fee-settings - свернуть настройки комиссии - - - Minimize - Свернуть - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Если ручная комиссия установлена в 1000 duff, а транзакция по размеру только 250 байт, то плата "за килобайт" составит лишь 250 duff,<br>в то время как "минимум" будет равна 1000 duff. Для транзакций больше килобайта в любом случае идет расчет "за килобайт". - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - Если ручная комиссия установлена в 1000 duff, а транзакция по размеру только 250 байт, то плата "за килобайт" составит лишь 250 duff,<br>в то время как "итого минимум" будет равна 1000 duff. Для тразакций больше килобайта в любом случае идет расчет "за килобайт". - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - Оплаты только минимальной комиссии должно быть достаточно во всех случаях, пока в блоках достаточно места.<br>Однако, будьте готовы к тому, что транзакция может вовсе не получить подтверждения,<br>если количество транзакций будет стабильно больше, чем сеть способна обработать. - - - per kilobyte - за килобайт - - - total at least - итого минимум - - - (read the tooltip) - (прочтите всплывающую подсказку) - - - Recommended: - Рекомендовано: - - - Custom: - Вручную: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (Расчет "умной" комиссии еще не доступен. Обычно требуется подождать несколько блоков...) - - - Confirmation time: - Время подтверждения: - - - normal - нормальный - - - fast - быстрый - - - Send as zero-fee transaction if possible - По возможности отправить как транзакцию с нулевой комиссией - - - (confirmation may take longer) - (подтверждение может занять больше времени) - - - Confirm the send action - Подтвердить отправку - - - S&end - &Отправить - - - Clear all fields of the form. - Очистить все поля формы. - - - Clear &All - Очистить &всё - - - Send to multiple recipients at once - Отправить нескольким получателям одновременно - - - Add &Recipient - &Добавить получателя - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Баланс: - - - Copy quantity - Копировать количество - - - Copy amount - Скопировать сумму - - - Copy fee - Копировать комиссию - - - Copy after fee - Копировать после комиссии - - - Copy bytes - Копировать байты - - - Copy priority - Копировать приоритет - - - Copy dust - Скопировать пыль - - - Copy change - Копировать сдачу - - - using - , используя - - - anonymous funds - анонимные средства - - - (darksend requires this amount to be rounded up to the nearest %1). - (для работы darksend требуется принудительно округлить до ближайшего %1). - - - any available funds (not recommended) - любые доступные средства (не рекомендуется) - - - and InstantX - и InstantX - - - %1 to %2 - С %1 на %2 - - - Are you sure you want to send? - Вы уверены, что хотите отправить? - - - are added as transaction fee - добавлено в качестве комиссии транзакции - - - Total Amount = <b>%1</b><br />= %2 - Общая сумма = <b>%1</b><br />= %2 - - - Confirm send coins - Подтвердите отправку монет - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Комиссия в %1 раз выше, чем %2 за kB считается "безумно высокой". - - - Estimated to begin confirmation within %n block(s). - Будет подтверждено приблизительно в течение %n блока.Будет подтверждено приблизительно в течение %n блоков.Будет подтверждено приблизительно в течение %n блоков.Будет подтверждено приблизительно в течение %n блоков. - - - The recipient address is not valid, please recheck. - Адрес получателя неверный, пожалуйста, перепроверьте. - - - <b>(%1 of %2 entries displayed)</b> - <b>(показано записей: %1 из %2)</b> - - - The amount to pay must be larger than 0. - Сумма для отправки должна быть больше 0. - - - The amount exceeds your balance. - Сумма превышает Ваш баланс. - - - The total exceeds your balance when the %1 transaction fee is included. - Сумма превысит Ваш баланс, если комиссия в размере %1 будет добавлена к транзакции. - - - Duplicate address found, can only send to each address once per send operation. - Обнаружен дублирующийся адрес. Отправка на один и тот же адрес возможна только один раз за одну операцию отправки. - - - Transaction creation failed! - Не удалось создать транзакцию! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Транзакция была отклонена! Такое может произойти, если некоторые монеты уже были потрачены, например, если Вы используете одну копию кошелька (wallet.dat), а монеты были потрачены из другой копии, но не были отмечены как потраченные в этой. - - - Error: The wallet was unlocked only to anonymize coins. - Ошибка: этот кошелёк был разблокирован только для анонимизации монет. - - - Pay only the minimum fee of %1 - Заплатить только минимальную комиссию %1 - - - Warning: Invalid Dash address - Внимание: неверный адрес Dash - - - Warning: Unknown change address - Внимание: неизвестный адрес для сдачи - - - (no label) - (нет метки) - - - - SendCoinsEntry - - This is a normal payment. - Это нормальный платёж. - - - Pay &To: - Полу&чатель: - - - The Dash address to send the payment to - Адрес Dash для отправки на него монет - - - Choose previously used address - Выбрать ранее использованный адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Remove this entry - Удалить эту запись - - - &Label: - &Метка: - - - Enter a label for this address to add it to the list of used addresses - Введите метку для этого адреса, чтобы добавить его в список использованных - - - A&mount: - Ко&личество: - - - Message: - Сообщение: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - К dash: URI было прикреплено сообщение, которое будет сохранено вместе с транзакцией для вашего сведения. Обратите внимание: сообщение не будет отправлено через сеть Dash. - - - This is an unverified payment request. - Это непроверенный запрос платежа. - - - Pay To: - Получатель: - - - Memo: - Примечание: - - - This is a verified payment request. - Это проверенный запрос платежа. - - - Enter a label for this address to add it to your address book - Введите метку для данного адреса для добавления его в адресную книгу - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core выключается... - - - Do not shut down the computer until this window disappears. - Не выключайте компьютер, пока это окно не исчезнет. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Подписи - подписать/проверить сообщение - - - &Sign Message - &Подписать сообщение - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Вы можете подписывать сообщения своими адресами, чтобы доказать владение ими. Будьте осторожны, не подписывайте что-то неопределённое, так как фишинговые атаки могут обманным путём заставить вас подписать нежелательные сообщения. Подписывайте только те сообщения, с которыми вы согласны вплоть до мелочей. - - - The Dash address to sign the message with - Адрес Dash, которым Вы хотите подписать сообщение - - - Choose previously used address - Выбрать ранее использованный адрес - - - Alt+A - Alt+A - - - Paste address from clipboard - Вставить адрес из буфера обмена - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Введите сообщение для подписи - - - Signature - Подпись - - - Copy the current signature to the system clipboard - Скопировать текущую подпись в системный буфер обмена - - - Sign the message to prove you own this Dash address - Подписать сообщение, чтобы доказать владение этим адресом Dash - - - Sign &Message - Подписать &сообщение - - - Reset all sign message fields - Сбросить значения всех полей формы подписывания сообщений - - - Clear &All - Очистить &всё - - - &Verify Message - &Проверить сообщение - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Введите ниже адрес для подписи, сообщение (убедитесь, что переводы строк, пробелы, табы и т.п. в точности скопированы) и подпись, чтобы проверить сообщение. Убедитесь, что не скопировали лишнего в подпись, по сравнению с самим подписываемым сообщением, чтобы не стать жертвой атаки "man-in-the-middle". - - - The Dash address the message was signed with - Адрес Dash, которым было подписано сообщение - - - Verify the message to ensure it was signed with the specified Dash address - Проверить сообщение, чтобы убедиться, что оно было подписано указанным адресом Dash - - - Verify &Message - Проверить &сообщение - - - Reset all verify message fields - Сбросить все поля формы проверки сообщения - - - Click "Sign Message" to generate signature - Нажмите "Подписать сообщение" для создания подписи - - - The entered address is invalid. - Введённый адрес неверен. - - - Please check the address and try again. - Пожалуйста, проверьте адрес и попробуйте ещё раз. - - - The entered address does not refer to a key. - Введённый адрес не связан с ключом. - - - Wallet unlock was cancelled. - Разблокировка кошелька была отменена. - - - Private key for the entered address is not available. - Закрытый ключ для введённого адреса недоступен. - - - Message signing failed. - Не удалось подписать сообщение. - - - Message signed. - Сообщение подписано. - - - The signature could not be decoded. - Подпись не может быть раскодирована. - - - Please check the signature and try again. - Пожалуйста, проверьте подпись и попробуйте ещё раз. - - - The signature did not match the message digest. - Подпись не соответствует отпечатку сообщения. - - - Message verification failed. - Проверка сообщения не удалась. - - - Message verified. - Сообщение проверено. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Версия %1 - - - The Bitcoin Core developers - Разработчики Bitcoin Core - - - The Dash Core developers - Разработчики Dash Core - - - [testnet] - [тестовая сеть] - - - - TrafficGraphWidget - - KB/s - КБ/сек - - - - TransactionDesc - - Open for %n more block(s) - Будет открыто ещё %n блокБудет открыто ещё %n блокаБудет открыто ещё %n блоковБудет открыто ещё %n блоков - - - Open until %1 - Открыто до %1 - - - conflicted - в противоречии - - - %1/offline (verified via instantx) - %1/отключен (проверено через instantx) - - - %1/confirmed (verified via instantx) - %1/подтвержден (проверено через instantx) - - - %1 confirmations (verified via instantx) - %1 подтверждений (проверено через instantx) - - - %1/offline - %1/отключен - - - %1/unconfirmed - %1/не подтверждено - - - %1 confirmations - %1 подтверждений - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/отключен (верификация InstantX в процессе - %2 из %3 подписей) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/подтвержден (верификация InstantX в процессе - %2 из %3 подписей) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 подтверждений (верификация InstantX в процессе - %2 из %3 подписей) - - - %1/offline (InstantX verification failed) - %1/отключен (верификация InstantX завершилась неудачно) - - - %1/confirmed (InstantX verification failed) - %1/подтвержден (верификация InstantX завершилась неудачно) - - - Status - Статус - - - , has not been successfully broadcast yet - , ещё не было успешно разослано - - - , broadcast through %n node(s) - , разослано через %n узел, разослано через %n узла, разослано через %n узлов, разослано через %n узлов - - - Date - Дата - - - Source - Источник - - - Generated - Сгенерированно - - - From - От - - - unknown - неизвестно - - - To - Для - - - own address - свой адрес - - - watch-only - для просмотра - - - label - метка - - - Credit - Кредит - - - matures in %n more block(s) - будет доступно через %n блокбудет доступно через %n блокабудет доступно через %n блоковбудет доступно через %n блоков - - - not accepted - не принято - - - Debit - Дебет - - - Total debit - Полный дебит - - - Total credit - Полный кредит - - - Transaction fee - Комиссия - - - Net amount - Чистая сумма - - - Message - Сообщение - - - Comment - Комментарий - - - Transaction ID - ID транзакции - - - Merchant - Продавец - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Сгенерированные монеты должны подождать %1 блоков, прежде чем они могут быть потрачены. Когда Вы сгенерировали этот блок, он был отправлен в сеть для добавления в цепочку блоков. Если он не попадёт в цепочку, его статус изменится на "не принят", и монеты будут недействительны. Это иногда происходит в случае, если другой узел сгенерирует блок на несколько секунд раньше вас. - - - Debug information - Отладочная информация - - - Transaction - Транзакция - - - Inputs - Входы - - - Amount - Сумма - - - true - истина - - - false - ложь - - - - TransactionDescDialog - - Transaction details - Детали транзакции - - - This pane shows a detailed description of the transaction - Эта панель отображает детальное описание транзакции - - - - TransactionTableModel - - Date - Дата - - - Type - Тип - - - Address - Адрес - - - Open for %n more block(s) - Будет открыто ещё %n блокБудет открыто ещё %n блокаБудет открыто ещё %n блоковБудет открыто ещё %n блоков - - - Open until %1 - Открыто до %1 - - - Offline - Нет активных соединений с сетью - - - Unconfirmed - Неподтверждено - - - Confirming (%1 of %2 recommended confirmations) - Подтверждается (%1 из %2 рекомендованных подтверждений) - - - Confirmed (%1 confirmations) - Подтверждено (%1 подтверждений) - - - Conflicted - В противоречии - - - Immature (%1 confirmations, will be available after %2) - Незрелый (%1 подтверждений, будет доступен после %2) - - - This block was not received by any other nodes and will probably not be accepted! - Этот блок не был получен другими узлами и, возможно, не будет принят! - - - Generated but not accepted - Сгенерированно, но не подтверждено - - - Received with - Получено - - - Received from - Получено от - - - Received via Darksend - Получено через Darksend - - - Sent to - Отправлено - - - Payment to yourself - Отправлено себе - - - Mined - Добыто - - - Darksend Denominate - Перемешивание Darksend - - - Darksend Collateral Payment - Обеспечительный платеж Darksend - - - Darksend Make Collateral Inputs - Создание обеспечительных монет для Darksend - - - Darksend Create Denominations - Создание номиналов для Darksend - - - Darksent - Отправлено через Darksend - - - watch-only - для просмотра - - - (n/a) - (н/д) - - - Transaction status. Hover over this field to show number of confirmations. - Статус транзакции. Подведите курсор к нужному полю для того, чтобы увидеть количество подтверждений. - - - Date and time that the transaction was received. - Дата и время, когда транзакция была получена. - - - Type of transaction. - Тип транзакции. - - - Whether or not a watch-only address is involved in this transaction. - Участвовал ли адрес для просмотра в этой транзакции. - - - Destination address of transaction. - Адрес назначения транзакции. - - - Amount removed from or added to balance. - Сумма, снятая с баланса или добавленная на него. - - - - TransactionView - - All - Все - - - Today - Сегодня - - - This week - На этой неделе - - - This month - В этом месяце - - - Last month - В прошлом месяце - - - This year - В этом году - - - Range... - Промежуток... - - - Most Common - Наиболее общие - - - Received with - Получено на - - - Sent to - Отправлено на - - - Darksent - Отправлено через Darksend - - - Darksend Make Collateral Inputs - Создание обеспечительных монет для Darksend - - - Darksend Create Denominations - Создание номиналов для Darksend - - - Darksend Denominate - Перемешивание Darksend - - - Darksend Collateral Payment - Обеспечительный платеж Darksend - - - To yourself - Отправленные себе - - - Mined - Добытые - - - Other - Другое - - - Enter address or label to search - Введите адрес или метку для поиска - - - Min amount - Мин. сумма - - - Copy address - Копировать адрес - - - Copy label - Копировать метку - - - Copy amount - Скопировать сумму - - - Copy transaction ID - Скопировать ID транзакции - - - Edit label - Изменить метку - - - Show transaction details - Показать подробности транзакции - - - Export Transaction History - Экспортировать историю транзакций - - - Comma separated file (*.csv) - Текст, разделённый запятыми (*.csv) - - - Confirmed - Подтверждено - - - Watch-only - Для просмотра - - - Date - Дата - - - Type - Тип - - - Label - Метка - - - Address - Адрес - - - ID - ID - - - Exporting Failed - Экспорт не удался - - - There was an error trying to save the transaction history to %1. - Произошла ошибка при сохранении истории транзакций в %1. - - - Exporting Successful - Экспорт успешно завершён - - - The transaction history was successfully saved to %1. - История транзакций была успешно сохранена в %1. - - - Range: - Промежуток от: - - - to - до - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Размерность для показа сумм. Кликните для выбора другой размерности. - - - - WalletFrame - - No wallet has been loaded. - Не был загружен ни один кошелёк. - - - - WalletModel - - Send Coins - Отправка - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX пока что не поддерживает такие большие суммы. На данный момент транзакции ограничены суммами до %1 DASH. - - - - WalletView - - &Export - &Экспорт - - - Export the data in the current tab to a file - Экспортировать данные из вкладки в файл - - - Selected amount: - Сумма выбранных: - - - Backup Wallet - Сделать резервную копию кошелька - - - Wallet Data (*.dat) - Данные кошелька (*.dat) - - - Backup Failed - Резервное копирование не удалось - - - There was an error trying to save the wallet data to %1. - Произошла ошибка при сохранении данных кошелька в %1. - - - Backup Successful - Резервное копирование успешно завершено - - - The wallet data was successfully saved to %1. - Данные кошелька были успешно сохранены в %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Привязаться к указанному адресу и всегда прослушивать только его. Используйте [хост]:порт для IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Не удалось установить блокировку на каталог данных %s. Возможно, Dash Core уже запущен. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - При отправке Darksend использует только деноминированные средства, возможно, Вам просто нужно анонимизировать немного больше монет. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Войти в режим регрессионного тестирования, в котором используется специальная цепочка, где блоки находятся мгновенно. - - - Error: Listening for incoming connections failed (listen returned error %s) - Ошибка: не удалось начать прослушивание входящих подключений (прослушивание вернуло ошибку %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Выполнить команду, когда приходит соответствующее сообщение о тревоге или наблюдается очень длинная альтернативная цепочка блоков (%s в команде заменяется на сообщение) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Выполнить команду, когда меняется транзакция в кошельке (%s в команде заменяется на TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Выполнить команду при появлении нового блока (%s в команде заменяется на хэш блока) - - - In this mode -genproclimit controls how many blocks are generated immediately. - В этом режиме -genproclimit определяет, сколько блоков генерируется немедленно. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX требует наличия средств с хотя бы 6 подтверждениями, возможно Вам нужно подождать пару минут и попробовать снова. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Имя для создания ссылки на запись KeePass, хранящую пароль к кошельку - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Запрашивать адреса участников с помощью DNS, если адресов мало (по умолчанию: 1, если не указан -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Задать максимальный размер высокоприоритетных/низкокомиссионных транзакций в байтах (по умолчанию: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Задать число потоков проверки скрипта (от %u до %d, 0=авто, <0 = оставить столько ядер свободными, по умолчанию: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Это пре-релизная тестовая сборка - используйте на свой страх и риск - не используйте для добычи или торговых приложений - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Не удалось привязаться к %s на этом компьютере. Возможно, Dash Core уже запущен. - - - Unable to locate enough Darksend denominated funds for this transaction. - Не удалось обнаружить достаточных для выполнения этой транзакции номиналов Darksend. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Не удалось обнаружить достаточных для выполнения этой транзакции неденоминированных средств, отличающихся от 1000DRK. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Внимание: установлено очень большое значение -paytxfee. Это комиссия, которую Вы заплатите при проведении транзакции. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Внимание: похоже, что в сети нет полного согласия! Некоторый майнеры, возможно, испытывают проблемы. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Внимание: обнаружено несогласие с подключенными участниками! Вам или другим участникам, возможно, следует обновиться. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Внимание: ошибка чтения wallet.dat! Все ключи прочитаны верно, но данные транзакций или записи адресной книги могут отсутствовать или быть неправильными. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Внимание: wallet.dat повреждён, данные спасены! Оригинальный wallet.dat сохранён как wallet.{timestamp}.bak в %s. Если Ваш баланс или транзакции некорректны, Вы должны восстановить файл из резервной копии. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Необходимо указать masternodeprivkey в файле конфигурации. Пожалуйста, ознакомьтесь с документацией. - - - (default: 1) - (по умолчанию: 1) - - - Accept command line and JSON-RPC commands - Принимать командную строку и команды JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Принимать подключения извне (по умолчанию: 1, если не используется -proxy или -connect) - - - Add a node to connect to and attempt to keep the connection open - Добавить узел для подключения и пытаться поддерживать соединение открытым - - - Allow DNS lookups for -addnode, -seednode and -connect - Разрешить поиск в DNS для -addnode, -seednode и -connect - - - Already have that input. - Уже есть этот вход. - - - Attempt to recover private keys from a corrupt wallet.dat - Попытаться восстановить закрытые ключи из повреждённого wallet.dat - - - Block creation options: - Параметры создания блоков: - - - Can't denominate: no compatible inputs left. - Разбиение на номиналы невозможно: не осталось совместимых монет. - - - Cannot downgrade wallet - Не удаётся понизить версию кошелька - - - Cannot resolve -bind address: '%s' - Не удаётся разрешить адрес в параметре -bind: '%s' - - - Cannot resolve -externalip address: '%s' - Не удаётся разрешить адрес в параметре -externalip: '%s' - - - Cannot write default address - Не удаётся записать адрес по умолчанию - - - Collateral not valid. - Обеспечительная транзакция некорректна. - - - Connect only to the specified node(s) - Подключаться только к указанному узлу(ам) - - - Connect to a node to retrieve peer addresses, and disconnect - Подключиться к участнику, чтобы получить список адресов других участников, и отключиться - - - Connection options: - Параметры подключения: - - - Corrupted block database detected - База данных блоков повреждена - - - Darksend options: - Параметры Darksend: - - - Debugging/Testing options: - Параметры отладки/тестирования: - - - Discover own IP address (default: 1 when listening and no -externalip) - Определить свой IP (по умолчанию: 1 при прослушивании и если не используется -externalip) - - - Do not load the wallet and disable wallet RPC calls - Не загружать кошелёк и запретить обращения к нему через RPC - - - Do you want to rebuild the block database now? - Перестроить базу данных блоков прямо сейчас? - - - Done loading - Загрузка завершена - - - Entries are full. - Очередь переполнена. - - - Error initializing block database - Ошибка инициализации базы данных блоков - - - Error initializing wallet database environment %s! - Ошибка инициализации окружения БД кошелька %s! - - - Error loading block database - Ошибка загрузки базы данных блоков - - - Error loading wallet.dat - Ошибка при загрузке wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Ошибка загрузки wallet.dat: кошелёк поврежден - - - Error opening block database - Не удалось открыть базу данных блоков - - - Error reading from database, shutting down. - Ошибка чтения базы данных, завершение работы. - - - Error recovering public key. - Ошибка восстановления открытого ключа. - - - Error - Ошибка - - - Error: Disk space is low! - Ошибка: мало места на диске! - - - Error: Wallet locked, unable to create transaction! - Ошибка: кошелёк заблокирован, создание транзакции невозможно! - - - Error: You already have pending entries in the Darksend pool - Ошибка: у Вас уже есть ожидающие записи в пуле Darksend - - - Failed to listen on any port. Use -listen=0 if you want this. - Не удалось начать прослушивание на порту. Используйте -listen=0, если вас это устраивает. - - - Failed to read block - Ошибка чтения блока - - - If <category> is not supplied, output all debugging information. - Если <category> не указана, то выводить всю отладочную информацию. - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = сохранить мета-данные, например, о владельце аккаунта и информацию о запросе платежа, 2 = удалить мета-данные) - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - Разрешить соединения JSON-RPC с указанного источника . <ip> может быть отдельным IP (например, 1.2.3.4), подсетью/маской (например, 1.2.3.4/255.255.255.0) или подсетью/CIDR (e.g. 1.2.3.4/24). Эту опцию можно указывать несколько раз - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Произошла ошибка при настройке прослушивания RPC на адресе %s порт %u: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - Привязаться к указанному адресу и внести пиров, использующих его, в белый список. Используйте [хост]:порт для IPv6 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Привязаться к указанному адресу для прослушивания JSON-RPC соединений. Используйте [хост]:порт для IPv6. Эту опцию можно указывать несколько раз (по умолчанию: привязаться ко всем интерфейсам) - - - Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) - Изменить поведение автоматического голосования за итоговые бюджеты. Режим auto: Голосовать только за итоговый бюджет, совпадающий со сгенерированным мной. (строковое, по умолчанию: auto) - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Постоянно ограничивать бесплатные транзакции до <n>*1000 байт в минуту (по умолчанию:%u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Создавать новые файлы с разрешениями по умолчанию вместо umask 077 (актуально только с отключенной функциональностью кошелька) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Удалить все трансакции из кошелька и при рестарте с помощью -rescan восстановить только те, которые есть в цепочке блоков - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Отключить всю функциональность, относящуюся к Dash (Мастерноды, Darksend, InstantX, бюджеты) (0-1, по умолчанию: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Распространяется под лицензией на программное обеспечение MIT, смотрите прилагаемый файл COPYING или <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Включить instantx, показывать подтверждения для заблокированных транзакций (булевое, по умолчанию: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Включить автоматическое перемешивание Darksend для средств, хранящихся в этом кошельке (0-1, по умолчанию: %u) - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Ошибка: Обнаружен неподдерживаемый аргумент -socks. Выбор версии SOCKS больше невозможен, поддерживаются только прокси версии SOCKS5. - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Комиссии (в DASH/Kb) меньше этого значения считаются нулевой для ретранслирования транзакции (по умолчанию: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Комиссии (в DASH/Kb) меньше этого значения считаются нулевой (для создания транзакции) (по умолчанию: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Сохранять активность базы данных из пула памяти в лог на диске каждые <n> мегабайт (по умолчанию: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Найдены неподтверждённые номиналы, процесс продолжится после их подтверждения. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Насколько тщательна проверка контрольных блоков -checkblocks (0-4, по умолчанию: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Если paytxfee не задано, то включить достаточно комиссии, чтобы подтверждение транзакций происходило в среднем за n блоков (по умолчанию: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - Некорректная сумма для -maxtxfee=<amount>: '%s' (должна быть минимум как комиссия minrelay - %s, чтобы предотвратить застревание транзакций) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Записывать в лог приоритет транзакции и комиссию за килобайт во время добычи блоков (по умолчанию: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - Держать полный индекс транзакций, используется rpc-вызовом getrawtransaction (по умолчанию: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - Максимальный размер данных в транзакциях передачи данных, который мы ретранслируем и добываем (по умолчанию: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - Максимальная сумма комиссии, допустимая в одной транзакции. Установка слишком низкого значения может привести к невозможности отправить большие транзакции (по умолчанию: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Количество секунд, в течение которых запрещать переподключаться неправильно ведущим себя участникам (по умолчанию: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Вывод отладочной информации (по умолчанию: %u, указание <category> необязательно) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Предоставлять ликвидность для Darksend путем редкого участия в перемешивании монет на постоянной основе (0-100, по умолчанию: %u, 1=очень часто, высокая комиссия, 100=очень редко, низкая комиссия) - - - Require high priority for relaying free or low-fee transactions (default:%u) - Ретранслировать транзакций с нулевой или низкой комиссией, только если у них высокий приоритет (по умолчанию:%u) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Выводить информацию трассировки/отладки на консоль вместо файла debug.log (по умолчанию: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Задать число потоков выполнения для генерации монет, если таковая включена (-1 = все ядра, по умолчанию: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Показывать N подтверждений для успешно заблокированной транзакции (0-9999, по умолчанию: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Этот продукт включает ПО, разработанное проектом OpenSSL Project для использования в OpenSSL Toolkit <https://www.openssl.org/>, криптографическое ПО, написанное Eric Young и ПО для работы с UPnP, написанное Thomas Bernard. - - - To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file: -%s -It is recommended you use the following random password: -rpcuser=dashrpc -rpcpassword=%s -(you do not need to remember this password) -The username and password MUST NOT be the same. -If the file does not exist, create it with owner-readable-only file permissions. -It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - Для использования dashd или опции -server с dash-qt, вы должны установить опцию rpcpassword в конфигурационном файле: -%s -Рекомендуется использовать следующий случайный пароль: -rpcuser=dashrpc -rpcpassword=%s -(вам не нужно запоминать этот пароль) -Имя и пароль ДОЛЖНЫ различаться. -Если файл не существует, то создайте его и оставьте права на чтение только для владельца. -Также рекомендуется включить alertnotify для оповещения о проблемах; -Например: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com - - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Не удалось обнаружить достаточных для выполнения этой транзакции средств, отличающихся от 1000DRK. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Использовать отдельный SOCKS5 прокси для подключения к участникам через скрытые сервисы Tor (по умолчанию: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Внимание: установлено очень большое значение -paytxfee! Комиссия такого размера может быть уплачена при проведении одельной транзакции. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Внимание: пожалуйста, убедитесь что дата и время на Вашем компьютере выставлены правильно! Dash Core не сможет работать корректно, если часы настроены неверно. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Внести пиров, соединяющихся с адресов с указанной маской либо IP адресов, в белый список. Опция может быть указана несколько раз. - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - Пиры, внесенные в белый список, не будут подвергаться DoS блокировкам и их транзакции будут ретранслироваться, даже если они уже есть в пуле памяти, что полезно, например, для работы в качестве шлюза - - - (9999 could be used only on mainnet) - (9999 можно использовать только в главной сети) - - - (default: %s) - (по умолчанию: %s) - - - <category> can be: - - <category> может быть: - - - - Accept public REST requests (default: %u) - Принимать публичные REST-запросы (по умолчанию: %u) - - - Acceptable ciphers (default: %s) - Допустимые алгоритмы шифрования (по умолчанию: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Всегда запрашивать адреса участников через DNS (по умолчанию: %u) - - - Cannot resolve -whitebind address: '%s' - Не удаётся разрешить адрес в параметре -whitebind: '%s' - - - Connect through SOCKS5 proxy - Соединяться через SOCKS5 прокси - - - Connect to KeePassHttp on port <port> (default: %u) - Соединяться c KeePassHttp по порту <port> (по умолчанию: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Copyright (C) 2009-%i The Bitcoin Core Developers - - - Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2014-%i The Dash Core Developers - - - Could not parse -rpcbind value %s as network address - Не могу распознать сетевой адрес в значении %s параметра -rpcbind - - - Darksend is idle. - Darksend в режиме ожидания. - - - Darksend request complete: - Запрос Darksend завершен: - - - Darksend request incomplete: - Запрос Darksend не завершен: - - - Disable safemode, override a real safe mode event (default: %u) - Отменить безопасный режим, перекрывает реальные события о переходе в безопасный режим (по умолчанию: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Разрешить этому клиенту работать в качестве мастерноды (0-1, по умолчанию: %u) - - - Error connecting to Masternode. - Ошибка соединения с мастернодой. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Ошибка загрузки wallet.dat: кошелёк требует более новой версии Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Ошибка: Произошла критическая ошибка, подробности смотрите в файле debug.log - - - Error: Can't select current denominated inputs - Ошибка: не получилось подобрать номиналы - - - Error: Unsupported argument -tor found, use -onion. - Ошибка: Обнаружен неподдерживаемый параметр -tor, используйте -onion вместо него. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Комиссии (в DASH/kB), добавляемая к отправляемым Вами транзакциям (по умолчанию: %s) - - - Finalizing transaction. - Завершаем транзакцию. - - - Force safe mode (default: %u) - Принудительный безопасный режим (по умолчанию: %u) - - - Found enough users, signing ( waiting %s ) - Найдено достаточное количество участников, подписываем ( ожидание %s ) - - - Found enough users, signing ... - Найдено достаточное количество участников, подписываем ... - - - Generate coins (default: %u) - Генерировать монеты (по умолчанию: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Сколько блоков проверять на старте (по умолчанию: %u, 0 = все) - - - Importing... - Импорт ... - - - Imports blocks from external blk000??.dat file - Импортировать блоки из внешнего файла blk000??.dat - - - Include IP addresses in debug output (default: %u) - Писать IP-адреса в отладочный вывод (по умолчанию: %u) - - - Incompatible mode. - Несовместимый режим. - - - Incompatible version. - Несовместимая версия. - - - Incorrect or no genesis block found. Wrong datadir for network? - Неверный или отсутствующий начальный блок. Неправильный каталог данных для сети? - - - Information - Информация - - - Initialization sanity check failed. Dash Core is shutting down. - Проверка на непротиворечивость закончилась неудачно. Dash Core выключается. - - - Input is not valid. - Вход некорректен. - - - InstantX options: - Параметры InstantX: - - - Insufficient funds. - Недостаточно средств. - - - Invalid -onion address: '%s' - Неверный -onion адрес: '%s' - - - Invalid -proxy address: '%s' - Неверный адрес -proxy: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Неверная сумма в параметре -maxtxfee=<amount>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Неверная сумма в параметре -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Неверная сумма в параметре -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Неверная сумма в параметре -paytxfee=<amount>: '%s' (должна быть минимум %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Неверная сумма в параметре -paytxfee=<amount>: '%s' - - - Last successful Darksend action was too recent. - Последнее успешное действие Darksend было слишком недавно. - - - Limit size of signature cache to <n> entries (default: %u) - Ограничить размер кэша подписей до <n> записей (по умолчанию: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Слушать JSON-RPC соединения на порту <port> (по умолчанию: %u или testnet: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Принимать входящие подключения на порт <port> (по умолчанию: %u или testnet: %u) - - - Loading budget cache... - Загрузка кэша бюджетов... - - - Loading masternode cache... - Загрузка кэша мастернод... - - - Loading masternode payment cache... - Загрузка кэша выплат Мастернодам... - - - Lock is already in place. - Установлена блокировка. - - - Lock masternodes from masternode configuration file (default: %u) - Заблокировать средства мастернод, указанных в настроечном файле (по умолчанию: %u) - - - Maintain at most <n> connections to peers (default: %u) - Поддерживать не более <n> подключений к узлам (по умолчанию: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Максимальный размер буфера приёма на одно соединение, <n>*1000 байт (по умолчанию: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Максимальный размер буфера отправки на соединение, <n>*1000 байт (по умолчанию: %u) - - - Mixing in progress... - Выполняется перемешивание... - - - Need to specify a port with -whitebind: '%s' - Для параметра -whitebind нужно указать порт: '%s' - - - No Masternodes detected. - Мастерноды не найдены. - - - No compatible Masternode found. - Отсутствуют совместимые мастерноды. - - - Not in the Masternode list. - Отсутствует в списке мастернод. - - - Number of automatic wallet backups (default: 10) - Количество автоматических резервных копий кошелька (по умолчанию: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Принимать цепочку блоков только в том случае, если она соответствует встроенным контрольным точкам (по умолчанию: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Соединяться только по сети <net> (ipv4, ipv6 или onion) - - - Prepend debug output with timestamp (default: %u) - Дописывать в начало отладочного вывода отметки времени (по умолчанию: %u) - - - Run a thread to flush wallet periodically (default: %u) - Запустить поток для периодического сохранения кошелька (по умолчанию: %u) - - - Send trace/debug info to debug.log file (default: %u) - Выводить информацию трассировки/отладки в файл debug.log (по умолчанию: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - По возможности отправлять транзакции с нулевой комиссией (по умолчанию: %u) - - - Server certificate file (default: %s) - Файл сертификата сервера (по умолчанию: %s) - - - Server private key (default: %s) - Закрытый ключ сервера (по умолчанию: %s) - - - Set external address:port to get to this masternode (example: %s) - Указать внешний адрес:порт для доступа к этой мастерноде (например: %s) - - - Set key pool size to <n> (default: %u) - Установить размер пула ключей в <n> (по умолчанию: %u) - - - Set minimum block size in bytes (default: %u) - Установить минимальный размер блока в байтах (по умолчанию: %u) - - - Set the number of threads to service RPC calls (default: %d) - Задать число потоков выполнения запросов RPC (по умолчанию: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Установить флаг DB_PRIVATE в окружении базы данных кошелька (по умолчанию: %u) - - - Signing timed out. - Подписание прекращено по тайм-ауту. - - - Specify configuration file (default: %s) - Указать конфигурационный файл (по умолчанию: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Указать тайм-аут соединения в миллисекундах (минимально: 1, по умолчанию: %d) - - - Specify masternode configuration file (default: %s) - Указать конфигурационный файл для мастернод (по умолчанию: %s) - - - Specify pid file (default: %s) - Указать pid-файл (по умолчанию: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Тратить неподтвержденную сдачу при отправке транзакций (по умолчанию: %u) - - - Stop running after importing blocks from disk (default: %u) - Закрыть приложение после завершения импорта блоков с диска (по умолчанию: %u) - - - Submitted following entries to masternode: %u / %d - Мастерноде отправлены следующие записи: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Отправлено мастерноде, ожидаем больше записей ( %u / %d ) %s - - - Submitted to masternode, waiting in queue %s - Отправлено на мастерноду, ожидаем в очереди %s - - - Synchronization failed - Синхронизация закончилась неудачно - - - Synchronization finished - Синхронизация завершена - - - Synchronizing budgets... - Синхронизация бюджетов... - - - Synchronizing masternode winners... - Синхронизация списка мастернод-победителей... - - - Synchronizing masternodes... - Синхронизация списка мастернод... - - - Synchronizing sporks... - Синхронизация спорков... - - - This is not a Masternode. - Это не мастернода. - - - Threshold for disconnecting misbehaving peers (default: %u) - Порог для отключения некорректно ведущих себя пиров (по умолчанию: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Использовать интеграцию с KeePass 2 через плагин KeePassHttp (по умолчанию: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Использовать N отдельных мастернод для анонимизации средств (2-8, по умолчанию: %u) - - - Use UPnP to map the listening port (default: %u) - Использовать UPnP для проброса порта (по умолчанию: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Необходимо перезаписать кошелёк: перезапустите Dash Core для завершения операции - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Внимание: Опция -benchmark проигнорирована, используйте -debug=bench вместо нее. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Внимание: опция -debugnet проигнорирована, используйте -debug=net вместо нее. - - - Will retry... - Попробуем еще раз... - - - Invalid masternodeprivkey. Please see documenation. - Неправильное значение masternodeprivkey. Пожалуйста, ознакомьтесь с документацией. - - - (must be 9999 for mainnet) - (должно быть 9999 в главной сети) - - - Can't find random Masternode. - Не получилось выбрать случайную Мастерноду. - - - Can't mix while sync in progress. - Перемешивание до завершения синхронизации невозможно. - - - Could not parse masternode.conf - Не могу разобрать masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - В параметре -whitelist указана некорректная маска: '%s' - - - Invalid port detected in masternode.conf - Обнаружен некорректный порт в masternode.conf - - - Invalid private key. - Некорректный закрытый ключ. - - - Invalid script detected. - Обнаружен некорректный скрипт. - - - KeePassHttp id for the established association - Идентификатор KeePassHttp для установленной ассоциации - - - KeePassHttp key for AES encrypted communication with KeePass - Ключ KeePassHttp для зашифрованной коммуникации с KeePass - - - Keep N DASH anonymized (default: %u) - Держать N DASH анонимизированными (по умолчанию: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Держать в памяти до <n> несвязных транзакций (по умолчанию: %u) - - - Last Darksend was too recent. - Последнее действие Darksend было слишком недавно. - - - Line: %d - Строка: %d - - - Loading addresses... - Загрузка адресов... - - - Loading block index... - Загрузка индекса блоков... - - - Loading wallet... (%3.2f %%) - Загрузка кошелька... (%3.2f %%) - - - Loading wallet... - Загрузка кошелька... - - - Masternode options: - Параметры мастерноды: - - - Masternode queue is full. - Очередь на мастерноде переполнена. - - - Masternode: - Мастернода: - - - Missing input transaction information. - Отсутствует информация о входной транзакции. - - - No funds detected in need of denominating. - Не обнаружено средств для дальнейшего разбиения на номиналы. - - - No matching denominations found for mixing. - Отсутствуют совпадающие для перемешивания номиналы. - - - Node relay options: - Параметры ретрансляции узла: - - - Non-standard public key detected. - Обнаружен нестандартный открытый ключ. - - - Not compatible with existing transactions. - Не совместимо с существующими транзакциями. - - - Not enough file descriptors available. - Недостаточно файловых дескрипторов. - - - Options: - Параметры: - - - Password for JSON-RPC connections - Пароль для подключений JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Параметры RPC SSL: (см. Bitcoin вики для инструкций по настройке SSL) - - - RPC server options: - Параметры сервера RPC: - - - RPC support for HTTP persistent connections (default: %d) - Поддержка RPC для постоянных соединений HTTP (по умолчанию: %d) - - - Randomly drop 1 of every <n> network messages - Случайно отбрасывать 1 из каждых <n> сетевых сообщений - - - Randomly fuzz 1 of every <n> network messages - Случайно разбрасывать 1 из каждых <n> сетевых сообщений - - - Rebuild block chain index from current blk000??.dat files - Перестроить индекс цепочки блоков из текущих файлов blk000??.dat - - - Receive and display P2P network alerts (default: %u) - Получать и показывать предупреждения P2P-сети (по умолчанию: %u) - - - Relay and mine data carrier transactions (default: %u) - Ретрансляция и создание транзакций передачи данных (по умолчанию: %u) - - - Relay non-P2SH multisig (default: %u) - Ретрансляция не-P2SH multisig (по умолчанию: %u) - - - Rescan the block chain for missing wallet transactions - Перепроверить цепочку блоков на предмет отсутствующих в кошельке транзакций - - - Rescanning... - Сканирование... - - - Run in the background as a daemon and accept commands - Запускаться в фоне как демон и принимать команды - - - Session not complete! - Сессия не закончена! - - - Session timed out. - Сессия прекращена по тайм-ауту. - - - Set database cache size in megabytes (%d to %d, default: %d) - Установить размер кэша БД в мегабайтах(от %d до %d, по умолчанию: %d) - - - Set maximum block size in bytes (default: %d) - Установить максимальный размер блока в байтах (по умолчанию: %d) - - - Set the masternode private key - Установить закрытый ключ мастерноды - - - Show all debugging options (usage: --help -help-debug) - Показать все отладочные параметры (использование: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Сжимать файл debug.log при запуске клиента (по умолчанию: 1, если нет -debug) - - - Signing failed. - Подписание завершилось неудачно. - - - Signing transaction failed - Подписание транзакции завершилось неудачно - - - Specify data directory - Задать каталог данных - - - Specify wallet file (within data directory) - Укажите файл кошелька (внутри каталога данных) - - - Specify your own public address - Укажите Ваш собственный публичный адрес - - - Synchronization pending... - Ожидание синхронизации... - - - This help message - Эта справка - - - This is experimental software. - Это экспериментальное ПО. - - - This is intended for regression testing tools and app development. - Это рассчитано на инструменты регрессионного тестирования и разработку приложений. - - - Transaction amount too small - Сумма транзакции слишком мала - - - Transaction amounts must be positive - Сумма транзакции должна быть положительна - - - Transaction created successfully. - Создание транзакции прошло успешно. - - - Transaction fees are too high. - Комиссия по транзакции слишком большая. - - - Transaction not valid. - Транзакция некорректна. - - - Transaction too large for fee policy - Транзакция слишком большая для установленных ограничений комиссии - - - Transaction too large - Транзакция слишком большая - - - Transmitting final transaction. - Передаем итоговую транзакцию. - - - Unable to bind to %s on this computer (bind returned error %s) - Невозможно привязаться к %s на этом компьютере (привязка вернула ошибку %s) - - - Unable to sign spork message, wrong key? - Не удалось подписать spork-сообщение. Неправильный ключ? - - - Unknown network specified in -onlynet: '%s' - В параметре -onlynet указана неизвестная сеть: '%s' - - - Unknown state: id = %u - Неизвестное состояние: id = %u - - - Upgrade wallet to latest format - Обновить кошелёк до последнего формата - - - Use OpenSSL (https) for JSON-RPC connections - Использовать OpenSSL (https) для подключений JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Использовать UPnP для проброса порта (по умолчанию: 1, если используется прослушивание) - - - Use the test network - Использовать тестовую сеть - - - Username for JSON-RPC connections - Имя для подключений JSON-RPC - - - Value more than Darksend pool maximum allows. - Превышено значение допустимой для пула Darksend суммы. - - - Verifying blocks... - Проверка блоков... - - - Verifying wallet... - Проверка кошелька... - - - Wallet %s resides outside data directory %s - Кошелёк %s располагается вне каталога данных %s - - - Wallet is locked. - Кошелёк заблокирован. - - - Wallet options: - Параметры кошелька: - - - Wallet window title - Заголовок окна кошелька - - - Warning - Внимание - - - Warning: This version is obsolete, upgrade required! - Внимание: эта версия устарела, требуется обновление! - - - You need to rebuild the database using -reindex to change -txindex - Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -txindex - - - Your entries added successfully. - Ваши записи успешно добавлены. - - - Your transaction was accepted into the pool! - Ваша транзакция принята в пул! - - - Zapping all transactions from wallet... - Удаление всех транзакций из кошелька... - - - on startup - при запуске - - - wallet.dat corrupt, salvage failed - wallet.dat повреждён, спасение данных не удалось - - - \ No newline at end of file diff --git a/src/qt/locale/dash_sk.ts b/src/qt/locale/dash_sk.ts deleted file mode 100644 index f2ed1e64d6c1..000000000000 --- a/src/qt/locale/dash_sk.ts +++ /dev/null @@ -1,3558 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Pre úpravu adresy alebo popisu kliknite pravým tlačidlom myši - - - Create a new address - Vytvoriť novú adresu - - - &New - &Nové - - - Copy the currently selected address to the system clipboard - Kopírovať práve zvolenú adresu do systémového klipbordu - - - &Copy - &Kopírovať - - - Delete the currently selected address from the list - Odstrániť vybranú adresu zo zoznamu - - - &Delete - &Odstániť - - - Export the data in the current tab to a file - Exportovať tento náhľad do súboru - - - &Export - &Exportovať... - - - C&lose - Zatvoriť - - - Choose the address to send coins to - Zvoľte adresu kam poslať coins - - - Choose the address to receive coins with - Zvoľte adresu na ktorú prijať coins - - - C&hoose - Vybrať - - - Sending addresses - Adresa odoslania - - - Receiving addresses - Adresa prijatia - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Toto sú Vaše Dash adresy pre posielanie platieb. Pred poslaním mincí vždy overte sumu a doručovaciu adresu. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Toto sú Vaše Dash adresy pre posielanie platieb. Pre každú transakciu sa doporučuje použiť novú doručovaciu adresu. - - - &Copy Address - &Kopírovať adresu - - - Copy &Label - Kopírovať &popis - - - &Edit - &Upraviť - - - Export Address List - Exportovať zoznam adries - - - Comma separated file (*.csv) - Čiarkou oddelený súbor (*.csv) - - - Exporting Failed - Export zlyhal - - - There was an error trying to save the address list to %1. Please try again. - Nastala chyba pri pokuse uložiť zoznam adries do %1. Prosím skúste znovu. - - - - AddressTableModel - - Label - Popis - - - Address - Adresa - - - (no label) - (bez popisu) - - - - AskPassphraseDialog - - Passphrase Dialog - Dialóg hesla - - - Enter passphrase - Zadajte heslo - - - New passphrase - Nové heslo - - - Repeat new passphrase - Zopakujte nové heslo - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Slúži na vypnutie triviálneho posielania peňazí v prípade napadnutého účtu operačného systému. Neposkytuje skutočnú bezpečnosť. - - - For anonymization only - Iba pre anonimizáciu - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Zadajte nové heslo k peňaženke.<br/>Prosím použite heslo s dĺžkou aspon <b>10 alebo viac náhodných znakov</b>, alebo <b>8 alebo viac slov</b>. - - - Encrypt wallet - Zašifrovať peňaženku - - - This operation needs your wallet passphrase to unlock the wallet. - Táto operácia potrebuje heslo k vašej peňaženke aby ju mohla dešifrovať. - - - Unlock wallet - Odomknúť peňaženku - - - This operation needs your wallet passphrase to decrypt the wallet. - Táto operácia potrebuje heslo k vašej peňaženke na dešifrovanie peňaženky. - - - Decrypt wallet - Dešifrovať peňaženku - - - Change passphrase - Zmena hesla - - - Enter the old and new passphrase to the wallet. - Zadajte staré a nové heslo k peňaženke. - - - Confirm wallet encryption - Potvrďte šifrovanie peňaženky - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Upozornenie: Ak zašifrujete vašu peňaženku a stratíte prístupové heslo, potom <b>prídete o všetky svoje DASH-y</b>! - - - Are you sure you wish to encrypt your wallet? - Ste si istí, že si želáte zašifrovať peňaženku? - - - Wallet encrypted - Peňaženka zašifrovaná - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - DashCoin sa teraz ukončí, aby dokončil proces šifrovania. Nezabudnite, že zašifrovanie vašej peňaženky nemôže plne chrániť Vaše mince pred krádežou škodlivým softvérom, ktorý napadol váš počítač. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - DÔLEŽITÉ: Všetky doterajšie záložné kópie peňaženky ktoré ste zhotovili by mali byť nahradené novým zašifrovaným súborom s peňaženkou. Z bezpečnostných dôvodov sa predchádzajúce kópie nezašifrovanej peňaženky stanú neužitočné keď začnete používať novú zašifrovanú peňaženku. - - - Wallet encryption failed - Šifrovanie peňaženky zlyhalo - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Šifrovanie peňaženky zlyhalo kôli internej chybe. Vaša peňaženka nebola zašifrovaná. - - - The supplied passphrases do not match. - Zadané heslá nesúhlasia. - - - Wallet unlock failed - Odomykanie peňaženky zlyhalo - - - The passphrase entered for the wallet decryption was incorrect. - Zadané heslo pre dešifrovanie peňaženky bolo nesprávne. - - - Wallet decryption failed - Zlyhalo šifrovanie peňaženky. - - - Wallet passphrase was successfully changed. - Heslo k peňaženke bolo úspešne zmenené. - - - Warning: The Caps Lock key is on! - Varovanie: Caps Lock je zapnutý - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - Peňaženka - - - Node - Uzol - - - &Overview - &Prehľad - - - Show general overview of wallet - Zobraziť celkový prehľad o peňaženke - - - &Send - &Odoslať - - - Send coins to a Dash address - Poslať mince na Dash adresu - - - &Receive - &Prijať - - - Request payments (generates QR codes and dash: URIs) - Vyžiadať platby (vygeneruje QR kódy a Dash: URI) - - - &Transactions - &Transakcie - - - Browse transaction history - Prechádzať históriu transakcií - - - E&xit - U&končiť - - - Quit application - Ukončiť program - - - &About Dash Core - &O Dash Core - - - Show information about Dash Core - Zobraziť informácie o Dash Core - - - About &Qt - O &Qt - - - Show information about Qt - Zobrazit informácie o Qt - - - &Options... - &Možnosti... - - - Modify configuration options for Dash - Upraviť možnosti konfigurácie pre Dash - - - &Show / Hide - Zobraziť / skryť - - - Show or hide the main Window - Zobraziť alebo skryť hlavné okno - - - &Encrypt Wallet... - &Zašifrovať Peňaženku... - - - Encrypt the private keys that belong to your wallet - Zašifruj súkromné kľúče ktoré patria do vašej peňaženky - - - &Backup Wallet... - &Backup peňaženku... - - - Backup wallet to another location - Zálohovať peňaženku na iné miesto - - - &Change Passphrase... - &Zmena Hesla... - - - Change the passphrase used for wallet encryption - Zmeniť heslo použité na šifrovanie peňaženky - - - &Unlock Wallet... - &Odomknúť peňaženku - - - Unlock wallet - Odomknúť peňaženku - - - &Lock Wallet - &Zamknúť peňaženku - - - Sign &message... - Podpísať &správu... - - - Sign messages with your Dash addresses to prove you own them - Podpísať správy s Vašimi Dash adresami ako dôkaz že ich vlastníte - - - &Verify message... - Overiť správu - - - Verify messages to ensure they were signed with specified Dash addresses - Overiť spravy pre uistenie, že boli podpísané špecifickými Dash adresami - - - &Information - &Informácia - - - Show diagnostic information - Zobraziť diagnostické informácie - - - &Debug console - &Konzola pre ladenie - - - Open debugging console - Otvor konzolu pre ladenie - - - &Network Monitor - &Kontrola siete - - - Show network monitor - Zobraziť kontrolu siete - - - &Peers list - &Zoznam partnerských uzlov - - - Show peers info - Zobraziť informácie o partnerských uzloch - - - Wallet &Repair - Oprava peňaženky - - - Show wallet repair options - Zobraziť možnosti opravy peňaženky - - - Open &Configuration File - Otvoriť &konfiguračný súbor - - - Open configuration file - Otvoriť konfiguračný súbor - - - Show Automatic &Backups - Zobraziť automatické &zálohy - - - Show automatically created wallet backups - Zobraziť automaticky vytvorené zálohy peňaženky - - - &Sending addresses... - Posielajúca adresa ... - - - Show the list of used sending addresses and labels - Zobraziť zoznam použitých adries odosielateľa a ich popisy - - - &Receiving addresses... - Prijímajúca adresa... - - - Show the list of used receiving addresses and labels - Zobraziť zoznam použitých prijímacích adries a ich popisov - - - Open &URI... - Otvoriť &URI... - - - Open a dash: URI or payment request - Otvoriť dash: URI alebo žiadosť o platbu - - - &Command-line options - Možnosti príkazového riadku - - - Dash Core client - Dash Core klient - - - Processed %n blocks of transaction history. - Spracovaný %n blok transakčnej histórie.Spracované %n bloky transakčnej histórie.Spracovaných %n blokov transakčnej histórie. - - - Synchronizing additional data: %p% - Synchronizujú sa ďalšie dáta: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Zobraziť Dash Core nápovedu k získaniu zoznamu možností príkazového riadku Dash. - - - &File - &Súbor - - - &Settings - &Nastavenia - - - &Tools - &Nástroje - - - &Help - &Pomoc - - - Tabs toolbar - Lišta záložiek - - - %n active connection(s) to Dash network - %n aktívne spojenie so sieťou Dash%n aktívne spojenia so sieťou Dash%n aktívnych spojení so sieťou Dash - - - Synchronizing with network... - Synchronizácia so sieťou... - - - Importing blocks from disk... - Importujem bloky z disku... - - - Reindexing blocks on disk... - Preindexúvam bloky na disku... - - - No block source available... - Nedostupný zdroj blokov... - - - Up to date - Aktualizovaný - - - %n hour(s) - %n hodina%n hodiny%n hodín - - - %n day(s) - %n deň%n dni%n dní - - - %n week(s) - %n týždeň%n týždne%n týždňov - - - %1 and %2 - %1 a %2 - - - %n year(s) - %n rok%n roky%n rokov - - - %1 behind - %1 pozadu - - - Catching up... - Sťahujem... - - - Last received block was generated %1 ago. - Posledný prijatý blok bol vygenerovaný pred %1. - - - Transactions after this will not yet be visible. - Transakcie potom nebudú ešte viditeľné. - - - Error - Chyba - - - Warning - Upozornenie - - - Information - Informácia - - - Sent transaction - Odoslané transakcie - - - Incoming transaction - Prijaté transakcie - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Dátum: %1 -Suma: %2 -Typ: %3 -Adresa: %4 - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Peňaženka je <b>zašifrovaná</b> a momentálne <b>odomknutá</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Peňaženka je <b>zašifrovaná</b> a momentálne <b>odomknutá</b> iba pre anonimizáciu - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Peňaženka je <b>zašifrovaná</b> a momentálne <b>zamknutá</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Celkovo: %1 (Kompatibilné z DS: %2 / Zapnuté: %3) - - - Network Alert - Výstraha siete - - - - CoinControlDialog - - Quantity: - Množstvo: - - - Bytes: - Bajtov: - - - Amount: - Suma: - - - Priority: - Priorita: - - - Fee: - Poplatok: - - - Coin Selection - Výber mince - - - Dust: - Prach: - - - After Fee: - Po poplatku: - - - Change: - Zmena: - - - (un)select all - (ne)vybrať všetko - - - Tree mode - Stromový režim - - - List mode - Zoznamový režim - - - (1 locked) - (1 zamknutý) - - - Amount - Suma - - - Received with label - Prijaté s označením - - - Received with address - Prijaté s adresou - - - DS Rounds - Kôl DS - - - Date - Dátum - - - Confirmations - Potvrdenia - - - Confirmed - Potvrdené - - - Priority - Priorita - - - Copy address - Kopírovať adresu - - - Copy label - Kopírovať popis - - - Copy amount - Kopírovať sumu - - - Copy transaction ID - Kopírovať ID transakcie - - - Lock unspent - Uzamknúť neminuté - - - Unlock unspent - Odomknúť neminuté - - - Copy quantity - Kopírovať množstvo - - - Copy fee - Kopírovať poplatok - - - Copy after fee - Kopírovať za poplatok - - - Copy bytes - Kopírovať bajty - - - Copy priority - Kopírovať prioritu - - - Copy dust - Kopírovať prach - - - Copy change - Kopírovať zmenu - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - Vybratý ne-anonymizovaný vstup. <b>Darksend bude vypnutý.</b><br><br>Ak si stále želáte použiť Darksend, najskôr odznačte všetky e-anonymizované vstup a potom znova zaškrtnite Darksend začiarkavacie políčko. - - - highest - najvyššie - - - higher - vyššie - - - high - vysoké - - - medium-high - stredne vysoké - - - Can vary +/- %1 duff(s) per input. - Môže sa pohybovať +/- %1 duff(y) pre vstup. - - - n/a - nie je k dispozícii - - - medium - stredné - - - low-medium - stredne nízke - - - low - nízke - - - lower - nižšie - - - lowest - najnižšie - - - (%1 locked) - (%1 zamknutých) - - - none - žiadne - - - yes - áno - - - no - nie - - - This label turns red, if the transaction size is greater than 1000 bytes. - Tento popis zčervená ak veľkosť transakcie presiahne 1000 bytov. - - - This means a fee of at least %1 per kB is required. - To znamená že požadovaný poplatok je aspoň %1 za kB. - - - Can vary +/- 1 byte per input. - Môže sa pohybovať +/- 1 bajt pre vstup. - - - Transactions with higher priority are more likely to get included into a block. - Transakcie s vysokou prioritou sa pravdepodobnejsie dostanú do bloku. - - - This label turns red, if the priority is smaller than "medium". - Tento popis zčervenie ak je priorita nižčia ako "medium". - - - This label turns red, if any recipient receives an amount smaller than %1. - Tento popis zčervenie ak ktorýkoľvek príjemca dostane sumu menšiu ako %1. - - - (no label) - (bez popisu) - - - change from %1 (%2) - zmena od %1 (%2) - - - (change) - (zmena) - - - - DarksendConfig - - Configure Darksend - Konfigurovať Darksend - - - Basic Privacy - Základné súkromie - - - High Privacy - Vysoké súkromie - - - Maximum Privacy - Maximálne súkromie - - - Please select a privacy level. - Prosím vyberte úroveň súkromia. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Použiť 2 rozdielne masternode pre fixovanie prostriedkov až do 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Použiť 8 rozdielnych masternode pre fixovanie prostriedkov až do 1000 DASH - - - Use 16 separate masternodes - Použiť 16 rozdielnych masternode - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Táto možnosť je najrýchlejšia a bude stáť približne 0.025 DASH pre anonimizáciu 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Táto možnosť je stredne rýchla bude stáť približne 0.05 DASH pre anonimizáciu 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH za 1000 DASH ktoré spravíte anonymnými. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Toto je najpomalšia a najviac bezpečná možnosť. Použitie maximálnej anonymity bude stáť - - - Darksend Configuration - Konfigurácia Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend bol úspešne nastavený na základnú hodnotu (%1 a 2 kolá). Toto nastavenie môžete kedykoľvek zmeniť otvorením konfiguračnej obrazovky Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend bol úspešne nastavený na vysokú hodnotu (%1 a 8 kôl). Toto nastavenie môžete kedykoľvek zmeniť otvorením konfiguračnej obrazovky Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend bol úspešne nastavený na maximálnu hodnotu (%1 a 16 kôl). Toto nastavenie môžete kedykoľvek zmeniť otvorením konfiguračnej obrazovky Dash. - - - - EditAddressDialog - - Edit Address - Upraviť adresu - - - &Label - &Popis - - - The label associated with this address list entry - Popis tejto položký v zozname adries je prázdny - - - &Address - &Adresa - - - The address associated with this address list entry. This can only be modified for sending addresses. - Adresa spojená s týmto záznamom v adresári. Možno upravovať len pre odosielajúce adresy. - - - New receiving address - Nová adresa pre prijímanie - - - New sending address - Nová adresa pre odoslanie - - - Edit receiving address - Upraviť prijímacie adresy - - - Edit sending address - Upraviť odosielaciu adresu - - - The entered address "%1" is not a valid Dash address. - Zadaná adresa "%1" nie je platná Dash adresa. - - - The entered address "%1" is already in the address book. - Vložená adresa "%1" sa už nachádza v adresári. - - - Could not unlock wallet. - Nepodarilo sa odomknúť peňaženku. - - - New key generation failed. - Generovanie nového kľúča zlyhalo. - - - - FreespaceChecker - - A new data directory will be created. - Bude vytvorený nový dátový adresár. - - - name - názov - - - Directory already exists. Add %1 if you intend to create a new directory here. - Priečinok už existuje. Pridajte "%1" ak chcete vytvoriť nový priečinok tu. - - - Path already exists, and is not a directory. - Cesta už existuje a nie je to adresár. - - - Cannot create data directory here. - Tu nemôžem vytvoriť dátový adresár. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - verzia - - - (%1-bit) - (%1-bit) - - - About Dash Core - O Dash Core - - - Command-line options - Možnosti príkazového riadku - - - Usage: - Použitie: - - - command-line options - voľby príkazového riadku - - - UI options - UI možnosti - - - Choose data directory on startup (default: 0) - Zvoľte dátový priečinok pri štarte (prednastavené: 0) - - - Set language, for example "de_DE" (default: system locale) - Nastaviť jazyk, napríklad "sk_SK" (predvolené: systémový) - - - Start minimized - Spustiť minimalizované - - - Set SSL root certificates for payment request (default: -system-) - Nastaviť koreňový certifikát pre výzvy na platbu (prednastavené: -system-) - - - Show splash screen on startup (default: 1) - Zobraziť splash screen pri spustení (predvolené: 1) - - - - Intro - - Welcome - Vitajte - - - Welcome to Dash Core. - Vitajte v Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Keďže toto je prvý krát čo spúšťate tento program, môžete vybrať kam bude Dash Core ukladať svoje dáta. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core stiahne a uloží kópiu reťazca blokov Dash. Pri najmenej %1GB dát bude uložených v tejto zložke and bude ďalej rásť. Peňaženka bude tiež uložená v tejto zložke. - - - Use the default data directory - Použiť predvolený dátový adresár - - - Use a custom data directory: - Použiť vlastný dátový adresár: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Chyba: Zadaný priečinok pre dáta "%1" nemôže byt vytvorený. - - - Error - Chyba - - - %1 GB of free space available - %1 GB dostupného voľného miesta - - - (of %1 GB needed) - (z potrebných %1GB) - - - - OpenURIDialog - - Open URI - Otvoriť URI - - - Open payment request from URI or file - Otvoriť požiadavku na zaplatenie z URI alebo súboru - - - URI: - URI: - - - Select payment request file - Vyberte súbor s výzvou k platbe - - - Select payment request file to open - Vyberte ktorý súbor s výzvou k platbe otvoriť - - - - OptionsDialog - - Options - Možnosti - - - &Main - &Hlavné - - - Automatically start Dash after logging in to the system. - Automaticky spustiť Dash po prihlásení do systému. - - - &Start Dash on system login - &Spusť Dash po prihlásení do systému - - - Size of &database cache - Veľkosť vyrovnávacej pamäti databázy - - - MB - MB - - - Number of script &verification threads - Počet skript overujucich vlákien - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = nechať toľko jadier voľných) - - - Darksend rounds to use - Použiť kôl Darksend - - - This amount acts as a threshold to turn off Darksend once it's reached. - Táto suma slúži ako hranica pre vypnutie Darksend akonáhle je dosiahnutá - - - Amount of Dash to keep anonymized - Suma Dash ktorú držať anonymne - - - W&allet - Peňaženka - - - Accept connections from outside - Akceptovať pripojenie z vonku - - - Allow incoming connections - Povoliť prichádzajúce spojenia - - - Connect to the Dash network through a SOCKS5 proxy. - Pripojiť sa do siete Dash cez proxy SOCKS5. - - - &Connect through SOCKS5 proxy (default proxy): - &Pripojiť sa cez SOCKS5 proxy (predvolené proxy): - - - Expert - Expert - - - Whether to show coin control features or not. - Či zobrazovať možnosti "Coin control" alebo nie. - - - Enable coin &control features - Povoliť možnosti coin control - - - &Spend unconfirmed change - Minúť nepotvrdený výdavok - - - &Network - Sieť - - - Map port using &UPnP - Mapovať port pomocou &UPnP - - - Proxy &IP: - Proxy &IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - IP adresy proxy (napr. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Port proxy (napr. 9050) - - - &Window - Okno - - - Show only a tray icon after minimizing the window. - Zobraziť len ikonu na lište po minimalizovaní okna. - - - &Minimize to the tray instead of the taskbar - Zobraziť len ikonu na lište po minimalizovaní okna. - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimalizovat namiesto ukončenia aplikácie keď sa okno zavrie. Keď je zvolená táto možnosť, aplikácia sa zavrie len po zvolení Ukončiť v menu. - - - M&inimize on close - M&inimalizovať pri zavretí - - - &Display - &Displej - - - User Interface &language: - Jazyk užívateľského rozhrania: - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Chýbajúci alebo nekompletný preklad? Pomôžte nám tu: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Motív užívateľského rozhrania: - - - &Unit to show amounts in: - &Zobrazovať hodnoty v jednotkách: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Zvoľte ako deliť bitcoin pri zobrazovaní pri platbách a užívateľskom rozhraní. - - - Decimal digits - Decimálne čísla - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - URL tretích strán (napr. prehliadač blockchain) ktoré sa zobrazujú v záložke transakcií ako položky kontextového menu. %s v URL je nahradené hash-om transakcie. Viaceré URL sú oddelené zvislou čiarou |. - - - Third party transaction URLs - URL transakcií s tretími stranami - - - Active command-line options that override above options: - Aktévne možnosti príkazového riadku ktoré prepíšu možnosti vyššie: - - - Reset all client options to default. - Vynulovať všetky voľby klienta na predvolené. - - - &Reset Options - Vynulovať voľby - - - &OK - &OK - - - &Cancel - Zrušiť - - - default - predvolené - - - none - žiadne - - - Confirm options reset - Potvrdiť obnovenie možností - - - Client restart required to activate changes. - Reštart klienta potrebný pre aktivovanie zmien. - - - Client will be shutdown, do you want to proceed? - Klient bude vypnutý, chcete pokračovať? - - - This change would require a client restart. - Táto zmena by vyžadovala reštart klienta. - - - The supplied proxy address is invalid. - Zadaná proxy adresa je neplatná. - - - - OverviewPage - - Form - Forma - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Zobrazené informácie môžu byť zastaralé. Vaša peňaženka sa automaticky zosynchronizuje so sieťou Dash akonáhle nadviaže spojenie, avšak tento proces ešte nebol dokončený. - - - Available: - Disponibilné: - - - Your current spendable balance - Váš aktuálny disponibilný zostatok - - - Pending: - Čakajúce potvrdenie - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Suma transakcií ktoré ešte neboli potvrdené a ešte sa nepočítajú do disponibilného zostatku - - - Immature: - Nezrelé: - - - Mined balance that has not yet matured - Vytvorený zostatok ktorý ešte nedosiahol zrelosť - - - Balances - Zostatky - - - Unconfirmed transactions to watch-only addresses - Nepotvrdené transakcie pre adresy ktoré sa iba sledujú - - - Mined balance in watch-only addresses that has not yet matured - Vyťažená suma pre adresy ktoré sa iba sledujú ale ešte nie je dozretá - - - Total: - Celkovo: - - - Your current total balance - Váš súčasný celkový zostatok - - - Current total balance in watch-only addresses - Aktuálny celkový zostatok pre adries ktoré sa iba sledujú - - - Watch-only: - Iba sledované: - - - Your current balance in watch-only addresses - Váš celkový zostatok pre adresy ktoré sa iba sledujú - - - Spendable: - Použiteľné: - - - Status: - Stav: - - - Enabled/Disabled - Zapnuté/Vypnuté - - - Completion: - Dokončenie: - - - Darksend Balance: - Bilancia Darksend: - - - Amount and Rounds: - Čiastka a kolá: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Kôl - - - n/a - nie je k dispozícii - - - Darksend - Darksend - - - Recent transactions - Nedávne transakcie - - - Start/Stop Mixing - Začať/Zastaviť miešanie - - - (Last Message) - (Posledná správa) - - - Try to manually submit a Darksend request. - Skúsiť manuálne odoslať Darksend požiadavku. - - - Try Mix - Výskúšať mix - - - Reset - Resetovať - - - out of sync - nesynchronizované - - - Disabled - Vypnuté - - - Start Darksend Mixing - Začať Dasksend miešanie - - - Stop Darksend Mixing - Zastaviť Dasksend miešanie - - - No inputs detected - Žiadne detekované vstupy - - - %n Rounds - %n kolo%n kolá%n kôl - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - Nedostatok kompatibilných vstupov na anonymizáciu <span style='color:red;'>%1</span>,<br>bude anonymizovaných <span style='color:red;'>%2</span> - - - Overall progress - Celkový progres - - - Anonymized - Anonymizované - - - Found enough compatible inputs to anonymize %1 - Nájdený dostatok kompatibilných vstupov na anonymizáciu %1 - - - Mixed - Zmiešané - - - Enabled - Povolené - - - Last Darksend message: - - Posledná Darksend správa: - - - - N/A - nie je k dispozícii - - - Darksend was successfully reset. - Darksend bol úspešne obnovený - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Ak nechcete vidieť interné Darksend poplatky/transakcie, vyberte "Najčastejšie" ako typ na záložke "Transakcie". - - - Darksend requires at least %1 to use. - Pre použitie vyžaduje Darksend aspoň %1. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Peňaženka je zamknutá a používateľ ju odmietol odomknúť. Vypínam Darksend. - - - - PaymentServer - - Payment request error - Chyba pri vyžiadaní platby - - - Cannot start dash: click-to-pay handler - Dash sa nedá spustiť: click-to-pay handler - - - URI handling - Spracovanie URI - - - Payment request fetch URL is invalid: %1 - URL pre stiahnutie výzvy na zaplatenie je neplatné: %1 - - - Payment request file handling - Obsluha súboru s požiadavkou na platbu - - - Invalid payment address %1 - Neplatná adresa platby %1 - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Súbor s požiadavkou na platbu sa nedá prečítať! Môže to byť spôsobené neplatným súborom s požiadavkou. - - - Payment request rejected - Požiadavka na platbu zamietnutá - - - Payment request network doesn't match client network. - Sieť požiadavky na platbu sa nezhoduje s klientovou sieťou - - - Payment request has expired. - Požiadavka na platbu vypršala. - - - Payment request is not initialized. - Požiadavka na platbu nie je inicializovaná. - - - Unverified payment requests to custom payment scripts are unsupported. - Program nepodporuje neoverené platobné výzvy na vlastná skripty. - - - Requested payment amount of %1 is too small (considered dust). - Požadovaná platba sumy %1 je príliš malá (považovaná za prach). - - - Refund from %1 - Vrátenie z %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Požiadavka na platbu %1 je príliš veľká (%2 bytov, dovolených %3 bytov). - - - Payment request DoS protection - DoS ochrana požiadavky na platbu - - - Error communicating with %1: %2 - Chyba komunikácie s %1: %2 - - - Payment request cannot be parsed! - Požiadavka na platbu sa nedá analyzovať! - - - Bad response from server %1 - Zlá odpoveď zo servera %1 - - - Network request error - Chyba požiadavky siete - - - Payment acknowledged - Platba potvrdená - - - - PeerTableModel - - Address/Hostname - Adresa/Názov hostiteľa - - - User Agent - Agent používateľa - - - Ping Time - Doba odozvy - - - - QObject - - Amount - Suma - - - Enter a Dash address (e.g. %1) - Zadajte Dash adresu (e.g. %1) - - - %1 d - %1 d - - - %1 h - %1 h - - - %1 m - %1 m - - - %1 s - %1 s - - - NETWORK - SIEŤ - - - UNKNOWN - NEZNÁME - - - None - Žiadne - - - N/A - Nie je k dispozícii - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - Uložiť obrázok... - - - &Copy Image - Kopírovať obrázok - - - Save QR Code - Ukladanie QR kódu - - - PNG Image (*.png) - PNG obrázok (*.png) - - - - RPCConsole - - Tools window - Okno nástrojov - - - &Information - &Informácia - - - General - Všeobecné - - - Name - Názov - - - Client name - Meno klienta - - - N/A - nie je k dispozícii - - - Number of connections - Počet pripojení - - - &Open - &Otvoriť - - - Startup time - Čas spustenia - - - Network - Sieť - - - Last block time - Čas posledného bloku - - - Debug log file - Súbor záznamu ladenia - - - Using OpenSSL version - Používa OpenSSL verziu - - - Build date - Dátum zostavenia - - - Current number of blocks - Aktuálny počet blokov - - - Client version - Verzia klienta - - - Using BerkeleyDB version - Používa BerkeleyDB verziu - - - Block chain - Reťazec blokov - - - Number of Masternodes - Počet Mastenode - - - &Console - &Konzola - - - Clear console - Vymazať konzolu - - - &Network Traffic - Sieťová prevádzka - - - &Clear - &Vyčistiť - - - Totals - Celkovo - - - Received - Prijaté - - - Sent - Odoslané - - - &Peers - &Partnerské uzly - - - Direction - Smer - - - Version - Verzia - - - User Agent - Agent používateľa - - - Services - Služby - - - Ban Score - Skóre zákazu - - - Connection Time - Čas pripojenia - - - Last Send - Posledné poslané - - - Last Receive - Posledné prijaté - - - Bytes Sent - Odoslaných bajtov - - - Bytes Received - Prijatých bajtov - - - Ping Time - Doba odozvy - - - &Wallet Repair - &Oprava peňaženky - - - Salvage wallet - Záchranná peňaženka - - - Rescan blockchain files - Znova prehľadať reťazec blokov - - - Recover transactions 1 - Znova prehľadať transakcie 1 - - - Recover transactions 2 - Znova prehľadať transakcie 2 - - - Upgrade wallet format - Inovovať formát peňaženky - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Pokus obnoviť súkromné kľúče z poškodeného wallet.dat. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Znova prehľadať reťazec blokov pre nájdenie chýbajúcich transakcií peňaženky. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Obnoviť transakcie z reťazca blokov (zachovať metaúdaje, napr. vlastníka účtu). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Obnoviť transakcie z reťazca blokov (zahodiť metaúdaje). - - - Wallet repair options. - Možnosti opravy peňaženky. - - - In: - Dnu: - - - Out: - Von: - - - Welcome to the Dash RPC console. - Vitajte v konzole Dash RPC - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Použi šipky hore a dolu pre navigáciu históriou a <b>Ctrl-L</b> pre vyčistenie obrazovky. - - - Type <b>help</b> for an overview of available commands. - Napíš <b>help</b> pre prehľad dostupných príkazov. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - cez %1 - - - never - nikdy - - - Inbound - Vstupné - - - Outbound - Výstupné - - - Unknown - Neznáme - - - - ReceiveCoinsDialog - - R&euse an existing receiving address (not recommended) - Znovu použiť jestvujúcu prijímaciu adresu (neodporúča sa) - - - &Message: - &Správa: - - - An optional label to associate with the new receiving address. - Voliteľný popis ktorý sa pridá k tejto novej prijímajúcej adrese. - - - Use this form to request payments. All fields are <b>optional</b>. - Použite tento formulár pre vyžiadanie platby. Všetky polia sú <b>voliteľné</b>. - - - &Label: - &Popis: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Voliteľná požadovaná suma. Nechajte prázdne alebo nulu ak nepožadujete určitú sumu. - - - &Amount: - &Suma: - - - &Request payment - Vyžiadať platbu - - - Clear all fields of the form. - Vyčistiť všetky polia formulára. - - - Clear - Vyčistiť - - - Requested payments history - História vyžiadaných platieb - - - Show the selected request (does the same as double clicking an entry) - Zobraz zvolenú požiadavku (urobí to isté ako dvoj-klik na záznam) - - - Show - Zobraziť - - - Remove the selected entries from the list - Odstrániť zvolené záznamy zo zoznamu - - - Remove - Odstrániť - - - Copy label - Kopírovať popis - - - Copy message - Kopírovať správu - - - Copy amount - Kopírovať sumu - - - - ReceiveRequestDialog - - QR Code - QR kód - - - Copy &URI - Kopírovať &URI - - - Copy &Address - Kopírovať adresu - - - &Save Image... - Uložiť obrázok... - - - Request payment to %1 - Vyžiadať platbu pre %1 - - - Payment information - Informácia o platbe - - - URI - URI - - - Address - Adresa - - - Amount - Suma - - - Label - Popis - - - Message - Správa - - - Resulting URI too long, try to reduce the text for label / message. - Výsledné URI príliš dlhé, skráť text pre názov / správu. - - - Error encoding URI into QR Code. - Chyba v zakódovaní URI do QR kódu - - - - RecentRequestsTableModel - - Date - Dátum - - - Label - Popis - - - Message - Správa - - - Amount - Suma - - - (no label) - (bez popisu) - - - (no message) - (žiadna správa) - - - (no amount) - (žiadna suma) - - - - SendCoinsDialog - - Send Coins - Poslať Bitcoins - - - Coin Control Features - Možnosti "Coin Control" - - - Inputs... - Vstupy... - - - automatically selected - automaticky vybrané - - - Insufficient funds! - Nedostatok prostriedkov! - - - Quantity: - Množstvo: - - - Bytes: - Bajtov: - - - Amount: - Suma: - - - Priority: - Priorita: - - - medium - stredné - - - Fee: - Poplatok: - - - Dust: - Prach: - - - no - nie - - - After Fee: - Po poplatku: - - - Change: - Zmena: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Ak aktivované ale adresa pre výdavok je prázdna alebo neplatná, výdavok bude poslaný na novovytvorenú adresu. - - - Custom change address - Vlastná adresa zmeny - - - Transaction Fee: - Transakčný poplatok - - - Choose... - Vybrať... - - - collapse fee-settings - skryť nastavenia poplatkov - - - Minimize - Minimalizovať - - - per kilobyte - za kilo-byte - - - total at least - celkovo z prinajmenej - - - (read the tooltip) - (čítať popis) - - - Recommended: - Doporučené: - - - Custom: - Vlastné: - - - Confirmation time: - Čas potvrdenia: - - - normal - normálna - - - fast - rýchla - - - (confirmation may take longer) - (potvrdenie môže trvať dlhšie) - - - Confirm the send action - Potvrďte odoslanie - - - S&end - &Odoslať - - - Clear all fields of the form. - Vyčistiť všetky polia formulára. - - - Clear &All - Zmazať &všetko - - - Send to multiple recipients at once - Poslať viacerým príjemcom naraz - - - Add &Recipient - &Pridať príjemcu - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Zostatok: - - - Copy quantity - Kopírovať množstvo - - - Copy amount - Kopírovať sumu - - - Copy fee - Kopírovať poplatok - - - Copy after fee - Kopírovať za poplatok - - - Copy bytes - Kopírovať bajty - - - Copy priority - Kopírovať prioritu - - - Copy dust - Kopírovať prach - - - Copy change - Kopírovať zmenu - - - using - používa - - - anonymous funds - anonymne zdroje - - - and InstantX - a InstantX - - - %1 to %2 - %1 do %2 - - - Are you sure you want to send? - Určite to chcete odoslať? - - - are added as transaction fee - pridané ako transakčný poplatok - - - Total Amount = <b>%1</b><br />= %2 - Celková suma = <b>%1</b><br />= %2 - - - Confirm send coins - Potvrdiť odoslanie bitcoins - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Poplatok je %1 krát vyšší ako %2 za kB je považovaný za nenormálne vysoký poplatok. - - - The recipient address is not valid, please recheck. - Adresa príjemcu je neplatná, prosím, overte ju. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 z %2 zobrazených položiek)</b> - - - The amount to pay must be larger than 0. - Suma na úhradu musí byť väčšia ako 0. - - - The amount exceeds your balance. - Suma je vyššia ako Váš zostatok. - - - The total exceeds your balance when the %1 transaction fee is included. - Suma celkom prevyšuje Váš zostatok ak sú započítané %1 transakčné poplatky. - - - Duplicate address found, can only send to each address once per send operation. - Duplikát adresy objavený, je možné poslať na každú adresu len raz v jednej odchádzajúcej transakcii. - - - Transaction creation failed! - Vytvorenie transakcie zlyhalo! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Transakcia bola zamietnutá! Toto sa môže stať ak niektoré coins vo vašej peňaženke už boli minuté, ako keď použijete kópiu wallet.dat a coins boli minuté z kópie ale neoznačené ako minuté tu. - - - Error: The wallet was unlocked only to anonymize coins. - Chyba: Peňaženka bola odomknutá iba pre anonymizáciu mincí. - - - Pay only the minimum fee of %1 - Platiť iba minimálny poplatok %1 - - - Warning: Invalid Dash address - Upozornenie: Neplatná Dash adresa - - - Warning: Unknown change address - Varovanie: Neznáma adresa pre výdavok - - - (no label) - (bez popisu) - - - - SendCoinsEntry - - This is a normal payment. - Toto je normálna platba. - - - Pay &To: - Zapla&tiť: - - - The Dash address to send the payment to - Dash adresa pre poslanie platby - - - Choose previously used address - Vybrať predtým použitú adresu - - - Alt+A - Alt+A - - - Paste address from clipboard - Vložiť adresu z klipbordu - - - Alt+P - Alt+P - - - Remove this entry - Odstrániť túto položku - - - &Label: - &Popis: - - - Enter a label for this address to add it to the list of used addresses - Vložte popis pre túto adresu aby sa uložila do zoznamu použitých adries - - - A&mount: - Su&ma: - - - Message: - Správa: - - - This is an unverified payment request. - Toto je neoverená výzva k platbe. - - - Pay To: - Platba pre: - - - Memo: - Poznámka: - - - This is a verified payment request. - Toto je overená výzva k platbe. - - - Enter a label for this address to add it to your address book - Vložte popis pre túto adresu aby sa pridala do adresára - - - - ShutdownWindow - - Dash Core is shutting down... - Dash core sa vypína... - - - Do not shut down the computer until this window disappears. - Nevypínajte počítač kým toto okno nezmizne. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Podpisy - Podpísať / Overiť správu - - - &Sign Message - &Podpísať Správu - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Môžete podpísať správy svojou adresou a dokázať, že ju vlastníte. Buďte opatrní a podpíšte len prehlásenia s ktorými plne súhlasíte, nakoľko útoky typu "phishing" Vás môžu lákať k ich podpísaniu. - - - The Dash address to sign the message with - Dash adresa na podpísanie správy - - - Choose previously used address - Vybrať predtým použitú adresu - - - Alt+A - Alt+A - - - Paste address from clipboard - Vložte adresu z klipbordu - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Sem vložte správu ktorú chcete podpísať - - - Signature - Podpis - - - Copy the current signature to the system clipboard - Kopírovať práve zvolenú adresu do systémového klipbordu - - - Sign &Message - Podpísať &správu - - - Reset all sign message fields - Vynulovať všetky polia podpisu správy - - - Clear &All - Zmazať &všetko - - - &Verify Message - Overiť správu... - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Vložte podpisovaciu adresu, správu (uistite sa, že kopírujete ukončenia riadkov, medzery, odrážky, atď. presne) a podpis pod to na overenie adresy. Buďte opatrní a nečítajte ako podpísané viac než je v samotnej podpísanej správe a môžete sa tak vyhnúť podvodu mitm útokom. - - - The Dash address the message was signed with - Adresa Dash s ktorou bola podpísaná správa - - - Verify &Message - Overiť správu - - - Reset all verify message fields - Obnoviť všetky polia v overiť správu - - - Click "Sign Message" to generate signature - Kliknite "Podpísať Správu" na získanie podpisu - - - The entered address is invalid. - Zadaná adresa je neplatná. - - - Please check the address and try again. - Prosím skontrolujte adresu a skúste znova. - - - The entered address does not refer to a key. - Vložená adresa nezodpovedá žiadnemu kľúcu. - - - Wallet unlock was cancelled. - Odomknutie peňaženky bolo zrušené. - - - Private key for the entered address is not available. - Súkromný kľúč pre vložená adresu nieje k dispozícii. - - - Message signing failed. - Podpísanie správy zlyhalo. - - - Message signed. - Správa podpísaná. - - - The signature could not be decoded. - Podpis nie je možné dekódovať. - - - Please check the signature and try again. - Prosím skontrolujte podpis a skúste znova. - - - The signature did not match the message digest. - Podpis sa nezhoduje so zhrnutím správy - - - Message verification failed. - Overenie správy zlyhalo. - - - Message verified. - Správa overená. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Verzia %1 - - - The Bitcoin Core developers - Vývojári jadra Bitcoin - - - The Dash Core developers - Vývojári Dash Core - - - [testnet] - [testovacia sieť] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Otvoriť pre %n ďalší blokOtvoriť pre %n ďalšie blokyOtvoriť pre %n ďalších blokov - - - Open until %1 - Otvorené do %1 - - - conflicted - sporné - - - %1/offline (verified via instantx) - %1/offline (overené pomocou instantx) - - - %1/confirmed (verified via instantx) - %1/potvrdené (overené pomocou instantx) - - - %1 confirmations (verified via instantx) - %1 potvrdení (overené pomocou instantx) - - - %1/offline - %1/offline - - - %1/unconfirmed - %1/nepotvrdené - - - %1 confirmations - %1 potvrdení - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/offline (Prebieha overovanie InstantX - %2 z %3 podpisov) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/potvrdené (Prebieha overovanie InstantX - %2 z %3 podpisov) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 potvrdení (Prebieha overovanie InstantX - %2 z %3 podpisov) - - - %1/offline (InstantX verification failed) - %1/offline (Overovanie InstantX zlyhalo) - - - %1/confirmed (InstantX verification failed) - %1/potvrdené (Overovanie InstantX zlyhalo) - - - Status - Stav - - - , has not been successfully broadcast yet - , ešte nebola úspešne odoslaná - - - , broadcast through %n node(s) - , vysielaný cez %n uzol, vysielaný cez %n uzle, vysielaný cez %n uzlov - - - Date - Dátum - - - Source - Zdroj - - - Generated - Vygenerované - - - From - od - - - unknown - neznámy - - - To - Pre - - - own address - vlastná adresa - - - watch-only - iba sledovanie - - - label - popis - - - Credit - Kredit - - - not accepted - neprijaté - - - Debit - Debet - - - Total debit - Celkový debet - - - Total credit - Celkový kredit - - - Transaction fee - Transakčný poplatok - - - Net amount - Suma netto - - - Message - Správa - - - Comment - Komentár - - - Transaction ID - ID transakcie - - - Merchant - Kupec - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Vytvorené coins musia dospieť %1 blokov kým môžu byť minuté. Keď vytvoríte tento blok, bude rozoslaný do siete aby bol akceptovaný do reťaze blokov. Ak sa nedostane reťaze, jeho stav sa zmení na "zamietnutý" a nebude sa dať minúť. Toto sa môže občas stať ak iná nóda vytvorí blok približne v tom istom čase. - - - Debug information - Ladiace informácie - - - Transaction - Transakcie - - - Inputs - Vstupy - - - Amount - Suma - - - true - pravda - - - false - nepravda - - - - TransactionDescDialog - - Transaction details - Detaily transakcie - - - This pane shows a detailed description of the transaction - Táto časť obrazovky zobrazuje detailný popis transakcie - - - - TransactionTableModel - - Date - Dátum - - - Type - Typ - - - Address - Adresa - - - Open for %n more block(s) - Otvoriť pre %n ďalší blokOtvoriť pre %n ďalšie blokyOtvoriť pre %n ďalších blokov - - - Open until %1 - Otvorené do %1 - - - Offline - Offline - - - Unconfirmed - Nepotvrdené - - - Confirming (%1 of %2 recommended confirmations) - Potvrdzuje sa ( %1 z %2 odporúčaných potvrdení) - - - Confirmed (%1 confirmations) - Potvrdené (%1 potvrdení) - - - Conflicted - V rozpore - - - Immature (%1 confirmations, will be available after %2) - Nezrelé (%1 potvrdení, bude k dispozícii po %2) - - - This block was not received by any other nodes and will probably not be accepted! - Ten blok nebol prijatý žiadnou inou nódou a pravdepodobne nebude akceptovaný! - - - Generated but not accepted - Vypočítané ale neakceptované - - - Received with - Prijaté s - - - Received from - Prijaté od: - - - Received via Darksend - Prijaté cez Darksend - - - Sent to - Odoslané na - - - Payment to yourself - Platba sebe samému - - - Mined - Vyfárané - - - Darksend Denominate - Denominácia Darksend - - - Darksend Collateral Payment - Záručná Darksend platba - - - Darksent - Darksent - - - watch-only - iba sledovanie - - - (n/a) - (n/a) - - - Transaction status. Hover over this field to show number of confirmations. - Status transakcie. Pohybujte myšou nad týmto poľom a zjaví sa počet potvrdení. - - - Date and time that the transaction was received. - Dátum a čas prijatia transakcie. - - - Type of transaction. - Typ transakcie. - - - Destination address of transaction. - Cieľová adresa transakcie. - - - Amount removed from or added to balance. - Suma pridaná alebo odobraná k zostatku. - - - - TransactionView - - All - Všetko - - - Today - Dnes - - - This week - Tento týždeň - - - This month - Tento mesiac - - - Last month - Minulý mesiac - - - This year - Tento rok - - - Range... - Rozsah... - - - Most Common - Najčastejšie - - - Received with - Prijaté s - - - Sent to - Odoslané na - - - Darksent - Darksent - - - To yourself - Samému sebe - - - Mined - Vyfárané - - - Other - Iné - - - Enter address or label to search - Vložte adresu alebo popis pre vyhľadávanie - - - Min amount - Min množstvo - - - Copy address - Kopírovať adresu - - - Copy label - Kopírovať popis - - - Copy amount - Kopírovať sumu - - - Copy transaction ID - Kopírovať ID transakcie - - - Edit label - Editovať popis - - - Show transaction details - Zobraziť podrobnosti transakcie - - - Export Transaction History - Exportovať históriu transakcií - - - Comma separated file (*.csv) - Čiarkou oddelovaný súbor (*.csv) - - - Confirmed - Potvrdené - - - Watch-only - Iba sledovanie - - - Date - Dátum - - - Type - Typ - - - Label - Popis - - - Address - Adresa - - - ID - ID - - - Exporting Failed - Export zlyhal - - - There was an error trying to save the transaction history to %1. - Vyskytla sa chyba pri pokuse o uloženie histórie transakcií do %1. - - - Exporting Successful - Export úspešný - - - The transaction history was successfully saved to %1. - História transakciá bola úspešne uložená do %1. - - - Range: - Rozsah: - - - to - do - - - - UnitDisplayStatusBarControl - - - WalletFrame - - No wallet has been loaded. - Nie je načítaná peňaženka. - - - - WalletModel - - Send Coins - Poslať Bitcoins - - - - WalletView - - &Export - &Exportovať... - - - Export the data in the current tab to a file - Exportovať tento náhľad do súboru - - - Backup Wallet - Zálohovať peňaženku - - - Wallet Data (*.dat) - Údaje peňaženky (*.dat) - - - Backup Failed - Záloha zlyhala - - - There was an error trying to save the wallet data to %1. - Vyskytla sa chyba pri pokuse o uloženie dát peňaženky do %1. - - - Backup Successful - Záloha úspešná - - - The wallet data was successfully saved to %1. - Dáta peňaženky boli úspešne uložené do %1. - - - - dash-core - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX vyžaduje vstupy s aspoň 6 potvrdeniami, môžete počkať pár minút a skúsiť znova. - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Nastavte maximálnu veľkosť vysoko-prioritných/nízko-poplatkových transakcií v bajtoch (predvolené: %d) - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - V konfigurácii musíte špecifikovať masternodeprivkey. Pre pomoc sa prosím pozrite do dokumentácie. - - - (default: 1) - (predvolené: 1) - - - Accept command line and JSON-RPC commands - Prijímať príkazy z príkazového riadku a JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Prijímať pripojenie z vonku (predvolené: 1, ak nie -proxy alebo -connect) - - - Add a node to connect to and attempt to keep the connection open - Pridať uzol pre pripojenie a pokúsiť sa udržať otvorené pripojenie - - - Allow DNS lookups for -addnode, -seednode and -connect - Povoliť vyhľadávania DNS pre -addnode, -seenode a -connect - - - Already have that input. - Tento vstup už máme. - - - Attempt to recover private keys from a corrupt wallet.dat - Pokus obnoviť súkromné kľúče z poškodeného wallet.dat - - - Block creation options: - Možnosti vytvorenia bloku: - - - Cannot downgrade wallet - Nie je možné prejsť na staršiu verziu peňaženky - - - Cannot resolve -bind address: '%s' - Nedá sa vyriešiť -bind adresa: '%s' - - - Cannot resolve -externalip address: '%s' - Nedá sa vyriešiť -externalip adresa: '%s' - - - Cannot write default address - Nie je možné zapísať predvolenú adresu - - - Connection options: - Možnosti pripojenia: - - - Darksend options: - Možnosti Darksend: - - - Error loading wallet.dat - Chyba pri načítaní wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Chyba pri načítaní wallet.dat: Peňaženka je poškodená - - - Error - Chyba - - - Error: Disk space is low! - Chyba: Nedostatok miesta na disku! - - - (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) - (1 = zachovať metaúdaje tx napr. vlastníka účtu a informácie o platobných príkazoch, 2 = zahodiť metaúdaje tx) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Vymazať všetky transakcie z peňaženky a pri spustení znova získať z reťazca blokov iba tie získané pomocou -rescan - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Ako dôkladné je -checkblocks overenie blokov (0-4, predvolené: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - Ak nie je nastavené paytxfee, pridať dostatočný poplatok aby sa transakcia začala potvrdzovať priemerne v rámci bloku (predvolené: %u) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Zaznamenať prioritu transakcií a poplatok za kB pri ťažbe blokov (predvolené: %u) - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Upozornenie: Skontrolujte si prosím či máte správny čas a dátum na Vašom počítači. Ak je Vaše nastavenie zlé, Dash Core nebude pracovať správne. - - - (9999 could be used only on mainnet) - (9999 nemôže byť použité pre hlavnú sieť) - - - (default: %s) - (predvolené: %s) - - - <category> can be: - - <category> môže byť: - - - - Accept public REST requests (default: %u) - Akceptovať verejné REST žiadosti (predvolené: %u) - - - Acceptable ciphers (default: %s) - Prijateľné šifry (predvolené: %s) - - - Cannot resolve -whitebind address: '%s' - Nedá sa vyriešiť -whitebind adresa: '%s' - - - Connect through SOCKS5 proxy - Pripojiť sa cez SOCKS5 proxy - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Autorské práva (C) 2009-%i Vývojári jadra Bitcoin - - - Copyright (C) 2014-%i The Dash Core Developers - Autorské práva (C) 2014-%i Vývojári jadra Dash - - - Darksend is idle. - Darksend je nečinný. - - - Disable safemode, override a real safe mode event (default: %u) - Vypnúť núdzový režim, prepísať skutočnú udalosť núdzového režimu (predvolené: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Povoliť klientovi aby vystupoval ako masternode (0-1, predvolené: %u) - - - Error connecting to Masternode. - Chyba pripojenia k Masternode. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Chyba pri načítaní wallet.dat: Peňaženka vyžaduje novšiu verziu Dash Core - - - Error: Unsupported argument -tor found, use -onion. - Chyba: nájdený nepodporovaný argument -tor, použite -onion. - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Pridať poplatok (v DASH za kB) do transakcií ktoré posielate (predvolené: %s) - - - Finalizing transaction. - Dokončuje sa transakcia. - - - Force safe mode (default: %u) - Vynútiť núdzový režim (predvolené: %u) - - - Found enough users, signing ( waiting %s ) - Nájdený dostatok používateľov, pospisuje sa ( čakanie %s ) - - - Found enough users, signing ... - Nájdený dostatok používateľov, pospisuje sa ... - - - Generate coins (default: %u) - Generovať mince (predvolené: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Koľko blokov overiť pri spustení (predvolené: %u, 0 = všetky) - - - Importing... - Importuje sa... - - - Imports blocks from external blk000??.dat file - Importovať bloky z externého blk000??.dat súboru - - - Incompatible mode. - Nekompatibilný mód. - - - Incompatible version. - Nekompatibilná verzia. - - - Information - Informácia - - - Input is not valid. - Vstup nie je platný. - - - InstantX options: - Možnosti InstantX: - - - Insufficient funds. - Nedostatok prostriedkov. - - - Invalid -onion address: '%s' - Neplatná -onion adresa: '%s' - - - Invalid -proxy address: '%s' - Neplatná -proxy adresa: '%s' - - - Loading budget cache... - Načíta sa vyrovnávacia pamäť rozpočtu... - - - Loading masternode cache... - Načíta sa vyrovnávacia pamäť masternode... - - - Loading masternode payment cache... - Načíta sa vyrovnávacia pamäť platieb masternode... - - - Lock is already in place. - Zámok je už na mieste. - - - Mixing in progress... - Prebieha miešanie... - - - Invalid port detected in masternode.conf - Zistený neplatný port v masternode.conf - - - Invalid private key. - Neplatný súkromný kľúč. - - - Invalid script detected. - Zistený neplatný skript. - - - KeePassHttp key for AES encrypted communication with KeePass - Kľúč KeePassHttp pre šifrovanú AES komunikáciu s KeePass - - - Keep N DASH anonymized (default: %u) - Udržiavať N DASH anonymizovaných (predvolené: %u) - - - Line: %d - Riadok: %d - - - Loading addresses... - Načítavanie adries... - - - Loading block index... - Načítavanie zoznamu blokov... - - - Loading wallet... (%3.2f %%) - Načítavanie peňaženky... (%3.2f %%) - - - Loading wallet... - Načítavanie peňaženky... - - - Masternode options: - Možnosti Masternode: - - - Masternode queue is full. - Fronta Masternode je plná - - - Masternode: - Masternode: - - - Options: - Možnosti: - - - Rescan the block chain for missing wallet transactions - Znova prehľadať reťazec blokov pre nájdenie chýbajúcich transakcií peňaženky - - - Rescanning... - Znova prehľadávam... - - - This help message - Táto pomocná správa - - - This is experimental software. - Toto je experimentálny softvér. - - - Transaction fees are too high. - Transakčné poplatky sú príliš vysoké - - - Transaction not valid. - Neplatná transakcia. - - - Transaction too large - Transakcia je príliš veľká - - - Unknown network specified in -onlynet: '%s' - Špecifikovaná neznáma sieť v -onlynet: '%s' - - - Unknown state: id = %u - Neznámy stav: id = %u - - - Upgrade wallet to latest format - Inovovať peňaženku na posledný formát - - - Use OpenSSL (https) for JSON-RPC connections - Použiť OpenSSL (https) pre JSON-RPC spojenia - - - Use UPnP to map the listening port (default: 1 when listening) - Skúsiť použiť UPnP pre mapovanie počúvajúceho portu (predvolené: 1 počas počúvania) - - - Use the test network - Použiť testovaciu sieť - - - Username for JSON-RPC connections - Užívateľské meno pre JSON-RPC spojenia - - - Verifying blocks... - Overovanie blokov - - - Verifying wallet... - Overovanie peňaženky - - - Wallet %s resides outside data directory %s - Peňaženka %s je umiestnená mimo dátový adresár %s. - - - Wallet is locked. - Peňaženka je zamknutá. - - - Wallet options: - Možnosti peňaženky: - - - Warning - Upozornenie - - - Warning: This version is obsolete, upgrade required! - Upozornenie: Táto verzia je zastaraná, vyžaduje sa aktualizácia! - - - Zapping all transactions from wallet... - Vymazať všetky transakcie z peňaženky... - - - on startup - pri spustení - - - wallet.dat corrupt, salvage failed - wallet.dat je poškodený, záchrana zlyhala - - - \ No newline at end of file diff --git a/src/qt/locale/dash_sv.ts b/src/qt/locale/dash_sv.ts deleted file mode 100644 index cdbd2ad6179c..000000000000 --- a/src/qt/locale/dash_sv.ts +++ /dev/null @@ -1,3257 +0,0 @@ - - - AddressBookPage - - Create a new address - Skapa en ny adress - - - &New - &Ny - - - Copy the currently selected address to the system clipboard - Kopiera den valda adressen till systemurklippet - - - &Copy - &Kopiera - - - Delete the currently selected address from the list - Radera den valda adressen från listan - - - &Delete - &Radera - - - Export the data in the current tab to a file - Exportera datan från fliken till en fil - - - &Export - &Exportera - - - C&lose - S&täng - - - Choose the address to send coins to - Välj en adress att skicka mynt till - - - Choose the address to receive coins with - Välj adressen att motta mynt från - - - C&hoose - V&älj - - - Sending addresses - Avsändaradresser - - - Receiving addresses - Mottagaradresser - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - De här är dina Dash-adresser för att skicka betalningar. Kontrollera alltid mängden och mottagaradressen innan du skickar mynt. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - De här är dina Dash-adresser för betalningsmottagningar. Det rekommenderas att använda en ny mottagaradress för varje transaktion. - - - &Copy Address - &Kopiera adress - - - Copy &Label - Kopiera &etikett - - - &Edit - &Redigera - - - Export Address List - Exportera adresslistan - - - Comma separated file (*.csv) - Kommaseparerad fil (*.csv) - - - Exporting Failed - Exporteringen misslyckades - - - - AddressTableModel - - Label - Etikett - - - Address - Adress - - - (no label) - (Ingen etikett) - - - - AskPassphraseDialog - - Passphrase Dialog - Lösenfrasdialog - - - Enter passphrase - Ange lösenfras - - - New passphrase - Ny lösenfras - - - Repeat new passphrase - Upprepa ny lösenfras - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Arbetar för att inaktivera de triviala sändpengarna när OS-kontot är komprometterat. Ger ingen reell säkerhet. - - - For anonymization only - Endast för anonymisering - - - Encrypt wallet - Kryptera plånbok - - - This operation needs your wallet passphrase to unlock the wallet. - Denna handling kräver din plånboks lösenfras för att låsa upp plånboken. - - - Unlock wallet - Lås upp plånbok - - - This operation needs your wallet passphrase to decrypt the wallet. - Denna handling kräver din plånboks lösenfras för att dekryptera plånboken. - - - Decrypt wallet - Dekryptera plånbok - - - Change passphrase - Ändra lösenfras - - - Enter the old and new passphrase to the wallet. - Skriv in den gamla och den nya lösenfrasen för plånboken. - - - Confirm wallet encryption - Bekräfta plånbokskryptering - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Varning: Om du krypterar din plånbok och förlorar din lösenfras kommer du att <b>FÖRLORA ALLA DINA DASH</b>! - - - Are you sure you wish to encrypt your wallet? - Är du säker på att du vill kryptera din plånbok? - - - Wallet encrypted - Plånbok krypterad - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash kommer nu att färdigställa krypteringsprocessen. Kom ihåg att krypteringen av din plånbok inte kan skydda dig helt och hållet från att dina Dash stjäls av skadeprogram som har infekterat din dator. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - VIKTIGT: Alla tidigare säkerhetskopior du har gjort av plånboksfilen bör ersättas med den nygenererade krypterade plånboksfilen. Av säkerhetsskäl kommer tidigare säkerhetskopior av den okrypterade plånboksfilen bli oanvändbara så fort du använder den nya krypterade plånboken. - - - Wallet encryption failed - Plånbokskrypteringen misslyckades - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Plånbokskrypteringen misslyckades på grund av ett internt fel. Din plånbok krypterades inte. - - - The supplied passphrases do not match. - Den angivna lösenfrasen överensstämmer inte. - - - Wallet unlock failed - Plånboksupplåsning misslyckades - - - The passphrase entered for the wallet decryption was incorrect. - Den inmatade lösenfrasen för plånboksdekrypteringen var felaktig. - - - Wallet decryption failed - Plånboksdekryptering misslyckades. - - - Wallet passphrase was successfully changed. - Plånbokens lösenfras ändrades framgångsrikt. - - - Warning: The Caps Lock key is on! - Varning: Caps Lock är aktiverat! - - - - BitcoinGUI - - Dash Core - Dash Core - - - - Wallet - Plånbok - - - Node - Nod - - - &Overview - &Översikt - - - Show general overview of wallet - Visa allmän plånboksöversikt - - - &Send - &Skicka - - - Send coins to a Dash address - Skicka mynt till en Dash-adress - - - &Receive - &Motta - - - Request payments (generates QR codes and dash: URIs) - Begär betalningar (genererar QR-koder och Dash:-URI:s) - - - &Transactions - &Transaktioner - - - Browse transaction history - Bläddra i transaktionshistoriken - - - E&xit - A&vsluta - - - Quit application - Avsluta applikationen - - - &About Dash Core - &Om Dash Core - - - About &Qt - Om &Qt - - - Show information about Qt - Visa information om Qt - - - &Options... - &Alternativ... - - - Modify configuration options for Dash - Anpassa konfigurationsalternatv för Dash - - - &Show / Hide - &Visa/göm - - - Show or hide the main Window - Visa eller göm huvudfönstret - - - &Encrypt Wallet... - &Kryptera plånbok... - - - Encrypt the private keys that belong to your wallet - Kryptera de privata nycklarna vilka tillhör din plånbok - - - &Backup Wallet... - &Säkerhetskopiera plånbok... - - - Backup wallet to another location - Säkerhetskopiera plånboken till en annan plats - - - &Change Passphrase... - &Ändra lösenfras... - - - Change the passphrase used for wallet encryption - Ändra lösenfrasen som används för plånbokskryptering - - - &Unlock Wallet... - &Lås upp plånbok... - - - Unlock wallet - Lås upp plånbok - - - &Lock Wallet - &Lås plånbok - - - Sign &message... - Signera &meddelande... - - - Sign messages with your Dash addresses to prove you own them - Signera meddelanden med dina Dash-adresser för att bevisa att du äger dem - - - &Verify message... - &Bekräfta meddelande... - - - Verify messages to ensure they were signed with specified Dash addresses - Bekräfta meddelanden för att garantera att de signerades med de angivna Dash-adresserna - - - &Information - &Information - - - Show diagnostic information - Visa diagnostisk information - - - &Debug console - &Avsökningskonsol - - - Open debugging console - Öppna avsökningskonsol - - - &Network Monitor - &Nätverksövervakare - - - Show network monitor - Visa nätverksövervakare - - - Open &Configuration File - Öppna &Konfigurationsfil - - - Open configuration file - Öppna konfigurationsfil - - - &Sending addresses... - &Avsändaradresser... - - - Show the list of used sending addresses and labels - Visa listan för redan använda avsändaradresser och etiketter - - - &Receiving addresses... - &Mottagaradresser... - - - Show the list of used receiving addresses and labels - Visa listan för redan använda mottagaradresser och etiketter - - - Open &URI... - Öppna &URI... - - - Open a dash: URI or payment request - Öppna en Dash-URI eller betalningsbegäran - - - &Command-line options - &Kommandoradalternativ - - - Show the Dash Core help message to get a list with possible Dash command-line options - Visa Dash Core-hjälpmeddelandet för att få en lista med möjliga Dash-kommandoradalternativ - - - &File - &Fil - - - &Settings - &Inställningar - - - &Tools - &Verktyg - - - &Help - &Hjälp - - - Tabs toolbar - Verktygsfält för tabbar - - - Synchronizing with network... - Synkroniserar med nätverk... - - - Importing blocks from disk... - Importerar block från disk... - - - Reindexing blocks on disk... - Återindexerar block på disk... - - - No block source available... - Ingen tillgänglig blockkälla... - - - Up to date - Aktuell - - - %1 and %2 - %1 och %2 - - - %1 behind - %1 bakom - - - Catching up... - Knappar in... - - - Last received block was generated %1 ago. - Senast mottagna block genererades för %1 sedan. - - - Transactions after this will not yet be visible. - Transaktioner efter denna kommer ännu inte vara synliga. - - - Error - Fel - - - Warning - Varning - - - Information - Information - - - Sent transaction - Skickad transaktion - - - Incoming transaction - Inkommande transaktion - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Datum: %1 -Mängd: %2 -Typ: %3 -Adress: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Plånboken är <b>krypterad</b> och för närvarande <b>olåst</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Plånboken är <b>krypterad</b> och för närvarande <b>olåst</b> endast för anonymisering - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Plånboken är <b>krypterad</b> och för närvarande <b>låst</b> - - - - ClientModel - - Network Alert - Nätverkslarm - - - - CoinControlDialog - - Quantity: - Antal: - - - Bytes: - Bytes: - - - Amount: - Mängd: - - - Priority: - Prioritet: - - - Fee: - Avgift: - - - After Fee: - Efter avgift: - - - Change: - Växel: - - - (un)select all - (av)markera alla - - - Tree mode - Trädmetod - - - List mode - Listmetod - - - (1 locked) - (1 låst) - - - Amount - Mängd - - - Date - Datum - - - Confirmations - Bekräftelser - - - - Confirmed - Bekräftad - - - Priority - Prioritet - - - Copy address - Kopiera adress - - - Copy label - Kopiera etikett - - - Copy amount - Kopiera mängd - - - Copy transaction ID - Kopiera transaktions-id - - - Lock unspent - Lås ospenderat - - - Unlock unspent - Lås upp ospenderat - - - Copy quantity - Kopiera antal - - - Copy fee - Kopiera avgift - - - Copy after fee - Kopiera efter avgift - - - Copy bytes - Kopiera bytes - - - Copy priority - Kopiera prioritet - - - Copy change - Kopiera växel - - - highest - högst - - - higher - högre - - - high - hög - - - medium-high - medelhög - - - n/a - E/t - - - medium - medel - - - low-medium - medellåg - - - low - låg - - - lower - lägre - - - lowest - lägst - - - (%1 locked) - (%1 låst) - - - none - inga - - - yes - ja - - - no - nej - - - This label turns red, if the transaction size is greater than 1000 bytes. - Denna etikett blir röd om transaktionsstorleken är större än 1000 bytes. - - - This means a fee of at least %1 per kB is required. - Detta innebär att en avgift om åtminstone %1 krävs per kB. - - - Can vary +/- 1 byte per input. - Kan variera +/- 1 byte per indata. - - - Transactions with higher priority are more likely to get included into a block. - Transaktioner med högre prioritet är mer benägna att inkluderas i ett block. - - - This label turns red, if the priority is smaller than "medium". - Denna etikett blir röd om prioriteten är mindre än "medel". - - - This label turns red, if any recipient receives an amount smaller than %1. - Denna etikett blir röd om en mottagare mottar en mängd mindre än %1. - - - (no label) - (Ingen etikett) - - - change from %1 (%2) - växel från %1 (%2) - - - (change) - (växel) - - - - DarksendConfig - - Configure Darksend - Konfigurera Darksend - - - Basic Privacy - Grundläggande integritet - - - High Privacy - Hög integritet - - - Maximum Privacy - Maximal integritet - - - Please select a privacy level. - Vänligen välj en integritetsnivå. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Använd 2 enskilda masternoder för att mixa medel upp till 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Använd 8 enskilda masternoder för att mixa medel upp till 1000 DASH. - - - Use 16 separate masternodes - Använd 16 enskilda masternoder - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Detta alternativ är det snabbaste och kommer att kosta omkring ~0,025 DASH för att anonymisera 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Detta alternativ är relativt snabbt och kommer att kosta omkring 0,05 DASH för att anonymisera 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0,1 DASH per 1000 DASH du anonymiserar. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Detta är det långsammaste och det säkraste alternativet. Användning av maximal anonymitet kommer att kosta - - - Darksend Configuration - Darksend-konfiguration - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend ställdes framgångsrikt om till grundläggande (%1 och 2 omgångar). Du kan ändra detta när som helst genom att öppna Dash:s konfigurationsskärm. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend ställdes framgångsrikt in på hög (%1 och 8 omgångar). Du kan ändra detta när som helst genom att öppna Dash:s konfigurationsskärm. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend ställdes framgångsrikt in på maximal (%1 och 16 omgångar). Du kan ändra detta när som helst genom att öppna Dash:s konfigurationsskärm - - - - EditAddressDialog - - Edit Address - Redigera Adress - - - &Label - &Etikett - - - The label associated with this address list entry - Den associerade etiketten med den här adresslistans inmatning - - - &Address - &Adress - - - The address associated with this address list entry. This can only be modified for sending addresses. - Den associerade adressen med den här adresslistans post. Detta kan endast ändras för avsändaradresser. - - - New receiving address - Ny mottagaradress - - - New sending address - Ny avsändaradress - - - Edit receiving address - Redigera mottagaradress - - - Edit sending address - Redigera avsändaradress - - - The entered address "%1" is not a valid Dash address. - Den angivna adressen "%1" är inte en giltig Dash-adress. - - - The entered address "%1" is already in the address book. - Den angivna adressen "%1" finns redan i adressboken. - - - Could not unlock wallet. - Plånboken kunde inte låsas upp. - - - New key generation failed. - Nygenerering av nyckel misslyckades. - - - - FreespaceChecker - - A new data directory will be created. - En ny datakatalog kommer att skapas. - - - name - namn - - - Directory already exists. Add %1 if you intend to create a new directory here. - Katalogen finns redan. Lägg till %1 om du tänker skapa en ny katalog här. - - - Path already exists, and is not a directory. - Sökvägen finns redan och är inte en katalog. - - - Cannot create data directory here. - Kan inte skapa en datakatalog här. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - - version - version - - - Usage: - Användning: - - - command-line options - kommandoradalternativ - - - UI options - UI-alternativ - - - Choose data directory on startup (default: 0) - Välj datakatalog vid uppstart (standardvärde: 0) - - - Set language, for example "de_DE" (default: system locale) - Ställ in språk, till exempel "de_DE" (standardvärde: system locale) - - - Start minimized - Starta minimerat - - - Set SSL root certificates for payment request (default: -system-) - Ställ in SSL-root-certifikat för betalningsbegäranden (standardvärde: -system-) - - - Show splash screen on startup (default: 1) - Visa startbilden vid uppstart (standardvärde: 1) - - - - Intro - - Welcome - Välkommen - - - Welcome to Dash Core. - Välkommen till Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Då detta är första gången programmet startas kan du välja var Dash Core ska lagra sin data. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core kommer att laddas ned och lagra en kopia av Dash:s blockkedja. Minst %1 GB data kommer att lagras i denna katalog och den kommer att växa med tiden. Plånboken kommer också att lagras i denna katalog. - - - Use the default data directory - Använd den förvalda datakatalogen - - - Use a custom data directory: - Använd en anpassad datakatalog: - - - Error - Fel - - - - OpenURIDialog - - Open URI - Öppna URI - - - Open payment request from URI or file - Öppna betalningsbegäran från URI eller fil - - - URI: - URI: - - - Select payment request file - Välj betalningsbegäranfil - - - Select payment request file to open - Välj en betalningsbegäranfil att öppna - - - - OptionsDialog - - Options - Alternativ - - - &Main - &Huvud - - - Automatically start Dash after logging in to the system. - Starta Dash automatiskt efter systeminloggning. - - - &Start Dash on system login - &Starta Dash vid systeminloggning - - - Size of &database cache - Storlek på &databascache - - - MB - MB - - - Number of script &verification threads - Antal skript&bekräftelsestrådar - - - (0 = auto, <0 = leave that many cores free) - (0 = auto, <0 = lämna så många kärnor lediga) - - - Darksend rounds to use - Darksend-omgångar att använda - - - This amount acts as a threshold to turn off Darksend once it's reached. - Denna mängd fungerar som en tröskel att stänga av Darksend då det har uppnåtts. - - - Amount of Dash to keep anonymized - Mängd Dash att bibehålla anonymiserade - - - W&allet - P&lånbok - - - Expert - Expert - - - Whether to show coin control features or not. - Om myntkontrollfunktioner ska visas eller inte - - - Enable coin &control features - Aktivera mynt&kontrollfunktioner - - - &Spend unconfirmed change - &Spendera obekräftad växel - - - &Network - &Nätverk - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Öppna Dash:s klientport automatiskt på routern. Detta fungerar bara om din router stöder UPnP och är aktiverad. - - - Map port using &UPnP - Kartlägg port med hjälp av &UPnP - - - Proxy &IP: - Proxy-&IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Proxyns IP-adress (t.ex. IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Port: - - - Port of the proxy (e.g. 9050) - Proxyns port (t.ex. 9050) - - - &Window - &Fönster - - - Show only a tray icon after minimizing the window. - Visa endast en systemfältikon vid fönsterminimering. - - - &Minimize to the tray instead of the taskbar - &Minimera till systemfältet istället för till aktivitetsfältet - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Minimera applikationen istället för att stänga ner den när fönstret stängs. När detta alternativ är aktiverat kommer applikationen endast att stängas efter att man väljer Avsluta i menyn. - - - M&inimize on close - M&inimera vid stängning - - - &Display - &Visa - - - User Interface &language: - Användargränssnitt&språk: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Användargränssnittspråket kan ställas in här. Denna inställning träder i kraft efter att Dash startats om. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Fattas språk eller är det en ofullständig översättning? Hjälp till att bidra med översättningar här: -https://www.transifex.com/projects/p/dash/ - - - &Unit to show amounts in: - &Enhet att visa mängder i: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Välj standardindelningenheten som ska visas i gränssnittet och när mynt skickas. - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Tredjeparts-URL:er (t.ex. en blockutforskare) som finns i transaktionstabben som ett menyval i sammanhanget. %s i URL:en ersätts med transaktionshashen. Flera URL:er är avskilda med det vertikala strecket: |. - - - Third party transaction URLs - Tredjeparttransaktion-URL:er - - - Active command-line options that override above options: - Aktiva kommandoradalternativ som åsidosätter alternativen ovan: - - - Reset all client options to default. - Återställ alla klientinställningar till standardvärden. - - - &Reset Options - &Återställ Alternativ - - - &OK - &OK - - - &Cancel - &Avbryt - - - default - standardvärde - - - none - ingen - - - Confirm options reset - Bekräfta alternativåterställning - - - Client restart required to activate changes. - Klientomstart krävs för att aktivera ändringar. - - - Client will be shutdown, do you want to proceed? - Klienten kommer att stängas ned, vill du fortsätta? - - - This change would require a client restart. - Denna ändring kommer att kräva en klientomstart. - - - The supplied proxy address is invalid. - Den angivna proxyadressen är ogiltig. - - - - OverviewPage - - Form - Formulär - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Den visade informationen kan vara utdaterad. Din plånbok synkroniseras automatiskt med Dash-nätverket efter att en anslutning har etablerats men denna process har ännu inte slutförts. - - - Available: - Tillgängligt: - - - Your current spendable balance - Ditt nuvarande spenderbara saldo - - - Pending: - Pågående: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Totala antalet transaktioner som ännu inte har bekräftats och som ännu inte räknas med i spenderbart saldo. - - - Immature: - Omogen: - - - Mined balance that has not yet matured - Det utvunna saldot som ännu inte har mognat - - - Total: - Totalt: - - - Your current total balance - Ditt totalsaldo för närvarande - - - Status: - Status: - - - Enabled/Disabled - Aktiverad/inaktiverad - - - Completion: - Förlopp: - - - Darksend Balance: - Darksend-medel: - - - Amount and Rounds: - Mängd och omgångar: - - - 0 DASH / 0 Rounds - 0 DASH/0 omgångar - - - Submitted Denom: - Inmatad denom: - - - n/a - E/t - - - Darksend - Darksend - - - Start/Stop Mixing - Starta/stoppa mixning - - - (Last Message) - (Senaste meddelande) - - - Try to manually submit a Darksend request. - Försök att lämna in en Darksend-begäran manuellt. - - - Try Mix - Försök att mixa - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Återställ den nuvarande Darksend-statusen (kan störa Darksend om den håller på att mixa vilket kan kosta dig pengar!) - - - Reset - Återställ - - - out of sync - osynkroniserad - - - Disabled - Inaktiverad - - - Start Darksend Mixing - Påbörja Darksend-mixning - - - Stop Darksend Mixing - Stoppa Darksend-mixning - - - No inputs detected - Inga inmatningar hittades - - - Enabled - Aktiverad - - - Last Darksend message: - - Senaste Darksend-meddelande: - - - - - - - - N/A - E/t - - - Darksend was successfully reset. - Darksend återställdes framgångsrikt. - - - Darksend requires at least %1 to use. - Darksend kräver åtminstone %1 att använda. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Plånboken är låst och användaren avböjde upplåsning. Inaktiverar Darksend. - - - - PaymentServer - - Payment request error - Fel vid betalningsbegäran - - - Cannot start dash: click-to-pay handler - Kan inte starta dash: klicka-för-att-betala hanterare - - - URI handling - URI-hantering - - - Payment request fetch URL is invalid: %1 - Betalningsbegäran för att hämta-URL är ogiltig: %1 - - - Payment request file handling - Hantering av betalningsbegäranfil - - - Unverified payment requests to custom payment scripts are unsupported. - Obekräftade betalningsbegäranden till anpassade betalningsskript stöds inte. - - - Requested payment amount of %1 is too small (considered dust). - Den begärda betalningsmängden om %1 är för smått (anses vara damm). - - - Refund from %1 - Återbetalning från %1 - - - Error communicating with %1: %2 - Kommunikationsfel med %1: %2 - - - Bad response from server %1 - Dålig respons från server %1 - - - Network request error - Fel vid närverksbegäran - - - Payment acknowledged - Betalning erkänd - - - - PeerTableModel - - - QObject - - - QRImageWidget - - &Save Image... - &Spara Bild... - - - &Copy Image - &Kopiera Bild - - - Save QR Code - Spara QR-kod - - - PNG Image (*.png) - PNG-bild (*.png) - - - - RPCConsole - - Tools window - Verktygsfönster - - - &Information - &Information - - - General - Allmänt - - - Name - Namn - - - Client name - Klientnamn - - - N/A - E/t - - - Number of connections - Antal anslutningar - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Öppna Dashs avsökningsloggfil från den nuvarande datakatalogen. Detta kan ta ett par sekunder för stora loggfiler. - - - &Open - &Öppna - - - Startup time - Uppstarttid - - - Network - Nätverk - - - Last block time - Senaste blocktid - - - Debug log file - Avsökningsloggfil - - - Using OpenSSL version - Använder OpenSSL-version - - - Build date - Kompileringsdatum - - - Current number of blocks - Nuvarande antal block - - - Client version - Klientversion - - - Block chain - Blockkedja - - - &Console - &Konsol - - - Clear console - Rensa konsollen - - - &Network Traffic - &Nätverkstrafik - - - &Clear - &Rensa - - - Totals - Sammanlagt - - - In: - In: - - - Out: - Ut: - - - Welcome to the Dash RPC console. - Välkommen till Dashs RPC-konsol. - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Använd upp- och ner-pilarna för att navigera i historiken och <b>Ctrl-L</b> för att rensa skärmen. - - - Type <b>help</b> for an overview of available commands. - Skriv <b>help</b> för en översikt av alla tillgängliga kommandon. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - - ReceiveCoinsDialog - - R&euse an existing receiving address (not recommended) - Åt&eranvänd en befintlig mottagaradress (rekommenderas inte) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Ett valfritt meddelande att bifoga betalningsbegärandet vilket kommer att visas när begärandet öppnas. Observera: Meddelandet kommer inte att skickas med betalningen över Dash-nätverket. - - - &Message: - &Meddelande: - - - An optional label to associate with the new receiving address. - En valfri etikett att kopplas samman med den nya mottagaradressen. - - - Use this form to request payments. All fields are <b>optional</b>. - Använd detta formulär för att begära betalningar. Alla fält är <b>valfria</b>. - - - &Label: - &Etikett: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - En valfri summa att begära. Lämna denna tom eller nollad för att inte begära en specifik summa. - - - &Amount: - &Mängd: - - - &Request payment - &Begär betalning - - - Clear all fields of the form. - Rensa alla formulärfälten - - - Clear - Rensa - - - Requested payments history - Begärd betalningshistorik - - - Show the selected request (does the same as double clicking an entry) - Visa de valda begäranden (gör samma som vid ett dubbelklick på en inmatning) - - - Show - Visa - - - Remove the selected entries from the list - Ta bort de valda inmatningarna från listan - - - Remove - Ta bort - - - Copy label - Kopiera etikett - - - Copy message - Kopiera meddelande - - - Copy amount - Kopiera mängd - - - - ReceiveRequestDialog - - QR Code - QR-kod - - - Copy &URI - Kopiera &URI - - - Copy &Address - Kopiera &Adress - - - &Save Image... - &Spara Bild... - - - Request payment to %1 - Begär betalning till %1 - - - Payment information - Betalningsinformation - - - URI - URI - - - Address - Adress - - - Amount - Mängd - - - Label - Etikett - - - Message - Meddelande - - - Resulting URI too long, try to reduce the text for label / message. - Den slutgiltiga URI:n är för lång, försök att korta ned texten för etiketten/meddelandet. - - - Error encoding URI into QR Code. - Fel vid kodning av URI till QR-kod. - - - - RecentRequestsTableModel - - Date - Datum - - - Label - Etikett - - - Message - Meddelande - - - Amount - Mängd - - - (no label) - (ingen etikett) - - - (no message) - (inget meddelande) - - - (no amount) - (ingen mängd) - - - - SendCoinsDialog - - Send Coins - Skicka mynt - - - Coin Control Features - Myntkontrollfunktioner - - - Inputs... - Indatan... - - - automatically selected - automatiskt vald - - - Insufficient funds! - Otillräckliga medel! - - - Quantity: - Antal: - - - Bytes: - Bytes: - - - Amount: - Mängd: - - - Priority: - Prioritet: - - - medium - medel - - - Fee: - Avgift: - - - no - nej - - - After Fee: - Efter avgift: - - - Change: - Växel: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Om denna är aktiverad men växeladressen är tom eller ogiltig kommer växeln att skickas till en nygenererad adress. - - - Custom change address - Specialväxeladress - - - Confirm the send action - Bekräfta sändningshandlingen - - - S&end - S&kicka - - - Clear all fields of the form. - Rensa alla formulärfälten - - - Clear &All - Rensa &alla - - - Send to multiple recipients at once - Skicka till flera mottagare samtidigt - - - Add &Recipient - Lägg till &mottagare - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Saldo: - - - Copy quantity - Kopiera antal - - - Copy amount - Kopiera mängd - - - Copy fee - Kopiera avgift - - - Copy after fee - Kopiera efter avgift - - - Copy bytes - Kopiera bytes - - - Copy priority - Kopiera prioritet - - - Copy change - Kopiera växel - - - using - använder - - - anonymous funds - anonyma medel - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend kräver att denna mängd avrundas uppåt till närmaste %1) - - - any available funds (not recommended) - vilka tillgängliga medel som helst (rekommenderas inte) - - - and InstantX - och InstantX - - - %1 to %2 - %1 till %2 - - - Are you sure you want to send? - Är du säker på att du vill skicka? - - - are added as transaction fee - läggs till som en transaktionsavgift - - - Confirm send coins - Bekräfta myntsändning - - - The recipient address is not valid, please recheck. - Mottagaradressen är inte giltig, vänligen kontrollera igen. - - - The amount to pay must be larger than 0. - Betalningsmängden måste vara större än 0. - - - The amount exceeds your balance. - Mängden överstiger ditt saldo. - - - The total exceeds your balance when the %1 transaction fee is included. - Totalsumman överstiger ditt saldo när transaktionsavgiften %1 inkluderas. - - - Duplicate address found, can only send to each address once per send operation. - Dubblettadress hittad, kan endast skicka till en adress åt gången vid varje sändningshandling. - - - Transaction creation failed! - Transaktionsskapandet misslyckades! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Transaktionen avslogs! Detta kan hända om några av mynten i din plånbok redan har spenderats, t.ex. om du har använt en kopia av wallet.dat och mynt spenderades i kopian men inte har markerats som spenderade här. - - - Error: The wallet was unlocked only to anonymize coins. - Fel: Plånboken låstes upp enbart för att anonymisera mynt. - - - Warning: Invalid Dash address - Varning: Ogiltig Dash-adress - - - Warning: Unknown change address - Varning: Okänd växeladress - - - (no label) - (Ingen etikett) - - - - SendCoinsEntry - - This is a normal payment. - Detta är en vanlig betalning. - - - Pay &To: - Betala &Till: - - - Choose previously used address - Välj en tidigare använd adress - - - Alt+A - Alt+A - - - Paste address from clipboard - Klistra in adressen från urklippet - - - Alt+P - Alt+P - - - Remove this entry - Ta bort denna inmatning - - - &Label: - &Etikett: - - - Enter a label for this address to add it to the list of used addresses - Ange en etikett för denna adress att läggas till i listan för använda adresser - - - A&mount: - M&ängd: - - - Message: - Meddelande: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Ett meddelande som bifogades till Dash: URI vilket kommer att lagras med transaktionen så att du vet. Observera: Meddelandet kommer inte att skickas över Dash-nätverket. - - - This is an unverified payment request. - Detta är en obekräftad betalningsbegäran. - - - Pay To: - Betala Till: - - - Memo: - PM: - - - This is a verified payment request. - Detta är en bekräftad betalningsbegäran. - - - Enter a label for this address to add it to your address book - Ange en etikett för denna adress för att lägga till den i din adressbok - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core stängs ned... - - - Do not shut down the computer until this window disappears. - Stäng inte av datorn förrän detta fönster försvinner. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Signaturer - Signera/bekräfta ett Meddelande - - - &Sign Message - &Signera Meddelande - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Du kan signera meddelanden med dina adresser för att bevisa att du äger dem. Var försiktig med att inte skriva på någonting oklart då phishing-attacker kan försöka lura dig till att skriva över din identitet till dem. Signera endast väldetaljerade uppgifter du samtycker till. - - - Choose previously used address - Välj en tidigare använd adress - - - Alt+A - Alt+A - - - Paste address from clipboard - Klistra in adressen från urklippet - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Skriv in meddelandet du vill signera här - - - Signature - Signatur - - - Copy the current signature to the system clipboard - Kopiera den nuvarande valda signaturen till systemurklippet - - - Sign the message to prove you own this Dash address - Signera meddelandet för att bevisa att du äger denna Dash-adress - - - Sign &Message - Signera &Meddelande - - - Reset all sign message fields - Återställ alla fält för signaturmeddelanden - - - Clear &All - Rensa &alla - - - &Verify Message - &Bekräfta Meddelande - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Skriv in signeringsadressen, meddelandet, (försäkra dig om att du kopierar linjeavbrott, mellanslag, flikar med mera) och signera nedtill för att verifiera meddelandet. Var försiktig med att inte läsa in mer i signaturen än vad som finns i det signerade meddelandet för att undvika att bli lurad av en mellanhandattack. - - - Verify the message to ensure it was signed with the specified Dash address - Bekräfta meddelandet för att försäkra dig om att den signerades med den angivna Dash-adressen - - - Verify &Message - Bekräfta &Meddelande - - - Reset all verify message fields - Återställ alla fält för bekräftelsemeddelanden - - - Click "Sign Message" to generate signature - Klicka på "Signera Meddelande" för att generera en signatur - - - The entered address is invalid. - Den angivna adressen är ogiltig. - - - Please check the address and try again. - Vänligen kontrollera adressen och försök igen. - - - The entered address does not refer to a key. - Den angivna adressen refererar inte till en nyckel. - - - Wallet unlock was cancelled. - Plånboksupplåsningen avbröts. - - - Private key for the entered address is not available. - Privatnyckeln för den inmatade adressen är inte tillgänglig. - - - Message signing failed. - Meddelandesignering misslyckades. - - - Message signed. - Meddelandet signerades. - - - The signature could not be decoded. - Signaturen kunde inte avkodas. - - - Please check the signature and try again. - Vänligen kontrollera signaturen och försök igen. - - - The signature did not match the message digest. - Signaturen överensstämde inte med meddelandesammandraget. - - - Message verification failed. - Meddelandebekräftelsen misslyckades. - - - Message verified. - Meddelandet bekräftades. - - - - SplashScreen - - Dash Core - Dash Core - - - - Version %1 - Version %1 - - - The Bitcoin Core developers - Bitcoin Core-utvecklarna - - - The Dash Core developers - Dash Core-utvecklarna - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open until %1 - Öppen till %1 - - - conflicted - konflikterad - - - %1/offline (verified via instantx) - %1/offline (bekräftad genom instantx) - - - %1/confirmed (verified via instantx) - %1/bekräftad (bekräftad genom instantx) - - - %1 confirmations (verified via instantx) - %1/bekräftelser (bekräftad genom instantx) - - - %1/offline - %1/offline - - - %1/unconfirmed - %1/obekräftade - - - %1 confirmations - %1 bekräftelser - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/offline (InstantX-bekräftelse under behandling - %2 av %3 signaturer) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/bekräftad (InstantX-bekräftelse under behandling - %2 av %3 signaturer) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 bekräftelser (InstantX-bekräftelse under behandling - %2 av %3 signaturer) - - - %1/offline (InstantX verification failed) - %1/offline (InstantX-bekräftelse misslyckades) - - - %1/confirmed (InstantX verification failed) - %1/bekräftad (InstantX-bekräftelse misslyckades) - - - Status - Status - - - , has not been successfully broadcast yet - ,har ännu inte framgångsrikt utsänts. - - - Date - Datum - - - Source - Källa - - - Generated - Genererad - - - From - Från - - - unknown - okänd - - - To - Till - - - own address - egen adress - - - label - etikett - - - Credit - Kredit - - - not accepted - inte accepterad - - - Debit - Debet - - - Transaction fee - Transaktionsavgift - - - Net amount - Nettomängd - - - Message - Meddelande - - - Comment - Kommentar - - - Transaction ID - Transaktions-ID - - - Merchant - Handlare - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Genererade mynt måste vänta %1 block innan de kan användas. När du genererade detta block utsändes det till nätverket för att läggas till i blockkedjan. Om blocket inte kommer in i kedjan kommer dess tillstånd att ändras till "ej accepterad" och kommer inte att kunna spenderas. Detta kan ibland hända om en annan nod genererar ett block inom ett par sekunder från ditt. - - - Debug information - Avsökningsinformation - - - Transaction - Transaktion - - - Inputs - Indatan - - - Amount - Mängd - - - true - sant - - - false - falskt - - - - TransactionDescDialog - - Transaction details - Transaktionsdetaljer - - - This pane shows a detailed description of the transaction - Den här panelen visar en detaljerad transaktionsbeskrivning - - - - TransactionTableModel - - Date - Datum - - - Type - Typ - - - Address - Adress - - - Open until %1 - Öppen till %1 - - - Offline - Offline - - - Unconfirmed - Obekräftad - - - Confirming (%1 of %2 recommended confirmations) - Bekräftar (%1 of %2 rekommenderade bekräftelser) - - - Confirmed (%1 confirmations) - Bekräftat (%1 bekräftelser) - - - Conflicted - Konflikterad - - - Immature (%1 confirmations, will be available after %2) - Omogen (%1 bekräftelser, kommer att bli tillgänglig efter %2) - - - This block was not received by any other nodes and will probably not be accepted! - Det här blocket togs inte emot av några andra noder och kommer troligtvis inte att accepteras! - - - Generated but not accepted - Genererad men inte accepterad - - - Received with - Mottagen med - - - Received from - Mottagen från - - - Received via Darksend - Mottagen genom Darksend - - - Sent to - Skickad till - - - Payment to yourself - Betalning till dig själv - - - Mined - Utvunnen - - - Darksend Denominate - Darksend-denomination - - - Darksend Collateral Payment - Darskends-säkerhetsbetalning - - - Darksend Make Collateral Inputs - Darksend-skapa säkerhetsinmatningar - - - Darksend Create Denominations - Darksend-skapa denominationer - - - Darksent - Darksent-(skickat) - - - (n/a) - (e/t) - - - Transaction status. Hover over this field to show number of confirmations. - Transaktionsstatus. Håll muspekaren över detta fält för att se bekräftelseantal. - - - Date and time that the transaction was received. - Datum och tid då transaktionen mottogs. - - - Type of transaction. - Transaktionstyp. - - - Destination address of transaction. - Transaktionens destinationsadress. - - - Amount removed from or added to balance. - Mängd draget eller tillagt till saldot. - - - - TransactionView - - All - Alla - - - Today - Idag - - - This week - Denna vecka - - - This month - Denna månad - - - Last month - Förra månaden - - - This year - Detta år - - - Range... - Period... - - - Received with - Mottagen med - - - Sent to - Skickad till - - - Darksent - Darksent-(skickat) - - - Darksend Make Collateral Inputs - Darksend-skapa säkerhetsinmatningar - - - Darksend Create Denominations - Darksend-skapa denominationer - - - Darksend Denominate - Darksend-denomination - - - Darksend Collateral Payment - Darskends-säkerhetsbetalning - - - To yourself - Till dig själv - - - Mined - Utvunnen - - - Other - Andra - - - Enter address or label to search - Skriv in en adress eller etikett för att söka - - - Min amount - Minsta mängd - - - Copy address - Kopiera adress - - - Copy label - Kopiera etikett - - - Copy amount - Kopiera mängd - - - Copy transaction ID - Kopiera transaktions-ID - - - Edit label - Redigera etikett - - - Show transaction details - Visa transaktionsdetaljer - - - Export Transaction History - Exportera Transaktionshistoriken - - - Comma separated file (*.csv) - Kommaseparerad fil (*. csv) - - - Confirmed - Bekräftad - - - Date - Datum - - - Type - Typ - - - Label - Etikett - - - Address - Adress - - - ID - ID - - - Exporting Failed - Exporteringen misslyckades - - - There was an error trying to save the transaction history to %1. - Det inträffade ett fel vid försöket med att spara transaktionshistoriken till %1. - - - Exporting Successful - Exporteringen lyckades - - - The transaction history was successfully saved to %1. - Transaktionshistoriken sparades framgångsrikt till %1. - - - Range: - Period: - - - to - till - - - - UnitDisplayStatusBarControl - - - WalletFrame - - No wallet has been loaded. - Ingen plånbok har fyllts på. - - - - WalletModel - - Send Coins - Skicka mynt - - - - WalletView - - &Export - &Exportera - - - Export the data in the current tab to a file - Exportera datan i den nuvarande fliken till en fil - - - Backup Wallet - Säkerhetskopiera Plånbok - - - Wallet Data (*.dat) - Plånboksdata (*.dat) - - - Backup Failed - Säkerhetskopieringen misslyckades - - - There was an error trying to save the wallet data to %1. - Det inträffade ett fel vid försöket att spara plånboksdatan till %1. - - - Backup Successful - Säkerhetskopiering lyckades - - - The wallet data was successfully saved to %1. - Plånbokens data sparades utan problem till %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Sammanbind till fastställd adress och avlyssna alltid den. Använd [host]:port-notation för IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Kan inte erhålla ett lås på datakatalog %s. Dash Core körs förmodligen redan. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend använder exakta denominationsmängder för att skicka medel, du kanske måste anonymisera fler mynt. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Gå in i regressionstestläget, vilken använder en särskild kedja i vilken block kan lösas direkt. - - - Error: Listening for incoming connections failed (listen returned error %s) - Fel: Lyssnande på inkommande anslutningar misslyckades (avlyssna återkommande fel %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Exekvera kommandot när ett viktigt larm mottas eller vi ser en jättelång förgrening (%s i cmd ersätts av ett meddelande) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Exekvera kommandot när en plånbokstransaktion ändras (%s i cmd ersätts av TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Exekvera kommandot när det bästa blocket ändras (%s i cmd ersätts av blockhash) - - - In this mode -genproclimit controls how many blocks are generated immediately. - I detta läge kontrollerar -genproclimit hur många block som genereras omedelbart. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX kräver indatan med åtminstone 6 bekräftelser. Du kanske måste vänta ett par minuter och försöka igen. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Namnge för att skapa en url för en KeePass-inmatning som lagrar plånbokslösenfrasen. - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Förfrågan till peer-adresser via DNS-lookup, om det är brist på adresser (standardvärde:1 unless -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Ställ in en maximal storlek för högprioriterade/lågavgiftstransaktioner i byte (standard: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Ställ in antalet skriptbekräftelsetrådar till (%u till %d, 0 = auto, <0 = lämna så många kärnor fria, standard: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Detta är en förhandsutgiven testkompilering - använd på egen risk - använd inte för utvinning eller handlarapplikationer. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Det går inte att binda till %s till denna dator. Dash Core körs förmodligen redan. - - - Unable to locate enough Darksend denominated funds for this transaction. - Kunde inte hitta tillräckliga Darksend-denominationsmedel för denna transaktion. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Kunde inte hitta tillräckliga Darksend-icke-denominationsmedel för denna transaktion som inte är likvärdiga 1000 DASH. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Varning: -paytxfee är väldigt högt satt! Detta är transaktionsavgiften du kommer att få betala om du skickar en transaktion. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Varning: Nätverket verkar inte hålla med helt och hållet! Några utvinnare verkar uppleva problem. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Varning: Vi verkar inte överensstämma med våra peers! Du kanske måste uppgradera eller så måste andra noder uppgradera. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Varning: Fel vid läsning av wallet.dat! Alla nycklar lästes korrekt men transaktionsdatan eller adressbokposterna kanske saknas eller är felaktiga. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Varning: wallet.dat är korrumperad, data räddad! Den ursprungliga wallet.dat är sparad som wallet.{timestamp}.bak i %s; om ditt saldo eller transaktioner är felaktiga kanske du måste återställa från en säkerhetskopia. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Du måste specificera en masternodepriv-nyckel i konfigurationen. Vänligen se dokumentationen för hjälp. - - - (default: 1) - (standardvärde: 1) - - - Accept command line and JSON-RPC commands - Acceptera kommandorad och JSON-RPC-kommandon - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Acceptera anslutningar utifrån (standardvärde: 1 om ingen -proxy eller -connect) - - - Add a node to connect to and attempt to keep the connection open - Lägg till en nod att ansluta till och försök att hålla anslutningen öppen - - - Allow DNS lookups for -addnode, -seednode and -connect - Tillåt DNS-lookup för -addnode, -seednode och -connect - - - Already have that input. - Har redan den indatan. - - - Attempt to recover private keys from a corrupt wallet.dat - Försök att återskapa privatnycklar från en korrumperad wallet.dat - - - Block creation options: - Blockskapandealternativ: - - - Can't denominate: no compatible inputs left. - Kan inte denominera: Inga kompatibla indatan kvar. - - - Cannot downgrade wallet - Kan inte nedgradera plånboken - - - Cannot resolve -bind address: '%s' - Kan inte lösa -bind address: '%s' - - - Cannot resolve -externalip address: '%s' - Kan inte lösa -externalip address: '%s' - - - Cannot write default address - Kan inte skriva standardadress - - - Collateral not valid. - Säkerhetsåtgärd ej giltig. - - - Connect only to the specified node(s) - Anslut endast till specifik(a) nod(er) - - - Connect to a node to retrieve peer addresses, and disconnect - Anslut till en nod för att återfå peer-adresser och koppla från - - - Connection options: - Anslutningsalternativ: - - - Corrupted block database detected - Korrumperad blockdatabas upptäcktes - - - Darksend options: - Darksend-alternativ: - - - Debugging/Testing options: - Avsöknings-/testalternativ: - - - Discover own IP address (default: 1 when listening and no -externalip) - Upptäck din egen IP-adress (standardvärde: 1 vid avlyssning och no -externalip) - - - Do not load the wallet and disable wallet RPC calls - Ladda inte plånboken och inaktivera plånboks-RPC-anrop - - - Do you want to rebuild the block database now? - Vill du återuppbygga blockdatabasen nu? - - - Done loading - Laddning färdig - - - Entries are full. - Inmatningarna är fyllda. - - - Error initializing block database - Fel vid initialisering av blockadatabas - - - Error initializing wallet database environment %s! - Fel vid initialisering av plånbokdatabasmiljö %s! - - - Error loading block database - Fel vid laddning av blockdatabas - - - Error loading wallet.dat - Fel vid laddning av wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Fel vid laddning av wallet.dat: Plånboken är korrumperad - - - Error opening block database - Fel vid öppnande av blockdatabas - - - Error reading from database, shutting down. - Fel vid läsning från databas, stänger ned. - - - Error recovering public key. - Fel vid återhämtning av publik nyckel. - - - Error - Fel - - - Error: Disk space is low! - Fel: Diskutrymmet är lågt! - - - Error: Wallet locked, unable to create transaction! - Fel: Plånbok låst, kan inte skapa en transaktion! - - - Error: You already have pending entries in the Darksend pool - Fel: Du har redan väntande inmatningar i Darksend-poolen - - - Failed to listen on any port. Use -listen=0 if you want this. - Kunde inte avlyssna någon port. Använd -listen=0 om du vill detta. - - - Failed to read block - Kunde inte läsa block - - - If <category> is not supplied, output all debugging information. - Om <category> inte finns, lägg ut all avsökningsinformation. - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Hittade obekräftade denominationsutdatan, kommer att vänta tills de bekräftar att fortsätta. - - - Importing... - Importerar... - - - Imports blocks from external blk000??.dat file - Importerar block från den externa blok000??.dat-fil-en - - - Incompatible mode. - Inkompatibelt läge. - - - Incompatible version. - Inkompatibel version. - - - Incorrect or no genesis block found. Wrong datadir for network? - Felaktig eller så hittades inget Genesis-block. Fel datadir för nätverket? - - - Information - Information - - - Initialization sanity check failed. Dash Core is shutting down. - Initialiseringstillståndkontroll misslyckades. Dash Core stängs ned. - - - Input is not valid. - Indata är inte giltig. - - - InstantX options: - InstantX-alternativ: - - - Insufficient funds. - Otillräckliga medel! - - - Invalid -onion address: '%s' - Ogiltig -onion-adress: '%s' - - - Invalid -proxy address: '%s' - Ogiltig -proxy-adress: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Ogiltig mängd för -minrelaytxfee=<amount>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Ogiltig mängd för -mintxfee=<amount>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' - Ogiltig mängd för -paytxfee=<amount>: '%s' - - - Invalid masternodeprivkey. Please see documenation. - Ogiltig masternodepriv-nyckel. Vänligen se dokumentationen. - - - Invalid private key. - Ogiltig privatnyckel. - - - Invalid script detected. - Ogiltigt skript hittades. - - - KeePassHttp id for the established association - KeePassHttp-id för den etablerade kopplingen - - - KeePassHttp key for AES encrypted communication with KeePass - KeePassHttp-nyckel för AES-krypterad kommunikation med KeePass - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Bibehåll som mest <n> icke-anslutningsbara transaktioner i minnet (standardvärde: %u) - - - Last Darksend was too recent. - Senaste Darksend gjordes för inte alltför länge sedan. - - - Loading addresses... - Laddar adresser... - - - Loading block index... - Laddar blockindex... - - - Loading wallet... (%3.2f %%) - Laddar plånbok... (%3.2f %%) - - - Loading wallet... - Laddar plånbok... - - - Masternode options: - Masternode-alternativ: - - - Masternode queue is full. - Masternode-kön är uppfylld. - - - Masternode: - Masternode: - - - Missing input transaction information. - Indatatransaktionsinformation fattas. - - - No funds detected in need of denominating. - Inga medel hittades som är i behov denominering. - - - No matching denominations found for mixing. - Inga matchande denominationer hittades för mixning. - - - Non-standard public key detected. - Icke-standard publik nyckel hittades. - - - Not compatible with existing transactions. - Inte kompatibel med nuvarande transaktioner. - - - Not enough file descriptors available. - Inte tillräckligt många tillgängliga fildeskriptorer. - - - Options: - Alternativ: - - - Password for JSON-RPC connections - Lösenord för JSON-RPC-anslutningar - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL-alternativ: (Se Bitcoin Wiki för SSL-inställningsinstruktioner) - - - RPC server options: - RPC-serveralternativ: - - - Randomly drop 1 of every <n> network messages - Släpp 1 av varje <n> nätverksmeddelande slumpmässigt - - - Randomly fuzz 1 of every <n> network messages - Ludda 1 av varje <n> nätverksmeddelande slumpmässigt - - - Rebuild block chain index from current blk000??.dat files - Återuppbygg blockkedjeindexet från den aktuella blk000??.dat-filen - - - Rescan the block chain for missing wallet transactions - Omskanna blockkedjan efter försvunna plånbokstransaktioner - - - Rescanning... - Omskannar... - - - Run in the background as a daemon and accept commands - Kör i bakgrunden som daemon och acceptera kommandon - - - Session not complete! - Sessionen är inte fullständig! - - - Set database cache size in megabytes (%d to %d, default: %d) - Ställ in databascachens storlek i megabytes (%d till %d, standardvärde: %d) - - - Set maximum block size in bytes (default: %d) - Ställ in maximal blockstorlek i bytes (standardvärde: %d) - - - Set the masternode private key - Ställ in masternodprivatnyckeln - - - Show all debugging options (usage: --help -help-debug) - Visa alla avsökningsalternativ (usage: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Förminska debug.log-filen vid klientuppstart (standardvärde 1 vid ingen -debug) - - - Signing failed. - Signering misslyckades. - - - Signing transaction failed - Transaktionssigneringen misslyckades - - - Specify data directory - Specificera datakatalog - - - Specify wallet file (within data directory) - Specificera plånboksfil (inom datakatologen) - - - Specify your own public address - Specificera din egen publika adress - - - This help message - Detta hjälpmeddelande - - - This is intended for regression testing tools and app development. - Detta är ämnat för regressionstestverktyg och apputveckling. - - - Transaction amount too small - Transaktionsmängden är för liten - - - Transaction amounts must be positive - Transaktionsmängder måste vara positiva - - - Transaction created successfully. - Transaktionen skapades utan problem. - - - Transaction fees are too high. - Transaktionsavgifter är för höga. - - - Transaction not valid. - Transaktionen är inte giltig. - - - Transaction too large - Transaktionen är för stor - - - Unable to bind to %s on this computer (bind returned error %s) - Kan inte binda %s till denna dator (bindande återgav ett fel %s) - - - Unable to sign spork message, wrong key? - Kan inte sporka meddelandet, fel nyckel? - - - Unknown network specified in -onlynet: '%s' - Okänt specificerat nätverk i -onlynet: '%s' - - - Upgrade wallet to latest format - Uppgradera plånboken till det senaste formatet - - - Use OpenSSL (https) for JSON-RPC connections - Använd OpenSSL (https) för JSON-RPC-anslutningar - - - Use UPnP to map the listening port (default: 1 when listening) - Använd UPnP för att kartlägga avlyssningsporten (standardvärde: 1 vid avlyssning) - - - Use the test network - Använd testnätverket - - - Username for JSON-RPC connections - Användarnamn för JSON-RPC-anslutningar - - - Value more than Darksend pool maximum allows. - Värdera mer än vad Darksends poolmaximum tillåter. - - - Verifying blocks... - Bekräftar block... - - - Verifying wallet... - Bekräftar plånbok... - - - Wallet %s resides outside data directory %s - Plånboken %s återfinns utanför datakatalogen %s - - - Wallet is locked. - Plånboken är låst. - - - Wallet options: - Plånboksalternativ: - - - Warning - Varning - - - Warning: This version is obsolete, upgrade required! - Varning: Versionen är förlegad, uppgradering krävs! - - - You need to rebuild the database using -reindex to change -txindex - Du måste återuppbygga databasen med -reindex för att ändra -txindex - - - Zapping all transactions from wallet... - Zappar alla transaktioner från plånboken... - - - on startup - vid uppstart - - - wallet.dat corrupt, salvage failed - wallet.dat är korrumperad, räddning misslyckades - - - \ No newline at end of file diff --git a/src/qt/locale/dash_vi.ts b/src/qt/locale/dash_vi.ts deleted file mode 100644 index 152a7178f9c0..000000000000 --- a/src/qt/locale/dash_vi.ts +++ /dev/null @@ -1,4390 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - Bấm phải chuột để sửa địa chỉ hoặc nhãn - - - Create a new address - Tạo một địa chỉ mới - - - &New - &Mới - - - Copy the currently selected address to the system clipboard - Chép địa chỉ đã được chọn vào vùng đệm clipboard - - - &Copy - &Sao chép - - - Delete the currently selected address from the list - Xoá địa chỉ đang được chọn khỏi danh sách - - - &Delete - &Xoá - - - Export the data in the current tab to a file - Kết xuất dữ liệu trong tab này sang một file - - - &Export - &Kết xuất - - - C&lose - Đó&ng - - - Choose the address to send coins to - Chọn địa chỉ để gửi tiền đến - - - Choose the address to receive coins with - Chọn địa chỉ để nhận tiền - - - C&hoose - C&họn - - - Sending addresses - Đia chỉ gửi - - - Receiving addresses - Địa chỉ nhận - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - Đây là các địa chỉ Dash của bạn để gửi thanh toán. Luôn luôn kiểm tra số tiền và địa chỉ nhận trước khi bạn gửi tiền. - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Đây là các địa chỉ Dash của bạn để nhận thanh toán. Gợi ý là sử dụng một địa chỉ nhận mới cho mỗi giao dịch. - - - &Copy Address - &Sao chép Địa chỉ - - - Copy &Label - Sao chép &Nhãn - - - &Edit - &Sửa - - - Export Address List - Kết xuất danh sách Địa chỉ - - - Comma separated file (*.csv) - File định dạng phân cách bởi dấu phẩy (*.csv) - - - Exporting Failed - Kết xuất không thành công - - - There was an error trying to save the address list to %1. Please try again. - Có lỗi xảy ra khi lưu các địa chỉ vào %1. Hãy thử lại. - - - - AddressTableModel - - Label - Nhãn - - - Address - Địa chỉ - - - (no label) - (không có nhãn) - - - - AskPassphraseDialog - - Passphrase Dialog - Khung hội thoại mật khẩu - - - Enter passphrase - Mời nhập mật khẩu - - - New passphrase - Mật khẩu mới - - - Repeat new passphrase - Nhập lại mật khẩu mới - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - Phục vụ để tắt tính năng chuyển tiền vô giá trị khi tài khoản của hệ điều hành bị xâm nhập. Không cung cấp đủ an ninh thực sự. - - - For anonymization only - Chỉ dùng cho mục đích vô danh - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - Nhập mật khẩu mới cho ví. <br/>Hãy sử dụng mật khẩu có <b>10 hoặc hơn các ký tự ngẫu nhiên</b>, hay <b>8 từ hoặc nhiều hơn</b>. - - - Encrypt wallet - Mã hoá ví - - - This operation needs your wallet passphrase to unlock the wallet. - Công việc này cần mật khẩu ví của bạn để mở khoá ví. - - - Unlock wallet - Mở khoá ví - - - This operation needs your wallet passphrase to decrypt the wallet. - Công việc này cần mật khẩu ví của bạn để giải mã ví. - - - Decrypt wallet - Giải mã ví - - - Change passphrase - Đổi mật khẩu - - - Enter the old and new passphrase to the wallet. - Hãy nhập mật khẩu cũ và mật khẩu mới cho ví. - - - Confirm wallet encryption - Xác nhận mã hoá ví - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - Chú ý: Nếu bạn mã hoá ví và mất mật khẩu, bạn sẽ <b>MẤT TẤT CẢ DASH CỦA BẠN</b>! - - - Are you sure you wish to encrypt your wallet? - Bạn có chắc là mình muốn mã hoá ví? - - - Wallet encrypted - Ví đã được mã hoá. - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - Dash sẽ được đóng lại bây giờ để hoàn thành tiến trình mã hoá. Hãy nhớ rằng mã hoá ví của bạn không thể hoàn toàn bảo vệ dash khỏi bị trộm bởi những mã độc lây nhiễm vào máy tính của bạn. - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - QUAN TRỌNG: Bất kỳ sao lưu nào mà bạn đã thực hiện trước với ví của bạn sẽ nên được thay thế bởi tệp Ví mới, được mã hoá. Vì lý do an ninh, những tệp sao lưu trước của ví không mã hoá sẽ trở nên vô nghĩa khi bạn bắt đầu sử dụng ví mới, có mã hoá. - - - Wallet encryption failed - Mã hoá ví không thành công - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Mã hoá ví bị lỗi vì lỗi bên trong của phần mềm. Ví của bạn không được mã hoá. - - - The supplied passphrases do not match. - Mật khẩu bạn cung cấp không tương xứng. - - - Wallet unlock failed - Mở khoá ví không thành công - - - The passphrase entered for the wallet decryption was incorrect. - Mật khẩu bạn nhập để giải mã ví không chính xác. - - - Wallet decryption failed - Giải mã ví không thành công - - - Wallet passphrase was successfully changed. - Mật khẩu ví đã được đổi thành công. - - - Warning: The Caps Lock key is on! - Cảnh báo: Khoá Caps Lock đang được bật! - - - - BitcoinGUI - - Dash Core - Dash Core - - - Wallet - - - - Node - Nút - - - &Overview - &Tổng thể - - - Show general overview of wallet - Hiển thị thông tin tổng thể của ví - - - &Send - &Gửi - - - Send coins to a Dash address - Gửi tiền vào địa chỉ Dash - - - &Receive - &Nhận - - - Request payments (generates QR codes and dash: URIs) - Yêu cầu thanh toán (sinh mã QR và dash: URIs) - - - &Transactions - Các &Giao dịch - - - Browse transaction history - Xem lịch sử giao dịch - - - E&xit - T&hoát - - - Quit application - Thoát ứng dụng - - - &About Dash Core - &Về Dash Core - - - Show information about Dash Core - Hiển thị thông tin về Dash Core - - - About &Qt - Về &QT - - - Show information about Qt - Hiển thị thông tin giới thiệu về Qt - - - &Options... - &Tuỳ chọn... - - - Modify configuration options for Dash - Thay đổi tuỳ chọn cấu hình cho Dash - - - &Show / Hide - Ẩ&n / Hiện - - - Show or hide the main Window - Hiển thị hoặc ẩn cửa sổ chính - - - &Encrypt Wallet... - &Mã hoá Ví... - - - Encrypt the private keys that belong to your wallet - Mã hoá khoá riêng mà thuộc về ví của bạn - - - &Backup Wallet... - &Sao lưu Ví... - - - Backup wallet to another location - Sao lưu ví vào vị trí khác - - - &Change Passphrase... - Đổi &Mật khẩu... - - - Change the passphrase used for wallet encryption - Đổi mật khẩu dùng để mã hoá ví - - - &Unlock Wallet... - &Mở khoá Ví... - - - Unlock wallet - Mở khoá ví - - - &Lock Wallet - &Khoá Ví - - - Sign &message... - Ký vào &thông điệp... - - - Sign messages with your Dash addresses to prove you own them - Ký vào thông điệp với địa chỉ Dash để chứng minh bạn là chủ của chúng - - - &Verify message... - &Kiểm tra thông điệp... - - - Verify messages to ensure they were signed with specified Dash addresses - Kiểm tra thông điệp để đảm bảo rằng nó đã được ký bằng địa chỉ Dash nhất định - - - &Information - &Thông tin - - - Show diagnostic information - Hiển thị thông tin chuẩn đoán - - - &Debug console - Giao diện gỡ rối - - - Open debugging console - Mở giao diện gỡ rối - - - &Network Monitor - Theo dõi &Mạng - - - Show network monitor - Hiển thị thông tin theo dõi mạng - - - &Peers list - &Các máy ngang cấp - - - Show peers info - Hiển thị thông tin về các máy ngang cấp - - - Wallet &Repair - &Sửa Ví - - - Show wallet repair options - Hiển thị các tuỳ chọn để sửa ví - - - Open &Configuration File - Mở Tệp &Cấu hình - - - Open configuration file - Mở tệp cấu hình - - - Show Automatic &Backups - Hiển thị chế độ Tự động &Sao lưu - - - Show automatically created wallet backups - Hiển thị những ví được sao lưu tự động - - - &Sending addresses... - &Gửi địa chỉ... - - - Show the list of used sending addresses and labels - Hiển thị danh sách các địa chỉ đã sử dụng và các nhãn - - - &Receiving addresses... - Địa chỉ nhận... - - - Show the list of used receiving addresses and labels - Hiển thị danh sách các địa chỉ đã sử dụng để nhận và các nhãn - - - Open &URI... - Mở &URI... - - - Open a dash: URI or payment request - Mở một dash: URI hoặc một yêu cầu thanh toán - - - &Command-line options - &Các Tuỳ chọn dòng lệnh - - - Dash Core client - Phần mềm Dash Core - - - Processed %n blocks of transaction history. - Xử lý được %n khối của các giao dịch đã qua. - - - Synchronizing additional data: %p% - Đang đồng bộ những dữ liệu bổ sung: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - Hiển thị hướng dẫn của Dash Core để có danh sách đầy đủ các tuỳ chọn dòng lệnh của Dash. - - - &File - &Tệp - - - &Settings - &Thiết đặt - - - &Tools - &Công cụ - - - &Help - &Trợ giúp - - - Tabs toolbar - Bảng Thanh công cụ - - - %n active connection(s) to Dash network - %n kết nối hiện thời tới mạng lưới của Dash - - - Synchronizing with network... - Đang đồng bộ với mạng lưới... - - - Importing blocks from disk... - Nhập các khối từ đĩa... - - - Reindexing blocks on disk... - Sắp xếp lại các khối trên đĩa... - - - No block source available... - Không thấy nguồn sẵn sàng của các khối... - - - Up to date - Mới nhất - - - %n hour(s) - %n giờ - - - %n day(s) - %n ngày - - - %n week(s) - %n tuần - - - %1 and %2 - %1 và %2 - - - %n year(s) - %n năm - - - %1 behind - %1 đằng sau - - - Catching up... - Đang nạp bộ đệm... - - - Last received block was generated %1 ago. - Khối vừa nhận đã được sinh ra từ %1. - - - Transactions after this will not yet be visible. - Các giao dịch sau đây sẽ chưa thể thấy được. - - - Error - Lỗi - - - Warning - Cảnh báo - - - Information - Thông tin - - - Sent transaction - Giao dịch gửi đi - - - Incoming transaction - Giao dịch nhận về - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - Ngày: %1 -Số tiền: %2 -Kiểu: %3 -Địa chỉ: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Ví <b>đã được mã hoá</b> và hiện tại <b>đã được mở</b> - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - Ví <b>đã được mã hoá</b> và hiện tại <b>đã được mở</b> chỉ để cho việc ẩn danh - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - Ví <b>đã được mã hoá</b> và hiện tại <b>đã được khoá</b> - - - - ClientModel - - Total: %1 (DS compatible: %2 / Enabled: %3) - Tổng số: %1 (Tương thích với DS: %2 / Sẵn sàng: %3) - - - Network Alert - Cảnh báo mạng - - - - CoinControlDialog - - Quantity: - Số lượng: - - - Bytes: - Bytes: - - - Amount: - Số tiền: - - - Priority: - Ưu tiên: - - - Fee: - Phí: - - - Coin Selection - Chọn lựa coin - - - Dust: - Bụi - - - After Fee: - Phí sau: - - - Change: - Trả lại: - - - (un)select all - (bỏ) chọn tất cả - - - Tree mode - Kiểu cây - - - List mode - Kiểu danh sách - - - (1 locked) - (1 khoá) - - - Amount - Số tiền - - - Received with label - Nhận được với nhãn - - - Received with address - Nhận được với địa chỉ - - - DS Rounds - Số vòng DS - - - Date - Ngày - - - Confirmations - Lượt xác nhận - - - Confirmed - Đã được xác nhận - - - Priority - Ưu tiên - - - Copy address - Sao chép địa chỉ - - - Copy label - Sao chép nhãn - - - Copy amount - Sao chép số tiền - - - Copy transaction ID - Sao chép mã giao dịch - - - Lock unspent - Khoá khoản chưa tiêu - - - Unlock unspent - Mở khoản chưa tiêu - - - Copy quantity - Sao chép số lượng - - - Copy fee - Sao chép phí - - - Copy after fee - Sao chép giá trị sau tính phí - - - Copy bytes - Sao chép các bytes - - - Copy priority - Sao chép ưu tiên - - - Copy dust - Sao chép bụi - - - Copy change - Sao chép tiền trả lại - - - highest - cao nhất - - - higher - cao hơn - - - high - cao - - - medium-high - cao-vừa - - - Can vary +/- %1 duff(s) per input. - Có thể thay đổi +/- %1 duff(s) cho mỗi đầu vào. - - - n/a - không áp dụng - - - medium - vừa - - - low-medium - thấp-vừa - - - low - thấp - - - lower - thấp hơn - - - lowest - thấp nhất - - - (%1 locked) - (%1 được khoá) - - - none - không có - - - yes - - - - no - không - - - This label turns red, if the transaction size is greater than 1000 bytes. - Nhãn này chuyển sang đỏ, nếu kích thước giao dịch lớn hơn 1000 bytes. - - - This means a fee of at least %1 per kB is required. - Điều này có nghĩa là cần một mức phí ít nhất %1 cho mỗi kB. - - - Can vary +/- 1 byte per input. - Có thể thay đổi +/-1 byte cho mỗi đầu vào - - - Transactions with higher priority are more likely to get included into a block. - Giao dịch với độ ưu tiên cao hơn có cơ hội nhiều hơn được đưa vào khối. - - - This label turns red, if the priority is smaller than "medium". - Nhãn này chuyển sang đỏ, nếu ưu tiên thấp hơn "trung bình". - - - This label turns red, if any recipient receives an amount smaller than %1. - Nhãn này chuyển sang đỏ, nếu bất kỳ bên nhận nào nhận một số tiền nhỏ hơn %1. - - - (no label) - (không có nhãn) - - - change from %1 (%2) - phần trả lại từ %1 (%2) - - - (change) - (phần trả lại) - - - - DarksendConfig - - Configure Darksend - Cấu hình Darksend - - - Basic Privacy - Mức Riêng tư Cơ bản - - - High Privacy - Mức Riêng tư Cao - - - Maximum Privacy - Mức Riêng tư Tối đa - - - Please select a privacy level. - Hãy chọn mức độ riêng tư. - - - Use 2 separate masternodes to mix funds up to 1000 DASH - Sử dụng 2 masternode khác nhau để trộn số tiền lên đến 1000 DASH - - - Use 8 separate masternodes to mix funds up to 1000 DASH - Sử dụng 8 masternode khác nhau để trộn số tiền lên đến 1000 DASH - - - Use 16 separate masternodes - Sử dụng 16 masternode khác nhau - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - Tuỳ chọn này là nhanh nhất và sẽ mất chi phí khoảng ~0.025 DASH để ẩn danh 1000 DASH - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - Tuỳ chọn này là tương đối nhanh và sẽ mất chi phí khoảng ~0.05 DASH để ẩn danh 1000 DASH - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1 DASH cho mỗi 1000 DASH bạn muốn ẩn danh. - - - This is the slowest and most secure option. Using maximum anonymity will cost - Đây là tuỳ chọn chậm nhất và an toàn nhất. Sử dụng mức vô danh cao nhất sẽ tốn kém - - - Darksend Configuration - Cấu hình Darksend - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend được thiết lập thành công về mức cơ bản (%1 và 2 vòng). Bạn có thể thay đổi nó bất cứ thời gian nào bằng cách mở màn hình cấu hình Dash. - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend được thiết lập thành công về mức cao (%1 và 8 vòng). Bạn có thể thay đổi nó bất cứ thời gian nào bằng cách mở màn hình cấu hình Dash. - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - Darksend được thiết lập thành công về mức tối đa (%1 và 16 vòng). Bạn có thể thay đổi nó bất cứ thời gian nào bằng cách mở màn hình cấu hình Dash. - - - - EditAddressDialog - - Edit Address - Sửa địa chỉ - - - &Label - &Nhãn - - - The label associated with this address list entry - Nhãn tương ứng với địa chỉ này trong danh sách đầu vào - - - &Address - Địa &chỉ - - - The address associated with this address list entry. This can only be modified for sending addresses. - Địa chỉ tương ứng với địa chỉ này trong danh sách đầu vào. Chỉ có thể thay đổi địa chỉ gửi đi. - - - New receiving address - Địa chỉ nhận mới - - - New sending address - Địa chỉ gửi mới - - - Edit receiving address - Sửa địa chỉ nhận - - - Edit sending address - Sửa địa chỉ gửi - - - The entered address "%1" is not a valid Dash address. - Địa chỉ vừa nhập "%1" không phải địa chỉ Dash hợp lệ. - - - The entered address "%1" is already in the address book. - Địa chỉ vừa nhập "%1" đã có trong danh sách địa chỉ. - - - Could not unlock wallet. - Không thể mở khoá ví. - - - New key generation failed. - Sinh khoá mới không thành công. - - - - FreespaceChecker - - A new data directory will be created. - Một thư mục dữ liệu mớ đã được tạo. - - - name - tên - - - Directory already exists. Add %1 if you intend to create a new directory here. - Thư mục đã tồn tại. Thêm %1 nếu bạn định tạo một thư mục mới tại đây. - - - Path already exists, and is not a directory. - Đường dẫn đã tồn tại, và nó không phải là thư mục. - - - Cannot create data directory here. - Không thể tạo thư mục dữ liệu ở đây. - - - - HelpMessageDialog - - Dash Core - Dash Core - - - version - phiên bản - - - (%1-bit) - (%1-bit) - - - About Dash Core - Về Dash Core - - - Command-line options - Các tuỳ chọn dòng lệnh - - - Usage: - Cách dùng: - - - command-line options - tuỳ chọn dòng lệnh - - - UI options - Tuỳ chọn giao diện - - - Choose data directory on startup (default: 0) - Chọn thư mục dữ liệu khi khởi động (ngầm định: 0) - - - Set language, for example "de_DE" (default: system locale) - Chọn ngôn ngữ, ví dụ "vn_VN" (ngầm định: theo hệ thống) - - - Start minimized - Bắt đầu thu nhỏ - - - Set SSL root certificates for payment request (default: -system-) - Đặt chứng thực gốc cho yêu cầu thanh toán (ngầm định: -hệ thống-) - - - Show splash screen on startup (default: 1) - Hiển thị màn hình giới thiệu khi khởi động (ngầm định: 1) - - - - Intro - - Welcome - Chào mừng - - - Welcome to Dash Core. - Chào mừng đến với Dash Core. - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - Đây là lần đầu tiên chương trình được khởi động, bạn có thể chọn nơi mà Dash Core sẽ lưu dữ liệu. - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - Dash Core sẽ tải và lưu một bản của sổ cái Dash. Ít nhất %1GB dữ liệu sẽ được lưu trong thư mục này, và nó sẽ tăng lên theo thời gian. Ví của bạn cũng sẽ được lưu trong thư mục này. - - - Use the default data directory - Sử dụng thư mục dữ liệu ngầm định - - - Use a custom data directory: - Sử dụng thư mục dữ liệu tuỳ chọn: - - - Dash Core - Dash Core - - - Error: Specified data directory "%1" cannot be created. - Lỗi: Thư mục bạn cọn "%1" không thể tạo được. - - - Error - Lỗi - - - %1 GB of free space available - %1 GB còn trống - - - (of %1 GB needed) - (của %1 GB cần đến) - - - - OpenURIDialog - - Open URI - Mở URI - - - Open payment request from URI or file - Mở yêu cầu thanh toán từ URI hoặc file - - - URI: - URI: - - - Select payment request file - Chọn file yêu cầ thanh toán - - - Select payment request file to open - Chọn tệp yêu cầu thanh toán để mở - - - - OptionsDialog - - Options - Các tuỳ chọn - - - &Main - &Chính - - - Automatically start Dash after logging in to the system. - Tự động khởi động Dash sau khi đăng nhập hệ thống. - - - &Start Dash on system login - &Khởi động Dash khi đăng nhập hệ thống - - - Size of &database cache - Kích thước của dữ liệu cache - - - MB - MB - - - Number of script &verification threads - Số lượng các luồng kịch bản kiểm tra - - - (0 = auto, <0 = leave that many cores free) - (0 = tự động, <0 = để đó rất nhiều lõi miễn phí) - - - Darksend rounds to use - Số vòng Darksend sử dụng - - - This amount acts as a threshold to turn off Darksend once it's reached. - Số lượng này hoạt động như là một ngưỡng để tắt Darksend một khi nó đạt đến. - - - Amount of Dash to keep anonymized - Lượng Dash muốn giữ vô danh - - - W&allet - &Ví - - - Accept connections from outside - Chấp nhận kết nối từ bên ngoài - - - Allow incoming connections - Cho phép các kết nối tới - - - Connect to the Dash network through a SOCKS5 proxy. - Kết nối với mạng lưới Dash thông qua một SOCK5 proxy. - - - &Connect through SOCKS5 proxy (default proxy): - &Kết nối thông qua SOCK5 proxy (proxy ngầm định): - - - Expert - Chuyên gia - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - Thiết lập này xác định số tiền cho mỗi master nodes mà đầu vào thông qua đó được ẩn danh.<br/>Càng có nhiều vòng ẩn danh thì sẽ cho mức độ riêng tư càng cao, nhưng nó cũng tốn nhiều phí hơn. - - - Whether to show coin control features or not. - Hiển thị hoặc không hiển thị tính năng coin control. - - - Enable coin &control features - Bật tính năng Coin &control - - - &Spend unconfirmed change - &Tiêu phần trả lại chưa được xác nhận - - - &Network - &Mạng - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - Tự động mở cổng phần mềm Dash trên rounter. Nó chỉ làm việc khi router của bạn hỗ trợ UPnP và nó phải được bật. - - - Map port using &UPnP - Ánh xạ cổng sử dụng &UPnP - - - Proxy &IP: - Proxy &IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - Địa chỉ IP của proxy (ví dụ: IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - &Cổng: - - - Port of the proxy (e.g. 9050) - Cổng của proxy (ví dụ: 9050) - - - &Window - &Cửa sổ - - - Show only a tray icon after minimizing the window. - Chỉ hiển thị biểu tượng ở khai sau khi thu nhỏ cửa sổ. - - - &Minimize to the tray instead of the taskbar - Thu &nhỏ về khay thay vì về thanh taskbar - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - Thu nhỏ thay vì thoát ứng dụng khi cửa sổ được đóng lại. Khi tuỳ chọn này được bật thì chương trình sẽ chỉ đóng sau khi chọn chức năng Thoát trong menu. - - - M&inimize on close - Thu &nhỏ khi đóng - - - &Display - &Hiển thị - - - User Interface &language: - &Ngôn ngữ người dùng: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - Ngôn ngữ người dùng có thể thiết lập ở đây. Thiết lập này sẽ có tác dụng sau khi khởi động lại Dash. - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - Ngôn ngữ ị thiếu hoặc việc dịch chưa hoàn tất? Tham gia dịch giúp tại đây: -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - Kiểu giao diện người dùng - - - &Unit to show amounts in: - Đơn vị &hiển thị số lượng: - - - Choose the default subdivision unit to show in the interface and when sending coins. - Chọn đơn vị phân khu mặc định để hiển thị trong giao diện và khi gửi tiền. - - - Decimal digits - Số các chữ số thập phân - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - Địa chỉ web của bên thứ ba (VD: chức năng kiểm tra số cái) mà nó xuất hiện trong tab giao dịch giống như các mục trong menu ngữ cảnh. %s trong địa chỉ web được thay thế bởi mã băm giao dịch. Nhiều địa chỉ web được phân cách bởi dấu gạch đứng |. - - - Third party transaction URLs - URLs của giao dịch bên thứ ba - - - Active command-line options that override above options: - Kích hoạt các tuỳ chọn dòng lệnh sẽ thay thế cho các tuỳ chọn trên: - - - Reset all client options to default. - Tái lập lại tất cả các tuỳ chọn về ngầm định. - - - &Reset Options - &Tái lập Tuỳ chọn - - - &OK - &OK - - - &Cancel - &Huỷ - - - default - ngầm định - - - none - không có - - - Confirm options reset - Xác nhận tái lập tuỳ chọn - - - Client restart required to activate changes. - Cần phải khởi động phần mềm để kích hoạt các thay đổi. - - - Client will be shutdown, do you want to proceed? - Phần mềm sẽ được tắt, bạn có muốn tiến hành? - - - This change would require a client restart. - Thay đổi này có thể cần phải khởi động lại phần mềm. - - - The supplied proxy address is invalid. - Địa chỉ proxy được cung cấp không hợp lệ. - - - - OverviewPage - - Form - Biểu mẫu - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - Thông tin được hiển thị có thể đã lỗi thời. Ví của bạn sẽ tự động đồng bộ với mạng lưới Dash sau khi kết nối được thiết lập, tuy nhiên quá trình này chưa hoàn thành. - - - Available: - Sẵn sàng: - - - Your current spendable balance - Số dư có thể chi tiêu của bạn - - - Pending: - Đang chờ: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - Tổng của những giao dịch chưa được xác nhận, và do đó chưa được tính vào số dư có thể tiêu được - - - Immature: - Chưa chín muồi: - - - Mined balance that has not yet matured - Số dư khai thác được chưa được xác nhận đủ - - - Balances - Số dư - - - Unconfirmed transactions to watch-only addresses - Các giao dịch chưa được xác nhận cho các địa chỉ chỉ để theo dõi - - - Mined balance in watch-only addresses that has not yet matured - Số dư đào được trong các địa chỉ chỉ theo dõi nhưng chưa sẵn sàng để tiêu được - - - Total: - Tổng: - - - Your current total balance - Tổng số dư hiện tại của bạn - - - Current total balance in watch-only addresses - Tổng số dư hiện tại trong các địa chỉ chỉ theo dõi - - - Watch-only: - Chỉ theo dõi: - - - Your current balance in watch-only addresses - Số dư hiện tại của bạn trong địa chỉ chỉ theo dõi - - - Spendable: - Có thể tiêu được: - - - Status: - Tình trạng: - - - Enabled/Disabled - Bật/Tắt - - - Completion: - Hoàn thành: - - - Darksend Balance: - Số dư cho Darksend: - - - Amount and Rounds: - Số tiền và số vòng: - - - 0 DASH / 0 Rounds - 0 DASH / 0 Vòng - - - Submitted Denom: - Mệnh giá được gửi: - - - n/a - không áp dụng - - - Darksend - Darksend - - - Recent transactions - Các giao dịch gần đây - - - Start/Stop Mixing - Bắt đầu/Tắt việc trộn - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - Mệnh giá mà bạn gửi cho Masternode. <br>Để trộn, những người dùng khác cũng cần gửi chính xác dùng loại mệnh giá đó. - - - (Last Message) - (Thông điệp cuối) - - - Try to manually submit a Darksend request. - Thử gửi yêu cầu Darksend bằng tay. - - - Try Mix - Thử Trộn - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - Tái lập lại trạng thái hiện tại của Darksend (có thể gián đoạn Darksend nếu nó đang trong quá trình trộn, điều đó có thể làm bạn bị mất tiền!) - - - Reset - Khởi động lại - - - out of sync - không đồng bộ - - - Disabled - Đã tắt - - - Start Darksend Mixing - Bắt đầu trộn Darksend - - - Stop Darksend Mixing - Tắt trộn Darksend - - - No inputs detected - Phát hiện không có đầu vào - - - %n Rounds - %n Vòng - - - Overall progress - Tiến trình chung - - - Denominated - Đã chia mệnh giá - - - Anonymized - Đã được ẩn danh - - - Denominated inputs have %5 of %n rounds on average - Mệnh giá đầu vào có %5 của %n vòng trên trung bình - - - Found enough compatible inputs to anonymize %1 - Đã tìm được đủ đầu vào tương thích để ẩn danh hoá %1 - - - Mixed - Đã trộn - - - Enabled - Đã bật - - - Last Darksend message: - - Thông điệp Darksend cuối cùng: - - - - N/A - Không áp dụng - - - Darksend was successfully reset. - Darksend vừa được tái lập thành công. - - - If you don't want to see internal Darksend fees/transactions select "Most Common" as Type on the "Transactions" tab. - Nếu bạn không muốn thấy các thông tin bên trong về Darksend phí/giao dịch thì hãy chọn "Thông dụng nhất" làm Kiểu trong trang "Giao dịch". - - - Darksend requires at least %1 to use. - Darksend cần ít nhất %1 để sử dụng. - - - Wallet is locked and user declined to unlock. Disabling Darksend. - Ví đã được khoá và người dùng từ chối mở khoá. Đang tắt Darksend. - - - - PaymentServer - - Payment request error - Yêu cầu thanh toán bị lỗi - - - Cannot start dash: click-to-pay handler - Không thể khởi động dash: trình xử lý click-to-pay - - - URI handling - xử lý URI - - - Payment request fetch URL is invalid: %1 - Yêu cầu thanh toán lấy URL là không hợp lệ: %1 - - - Payment request file handling - Thanh toán cần file xử lý - - - Invalid payment address %1 - Địa chỉ thanh toán không hợp lệ %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - URI không thể phân tích. Nó có thể bởi địa chỉ Dash không hợp lệ hoặc thông số URI dị hình. - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - Tệp yêu cầu thanh toán không thể đọc được. Nó có thể là nguyên nhân bởi tệp thanh toán không hợp lệ. - - - Payment request rejected - Yêu cầu giao dịch bị từ chối - - - Payment request network doesn't match client network. - Mạng yêu cầu thanh toán không tương xứng với mạng của phần mềm. - - - Payment request has expired. - Yêu cầu thanh toán đã hết hạn. - - - Payment request is not initialized. - Yêu cầu thanh toán không được khởi tạo. - - - Unverified payment requests to custom payment scripts are unsupported. - Yêu cầu thanh toán chưa được xác minh để tùy chỉnh các kịch bản thanh toán không được hỗ trợ. - - - Requested payment amount of %1 is too small (considered dust). - Yêu cầu thanh toán khoản tiền của %1 là quá nhỏ (được xem là bụi). - - - Refund from %1 - Trả lại từ %1 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - Yêu cầu thanh toán %1 quá lớn (%2 bytes, cho phép %3 bytes) - - - Payment request DoS protection - Giao dịch yêu cầu bảo vệ tấn công từ chối dịch vụ - - - Error communicating with %1: %2 - Lỗi kết nối với %1: %2 - - - Payment request cannot be parsed! - Yêu cầu thanh toán không thể xử lý! - - - Bad response from server %1 - Phản hồi xấu từ máy chủ %1 - - - Network request error - Yêu cầu mạng bị lỗi - - - Payment acknowledged - Thanh toán được ghi nhận - - - - PeerTableModel - - Address/Hostname - Địa chỉ/Máy trạm - - - User Agent - User Agent - - - Ping Time - Thời gian phản hồi - - - - QObject - - Amount - Số lượng - - - Enter a Dash address (e.g. %1) - Hãy nhập một địa chỉ Dash (VD: %1) - - - %1 d - %1 giờ - - - %1 h - %1 giờ - - - %1 m - %1 phút - - - %1 s - %1 giây - - - NETWORK - MẠNG - - - UNKNOWN - KHÔNG XÁC ĐỊNH - - - None - Không - - - N/A - N/A - - - %1 ms - %1 ms - - - - QRImageWidget - - &Save Image... - &Lưu ảnh... - - - &Copy Image - &Sao chép ảnh - - - Save QR Code - &Lưu mã QR - - - PNG Image (*.png) - Ảnh dạng PNG (*.png) - - - - RPCConsole - - Tools window - Cửa sổ công cụ - - - &Information - &Thông tin - - - General - Chung chung - - - Name - Tên - - - Client name - Phiên bản - - - N/A - Không áp dụng - - - Number of connections - Số kết nối - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - Mở file nhật kỹ lỗi Dash từ thư mục hiện tại. Nó có thể mất vài giây trong trường hợp file log lớn. - - - &Open - &Mở - - - Startup time - Thời gian khởi động - - - Network - Mạng - - - Last block time - Thời gian block cuối cùng - - - Debug log file - Debug log file - - - Using OpenSSL version - Sử dụng phiên bản OpenSSL - - - Build date - Ngày xây dựng - - - Current number of blocks - Số khối hiện tại - - - Client version - Phiên bản - - - Using BerkeleyDB version - Sử dụng BerkeleyDB version - - - Block chain - Block chain - - - Number of Masternodes - Số lượng Masternodes - - - &Console - &Console - - - Clear console - Xoá console - - - &Network Traffic - &Lưu lượng mạng - - - &Clear - &Xoá - - - Totals - Tổng - - - Received - Đã nhận - - - Sent - Đã gửi - - - &Peers - &Máy ngang cấp - - - Select a peer to view detailed information. - Hãy chọn một máy đồng cấp để xem thông tin chi tiết. - - - Direction - Hướng - - - Version - Phiên bản - - - User Agent - User Agent - - - Services - Dịch vụ - - - Starting Height - Độ cao khởi đầu - - - Sync Height - Sync Height - - - Ban Score - Điểm cấm - - - Connection Time - Thời gian kết nối - - - Last Send - Lần gửi cuối - - - Last Receive - Lần nhận cuối - - - Bytes Sent - Bytes Gửi - - - Bytes Received - Bytes Nhận - - - Ping Time - Thời gian phản hồi - - - &Wallet Repair - Sửa &Ví - - - Salvage wallet - Cứu ví - - - Rescan blockchain files - Quét lại file blockchain - - - Recover transactions 1 - Phục hồi các giao dịch 1 - - - Recover transactions 2 - Phục hồi các giao dịch 2 - - - Upgrade wallet format - Nâng cấp định dạng ví - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: Thử phục hồi khoá riêng từ tệp wallet.dat bị lỗi. - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: Quét lại blockchain để tìm những giao dịch bị thiếu. - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: Phục hồi các giao dịch từ blockchain (giữ các meta-data, ví dụ: chủ tải khoản). - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: Phục hồi tất cả các giao dịch từ blockchain (bỏ đi các meta-data). - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: Nâng cấp ví lên định dạng mới nhất khi khởi động. (Chú ý: điều này KHÔNG có nghĩa là nâng cấp bản thân phần mềm ví) - - - Wallet repair options. - Các tuỳ chọn sửa ví. - - - Rebuild index - Lập lại chỉ mục - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex: Tái lập lại chỉ mục cho chuỗi khối từ tệp hiện tại blk000??.dat - - - In: - Vào: - - - Out: - Ra: - - - Welcome to the Dash RPC console. - Chào mừng đến với giao tiếp Dash RPC - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Sử dụng các phím mũi tên lên và xuống để xem lịch sử, và <b>Ctrl-L</b> để xoá màn hình. - - - Type <b>help</b> for an overview of available commands. - Gõ <b>help</b> để xem tổng thể các lệnh có thể dùng. - - - %1 B - %1 B - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - via %1 - theo %1 - - - never - không bao giờ - - - Inbound - Kết nối về - - - Outbound - Kết nối đi - - - Unknown - Không xác định - - - Fetching... - Đang tìm... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - Sử dụng lại địa chỉ đã được sử dụng để nhận trước đây.<br>Sử dụng lại địa chỉ nảy sinh vấn đề an ninh và riêng tư.<br>Đừng sử dụng nó trừ khi bạn tạo lại yêu cầu thanh toán mà bạn đã làm trước đây. - - - R&euse an existing receiving address (not recommended) - Tái &sử dụng lại địa chỉ nhận đã có (không khuyến khích) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - Một thông điệp tuỳ chọn để đính vào yêu cầu thanh toán, nó sẽ hiển thị khi yêu cầu được mở. Chú ý: Thông điệp sẽ không được gửi thông qua mạng lưới Dash. - - - &Message: - &Thông điệp: - - - An optional label to associate with the new receiving address. - Một nhãn tuỳ chọn để liên kết với địa chỉ nhận mới. - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - Một thông điệp tuỳ chọn để đính vào yêu cầu thanh toán, nó sẽ hiển thị khi yêu cầu được mở.<br>Chú ý: Thông điệp sẽ không được gửi thông qua mạng lưới Dash. - - - Use this form to request payments. All fields are <b>optional</b>. - Sử dụng biểu mẫu này để yêu cầu thanh toán. Tất cả các trường đều là <b>không bắt buộc</b>. - - - &Label: - &Nhãn: - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - Một tuỳ chọn về số tiền yêu cầu. Để nó trống hoặc bằng không để không yêu cầu một số tiền cụ thể. - - - &Amount: - &Số tiền: - - - &Request payment - &Yêu cầu thanh toán - - - Clear all fields of the form. - Xoá tất cả các ô. - - - Clear - Xoá - - - Requested payments history - Xem lịch sử thanh toán - - - Show the selected request (does the same as double clicking an entry) - Hiển thị những yêu cầu được chọn (giống như click đúp vào mỗi thành phần) - - - Show - Xem - - - Remove the selected entries from the list - Xoá thành phần được chọn khỏi danh sách - - - Remove - Xoá - - - Copy label - Sao chép nhãn - - - Copy message - Sao chép thông điệp - - - Copy amount - Sao chép số tiền - - - - ReceiveRequestDialog - - QR Code - Mã QR - - - Copy &URI - Copy &URI - - - Copy &Address - Copy địa chỉ - - - &Save Image... - &Lưu ảnh... - - - Request payment to %1 - Yêu cầu thanh toán tới %1 - - - Payment information - Thông tin thanh toán - - - URI - URI - - - Address - Địa chỉ - - - Amount - Số tiền - - - Label - Nhãn - - - Message - Thông điệp - - - Resulting URI too long, try to reduce the text for label / message. - Kết quả là URI quá dài, hãy thử rút gọn chữ trong nhãn / thông điệp. - - - Error encoding URI into QR Code. - Lỗi mã hoá URI thành mã QR. - - - - RecentRequestsTableModel - - Date - Ngày - - - Label - Nhãn - - - Message - Thông điệp - - - Amount - Số tiền - - - (no label) - (không có nhãn) - - - (no message) - (không thông điệp) - - - (no amount) - (không số tiền) - - - - SendCoinsDialog - - Send Coins - Gửi tiền - - - Coin Control Features - Tính năng Coin Control - - - Inputs... - Đầu vào... - - - automatically selected - tự động chọn - - - Insufficient funds! - Không đủ tiền! - - - Quantity: - Số lượng: - - - Bytes: - Bytes: - - - Amount: - Số tiền: - - - Priority: - Ưu tiên: - - - medium - vừa - - - Fee: - Phí: - - - Dust: - Bụi - - - no - không - - - After Fee: - Phí sau: - - - Change: - Trả lại: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Nếu nó được kích hoạt, nhưng địa chỉ tiền nhận lại là trống hoặc không hợp lệ, thì tiền lẻ trả lại sẽ được gửi đến một địa chỉ được sinh mới. - - - Custom change address - Thay đổi địa chỉ tiền trả lại - - - Transaction Fee: - Phí giao dịch - - - Choose... - Chọn... - - - collapse fee-settings - Thu gọn các thiết lập về phí - - - Minimize - Tối thiểu hoá - - - per kilobyte - mỗi kilobyte - - - total at least - tổng ít nhất - - - (read the tooltip) - (xem gợi ý) - - - Recommended: - Gợi ý: - - - Custom: - Tuỳ chỉnh: - - - Confirmation time: - Thời gian xác thực: - - - normal - bình thường - - - fast - nhanh - - - Send as zero-fee transaction if possible - Gửi như là giao dịch không phí nếu có thể - - - (confirmation may take longer) - (xác thưc có thể mất lâu hơn) - - - Confirm the send action - Xác nhận việc gửi - - - S&end - &Gửi - - - Clear all fields of the form. - Xoá tất cả các ô. - - - Clear &All - Xoá &Tất cả - - - Send to multiple recipients at once - Gửi đến nhiều địa chỉ một lúc - - - Add &Recipient - Thêm &Người nhận - - - Darksend - Darksend - - - InstantX - InstantX - - - Balance: - Số dư: - - - Copy quantity - Sao chép số lượng - - - Copy amount - Sao chép số tiền - - - Copy fee - Sao chép phí - - - Copy after fee - Sao chép giá trị sau tính phí - - - Copy bytes - Sao chép bytes - - - Copy priority - Sao chép ưu tiên - - - Copy dust - Sao chép bụi - - - Copy change - Sao chép tiền trả lại - - - using - sử dụng - - - anonymous funds - các khoản tiền ẩn danh - - - (darksend requires this amount to be rounded up to the nearest %1). - (darksend yêu cầu số tiền này sẽ được làm tròn đến gần %1) - - - any available funds (not recommended) - bất kỳ khoản tiền sẵn nào (gợi ý không nên) - - - and InstantX - và InstantX - - - %1 to %2 - %1 đến %2 - - - Are you sure you want to send? - Bạn có chắc mình muốn gửi? - - - are added as transaction fee - được thêm vào như là phí giao dịch - - - Total Amount = <b>%1</b><br />= %2 - Tổng số tiền = <b>%1</b><br />= %2 - - - Confirm send coins - Xác nhận việc gửi tiền - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - Mức phí cao hơn %1 lần so với %2 cho mỗi kB được xem là mức phí rất cao. - - - Estimated to begin confirmation within %n block(s). - Ước lượng để bắt đầu xác thực trong vòng %n khối. - - - The recipient address is not valid, please recheck. - Địa chỉ nhận không hợp lệ, hãy kiểm tra lại. - - - <b>(%1 of %2 entries displayed)</b> - <b>(%1 của %2 các thành phần được hiển thị)</b> - - - The amount to pay must be larger than 0. - Số tiền thanh toán phải lớn hơn 0. - - - The amount exceeds your balance. - Số tiền này lớn hơn số dư của bạn. - - - The total exceeds your balance when the %1 transaction fee is included. - Tổng số lớn hơn số dư của bạn khi tính cả %1 phí giao dịch. - - - Duplicate address found, can only send to each address once per send operation. - Thấy trùng địa chỉ, chỉ có thể gửi cho mỗi địa chỉ một lần trong một giao dịch gửi. - - - Transaction creation failed! - Tạo giao dịch không thành công! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - Giao dịch đã bị từ chối! Điều này có thể xảy ra khi một số tiền trong ví của bạn đã được tiêu, ví dụ như là nếu bạn sử dụng một bản sao của wallet.dat và tiền đã được tiêu nhưng bản khác của ví nhưng lại chưa được đánh dấu đã tiêu trong bản này. - - - Error: The wallet was unlocked only to anonymize coins. - Lỗi: Ví vừa được mở chỉ cho việc ẩn danh tiền. - - - Pay only the minimum fee of %1 - Thanh toán chỉ mức phí tối thiểu của %1 - - - Warning: Invalid Dash address - Cảnh báo: Địa chỉ Dash không hợp lệ - - - Warning: Unknown change address - Cảnh báo: Không biết địa chỉ trả lại - - - (no label) - (không có nhãn) - - - - SendCoinsEntry - - This is a normal payment. - Đây là giao dịch thông thường. - - - Pay &To: - Trả &Cho - - - The Dash address to send the payment to - Địa chỉ Dash để gửi thanh toán - - - Choose previously used address - Chọn địa chỉ đã sử dụng trước - - - Alt+A - Alt+A - - - Paste address from clipboard - Dán địa chỉ từ clipboard - - - Alt+P - Alt+P - - - Remove this entry - Xoá thành phần này - - - &Label: - &Nhãn: - - - Enter a label for this address to add it to the list of used addresses - Nhập nhãn cho địa chỉ này để đưa vào danh sách địa chỉ đã dùng - - - A&mount: - &Số tiền: - - - Message: - Thông điệp: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - Một thông điệp được đính với dash: URI đó sẽ được lưu trữ với các giao dịch cho các bạn tham khảo. Lưu ý: Thông điệp này sẽ không được gửi qua mạng Dash. - - - This is an unverified payment request. - Đây là yêu cầu thanh toán chưa được xác thực. - - - Pay To: - Trả cho: - - - Memo: - Ghi nhớ: - - - This is a verified payment request. - Đây là một yêu cầu thanh toán được xác thực. - - - Enter a label for this address to add it to your address book - Nhập nhãn cho địa chỉ để thêm nó vào sổ địa chỉ của bạn. - - - - ShutdownWindow - - Dash Core is shutting down... - Dash Core đang được tắt... - - - Do not shut down the computer until this window disappears. - Đừng tắt máy tính cho đến khi cửa sổ này biến mất. - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - Chữ ký - Ký / Kiểm tra Thông điệp - - - &Sign Message - &Ký thông điệp - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - Bạn có thể ký vào thông điệp với địa chỉ của bạn để chứng minh bạn là chủ của nó. Hãy cẩn thận không ký vào những gì mơ hồ, như là thứ lừa đảo để lừa bạn ký xác nhận của bạn vào đó cho họ. Chỉ ký vào những gì mà bạn hoàn thoàn đồng ý. - - - The Dash address to sign the message with - Địa chỉ Dash để ký cho thông điệp - - - Choose previously used address - Chọn địa chỉ đã dùng - - - Alt+A - Alt+A - - - Paste address from clipboard - Dán địa chỉ từ clipboard - - - Alt+P - Alt+P - - - Enter the message you want to sign here - Nhập vào thông điệp mà bạn muốn ký tại đây - - - Signature - Chữ ký - - - Copy the current signature to the system clipboard - Copy chữ ký hiện tại vào bộ đệm của hệ thống - - - Sign the message to prove you own this Dash address - Ký vào thông điệp để chứng tỏ bạn sở hữu địa chỉ Dash - - - Sign &Message - &Ký thông điệp - - - Reset all sign message fields - Tái lập lại tất cả các trường cần ký - - - Clear &All - Xoá &tất cả - - - &Verify Message - &Xác thực Thông điệp - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - Hãy nhập địa chỉ ký, thông điệp (hãy chắc chắn rằng bạn copy cả các dấu xuống dòng, dấu cách, tab,... một cách chính xác) và chữ ký dưới đây để xác thực cho thông điệp. Hãy cẩn thận không thêm vào chữ ký hơn so với bản thân nó trong thông điệp đã ký, để tránh bị đánh lừa bởi kiểu tấn công người trung gian. - - - The Dash address the message was signed with - Địa chỉ Dash mà thông điệp được ký bởi - - - Verify the message to ensure it was signed with the specified Dash address - Kiểm tra lại thông điệp để đảm bảo rằng nó được ký với địa chỉ Dash cụ thể - - - Verify &Message - Xác thực &Thông điệp - - - Reset all verify message fields - Tái lập lại tất cả các trường kiểm tra - - - Click "Sign Message" to generate signature - Bấm "Ký Thông điệp" để sinh chữ ký - - - The entered address is invalid. - Địa chỉ vừa nhập không hợp lệ. - - - Please check the address and try again. - Hãy kiểm tra địa chỉ và thử lại. - - - The entered address does not refer to a key. - Địa chỉ bạn nhập không đề cập đến một khoá. - - - Wallet unlock was cancelled. - Mở khoá ví bị huỷ bỏ. - - - Private key for the entered address is not available. - Khoá riêng cho địa chỉ vừa nhập không có. - - - Message signing failed. - Ký vào thông điệp thất bại. - - - Message signed. - Thông điệp đã được ký. - - - The signature could not be decoded. - Chữ ký không thể giải mã được. - - - Please check the signature and try again. - Hãy kiểm tra chữ ký và thử lại. - - - The signature did not match the message digest. - Chữ ký không tương xứng với nội dung thông điệp. - - - Message verification failed. - Không thể xác thực thông điệp. - - - Message verified. - Thông điệp đã được xác thực. - - - - SplashScreen - - Dash Core - Dash Core - - - Version %1 - Phiên bản %1 - - - The Bitcoin Core developers - Nhóm phát triển Bitcoin Core - - - The Dash Core developers - Nhóm phát triển Dash Core - - - [testnet] - [mạng thử] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - Mở cho %n khối nữa - - - Open until %1 - Mở đến khi %1 - - - conflicted - xung đột - - - %1/offline (verified via instantx) - %1/ngắt kết nối (đã được kiểm tra qua instantx) - - - %1/confirmed (verified via instantx) - %1/đã được xác nhận (đã được kiểm tra qua instantx) - - - %1 confirmations (verified via instantx) - %1 xác nhận (đã được kiểm tra qua instantx) - - - %1/offline - %1/ngắt kết nối - - - %1/unconfirmed - %1/chưa xác nhận - - - %1 confirmations - %1 xác nhận - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/mất kết nối (Đang trong tiến trình kiểm tra InstantX - %2 trên %3 các chữ ký) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/được xác nhận (Đang trong tiến trình kiểm tra InstantX - %2 trên %3 các chữ ký) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 xác nhận (Đang trong tiến trình kiểm tra InstantX - %2 trên %3 các chữ ký) - - - %1/offline (InstantX verification failed) - %1/mất kết nối (Thất bại trong việc kiểm tra InstantX) - - - %1/confirmed (InstantX verification failed) - %1/đã được xác nhận (Thất bại trong việc kiểm tra InstantX) - - - Status - Trạng thái - - - , has not been successfully broadcast yet - , đã không được phát sóng thành công - - - , broadcast through %n node(s) - , quảng bá thông qua %n điểm nút - - - Date - Ngày - - - Source - Nguồn - - - Generated - Đã được sinh - - - From - Từ - - - unknown - không biết - - - To - Đến - - - own address - địa chỉ của mình - - - watch-only - chỉ theo dõi - - - label - nhãn - - - Credit - - - - matures in %n more block(s) - mãn hạn trong %n khối nữa - - - not accepted - không chấp nhận - - - Debit - Nợ - - - Total debit - Tổng nợ - - - Total credit - Tổng có - - - Transaction fee - Phí giao dịch - - - Net amount - Số tiền chưa gồm phí - - - Message - Thông điệp - - - Comment - Bình luận - - - Transaction ID - Mã giao dịch - - - Merchant - Người bán - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - Coin được tạo phải được trưởng thành %1 khối trước khi chúng có thể được tiêu. Khi bạn sinh khối này, nó được quảng bá trong mạng để thêm vào chuỗi khối. Nếu nó không được đưa vào chuỗi, trạng thái của nó được chuyển thành "không được chấp nhận" và sẽ không thể tiêu được. Điều này thỉnh thoảng có xảy ra nếu những nút khác cũng sinh trong vòng vài giây với khối của bạn. - - - Debug information - Thông tin gỡ rối - - - Transaction - Giao dịch - - - Inputs - Đầu vào - - - Amount - Số tiền - - - true - đúng - - - false - sai - - - - TransactionDescDialog - - Transaction details - Chi tiết giao dịch - - - This pane shows a detailed description of the transaction - Bảng này hiển thị mô tả chi tiết về giao dịch - - - - TransactionTableModel - - Date - Ngày - - - Type - Kiểu - - - Address - Địa chỉ - - - Open for %n more block(s) - Mở cho %n khối nữa - - - Open until %1 - Mở đến khi %1 - - - Offline - Ngắt kết nối - - - Unconfirmed - Chưa xác thực - - - Confirming (%1 of %2 recommended confirmations) - Đang xác nhận (%1 của %2 xác nhận được đề nghị) - - - Confirmed (%1 confirmations) - Được xác nhận (%1 xác nhận) - - - Conflicted - Xung đột - - - Immature (%1 confirmations, will be available after %2) - Chưa hoàn thành (%1 xác nhận, sẽ sẵn sàng sau %2) - - - This block was not received by any other nodes and will probably not be accepted! - Khối này đã không nhận được bởi bất kỳ các nút nào khác và có thể sẽ không được chấp nhận! - - - Generated but not accepted - Đã sinh nhưng không được chấp nhận - - - Received with - Nhận với - - - Received from - Nhận từ - - - Received via Darksend - Nhận qua Darksend - - - Sent to - Gửi đến - - - Payment to yourself - Trả cho bản thân bạn - - - Mined - Được đào - - - Darksend Denominate - Darksend Denominate - - - Darksend Collateral Payment - Thanh toán Darksend Collateral - - - Darksend Make Collateral Inputs - Darksend tạo đầu vào Collateral - - - Darksend Create Denominations - Darksend tạo các mệnh giá - - - Darksent - Darksent - - - watch-only - chỉ theo dõi - - - (n/a) - (không áp dụng) - - - Transaction status. Hover over this field to show number of confirmations. - Trạng thái giao dịch: Di chuột qua ô này để hiển thị số lần xác nhận. - - - Date and time that the transaction was received. - Thời gian giao dịch đã được nhận. - - - Type of transaction. - Kiểu giao dịch. - - - Destination address of transaction. - Địa chỉ đích của giao dịch. - - - Amount removed from or added to balance. - Lượng tiền được gỡ bỏ hoặc thêm vào số dư. - - - - TransactionView - - All - Tất cả - - - Today - Hôm nay - - - This week - Tuần này - - - This month - Tháng này - - - Last month - Tháng gần nhất - - - This year - Năm nay - - - Range... - Khoảng... - - - Most Common - Phổ biến nhất - - - Received with - Nhận với - - - Sent to - Gửi đến - - - Darksent - Darksent - - - Darksend Make Collateral Inputs - Darksend tạo đầu vào Collateral - - - Darksend Create Denominations - Darksend tạo các mệnh giá - - - Darksend Denominate - Darksend Denominate - - - Darksend Collateral Payment - Thanh toán Darksend Collateral - - - To yourself - Đến bản thân bạn - - - Mined - Được đào - - - Other - Khác - - - Enter address or label to search - Nhập địa chỉ hoặc nhãn để tìm - - - Min amount - Số tiền tối thiểu - - - Copy address - Sao chép địa chỉ - - - Copy label - Sao chép nhãn - - - Copy amount - Sao chép số tiền - - - Copy transaction ID - Sao chép mã giao dịch - - - Edit label - Sửa nhãn - - - Show transaction details - Xem chi tiết giao dịch - - - Export Transaction History - Kết xuất Lịch sử Giao dịch - - - Comma separated file (*.csv) - File định dạng phân cách bởi dấu phẩy (*.csv) - - - Confirmed - Đã được xác nhận - - - Watch-only - Chỉ theo dõi - - - Date - Ngày - - - Type - Kiểu - - - Label - Nhãn - - - Address - Địa chỉ - - - ID - - - - Exporting Failed - Kết xuất không thành công - - - There was an error trying to save the transaction history to %1. - Có một lỗi xảy ra khi lưu lịch sử giao dịch vào %1. - - - Exporting Successful - Kết xuất thành công - - - The transaction history was successfully saved to %1. - Lịch sử giao dịch đã được lưu thành công vào %1. - - - Range: - Khoảng: - - - to - đến - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - Đơn vị mà hiển thị số lượng trong đó. Hãy click để chọn một đơn vị khác. - - - - WalletFrame - - No wallet has been loaded. - Không có ví nào được nạp. - - - - WalletModel - - Send Coins - Gửi tiền - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - InstantX không hỗ trợ để gửi giá trị lớn đến như vậy. Giới hạn giao dịch hiện tại đến %1 DASH. - - - - WalletView - - &Export - &Kết xuất - - - Export the data in the current tab to a file - Kết xuất dữ liệu trong tab này sang một file - - - Selected amount: - Chọn số lượng: - - - Backup Wallet - Sao lưu Ví - - - Wallet Data (*.dat) - Dữ liệu Ví (*.dat) - - - Backup Failed - Sao lưu không thành công - - - There was an error trying to save the wallet data to %1. - Có lỗi xảy ra khi lưu dữ liệu ví xuống %1. - - - Backup Successful - Sao lưu thành công - - - The wallet data was successfully saved to %1. - Dữ liệu ví đã được lưu thành công vào %1. - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - Liên kết với địa chỉ nhất định và luôn luôn lắng nghe trên đó. Sử dụng ký hiệu [host]:port cho IPv6 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - Không nhận được một khoá trong thư mục %s. Dash Core có thể đã đang chạy. - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Darksend sử dụng số lượng mệnh giá nhất định để gửi tiền, bạn có thể chỉ cần đơn giản ẩn danh vài coin nữa. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - Hãy nhập chế độ kiểm tra hồi quy, mà sử dụng một chuỗi đặc biệt mà trong những khối được giải tức thời. - - - Error: Listening for incoming connections failed (listen returned error %s) - Lỗi: Lắng nghe để nhận kết nối bị lỗi (lỗi trả về %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - Thực hiện lệnh khi một cảnh báo liên quan được nhận hoặc chúng ta thấy sự phân nhánh thực sự dài (%s trong cmd được thay bởi message) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Thực hiện lệnh khi một giao dịch ví thay đổi (%s trong cmd được thay thế bởi TxID) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - Thực hiện lệnh khi khối tốt nhất thay đổi (%s trong cmd được thay thế bởi giá trị băm của khối) - - - In this mode -genproclimit controls how many blocks are generated immediately. - Chế độ này -genproclimit kiểm soát bao nhiêu khối được sinh tức thời. - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - InstantX cần đầu vào với ít nhất 6 xác nhận, bạn có thể cần phải đợi vài phút và thử lại. - - - Name to construct url for KeePass entry that stores the wallet passphrase - Đặt tên để tạo dựng url cho các thành phần KeePass mà nó sẽ lưu giữ mật khẩu của ví - - - Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) - Truy vấn địa chỉ đối tác ngang hàng thông qua tìm kiếm DNS, nếu có ít địa chỉ (ngầm định: 1 trừ trường hợp -connect) - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - Đặt kích thước tối đa cho giao dịch với ưu tiên cao/phí thấp theo bytes (ngầm định: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - Thiết lập số luồng của kịch bản kiểm tra (%u to %d, 0 = tự động, <0 = để nhiều lõi miễn phí, ngầm định: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - Đây là phiên bản chưa chính thức - hãy dùng và tự chấp nhận mạo hiểm - đừng dùng để đào coin hoặc các ứng dụng thương mại. - - - Unable to bind to %s on this computer. Dash Core is probably already running. - Không thể để ràng buộc vào %s trên máy tính này. Dash Core có thể đã chạy. - - - Unable to locate enough Darksend denominated funds for this transaction. - Không tìm đủ ngân sách Darksend denominated cho giao dịch này. - - - Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH. - Không tìm đủ ngân sách Darksend denominated cho giao dịch mà nó không bằng 1000 DASH - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Cảnh báo: -paytxfee được đặt rất cao! Đây là mức phí giao dịch mà bạn sẽ trả nếu bạn gửi một giao dịch. - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - Cảnh báo: Mạng lưới có vẻ chưa hoàn toàn đồng ý! Một vài máy đào có vẻ như đã kinh nghiệm với những vấn đề này. - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - Cảnh báo: Chúng ta có vẻ không được sự đồng ý một cách đầy đủ từ các đối tác ngang hàng! Bạn cần nâng cấp hoặc các nút khác cần nâng cấp. - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Cảnh báo: lỗi đọc tệp wallet.dat! Tất cả các khoá được đọc đúng, như dữ liệu giao dich hoặc các thành phần địa chỉ khối có thể bị mất hoặc không chính xác. - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - Cảnh báo: wallet.dat đã bị hỏng, dữ liệu đã được cứu! Tệp gốc wallet.dat đã được lưu thành wallet.{timestamp}.bak trong %s; nếu số dư hoặc các giao dịch của bạn không chính xác, bạn có thể khôi phục từ bản sao lưu. - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - Bạn cần chỉ rõ masternodeprivkey trong tệp cấu hình. Hãy xem tài liệu để có hướng dẫn. - - - (default: 1) - (ngầm định: 1) - - - Accept command line and JSON-RPC commands - Chấp nhận dòng lệnh và các lệnh JSON-RPC - - - Accept connections from outside (default: 1 if no -proxy or -connect) - Chấp nhật kết nối từ ngoài (ngầm định: 1 nếu không có -proxy hoặc -connect) - - - Add a node to connect to and attempt to keep the connection open - Thêm nút để kết nối tới và giữ mở kết nối - - - Allow DNS lookups for -addnode, -seednode and -connect - Cho phép DNS tìm kiếm -addnode, -seednode và -connect - - - Already have that input. - Đã có đầu vào đó. - - - Attempt to recover private keys from a corrupt wallet.dat - Thử khôi phục khoá riêng từ tệp wallet.dat bị lỗi - - - Block creation options: - Tuỳ chọn tạo khối: - - - Can't denominate: no compatible inputs left. - Không thể định giá: không còn đầu vào tương tích. - - - Cannot downgrade wallet - Không thể hạ cấp ví - - - Cannot resolve -bind address: '%s' - Không thể phân giải địa chỉ -bind: '%s' - - - Cannot resolve -externalip address: '%s' - Không thể phân giải địa chỉ -externalip: '%s' - - - Cannot write default address - Không thể viết vào địa chỉ ngầm định - - - Collateral not valid. - Collateral không hợp lệ. - - - Connect only to the specified node(s) - Kết nối chỉ với (các) nút nhất định - - - Connect to a node to retrieve peer addresses, and disconnect - Kết nối với một nút để lấy địa chỉ ngang hàng, và ngắt kết nối - - - Connection options: - Tuỳ chọn kết nối: - - - Corrupted block database detected - Phát hiện ra dữ liệu khối bị hỏng - - - Darksend options: - Tuỳ chọn Darksend: - - - Debugging/Testing options: - Tuỳ chọn Gỡ rối/Kiểm tra: - - - Discover own IP address (default: 1 when listening and no -externalip) - Phát hiện địa chỉ IP của mình (ngầm định: 1 khi lắng nghe và không dùng -externalip) - - - Do not load the wallet and disable wallet RPC calls - Không tải ví và tắt các lời gọi ví RPC - - - Do you want to rebuild the block database now? - Bạn có muốn xây dựng lại dữ liệu khối bây giờ không? - - - Done loading - Nạp xong - - - Entries are full. - Các đầu vào đã đầy. - - - Error initializing block database - Lỗi khởi tạo cơ sở dữ liệu khối - - - Error initializing wallet database environment %s! - Lỗi khởi tạo cơ sở dữ liệu môi trường ví %s! - - - Error loading block database - Lỗi nạp cơ sở dữ liệu khối - - - Error loading wallet.dat - Lỗi nạp wallet.dat - - - Error loading wallet.dat: Wallet corrupted - Lỗi nạp wallet.dat: Ví bị lỗi - - - Error opening block database - Lỗi mở cơ sở dữ liệu khối - - - Error reading from database, shutting down. - Lỗi đọc từ cơ sở dữ liệu, đang tắt phần mềm. - - - Error recovering public key. - Lỗi khi phục hồi khoá công khai. - - - Error - Lỗi - - - Error: Disk space is low! - Lỗi: Dung lượng đĩa thấp! - - - Error: Wallet locked, unable to create transaction! - Lỗi: Ví đã bị khoá, không thể tạo giao dịch! - - - Error: You already have pending entries in the Darksend pool - Lỗi: Bạn đã có các thành phần đang chờ trong Darksend pool - - - Failed to listen on any port. Use -listen=0 if you want this. - Không thành công khi lắng nghe trên các cổng. Sử dụng -listen=0 nếu bạn muốn nó. - - - Failed to read block - Thất bại trong việc đọc khối - - - If <category> is not supplied, output all debugging information. - Nếu <category> không được cung cấp, đưa ra tất cả các thông tin gỡ rối. - - - An error occurred while setting up the RPC address %s port %u for listening: %s - Có một lỗi xảy ra trong khi thiết lập địa chỉ RPC %s cổng %u để lắng nghe: %s - - - Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) - Liên tục giới hạn tỷ lệ miễn phí giao dịch về <n>*1000 byte cho mỗi phút (ngầm định:%u) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - Tạo tệp mới với các quyền hệ thống ngầm định, thay vì umask 077 (chỉ có tác dụng với chức năng ví được tắt) - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Xoá hết tất cả các giao dịch ví và chỉ phục hồi những phần đó của blockchain qua -rescan khi khởi động - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - Tắt tất cả các chức năng đặc trưng của Dash (Masternode, Darksend, InstantX, Lập ngân sách) (0-1, ngầm định: %u) - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - Phân phối dưới giấy phép phần mềm MIT, hãy xem file COPYING đi kèm hoặc <http://www.opensource.org/licenses/mit-license.php>. - - - Enable instantx, show confirmations for locked transactions (bool, default: %s) - Bật InstantX, hiển thị các xác thực cho các giao dịch bị khoá (bool, ngầm định: %s) - - - Enable use of automated darksend for funds stored in this wallet (0-1, default: %u) - Cho phép sử dụng tự động darksend cho những ngân sách được lưu trong ví (0-1, ngầm định: %u) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - Phí (tính theo DASH/Kb) nhỏ hơn số này được coi là không mất phí cho việc chuyển tiền (ngầm định: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - Phí (theo DASH/Kb) nhỏ hơn số này được coi không mất phí cho việc khởi tạo giao dịch (ngầm định: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - Đẩy các hoạt động với cơ sở dữ liệu từ bộ nhớ xuống nhật ký trên đĩa mỗi <n> megabytes (ngầm định: %u) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - Đã thấy các mệnh giá đầu ra chưa được xác nhận, sẽ đợi đến khi chúng xác nhận để tiếp tục. - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - Cách kiểm tra khối triệt để -checkblocks là (0-4, ngầm định: %u) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - Lưu nhật ký các ưu tiên và phí giao dịch cho mỗi kB khi đào các khối (ngầm định: %u) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - Số giây hạn chế để không cho phép các đối tác ngang hàng cư xử không đúng tiếp tục kết nối lại (ngầm định: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - Thông tin gỡ rối đầu ra (ngầm định: %u, cung cấp <category> là một tuỳ chọn) - - - Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Cung cấp thanh khoản cho Darksend bằng việc thường xuyên trộn tiền một cách liên tục (0-100, ngầm định: %u, 1=rất thường xuyên, phí cao, 100=rất ít thường xuyên, phí thấp) - - - Send trace/debug info to console instead of debug.log file (default: %u) - Gửi thông tin trace/debug đến console thay vì ra tệp debug.log (ngầm định: %u) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - Thiết lập số các luồng cho việc sinh coin nếu bật (-1 = tất cả các lõi, ngầm định: %d) - - - Show N confirmations for a successfully locked transaction (0-9999, default: %u) - Hiển thị N xác nhận cho mỗi giao dịch được khoá thành công (0-9999, ngầm định: %u) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - Sản phẩm này có kèm theo phần mềm được phát triển bởi dự án OpenSSL để sử dụng các công cụ OpenSSL <https://www.openssl.org/> và phần mềm mã hoá được viết bởi Eric Young và phần mềm UPnP được viết bởi Thomas Bernard. - - - Unable to locate enough funds for this transaction that are not equal 1000 DASH. - Không tìm được đủ ngân sách cho giao dịch mà nó không đủ 1000 DASH. - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - Sửa dụng các SOCKS5 proxy riêng biệt cho mỗi đối tác ngang hàng thông qua dịch vụ ẩn Tor (ngầm định: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - Cảnh báo: -maxtxfee được đặt rất cao! Mức Phí cao này sẽ được trả cho mỗi một giao dịch đơn. - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - Cánh báo: Hãy vui lòng kiểm tra ngày giờ máy tính của bạn cho chính xác! Nếu đồng hồ của bạn sai thì Dash Core sẽ không làm việc một cách hoàn hảo. - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - Các đối tác ngang hàng cho phép đang kết nối từ địa chỉ IP và netmask. Nó có thể được chỉ rõ nhiều lần. - - - (9999 could be used only on mainnet) - (9999 chỉ được sử dụng trên mạng chính thức) - - - (default: %s) - (ngầm định: %s) - - - <category> can be: - - <category> có thể là: - - - Accept public REST requests (default: %u) - Chấp nhận các yêu cầu REST công khai (ngầm định: %u) - - - Acceptable ciphers (default: %s) - Các loại mã hoá có thể chấp nhận (ngầm định: %s) - - - Always query for peer addresses via DNS lookup (default: %u) - Luôn luôn tìm kiếm địa chỉ các đối tác ngang hàng thông qua tìm kiếm DNS (ngầm định: %u) - - - Cannot resolve -whitebind address: '%s' - Không thể phân giải địa chỉ -whitebind: '%s' - - - Connect through SOCKS5 proxy - Kết nối thông qua SOCKS 5 proxy - - - Connect to KeePassHttp on port <port> (default: %u) - Kết nối tới KeePassHttp trên cổng <port> (ngầm định: %u) - - - Copyright (C) 2009-%i The Bitcoin Core Developers - Bản quyền (C) 2009-%i bởi Nhóm phát triển Bitcoin Core - - - Copyright (C) 2014-%i The Dash Core Developers - Bản quyền (C) 2014-%i bởi Nhóm phát triển Dash Core - - - Darksend is idle. - Darksend đang nghỉ. - - - Darksend request complete: - Yêu cầu Darksend hoàn thành: - - - Darksend request incomplete: - Yêu cầu Darksend chưa hoàn thành: - - - Disable safemode, override a real safe mode event (default: %u) - Tắt chế độ an toàn, ghi đè lên một sự kiện của chế đọ an toàn (ngầm định: %u) - - - Enable the client to act as a masternode (0-1, default: %u) - Cho phép phần mềm hoạt động như là masternode (0-1, ngầm định: %u) - - - Error connecting to Masternode. - Lỗi kết nối tới Masternode. - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - Lỗi nạp wallet.dat: Ví cần một phiên bản mới hơn của Dash Core - - - Error: A fatal internal error occured, see debug.log for details - Lỗi: Một lỗi nghiêm trọng đã xuất hiện, xem debug.log để biết thêm chi tiết - - - Error: Unsupported argument -tor found, use -onion. - Lỗi: Tìm thấy tham số không được hỗ trợ -tor, thay vào đó hãy sử dụng -onion - - - Fee (in DASH/kB) to add to transactions you send (default: %s) - Phí (theo DASH/Kb) sẽ thêm vào các giao dịch mà bạn gửi (ngầm định: %s) - - - Finalizing transaction. - Đang hoàn tất giao dịch. - - - Force safe mode (default: %u) - Cưỡng bức ở chế độ an toàn (ngầm định: %u) - - - Found enough users, signing ( waiting %s ) - Đã tìm đủ người dùng, đang ký (vui lòng đợi %s) - - - Found enough users, signing ... - Đã kiếm đủ người dùng, đang ký ... - - - Generate coins (default: %u) - Sinh tiền (ngầm định: %u) - - - How many blocks to check at startup (default: %u, 0 = all) - Bao nhiêu khối để kiểm tra khi khởi động (ngầm định: %u, 0 = tất cả) - - - Importing... - Đang nạp... - - - Imports blocks from external blk000??.dat file - Nạp khối từ tệp ngoài blk000??.dat - - - Include IP addresses in debug output (default: %u) - Kèm địa chỉ IP trong thông tin gỡ rối đầu ra (ngầm định: %u) - - - Incompatible mode. - Kiểu không tương thích. - - - Incompatible version. - Phiên bản không tương thích. - - - Incorrect or no genesis block found. Wrong datadir for network? - Khối sáng thế không chính xác hoặc không tìm thấy. Sai datadir cho mạng lưới? - - - Information - Thông tin - - - Initialization sanity check failed. Dash Core is shutting down. - Khởi tạo việc kiểm tra tính đúng đắn thất bại. Dash Core đang được tắt. - - - Input is not valid. - Đầu vào không hợp lệ. - - - InstantX options: - Tuỳ chọn InstantX: - - - Insufficient funds. - Không đủ tiền. - - - Invalid -onion address: '%s' - Địa chỉ -onion không hợp lệ: '%s' - - - Invalid -proxy address: '%s' - Địa chỉ proxy không hợp lệ: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - Số tiền không hợp lệ cho -maxtxfee=<số tiền>: '%s' - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - Số tiền không hợp lệ cho -minrelaytxfee=<số tiền>: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - Số tiền không hợp lệ cho -mintxfee =<số tiền>: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - Số tiền không hợp lệ cho -paytxfee=<số tiền>: '%s' (ít nhất phải bằng %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - Số tiền không hợp lệ cho -paytxfee =<số tiền>: '%s' - - - Last successful Darksend action was too recent. - Phiên giao dịch Darksend thành công cuối cùng quá gần đây. - - - Limit size of signature cache to <n> entries (default: %u) - Giới hạn kích thước bộ đệm chữ ký tới <n> thành phần (ngầm định: %u) - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - Lắng nghe kết nối JSON-RPC trên <cổng> (ngầm định: %u hoặc mạng thử: %u) - - - Listen for connections on <port> (default: %u or testnet: %u) - Lắng nghe kết nối từ <cổng> (ngầm định: %u hoặc mạng thử: %u) - - - Loading budget cache... - Đang nạp bộ đệm ngân sách... - - - Loading masternode cache... - Đang tải cache cho masternode... - - - Loading masternode payment cache... - Đang tải bộ đệm thanh toán cho masternode... - - - Lock is already in place. - Khoá đã sẵn sàng. - - - Lock masternodes from masternode configuration file (default: %u) - Khoá các masternode từ tệp cấu hình masternode (ngầm định: %u) - - - Maintain at most <n> connections to peers (default: %u) - Duy trì nhiều nhất <n> kết nối tới các điểm ngang cấp (ngầm định: %u) - - - Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) - Tối đa cho bộ đệm nhận của mỗi kết nối, <n>*1000 bytes (ngầm định: %u) - - - Maximum per-connection send buffer, <n>*1000 bytes (default: %u) - Tối đa cho bộ đệm gửi của mỗi kết nối, <n>*1000 bytes (ngầm định: %u) - - - Mixing in progress... - Đang trong quá trình trộn... - - - No Masternodes detected. - Không tìm thấy các Master node. - - - No compatible Masternode found. - Không tìm thấy Masternode tương thích. - - - Not in the Masternode list. - Không có trong danh sách Masternode. - - - Number of automatic wallet backups (default: 10) - Số lượng ví tự động sao lưu (ngầm định: 10) - - - Only accept block chain matching built-in checkpoints (default: %u) - Chỉ chấp nhận các chuỗi khối tương ứng với các điểm kiểm tra trong (ngầm định: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - Chỉ kết nối với các nút trong mạng <net> (IPv4, IPv6 hoặc onion) - - - Prepend debug output with timestamp (default: %u) - Thêm tiền tố đầu ra debug với dấu thời gian (ngầm định: %u) - - - Run a thread to flush wallet periodically (default: %u) - Chạy một luồng để làm sạch ví một cách thường xuyên (ngầm định: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - Gửi giao dịch như là giao dịch không phí nếu có thể (ngầm định: %u) - - - Server certificate file (default: %s) - Tệp chứng thực máy chủ (ngầm định: %s) - - - Server private key (default: %s) - Khoá riêng của máy chủ (ngầm định: %s) - - - Set external address:port to get to this masternode (example: %s) - Đặt external address:port cho masternode này (ví dụ: %s) - - - Set key pool size to <n> (default: %u) - Thiết lập kích thước pool đến <n> (ngầm định: %u) - - - Set minimum block size in bytes (default: %u) - Thiết lập kích thước khối tối thiểu tính theo bytes (ngầm định: %u) - - - Set the number of threads to service RPC calls (default: %d) - Thiết lập số luồng phục vụ các lời gọi RPC (ngầm định: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - Thiết lập cờ DB_PRIVATE trong môi trường cơ sở dữ liệu ví (ngầm định: %u) - - - Signing timed out. - Ký không kịp. - - - Specify configuration file (default: %s) - Hãy chỉ rõ tệp cấu hình (ngầm định: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - Hãy xác định thời gian hết hạn tính theo milli giây (tối thiểu: 1, ngầm định: %d) - - - Specify masternode configuration file (default: %s) - Hãy chỉ ra tệp cấu hình masternode (ngầm định: %s) - - - Specify pid file (default: %s) - Hãy chỉ rõ tệp pid (ngầm định: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - Tiên các khoản trả lại chưa được xác nhận khi gửi các giao dịch (ngầm định: %u) - - - Stop running after importing blocks from disk (default: %u) - Dừng chạy sau khi nạp các khối từ đĩa (ngầm định: %u) - - - Submitted following entries to masternode: %u / %d - Đã gửi các những thành phần sau tới masternode: %u / %d - - - Submitted to masternode, waiting for more entries ( %u / %d ) %s - Đã gửi đến masternode, đang đợi các đầu vào khác nữa (%u / %d) %s - - - Submitted to masternode, waiting in queue %s - Đã được gửi cho masternode, đang đợi trong hàng đợi %s - - - Synchronization failed - Đồng bộ thất bại - - - Synchronization finished - Đồng bộ đã hoàn thành - - - Synchronizing budgets... - Đang đồng bộ ngân sách... - - - Synchronizing masternode winners... - Đồng bộ các masternode được chọn... - - - Synchronizing masternodes... - Đang đồng bộ các masternode... - - - Synchronizing sporks... - Đang đồng bộ các sporks... - - - This is not a Masternode. - Đây không phải là một Masternode. - - - Threshold for disconnecting misbehaving peers (default: %u) - Ngưỡng ngắt kết nối khi đối tác ngang hàng cư xử không đúng (ngầm định: %u) - - - Use KeePass 2 integration using KeePassHttp plugin (default: %u) - Sử dụng tích hợp KeePass 2 dùng KeePassHttp plugin (ngầm định: %u) - - - Use N separate masternodes to anonymize funds (2-8, default: %u) - Sử dụng N masternods riêng biệt để ẩn danh khoản tiền (2-8, ngầm định: %u) - - - Use UPnP to map the listening port (default: %u) - Sử dụng UPnP để ánh xạ cổng lắng nghe (ngầm định: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - Ví cần được ghi lại: khởi động lại Dash Core để hoàn tất - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - Cảnh báo: Tham số không hỗ trợ -benchmark được bỏ qua, hãy sử dụng -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - Cảnh báo: Tham số không hỗ trợ -debugnet được bỏ qua, hãy sử dụng -debug=net - - - Will retry... - Sẽ thử lại... - - - Invalid masternodeprivkey. Please see documenation. - Masternodeprivkey không hợp lệ. Hãy xem lại tài liệu. - - - (must be 9999 for mainnet) - (phải là 9999 cho mạng chính thức) - - - Can't find random Masternode. - Không tìm thấy Masternode ngẫu nhiên. - - - Can't mix while sync in progress. - Không thể trộn trong quá trình đồng bộ. - - - Could not parse masternode.conf - Không hiểu được tệp masternode.conf - - - Invalid netmask specified in -whitelist: '%s' - Lỗi netmask được chỉ ra trong -whitelist: '%s' - - - Invalid port detected in masternode.conf - Phát hiện thấy cổng không hợp lệ trong tệp masternode.conf - - - Invalid private key. - Khoá riêng không hợp lệ. - - - Invalid script detected. - Kịch bản được phát hiện không hợp lệ. - - - KeePassHttp id for the established association - KeePassHttp id cho thiết lập sự kết hợp - - - KeePassHttp key for AES encrypted communication with KeePass - Khoá KeePassHttp cho liên lạc mã hoá AES với KeePass - - - Keep N DASH anonymized (default: %u) - Giữ N DASH đã được ẩn danh (ngầm định: %u) - - - Keep at most <n> unconnectable transactions in memory (default: %u) - Giữ nhiều nhất <n> các giao dịch không kết nối được trong bộ nhớ (ngầm định: %u) - - - Last Darksend was too recent. - Darksend cuối cùng quá gần. - - - Line: %d - Dòng: %d - - - Loading addresses... - Nạp các địa chỉ... - - - Loading block index... - Đang nạp chỉ mục khối... - - - Loading wallet... (%3.2f %%) - Đang nạp ví... (%3.2f %%) - - - Loading wallet... - Đang tải ví... - - - Masternode options: - Tuỳ chọn Masternode: - - - Masternode queue is full. - Danh sách hàng đợi Masternode đã đầy. - - - Masternode: - Masternode: - - - Missing input transaction information. - Thiếu thông tin giao dịch đầu vào. - - - No funds detected in need of denominating. - Không thấy có nguồn tiền cần thiết để định giá. - - - No matching denominations found for mixing. - Không tìm thấy mệnh giá tương ứng để trộn. - - - Node relay options: - Tuỳ chọn trung chuyển nút: - - - Non-standard public key detected. - Phát hiện thấy khoá công khai không hợp chuẩn. - - - Not compatible with existing transactions. - Không tương thích với các giao dịch hiện tại. - - - Not enough file descriptors available. - Chưa có đủ thông tin mô tả tệp. - - - Options: - Tuỳ chọn: - - - Password for JSON-RPC connections - Mật khẩu cho kết nối JSON-RPC - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Tuỳ chọn RPC SSL (xem Bitcoin Wiki để có hướng dẫn cài đặt SSL) - - - RPC server options: - Tuỳ chọn cho RPC server - - - Randomly drop 1 of every <n> network messages - Bỏ ngẫu nhiên 1 mỗi <n> thông điệp mạng - - - Randomly fuzz 1 of every <n> network messages - Làm xơ ngẫu nhiên 1 trên mỗi <n> thông điệp mạng. - - - Rebuild block chain index from current blk000??.dat files - Tái tạo lại chỉ mục chuỗi khối từ tệp blk000??.dat - - - Rescan the block chain for missing wallet transactions - Quét lại chuỗi khối cho các giao dịch ví bị thiếu. - - - Rescanning... - Đang quét lại... - - - Run in the background as a daemon and accept commands - Chạy trên chế độ nền như là một tiến trình ngầm và chấp nhận các lệnh - - - Session not complete! - Phiên làm việc chưa hoàn thành. - - - Session timed out. - Hết thời gian cho phiên làm việc. - - - Set database cache size in megabytes (%d to %d, default: %d) - Thiết lập kích thước bộ đệm cơ sở dữ liệu theo megabytes (%d đến %d, ngầm định: %d) - - - Set maximum block size in bytes (default: %d) - Thiết lập kích thước khối tối đa theo bytes (ngầm định: %d) - - - Set the masternode private key - Đặt khoá riêng cho masternode - - - Show all debugging options (usage: --help -help-debug) - Hiển thị tất cả các tuỳ chọn gỡ rối (cách sử dụng: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - Rút gọn tệp debug.log khi phần mềm khởi động (ngầm định: 1 khi không có -debug) - - - Signing failed. - Ký không thành công. - - - Signing transaction failed - Thất bại khi ký giao dịch - - - Specify data directory - Hãy chọn thư mục - - - Specify wallet file (within data directory) - Xác định tệp ví (trong thư mục dữ liệu) - - - Specify your own public address - Hãy xác định địa chỉ công khai của bạn - - - This help message - Đây là thông điệp trợ giúp - - - This is experimental software. - Đây là phần mềm thử nghiệm. - - - This is intended for regression testing tools and app development. - Điều này là để dành cho công cụ kiểm tra hồi quy và phát triển ứng dụng. - - - Transaction amount too small - Số tiền của giao dịch quá nhỏ - - - Transaction amounts must be positive - Số tiền của giao dịch phải là số dương - - - Transaction created successfully. - Giao dịch được tạo thành công. - - - Transaction fees are too high. - Phí giao dịch quá cao. - - - Transaction not valid. - Giao dịch không hợp lệ. - - - Transaction too large for fee policy - Giao dịch quá lớn cho chính sách miễn phí - - - Transaction too large - Giao dịch quá lớn - - - Transmitting final transaction. - Đang truyền tải giao dịch cuối cùng. - - - Unable to bind to %s on this computer (bind returned error %s) - Không thể để ràng buộc vào %s trên máy tính này (bind trả lại lỗi %s) - - - Unable to sign spork message, wrong key? - Không thể ký vào thông điệp phân nhánh, sai khoá? - - - Unknown network specified in -onlynet: '%s' - Không biết mạng được chỉ ra trong -onlynet: '%s' - - - Unknown state: id = %u - Trạng thái không xác định: id = %u - - - Upgrade wallet to latest format - Nâng cấp ví lên định dạng mới nhất - - - Use OpenSSL (https) for JSON-RPC connections - Sử dụng OpenSSL (https) cho các kết nối JSON-RPC - - - Use UPnP to map the listening port (default: 1 when listening) - Sử dụng UPnP để ánh xạ cổng lắng nghe (ngầm định: 1 khi lắng nghe) - - - Use the test network - Sử dụng mạng thử - - - Username for JSON-RPC connections - Username cho kết nối JSON-RPC - - - Value more than Darksend pool maximum allows. - Giá tri trị lớn hơn giá trị tối đa mà bể Darksend cho phép. - - - Verifying blocks... - Đang kiểm tra các khối... - - - Verifying wallet... - Đang kiểm tra ví... - - - Wallet %s resides outside data directory %s - Ví %s nằm ở bên ngoài thư mục dữ liệu %s - - - Wallet is locked. - Ví đã bị khoá. - - - Wallet options: - Tuỳ chọn ví: - - - Wallet window title - Tiêu đề cửa sổ ví - - - Warning - Cảnh báo - - - Warning: This version is obsolete, upgrade required! - Cảnh báo: Phiên bản này đã cũ, cần phải cập nhật mới! - - - You need to rebuild the database using -reindex to change -txindex - Bạn cần xây dựng lại cơ sở dữ liệu sử dụng -reindex để thay cho -txindex - - - Your entries added successfully. - Các đầu vào của bạn đã được thêm vào một cách thành công. - - - Your transaction was accepted into the pool! - Giao dịch của bạn đã được chấp nhận vào bể! - - - Zapping all transactions from wallet... - Dọn sạch tất cả các giao dịch khỏi ví... - - - on startup - khi khởi động - - - wallet.dat corrupt, salvage failed - wallet.dat bị lỗi, cứu chữa không thành công. - - - \ No newline at end of file diff --git a/src/qt/locale/dash_zh_CN.ts b/src/qt/locale/dash_zh_CN.ts deleted file mode 100644 index 2d05183a3cc7..000000000000 --- a/src/qt/locale/dash_zh_CN.ts +++ /dev/null @@ -1,3234 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - 右键点击编辑地址或标签 - - - Create a new address - 创建新地址 - - - &New - 新建(&N) - - - Copy the currently selected address to the system clipboard - 复制当前选中的地址到系统剪贴板 - - - &Copy - 复制(&C) - - - Delete the currently selected address from the list - 从列表中删除选中的地址 - - - &Delete - 删除(&D) - - - Export the data in the current tab to a file - 导出当前数据到文件 - - - &Export - 导出(&E) - - - C&lose - 关闭(&C) - - - Choose the address to send coins to - 选择发款地址 - - - Choose the address to receive coins with - 选择收款地址 - - - C&hoose - 选择(&H) - - - Sending addresses - 正在发送地址 - - - Receiving addresses - 正在接收地址 - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - 这些是你要付款过去的达世币地址。在付款之前,务必要检查金额和收款地址是否正确。 - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - 这些是你用来收款的达世币地址。建议在每次交易时,都使用一个新的收款地址。 - - - &Copy Address - 复制地址(&C) - - - Copy &Label - 复制标签(&L) - - - &Edit - 编辑(&E) - - - Export Address List - 导出地址列表 - - - Comma separated file (*.csv) - 逗号分隔文件 (*.csv) - - - Exporting Failed - 导出失败 - - - - AddressTableModel - - Label - 标签 - - - Address - 地址 - - - (no label) - (没有标签) - - - - AskPassphraseDialog - - Passphrase Dialog - 密码对话框 - - - Enter passphrase - 输入密码 - - - New passphrase - 新密码 - - - Repeat new passphrase - 重复新密码 - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - 当OS帐号被盗就禁止发送币。这并不提供真正的安全性。 - - - For anonymization only - 仅限匿名 - - - Encrypt wallet - 加密钱包 - - - This operation needs your wallet passphrase to unlock the wallet. - 此操作需要您首先使用密码解锁该钱包。 - - - Unlock wallet - 解锁钱包 - - - This operation needs your wallet passphrase to decrypt the wallet. - 该操作需要您首先使用密码解密钱包。 - - - Decrypt wallet - 解密钱包 - - - Change passphrase - 更改密码 - - - Enter the old and new passphrase to the wallet. - 请输入该钱包的旧密码与新密码。 - - - Confirm wallet encryption - 确认加密钱包 - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - 警告:如果把钱包加​​密后又忘记密码,你就会从此<b>失去所有的达世币了</b>! - - - Are you sure you wish to encrypt your wallet? - 您确定需要为钱包加密吗? - - - Wallet encrypted - 钱包已加密 - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - 达世币软体现在要关闭,以完成加密过程。请注意,加密钱包不能完全防止恶意软件入侵你的电脑盗取你的达世币。 - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - 重要提示:您以前备份的钱包文件应该替换成最新生成的加密钱包文件(重新备份)。从安全性上考虑,您以前备份的未加密的钱包文件,在您使用新的加密钱包后将无效,请重新备份。 - - - Wallet encryption failed - 钱包加密失败 - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - 由于一个本地错误,加密钱包的操作已经失败。您的钱包没能被加密。 - - - The supplied passphrases do not match. - 密码不匹配。 - - - Wallet unlock failed - 钱包解锁失败 - - - The passphrase entered for the wallet decryption was incorrect. - 用于解密钱包的密码不正确。 - - - Wallet decryption failed - 钱包解密失败。 - - - Wallet passphrase was successfully changed. - 修改钱包密码成功。 - - - Warning: The Caps Lock key is on! - 警告:大写锁定键处于打开状态! - - - - BitcoinGUI - - Dash Core - 达世币核心 - - - Wallet - 钱包 - - - Node - 节点 - - - &Overview - 概况(&O) - - - Show general overview of wallet - 显示钱包概况 - - - &Send - 发送(&S) - - - Send coins to a Dash address - 发送币至达世币地址 - - - &Receive - 接收(&R) - - - Request payments (generates QR codes and dash: URIs) - 请求付款(生成二维码和达世币付款协议的URI) - - - &Transactions - 交易记录(&T) - - - Browse transaction history - 查看交易历史 - - - E&xit - 退出(&X) - - - Quit application - 退出程序 - - - &About Dash Core - &关于达世币核心 - - - Show information about Dash Core - 显示关于达世币核心信息 - - - About &Qt - 关于 &Qt - - - Show information about Qt - 显示 Qt 相关信息 - - - &Options... - 选项(&O)... - - - Modify configuration options for Dash - 修改达世币配置选项 - - - &Show / Hide - 显示 / 隐藏(&S) - - - Show or hide the main Window - 显示或隐藏主窗口 - - - &Encrypt Wallet... - 加密钱包(&E)... - - - Encrypt the private keys that belong to your wallet - 对钱包中的私钥加密 - - - &Backup Wallet... - 备份钱包(&B)... - - - Backup wallet to another location - 备份钱包到其他文件夹 - - - &Change Passphrase... - 更改密码(&C)... - - - Change the passphrase used for wallet encryption - 更改钱包加密口令 - - - &Unlock Wallet... - 解锁钱包(&U) - - - Unlock wallet - 解锁钱包 - - - &Lock Wallet - 锁定钱包(&L) - - - Sign &message... - 消息签名(&M)... - - - Sign messages with your Dash addresses to prove you own them - 用达世币地址签署讯息来证明地址是你的 - - - &Verify message... - 验证消息(&V)... - - - Verify messages to ensure they were signed with specified Dash addresses - 验证讯息是用来确定讯息是用指定的达世币地址签署的 - - - &Information - 信息(&I) - - - Show diagnostic information - 显示诊断信息 - - - &Debug console - Debug控制台(&D) - - - Open debugging console - 打开调试控制台 - - - &Network Monitor - 网络流量监控(&N) - - - Show network monitor - 显示网络流量监控 - - - Open &Configuration File - 打开 &配置文件 - - - Open configuration file - 打开配置文件 - - - &Sending addresses... - &付款地址 - - - Show the list of used sending addresses and labels - 显示用过的发送地址和标签的列表 - - - &Receiving addresses... - &收款地址 - - - Show the list of used receiving addresses and labels - 显示用过的接收地址和标签的列表 - - - Open &URI... - 打开 &URI... - - - Open a dash: URI or payment request - 打开达世币:网页或付款请求 - - - &Command-line options - &命令行 选项 - - - Dash Core client - 达世币核心客户端 - - - Show the Dash Core help message to get a list with possible Dash command-line options - 打开达世币核心帮助信息取得可使用的命令行列表 - - - &File - 文件(&F) - - - &Settings - 设置(&S) - - - &Tools - 工具(&T) - - - &Help - 帮助(&H) - - - Tabs toolbar - 分页工具栏 - - - %n active connection(s) to Dash network - %n 已连接至达世币网络 - - - Synchronizing with network... - 正在与网络同步... - - - Importing blocks from disk... - 正在从磁盘导入数据块... - - - Reindexing blocks on disk... - 正在为数据块建立索引... - - - No block source available... - 沒有可用的区块来源... - - - Up to date - 已是最新 - - - %1 and %2 - %1 和 %2 - - - %1 behind - 落后 %1 - - - Catching up... - 更新中... - - - Last received block was generated %1 ago. - 最新收到的区块产生于 %1。 - - - Transactions after this will not yet be visible. - 在此之后的交易尚未可见 - - - Error - 错误 - - - Warning - 警告 - - - Information - 信息 - - - Sent transaction - 发送交易 - - - Incoming transaction - 流入交易 - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - 日期: %1 -金额: %2 -类别: %3 -地址: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - 钱包已被<b>加密</b>,当前为<b>解锁</b>状态 - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - 钱包已被<b>加密</b>并且目前处于<b>解锁</b>状态以进行匿名处理 - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - 钱包已被<b>加密</b>,当前为<b>锁定</b>状态 - - - - ClientModel - - Network Alert - 网络警报 - - - - CoinControlDialog - - Quantity: - 总量: - - - Bytes: - 字节: - - - Amount: - 金额: - - - Priority: - 优先级: - - - Fee: - 费用: - - - After Fee: - 加上交易费用后: - - - Change: - 变更 : - - - (un)select all - (不)全选 - - - Tree mode - 树状模式 - - - List mode - 列表模式 - - - (1 locked) - (1 锁定) - - - Amount - 金额 - - - Date - 日期 - - - Confirmations - 确认 - - - Confirmed - 已确认 - - - Priority - 优先级 - - - Copy address - 复制地址 - - - Copy label - 复制标签 - - - Copy amount - 复制金额 - - - Copy transaction ID - 复制交易编号 - - - Lock unspent - 锁定未花费 - - - Unlock unspent - 解锁未花费 - - - Copy quantity - 复制金额 - - - Copy fee - 复制交易费 - - - Copy after fee - 复制含交易费的金额 - - - Copy bytes - 复制字节 - - - Copy priority - 复制优先级 - - - Copy change - 复制零钱 - - - highest - 最高 - - - higher - 更高 - - - high - - - - medium-high - 中高 - - - n/a - n/a - - - medium - 中等 - - - low-medium - 中低 - - - low - - - - lower - 更低 - - - lowest - 最低 - - - (%1 locked) - (%1 锁定) - - - none - - - - yes - - - - no - - - - This label turns red, if the transaction size is greater than 1000 bytes. - 如果这笔交易大于1000字节,标签会变成红色。 - - - This means a fee of at least %1 per kB is required. - 这意味着将对交易收取 %1/千字节 的交易费。 - - - Can vary +/- 1 byte per input. - 每笔输入可能会有 正负1字节的偏差。 - - - Transactions with higher priority are more likely to get included into a block. - 交易的优先级越高,被矿工收入数据块的速度也越快。 - - - This label turns red, if the priority is smaller than "medium". - 如果优先级小于"中位数" ,标签将变成红色。 - - - This label turns red, if any recipient receives an amount smaller than %1. - 如果收款地址收到小于%1的比特币,标签将变成红色。 - - - (no label) - (没有标签) - - - change from %1 (%2) - 来自%1的零钱 (%2) - - - (change) - (零钱) - - - - DarksendConfig - - Configure Darksend - 配置匿名发送 - - - Basic Privacy - 基本隐私 - - - High Privacy - 高度隐私 - - - Maximum Privacy - 最大隐私 - - - Please select a privacy level. - 请选择隐私等级。 - - - Use 2 separate masternodes to mix funds up to 1000 DASH - 使用2个独立的主节点混合资金最多1000达世币 - - - Use 8 separate masternodes to mix funds up to 1000 DASH - 使用8个独立的主节点混合资金最多1000达世币 - - - Use 16 separate masternodes - 使用16个独立主节点 - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - 此选项为最快速度,需要支付0.025达世币/1000达世币的匿名处理费用。 - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - 此选项为一般速度,需要支付0.05达世币/1000达世币的匿名处理费用。 - - - 0.1 DASH per 1000 DASH you anonymize. - 0.1达世币/1000达世币的匿名处理费用。 - - - This is the slowest and most secure option. Using maximum anonymity will cost - 此选项提供最慢速度但是却最安全的匿名服务。最多匿名化将花费 - - - Darksend Configuration - 匿名发送配置 - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名发送已成功设置为一般(%1到2次循环)。可以通过打开达世币配置窗口来随时修改。 - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名发送已成功设置为高(%1到8次循环)。可以通过打开达世币配置窗口来随时修改。 - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名发送已成功设置为最高(%1到16次循环)。可以通过打开达世币配置窗口来随时修改。 - - - - EditAddressDialog - - Edit Address - 编辑地址 - - - &Label - 标签(&L) - - - The label associated with this address list entry - 与此地址相关的标签项 - - - &Address - 地址(&A) - - - The address associated with this address list entry. This can only be modified for sending addresses. - 该地址已与地址列表中的条目关联,只能被发送地址修改。 - - - New receiving address - 新建接收地址 - - - New sending address - 新建发送地址 - - - Edit receiving address - 编辑接收地址 - - - Edit sending address - 编辑发送地址 - - - The entered address "%1" is not a valid Dash address. - 输入的地址"%1"不是有效的达世币地址。 - - - The entered address "%1" is already in the address book. - 输入的地址“%1”已经存在于地址簿中。 - - - Could not unlock wallet. - 无法解锁钱包 - - - New key generation failed. - 新的密钥生成失败。 - - - - FreespaceChecker - - A new data directory will be created. - 一个新的数据目录将被创建。 - - - name - 名称 - - - Directory already exists. Add %1 if you intend to create a new directory here. - 目录已存在。如果您打算在这里创建一个新目录,添加 %1。 - - - Path already exists, and is not a directory. - 路径已存在,并且不是一个目录。 - - - Cannot create data directory here. - 无法在此创建数据目录。 - - - - HelpMessageDialog - - Dash Core - 达世币核心 - - - version - 版本 - - - About Dash Core - 关于 达世币核心 - - - Usage: - 使用: - - - command-line options - 命令行选项 - - - UI options - UI选项 - - - Choose data directory on startup (default: 0) - 在启动时选择数据目录(默认:0) - - - Set language, for example "de_DE" (default: system locale) - 设置语言, 例如“zh-TW”(默认为系统语言) - - - Start minimized - 启动时最小化 - - - - Set SSL root certificates for payment request (default: -system-) - 设置SSL根证书的付款请求(默认:-系统-) - - - Show splash screen on startup (default: 1) - 启动时显示版权页 (缺省: 1) - - - - Intro - - Welcome - 欢迎 - - - Welcome to Dash Core. - 欢迎来到达世币核心。 - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - 此次为第一次程序启动,你可以选择储存达世币核心数据的路径。 - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - 达世币核心将会下载并存储达世币数据链。至少有%1GB的数据会保存到此路径下,并且随着时间增长。钱包文件也将存储到此路径下。 - - - Use the default data directory - 使用默认的数据目录 - - - Use a custom data directory: - 使用自定义的数据目录: - - - Dash Core - 达世币核心 - - - Error - 错误 - - - - OpenURIDialog - - Open URI - 打开 URI - - - Open payment request from URI or file - 打开来自URI或文件的付款请求 - - - URI: - URI: - - - Select payment request file - 选择付款请求文件 - - - Select payment request file to open - 选择需要打开的付款请求文件 - - - - OptionsDialog - - Options - 选项 - - - &Main - 主要(&M) - - - Automatically start Dash after logging in to the system. - 登录系统后自动启动达世币程序 - - - &Start Dash on system login - &系统登录时启动达世币程序 - - - Size of &database cache - 数据库缓存大小(&D) - - - MB - MB - - - Number of script &verification threads - 脚本&验证 进程数 - - - (0 = auto, <0 = leave that many cores free) - (0 = 自动, <0 = 离开很多免费的核心) - - - Darksend rounds to use - 匿名传送的循环次数 - - - This amount acts as a threshold to turn off Darksend once it's reached. - 此金额为关闭匿名发送的极限. - - - Amount of Dash to keep anonymized - 保持匿名化的达世币数 - - - W&allet - &钱包 - - - Connect to the Dash network through a SOCKS5 proxy. - 通过SOCKS5代理链接达世币网络。 - - - Expert - 专家 - - - Whether to show coin control features or not. - 是否需要交易源地址控制功能。 - - - Enable coin &control features - 启动货币 &控制功能 - - - &Spend unconfirmed change - &选择未经确认的花费 - - - &Network - 网络(&N) - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - 自动对路由器打开达世币客户端端口。此项只在路由器支持UPnP时有效。 - - - Map port using &UPnP - 使用 &UPnP 映射端口 - - - Proxy &IP: - 代理服务器 &IP: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - 代理的 IP 地址 (例如 IPv4: 127.0.0.1 / IPv6: ::1) - - - &Port: - 端口(&P): - - - Port of the proxy (e.g. 9050) - 代理端口(例如 9050) - - - &Window - 窗口(&W) - - - Show only a tray icon after minimizing the window. - 最小化窗口后仅显示托盘图标 - - - &Minimize to the tray instead of the taskbar - 最小化到托盘(&M) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - 当窗口关闭时程序最小化而不是退出。当使用该选项时,程序只能通过在菜单中选择退出来关闭 - - - M&inimize on close - 单击关闭按钮最小化(&I) - - - &Display - 显示(&D) - - - User Interface &language: - 用户界面语言(&L): - - - The user interface language can be set here. This setting will take effect after restarting Dash. - 用户界面语言在这里设置。在重启达世币程序后生效。 - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - 缺少相关语言或翻译不完整? 请到这里协助翻译: -https://www.transifex.com/projects/p/dash/ - - - &Unit to show amounts in: - 比特币金额单位(&U): - - - Choose the default subdivision unit to show in the interface and when sending coins. - 选择达世币单位。 - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - 出现在交易的选项卡的上下文菜单项的第三方网址 (例如:区块链接查询) 。 %s的URL被替换为交易哈希。多个的URL需要竖线 | 分隔。 - - - Third party transaction URLs - 第三方交易网址 - - - Active command-line options that override above options: - 有效的命令行参数覆盖上述选项: - - - Reset all client options to default. - 恢复客户端的缺省设置 - - - &Reset Options - 恢复缺省设置(&R) - - - &OK - 确定(&O) - - - &Cancel - 取消(&C) - - - default - 默认 - - - none - - - - Confirm options reset - 确认恢复缺省设置 - - - Client restart required to activate changes. - 更改生效需要重启客户端。 - - - Client will be shutdown, do you want to proceed? - 客户端即将关闭,确定继续吗? - - - This change would require a client restart. - 此更改需要重启客户端。 - - - The supplied proxy address is invalid. - 提供的代理服务器地址无效。 - - - - OverviewPage - - Form - 表单 - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - 显示信息也许已过期。当与达世币网络连接后钱包程序会自动同步,但现在还未完成。 - - - Available: - 可使用的余额: - - - Your current spendable balance - 您当前可使用的余额 - - - Pending: - 等待中的余额: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 尚未确认的交易总额,未计入当前余额 - - - Immature: - 未成熟的: - - - Mined balance that has not yet matured - 尚未成熟的挖矿收入余额 - - - Total: - 总额: - - - Your current total balance - 您当前的总余额 - - - Status: - 状态: - - - Enabled/Disabled - 打开/关闭 - - - Completion: - 完成度: - - - Darksend Balance: - 匿名传送余额: - - - Amount and Rounds: - 数量与循环次数: - - - 0 DASH / 0 Rounds - 0 达世币 / 0 循环数 - - - Submitted Denom: - 提交的面额: - - - n/a - n/a - - - Darksend - 匿名发送 - - - Start/Stop Mixing - 开始/关闭 混合 - - - (Last Message) - (最近一次信息) - - - Try to manually submit a Darksend request. - 尝试手动提交一次匿名化请求 - - - Try Mix - 尝试混合 - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - 重置目前匿名状态(此操作可能会影响您目前正在执行的混合过程,并且产生费用!) - - - Reset - 重置 - - - out of sync - 数据同步中 - - - Disabled - 关闭 - - - Start Darksend Mixing - 开始匿名化混合 - - - Stop Darksend Mixing - 关闭匿名化混合 - - - No inputs detected - 未检测到输入 - - - Enabled - 打开 - - - Last Darksend message: - - 最后一次匿名信息: - - - - N/A - 不可用 - - - Darksend was successfully reset. - 匿名化被成功重置。 - - - Darksend requires at least %1 to use. - 匿名化要求至少 %1 以使用 - - - Wallet is locked and user declined to unlock. Disabling Darksend. - 钱包已锁定需要用户解锁。 正在关闭匿名化。 - - - - PaymentServer - - Payment request error - 支付请求出错 - - - Cannot start dash: click-to-pay handler - 无法启动达世币程序:click-to-pay handler - - - URI handling - URI 处理 - - - Payment request fetch URL is invalid: %1 - 付款请求URI链接非法: %1 - - - Payment request file handling - 付款请求文件处理 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - 链接不能被解析! 原因可能是无效的达世币地址或输入的链接有错。 - - - Unverified payment requests to custom payment scripts are unsupported. - 不支持到自定义付款脚本的未验证付款请求。 - - - Requested payment amount of %1 is too small (considered dust). - 请求支付的金额 %1 太小(就像尘埃)。 - - - Refund from %1 - 退款来自 %1 - - - Error communicating with %1: %2 - %1: %2 通讯出错 - - - Bad response from server %1 - 来自 %1 服务器的错误响应 - - - Network request error - 网络请求出错 - - - Payment acknowledged - 支付已到账 - - - - PeerTableModel - - - QObject - - Enter a Dash address (e.g. %1) - 输入达世币地址(e.g. %1) - - - - QRImageWidget - - &Save Image... - 保存图片(&S)... - - - &Copy Image - 复制图片(&C) - - - Save QR Code - 保存二维码 - - - PNG Image (*.png) - PNG图片(*.png) - - - - RPCConsole - - Tools window - 工具窗口 - - - &Information - 信息(&I) - - - General - 常规 - - - Name - 姓名 - - - Client name - 客户端名称 - - - N/A - 不可用 - - - Number of connections - 连接数 - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - 从数据路径打开达世币Debug日志,这个过程可能需要几秒钟。 - - - &Open - 打开(&O) - - - Startup time - 启动时间 - - - Network - 网络 - - - Last block time - 上一数据块时间 - - - Debug log file - 调试日志文件 - - - Using OpenSSL version - 使用 OpenSSL 版本 - - - Build date - 创建时间 - - - Current number of blocks - 当前数据块数量 - - - Client version - 客户端版本 - - - Block chain - 数据链 - - - &Console - 控制台(&C) - - - Clear console - 清空控制台 - - - &Network Traffic - 网络流量(&N) - - - &Clear - 清除(&C) - - - Totals - 总数 - - - In: - 输入: - - - Out: - 输出: - - - Welcome to the Dash RPC console. - 欢迎来到达世币RPC控制台。 - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - 使用上下方向键浏览历史, <b>Ctrl-L</b>清除屏幕。 - - - Type <b>help</b> for an overview of available commands. - 使用 <b>help</b> 命令显示帮助信息。 - - - %1 B - %1 字节 - - - %1 KB - %1 KB - - - %1 MB - %1 MB - - - %1 GB - %1 GB - - - - ReceiveCoinsDialog - - R&euse an existing receiving address (not recommended) - 重用现有的接收地址(不推荐) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - 附加在付款要求中的讯息,可以不填,打开要求内容时会显示。注意: 这个讯息不会随着付款送到达世币网路上。 - - - &Message: - 消息(&M): - - - An optional label to associate with the new receiving address. - 可为新建的收款地址添加一个标签。 - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - 附加在付款要求中的讯息,可以不填,打开要求内容时会显示。<br>注意: 这个讯息不会随着付款送到达世币网路上。 - - - Use this form to request payments. All fields are <b>optional</b>. - 使用此表单要求付款。所有字段都是<b>可选</b>。 - - - &Label: - 标签(&L): - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - 可选的请求金额。留空或填零为不要求具体金额。 - - - &Amount: - 总额(&A): - - - &Request payment - 请求付款(&R) - - - Clear all fields of the form. - 清空此表单的所有字段。 - - - Clear - 清除 - - - Requested payments history - 请求付款的历史 - - - Show the selected request (does the same as double clicking an entry) - 显示选中的请求 (双击也可以显示) - - - Show - 显示 - - - Remove the selected entries from the list - 从列表中移除选中的条目 - - - Remove - 移除 - - - Copy label - 复制标签 - - - Copy message - 复制消息 - - - Copy amount - 复制金额 - - - - ReceiveRequestDialog - - QR Code - 二维码 - - - Copy &URI - 复制 URI(&U) - - - Copy &Address - 复制地址(&A) - - - &Save Image... - 保存图片(&S)... - - - Request payment to %1 - 请求付款到 %1 - - - Payment information - 付款信息 - - - URI - URI - - - Address - 地址 - - - Amount - 金额 - - - Label - 标签 - - - Message - 消息 - - - Resulting URI too long, try to reduce the text for label / message. - URI 太长,请试着精简标签或消息文本。 - - - Error encoding URI into QR Code. - 将 URI 转为二维码失败。 - - - - RecentRequestsTableModel - - Date - 日期 - - - Label - 标签 - - - Message - 消息 - - - Amount - 金额 - - - (no label) - (没有标签) - - - (no message) - (无消息) - - - (no amount) - (无金额) - - - - SendCoinsDialog - - Send Coins - 发送货币 - - - Coin Control Features - 交易源地址控制功能 - - - Inputs... - 输入... - - - automatically selected - 自动选择 - - - Insufficient funds! - 存款不足! - - - Quantity: - 总量: - - - Bytes: - 字节: - - - Amount: - 金额: - - - Priority: - 优先级: - - - medium - 中等 - - - Fee: - 费用: - - - no - - - - After Fee: - 加上交易费用后: - - - Change: - 变更 : - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - 如果激活该选项,但是零钱地址用光或者非法,将会新生成零钱地址,转入零钱。 - - - Custom change address - 自定义零钱地址 - - - Confirm the send action - 确认并发送货币 - - - S&end - 发送(&E) - - - Clear all fields of the form. - 清除此表单的所有字段。 - - - Clear &All - 清除所有(&A) - - - Send to multiple recipients at once - 一次发送给多个接收者 - - - Add &Recipient - 添加收款人(&R) - - - Darksend - 匿名发送 - - - InstantX - 即时支付 - - - Balance: - 余额: - - - Copy quantity - 复制金额 - - - Copy amount - 复制金额 - - - Copy fee - 复制交易费 - - - Copy after fee - 复制含交易费的金额 - - - Copy bytes - 复制字节 - - - Copy priority - 复制优先级 - - - Copy change - 复制零钱 - - - using - 用法 - - - anonymous funds - 匿名化金额 - - - (darksend requires this amount to be rounded up to the nearest %1). - (匿名发送需要四舍五入此金额致最接近的值%1). - - - any available funds (not recommended) - 全部有效金额(不推荐) - - - and InstantX - 和 即时支付 - - - %1 to %2 - %1 到 %2 - - - Are you sure you want to send? - 您确定要发出吗? - - - are added as transaction fee - 作为交易费被添加 - - - Confirm send coins - 确认发送货币 - - - The recipient address is not valid, please recheck. - 收款人地址不合法,请检查。 - - - The amount to pay must be larger than 0. - 支付金额必须大于0。 - - - The amount exceeds your balance. - 金额超出您的账上余额。 - - - The total exceeds your balance when the %1 transaction fee is included. - 计入 %1 交易费后的金额超出您的账上余额。 - - - Duplicate address found, can only send to each address once per send operation. - 发现重复的地址, 每次只能对同一地址发送一次。 - - - Transaction creation failed! - 交易创建失败! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - 错误:该交易被拒绝!发生这种错误的原因可能是:钱包中的达世币已经被用掉,有可能您复制了wallet.dat钱包文件,然后用复制的钱包文件支付了达世币,但是这个钱包文件中没有记录。 - - - Error: The wallet was unlocked only to anonymize coins. - 错误: 钱包被锁定以用于匿名化您的达世币。 - - - Warning: Invalid Dash address - 警告:无效的达世币地址 - - - Warning: Unknown change address - 警告:未知的更改地址 - - - (no label) - (没有标签) - - - - SendCoinsEntry - - This is a normal payment. - 这是笔正常的支付。 - - - Pay &To: - 付给(&T): - - - The Dash address to send the payment to - 选择发款地址 - - - Choose previously used address - 选择以前用过的地址 - - - Alt+A - Alt+A - - - Paste address from clipboard - 从剪贴板粘贴地址 - - - Alt+P - Alt+P - - - Remove this entry - 移除此项 - - - &Label: - 标签(&L): - - - Enter a label for this address to add it to the list of used addresses - 请为此地址输入一个标签以将它加入用过的地址列表 - - - A&mount: - 金额(&M) - - - Message: - 消息: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - 附加在达世币付款协议URI中的信息,会和交易内容一并存储,可供您参考.提示:此信息不会发送到达世币网络上. - - - This is an unverified payment request. - 这是个非有效的支付请求。 - - - Pay To: - 支付给: - - - Memo: - 便条: - - - This is a verified payment request. - 这是个有效的支付请求。 - - - Enter a label for this address to add it to your address book - 为这个地址输入一个标签,以便将它添加到您的地址簿 - - - - ShutdownWindow - - Dash Core is shutting down... - 达世币核心正在关闭... - - - Do not shut down the computer until this window disappears. - 在此窗口消失前不要关闭计算机。 - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - 签名 - 为消息签名/验证签名消息 - - - &Sign Message - 签名消息(&S) - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - 您可以用你的地址对消息进行签名,以证明您是该地址的所有人。注意不要对模棱两可的消息签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。 - - - The Dash address to sign the message with - 对此地址进行签名 - - - Choose previously used address - 选择以前用过的地址 - - - Alt+A - Alt+A - - - Paste address from clipboard - 从剪贴板粘贴地址 - - - Alt+P - Alt+P - - - Enter the message you want to sign here - 请输入您要发送的签名消息 - - - Signature - 签名 - - - Copy the current signature to the system clipboard - 复制当前签名至剪切板 - - - Sign the message to prove you own this Dash address - 签署信息证明你拥有此达世币地址 - - - Sign &Message - 消息签名(&M) - - - Reset all sign message fields - 清空所有签名消息栏 - - - Clear &All - 清除所有(&A) - - - &Verify Message - 验证消息(&V) - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - 在下面输入签名地址,消息(请确保换行符、空格符、制表符等等一个不漏)和签名以验证消息。请确保签名信息准确,提防中间人攻击。 - - - The Dash address the message was signed with - 已签名的地址 - - - Verify the message to ensure it was signed with the specified Dash address - 验证信息用来确保此被签署信息对应相对的达世币地址 - - - Verify &Message - 验证消息签名(&M) - - - Reset all verify message fields - 清空所有验证消息栏 - - - Click "Sign Message" to generate signature - 单击“签名消息“产生签名。 - - - The entered address is invalid. - 输入的地址非法。 - - - Please check the address and try again. - 请检查地址后重试。 - - - The entered address does not refer to a key. - 输入的地址没有关联的公私钥对。 - - - Wallet unlock was cancelled. - 钱包解锁动作取消。 - - - Private key for the entered address is not available. - 找不到输入地址关联的私钥。 - - - Message signing failed. - 消息签名失败。 - - - Message signed. - 消息已签名。 - - - The signature could not be decoded. - 签名无法解码。 - - - Please check the signature and try again. - 请检查签名后重试。 - - - The signature did not match the message digest. - 签名与消息摘要不匹配。 - - - Message verification failed. - 消息验证失败。 - - - Message verified. - 消息验证成功。 - - - - SplashScreen - - Dash Core - 达世币核心 - - - Version %1 - 版本 %1 - - - The Bitcoin Core developers - Bitcoin Core 的开发者 - - - The Dash Core developers - 达世币核心开发人员 - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open until %1 - 至 %1 个数据块时开启 - - - conflicted - 发现冲突 - - - %1/offline (verified via instantx) - %1/下线(经过即时支付系统认证) - - - %1/confirmed (verified via instantx) - %1/已确认(经过即时支付系统认证) - - - %1 confirmations (verified via instantx) - %1/确认完成(经过即时支付付系统认证) - - - %1/offline - %1 / 离线 - - - %1/unconfirmed - %1/未确认 - - - %1 confirmations - %1 已确认 - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1/下线 (即时支付系统正在认证中 - %2 of %3签名数) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1/已确认 (即时支付系统正在认证中 - %2 of %3签名数) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1/确认完成 (即时支付系统正在认证中 - %2 of %3签名数) - - - %1/offline (InstantX verification failed) - %1/下线 (即时支付系统认证失败) - - - %1/confirmed (InstantX verification failed) - %1/已确认 (即时支付系统认证失败) - - - Status - 状态 - - - , has not been successfully broadcast yet - ,未被成功广播 - - - Date - 日期 - - - Source - - - - Generated - 生成 - - - From - 来自 - - - unknown - 未知 - - - To - - - - own address - 自己的地址 - - - label - 标签 - - - Credit - 收入 - - - not accepted - 未被接受 - - - Debit - 支出 - - - Transaction fee - 交易费 - - - Net amount - 净额 - - - Message - 消息 - - - Comment - 备注 - - - Transaction ID - 交易ID - - - Merchant - 商店 - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - 生成的达世币在可以使用前必须有 %1 个成熟的区块。当您生成了此区块后,它将被广播到网络中以加入区块链。如果它未成功进入区块链,其状态将变更为“不接受”并且不可使用。这可能偶尔会发生,如果另一个节点比你早几秒钟成功生成一个区块。 - - - Debug information - 调试信息 - - - Transaction - 交易 - - - Inputs - 输入 - - - Amount - 金额 - - - true - 正确 - - - false - 错误 - - - - TransactionDescDialog - - Transaction details - 交易细节 - - - This pane shows a detailed description of the transaction - 当前面板显示了交易的详细信息 - - - - TransactionTableModel - - Date - 日期 - - - Type - 类型 - - - Address - 地址 - - - Open until %1 - 至 %1 个数据块时开启 - - - Offline - 掉线 - - - Unconfirmed - 未确认的 - - - Confirming (%1 of %2 recommended confirmations) - 确认中 (推荐 %2个确认,已经有 %1个确认) - - - Confirmed (%1 confirmations) - 已确认 (%1 条确认信息) - - - Conflicted - 冲突的 - - - Immature (%1 confirmations, will be available after %2) - 未成熟 (%1 个确认,将在 %2 个后可用) - - - This block was not received by any other nodes and will probably not be accepted! - 此数据块未被任何其他节点接收,可能不被接受! - - - Generated but not accepted - 已生成但未被接受 - - - Received with - 接收于 - - - Received from - 收款来自 - - - Received via Darksend - 已通过匿名处理接收 - - - Sent to - 发送给 - - - Payment to yourself - 付款给自己 - - - Mined - 挖矿所得 - - - Darksend Denominate - 匿名发送面额化 - - - Darksend Collateral Payment - 匿名发送附加费用 - - - Darksend Make Collateral Inputs - 匿名发送会产生附加费用 - - - Darksend Create Denominations - 匿名发送会生成面值额度 - - - Darksent - 匿名发送 - - - (n/a) - (不可用) - - - Transaction status. Hover over this field to show number of confirmations. - 交易状态。 鼠标移到此区域可显示确认项数量。 - - - Date and time that the transaction was received. - 接收到交易的时间 - - - Type of transaction. - 交易类别。 - - - Destination address of transaction. - 交易目的地址。 - - - Amount removed from or added to balance. - 从余额添加或移除的金额。 - - - - TransactionView - - All - 全部 - - - Today - 今天 - - - This week - 本周 - - - This month - 本月 - - - Last month - 上月 - - - This year - 今年 - - - Range... - 范围... - - - Received with - 接收于 - - - Sent to - 发送给 - - - Darksent - 匿名发送 - - - Darksend Make Collateral Inputs - 匿名发送会产生附加费用 - - - Darksend Create Denominations - 匿名发送会生成面值额度 - - - Darksend Denominate - 匿名发送面额化 - - - Darksend Collateral Payment - 匿名发送附加费用 - - - To yourself - 到自己 - - - Mined - 挖矿所得 - - - Other - 其他 - - - Enter address or label to search - 输入地址或标签进行搜索 - - - Min amount - 最小金额 - - - Copy address - 复制地址 - - - Copy label - 复制标签 - - - Copy amount - 复制金额 - - - Copy transaction ID - 复制交易编号 - - - Edit label - 编辑标签 - - - Show transaction details - 显示交易详情 - - - Export Transaction History - 导出交易历史 - - - Comma separated file (*.csv) - 逗号分隔文件 (*.csv) - - - Confirmed - 已确认 - - - Date - 日期 - - - Type - 类别 - - - Label - 标签 - - - Address - 地址 - - - ID - ID - - - Exporting Failed - 导出失败 - - - There was an error trying to save the transaction history to %1. - 导出交易历史到 %1 时发生错误。 - - - Exporting Successful - 导出成功 - - - The transaction history was successfully saved to %1. - 交易历史已成功保存到 %1。 - - - Range: - 范围: - - - to - - - - - UnitDisplayStatusBarControl - - - WalletFrame - - No wallet has been loaded. - 没有载入钱包。 - - - - WalletModel - - Send Coins - 发送达世币 - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - 即时支付功能目前还不支持发送如此高的金额.目前限制在%1 达世币. - - - - WalletView - - &Export - 导出(&E) - - - Export the data in the current tab to a file - 导出当前数据到文件 - - - Backup Wallet - 备份钱包 - - - Wallet Data (*.dat) - 钱包文件(*.dat) - - - Backup Failed - 备份失败 - - - There was an error trying to save the wallet data to %1. - 尝试保存钱包数据至 %1 时发生错误。 - - - Backup Successful - 备份成功 - - - The wallet data was successfully saved to %1. - 钱包数据成功保存至 %1 。 - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - 与提供地址绑定,持续监听。使用[host]:标记IPv6端口 - - - Cannot obtain a lock on data directory %s. Dash Core is probably already running. - 不能获得锁定的数据目录 %s. 达世币核心可能已经在运行。 - - - Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - 为了匿名发送的正常发送,您可能需要再混淆一些币. - - - Enter regression test mode, which uses a special chain in which blocks can be solved instantly. - 进入回滚测试模式,它可使用特殊区块链来立刻解出区块. - - - Error: Listening for incoming connections failed (listen returned error %s) - 错误:监听输入链接失败(监听回馈错误 %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - 当收到相关警示或产生相当长的分叉时,执行命令(命令中的 %s 会被警示信息代替) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - 当钱包有交易改变时需要执行命令(命令中的 %s 会被交易识别码代替) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - 当最新区块改变时需要执行的命令(命令中的 %s 会被区块哈希值代替) - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - 即时支付功能需要6步确认,您可以稍后重试。 - - - Unable to bind to %s on this computer. Dash Core is probably already running. - 无法绑定%s此计算机. 达世币核心应该已经在运行中了. - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - 警告: -paytxfee 设定了很高的金额!这可是你交易付款所要付的手续费。 - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - 警告: 达世币网路对于区块链结的决定目前有分歧!看来有些矿工会有问题。 - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - 警告: 我们和某些连线的节点对于区块链结的决定不同!你可能需要升级,或是需要等其它的节点升级。 - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - 警告: 读取钱包档wallet.dat 时发生错误!所有的密钥都正确读取了,但是交易资料或位址簿资料可能会缺少或不正确。 - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - 警告: 钱包档wallet.dat 损坏,但资料被拯救回来了!原来的wallet.dat 会改储存在%s, 档名是wallet.{timestamp}.bak. 如果余额或交易资料有误,你应该要用备份资料复原回来。 - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - 您必须在配置中指定一个主节点密钥。请参阅文档以获得帮助。 - - - (default: 1) - (默认: 1) - - - Accept command line and JSON-RPC commands - 接受命令行以及JSON-RPC命令 - - - Accept connections from outside (default: 1 if no -proxy or -connect) - 接受来自外部链接 (默认: 1 if no -proxy or -connect) - - - Add a node to connect to and attempt to keep the connection open - 添加一个可连接节点,并尝试保持连接开放。 - - - Allow DNS lookups for -addnode, -seednode and -connect - 允许DNS查找 -新节点, -子节点 和 -链接 - - - Already have that input. - 输入已存在。 - - - Attempt to recover private keys from a corrupt wallet.dat - 尝试从已损坏的钱包文件中找回私钥 - - - Block creation options: - 数据块创建选项: - - - Can't denominate: no compatible inputs left. - 不能面额化:没有可匹配的输入。 - - - Cannot downgrade wallet - 不能降级钱包 - - - Cannot resolve -bind address: '%s' - 不能解决 -绑定地址:'%s' - - - Cannot resolve -externalip address: '%s' - 不能解决 -外部ip地址:'%s' - - - Cannot write default address - 不能写入默认钱包 - - - Collateral not valid. - 并行无效。 - - - Connect only to the specified node(s) - 连接至指定(多个)节点 - - - Connect to a node to retrieve peer addresses, and disconnect - 连接至节点来找回对等地址和断开链接 - - - Connection options: - 连接选项: - - - Corrupted block database detected - 已找到损坏的数据块 - - - Darksend options: - 匿名发送选项: - - - Debugging/Testing options: - 排除故障/测试 选项: - - - Discover own IP address (default: 1 when listening and no -externalip) - 发现私有IP地址(默认:1 当监听时没有外部IP) - - - Do you want to rebuild the block database now? - 你想要现在重建区块资料库吗? - - - Done loading - 读取完成 - - - Entries are full. - 词条已满. - - - Error initializing block database - 正在初始化数据库块错误 - - - Error initializing wallet database environment %s! - 正在初始钱包数据库环境错误 %s! - - - Error loading block database - 读取数据库块错误 - - - Error loading wallet.dat - 读取钱包文件错误 - - - Error loading wallet.dat: Wallet corrupted - 读取钱包文件错误:钱包已损坏 - - - Error opening block database - 正在打开数据库块错误 - - - Error reading from database, shutting down. - 读取数据库错误,正在关闭。 - - - Error recovering public key. - 恢复公钥时发生错误。 - - - Error - 错误 - - - Error: Disk space is low! - 错误:磁盘空间不够! - - - Error: Wallet locked, unable to create transaction! - 错误:钱包被锁定,无法创建交易! - - - Failed to listen on any port. Use -listen=0 if you want this. - 监听端口失败。如果想使用此项 修改-listen=0 - - - Failed to read block - 读取数据块失败 - - - Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u) - 禁止所有达世币附加功能(主节点, 匿名发送, 即时发送, 预算) (0-1, default: %u) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - 如果手续费比这个值低,就视为没有付手续费(当产生交易时)(默认: %s) - - - Found unconfirmed denominated outputs, will wait till they confirm to continue. - 未确认的面额化输出,将等待他们确认后继续。 - - - Importing... - 正在导入... - - - Imports blocks from external blk000??.dat file - 从其它来源的 blk000??.dat 档汇入区块 - - - Incompatible mode. - 不兼容模式。 - - - Incompatible version. - 不兼容版本。 - - - Information - 信息 - - - Initialization sanity check failed. Dash Core is shutting down. - 初始化检查失败。达世币核心正在关闭。 - - - Input is not valid. - 输入是无效的。 - - - InstantX options: - 即时支付 选项: - - - Insufficient funds. - 存款不足。 - - - Invalid -onion address: '%s' - 无效-洋葱头地址:'%s' - - - Invalid -proxy address: '%s' - 无效-代理地址:'%s' - - - Invalid masternodeprivkey. Please see documenation. - 无效主节点私钥。请查阅文件材料。 - - - Invalid private key. - 无效私钥。 - - - Invalid script detected. - 检测到无效脚本。 - - - Last Darksend was too recent. - 最后一次匿名发送刚刚完成。 - - - Loading addresses... - 正在读取地址... - - - Loading block index... - 正在读取数据块索引... - - - Loading wallet... (%3.2f %%) - 正在读取钱包...(%3.2f%%) - - - Loading wallet... - 正在读取钱包... - - - Masternode options: - 主节点选项: - - - Masternode queue is full. - 主节点列队已满。 - - - Masternode: - 主节点: - - - Missing input transaction information. - 丢失输入交易信息。 - - - No funds detected in need of denominating. - 在面额化过程中没有检测到所需的资金。 - - - No matching denominations found for mixing. - 对于混淆处理,没有找到匹配的面额资金。 - - - Non-standard public key detected. - 检测到非标准的公钥。 - - - Not compatible with existing transactions. - 与已存在交易不匹配。 - - - Not enough file descriptors available. - 文件说明符不可用 - - - Options: - 选项: - - - Password for JSON-RPC connections - JSON-RPC连接密码 - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL选项: (请在比特币维基百科查看SSL建立说明) - - - RPC server options: - RPC服务器选项: - - - Rebuild block chain index from current blk000??.dat files - 从现在的blk000??.dat文件重新建立数据块链索引 - - - Rescan the block chain for missing wallet transactions - 对丢失的钱包交易重新扫描数据块链 - - - Rescanning... - 正在重新扫描... - - - Run in the background as a daemon and accept commands - 运行至后台并且接受命令 - - - Session not complete! - 对话未完成! - - - Set database cache size in megabytes (%d to %d, default: %d) - 以兆字节为单位设置缓存数据大小 (%d to %d, 默认: %d) - - - Set maximum block size in bytes (default: %d) - 以字节为单位设置最大的块(默认: %d) - - - Set the masternode private key - 设置主节点私钥 - - - Show all debugging options (usage: --help -help-debug) - 显示所有debug选项(使用: --help -help-debug) - - - Shrink debug.log file on client startup (default: 1 when no -debug) - 客户启动时缩小debug.log文件(默认: 1 when no -debug) - - - Signing failed. - 签名失败。 - - - Signing transaction failed - 交易签名失败 - - - Specify data directory - 指定数据目录 - - - Specify wallet file (within data directory) - 指定钱包文件(通过数据目录) - - - Specify your own public address - 指定你个人公开地址 - - - This help message - 此帮助信息 - - - This is intended for regression testing tools and app development. - 这被用来作为回归测试工具和app的开发。 - - - Transaction amount too small - 交易额过小 - - - Transaction amounts must be positive - 交易额一定要真实有效 - - - Transaction created successfully. - 交易创建成功。 - - - Transaction fees are too high. - 交易费用过高。 - - - Transaction not valid. - 交易无效。 - - - Transaction too large - 交易过大 - - - Unable to bind to %s on this computer (bind returned error %s) - 无法绑定%s此计算机 (绑定返回错误 %s) - - - Unable to sign spork message, wrong key? - 无法签署交叉信息,错误的密钥? - - - Unknown network specified in -onlynet: '%s' - 在 -onlynet 指定了不明的网路别: '%s' - - - Upgrade wallet to latest format - 升级钱包至最新版本 - - - Use OpenSSL (https) for JSON-RPC connections - 对JSON-RPC链接使用OpenSSL(https) - - - Use UPnP to map the listening port (default: 1 when listening) - 使用UPnP来映射监听端口(默认:1为监听中) - - - Use the test network - 使用测试网络 - - - Username for JSON-RPC connections - 链接JSON-RPC的用户名 - - - Value more than Darksend pool maximum allows. - 数值超过匿名发送池所允许的最大数。 - - - Verifying blocks... - 验证数据块中... - - - Verifying wallet... - 验证钱包中... - - - Wallet %s resides outside data directory %s - 钱包 %s 属于外部数据目录 %s - - - Wallet is locked. - 钱包被锁。 - - - Wallet options: - 钱包选项: - - - Warning - 警告 - - - Warning: This version is obsolete, upgrade required! - 警告:版本过低,请升级! - - - You need to rebuild the database using -reindex to change -txindex - 你需要通过使用-reindex改变-txindex来重新建立数据库 - - - Zapping all transactions from wallet... - 从钱包正在展开所有交易记录... - - - on startup - 正在启动 - - - wallet.dat corrupt, salvage failed - 钱包数据损坏,恢复失败 - - - \ No newline at end of file diff --git a/src/qt/locale/dash_zh_TW.ts b/src/qt/locale/dash_zh_TW.ts deleted file mode 100644 index 747926ff1505..000000000000 --- a/src/qt/locale/dash_zh_TW.ts +++ /dev/null @@ -1,3885 +0,0 @@ - - - AddressBookPage - - Right-click to edit address or label - 右鍵點一下來修改位址或標記 - - - Create a new address - 建立新的位址 - - - &New - 新增(&N) - - - Copy the currently selected address to the system clipboard - 複製目前選擇的位址到系統剪貼簿 - - - &Copy - 複製(&C) - - - Delete the currently selected address from the list - 把目前選擇的位址從列表中刪除 - - - &Delete - 刪除(&D) - - - Export the data in the current tab to a file - 把目前分頁的資料匯出存成檔案 - - - &Export - 匯出(&E) - - - C&lose - 關閉(&C) - - - Choose the address to send coins to - 選擇要付錢過去的位址 - - - Choose the address to receive coins with - 選擇要收錢進來的位址 - - - C&hoose - 選取(&C) - - - Sending addresses - 付款位址 - - - Receiving addresses - 收款位址 - - - These are your Dash addresses for sending payments. Always check the amount and the receiving address before sending coins. - 這些是你要付款過去的達世幣位址。在付錢之前,務必要檢查金額和收款位址是否正確。 - - - These are your Dash addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - 這些是你用來收款的達世幣位址。建議在每次交易時,都使用一個新的收款位址。 - - - &Copy Address - 複製位址(&C) - - - Copy &Label - 複製標記(&L) - - - &Edit - 編輯(&E) - - - Export Address List - 匯出位址清單 - - - Comma separated file (*.csv) - 逗號分隔資料檔(*.csv) - - - Exporting Failed - 匯出失敗 - - - There was an error trying to save the address list to %1. Please try again. - 儲存位址列表到 %1 時發生錯誤。請重試一次。 - - - - AddressTableModel - - Label - 標記 - - - Address - 位址 - - - (no label) - (無標記) - - - - AskPassphraseDialog - - Passphrase Dialog - 密碼對話視窗 - - - Enter passphrase - 請輸入密碼 - - - New passphrase - 新密碼 - - - Repeat new passphrase - 重複新密碼 - - - Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - 當OS帳戶被盜時就停止發送幣。不能提供真正的保護 - - - For anonymization only - 只限匿名 - - - Enter the new passphrase to the wallet.<br/>Please use a passphrase of <b>ten or more random characters</b>, or <b>eight or more words</b>. - 輸入錢包的新密碼。<br/>密碼請用<b>10 個以上的字元</b>,或是<b>8 個以上的字詞</b>。 - - - Encrypt wallet - 加密錢包 - - - This operation needs your wallet passphrase to unlock the wallet. - 這個動作需要你的錢包密碼來解鎖錢包。 - - - Unlock wallet - 解鎖錢包 - - - This operation needs your wallet passphrase to decrypt the wallet. - 這個動作需要你的錢包密碼來把錢包解密。 - - - Decrypt wallet - 解密錢包 - - - Change passphrase - 更改密碼 - - - Enter the old and new passphrase to the wallet. - 請輸入錢包的舊密碼及新密碼。 - - - Confirm wallet encryption - 確認錢包加密 - - - Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR DASH</b>! - 警告: 如果把錢包加密後又忘記密碼,你就會從此<b>失去其中所有的達世幣了</b>! - - - Are you sure you wish to encrypt your wallet? - 你確定要把錢包加密嗎? - - - Wallet encrypted - 錢包已加密 - - - Dash will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your dashs from being stolen by malware infecting your computer. - 達世幣軟體現在要關閉,好完成加密程序。請注意,加密錢包不能完全防止入侵你的電腦的惡意程式偷取達世幣。 - - - IMPORTANT: Any previous backups you have made of your wallet file should be replaced with the newly generated, encrypted wallet file. For security reasons, previous backups of the unencrypted wallet file will become useless as soon as you start using the new, encrypted wallet. - 重要: 請改用新產生有加密的錢包檔,來取代舊錢包檔的備份。為了安全性的理由,當你開始使用新的有加密的錢包後,舊錢包檔的備份就不能再使用了。 - - - Wallet encryption failed - 錢包加密失敗 - - - Wallet encryption failed due to an internal error. Your wallet was not encrypted. - 因為內部錯誤導致錢包加密失敗。你的錢包還是沒加密。 - - - The supplied passphrases do not match. - 提供的密碼不一樣。 - - - Wallet unlock failed - 錢包解鎖失敗 - - - The passphrase entered for the wallet decryption was incorrect. - 輸入要用來解密錢包的密碼不對。 - - - Wallet decryption failed - 錢包解密失敗 - - - Wallet passphrase was successfully changed. - 成功更改錢包的密碼。 - - - Warning: The Caps Lock key is on! - 警告: 大寫字母鎖定作用中! - - - - BitcoinGUI - - Dash Core - 達世幣核心 - - - Wallet - 錢包 - - - Node - 節點 - - - &Overview - 總覽(&O) - - - Show general overview of wallet - 顯示錢包一般總覽 - - - &Send - 發送(&S) - - - Send coins to a Dash address - 付錢給一個達世幣位址 - - - &Receive - 接收(&R) - - - Request payments (generates QR codes and dash: URIs) - 要求付款(產生 QR Code 和達世幣付款協議的 URI) - - - &Transactions - 交易(&T) - - - Browse transaction history - 瀏覽交易紀錄 - - - E&xit - 結束(&E) - - - Quit application - 結束應用程式 - - - &About Dash Core - 關於達世幣核心(&A) - - - Show information about Dash Core - 顯示達世幣核心的相關資訊 - - - About &Qt - 關於 &Qt - - - Show information about Qt - 顯示 Qt 相關資訊 - - - &Options... - 選項(&O)... - - - Modify configuration options for Dash - 修改達世幣軟體的設定選項 - - - &Show / Hide - 顯示或隱藏(&S) - - - Show or hide the main Window - 顯示或隱藏主視窗 - - - &Encrypt Wallet... - 加密錢包(&E) - - - Encrypt the private keys that belong to your wallet - 把錢包中的密鑰加密 - - - &Backup Wallet... - 備份錢包(&B)... - - - Backup wallet to another location - 把錢包備份到其它地方 - - - &Change Passphrase... - 更改密碼(&C)... - - - Change the passphrase used for wallet encryption - 更改錢包加密用的密碼 - - - &Unlock Wallet... - 解鎖錢包(&U)... - - - Unlock wallet - 解鎖錢包 - - - &Lock Wallet - 鎖定錢包(&L) - - - Sign &message... - 簽署訊息(&M)... - - - Sign messages with your Dash addresses to prove you own them - 用達世幣位址簽署訊息來證明位址是你的 - - - &Verify message... - 驗證訊息(&V)... - - - Verify messages to ensure they were signed with specified Dash addresses - 驗證訊息是用來確定訊息是用指定的達世幣位址簽署的 - - - &Information - 資訊(&I) - - - Show diagnostic information - 顯示診斷信息 - - - &Debug console - 除錯主控台(&D) - - - Open debugging console - 開啓除錯主控台 - - - &Network Monitor - 網絡監視器(&N) - - - Show network monitor - 顯示網絡監視器 - - - &Peers list - 節點列表(&P) - - - Show peers info - 節點列表資訊 - - - Wallet &Repair - 錢包修復(&R) - - - Show wallet repair options - 顯示修復錢包選項 - - - Open &Configuration File - 開啟配置文件(&C) - - - Open configuration file - 開啟配置文件 - - - Show Automatic &Backups - 顯示自動備份(&B) - - - Show automatically created wallet backups - 顯示自動創建的錢包備份檔 - - - &Sending addresses... - 付款位址(&S)... - - - Show the list of used sending addresses and labels - 顯示已使用過的付款位址和標記的清單 - - - &Receiving addresses... - 收款位址(&R)... - - - Show the list of used receiving addresses and labels - 顯示已使用過的收款位址和標記的清單 - - - Open &URI... - 開啓 &URI... - - - Open a dash: URI or payment request - 開啓一個達世幣協議的 URI 或付款要求 - - - &Command-line options - 命令列選項(&C) - - - Dash Core client - 達世幣核心客戶端軟體 - - - Processed %n blocks of transaction history. - 已經處理了 %n 個區塊的交易紀錄。 - - - Synchronizing additional data: %p% - 正在同步額外的數據: %p% - - - Show the Dash Core help message to get a list with possible Dash command-line options - 顯示達世幣核心的說明訊息,來取得可用命令列選項的列表 - - - &File - 檔案(&F) - - - &Settings - 設定(&S) - - - &Tools - 工具(&T) - - - &Help - 說明(&H) - - - Tabs toolbar - 分頁工具列 - - - %n active connection(s) to Dash network - %n 個運作中的達世幣網路連線 - - - Synchronizing with network... - 正在跟網路進行同步... - - - Importing blocks from disk... - 正在從磁碟匯入區塊資料... - - - Reindexing blocks on disk... - 正在為磁碟裡的區塊重建索引... - - - No block source available... - 沒有可用的區塊來源... - - - Up to date - 最新狀態 - - - %n hour(s) - %n 個小時 - - - %n day(s) - %n 天 - - - %n week(s) - %n 個星期 - - - %1 and %2 - %1又 %2 - - - %n year(s) - %n 年 - - - %1 behind - 落後 %1 - - - Catching up... - 正在趕進度... - - - Last received block was generated %1 ago. - 最近收到的區塊是在 %1 以前產生的。 - - - Transactions after this will not yet be visible. - 暫時會看不到在這之後的交易。 - - - Error - 錯誤 - - - Warning - 警告 - - - Information - 資訊 - - - Sent transaction - 付款交易 - - - Incoming transaction - 收款交易 - - - Date: %1 -Amount: %2 -Type: %3 -Address: %4 - - 日期: %1 -金額: %2 -種類: %3 -位址: %4 - - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> - 錢包<b>已加密</b>目前為<b>解鎖</b>狀態 - - - Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonimization only - 錢包<b>已加密</b>目前為<b>解鎖</b>狀態以進行匿名處理 - - - Wallet is <b>encrypted</b> and currently <b>locked</b> - 錢包<b>已加密</b>目前為<b>鎖定</b>狀態 - - - - ClientModel - - Network Alert - 網路警報 - - - - CoinControlDialog - - Quantity: - 數目: - - - Bytes: - 位元組數: - - - Amount: - 金額: - - - Priority: - 優先度: - - - Fee: - 手續費: - - - Coin Selection - 選擇錢幣 - - - Dust: - 零散錢: - - - After Fee: - 計費後金額: - - - Change: - 找零金額: - - - (un)select all - (全不選)或全選 - - - Tree mode - 樹狀模式 - - - List mode - 列表模式 - - - (1 locked) - (1 鎖定) - - - Amount - 金額 - - - Received with label - 收款標記 - - - Received with address - 收款位址 - - - DS Rounds - 匿名發送循環 - - - Date - 日期 - - - Confirmations - 確認次數 - - - Confirmed - 已確認 - - - Priority - 優先度 - - - Copy address - 複製位址 - - - Copy label - 複製標記 - - - Copy amount - 複製金額 - - - Copy transaction ID - 複製交易識別碼 - - - Lock unspent - 鎖定未動用資金 - - - Unlock unspent - 解鎖未動用資金 - - - Copy quantity - 複製數目 - - - Copy fee - 複製手續費 - - - Copy after fee - 複製計費後金額 - - - Copy bytes - 複製位元組數 - - - Copy priority - 複製優先度 - - - Copy dust - 複製零散金額 - - - Copy change - 複製找零金額 - - - Non-anonymized input selected. <b>Darksend will be disabled.</b><br><br>If you still want to use Darksend, please deselect all non-nonymized inputs first and then check Darksend checkbox again. - 選擇了非匿名的輸入。 <b> 匿名發送將會被禁用。</ b><br> <br>如果你仍然想用匿名發送,請先取消選取所有非匿名的輸入,然後再勾選匿名發送的核取方塊 - - - highest - 最高 - - - higher - 很高 - - - high - - - - medium-high - 中高 - - - Can vary +/- %1 duff(s) per input. - 每組輸入可能有 +/- %1 個 duff(s) 的誤差。 - - - n/a - 不適用 - - - medium - 中等 - - - low-medium - 中低 - - - low - - - - lower - 很低 - - - lowest - 最低 - - - (%1 locked) - (%1 鎖定) - - - none - - - - yes - - - - no - - - - This label turns red, if the transaction size is greater than 1000 bytes. - 當交易大小大於 1000 位元組時,文字會變紅色。 - - - This means a fee of at least %1 per kB is required. - 表示每一千位元組(kB)需要至少 %1 的手續費。 - - - Can vary +/- 1 byte per input. - 每組輸入可能會誤差多或少 1 個位元組。 - - - Transactions with higher priority are more likely to get included into a block. - 優先度較高的交易比較有可能被接受放進區塊中。 - - - This label turns red, if the priority is smaller than "medium". - 當優先度低於「中等」時,文字會變紅色。 - - - This label turns red, if any recipient receives an amount smaller than %1. - 當任何一個收款金額小於 %1 時,文字會變紅色。 - - - (no label) - (無標記) - - - change from %1 (%2) - 找零前是 %1 (%2) - - - (change) - (找零) - - - - DarksendConfig - - Configure Darksend - 配置匿名發送 - - - Basic Privacy - 基本隱私 - - - High Privacy - 高度隱私 - - - Maximum Privacy - 最大隱私 - - - Please select a privacy level. - 請選擇穩私級別。 - - - Use 2 separate masternodes to mix funds up to 1000 DASH - 使用2個獨立的主節點來混合最高達1000達世幣的資金 - - - Use 8 separate masternodes to mix funds up to 1000 DASH - 使用8個獨立的主節點來混合最高達1000達世幣的資金 - - - Use 16 separate masternodes - 使用16個獨立的主節點 - - - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH - 這個是最快的選項,將耗費約~0.025達世幣作為匿名處理1000達世幣的費用 - - - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH - 這個是一般的選項,將耗費約0.05達世幣作為匿名處理1000達世幣的費用 - - - 0.1 DASH per 1000 DASH you anonymize. - 每1000達世幣耗費0.1達世幣作為匿名處理費用 - - - This is the slowest and most secure option. Using maximum anonymity will cost - 這是最慢的和最安全的選頁。耗費最多的匿名處理費 - - - Darksend Configuration - 匿名發送配置 - - - Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名發送已成功設置為一般(%1到2次循環)。你可以隨時打開達世幣配置窗口來修改。 - - - Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名發送已成功設置為高(%1到8次循環)。你可以隨時打開達世幣配置窗口來修改。 - - - Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen. - 匿名發送已成功設置為最高(%1到16次循環)。你可以隨時打開達世幣配置窗口來修改。 - - - - EditAddressDialog - - Edit Address - 編輯位址 - - - &Label - 標記(&L) - - - The label associated with this address list entry - 跟這個位址簿項目關聯的標記 - - - &Address - 位址(&A) - - - The address associated with this address list entry. This can only be modified for sending addresses. - 跟這個位址簿項目關聯的位址。只有付款位址才能被修改。 - - - New receiving address - 新建收款位址 - - - New sending address - 新建付款位址 - - - Edit receiving address - 編輯收款位址 - - - Edit sending address - 編輯付款位址 - - - The entered address "%1" is not a valid Dash address. - 輸入的位址 %1 並不是有效的達世幣位址。 - - - The entered address "%1" is already in the address book. - 輸入的位址 %1 在位址簿中已經有了。 - - - Could not unlock wallet. - 沒辦法把錢包解鎖。 - - - New key generation failed. - 產生新的密鑰失敗了。 - - - - FreespaceChecker - - A new data directory will be created. - 將會創建一個新的資料目錄。 - - - name - 名稱 - - - Directory already exists. Add %1 if you intend to create a new directory here. - 已經有這個目錄了。如果你要在裡面造出新的目錄的話,請加上 %1. - - - Path already exists, and is not a directory. - 已經有指定的路徑了,並且不是一個目錄。 - - - Cannot create data directory here. - 沒辦法在這裡建立資料目錄。 - - - - HelpMessageDialog - - Dash Core - 達世幣核心 - - - version - 版本 - - - (%1-bit) - (%1 位元) - - - About Dash Core - 關於達世幣核心 - - - Command-line options - 命令列選項 - - - Usage: - 用法: - - - command-line options - 命令列選項 - - - UI options - 使用界面選項 - - - Choose data directory on startup (default: 0) - 啓動時選擇資料目錄(預設值: 0) - - - Set language, for example "de_DE" (default: system locale) - 設定語言,比如說 de_DE (預設值: 系統語系) - - - Start minimized - 啓動時縮到最小 - - - Set SSL root certificates for payment request (default: -system-) - 設定付款請求時所使用的 SSL 根憑證 (預設值: 系統憑證庫) - - - Show splash screen on startup (default: 1) - 顯示啓動畫面(預設值: 1) - - - - Intro - - Welcome - 歡迎 - - - Welcome to Dash Core. - 歡迎使用達世幣核心 - - - As this is the first time the program is launched, you can choose where Dash Core will store its data. - 因為這是程式第一次啓動,你可以選擇達世幣核心儲存資料的地方。 - - - Dash Core will download and store a copy of the Dash block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - 達世幣核心會下載並儲存一份達世幣區塊鏈的副本。至少有 %1GB 的資料會儲存到這個目錄中,並且還會持續增長。另外錢包資料也會儲存在這個目錄。 - - - Use the default data directory - 使用預設的資料目錄 - - - Use a custom data directory: - 使用自定的資料目錄: - - - Dash Core - 達世幣核心 - - - Error: Specified data directory "%1" cannot be created. - 錯誤: 無法新增指定的資料目錄: %1 - - - Error - 錯誤 - - - %1 GB of free space available - 可用空間尚存 %1 GB - - - (of %1 GB needed) - (需要 %1 GB) - - - - OpenURIDialog - - Open URI - 開啓 URI - - - Open payment request from URI or file - 從 URI 或檔案開啟付款要求 - - - URI: - URI: - - - Select payment request file - 選擇付款要求資料檔 - - - Select payment request file to open - 選擇要開啟的付款要求資料檔 - - - - OptionsDialog - - Options - 選項 - - - &Main - 主要(&M) - - - Automatically start Dash after logging in to the system. - 在登入系統後自動啓動達世幣軟體。 - - - &Start Dash on system login - 系統登入時啟動達世幣(&S) - - - Size of &database cache - 資料庫快取大小 - - - MB - MB (百萬位元組) - - - Number of script &verification threads - 指令碼驗證執行緒數目 - - - (0 = auto, <0 = leave that many cores free) - (0 表示程式自動決定,小於 0 表示保留處理器核心不用的數目) - - - Darksend rounds to use - 匿名發送的循環次數 - - - This amount acts as a threshold to turn off Darksend once it's reached. - 此金額為關閉匿名發送的門檻。 - - - Amount of Dash to keep anonymized - 保持匿名的達世幣數量 - - - W&allet - 錢包(&W) - - - If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - 如果你關掉「可以花還沒確認的零錢」,那麼交易中找零的零錢<br/>就必須要等交易至少有一次確認後,才能夠使用。<br/>這也會影響餘額的計算方式。 - - - Accept connections from outside - 接受外來連線 - - - Allow incoming connections - 接受外來連線 - - - Connect to the Dash network through a SOCKS5 proxy. - 透過 SOCKS5 代理伺服器來連線到達世幣網路。 - - - &Connect through SOCKS5 proxy (default proxy): - 透過 SOCKS5 代理伺服器連線(預設代理伺服器):(&C) - - - Expert - 專家 - - - This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. - 這項設置決定輸入的資金將會經過多少個主節點進,行匿名處理。<br/>多輪的匿名化處理提供了更高程度的隱私,但也花費更多的費用。 - - - Whether to show coin control features or not. - 是否要顯示錢幣控制功能。 - - - Enable coin &control features - 開啟錢幣控制功能(&C) - - - &Spend unconfirmed change - 可以花還沒確認的零錢(&S) - - - &Network - 網絡(&N) - - - Automatically open the Dash client port on the router. This only works when your router supports UPnP and it is enabled. - 自動在路由器上開放達世幣的客戶端通訊埠。只有在你的路由器支援且開啓「通用即插即用」協定(UPnP)時才有作用。 - - - Map port using &UPnP - 用 &UPnP 設定通訊埠對應 - - - Proxy &IP: - 代理位址: - - - IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1) - 代理伺服器的網際網路位址(像是 IPv4 的 127.0.0.1 或 IPv6 的 ::1) - - - &Port: - 埠號:(&P) - - - Port of the proxy (e.g. 9050) - 代理伺服器的通訊埠(例如 9050) - - - &Window - 視窗(&) - - - Show only a tray icon after minimizing the window. - 視窗縮到最小後只在通知區域顯示圖示。 - - - &Minimize to the tray instead of the taskbar - 縮到最小到通知區域而不是工作列(&M) - - - Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu. - 當視窗關閉時,把應用程式縮到最小,而不是結束。當勾選這個選項時,只能夠用選單中的結束來關掉應用程式。 - - - M&inimize on close - 關閉時縮到最小(&i) - - - &Display - 顯示(&D) - - - User Interface &language: - 用戶界面語言: - - - The user interface language can be set here. This setting will take effect after restarting Dash. - 可以在這裡設定用戶介面的語言。這個設定在重啓達世幣軟體後才會生效。 - - - Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/projects/p/dash/ - 缺少相關語言或翻譯不完整?請到這裡協助翻譯 -https://www.transifex.com/projects/p/dash/ - - - User Interface Theme: - 用戶界面主題: - - - &Unit to show amounts in: - 金額顯示單位:(&U) - - - Choose the default subdivision unit to show in the interface and when sending coins. - 選擇操作界面和付款時,預設顯示金額的細分單位。 - - - Decimal digits - 小數位數 - - - Third party URLs (e.g. a block explorer) that appear in the transactions tab as context menu items. %s in the URL is replaced by transaction hash. Multiple URLs are separated by vertical bar |. - 在交易頁籤的情境選單出現的第三方(比如說區塊探索網站)網址連結。網址中的 %s 會被取代為交易的雜湊值。可以用直線符號 | 來分隔多個連結。 - - - Third party transaction URLs - 交易的第三方網址連結 - - - Active command-line options that override above options: - 從命令列取代掉以上設定的選項: - - - Reset all client options to default. - 重設所有客戶端軟體選項成預設值。 - - - &Reset Options - 重設選項 - - - &OK - 確認(&O) - - - &Cancel - 取消(&C) - - - default - 預設值 - - - none - - - - Confirm options reset - 確認重設選項 - - - Client restart required to activate changes. - 需要重新啟動客戶端軟體來讓改變生效。 - - - Client will be shutdown, do you want to proceed? - 客戶端軟體將會關閉,確定要繼續嗎? - - - This change would require a client restart. - 此變更需要重新啟動客戶端軟體。 - - - The supplied proxy address is invalid. - 提供的代理伺服器位址無效。 - - - - OverviewPage - - Form - 表單 - - - The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet. - 顯示的資訊可能是過期的。跟達世幣網路的連線建立後,你的錢包會自動和網路同步,但是這個步驟還沒完成。 - - - Available: - 可用金額: - - - Your current spendable balance - 目前可用餘額 - - - Pending: - 待確認金額: - - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 還沒被確認的交易的總金額,可用餘額不包含這些金額 - - - Immature: - 未成熟金額: - - - Mined balance that has not yet matured - 還沒成熟的開採金額 - - - Balances - 餘額 - - - Unconfirmed transactions to watch-only addresses - 所有僅限查看的位址裡還沒確認的交易 - - - Mined balance in watch-only addresses that has not yet matured - 所有僅限查看的位址裡還沒成熟的開採金額 - - - Total: - 總金額: - - - Your current total balance - 目前全部餘額 - - - Current total balance in watch-only addresses - 僅限查看的位址之總餘額 - - - Watch-only: - 僅限查看: - - - Your current balance in watch-only addresses - 所有僅限查看的位址之目前餘額 - - - Spendable: - 能夠花費: - - - Status: - 狀況: - - - Enabled/Disabled - 啟用/禁用 - - - Completion: - 完成度: - - - Darksend Balance: - 匿名發送餘額: - - - Amount and Rounds: - 金額和循環次數: - - - 0 DASH / 0 Rounds - 0 達世幣 / 0 循環次數 - - - Submitted Denom: - 已經提交的面額: - - - n/a - 不適用 - - - Darksend - 匿名發送 - - - Recent transactions - 最近的交易 - - - Start/Stop Mixing - 啟動/停止混合 - - - The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. - 你提交到主節點的面額。<br>為了混合,其他用戶必須提交完全一樣的面額。 - - - (Last Message) - (最近一次信息) - - - Try to manually submit a Darksend request. - 嘗試手動提交匿名發送請求。 - - - Try Mix - 嘗試混合 - - - Reset the current status of Darksend (can interrupt Darksend if it's in the process of Mixing, which can cost you money!) - 重置目前匿名發送狀態(此操作可能會影響您目前正在執行的混合過程,並且產生費用!) - - - Reset - 重置 - - - out of sync - 還沒同步 - - - Disabled - 己禁用 - - - Start Darksend Mixing - 開始匿名發送混合 - - - Stop Darksend Mixing - 停止匿名發送混合 - - - No inputs detected - 沒有檢測到任何輸入 - - - %n Rounds - %n 次循環 - - - Not enough compatible inputs to anonymize <span style='color:red;'>%1</span>,<br>will anonymize <span style='color:red;'>%2</span> instead - 沒有足夠相容的輸入來進行匿名處理<span style='color:red;'>%1</span>,<br>將匿名處理 <span style='color:red;'>%2</span> 作為代替 - - - Overall progress - 整體進度 - - - Denominated - 已經除名的 - - - Anonymized - 經過匿名處理的 - - - Found enough compatible inputs to anonymize %1 - 找到足夠的相容的輸入進行匿名處理 %1 - - - Mixed - 混合的 - - - Enabled - 己啟用 - - - Last Darksend message: - - 最近收到的匿名發送訊息: - - - - N/A - 不適用 - - - Darksend was successfully reset. - 匿名發送成功重置。 - - - - PaymentServer - - Payment request error - 要求付款時發生錯誤 - - - Cannot start dash: click-to-pay handler - 無法啟動達世幣 : 點擊支付處理程序 - - - URI handling - URI 處理 - - - Payment request fetch URL is invalid: %1 - 取得付款要求的 URL 無效: %1 - - - Payment request file handling - 處理付款要求檔案 - - - Invalid payment address %1 - 無效的付款位址 %1 - - - URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters. - 沒辦法解析 URI 位址!可能是因為達世幣位址無效,或是 URI 參數格式錯誤。 - - - Payment request file cannot be read! This can be caused by an invalid payment request file. - 沒辦法讀取付款要求檔案!可能是無效的檔案造成的。 - - - Payment request rejected - 付款的要求被拒絕了 - - - Payment request network doesn't match client network. - 付款要求的網路類型跟客戶端不符。 - - - Payment request has expired. - 付款的要求已經過期了。 - - - Payment request is not initialized. - 付款的要求沒有完成初始化。 - - - Unverified payment requests to custom payment scripts are unsupported. - 不支援含有自訂付款指令碼,且沒驗證過的付款要求。 - - - Requested payment amount of %1 is too small (considered dust). - 要求付款的金額 %1 太少(會被網路認為是沒必要的零散錢)。 - - - Refund from %1 - 來自 %1 的退款 - - - Payment request %1 is too large (%2 bytes, allowed %3 bytes). - 付款要求 %1 過大 (%2 位元組, 上限 %3 位元組). - - - Payment request DoS protection - 支付請求的分佈式阻斷服務攻擊DoS保護 - - - Error communicating with %1: %2 - 跟 %1 通訊時發生錯誤: %2 - - - Payment request cannot be parsed! - 沒辦法解析付款要求內容! - - - Bad response from server %1 - 伺服器 %1 的回應有誤 - - - Network request error - 發出要求時發生網路錯誤 - - - Payment acknowledged - 已確認付款 - - - - PeerTableModel - - Address/Hostname - 位址/主機名稱 - - - User Agent - 使用者代理 - - - Ping Time - Ping 時間 - - - - QObject - - Amount - 金額 - - - Enter a Dash address (e.g. %1) - 輸入達世幣位址 (例如 %1) - - - %1 d - %1 天 - - - %1 h - %1 小時 - - - %1 m - %1 分鐘 - - - %1 s - %1 秒 - - - NETWORK - 網路 - - - UNKNOWN - 不明 - - - None - - - - N/A - 不適用 - - - %1 ms - %1 毫秒 - - - - QRImageWidget - - &Save Image... - 儲存圖片(&S)... - - - &Copy Image - 複製圖片(&C) - - - Save QR Code - 儲存 QR Code - - - PNG Image (*.png) - PNG 圖檔(*.png) - - - - RPCConsole - - &Information - 資訊(&I) - - - General - 普通 - - - Name - 名稱 - - - Client name - 客戶端軟體名稱 - - - N/A - 不適用 - - - Number of connections - 連線數 - - - Open the Dash debug log file from the current data directory. This can take a few seconds for large log files. - 從目前的資料目錄下開啓達世幣軟體的除錯紀錄檔。當紀錄檔很大時,可能會花好幾秒的時間。 - - - &Open - 開啓 - - - Startup time - 啓動時間 - - - Network - 網路 - - - Last block time - 最近區塊時間 - - - Debug log file - 除錯紀錄檔 - - - Using OpenSSL version - 使用的 OpenSSL 版本 - - - Build date - 建置日期 - - - Current number of blocks - 目前區塊數 - - - Client version - 客戶端軟體版本 - - - Using BerkeleyDB version - 使用 BerkeleyDB 版本 - - - Block chain - 區塊鏈 - - - Number of Masternodes - 主節點數目 - - - &Console - 主控台(&C) - - - Clear console - 清空主控台 - - - &Network Traffic - 網路流量(&N) - - - &Clear - 清除(&C) - - - Totals - 總計 - - - Received - 接收 - - - Sent - 發送 - - - &Peers - 節點(&P) - - - Select a peer to view detailed information. - 選擇一個節點來查看詳細資訊。 - - - Direction - 方向 - - - Version - 版本 - - - User Agent - 使用者代理 - - - Services - 服務 - - - Starting Height - 起始高度 - - - Sync Height - 同步高度 - - - Connection Time - 連線時間 - - - Last Send - 最近送出 - - - Last Receive - 最近收到 - - - Bytes Sent - 送出位元組 - - - Bytes Received - 收到位元組 - - - Ping Time - Ping 時間 - - - &Wallet Repair - 錢包修復(&W) - - - Salvage wallet - 搶救錢包 - - - Rescan blockchain files - 重新掃描區塊鏈文件 - - - Recover transactions 1 - 復原交易 1 - - - Recover transactions 2 - 復原交易 2 - - - Upgrade wallet format - 升級錢包格式 - - - The buttons below will restart the wallet with command-line options to repair the wallet, fix issues with corrupt blockhain files or missing/obsolete transactions. - 下面的按鈕將重新啟動錢包並使用命令行選項來修復錢包,修復損壞或丟失的區塊鏈文件/過時的交易問題。 - - - -salvagewallet: Attempt to recover private keys from a corrupt wallet.dat. - -salvagewallet: 嘗試從損壞的 wallet.dat 裡恢復私鑰。 - - - -rescan: Rescan the block chain for missing wallet transactions. - -rescan: 重新掃描區塊鏈,來尋找錢包可能漏掉的交易。 - - - -zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner). - -zapwallettxes=1: 從區塊鏈恢復交易資料 (保留交易描述資料,例如帳戶擁有者)。 - - - -zapwallettxes=2: Recover transactions from blockchain (drop meta-data). - -zapwallettxes=2: 從區塊鏈恢復交易資料 (丟棄交易描述資料)。 - - - -upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) - -upgradewallet: 在啟動時升級錢包到最新的格式。 (注:這不是錢包軟件本身的更新!) - - - Wallet repair options. - 錢包修復選項。 - - - Rebuild index - 重建區塊鏈的索引 - - - -reindex: Rebuild block chain index from current blk000??.dat files. - -reindex : 從目前的區塊檔 blk000??.dat 重建區塊鏈的索引 - - - In: - 輸入: - - - Out: - 輸出: - - - Welcome to the Dash RPC console. - 歡迎使用達世幣 RPC 主控台。 - - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - 請用上下游標鍵來瀏覽先前指令的紀錄,並用 <b>Ctrl-L</b> 來清除畫面。 - - - Type <b>help</b> for an overview of available commands. - 請鍵入 <b>help</b> 來查看可用指令的簡介。 - - - %1 B - %1 B (位元組) - - - %1 KB - %1 KB (千位元組) - - - %1 MB - %1 MB (百萬位元組) - - - %1 GB - %1 GB (十億位元組) - - - via %1 - 經由 %1 - - - never - 沒有過 - - - Inbound - 進來 - - - Outbound - 出去 - - - Unknown - 不明 - - - Fetching... - 正在擷取中... - - - - ReceiveCoinsDialog - - Reuse one of the previously used receiving addresses.<br>Reusing addresses has security and privacy issues.<br>Do not use this unless re-generating a payment request made before. - 重新使用以前用過的接收地址。<br>重複使用地址會產生安全和私隱問題。<br>不要使用這個選項,除非再次生成之前提出的支付請求。 - - - R&euse an existing receiving address (not recommended) - 重複使用現有的收款位址(不建議)(&e) - - - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Dash network. - 附加在付款要求中的訊息,可以不填,打開要求內容時會顯示。注意: 這個訊息不會隨著付款送到達世幣網路上。 - - - &Message: - 訊息:(&M) - - - An optional label to associate with the new receiving address. - 跟新收款位址關聯的標記,可以不填。 - - - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network. - 附加在付款要求中的訊息,可以不填,打開要求內容時會顯示。<br>注意: 這個訊息不會隨著付款送到達世幣網路上。 - - - Use this form to request payments. All fields are <b>optional</b>. - 請用這份表單來要求付款。所有欄位都<b>可以不填</b>。 - - - &Label: - 標記:(&L) - - - An optional amount to request. Leave this empty or zero to not request a specific amount. - 要求付款的金額,可以不填。不確定金額時可以留空或是填零。 - - - &Amount: - 金額:(&A) - - - &Request payment - 要求付款(&R) - - - Clear all fields of the form. - 把表單中的所有欄位清空。 - - - Clear - 清空 - - - Requested payments history - 先前要求付款的記錄 - - - Show the selected request (does the same as double clicking an entry) - 顯示選擇的要求內容(效果跟雙擊一樣) - - - Show - 顯示 - - - Remove the selected entries from the list - 從列表中刪掉選擇的項目 - - - Remove - 刪掉 - - - Copy label - 複製標記 - - - Copy message - 複製訊息 - - - Copy amount - 複製金額 - - - - ReceiveRequestDialog - - QR Code - QR Code - - - Copy &URI - 複製 &URI - - - Copy &Address - 複製位址(&A) - - - &Save Image... - 儲存圖片...(&S) - - - Request payment to %1 - 付款給 %1 的要求 - - - Payment information - 付款資訊 - - - URI - URI - - - Address - 位址 - - - Amount - 金額 - - - Label - 標記 - - - Message - 訊息 - - - Resulting URI too long, try to reduce the text for label / message. - 產生的 URI 過長,請試著縮短標記或訊息的文字內容。 - - - Error encoding URI into QR Code. - 把 URI 編碼成 QR Code 時發生錯誤。 - - - - RecentRequestsTableModel - - Date - 日期 - - - Label - 標記 - - - Message - 訊息 - - - Amount - 金額 - - - (no label) - (無標記) - - - (no message) - (無訊息) - - - (no amount) - (無金額) - - - - SendCoinsDialog - - Send Coins - 付款 - - - Coin Control Features - 錢幣控制功能 - - - Inputs... - 輸入... - - - automatically selected - 自動選擇 - - - Insufficient funds! - 餘額不足! - - - Quantity: - 數目: - - - Bytes: - 位元組數: - - - Amount: - 金額: - - - Priority: - 優先度: - - - medium - 中等 - - - Fee: - 手續費: - - - Dust: - 零散錢: - - - no - - - - After Fee: - 計費後金額: - - - Change: - 找零金額: - - - If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - 如果這項有打開,但是找零位址是空的或無效,那麼找零的錢會送到一個新產生的位址去。 - - - Custom change address - 自定找零位址 - - - Transaction Fee: - 交易手續費: - - - Choose... - 選項... - - - collapse fee-settings - 收起手續費設定 - - - Minimize - 縮小 - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - 如果自訂手續費設定為 1000 duffs ,而交易資料大小只有 250 個位元組的話,那麽選擇「每千位元組」就只會付 250 duffs 的手續費,<br />而「至少」會支付 1000 duffs。但是如果交易資料大小超過一千個位元組,那麽兩者都是每千位元組的費用。 - - - If the custom fee is set to 1000 duffs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 duffs in fee,<br />while "total at least" pays 1000 duffs. For transactions bigger than a kilobyte both pay by kilobyte. - 如果自訂手續費設定為 1000 duffs ,而交易資料大小只有 250 個位元組的話,那麽選擇「每千位元組」就只會付 250 duffs 的手續費,<br />而「總共至少」會支付 1000 duffs。但是如果交易資料大小超過一千個位元組,那麽兩者都是每千位元組的費用。 - - - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for dash transactions than the network can process. - 當交易量少於區塊可容納的空間時,只付最低手續費不會有什麽問題。<br />但是當交易量的需求成長到超過整體網路可以處理的量時,可能會造成一筆一直不會被確認的交易。 - - - per kilobyte - 每千位元組 - - - total at least - 總共最少 - - - (read the tooltip) - (請看提示) - - - Recommended: - 建議值: - - - Custom: - 自訂: - - - (Smart fee not initialized yet. This usually takes a few blocks...) - (手續費智慧演算法還沒準備好。通常都要等幾個區塊才行...) - - - Confirmation time: - 確認時間: - - - normal - 正常 - - - fast - 快速 - - - Send as zero-fee transaction if possible - 如果可能的話,發送零手續費的交易 - - - (confirmation may take longer) - (確認時間可能會較長) - - - Confirm the send action - 確認付款動作 - - - S&end - 付款(&e) - - - Clear all fields of the form. - 把表單中的所有欄位清空。 - - - Clear &All - 全部清除(&A) - - - Send to multiple recipients at once - 一次付給多個收款人 - - - Add &Recipient - 增加收款人(&R) - - - Darksend - 匿名發送 - - - InstantX - 即時到帳 - - - Balance: - 餘額: - - - Copy quantity - 複製數目 - - - Copy amount - 複製金額 - - - Copy fee - 複製手續費 - - - Copy after fee - 複製計費後金額 - - - Copy bytes - 複製位元組數 - - - Copy priority - 複製優先度 - - - Copy dust - 複製零散錢 - - - Copy change - 複製找零金額 - - - and InstantX - 和 即時到帳 - - - %1 to %2 - %1 到 %2 - - - Are you sure you want to send? - 你確定要付錢出去嗎? - - - are added as transaction fee - 加做交易手續費 - - - Total Amount = <b>%1</b><br />= %2 - 總金額 = <b>%1</b><br />= %2 - - - A fee %1 times higher than %2 per kB is considered an insanely high fee. - 每 kB 手續費高於%2的 %1 倍被認為是非常高的費用。 - - - Estimated to begin confirmation within %n block(s). - 預計可在 %n 個區塊內開始確認。 - - - The recipient address is not valid, please recheck. - 收款位址無效,請再檢查看看。 - - - The amount to pay must be larger than 0. - 付款金額必須大於 0。 - - - The amount exceeds your balance. - 金額超過了你的餘額。 - - - The total exceeds your balance when the %1 transaction fee is included. - 包含 %1 的交易手續費後,總金額超過你的餘額了。 - - - Duplicate address found, can only send to each address once per send operation. - 發現有重複的位址。每個付款動作中,只能付給個別的位址一次。 - - - Transaction creation failed! - 製造交易失敗了! - - - The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here. - 交易被拒絕了!有時候會發生這種錯誤,是因為你錢包中的一些錢已經被花掉了。比如說你複製了錢包檔 wallet.dat, 然後用複製的錢包花掉了錢,你現在所用的原來的錢包中,卻沒有那筆錢已經花掉的紀錄。 - - - Error: The wallet was unlocked only to anonymize coins. - 錯誤:錢包只是被解鎖來進行匿名處理。 - - - Pay only the minimum fee of %1 - 只付最低手續費 %1 - - - Warning: Invalid Dash address - 警告: 無效的達世幣位址 - - - Warning: Unknown change address - 警告: 不明的找零位址 - - - (no label) - (無標記) - - - - SendCoinsEntry - - This is a normal payment. - 這是一筆正常的付款。 - - - Pay &To: - 付給:(&T) - - - The Dash address to send the payment to - 接收付款的達世幣位址 - - - Choose previously used address - 選擇先前使用過的位址 - - - Alt+A - Alt+A - - - Paste address from clipboard - 貼上剪貼簿裡的位址 - - - Alt+P - Alt+P - - - Remove this entry - 刪除這個項目 - - - &Label: - 標記:(&L) - - - Enter a label for this address to add it to the list of used addresses - 請輸入這個位址的標記,來把它加進去已使用過位址的清單。 - - - A&mount: - 金額:(&A) - - - Message: - 訊息: - - - A message that was attached to the dash: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Dash network. - 附加在達世幣付款協議 URI 中的訊息,會和交易內容一起存起來,給你自己做參考。注意: 這個訊息不會送到達世幣網路上。 - - - This is an unverified payment request. - 這是個沒驗證過的付款要求。 - - - Pay To: - 付給: - - - Memo: - 備註: - - - This is a verified payment request. - 這是個已驗證的付款要求。 - - - Enter a label for this address to add it to your address book - 請輸入這個位址的標記來把它加進位址簿中 - - - - ShutdownWindow - - Dash Core is shutting down... - 達世幣核心正在關閉中... - - - Do not shut down the computer until this window disappears. - 在這個視窗消失以前,請不要關掉電腦。 - - - - SignVerifyMessageDialog - - Signatures - Sign / Verify a Message - 簽章 - 簽署或驗證訊息 - - - &Sign Message - 簽署訊息(&S) - - - You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - 你可以用自己的位址簽署訊息,來證明你對位址的所有權。但是請小心,不要簽署語意含糊不清的內容,因為釣魚式詐騙可能會用騙你簽署的手法來冒充是你。只有在語句中的細節你都同意時才簽署。 - - - The Dash address to sign the message with - 用來簽署訊息的達世幣位址 - - - Choose previously used address - 選擇先前使用過的位址 - - - Alt+A - Alt+A - - - Paste address from clipboard - 貼上剪貼簿裡的位址 - - - Alt+P - Alt+P - - - Enter the message you want to sign here - 請在這裡輸入你想簽署的訊息 - - - Signature - 簽章 - - - Copy the current signature to the system clipboard - 複製目前的簽章到系統剪貼簿 - - - Sign the message to prove you own this Dash address - 簽署這個訊息來證明這個達世幣位址是你的 - - - Sign &Message - 簽署訊息(&M) - - - Reset all sign message fields - 重設所有訊息簽署欄位 - - - Clear &All - 全部清除 - - - &Verify Message - 驗證訊息 - - - Enter the signing address, message (ensure you copy line breaks, spaces, tabs, etc. exactly) and signature below to verify the message. Be careful not to read more into the signature than what is in the signed message itself, to avoid being tricked by a man-in-the-middle attack. - 請在下面輸入簽署的位址,訊息(請確定完整複製了所包含的換行,空格,跳位符號等等),以及簽章,來驗證這個訊息。請小心,除了訊息內容以外,不要對簽章本身過度解讀,以避免被用「中間人攻擊法」詐騙。 - - - The Dash address the message was signed with - 簽署這個訊息的達世幣位址 - - - Verify the message to ensure it was signed with the specified Dash address - 驗證這個訊息來確定是用指定的達世幣位址簽署的 - - - Verify &Message - 驗證訊息(&M) - - - Reset all verify message fields - 重設所有訊息驗證欄位 - - - Click "Sign Message" to generate signature - 請按一下「簽署訊息」來產生簽章 - - - The entered address is invalid. - 輸入的位址無效。 - - - Please check the address and try again. - 請檢查位址是否正確後再試一次。 - - - The entered address does not refer to a key. - 輸入的位址沒有找到對應的密鑰。 - - - Wallet unlock was cancelled. - 錢包解鎖已取消。 - - - Private key for the entered address is not available. - 沒有找到輸入位址的對應密鑰。 - - - Message signing failed. - 訊息簽署失敗。 - - - Message signed. - 訊息簽署好了。 - - - The signature could not be decoded. - 沒辦法把這個簽章解碼。 - - - Please check the signature and try again. - 請檢查簽章是否正確後再試一次。 - - - The signature did not match the message digest. - 這個簽章跟訊息的數位摘要不符。 - - - Message verification failed. - 訊息驗證失敗。 - - - Message verified. - 訊息驗證成功。 - - - - SplashScreen - - Dash Core - 達世幣核心 - - - Version %1 - 版本 %1 - - - The Bitcoin Core developers - 位元幣核心開發人員 - - - The Dash Core developers - 達世幣核心開發人員 - - - [testnet] - [testnet] - - - - TrafficGraphWidget - - KB/s - KB/s - - - - TransactionDesc - - Open for %n more block(s) - 到下 %n 個區塊產生前可修改 - - - Open until %1 - 至 %1 個數據塊時開啟 - - - conflicted - 發生衝突 - - - %1/offline (verified via instantx) - %1 次/離線 (經即時到帳系統核實) - - - %1/confirmed (verified via instantx) - %1 次/確認 (經即時到帳系統核實) - - - %1 confirmations (verified via instantx) - 確認 %1 次 (經即時到帳系統核實) - - - %1/offline - %1 次/離線 - - - %1/unconfirmed - %1 次/未確認 - - - %1 confirmations - 確認 %1 次 - - - %1/offline (InstantX verification in progress - %2 of %3 signatures) - %1 次/離線 (即時到帳系統正在進行核實- 共 %3 個簽署中的 %2 個 ) - - - %1/confirmed (InstantX verification in progress - %2 of %3 signatures ) - %1 次/已確認 (即時到帳系統正在進行核實- 共 %3 個簽署中的 %2 個 ) - - - %1 confirmations (InstantX verification in progress - %2 of %3 signatures) - %1 次確認 (即時到帳系統正在進行核實- 共 %3 個簽署中的 %2 個 ) - - - %1/offline (InstantX verification failed) - %1 次/離線 (即時到帳系統未能核實) - - - %1/confirmed (InstantX verification failed) - %1 次/已確認 (即時到帳系統未能核實) - - - Status - 狀態 - - - , has not been successfully broadcast yet - ,尚未成功廣播 - - - , broadcast through %n node(s) - ,已通過%n 個節點廣播 - - - Date - 日期 - - - Source - 來源 - - - Generated - 產生 - - - From - 來源 - - - unknown - 未知 - - - To - 目的 - - - own address - 自己的位址 - - - watch-only - 僅限查看 - - - label - 標記 - - - Credit - 入帳 - - - matures in %n more block(s) - 再過 %n 個區塊產生後成熟 - - - not accepted - 不被接受 - - - Debit - 支出 - - - Total debit - 支出總額 - - - Total credit - 入帳總額 - - - Transaction fee - 交易手續費 - - - Net amount - 淨額 - - - Message - 訊息 - - - Comment - 附註 - - - Transaction ID - 交易識別碼 - - - Merchant - 商家 - - - Generated coins must mature %1 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, its state will change to "not accepted" and it won't be spendable. This may occasionally happen if another node generates a block within a few seconds of yours. - 生產出來的錢要再等 %1 個區塊產生後成熟才可以用。當區塊產生時會發布到網路上,然後被加進區塊鏈。如果失敗了,狀態就會變成「不被接受」,而且不能夠花。如果在你生產出區塊的幾秒鐘內,也有其他節點生產出來的話,就有可能會發生這種情形。 - - - Debug information - 除錯資訊 - - - Transaction - 交易 - - - Inputs - 輸入 - - - Amount - 金額 - - - true - - - - false - - - - - TransactionDescDialog - - Transaction details - 交易明細 - - - This pane shows a detailed description of the transaction - 這個版面顯示這次交易的詳細說明 - - - - TransactionTableModel - - Date - 日期 - - - Type - 種類 - - - Address - 位址 - - - Open for %n more block(s) - 到下 %n 個區塊產生前可修改 - - - Open until %1 - 至 %1 個數據塊時開啟 - - - Offline - 離線 - - - Unconfirmed - 未確認 - - - Confirming (%1 of %2 recommended confirmations) - 確認中(已經 %1 次,建議至少 %2 次) - - - Confirmed (%1 confirmations) - 已確認(%1 次) - - - Conflicted - 發生衝突 - - - Immature (%1 confirmations, will be available after %2) - 未成熟金額 (%1 次確認,經 %2 次確認後方可使用) - - - Received with - 收款 - - - Received from - 收款來自 - - - Received via Darksend - 經由匿名發送收到 - - - Sent to - 付款給 - - - Payment to yourself - 付給自己 - - - Mined - 開採所得 - - - Darksent - 匿名發送 - - - watch-only - 僅限查看 - - - (n/a) - (不適用) - - - Transaction status. Hover over this field to show number of confirmations. - 交易狀態。把游標停在欄位上會顯示確認次數。 - - - Date and time that the transaction was received. - 收到交易的日期和時間。 - - - Type of transaction. - 交易的種類。 - - - Whether or not a watch-only address is involved in this transaction. - 決定是否有一個僅限查看的位址參與這次的交易 - - - Destination address of transaction. - 交易的目的地位址。 - - - Amount removed from or added to balance. - 從餘額中添加或扣除的金額。 - - - - TransactionView - - All - 全部 - - - Today - 今天 - - - This week - 這星期 - - - This month - 這個月 - - - Last month - 上個月 - - - This year - 今年 - - - Range... - 指定範圍... - - - Received with - 收款 - - - Sent to - 付款給 - - - Darksent - 匿名發送 - - - To yourself - 給自己 - - - Mined - 開採所得 - - - Other - 其它 - - - Enter address or label to search - 請輸入要搜尋的位址或標記 - - - Min amount - 最小金額 - - - Copy address - 複製位址 - - - Copy label - 複製標記 - - - Copy amount - 複製金額 - - - Copy transaction ID - 複製交易識別碼 - - - Edit label - 編輯標記 - - - Show transaction details - 顯示交易明細 - - - Export Transaction History - 匯出交易記錄 - - - Comma separated file (*.csv) - 逗點分隔資料檔(*.csv) - - - Confirmed - 已確認 - - - Watch-only - 僅限查看 - - - Date - 日期 - - - Type - 種類 - - - Label - 標記 - - - Address - 位址 - - - ID - 識別碼 - - - Exporting Failed - 匯出失敗 - - - There was an error trying to save the transaction history to %1. - 儲存交易記錄到 %1 時發生錯誤。 - - - Exporting Successful - 匯出成功 - - - The transaction history was successfully saved to %1. - 交易記錄已經成功儲存到 %1 了。 - - - Range: - 範圍: - - - to - - - - - UnitDisplayStatusBarControl - - Unit to show amounts in. Click to select another unit. - 金額顯示單位。可以點選其他單位。 - - - - WalletFrame - - No wallet has been loaded. - 沒有載入錢包。 - - - - WalletModel - - Send Coins - 付款 - - - InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH. - 即時到帳系統暫時並不支援這麼高的交易金額。目前的金額僅限於%1 DASH。 - - - - WalletView - - &Export - 匯出(&E) - - - Export the data in the current tab to a file - 把目前分頁的資料匯出存成檔案 - - - Backup Wallet - 備份錢包 - - - Wallet Data (*.dat) - 錢包資料檔(*.dat) - - - Backup Failed - 備份失敗 - - - There was an error trying to save the wallet data to %1. - 儲存錢包資料到 %1 時發生錯誤。 - - - Backup Successful - 備份成功 - - - The wallet data was successfully saved to %1. - 錢包的資料已經成功儲存到 %1 了。 - - - - dash-core - - Bind to given address and always listen on it. Use [host]:port notation for IPv6 - 和指定的位址繫結,並且一直在指定位址聽候連線。IPv6 請用 [主機]:通訊埠 這種格式 - - - Error: Listening for incoming connections failed (listen returned error %s) - 錯誤: 聽候外來連線失敗(回傳錯誤 %s) - - - Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) - 當收到相關警示,或發現相當長的分支時,所要執行的指令(指令中的 %s 會被取代成警示訊息) - - - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - 當錢包有交易改變時要執行的指令(指令中的 %s 會被取代成交易識別碼) - - - Execute command when the best block changes (%s in cmd is replaced by block hash) - 當最新區塊改變時要執行的指令(指令中的 %s 會被取代成區塊雜湊值) - - - InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. - 即時到帳系統要求輸入的資金最少要有6個確認,你可能需要等待數分鐘然後再重試。 - - - Set maximum size of high-priority/low-fee transactions in bytes (default: %d) - 設定高優先度或低手續費的交易資料大小上限成多少位元組(預設值: %d) - - - Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d) - 設定指令碼驗證的執行緒數目 (%u 到 %d,0 表示程式自動決定,小於 0 表示保留處理器核心不用的數目,預設值: %d) - - - This is a pre-release test build - use at your own risk - do not use for mining or merchant applications - 這是個還沒發表的測試版本 - 使用請自負風險 - 請不要用來開採或商業應用 - - - Unable to bind to %s on this computer. Dash Core is probably already running. - 沒辦法繫結在這台電腦上的 %s 。達世幣核心可能已經在執行了。 - - - Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - 警告: -paytxfee 設定了很高的金額!這可是你交易付款所要付的手續費。 - - - Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. - 警告: 達世幣網路對於區塊鏈結的決定目前有分歧!看來有些礦工會有問題。 - - - Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. - 警告: 我們和某些連線的節點對於區塊鏈結的決定不同!你可能需要升級,或是需要等其它的節點升級。 - - - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - 警告: 讀取錢包檔 wallet.dat 時發生錯誤!所有的密鑰都正確讀取了,但是交易資料或位址簿資料可能會缺少或不正確。 - - - Warning: wallet.dat corrupt, data salvaged! Original wallet.dat saved as wallet.{timestamp}.bak in %s; if your balance or transactions are incorrect you should restore from a backup. - 警告: 錢包檔 wallet.dat 壞掉,但資料被拯救回來了!原來的 wallet.dat 會改儲存在 %s, 檔名是 wallet.{timestamp}.bak. 如果餘額或交易資料有誤,你應該要用備份資料復原回來。 - - - You must specify a masternodeprivkey in the configuration. Please see documentation for help. - 您必須在配置文件中指定一個masternodeprivkey。請參閱文檔以獲得幫助。 - - - (default: 1) - (預設值: 1) - - - Accept command line and JSON-RPC commands - 接受指令列和 JSON-RPC 指令 - - - Allow DNS lookups for -addnode, -seednode and -connect - 允許對 -addnode, -seednode, -connect 的參數使用域名查詢 - - - Attempt to recover private keys from a corrupt wallet.dat - 嘗試從壞掉的錢包檔 wallet.dat 復原密鑰 - - - Block creation options: - 區塊製造選項: - - - Cannot downgrade wallet - 沒辦法把錢包格式降級 - - - Cannot resolve -bind address: '%s' - 沒辦法解析 -bind 位址: '%s' - - - Cannot resolve -externalip address: '%s' - 沒辦法解析 -externalip 位址: '%s' - - - Cannot write default address - 沒辦法把預設位址寫進去 - - - Connection options: - 連線選項: - - - Corrupted block database detected - 發現區塊資料庫壞掉了 - - - Darksend options: - 匿名發送選項: - - - Discover own IP address (default: 1 when listening and no -externalip) - 找出自己的網際網路位址(預設值: 當有聽候連線且沒有 -externalip 時為 1) - - - Do not load the wallet and disable wallet RPC calls - 不要載入錢包,並且拿掉錢包相關的 RPC 功能請求。 - - - Do you want to rebuild the block database now? - 你想要現在重建區塊資料庫嗎? - - - Done loading - 載入完成 - - - Error initializing block database - 初始化區塊資料庫時發生錯誤 - - - Error initializing wallet database environment %s! - 初始化錢包資料庫環境 %s 時發生錯誤! - - - Error loading block database - 載入區塊資料庫時發生錯誤 - - - Error loading wallet.dat - 載入錢包檔 wallet.dat 時發生錯誤 - - - Error loading wallet.dat: Wallet corrupted - 載入檔案 wallet.dat 時發生錯誤: 錢包損毀了 - - - Error opening block database - 打開區塊資料庫時發生錯誤 - - - Error reading from database, shutting down. - 讀取資料庫時發生錯誤,要關閉了。 - - - Error recovering public key. - 恢復公鑰時發生錯誤。 - - - Error - 錯誤 - - - Error: Disk space is low! - 錯誤: 磁碟空間很少! - - - Error: Wallet locked, unable to create transaction! - 錯誤: 錢包被鎖定,無法創建交易! - - - Error: You already have pending entries in the Darksend pool - 錯誤: 你已經有待處理項目在匿名發送資金池中 - - - Failed to listen on any port. Use -listen=0 if you want this. - 在任意的通訊埠聽候失敗。如果你希望這樣的話,可以設定 -listen=0. - - - Failed to read block - 無法讀取區塊 - - - Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times - 允許指定的來源建立 JSON-RPC 連線。<ip> 的有效值可以是一個單獨位址(像是 1.2.3.4),一個網段/網段罩遮值(例如 1.2.3.4/255.255.255.0),或是網段/CIDR值(像是 1.2.3.4/24)。這個選項可以設定多次。 - - - An error occurred while setting up the RPC address %s port %u for listening: %s - 設定在網路上以位址 %s 和通訊埠 %u 聽候 RPC 連線時發生錯誤: %s - - - Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 - 和指定的位址繫結,並且把連線過來的節點放進白名單。IPv6 請用 [主機]:通訊埠 這種格式 - - - Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - 和指定的位址繫結以聽候 JSON-RPC 連線。IPv6 請用 [主機]:通訊埠 這種格式。這個選項可以設定多次。(預設值: 跟所有網路界面上的位址繫結) - - - Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) - 用系統預設權限來造出新的檔案,而不是用使用者權限罩遮(umask)值 077 (只有在關掉錢包功能時才有作用)。 - - - Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - 清掉錢包裡的所有交易資料,並且在下次啟動時,使用 -rescan 來從區塊鏈中復原回來。 - - - Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. - 這套軟體是依據 MIT 軟體授權條款發布,詳情請見附帶的 COPYING 檔案,或是以下網站:<http://www.opensource.org/licenses/mit-license.php>. - - - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - 錯誤: 找到不再支援的 -socks 參數。現在只支援 SOCKS5 協定的代理伺服器了,因為不再能夠指定 SOCKS 協定版本。 - - - Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s) - 當處理轉發的交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s) - - - Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s) - 當建立交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s) - - - Flush database activity from memory pool to disk log every <n> megabytes (default: %u) - 每當累積到 <n> 百萬位元組(MB)時,才將資料庫的變動從記憶體暫存池中寫進磁碟紀錄檔(預設值: %u) - - - How thorough the block verification of -checkblocks is (0-4, default: %u) - 使用 -checkblocks 檢查區塊的仔細程度(0-4,預設值: %u) - - - If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) - 當沒有設定 paytxfee 時,自動包含可以讓交易能在平均 n 個區塊內開始確認的手續費(預設值: %u) - - - Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) - -maxtxfee=<amount>: '%s' 的金額無效 (必須大於最低轉發手續費 %s 以避免交易無法確認) - - - Log transaction priority and fee per kB when mining blocks (default: %u) - 開採區塊的時候,紀錄交易的優先度以及每千位元組(kB)的手續費(預設值: %u) - - - Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) - 維護全部交易的索引,用在 getrawtransaction 這個 RPC 請求(預設值: %u) - - - Maximum size of data in data carrier transactions we relay and mine (default: %u) - 轉發和開採時,對只帶資料的交易的大小上限(預設值: %u) - - - Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) - 單一的錢包交易允許付出最高的總手續費,設定太低的話,可能會無法進行資料量大的交易(預設值: %s) - - - Number of seconds to keep misbehaving peers from reconnecting (default: %u) - 避免與異常的節點重新連線的秒數(預設: %u) - - - Output debugging information (default: %u, supplying <category> is optional) - 輸出除錯資訊(預設值: %u, 不一定要指定 <category>) - - - Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) - 設定產生錢幣的執行緒數目(-1 表示處理器核心數,預設值: %d) - - - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written by Eric Young and UPnP software written by Thomas Bernard. - 此產品也包含了由 OpenSSL Project 所開發的 OpenSSL Toolkit 軟體 <https://www.openssl.org/>, 和由 Eric Young 撰寫的加解密軟體,以及由 Thomas Bernard 所撰寫的 UPnP 軟體。 - - - Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) - 使用另外的 SOCK5 代理伺服器,來透過 Tor 隱藏服務跟節點聯繫(預設值: %s) - - - Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. - 警告: -maxtxfee 設定了很高的金額!這可是一次交易就有可能付出的最高手續費。 - - - Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly. - 警告: 請檢查電腦日期和時間是否正確!達世幣核心沒辦法在時鐘不準的情況下正常運作。 - - - Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. - 把來自指定網域或位址的節點放進白名單。這個選項可以設定多次。 - - - Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool, useful e.g. for a gateway - 在白名單中的節點不會因為偵測到阻斷服務攻擊而被停用。來自這些節點的交易也一定會被轉發,即使說交易本來就在記憶池裡了也一樣。適用於像是閘道伺服器。 - - - (default: %s) - (預設值: %s) - - - Cannot resolve -whitebind address: '%s' - 沒辦法解析 -whitebind 指定的位址: '%s' - - - Connect through SOCKS5 proxy - 透過 SOCKS5 代理伺服器連線 - - - Copyright (C) 2009-%i The Bitcoin Core Developers - 版權為位元幣核心開發人員自西元 2009 至 %i 年起所有 - - - Copyright (C) 2014-%i The Dash Core Developers - 版權為達世幣核心開發人員自西元 2014 至 %i 年起所有 - - - Could not parse -rpcbind value %s as network address - 沒辦法解析 -rpcbind 參數值 %s 為網路位址 - - - Darksend is idle. - 匿名發送處於閒置狀態。 - - - Darksend request complete: - 完成匿名發送請求: - - - Darksend request incomplete: - 未完成匿名發送請求: - - - Error connecting to Masternode. - 連接到主節點時發生錯誤。 - - - Error loading wallet.dat: Wallet requires newer version of Dash Core - 載入 wallet.dat 檔案時發生錯誤: 這個錢包需要新版的達世幣核心 - - - Error: A fatal internal error occured, see debug.log for details - 錯誤:一個致命的內部錯誤,到debug.log查看更多細節 - - - Error: Unsupported argument -tor found, use -onion. - 錯誤: 找到不再支援的 -tor 參數,請改用 -onion 參數。 - - - Importing... - 正在匯入中... - - - Imports blocks from external blk000??.dat file - 從其它來源的 blk000??.dat 檔匯入區塊 - - - Include IP addresses in debug output (default: %u) - 在除錯輸出內容中包含網際網路位址(預設值: %u) - - - Information - 資訊 - - - InstantX options: - 即時到帳選項: - - - Insufficient funds. - 餘額不足。 - - - Invalid -onion address: '%s' - 無效的 -onion 位址: '%s' - - - Invalid -proxy address: '%s' - 無效的 -proxy 位址: '%s' - - - Invalid amount for -maxtxfee=<amount>: '%s' - -maxtxfee=<amount>: '%s' 的金額無效 - - - Invalid amount for -minrelaytxfee=<amount>: '%s' - 設定最低轉發手續費 -minrelaytxfee=<金額> 的金額無效: '%s' - - - Invalid amount for -mintxfee=<amount>: '%s' - 設定 -mintxfee=<金額> 的金額無效: '%s' - - - Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) - 設定 -paytxfee=<金額> 的金額無效: '%s' (至少要有 %s) - - - Invalid amount for -paytxfee=<amount>: '%s' - 設定 -paytxfee=<金額> 的金額無效: '%s' - - - Listen for JSON-RPC connections on <port> (default: %u or testnet: %u) - 在通訊埠 <port> 聽候 JSON-RPC 連線(預設值: %u, 或若為測試網路: %u) - - - Loading masternode cache... - 正在載入主節點緩存... - - - Mixing in progress... - 正在進行混合... - - - No Masternodes detected. - 沒有檢測到主節點。 - - - No compatible Masternode found. - 沒有找到相容的主節點。 - - - Not in the Masternode list. - 不在主節點列表中。 - - - Number of automatic wallet backups (default: 10) - 自動備份的錢包數目 (預設值:10) - - - Only accept block chain matching built-in checkpoints (default: %u) - 只接受與內建的檢查段點吻合的區塊鎖鏈(預設值: %u) - - - Only connect to nodes in network <net> (ipv4, ipv6 or onion) - 只會連接到網絡節點 <net> (IPv4,IPv6或onion) - - - Prepend debug output with timestamp (default: %u) - 在除錯輸出內容前附加時間(預設值: %u) - - - Run a thread to flush wallet periodically (default: %u) - 啟用定期將變動寫入錢包檔的執行緒(預設值: %u) - - - Send trace/debug info to debug.log file (default: %u) - 發送追蹤或除錯資訊到debug.log 中 (預設值: %u) - - - Send transactions as zero-fee transactions if possible (default: %u) - 盡可能送出不用付手續費的交易(預設值: %u) - - - Set key pool size to <n> (default: %u) - 設定密鑰池大小為 <n> (預設值: %u) - - - Set minimum block size in bytes (default: %u) - 設定區塊大小下限為多少位元組(預設值: %u) - - - Set the number of threads to service RPC calls (default: %d) - 設定處理 RPC 服務請求的執行緒數目(預設值: %d) - - - Sets the DB_PRIVATE flag in the wallet db environment (default: %u) - 在錢包資料庫環境變數設定 DB_PRIVATE 旗標(預設值: %u) - - - Signing timed out. - 簽署超時。 - - - Specify configuration file (default: %s) - 指定設定檔(預設值: %s) - - - Specify connection timeout in milliseconds (minimum: 1, default: %d) - 指定連線在幾毫秒後逾時 (最少值: 1, 預設值: %d) - - - Specify masternode configuration file (default: %s) - 指定主節點配置文件(預設值: %s) - - - Specify pid file (default: %s) - 指定行程識別碼檔案(預設值: %s) - - - Spend unconfirmed change when sending transactions (default: %u) - 傳送交易時可以花還沒確認的零錢(預設值: %u) - - - Stop running after importing blocks from disk (default: %u) - 從磁碟匯入區塊資料後停止執行(預設值: %u) - - - Synchronization failed - 同步失敗 - - - Synchronization finished - 同步完成 - - - Synchronizing budgets... - 正在跟預算案進行同步... - - - Synchronizing masternodes... - 正在跟主節點網絡進行同步... - - - This is not a Masternode. - 這並不是一個主節點。 - - - Threshold for disconnecting misbehaving peers (default: %u) - 與異常的節點斷線的臨界值 (預設: %u) - - - Wallet needed to be rewritten: restart Dash Core to complete - 錢包需要重寫: 請重新啓動達世幣核心來完成 - - - Warning: Unsupported argument -benchmark ignored, use -debug=bench. - 警告: 忽略了不再支援的 -benchmark 參數,請改用 -debug=bench. - - - Warning: Unsupported argument -debugnet ignored, use -debug=net. - 警告: 忽略了不再支援的 -debugnet 參數,請改用 -debug=net. - - - Will retry... - 將重新嘗試... - - - Loading addresses... - 正在載入位址資料... - - - Loading block index... - 正在載入區塊索引... - - - Loading wallet... (%3.2f %%) - 正在載入錢包資料... (%3.2f %%) - - - Loading wallet... - 正在載入錢包資料... - - - Masternode: - 主節點: - - - Options: - 選項: - - - Password for JSON-RPC connections - JSON-RPC 連線密碼 - - - RPC SSL options: (see the Bitcoin Wiki for SSL setup instructions) - RPC SSL 選項: (SSL 設定程序請見 Bitcoin Wiki) - - - RPC server options: - RPC 伺服器選項: - - - RPC support for HTTP persistent connections (default: %d) - RPC 是否支援 HTTP 持久連線(預設值: %d) - - - Rebuild block chain index from current blk000??.dat files - 從目前的區塊檔 blk000??.dat 重建區塊鏈的索引 - - - Rescanning... - 正在重新掃描... - - - Set database cache size in megabytes (%d to %d, default: %d) - 設定資料庫快取大小是多少百萬位元組(MB,範圍: %d 到 %d,預設值: %d) - - - Specify data directory - 指定資料目錄 - - - Specify wallet file (within data directory) - 指定錢包檔(在資料目錄當中) - - - Specify your own public address - 指定自己的公開位址 - - - This help message - 這是說明訊息 - - - This is experimental software. - 這套軟體屬於實驗性質。 - - - Transaction amount too small - 交易金額太小 - - - Transaction amounts must be positive - 交易金額必須是正數 - - - Transaction too large for fee policy - 根據交易手續費準則,本交易的位元量過大 - - - Transaction too large - 交易位元量太大 - - - Unknown network specified in -onlynet: '%s' - 在 -onlynet 指定了不明的網路別: '%s' - - - Use OpenSSL (https) for JSON-RPC connections - 在 JSON-RPC 連線使用 OpenSSL (https) - - - Username for JSON-RPC connections - JSON-RPC 連線使用者名稱 - - - Verifying blocks... - 正在驗證區塊資料... - - - Verifying wallet... - 正在驗證錢包資料... - - - Wallet is locked. - 錢包被鎖定。 - - - Wallet options: - 錢包選項: - - - Warning - 警告 - - - Warning: This version is obsolete, upgrade required! - 警告: 這個版本已經過時了,必須要升級! - - - on startup - 當啟動時 - - - \ No newline at end of file diff --git a/src/qt/macnotificationhandler.mm b/src/qt/macnotificationhandler.mm index 0a342d98a609..e4e66a5a9895 100644 --- a/src/qt/macnotificationhandler.mm +++ b/src/qt/macnotificationhandler.mm @@ -13,7 +13,7 @@ @implementation NSBundle(returnCorrectIdentifier) - (NSString *)__bundleIdentifier { if (self == [NSBundle mainBundle]) { - return @"io.dashpay.Dash-Qt"; + return @"io.btxpay.BTX-Qt"; } else { return [self __bundleIdentifier]; } diff --git a/src/qt/notificator.h b/src/qt/notificator.h index 471675a685c1..8658d3a0680b 100644 --- a/src/qt/notificator.h +++ b/src/qt/notificator.h @@ -6,7 +6,7 @@ #define BITCOIN_QT_NOTIFICATOR_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include diff --git a/src/qt/openuridialog.cpp b/src/qt/openuridialog.cpp index 08ac80fb247a..02a2a7f7b080 100644 --- a/src/qt/openuridialog.cpp +++ b/src/qt/openuridialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -17,7 +17,7 @@ OpenURIDialog::OpenURIDialog(QWidget *parent) : { ui->setupUi(this); #if QT_VERSION >= 0x040700 - ui->uriEdit->setPlaceholderText("dash:"); + ui->uriEdit->setPlaceholderText("btx:"); #endif } @@ -49,5 +49,5 @@ void OpenURIDialog::on_selectFileButton_clicked() if(filename.isEmpty()) return; QUrl fileUri = QUrl::fromLocalFile(filename); - ui->uriEdit->setText("dash:?r=" + QUrl::toPercentEncoding(fileUri.toString())); + ui->uriEdit->setText("btx:?r=" + QUrl::toPercentEncoding(fileUri.toString())); } diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index d1b30399d2da..2a8dbfa4294f 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -3,7 +3,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "optionsdialog.h" diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index e2f15ae74075..cfba155e42d2 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "optionsmodel.h" @@ -141,7 +141,7 @@ void OptionsModel::Init() if (settings.contains("nDarksendRounds")) SoftSetArg("-darksendrounds", settings.value("nDarksendRounds").toString().toStdString()); if (settings.contains("nAnonymizeDarkcoinAmount")) - SoftSetArg("-anonymizedashamount", settings.value("nAnonymizeDarkcoinAmount").toString().toStdString()); + SoftSetArg("-anonymizebtxamount", settings.value("nAnonymizeDarkcoinAmount").toString().toStdString()); language = settings.value("language").toString(); } @@ -152,7 +152,7 @@ void OptionsModel::Reset() // Remove all entries from our QSettings object settings.clear(); - resetSettings = true; // Needed in dash.cpp during shotdown to also remove the window positions + resetSettings = true; // Needed in btx.cpp during shotdown to also remove the window positions // default setting for OptionsModel::StartAtStartup - disabled if (GUIUtil::GetStartOnSystemStartup()) diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index e5d19950a6db..003603a2ee8d 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index e08e628841c1..6d7cd7e760f3 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -51,14 +51,14 @@ using namespace boost; using namespace std; const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds -const QString BITCOIN_IPC_PREFIX("dash:"); +const QString BITCOIN_IPC_PREFIX("btx:"); // BIP70 payment protocol messages const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK"; const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest"; // BIP71 payment protocol media types -const char* BIP71_MIMETYPE_PAYMENT = "application/dash-payment"; -const char* BIP71_MIMETYPE_PAYMENTACK = "application/dash-paymentack"; -const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/dash-paymentrequest"; +const char* BIP71_MIMETYPE_PAYMENT = "application/btx-payment"; +const char* BIP71_MIMETYPE_PAYMENTACK = "application/btx-paymentack"; +const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/btx-paymentrequest"; // BIP70 max payment request size in bytes (DoS protection) const qint64 BIP70_MAX_PAYMENTREQUEST_SIZE = 50000; @@ -79,7 +79,7 @@ void PaymentServer::freeCertStore() // static QString ipcServerName() { - QString name("DashQt"); + QString name("BTXQt"); // Append a simple hash of the datadir // Note that GetDataDir(true) returns a different path @@ -199,11 +199,11 @@ void PaymentServer::ipcParseCommandLine(int argc, char* argv[]) if (arg.startsWith("-")) continue; - // If the dash: URI contains a payment request, we are not able to detect the + // If the btx: URI contains a payment request, we are not able to detect the // network as that would require fetching and parsing the payment request. // That means clicking such an URI which contains a testnet payment request // will start a mainnet instance and throw a "wrong network" error. - if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // dash: URI + if (arg.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // btx: URI { savedPaymentRequests.append(arg); @@ -299,7 +299,7 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) : GOOGLE_PROTOBUF_VERIFY_VERSION; // Install global event filter to catch QFileOpenEvents - // on Mac: sent when you click dash: links + // on Mac: sent when you click btx: links // other OSes: helpful when dealing with payment request files (in the future) if (parent) parent->installEventFilter(this); @@ -316,7 +316,7 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) : if (!uriServer->listen(name)) { // constructor is called early in init, so don't use "emit message()" here QMessageBox::critical(0, tr("Payment request error"), - tr("Cannot start dash: click-to-pay handler")); + tr("Cannot start btx: click-to-pay handler")); } else { connect(uriServer, SIGNAL(newConnection()), this, SLOT(handleURIConnection())); @@ -331,12 +331,12 @@ PaymentServer::~PaymentServer() } // -// OSX-specific way of handling dash: URIs and +// OSX-specific way of handling btx: URIs and // PaymentRequest mime types // bool PaymentServer::eventFilter(QObject *object, QEvent *event) { - // clicking on dash: URIs creates FileOpen events on the Mac + // clicking on btx: URIs creates FileOpen events on the Mac if (event->type() == QEvent::FileOpen) { QFileOpenEvent *fileEvent = static_cast(event); @@ -358,7 +358,7 @@ void PaymentServer::initNetManager() if (netManager != NULL) delete netManager; - // netManager is used to fetch paymentrequests given in dash: URIs + // netManager is used to fetch paymentrequests given in btx: URIs netManager = new QNetworkAccessManager(this); QNetworkProxy proxy; @@ -398,7 +398,7 @@ void PaymentServer::handleURIOrFile(const QString& s) return; } - if (s.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // dash: URI + if (s.startsWith(BITCOIN_IPC_PREFIX, Qt::CaseInsensitive)) // btx: URI { #if QT_VERSION < 0x050000 QUrl uri(s); @@ -442,7 +442,7 @@ void PaymentServer::handleURIOrFile(const QString& s) } else emit message(tr("URI handling"), - tr("URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters."), + tr("URI cannot be parsed! This can be caused by an invalid BTX address or malformed URI parameters."), CClientUIInterface::ICON_WARNING); return; @@ -563,7 +563,7 @@ bool PaymentServer::processPaymentRequest(PaymentRequestPlus& request, SendCoins addresses.append(QString::fromStdString(CBitcoinAddress(dest).ToString())); } else if (!recipient.authenticatedMerchant.isEmpty()) { - // Insecure payments to custom dash addresses are not supported + // Insecure payments to custom btx addresses are not supported // (there is no good way to tell the user where they are paying in a way // they'd have a chance of understanding). emit message(tr("Payment request rejected"), diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index f17491db309c..1f65d0d2ccbc 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -6,7 +6,7 @@ #define BITCOIN_QT_PAYMENTSERVER_H // This class handles payment requests from clicking on -// dash: URIs +// btx: URIs // // This is somewhat tricky, because we have to deal with // the situation where the user clicks on a link during diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp index 987a2fd41b55..15634322ddc7 100644 --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -22,7 +22,7 @@ #endif #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" /* for USE_QRCODE */ +#include "config/btx-config.h" /* for USE_QRCODE */ #endif #ifdef USE_QRCODE diff --git a/src/qt/recentrequeststablemodel.h b/src/qt/recentrequeststablemodel.h index c678a2de88d6..5fee479c0661 100644 --- a/src/qt/recentrequeststablemodel.h +++ b/src/qt/recentrequeststablemodel.h @@ -53,7 +53,7 @@ class RecentRequestEntryLessThan Qt::SortOrder order; }; -/** Model for list of recently generated payment requests / dash: URIs. +/** Model for list of recently generated payment requests / btx: URIs. * Part of wallet model. */ class RecentRequestsTableModel: public QAbstractTableModel diff --git a/src/qt/res/css/drkblue.css b/src/qt/res/css/drkblue.css index 965ef42a395c..7767ee8a24b0 100644 --- a/src/qt/res/css/drkblue.css +++ b/src/qt/res/css/drkblue.css @@ -700,16 +700,16 @@ QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScroll border:0; } -/* About Dash Dialog */ +/* About BTX Dialog */ QDialog#AboutDialog { background-color:#F8F6F6; } -QDialog#AboutDialog QLabel#label, QDialog#AboutDialog QLabel#copyrightLabel, QDialog#AboutDialog QLabel#label_2 { /* About Dash Contents */ +QDialog#AboutDialog QLabel#label, QDialog#AboutDialog QLabel#copyrightLabel, QDialog#AboutDialog QLabel#label_2 { /* About BTX Contents */ margin-left:10px; } -QDialog#AboutDialog QLabel#label_2 { /* Margin for About Dash text */ +QDialog#AboutDialog QLabel#label_2 { /* Margin for About BTX text */ margin-right:10px; } @@ -1042,7 +1042,7 @@ min-width:410px; margin-right:20px; margin-left:0; margin-top:0; -background-image: url(':/images/dash_logo_horizontal'); +background-image: url(':/images/btx_logo_horizontal'); background-repeat:none; } diff --git a/src/qt/res/dash-qt-res.rc b/src/qt/res/dash-qt-res.rc deleted file mode 100644 index 2a8f850260f1..000000000000 --- a/src/qt/res/dash-qt-res.rc +++ /dev/null @@ -1,38 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico" -IDI_ICON2 ICON DISCARDABLE "icons/bitcoin_testnet.ico" - -#include // needed for VERSIONINFO -#include "../../clientversion.h" // holds the needed client version information - -#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD -#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) -#define VER_FILEVERSION VER_PRODUCTVERSION -#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR - -VS_VERSION_INFO VERSIONINFO -FILEVERSION VER_FILEVERSION -PRODUCTVERSION VER_PRODUCTVERSION -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_APP -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" // U.S. English - multilingual (hex) - BEGIN - VALUE "CompanyName", "Dash" - VALUE "FileDescription", "Dash Core (OSS GUI client for Dash)" - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", "dash-qt" - VALUE "LegalCopyright", COPYRIGHT_STR - VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." - VALUE "OriginalFilename", "dash-qt.exe" - VALUE "ProductName", "Dash Core" - VALUE "ProductVersion", VER_PRODUCTVERSION_STR - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) - END -END diff --git a/src/qt/res/icons/add.png b/src/qt/res/icons/add.png index 809026c2024dc088d2ee73367082bf53b7247132..f98e2a8ca7386c19292423b94c97818052a38674 100644 GIT binary patch delta 1258 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 diff --git a/src/qt/res/icons/address-book.png b/src/qt/res/icons/address-book.png index f0b2f90bd0bfd65d22b24c22224eab4b9838399f..6e00664d2e097fc69362641f240efb65849784c0 100644 GIT binary patch delta 708 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 JPDHLkV1hzm*KGg* literal 15086 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�UQL0r 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 FV1jHZuc-h4 literal 6610 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 T8~gW<7I0I?K)XoG{?UH`@a8|! diff --git a/src/qt/res/icons/bitcoin_testnet.ico b/src/qt/res/icons/bitcoin_testnet.ico old mode 100755 new mode 100644 index b86e2a7039463144a4d6270df8b2374eb14d1308..138216c7cad7166345b3ad28d462a60b54e02a4f GIT binary patch literal 159472 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 JPDHLkV1hzm*KGg* literal 15086 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 diff --git a/src/qt/res/icons/bitcoin_testnet.png b/src/qt/res/icons/bitcoin_testnet.png index 5e044d34083c62325927e987acb404b7220bd3e4..8e149ea116178e46677a8aa5c82b02f8a76dc237 100644 GIT binary patch literal 53063 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 BH^Kk_ diff --git a/src/qt/res/icons/clock1.png b/src/qt/res/icons/clock1.png index a7a499770e25e8fb7cf345b644ebdd8d77743ff7..448e47f947d3da4e023f69279e7f8a830ed5ca75 100644 GIT binary patch delta 935 zcmV;Y16cg-39<)}8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&010qNS#tmY4c7nw z4c7reD4Tcy000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S*E^l&Yo9;Xs0009oNkl%9YSrF;8H=W?8Q zTBTX7vbFux{(lf2{86*^Lb+UiU=KlItwjhSipAoEH+!-Rg|2=ts~r+uX@WRrKr1?f z7CVg>^!@#a?}O)ZG2wo>u(0s8wbpt7<#PG-gqQecz|DDbXOA7FDfIWV@n{`fhfyy< zJqYMG9_M5#q1wBb4$hyy2i$Xo5Z+)qy*QE|9`Qnn=YM*5u8T2-C!3q(n?8fFWU%QY z+HI~{OJ;oBX#{)keRcWrf|Jc=r(R2SPMW=dYORJ;3WG%|Nwe7`+S>!)hgQILPY=yP zAGR~cJNdp-uItWtN~tN?lf&7M$>eh=EJ7PFmZ04tjw0fYB#%c&+3D`0U^ITaO*C{2 zy}5D5aet+pR<1{A6e8&n8+};C^B236*BuN#6bN1LBS(+8ECXw5}KoBV#AY6ncq; z{l8eWD^M=bk-$x-h^*$>Zi7b9#L5U?>tzpEc7JPC!hvC)Z2m)UcMq9V8id6<7Of2i zi^3p+@ z(0_ODn1{aqX{A!}9e`r7_~2%}{)M`~s+F+xo){)GG(aE>*DJTFw|tIGoZ_Q%A7fXR z&3EaEi{BW-oC!3-V&FZ4Ybf!By`|Zxo_wCH?HieDNLKg9+ z0|4-4%oA5sSq_ z5Tw4QgI7kYqtoe5%h{4_M^;vr5p@*or}+ z$ykh!kLOoH8QQgO(sIYaT~J(XJT{d|r5uyWnL8JFhvwO^6J8pr8 zw8by#j^DBvZs@hw-1UPJVKXZI)d9X%@~(qLFQv3`x9h6I)>mu0ZL{2R)cjIXs2gVhQaT$A%TjEs8 z&xqOXQ|?PO*2@O;yv20QV(c;LdvdZsCgq%r@eCIBAz&w@Y!eAQu)=xDciw90w3;uP z4VMhMZiBX)m{PtfB74oM-AM^0Dn+Y+*RUxjS1PvnJnbUBRi*G)jOX-dmtNBase+)g zjVG4`!~(BM5m3my0=^woSsFdT&!N@)aDnz}ld-F}kE42iQ5<6rc;5C z)Ck7>%yp%6XMXVKgQ1ode{lg{eF%|mM0yLKvcsP*v+fy)>-c{1lZbS4Y<@$CXz26^p3!TLD;R5^ zm@|J(j^~oSJ#VCGcy*>Pr-Sh{_-e_z23&D{QGa{>la{A3rDOda1&wCHbdmI7=VaL2 z<%FXT9{ca-^e3ETk3P0-s2F`|3OwTVJ{eiUkE8GB+#7QCWcd~!SduWgnwHCA6w#QW z&ldw-i?eU|nn#afi(AP_*~!VHaq1lTqB+t%s_<{VwNDiQ diff --git a/src/qt/res/icons/clock2.png b/src/qt/res/icons/clock2.png index 9e25da3ce26ce63d7daa484e0f4cedbf96951124..c1a6e99f7f28d66f4dd6901f4c09a2e4325ac3b7 100644 GIT binary patch delta 933 zcmV;W16us<39tu{8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&010qNS#tmY4c7nw z4c7reD4Tcy000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S*E^l&Yo9;Xs0009mNklIlO8li)C9;Pl+nx)b#b_53|cl|v}hhqMk=e+S@HOq`BiczvkjOFI z8s^{CRmgh07D%?A zwHfjSAEa$U2hA^@pFh6{Ec!wSIg&|VJ)Fvo$}mRyK7Z1eSZml=Uni%Vj3l~@xF$k% z_~oJIY+uV;isaeSm9MUN*=%+ye=sv)>P;S0t8}%&;^=Bkv)LqWH6Uz3+{VNa2k4M9 zU1ox3k5DBcW3353!4q+@8&eM>E-iNG?{?@xPf2Zz>;jv$D%n(; z!E6?s0cUx4dYb<3E<>#ia-ABOkenCu*+iE>cF|h^%CTbzrBGUf_-g=;?RB% ze*`C~M2fz6o5^H^)_O_q?Cg}6iT`-Y1rld(|qT5Ug!&@zag#M7~eF zQGc;3kJ}f@<#NjdC=?3I*H*Vb()X7wo@3zX5rRV_v<3WDzQuN@&EXSy&b@yQHWux7 zceg%WSXj8>oO3UoX?Aw@^k^Wzo_KZSxJ_r+^#Y7Fq@y~nvBk|l*J>+Io?mz&+n3(B z$IQ%3Z#tcx)>==dggs-7_Uj#0)><#^?jG)5tyC&aw@>;HhxNzabr>v900000NkvXX Hu0mjfWt6}Q delta 1233 zcmV;?1TOoq2kr@w8Gi!+001a04^sdD00d`2O+f$vv5yPRI+y?e7jKeZ#YO-C0)yV1$C|UogP*jTxXzoo(3`o@V1SomhkwR!n)hgu_hOCnS9-%wdh|(L zxTvzoowUZ3uECkL%9ypwmbJ@Qb&OVez-5p3V2bxwf%Z^(_D65&L0#Iex51mQzM8Sa zm$1Z@u*H+G#YJLxCPP^&MPD;gf>C_-M{eaePG>k;<*v27fRLSuovfIyz?7`NlB>Uq zrn-Th#eZan*GzQgNOJW-YV|o@<}_CFrmeoBueqG8xtXiFm8rUtsJf1(xQ(Q?jH0xK zoVI3z&^}kfgGWp|6adt%;kdh?t~VXK_YU zdq7dDrmC@lh>nt*qnM?xl%lMVpQ?_XsEnGWf`5*gc!Z3Kl9-5$mZzwxprfa0aCLTm zgp{77bA5!3mz`;Fb~!&ojE|9@pr?n2h>nnwl$V)1KS6?phmetzij0$fgs6*-rk9wR zl$4f)h@EY8oB#j+izlZX0000xbW%=J00cN{qM>d*2LUJ0{?jmC`}%78`!&zk3OP`2 zf-k7Ith#cBK2_M|4lw-vKx+N{dIB}v#Gt%n>9XZ3R<2sTX6?H58#byi zaHwwDyk+aQ?K^hv+P!D5nmPl6hUUKg2M!)OeB|h{<67E4r*i7(o;Z2x^qI5gf6nXa z8-P7yXmsJ?rOQ{Y8fzOs{VQQ&YG!U>X$A5c0KXbp&91fTd;kCdC3HntbYx+4WjbSW zWnpw>05UK!H7zhREiyG!F*Z6iHaaykD=;%UFfbO~I?ez903~!qSaf7zbY(hiZ)9m^ vc>ppnF*PkPGc7VTR53O>H8wgm7c(m`GdeIZXMloo00000NkvXXu0mjfnwL@c diff --git a/src/qt/res/icons/clock3.png b/src/qt/res/icons/clock3.png index ea531d4d3376908511d3a168b590b79255e45b75..e429a402cfba88ebcff6eada2d1226557c3ea736 100644 GIT binary patch delta 915 zcmV;E18n^339<)}85jlt001BJ|6u?C00eVFNmK|32nc)#WQdbL0~mi9bVXQnQ*UN; zcVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$TFG)l}R5*=QlTA!qRRBiMz3&dp0IzQt z3q?RuX^I$)X-KhMSQnbIWTS?-Xo_LsPTiQeG9gCYj+l;#sW!0-HFe>_7=L174QWGR zB=wKlmY-0dm;&v*ndyJLci(;Yx+w`g>+gKKBb;;WWpZ*-`M!TtYdxf-J08ceYs99k zwVscn=*ra8RJ?aDb`OLQqEspkv}Mz;p6bmXY0c$n&KBqk)(LlRvAVh8zWY7;dwt8D zDwRrC-2+kW%Ee;w)L?Js>;YNG_}Y^3EcMz3^~B=KJe{QC?dN}&pZ@lr`jvQM;w>S> zC(b#i07|9Oz~E!epLJ@blKK{RjA4IA2RHw{4m}+c@HV9g>?9T^a9azT;Cr5a$ z>mo^_NsR^((cTvG!D|M;)nJVARJEorsZ8Ugp2zzUMx%`ZC%}P~9x9X4lrdma5Sp8} zBM_Q?e(9*SvveEewl zBi@%sp6ou9N}p=t^YX#-R4O40Ym%=o1*?mj?(_rMK2+l_qoboOxm<3<7&Da3*kfA9 pGOVYw#+dm^rSem`Tn^nH>3>i9$WCqLV1obv002ovPDHLkV1j7eybu5Y delta 1230 zcmV;<1Tp)v2kQxt8Gi!+001a04^sdD00d`2O+f$vv5yPRI+y?e7jKeZ#YO-C0)kLXR7L;)|A2sijg5_mhlhrV zi+_TIdwY9zb#-lRZ2$lOmX?;2nW1;1%xrdpYHDhbkdU0LynkVWrekAco~^uDeWF)a zSCg8dR$*>UO-+xFk5Euhi;Ig*O-+Z2j!8{ZhKP(sNl$=)fI~w=fPjEMKRp&eEUK)^4DsZL-dI%=mA} z_h!NNT%EL0qvWHv$C|>%gRr!k%Fdh2(3{QCV3U_!sDH+5#rI{w_g%a5Q=Y?1uk=ZO zxTwF$ox{eIy}_Br%9zK?mdDFih>TO7z+u1lT)XyEw)Rc2_C%xUK#tn0zQUWlzM8

@CRJG|Szj+|fkdL^G+t*mkmaqrynvgXiK?uay}*>bzmmMai?_N` zu<%T(>wiY3=tZgZKc)3ImgX~(@}#rBqPMx6wz-+Ox|O)PlDE2!wYX5O^hv7qM5y&Y zqxCh6(lCe8GJ@BZsJf@LwSbhBjHITNv9pu0vyiW{OsVohr1d_b^*EgMD{G%4W1TW> zucocBfsBrlqNA9su9T{*kf^FiqVPSP^*4~?FMoyBEspdmh3u!Psi3B(X>@gVgM^f# zq&$7OIF<7)akCvjU@3_7pQERTh=`7ol9ZU4D?n2*fY>jJ^elwzf0C$+m!+4OnnR7{ zG=J7KY_I?S|Mn!jdjJ3cJ9JV`Qvd`wYNDZTJqH0N&;HXeUi$iK`};M`*9tjMZi1$_ ztSq{6hCWr<;SMnT{6K2`{CWa4+~H7yxx0o{5B`Of4*&oF0b)x>L;#2d9Y~Qe7=H(J zNliru-v%B6CM}h}+Gzj)0SZY(K~xyiV_*ORMkZz!RyKAH1_LhN z`2`#tot#}<-P{F*Kq6ei9-dy_KE8hb0f8c-K>cDt!6Bhx;SrHh(J`^&5)6`Y@d=4Z z$tkI6=^2?>*-{MBIk|cH1%*Y$C4Z%5 zJ-vPX6DCfYJVk*)aq6_`GiJ`3J!kH``3n{$dGXcJA7}M@^l9K|^!zzWoOd9y)yF=rJvApi?<@bdR4ndFu3;vw!FG^bNqC zF*G`V;o_ysSB$j{p#GIGF*P%{u(Ses4FH^3S#MV5dOQFC03~!qSaf7zbY(hYa%Ew3 zWdJfTF*PkPGc7VTR53O>H8wgmGb=DNIxsL6-8#+y001R)MObuXVRU6WZEs|0W_bWI sFflbPFf%POHB>P+IyE*rH5W50Ff%$ZFlT^*asU7T07*qoM6N<$g2-G~i~s-t diff --git a/src/qt/res/icons/clock4.png b/src/qt/res/icons/clock4.png index 3f3a462737a20238066f5c4a3bcefa965fb43e55..ba036f47d33e7ac9a3db80ccdec293e0ee3be034 100644 GIT binary patch delta 951 zcmV;o14#Vu3Bm`E8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&010qNS#tmY4c7nw z4c7reD4Tcy000?uMObuGZ)S9NVRB^vcXxL#X>MzCV_|S*E^l&Yo9;Xs0009&Nkl7*J>Luww7_zI2nNfn`57k^o_R8a^GSQpMJ>w-v@ zL6JDfr-D+c6>%lFk!I0F2*~8oBnulW&7*lCrg?o|zRaC_|M&h~*g$$VXLEjMb&givvok&p)Q-Wt?~ zL$)dlEv*>%XtC?JTk&|M^5K9G;%jDR9{_?NXlrfrzdIp)-^3f(2no5|aooH6H=LDd zI_YEMpBVKyhYN3*gr@SBdwcIq0GNmtk}TP6z-7GNI6YMj?tT zXlb#qwtu?YlhT~AT0&_D;U9rE4w@Xaad@z`jc>o1!^c-9@%hjk*i+cvRrvI38P%y6 z$t3mo)>_|!v9!F7%+V_3>N0?1NJ+R-XhwZL31c+KX|Sh|%~kNp5TPbZAR_608IKsXI;3AO1EZJjenCiegk{1gGOV4<BgaHeUsoM%xC}bb21rbgAo12@ZnHlw0S7&WU!^tH)@zgdrVE{G| zY``D@23tD@VWe=e&q0yIKq0%Vl)C8^i^a<7ih6%5{KLF`F~spE!i^h*(NTg+5XL7I ztba7PJ*)89&>mdE;QFRI+y?e7jKeZ#YO-C0)*sksMk=f;|(a5Ra(X-^&t=Z12?dYNP@{ZryaNzBu z(#Mz0zmv+msNT?mwW)^H&x`W$f6Kyd>+oUa@T$thp3%gf)5V+8#Gls4Zl#xP%g1-| z^Kb9-W$Ex+v8+(c-I~U`gS4oc&cU0|!kf{T;}jpVHhu*6cUM-80DRtGc_QxwM?QvYEQFhsMHN+UQW-?o8b7N!jg0 z*zG>k>ovB^FR#clvec2YyQj6Wf0d7Ny1!G{?N8V3OV{m3*X=^n>^;!yH_hrRi<%>Y zmNAj8p0c)Lo~cyA*iO;xO3~~^)9pdg>^#rwH-Em`F0sum$L%V>=~&YBQPA^7hm}L0 zu|du5H>0>X%IqzatsPQaDa7(m%I-(3%0ar?KE>=POHwhh)-T8NEWhkcpSMG{*gMJd zHOBHZu+}t^umAu5m{6^H0000ybW%=J00cN{qM>d*2LUI}{?jmC`}%77`!&zk3OW8z zZZLwSx2d{vhCWr-;SMnR{6K2^{CWa4*Wpltx4MQ^54Aud*#H0l0b)x>L;#2d9Y~Qe z7=H(JNliru-v%B6CM}h}+Gzj)0SZY(K~xyiV_*ORMkZz!RyKAH1_LhN`2`%EoLyYq+&u(^Kq6eio?hNQzJC4zfk7goK>cFDA)#U65s^{RF|l#t5)6`3 z@d=4Z$tkI6=^2?>+0qO$Ik|cH1%*Y$C4Z%5WvU{B(zNL_X3m;DXYRcD3l=U~tjwUYWa+ZyD^{*ry=LvY^&2*- zGH|GE+Pr1!w(UE1?%KU)uet^UgQnKL{Ra*nI(+2lvE$l0K&Nu*>YX@w>hzhj=YP)Y z8yJE;V`O~c;-$-1uA1l=Lj5aYYG!U>X=M%a8UVCjSH8wgmGb=DNIxsL6-8#+y001R)MObuXVRU6WZEs|0 wW_bWIFflbPFf%POHB>P+IyE*rH5W50Ff%$ZFlT^*asU7T07*qoM6N<$f+PoNK>z>% diff --git a/src/qt/res/icons/clock5.png b/src/qt/res/icons/clock5.png index b2dccc2caf2f148e56ac9b095c6c8c0ac99744d3..411d7a78a0a3c1d71a6e9d73ee7164eabe1e649b 100644 GIT binary patch delta 925 zcmV;O17iH@3A_i885jlt001BJ|6u?C00eVFNmK|32nc)#WQdbK0~mi9bVXQnQ*UN; zcVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$TIY~r8R5*=QlTA!qRTzffbMLvp%s4-E z7&{aZ2`xcwYC}3|qV8-HLqeJ^Y+R6%bfc_HTy>!diyGb0SzI@eCc4rlO>Ep$lPZRV z15D5=sU@@`1e!VwW$u4vnDg_UbKHob&-#6y-OHSFILzeaBu}T)XOvRI9(S)xDV=Ol zRVlS3gqSav%kuD^9RwI-EDXcJ_O$zE@TKgjYF;92-6yuh*ZxQQbLi?=W6Kv3)2#l4FQ z02X}481F15ZVw#G_5@sj2R^v(!#az#wTB2gBczWibQB{Pw6OdGq5sX;d+=-U)^zyQ zbuXLEmWropr+I((U2JS_Kx=|^fL4SkiqMq1(1@YYgtRRLxqW1E5-*SL4Eer)juTNS z)4k7lHb$WYctHc^Q4w}8g=Vt_p(GSzFwihupyySAD3&N3H!vnS%$=`aOXd|?kwsfZ z!}|O1PHe+PDb&BMp&D+2Pcs}n-iGs6x)D7QxbbldXRm*1`0bq~ZjIpt!pdxb{D4OB zMFqeBnHEN_WZ+l|q!px5&=BB9Bt||Z*bIS)d@h=%vb&9U2S#Feo`i-0KyZ$Lc7g+e zwGjdsD5kKrDxjc1k%v}n7de2%`WjrSVA!8`7z!s0I-gT;%)mjzf?%OR&@fQAzbGKB zKr){J5iNi5dc9t8Kea7)y@Hd<5-cYuMsQC5A285}pJ>F9!0Goa_Jxm|@8{Nq5VyT@ zxhxxx+}IztI&}Y8LdP+}>~+HLKN2J(-1|j9I*t2Pfty$NprBEi$(s5@cBxXS#LPJd z#u%HJnE0UgjooWQ7wUX#MIzNDk<1gO#~V2Rxrce&^9E8FEX-ug@{MOcnVp^c%sFSD zI@9?0_?cvv`f}i%ouTYNjCAilEEIOu86MyBaQEx%`t}2NX>M-rXXl)K>Wv4Cj*cc1 ziNrY~8fJkm5ox~_+eIQ;YBU<(SF6>?9g_Y9A3)B5jeNmf00000NkvXXu0mjfN+z?Z delta 1229 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 P00000NkvXXu0mjf)T|vm literal 1292 zcmbtSX;4#F6uu}yfx4nBMgp$mh7+)%Gjz0KL0N>lP(W)XAqI#*gyaDNg-OC1gh^PE zm#`zC5HOe!Hbq2*Sb|Y21!Z4l5mE9IMrbJX`LjRzt7q;x-#usMyZ4-L4(FWbnGHre zi~s-|TwR=-~)}lxw_9!l1b|+2w)<05SUjU?u>tw2I;k z01eqiU~!qSypZ>*vu$N%B`+tbK#*Eh zE)tiC$_q338Sw%xvq;D(7Nr%7(qS&M{YhgQn~@w(OHYi*%}x~Y*aiIL{&#N@VuN|9 z(dmiMo#O0ZX55k7=DnE`&)bcbWh!&H>D1jPSh)V=?MLB(URYiggX$gltJ{v`V$-;6 zs-OF{%cuRkejuLz-YQW<@^++npE!H*v?Zq$$0@a9@vYcGtC%#a*bE$liG$dd!4VCz zibst#!vk*z`npvePa9;Fl8St3bxHmG@}91j(yHRhQn)~nf)1rpJ}VNYp?7qU(gI$^ zZ2`<<-MgEY6c?J49{1-T%Bu2QE;|f;p%6~xu);(cal%YCoJ>E;mocvU9D<+iE^J3- zK`n%Q4(09O`@WzB8EX3H&UQD(4gXUwggL1Cr|S=%y7Eg}cc_}PJ);ykgXkvS<^hW7TMm4Y*ry#TM&x|WZMJ8q-kt*b@lS9!;k1O@D|nCTc~9!O#%jYQn>kwL>p2 z?fk^V*qDLQP4zrIMh8VeIz(-}-biY@xMX}Q)j$hr4GcIOcNdwh7L($Vl)UiM^ad_Z zkVzqvQ}fNYAEzQYm0kW56Wh13)=0YoU*r>FUk*fvtKF1`PO=i0j3BiiL*clJ zuXh~$=0hd5)2I4MU5u(PVz!H5XJ_$kolM4{YwSY?2)+f78Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0(D75K~y-6eUi^h z8&MF)zwd4Kt=Vib(gZKH&{`CvwAR?9^wjiV>D5Co-UR8fe}Sh$F2!SL?pp-(Aq$XfvV*{F|Ar^~W0JM)z2mt^DK>*+P;W$ncpsMQZ z_V)HYNs^$dYJX2W9>@6jIAmGw5EldilF1}iS65Lkm(kVL)dUD3Mt630vX0|iI&%23 z5CVgPgNR0>sMqUoT^B-#rUToyVOiFd;zF43`{10zbzOL#_gA82S^qU30zA({KA%6R zR4S&TC~zF-pksniTD!bZTCCAPVrdDLg@yCr^wd0+<$pKN4i7&?06^Du)M~ZXk89tZ zQi>iz@RD=%rcy9gRvxgC5m4LCd>9yb5di?-_ffCcTMglz!}gE@F6c5}$K9@pW#lNC4pd@^bWP zHk;s_Cv4m9ab5RycX#(=!!Yv6WOC8m-{+;NsrhUD{dd1@ZGjC9iL+YG_^Ip9B>>2z zGrej|%W~d$r0YK(`a+!ff!J*{8bP&My>rf@i7Jy@w?7^)%vU_1bXKhvk4^K{J7D(@ X{!=0?Ec`$x00000NkvXXu0mjfZWlf- literal 1148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>CdCzklY; znTHP_zIyfQ-Me>zj8mshoj!f~u%Y2W1%;ies+%=5R;j5iXJR^Z=+I0ChRvHduUWHZ z+qP|c_Ut)$@E~0M&d|^enVEeI49i!nc=__>lP6DZ-n@C~(xsCpPu{zC@8Z_2%cZ1d zYiV^$OP4S(baizfK632b`HMSt?mTql$hiv_kDoZXci+B!`wuPXozMeRz`)SNz>vYf z(AU@J>FMe1?d|L9>+kO$5D*X)6ciE?l8}(l(a~XJV`FD$=iuPrlq$;}aYl3=BYLXJ>wXel;~U zM@L6jS66p;_c?RsaBy%aC@2^h7#JBDnV6WEnVDHwSO7y_M@Pp4G#|wA0MB9 zfPj#Ykg~AwOg_GYVPUHo88;dmi-?E-SNlarg9JDH7btFrQIV9?E( zbN&4JH9kI4Qc`SeY`na@scdX385s7br+@$c{nGmN{fvyjK;EXU{p{Yo-F0=ZA3S*Y z@ZlC)+o=o;|NsBbuQGQ7n(kf_o;&o}? zwOQwY;LXExkN%zGlr?lZI?vAX^1o;L(y{eZ=gyxqu`+DJ+_?rupQD|DCNU;?ySr>O zNuCEv&g>n#uF=E%($`RN6V2VDRpdaYH9nXT-oxa z=ggWlZ@xs-u`xO-CVroDXV0ELO@~?*CDpMB?w@oiMgG2#{r*j#x=v{YvI+JdS@NoD zRuupFOS=~QVq4&llpI{_o$Ztm5Hx$njuw?>58(?3-mLkyrl-$OGgFd{ZQ`O|>)xH3 zH}BrQf1JYVCr=r6_{=j(eYNGKaoV|Aw(0No{QShj#VzJHpYMr&)Si@=o1SWmNKTm& z8glhYcveQ%+Niy0Yq#++H?NzwukoRkaWeP;b+6Kl}1_okx gtBi8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0vkz0K~y-6mD0a% z(@+%0@$a=A*KrcHQqxvq0D%}fpu)z$#?Yk$2nH5jpbHx;ya!Wx00t(WA?XsRRFWo@ zD}t*=IDepW+sL)K_Z|i^AY~{$^En^=j?PhBvqa<$PysAZ@_()i%!c0r=OXgKx$bn5 zBp1L47!HTS^h!WPl!$mD;);mc+uL)2F)-=(`_7eswRQ`54ZJeOJnnY8F7OLDJvljX z{|ER1)Pcn;%liF(-vv@2O_IdB5{Tni&mxaIosN?vNeMUu@@}`A&jBKGQ)|7dwO$dC zTTv9*S>*KS=zqvF#st7`pwn)*FXw!xh@z-6i>L>KK~-xV02%Q0 z@bJ(A>fe5Ee|!6B+Gso%ty$gL`t)uxnE(bbX_|(;UVm>2#DG(;*F&Y00zAN!N+rjO zo6RRTHaA}u(<$GYO+8&-|2PAR(P-qA%jFQL0k&4Fm94ctf8W`JVHkQpkB?c|*}*Es z#P>N}Tk~f-OP=RpwOTbm4%jdZLu1UsY$Y26LB+eMR7@?)FiMdxF503fDn(Ibj^l{d z+6{sL5l^WB)^%OST3ZGd0pt6ANxj+Fxchy7{~^Hb`}bS#2ZJf_01%~AYdjtca1TH! k^<{Z^*#RB_j#BFLAK-Zs)AzYk7XSbN07*qoM6N<$f}#x(^#A|> literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ET614BbI1H;e%K>8&EL#Y7+!>a@a2CEqi4C48d;*Yv9Ffg7A@Ck7R>iLfW{{8#+ z{P}Z;Fq{G8ZripEB6#fBvA=)+LfC)){ORrOg|JtxTJ`()ZwUMI=g&DgIS}@wNt5o} zxdUXMIB_B*Bm^RunVAV>0JQ@FkgodID3wJVwQY1>Q%iv0Zf6Bs@~lOrP|fq@JJ zK#f4ZKvV()#L%XQMKH+7wpauPL`6k`aRda6jEpcb5ujj2>xtazLy{)@rA+t8Se}-( zJOMOh@t$qKm}Zz<666=mpros9uwu50;-nT+Miyq3+5&T*%0g%L?075V-UcPDm;gKd z3Ke}nPjfjjQF+}o4Rd|<+;ml=NJBGOX=|NS9aCR-Z8KZ*glG#}7b#8ifW?c$oMI!K z%w>!%lojmf&-aN6a&y$QankdgKR+nI*UG}p*U~&>&fM6L;IJ@vSC23c*GQFUbr~OT zaWN+WAzy!)nSRTbfP9kV?e4<(pGo%~ki%Kv5n0T@z%2~Ij105pNB{-dOFVsD+3&N- zF{$ZJ-G3_+D0JS_#W6(Ua&m$LQ;*LXof9=|YGGz&B8+@~dU+P@?bG|);~fGx^b~ZI zwAAzzHCe?cOq)1$a(F;U6Su}{j}@y{W@j{6M%}X7RrQODtxYP*ErBsvIM}$DyVP4d zTRM6}!`!_~nio&r+`W3;R_TZXcMo4aef#+J^YSVJ0umxJLQ-OK3q>VGWrd}W3)okB zIVA-Zd1)0#Rk^7Zi#dP0l4-f~m0#sg)>hY}s!LOOo?cE52?-0me&yO#a}zVu?FL)6 zZQWX4Qdau?%eQY|{byKkGL#4#vRA(sd=B)QYKdz^NlIc#s#S7PDv)9@GB7mNH89pS xG7T{_voZxDV{HRtD+2?uyH@8=H00)|WTsW(){x%NR0Pz(;OXk;vd$@?2>?ae>*4?a diff --git a/src/qt/res/icons/connect2_16.png b/src/qt/res/icons/connect2_16.png index 0caddf62b63857dcd41356e7089313732333eba5..6d9a37281ab6fffb97293f758f756ac2acfb3bc7 100644 GIT binary patch delta 609 zcmV-n0-pWg2=4@t8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0wzgBK~y-6m6E+r zQ(+jzfA77wrM+!a4AsPsnjlO@A#u>b#W=7qXmm3sP7Ew=y7;fKFd1hTXA>HSB1vf} zq=b60(c2FpExlZCd*AnQkinz_a^~m!a!$^pxS&Mj7LWl9kbiJ43OF;r15QNbgLP52 z@B2fb1GL-icK=*}h$s@@BPAyPPg+2 zfveYxpT0C2jeohhxg+3oe}CW6TBm?9P^(s}mnIUlyT`AJH)mIh#TzTFAMIy5J39&B z1Q;|LjdZ8e5ugg_>FMe01mHM`L65+UI2w%cJkJJ(KvXW5M`0KOSb!xWlPe4Y0}_LY z8H5nWaS8~5?Y+G{1E_!RoyzL!)BeWBbBSZFEH8ho{C{2t(IAFl1iQPtBftZ!LZRR) zr4--*I*~|Nj#nx@xwf?Qaufs{luB`M4@3-@F~Mm>I-Pcb9AI*}T-q3ug~e9{I^Qw0l@6yV)-Cd%Wi+ycNK7d v-rijQ9Jhfx07|K^Gcz+5@DQ++Qk#DOx`GsVV#~+700000NkvXXu0mjfv~(6+ literal 1120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ET614BbI1H;e%K>8&EL#Y7+!>a@a2CEqi4C48d;*Yv9FfiT?@Ck7R>iLfi{QLLs z`Sa%x88`#T-L`ETMDWbxvFVX;E*0w*UYpaKgE3rkB&h)STnrk-mYgEz>u&yZ-I3N#Za?&|95 z?CcC=L`O$U=+2Zgo-JP8D^b-Q9v%+SC?8EDqh$iS=1OA83_zY zAP5Qy0=gNZ2Iy-;n<5s$AS2si4);K2MKxw6bq>EMU|awJBO{{-42X(~I$e5Yd*P+c z#h2#iUs{}hX>#GE>G_vN=U-N|p2)2}WOD9>?%5ZTCi|sK_h_Gep>^iDjOA%r%M*qt z9s%uA^<41_XkvFskRLFyDCue&teEYhIH|>yk%d{Mw!qw{vd~#QJKoB;w?RoOCcsX= zLPg)t(>!X{tRUSq4RbmDolA@&4b5bwt#>Xl^>x=alegWu#MVVh(>!4D;;@}d%w>!% zlojmf&)>PkQPajr&lAM*wX$&YwKNZzGk3@0Fn3pvFb~&Am1uS2galnNCjlW}e;JdC z852MrP4aekVf@dedk@IrEbxddW?f+}7F%8rE=Z8B4cu43eC~2wbDQc?n zicgq0b#iz>NKhO1iWOd~R%T~pHL`9gE&2L|SA@6Mq}TTV)3Up^Y0t!@riEQI+m^t% z`<`7jySsY2czCw?hKB0@Ed2iZ`SS4-8s^tKBwRS+c~J4#!o-Jy69aiJPF{ZGh~Hc> z@$-`=%$Ra!(xC}fwQfNv+^e^PwVFABBJN#Mh8WO#RW!&#vTrc4iCS7 z;l`Camu}s2OC7#SFv>KYj98kvR| unpv3wk+HUcv6X>=*j=l0C>nC}Q!>*kacf9#Xet6~VDNPHb6Mw<&;$Tw^70b^ diff --git a/src/qt/res/icons/connect3_16.png b/src/qt/res/icons/connect3_16.png index 036aebbd483edcb01a92902b03ac6c014ff8058e..a211700785d4f811bd535432234fcb76acdf2f46 100644 GIT binary patch delta 611 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 RSZ9Jjnrb?#mC7j0{{UqMhiCu* literal 5472 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 diff --git a/src/qt/res/icons/edit.png b/src/qt/res/icons/edit.png index 5fe1ccfe28e3f9d92b2c87009d52abde24e62dc5..1d691451514079074d6c1a4b057d8c1406e5621d 100644 GIT binary patch delta 1549 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 Uu`&0?ivR!s07*qoM6N<$f)Hbtr~m)} literal 830 zcmZ`#YfO@16n^mnq0!WCN=mKLYK}t9R?JOtFlC0BnX~IK&C8l)NNu$)Xx2(=-q2d3 z+jQE>0s*7(qts@OO0CuAjr;fU0fML`B52a<&wg}v&Uv2moITswxtEohMhYSa0RTws zbY?chEi1LkA9iM2&1VP!#S9JufUdgWrToB^WkGs22Y{tGJc=kq}-=~7B%N`>Mhh0-65R=7hH5yT!&VVB3>FL=4u6z_;kLPD+9svN+=n`5u zZX;B1XEM^5;BH`4Ivj}Q>BlMn2wuBVIPh2$4n+c=&0!IAc#2;PwfWa0NbaxK9aoX-xnqa7*8U7}HaBpMME;znMB zz*Wo61z%)05>-KaPZW7ue@rY6bg;GH93Bx*Khq^Qox~GV>$%CE5Mg8NKKqV`y$oK& zsH#8G=kei`BYWhLt8KaP)6slZ9=|Z3f0karI|~8C)8Z1Tv;=B=VouyXdLqn(SXu&| iM%$pF5B*~(yHHqKbmjksVnG!T8UUM>$$Xp2t@;adbBPmfyk6+nX82=f z=>rHL78v8tAI9}U+9m=DUY-sTQmR!5ZnRZfdK^93SWf`48N?Ck9D1PO8k$T5FK{{gf0KL&l7 ze+*2Q?}RK`w3#(7&NmShIZzA-00G2=2my!#h{gYaNgQN34-YpO^YU^t@bU35@bmM4 zX$a;9)fEit>Z<Wm;0R(pdDDH6j_Sa8_e_y{L@W(F&nkoU4 zCapnn1V8{WAuIj|vJ4pm6UM(+9~k~UeG8#s_}wRlf8Tx*mm`5u0IKOhjxaD#W{{Sa z3h3=!0e1vI0I{GJB8WWm|1;2n&$uo5%YQ^%6!7wLGHlv(92^oL$AD-dA&~%}R0SwA z0R#{Wwo>f>M_`utia$sEWByB26c`z)fz!c{AHU)1Z{L0fqWFRM6+i%?I^Z`j&VK-X z_VGJGga0uT7XqxTtUw3+W?*4q0cTO9qzAH_2_S$_8~{pe|6hM)AjagsU-;|0A%Q|Uw?r3FW7RJPeD0=iHQ-(a?}6@2q3g5AigL@4gr|O2um@2jO++x zhXVu<)?7f81OEPjTMo)vn3gi&bbkbL2mk~SiUU4;{L8@4^^dqH`27bQ)Q}c6W-#M( z1hNAF0*D3ChWLMU(7z{9cPMjlI1a>&W2u5p#vTs!S^78uv>=T5y&9`5J2d@1f{C4P)wkR<@f}A~%a004R=004l4008;_004mL004C`008P> z0026e000+nl3&F}00006VoOIv0RI600RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_ z000McNliru-v%B6CM}h}+Gzj)1dd5WK~z}7t(RMfRaF?re}8MAv(KKHbD8mirb9~O zI3bxaW-k>{y$FHRfI$$b2u3gALl2P;K~FyRP)P_)3W1mp<`@wYllah-gj6a*Fr^~Q zIO9+{_DYwE!rkXs3yZqbD85IRFq1x7BOL zm}^s0KfiYR^nZ7E0nG}P>^9)ou@6u7_pd&%XU_prsh&r!U%WW^bfHlAVQy|=?9!!Q zZvo*-091Vho_+840V`(In$WRUtNlZh`_`}DxPNTyAfDITc9N;7vs}G;`OnE4Lr3y` z+w&@s5^I8+e|-Mx&2qSGSAd;|r$?3J{+RZX1Dn_Ok$+LM>_}f?@7}lZydJvg!iBH7 zd^^Vi&v9?rXYpZxzchFF`o!25fDcH=6ey*?**UmoVD}S4gdvoCK}?D;3<<;TQSIx? zGL+7;Yt;|{*A^DJ@OSZ(jnBXH+wAo5D?q7LB&q<`lr}$=ew^965oj1{JhwohuoNqo zrBa@y<$qp`ME9>xu4a{+V6i8?9r&{xg$@9^h|vzFJSNmB?#<6IF>$n9`K{D=A=CdB zp+x`r3Qz_K9;Sd4;Iv9Z4Zs!&blrrBP4urj5zG5}RpuxpEMiJn8>sT)EuZs-2n0rA zEz(T_6cQlD$C}RdQv;A9q5MAp#Uz9#0_fHj>VJx`DFt1$W*}tKhC+0&6|A*bELfqa z3>M3}Oo~0*UV8EUU(QU@H3d?v7El}wK9*Kj7DT9Gc&0-&Y%Cv z9UI$s5HMw{%Bg-cMFL}En>K>yd8E^svSrC+a%3|7WHLFj*&LZn4iUrFts}3WJ9pws zAb$rWS^`)p5gLhYT7(WAwki?LmMuFN9)5EC?AhawK-3~&rLDKV5sJ2Ec_joGtnCh9 zt-*CYMn*;%9^N*7=FF!J5KjHzW-on&2MNPJNyB}oW=j}+;yp1U22i-J$MEno3=R&C zpE~t%6{2A~t}jAAA^4R*wQy7$6DtM1y?5NUC%agi_mpl!cdb;Cb2g1$cYl4 z1e^u{Ukimki;d9_w24=Q#)MdF%SS$^+O#Ta04O*@5VIK>>0ATGXu{CPTB$A`<$u&c z>RNsSKt3T@Lo78%z*<4;0IdUz(RH3Gl&UQreYT0fN;aeVB8(Od5Rry(R~C(;Q2)CP zKw#qU1-iU-YaL*%K`DjfRKnZraWh0403F`PCUfxs${S9kTA1TOv;Yt>KlLtu|3aZ> z7bq_V!7|WT-EkpWrr^P?8*gSe`hTBg&Ej~R2)OnV?+fi9z(J`-h_-!TWdMddcdoOzc)NNQthZ?Em8Sm<)_w}}^M6(6 z`4398K6AGb1C{^)03~!qSaf7zbY(hYa%Ew3WdJfTF*PkPGc7VTR53O>H8wgmGb=DN zIxsL6-8#+y001R)MObuXVRU6WZEs|0W_bWIFflbPFf%POHB>P+IyE*rH8U$PGdeIZ TXMloo00000NkvXXu0mjfOmT3} diff --git a/src/qt/res/icons/export.png b/src/qt/res/icons/export.png index b8584ec5e3ae8ebebed7a1c5f719d576b1847afb..1df9c2398d3b579d329792fef85b3cfc5a3b8340 100644 GIT binary patch delta 2128 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 diff --git a/src/qt/res/icons/filesave.png b/src/qt/res/icons/filesave.png index c602c33fd5087d2258c7d05380ad3d72c23eae7e..ae13a151d5ad11239194edd1fd91199f8dd72f4e 100644 GIT binary patch delta 1677 zcmV;826FlS3(XCXG?UN;B!329Nkl3;}|osof&i;0=}*FQ$apTFLHxWVx4Q~m${ z<=2t*00a<<0~k2DyPb-CV)U$K8RY)GVbGLdV))O@!SMIrKL(&%fPXGxVE6|l{zGkJ zggJ!~g#JU=Ad2xn0}~@71Jl2s45#mWVz~HEli|g~_qt~%ZV&^?Iv`sK5I`sn;FXnf zwfB-|5MpOw&|vt(;G)OJz`(-8@DC{W_bE2Z*gc{GS+6iOL%RQHIv|onpQHDxt-%x9 zUFIT{Z;k*$%LPye{AU1L&d7-HF-V;GAH;BA>@fUgM1)eY2@(PzgTX$9(u}Z3{EtW*5Cb65^&cFPjF6~c zKu@3$01!YZ4gmS|AJial@G~Hi2n#Uy{=i)daV#h|fPD=W`vXm!Fm230S26>`{Vz0a zFky)TfB<5_mLkE?jU~K5Apvp($Y=kcsUH;7f1n8z9DfqfC;><3e@GgD6;jMt%3Xi} z!bpU$-~=T?Mn*J8FhW8CB>ESUY2b$ZgQf3(&}<4$sEpt!fTa-@EDit&AdED?0L=v~ zu)K!_fKoFo3o=0yBsdX5qXsPYAL2@o17HOtHsb&S2qO)^asd-C!oGg_!SL(fFJSQf z162$RpnrPdKde{=W_*y?zkd)6lKTtvDp)Nj)dTs=z@nIym4yLRXyb|kfB-^u03#w1 z?0d+?aPZN8h{e!2gcVY7$NWcx7)%YsQQ!&*oK^n(XJ+^bOgKy|*h2syfG`{Y3PMnv zJ^TdJ3`}XCzXMCu--z4+qyIwF3YZTq1wn-pD1Um`SrKafLF)}(PDlu&1AqX+ng~G! zCNogx#r@w5-0$8q$cO?R@fT6qAy>bMDwu%*7}^Z?UobHozskh{Q~C%K3*mUZf+)c`vI0nv4sFY0DobvjQ&DPy8l4p*RMYee}4aBc=nE&;n8DG zhL4}W0u$wLpg5*?n7}#U56}UO3|!m{3~!+&;~%I4u%!Wj076ZKFb6;r+aI8TKY=0e z{W~xeK*b&hB>#W^@rU8Z4=mvcDhGh_{J;=k=VoMh4NcI0p^23dixz+YV!;&!;C~tq z7zMw9A@K7j(8oU^Rp9SG5dP1fOjsQNav&cM69X$S3jTd#gfvv3Eh=mw01!af+XMd~ zsRNX7zWw;c@a6+EgSXi?20evO3~G{p8Q#8U2IqNn@Eh1*0H*;yU>(2-%mv>-B_bod zp1_s{00Icr0Zfc6pcW0#)4`3J+>cMJ^L3JeSe%D)-D|6&I6zhVteX2!q3 z^uhv61I!Hn*_eR(85w>63$fpSAhjq5Gb0PS9)JKs5qNUz)#d;1J~~NB@q;aA`oh8> zEX>9rBhAb31Dfdgu=EiS4*19L324=C9#)3`K$9gu0~@%%AqiTV^B2RVD}PTPq3Zz% zAV%b_86#tdp^}#L1TAw}Jzx{+@Bcr)892T_0~W2Ia-Wf4F9#Ud3_t#{GyLO`045h; z4*Cmi!m%D4Y&gU0t^6t XAn>%uWt)Ql00000Dy!50Qvv`0D$NK0Cg|`0P0`>06Lfe02gqa zx=}m;000JJOGiWi{{a60|De66lK=n!2XskIMF-yo9s(vUmA~3)000EtNklZ1U5Qd-Xo?Y+8_F73GN}L$Nr;-3B5DAcw07Y;iT)FWVIDa9OBNAK?T;R%|0CD3I zi30)&I6y#&kVWJKf)!#Xv6KCn>8|3?J-hyj*Ee5iY1A{Lp02mvdaJ5O%#6JpZcnWP z#rg-4PY%;)f7m?qz)OXoW@;mbHZo;fUr{f$bT=W$KIeU@B7<_}_GP-OADErLbYB3p zCqF&=-dpd?zkfW(Lwb{whaKiyL{&@;HBhx|+>jcIfMDs~05O~hP6zzBu*xrblBLC4 z&;0!PSBHSt?h9agZuX5=-+Y(@6L5mS>+>BbrcfZpSco zz-!vP5Pyg=;xA^e#S&N*5Cvy~bB?G+)Wqgk0FnVXaoJ5MTw*{adzxpdgJ>gdqzzKI zOu;)zpw*lZ>G9EQC;MPf`@DPSb6WE~H>-;Wcan_%C6TJ7ttPM9V1hqLMiEzte zmq3^%HoQwzhb&MGVh)K&5~0g(o2B(*MOf46oqt1Q69`F62+5GxXcMjVtvO8<1i?EQ zYNQwkpth$9MV))w4DUxN=&~TyvWD_!(Gp7UWLO|~rGYvNob%kf+o#kLGeylXGpsJl z8c{P;(`9DFsA;Vl(G0Hx8jS)&b{B#nLW2v7`}p>%CBr#}b&(o^u@PhSngj|A0~3OI z27duuu^R?5g;8N~RR}7q^`NRo*-_6iYeg+7Uo90S?_r`bTBEsdOt%xmyAokA@C7Vg zshC{3#jyvWiVR~}kD8S_a~cI)S#o^;`vfxwJV#Eq5if+WOA*!xHKUgpc=z0Z=bxS= zgydZa5NpYAqO{e9uP^lY?xzCET!3;$)PLP`=Pbyc3@OGKL@2dj`ObhcD(!}+)oN~= z9gScFgZ=wqrsIaqsSe$CrFa7-pR4aEenvS6I34iO7k7E(ZRN`gt9UEv^|oH!Zb^(v zXWB72>4xWrTBPF{kP!naU@DYlAXFvSS3Fm*wYjr)kE*ID%dPG>GgJeeX<^?aEPv<9 z7&3sd8t^rMEVf|AU=Zl_0!|ECDgS%@K)=5YpHVT5%uG8bCWU{qpko%Rj7!7yAwa;? zsLH@#P*Dz23#>wV9t_;J08}HLDMw?{p446f*}B9l|VJszzR6B2E8f?`e?i4*WdoWy7?Pf|7#}l@pF%!I{MkE7k}sGqe`?; z(du1iqG6bA-x)V-hSJvwbm}lBLK#U%xCZ{(rKQD-KU_O+_Wn2b1+W)m&;Jeo2k;+$ zAn>#VvaVGC001R)MObuXVRU6WV{&C-bY%cCFflbPFf%POHB>P+IyE*rH8U$PGdeIZ z7Tr3|0000bbVXQnWMOn=IwWmxWNBu305UK!H7zhREiyG!F*Z6iHaaykD=;%UFfeC; Tf^v~DCkg-nNkvXXu0mjfOA3rV diff --git a/src/qt/res/icons/history.png b/src/qt/res/icons/history.png index 07aeca1f96e8f78301719b4212b15274b5d59004..e4d46513ffed33091de98b15699f4ff5eb00c0ab 100644 GIT binary patch literal 573 zcmV-D0>b@?P)AmL9v2~=E<#+`NYFfd z!4bSHLaeIu@ZZYShAmi$emukwE}{cNDTaZWfGSe}I&cy@bJjo5oXxLs1M9H|1Eoq= zgxH7Y=)_U1OEJvH6Rg2g1f0c&nU=0n1L?(iTtQ!o;d_n$CVas56vO>`-l#GG(mnyQ zFU2rk<9jb>dTf#aX5I`%h@!vDO6Sm@6LqXV&6&NlpsyX5o z?8T)N!><}!D_-DTieX#njEWF<;0-RItH!n*x3DNHdnxs9!6_WZr@Y;qZ58z9LAU@t zDTcRo&!Zy5&A9`Y;&^`K2e_7DRV>CG^rslc%Fd%swBZ%5qc!h$<^MK}%PEFOv!1X; zh`VqOOE8K9sMdS=w9SxWxS1#DNQTUr)=dWcnqoMF-MEV}|HJwX!pe!R3{gzm00000 LNkvXXu0mjf(USZd literal 1631 zcmZ`%dpOiv6y0b>B`OJtQZ6^#De{OZ)fC2vk)c#lo>MB4M}=Gyc?=Sj@|HY$p(mA) zw@BnpRHCks3`P$^WZ&P^U-y3BJ>NcioxS#1=Z|$ZcPo=FIa^^i07x>-j9COK3-?Sh zA{%E%)e>hBLFoKK<@C_y)~u) zqT9Aw*qR_BtaJt)Pgrvl^nF3!8+5&drOqK?XzvG#<4@)gtm6pp{L1T3fnfk_h=jF& z0xb%RLSR!2Y>tJ^abR*D=of&V2*zi@EEyQ7V4e;Zm%!q(Fn*OpmtZV&!7^LeB}jUr zO*Z;JK#$va@D}bXK$kppx`7VYaAz*s<)U>KT3$j%I?~f{a|&)q!nKKLcmeg!qs}>8 z6^E2FsD2t%qfsRa;W(bI!nCJ&@d=)*#rSIEmSer0K$0 zxC6IjU|1P8f54=AgridfBRKjU!SDO$F&rAju3_vP!mq?P`i}b)BKUlJ*p8(g_~;F` z^x^&2Sojj}zQo&Yc=H9`;Ng`P%xOlUpR9tp!I(n4NqBCZN7(zU2lIKD)r1+1m{5yv z2J!U(w)P_&9(>w^;K>KikI@wf+ls)U7Iu_?Lp9h}g3TRXAJ%lCW-Pws^F^#it6o4>~zKDXfopMGGcOS8ke%i z8pwsq;+2&ZW@hI8^?VN9)otgB75dW!=@PokI-daRcU78#zI9Vl;>(v$ms0HSd(16V z+2QKi!@PX;>Q#qFWAG~4HBRU5N_Jn*hh;M7ldZDkv}Q*q)~M#Vx#b1Hw~KbWi%;ZC z@e2nM2Cpwx^z>tIw>;|M;AvFZtvwea*>~%E!ow9FSko1|DiTuenNl-as#h4zR94G+ zNRpm1muD&;Fq)xU6yBm%M&e?gQon%(r+wWao>yw;B1z=}sfyoNNw!kM>aMGkWLO#r z8inRnPDGPYDSJSu)<4kH}`L77-*n4s5Dar+z*zWR=vvMq1LFKwP5DVn*zTP&4F z=VZ-v%vE;iy|qA|0WTt}wlY&)o_C(AX+Fwc?RK&C$C z?95RMJPUDATL(wqr_^lkh_ovS5~oxgbng$!iW+2)<7!_x%icB5Kh_Y`B4NkZ3a0CB(bKltH%eJ8<|$X#zojJ2w-$qrvv zCto+Ji?TQtxwe>LPt|ehpMF|+evNum%!t&t2^8O{{{OvA>M=l N7$!{Pf=!Mg{{S^a7GwYb diff --git a/src/qt/res/icons/key.png b/src/qt/res/icons/key.png index 074d236430a1a6fba14ec80eb076b143a7540db4..ece0164f7756f00e258b2a485383d6cfe2016909 100644 GIT binary patch delta 1704 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 B3)}zz delta 1896 zcmV-u2bcJd4gL<0D}S+%3;baP0000WV@Og>004R=004l4008;_004mL004C`008P> z0026e000+nl3&F}00006VoOIv0RI600RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_ z000McNliru-v%B6CM}h}+Gzj)25m`1K~z}7#g}bpo>v*ie}Ctk`+nZ@JZVysbe5*8 zYuA@->(d;PnxKM9k@8~yj<7+{Qv*!I`^$ag!ggRd%Jf({77$a5BXdUV+>wo==zPDpFR8PD_=Wv>cqFS*1!Ls z8R%Htdz4b2dg8z*e(~S~_tkD(o96V1^UTg(kF{35uYa$vxcS~~JoeGY@9Xa$cxL$d z=brN3|3qv3-vj963Fq9V5AXZP&$n&)K<%IBUgOoX=VoSRt{w8;omAk)UVr2M@$vD4 zd-m+Td)v0{L6XFWUK~C;0{Z0t&46=G_4f~ad&@nWdL}Mi~Z-2dY<;V-ihM&n73cI#%-%+?YKKA{|iOY{06U2AQ-^P(q3bh!Z&|2@>dhg~> z+9cxK=ml4=*T0(2=SCEu5i}WNrBdJv`-7Y5$s9wLCj}ovEp-M}i=HUIYU1%zulpprC>$3`6qy{OHxGE5Dk$a)rLW zK2xjJ4j_Wjnm{Y&m0uaa@f{D)$^{exLlB0P%jJi{Fkp6e7U$fNz-S8MX$6Ymtwa1} z%XUV4*OF5Z8jW}Ek8e(1c7;NbYPI^IATU7?7;0K^s%Kzj0QF*t>1sEjb)X2eR$G)( z+<%;_#~OJpbdD1P13Y)nHsV0jFoxm&bsX!e5qghS>WzB6J_S%LmhKi*Pr-Tqp#m-y zODhA&+mthdgG^Mrs5q;hd?22d(?^_43%b`%XQFSH!AoY1roiO}*8J0W&(qa{QxL(+0WP=#D! zk&oaVlDvii38|H;T`PJ(l-MRh(|>2hnofv3G$q?(C(K)TSsYW-qqsPsx^aksG$fZo zkQ0`=%>!ixUc6fofD(wTP}f34cCyGr)7}CAFG<4qPoF0J;RELdT|K_kuf$ih_YnHWD#`s<&eY6VnJ5&Ng#F@HbuEH|~# zaM1AW(R709P^+B*1(CqK6;fH0z(LCkNtyxk$xT#O9@SfVy9GoVGy!V`SyIUgL`o5= zRR92pz0eTB0xbuT%lr^IK?{_3?jw0@4}NSE6qsE@g!}fBT1Y$4Y`qYR5O%25Q34Az zT^0*gvON)+9#RKAjT+&XpMT0&D24=I_!3I)BDF%|g~Z(+9!TlD+5jk(*)~dr$Y$*p zr9$c<@en0KvncrUe??U@8T^Igs49e3k#p^#Vlb9fj$)AvfCC4_R){^s9+Jh5Xslhp zkNq90d6d@3tg z6^j!jnuOX0a?^18pavWS%RK!r3m~$BQ;@jKl*yt5VxhJ$1Y3vNikKDzjyA59%Oqem zU7&S#`pb1846`}!Se*9)g?WX#xs0O>h|a*=2EYo&gYPhj+DGvsVwb|LCn&8lx4wOV z&T`UrN8dV>RRkWA4u3LqkRU^wPrjSWnpw>05UK!H7zhR zEiyG!F*Z6iHaaykD=;%UFfbO~I?ez903~!qSaf7zbY(hiZ)9m^c>ppnF*PkPGc7VT iR53O>H8wgmGb=DNIxsM2fP!)W0000QsV-F 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 diff --git a/src/qt/res/icons/notsynced.png b/src/qt/res/icons/notsynced.png index 2fc46b8349209fb000abd1e1ab368fad695f45d0..c9e71184c5c0641bc14763cc14ae899c98363eb6 100644 GIT binary patch delta 977 zcmV;?11|iP3iSt&87Bq+001BJ|6u?C00DDSM?wIu&K&6g000JJOGiWi{{a60|De66 zlapHm9)H^h2o5qT|Lg)D000AZNkl#J?_lCbD4pGVP<#@LZJv$ zDpdhrjk-|-woQ#fLRoYtZtBLh3s)w()^wwx@kLT=i>6{U#HN*~G!??5rBgdFAW&e+ zJeavN_j|a|M&s`fI49?j3lnDoT~|K2tvo!j*?-(ON~Iu?)$1Q~p;~quji&DB zwpVArOWs*30zi56faT5azYW0TN&zlopamB&6*T9_uEcf0=U>`-wErE4d)5Hxow|-w z&A)y#ow1FF?N9^U_|hQ&UMdZ5(NUcEn}45#FV+LA<}p+rK1O^MvG(d4lj8u4uft;+ zKqe>E#C@YdCU!-s1djrsxMP*2UAy|~AHRLoM<~iT77; z{#+$EPo$3yegq&-E=-&u04#HDIR?N6K(r>5D&ZCy+v5Q809bHuJ!Ia$SNouVXn$Ay z+1zuN3|@K&05C+3n~e)oeWtVX0^fIzEF2wq{R@3D4*+kbx}$Zom)9xd0{=z%E|(6+ zu+>jGublgUXn9&$Wt?a!8W*N|hB}Y`^l9N+ovMmC^~@-SpBc80Sp{PZj1nYgehg7r z;uuR$YGIpqc`!x`c8#G-A2+i*Z+`%=hOK@App-oP;>pb`W6~88u8-^i zgGK4IS$@vm+a58i>aBt%rgHX9klg+N;RZLtZOr5KfL7LHFSUoDhag8y&41cni2wk8 z&m~lA`%6=D<@OOJL@au+#{dWgW8CoB)Cxx6i+1AX+_aO*>?T}hmt}I9e**xZ+utOL zb3>;*)IIw>6+&~ z00Pd9nb(vobpZfno;kDo@g8viX#f&{0f7AlkHC5B4_ff%00000NkvXXu0mjfDBjCP literal 1301 zcmZ`%dr;C@6#ki|*^@#|v0Sr4(?}jl8#RT6f*Fd44c6>N<#VdBj4ijBW}Dn;Tzl=- zwpwZAI+clTCMuSIrs9K#zz-j&86u{pX|Dx=K=-o!wSVlLbI&>7cg{C+?w#`sBaXU! z32F%hLCa%k6efrW=Uwayd@yEZA_xo9Bk7S4^z6n``;kQe2OOg@=@4{&69iq%g&^xZ zh;Je22P_0lav+FQ2tjMIZXT9KL(qc#jQy-AKZGU-)wIRGep?WKM@VVp*85SoLMq|+ z>}yYbweUKHCgF*gUeV~UgxB`=;D+^>*F)?3dOfvpfIsG;PZ&(vN zIIv!+20W*v9;sHv557jh8h=>BHVg-9by#tSvvgnRt&pRXilFAsgtCU%a&btzoYJF1 z%etJ^;#!~9_AsReEs>rq5CA5$wZl*96s8vn){2_;D%ByP763QbiBtOe4{CeXH#%Wh zohYcLA*5CmB9v?uN&v%nAPB8_5mr$La$s>q&%RoGQB^Fj`YQ>1a_I|-;3ZkmOcb?k zkSf=zRRNz#UU z-V!2_qB`VZD(xD%Y;%1hsa*y}MK`vDHn;hUnm{wYvTk?7%WXn&_|tlZR32Oy`}J;Vomd`Ttww-VBI9)Mph+&HpZZ)8oqPy6sW&t$o5vK;+vPMY~d z)eY`@H5@%;NHC6HnE7zxqbd25IjXCNrX7eG)H8=hDWel)rFw5y4;Ai@8J*yK{QK;X z{@g1=j$!n?aV%?UnmIm|G&yr%`s0q~j(FoZb8M3Jb~;X`{HsBkR#QjL#w?6%ovws9@CGMe4fJX>-6>Su@Jj@fRp z+m}|GX9um;JGNO9)3y5)7YJ{J<>pCvKan|% zQ?v|rPEO9xNLPY@n!>8tML2Vny#>*VtIBH)+K8s)R~4cw4~o-H;$1_J@0)y4!@aP| zaaCdRBj)3(o~5Q{4HVtFS8$k7pX#_A=yvw3e&lB5;6Axb_+Iz?__;-li{k3?^QuSU zFXnH`o>cPPJ@Qz@aN@e1-QBO?f!-CXIq55vlN0aWO-y=wOuIn46$gUis8{JjSJQf#$!4fd|2o{b=iU39k#S%zZtoIP9>py~%St*%mKmNZU{o_dap zR6bbF^4Dk%s()X}v)@lZ%UM2ve;Eu#g76djt;ykgY~UhzYMp3KL7#Ah&0x?97E;hl zT;pFb=o(!q=m3*g4F-+kFa=dHh_U~<@tJzSFI1aK*6zU@v<880@uQMwwQ|8rT%jch zbXU}TlA{qUp+7iBf3Tf)^bzlhfJJH?XDR3djtKcxd@bjw4a33q{$9zmn{tji@FF;{9jK)_dW$Xe1wTQ5@j1QuA_j_85vd8x zrJ!kiE0$lRUSTQ)ouVDR!Ju}Wr=Ty$F;a(Bo~59@!uNIgoHXpa)i6B*#*j}gxjE-x P00000NkvXXu0mjfas;wm literal 7304 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 diff --git a/src/qt/res/icons/qrcode.png b/src/qt/res/icons/qrcode.png index 015078fbfa07930a28340b04edfd0a705f351681..a8d97174b39197ce4f457640f948212edf109451 100644 GIT binary patch delta 195 zcmbQt{FZTogefC40|Uc^<&WnADaPU;cPEB*=VV?2IcxzwA+G=b{|7Qd4_&SUNhf)` zyD)UH%6d%9maD(R%E~EaxWnYc4WLwlr;B5V#`)HZ8$}ruIhZfxO!&J!g_&dZgH8G2+bXOGqI+ag<$m~i#^yFQXD>SHfAXK-}&*q z3fqb^+h+?WoNpFwW6R>HPbmIw%@`25>OqvR2$O=L1XrBQ2Zpmn-z&cfOVk3Lq*~${ zQIe8al4_M)lnSI6j0_A-bq$PljZ8xf&8$p;$XMIJ*vh~_?5@>06b-rgDVb@NxHY6V TG!^jxbuf6k`njxgN@xNAUhH-2 diff --git a/src/qt/res/icons/quit.png b/src/qt/res/icons/quit.png index bf5938605f20925a1044212dd0196ed5224677dc..0dde6f395c07349ea421f625ef1948a1dcb598cc 100644 GIT binary patch delta 2093 zcmV+|2-5e367vv{Bnkm@Qb$4nuFf3kkzGB1^GQTOR9M5EmwRke_Z7!KKRfnyY@FD^ zI1ij+oH&rs1`HpZM5pTX_MAT`vZi!X_~51G;LB*H`Wb7 zRMrOq3TiQG*OXEqKqzSf32{QmizIgZ_PxLT;TvXBJEJ|)(bd&Gzu)(J&hI>a7iN)v z(~m!OC%{3zy&N?NzF4)zas1)+^Y&Pa3)&e9eb`@G)@WVPbpG@`D?eTbyf1Da{2c+6 zW~r3cS9cmL;!;FS+g|!M1bzgKlV(f%{7oCBvvFzQeK@{B!qM9xaYR6=MCnZsvUxo7 z9E<9m!>S04gKf+05Lg3^F=+Q~dO})%H7PvL{t$ab`NM|<$5%`EXciJj1=u7?1VRg* zd)`&)^@}ABJ|vvWnjKLHje%|Hj5W7x=YvKkwEuF;GxEvh_lUHb!JuiFD$4ofcfTe% zJQQ3b2^8`^kGvou}fcnp$UNyw~~+& zj6zZ}ubd0L9cX6j;pp}LyWIZ9Dxao_$y6#Yaiqk6Br(@5Th5#mezU!`Y)V%Lu&Tb2yuhH!NkcqdiL^Pbf_S%6xTXe*Q9v!$+j@;XyH;PG=eBvqzG0SILz< zT_TfC?JtHMqj2^cRZs+fEqB09f2p(iEzbf*zdDPG$mbIlvqDwi`^3(l;rd{I!O|>} z5?L`{K0P`jrqZd_KG+7FdjR+(U%VDVOF8VUu-Th;Ih=G4^pP&GxebT|T7mBhU@e;` zUk*=*SSH;%1l#+dJ=exKbCDH7C2+x#PBne5sg>*9m0XWZk_0k;Kw8%n*Ve za(8$_2sP6hhwUfe95cZ45&#GRwGgtxd3!3^teQ=gD{B@JAHGgRPb{r~Iss>yo8#dz zp{i_$4`qSc4Dgb}TZiLMuT$fgi<&3oNg$znUv4kK^z^e-dwfF@ zUil}qKLZ>ol%$0S?8u(E*$n$iB9rps+JNZMG^TXcVnzmQI*GH9F#i2}FeVe_Rr=+6V(jVxhpsyk1-et2Y&;B zKLEeF9RjaqJy8@0t*EVcC9iaf5lzFOCyY^FWSG%xa`Pgi+ts)$=}JTig~P#LK;Sjt zrP&DV%x0U5e8^LjaX?=W#6+ zrzbKM+zNr$ffsYj@SuGTM^hR zKNV9_V#>~WOgiZFhBlz8W|8a}?h^(n_oGRl(V{G`vO4MSzk0JAGkQmy?u-B~r;E6w zgzKTJ!Oa;pu(#BKanFqrUj5#>W6gj6M}y&=Rxxm`|E9N=8BaSHc3o{z<`6%Pp| zlUkQP)Al#J*XJ~jj)>G$1dHyyqI+)xoOKPd_u3T^izZrC!L}xibD9O(Q`}bsyKD|e zleg5xa8Eb!oFs{r`4bQ=&|Mp`Zx@n!#9r_^fwGFn?FJLgzsn}G`-L*T#+@LOKi zNzxMD6Y!J7$j}XS>rdsB+aa{Hx?hEV9e$Pe?xMm3YBi*Q&jh@nMkh~?Iqk$3E4I2h)yiMQX=a_B~gEig<1{Qc$waqg2XO*iUy7=zW30(XbKQ{jb X5P4gHj1&RC00000NkvXXu0mjfx`y%4 delta 2239 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 Ye7z6h77@9cLfG zLP3Z_L_pjKiWG4`fA&CMKc_2g*MHUZ{*aYKe z?CtI<4zpg5u^~3fwlwPAQcu@czv`~(6*FVMt@^A05yS*BaO!Y43Ic%wZ=Th)6;|GV zTHp7YVZRfLPXniqo#xE(GnB4GF_cUqlSm{0f@&t_xWoCRA1je_8Yk?D0|+T^ zE1;5zTS~|_M7G@Q*r_OxGck`^(T`8SmPN*=-~a&fVcC7D>h(T)_SEaIq6*r)Z8jdO zVwO-<35WWIY6XDWWRBVPJTn{JxpeJEFS?<46cAAq-#8ps-Yl}dD7+cexpS|7eenLN z!!N#os$wyrDPg8)%2>{j(xfLvNaL~Q$yjnmV&u;Y7t5jL<6ez`;fQz(1UB$y1i+h- zfG?}wxj+cR!LjGjlpDu6qbXupC%?CziQ|+&wdqF*v;kPT_AP&1xrzf20W$&xNNmzF zwjn|=!@(dZ?2bCd21FH$8P(K(0vNRvP{;{gU1i~`3#?tg(L~vD)P`^^8`7MVkj*T| zh~=~^>Yb{LA#|)j%4|MZVDa)dEM32Wk8wxj>;aJ_?yxBk%nTikT22#|Z4$Mn)F`Bi z<%q@1^6fh;T)xWs-P zwcVd55wN`>w)!?i6ewB{3WO}e4> z87od!qHs~njJNxP6ZeKJ6peM|bx}_bfCvtU7f*0u@)W*-nJH@K zm*)?(q#We$`O{|yIPa)J)u`Z0s?ebd6`i7kcb;3n-D3W|#eJ{&H~lyz&@IgB0ssI2 M07*qoM6N<$f;g2ZasU7T delta 1305 zcmV+!1?Kw53FZorBsm0UK}|sb0I`n?{9y$E001CkNK#Dz0D2|>0Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}olE*Jm z({m@2INgvbxKwpfea?4&r|MLRnK5lEzsx}dF+mKRIvkE1k0&RyjJ5SuR^NZ!nA)bF zc47X7=hRE5IDPCig)2}DB@szPB2glV#KrmV7=F-W`Tg~$3xL4!x#M)CL$pYwb{L67 zizKPXN1r)5waJ+P3{X?XI&PdRkud3_H8>g%20(zMiKun-Z3O}mCDpy^!2n=2z>WfG zm-O3n$EkP;z{ThTWsV0%WIQ!oR7d{T5@E&KgXpFjE58>oWT|2AvJs+dJo zRs5lWp;`iepkKqVp=J9Njnc;!Vj0k*F z_Ro5}9}Qo65sj&KoDv!XmUQxa`lj4(^r4XYe|Ds4YbvEDOD_yL^T5-w$v= zMusPW*sdJ=rWD0TV4Oj0L)3L36LG5q|#cbMAcgHNMlqQetCaVc!CxwYNPGZXbv=nagVhOcco2 zT3TXj`U3Vuh$MeJHvf;NW3mY&*@YF=*K(2mjQ*R}uDdP=LLrbDIH@b2lZXQxf)_!| zSaq@*gbQM3yf>J8UCf>X>Z7zLQUHzs_xD-zHgIFp`4@m6_aVP`Zh7G+nf6sYcV>VL zK<0K|wUw`^d_~t+6h6lu3U_bZVe#DZRCZ^&j@u6nK^T7&Lk7iwUf!e1E6S`SYUJ+p z`I`YC?dS|JDo2dU!wkwH{k%_=S9G&3o9W>U?q_+DwOYRzFl+!u<%nT9r008d^NQ8D zalJSn{_83 zhw?)Via~z^F=D+~o5`M=X|XuG%gM8x!WEQRhi=xb)hPOm%EMH7b#MR#a5yr_@Xk-Z zJgZ@PdBwuY{`W|`O=($qHp1N}H9 z(Chhz#{d8TC3HntbYx+4WjbSWWnpw>05UK!H7!*zGc7VTR53O>H8wgmGb=DNIxsL6 z-8#+y001R)MObuXVRU6WZEs|0W_bWIFflbPFf%POHB>P+IyE*rH8U$PGdeIZXMloo P00000NkvXXu0mjfnFgoNFTA8<82B$Z=SV zg_wiaF&VF5X~{TQb+d6CuVQ`480ZSrM7~_pvKABZ5Z7=6f8h?YWZY@ZnTQ|pA@*Wx z$#~Rx24oe!#Y@%3hw)pxhh3oXH{`mc#xi9^+q z@0W~=|FL%yxef<0t@g)2UF1x4+?kT`cT2wjgZKz1u>;$27N3@k+wD}fQ#T(M@HUR% zD&8p>=Z7iD1pI^*_#T@|#{Hq9HfSy$<7b@0=OyD_7qvf7)3~K%?0=f54VsQgIEPhF z+SM~I=A|X$bhpn$fBkOk5^}LN<-+A8W`MuBc`~AN6`_3EB<65aMUcDFq zRM{*hpHywxTC{*;Wg?ez5wlaK>!J2#V>=PcObag`V13m5Dwl0n~KH}@>j5J z6g6V-w_*J75rq{9yyCeJIQ$A{=drpM!9!Xy=p*PVi3&X2%|7DE1gDWa`H6?bGJ`y!f(vAh$Vt|B=94qgKg zI1MLIISe&paC0&mrlXAnZ*-w!5yH_C5Kbta!mkq0Di`gpAUM`S$UGwr>jv?{1MHtf zPCkO|bvX0@-2MQcXW;*GK`4G1ju{OI_P4-$2m;s$@Yf#9F%a{}wY3Z8 zb8SeKJ!+S)8<|XSx>Q#eXJ^OgQNg2+N8Zc{Cq8hWP|vqZB~v^7 zUu8TwPqB$jVtono7ZJj)l_T!gY!?y^Om(-bC|`%`~&!-sI+z|D}t&ySt)7h#FVl z({rV^i-(7Yo13`+1T|W#8|s>3%@tUb@Doh;^ayP=%5L@fHiPnj*L!L=NY&|z>KixG zXf$eK!Z1&JU2aNh*2?UQIy&*iyT3bVDG&&_hjex@sJbSbwi#LPSGI@@JY#05vt)(( zh4jpf0}>idP+U~8VKc9!xa=yYw4|w2Smft()GwYD?`zk!o1fn;&}bWIb8yVg%IbaW z)ZNj0VO6%|O0pz>SCvogeRf)5x^-zzXTPmOH^Y<~a#o~Y5v9rSQg6M;I9_{eR;9qu zPJhB7UCjR}mdCTJx_P9ry*ntABd!W-kMh>tqEVKVIN4>z=T-aLHKdMom(*s^xRZ zN#|E=Tx);)uSdfRtP0jUF-E23e<$?auWO_&5@x+@on$pPm;PMFH9d29W<0HsTevoU zoB86er%I+(jTuW2c)%Vnb_yGhYZv%V@GD(P+cVLp;`;`s%D;#<*2+<6G@jP z*-TH1D<6($o$%85e)BlXv$1|}Oqt*Iw7#dJw<`UnI|FDv$;t;RPlmd2t`CI`FE<_R zYR#imMMd1pA6nw08Cwa^J9K-bNX>XFxfIl33;SSq*I*B0w?Ge4U@P6gP>;^g+iGZQ su+7+z1Vfk3Fs9R2_8YhSN8l@T_x23^e}Pv-R3H%m+k(q1+v5`T4=re^r~m)} diff --git a/src/qt/res/icons/synced.png b/src/qt/res/icons/synced.png index d8a735749cef549030d67ac20beed05bfafd8668..4d7e0e88210c542421e80e98b683826e7e8512c0 100644 GIT binary patch delta 768 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 IM6N<$f*YKb@Bjb+ literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@aY=J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10A}zot#1%+0w45d$y<_4a z9s!L7D*pffzmV_0I-o`JB|(0{3<(Yj?*-1UZwN5BzrTNefq=vQ`|k}B`U4u)pD&oN zkek_D4phpR?NMQuI%^OEalYaqsQ5+kVXn0xSs&=5*b1T6=ue?eFzo&OyQxmRP_0Qyh5M=0J_O^9}pc z*Vg>ZKY8?TYvynBrD7|xE;IFJHeTCu;Mx|4@T|td1kDRG#4>!jpDbh5V?N#R>fDwC zdovr^FEj1TY&>~DXu+)S%h`c?tib|6$@h)NMe?-v?BC|WC2^zmS7Czu>-I*a8~seP zgSc7Pk2O9xV6dV8yYqo*FWejSYz){0n3Elxzy5YO{dG5ksR2U)^X~&+1eY`ZX`b}% z!JV{Ujps@eEH+zqG#-!RmYHv)`{7Nm50n18@FR@u+vhXyX^cD|JA*Z@v5u|6`4{H{ z*;oC{>In&K4Qy!)83{~39DX++P`}eJGv~*FglWw6s&C_&nD1AL9$@cdte3E0nKSA8 z`Nm{@whQ(yA_e(2oJ-^@_&C_+F?KaBXQ*LX)R6Lk^MU;%3x$c)I$z JtaD0e0sxKCEUN$j diff --git a/src/qt/res/icons/tx_input.png b/src/qt/res/icons/tx_input.png index 0e4b47ef68bbd65746ef08bd93305df6e1df339f..0f5fea3a8456c73a27c2f0f3d01b3bc96aee389d 100644 GIT binary patch literal 2152 zcmV-u2$%PXP)w~1f-b>gA+Cs{ekdCqg5_wVzb?}(~$Ghh34UwhN`OozbC2UV+eG9s;Qo0JN@Nmv-da1Xs>9)M_^o-XYYqVUI$2vm*5&4=|hYN`@ z=Ifq)RHQ{!w|RBAkf>_&1V|>68${$TuMVrY44kFdi(deoCj0+bCX>0(i-YM-(C71g zvBB-J9PlD=SVYdL>P2hqMaOa8>F(~Hs5Fd5qh`&TH66iVaD}R_0PY0Vsp=y%*!MV& zb3ZWBNLi>5Kvf^Cqud2mJtQIr^ZERry1TpIb5p1^-F>_CIa!%EJUqOrP$)bCJOVrn zEO!~pr|O9NI?4hF@HrRuSFN?54~N4iY2suA;P~<57cO18^pAKv{tH0T>Gb2kuWFU^ z`q~}Pfwua|A3pas_JP)YXC%KtxNmk zUMjm0yLRnbX^eS^V$;7X7z}(c)zQ4b}6F^nxtWQKHRrP5v zaky>)A~Lyj>C(S@sjN&S66rC<8~_&IDBp3MdjNbs-&`$VLRG&T4u}8kC6@9iP*VU^ zz1Z2=S@2RBKwn?q_eJE#vt&;IPsU=gXG*^x6OrAj8UXyN8W53yi2QSEYU-Kp?ru-b zAFc`DX3V|pwX#Sg@*@%X!7SNts%j_}i%riDy1Ke91G92x*9*MNUQ~~+ZA~I3SrkZRvyHP|IdWjvZ$Jlgt zcRLifrRPLd-At8d5R1kBV2s%YOx9c01NF6l($7&Bwhit7@7c2_t*T!J#u_PK0}JFS zF3Be-_ES^!I4Ji4qrl3!3{~}x1_A^i7K!gn;TjQ#^dq7?bxwngU{!C z4p?24eYc407m>%~@%W)e{5MK@D(vPJ2&7V}b}y9;4Gq2FIL<@BUv7}S3>fa~>w7vH zjb69H%VaXQXEK>PDSin}!w*FP+-!##W9|U5UMd_K8p`(c^lV(TXi)-qv?^PG-Pvq* z3iu&FI-Onzq=8iwH%cZbE|bpzXM@4u?oFFE&2(_abkr)_*4E}}I5YtHeEtch3lO-xL9Y5~*7HS+Q6*zzV{O~FZ*O?2JuN^gm3l!$zEo%V{{Ts2Ofr|ty34zi6i<%Mi^zEqd9SqT+F^|8 zP}L7nY-t_F7*9i(s$TR`9%c&gN)xWmFDrfSt=zPzOgEV~y*iklaypK4#;day@JFu> zrUfv@xEcxGPZ(o{J^LspLZQ%@s-E}iZ~=L}tE=l|ZL_(VvFZv00vkl+r+}-qL5n!2 zs(r>7PZuM~-0+^@@bK_$g+k#QA`(&6>a}~TctJ!4Pn|k-u$k9tYuyx;bUM9JM7FBx zW{Rt_g+hU2s=6OYZr!@IDaUfv)OA;Q|Ni}Jfv=Rrcz`Bcwyt6vcu7PuB66UstLs9O z{a;7jm!-=j5{VB4gTd8~4h@3XYj96<&LZQ&> z4F%(Yh6SiaB9T}e3niR50000757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!Ysfi#1%+0w45dh{r~@e z!ACt&phkg`AirRS1P6up0_WE^1Q^`k-#@?LpY((EKsm-FZ+92LM_X-o0Xdun9+AZi z4BWyX%*Zfnjs#GUy~NYkmHj@O9Fv;v)cv%0d{`UQ;)dIeH5n4aAK{hgULCV^d?;{lUw%mb?rfilzH ze&@DvHQuoM-R;Kh@ApY|ockS?;2U$ma)WFEUk=+I=IF-UNBdY`ylc!oaO8m50>8WR z%(?IW3CxhX!ElDxhV9&Z3qFIofOpjeQ-ZuSmx73|<+Th?gS^dV%)Pk?=rPq2*NBpo z#FA92s%>CwWneJPU@tI~kTm4xr(~v8;@0py RmlYJ=44$rjF6*2UngFn#!xR7j diff --git a/src/qt/res/icons/tx_mined.png b/src/qt/res/icons/tx_mined.png index 4a71f25c9730b4349d3afe5ce88b1fb5335ffe5c..613f30fecc041468d7ff766236dc509d815f7aab 100644 GIT binary patch literal 3287 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 Hu0mjf+T;As literal 587 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@aY=J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!Ysfi#1%-tW8xqQ{r~^p zil>ncs8gUM$S;^dz+wOW_XY|50S)WV7tB{U-ulfOD94!O?d~G@XshimAcwQSBeIx* zfm;}a85w5HkpK#^mw5WRvfpQuV^Y(dy8l)tQ0Sqji(^Q}y|>dG`I;OASf;y*h#vjF z|Jsa%Lutax=Fao9DY0GfI-q54P>X;Qha#BxH*Mi18SYozsXk(J+F}lt=wK6i*HZZm_ lFqmer7Z`F#8glbfGSez?Yj~c^x*n*3!PC{xWt~$(69Byj#83bL diff --git a/src/qt/res/icons/unit_dash.png b/src/qt/res/icons/unit_dash.png deleted file mode 100644 index 1c36829606713f18a5077141ea485acf47089688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMMNb#U5R21qFKzT{3Y0kZ z@&2bqmxq@g@NVh4@nVYeZ}SfGgmQ%!k6bOhXIIY_;3#Fj_+W~tiJ1gTP~+*$4@>S( z_@dfp_x{s|5A*(?wtSzsK31EfskLOP3G3Mxr}JuN?GAH0G3QoC^OfUV7Dgsr{~S*@ zI_viTKR7X}VbaV+GleRGe=ap=e|LN~fO#3b-?>HDPF zr^Adtub#Os`TgxRi`EN&US~IN?xF{GV&m@oTCB3HFDdSeN?_sBqtiD|uGz8o-!=17 z(gCG4u~)wUJ*QgY8c~vxSdwa$T$Bo=7>o=IO?3^-bPdfz3@xpUjI2ydwGE7|3=BfH g&-sm_AvZrIGp!Q02Gv(8?m!I;p00i_>zopr00uv_e*gdg diff --git a/src/qt/res/icons/unit_mdash.png b/src/qt/res/icons/unit_mdash.png deleted file mode 100644 index dd75be212982cee1bc15d3540dba8f96b9f0990c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMCr=m05R21qFYWbmb`)rP zcw9-y#WQ)L^afr<&EU+$dV!Oy60FwU4Vim7t|X=Biwm&qW!&iTSU)1lMZmSyB>SP- zJQ-fM4QIA*;Mr{a{>>Y{;J@3O6kd3@&D*s=?(L-D{5TnH#U-1LJyQ5+#Zo5o%H_A$ z;W?GO=Jt=9c+YQp>vG_M!bNshTUJ}w4=etxEn(Zf^wp&(mK5h%-wGFSUbD5>ynI^K zjPs^Gr)CSDadQy6zO_g6?u)Z4Gk0#Vd{?&kcgE(aA%DGAoptrEKghdpQLg#1ty>D0 zckKy%KKao;Hr401oO-l(Obsr3a&Nb=_hjBvA^Tr5pKVR~*%z`o5a@f=64!{5l*E!$ ztK_0oAjM#0U}&mqV5Vzm9%5)|Wn^S!VybOmY-L~&vVG2P6b-rgDVb@NxHYK0QgH`r OVDNPHb6Mw<&;$U-p}Cp> diff --git a/src/qt/res/icons/unit_tdash.png b/src/qt/res/icons/unit_tdash.png deleted file mode 100644 index 46f83509c7f35097904cd28d43632689b2136932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMV^0^y5R21qFYWbWb`&}K zF@Cecq9qrU^b@3=bb>Pz_qRS_eI(7|^VoTbn02)@FGth9hKMDfxOH@uID}dodR&j4 zJ=L_kDb>#~=H1Re?fNYEqctwYkpyLTBmWrRDkOOa(U03^>wyXXdPw0}GQ6 zN8EoEwQbSsf8}>{uHNzRb-WvKHbQn!h8RGbAiG2;FNOQI z+s4@$uXk_!zP)7g>1{>7qj%mcU7xzcKf86g#Et&E`wabN8&i&#O1?XDZb)dn&c&!ZANn_}1$tMt#5JNMC9x#cD!C{XNHG{07@F!DnCTjt yhZtH~85vobm}(msTNxOHY@hQRMMG|WN@iLmZVjrhRNR3Y7(8A5T-G@yGywqS47DQw diff --git a/src/qt/res/icons/unit_tmdash.png b/src/qt/res/icons/unit_tmdash.png deleted file mode 100644 index c4091a5c83b50e9053609339fd8516c394c392ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMe@_?35R21qFYWbmb`)rP zcw9-y#dD!+-T^a@pkyZ&>S>zmdcY*kC2Qm6?H3yqUhsCfO4T2{q|~Gl$Z;ZS zhm3zwOGHFkSE|Ib>hHI2CJOx*Kd!*h)EE`Cp8J)dzUB9KXIBb2T@v23V}e!oFU}2* z1Js|HOQoI3+97?ERXQ&B_Qmk-b#+l$YztN_U$C5Go^C3S$_`!8>(>^Uq(ooX($DO> z;oZqr+pAX+7EM&h_cD-Oy8rR6X&VOd^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMS5Ftm5R21qFYWbWb`)uQ zxI9uIP$_Go^aftVX)CvExbIZNym2GnjAPv%x@F(Yqykv>GH&#EDjyN$BB;W}Z6p?H z*10>0>vRqC;hBf$l_`?WOv||q6TN(4R3Ewt^LX=oLCie zp3Us*rJN<}-X1&m{@paLg2QRq$?vZpyA|^_ti}7tw7J|rHck57)wg%cg0;==uV-w2 zx{E{Hd(SP=f~*h80ZQd!mzyTBPh6GkZxv%la427qdbYeY#( zVo9o1a#1RfVlXl=G}SdQ(={{?F|@QYGO{u;)iyA;GB60)KIb=zhTQy=%(P0}8dP7Y RxC1pXc)I$ztaD0e0su3$x^e&j diff --git a/src/qt/res/icons/unit_udash.png b/src/qt/res/icons/unit_udash.png deleted file mode 100644 index b270724eb1b16012f3ef776a5b82ebb5108dfb81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMb59q?5R21qFYWbmb`)rP zxSX>?LvZ5>-WzQKr$eG{%y%kc-nfx(#<6Y>-Lh|GjII}?1-e82H7<1(0ctxNwL?8` zqO)J(%>3@Z5^48t&QDzUKTLpSXO7fMu3Z<+V}E{n7$dB>QtPPWvtlk8OVh4@e&;ud z+VVf$G2u#ky7v<5zY@-OXS-XSJp5-}*N%<3ZzPUq_#Qv7 z_HX6#=-Gug%P#Go8d_IKUN4iGesZs6$BzAuD|c>} zDt;w*b<3Q}Z*MQ9ZFP*y*jLA3u{hq;=EEl`pqEukTq8%H00)|WTsW()}Z=I#T}@D!PC{xWt~$(69DP& Bx1az3 diff --git a/src/qt/res/images/about.png b/src/qt/res/images/about.png old mode 100755 new mode 100644 index 68e11999b2b072482532e1c8407971326f892895..b0e2311cc787e5c9043f9ee20287a1afab574507 GIT binary patch literal 60639 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�UQL0r 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 FV1jHZuc-h4 literal 29116 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 Mo4i=Lh@szq13n<{fB*mh diff --git a/src/qt/res/images/dash_logo_horizontal.png b/src/qt/res/images/dash_logo_horizontal.png deleted file mode 100644 index 961a8ebfe6d57606e3eff2db03b5bff1327b4233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7194 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 QGxGx|$*IX!%9w@z54-gYasU7T diff --git a/src/qt/res/images/splash.png b/src/qt/res/images/splash.png index c81fd7794ada104d23c20016c5aae8616e7fa893..b0e2311cc787e5c9043f9ee20287a1afab574507 100644 GIT binary patch literal 60639 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�UQL0r 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 FV1jHZuc-h4 literal 141339 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�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�UQL0r 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 FV1jHZuc-h4 literal 159154 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 diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index b3be32cc6504..8ff8dbd05dbc 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -438,7 +438,7 @@ void RPCConsole::clear() "b { color: #006060; } " ); - message(CMD_REPLY, (tr("Welcome to the Dash RPC console.") + "
" + + message(CMD_REPLY, (tr("Welcome to the BTX RPC console.") + "
" + tr("Use up and down arrows to navigate history, and Ctrl-L to clear screen.") + "
" + tr("Type help for an overview of available commands.")), true); } diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h index 07281c35a33b..1e873a1d5422 100644 --- a/src/qt/rpcconsole.h +++ b/src/qt/rpcconsole.h @@ -90,7 +90,7 @@ public slots: void showPeers(); /** Switch to wallet-repair tab and show */ void showRepair(); - /** Open external (default) editor with dash.conf */ + /** Open external (default) editor with btx.conf */ void showConfEditor(); /** Handle selection of peer in peers list */ void peerSelected(const QItemSelection &selected, const QItemSelection &deselected); diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 9f3fc57ebc93..f73012348e1a 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -53,7 +53,7 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : connect(ui->checkBoxCoinControlChange, SIGNAL(stateChanged(int)), this, SLOT(coinControlChangeChecked(int))); connect(ui->lineEditCoinControlChange, SIGNAL(textEdited(const QString &)), this, SLOT(coinControlChangeEdited(const QString &))); - // Dash specific + // BTX specific QSettings settings; if (!settings.contains("bUseDarkSend")) settings.setValue("bUseDarkSend", false); @@ -855,7 +855,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text) } else if (!addr.IsValid()) // Invalid address { - ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid Dash address")); + ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid BTX address")); } else // Valid address { diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index 0a58998bd830..e4a8d3f3544c 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -31,9 +31,9 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) : ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book")); #endif - // normal dash address field + // normal btx address field GUIUtil::setupAddressWidget(ui->payTo, this); - // just a label for displaying dash address(es) + // just a label for displaying btx address(es) ui->payTo_is->setFont(GUIUtil::bitcoinAddressFont()); // Connect signals diff --git a/src/qt/signverifymessagedialog.cpp b/src/qt/signverifymessagedialog.cpp index 67716aa5ddcf..fef03ab9fa57 100644 --- a/src/qt/signverifymessagedialog.cpp +++ b/src/qt/signverifymessagedialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 3312bd134167..448611646ecc 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -33,10 +33,10 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) float fontFactor = 1.0; // define text to place - QString titleText = tr("Dash Core"); + QString titleText = tr("BTX Core"); QString versionText = QString(tr("Version %1")).arg(QString::fromStdString(FormatFullVersion())); QString copyrightTextBtc = QChar(0xA9)+QString(" 2009-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Bitcoin Core developers")); - QString copyrightTextDash = QChar(0xA9)+QString(" 2014-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Dash Core developers")); + QString copyrightTextBTX = QChar(0xA9)+QString(" 2014-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The BTX Core developers")); QString titleAddText = networkStyle->getTitleAddText(); QString font = QApplication::font().toString(); @@ -67,7 +67,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle) // draw copyright stuff pixPaint.setFont(QFont(font, 10*fontFactor)); pixPaint.drawText(paddingLeft,paddingTop+titleCopyrightVSpace,copyrightTextBtc); - pixPaint.drawText(paddingLeft,paddingTop+titleCopyrightVSpace+12,copyrightTextDash); + pixPaint.drawText(paddingLeft,paddingTop+titleCopyrightVSpace+12,copyrightTextBTX); // draw additional text if special network if(!titleAddText.isEmpty()) { diff --git a/src/qt/test/Makefile b/src/qt/test/Makefile index 09cd874b1157..ccb2a782afca 100644 --- a/src/qt/test/Makefile +++ b/src/qt/test/Makefile @@ -1,6 +1,6 @@ all: - $(MAKE) -C ../../ test_dash_qt + $(MAKE) -C ../../ test_btx_qt clean: - $(MAKE) -C ../../ test_dash_qt_clean + $(MAKE) -C ../../ test_btx_qt_clean check: - $(MAKE) -C ../../ test_dash_qt_check + $(MAKE) -C ../../ test_btx_qt_check diff --git a/src/qt/test/test_main.cpp b/src/qt/test/test_main.cpp index 36e926456c92..a7eb2d20f207 100644 --- a/src/qt/test/test_main.cpp +++ b/src/qt/test/test_main.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "util.h" @@ -35,7 +35,7 @@ int main(int argc, char *argv[]) // Don't remove this, it's needed to access // QCoreApplication:: in the tests QCoreApplication app(argc, argv); - app.setApplicationName("Dash-Qt-test"); + app.setApplicationName("BTX-Qt-test"); URITests test1; if (QTest::qExec(&test1) != 0) diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp index c8598e46482b..e983eede0844 100644 --- a/src/qt/test/uritests.cpp +++ b/src/qt/test/uritests.cpp @@ -13,54 +13,54 @@ void URITests::uriTests() { SendCoinsRecipient rv; QUrl uri; - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-dontexist=")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-dontexist=")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?dontexist=")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?dontexist=")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 0); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?label=Some Example Address")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?label=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString("Some Example Address")); QVERIFY(rv.amount == 0); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=0.001")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=0.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100000); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1.001")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100100000); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=100&label=Some Example")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=100&label=Some Example")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.amount == 10000000000LL); QVERIFY(rv.label == QString("Some Example")); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); - QVERIFY(GUIUtil::parseBitcoinURI("dash://XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address", &rv)); + QVERIFY(GUIUtil::parseBitcoinURI("btx://XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address", &rv)); QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-message=Some Example Address")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-message=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000&label=Some Example")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000&label=Some Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("dash:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000.0&label=Some Example")); + uri.setUrl(QString("btx:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000.0&label=Some Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); } diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 5fb1573edcf0..606fb75ac8cf 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -282,7 +282,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco strHTML += "" + tr("Transaction ID") + ": " + TransactionRecord::formatSubTxId(wtx.GetHash(), rec->idx) + "
"; - // Message from normal dash:URI (dash:XyZ...?message=example) + // Message from normal btx:URI (btx:XyZ...?message=example) foreach (const PAIRTYPE(string, string)& r, wtx.vOrderForm) if (r.first == "Message") strHTML += "
" + tr("Message") + ":
" + GUIUtil::HtmlEscape(r.second, true) + "
"; diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp index 968391a73635..acb858990149 100644 --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -58,7 +58,7 @@ QList TransactionRecord::decomposeTransaction(const CWallet * sub.involvesWatchAddress = mine == ISMINE_WATCH_ONLY; if (ExtractDestination(txout.scriptPubKey, address) && IsMine(*wallet, address)) { - // Received by Dash Address + // Received by BTX Address sub.type = TransactionRecord::RecvWithAddress; sub.address = CBitcoinAddress(address).ToString(); } @@ -129,7 +129,7 @@ QList TransactionRecord::decomposeTransaction(const CWallet * CTxDestination address; if (ExtractDestination(wtx.vout[0].scriptPubKey, address)) { - // Sent to Dash Address + // Sent to BTX Address sub.address = CBitcoinAddress(address).ToString(); } else @@ -182,7 +182,7 @@ QList TransactionRecord::decomposeTransaction(const CWallet * CTxDestination address; if (ExtractDestination(txout.scriptPubKey, address)) { - // Sent to Dash Address + // Sent to BTX Address sub.type = TransactionRecord::SendToAddress; sub.address = CBitcoinAddress(address).ToString(); } diff --git a/src/qt/utilitydialog.cpp b/src/qt/utilitydialog.cpp index c0bfc47c41b1..2f57d17b1c63 100644 --- a/src/qt/utilitydialog.cpp +++ b/src/qt/utilitydialog.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -29,7 +29,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : ui->setupUi(this); GUIUtil::restoreWindowGeometry("nHelpMessageDialogWindow", this->size(), this); - QString version = tr("Dash Core") + " " + tr("version") + " " + QString::fromStdString(FormatFullVersion()); + QString version = tr("BTX Core") + " " + tr("version") + " " + QString::fromStdString(FormatFullVersion()); /* On x86 add a bit specifier to the version so that users can distinguish between * 32 and 64 bit builds. On other architectures, 32/64 bit may be more ambigious. */ @@ -41,7 +41,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : if (about) { - setWindowTitle(tr("About Dash Core")); + setWindowTitle(tr("About BTX Core")); /// HTML-format the license message from the core QString licenseInfo = QString::fromStdString(LicenseInfo()); @@ -62,7 +62,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) : } else { setWindowTitle(tr("Command-line options")); QString header = tr("Usage:") + "\n" + - " dash-qt [" + tr("command-line options") + "] " + "\n"; + " btx-qt [" + tr("command-line options") + "] " + "\n"; QString coreOptions = QString::fromStdString(HelpMessage(HMM_BITCOIN_QT)); @@ -114,7 +114,7 @@ ShutdownWindow::ShutdownWindow(QWidget *parent, Qt::WindowFlags f): { QVBoxLayout *layout = new QVBoxLayout(); layout->addWidget(new QLabel( - tr("Dash Core is shutting down...") + "

" + + tr("BTX Core is shutting down...") + "

" + tr("Do not shut down the computer until this window disappears."))); setLayout(layout); } diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 82d272eb8423..39d63898bfce 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -247,7 +247,7 @@ WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransact total += subtotal; } else - { // User-entered dash address / amount: + { // User-entered btx address / amount: if(!validateAddress(rcp.address)) { return InvalidAddress; @@ -340,7 +340,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction &tran rcp.paymentRequest.SerializeToString(&value); newTx->vOrderForm.push_back(make_pair(key, value)); } - else if (!rcp.message.isEmpty()) // Message from normal dash:URI (dash:XyZ...?message=example) + else if (!rcp.message.isEmpty()) // Message from normal btx:URI (btx:XyZ...?message=example) { newTx->vOrderForm.push_back(make_pair("Message", rcp.message.toStdString())); } diff --git a/src/rpcblockchain.cpp b/src/rpcblockchain.cpp index 8ff4ffc80e37..008047acc853 100644 --- a/src/rpcblockchain.cpp +++ b/src/rpcblockchain.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -173,7 +173,7 @@ Value getrawmempool(const Array& params, bool fHelp) "{ (json object)\n" " \"transactionid\" : { (json object)\n" " \"size\" : n, (numeric) transaction size in bytes\n" - " \"fee\" : n, (numeric) transaction fee in dashs\n" + " \"fee\" : n, (numeric) transaction fee in btxs\n" " \"time\" : n, (numeric) local time transaction entered pool in seconds since 1 Jan 1970 GMT\n" " \"height\" : n, (numeric) block height when transaction entered pool\n" " \"startingpriority\" : n, (numeric) priority when transaction entered pool\n" @@ -430,8 +430,8 @@ Value gettxout(const Array& params, bool fHelp) " \"hex\" : \"hex\", (string) \n" " \"reqSigs\" : n, (numeric) Number of required signatures\n" " \"type\" : \"pubkeyhash\", (string) The type, eg pubkeyhash\n" - " \"addresses\" : [ (array of string) array of dash addresses\n" - " \"dashaddress\" (string) dash address\n" + " \"addresses\" : [ (array of string) array of btx addresses\n" + " \"btxaddress\" (string) btx address\n" " ,...\n" " ]\n" " },\n" diff --git a/src/rpcclient.cpp b/src/rpcclient.cpp index 6bf0973d3b46..b5cf71fba5b9 100644 --- a/src/rpcclient.cpp +++ b/src/rpcclient.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index 1171965f1bc8..16dd3ddde126 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -74,10 +74,10 @@ Value importprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 3) throw runtime_error( - "importprivkey \"dashprivkey\" ( \"label\" rescan )\n" + "importprivkey \"btxprivkey\" ( \"label\" rescan )\n" "\nAdds a private key (as returned by dumpprivkey) to your wallet.\n" "\nArguments:\n" - "1. \"dashprivkey\" (string, required) The private key (see dumpprivkey)\n" + "1. \"btxprivkey\" (string, required) The private key (see dumpprivkey)\n" "2. \"label\" (string, optional, default=\"\") An optional label\n" "3. rescan (boolean, optional, default=true) Rescan the wallet for transactions\n" "\nNote: This call can take minutes to complete if rescan is true.\n" @@ -168,7 +168,7 @@ Value importaddress(const Array& params, bool fHelp) std::vector data(ParseHex(params[0].get_str())); script = CScript(data.begin(), data.end()); } else { - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address or script"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address or script"); } string strLabel = ""; @@ -310,11 +310,11 @@ Value dumpprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "dumpprivkey \"dashaddress\"\n" - "\nReveals the private key corresponding to 'dashaddress'.\n" + "dumpprivkey \"btxaddress\"\n" + "\nReveals the private key corresponding to 'btxaddress'.\n" "Then the importprivkey can be used with this output\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address for the private key\n" + "1. \"btxaddress\" (string, required) The btx address for the private key\n" "\nResult:\n" "\"key\" (string) The private key\n" "\nExamples:\n" @@ -328,7 +328,7 @@ Value dumpprivkey(const Array& params, bool fHelp) string strAddress = params[0].get_str(); CBitcoinAddress address; if (!address.SetString(strAddress)) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); CKeyID keyID; if (!address.GetKeyID(keyID)) throw JSONRPCError(RPC_TYPE_ERROR, "Address does not refer to a key"); @@ -373,7 +373,7 @@ Value dumpwallet(const Array& params, bool fHelp) std::sort(vKeyBirth.begin(), vKeyBirth.end()); // produce output - file << strprintf("# Wallet dump created by Dash %s (%s)\n", CLIENT_BUILD, CLIENT_DATE); + file << strprintf("# Wallet dump created by BTX %s (%s)\n", CLIENT_BUILD, CLIENT_DATE); file << strprintf("# * Created on %s\n", EncodeDumpTime(GetTime())); file << strprintf("# * Best block at time of backup was %i (%s),\n", chainActive.Height(), chainActive.Tip()->GetBlockHash().ToString()); file << strprintf("# mined on %s\n", EncodeDumpTime(chainActive.Tip()->GetBlockTime())); diff --git a/src/rpcmasternode-budget.cpp b/src/rpcmasternode-budget.cpp index 13c02ea85960..954033c5e233 100644 --- a/src/rpcmasternode-budget.cpp +++ b/src/rpcmasternode-budget.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The Dash Developers +// Copyright (c) 2014-2015 The BTX Developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -31,9 +31,9 @@ Value mnbudget(const Array& params, bool fHelp) "\nAvailable commands:\n" " prepare - Prepare proposal for network by signing and creating tx\n" " submit - Submit proposal for network\n" - " vote-many - Vote on a Dash initiative\n" - " vote-alias - Vote on a Dash initiative\n" - " vote - Vote on a Dash initiative/budget\n" + " vote-many - Vote on a BTX initiative\n" + " vote-alias - Vote on a BTX initiative\n" + " vote - Vote on a BTX initiative/budget\n" " getvotes - Show current masternode budgets\n" " getinfo - Show current masternode budgets\n" " show - Show all budgets\n" @@ -60,7 +60,7 @@ Value mnbudget(const Array& params, bool fHelp) mnEntries = masternodeConfig.getEntries(); if (params.size() != 7) - throw runtime_error("Correct usage is 'mnbudget prepare proposal-name url payment_count block_start dash_address monthly_payment_dash'"); + throw runtime_error("Correct usage is 'mnbudget prepare proposal-name url payment_count block_start btx_address monthly_payment_btx'"); std::string strProposalName = params[1].get_str(); if(strProposalName.size() > 20) @@ -93,9 +93,9 @@ Value mnbudget(const Array& params, bool fHelp) CBitcoinAddress address(params[5].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); - // Parse Dash address + // Parse BTX address CScript scriptPubKey = GetScriptForDestination(address.Get()); CAmount nAmount = AmountFromValue(params[6]); @@ -137,7 +137,7 @@ Value mnbudget(const Array& params, bool fHelp) mnEntries = masternodeConfig.getEntries(); if (params.size() != 8) - throw runtime_error("Correct usage is 'mnbudget submit proposal-name url payment_count block_start dash_address monthly_payment_dash fee_tx'"); + throw runtime_error("Correct usage is 'mnbudget submit proposal-name url payment_count block_start btx_address monthly_payment_btx fee_tx'"); // Check these inputs the same way we check the vote commands: // ********************************************************** @@ -173,9 +173,9 @@ Value mnbudget(const Array& params, bool fHelp) CBitcoinAddress address(params[5].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); - // Parse Dash address + // Parse BTX address CScript scriptPubKey = GetScriptForDestination(address.Get()); CAmount nAmount = AmountFromValue(params[6]); uint256 hash = ParseHashV(params[7], "parameter 1"); diff --git a/src/rpcmasternode.cpp b/src/rpcmasternode.cpp index d59abb77416d..08face609dc3 100644 --- a/src/rpcmasternode.cpp +++ b/src/rpcmasternode.cpp @@ -34,7 +34,7 @@ void SendMoney(const CTxDestination &address, CAmount nValue, CWalletTx& wtxNew, throw JSONRPCError(RPC_WALLET_ERROR, strError); } - // Parse Dash address + // Parse BTX address CScript scriptPubKey = GetScriptForDestination(address); // Create and send the transaction @@ -55,8 +55,8 @@ Value darksend(const Array& params, bool fHelp) { if (fHelp || params.size() == 0) throw runtime_error( - "darksend \n" - "dashaddress, reset, or auto (AutoDenominate)" + "darksend \n" + "btxaddress, reset, or auto (AutoDenominate)" " is a real and will be rounded to the next 0.1" + HelpRequiringPassphrase()); @@ -77,14 +77,14 @@ Value darksend(const Array& params, bool fHelp) if (params.size() != 2) throw runtime_error( - "darksend \n" - "dashaddress, denominate, or auto (AutoDenominate)" + "darksend \n" + "btxaddress, denominate, or auto (AutoDenominate)" " is a real and will be rounded to the next 0.1" + HelpRequiringPassphrase()); CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); // Amount CAmount nAmount = AmountFromValue(params[1]); @@ -140,7 +140,7 @@ Value masternode(const Array& params, bool fHelp) " genkey - Generate new masternodeprivkey\n" " enforce - Enforce masternode payments\n" " outputs - Print masternode compatible outputs\n" - " start - Start masternode configured in dash.conf\n" + " start - Start masternode configured in btx.conf\n" " start-alias - Start single masternode by assigned alias configured in masternode.conf\n" " start- - Start masternodes configured in masternode.conf (: 'all', 'missing', 'disabled')\n" " status - Print masternode status information\n" diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 4f42e7e534ab..39f3af4f3f5e 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -101,7 +101,7 @@ Value getgenerate(const Array& params, bool fHelp) throw runtime_error( "getgenerate\n" "\nReturn if the server is set to generate coins or not. The default is false.\n" - "It is set with the command line argument -gen (or dash.conf setting gen)\n" + "It is set with the command line argument -gen (or btx.conf setting gen)\n" "It can also be set with the setgenerate call.\n" "\nResult\n" "true|false (boolean) If the server is set to generate coins or not\n" @@ -440,10 +440,10 @@ Value getblocktemplate(const Array& params, bool fHelp) throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid mode"); if (vNodes.empty()) - throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Dash is not connected!"); + throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "BTX is not connected!"); if (IsInitialBlockDownload()) - throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Dash is downloading blocks..."); + throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "BTX is downloading blocks..."); static unsigned int nTransactionsUpdatedLast; diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index 5aa41de1f33e..ed176e6b5b6e 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -55,8 +55,8 @@ Value getinfo(const Array& params, bool fHelp) " \"version\": xxxxx, (numeric) the server version\n" " \"protocolversion\": xxxxx, (numeric) the protocol version\n" " \"walletversion\": xxxxx, (numeric) the wallet version\n" - " \"balance\": xxxxxxx, (numeric) the total dash balance of the wallet\n" - " \"darksend_balance\": xxxxxx, (numeric) the anonymized dash balance of the wallet\n" + " \"balance\": xxxxxxx, (numeric) the total btx balance of the wallet\n" + " \"darksend_balance\": xxxxxx, (numeric) the anonymized btx balance of the wallet\n" " \"blocks\": xxxxxx, (numeric) the current number of blocks processed in the server\n" " \"timeoffset\": xxxxx, (numeric) the time offset\n" " \"connections\": xxxxx, (numeric) the number of connections\n" @@ -66,8 +66,8 @@ Value getinfo(const Array& params, bool fHelp) " \"keypoololdest\": xxxxxx, (numeric) the timestamp (seconds since GMT epoch) of the oldest pre-generated key in the key pool\n" " \"keypoolsize\": xxxx, (numeric) how many new keys are pre-generated\n" " \"unlocked_until\": ttt, (numeric) the timestamp in seconds since epoch (midnight Jan 1 1970 GMT) that the wallet is unlocked for transfers, or 0 if the wallet is locked\n" - " \"paytxfee\": x.xxxx, (numeric) the transaction fee set in dash/kb\n" - " \"relayfee\": x.xxxx, (numeric) minimum relay fee for non-free transactions in dash/kb\n" + " \"paytxfee\": x.xxxx, (numeric) the transaction fee set in btx/kb\n" + " \"relayfee\": x.xxxx, (numeric) minimum relay fee for non-free transactions in btx/kb\n" " \"errors\": \"...\" (string) any error messages\n" "}\n" "\nExamples:\n" @@ -247,14 +247,14 @@ Value validateaddress(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "validateaddress \"dashaddress\"\n" - "\nReturn information about the given dash address.\n" + "validateaddress \"btxaddress\"\n" + "\nReturn information about the given btx address.\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to validate\n" + "1. \"btxaddress\" (string, required) The btx address to validate\n" "\nResult:\n" "{\n" " \"isvalid\" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned.\n" - " \"address\" : \"dashaddress\", (string) The dash address validated\n" + " \"address\" : \"btxaddress\", (string) The btx address validated\n" " \"ismine\" : true|false, (boolean) If the address is yours or not\n" " \"isscript\" : true|false, (boolean) If the key is a script\n" " \"pubkey\" : \"publickeyhex\", (string) The hex value of the raw public key\n" @@ -314,7 +314,7 @@ CScript _createmultisig_redeemScript(const Array& params) { const std::string& ks = keys[i].get_str(); #ifdef ENABLE_WALLET - // Case 1: Dash address and we have full public key: + // Case 1: BTX address and we have full public key: CBitcoinAddress address(ks); if (pwalletMain && address.IsValid()) { @@ -365,9 +365,9 @@ Value createmultisig(const Array& params, bool fHelp) "\nArguments:\n" "1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\n" - "2. \"keys\" (string, required) A json array of keys which are dash addresses or hex-encoded public keys\n" + "2. \"keys\" (string, required) A json array of keys which are btx addresses or hex-encoded public keys\n" " [\n" - " \"key\" (string) dash address or hex-encoded public key\n" + " \"key\" (string) btx address or hex-encoded public key\n" " ,...\n" " ]\n" @@ -402,10 +402,10 @@ Value verifymessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 3) throw runtime_error( - "verifymessage \"dashaddress\" \"signature\" \"message\"\n" + "verifymessage \"btxaddress\" \"signature\" \"message\"\n" "\nVerify a signed message\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to use for the signature.\n" + "1. \"btxaddress\" (string, required) The btx address to use for the signature.\n" "2. \"signature\" (string, required) The signature provided by the signer in base 64 encoding (see signmessage).\n" "3. \"message\" (string, required) The message that was signed.\n" "\nResult:\n" diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index a8f51fa6122d..02930fd156a0 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -95,7 +95,7 @@ Value getpeerinfo(const Array& params, bool fHelp) " \"pingtime\": n, (numeric) ping time\n" " \"pingwait\": n, (numeric) ping wait\n" " \"version\": v, (numeric) The peer version, such as 7001\n" - " \"subver\": \"/Dash Core:x.x.x/\", (string) The string version\n" + " \"subver\": \"/BTX Core:x.x.x/\", (string) The string version\n" " \"inbound\": true|false, (boolean) Inbound (true) or Outbound (false)\n" " \"startingheight\": n, (numeric) The starting height (block) of the peer\n" " \"banscore\": n, (numeric) The ban score\n" @@ -229,7 +229,7 @@ Value getaddednodeinfo(const Array& params, bool fHelp) " \"connected\" : true|false, (boolean) If connected\n" " \"addresses\" : [\n" " {\n" - " \"address\" : \"192.168.0.201:9999\", (string) The dash server host and port\n" + " \"address\" : \"192.168.0.201:9999\", (string) The btx server host and port\n" " \"connected\" : \"outbound\" (string) connection, inbound or outbound\n" " }\n" " ,...\n" @@ -381,7 +381,7 @@ Value getnetworkinfo(const Array& params, bool fHelp) "\nResult:\n" "{\n" " \"version\": xxxxx, (numeric) the server version\n" - " \"subversion\": \"/Dash Core:x.x.x/\", (string) the server subversion string\n" + " \"subversion\": \"/BTX Core:x.x.x/\", (string) the server subversion string\n" " \"protocolversion\": xxxxx, (numeric) the protocol version\n" " \"localservices\": \"xxxxxxxxxxxxxxxx\", (string) the services we offer to the network\n" " \"timeoffset\": xxxxx, (numeric) the time offset\n" @@ -395,7 +395,7 @@ Value getnetworkinfo(const Array& params, bool fHelp) " }\n" " ,...\n" " ],\n" - " \"relayfee\": x.xxxxxxxx, (numeric) minimum relay fee for non-free transactions in dash/kb\n" + " \"relayfee\": x.xxxxxxxx, (numeric) minimum relay fee for non-free transactions in btx/kb\n" " \"localaddresses\": [ (array) list of local addresses\n" " {\n" " \"address\": \"xxxx\", (string) network address\n" diff --git a/src/rpcprotocol.cpp b/src/rpcprotocol.cpp index b5f8f5ce7587..935c3e0b9f06 100644 --- a/src/rpcprotocol.cpp +++ b/src/rpcprotocol.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -45,7 +45,7 @@ string HTTPPost(const string& strMsg, const map& mapRequestHeader { ostringstream s; s << "POST / HTTP/1.1\r\n" - << "User-Agent: dash-json-rpc/" << FormatFullVersion() << "\r\n" + << "User-Agent: btx-json-rpc/" << FormatFullVersion() << "\r\n" << "Host: 127.0.0.1\r\n" << "Content-Type: application/json\r\n" << "Content-Length: " << strMsg.size() << "\r\n" @@ -80,7 +80,7 @@ string HTTPError(int nStatus, bool keepalive, bool headersOnly) if (nStatus == HTTP_UNAUTHORIZED) return strprintf("HTTP/1.0 401 Authorization Required\r\n" "Date: %s\r\n" - "Server: dash-json-rpc/%s\r\n" + "Server: btx-json-rpc/%s\r\n" "WWW-Authenticate: Basic realm=\"jsonrpc\"\r\n" "Content-Type: text/html\r\n" "Content-Length: 296\r\n" @@ -107,7 +107,7 @@ string HTTPReplyHeader(int nStatus, bool keepalive, size_t contentLength, const "Connection: %s\r\n" "Content-Length: %u\r\n" "Content-Type: %s\r\n" - "Server: dash-json-rpc/%s\r\n" + "Server: btx-json-rpc/%s\r\n" "\r\n", nStatus, httpStatusDescription(nStatus), @@ -249,7 +249,7 @@ int ReadHTTPMessage(std::basic_istream& stream, map 1) throw runtime_error( "stop\n" - "\nStop Dash server."); + "\nStop BTX server."); // Shutdown will take long enough that the response should get back StartShutdown(); - return "Dash server stopping"; + return "BTX server stopping"; } @@ -308,15 +308,15 @@ static const CRPCCommand vRPCCommands[] = { "hidden", "reconsiderblock", &reconsiderblock, true, true, false }, { "hidden", "setmocktime", &setmocktime, true, false, false }, - /* Dash features */ - { "dash", "mnsync", &mnsync, true, false, false }, - { "dash", "spork", &spork, true, false, false }, - { "dash", "masternode", &masternode, true, false, true }, - { "dash", "mnbudget", &mnbudget, true, false, false }, - { "dash", "mnfinalbudget", &mnfinalbudget, true, false, false }, - { "dash", "masternodelist", &masternodelist, true, false, false }, + /* BTX features */ + { "btx", "mnsync", &mnsync, true, false, false }, + { "btx", "spork", &spork, true, false, false }, + { "btx", "masternode", &masternode, true, false, true }, + { "btx", "mnbudget", &mnbudget, true, false, false }, + { "btx", "mnfinalbudget", &mnfinalbudget, true, false, false }, + { "btx", "masternodelist", &masternodelist, true, false, false }, #ifdef ENABLE_WALLET - { "dash", "darksend", &darksend, false, false, true }, + { "btx", "darksend", &darksend, false, false, true }, /* Wallet */ { "wallet", "addmultisigaddress", &addmultisigaddress, true, false, true }, @@ -585,16 +585,16 @@ void StartRPCThreads() unsigned char rand_pwd[32]; GetRandBytes(rand_pwd, 32); uiInterface.ThreadSafeMessageBox(strprintf( - _("To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file:\n" + _("To use btxd, or the -server option to btx-qt, you must set an rpcpassword in the configuration file:\n" "%s\n" "It is recommended you use the following random password:\n" - "rpcuser=dashrpc\n" + "rpcuser=btxrpc\n" "rpcpassword=%s\n" "(you do not need to remember this password)\n" "The username and password MUST NOT be the same.\n" "If the file does not exist, create it with owner-readable-only file permissions.\n" "It is also recommended to set alertnotify so you are notified of problems;\n" - "for example: alertnotify=echo %%s | mail -s \"Dash Alert\" admin@foo.com\n"), + "for example: alertnotify=echo %%s | mail -s \"BTX Alert\" admin@foo.com\n"), GetConfigFile().string(), EncodeBase58(&rand_pwd[0],&rand_pwd[0]+32)), "", CClientUIInterface::MSG_ERROR | CClientUIInterface::SECURE); @@ -1045,7 +1045,7 @@ json_spirit::Value CRPCTable::execute(const std::string &strMethod, const json_s } std::string HelpExampleCli(string methodname, string args){ - return "> dash-cli " + methodname + " " + args + "\n"; + return "> btx-cli " + methodname + " " + args + "\n"; } std::string HelpExampleRpc(string methodname, string args){ diff --git a/src/rpcserver.h b/src/rpcserver.h index e2dddb4bb982..fd0d320f5743 100644 --- a/src/rpcserver.h +++ b/src/rpcserver.h @@ -93,7 +93,7 @@ class CRPCCommand }; /** - * Dash RPC command dispatcher. + * BTX RPC command dispatcher. */ class CRPCTable { diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index 844936e80490..b0bea942368e 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -82,13 +82,13 @@ Value getnewaddress(const Array& params, bool fHelp) if (fHelp || params.size() > 1) throw runtime_error( "getnewaddress ( \"account\" )\n" - "\nReturns a new Dash address for receiving payments.\n" + "\nReturns a new BTX address for receiving payments.\n" "If 'account' is specified (recommended), it is added to the address book \n" "so payments received with the address will be credited to 'account'.\n" "\nArguments:\n" "1. \"account\" (string, optional) The account name for the address to be linked to. if not provided, the default account \"\" is used. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created if there is no account by the given name.\n" "\nResult:\n" - "\"dashaddress\" (string) The new dash address\n" + "\"btxaddress\" (string) The new btx address\n" "\nExamples:\n" + HelpExampleCli("getnewaddress", "") + HelpExampleCli("getnewaddress", "\"\"") @@ -158,11 +158,11 @@ Value getaccountaddress(const Array& params, bool fHelp) if (fHelp || params.size() != 1) throw runtime_error( "getaccountaddress \"account\"\n" - "\nReturns the current Dash address for receiving payments to this account.\n" + "\nReturns the current BTX address for receiving payments to this account.\n" "\nArguments:\n" "1. \"account\" (string, required) The account name for the address. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created and a new address created if there is no account by the given name.\n" "\nResult:\n" - "\"dashaddress\" (string) The account dash address\n" + "\"btxaddress\" (string) The account btx address\n" "\nExamples:\n" + HelpExampleCli("getaccountaddress", "") + HelpExampleCli("getaccountaddress", "\"\"") @@ -186,7 +186,7 @@ Value getrawchangeaddress(const Array& params, bool fHelp) if (fHelp || params.size() > 1) throw runtime_error( "getrawchangeaddress\n" - "\nReturns a new Dash address, for receiving change.\n" + "\nReturns a new BTX address, for receiving change.\n" "This is for use with raw transactions, NOT normal use.\n" "\nResult:\n" "\"address\" (string) The address\n" @@ -215,10 +215,10 @@ Value setaccount(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "setaccount \"dashaddress\" \"account\"\n" + "setaccount \"btxaddress\" \"account\"\n" "\nSets the account associated with the given address.\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to be associated with an account.\n" + "1. \"btxaddress\" (string, required) The btx address to be associated with an account.\n" "2. \"account\" (string, required) The account to assign the address to.\n" "\nExamples:\n" + HelpExampleCli("setaccount", "\"XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg\" \"tabby\"") @@ -227,7 +227,7 @@ Value setaccount(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); string strAccount; @@ -257,10 +257,10 @@ Value getaccount(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "getaccount \"dashaddress\"\n" + "getaccount \"btxaddress\"\n" "\nReturns the account associated with the given address.\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address for account lookup.\n" + "1. \"btxaddress\" (string, required) The btx address for account lookup.\n" "\nResult:\n" "\"accountname\" (string) the account address\n" "\nExamples:\n" @@ -270,7 +270,7 @@ Value getaccount(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); string strAccount; map::iterator mi = pwalletMain->mapAddressBook.find(address.Get()); @@ -290,7 +290,7 @@ Value getaddressesbyaccount(const Array& params, bool fHelp) "1. \"account\" (string, required) The account name.\n" "\nResult:\n" "[ (json array of string)\n" - " \"dashaddress\" (string) a dash address associated with the given account\n" + " \"btxaddress\" (string) a btx address associated with the given account\n" " ,...\n" "]\n" "\nExamples:\n" @@ -329,7 +329,7 @@ void SendMoney(const CTxDestination &address, CAmount nValue, CWalletTx& wtxNew, throw JSONRPCError(RPC_WALLET_ERROR, strError); } - // Parse Dash address + // Parse BTX address CScript scriptPubKey = GetScriptForDestination(address); // Create and send the transaction @@ -350,11 +350,11 @@ Value sendtoaddress(const Array& params, bool fHelp) { if (fHelp || params.size() < 2 || params.size() > 4) throw runtime_error( - "sendtoaddress \"dashaddress\" amount ( \"comment\" \"comment-to\" )\n" + "sendtoaddress \"btxaddress\" amount ( \"comment\" \"comment-to\" )\n" "\nSend an amount to a given address. The amount is a real and is rounded to the nearest 0.00000001\n" + HelpRequiringPassphrase() + "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to send to.\n" + "1. \"btxaddress\" (string, required) The btx address to send to.\n" "2. \"amount\" (numeric, required) The amount in btc to send. eg 0.1\n" "3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n" " This is not part of the transaction, just kept in your wallet.\n" @@ -371,7 +371,7 @@ Value sendtoaddress(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); // Amount CAmount nAmount = AmountFromValue(params[1]); @@ -394,11 +394,11 @@ Value sendtoaddressix(const Array& params, bool fHelp) { if (fHelp || params.size() < 2 || params.size() > 4) throw runtime_error( - "sendtoaddressix \"dashaddress\" amount ( \"comment\" \"comment-to\" )\n" + "sendtoaddressix \"btxaddress\" amount ( \"comment\" \"comment-to\" )\n" "\nSend an amount to a given address. The amount is a real and is rounded to the nearest 0.00000001\n" + HelpRequiringPassphrase() + "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to send to.\n" + "1. \"btxaddress\" (string, required) The btx address to send to.\n" "2. \"amount\" (numeric, required) The amount in btc to send. eg 0.1\n" "3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n" " This is not part of the transaction, just kept in your wallet.\n" @@ -415,7 +415,7 @@ Value sendtoaddressix(const Array& params, bool fHelp) CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); // Amount CAmount nAmount = AmountFromValue(params[1]); @@ -445,7 +445,7 @@ Value listaddressgroupings(const Array& params, bool fHelp) "[\n" " [\n" " [\n" - " \"dashaddress\", (string) The dash address\n" + " \"btxaddress\", (string) The btx address\n" " amount, (numeric) The amount in btc\n" " \"account\" (string, optional) The account\n" " ]\n" @@ -484,11 +484,11 @@ Value signmessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 2) throw runtime_error( - "signmessage \"dashaddress\" \"message\"\n" + "signmessage \"btxaddress\" \"message\"\n" "\nSign a message with the private key of an address" + HelpRequiringPassphrase() + "\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address to use for the private key.\n" + "1. \"btxaddress\" (string, required) The btx address to use for the private key.\n" "2. \"message\" (string, required) The message to create a signature of.\n" "\nResult:\n" "\"signature\" (string) The signature of the message encoded in base 64\n" @@ -535,10 +535,10 @@ Value getreceivedbyaddress(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "getreceivedbyaddress \"dashaddress\" ( minconf )\n" - "\nReturns the total amount received by the given dashaddress in transactions with at least minconf confirmations.\n" + "getreceivedbyaddress \"btxaddress\" ( minconf )\n" + "\nReturns the total amount received by the given btxaddress in transactions with at least minconf confirmations.\n" "\nArguments:\n" - "1. \"dashaddress\" (string, required) The dash address for transactions.\n" + "1. \"btxaddress\" (string, required) The btx address for transactions.\n" "2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n" "\nResult:\n" "amount (numeric) The total amount in btc received at this address.\n" @@ -553,10 +553,10 @@ Value getreceivedbyaddress(const Array& params, bool fHelp) + HelpExampleRpc("getreceivedbyaddress", "\"XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg\", 6") ); - // Dash address + // BTX address CBitcoinAddress address = CBitcoinAddress(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); CScript scriptPubKey = GetScriptForDestination(address.Get()); if (!IsMine(*pwalletMain,scriptPubKey)) return (double)0.0; @@ -821,13 +821,13 @@ Value sendfrom(const Array& params, bool fHelp) { if (fHelp || params.size() < 3 || params.size() > 6) throw runtime_error( - "sendfrom \"fromaccount\" \"todashaddress\" amount ( minconf \"comment\" \"comment-to\" )\n" - "\nSent an amount from an account to a dash address.\n" + "sendfrom \"fromaccount\" \"tobtxaddress\" amount ( minconf \"comment\" \"comment-to\" )\n" + "\nSent an amount from an account to a btx address.\n" "The amount is a real and is rounded to the nearest 0.00000001." + HelpRequiringPassphrase() + "\n" "\nArguments:\n" "1. \"fromaccount\" (string, required) The name of the account to send funds from. May be the default account using \"\".\n" - "2. \"todashaddress\" (string, required) The dash address to send funds to.\n" + "2. \"tobtxaddress\" (string, required) The btx address to send funds to.\n" "3. amount (numeric, required) The amount in btc. (transaction fee is added on top).\n" "4. minconf (numeric, optional, default=1) Only use funds with at least this many confirmations.\n" "5. \"comment\" (string, optional) A comment used to store what the transaction is for. \n" @@ -849,7 +849,7 @@ Value sendfrom(const Array& params, bool fHelp) string strAccount = AccountFromValue(params[0]); CBitcoinAddress address(params[1].get_str()); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Dash address"); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid BTX address"); CAmount nAmount = AmountFromValue(params[2]); int nMinDepth = 1; if (params.size() > 3) @@ -886,7 +886,7 @@ Value sendmany(const Array& params, bool fHelp) "1. \"fromaccount\" (string, required) The account to send the funds from, can be \"\" for the default account\n" "2. \"amounts\" (string, required) A json object with addresses and amounts\n" " {\n" - " \"address\":amount (numeric) The dash address is the key, the numeric amount in btc is the value\n" + " \"address\":amount (numeric) The btx address is the key, the numeric amount in btc is the value\n" " ,...\n" " }\n" "3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n" @@ -922,7 +922,7 @@ Value sendmany(const Array& params, bool fHelp) { CBitcoinAddress address(s.name_); if (!address.IsValid()) - throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, string("Invalid Dash address: ")+s.name_); + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, string("Invalid BTX address: ")+s.name_); if (setAddress.count(address)) throw JSONRPCError(RPC_INVALID_PARAMETER, string("Invalid parameter, duplicated address: ")+s.name_); @@ -964,20 +964,20 @@ Value addmultisigaddress(const Array& params, bool fHelp) { string msg = "addmultisigaddress nrequired [\"key\",...] ( \"account\" )\n" "\nAdd a nrequired-to-sign multisignature address to the wallet.\n" - "Each key is a Dash address or hex-encoded public key.\n" + "Each key is a BTX address or hex-encoded public key.\n" "If 'account' is specified, assign address to that account.\n" "\nArguments:\n" "1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\n" - "2. \"keysobject\" (string, required) A json array of dash addresses or hex-encoded public keys\n" + "2. \"keysobject\" (string, required) A json array of btx addresses or hex-encoded public keys\n" " [\n" - " \"address\" (string) dash address or hex-encoded public key\n" + " \"address\" (string) btx address or hex-encoded public key\n" " ...,\n" " ]\n" "3. \"account\" (string, optional) An account to assign the addresses to.\n" "\nResult:\n" - "\"dashaddress\" (string) A dash address associated with the keys.\n" + "\"btxaddress\" (string) A btx address associated with the keys.\n" "\nExamples:\n" "\nAdd a multisig address from 2 addresses\n" @@ -1309,7 +1309,7 @@ Value listtransactions(const Array& params, bool fHelp) " {\n" " \"account\":\"accountname\", (string) The account name associated with the transaction. \n" " It will be \"\" for the default account.\n" - " \"address\":\"dashaddress\", (string) The dash address of the transaction. Not present for \n" + " \"address\":\"btxaddress\", (string) The btx address of the transaction. Not present for \n" " move transactions (category = move).\n" " \"category\":\"send|receive|move\", (string) The transaction category. 'move' is a local (off blockchain)\n" " transaction between accounts, and not associated with an address,\n" @@ -1493,7 +1493,7 @@ Value listsinceblock(const Array& params, bool fHelp) "{\n" " \"transactions\": [\n" " \"account\":\"accountname\", (string) The account name associated with the transaction. Will be \"\" for the default account.\n" - " \"address\":\"dashaddress\", (string) The dash address of the transaction. Not present for move transactions (category = move).\n" + " \"address\":\"btxaddress\", (string) The btx address of the transaction. Not present for move transactions (category = move).\n" " \"category\":\"send|receive\", (string) The transaction category. 'send' has negative amounts, 'receive' has positive amounts.\n" " \"amount\": x.xxx, (numeric) The amount in btc. This is negative for the 'send' category, and for the 'move' category for moves \n" " outbound. It is positive for the 'receive' category, and for the 'move' category for inbound funds.\n" @@ -1587,7 +1587,7 @@ Value gettransaction(const Array& params, bool fHelp) " \"details\" : [\n" " {\n" " \"account\" : \"accountname\", (string) The account name involved in the transaction, can be \"\" for the default account.\n" - " \"address\" : \"dashaddress\", (string) The dash address involved in the transaction\n" + " \"address\" : \"btxaddress\", (string) The btx address involved in the transaction\n" " \"category\" : \"send|receive\", (string) The category, either 'send' or 'receive'\n" " \"amount\" : x.xxx (numeric) The amount in btc\n" " \"vout\" : n, (numeric) the vout value\n" @@ -1704,7 +1704,7 @@ Value walletpassphrase(const Array& params, bool fHelp) throw runtime_error( "walletpassphrase \"passphrase\" timeout ( anonymizeonly )\n" "\nStores the wallet decryption key in memory for 'timeout' seconds.\n" - "This is needed prior to performing transactions related to private keys such as sending dashs\n" + "This is needed prior to performing transactions related to private keys such as sending btxs\n" "\nArguments:\n" "1. \"passphrase\" (string, required) The wallet passphrase\n" "2. timeout (numeric, required) The time to keep the decryption key in seconds.\n" @@ -1847,10 +1847,10 @@ Value encryptwallet(const Array& params, bool fHelp) "\nExamples:\n" "\nEncrypt you wallet\n" + HelpExampleCli("encryptwallet", "\"my pass phrase\"") + - "\nNow set the passphrase to use the wallet, such as for signing or sending dash\n" + "\nNow set the passphrase to use the wallet, such as for signing or sending btx\n" + HelpExampleCli("walletpassphrase", "\"my pass phrase\"") + "\nNow we can so something like sign\n" - + HelpExampleCli("signmessage", "\"dashaddress\" \"test message\"") + + + HelpExampleCli("signmessage", "\"btxaddress\" \"test message\"") + "\nNow lock the wallet again by removing the passphrase\n" + HelpExampleCli("walletlock", "") + "\nAs a json rpc call\n" @@ -1880,7 +1880,7 @@ Value encryptwallet(const Array& params, bool fHelp) // slack space in .dat files; that is bad if the old data is // unencrypted private keys. So: StartShutdown(); - return "wallet encrypted; dash server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup."; + return "wallet encrypted; btx server stopping, restart to run with encrypted wallet. The keypool has been flushed, you need to make a new backup."; } Value lockunspent(const Array& params, bool fHelp) @@ -1890,7 +1890,7 @@ Value lockunspent(const Array& params, bool fHelp) "lockunspent unlock [{\"txid\":\"txid\",\"vout\":n},...]\n" "\nUpdates list of temporarily unspendable outputs.\n" "Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n" - "A locked transaction output will not be chosen by automatic coin selection, when spending dashs.\n" + "A locked transaction output will not be chosen by automatic coin selection, when spending btxs.\n" "Locks are stored in memory only. Nodes start with zero locked outputs, and the locked output list\n" "is always cleared (by virtue of process exit) when a node stops or fails.\n" "Also see the listunspent call\n" @@ -2039,7 +2039,7 @@ Value getwalletinfo(const Array& params, bool fHelp) "\nResult:\n" "{\n" " \"walletversion\": xxxxx, (numeric) the wallet version\n" - " \"balance\": xxxxxxx, (numeric) the total dash balance of the wallet\n" + " \"balance\": xxxxxxx, (numeric) the total btx balance of the wallet\n" " \"txcount\": xxxxxxx, (numeric) the total number of transactions in the wallet\n" " \"keypoololdest\": xxxxxx, (numeric) the timestamp (seconds since GMT epoch) of the oldest pre-generated key in the key pool\n" " \"keypoolsize\": xxxx, (numeric) how many new keys are pre-generated\n" diff --git a/src/script/bitcoinconsensus.h b/src/script/bitcoinconsensus.h index 937189a6ad9a..3596f75f26de 100644 --- a/src/script/bitcoinconsensus.h +++ b/src/script/bitcoinconsensus.h @@ -7,7 +7,7 @@ #define BITCOIN_BITCOINCONSENSUS_H #if defined(BUILD_BITCOIN_INTERNAL) && defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #if defined(_WIN32) #if defined(DLL_EXPORT) #if defined(HAVE_FUNC_ATTRIBUTE_DLLEXPORT) diff --git a/src/spork.h b/src/spork.h index 148c3509a0ed..d4ba2c164621 100644 --- a/src/spork.h +++ b/src/spork.h @@ -1,5 +1,5 @@ -// Copyright (c) 2009-2012 The Dash developers +// Copyright (c) 2009-2012 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef SPORK_H diff --git a/src/test/Makefile b/src/test/Makefile index a8fb61559b13..e8863212bffb 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -1,6 +1,6 @@ all: - $(MAKE) -C .. dash_test + $(MAKE) -C .. btx_test clean: - $(MAKE) -C .. dash_test_clean + $(MAKE) -C .. btx_test_clean check: - $(MAKE) -C .. dash_test_check + $(MAKE) -C .. btx_test_check diff --git a/src/test/README.md b/src/test/README.md index 53f3c42313aa..cca6a2664d77 100644 --- a/src/test/README.md +++ b/src/test/README.md @@ -5,9 +5,9 @@ sense to simply use this framework rather than require developers to configure some other framework (we want as few impediments to creating unit tests as possible). -The build system is setup to compile an executable called "test_dash" +The build system is setup to compile an executable called "test_btx" that runs all of the unit tests. The main source file is called -test_dash.cpp, which simply includes other files that contain the +test_btx.cpp, which simply includes other files that contain the actual unit tests (outside of a couple required preprocessor directives). The pattern is to create one test file for each class or source file for which you want to create unit tests. The file naming diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp index 8a984304f4e6..d25e896c7f14 100644 --- a/src/test/getarg_tests.cpp +++ b/src/test/getarg_tests.cpp @@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE(intarg) BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0); } -BOOST_AUTO_TEST_CASE(doubledash) +BOOST_AUTO_TEST_CASE(doublebtx) { ResetArgs("--foo"); BOOST_CHECK_EQUAL(GetBoolArg("-foo", false), true); diff --git a/src/test/main_tests.cpp b/src/test/main_tests.cpp index 3de8c91044f4..3051e4226986 100644 --- a/src/test/main_tests.cpp +++ b/src/test/main_tests.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2014 The Bitcoin Core developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/test/netbase_tests.cpp b/src/test/netbase_tests.cpp index 9384732405a8..cea8a9b0f4d7 100644 --- a/src/test/netbase_tests.cpp +++ b/src/test/netbase_tests.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2012-2014 The Bitcoin Core developers -// Copyright (c) 2014-2015 The Dash Core developers +// Copyright (c) 2014-2015 The BTX Core developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/test/test_dash.cpp b/src/test/test_dash.cpp deleted file mode 100644 index ea4d85638de1..000000000000 --- a/src/test/test_dash.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (c) 2011-2013 The Bitcoin Core developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#define BOOST_TEST_MODULE Dash Test Suite - -#include "main.h" -#include "random.h" -#include "txdb.h" -#include "ui_interface.h" -#include "util.h" -#ifdef ENABLE_WALLET -#include "db.h" -#include "wallet.h" -#endif - -#include -#include -#include - -CClientUIInterface uiInterface; -CWallet* pwalletMain; - -extern bool fPrintToConsole; -extern void noui_connect(); - -struct TestingSetup { - CCoinsViewDB *pcoinsdbview; - boost::filesystem::path pathTemp; - boost::thread_group threadGroup; - - TestingSetup() { - SetupEnvironment(); - fPrintToDebugLog = false; // don't want to write to debug.log file - fCheckBlockIndex = true; - SelectParams(CBaseChainParams::UNITTEST); - noui_connect(); -#ifdef ENABLE_WALLET - bitdb.MakeMock(); -#endif - pathTemp = GetTempPath() / strprintf("test_dash_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000))); - boost::filesystem::create_directories(pathTemp); - mapArgs["-datadir"] = pathTemp.string(); - pblocktree = new CBlockTreeDB(1 << 20, true); - pcoinsdbview = new CCoinsViewDB(1 << 23, true); - pcoinsTip = new CCoinsViewCache(pcoinsdbview); - InitBlockIndex(); -#ifdef ENABLE_WALLET - bool fFirstRun; - pwalletMain = new CWallet("wallet.dat"); - pwalletMain->LoadWallet(fFirstRun); - RegisterValidationInterface(pwalletMain); -#endif - nScriptCheckThreads = 3; - for (int i=0; i < nScriptCheckThreads-1; i++) - threadGroup.create_thread(&ThreadScriptCheck); - RegisterNodeSignals(GetNodeSignals()); - } - ~TestingSetup() - { - threadGroup.interrupt_all(); - threadGroup.join_all(); - UnregisterNodeSignals(GetNodeSignals()); -#ifdef ENABLE_WALLET - delete pwalletMain; - pwalletMain = NULL; -#endif - delete pcoinsTip; - delete pcoinsdbview; - delete pblocktree; -#ifdef ENABLE_WALLET - bitdb.Flush(true); -#endif - boost::filesystem::remove_all(pathTemp); - } -}; - -BOOST_GLOBAL_FIXTURE(TestingSetup); - -void Shutdown(void* parg) -{ - exit(0); -} - -void StartShutdown() -{ - exit(0); -} - -bool ShutdownRequested() -{ - return false; -} diff --git a/src/timedata.cpp b/src/timedata.cpp index fe638c52e742..e5a5ac87a0de 100644 --- a/src/timedata.cpp +++ b/src/timedata.cpp @@ -97,7 +97,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nTime) if (!fMatch) { fDone = true; - string strMessage = _("Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly."); + string strMessage = _("Warning: Please check that your computer's date and time are correct! If your clock is wrong BTX Core will not work properly."); strMiscWarning = strMessage; LogPrintf("*** %s\n", strMessage); uiInterface.ThreadSafeMessageBox(strMessage, "", CClientUIInterface::MSG_WARNING); diff --git a/src/uint256.h b/src/uint256.h index ae8e0701e1d1..e66a71adddd4 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/util.cpp b/src/util.cpp index 62c305a114fd..5d9b42eadb88 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,11 +1,11 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "util.h" @@ -103,7 +103,7 @@ namespace boost { using namespace std; -//Dash only features +//BTX only features bool fMasterNode = false; string strMasterNodePrivKey = ""; string strMasterNodeAddr = ""; @@ -231,8 +231,8 @@ bool LogAcceptCategory(const char* category) const vector& categories = mapMultiArgs["-debug"]; ptrCategory.reset(new set(categories.begin(), categories.end())); // thread_specific_ptr automatically deletes the set when the thread ends. - // "dash" is a composite category enabling all Dash-related debug output - if(ptrCategory->count(string("dash"))) { + // "btx" is a composite category enabling all BTX-related debug output + if(ptrCategory->count(string("btx"))) { ptrCategory->insert(string("darksend")); ptrCategory->insert(string("instantx")); ptrCategory->insert(string("masternode")); @@ -395,7 +395,7 @@ static std::string FormatException(std::exception* pex, const char* pszThread) char pszModule[MAX_PATH] = ""; GetModuleFileNameA(NULL, pszModule, sizeof(pszModule)); #else - const char* pszModule = "dash"; + const char* pszModule = "btx"; #endif if (pex) return strprintf( @@ -416,13 +416,13 @@ void PrintExceptionContinue(std::exception* pex, const char* pszThread) boost::filesystem::path GetDefaultDataDir() { namespace fs = boost::filesystem; - // Windows < Vista: C:\Documents and Settings\Username\Application Data\Dash - // Windows >= Vista: C:\Users\Username\AppData\Roaming\Dash - // Mac: ~/Library/Application Support/Dash - // Unix: ~/.dash + // Windows < Vista: C:\Documents and Settings\Username\Application Data\BTX + // Windows >= Vista: C:\Users\Username\AppData\Roaming\BTX + // Mac: ~/Library/Application Support/BTX + // Unix: ~/.btx #ifdef WIN32 // Windows - return GetSpecialFolderPath(CSIDL_APPDATA) / "Dash"; + return GetSpecialFolderPath(CSIDL_APPDATA) / "BTX"; #else fs::path pathRet; char* pszHome = getenv("HOME"); @@ -434,10 +434,10 @@ boost::filesystem::path GetDefaultDataDir() // Mac pathRet /= "Library/Application Support"; TryCreateDirectory(pathRet); - return pathRet / "Dash"; + return pathRet / "BTX"; #else // Unix - return pathRet / ".dash"; + return pathRet / ".btx"; #endif #endif } @@ -484,7 +484,7 @@ void ClearDatadirCache() boost::filesystem::path GetConfigFile() { - boost::filesystem::path pathConfigFile(GetArg("-conf", "dash.conf")); + boost::filesystem::path pathConfigFile(GetArg("-conf", "btx.conf")); if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir(false) / pathConfigFile; @@ -503,7 +503,7 @@ void ReadConfigFile(map& mapSettingsRet, { boost::filesystem::ifstream streamConfig(GetConfigFile()); if (!streamConfig.good()){ - // Create empty dash.conf if it does not excist + // Create empty btx.conf if it does not excist FILE* configFile = fopen(GetConfigFile().string().c_str(), "a"); if (configFile != NULL) fclose(configFile); @@ -515,7 +515,7 @@ void ReadConfigFile(map& mapSettingsRet, for (boost::program_options::detail::config_file_iterator it(streamConfig, setOptions), end; it != end; ++it) { - // Don't overwrite existing settings so command line settings override dash.conf + // Don't overwrite existing settings so command line settings override btx.conf string strKey = string("-") + it->string_key; if (mapSettingsRet.count(strKey) == 0) { @@ -532,7 +532,7 @@ void ReadConfigFile(map& mapSettingsRet, #ifndef WIN32 boost::filesystem::path GetPidFile() { - boost::filesystem::path pathPidFile(GetArg("-pid", "dashd.pid")); + boost::filesystem::path pathPidFile(GetArg("-pid", "btxd.pid")); if (!pathPidFile.is_complete()) pathPidFile = GetDataDir() / pathPidFile; return pathPidFile; } diff --git a/src/util.h b/src/util.h index 93f6db447021..827605c5e531 100644 --- a/src/util.h +++ b/src/util.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -12,7 +12,7 @@ #define BITCOIN_UTIL_H #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "compat.h" @@ -28,7 +28,7 @@ #include #include -//Dash only features +//BTX only features extern bool fMasterNode; extern bool fLiteMode; @@ -193,7 +193,7 @@ void RenameThread(const char* name); */ template void LoopForever(const char* name, Callable func, int64_t msecs) { - std::string s = strprintf("dash-%s", name); + std::string s = strprintf("btx-%s", name); RenameThread(s.c_str()); LogPrintf("%s thread start\n", name); try @@ -224,7 +224,7 @@ template void LoopForever(const char* name, Callable func, */ template void TraceThread(const char* name, Callable func) { - std::string s = strprintf("dash-%s", name); + std::string s = strprintf("btx-%s", name); RenameThread(s.c_str()); try { diff --git a/src/utiltime.cpp b/src/utiltime.cpp index 9a1e10c2cb56..e0d7fd386f6f 100644 --- a/src/utiltime.cpp +++ b/src/utiltime.cpp @@ -4,7 +4,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include "config/dash-config.h" +#include "config/btx-config.h" #endif #include "utiltime.h" diff --git a/src/version.h b/src/version.h index 12f3cceeaf62..194d9d94acb9 100644 --- a/src/version.h +++ b/src/version.h @@ -1,5 +1,5 @@ // Copyright (c) 2012-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/wallet.cpp b/src/wallet.cpp index b6293891f3d9..627a100b42de 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -2184,7 +2184,7 @@ bool CWallet::CreateTransaction(const vector >& vecSend, { // Fill a vout to ourself // TODO: pass in scriptChange instead of reservekey so - // change transaction isn't always pay-to-dash-address + // change transaction isn't always pay-to-btx-address CScript scriptChange; // coin control: send change to custom address diff --git a/src/wallet.h b/src/wallet.h index 069b50520e98..2897609c2baa 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/walletdb.cpp b/src/walletdb.cpp index 8c9b31df400b..ddb6b695eff4 100644 --- a/src/walletdb.cpp +++ b/src/walletdb.cpp @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The Dash developers +// Copyright (c) 2014-2015 The BTX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -791,7 +791,7 @@ DBErrors CWalletDB::ZapWalletTx(CWallet* pwallet, vector& vWtx) void ThreadFlushWalletDB(const string& strFile) { // Make this thread recognisable as the wallet flushing thread - RenameThread("dash-wallet"); + RenameThread("btx-wallet"); static bool fOneThread; if (fOneThread) From b727808e0879fea351b1c27f0484dc7cefa140ed Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sat, 26 Sep 2015 19:36:02 -0500 Subject: [PATCH 02/10] update Gitian repo URL --- contrib/gitian-downloader/luke-jr-key.pgp | Bin 7319 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/gitian-downloader/luke-jr-key.pgp diff --git a/contrib/gitian-downloader/luke-jr-key.pgp b/contrib/gitian-downloader/luke-jr-key.pgp deleted file mode 100644 index 69445d6cf9796eae4e5c13f97201bb9b1d1d88bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7319 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 From c58f7817c38cc0d812b8ea62c29b3d0fb20ccf70 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sat, 26 Sep 2015 19:59:04 -0500 Subject: [PATCH 03/10] Update readme.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1069e46ff03b..d82a6f855200 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ -BTX Core staging tree 0.12 +BTX Core staging tree 3.0 (InstantX Upgrade) =============================== -https://www.btxpay.io +http://www.btxcoin.com Copyright (c) 2009-2015 Bitcoin Core Developers -Copyright (c) 2014-2015 BTX Core Developers +Copyright (c) 2014-2015 Dash Core Developers +Copyright (c) 2015 BTX Core Developers What is BTX? ---------------- @@ -18,7 +19,7 @@ are carried out collectively by the network. BTX Core is the name of open source software which enables the use of this currency. For more information, as well as an immediately useable, binary version of -the BTX Core software, see https://www.btxpay.io/downloads. +the BTX Core software, see https://www.btxcoin.com/downloads. License From a2b99facc9fd8922dd0717b2b15a6e4424fc3e61 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sat, 26 Sep 2015 20:01:35 -0500 Subject: [PATCH 04/10] Update Gitian --- COPYING | 3 ++- INSTALL | 2 +- contrib/gitian-descriptors/gitian-linux.yml | 2 +- contrib/gitian-descriptors/gitian-osx.yml | 2 +- contrib/gitian-descriptors/gitian-rpi2.yml | 2 +- contrib/gitian-descriptors/gitian-win.yml | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/COPYING b/COPYING index 4b44686657c1..fcaa3e520110 100644 --- a/COPYING +++ b/COPYING @@ -1,5 +1,6 @@ Copyright (c) 2009-2015 Bitcoin Developers -Copyright (c) 2014-2015 BTX Developers +Copyright (c) 2014-2015 Dash Developers +Copyright (c) 2015 BTX Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/INSTALL b/INSTALL index fea6aacc6ee1..d5a6ebb9a63a 100644 --- a/INSTALL +++ b/INSTALL @@ -7,7 +7,7 @@ Use the autogen script to prepare the build environment. make Precompiled binaries are available at github, see -https://github.com/btxproject/btx-binaries +https://github.com/cryptodj/btx Always verify the signatures and checksums. diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index ddf84d0a85ed..04ad91daaac1 100755 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -17,7 +17,7 @@ packages: - "binutils-gold" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/btxpay/btx.git" +- "url": "https://github.com/cryptodj/btx.git" "dir": "btx" files: [] script: | diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 38e09ad0b4b4..af7e1918eaf8 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -20,7 +20,7 @@ packages: - "libbz2-dev" reference_datetime: "2013-06-01 00:00:00" remotes: -- "url": "https://github.com/btxpay/btx.git" +- "url": "https://github.com/cryptodj/btx.git" "dir": "btx" files: - "MacOSX10.7.sdk.tar.gz" diff --git a/contrib/gitian-descriptors/gitian-rpi2.yml b/contrib/gitian-descriptors/gitian-rpi2.yml index fc23a8ca4b92..0898e2949c80 100644 --- a/contrib/gitian-descriptors/gitian-rpi2.yml +++ b/contrib/gitian-descriptors/gitian-rpi2.yml @@ -17,7 +17,7 @@ packages: - "binutils-gold" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/btxpay/btx.git" +- "url": "https://github.com/cryptodj/btx.git" "dir": "btx" files: - "raspberrypi-tools.tar.gz" diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 48b4866f8014..9637f0b7ecbd 100755 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -20,7 +20,7 @@ packages: - "zip" reference_datetime: "2014-01-10 00:00:00" remotes: -- "url": "https://github.com/btxpay/btx.git" +- "url": "https://github.com/cryptodj/btx.git" "dir": "btx" files: [] script: | From 3b92cc2d19f1e6f93a65f6f7e4f6a79765455492 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sat, 26 Sep 2015 20:52:01 -0500 Subject: [PATCH 05/10] Added Scrypt algorithm. --- btx.pro | 6 +- src/chainparams.cpp | 4 +- src/crypto/scrypt.cpp | 198 +++++++++++++++++++++++++++++++++++++++ src/crypto/scrypt.h | 15 +++ src/primitives/block.cpp | 26 ++++- 5 files changed, 242 insertions(+), 7 deletions(-) create mode 100644 src/crypto/scrypt.cpp create mode 100644 src/crypto/scrypt.h diff --git a/btx.pro b/btx.pro index 4120f6864a12..fdeddc0ddda7 100644 --- a/btx.pro +++ b/btx.pro @@ -260,7 +260,8 @@ SOURCES += \ src/univalue/univalue_write.cpp \ src/univalue/univalue.cpp \ src/utiltime.cpp \ - src/txdb.cpp + src/txdb.cpp \ + src/crypto/scrypt.cpp !win32 { # we use QMAKE_CXXFLAGS_RELEASE even without RELEASE=1 because we use RELEASE to indicate linking preferences not -O preferences genleveldb.commands = cd $$PWD/src/leveldb && CC=$$QMAKE_CC CXX=$$QMAKE_CXX $(MAKE) OPT=\"$$QMAKE_CXXFLAGS $$QMAKE_CXXFLAGS_RELEASE\" libleveldb.a libmemenv.a @@ -464,7 +465,8 @@ HEADERS += src/alert.h \ src/txdb.h \ src/compat/sanity.h \ src/secp256k1/include/secp256k1.h \ - src/bignum.h + src/bignum.h \ + src/crypto/scrypt.h FORMS += \ src/qt/forms/sendcoinsdialog.ui \ diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 410bfbbf5208..16d3b8fa933b 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -219,7 +219,7 @@ class CTestNetParams : public CMainParams { genesis.nBits = bnProofOfWorkLimit.GetCompact(); genesis.nNonce = 219671; hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0xd3aa2697d4c3d92664895cac715a3f2529e377a36bdb22cff4d28ea11ec85796")); + //assert(hashGenesisBlock == uint256("0xd3aa2697d4c3d92664895cac715a3f2529e377a36bdb22cff4d28ea11ec85796")); vFixedSeeds.clear(); vSeeds.clear(); @@ -282,7 +282,7 @@ class CRegTestParams : public CTestNetParams { genesis.nNonce = 1096447; hashGenesisBlock = genesis.GetHash(); nDefaultPort = 19994; - assert(hashGenesisBlock == uint256("0x000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e")); + //assert(hashGenesisBlock == uint256("0x000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e")); vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds. vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds. diff --git a/src/crypto/scrypt.cpp b/src/crypto/scrypt.cpp new file mode 100644 index 000000000000..06ef53cd2ba9 --- /dev/null +++ b/src/crypto/scrypt.cpp @@ -0,0 +1,198 @@ +/*- + * Copyright 2009 Colin Percival, 2011 ArtForz, 2011 pooler, 2013 Balthazar + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ + +#include +#include + +#include "scrypt.h" +#include "pbkdf2.h" + +#include "util.h" +#include "net.h" + +#define SCRYPT_BUFFER_SIZE (131072 + 63) + +#if defined (OPTIMIZED_SALSA) && ( defined (__x86_64__) || defined (__i386__) || defined(__arm__) ) +extern "C" void scrypt_core(unsigned int *X, unsigned int *V); +#else +// Generic scrypt_core implementation + +static inline void xor_salsa8(unsigned int B[16], const unsigned int Bx[16]) +{ + unsigned int x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; + int i; + + x00 = (B[0] ^= Bx[0]); + x01 = (B[1] ^= Bx[1]); + x02 = (B[2] ^= Bx[2]); + x03 = (B[3] ^= Bx[3]); + x04 = (B[4] ^= Bx[4]); + x05 = (B[5] ^= Bx[5]); + x06 = (B[6] ^= Bx[6]); + x07 = (B[7] ^= Bx[7]); + x08 = (B[8] ^= Bx[8]); + x09 = (B[9] ^= Bx[9]); + x10 = (B[10] ^= Bx[10]); + x11 = (B[11] ^= Bx[11]); + x12 = (B[12] ^= Bx[12]); + x13 = (B[13] ^= Bx[13]); + x14 = (B[14] ^= Bx[14]); + x15 = (B[15] ^= Bx[15]); + for (i = 0; i < 8; i += 2) { +#define R(a, b) (((a) << (b)) | ((a) >> (32 - (b)))) + /* Operate on columns. */ + x04 ^= R(x00+x12, 7); x09 ^= R(x05+x01, 7); + x14 ^= R(x10+x06, 7); x03 ^= R(x15+x11, 7); + + x08 ^= R(x04+x00, 9); x13 ^= R(x09+x05, 9); + x02 ^= R(x14+x10, 9); x07 ^= R(x03+x15, 9); + + x12 ^= R(x08+x04,13); x01 ^= R(x13+x09,13); + x06 ^= R(x02+x14,13); x11 ^= R(x07+x03,13); + + x00 ^= R(x12+x08,18); x05 ^= R(x01+x13,18); + x10 ^= R(x06+x02,18); x15 ^= R(x11+x07,18); + + /* Operate on rows. */ + x01 ^= R(x00+x03, 7); x06 ^= R(x05+x04, 7); + x11 ^= R(x10+x09, 7); x12 ^= R(x15+x14, 7); + + x02 ^= R(x01+x00, 9); x07 ^= R(x06+x05, 9); + x08 ^= R(x11+x10, 9); x13 ^= R(x12+x15, 9); + + x03 ^= R(x02+x01,13); x04 ^= R(x07+x06,13); + x09 ^= R(x08+x11,13); x14 ^= R(x13+x12,13); + + x00 ^= R(x03+x02,18); x05 ^= R(x04+x07,18); + x10 ^= R(x09+x08,18); x15 ^= R(x14+x13,18); +#undef R + } + B[0] += x00; + B[1] += x01; + B[2] += x02; + B[3] += x03; + B[4] += x04; + B[5] += x05; + B[6] += x06; + B[7] += x07; + B[8] += x08; + B[9] += x09; + B[10] += x10; + B[11] += x11; + B[12] += x12; + B[13] += x13; + B[14] += x14; + B[15] += x15; +} + +static inline void scrypt_core(unsigned int *X, unsigned int *V) +{ + unsigned int i, j, k; + + for (i = 0; i < 1024; i++) { + memcpy(&V[i * 32], X, 128); + xor_salsa8(&X[0], &X[16]); + xor_salsa8(&X[16], &X[0]); + } + for (i = 0; i < 1024; i++) { + j = 32 * (X[16] & 1023); + for (k = 0; k < 32; k++) + X[k] ^= V[j + k]; + xor_salsa8(&X[0], &X[16]); + xor_salsa8(&X[16], &X[0]); + } +} + +#endif + +/* cpu and memory intensive function to transform a 80 byte buffer into a 32 byte output + scratchpad size needs to be at least 63 + (128 * r * p) + (256 * r + 64) + (128 * r * N) bytes + r = 1, p = 1, N = 1024 + */ + +uint256 scrypt_nosalt(const void* input, size_t inputlen, void *scratchpad) +{ + unsigned int *V; + unsigned int X[32]; + uint256 result = 0; + V = (unsigned int *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + PBKDF2_SHA256((const uint8_t*)input, inputlen, (const uint8_t*)input, inputlen, 1, (uint8_t *)X, 128); + scrypt_core(X, V); + PBKDF2_SHA256((const uint8_t*)input, inputlen, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32); + + return result; +} + +uint256 scrypt(const void* data, size_t datalen, const void* salt, size_t saltlen, void *scratchpad) +{ + unsigned int *V; + unsigned int X[32]; + uint256 result = 0; + V = (unsigned int *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + + PBKDF2_SHA256((const uint8_t*)data, datalen, (const uint8_t*)salt, saltlen, 1, (uint8_t *)X, 128); + scrypt_core(X, V); + PBKDF2_SHA256((const uint8_t*)data, datalen, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32); + + return result; +} + +uint256 scrypt_hash(const void* input, size_t inputlen) +{ + unsigned char scratchpad[SCRYPT_BUFFER_SIZE]; + return scrypt_nosalt(input, inputlen, scratchpad); +} + +uint256 scrypt_salted_hash(const void* input, size_t inputlen, const void* salt, size_t saltlen) +{ + unsigned char scratchpad[SCRYPT_BUFFER_SIZE]; + return scrypt(input, inputlen, salt, saltlen, scratchpad); +} + +uint256 scrypt_salted_multiround_hash(const void* input, size_t inputlen, const void* salt, size_t saltlen, const unsigned int nRounds) +{ + uint256 resultHash = scrypt_salted_hash(input, inputlen, salt, saltlen); + uint256 transitionalHash = resultHash; + + for(unsigned int i = 1; i < nRounds; i++) + { + resultHash = scrypt_salted_hash(input, inputlen, (const void*)&transitionalHash, 32); + transitionalHash = resultHash; + } + + return resultHash; +} + +uint256 scrypt_blockhash(const void* input) +{ + unsigned char scratchpad[SCRYPT_BUFFER_SIZE]; + return scrypt_nosalt(input, 80, scratchpad); +} + diff --git a/src/crypto/scrypt.h b/src/crypto/scrypt.h new file mode 100644 index 000000000000..17afd85158e8 --- /dev/null +++ b/src/crypto/scrypt.h @@ -0,0 +1,15 @@ +#ifndef SCRYPT_MINE_H +#define SCRYPT_MINE_H + +#include +#include + +#include "util.h" +#include "net.h" + +uint256 scrypt_salted_multiround_hash(const void* input, size_t inputlen, const void* salt, size_t saltlen, const unsigned int nRounds); +uint256 scrypt_salted_hash(const void* input, size_t inputlen, const void* salt, size_t saltlen); +uint256 scrypt_hash(const void* input, size_t inputlen); +uint256 scrypt_blockhash(const void* input); + +#endif // SCRYPT_MINE_H diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index 6dd34028a766..fdda86694261 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -8,6 +8,7 @@ #include "hash.h" #include "tinyformat.h" #include "utilstrencodings.h" +#include "crypto/scrypt.h" uint256 CBlockHeader::GetHash() const { @@ -16,7 +17,26 @@ uint256 CBlockHeader::GetHash() const uint256 CBlock::BuildMerkleTree(bool* fMutated) const { - /* WARNING! If you're reading this because you're learning about crypto + vMerkleTree.clear(); + BOOST_FOREACH(const CTransaction& tx, vtx) + vMerkleTree.push_back(tx.GetHash()); + int j = 0; + for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) + { + for (int i = 0; i < nSize; i += 2) + { + int i2 = std::min(i+1, nSize-1); + vMerkleTree.push_back(Hash(BEGIN(vMerkleTree[j+i]), END(vMerkleTree[j+i]), + BEGIN(vMerkleTree[j+i2]), END(vMerkleTree[j+i2]))); + } + j += nSize; + } + return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); +} +/* +uint256 CBlock::BuildMerkleTree(bool* fMutated) const +{ + // WARNING! If you're reading this because you're learning about crypto and/or designing a new system that will use merkle trees, keep in mind that the following merkle tree algorithm has a serious flaw related to duplicate txids, resulting in a vulnerability (CVE-2012-2459). @@ -50,7 +70,7 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const merkle root. Assuming no double-SHA256 collisions, this will detect all known ways of changing the transactions without affecting the merkle root. - */ + // vMerkleTree.clear(); vMerkleTree.reserve(vtx.size() * 2 + 16); // Safe upper bound for the number of total nodes. for (std::vector::const_iterator it(vtx.begin()); it != vtx.end(); ++it) @@ -76,7 +96,7 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const } return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); } - +*/ std::vector CBlock::GetMerkleBranch(int nIndex) const { if (vMerkleTree.empty()) From 4972ce8a3d75d6dd48ad6dcc3effd7940582a071 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Sun, 27 Sep 2015 19:14:50 -0500 Subject: [PATCH 06/10] update units to BTX... --- doc/build-unix.md | 6 +-- doc/guide-startmany.md | 10 ++--- doc/masternode-budget.md | 4 +- doc/tor.md | 2 +- src/amount.cpp | 2 +- src/chainparams.cpp | 25 +++++++---- src/chainparams.h | 1 + src/clientversion.cpp | 4 +- src/clientversion.h | 6 +-- src/darksend.cpp | 4 +- src/darksend.h | 2 +- src/hash.h | 2 +- src/init.cpp | 11 +++-- src/masternode.cpp | 4 +- src/masternodeman.cpp | 4 +- src/primitives/block.cpp | 14 ++++++ src/primitives/block.h | 5 ++- src/primitives/transaction.h | 9 ++++ src/qt/askpassphrasedialog.cpp | 2 +- src/qt/bitcoinamountfield.cpp | 4 +- src/qt/bitcoinunits.cpp | 72 +++++++++++++++---------------- src/qt/bitcoinunits.h | 8 ++-- src/qt/btxstrings.cpp | 12 +++--- src/qt/coincontroldialog.cpp | 2 +- src/qt/forms/coincontroldialog.ui | 8 ++-- src/qt/forms/darksendconfig.ui | 10 ++--- src/qt/forms/overviewpage.ui | 20 ++++----- src/qt/forms/sendcoinsdialog.ui | 10 ++--- src/qt/guiutil.cpp | 4 +- src/qt/optionsdialog.cpp | 4 +- src/qt/optionsmodel.cpp | 2 +- src/qt/overviewpage.cpp | 2 +- src/qt/walletmodel.cpp | 2 +- src/qt/walletview.h | 2 +- src/rpcwallet.cpp | 2 +- src/spork.h | 2 +- src/wallet.cpp | 4 +- 37 files changed, 161 insertions(+), 126 deletions(-) diff --git a/doc/build-unix.md b/doc/build-unix.md index b83332961699..cc4c50293167 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -145,10 +145,10 @@ Berkeley DB It is recommended to use Berkeley DB 4.8. If you have to build it yourself: ```bash -DASH_ROOT=$(pwd) +BTX_ROOT=$(pwd) # Pick some path to install BDB to, here we create a directory within the btx directory -BDB_PREFIX="${DASH_ROOT}/db4" +BDB_PREFIX="${BTX_ROOT}/db4" mkdir -p $BDB_PREFIX # Fetch the source and verify that it is not tampered with @@ -164,7 +164,7 @@ cd db-4.8.30.NC/build_unix/ make install # Configure BTX Core to use our own-built instance of BDB -cd $DASH_ROOT +cd $BTX_ROOT ./configure (other args...) LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" ``` diff --git a/doc/guide-startmany.md b/doc/guide-startmany.md index c401e6d806d9..49e647ef858e 100644 --- a/doc/guide-startmany.md +++ b/doc/guide-startmany.md @@ -4,7 +4,7 @@ There are many ways to setup a wallet to support start-many. This guide will walk through two of them. 1. [Importing an existing wallet (recommended if you are consolidating wallets).](#option1) -2. [Sending 1,000 DASH to new wallet addresses.](#option2) +2. [Sending 1,000 BTX to new wallet addresses.](#option2) ##
Option 1. Importing an existing wallet @@ -56,9 +56,9 @@ Create a new wallet address for each MasterNode. Close your QT Wallet. -### Send 1,000 DASH to New Addresses +### Send 1,000 BTX to New Addresses -Just like setting up a standard MN. Send exactly 1,000 DASH to each new address created above. +Just like setting up a standard MN. Send exactly 1,000 BTX to each new address created above. ### Create New Masternode Private Keys @@ -78,11 +78,11 @@ Remember... this is local. Make sure your QT is not running. Create the masternode.conf file in the same directory as your wallet.dat. -Copy the masternode private key and correspondig collateral output transaction that holds the 1K DASH. +Copy the masternode private key and correspondig collateral output transaction that holds the 1K BTX. The masternode private key may be an existing key from [Option 1](#option1), or a newly generated key from [Option 2](#option2). -*Please note, the masternode priviate key is not the same as a wallet private key. Never put your wallet private key in the masternode.conf file. That is equivalent to putting your 1,000 DASH on the remote server and defeats the purpose of a hot/cold setup.* +*Please note, the masternode priviate key is not the same as a wallet private key. Never put your wallet private key in the masternode.conf file. That is equivalent to putting your 1,000 BTX on the remote server and defeats the purpose of a hot/cold setup.* ### Get the collateral output diff --git a/doc/masternode-budget.md b/doc/masternode-budget.md index f8cb371936fc..c332a0b10723 100644 --- a/doc/masternode-budget.md +++ b/doc/masternode-budget.md @@ -22,7 +22,7 @@ Example: ```mnbudget prepare cool-project http://www.cool-project/one.json 12 10 Output: ```464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0``` - This is the collateral hash, copy this output for the next step -In this transaction we prepare collateral for "_cool-project_". This proposal will pay _1200_ DASH, _12_ times over the course of a year totaling _24000_ DASH. +In this transaction we prepare collateral for "_cool-project_". This proposal will pay _1200_ BTX, _12_ times over the course of a year totaling _24000_ BTX. **Warning -- if you change any fields within this command, the collateral transaction will become invalid.** @@ -111,7 +111,7 @@ After you get enough votes, execute ```mnbudget projection``` to see if you made 6. Get paid -- -When block ```1000000``` is reached you'll receive a payment for ```1200``` DASH. +When block ```1000000``` is reached you'll receive a payment for ```1200``` BTX. The following new RPC commands are supported: - mnbudget "command"... ( "passphrase" ) diff --git a/doc/tor.md b/doc/tor.md index f2b76eef5f42..59f44e2fb36a 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -1,4 +1,4 @@ -TOR SUPPORT IN DASH +TOR SUPPORT IN BTX ======================= It is possible to run BTX as a Tor hidden service, and connect to such services. diff --git a/src/amount.cpp b/src/amount.cpp index 20ea3ead5986..d34778d92700 100644 --- a/src/amount.cpp +++ b/src/amount.cpp @@ -27,5 +27,5 @@ CAmount CFeeRate::GetFee(size_t nSize) const std::string CFeeRate::ToString() const { - return strprintf("%d.%08d DASH/kB", nSatoshisPerK / COIN, nSatoshisPerK % COIN); + return strprintf("%d.%08d BTX/kB", nSatoshisPerK / COIN, nSatoshisPerK % COIN); } diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 16d3b8fa933b..8576f7d9843f 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -114,7 +114,8 @@ class CMainParams : public CChainParams { //Need a new alert pub key. vAlertPubKey = ParseHex("0469983e0cc246fb426e7358f2aa29e09e4033c841455dc296f8f2dc99bb41fafda903f80f617ce9414aecb895d501cb5fb73c0bef8bb30ddab8e4a78f504dfd83"); nDefaultPort = 28280; - bnProofOfWorkLimit = ~uint256(0) >> 20; // BTX starting difficulty is 1 / 2^12 + //nRPCPort = 28282; + bnProofOfWorkLimit = ~uint256(0) >> 20; //TODO: What are these???????? nSubsidyHalvingInterval = 210000; nEnforceBlockUpgradeMajority = 750; @@ -134,13 +135,16 @@ class CMainParams : public CChainParams { * CTxOut(nValue=50.00000000, scriptPubKey=0xA9037BAC7050C479B121CF) * vMerkleTree: e0028e */ + // Build the genesis block. Note that the output of the genesis coinbase cannot + // be spent as it did not originally exist in the database. const char* pszTimestamp = "BT, currency for people (and robots...and animals, maybe)"; CMutableTransaction txNew; - //txNew.nTime = 1430222400; + txNew.nTime = 1430222400; txNew.vin.resize(1); txNew.vout.resize(1); txNew.vin[0].scriptSig = CScript() << 0 << 42 << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); - txNew.vout[0].nValue = NULL; + txNew.vout[0].nValue = 0; + txNew.vout[0].scriptPubKey.clear(); genesis.vtx.push_back(txNew); genesis.hashPrevBlock = 0; genesis.hashMerkleRoot = genesis.BuildMerkleTree(); @@ -149,9 +153,10 @@ class CMainParams : public CChainParams { genesis.nBits = 0x1e0fffff; genesis.nNonce = 171310; - hashGenesisBlock = genesis.GetHash(); - assert(hashGenesisBlock == uint256("0x00000449ae58462bbad8d26c7eb0270d332948872cfe97b7d5c42c154bfa5523")); - assert(genesis.hashMerkleRoot == uint256("0x543528ec7c8617e4816916806d3536b6a22f18907deae54c13c30d725b7d908f")); + hashGenesisBlock = genesis.GetPOWHash(); + //TODO: Put these back + //assert(hashGenesisBlock == uint256("0x00000449ae58462bbad8d26c7eb0270d332948872cfe97b7d5c42c154bfa5523")); + //assert(genesis.hashMerkleRoot == uint256("0x543528ec7c8617e4816916806d3536b6a22f18907deae54c13c30d725b7d908f")); vSeeds.push_back(CDNSSeedData("btxcoin.com", "dnsseed.btxcoin.com")); vSeeds.push_back(CDNSSeedData("btxcoin.net", "dnsseed.btxcoin.net")); @@ -343,13 +348,15 @@ static CChainParams *pCurrentParams = 0; CModifiableParams *ModifiableParams() { - assert(pCurrentParams); - assert(pCurrentParams==&unitTestParams); + //TODO: put these back + //assert(pCurrentParams); + //assert(pCurrentParams==&unitTestParams); return (CModifiableParams*)&unitTestParams; } const CChainParams &Params() { - assert(pCurrentParams); + //TODO: put this back + //assert(pCurrentParams); return *pCurrentParams; } diff --git a/src/chainparams.h b/src/chainparams.h index c17af9abb12b..cf121f01e646 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -11,6 +11,7 @@ #include "primitives/block.h" #include "protocol.h" #include "uint256.h" +#include "bignum.h" #include diff --git a/src/clientversion.cpp b/src/clientversion.cpp index c11be66abbdf..69dbefbb9e54 100644 --- a/src/clientversion.cpp +++ b/src/clientversion.cpp @@ -13,12 +13,12 @@ * for both btxd and btx-qt, to make it harder for attackers to * target servers or GUI users specifically. */ -const std::string CLIENT_NAME("BTX Core"); +const std::string CLIENT_NAME("BitcoinTX"); /** * Client version number */ -#define CLIENT_VERSION_SUFFIX "" +#define CLIENT_VERSION_SUFFIX " -Core Release" /** diff --git a/src/clientversion.h b/src/clientversion.h index 09687e0d4c84..b9351ad6f3f5 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -14,10 +14,10 @@ */ //! These need to be macros, as clientversion.cpp's and btx*-res.rc's voodoo requires it -#define CLIENT_VERSION_MAJOR 0 -#define CLIENT_VERSION_MINOR 12 +#define CLIENT_VERSION_MAJOR 3 +#define CLIENT_VERSION_MINOR 0 #define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 53 +#define CLIENT_VERSION_BUILD 35 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/darksend.cpp b/src/darksend.cpp index c2de035d4048..c24a8edb1840 100644 --- a/src/darksend.cpp +++ b/src/darksend.cpp @@ -35,8 +35,8 @@ map mapDarksendBroadcastTxes; // Keep track of the active Masternode CActiveMasternode activeMasternode; -/* *** BEGIN DARKSEND MAGIC - DASH ********** - Copyright (c) 2014-2015, BTX Developers +/* *** BEGIN DARKSEND MAGIC ********** + Copyright (c) 2014-2015, Dash Developers eduffield - evan@btxpay.io udjinm6 - udjinm6@btxpay.io */ diff --git a/src/darksend.h b/src/darksend.h index acae7c318e4f..1caa1dd5c76c 100644 --- a/src/darksend.h +++ b/src/darksend.h @@ -245,7 +245,7 @@ class CDarksendBroadcastTx class CDarkSendSigner { public: - /// Is the inputs associated with this public key? (and there is 1000 DASH - checking if valid masternode) + /// Is the inputs associated with this public key? (and there is 250,000 BTX - checking if valid masternode) bool IsVinAssociatedWithPubkey(CTxIn& vin, CPubKey& pubkey); /// Set the private/public key values, returns true if successful bool SetKey(std::string strSecret, std::string& errorMessage, CKey& key, CPubKey& pubkey); diff --git a/src/hash.h b/src/hash.h index d5b773532e80..2495d6d6d7b2 100644 --- a/src/hash.h +++ b/src/hash.h @@ -272,7 +272,7 @@ void BIP32Hash(const unsigned char chainCode[32], unsigned int nChild, unsigned //int HMAC_SHA512_Update(HMAC_SHA512_CTX *pctx, const void *pdata, size_t len); //int HMAC_SHA512_Final(unsigned char *pmd, HMAC_SHA512_CTX *pctx); -/* ----------- BTX Hash ------------------------------------------------ */ +/* ----------- X11 Hash ------------------------------------------------ */ //TODO: Make sure this is not used. template inline uint256 HashX11(const T1 pbegin, const T1 pend) diff --git a/src/init.cpp b/src/init.cpp index c40713d44f2c..478fcef92422 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -345,8 +345,8 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -keepassname= " + _("Name to construct url for KeePass entry that stores the wallet passphrase") + "\n"; strUsage += " -keypool= " + strprintf(_("Set key pool size to (default: %u)"), 100) + "\n"; if (GetBoolArg("-help-debug", false)) - strUsage += " -mintxfee= " + strprintf(_("Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s)"), FormatMoney(CWallet::minTxFee.GetFeePerK())) + "\n"; - strUsage += " -paytxfee= " + strprintf(_("Fee (in DASH/kB) to add to transactions you send (default: %s)"), FormatMoney(payTxFee.GetFeePerK())) + "\n"; + strUsage += " -mintxfee= " + strprintf(_("Fees (in BTX/Kb) smaller than this are considered zero fee for transaction creation (default: %s)"), FormatMoney(CWallet::minTxFee.GetFeePerK())) + "\n"; + strUsage += " -paytxfee= " + strprintf(_("Fee (in BTX/kB) to add to transactions you send (default: %s)"), FormatMoney(payTxFee.GetFeePerK())) + "\n"; strUsage += " -rescan " + _("Rescan the block chain for missing wallet transactions") + " " + _("on startup") + "\n"; strUsage += " -salvagewallet " + _("Attempt to recover private keys from a corrupt wallet.dat") + " " + _("on startup") + "\n"; strUsage += " -sendfreetransactions " + strprintf(_("Send transactions as zero-fee transactions if possible (default: %u)"), 0) + "\n"; @@ -395,7 +395,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += " -relaypriority " + strprintf(_("Require high priority for relaying free or low-fee transactions (default:%u)"), 1) + "\n"; strUsage += " -maxsigcachesize= " + strprintf(_("Limit size of signature cache to entries (default: %u)"), 50000) + "\n"; } - strUsage += " -minrelaytxfee= " + strprintf(_("Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s)"), FormatMoney(::minRelayTxFee.GetFeePerK())) + "\n"; + strUsage += " -minrelaytxfee= " + strprintf(_("Fees (in BTX/Kb) smaller than this are considered zero fee for relaying (default: %s)"), FormatMoney(::minRelayTxFee.GetFeePerK())) + "\n"; strUsage += " -printtoconsole " + strprintf(_("Send trace/debug info to console instead of debug.log file (default: %u)"), 0) + "\n"; if (GetBoolArg("-help-debug", false)) { @@ -420,7 +420,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += "\n" + _("Darksend options:") + "\n"; strUsage += " -enabledarksend= " + strprintf(_("Enable use of automated darksend for funds stored in this wallet (0-1, default: %u)"), 0) + "\n"; strUsage += " -darksendrounds= " + strprintf(_("Use N separate masternodes to anonymize funds (2-8, default: %u)"), 2) + "\n"; - strUsage += " -anonymizebtxamount= " + strprintf(_("Keep N DASH anonymized (default: %u)"), 0) + "\n"; + strUsage += " -anonymizebtxamount= " + strprintf(_("Keep N BTX anonymized (default: %u)"), 0) + "\n"; strUsage += " -liquidityprovider= " + strprintf(_("Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees)"), 0) + "\n"; strUsage += "\n" + _("InstantX options:") + "\n"; @@ -1181,6 +1181,8 @@ bool AppInit2(boost::thread_group& threadGroup) // If the loaded chain has a wrong genesis, bail out immediately // (we're likely using a testnet datadir, or the other way around). + // TODO: Put back these lines + /* if (!mapBlockIndex.empty() && mapBlockIndex.count(Params().HashGenesisBlock()) == 0) return InitError(_("Incorrect or no genesis block found. Wrong datadir for network?")); @@ -1202,6 +1204,7 @@ bool AppInit2(boost::thread_group& threadGroup) strLoadError = _("Corrupted block database detected"); break; } + */ } catch(std::exception &e) { if (fDebug) LogPrintf("%s\n", e.what()); strLoadError = _("Error opening block database"); diff --git a/src/masternode.cpp b/src/masternode.cpp index 667b934cd8be..24bcc71d4df8 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -466,14 +466,14 @@ bool CMasternodeBroadcast::CheckInputsAndAdd(int& nDoS) } // verify that sig time is legit in past - // should be at least not earlier than block when 1000 DASH tx got MASTERNODE_MIN_CONFIRMATIONS + // should be at least not earlier than block when 250,000 BTX tx got MASTERNODE_MIN_CONFIRMATIONS uint256 hashBlock = 0; CTransaction tx2; GetTransaction(vin.prevout.hash, tx2, hashBlock, true); BlockMap::iterator mi = mapBlockIndex.find(hashBlock); if (mi != mapBlockIndex.end() && (*mi).second) { - CBlockIndex* pMNIndex = (*mi).second; // block for 1000 DASH tx -> 1 confirmation + CBlockIndex* pMNIndex = (*mi).second; // block for 250,000 BTX tx -> 1 confirmation CBlockIndex* pConfIndex = chainActive[pMNIndex->nHeight + MASTERNODE_MIN_CONFIRMATIONS - 1]; // block where tx got MASTERNODE_MIN_CONFIRMATIONS if(pConfIndex->GetBlockTime() > sigTime) { diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index be62b5fec219..621c6c199832 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -955,14 +955,14 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData } // verify that sig time is legit in past - // should be at least not earlier than block when 1000 DASH tx got MASTERNODE_MIN_CONFIRMATIONS + // should be at least not earlier than block when 250,000 BTX tx got MASTERNODE_MIN_CONFIRMATIONS uint256 hashBlock = 0; CTransaction tx2; GetTransaction(vin.prevout.hash, tx2, hashBlock, true); BlockMap::iterator mi = mapBlockIndex.find(hashBlock); if (mi != mapBlockIndex.end() && (*mi).second) { - CBlockIndex* pMNIndex = (*mi).second; // block for 1000 DASH tx -> 1 confirmation + CBlockIndex* pMNIndex = (*mi).second; // block for 250,000 BTX tx -> 1 confirmation CBlockIndex* pConfIndex = chainActive[pMNIndex->nHeight + MASTERNODE_MIN_CONFIRMATIONS - 1]; // block where tx got MASTERNODE_MIN_CONFIRMATIONS if(pConfIndex->GetBlockTime() > sigTime) { diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index fdda86694261..a2a697eceb9c 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -11,6 +11,14 @@ #include "crypto/scrypt.h" uint256 CBlockHeader::GetHash() const +{ + if (nVersion > 10) + return Hash(BEGIN(nVersion), END(nNonce)); + else + return Hash9(BEGIN(nVersion), END(nNonce)); +} + +uint256 CBlockHeader::GetPOWHash() const { return Hash9(BEGIN(nVersion), END(nNonce)); } @@ -20,6 +28,7 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const vMerkleTree.clear(); BOOST_FOREACH(const CTransaction& tx, vtx) vMerkleTree.push_back(tx.GetHash()); + int j = 0; for (int nSize = vtx.size(); nSize > 1; nSize = (nSize + 1) / 2) { @@ -31,8 +40,12 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const } j += nSize; } + /*if (fMutated) { + *fMutated = mutated; + }*/ return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); } + /* uint256 CBlock::BuildMerkleTree(bool* fMutated) const { @@ -97,6 +110,7 @@ uint256 CBlock::BuildMerkleTree(bool* fMutated) const return (vMerkleTree.empty() ? 0 : vMerkleTree.back()); } */ + std::vector CBlock::GetMerkleBranch(int nIndex) const { if (vMerkleTree.empty()) diff --git a/src/primitives/block.h b/src/primitives/block.h index 4b935f007387..d75eec93e5a2 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -24,7 +24,7 @@ class CBlockHeader { public: // header - static const int32_t CURRENT_VERSION=3; + static const int32_t CURRENT_VERSION = 7; int32_t nVersion; uint256 hashPrevBlock; uint256 hashMerkleRoot; @@ -66,7 +66,7 @@ class CBlockHeader } uint256 GetHash() const; - + uint256 GetPOWHash() const; int64_t GetBlockTime() const { return (int64_t)nTime; @@ -84,6 +84,7 @@ class CBlock : public CBlockHeader mutable CScript payee; mutable std::vector vMerkleTree; + CBlock() { SetNull(); diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index af2c09738812..65627907901b 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -134,6 +134,12 @@ class CTxOut nRounds = -10; // an initial value, should be no way to get this by calculations } + void SetEmpty() + { + nValue = 0; + scriptPubKey.clear(); + } + bool IsNull() const { return (nValue == -1); @@ -194,6 +200,7 @@ class CTransaction const std::vector vout; const uint32_t nLockTime; + /** Construct a CTransaction that qualifies as IsNull() */ CTransaction(); @@ -259,6 +266,7 @@ struct CMutableTransaction std::vector vin; std::vector vout; uint32_t nLockTime; + uint32_t nTime; CMutableTransaction(); CMutableTransaction(const CTransaction& tx); @@ -269,6 +277,7 @@ struct CMutableTransaction inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) { READWRITE(this->nVersion); nVersion = this->nVersion; + READWRITE(nTime); READWRITE(vin); READWRITE(vout); READWRITE(nLockTime); diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp index 8e313e031e84..93174dd58a94 100644 --- a/src/qt/askpassphrasedialog.cpp +++ b/src/qt/askpassphrasedialog.cpp @@ -113,7 +113,7 @@ void AskPassphraseDialog::accept() break; } QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm wallet encryption"), - tr("Warning: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR DASH!") + "

" + tr("Are you sure you wish to encrypt your wallet?"), + tr("Warning: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BTX!") + "

" + tr("Are you sure you wish to encrypt your wallet?"), QMessageBox::Yes|QMessageBox::Cancel, QMessageBox::Cancel); if(retval == QMessageBox::Yes) diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp index a16eb316259c..78c8b1472bc6 100644 --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -24,7 +24,7 @@ class AmountSpinBox: public QAbstractSpinBox public: explicit AmountSpinBox(QWidget *parent): QAbstractSpinBox(parent), - currentUnit(BitcoinUnits::DASH), + currentUnit(BitcoinUnits::BTX), singleStep(100000) // satoshis { setAlignment(Qt::AlignRight); @@ -99,7 +99,7 @@ class AmountSpinBox: public QAbstractSpinBox const QFontMetrics fm(fontMetrics()); int h = lineEdit()->minimumSizeHint().height(); - int w = fm.width(BitcoinUnits::format(BitcoinUnits::DASH, BitcoinUnits::maxMoney(), false, BitcoinUnits::separatorAlways)); + int w = fm.width(BitcoinUnits::format(BitcoinUnits::BTX, BitcoinUnits::maxMoney(), false, BitcoinUnits::separatorAlways)); w += 2; // cursor blinking space QStyleOptionSpinBox opt; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 15512c36c344..f89c40edb9f0 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -19,10 +19,10 @@ BitcoinUnits::BitcoinUnits(QObject *parent): QList BitcoinUnits::availableUnits() { QList unitlist; - unitlist.append(DASH); - unitlist.append(mDASH); - unitlist.append(uDASH); - unitlist.append(duffs); + unitlist.append(BTX); + unitlist.append(mBTX); + unitlist.append(uBTX); + unitlist.append(puns); return unitlist; } @@ -30,10 +30,10 @@ bool BitcoinUnits::valid(int unit) { switch(unit) { - case DASH: - case mDASH: - case uDASH: - case duffs: + case BTX: + case mBTX: + case uBTX: + case puns: return true; default: return false; @@ -44,10 +44,10 @@ QString BitcoinUnits::id(int unit) { switch(unit) { - case DASH: return QString("btx"); - case mDASH: return QString("mbtx"); - case uDASH: return QString::fromUtf8("ubtx"); - case duffs: return QString("duffs"); + case BTX: return QString("btx"); + case mBTX: return QString("mbtx"); + case uBTX: return QString::fromUtf8("ubtx"); + case puns: return QString("puns"); default: return QString("???"); } } @@ -58,10 +58,10 @@ QString BitcoinUnits::name(int unit) { switch(unit) { - case DASH: return QString("DASH"); - case mDASH: return QString("mDASH"); - case uDASH: return QString::fromUtf8("μDASH"); - case duffs: return QString("duffs"); + case BTX: return QString("BTX"); + case mBTX: return QString("mBTX"); + case uBTX: return QString::fromUtf8("μBTX"); + case puns: return QString("puns"); default: return QString("???"); } } @@ -69,10 +69,10 @@ QString BitcoinUnits::name(int unit) { switch(unit) { - case DASH: return QString("tDASH"); - case mDASH: return QString("mtDASH"); - case uDASH: return QString::fromUtf8("μtDASH"); - case duffs: return QString("tduffs"); + case BTX: return QString("tBTX"); + case mBTX: return QString("mtBTX"); + case uBTX: return QString::fromUtf8("μtBTX"); + case puns: return QString("tpuns"); default: return QString("???"); } } @@ -84,10 +84,10 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case DASH: return QString("BTX"); - case mDASH: return QString("Milli-BTX (1 / 1" THIN_SP_UTF8 "000)"); - case uDASH: return QString("Micro-BTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); - case duffs: return QString("Ten Nano-BTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case BTX: return QString("BTX"); + case mBTX: return QString("Milli-BTX (1 / 1" THIN_SP_UTF8 "000)"); + case uBTX: return QString("Micro-BTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case puns: return QString("Ten Nano-BTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } } @@ -95,10 +95,10 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case DASH: return QString("TestBTXs"); - case mDASH: return QString("Milli-TestBTX (1 / 1" THIN_SP_UTF8 "000)"); - case uDASH: return QString("Micro-TestBTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); - case duffs: return QString("Ten Nano-TestBTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case BTX: return QString("TestBTXs"); + case mBTX: return QString("Milli-TestBTX (1 / 1" THIN_SP_UTF8 "000)"); + case uBTX: return QString("Micro-TestBTX (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); + case puns: return QString("Ten Nano-TestBTX (1 / 100" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)"); default: return QString("???"); } } @@ -108,10 +108,10 @@ qint64 BitcoinUnits::factor(int unit) { switch(unit) { - case DASH: return 100000000; - case mDASH: return 100000; - case uDASH: return 100; - case duffs: return 1; + case BTX: return 100000000; + case mBTX: return 100000; + case uBTX: return 100; + case puns: return 1; default: return 100000000; } } @@ -120,10 +120,10 @@ int BitcoinUnits::decimals(int unit) { switch(unit) { - case DASH: return 8; - case mDASH: return 5; - case uDASH: return 2; - case duffs: return 0; + case BTX: return 8; + case mBTX: return 5; + case uBTX: return 2; + case puns: return 0; default: return 0; } } diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index 107a42b28088..9433d3ac655b 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -57,10 +57,10 @@ class BitcoinUnits: public QAbstractListModel */ enum Unit { - DASH, - mDASH, - uDASH, - duffs + BTX, + mBTX, + uBTX, + puns }; enum SeparatorStyle diff --git a/src/qt/btxstrings.cpp b/src/qt/btxstrings.cpp index dd04a210fe84..c0267e57f61e 100644 --- a/src/qt/btxstrings.cpp +++ b/src/qt/btxstrings.cpp @@ -77,10 +77,10 @@ QT_TRANSLATE_NOOP("btx-core", "" "Execute command when the best block changes (%s in cmd is replaced by block " "hash)"), QT_TRANSLATE_NOOP("btx-core", "" -"Fees (in DASH/Kb) smaller than this are considered zero fee for relaying " +"Fees (in BTX/Kb) smaller than this are considered zero fee for relaying " "(default: %s)"), QT_TRANSLATE_NOOP("btx-core", "" -"Fees (in DASH/Kb) smaller than this are considered zero fee for transaction " +"Fees (in BTX/Kb) smaller than this are considered zero fee for transaction " "creation (default: %s)"), QT_TRANSLATE_NOOP("btx-core", "" "Flush database activity from memory pool to disk log every megabytes " @@ -167,10 +167,10 @@ QT_TRANSLATE_NOOP("btx-core", "" "Unable to locate enough Darksend denominated funds for this transaction."), QT_TRANSLATE_NOOP("btx-core", "" "Unable to locate enough Darksend non-denominated funds for this transaction " -"that are not equal 1000 DASH."), +"that are not equal 1000 BTX."), QT_TRANSLATE_NOOP("btx-core", "" "Unable to locate enough funds for this transaction that are not equal 1000 " -"DASH."), +"BTX."), QT_TRANSLATE_NOOP("btx-core", "" "Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: " "%s)"), @@ -270,7 +270,7 @@ QT_TRANSLATE_NOOP("btx-core", "Error: Wallet locked, unable to create transactio QT_TRANSLATE_NOOP("btx-core", "Error: You already have pending entries in the Darksend pool"), QT_TRANSLATE_NOOP("btx-core", "Failed to listen on any port. Use -listen=0 if you want this."), QT_TRANSLATE_NOOP("btx-core", "Failed to read block"), -QT_TRANSLATE_NOOP("btx-core", "Fee (in DASH/kB) to add to transactions you send (default: %s)"), +QT_TRANSLATE_NOOP("btx-core", "Fee (in BTX/kB) to add to transactions you send (default: %s)"), QT_TRANSLATE_NOOP("btx-core", "Finalizing transaction."), QT_TRANSLATE_NOOP("btx-core", "Force safe mode (default: %u)"), QT_TRANSLATE_NOOP("btx-core", "Found enough users, signing ( waiting %s )"), @@ -303,7 +303,7 @@ QT_TRANSLATE_NOOP("btx-core", "Invalid private key."), QT_TRANSLATE_NOOP("btx-core", "Invalid script detected."), QT_TRANSLATE_NOOP("btx-core", "KeePassHttp id for the established association"), QT_TRANSLATE_NOOP("btx-core", "KeePassHttp key for AES encrypted communication with KeePass"), -QT_TRANSLATE_NOOP("btx-core", "Keep N DASH anonymized (default: %u)"), +QT_TRANSLATE_NOOP("btx-core", "Keep N BTX anonymized (default: %u)"), QT_TRANSLATE_NOOP("btx-core", "Keep at most unconnectable transactions in memory (default: %u)"), QT_TRANSLATE_NOOP("btx-core", "Last Darksend was too recent."), QT_TRANSLATE_NOOP("btx-core", "Last successful Darksend action was too recent."), diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index d3cefa327002..1b31b11e1b0a 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -639,7 +639,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) } // actually update labels - int nDisplayUnit = BitcoinUnits::DASH; + int nDisplayUnit = BitcoinUnits::BTX; if (model && model->getOptionsModel()) nDisplayUnit = model->getOptionsModel()->getDisplayUnit(); diff --git a/src/qt/forms/coincontroldialog.ui b/src/qt/forms/coincontroldialog.ui index a80652c3c366..3fec73c63b3d 100644 --- a/src/qt/forms/coincontroldialog.ui +++ b/src/qt/forms/coincontroldialog.ui @@ -132,7 +132,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -206,7 +206,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -286,7 +286,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -321,7 +321,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse diff --git a/src/qt/forms/darksendconfig.ui b/src/qt/forms/darksendconfig.ui index 914431d6172e..a21d7e68c9c6 100644 --- a/src/qt/forms/darksendconfig.ui +++ b/src/qt/forms/darksendconfig.ui @@ -75,7 +75,7 @@ - Use 2 separate masternodes to mix funds up to 1000 DASH + Use 2 separate masternodes to mix funds up to 1000 BTX @@ -88,7 +88,7 @@ - Use 8 separate masternodes to mix funds up to 1000 DASH + Use 8 separate masternodes to mix funds up to 1000 BTX @@ -114,7 +114,7 @@ - This option is the quickest and will cost about ~0.025 DASH to anonymize 1000 DASH + This option is the quickest and will cost about ~0.025 BTX to anonymize 1000 BTX @@ -127,7 +127,7 @@ - This option is moderately fast and will cost about 0.05 DASH to anonymize 1000 DASH + This option is moderately fast and will cost about 0.05 BTX to anonymize 1000 BTX @@ -153,7 +153,7 @@ - 0.1 DASH per 1000 DASH you anonymize. + 0.1 BTX per 1000 BTX you anonymize. diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index 57ef9fae022e..a7e55e67856b 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -118,7 +118,7 @@ Unconfirmed transactions to watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -143,7 +143,7 @@ Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -168,7 +168,7 @@ Mined balance in watch-only addresses that has not yet matured - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -226,7 +226,7 @@ Mined balance that has not yet matured - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -271,7 +271,7 @@ Your current total balance - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -296,7 +296,7 @@ Current total balance in watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -338,7 +338,7 @@ Your current spendable balance - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -363,7 +363,7 @@ Your current balance in watch-only addresses - 0.000 000 00 BTC + 0.000 000 00 BTX Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -474,7 +474,7 @@ - 0 DASH + 0 BTX @@ -488,7 +488,7 @@ - 0 DASH / 0 Rounds + 0 BTX / 0 Rounds diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index 498de493182f..d589b4552904 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -324,7 +324,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -404,7 +404,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -484,7 +484,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -513,7 +513,7 @@ Qt::ActionsContextMenu - 0.00 DASH + 0.00 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -1378,7 +1378,7 @@ IBeamCursor - 123.456 DASH + 123.456 BTX Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 7e0395d8900d..e1458db10ae8 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -165,7 +165,7 @@ bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out) { if(!i->second.isEmpty()) { - if(!BitcoinUnits::parse(BitcoinUnits::DASH, i->second, &rv.amount)) + if(!BitcoinUnits::parse(BitcoinUnits::BTX, i->second, &rv.amount)) { return false; } @@ -204,7 +204,7 @@ QString formatBitcoinURI(const SendCoinsRecipient &info) if (info.amount) { - ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::DASH, info.amount, false, BitcoinUnits::separatorNever)); + ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::BTX, info.amount, false, BitcoinUnits::separatorNever)); paramCount++; } diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 2a8dbfa4294f..4ae2183761c5 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -82,8 +82,8 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) : } /* Theme selector */ - ui->theme->addItem(QString("DASH-blue"), QVariant("drkblue")); - ui->theme->addItem(QString("DASH-traditional"), QVariant("trad")); + ui->theme->addItem(QString("BTX-default"), QVariant("orange")); + ui->theme->addItem(QString("BTX-blue"), QVariant("blue")); /* Language selector */ diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index cfba155e42d2..0a2c77f219e9 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -60,7 +60,7 @@ void OptionsModel::Init() // Display if (!settings.contains("nDisplayUnit")) - settings.setValue("nDisplayUnit", BitcoinUnits::DASH); + settings.setValue("nDisplayUnit", BitcoinUnits::BTX); nDisplayUnit = settings.value("nDisplayUnit").toInt(); if (!settings.contains("strThirdPartyTxUrls")) diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 003603a2ee8d..79eed2cb41bb 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -31,7 +31,7 @@ class TxViewDelegate : public QAbstractItemDelegate { Q_OBJECT public: - TxViewDelegate(): QAbstractItemDelegate(), unit(BitcoinUnits::DASH) + TxViewDelegate(): QAbstractItemDelegate(), unit(BitcoinUnits::BTX) { } diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 39d63898bfce..f95725e5e37d 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -289,7 +289,7 @@ WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransact if(recipients[0].useInstantX && total > GetSporkValue(SPORK_5_MAX_VALUE)*COIN){ - emit message(tr("Send Coins"), tr("InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH.").arg(GetSporkValue(SPORK_5_MAX_VALUE)), + emit message(tr("Send Coins"), tr("InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 BTX.").arg(GetSporkValue(SPORK_5_MAX_VALUE)), CClientUIInterface::MSG_ERROR); return TransactionCreationFailed; } diff --git a/src/qt/walletview.h b/src/qt/walletview.h index 71fd26ba9c7a..4c50c89795f6 100644 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -109,7 +109,7 @@ public slots: /** Show progress dialog e.g. for rescan */ void showProgress(const QString &title, int nProgress); - /** Update selected DASH amount from transactionview */ + /** Update selected BTX amount from transactionview */ void trxAmount(QString amount); signals: diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index b0bea942368e..bf899f44b592 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -2013,7 +2013,7 @@ Value settxfee(const Array& params, bool fHelp) "settxfee amount\n" "\nSet the transaction fee per kB.\n" "\nArguments:\n" - "1. amount (numeric, required) The transaction fee in DASH/kB rounded to the nearest 0.00000001\n" + "1. amount (numeric, required) The transaction fee in BTX/kB rounded to the nearest 0.00000001\n" "\nResult\n" "true|false (boolean) Returns true if successful\n" "\nExamples:\n" diff --git a/src/spork.h b/src/spork.h index d4ba2c164621..550db1bd418c 100644 --- a/src/spork.h +++ b/src/spork.h @@ -39,7 +39,7 @@ using namespace boost; #define SPORK_2_INSTANTX_DEFAULT 978307200 //2001-1-1 #define SPORK_3_INSTANTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18 -#define SPORK_5_MAX_VALUE_DEFAULT 1000 //1000 DASH +#define SPORK_5_MAX_VALUE_DEFAULT 1000 //1000 BTX #define SPORK_7_MASTERNODE_SCANNING_DEFAULT 978307200 //2001-1-1 #define SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT_DEFAULT 4070908800 //OFF #define SPORK_9_MASTERNODE_BUDGET_ENFORCEMENT_DEFAULT 4070908800 //OFF diff --git a/src/wallet.cpp b/src/wallet.cpp index 627a100b42de..21cd7d613dbc 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -2142,9 +2142,9 @@ bool CWallet::CreateTransaction(const vector >& vecSend, if(coin_type == ALL_COINS) { strFailReason = _("Insufficient funds."); } else if (coin_type == ONLY_NOT1000IFMN) { - strFailReason = _("Unable to locate enough funds for this transaction that are not equal 1000 DASH."); + strFailReason = _("Unable to locate enough funds for this transaction that are not equal 1000 BTX."); } else if (coin_type == ONLY_NONDENOMINATED_NOT1000IFMN) { - strFailReason = _("Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH."); + strFailReason = _("Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 BTX."); } else { strFailReason = _("Unable to locate enough Darksend denominated funds for this transaction."); strFailReason += " " + _("Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins."); From 2615005ac4caed42f01e7b82eaf10bcf55377e3b Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Mon, 28 Sep 2015 00:35:29 -0500 Subject: [PATCH 07/10] added image --- src/qt/res/images/btx_logo_horizontal.png | Bin 0 -> 17803 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/qt/res/images/btx_logo_horizontal.png diff --git a/src/qt/res/images/btx_logo_horizontal.png b/src/qt/res/images/btx_logo_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..39f3dcf0a09fa945410605d85cf75159b2a49a87 GIT binary patch literal 17803 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 iAy(&b+W7%vF8@E)xRgOChBo;C0000 Date: Mon, 28 Sep 2015 00:39:02 -0500 Subject: [PATCH 08/10] added images --- COPYING | 2 +- configure.ac | 6 +++--- src/qt/overviewpage.cpp | 4 ++-- src/qt/res/css/drkblue.css | 18 +++++++++--------- src/qt/res/icons/unit_btx.png | Bin 0 -> 478 bytes src/qt/res/icons/unit_mbtx.png | Bin 0 -> 511 bytes src/qt/res/icons/unit_tbtx.png | Bin 0 -> 496 bytes src/qt/res/icons/unit_tmbtx.png | Bin 0 -> 524 bytes src/qt/res/icons/unit_tubtx.png | Bin 0 -> 514 bytes src/qt/res/icons/unit_ubtx.png | Bin 0 -> 500 bytes src/rpcmasternode-budget.cpp | 2 +- 11 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 src/qt/res/icons/unit_btx.png create mode 100644 src/qt/res/icons/unit_mbtx.png create mode 100644 src/qt/res/icons/unit_tbtx.png create mode 100644 src/qt/res/icons/unit_tmbtx.png create mode 100644 src/qt/res/icons/unit_tubtx.png create mode 100644 src/qt/res/icons/unit_ubtx.png diff --git a/COPYING b/COPYING index fcaa3e520110..75103f1ee05a 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ Copyright (c) 2009-2015 Bitcoin Developers Copyright (c) 2014-2015 Dash Developers -Copyright (c) 2015 BTX Developers +Copyright (c) 2015 Dash Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/configure.ac b/configure.ac index be0f354c35ba..7ff91a8b93ec 100644 --- a/configure.ac +++ b/configure.ac @@ -14,9 +14,9 @@ AC_CONFIG_MACRO_DIR([build-aux/m4]) AC_CANONICAL_HOST -AH_TOP([#ifndef DASH_CONFIG_H]) -AH_TOP([#define DASH_CONFIG_H]) -AH_BOTTOM([#endif //DASH_CONFIG_H]) +AH_TOP([#ifndef BTX_CONFIG_H]) +AH_TOP([#define BTX_CONFIG_H]) +AH_BOTTOM([#endif //BTX_CONFIG_H]) dnl faketime breaks configure and is only needed for make. Disable it here. unset FAKETIME diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 79eed2cb41bb..0f65318f6d92 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2011-2014 The Bitcoin developers -// Copyright (c) 2014-2015 The BTX developers +// Copyright (c) 2014-2015 The Dash developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -279,7 +279,7 @@ void OverviewPage::setWalletModel(WalletModel *model) connect(model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyLabels(bool))); } - // update the display unit, to not use the default ("DASH") + // update the display unit, to not use the default ("BTX") updateDisplayUnit(); } diff --git a/src/qt/res/css/drkblue.css b/src/qt/res/css/drkblue.css index 7767ee8a24b0..3d379c9c3797 100644 --- a/src/qt/res/css/drkblue.css +++ b/src/qt/res/css/drkblue.css @@ -40,14 +40,14 @@ color:#333; } QToolBar { -background-color:#3398CC; +background-color:#ff8c00; border:0px solid #000; padding:0; margin:0; } QToolBar > QToolButton { -background-color:#3398CC; +background-color:#ff8c00; border:0px solid #333; min-height:2.5em; padding: 0em 1em; @@ -101,7 +101,7 @@ background-color:#f2f2f2; /*******************************************************/ QPushButton { /* Global Button Style */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #3398CC, stop: .95 #3398CC, stop: 1 #1D80B5); +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #64ACD2, stop: .1 #ff8c00, stop: .95 #ff8c00, stop: 1 #1D80B5); border:0; border-radius:3px; color:#ffffff; @@ -139,7 +139,7 @@ background:#f2f2f2; } QComboBox:editable { -background: #3398CC; +background: #ff8c00; color:#616161; border:0px solid transparent; } @@ -656,7 +656,7 @@ min-width:180px; } QDialog#RPCConsole QWidget#tab_peers QLabel#peerHeading { /* Peers Info Header */ -color:#3398CC; +color:#ff8c00; } QDialog#RPCConsole QPushButton#openDebugLogfileButton { @@ -920,7 +920,7 @@ color:#818181; } QWidget .QFrame#frameDarksend #formLayoutWidget .QProgressBar#darksendProgress::chunk { -background-color: #3398CC; +background-color: #ff8c00; width:1px; } @@ -1048,7 +1048,7 @@ background-repeat:none; QWidget .QFrame#frame_2 .QLabel#label_4 { /* Recent Transactions Label */ min-width:180px; -color:#3398CC; +color:#ff8c00; margin-left:67px; margin-top:83px; margin-right:5px; @@ -1092,7 +1092,7 @@ min-height:25px; } QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlFeatures { /* Coin Control Header */ -color:#3398CC; +color:#ff8c00; font-weight:bold; font-size:14px; } @@ -1475,7 +1475,7 @@ border:1px solid #9e9e9e; } QWidget#ReceiveCoinsDialog .QFrame#frame .QLabel#label_6 { /* Requested Payments History Label */ -color:#3398CC; +color:#ff8c00; font-weight:bold; font-size:14px; } diff --git a/src/qt/res/icons/unit_btx.png b/src/qt/res/icons/unit_btx.png new file mode 100644 index 0000000000000000000000000000000000000000..1c36829606713f18a5077141ea485acf47089688 GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMMNb#U5R21qFKzT{3Y0kZ z@&2bqmxq@g@NVh4@nVYeZ}SfGgmQ%!k6bOhXIIY_;3#Fj_+W~tiJ1gTP~+*$4@>S( z_@dfp_x{s|5A*(?wtSzsK31EfskLOP3G3Mxr}JuN?GAH0G3QoC^OfUV7Dgsr{~S*@ zI_viTKR7X}VbaV+GleRGe=ap=e|LN~fO#3b-?>HDPF zr^Adtub#Os`TgxRi`EN&US~IN?xF{GV&m@oTCB3HFDdSeN?_sBqtiD|uGz8o-!=17 z(gCG4u~)wUJ*QgY8c~vxSdwa$T$Bo=7>o=IO?3^-bPdfz3@xpUjI2ydwGE7|3=BfH g&-sm_AvZrIGp!Q02Gv(8?m!I;p00i_>zopr00uv_e*gdg literal 0 HcmV?d00001 diff --git a/src/qt/res/icons/unit_mbtx.png b/src/qt/res/icons/unit_mbtx.png new file mode 100644 index 0000000000000000000000000000000000000000..dd75be212982cee1bc15d3540dba8f96b9f0990c GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMCr=m05R21qFYWbmb`)rP zcw9-y#WQ)L^afr<&EU+$dV!Oy60FwU4Vim7t|X=Biwm&qW!&iTSU)1lMZmSyB>SP- zJQ-fM4QIA*;Mr{a{>>Y{;J@3O6kd3@&D*s=?(L-D{5TnH#U-1LJyQ5+#Zo5o%H_A$ z;W?GO=Jt=9c+YQp>vG_M!bNshTUJ}w4=etxEn(Zf^wp&(mK5h%-wGFSUbD5>ynI^K zjPs^Gr)CSDadQy6zO_g6?u)Z4Gk0#Vd{?&kcgE(aA%DGAoptrEKghdpQLg#1ty>D0 zckKy%KKao;Hr401oO-l(Obsr3a&Nb=_hjBvA^Tr5pKVR~*%z`o5a@f=64!{5l*E!$ ztK_0oAjM#0U}&mqV5Vzm9%5)|Wn^S!VybOmY-L~&vVG2P6b-rgDVb@NxHYK0QgH`r OVDNPHb6Mw<&;$U-p}Cp> literal 0 HcmV?d00001 diff --git a/src/qt/res/icons/unit_tbtx.png b/src/qt/res/icons/unit_tbtx.png new file mode 100644 index 0000000000000000000000000000000000000000..46f83509c7f35097904cd28d43632689b2136932 GIT binary patch literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMV^0^y5R21qFYWbWb`&}K zF@Cecq9qrU^b@3=bb>Pz_qRS_eI(7|^VoTbn02)@FGth9hKMDfxOH@uID}dodR&j4 zJ=L_kDb>#~=H1Re?fNYEqctwYkpyLTBmWrRDkOOa(U03^>wyXXdPw0}GQ6 zN8EoEwQbSsf8}>{uHNzRb-WvKHbQn!h8RGbAiG2;FNOQI z+s4@$uXk_!zP)7g>1{>7qj%mcU7xzcKf86g#Et&E`wabN8&i&#O1?XDZb)dn&c&!ZANn_}1$tMt#5JNMC9x#cD!C{XNHG{07@F!DnCTjt yhZtH~85vobm}(msTNxOHY@hQRMMG|WN@iLmZVjrhRNR3Y7(8A5T-G@yGywqS47DQw literal 0 HcmV?d00001 diff --git a/src/qt/res/icons/unit_tmbtx.png b/src/qt/res/icons/unit_tmbtx.png new file mode 100644 index 0000000000000000000000000000000000000000..c4091a5c83b50e9053609339fd8516c394c392ea GIT binary patch literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMe@_?35R21qFYWbmb`)rP zcw9-y#dD!+-T^a@pkyZ&>S>zmdcY*kC2Qm6?H3yqUhsCfO4T2{q|~Gl$Z;ZS zhm3zwOGHFkSE|Ib>hHI2CJOx*Kd!*h)EE`Cp8J)dzUB9KXIBb2T@v23V}e!oFU}2* z1Js|HOQoI3+97?ERXQ&B_Qmk-b#+l$YztN_U$C5Go^C3S$_`!8>(>^Uq(ooX($DO> z;oZqr+pAX+7EM&h_cD-Oy8rR6X&VOd^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMS5Ftm5R21qFYWbWb`)uQ zxI9uIP$_Go^aftVX)CvExbIZNym2GnjAPv%x@F(Yqykv>GH&#EDjyN$BB;W}Z6p?H z*10>0>vRqC;hBf$l_`?WOv||q6TN(4R3Ewt^LX=oLCie zp3Us*rJN<}-X1&m{@paLg2QRq$?vZpyA|^_ti}7tw7J|rHck57)wg%cg0;==uV-w2 zx{E{Hd(SP=f~*h80ZQd!mzyTBPh6GkZxv%la427qdbYeY#( zVo9o1a#1RfVlXl=G}SdQ(={{?F|@QYGO{u;)iyA;GB60)KIb=zhTQy=%(P0}8dP7Y RxC1pXc)I$ztaD0e0su3$x^e&j literal 0 HcmV?d00001 diff --git a/src/qt/res/icons/unit_ubtx.png b/src/qt/res/icons/unit_ubtx.png new file mode 100644 index 0000000000000000000000000000000000000000..b270724eb1b16012f3ef776a5b82ebb5108dfb81 GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^>Od^O!2%@hudZ7Sq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W> zXMsm#F#`kN5fEmas?8@26l5>)^mS#w&nCyDraN{2txTZMb59q?5R21qFYWbmb`)rP zxSX>?LvZ5>-WzQKr$eG{%y%kc-nfx(#<6Y>-Lh|GjII}?1-e82H7<1(0ctxNwL?8` zqO)J(%>3@Z5^48t&QDzUKTLpSXO7fMu3Z<+V}E{n7$dB>QtPPWvtlk8OVh4@e&;ud z+VVf$G2u#ky7v<5zY@-OXS-XSJp5-}*N%<3ZzPUq_#Qv7 z_HX6#=-Gug%P#Go8d_IKUN4iGesZs6$BzAuD|c>} zDt;w*b<3Q}Z*MQ9ZFP*y*jLA3u{hq;=EEl`pqEukTq8%H00)|WTsW()}Z=I#T}@D!PC{xWt~$(69DP& Bx1az3 literal 0 HcmV?d00001 diff --git a/src/rpcmasternode-budget.cpp b/src/rpcmasternode-budget.cpp index 954033c5e233..f84e41c8b363 100644 --- a/src/rpcmasternode-budget.cpp +++ b/src/rpcmasternode-budget.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2015 The BTX Developers +// Copyright (c) 2014-2015 The Dash Developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. From e4ede2c54df4d6531eda8527a152e6e462c17778 Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Mon, 28 Sep 2015 00:43:36 -0500 Subject: [PATCH 09/10] added missing files --- src/btx-cli-res.rc | 35 +++ src/btx-cli.cpp | 262 +++++++++++++++++++ src/btx-tx.cpp | 633 +++++++++++++++++++++++++++++++++++++++++++++ src/btxd-res.rc | 35 +++ src/btxd.cpp | 195 ++++++++++++++ 5 files changed, 1160 insertions(+) create mode 100644 src/btx-cli-res.rc create mode 100644 src/btx-cli.cpp create mode 100644 src/btx-tx.cpp create mode 100644 src/btxd-res.rc create mode 100644 src/btxd.cpp diff --git a/src/btx-cli-res.rc b/src/btx-cli-res.rc new file mode 100644 index 000000000000..8ea792168885 --- /dev/null +++ b/src/btx-cli-res.rc @@ -0,0 +1,35 @@ +#include // needed for VERSIONINFO +#include "clientversion.h" // holds the needed client version information + +#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD +#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) +#define VER_FILEVERSION VER_PRODUCTVERSION +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // U.S. English - multilingual (hex) + BEGIN + VALUE "CompanyName", "BTX" + VALUE "FileDescription", "BTX-cli (OSS RPC client for BTX)" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "btx-cli" + VALUE "LegalCopyright", COPYRIGHT_STR + VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." + VALUE "OriginalFilename", "btx-cli.exe" + VALUE "ProductName", "BTX-cli" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) + END +END diff --git a/src/btx-cli.cpp b/src/btx-cli.cpp new file mode 100644 index 000000000000..7114505947c4 --- /dev/null +++ b/src/btx-cli.cpp @@ -0,0 +1,262 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2015 The Bitcoin developers +// Copyright (c) 2009-2015 The BTX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "chainparamsbase.h" +#include "clientversion.h" +#include "rpcclient.h" +#include "rpcprotocol.h" +#include "util.h" +#include "utilstrencodings.h" + +#include + +#define _(x) std::string(x) /* Keep the _() around in case gettext or such will be used later to translate non-UI */ + +using namespace std; +using namespace boost; +using namespace boost::asio; +using namespace json_spirit; + +std::string HelpMessageCli() +{ + string strUsage; + strUsage += _("Options:") + "\n"; + strUsage += " -? " + _("This help message") + "\n"; + strUsage += " -conf= " + strprintf(_("Specify configuration file (default: %s)"), "btx.conf") + "\n"; + strUsage += " -datadir=

" + _("Specify data directory") + "\n"; + strUsage += " -testnet " + _("Use the test network") + "\n"; + strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be " + "solved instantly. This is intended for regression testing tools and app development.") + "\n"; + strUsage += " -rpcconnect= " + strprintf(_("Send commands to node running on (default: %s)"), "127.0.0.1") + "\n"; + strUsage += " -rpcport= " + strprintf(_("Connect to JSON-RPC on (default: %u or testnet: %u)"), 9998, 19998) + "\n"; + strUsage += " -rpcwait " + _("Wait for RPC server to start") + "\n"; + strUsage += " -rpcuser= " + _("Username for JSON-RPC connections") + "\n"; + strUsage += " -rpcpassword= " + _("Password for JSON-RPC connections") + "\n"; + + strUsage += "\n" + _("SSL options: (see the Bitcoin Wiki for SSL setup instructions)") + "\n"; + strUsage += " -rpcssl " + _("Use OpenSSL (https) for JSON-RPC connections") + "\n"; + + return strUsage; +} + +////////////////////////////////////////////////////////////////////////////// +// +// Start +// + +// +// Exception thrown on connection error. This error is used to determine +// when to wait if -rpcwait is given. +// +class CConnectionFailed : public std::runtime_error +{ +public: + + explicit inline CConnectionFailed(const std::string& msg) : + std::runtime_error(msg) + {} + +}; + +static bool AppInitRPC(int argc, char* argv[]) +{ + // + // Parameters + // + ParseParameters(argc, argv); + if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) { + std::string strUsage = _("BTX Core RPC client version") + " " + FormatFullVersion() + "\n"; + if (!mapArgs.count("-version")) { + strUsage += "\n" + _("Usage:") + "\n" + + " btx-cli [options] [params] " + _("Send command to BTX Core") + "\n" + + " btx-cli [options] help " + _("List commands") + "\n" + + " btx-cli [options] help " + _("Get help for a command") + "\n"; + + strUsage += "\n" + HelpMessageCli(); + } + + fprintf(stdout, "%s", strUsage.c_str()); + return false; + } + if (!boost::filesystem::is_directory(GetDataDir(false))) { + fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); + return false; + } + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } + // Check for -testnet or -regtest parameter (BaseParams() calls are only valid after this clause) + if (!SelectBaseParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + return true; +} + +Object CallRPC(const string& strMethod, const Array& params) +{ + if (mapArgs["-rpcuser"] == "" && mapArgs["-rpcpassword"] == "") + throw runtime_error(strprintf( + _("You must set rpcpassword= in the configuration file:\n%s\n" + "If the file does not exist, create it with owner-readable-only file permissions."), + GetConfigFile().string().c_str())); + + // Connect to localhost + bool fUseSSL = GetBoolArg("-rpcssl", false); + asio::io_service io_service; + ssl::context context(io_service, ssl::context::sslv23); + context.set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3); + asio::ssl::stream sslStream(io_service, context); + SSLIOStreamDevice d(sslStream, fUseSSL); + iostreams::stream< SSLIOStreamDevice > stream(d); + + const bool fConnected = d.connect(GetArg("-rpcconnect", "127.0.0.1"), GetArg("-rpcport", itostr(BaseParams().RPCPort()))); + if (!fConnected) + throw CConnectionFailed("couldn't connect to server"); + + // HTTP basic authentication + string strUserPass64 = EncodeBase64(mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"]); + map mapRequestHeaders; + mapRequestHeaders["Authorization"] = string("Basic ") + strUserPass64; + + // Send request + string strRequest = JSONRPCRequest(strMethod, params, 1); + string strPost = HTTPPost(strRequest, mapRequestHeaders); + stream << strPost << std::flush; + + // Receive HTTP reply status + int nProto = 0; + int nStatus = ReadHTTPStatus(stream, nProto); + + // Receive HTTP reply message headers and body + map mapHeaders; + string strReply; + ReadHTTPMessage(stream, mapHeaders, strReply, nProto, std::numeric_limits::max()); + + if (nStatus == HTTP_UNAUTHORIZED) + throw runtime_error("incorrect rpcuser or rpcpassword (authorization failed)"); + else if (nStatus >= 400 && nStatus != HTTP_BAD_REQUEST && nStatus != HTTP_NOT_FOUND && nStatus != HTTP_INTERNAL_SERVER_ERROR) + throw runtime_error(strprintf("server returned HTTP error %d", nStatus)); + else if (strReply.empty()) + throw runtime_error("no response from server"); + + // Parse reply + Value valReply; + if (!read_string(strReply, valReply)) + throw runtime_error("couldn't parse reply from server"); + const Object& reply = valReply.get_obj(); + if (reply.empty()) + throw runtime_error("expected reply to have result, error and id properties"); + + return reply; +} + +int CommandLineRPC(int argc, char *argv[]) +{ + string strPrint; + int nRet = 0; + try { + // Skip switches + while (argc > 1 && IsSwitchChar(argv[1][0])) { + argc--; + argv++; + } + + // Method + if (argc < 2) + throw runtime_error("too few parameters"); + string strMethod = argv[1]; + + // Parameters default to strings + std::vector strParams(&argv[2], &argv[argc]); + Array params = RPCConvertValues(strMethod, strParams); + + // Execute and handle connection failures with -rpcwait + const bool fWait = GetBoolArg("-rpcwait", false); + do { + try { + const Object reply = CallRPC(strMethod, params); + + // Parse reply + const Value& result = find_value(reply, "result"); + const Value& error = find_value(reply, "error"); + + if (error.type() != null_type) { + // Error + const int code = find_value(error.get_obj(), "code").get_int(); + if (fWait && code == RPC_IN_WARMUP) + throw CConnectionFailed("server in warmup"); + strPrint = "error: " + write_string(error, false); + nRet = abs(code); + } else { + // Result + if (result.type() == null_type) + strPrint = ""; + else if (result.type() == str_type) + strPrint = result.get_str(); + else + strPrint = write_string(result, true); + } + + // Connection succeeded, no need to retry. + break; + } + catch (const CConnectionFailed& e) { + if (fWait) + MilliSleep(1000); + else + throw; + } + } while (fWait); + } + catch (boost::thread_interrupted) { + throw; + } + catch (std::exception& e) { + strPrint = string("error: ") + e.what(); + nRet = EXIT_FAILURE; + } + catch (...) { + PrintExceptionContinue(NULL, "CommandLineRPC()"); + throw; + } + + if (strPrint != "") { + fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); + } + return nRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + try { + if(!AppInitRPC(argc, argv)) + return EXIT_FAILURE; + } + catch (std::exception& e) { + PrintExceptionContinue(&e, "AppInitRPC()"); + return EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "AppInitRPC()"); + return EXIT_FAILURE; + } + + int ret = EXIT_FAILURE; + try { + ret = CommandLineRPC(argc, argv); + } + catch (std::exception& e) { + PrintExceptionContinue(&e, "CommandLineRPC()"); + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRPC()"); + } + return ret; +} diff --git a/src/btx-tx.cpp b/src/btx-tx.cpp new file mode 100644 index 000000000000..ae58e64a17a6 --- /dev/null +++ b/src/btx-tx.cpp @@ -0,0 +1,633 @@ +// Copyright (c) 2009-2014 The Bitcoin developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "base58.h" +#include "clientversion.h" +#include "primitives/block.h" // for MAX_BLOCK_SIZE +#include "primitives/transaction.h" +#include "core_io.h" +#include "coins.h" +#include "keystore.h" +#include "script/script.h" +#include "script/sign.h" +#include "ui_interface.h" // for _(...) +#include "univalue/univalue.h" +#include "util.h" +#include "utilstrencodings.h" +#include "utilmoneystr.h" + +#include + +#include +#include + +using namespace boost::assign; +using namespace std; + +static bool fCreateBlank; +static map registers; +CClientUIInterface uiInterface; + +static bool AppInitRawTx(int argc, char* argv[]) +{ + // + // Parameters + // + ParseParameters(argc, argv); + + // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + + fCreateBlank = GetBoolArg("-create", false); + + if (argc<2 || mapArgs.count("-?") || mapArgs.count("-help")) + { + // First part of help message is specific to this utility + std::string strUsage = _("BTX Core btx-tx utility version") + " " + FormatFullVersion() + "\n\n" + + _("Usage:") + "\n" + + " btx-tx [options] [commands] " + _("Update hex-encoded btx transaction") + "\n" + + " btx-tx [options] -create [commands] " + _("Create hex-encoded btx transaction") + "\n" + + "\n"; + + fprintf(stdout, "%s", strUsage.c_str()); + + strUsage = _("Options:") + "\n"; + strUsage += " -? " + _("This help message") + "\n"; + strUsage += " -create " + _("Create new, empty TX.") + "\n"; + strUsage += " -json " + _("Select JSON output") + "\n"; + strUsage += " -txid " + _("Output only the hex-encoded transaction id of the resultant transaction.") + "\n"; + strUsage += " -regtest " + _("Enter regression test mode, which uses a special chain in which blocks can be solved instantly.") + "\n"; + strUsage += " -testnet " + _("Use the test network") + "\n"; + strUsage += "\n"; + + fprintf(stdout, "%s", strUsage.c_str()); + + + strUsage = _("Commands:") + "\n"; + strUsage += " delin=N " + _("Delete input N from TX") + "\n"; + strUsage += " delout=N " + _("Delete output N from TX") + "\n"; + strUsage += " in=TXID:VOUT " + _("Add input to TX") + "\n"; + strUsage += " locktime=N " + _("Set TX lock time to N") + "\n"; + strUsage += " nversion=N " + _("Set TX version to N") + "\n"; + strUsage += " outaddr=VALUE:ADDRESS " + _("Add address-based output to TX") + "\n"; + strUsage += " outscript=VALUE:SCRIPT " + _("Add raw script output to TX") + "\n"; + strUsage += " sign=SIGHASH-FLAGS " + _("Add zero or more signatures to transaction") + "\n"; + strUsage += " This command requires JSON registers:\n"; + strUsage += " prevtxs=JSON object\n"; + strUsage += " privatekeys=JSON object\n"; + strUsage += " See signrawtransaction docs for format of sighash flags, JSON objects.\n"; + strUsage += "\n"; + fprintf(stdout, "%s", strUsage.c_str()); + + strUsage = _("Register Commands:") + "\n"; + strUsage += " load=NAME:FILENAME " + _("Load JSON file FILENAME into register NAME") + "\n"; + strUsage += " set=NAME:JSON-STRING " + _("Set register NAME to given JSON-STRING") + "\n"; + strUsage += "\n"; + fprintf(stdout, "%s", strUsage.c_str()); + + return false; + } + return true; +} + +static void RegisterSetJson(const string& key, const string& rawJson) +{ + UniValue val; + if (!val.read(rawJson)) { + string strErr = "Cannot parse JSON for key " + key; + throw runtime_error(strErr); + } + + registers[key] = val; +} + +static void RegisterSet(const string& strInput) +{ + // separate NAME:VALUE in string + size_t pos = strInput.find(':'); + if ((pos == string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw runtime_error("Register input requires NAME:VALUE"); + + string key = strInput.substr(0, pos); + string valStr = strInput.substr(pos + 1, string::npos); + + RegisterSetJson(key, valStr); +} + +static void RegisterLoad(const string& strInput) +{ + // separate NAME:FILENAME in string + size_t pos = strInput.find(':'); + if ((pos == string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw runtime_error("Register load requires NAME:FILENAME"); + + string key = strInput.substr(0, pos); + string filename = strInput.substr(pos + 1, string::npos); + + FILE *f = fopen(filename.c_str(), "r"); + if (!f) { + string strErr = "Cannot open file " + filename; + throw runtime_error(strErr); + } + + // load file chunks into one big buffer + string valStr; + while ((!feof(f)) && (!ferror(f))) { + char buf[4096]; + int bread = fread(buf, 1, sizeof(buf), f); + if (bread <= 0) + break; + + valStr.insert(valStr.size(), buf, bread); + } + + if (ferror(f)) { + string strErr = "Error reading file " + filename; + throw runtime_error(strErr); + } + + fclose(f); + + // evaluate as JSON buffer register + RegisterSetJson(key, valStr); +} + +static void MutateTxVersion(CMutableTransaction& tx, const string& cmdVal) +{ + int64_t newVersion = atoi64(cmdVal); + if (newVersion < 1 || newVersion > CTransaction::CURRENT_VERSION) + throw runtime_error("Invalid TX version requested"); + + tx.nVersion = (int) newVersion; +} + +static void MutateTxLocktime(CMutableTransaction& tx, const string& cmdVal) +{ + int64_t newLocktime = atoi64(cmdVal); + if (newLocktime < 0LL || newLocktime > 0xffffffffLL) + throw runtime_error("Invalid TX locktime requested"); + + tx.nLockTime = (unsigned int) newLocktime; +} + +static void MutateTxAddInput(CMutableTransaction& tx, const string& strInput) +{ + // separate TXID:VOUT in string + size_t pos = strInput.find(':'); + if ((pos == string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw runtime_error("TX input missing separator"); + + // extract and validate TXID + string strTxid = strInput.substr(0, pos); + if ((strTxid.size() != 64) || !IsHex(strTxid)) + throw runtime_error("invalid TX input txid"); + uint256 txid(strTxid); + + static const unsigned int minTxOutSz = 9; + static const unsigned int maxVout = MAX_BLOCK_SIZE / minTxOutSz; + + // extract and validate vout + string strVout = strInput.substr(pos + 1, string::npos); + int vout = atoi(strVout); + if ((vout < 0) || (vout > (int)maxVout)) + throw runtime_error("invalid TX input vout"); + + // append to transaction input list + CTxIn txin(txid, vout); + tx.vin.push_back(txin); +} + +static void MutateTxAddOutAddr(CMutableTransaction& tx, const string& strInput) +{ + // separate VALUE:ADDRESS in string + size_t pos = strInput.find(':'); + if ((pos == string::npos) || + (pos == 0) || + (pos == (strInput.size() - 1))) + throw runtime_error("TX output missing separator"); + + // extract and validate VALUE + string strValue = strInput.substr(0, pos); + CAmount value; + if (!ParseMoney(strValue, value)) + throw runtime_error("invalid TX output value"); + + // extract and validate ADDRESS + string strAddr = strInput.substr(pos + 1, string::npos); + CBitcoinAddress addr(strAddr); + if (!addr.IsValid()) + throw runtime_error("invalid TX output address"); + + // build standard output script via GetScriptForDestination() + CScript scriptPubKey = GetScriptForDestination(addr.Get()); + + // construct TxOut, append to transaction output list + CTxOut txout(value, scriptPubKey); + tx.vout.push_back(txout); +} + +static void MutateTxAddOutScript(CMutableTransaction& tx, const string& strInput) +{ + // separate VALUE:SCRIPT in string + size_t pos = strInput.find(':'); + if ((pos == string::npos) || + (pos == 0)) + throw runtime_error("TX output missing separator"); + + // extract and validate VALUE + string strValue = strInput.substr(0, pos); + CAmount value; + if (!ParseMoney(strValue, value)) + throw runtime_error("invalid TX output value"); + + // extract and validate script + string strScript = strInput.substr(pos + 1, string::npos); + CScript scriptPubKey = ParseScript(strScript); // throws on err + + // construct TxOut, append to transaction output list + CTxOut txout(value, scriptPubKey); + tx.vout.push_back(txout); +} + +static void MutateTxDelInput(CMutableTransaction& tx, const string& strInIdx) +{ + // parse requested deletion index + int inIdx = atoi(strInIdx); + if (inIdx < 0 || inIdx >= (int)tx.vin.size()) { + string strErr = "Invalid TX input index '" + strInIdx + "'"; + throw runtime_error(strErr.c_str()); + } + + // delete input from transaction + tx.vin.erase(tx.vin.begin() + inIdx); +} + +static void MutateTxDelOutput(CMutableTransaction& tx, const string& strOutIdx) +{ + // parse requested deletion index + int outIdx = atoi(strOutIdx); + if (outIdx < 0 || outIdx >= (int)tx.vout.size()) { + string strErr = "Invalid TX output index '" + strOutIdx + "'"; + throw runtime_error(strErr.c_str()); + } + + // delete output from transaction + tx.vout.erase(tx.vout.begin() + outIdx); +} + +static const unsigned int N_SIGHASH_OPTS = 6; +static const struct { + const char *flagStr; + int flags; +} sighashOptions[N_SIGHASH_OPTS] = { + {"ALL", SIGHASH_ALL}, + {"NONE", SIGHASH_NONE}, + {"SINGLE", SIGHASH_SINGLE}, + {"ALL|ANYONECANPAY", SIGHASH_ALL|SIGHASH_ANYONECANPAY}, + {"NONE|ANYONECANPAY", SIGHASH_NONE|SIGHASH_ANYONECANPAY}, + {"SINGLE|ANYONECANPAY", SIGHASH_SINGLE|SIGHASH_ANYONECANPAY}, +}; + +static bool findSighashFlags(int& flags, const string& flagStr) +{ + flags = 0; + + for (unsigned int i = 0; i < N_SIGHASH_OPTS; i++) { + if (flagStr == sighashOptions[i].flagStr) { + flags = sighashOptions[i].flags; + return true; + } + } + + return false; +} + +uint256 ParseHashUO(map& o, string strKey) +{ + if (!o.count(strKey)) + return 0; + return ParseHashUV(o[strKey], strKey); +} + +vector ParseHexUO(map& o, string strKey) +{ + if (!o.count(strKey)) { + vector emptyVec; + return emptyVec; + } + return ParseHexUV(o[strKey], strKey); +} + +static void MutateTxSign(CMutableTransaction& tx, const string& flagStr) +{ + int nHashType = SIGHASH_ALL; + + if (flagStr.size() > 0) + if (!findSighashFlags(nHashType, flagStr)) + throw runtime_error("unknown sighash flag/sign option"); + + vector txVariants; + txVariants.push_back(tx); + + // mergedTx will end up with all the signatures; it + // starts as a clone of the raw tx: + CMutableTransaction mergedTx(txVariants[0]); + bool fComplete = true; + CCoinsView viewDummy; + CCoinsViewCache view(&viewDummy); + + if (!registers.count("privatekeys")) + throw runtime_error("privatekeys register variable must be set."); + bool fGivenKeys = false; + CBasicKeyStore tempKeystore; + UniValue keysObj = registers["privatekeys"]; + fGivenKeys = true; + + for (unsigned int kidx = 0; kidx < keysObj.count(); kidx++) { + if (!keysObj[kidx].isStr()) + throw runtime_error("privatekey not a string"); + CBitcoinSecret vchSecret; + bool fGood = vchSecret.SetString(keysObj[kidx].getValStr()); + if (!fGood) + throw runtime_error("privatekey not valid"); + + CKey key = vchSecret.GetKey(); + tempKeystore.AddKey(key); + } + + // Add previous txouts given in the RPC call: + if (!registers.count("prevtxs")) + throw runtime_error("prevtxs register variable must be set."); + UniValue prevtxsObj = registers["prevtxs"]; + { + for (unsigned int previdx = 0; previdx < prevtxsObj.count(); previdx++) { + UniValue prevOut = prevtxsObj[previdx]; + if (!prevOut.isObject()) + throw runtime_error("expected prevtxs internal object"); + + map types = map_list_of("txid", UniValue::VSTR)("vout",UniValue::VNUM)("scriptPubKey",UniValue::VSTR); + if (!prevOut.checkObject(types)) + throw runtime_error("prevtxs internal object typecheck fail"); + + uint256 txid = ParseHashUV(prevOut["txid"], "txid"); + + int nOut = atoi(prevOut["vout"].getValStr()); + if (nOut < 0) + throw runtime_error("vout must be positive"); + + vector pkData(ParseHexUV(prevOut["scriptPubKey"], "scriptPubKey")); + CScript scriptPubKey(pkData.begin(), pkData.end()); + + { + CCoinsModifier coins = view.ModifyCoins(txid); + if (coins->IsAvailable(nOut) && coins->vout[nOut].scriptPubKey != scriptPubKey) { + string err("Previous output scriptPubKey mismatch:\n"); + err = err + coins->vout[nOut].scriptPubKey.ToString() + "\nvs:\n"+ + scriptPubKey.ToString(); + throw runtime_error(err); + } + if ((unsigned int)nOut >= coins->vout.size()) + coins->vout.resize(nOut+1); + coins->vout[nOut].scriptPubKey = scriptPubKey; + coins->vout[nOut].nValue = 0; // we don't know the actual output value + } + + // if redeemScript given and private keys given, + // add redeemScript to the tempKeystore so it can be signed: + if (fGivenKeys && scriptPubKey.IsPayToScriptHash() && + prevOut.exists("redeemScript")) { + UniValue v = prevOut["redeemScript"]; + vector rsData(ParseHexUV(v, "redeemScript")); + CScript redeemScript(rsData.begin(), rsData.end()); + tempKeystore.AddCScript(redeemScript); + } + } + } + + const CKeyStore& keystore = tempKeystore; + + bool fHashSingle = ((nHashType & ~SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE); + + // Sign what we can: + for (unsigned int i = 0; i < mergedTx.vin.size(); i++) { + CTxIn& txin = mergedTx.vin[i]; + const CCoins* coins = view.AccessCoins(txin.prevout.hash); + if (!coins || !coins->IsAvailable(txin.prevout.n)) { + fComplete = false; + continue; + } + const CScript& prevPubKey = coins->vout[txin.prevout.n].scriptPubKey; + + txin.scriptSig.clear(); + // Only sign SIGHASH_SINGLE if there's a corresponding output: + if (!fHashSingle || (i < mergedTx.vout.size())) + SignSignature(keystore, prevPubKey, mergedTx, i, nHashType); + + // ... and merge in other signatures: + BOOST_FOREACH(const CTransaction& txv, txVariants) { + txin.scriptSig = CombineSignatures(prevPubKey, mergedTx, i, txin.scriptSig, txv.vin[i].scriptSig); + } + if (!VerifyScript(txin.scriptSig, prevPubKey, STANDARD_SCRIPT_VERIFY_FLAGS, MutableTransactionSignatureChecker(&mergedTx, i))) + fComplete = false; + } + + if (fComplete) { + // do nothing... for now + // perhaps store this for later optional JSON output + } + + tx = mergedTx; +} + +static void MutateTx(CMutableTransaction& tx, const string& command, + const string& commandVal) +{ + if (command == "nversion") + MutateTxVersion(tx, commandVal); + else if (command == "locktime") + MutateTxLocktime(tx, commandVal); + + else if (command == "delin") + MutateTxDelInput(tx, commandVal); + else if (command == "in") + MutateTxAddInput(tx, commandVal); + + else if (command == "delout") + MutateTxDelOutput(tx, commandVal); + else if (command == "outaddr") + MutateTxAddOutAddr(tx, commandVal); + else if (command == "outscript") + MutateTxAddOutScript(tx, commandVal); + + else if (command == "sign") + MutateTxSign(tx, commandVal); + + else if (command == "load") + RegisterLoad(commandVal); + + else if (command == "set") + RegisterSet(commandVal); + + else + throw runtime_error("unknown command"); +} + +static void OutputTxJSON(const CTransaction& tx) +{ + UniValue entry(UniValue::VOBJ); + TxToUniv(tx, 0, entry); + + string jsonOutput = entry.write(4); + fprintf(stdout, "%s\n", jsonOutput.c_str()); +} + +static void OutputTxHash(const CTransaction& tx) +{ + string strHexHash = tx.GetHash().GetHex(); // the hex-encoded transaction hash (aka the transaction id) + + fprintf(stdout, "%s\n", strHexHash.c_str()); +} + +static void OutputTxHex(const CTransaction& tx) +{ + string strHex = EncodeHexTx(tx); + + fprintf(stdout, "%s\n", strHex.c_str()); +} + +static void OutputTx(const CTransaction& tx) +{ + if (GetBoolArg("-json", false)) + OutputTxJSON(tx); + else if (GetBoolArg("-txid", false)) + OutputTxHash(tx); + else + OutputTxHex(tx); +} + +static string readStdin() +{ + char buf[4096]; + string ret; + + while (!feof(stdin)) { + size_t bread = fread(buf, 1, sizeof(buf), stdin); + ret.append(buf, bread); + if (bread < sizeof(buf)) + break; + } + + if (ferror(stdin)) + throw runtime_error("error reading stdin"); + + boost::algorithm::trim_right(ret); + + return ret; +} + +static int CommandLineRawTx(int argc, char* argv[]) +{ + string strPrint; + int nRet = 0; + try { + // Skip switches; Permit common stdin convention "-" + while (argc > 1 && IsSwitchChar(argv[1][0]) && + (argv[1][1] != 0)) { + argc--; + argv++; + } + + CTransaction txDecodeTmp; + int startArg; + + if (!fCreateBlank) { + // require at least one param + if (argc < 2) + throw runtime_error("too few parameters"); + + // param: hex-encoded btx transaction + string strHexTx(argv[1]); + if (strHexTx == "-") // "-" implies standard input + strHexTx = readStdin(); + + if (!DecodeHexTx(txDecodeTmp, strHexTx)) + throw runtime_error("invalid transaction encoding"); + + startArg = 2; + } else + startArg = 1; + + CMutableTransaction tx(txDecodeTmp); + + for (int i = startArg; i < argc; i++) { + string arg = argv[i]; + string key, value; + size_t eqpos = arg.find('='); + if (eqpos == string::npos) + key = arg; + else { + key = arg.substr(0, eqpos); + value = arg.substr(eqpos + 1); + } + + MutateTx(tx, key, value); + } + + OutputTx(tx); + } + + catch (boost::thread_interrupted) { + throw; + } + catch (std::exception& e) { + strPrint = string("error: ") + e.what(); + nRet = EXIT_FAILURE; + } + catch (...) { + PrintExceptionContinue(NULL, "CommandLineRawTx()"); + throw; + } + + if (strPrint != "") { + fprintf((nRet == 0 ? stdout : stderr), "%s\n", strPrint.c_str()); + } + return nRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + try { + if(!AppInitRawTx(argc, argv)) + return EXIT_FAILURE; + } + catch (std::exception& e) { + PrintExceptionContinue(&e, "AppInitRawTx()"); + return EXIT_FAILURE; + } catch (...) { + PrintExceptionContinue(NULL, "AppInitRawTx()"); + return EXIT_FAILURE; + } + + int ret = EXIT_FAILURE; + try { + ret = CommandLineRawTx(argc, argv); + } + catch (std::exception& e) { + PrintExceptionContinue(&e, "CommandLineRawTx()"); + } catch (...) { + PrintExceptionContinue(NULL, "CommandLineRawTx()"); + } + return ret; +} diff --git a/src/btxd-res.rc b/src/btxd-res.rc new file mode 100644 index 000000000000..3db842fd97f9 --- /dev/null +++ b/src/btxd-res.rc @@ -0,0 +1,35 @@ +#include // needed for VERSIONINFO +#include "clientversion.h" // holds the needed client version information + +#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD +#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) +#define VER_FILEVERSION VER_PRODUCTVERSION +#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" // U.S. English - multilingual (hex) + BEGIN + VALUE "CompanyName", "BTX" + VALUE "FileDescription", "Darkcoind (OSS daemon/client for BTX)" + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", "btxd" + VALUE "LegalCopyright", COPYRIGHT_STR + VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." + VALUE "OriginalFilename", "btxd.exe" + VALUE "ProductName", "Darkcoind" + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1252 // language neutral - multilingual (decimal) + END +END diff --git a/src/btxd.cpp b/src/btxd.cpp new file mode 100644 index 000000000000..5fb1c7b9bb67 --- /dev/null +++ b/src/btxd.cpp @@ -0,0 +1,195 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2014 The Bitcoin developers +// Copyright (c) 2014-2015 The BTX developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "clientversion.h" +#include "rpcserver.h" +#include "init.h" +#include "main.h" +#include "noui.h" +#include "ui_interface.h" +#include "util.h" +#include "masternodeconfig.h" + +#include +#include +#include + +/* Introduction text for doxygen: */ + +/*! \mainpage Developer documentation + * + * \section intro_sec Introduction + * + * This is the developer documentation of the reference client for an experimental new digital currency called BTX (http://www.btxpay.io/), + * which enables instant payments to anyone, anywhere in the world. BTX uses peer-to-peer technology to operate + * with no central authority: managing transactions and issuing money are carried out collectively by the network. + * + * The software is a community-driven open source project, released under the MIT license. + * + * \section Navigation + * Use the buttons Namespaces, Classes or Files at the top of the page to start navigating the code. + */ + +static bool fDaemon; + +void DetectShutdownThread(boost::thread_group* threadGroup) +{ + bool fShutdown = ShutdownRequested(); + // Tell the main threads to shutdown. + while (!fShutdown) + { + MilliSleep(200); + fShutdown = ShutdownRequested(); + } + if (threadGroup) + { + threadGroup->interrupt_all(); + threadGroup->join_all(); + } +} + +////////////////////////////////////////////////////////////////////////////// +// +// Start +// +bool AppInit(int argc, char* argv[]) +{ + boost::thread_group threadGroup; + boost::thread* detectShutdownThread = NULL; + + bool fRet = false; + + // + // Parameters + // + // If Qt is used, parameters/btx.conf are parsed in qt/btx.cpp's main() + ParseParameters(argc, argv); + + // Process help and version before taking care about datadir + if (mapArgs.count("-?") || mapArgs.count("-help") || mapArgs.count("-version")) + { + std::string strUsage = _("BTX Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n"; + + if (mapArgs.count("-version")) + { + strUsage += LicenseInfo(); + } + else + { + strUsage += "\n" + _("Usage:") + "\n" + + " btxd [options] " + _("Start BTX Core Daemon") + "\n"; + + strUsage += "\n" + HelpMessage(HMM_BITCOIND); + } + + fprintf(stdout, "%s", strUsage.c_str()); + return false; + } + + try + { + if (!boost::filesystem::is_directory(GetDataDir(false))) + { + fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); + return false; + } + try + { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } + // Check for -testnet or -regtest parameter (Params() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); + return false; + } + + // parse masternode.conf + std::string strErr; + if(!masternodeConfig.read(strErr)) { + fprintf(stderr,"Error reading masternode configuration file: %s\n", strErr.c_str()); + return false; + } + + // Command-line RPC + bool fCommandLine = false; + for (int i = 1; i < argc; i++) + if (!IsSwitchChar(argv[i][0]) && !boost::algorithm::istarts_with(argv[i], "btx:")) + fCommandLine = true; + + if (fCommandLine) + { + fprintf(stderr, "Error: There is no RPC client functionality in btxd anymore. Use the btx-cli utility instead.\n"); + exit(1); + } +#ifndef WIN32 + fDaemon = GetBoolArg("-daemon", false); + if (fDaemon) + { + fprintf(stdout, "BTX server starting\n"); + + // Daemonize + pid_t pid = fork(); + if (pid < 0) + { + fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno); + return false; + } + if (pid > 0) // Parent process, pid is child process id + { + return true; + } + // Child process falls through to rest of initialization + + pid_t sid = setsid(); + if (sid < 0) + fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno); + } +#endif + SoftSetBoolArg("-server", true); + + detectShutdownThread = new boost::thread(boost::bind(&DetectShutdownThread, &threadGroup)); + fRet = AppInit2(threadGroup); + } + catch (std::exception& e) { + PrintExceptionContinue(&e, "AppInit()"); + } catch (...) { + PrintExceptionContinue(NULL, "AppInit()"); + } + + if (!fRet) + { + if (detectShutdownThread) + detectShutdownThread->interrupt(); + + threadGroup.interrupt_all(); + // threadGroup.join_all(); was left out intentionally here, because we didn't re-test all of + // the startup-failure cases to make sure they don't result in a hang due to some + // thread-blocking-waiting-for-another-thread-during-startup case + } + + if (detectShutdownThread) + { + detectShutdownThread->join(); + delete detectShutdownThread; + detectShutdownThread = NULL; + } + Shutdown(); + + return fRet; +} + +int main(int argc, char* argv[]) +{ + SetupEnvironment(); + + // Connect btxd signal handlers + noui_connect(); + + return (AppInit(argc, argv) ? 0 : 1); +} From 5a980b2221e354fb0356815fabfea0973ed9405a Mon Sep 17 00:00:00 2001 From: CryptoVote Date: Mon, 28 Sep 2015 00:58:45 -0500 Subject: [PATCH 10/10] Bump version to 3.0.0.1 --- src/test/test_btx.cpp | 93 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/test/test_btx.cpp diff --git a/src/test/test_btx.cpp b/src/test/test_btx.cpp new file mode 100644 index 000000000000..a6fbb3d6c3cc --- /dev/null +++ b/src/test/test_btx.cpp @@ -0,0 +1,93 @@ +// Copyright (c) 2011-2013 The Bitcoin Core developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#define BOOST_TEST_MODULE BTX Test Suite + +#include "main.h" +#include "random.h" +#include "txdb.h" +#include "ui_interface.h" +#include "util.h" +#ifdef ENABLE_WALLET +#include "db.h" +#include "wallet.h" +#endif + +#include +#include +#include + +CClientUIInterface uiInterface; +CWallet* pwalletMain; + +extern bool fPrintToConsole; +extern void noui_connect(); + +struct TestingSetup { + CCoinsViewDB *pcoinsdbview; + boost::filesystem::path pathTemp; + boost::thread_group threadGroup; + + TestingSetup() { + SetupEnvironment(); + fPrintToDebugLog = false; // don't want to write to debug.log file + fCheckBlockIndex = true; + SelectParams(CBaseChainParams::UNITTEST); + noui_connect(); +#ifdef ENABLE_WALLET + bitdb.MakeMock(); +#endif + pathTemp = GetTempPath() / strprintf("test_btx_%lu_%i", (unsigned long)GetTime(), (int)(GetRand(100000))); + boost::filesystem::create_directories(pathTemp); + mapArgs["-datadir"] = pathTemp.string(); + pblocktree = new CBlockTreeDB(1 << 20, true); + pcoinsdbview = new CCoinsViewDB(1 << 23, true); + pcoinsTip = new CCoinsViewCache(pcoinsdbview); + InitBlockIndex(); +#ifdef ENABLE_WALLET + bool fFirstRun; + pwalletMain = new CWallet("wallet.dat"); + pwalletMain->LoadWallet(fFirstRun); + RegisterValidationInterface(pwalletMain); +#endif + nScriptCheckThreads = 3; + for (int i=0; i < nScriptCheckThreads-1; i++) + threadGroup.create_thread(&ThreadScriptCheck); + RegisterNodeSignals(GetNodeSignals()); + } + ~TestingSetup() + { + threadGroup.interrupt_all(); + threadGroup.join_all(); + UnregisterNodeSignals(GetNodeSignals()); +#ifdef ENABLE_WALLET + delete pwalletMain; + pwalletMain = NULL; +#endif + delete pcoinsTip; + delete pcoinsdbview; + delete pblocktree; +#ifdef ENABLE_WALLET + bitdb.Flush(true); +#endif + boost::filesystem::remove_all(pathTemp); + } +}; + +BOOST_GLOBAL_FIXTURE(TestingSetup); + +void Shutdown(void* parg) +{ + exit(0); +} + +void StartShutdown() +{ + exit(0); +} + +bool ShutdownRequested() +{ + return false; +}