From e12c2fd171a3357e7b6b05c8b3486727e709ab62 Mon Sep 17 00:00:00 2001 From: CaveSpectre11 <36988814+CaveSpectre11@users.noreply.github.com> Date: Thu, 11 Apr 2019 06:29:40 -0400 Subject: [PATCH 1/8] refresh (#1) * Initial release notes for v3.2.0 * In progress multi-input witness generation. * more progress * More progress on caching spend data. * Remove security level from zerocoin spending. * prevent infinate loop in miner * ensure override is set for GetSerialHash() * Include dependent headers in stakeinput.h * set the accumulator start height when initializing the witness * remove spam log output in stakeTargetHit() * add benchmarking to zPIV spend inner functions * fully initialize member variables when setting the witness data * don't duplicate function call * benchmark fixup * don't hold cd_spendcache for the entire loop * Remove security level from UI * Add clearspendcache RPC command * re-add zpivchain.h (fixes merge conflict error) * more work on pre-computing * Make GetSerialHash return const again * Fix RPC spendzerocoin * Precompute zPIV spends in a dedicated thread Moves the spend precomputation process into it's own thread, instead of being tied to the staking thread. Loop currently has a 5000ms sleep at the end so as to not overconsume locks. * Qt: Add precomputed percentage indicator column to zPIV control UI Adds a new column to the zPIV control UI showing the mint's completed precompute percentage. * Allow zPIV precomputing to be disabled Adds a new command line (conf) option `-precompute` to disable precomputing. Default is to enable. * Add Databasing of zpiv precomputes, they are not encrypted yet * Update precompute cache * Clear database cache with rpc call * Fix rebase conflicts from precomputing * Convert precompute cache into LRU cache * Add global boolean, that stop precompute cache lock * reorg + refactoring + conflicts * precomputation-upstream conflicts solved * getaccumulatorwitness method fix * re added LNZP removed files * Remove duplicate functions from rebase * Fix assertion failure in mining/staking Need to explicitely set pindexPrev and nHeight within the locked scope. * Fixup coinspend unit test header includes * Fix wrapped serial functional test The error message had changed * Remove security level in `DoZpivSpend()` call * Disable precompute for functional tests The locking can interfere with block generation * Fixup the interface_rest functional test * Better logging for CheckCoinSpend Also re-introduce the regtest specific conditional * Prevent lock spamming when no stakable inputs are present * Cleanup arbitrary sleep times in CreateCoinStake * Fixup bad logprintf * fixup makefile.am * Add more release notes Includes notes regarding Fake Stake, Wrapped Serials, Regtest, and Precompute * more notes for RPC commands and gitian build script * [Net] Increment Protocol Version Minor protocol version increment, with no enforcement rulings, used in tracking upgrade deployment across the network. * fix to display missing clock5.png tx image * Don't error out when a range has already been computed When a range of blocks has already been computed, use that existing data instead of erroring out. This is used in the zPoS pipeline where, after precomputation, the passed `pindexCheckpoint` is likely to be at a block height below the accumulator's tip/end. * Fix irrelevant receipt status message Since security level has been removed, this status message needed to be changed. Also removed some stale unused code that was left over from when security level was used. * Reduce log spam New debug category "staking" added with some previous `LogPrintf` messages recategorized to reduce log spam. Also noted both "staking" and "precompute" in the init help message and added them to the "pivx" umbrella category. * [Qt] Update localizations from Transifex * [Refactoring] [Move Only] Move wallet files into their own folder * [macOS] Remove DS_Store WindowBounds bytes object * [Build] Bump master to 3.2.99 (non-release) Now that 3.2 has been branched off, the `master` branch can be bumped up to the 3.2.99 "dummy" version specifier, ie pre-3.3. --- configure.ac | 2 +- contrib/macdeploy/custom_dsstore.py | 2 +- doc/release-notes.md | 162 +- src/Makefile.am | 61 +- src/Makefile.qt.include | 63 +- src/Makefile.test.include | 2 +- src/activemasternode.h | 2 +- src/chainparams.cpp | 1 + src/chainparams.h | 2 + src/crypter.cpp | 3 +- src/denomination_functions.h | 2 +- src/init.cpp | 20 +- src/kernel.cpp | 7 +- src/kernel.h | 2 +- src/lightzpivthread.cpp | 1 - src/lightzpivthread.h | 2 +- src/main.cpp | 9 +- src/main.h | 9 +- src/miner.cpp | 24 +- src/net.cpp | 3 +- src/primitives/transaction.cpp | 13 + src/primitives/transaction.h | 2 + src/qt/addresstablemodel.cpp | 8 +- src/qt/bip38tooldialog.cpp | 2 +- src/qt/coincontroldialog.cpp | 2 +- src/qt/forms/privacydialog.ui | 51 - src/qt/forms/zpivcontroldialog.ui | 15 +- src/qt/locale/pivx_bg.ts | 183 +- src/qt/locale/pivx_ca.ts | 56 +- src/qt/locale/pivx_cs.ts | 70 +- src/qt/locale/pivx_da.ts | 154 +- src/qt/locale/pivx_de.ts | 203 +- src/qt/locale/pivx_en.ts | 525 +- src/qt/locale/pivx_en_GB.ts | 6442 +++++++++++++++++ src/qt/locale/pivx_eo.ts | 124 +- src/qt/locale/pivx_es.ts | 229 +- src/qt/locale/pivx_es_ES.ts | 12 +- src/qt/locale/pivx_fi.ts | 63 +- src/qt/locale/pivx_fr_FR.ts | 1830 ++++- src/qt/locale/pivx_hi_IN.ts | 14 + src/qt/locale/pivx_hr.ts | 300 +- src/qt/locale/pivx_hr_HR.ts | 190 +- src/qt/locale/pivx_it.ts | 121 +- src/qt/locale/pivx_ja.ts | 10 + src/qt/locale/pivx_ko_KR.ts | 207 +- src/qt/locale/pivx_lt_LT.ts | 118 +- src/qt/locale/pivx_nl.ts | 296 +- src/qt/locale/pivx_pl.ts | 4828 ++++++++++-- src/qt/locale/pivx_pt.ts | 10 + src/qt/locale/pivx_pt_BR.ts | 85 +- src/qt/locale/pivx_ro_RO.ts | 6 + src/qt/locale/pivx_ru.ts | 193 +- src/qt/locale/pivx_sk.ts | 20 +- src/qt/locale/pivx_sv.ts | 379 +- src/qt/locale/pivx_tr.ts | 208 +- src/qt/locale/pivx_uk.ts | 10 + src/qt/locale/pivx_vi.ts | 6 + src/qt/locale/pivx_zh_CN.ts | 32 +- src/qt/locale/pivx_zh_TW.ts | 14 + src/qt/masternodelist.cpp | 2 +- src/qt/multisigdialog.cpp | 2 +- src/qt/optionsdialog.cpp | 2 +- src/qt/optionsmodel.cpp | 4 +- src/qt/paymentserver.cpp | 2 +- src/qt/pivx.cpp | 2 +- src/qt/pivx_locale.qrc | 1 + src/qt/pivxstrings.cpp | 30 +- src/qt/privacydialog.cpp | 42 +- src/qt/privacydialog.h | 5 +- src/qt/rpcconsole.cpp | 2 +- src/qt/sendcoinsdialog.cpp | 10 +- src/qt/signverifymessagedialog.cpp | 2 +- src/qt/splashscreen.cpp | 2 +- src/qt/transactiondesc.cpp | 2 +- src/qt/transactionrecord.cpp | 2 +- src/qt/transactiontablemodel.cpp | 4 +- src/qt/walletmodel.cpp | 8 +- src/qt/walletmodel.h | 6 +- src/qt/walletmodeltransaction.cpp | 2 +- src/qt/zpivcontroldialog.cpp | 15 +- src/qt/zpivcontroldialog.h | 3 +- src/rpc/blockchain.cpp | 9 +- src/rpc/client.cpp | 1 - src/rpc/mining.cpp | 4 +- src/rpc/misc.cpp | 4 +- src/rpc/rawtransaction.cpp | 6 +- src/rpc/server.cpp | 3 +- src/rpc/server.h | 5 +- src/stakeinput.cpp | 9 +- src/stakeinput.h | 7 + src/test/accounting_tests.cpp | 4 +- src/test/multisig_tests.cpp | 2 +- src/test/rpc_wallet_tests.cpp | 2 +- src/test/script_P2SH_tests.cpp | 2 +- src/test/test_pivx.cpp | 4 +- src/test/zerocoin_chain_tests.cpp | 4 + src/test/zerocoin_coinspend_tests.cpp | 10 +- src/test/zerocoin_denomination_tests.cpp | 38 +- src/test/zerocoin_implementation_tests.cpp | 10 +- src/test/zerocoin_transactions_tests.cpp | 9 +- src/txdb.cpp | 2 +- src/txdb.h | 2 +- src/util.cpp | 2 + src/version.h | 2 +- src/{ => wallet}/db.cpp | 0 src/{ => wallet}/db.h | 0 src/{ => wallet}/rpcdump.cpp | 0 src/{ => wallet}/rpcwallet.cpp | 76 +- src/{ => wallet}/test/wallet_tests.cpp | 2 +- src/{ => wallet}/wallet.cpp | 598 +- src/{ => wallet}/wallet.h | 28 +- src/{ => wallet}/wallet_ismine.cpp | 0 src/{ => wallet}/wallet_ismine.h | 0 src/{ => wallet}/walletdb.cpp | 112 +- src/{ => wallet}/walletdb.h | 12 +- src/{ => zpiv}/accumulatorcheckpoints.cpp | 0 src/{ => zpiv}/accumulatorcheckpoints.h | 0 src/{ => zpiv}/accumulatorcheckpoints.json.h | 0 src/{ => zpiv}/accumulatormap.cpp | 5 + src/{ => zpiv}/accumulatormap.h | 1 + src/{ => zpiv}/accumulators.cpp | 338 +- src/{ => zpiv}/accumulators.h | 22 +- .../deterministicmint.cpp | 0 src/{primitives => zpiv}/deterministicmint.h | 0 src/{ => zpiv}/mintpool.cpp | 0 src/{ => zpiv}/mintpool.h | 2 +- src/zpiv/witness.cpp | 106 + src/zpiv/witness.h | 78 + src/{primitives => zpiv}/zerocoin.cpp | 2 +- src/{primitives => zpiv}/zerocoin.h | 0 src/{ => zpiv}/zpivtracker.cpp | 34 +- src/{ => zpiv}/zpivtracker.h | 8 +- src/{ => zpiv}/zpivwallet.cpp | 8 +- src/{ => zpiv}/zpivwallet.h | 2 +- test/functional/interface_rest.py | 4 +- test/functional/test_framework/util.py | 1 + test/functional/zerocoin_wrapped_serials.py | 2 +- 137 files changed, 15977 insertions(+), 3165 deletions(-) create mode 100644 src/qt/locale/pivx_en_GB.ts create mode 100644 src/test/zerocoin_chain_tests.cpp rename src/{ => wallet}/db.cpp (100%) rename src/{ => wallet}/db.h (100%) rename src/{ => wallet}/rpcdump.cpp (100%) rename src/{ => wallet}/rpcwallet.cpp (98%) rename src/{ => wallet}/test/wallet_tests.cpp (99%) rename src/{ => wallet}/wallet.cpp (89%) rename src/{ => wallet}/wallet.h (96%) rename src/{ => wallet}/wallet_ismine.cpp (100%) rename src/{ => wallet}/wallet_ismine.h (100%) rename src/{ => wallet}/walletdb.cpp (94%) rename src/{ => wallet}/walletdb.h (93%) rename src/{ => zpiv}/accumulatorcheckpoints.cpp (100%) rename src/{ => zpiv}/accumulatorcheckpoints.h (100%) rename src/{ => zpiv}/accumulatorcheckpoints.json.h (100%) rename src/{ => zpiv}/accumulatormap.cpp (94%) rename src/{ => zpiv}/accumulatormap.h (92%) rename src/{ => zpiv}/accumulators.cpp (74%) rename src/{ => zpiv}/accumulators.h (84%) rename src/{primitives => zpiv}/deterministicmint.cpp (100%) rename src/{primitives => zpiv}/deterministicmint.h (100%) rename src/{ => zpiv}/mintpool.cpp (100%) rename src/{ => zpiv}/mintpool.h (98%) create mode 100644 src/zpiv/witness.cpp create mode 100644 src/zpiv/witness.h rename src/{primitives => zpiv}/zerocoin.cpp (98%) rename src/{primitives => zpiv}/zerocoin.h (100%) rename src/{ => zpiv}/zpivtracker.cpp (95%) rename src/{ => zpiv}/zpivtracker.h (85%) rename src/{ => zpiv}/zpivwallet.cpp (99%) rename src/{ => zpiv}/zpivwallet.h (98%) mode change 100644 => 100755 test/functional/zerocoin_wrapped_serials.py diff --git a/configure.ac b/configure.ac index 2d060774cba8..46ec51c3f1d9 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 3) -define(_CLIENT_VERSION_MINOR, 1) +define(_CLIENT_VERSION_MINOR, 2) define(_CLIENT_VERSION_REVISION, 99) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, false) diff --git a/contrib/macdeploy/custom_dsstore.py b/contrib/macdeploy/custom_dsstore.py index 236bd3d41b17..091270f7b481 100644 --- a/contrib/macdeploy/custom_dsstore.py +++ b/contrib/macdeploy/custom_dsstore.py @@ -13,7 +13,7 @@ ds = DSStore.open(output_file, 'w+') ds['.']['bwsp'] = { 'ShowStatusBar': False, - 'WindowBounds': b'{{300, 280}, {500, 343}}', + 'WindowBounds': '{{300, 280}, {500, 343}}', 'ContainerShowSidebar': False, 'SidebarWidth': 0, 'ShowTabView': False, diff --git a/doc/release-notes.md b/doc/release-notes.md index e317f0aa9b9f..05be01d85e74 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -20,20 +20,172 @@ If you are running an older version, shut it down. Wait until it has completely Compatibility ============== -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows 7 and later. +PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later. Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: +Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on [December 14, 2015](http://news.fnal.gov/2015/10/mac-os-x-mountain-lion-10-8-end-of-life-december-14/). PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker. -**Currently there are issues with the 3.x gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** +PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. Notable Changes ============== +Minimum Supported MacOS Version +------ + +The minimum supported version of MacOS (OSX) has been moved from 10.8 Mountain Lion to 10.10 Yosemite. Users still running a MacOS version prior to Yosemite will need to upgrade their OS if they wish to continue using the latest version(s) of the PIVX Core wallet. + +Attacks, Exploits, and Mitigations +------ + +### Fake Stake + +On Janurary 22 2019, Decentralized Systems Lab out of the University of Illinois published a study entitled “[‘Fake Stake’ attacks on chain-based Proof-of-Stake cryptocurrencies](https://medium.com/@dsl_uiuc/fake-stake-attacks-on-chain-based-proof-of-stake-cryptocurrencies-b8b05723f806)”, which outlined a type of Denial of Service attack that could take place on a number of Proof of Stake based networks by exhausting a client's RAM or Disk resources. + +A full report provided by PIVX developers is available on the [PIVX Website](https://pivx.org/fake-stake-official-pivx-report/), which includes additional findings, mitigation details, and resources for testing. This type of attack has no risk to users' privacy and does not affect their holdings. + +### Wrapped Serials + +On March 6th 2019, an attack was detected on the PIVX network zerocoin protocol, or zPIV. The vulnerability allows an attacker to fake serials accepted by the network and thus to spend zerocoins that have never been minted. As severe as it is, it does not harm users’ privacy and does not affect their holdings directly. + +As a result of this, all zPIV functionality was disabled via one of our sporks shortly after verification of this exploit. A full report, detailing how this attack was performed, as well as investigation results and mitigation methods is available [On Medium](https://medium.com/@dev.pivx/report-wrapped-serials-attack-5f4bf7b51701). + +zPIV functions will be restored after v3.2.0 is pushed out and the majority of the network has upgraded. + +Major New Features +------ + +### BIP65 (CHECKLOCKTIMEVERIFY) Soft-Fork + +PIVX Core v3.2.0 introduces new consensus rules for scripting pathways to support the [BIP65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) standard. This is being carried out as a soft-fork in order to provide ample time for stakers to update their wallet version. + +### Automint Addresses + +A new "Automint Addresses" feature has been added to the wallet that allows for the creation of new addresses who's purpose is to automatically convert any PIV funds received by such addresses to zPIV. The feature as a whole can be enabled/disabled either at runtime using the `-enableautoconvertaddress` option, via RPC/Console with the `enableautomintaddress` command, or via the GUI's options dialog, with the default being enabled. + +Creation of these automint addresses is currently only available via the RPC/Console `createautomintaddress` command, which takes no additional arguments. The command returns a new PIVX address each time, but addresses created by this command can be re-used if desired. + +### In-wallet Proposal Voting + +A new UI wallet tab has been introduced that allows users to view the current budget proposals, their vote counts, and vote on proposals if the wallet is acting as a masternode controller. The visual design is to be considered temporary, and will be undergoing further design and display improvements in the future. + +### Zerocoin Lite Node Protocol + +Support for the ZLN Protocol has been added, which allows for a node to opt-in to providing extended network services for the protocol. By default, this functionality is disabled, but can be enabled by using the `-peerbloomfilterszc` runtime option. + +A full technical writeup of the protocol can be found [Here](https://pivx.org/wp-content/uploads/2018/11/Zerocoin_Light_Node_Protocol.pdf). + +### Precomputed Zerocoin Proofs + +This introduces the ability to do most of the heavy computation required for zPIV spends **before** actually initiating the spend. A new thread, `ThreadPrecomputeSpends`, is added which constantly runs in the background. + +`ThreadPrecomputeSpends`' purpose is to monitor the wallet's zPIV mints and perform partial witness accumulations up to `nHeight - 20` blocks from the chain's tip (to ensure that it only ever computes data that is at least 2 accumulator checkpoints deep), retaining the results in memory. + +Additionally, a file based cache is introduced, `precomputes.dat`, which serves as a place to store any precomputed data between sessions, or when the in-memory cache size is exhausted. Swapping data between memory and disk file is done as needed, and periodic cache flushes to the disk are routine. + +This also introduces 2 new runtime configuration options: + +* `-precompute` is a binary boolean option (`1` or `0`) that determines wither or not pre-computation should be activated at runtime (default value is to activate, `1`). +* `-precomputecachelength` is a numeric value between `500` and `2000` that tells the precompute thread how many blocks to include during each pass (default is `1000`). + +A new RPC command, `clearspendcache`, has been added that allows for the clearing/resetting of the precompute cache (both memory and disk). This command takes no additional arguments. + +Finally, the "security level" option for spending zPIV has been completely removed, and all zPIV spends now spend at what was formerly "security level" `100`. This change has been reflected in any RPC command that previously took a security level argument, as well as in the GUI's Privacy section for spending zPIV. + +### Regression Test Suite + +The RegTest network mode has been re-worked to once again allow for the generation of on-demand PoW and PoS blocks. Additionally, many of the existing functional test scripts have been adapted for use with PIVX, and we now have a solid testing base for highly customizable tests to be written. + +With this, the old `setgenerate` RPC command no longer functions in regtest mode, instead a new `generate` command has been introduced that is more suited for use in regtest mode. + +GUI Changes +------ + +### Console Security Warning + +Due to an increase in social engineering attacks/scams that rely on users relaying information from console commands, a new warning message has been added to the Console window's initial welcome message. + +### Optional Hiding of Orphan Stakes + +The options dialog now contains a checkbox option to hide the display of orphan stakes from both the overview and transaction history sections. Further, a right-click context menu option has been introduced in the transaction history tab to achieve the same effect. + +**Note:** This option only affects the visual display of orphan stakes, and will not prevent them nor remove them from the underlying wallet database. + +### Transaction Type Recoloring + +The color of various transaction types has been reworked to provide better visual feedback. Staking and masternode rewards are now purple, orphan stakes are now light gray, other rejected transactions are in red, and normal receive/send transactions are black. + +### Receive Tab Changes + +The address to be used when creating a new payment request is now automatically displayed in the form. This field is not user-editable, and will be updated as needed by the wallet. + +A new button has been added below the payment request form, "Receiving Addresses", which allows for quicker access to all the known receiving addresses. This one-click button is the same as using the `File->Receiving Addresses...` menu command, and will open up the Receiving Addresses UI dialog. + +Historical payment requests now also display the address used for the request in the history table. While this information was already available when clicking the "Show" button, it was an extra step that shouldn't have been necessary. + +### Privacy Tab Changes + +The entire right half of the privacy tab can now be toggled (shown/hidden) via a new UI button. This was done to reduce "clutter" for users that may not wish to see the detailed information regarding individual denomination counts. + +RPC Changes +------ + +### Backupwallet Sanity + +The `backupwallet` RPC command no longer allows for overwriting the currently in use wallet.dat file. This was done to avoid potential file corruption caused by multiple conflicting file access operations. + +### Spendzerocoin Security Level Removed + +The `securitylevel` argument has been removed from the `spendzerocoin` RPC command. + +### Spendzerocoinmints Added + +Introduce the `spendzerocoinmints` RPC call to enable spending specific zerocoins, provided as an array of hex strings (serial hashes). + +### Getreceivedbyaddress Update + +When calling `getreceivedbyaddress` with a non-wallet address, return a proper error code/message instead of just `0` + +### Validateaddress More Verbosity + +`validateaddress` now has the ability to return more (non-critical or identifying) details about P2SH (multisig) addresses by removing the needless check against ISMINE_NO. + +### Listmintedzerocoins Additional Options + +Add a `fVerbose` boolean optional argument (default=false) to `listmintedzerocoins` call to have a more detailed output. + +If `fVerbose` is specified as first argument, then a second optional boolean argument `fMatureOnly` (default=false) can be used to filter-out immature mints. + +### Getblock & Getblockheader + +A minor change to these two RPC commands to now display the `mediantime`, used primarialy during functional tests. + +### Getwalletinfo + +The `getwalletinfo` RPC command now outputs the configured transaction fee (`paytxfee` field). + +Build System Changes +------ + +### Completely Disallow Qt4 + +Compiling the PIVX Core wallet against Qt4 hasn't been supported for quite some time now, but the build system still recognized Qt4 as a valid option if Qt5 couldn't be found. This has now been remedied and Qt4 will no longer be considered valid during the `configure` pre-compilation phase. + +### Further OpenSSL Deprecation + +Up until now, the zerocoin library relied exclusively on OpenSSL for it's bignum implementation. This has now been changed with the introduction of GMP as an arithmetic operator and the bignum implementation has now been redesigned around GMP. Users can still opt to use OpenSSL for bignum by passing `--with-zerocoin-bignum=openssl` to the `configure` script, however such configuration is now deprecated. + +**Note:** This change introduces a new dependency on GMP (libgmp) by default. + +### RISC-V Support + +Support for the new RISC-V 64bit processors has been added, though still experimental. Pre-compiled binaries for this CPU architecture are available for linux, and users can self-compile using gitian, depends, or an appropriate host system natively. + +### New Gitian Build Script + +The previous `gitian-build.sh` shell script has been replaced with a more feature rich python version; `gitian-build.py`. This script now supports the use of a docker container in addition to LXC or KVM virtualization, as well as the ability to build against a pull request by number. *version* Change log ============== diff --git a/src/Makefile.am b/src/Makefile.am index eb04dbb1a554..39b2f985b514 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -77,10 +77,6 @@ endif # pivx core # BITCOIN_CORE_H = \ activemasternode.h \ - accumulators.h \ - accumulatorcheckpoints.h \ - accumulatorcheckpoints.json.h \ - accumulatormap.h \ addrman.h \ alert.h \ allocators.h \ @@ -104,15 +100,13 @@ BITCOIN_CORE_H = \ compat/sanity.h \ compressor.h \ primitives/block.h \ - primitives/deterministicmint.h \ primitives/transaction.h \ - primitives/zerocoin.h \ core_io.h \ crypter.h \ denomination_functions.h \ obfuscation.h \ obfuscation-relay.h \ - db.h \ + wallet/db.h \ hash.h \ httprpc.h \ httpserver.h \ @@ -135,7 +129,6 @@ BITCOIN_CORE_H = \ masternodeconfig.h \ merkleblock.h \ miner.h \ - mintpool.h \ mruset.h \ netbase.h \ net.h \ @@ -178,12 +171,20 @@ BITCOIN_CORE_H = \ utiltime.h \ validationinterface.h \ version.h \ - wallet.h \ - wallet_ismine.h \ - walletdb.h \ + wallet/wallet.h \ + wallet/wallet_ismine.h \ + wallet/walletdb.h \ zpivchain.h \ - zpivtracker.h \ - zpivwallet.h \ + zpiv/accumulators.h \ + zpiv/accumulatorcheckpoints.h \ + zpiv/accumulatorcheckpoints.json.h \ + zpiv/accumulatormap.h \ + zpiv/deterministicmint.h \ + zpiv/mintpool.h \ + zpiv/witness.h \ + zpiv/zerocoin.h \ + zpiv/zpivtracker.h \ + zpiv/zpivwallet.h \ genwit.h \ concurrentqueue.h \ lightzpivthread.h \ @@ -256,7 +257,7 @@ libbitcoin_wallet_a_SOURCES = \ denomination_functions.cpp \ obfuscation.cpp \ obfuscation-relay.cpp \ - db.cpp \ + wallet/db.cpp \ crypter.cpp \ swifttx.cpp \ masternode.cpp \ @@ -265,17 +266,19 @@ libbitcoin_wallet_a_SOURCES = \ masternode-sync.cpp \ masternodeconfig.cpp \ masternodeman.cpp \ - mintpool.cpp \ - rpcdump.cpp \ - primitives/deterministicmint.cpp \ - primitives/zerocoin.cpp \ - rpcwallet.cpp \ + wallet/rpcdump.cpp \ + wallet/rpcwallet.cpp \ kernel.cpp \ - wallet.cpp \ - wallet_ismine.cpp \ - walletdb.cpp \ - zpivwallet.cpp \ - zpivtracker.cpp \ + wallet/wallet.cpp \ + wallet/wallet_ismine.cpp \ + wallet/walletdb.cpp \ + zpiv/deterministicmint.cpp \ + zpiv/zerocoin.cpp \ + zpiv/accumulators.cpp \ + zpiv/mintpool.cpp \ + zpiv/witness.cpp \ + zpiv/zpivwallet.cpp \ + zpiv/zpivtracker.cpp \ stakeinput.cpp \ genwit.cpp \ lightzpivthread.cpp \ @@ -347,9 +350,9 @@ libzerocoin_libbitcoin_zerocoin_a_SOURCES = \ libbitcoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) libbitcoin_common_a_SOURCES = \ - accumulators.cpp \ - accumulatorcheckpoints.cpp \ - accumulatormap.cpp \ + zpiv/accumulators.cpp \ + zpiv/accumulatorcheckpoints.cpp \ + zpiv/accumulatormap.cpp \ allocators.cpp \ amount.cpp \ base58.cpp \ @@ -358,9 +361,9 @@ libbitcoin_common_a_SOURCES = \ coins.cpp \ compressor.cpp \ primitives/block.cpp \ - primitives/deterministicmint.cpp \ + zpiv/deterministicmint.cpp \ primitives/transaction.cpp \ - primitives/zerocoin.cpp \ + zpiv/zerocoin.cpp \ core_read.cpp \ core_write.cpp \ hash.cpp \ diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index 1e0ec27300b4..e86cc67e56c0 100755 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -8,37 +8,38 @@ EXTRA_LIBRARIES += qt/libbitcoinqt.a # pivx qt core # QT_TS = \ qt/locale/pivx_bg.ts \ - qt/locale/pivx_ca.ts \ - qt/locale/pivx_cs.ts \ - qt/locale/pivx_da.ts \ - qt/locale/pivx_de.ts \ - qt/locale/pivx_en.ts \ - qt/locale/pivx_en_US.ts \ - qt/locale/pivx_eo.ts \ - qt/locale/pivx_es.ts \ - qt/locale/pivx_es_ES.ts \ - qt/locale/pivx_fi.ts \ - qt/locale/pivx_fr_FR.ts \ - qt/locale/pivx_hi_IN.ts \ - qt/locale/pivx_hr.ts \ - qt/locale/pivx_hr_HR.ts \ - qt/locale/pivx_it.ts \ - qt/locale/pivx_ja.ts \ - qt/locale/pivx_ko_KR.ts \ - qt/locale/pivx_lt_LT.ts \ - qt/locale/pivx_nl.ts \ - qt/locale/pivx_pl.ts \ - qt/locale/pivx_pt.ts \ - qt/locale/pivx_pt_BR.ts \ - qt/locale/pivx_ro_RO.ts \ - qt/locale/pivx_ru.ts \ - qt/locale/pivx_sk.ts \ - qt/locale/pivx_sv.ts \ - qt/locale/pivx_tr.ts \ - qt/locale/pivx_uk.ts \ - qt/locale/pivx_vi.ts \ - qt/locale/pivx_zh_CN.ts \ - qt/locale/pivx_zh_TW.ts + qt/locale/pivx_ca.ts \ + qt/locale/pivx_cs.ts \ + qt/locale/pivx_da.ts \ + qt/locale/pivx_de.ts \ + qt/locale/pivx_en.ts \ + qt/locale/pivx_en_GB.ts \ + qt/locale/pivx_en_US.ts \ + qt/locale/pivx_eo.ts \ + qt/locale/pivx_es.ts \ + qt/locale/pivx_es_ES.ts \ + qt/locale/pivx_fi.ts \ + qt/locale/pivx_fr_FR.ts \ + qt/locale/pivx_hi_IN.ts \ + qt/locale/pivx_hr.ts \ + qt/locale/pivx_hr_HR.ts \ + qt/locale/pivx_it.ts \ + qt/locale/pivx_ja.ts \ + qt/locale/pivx_ko_KR.ts \ + qt/locale/pivx_lt_LT.ts \ + qt/locale/pivx_nl.ts \ + qt/locale/pivx_pl.ts \ + qt/locale/pivx_pt.ts \ + qt/locale/pivx_pt_BR.ts \ + qt/locale/pivx_ro_RO.ts \ + qt/locale/pivx_ru.ts \ + qt/locale/pivx_sk.ts \ + qt/locale/pivx_sv.ts \ + qt/locale/pivx_tr.ts \ + qt/locale/pivx_uk.ts \ + qt/locale/pivx_vi.ts \ + qt/locale/pivx_zh_CN.ts \ + qt/locale/pivx_zh_TW.ts QT_FORMS_UI = \ qt/forms/addressbookpage.ui \ diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 4727cfee65d0..b240903e932a 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -74,7 +74,7 @@ BITCOIN_TESTS =\ if ENABLE_WALLET BITCOIN_TESTS += \ test/accounting_tests.cpp \ - test/wallet_tests.cpp \ + wallet/test/wallet_tests.cpp \ test/rpc_wallet_tests.cpp endif diff --git a/src/activemasternode.h b/src/activemasternode.h index dc3a9b125c6b..6874bc52d3e0 100644 --- a/src/activemasternode.h +++ b/src/activemasternode.h @@ -12,7 +12,7 @@ #include "net.h" #include "obfuscation.h" #include "sync.h" -#include "wallet.h" +#include "wallet/wallet.h" #define ACTIVE_MASTERNODE_INITIAL 0 // initial state #define ACTIVE_MASTERNODE_SYNC_IN_PROCESS 1 diff --git a/src/chainparams.cpp b/src/chainparams.cpp index d985059753da..2391af675de0 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -153,6 +153,7 @@ class CMainParams : public CChainParams nBlockEnforceInvalidUTXO = 902850; //Start enforcing the invalid UTXO's nInvalidAmountFiltered = 268200*COIN; //Amount of invalid coins filtered through exchanges, that should be considered valid nBlockZerocoinV2 = 1153160; //!> The block that zerocoin v2 becomes active - roughly Tuesday, May 8, 2018 4:00:00 AM GMT + nBlockDoubleAccumulated = 1050010; nEnforceNewSporkKey = 1525158000; //!> Sporks signed after (GMT): Tuesday, May 1, 2018 7:00:00 AM GMT must use the new spork key nRejectOldSporkKey = 1527811200; //!> Fully reject old spork key after (GMT): Friday, June 1, 2018 12:00:00 AM diff --git a/src/chainparams.h b/src/chainparams.h index e7af396f1acc..092c6d95e1f4 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -129,6 +129,7 @@ class CChainParams int Zerocoin_Block_EndFakeSerial() const { return nFakeSerialBlockheightEnd; } CAmount GetSupplyBeforeFakeSerial() const { return nSupplyBeforeFakeSerial; } + int Zerocoin_Block_Double_Accumulated() const { return nBlockDoubleAccumulated; } CAmount InvalidAmountFiltered() const { return nInvalidAmountFiltered; }; protected: @@ -193,6 +194,7 @@ class CChainParams int nBlockLastGoodCheckpoint; int nBlockEnforceInvalidUTXO; int nBlockZerocoinV2; + int nBlockDoubleAccumulated; // fake serial attack int nFakeSerialBlockheightEnd = 0; diff --git a/src/crypter.cpp b/src/crypter.cpp index ae2f32b94a16..97ce042bf076 100644 --- a/src/crypter.cpp +++ b/src/crypter.cpp @@ -14,7 +14,7 @@ #include #include #include -#include "wallet.h" +#include "wallet/wallet.h" bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::vector& chSalt, const unsigned int nRounds, const unsigned int nDerivationMethod) { @@ -256,7 +256,6 @@ bool CCryptoKeyStore::Unlock(const CKeyingMaterial& vMasterKeyIn) uint256 hashSeed; if (CWalletDB(pwalletMain->strWalletFile).ReadCurrentSeedHash(hashSeed)) { - uint256 nSeed; if (!GetDeterministicSeed(hashSeed, nSeed)) { return error("Failed to read zPIV seed from DB. Wallet is probably corrupt."); diff --git a/src/denomination_functions.h b/src/denomination_functions.h index 3b1b542750cf..822796d08b97 100644 --- a/src/denomination_functions.h +++ b/src/denomination_functions.h @@ -5,7 +5,7 @@ #include "reverse_iterate.h" #include "util.h" #include "libzerocoin/Denominations.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include #include std::vector SelectMintsFromList(const CAmount nValueTarget, CAmount& nSelectedValue, diff --git a/src/init.cpp b/src/init.cpp index 4abc798d9375..66df91948ee5 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -11,8 +11,7 @@ #include "init.h" -#include "accumulatorcheckpoints.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "activemasternode.h" #include "addrman.h" #include "amount.h" @@ -40,13 +39,13 @@ #include "util.h" #include "utilmoneystr.h" #include "validationinterface.h" +#include "zpiv/accumulatorcheckpoints.h" #include "zpivchain.h" #ifdef ENABLE_WALLET -#include "db.h" -#include "wallet.h" -#include "walletdb.h" -#include "accumulators.h" +#include "wallet/db.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #endif @@ -501,7 +500,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += HelpMessageOpt("-stopafterblockimport", strprintf(_("Stop running after importing blocks from disk (default: %u)"), 0)); strUsage += HelpMessageOpt("-sporkkey=", _("Enable spork administration functionality with the appropriate private key.")); } - string debugCategories = "addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, tor, mempool, net, proxy, http, libevent, pivx, (obfuscation, swiftx, masternode, mnpayments, mnbudget, zero)"; // Don't translate these and qt below + string debugCategories = "addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, tor, mempool, net, proxy, http, libevent, pivx, (obfuscation, swiftx, masternode, mnpayments, mnbudget, zero, precompute, staking)"; // Don't translate these and qt below if (mode == HMM_BITCOIN_QT) debugCategories += ", qt"; strUsage += HelpMessageOpt("-debug=", strprintf(_("Output debugging information (default: %u, supplying is optional)"), 0) + ". " + @@ -560,6 +559,8 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += HelpMessageOpt("-zeromintpercentage=", strprintf(_("Percentage of automatically minted Zerocoin (1-100, default: %u)"), 10)); strUsage += HelpMessageOpt("-preferredDenom=", strprintf(_("Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u)"), 0)); strUsage += HelpMessageOpt("-backupzpiv=", strprintf(_("Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u)"), 1)); + strUsage += HelpMessageOpt("-precompute=", strprintf(_("Enable precomputation of zPIV spends and stakes (0-1, default %u)"), 1)); + strUsage += HelpMessageOpt("-precomputecachelength=", strprintf(_("Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (default: %d)"), MIN_PRECOMPUTE_LENGTH, MAX_PRECOMPUTE_LENGTH, DEFAULT_PRECOMPUTE_LENGTH)); strUsage += HelpMessageOpt("-zpivbackuppath=", _("Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen")); #endif // ENABLE_WALLET strUsage += HelpMessageOpt("-reindexzerocoin=", strprintf(_("Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u)"), 0)); @@ -2022,6 +2023,11 @@ bool AppInit2() // Run a thread to flush wallet periodically threadGroup.create_thread(boost::bind(&ThreadFlushWalletDB, boost::ref(pwalletMain->strWalletFile))); + + if (GetBoolArg("-precompute", true)) { + // Run a thread to precompute any zPIV spends + threadGroup.create_thread(boost::bind(&ThreadPrecomputeSpends)); + } } #endif diff --git a/src/kernel.cpp b/src/kernel.cpp index 3b002659acf6..3591c35e4ffd 100644 --- a/src/kernel.cpp +++ b/src/kernel.cpp @@ -11,6 +11,7 @@ #include "timedata.h" #include "util.h" #include "stakeinput.h" +#include "utilmoneystr.h" #include "zpivchain.h" using namespace std; @@ -278,7 +279,7 @@ bool GetKernelStakeModifier(uint256 hashBlockFrom, uint64_t& nStakeModifier, int } //test hash vs target -bool stakeTargetHit(uint256 hashProofOfStake, int64_t nValueIn, uint256 bnTargetPerCoinDay) +bool stakeTargetHit(const uint256& hashProofOfStake, const int64_t& nValueIn, const uint256& bnTargetPerCoinDay) { //get the stake weight - weight is equal to coin amount uint256 bnCoinDayWeight = uint256(nValueIn) / 100; @@ -322,7 +323,7 @@ bool Stake(CStakeInput* stakeInput, unsigned int nBits, unsigned int nTimeBlockF bool fSuccess = false; unsigned int nTryTime = 0; int nHeightStart = chainActive.Height(); - int nHashDrift = 30; + int nHashDrift = 300; CDataStream ssUniqueID = stakeInput->GetUniqueness(); CAmount nValueIn = stakeInput->GetValue(); for (int i = 0; i < nHashDrift; i++) //iterate the hashing @@ -332,7 +333,7 @@ bool Stake(CStakeInput* stakeInput, unsigned int nBits, unsigned int nTimeBlockF break; //hash this iteration - nTryTime = nTimeTx + nHashDrift - i; + nTryTime = nTimeTx + (nHashDrift/2) - i; // if stake hash does not meet the target then continue to next iteration if (!CheckStake(ssUniqueID, nValueIn, nStakeModifier, bnTargetPerCoinDay, nTimeBlockFrom, nTryTime, hashProofOfStake)) diff --git a/src/kernel.h b/src/kernel.h index e4cd5d2e9cd6..318c7a1f62e4 100644 --- a/src/kernel.h +++ b/src/kernel.h @@ -24,7 +24,7 @@ bool GetKernelStakeModifier(uint256 hashBlockFrom, uint64_t& nStakeModifier, int bool ComputeNextStakeModifier(const CBlockIndex* pindexPrev, uint64_t& nStakeModifier, bool& fGeneratedStakeModifier); bool CheckStake(const CDataStream& ssUniqueID, CAmount nValueIn, const uint64_t nStakeModifier, const uint256& bnTarget, unsigned int nTimeBlockFrom, unsigned int& nTimeTx, uint256& hashProofOfStake); -bool stakeTargetHit(uint256 hashProofOfStake, int64_t nValueIn, uint256 bnTargetPerCoinDay); +bool stakeTargetHit(const uint256& hashProofOfStake, const int64_t& nValueIn, const uint256& bnTargetPerCoinDay); bool Stake(CStakeInput* stakeInput, unsigned int nBits, unsigned int nTimeBlockFrom, unsigned int& nTimeTx, uint256& hashProofOfStake); // Check kernel hash target and coinstake signature diff --git a/src/lightzpivthread.cpp b/src/lightzpivthread.cpp index 98fc309ca38a..00c986801f45 100644 --- a/src/lightzpivthread.cpp +++ b/src/lightzpivthread.cpp @@ -54,7 +54,6 @@ void CLightWorker::ThreadLightZPIVSimplified() { genWit.getFilter(), accumulator, witness, - 100, nMintsAdded, strFailReason, ret, diff --git a/src/lightzpivthread.h b/src/lightzpivthread.h index 34676d939f00..81a7351b724c 100644 --- a/src/lightzpivthread.h +++ b/src/lightzpivthread.h @@ -9,7 +9,7 @@ #include #include "genwit.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "concurrentqueue.h" #include "chainparams.h" #include diff --git a/src/main.cpp b/src/main.cpp index 5fb9ea5682da..93f7de406b0a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,8 +7,8 @@ #include "main.h" -#include "accumulators.h" -#include "accumulatormap.h" +#include "zpiv/accumulators.h" +#include "zpiv/accumulatormap.h" #include "addrman.h" #include "alert.h" #include "blocksignature.h" @@ -35,7 +35,7 @@ #include "validationinterface.h" #include "zpivchain.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "libzerocoin/Denominations.h" #include "invalid.h" #include @@ -79,6 +79,7 @@ bool fCheckBlockIndex = false; bool fVerifyingBlocks = false; unsigned int nCoinCacheSize = 5000; bool fAlerts = DEFAULT_ALERTS; +bool fClearSpendCache = false; unsigned int nStakeMinAge = 60 * 60; int64_t nReserveBalance = 0; @@ -4989,7 +4990,7 @@ bool ProcessNewBlock(CValidationState& state, CNode* pfrom, CBlock* pblock, CDis bool TestBlockValidity(CValidationState& state, const CBlock& block, CBlockIndex* const pindexPrev, bool fCheckPOW, bool fCheckMerkleRoot) { AssertLockHeld(cs_main); - assert(pindexPrev == chainActive.Tip()); + assert(pindexPrev && pindexPrev == chainActive.Tip()); CCoinsViewCache viewNew(pcoinsTip); CBlockIndex indexDummy(block); diff --git a/src/main.h b/src/main.h index 742badd36a87..b7037143e382 100644 --- a/src/main.h +++ b/src/main.h @@ -20,7 +20,7 @@ #include "pow.h" #include "primitives/block.h" #include "primitives/transaction.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "script/script.h" #include "script/sigcache.h" #include "script/standard.h" @@ -128,6 +128,12 @@ static const unsigned char REJECT_DUST = 0x41; static const unsigned char REJECT_INSUFFICIENTFEE = 0x42; static const unsigned char REJECT_CHECKPOINT = 0x43; +/** zPIV precomputing variables + * Set the number of included blocks to precompute per cycle. */ +static const int DEFAULT_PRECOMPUTE_LENGTH = 1000; +static const int MIN_PRECOMPUTE_LENGTH = 500; +static const int MAX_PRECOMPUTE_LENGTH = 2000; + struct BlockHasher { size_t operator()(const uint256& hash) const { return hash.GetLow64(); } }; @@ -153,6 +159,7 @@ extern unsigned int nCoinCacheSize; extern CFeeRate minRelayTxFee; extern bool fAlerts; extern bool fVerifyingBlocks; +extern bool fClearSpendCache; extern bool fLargeWorkForkFound; extern bool fLargeWorkInvalidChainFound; diff --git a/src/miner.cpp b/src/miner.cpp index 6db4e38c3c8d..c0883c0e6b53 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -19,11 +19,11 @@ #include "util.h" #include "utilmoneystr.h" #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif #include "validationinterface.h" #include "masternode-payments.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "blocksignature.h" #include "spork.h" #include "invalid.h" @@ -109,11 +109,12 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, CBlock* pblock = &pblocktemplate->block; // pointer for convenience // Tip - CBlockIndex* pindexPrev; + CBlockIndex* pindexPrev = nullptr; { // Don't keep cs_main locked LOCK(cs_main); pindexPrev = chainActive.Tip(); } + const int nHeight = pindexPrev->nHeight + 1; // Make sure to create the correct block version after zerocoin is enabled @@ -164,7 +165,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, } if (!fStakeFound) { - LogPrintf("CreateNewBlock(): stake not found\n"); + LogPrint("staking", "CreateNewBlock(): stake not found\n"); return NULL; } } @@ -191,6 +192,8 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, { LOCK2(cs_main, mempool.cs); + CBlockIndex* pindexPrev = chainActive.Tip(); + const int nHeight = pindexPrev->nHeight + 1; CCoinsViewCache view(pcoinsTip); // Priority order to process transactions @@ -595,8 +598,10 @@ 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)) { - if (pblock->IsZerocoinStake()) + if (pblock->IsZerocoinStake()) { pwalletMain->zpivTracker->RemovePending(pblock->vtx[1].GetHash()); + pwalletMain->zpivTracker->ListMints(true, true, true); //update the state + } return error("PIVXMiner : ProcessNewBlock, block not accepted"); } @@ -622,7 +627,7 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) // Each thread has its own key and counter CReserveKey reservekey(pwallet); unsigned int nExtraNonce = 0; - + bool fLastLoopOrphan = false; while (fGenerateBitcoins || fProofOfStake) { if (fProofOfStake) { //control the amount of times the client will check for mintable coins @@ -652,7 +657,7 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) continue; } - if (mapHashedBlocks.count(chainActive.Tip()->nHeight)) //search our map of hashed blocks, see if bestblock has been hashed yet + if (mapHashedBlocks.count(chainActive.Tip()->nHeight) && !fLastLoopOrphan) //search our map of hashed blocks, see if bestblock has been hashed yet { if (GetTime() - mapHashedBlocks[chainActive.Tip()->nHeight] < max(pwallet->nHashInterval, (unsigned int)1)) // wait half of the nHashDrift with max wait of 3 minutes { @@ -702,7 +707,10 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) LogPrintf("CPUMiner : proof-of-stake block was signed %s \n", pblock->GetHash().ToString().c_str()); SetThreadPriority(THREAD_PRIORITY_NORMAL); - ProcessBlockFound(pblock, *pwallet, reservekey); + if (!ProcessBlockFound(pblock, *pwallet, reservekey)) { + fLastLoopOrphan = true; + continue; + } SetThreadPriority(THREAD_PRIORITY_LOWEST); continue; diff --git a/src/net.cpp b/src/net.cpp index 97c657ef77a7..2feea92fea41 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -19,9 +19,8 @@ #include "primitives/transaction.h" #include "scheduler.h" #include "ui_interface.h" - #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif // ENABLE_WALLET #ifdef WIN32 diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 3ee827e1b042..94835fd9b67c 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -47,6 +47,19 @@ CTxIn::CTxIn(uint256 hashPrevTx, uint32_t nOut, CScript scriptSigIn, uint32_t nS nSequence = nSequenceIn; } +CTxIn::CTxIn(const libzerocoin::CoinSpend& spend, libzerocoin::CoinDenomination denom) +{ + //Serialize the coinspend object and append it to a CScript + CDataStream serializedCoinSpend(SER_NETWORK, PROTOCOL_VERSION); + serializedCoinSpend << spend; + std::vector data(serializedCoinSpend.begin(), serializedCoinSpend.end()); + + scriptSig = CScript() << OP_ZEROCOINSPEND << data.size(); + scriptSig.insert(scriptSig.end(), data.begin(), data.end()); + prevout.SetNull(); + nSequence = denom; +} + std::string CTxIn::ToString() const { std::string str; diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index db01f21e6670..29d5f300c875 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -8,6 +8,7 @@ #define BITCOIN_PRIMITIVES_TRANSACTION_H #include "amount.h" +#include "libzerocoin/CoinSpend.h" #include "script/script.h" #include "serialize.h" #include "uint256.h" @@ -78,6 +79,7 @@ class CTxIn explicit CTxIn(COutPoint prevoutIn, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=std::numeric_limits::max()); CTxIn(uint256 hashPrevTx, uint32_t nOut, CScript scriptSigIn=CScript(), uint32_t nSequenceIn=std::numeric_limits::max()); + CTxIn(const libzerocoin::CoinSpend& spend, libzerocoin::CoinDenomination denom); ADD_SERIALIZE_METHODS; diff --git a/src/qt/addresstablemodel.cpp b/src/qt/addresstablemodel.cpp index 7d93b054b3ec..1e60c131dabe 100644 --- a/src/qt/addresstablemodel.cpp +++ b/src/qt/addresstablemodel.cpp @@ -10,7 +10,7 @@ #include "walletmodel.h" #include "base58.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "askpassphrasedialog.h" #include @@ -141,7 +141,7 @@ class AddressTablePriv break; } } - + void updateEntry(const QString &pubCoin, const QString &isUsed, int status) { // Find address / label in model @@ -152,7 +152,7 @@ class AddressTablePriv int lowerIndex = (lower - cachedAddressTable.begin()); bool inModel = (lower != upper); AddressTableEntry::Type newEntryType = AddressTableEntry::Zerocoin; - + switch(status) { case CT_NEW: @@ -175,7 +175,7 @@ class AddressTablePriv parent->emitDataChanged(lowerIndex); break; } - + } diff --git a/src/qt/bip38tooldialog.cpp b/src/qt/bip38tooldialog.cpp index 2182ee36b13f..2a6292c68356 100644 --- a/src/qt/bip38tooldialog.cpp +++ b/src/qt/bip38tooldialog.cpp @@ -12,7 +12,7 @@ #include "base58.h" #include "bip38.h" #include "init.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "askpassphrasedialog.h" #include diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index d40aff79acf3..28191e7b812c 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -17,7 +17,7 @@ #include "coincontrol.h" #include "main.h" #include "obfuscation.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "multisigdialog.h" #include // for 'map_list_of()' diff --git a/src/qt/forms/privacydialog.ui b/src/qt/forms/privacydialog.ui index 45845a08a3be..e452d938110d 100644 --- a/src/qt/forms/privacydialog.ui +++ b/src/qt/forms/privacydialog.ui @@ -859,57 +859,6 @@ zPIV are mature when they have more than 20 confirmations AND more than 2 mints - - - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - - - QFrame::Box - - - Security Level: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - 0 - 0 - - - - Security Level 1 - 100 (default: 42) - - - QAbstractSpinBox::PlusMinus - - - true - - - QAbstractSpinBox::CorrectToNearestValue - - - 1 - - - 100 - - - 42 - - - - - diff --git a/src/qt/forms/zpivcontroldialog.ui b/src/qt/forms/zpivcontroldialog.ui index d625b1a6ce02..27f8f0b46ca9 100644 --- a/src/qt/forms/zpivcontroldialog.ui +++ b/src/qt/forms/zpivcontroldialog.ui @@ -6,13 +6,13 @@ 0 0 - 681 + 781 450 - 681 + 781 450 @@ -157,12 +157,17 @@ - zPIV ID + ID - zPIV Version + Version + + + + + Precomputed @@ -172,7 +177,7 @@ - Is Spendable + Spendable? diff --git a/src/qt/locale/pivx_bg.ts b/src/qt/locale/pivx_bg.ts index 1d0ce0d4b1a5..a2d3a95681e2 100644 --- a/src/qt/locale/pivx_bg.ts +++ b/src/qt/locale/pivx_bg.ts @@ -608,10 +608,6 @@ &Command-line options Опции за &Командното-поле - - Processed %n blocks of transaction history. - Обработени %n блока от преводната история.Обработени %n блока от преводна история. - Synchronizing additional data: %p% Синхронизиране на допълнитенни данни: %p% @@ -736,10 +732,6 @@ PIVX Core client Клиент PIVX Ядро - - %n active connection(s) to PIVX network - %n активни свръзки към PIVX мрежата %n активни свръзка(и) към PIVX мрежата - Synchronizing with network... Синхронизиране с мрежата... @@ -760,22 +752,10 @@ Up to date Актуален - - %n hour(s) - %n часа%n часа - - - %n week(s) - %n седмици%n седмици - %1 and %2 %1 и %2 - - %n year(s) - %n години%n години - Catching up... Наваксване... @@ -846,7 +826,7 @@ Address: %4 AutoMint is currently enabled and set to - АвтоЕмитирането е включено в момента и настроено на + АвтоЕмисията е включена и настроена на AutoMint is disabled @@ -860,7 +840,7 @@ Address: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Портфейла е <b>шифриран</b> и в момента е <b>отключен</b> - + BlockExplorer @@ -1220,6 +1200,17 @@ Address: %4 Не може да създадете нова папка за данни точно тук. + + GovernancePage + + Form + От + + + 0 + 0 + + HelpMessageDialog @@ -1537,50 +1528,10 @@ MultiSend will not be activated unless you have clicked Activate (no label) (без етикет) - - The entered address: - - Въведения адрес: - - - - is invalid. -Please check the address and try again. - е невалиден. -Моля проверете адреса отново и опитайте пак. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Сумата по Вашия вектор за МултиИзпращане надхвърля 100% от вашето стейк възнаграждение. - - Please Enter 1 - 100 for percent. Използвайте числата 1 - 100 за процент. - - Saved the MultiSend to memory, but failed saving properties to the database. - - МултиСенд е успешно запазен в паметта, но свойствата не бяха записани в базата данни. - - - - MultiSend Vector - - Вектор по МултиИзпращане - - - - Removed - Премахнат - - - Could not locate address - - Не намирам адреса - - MultisigDialog @@ -2473,18 +2424,6 @@ zPIV са узрели, тогава когато имат повече от 20 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Сигурност на Zerocoin Преводите. Повече - означава по-добра сигурност, но изисква повече време и ресурси. - - - Security Level: - Сигурност: - - - Security Level 1 - 100 (default: 42) - Ниво на Сигурност 1 - 100 (42 по подразбиране) - Pay &To: Плати На: @@ -2761,14 +2700,6 @@ To change the percentage (no restart required): Please be patient... Стартиране на ResetMintZerocoin: сканираме цялия блокчейн, това ще изисква около 30 минути, в зависимост от вашия компютър. Моля изчакате... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Харчене на Zerocoin. -Математически скъп превод, който може да има нужда от няколко минути за потвърждение, в зависимост от избраното Ниво на Сигурност и Вашият хардуер. -Моля проявете търпение... ) needed. @@ -2940,22 +2871,10 @@ Maximum allowed: to a newly generated (unused and therefore anonymous) local address <br /> на ново-генериран (неизползван до сега и поради това - анонимен) локален адрес <br /> - - with Security Level - с Ниво на Сигурност - Confirm send coins Потвърждаване на изпращането - - Version 1 zPIV require a security level of 100 to successfully spend. - Версия 1 zPIV изисква ниво на сигурност от 100 за успешно изразходване. - - - Failed to spend zPIV - Неуспешно изразходване на zPIV - Failed to fetch mint associated with serial hash Неуспешно извличане на мента, свързана със сериен хеш @@ -2974,11 +2893,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Spend Zerocoin failed with status = Харченето на Zerocoin се провали със статус = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialogPrivacyDialog - denomination: деноминация: @@ -3012,6 +2926,9 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou такса: + + ProposalFrame + QObject @@ -3062,7 +2979,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou %1 ms %1 милисек. - + + PIVX Core + PIVX Ядро + + QRImageWidget @@ -3424,10 +3345,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Confirm resync Blockchain Потвърдете ресинх на Блокчейна - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Използвайте стрелките за на доре и на долу, за да разгледате историята и <b>Ctrol-L</b>за да изчистите екрана. - Type <b>help</b> for an overview of available commands. Напишете <b>help</b> за списък с възможните команди. @@ -3499,6 +3416,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional label to associate with the new receiving address. Незадължителен етикет, който да асоциираме с адреса за получаване. + + A&mount: + Сума: + 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 PIVX network. Съобщение свободен текст, което да се прикачи към платежното нареждане, за да бъде показано когато нареждането се отвори от клиента на когото е изпратено. Обърнете внимание, че съобщението няма да бъде изпратено заедно с плащането по PIVX мрежата. @@ -3523,10 +3444,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional amount to request. Leave this empty or zero to not request a specific amount. Незадължителна сума за поискване. Оставете полето празно или напишете нула, за да не изисквате определена сума. - - &Amount: - &Сума: - &Request payment &Поискай плащане @@ -3571,6 +3488,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Copy amount Копирай сумата + + Copy address + Копирай адрес + ReceiveRequestDialog @@ -3641,6 +3562,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Message Съобщение + + Address + Адрес + Amount Сума @@ -3924,10 +3849,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou A fee %1 times higher than %2 per kB is considered an insanely high fee. Такса %1 пъти по-голяма от %2 за кБ се счита неразумно голяма такса. - - Estimated to begin confirmation within %n block(s). - Очаквано начало на потвърждения след %n блока.Очаквано начало на потвърждения след %n блока. - The recipient address is not valid, please recheck. Адреса на получателя е недвалиден. Моля преверете. @@ -4250,10 +4171,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou TransactionDesc - - Open for %n more block(s) - Отворен за още %n блокаОтворен за още %n блока - Open until %1 Отворен до %1 @@ -4314,10 +4231,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou , has not been successfully broadcast yet , все още неуспешно обявени - - , broadcast through %n node(s) - , обявени през %n възела, обявени през %n нода - Date Дата @@ -4358,10 +4271,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Credit Кредит - - matures in %n more block(s) - узрява след още %n блокаузрява след още %n блока - not accepted не е приет @@ -4460,10 +4369,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Address Адрес - - Open for %n more block(s) - Отворен за още %n блокаОтворен за още %n блока - Open until %1 Отворен до %1 @@ -4866,11 +4771,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Select/Deselect All Избери/Премахни Всички - - Is Spendable - В Налични за харечене - - + pivx-core @@ -5665,10 +5566,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to create mint Неуспешно емитиране - - Failed to deserialize - Неуспешно изтриване на серийния номер - Failed to find Zerocoins in wallet.dat Няма намерени Zerocoin монети в wallet.dat файла @@ -6109,14 +6006,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou The coin spend has been used Монетното плащане е използвано - - The new spend coin transaction did not verify - Новото преводно плащане не бе потвърдено - - - The selected mint coin is an invalid coin - Избраната емисия е невалидна монета - The transaction did not verify Превода не бе потвърден @@ -6265,10 +6154,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Verifying wallet... Проверява портфейла... - - Version 1 zPIV require a security level of 100 to successfully spend. - Версия 1 zPIV изисква ниво на сигурност от 100 за успешно изразходване. - Wallet %s resides outside data directory %s Портфейла %s е извън папката с данни %s diff --git a/src/qt/locale/pivx_ca.ts b/src/qt/locale/pivx_ca.ts index a1d2c5b2b761..20dfa05cbe2c 100644 --- a/src/qt/locale/pivx_ca.ts +++ b/src/qt/locale/pivx_ca.ts @@ -516,7 +516,7 @@ Wallet is <b>encrypted</b> and currently <b>locked</b> El moneder està <b>encriptat</b> i bloquejat</b> - + BlockExplorer @@ -844,6 +844,17 @@ No és possible crear una carpeta de dades aquí. + + GovernancePage + + Form + Formulari + + + 0 + 0 + + HelpMessageDialog @@ -1083,32 +1094,10 @@ (no label) (sense etiqueta) - - The entered address: - - L'adreça introduïda: - - Please Enter 1 - 100 for percent. Si us plau introdueix 1 - 100 per al percentatge - - MultiSend Vector - - Vector MultiSend - - - - Removed - Eliminat - - - Could not locate address - - No s'ha trobat l'adreça - - MultisigDialog @@ -1374,6 +1363,9 @@ Copia l'import + + ProposalFrame + QObject @@ -1404,7 +1396,11 @@ %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -1521,6 +1517,10 @@ &Message: &Missatge: + + A&mount: + I&mport: + Remove Elimina @@ -1537,6 +1537,10 @@ Copy amount Copia l'import + + Copy address + Copia l'adreça + ReceiveRequestDialog @@ -1583,6 +1587,10 @@ Message Missatge + + Address + Adreça + Amount Import diff --git a/src/qt/locale/pivx_cs.ts b/src/qt/locale/pivx_cs.ts index 57da49047004..b0c2e31cc459 100644 --- a/src/qt/locale/pivx_cs.ts +++ b/src/qt/locale/pivx_cs.ts @@ -792,7 +792,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Peněženka je <b>zašifrovaná</b> a momentálně je <b>zamčená</b> - + BlockExplorer @@ -1120,6 +1120,17 @@ MultiSend: %1 Zde nelze vytvořit složku. + + GovernancePage + + Form + Od + + + 0 + 0 + + HelpMessageDialog @@ -1391,44 +1402,10 @@ MultiSend: %1 (no label) (bez popisku) - - The entered address: - - Zadaná adresa: - - - - is invalid. -Please check the address and try again. - není validní. -Prosím zkontrolujte adresu a zkuste to znovu. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Celkovvá hodnota Vašeho MultiSend Vekktoru je přes 100% vaší odměny ze vsázení - - Please Enter 1 - 100 for percent. Prosím, zadejte 1-100 procent. - - MultiSend Vector - - MultiSend Vektor - - - - Removed - Odstraněno - - - Could not locate address - - Nemůžu najít adresu - - MultisigDialog @@ -1746,6 +1723,9 @@ Prosím zkontrolujte adresu a zkuste to znovu. Kopírovat hodnotu + + ProposalFrame + QObject @@ -1772,6 +1752,10 @@ Prosím zkontrolujte adresu a zkuste to znovu. N/A N/A + + PIVX Core + PIVX Core + QRImageWidget @@ -1946,12 +1930,12 @@ Prosím zkontrolujte adresu a zkuste to znovu. ReceiveCoinsDialog - &Label: - &Popis + A&mount: + H&odnota: - &Amount: - &Hodnota + &Label: + &Popis &Request payment @@ -1981,6 +1965,10 @@ Prosím zkontrolujte adresu a zkuste to znovu. Copy amount Kopírovat hodnotu + + Copy address + Kopírovat adresu + ReceiveRequestDialog @@ -2035,6 +2023,10 @@ Prosím zkontrolujte adresu a zkuste to znovu. Message Zpráva + + Address + Adresa + Amount Hodnota diff --git a/src/qt/locale/pivx_da.ts b/src/qt/locale/pivx_da.ts index cbc5d2937b83..2ad80034aaf7 100644 --- a/src/qt/locale/pivx_da.ts +++ b/src/qt/locale/pivx_da.ts @@ -610,7 +610,7 @@ Processed %n blocks of transaction history. - Behandlet %n blok af transaktionshistorik.Behandlet %n blokke af transaktionshistorik. + Der er gennemløbet %n blokke af transaktionshistorikken.Der er gennemløbet %n blokke af transaktionshistorikken. Synchronizing additional data: %p% @@ -738,7 +738,7 @@ %n active connection(s) to PIVX network - %n aktiv forbindelse til PIVX-netværk%n aktiv forbindelse(s) til PIVX netværk + %n aktiv forbindelse(s) til PIVX netværk%n aktiv forbindelse(s) til PIVX netværk Synchronizing with network... @@ -864,7 +864,7 @@ Adresse: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Tegnebogen er <b>krypteret og låst</b> - + BlockExplorer @@ -1224,6 +1224,17 @@ Adresse: %4 Kan ikke oprette en mappe hr + + GovernancePage + + Form + Formular + + + 0 + 0 + + HelpMessageDialog @@ -1542,48 +1553,26 @@ Multisend vil ikke fungere med mindre systemet er aktiveret. (ingen opmærknig) - The entered address: - - Den indtastede adresse: - - - - is invalid. -Please check the address and try again. - er ikke gyldig. -Kontroller adressen og prøv igen. - - - The total amount of your MultiSend vector is over 100% of your stake reward - + The total amount of your MultiSend vector is over 100% of your stake reward Den totale sum af Deres Multisendgruppe er over 100% af Deres indskudsbelønning - Please Enter 1 - 100 for percent. - Indtast en procentsats 1-100 - - - Saved the MultiSend to memory, but failed saving properties to the database. - + Saved the MultiSend to memory, but failed saving properties to the database. Gemt MultiSend til hukommelse, men fejlede gemme egenskaber til databasen. - MultiSend Vector - - Multisendgruppe - + Removed %1 + Fjernet %1 - Removed - Fjernet + Could not locate address + Kunne ikke finde adresse - Could not locate address - - Kunne ikke finde adresse - + Please Enter 1 - 100 for percent. + Indtast en procentsats 1-100 @@ -2484,18 +2473,6 @@ zPIV er modne, når de har mere end 20 bekræftelser OG mere end 2 minutter med 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Sikkerhedsniveau for Zerocoin Transaktioner. Mere er bedre, men har brug for mere tid og ressourcer. - - - Security Level: - Sikkerhedsniveau: - - - Security Level 1 - 100 (default: 42) - Sikkerhedsniveau 1 - 100 (standard: 42) - Pay &To: Betal &Til @@ -2772,14 +2749,6 @@ For at ændre procentdelen (ingen genstart kræves):. Please be patient... Starter ResetMintZerocoin: Genskanning af komplet blockchain, dette vil tage op til 30 minutter afhængigt af din hardware. Vær tålmodig... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Tilbringe Zerocoin -Computationally dyrt, kan have brug for flere minutter afhængigt af det valgte sikkerhedsniveau og din hardware. -Vær tålmodig.. ) needed. @@ -2951,22 +2920,10 @@ Maksimum tilladt: to a newly generated (unused and therefore anonymous) local address <br /> til en nyligt genereret (ubrugt og derfor anonym) lokal adresse <br /> - - with Security Level - med sikkerhedsniveau - Confirm send coins Bekræft at De vil sende mønter - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV kræver et sikkerhedsniveau på 100 til succes. - - - Failed to spend zPIV - Kunne ikke bruge zPIV - Failed to fetch mint associated with serial hash Kunne ikke hente mynte i forbindelse med seriel hash @@ -3023,6 +2980,9 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Gebyr: + + ProposalFrame + QObject @@ -3073,7 +3033,11 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere %1 ms %1 ms - + + PIVX Core + PIVX kerne + + QRImageWidget @@ -3435,10 +3399,6 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Confirm resync Blockchain Bekræft resync Blockchain - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Brug piltasterne for at navigere rundt i historiedata, og <b>Ctrl-L</b> for at tømme skærmen. - Type <b>help</b> for an overview of available commands. Tast <b>help> for at få en oversigt over tilgængelige kommandoer @@ -3510,6 +3470,14 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere An optional label to associate with the new receiving address. Valgfri opmærkning som tilknyttes den nye modtageradresse. + + &Address: + &adresse + + + A&mount: + A&mount + 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 PIVX network. Valgfri besked som vedhæftes betalingsanmodnigen, og som bliver vist når anmodningen åbnes. Note: Beskeden fremsendes ikke sammen med betalingen, når denne sendes ud på PIVX netværket. @@ -3534,10 +3502,6 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere An optional amount to request. Leave this empty or zero to not request a specific amount. Beløbsfeltet er valgfrit. Efterlad det tomt, eller med værdien 0 for at anmode om et beløb, som afsenderen bestemmer. - - &Amount: - &Beløb - &Request payment &Anmod om betaling @@ -3582,6 +3546,10 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Copy amount Kopiér beløb + + Copy address + Kopiér adresse + ReceiveRequestDialog @@ -3652,6 +3620,10 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Message Besked + + Address + Adresse + Amount Beløb @@ -4263,7 +4235,7 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere TransactionDesc Open for %n more block(s) - Åbn for %n flere blokkeÅbn for %n flere blokke + Åbn for %n blokkeÅbn for %n blokke Open until %1 @@ -4473,7 +4445,7 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Open for %n more block(s) - Åbn for %n flere blokkeÅbn for %n flere blokke + Åbn for %n blokkeÅbn for %n blokke Open until %1 @@ -4877,11 +4849,7 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Select/Deselect All Vælg / Fravælg alle - - Is Spendable - Kan tilbringes - - + pivx-core @@ -5369,6 +5337,10 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Error recovering public key. Fejl ved genskabelse af den offentlige nøgle + + Error writing zerocoinDB to disk + Fejl ved at skrive zerocoinDB til disk + Error Fejl! @@ -5405,6 +5377,10 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Failed to listen on any port. Use -listen=0 if you want this. Lytning på uspecificerede porte mislykkedes. Brug -listen=0 hvis De ønsker denne funktion. + + Failed to parse host:port string + Failed to parse host:port string + Failed to read block Læsning af blokken mislykkedes @@ -5681,10 +5657,6 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Failed to create mint Kunne ikke oprette mynte - - Failed to deserialize - Kunne ikke deserialisere - Failed to find Zerocoins in wallet.dat Kunne ikke finde Zerocoins i wallet.dat @@ -6125,14 +6097,6 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere The coin spend has been used Møntudgifterne er blevet brugt - - The new spend coin transaction did not verify - Den nye udgiftsmønttransaktion bekræftede ikke - - - The selected mint coin is an invalid coin - Den valgte mintmønter er en ugyldig mønt - The transaction did not verify Transaktionen bekræftede ikke @@ -6281,10 +6245,6 @@ Enten mint højere nomineringer (så færre input er nødvendige) eller reducere Verifying wallet... Verificerer tegnebog - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV kræver et sikkerhedsniveau på 100 til succes. - Wallet %s resides outside data directory %s Tegnbogen %s befinder sig udenfor datamappen %s diff --git a/src/qt/locale/pivx_de.ts b/src/qt/locale/pivx_de.ts index e0a4e35714c2..474d89fa502a 100644 --- a/src/qt/locale/pivx_de.ts +++ b/src/qt/locale/pivx_de.ts @@ -608,10 +608,6 @@ &Command-line options &Kommandozeilenoptionen - - Processed %n blocks of transaction history. - %n Blöcke der Transaktionshistorie bearbeitet.%n Blöcke des Transaktionsverlaufs verarbeitet. - Synchronizing additional data: %p% Synchronisiere zusätzliche Daten: %p% @@ -732,10 +728,6 @@ PIVX Core client PIVX Core Client - - %n active connection(s) to PIVX network - %n aktive Verbindung(en) zum PIVX Netzwerk%n aktive Verbindung(en) zum PIVX Netzwerk - Synchronizing with network... Synchronisiere mit Netzwerk... @@ -756,26 +748,10 @@ Up to date Auf aktuellem Stand - - %n hour(s) - %n Stunden%n Stunden - - - %n day(s) - %n Tage%n Tage - - - %n week(s) - %n Wochen%n Wochen - %1 and %2 %1 und %2 - - %n year(s) - %n Jahre%n Jahre - Catching up... Hole auf... @@ -859,7 +835,7 @@ Adresse: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Wallet ist <b>verschlüsselt</b> und aktuell <b>gesperrt</b> - + BlockExplorer @@ -1219,6 +1195,17 @@ Adresse: %4 Datenverzeichnis kann hier nicht angelegt werden. + + GovernancePage + + Form + Formular + + + 0 + 0 + + HelpMessageDialog @@ -1532,50 +1519,10 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.(no label) (keine Bezeichnung) - - The entered address: - - Die eingegebene Adresse: - - - - is invalid. -Please check the address and try again. - ist ungültig. -Bitte Adresse überprüfen und nochmals versuchen. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Die Gesamtzahl des MultiSend Vektors ist über 100% des Stake Rewards - - Please Enter 1 - 100 for percent. Bitte eine Zahl zwischen 1-100 in Prozent eingeben. - - Saved the MultiSend to memory, but failed saving properties to the database. - - Gespeichert den MultiSend im Speicher, aber Fehler beim Speichern von Eigenschaften in der Datenbank - - - - MultiSend Vector - - MultiSend Vektor - - - - Removed - Gelöscht - - - Could not locate address - - Konnte Adresse nicht ermitteln - - MultisigDialog @@ -2243,7 +2190,7 @@ Falls das automatische Prägen aktiviert ist, wird sich dieser Prozentsatz um de AutoMint is currently enabled and set to - Automatisches Prägen ist aktiv und eingestellt auf + Automatisches Prägen ist aktiv und eingestellt auf To disable AutoMint add 'enablezeromint=0' in pivx.conf. @@ -2476,18 +2423,6 @@ zPIV sind ausgereift wenn sie mehr als 20 Bestätigungen und mehr als 2 Prägung 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Sicherheitsstufe für Zerocoin-Transaktionen. Höher ist besser, benötigt jedoch mehr Zeit und Ressourcen. - - - Security Level: - Sicherheitsstufe: - - - Security Level 1 - 100 (default: 42) - Sicherheitsstufe 1 - 100 (Voreinstellung: 42) - Pay &To: E&mpfänger: @@ -2764,14 +2699,6 @@ Um den Prozentsatz zu ändern (kein Neustart erforderlich): Please be patient... Starten von ResetMintZerocoin: Erneutes Scannen der kompletten Blockchain. Das benötigt, je nach Hardware, bis zu 30 Minuten. Bitte haben Sie etwas Geduld... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Zerocoin ausgeben. -Rechnerisch aufwändig. Kann je nach ausgewähltem Sicherheitsstufe und Ihrer Hardware mehrere Minuten benötigen. -Bitte haben Sie Geduld... ) needed. @@ -2943,22 +2870,10 @@ Maximal erlaubt: to a newly generated (unused and therefore anonymous) local address <br /> an eine neu generierte (unbenutzte und daher anonyme) lokale Adresse<br /> - - with Security Level - mit Sicherheitsstufe - Confirm send coins Sende Coins bestätigen - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV benötigen eine Sicherheitsstufe von 100 um erfolgreich ausgegeben werden zu können. - - - Failed to spend zPIV - zPIV Überweisung fehlgeschlagen - Failed to fetch mint associated with serial hash Mit Hash verbundene Prägung konnte nicht abgerufen werden @@ -2977,11 +2892,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Spend Zerocoin failed with status = Ausgeben Zerocoin fehlgeschlagen mit Status = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialogPrivacyDialog - denomination: Stückelung: @@ -3015,6 +2925,9 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Gebühr: + + ProposalFrame + QObject @@ -3065,7 +2978,11 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) %1 ms %1 Ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3427,10 +3344,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Confirm resync Blockchain Synchronisation der Blockchain bestätigen - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Nutze die Pfeiltasten um durch ehemals genutze Konsolenbefehle zu scrollen und <b>Ctrl-L</b> um das Konsolenfenster zu leeren. - Type <b>help</b> for an overview of available commands. Gebe <b>help</b> ein, um eine Übersicht der verfügbaren Befehle zu erhalten. @@ -3502,6 +3415,10 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) An optional label to associate with the new receiving address. Ein optionales Etikett, das mit der neuen Empfangsadresse verknüpft werden soll. + + A&mount: + Betra&g: + 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 PIVX network. Eine optionale Nachricht an die Zahlungsaufforderung anhängen, die bei der Eröffnung der Anforderung angezeigt wird. Hinweis: Die Nachricht wird nicht mit der Zahlung über das PIVX-Netzwerk gesendet. @@ -3526,10 +3443,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) An optional amount to request. Leave this empty or zero to not request a specific amount. Einen optionalen Betrag anfordern. Lassen Sie diesen leer oder Null, um einen unbestimmten Betrag anzufordern. - - &Amount: - &Betrag: - &Request payment Zahlung anfo&rdern @@ -3574,6 +3487,10 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Copy amount Betrag kopieren + + Copy address + Adresse kopieren + ReceiveRequestDialog @@ -3644,6 +3561,10 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Message Nachricht + + Address + Adresse + Amount Betrag @@ -3927,10 +3848,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) A fee %1 times higher than %2 per kB is considered an insanely high fee. Eine Gebühr %1 mal höher als %2 pro kB gilt als wahnsinnig hohe Gebühr. - - Estimated to begin confirmation within %n block(s). - Voraussichtlich beginnt die Betätigung in %n Blöcken.Voraussichtlich beginnt die Betätigung in %n Blöcken. - The recipient address is not valid, please recheck. Die Adresse des Empfängers ist nicht gültig, bitte erneut prüfen. @@ -4178,11 +4095,11 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) The entered address does not refer to a key. - Die eingegebene Adresse passt nicht zu einem Schlüssel + Die eingegebene Adresse passt zu keinem Schlüssel Wallet unlock was cancelled. - Wallet-Entsperrung wurde abgebrochen. + Entsperrung der Wallet wurde abgebrochen. Private key for the entered address is not available. @@ -4253,10 +4170,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) TransactionDesc - - Open for %n more block(s) - Geöffnet für %n weitere BlöckeGeöffnet für %n weitere Blöcke - Open until %1 Offen bis %1 @@ -4317,10 +4230,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) , 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 @@ -4361,10 +4270,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Credit Gutschrift - - matures in %n more block(s) - reift noch %n weitere Blöckereift noch %n weitere Blöcke - not accepted nicht angenommen @@ -4463,10 +4368,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Address Adresse - - Open for %n more block(s) - Geöffnet für %n weitere BlöckeGeöffnet für %n weitere Blöcke - Open until %1 Offen bis %1 @@ -4732,7 +4633,7 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Comma separated file (*.csv) - Kommagetrennte-Datei (*.csv) + Kommagetrennte Datei (*.csv) Confirmed @@ -4832,7 +4733,7 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Export the data in the current tab to a file - Daten der aktuellen Ansicht in eine Datei exportieren + Daten aus der aktuellen Ansicht in eine Datei exportieren Selected amount: @@ -4869,11 +4770,7 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Select/Deselect All Alle Aus-/Abwählen - - Is Spendable - ist aufwendbar - - + pivx-core @@ -5360,6 +5257,10 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Error recovering public key. Fehler bei der Wiederherstellung des öffentlichen Schlüssels. + + Error writing zerocoinDB to disk + Fehler beim Schreiben von zerocoinDB auf die Festplatte + Error Fehler @@ -5396,6 +5297,10 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Failed to listen on any port. Use -listen=0 if you want this. Abhören jeglicher Ports fehlgeschlagen. Nutzen Sie -listen=0 falls dies erwünscht ist. + + Failed to parse host:port string + Fehler beim Analysieren von host: port string + Failed to read block Block konnte nicht gelesen werden @@ -5672,10 +5577,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Failed to create mint Fehler beim Erstellen von Minze - - Failed to deserialize - Fehler beim Deserialisieren - Failed to find Zerocoins in wallet.dat Zerocoins in wallet.dat nicht gefunden @@ -6116,14 +6017,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) The coin spend has been used Die Münzausgabe wurde verwendet - - The new spend coin transaction did not verify - Die neue Münzausgabe wurde nicht überprüft - - - The selected mint coin is an invalid coin - Die ausgewählte Münze ist eine ungültige Münze - The transaction did not verify Die Transaktion wurde nicht verifiziert @@ -6272,10 +6165,6 @@ Präge entweder höhere Stückelungen (damit weniger Eingaben benötigt werdenn) Verifying wallet... Verifiziere Wallet... - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV benötigen eine Sicherheitsstufe von 100 um erfolgreich ausgegeben werden zu können. - Wallet %s resides outside data directory %s Wallet %s liegt außerhalb des Datenverzeichnisses %s diff --git a/src/qt/locale/pivx_en.ts b/src/qt/locale/pivx_en.ts index 28967ce36853..e4f3d867ffa4 100644 --- a/src/qt/locale/pivx_en.ts +++ b/src/qt/locale/pivx_en.ts @@ -516,7 +516,7 @@ BitcoinGUI - + Wallet Wallet @@ -561,7 +561,17 @@ - + + &Governance + + + + + Show Proposals + + + + E&xit E&xit @@ -776,7 +786,7 @@ &Command-line options - + Processed %n blocks of transaction history. Processed %n block of transaction history. @@ -794,7 +804,7 @@ - + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only @@ -804,7 +814,7 @@ - + &File &File @@ -829,13 +839,13 @@ Tabs toolbar - - + + PIVX Core - + Send coins to a PIVX address @@ -860,7 +870,7 @@ - + &About PIVX Core @@ -940,12 +950,12 @@ - + PIVX Core client - + %n active connection(s) to PIVX network @@ -1074,20 +1084,20 @@ Address: %4 - + Staking is active MultiSend: %1 - + Active - - + + Not Active @@ -1098,17 +1108,17 @@ Address: %4 - + AutoMint is currently enabled and set to - + AutoMint is disabled - + Wallet is <b>encrypted</b> and currently <b>unlocked</b> Wallet is <b>encrypted</b> and currently <b>unlocked</b> @@ -1117,6 +1127,11 @@ Address: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Wallet is <b>encrypted</b> and currently <b>locked</b> + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + + BlockExplorer @@ -1568,6 +1583,64 @@ Address: %4 Cannot create data directory here. + + GovernancePage + + + Form + Form + + + + GOVERNANCE + + + + + Update Proposals + + + + + Next super block: + + + + + + + + + + 0 + + + + + Blocks to next super block: + + + + + Days to budget payout (estimate): + + + + + Allotted budget: + + + + + Budget left: + + + + + Masternodes count: + + + HelpMessageDialog @@ -2409,7 +2482,7 @@ Please be patient after clicking import. (0 = auto, <0 = leave that many cores free) - + W&allet W&allet @@ -2444,7 +2517,7 @@ Please be patient after clicking import. Expert - + Automatically start PIVX after logging in to the system. @@ -2454,7 +2527,7 @@ Please be patient after clicking import. - + Whether to show coin control features or not. Whether to show coin control features or not. @@ -2500,7 +2573,7 @@ https://www.transifex.com/pivx-project/pivx-project-translations Map port using &UPnP - + Enable automatic minting of PIV units to zPIV @@ -2510,7 +2583,17 @@ https://www.transifex.com/pivx-project/pivx-project-translations - + + Enable automatic zPIV minting from specific addresses + + + + + Enable Automint Addresses + + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) @@ -2683,7 +2766,7 @@ https://www.transifex.com/pivx-project/pivx-project-translations none - + Confirm options reset Confirm options reset @@ -2920,7 +3003,7 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1 PaymentServer - + @@ -3071,7 +3154,7 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1 - + Mint Zerocoin @@ -3085,12 +3168,12 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1 - + zPIV - + Available for minting are coins which are confirmed and not locked or Masternode collaterals. @@ -3101,7 +3184,7 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1 - 0.000 000 00 PIV + 0.000 000 00 PIV @@ -3172,18 +3255,16 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1 - + Spend Zerocoin. Without 'Pay To:' address creates payments to yourself. - + - - - + Spend Zerocoin @@ -3209,7 +3290,7 @@ zPIV are mature when they have more than 20 confirmations AND more than 2 mints - + @@ -3223,22 +3304,7 @@ zPIV are mature when they have more than 20 confirmations AND more than 2 mints - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - - - - - Security Level: - - - - - Security Level 1 - 100 (default: 42) - - - - + Pay &To: Pay &To: @@ -3308,16 +3374,16 @@ zPIV are mature when they have more than 20 confirmations AND more than 2 mints - + - + Total Balance including unconfirmed and immature zPIV - - + + Total Zerocoin Balance: @@ -3364,8 +3430,8 @@ To change the percentage (no restart required): - - + + Global Supply: @@ -3422,7 +3488,7 @@ To change the percentage (no restart required): - + Show zPIV denominations list @@ -3432,7 +3498,7 @@ To change the percentage (no restart required): - + Denominations with value 5: @@ -3543,9 +3609,9 @@ To change the percentage (no restart required): - + - + Coins automatically selected @@ -3581,18 +3647,18 @@ To change the percentage (no restart required): Change: - + out of sync out of sync - + Mint Status: Okay - + Copy quantity Copy quantity @@ -3602,20 +3668,13 @@ To change the percentage (no restart required): Copy amount - + Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. Please be patient... - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - - - - + ) needed. Maximum allowed: @@ -3652,13 +3711,13 @@ Maximum allowed: - + zPIV is currently undergoing maintenance. - + Denom. with value <b>1</b>: @@ -3699,12 +3758,12 @@ Maximum allowed: - + AutoMint Status: - + Denom. <b>1</b>: @@ -3744,7 +3803,7 @@ Maximum allowed: - + Error: Your wallet is locked. Please enter the wallet passphrase first. @@ -3777,20 +3836,20 @@ Maximum allowed: - + Duration: - + - + sec. - + Starting ResetSpentZerocoin: @@ -3815,7 +3874,7 @@ Maximum allowed: - + Are you sure you want to send?<br /><br /> @@ -3830,34 +3889,17 @@ Maximum allowed: - - with Security Level - - - - + Confirm send coins Confirm send coins - - - Version 1 zPIV require a security level of 100 to successfully spend. - - - - - - Failed to spend zPIV - - - - + Failed to fetch mint associated with serial hash - + Too much inputs ( @@ -3888,7 +3930,14 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + + Spending Zerocoin. +Computationally expensive, might need several minutes depending on your hardware. +Please be patient... + + + + serial: @@ -3923,6 +3972,90 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + + ProposalFrame + + + Open proposal page in browser + + + + + remaining payment(s). + + + + + Yes: + + + + + Abstain: + + + + + No: + + + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + + + + + Open link + + + + + Copy link + + + + + Wallet Locked + + + + + You must unlock your wallet to vote. + + + + + Do you want to vote %1 on + + + + + using all your masternodes? + + + + + Proposal Hash: + + + + + Proposal URL: + + + + + Confirm Vote + + + + + Vote Results + + + QObject @@ -3952,12 +4085,12 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + %1 s %1 s - + NETWORK NETWORK @@ -3966,6 +4099,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou BLOOM + + + ZK_BLOOM + + UNKNOWN @@ -3986,6 +4124,39 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou %1 ms %1 ms + + + + + + PIVX Core + + + + + Error: Specified data directory "%1" does not exist. + + + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + + + + + Error: Invalid combination of -regtest and -testnet. + + + + + Error reading masternode configuration file: %1 + + + + + PIVX Core didn't yet exit safely... + + QRImageWidget @@ -6314,7 +6485,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou WalletView - + HISTORY @@ -6334,7 +6505,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Selected amount: - + Backup Wallet Backup Wallet @@ -6373,8 +6544,8 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - - Is Spendable + + Spendable? @@ -6447,6 +6618,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) @@ -6555,6 +6731,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou 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 average size of an index occurrence in the block spam filter (default: %u) + + Maximum size of data in data carrier transactions we relay and mine (default: %u) @@ -6562,6 +6743,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + Maximum size of the list of indexes in the block spam filter (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) @@ -6607,6 +6793,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + Set the number of included blocks to precompute per cycle. (minimum: %d) (maximum: %d) (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) @@ -6625,6 +6816,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Support filtering of blocks and transaction with bloom filters (default: %u) + + + The block database contains a block which appears to be from the future. This may be due to your computer's date and time being set incorrectly. Only rebuild the block database if you are sure that your computer's date and time are correct + + 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. @@ -6750,6 +6946,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou 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 + + + Adding Wrapped Serials supply... + + Allow DNS lookups for -addnode, -seednode and -connect @@ -6832,6 +7033,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + CoinSpend: failed check + + + + Collateral not valid. Collateral not valid. @@ -6880,6 +7086,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Could not parse masternode.conf Could not parse masternode.conf + + + Couldn't generate the accumulator witness + + Debugging/Testing options: @@ -6925,6 +7136,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Enable automatic Zerocoin minting (0-1, default: %u) + + + Enable precomputation of zPIV spends and stakes (0-1, default %u) + + Enable publish hash transaction (locked via SwiftX) in <address> @@ -7041,7 +7257,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + 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. @@ -7221,7 +7437,22 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + + Recalculating PIV supply... + + + + + Recalculating minted ZPIV... + + + + + Recalculating spent ZPIV... + + + + Reindex the PIV and zPIV money supply statistics @@ -7242,16 +7473,21 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou + Support the zerocoin light node protocol (default: %u) + + + + SwiftX options: - + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! - + mints deleted @@ -7278,7 +7514,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + Error: 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. @@ -7308,12 +7544,12 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) - + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen @@ -7328,12 +7564,12 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + <category> can be: - + Attempt to force blockchain corruption recovery @@ -7343,7 +7579,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + Display the stake modifier calculations in the debug.log file. @@ -7353,7 +7589,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + Enable publish hash block in <address> @@ -7392,11 +7628,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to create mint - - - Failed to deserialize - - Failed to find Zerocoins in wallet.dat @@ -7658,12 +7889,22 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Password for JSON-RPC connections - + + Use block spam filter (default: %u) + + + + + could not get lock on cs_spendcache + + + + isValid(): Invalid -proxy address or hostname: '%s' - + Preparing for resync... @@ -7698,7 +7939,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou 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) @@ -7903,7 +8144,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Submitted to masternode, waiting in queue %s - + Synchronization failed Synchronization failed @@ -7947,16 +8188,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou The coin spend has been used - - - The new spend coin transaction did not verify - - - - - The selected mint coin is an invalid coin - - The transaction did not verify @@ -8052,11 +8283,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Transmitting final transaction. Transmitting final transaction. - - - Try to spend with a higher security level to include more coins - - Trying to spend an already spent serial #, try again. @@ -8113,7 +8339,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + Use the test network Use the test network @@ -8147,11 +8373,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Verifying wallet... Verifying wallet... - - - Version 1 zPIV require a security level of 100 to successfully spend. - - Wallet %s resides outside data directory %s @@ -8238,7 +8459,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou - + on startup on startup diff --git a/src/qt/locale/pivx_en_GB.ts b/src/qt/locale/pivx_en_GB.ts new file mode 100644 index 000000000000..095d467e5fdd --- /dev/null +++ b/src/qt/locale/pivx_en_GB.ts @@ -0,0 +1,6442 @@ + + + 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 PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your PIVX 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, automint, and staking only + For anonymisation, automint, and staking 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 + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + + + Are you sure you wish to encrypt your wallet? + Are you sure you wish to encrypt your wallet? + + + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! + + + Wallet encrypted + Wallet encrypted + + + 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! + + + + BanTableModel + + IP/Netmask + IP/Netmask + + + Banned Until + Banned Until + + + + Bip38ToolDialog + + BIP 38 Tool + BIP 38 Tool + + + &BIP 38 Encrypt + &BIP 38 Encrypt + + + Address: + Address: + + + Enter a PIVX Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. + Enter a PIVX Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. + + + The PIVX address to encrypt + The PIVX address to encrypt + + + Choose previously used address + Choose previously used address + + + Alt+A + Alt+A + + + Paste address from clipboard + Paste address from clipboard + + + Alt+P + Alt+P + + + Passphrase: + Passphrase: + + + Encrypted Key: + Encrypted Key: + + + Copy the current signature to the system clipboard + Copy the current signature to the system clipboard + + + Encrypt the private key for this PIVX address + Encrypt the private key for this PIVX address + + + Reset all fields + Reset all fields + + + The encrypted private key + The encrypted private key + + + Decrypt the entered key using the passphrase + Decrypt the entered key using the passphrase + + + Encrypt &Key + Encrypt &Key + + + Clear &All + Clear &All + + + &BIP 38 Decrypt + &BIP 38 Decrypt + + + Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. + Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. + + + Decrypt &Key + Decrypt &Key + + + Decrypted Key: + Decrypted Key: + + + Import Address + Import Address + + + Click "Decrypt Key" to compute key + Click "Decrypt Key" to compute key + + + The entered passphrase is invalid. + The entered passphrase is invalid. + + + Allowed: 0-9,a-z,A-Z, + Allowed: 0-9,a-z,A-Z, + + + 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. + + + Failed to decrypt. + Failed to decrypt. + + + Please check the key and passphrase and try again. + Please check the key and passphrase and try again. + + + Data Not Valid. + Data Not Valid. + + + Please try again. + Please try again. + + + Please wait while key is imported + Please wait while key is imported + + + Key Already Held By Wallet + Key Already Held By Wallet + + + Error Adding Key To Wallet + Error Adding Key To Wallet + + + Successfully Added Private Key To Wallet + Successfully Added Private Key To Wallet + + + + BitcoinGUI + + Wallet + Wallet + + + Node + Node + + + &Overview + &Overview + + + Show general overview of wallet + Show general overview of wallet + + + &Send + &Send + + + &Receive + &Receive + + + &Transactions + &Transactions + + + Browse transaction history + Browse transaction history + + + Privacy Actions for zPIV + Privacy Actions for zPIV + + + E&xit + E&xit + + + Quit application + Quit application + + + About &Qt + About &Qt + + + Show information about Qt + Show information about Qt + + + &Options... + &Options... + + + &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... + + + &Verify message... + &Verify message... + + + &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 + + + 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 + + + &Multisignature creation... + &Multisignature creation... + + + Create a new multisignature address and add it to this wallet + Create a new multisignature address and add it to this wallet + + + &Multisignature spending... + &Multisignature spending... + + + Spend from a multisignature address + Spend from a multisignature address + + + &Multisignature signing... + &Multisignature signing... + + + Sign with a multisignature address + Sign with a multisignature address + + + Open &URI... + Open &URI... + + + &Command-line options + &Command-line options + + + Processed %n blocks of transaction history. + Processed %n block of transaction history.Processed %n blocks of transaction history. + + + Synchronizing additional data: %p% + Synchronising additional data: %p% + + + %1 behind. Scanning block %2 + %1 behind. Scanning block %2 + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymisation and staking only + + + Tor is <b>enabled</b>: %1 + Tor is <b>enabled</b>: %1 + + + &File + &File + + + &Settings + &Settings + + + &Tools + &Tools + + + &Help + &Help + + + Tabs toolbar + Tabs toolbar + + + PIVX Core + PIVX Core + + + Send coins to a PIVX address + Send coins to a PIVX address + + + Request payments (generates QR codes and pivx: URIs) + Request payments (generates QR codes and pivx: URIs) + + + &Privacy + &Privacy + + + &Masternodes + &Masternodes + + + Browse masternodes + Browse masternodes + + + &About PIVX Core + &About PIVX Core + + + Show information about PIVX Core + Show information about PIVX Core + + + Modify configuration options for PIVX + Modify configuration options for PIVX + + + Sign messages with your PIVX addresses to prove you own them + Sign messages with your PIVX addresses to prove you own them + + + Verify messages to ensure they were signed with specified PIVX addresses + Verify messages to ensure they were signed with specified PIVX addresses + + + &BIP38 tool + &BIP38 tool + + + Encrypt and decrypt private keys using a passphrase + Encrypt and decrypt private keys using a passphrase + + + &MultiSend + &MultiSend + + + MultiSend Settings + MultiSend Settings + + + Open Wallet &Configuration File + Open Wallet &Configuration File + + + Open &Masternode Configuration File + Open &Masternode Configuration File + + + Open Masternode configuration file + Open Masternode configuration file + + + Open a PIVX: URI or payment request + Open a PIVX: URI or payment request + + + &Blockchain explorer + &Blockchain explorer + + + Block explorer window + Block explorer window + + + Show the PIVX Core help message to get a list with possible PIVX command-line options + Show the PIVX Core help message to get a list with possible PIVX command-line options + + + PIVX Core client + PIVX Core client + + + %n active connection(s) to PIVX network + %n active connection(s) to PIVX network%n active connection(s) to PIVX network + + + Synchronizing with network... + Synchronising 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 + + + 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 + + + Sent MultiSend transaction + Sent MultiSend transaction + + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + Date: %1 +Amount: %2 +Type: %3 +Address: %4 + + + + Staking is active + MultiSend: %1 + Staking is active + MultiSend: %1 + + + Active + Active + + + Not Active + Not Active + + + Staking is not active + MultiSend: %1 + Staking is not active + MultiSend: %1 + + + AutoMint is currently enabled and set to + AutoMint is currently enabled and set to + + + AutoMint is disabled + AutoMint is disabled + + + 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>locked</b> + Wallet is <b>encrypted</b> and currently <b>locked</b> + + + + BlockExplorer + + Blockchain Explorer + Blockchain Explorer + + + Back + Back + + + Forward + Forward + + + Address / Block / Transaction + Address / Block / Transaction + + + Search + Search + + + TextLabel + TextLabel + + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + + + + ClientModel + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + + + 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 + + + toggle lock state + toggle lock state + + + 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 + + + Type + Type + + + 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 + + + Please switch to "List mode" to use this function. + Please switch to "List mode" to use this function. + + + highest + highest + + + higher + higher + + + high + high + + + medium-high + medium-high + + + 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. + + + Can vary +/- %1 upiv per input. + Can vary +/- %1 upiv per input. + + + (no label) + (no label) + + + change from %1 (%2) + change from %1 (%2) + + + (change) + (change) + + + + 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 PIVX address. + The entered address "%1" is not a valid PIVX 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. + + + + GovernancePage + + Form + Form + + + 0 + 0 + + + + HelpMessageDialog + + version + version + + + PIVX Core + PIVX Core + + + (%1-bit) + (%1-bit) + + + About PIVX Core + About PIVX 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: %u) + Choose data directory on start up (default: %u) + + + Show splash screen on startup (default: %u) + Show splash screen on start up (default: %u) + + + Set language, for example "de_DE" (default: system locale) + Set language, for example "de_DE" (default: system locale) + + + Start minimized + Start minimised + + + Set SSL root certificates for payment request (default: -system-) + Set SSL root certificates for payment request (default: -system-) + + + + Intro + + Welcome + Welcome + + + Welcome to PIVX Core. + Welcome to PIVX Core. + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + + + PIVX Core will download and store a copy of the PIVX 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. + PIVX Core will download and store a copy of the PIVX 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: + + + PIVX Core + PIVX 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) + + + + MasternodeList + + Form + Form + + + MASTERNODES + MASTERNODES + + + Note: Status of your masternodes in local wallet can potentially be slightly incorrect.<br />Always wait for wallet to sync additional data and then double check from another node<br />if your node should be running but you still see "MISSING" in "Status" field. + Note: Status of your masternodes in local wallet can potentially be slightly incorrect.<br />Always wait for wallet to sync additional data and then double check from another node<br />if your node should be running but you still see "MISSING" in "Status" field. + + + Alias + Alias + + + Address + Address + + + Protocol + Protocol + + + Status + Status + + + Active + Active + + + Last Seen (UTC) + Last Seen (UTC) + + + Pubkey + Pubkey + + + S&tart alias + S&tart alias + + + Start &all + Start &all + + + Start &MISSING + Start &MISSING + + + &Update status + &Update status + + + Status will be updated automatically in (sec): + Status will be updated automatically in (sec): + + + 0 + 0 + + + Start alias + Start alias + + + Confirm masternode start + Confirm masternode start + + + Are you sure you want to start masternode %1? + Are you sure you want to start masternode %1? + + + Confirm all masternodes start + Confirm all masternodes start + + + Are you sure you want to start ALL masternodes? + Are you sure you want to start ALL masternodes? + + + Command is not available right now + Command is not available right now + + + You can't use this command until masternode list is synced + You can't use this command until masternode list is synced + + + Confirm missing masternodes start + Confirm missing masternodes start + + + Are you sure you want to start MISSING masternodes? + Are you sure you want to start MISSING masternodes? + + + + MultiSendDialog + + MultiSend + MultiSend + + + Enter whole numbers 1 - 100 + Enter whole numbers 1 - 100 + + + Enter % to Give (1-100) + Enter % to Give (1-100) + + + Enter Address to Send to + Enter Address to Send to + + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. +To Add: enter percentage to give and PIVX address to add to the MultiSend vector. +To Delete: Enter address to delete and press delete. +MultiSend will not be activated unless you have clicked Activate + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. +To Add: enter percentage to give and PIVX address to add to the MultiSend vector. +To Delete: Enter address to delete and press delete. +MultiSend will not be activated unless you have clicked Activate + + + Add to MultiSend Vector + Add to MultiSend Vector + + + Add + Add + + + Deactivate MultiSend + Deactivate MultiSend + + + Deactivate + Deactivate + + + Choose an address from the address book + Choose an address from the address book + + + Alt+A + Alt+A + + + Percentage of stake to send + Percentage of stake to send + + + Percentage: + Percentage: + + + Address to send portion of stake to + Address to send portion of stake to + + + Address: + Address: + + + Label: + Label: + + + 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 + + + Delete Address From MultiSend Vector + Delete Address From MultiSend Vector + + + Delete + Delete + + + Activate MultiSend + Activate MultiSend + + + Activate + Activate + + + View MultiSend Vector + View MultiSend Vector + + + View MultiSend + View MultiSend + + + Send For Stakes + Send For Stakes + + + Send For Masternode Rewards + Send For Masternode Rewards + + + (no label) + (no label) + + + MultiSend Active for Stakes and Masternode Rewards + MultiSend Active for Stakes and Masternode Rewards + + + MultiSend Active for Stakes + MultiSend Active for Stakes + + + MultiSend Active for Masternode Rewards + MultiSend Active for Masternode Rewards + + + MultiSend Not Active + MultiSend Not Active + + + The entered address: %1 is invalid. +Please check the address and try again. + The entered address: %1 is invalid. +Please check the address and try again. + + + The total amount of your MultiSend vector is over 100% of your stake reward + The total amount of your MultiSend vector is over 100% of your stake reward + + + Saved the MultiSend to memory, but failed saving properties to the database. + Saved the MultiSend to memory, but failed saving properties to the database. + + + MultiSend Vector + MultiSend Vector + + + Removed %1 + Removed %1 + + + Could not locate address + Could not locate address + + + Unable to activate MultiSend, check MultiSend vector + Unable to activate MultiSend, check MultiSend vector + + + Need to select to send on stake and/or masternode rewards + Need to select to send on stake and/or masternode rewards + + + MultiSend activated but writing settings to DB failed + MultiSend activated but writing settings to DB failed + + + MultiSend activated + MultiSend activated + + + First Address Not Valid + First Address Not Valid + + + MultiSend deactivated but writing settings to DB failed + MultiSend deactivated but writing settings to DB failed + + + MultiSend deactivated + MultiSend deactivated + + + Please Enter 1 - 100 for percent. + Please Enter 1 - 100 for percent. + + + + MultisigDialog + + Multisignature Address Interactions + Multisignature Address Interactions + + + Create MultiSignature &Address + Create MultiSignature &Address + + + How many people must sign to verify a transaction + How many people must sign to verify a transaction + + + Enter the minimum number of signatures required to sign transactions + Enter the minimum number of signatures required to sign transactions + + + Address Label: + Address Label: + + + Add another address that could sign to verify a transaction from the multisig address. + Add another address that could sign to verify a transaction from the multisig address. + + + &Add Address / Key + &Add Address / Key + + + Local addresses or public keys that can sign: + Local addresses or public keys that can sign: + + + Create a new multisig address + Create a new multisig address + + + C&reate + C&reate + + + Status: + Status: + + + Use below to quickly import an address by its redeem. Don't forget to add a label before clicking import! +Keep in mind, the wallet will rescan the blockchain to find transactions containing the new address. +Please be patient after clicking import. + Use below to quickly import an address by its redeem. Don't forget to add a label before clicking import! +Keep in mind, the wallet will rescan the blockchain to find transactions containing the new address. +Please be patient after clicking import. + + + &Import Redeem + &Import Redeem + + + &Create MultiSignature Tx + &Create MultiSignature Tx + + + Inputs: + Inputs: + + + Coin Control + Coin Control + + + Quantity Selected: + Quantity Selected: + + + 0 + 0 + + + Amount: + Amount: + + + Add an input to fund the outputs + Add an input to fund the outputs + + + Add a Raw Input + Add a Raw Input + + + Address / Amount: + Address / Amount: + + + Add destinations to send PIV to + Add destinations to send PIV to + + + Add &Destination + Add &Destination + + + Create a transaction object using the given inputs to the given outputs + Create a transaction object using the given inputs to the given outputs + + + Cr&eate + Cr&eate + + + &Sign MultiSignature Tx + &Sign MultiSignature Tx + + + Transaction Hex: + Transaction Hex: + + + Sign the transaction from this wallet or from provided private keys + Sign the transaction from this wallet or from provided private keys + + + S&ign + S&ign + + + <html><head/><body><p>DISABLED until transaction has been signed enough times.</p></body></html> + <html><head/><body><p>DISABLED until transaction has been signed enough times.</p></body></html> + + + Co&mmit + Co&mmit + + + Add private keys to sign the transaction with + Add private keys to sign the transaction with + + + Add Private &Key + Add Private &Key + + + Sign with only private keys (Not Recommened) + Sign with only private keys (Not Recommened) + + + Invalid Tx Hash. + Invalid Tx Hash. + + + Vout position must be positive. + Vout position must be positive. + + + Maximum possible addresses reached. (15) + Maximum possible addresses reached. (15) + + + Vout Position: + Vout Position: + + + Amount: + Amount: + + + Maximum (15) + Maximum (15) + + + + ObfuscationConfig + + Configure Obfuscation + Configure Obfuscation + + + 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 10000 PIV + Use 2 separate masternodes to mix funds up to 10000 PIV + + + Use 8 separate masternodes to mix funds up to 10000 PIV + Use 8 separate masternodes to mix funds up to 10000 PIV + + + Use 16 separate masternodes + Use 16 separate masternodes + + + This option is the quickest and will cost about ~0.025 PIV to anonymize 10000 PIV + This option is the quickest and will cost about ~0.025 PIV to anonymise 10000 PIV + + + This option is moderately fast and will cost about 0.05 PIV to anonymize 10000 PIV + This option is moderately fast and will cost about 0.05 PIV to anonymise 10000 PIV + + + 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 + + + 0.1 PIV per 10000 PIV you anonymize. + 0.1 PIV per 10000 PIV you anonymise. + + + Obfuscation Configuration + Obfuscation Configuration + + + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening PIVX's configuration screen. + + + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening PIVX's configuration screen. + + + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening PIVX's configuration screen. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening PIVX's configuration screen. + + + + 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 + + + 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) + + + 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. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + + + Accept connections from outside + Accept connections from outside + + + Allow incoming connections + Allow incoming connections + + + &Connect through SOCKS5 proxy (default proxy): + &Connect through SOCKS5 proxy (default proxy): + + + Expert + Expert + + + Automatically start PIVX after logging in to the system. + Automatically start PIVX after logging in to the system. + + + &Start PIVX on system login + &Start PIVX on system login + + + Whether to show coin control features or not. + Whether to show coin control features or not. + + + Enable coin &control features + Enable coin &control features + + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + + + Show Masternodes Tab + Show Masternodes Tab + + + &Spend unconfirmed change + &Spend unconfirmed change + + + &Network + &Network + + + The user interface language can be set here. This setting will take effect after restarting PIVX. + The user interface language can be set here. This setting will take effect after restarting PIVX. + + + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + Language missing or translation incomplete? Help contributing translations here: +https://www.transifex.com/pivx-project/pivx-project-translations + + + Map port using &UPnP + Map port using &UPnP + + + Enable automatic minting of PIV units to zPIV + Enable automatic minting of PIV units to zPIV + + + Enable zPIV Automint + Enable zPIV Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + + + Percentage of autominted zPIV + Percentage of autominted zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + + + Preferred Automint zPIV Denomination + Preferred Automint zPIV Denomination + + + Stake split threshold: + Stake split threshold: + + + Connect to the PIVX network through a SOCKS5 proxy. + Connect to the PIVX network through a SOCKS5 proxy. + + + 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 minimising the window. + + + &Minimize to the tray instead of the taskbar + &Minimise 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. + Minimise 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&inimise on close + + + &Display + &Display + + + User Interface &language: + User Interface &language: + + + 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 + + + Hide empty balances + Hide empty balances + + + Hide orphan stakes in transaction lists + Hide orphan stakes in transaction lists + + + Hide orphan stakes + Hide orphan stakes + + + 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 + + + Any + Any + + + 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 shut down, 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. + + + The supplied proxy port is invalid. + The supplied proxy port is invalid. + + + The supplied proxy settings are invalid. + The supplied proxy settings are invalid. + + + + OverviewPage + + Form + Form + + + Available: + Available: + + + Your current spendable balance + Your current spendable balance + + + Total Balance, including all unavailable coins. + Total Balance, including all unavailable coins. + + + PIV Balance + PIV 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: + + + Staked or masternode rewards that has not yet matured + Staked or masternode rewards that has not yet matured + + + Current locked balance in watch-only addresses + Current locked balance in watch-only addresses + + + Your current PIVX balance, unconfirmed and immature transactions included + Your current PIVX balance, unconfirmed and immature transactions included + + + zPIV Balance + zPIV Balance + + + Mature: more than 20 confirmation and more than 1 mint of the same denomination after it was minted. +These zPIV are spendable. + Mature: more than 20 confirmation and more than 1 mint of the same denomination after it was minted. +These zPIV are spendable. + + + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + + + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronises with the PIVX network after a connection is established, but this process has not completed yet. + + + OVERVIEW + OVERVIEW + + + Combined Balance (including unconfirmed and immature coins) + Combined Balance (including unconfirmed and immature coins) + + + Combined Balance + Combined Balance + + + Unconfirmed transactions to watch-only addresses + Unconfirmed transactions to watch-only addresses + + + Staked or masternode rewards in watch-only addresses that has not yet matured + Staked or masternode rewards in watch-only addresses that have not yet matured + + + Total: + Total: + + + 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: + + + Locked PIV or Masternode collaterals. These are excluded from zPIV minting. + Locked PIV or Masternode collaterals. These are excluded from zPIV minting. + + + Locked: + Locked: + + + Unconfirmed: + Unconfirmed: + + + Your current zPIV balance, unconfirmed and immature zPIV included. + Your current zPIV balance, unconfirmed and immature zPIV included. + + + Recent transactions + Recent transactions + + + out of sync + out of sync + + + Current percentage of zPIV. +If AutoMint is enabled this percentage will settle around the configured AutoMint percentage (default = 10%). + + Current percentage of zPIV. +If AutoMint is enabled this percentage will settle around the configured AutoMint percentage (default = 10%). + + + + AutoMint is currently enabled and set to + AutoMint is currently enabled and set to + + + To disable AutoMint add 'enablezeromint=0' in pivx.conf. + To disable AutoMint add 'enablezeromint=0' in pivx.conf. + + + AutoMint is currently disabled. +To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1' in pivx.conf + AutoMint is currently disabled. +To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1' in pivx.conf + + + + PaymentServer + + Payment request error + Payment request error + + + 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 + + + Cannot start pivx: click-to-pay handler + Cannot start pivx: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid PIVX 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 initialised. + + + 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 + + + Version + Version + + + Ping Time + Ping Time + + + + PrivacyDialog + + Zerocoin Actions: + Zerocoin Actions: + + + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronises with the PIVX network after a connection is established, but this process has not completed yet. + + + Mint Zerocoin + Mint Zerocoin + + + 0 + 0 + + + zPIV + zPIV + + + Available for minting are coins which are confirmed and not locked or Masternode collaterals. + Available for minting are coins which are confirmed and not locked or Masternode collaterals. + + + Available for Minting: + Available for Minting: + + + 0.000 000 00 PIV + 0.000 000 00 PIV + + + Reset Zerocoin Wallet DB. Deletes transactions that did not make it into the blockchain. + Reset Zerocoin Wallet DB. Deletes transactions that did not make it into the blockchain. + + + Reset + Reset + + + Coin Control... + Coin Control... + + + Quantity: + Quantity: + + + Amount: + Amount: + + + Rescan the complete blockchain for Zerocoin mints and their meta-data. + Rescan the complete blockchain for Zerocoin mints and their meta-data. + + + ReScan + ReScan + + + Status and/or Mesages from the last Mint Action. + Status and/or Messages from the last Mint Action. + + + PRIVACY + PRIVACY + + + Enter an amount of Piv to convert to zPIV + Enter an amount of Piv to convert to zPIV + + + zPIV Control + zPIV Control + + + zPIV Selected: + zPIV Selected: + + + Quantity Selected: + Quantity Selected: + + + Spend Zerocoin. Without 'Pay To:' address creates payments to yourself. + Spend Zerocoin. Without 'Pay To:' address creates payments to yourself. + + + Spend Zerocoin + Spend Zerocoin + + + Available (mature and spendable) zPIV for spending + Available (mature and spendable) zPIV for spending + + + Available Balance: + Available Balance: + + + Available (mature and spendable) zPIV for spending + +zPIV are mature when they have more than 20 confirmations AND more than 2 mints of the same denomination after them were minted + Available (mature and spendable) zPIV for spending + +zPIV are mature when they have more than 20 confirmations AND more than 2 mints of the same denomination after them were minted + + + 0 zPIV + 0 zPIV + + + Pay &To: + Pay &To: + + + The PIVX address to send the payment to. Creates local payment to yourself when empty. + The PIVX address to send the payment to. Creates local payment to yourself when empty. + + + Choose previously used address + Choose previously used address + + + Alt+A + Alt+A + + + Paste address from clipboard + Paste address from clipboard + + + Alt+P + Alt+P + + + &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: + + + Convert Change to Zerocoin (might cost additional fees) + Convert Change to Zerocoin (might cost additional fees) + + + If checked, the wallet tries to minimize the returning change instead of minimizing the number of spent denominations. + If checked, the wallet tries to minimise the returning change instead of minimising the number of spent denominations. + + + Minimize Change + Minimise Change + + + Information about the available Zerocoin funds. + Information about the available Zerocoin funds. + + + Zerocoin Stats: + Zerocoin Stats: + + + Total Balance including unconfirmed and immature zPIV + Total Balance including unconfirmed and immature zPIV + + + Total Zerocoin Balance: + Total Zerocoin Balance: + + + Denominations with value 1: + Denominations with value 1: + + + Denom. with value 1: + Denom. with value 1: + + + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + + + Show the current status of automatic zPIV minting. + +To change the status (restart required): +- enable: add 'enablezeromint=1' to pivx.conf +- disable: add 'enablezeromint=0' to pivx.conf + +To change the percentage (no restart required): +- menu Settings->Options->Percentage of autominted zPIV + + + Show the current status of automatic zPIV minting. + +To change the status (restart required): +- enable: add 'enablezeromint=1' to pivx.conf +- disable: add 'enablezeromint=0' to pivx.conf + +To change the percentage (no restart required): +- menu Settings->Options->Percentage of autominted zPIV + + + + + AutoMint Status + AutoMint Status + + + Global Supply: + Global Supply: + + + Denom. 1: + Denom. 1: + + + Denom. 5: + Denom. 5: + + + Denom. 10: + Denom. 10: + + + Denom. 50: + Denom. 50: + + + Denom. 100: + Denom. 100: + + + Denom. 500: + Denom. 500: + + + Denom. 1000: + Denom. 1000: + + + Denom. 5000: + Denom. 5000: + + + 0 x + 0 x + + + Show zPIV denominations list + Show zPIV denominations list + + + Show Denominations + Show Denominations + + + Denominations with value 5: + Denominations with value 5: + + + Denom. with value 5: + Denom. with value 5: + + + Denominations with value 10: + Denominations with value 10: + + + Denom. with value 10: + Denom. with value 10: + + + Denominations with value 50: + Denominations with value 50: + + + Denom. with value 50: + Denom. with value 50: + + + Denominations with value 100: + Denominations with value 100: + + + Denom. with value 100: + Denom. with value 100: + + + Denominations with value 500: + Denominations with value 500: + + + Denom. with value 500: + Denom. with value 500: + + + Denominations with value 1000: + Denominations with value 1000: + + + Denom. with value 1000: + Denom. with value 1000: + + + Denominations with value 5000: + Denominations with value 5000: + + + Denom. with value 5000: + Denom. with value 5000: + + + Hide Denominations + Hide Denominations + + + Priority: + Priority: + + + TextLabel + TextLabel + + + Fee: + Fee: + + + Dust: + Dust: + + + no + no + + + Bytes: + Bytes: + + + Insufficient funds! + Insufficient funds! + + + Coins automatically selected + Coins automatically selected + + + medium + medium + + + Coin Control Features + Coin Control Features + + + 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 + + + Amount After Fee: + Amount After Fee: + + + Change: + Change: + + + out of sync + out of sync + + + Mint Status: Okay + Mint Status: Okay + + + Copy quantity + Copy quantity + + + Copy amount + Copy amount + + + Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. +Please be patient... + Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. +Please be patient... + + + ) needed. +Maximum allowed: + ) needed. +Maximum allowed: + + + zPIV Spend #: + zPIV Spend #: + + + zPIV Mint + zPIV Mint + + + <b>enabled</b>. + <b>enabled</b>. + + + <b>disabled</b>. + <b>disabled</b>. + + + Configured target percentage: <b> + Configured target percentage: <b> + + + zPIV is currently disabled due to maintenance. + zPIV is currently disabled due to maintenance. + + + zPIV is currently undergoing maintenance. + zPIV is currently undergoing maintenance. + + + Denom. with value <b>1</b>: + Denom. with value <b>1</b>: + + + Denom. with value <b>5</b>: + Denom. with value <b>5</b>: + + + Denom. with value <b>10</b>: + Denom. with value <b>10</b>: + + + Denom. with value <b>50</b>: + Denom. with value <b>50</b>: + + + Denom. with value <b>100</b>: + Denom. with value <b>100</b>: + + + Denom. with value <b>500</b>: + Denom. with value <b>500</b>: + + + Denom. with value <b>1000</b>: + Denom. with value <b>1000</b>: + + + Denom. with value <b>5000</b>: + Denom. with value <b>5000</b>: + + + AutoMint Status: + AutoMint Status: + + + Denom. <b>1</b>: + Denom. <b>1</b>: + + + Denom. <b>5</b>: + Denom. <b>5</b>: + + + Denom. <b>10</b>: + Denom. <b>10</b>: + + + Denom. <b>50</b>: + Denom. <b>50</b>: + + + Denom. <b>100</b>: + Denom. <b>100</b>: + + + Denom. <b>500</b>: + Denom. <b>500</b>: + + + Denom. <b>1000</b>: + Denom. <b>1000</b>: + + + Denom. <b>5000</b>: + Denom. <b>5000</b>: + + + Error: Your wallet is locked. Please enter the wallet passphrase first. + Error: Your wallet is locked. Please enter the wallet passphrase first. + + + Message: Enter an amount > 0. + Message: Enter an amount > 0. + + + Minting + Minting + + + Successfully minted + Successfully minted + + + zPIV in + zPIV in + + + sec. Used denominations: + + sec. Used denominations: + + + + Duration: + Duration: + + + sec. + + sec. + + + + Starting ResetSpentZerocoin: + Starting ResetSpentZerocoin: + + + No 'Pay To' address provided, creating local payment + No 'Pay To' address provided, creating local payment + + + Invalid Pivx Address + Invalid Pivx Address + + + Invalid Send Amount + Invalid Send Amount + + + Confirm additional Fees + Confirm additional Fees + + + Are you sure you want to send?<br /><br /> + Are you sure you want to send?<br /><br /> + + + to address + to address + + + to a newly generated (unused and therefore anonymous) local address <br /> + to a newly generated (unused and therefore anonymous) local address <br /> + + + Confirm send coins + Confirm send coins + + + Failed to fetch mint associated with serial hash + Failed to fetch mint associated with serial hash + + + Too much inputs ( + Too much inputs ( + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + + + Spend Zerocoin failed with status = + Spend Zerocoin failed with status = + + + PrivacyDialog + Enter an amount of PIV to convert to zPIV + PrivacyDialogPrivacyDialog + + + denomination: + denomination: + + + serial: + serial: + + + Spend is 1 of : + Spend is 1 of : + + + value out: + value out: + + + address: + address: + + + Sending successful, return code: + Sending successful, return code: + + + txid: + txid: + + + fee: + fee: + + + + ProposalFrame + + + QObject + + Amount + Amount + + + Enter a PIVX address (e.g. %1) + Enter a PIVX address (e.g. %1) + + + %1 d + %1 d + + + %1 h + %1 h + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + NETWORK + + + BLOOM + BLOOM + + + UNKNOWN + UNKNOWN + + + None + None + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + + 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 + &Open + + + Startup time + Start up 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 + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + + + 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 + + + Banned peers + Banned peers + + + Select a peer to view detailed information. + Select a peer to view detailed information. + + + Whitelisted + Whitelisted + + + Direction + Direction + + + Protocol + Protocol + + + Version + Version + + + Services + Services + + + 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 + + + Delete local Blockchain Folders + Delete local Blockchain Folders + + + Wallet In Use: + Wallet In Use: + + + Starting Block + Starting Block + + + Synced Headers + Synced Headers + + + Synced Blocks + Synced Blocks + + + The duration of a currently outstanding ping. + The duration of a currently outstanding ping. + + + Ping Wait + Ping Wait + + + Time Offset + Time Offset + + + Custom Backup Path: + Custom Backup Path: + + + Custom zPIV Backup Path: + Custom zPIV Backup Path: + + + Custom Backups Threshold: + Custom Backups Threshold: + + + Salvage wallet + Salvage wallet + + + Attempt to recover private keys from a corrupt wallet.dat. + Attempt to recover private keys from a corrupt wallet.dat. + + + Rescan blockchain files + Rescan blockchain files + + + Rescan the block chain for missing wallet transactions. + Rescan the block chain for missing wallet transactions. + + + Recover transactions 1 + Recover transactions 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Recover transactions from blockchain (keep meta-data, e.g. account owner). + + + Recover transactions 2 + Recover transactions 2 + + + Recover transactions from blockchain (drop meta-data). + Recover transactions from blockchain (drop meta-data). + + + Upgrade wallet format + Upgrade wallet format + + + Rebuild block chain index from current blk000??.dat files. + Rebuild block chain index from current blk000??.dat files. + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Deletes all local blockchain folders so the wallet synchronises from scratch. + + + 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 blockchain files or missing/obsolete transactions. + + + Wallet repair options. + Wallet repair options. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Upgrade wallet to latest format on start up. (Note: this is NOT an update of the wallet itself!) + + + Rebuild index + Rebuild index + + + In: + In: + + + Out: + Out: + + + Welcome to the PIVX RPC console. + Welcome to the PIVX RPC console. + + + &Disconnect Node + &Disconnect Node + + + Ban Node for + Ban Node for + + + 1 &hour + 1 &hour + + + 1 &day + 1 &day + + + 1 &week + 1 &week + + + 1 &year + 1 &year + + + &Unban Node + &Unban Node + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + This will delete your local blockchain folders and the wallet will synchronise the complete Blockchain from scratch.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + This needs quite some time and downloads a lot of data.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Your transactions and funds will be visible again after the download has completed.<br /><br /> + + + Do you want to continue?.<br /> + Do you want to continue?.<br /> + + + Confirm resync Blockchain + Confirm resync Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Use up and down arrows to navigate history, and %1 to clear screen. + + + Type <b>help</b> for an overview of available commands. + Type <b>help</b> for an overview of available commands. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (node id: %1) + + + via %1 + via %1 + + + never + never + + + Inbound + Inbound + + + Outbound + Outbound + + + Yes + Yes + + + No + No + + + Unknown + Unknown + + + + 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) + + + &Message: + &Message: + + + An optional label to associate with the new receiving address. + An optional label to associate with the new receiving address. + + + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + + + &Address: + &Address: + + + A&mount: + A&mount: + + + 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 PIVX 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 PIVX network. + + + RECEIVE + RECEIVE + + + 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 PIVX 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 PIVX 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. + + + &Request payment + &Request payment + + + Clear all fields of the form. + Clear all fields of the form. + + + Clear + Clear + + + Receiving Addresses + Receiving Addresses + + + 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 + + + Copy address + Copy address + + + + 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 + + + Address + Address + + + Amount + Amount + + + (no label) + (no label) + + + (no message) + (no message) + + + (no amount) + (no amount) + + + + SendCoinsDialog + + Send Coins + Send Coins + + + SEND + SEND + + + Coin Control Features + Coin Control Features + + + 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 + + + Split UTXO + Split UTXO + + + # of outputs + # of outputs + + + UTXO Size: + UTXO Size: + + + 0 PIV + 0 PIV + + + SwiftX technology allows for near instant transactions - A flat fee of 0.01 PIV applies + SwiftX technology allows for near instant transactions - A flat fee of 0.01 PIV applies + + + Transaction Fee: + Transaction Fee: + + + Choose... + Choose... + + + collapse fee-settings + collapse fee-settings + + + Minimize + Minimise + + + per kilobyte + per kilobyte + + + total at least + total at least + + + (read the tooltip) + (read the tooltip) + + + Custom: + Custom: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Smart fee not initialised yet. This usually takes a few blocks...) + + + SwiftX + SwiftX + + + Confirmation time: + Confirmation time: + + + Open Coin Control... + Open Coin Control... + + + Coins automatically selected + Coins automatically selected + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. 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 PIVX 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 PIVX transactions than the network can process. + + + normal + normal + + + fast + fast + + + Recommended + Recommended + + + 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 + + + Anonymized PIV + Anonymised PIV + + + 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 + + + The split block tool does not work when sending to outside addresses. Try again. + The split block tool does not work when sending to outside addresses. Try again. + + + The split block tool does not work with multiple addresses. Try again. + The split block tool does not work with multiple addresses. Try again. + + + Warning: Invalid PIVX address + Warning: Invalid PIVX address + + + %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. + + + using SwiftX + using SwiftX + + + split into %1 outputs using the UTXO splitter. + split into %1 outputs using the UTXO splitter. + + + <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 anonymise coins. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Error: The wallet was unlocked only to anonymise coins. Unlock cancelled. + + + Pay only the minimum fee of %1 + Pay only the minimum fee of %1 + + + Estimated to get 6 confirmations near instantly with <b>SwiftX</b>! + Estimated to get 6 confirmations near instantly with <b>SwiftX</b>! + + + 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 PIVX address to send the payment to + The PIVX 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 PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX network. + A message that was attached to the PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX 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 + + PIVX Core is shutting down... + PIVX 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 PIVX address to sign the message with + The PIVX 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 PIVX address + Sign the message to prove you own this PIVX address + + + The PIVX address the message was signed with + The PIVX address the message was signed with + + + Verify the message to ensure it was signed with the specified PIVX address + Verify the message to ensure it was signed with the specified PIVX 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. + + + 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 + + PIVX Core + PIVX Core + + + Version %1 + Version %1 + + + The Bitcoin Core developers + The Bitcoin Core developers + + + The Dash Core developers + The Dash Core developers + + + The PIVX Core developers + The PIVX 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 + %1/offline + + + %1/unconfirmed + %1/unconfirmed + + + %1 confirmations + %1 confirmations + + + %1/offline (verified via SwiftX) + %1/offline (verified via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confirmed (verified via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 confirmations (verified via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + + + %1/offline (SwiftX verification failed) + %1/offline (SwiftX verification failed) + + + %1/confirmed (SwiftX verification failed) + %1/confirmed (SwiftX 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 + + + Output index + Output index + + + 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! + + + Received with + Received with + + + Masternode Reward + Masternode Reward + + + Received from + Received from + + + Received via Obfuscation + Received via Obfuscation + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Obfuscation Denominate + + + Obfuscation Collateral Payment + Obfuscation Collateral Payment + + + Obfuscation Make Collateral Inputs + Obfuscation Make Collateral Inputs + + + Obfuscation Create Denominations + Obfuscation Create Denominations + + + Converted PIV to zPIV + Converted PIV to zPIV + + + Spent zPIV + Spent zPIV + + + Received PIV from zPIV + Received PIV from zPIV + + + Minted Change as zPIV from zPIV Spend + Minted Change as zPIV from zPIV Spend + + + Converted zPIV to PIV + Converted zPIV to PIV + + + Anonymous (zPIV Transaction) + Anonymous (zPIV Transaction) + + + Anonymous (zPIV Stake) + Anonymous (zPIV Stake) + + + Sent to + Sent to + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - Generated but not accepted. This does not impact your holdings. + + + Payment to yourself + Payment to yourself + + + Mined + Mined + + + Obfuscated + Obfuscated + + + 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 + + + To yourself + To yourself + + + Mined + Mined + + + Minted + Minted + + + Masternode Reward + Masternode Reward + + + Zerocoin Mint + Zerocoin Mint + + + Zerocoin Spend + Zerocoin Spend + + + Zerocoin Spend to Self + Zerocoin Spend to Self + + + 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 + + + Hide orphan stakes + Hide orphan stakes + + + 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 + + + Received PIV from zPIV + Received PIV from zPIV + + + Zerocoin Spend, Change in zPIV + Zerocoin Spend, Change in zPIV + + + 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 + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + + + + WalletView + + HISTORY + HISTORY + + + &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) + + + + ZPivControlDialog + + Select zPIV to Spend + Select zPIV to Spend + + + Quantity + Quantity + + + 0 + 0 + + + zPIV + zPIV + + + Select/Deselect All + Select/Deselect All + + + + pivx-core + + (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 + + + 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 + + + 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) + + + Calculated accumulator checkpoint is not what is recorded by block index + Calculated accumulator checkpoint is not what is recorded by block index + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Change automatic finalised budget voting behaviour. mode=auto: Vote for only exact finalised 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 start up + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (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 automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + + + Enable spork administration functionality with the appropriate private key. + Enable spork administration functionality with the appropriate private key. + + + 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) + + + Error: The transaction is larger than the maximum allowed transaction size! + Error: The transaction is larger than the maximum allowed transaction size! + + + 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 any more, only SOCKS5 proxies are supported. + + + 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) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Fees (in PIV/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. + + + 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) + + + In this mode -genproclimit controls how many blocks are generated immediately. + In this mode -genproclimit controls how many blocks are generated immediately. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + + + 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) + + + Keep the specified amount available for spending at all times (default: 0) + Keep the specified amount available for spending at all times (default: 0) + + + 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) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymise some more coins. + + + Output debugging information (default: %u, supplying <category> is optional) + Output debugging information (default: %u, supplying <category> is optional) + + + 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) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Randomise credentials for every proxy connection. This enables Tor stream isolation (default: %u) + + + 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 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) + + + 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) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Support filtering of blocks and transaction with bloom filters (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. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Unable to bind to %s on this computer. PIVX Core is probably already running. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Unable to locate enough Obfuscation denominated funds for this transaction. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + + + 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: -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: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + + + 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. + + + 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 + + + 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. + + + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) + + + (default: %s) + (default: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (must be 51472 for mainnet) + + + 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) + + + Accept public REST requests (default: %u) + Accept public REST requests (default: %u) + + + 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. + + + Always query for peer addresses via DNS lookup (default: %u) + Always query for peer addresses via DNS lookup (default: %u) + + + Append comment to the user agent string + Append comment to the user agent string + + + Attempt to recover private keys from a corrupt wallet.dat + Attempt to recover private keys from a corrupt wallet.dat + + + Automatically create Tor hidden service (default: %d) + Automatically create Tor hidden service (default: %d) + + + Block creation options: + Block creation options: + + + Calculating missing accumulators... + Calculating missing accumulators... + + + Can't denominate: no compatible inputs left. + Can't denominate: no compatible inputs left. + + + Can't find random Masternode. + Can't find random Masternode. + + + Can't mix while sync in progress. + Can't mix while sync in progress. + + + 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 resolve -whitebind address: '%s' + Cannot resolve -whitebind 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 through SOCKS5 proxy + Connect through SOCKS5 proxy + + + Connect to a node to retrieve peer addresses, and disconnect + Connect to a node to retrieve peer addresses, and disconnect + + + Connection options: + Connection options: + + + 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 + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Corrupted block database detected + + + Could not parse masternode.conf + Could not parse masternode.conf + + + Debugging/Testing options: + Debugging/Testing options: + + + Delete blockchain folders and resync from scratch + Delete blockchain folders and resync from scratch + + + Disable OS notifications for incoming transactions (default: %u) + Disable OS notifications for incoming transactions (default: %u) + + + Disable safemode, override a real safe mode event (default: %u) + Disable safe mode, override a real safe mode event (default: %u) + + + 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 + + + Enable automatic Zerocoin minting (0-1, default: %u) + Enable automatic Zerocoin minting (0-1, default: %u) + + + Enable publish hash transaction (locked via SwiftX) in <address> + Enable publish hash transaction (locked via SwiftX) in <address> + + + Enable publish raw transaction (locked via SwiftX) in <address> + Enable publish raw transaction (locked via SwiftX) in <address> + + + Enable the client to act as a masternode (0-1, default: %u) + Enable the client to act as a masternode (0-1, default: %u) + + + Entries are full. + Entries are full. + + + Error connecting to Masternode. + Error connecting to Masternode. + + + Error initializing block database + Error initialising block database + + + Error initializing wallet database environment %s! + Error initialising 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 loading wallet.dat: Wallet requires newer version of PIVX Core + Error loading wallet.dat: Wallet requires newer version of PIVX Core + + + 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 writing zerocoinDB to disk + Error writing zerocoinDB to disk + + + Error + Error + + + Error: A fatal internal error occured, see debug.log for details + Error: A fatal internal error occurred, see debug.log for details + + + Error: Can't select current denominated inputs + Error: Can't select current denominated inputs + + + Error: Disk space is low! + Error: Disk space is low! + + + Error: Unsupported argument -tor found, use -onion. + Error: Unsupported argument -tor found, use -onion. + + + Error: Wallet locked, unable to create transaction! + Error: Wallet locked, unable to create transaction! + + + Error: You already have pending entries in the Obfuscation pool + Error: You already have pending entries in the Obfuscation pool + + + Failed to calculate accumulator checkpoint + Failed to calculate accumulator checkpoint + + + 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 parse host:port string + Failed to parse host:port string + + + Failed to read block + Failed to read block + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Fee (in PIV/kB) to add to transactions you send (default: %s) + + + Finalizing transaction. + Finalising 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 start up (default: %u, 0 = all) + + + If <category> is not supplied, output all debugging information. + If <category> is not supplied, output all debugging information. + + + 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. PIVX Core is shutting down. + Initialisation sanity check failed. PIVX Core is shutting down. + + + Input is not valid. + Input is not valid. + + + Insufficient funds + Insufficient funds + + + Insufficient funds. + Insufficient funds. + + + Invalid -onion address or hostname: '%s' + Invalid -onion address or hostname: '%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' + + + Invalid amount for -reservebalance=<amount> + Invalid amount for -reservebalance=<amount> + + + Invalid amount + Invalid amount + + + Invalid masternodeprivkey. Please see documenation. + Invalid masternodeprivkey. Please see documentation. + + + 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. + + + Percentage of automatically minted Zerocoin (1-100, default: %u) + Percentage of automatically minted Zerocoin (1-100, default: %u) + + + Reindex the PIV and zPIV money supply statistics + Reindex the PIV and zPIV money supply statistics + + + Reindexing zerocoin database... + Reindexing zerocoin database... + + + Reindexing zerocoin failed + Reindexing zerocoin failed + + + Selected coins value is less than payment target + Selected coins value is less than payment target + + + SwiftX options: + SwiftX options: + + + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! + + + mints deleted + + mints deleted + + + + mints updated, + mints updated, + + + unconfirmed transactions removed + + unconfirmed transactions removed + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + + + Error: 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 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: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds! + + + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + Error: Unsupported argument -checklevel found. Checklevel must be level 4. + + + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) + + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Failed to find coin set amongst held coins with less than maxNumber of Spends + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + + + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u) + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + + + <category> can be: + <category> can be: + + + Attempt to force blockchain corruption recovery + Attempt to force blockchain corruption recovery + + + CoinSpend: Accumulator witness does not verify + CoinSpend: Accumulator witness does not verify + + + Display the stake modifier calculations in the debug.log file. + Display the stake modifier calculations in the debug.log file. + + + Display verbose coin stake messages in the debug.log file. + Display verbose coin stake messages in the debug.log file. + + + Enable publish hash block in <address> + Enable publish hash block in <address> + + + Enable publish hash transaction in <address> + Enable publish hash transaction in <address> + + + Enable publish raw block in <address> + Enable publish raw block in <address> + + + Enable publish raw transaction in <address> + Enable publish raw transaction in <address> + + + Enable staking functionality (0-1, default: %u) + Enable staking functionality (0-1, default: %u) + + + Error: A fatal internal error occurred, see debug.log for details + Error: A fatal internal error occurred, see debug.log for details + + + Error: No valid utxo! + Error: No valid utxo! + + + Failed to create mint + Failed to create mint + + + Failed to find Zerocoins in wallet.dat + Failed to find Zerocoins in wallet.dat + + + Failed to select a zerocoin + Failed to select a zerocoin + + + Failed to wipe zerocoinDB + Failed to wipe zerocoinDB + + + Failed to write coin serial number into wallet + Failed to write coin serial number into wallet + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Keep at most <n> unconnectable transactions in memory (default: %u) + + + Last Obfuscation was too recent. + Last Obfuscation was too recent. + + + Last successful Obfuscation action was too recent. + Last successful Obfuscation action was too recent. + + + Limit size of signature cache to <n> entries (default: %u) + Limit size of signature cache to <n> entries (default: %u) + + + Line: %d + Line: %d + + + 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 addresses... + Loading addresses... + + + Loading block index... + Loading block index... + + + Loading budget cache... + Loading budget cache... + + + Loading masternode cache... + Loading masternode cache... + + + Loading masternode payment cache... + Loading masternode payment cache... + + + Loading sporks... + Loading sporks... + + + Loading wallet... (%3.2f %%) + Loading wallet... (%3.2f %%) + + + Loading wallet... + Loading wallet... + + + Location of the auth cookie (default: data dir) + Location of the auth cookie (default: data dir) + + + 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) + + + Lookup(): Invalid -proxy address or hostname: '%s' + Lookup(): Invalid -proxy address or hostname: '%s' + + + Maintain at most <n> connections to peers (default: %u) + Maintain at most <n> connections to peers (default: %u) + + + Masternode options: + Masternode options: + + + Masternode queue is full. + Masternode queue is full. + + + Masternode: + Masternode: + + + 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) + + + Mint did not make it into blockchain + Mint did not make it into blockchain + + + Missing input transaction information. + Missing input transaction information. + + + Mixing in progress... + Mixing in progress... + + + Need address because change is not exact + Need address because change is not exact + + + 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. + + + 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. + + + Not in the Masternode list. + Not in the Masternode list. + + + Number of automatic wallet backups (default: 10) + Number of automatic wallet backups (default: 10) + + + Number of custom location backups to retain (default: %d) + Number of custom location backups to retain (default: %d) + + + Obfuscation is idle. + Obfuscation is idle. + + + Obfuscation request complete: + Obfuscation request complete: + + + Obfuscation request incomplete: + Obfuscation request incomplete: + + + 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) + + + Options: + Options: + + + Password for JSON-RPC connections + Password for JSON-RPC connections + + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): Invalid -proxy address or hostname: '%s' + + + Preparing for resync... + Preparing for resync... + + + Prepend debug output with timestamp (default: %u) + Prepend debug output with timestamp (default: %u) + + + Print version and exit + Print version and exit + + + RPC server options: + RPC server options: + + + 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) + + + Reindex the accumulator database + Reindex the accumulator database + + + 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... + + + ResetMintZerocoin finished: + ResetMintZerocoin finished: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin finished: + + + Run a thread to flush wallet periodically (default: %u) + Run a thread to flush wallet periodically (default: %u) + + + Run in the background as a daemon and accept commands + Run in the background as a daemon and accept commands + + + Send transactions as zero-fee transactions if possible (default: %u) + Send transactions as zero-fee transactions if possible (default: %u) + + + 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 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 maximum block size in bytes (default: %d) + Set maximum block size in bytes (default: %d) + + + Set minimum block size in bytes (default: %u) + Set minimum block size in bytes (default: %u) + + + Set the Maximum reorg depth (default: %u) + Set the Maximum reorg depth (default: %u) + + + Set the masternode private key + Set the masternode private key + + + 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) + + + 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 start up (default: 1 when no -debug) + + + Signing failed. + Signing failed. + + + Signing timed out. + Signing timed out. + + + Signing transaction failed + Signing transaction failed + + + 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 data directory + Specify data directory + + + Specify masternode configuration file (default: %s) + Specify masternode configuration file (default: %s) + + + Specify pid file (default: %s) + Specify pid file (default: %s) + + + Specify wallet file (within data directory) + Specify wallet file (within data directory) + + + Specify your own public address + Specify your own public address + + + Spend Valid + Spend Valid + + + Spend unconfirmed change when sending transactions (default: %u) + Spend unconfirmed change when sending transactions (default: %u) + + + Staking options: + Staking options: + + + 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 + Synchronisation failed + + + Synchronization finished + Synchronisation finished + + + Synchronization pending... + Synchronisation pending... + + + Synchronizing budgets... + Synchronising budgets... + + + Synchronizing masternode winners... + Synchronising masternode winners... + + + Synchronizing masternodes... + Synchronising masternodes... + + + Synchronizing sporks... + Synchronising sporks... + + + Syncing zPIV wallet... + Syncing zPIV wallet... + + + The coin spend has been used + The coin spend has been used + + + The transaction did not verify + The transaction did not verify + + + 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. + + + This is not a Masternode. + This is not a Masternode. + + + Threshold for disconnecting misbehaving peers (default: %u) + Threshold for disconnecting misbehaving peers (default: %u) + + + Too many spends needed + Too many spends needed + + + Tor control port password (default: empty) + Tor control port password (default: empty) + + + Tor control port to use if onion listening enabled (default: %s) + Tor control port to use if onion listening enabled (default: %s) + + + Transaction Created + Transaction Created + + + Transaction Mint Started + Transaction Mint Started + + + 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. + + + Try to spend with a higher security level to include more coins + Try to spend with a higher security level to include more coins + + + Trying to spend an already spent serial #, try again. + Trying to spend an already spent serial #, try again. + + + 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 find transaction containing mint + Unable to find transaction containing mint + + + Unable to sign spork message, wrong key? + Unable to sign spork message, wrong key? + + + Unable to start HTTP server. See debug log for details. + Unable to start HTTP server. See debug log for details. + + + 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 UPnP to map the listening port (default: %u) + Use UPnP to map the listening port (default: %u) + + + Use UPnP to map the listening port (default: 1 when listening) + Use UPnP to map the listening port (default: 1 when listening) + + + Use a custom max chain reorganization depth (default: %u) + Use a custom max chain reorganisation depth (default: %u) + + + Use the test network + Use the test network + + + User Agent comment (%s) contains unsafe characters. + User Agent comment (%s) contains unsafe characters. + + + Username for JSON-RPC connections + Username for JSON-RPC connections + + + Value is below the smallest available denomination (= 1) of zPIV + Value is below the smallest available denomination (= 1) of zPIV + + + Value more than Obfuscation pool maximum allows. + Value more than Obfuscation 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 needed to be rewritten: restart PIVX Core to complete + Wallet needed to be rewritten: restart PIVX Core to complete + + + 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! + + + 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... + + + You don't have enough Zerocoins in your wallet + You don't have enough Zerocoins in your wallet + + + 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... + + + ZeroMQ notification options: + ZeroMQ notification options: + + + Zerocoin options: + Zerocoin options: + + + on startup + on start up + + + wallet.dat corrupt, salvage failed + wallet.dat corrupt, salvage failed + + + \ No newline at end of file diff --git a/src/qt/locale/pivx_eo.ts b/src/qt/locale/pivx_eo.ts index d88aa2777ab9..706ff77e633a 100644 --- a/src/qt/locale/pivx_eo.ts +++ b/src/qt/locale/pivx_eo.ts @@ -608,10 +608,6 @@ &Command-line options &Komando-linio opcioj - - Processed %n blocks of transaction history. - %n bloko de tansakcio historo procesita%n blokoj de tansakcio historo procesita - Synchronizing additional data: %p% Ĝisdatiĝante pliaj datumo: %p% @@ -736,10 +732,6 @@ PIVX Core client PIVX Kerno kliento - - %n active connection(s) to PIVX network - %n aktiva ligo(j) al la PIVX reto%n aktiva ligo(j) al la PIVX reto - Synchronizing with network... Ĝisdatiĝante kun reto... @@ -760,26 +752,10 @@ Up to date Ĝisdata - - %n hour(s) - %n horo%n horoj - - - %n day(s) - %n tago%n tagoj - - - %n week(s) - %n semajno%n semajnoj - %1 and %2 %1 kaj %2 - - %n year(s) - %n jaro%n jaroj - Catching up... Kaptante... @@ -864,7 +840,7 @@ Muktisendi: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Monujo estas <b>ĉifrita</b> kaj nuntempe <b>ŝlosita</b> - + BlockExplorer @@ -1216,6 +1192,17 @@ Muktisendi: %1 Ne povas krei datumoj dosierujo ĉi tie. + + GovernancePage + + Form + Formo + + + 0 + 0 + + HelpMessageDialog @@ -1459,44 +1446,10 @@ Muktisendi: %1 (no label) (neniu etikedo) - - The entered address: - - La enirita adreson: - - - - is invalid. -Please check the address and try again. - estas nevalida -Bonvolu kontroku la adreson kaj riprovu - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Totala sumo de via multisendo vektoro estas super 100% de via stako rekompenco - - Please Enter 1 - 100 for percent. Bonvolu eniru 1 - 100 por porcento. - - MultiSend Vector - - Multisendo vektoro - - - - Removed - Forigita - - - Could not locate address - - Ne eblis loki adreson - - MultisigDialog @@ -1550,7 +1503,7 @@ Bonvolu kontroku la adreson kaj riprovu Amount: - Kvanto + Kvanto: Add an input to fund the outputs @@ -1887,7 +1840,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Amount: - Kvanto + Kvanto: zPIV Control @@ -1923,7 +1876,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Choose previously used address - Elektu antaŭan uzatan adreson + Elektu antaŭe uzatan adreson Alt+A @@ -1949,7 +1902,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Priority: - Prioritato + Prioritato: TextLabel @@ -1961,7 +1914,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi no - no + ne Bytes: @@ -1977,7 +1930,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Change: - Ŝanĝo: + Ŝanĝu: Copy quantity @@ -2020,6 +1973,9 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi adreso: + + ProposalFrame + QObject @@ -2038,6 +1994,10 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi UNKNOWN NEKONATA + + PIVX Core + PIVX kerno + QRImageWidget @@ -2116,10 +2076,6 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi 1 &week 1&semajno - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Uzi la sagojn supran kaj malsupran por esplori la historion, kaj <b>Ctr-L</b> por malplenigi la ekraron. - Type <b>help</b> for an overview of available commands. Tajpu <b>helpo</b> por superrigardi la disponeblajn komandojn. @@ -2183,6 +2139,10 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Copy amount Kopii kvanto + + Copy address + Kopi adreson + ReceiveRequestDialog @@ -2233,6 +2193,10 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Message Mesaĝo + + Address + Adreso + Amount Sumo: @@ -2266,11 +2230,11 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Amount: - Kvanto + Kvanto: Priority: - Prioritato + Prioritato: medium @@ -2282,7 +2246,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi no - no + ne After Fee: @@ -2290,7 +2254,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Change: - Ŝanĝo: + Ŝanĝu: If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. @@ -2354,7 +2318,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Confirm send coins - Konfirmu sendi monon + Konfirmu sendi monojn (no label) @@ -2377,7 +2341,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi Choose previously used address - Elektu antaŭan uzatan adreson + Elektu antaŭe uzatan adreson Alt+A @@ -2415,7 +2379,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi SignVerifyMessageDialog Choose previously used address - Elektu antaŭan uzatan adreson + Elektu antaŭe uzatan adreson Alt+A @@ -2447,7 +2411,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi The entered address does not refer to a key. - La enirita adreso ne rilatas al ŝlosilo + La enirita adreso ne rilatas al ŝlosilo. Wallet unlock was cancelled. @@ -2658,11 +2622,7 @@ Nematura: konfirmita, sed malpli ol 1 minto el la samo nomado post ĝin estis mi zPIV zPIV - - Is Spendable - Estas elspezebla - - + pivx-core diff --git a/src/qt/locale/pivx_es.ts b/src/qt/locale/pivx_es.ts index 6fe15cb817da..fd3195a3304a 100644 --- a/src/qt/locale/pivx_es.ts +++ b/src/qt/locale/pivx_es.ts @@ -267,7 +267,7 @@ Alt+A - Alt + A + Alt+A Paste address from clipboard @@ -275,7 +275,7 @@ Alt+P - Alt + P + Alt+P Passphrase: @@ -608,10 +608,6 @@ &Command-line options &Opciones de linea de comandos - - Processed %n blocks of transaction history. - Procesados %n bloques del histórico de transacciones.Procesados %n bloques del histórico de transacciones. - Synchronizing additional data: %p% Sincronizando datos adicionales: %p% @@ -736,10 +732,6 @@ PIVX Core client Cliente PIVX Core - - %n active connection(s) to PIVX network - %n conexión(es) activas a la red PIVX%n conexión(es) activas a la red PIVX - Synchronizing with network... Sincronizando con la red... @@ -762,7 +754,7 @@ %n hour(s) - %n horas%n horas + %n hora%n horas %n day(s) @@ -770,7 +762,7 @@ %n week(s) - %n semanas%n semanas + %n semana%n semanas %1 and %2 @@ -778,7 +770,7 @@ %n year(s) - %n años%n años + %n año%n años Catching up... @@ -864,7 +856,7 @@ MultiEnvío: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> El monedero está <b>encriptado</b> y actualmente <b>bloqueado</b> - + BlockExplorer @@ -915,11 +907,11 @@ MultiEnvío: %1 Bytes: - Octetos: + Bytes: Amount: - Cantidad: + Suma: Priority: @@ -1224,6 +1216,17 @@ MultiEnvío: %1 No se puede crear un directorio de datos aquí. + + GovernancePage + + Form + Formulario + + + 0 + 0 + + HelpMessageDialog @@ -1542,48 +1545,54 @@ MultiEnvío no se activará a menos que haga usted click en Activar(sin etiqueta) - The entered address: - - La dirección introducida: - + MultiSend Active for Stakes and Masternode Rewards + MultiSend Activado para las recompensas de Stakes y Masternode + + + MultiSend Active for Stakes + MultiSend Activado para Stakes + + + MultiSend Active for Masternode Rewards + MultiSend Activado para las recompensas de Masternode - is invalid. + MultiSend Not Active + MultiSend Desactivado + + + The entered address: %1 is invalid. Please check the address and try again. - es inválida. -Por favor compruebe la dirección e inténtelo de nuevo. + La dirección introducida: %1 es inválida. +Por favor comprueba la dirección e inténtalo nuevamente. - The total amount of your MultiSend vector is over 100% of your stake reward - - La cantidad total de su vector MultiEnvío es superior al 100% de su recompensa de stake - + The total amount of your MultiSend vector is over 100% of your stake reward + La cantidad total de tu vector de MultiEnvío es superior al 100% de tu recompensa de Stake - Please Enter 1 - 100 for percent. - Por favor Introduzca 1 - 100 por ciento. + Saved the MultiSend to memory, but failed saving properties to the database. + El MultiSend se guardó en la memoria, pero se produjo un error al guardar las propiedades en la base de datos. - Saved the MultiSend to memory, but failed saving properties to the database. - - Se guardó MultiEnvío en la memoria, pero se produjo un error al guardar las propiedades en la base de datos. - + MultiSend Vector + Vector de MultiSend - MultiSend Vector - - Vector MultiEnvío - + Removed %1 + Removido %1 - Removed - Borrado + Could not locate address + No se pudo localizar la dirección - Could not locate address - - No se pudo localizar la dirección - + Unable to activate MultiSend, check MultiSend vector + No fue posible activar el MultiSend, verifica el vector de MultiSend + + + Please Enter 1 - 100 for percent. + Por favor Introduzca 1 - 100 por ciento. @@ -1666,7 +1675,7 @@ Por favor, tenga paciencia después de hacer clic en importar. Amount: - Cantidad: + Suma: Add an input to fund the outputs @@ -2485,18 +2494,6 @@ zPIV son maduros cuando tienen más de 20 confirmaciones Y más de 2 mints de la 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Nivel de Seguridad para Transacciones Zerocoin. Cuanto más mejor, pero necesitará más tiempo y recursos. - - - Security Level: - Nivel de Seguridad: - - - Security Level 1 - 100 (default: 42) - Nivel de Seguridad 1 - 100 (por defecto: 42) - Pay &To: Pagar &A: @@ -2531,7 +2528,7 @@ zPIV son maduros cuando tienen más de 20 confirmaciones Y más de 2 mints de la A&mount: - C&antidad: + Cantidad: Convert Change to Zerocoin (might cost additional fees) @@ -2718,7 +2715,7 @@ Para cambiar el porcentaje (no se requiere reiniciar): Bytes: - Octetos: + Bytes: Insufficient funds! @@ -2773,14 +2770,6 @@ Para cambiar el porcentaje (no se requiere reiniciar): Please be patient... Ejecutando ResetMintZerocoin: reescaneando el blockchain entero, esto necesitará hasta 30 minutos dependiendo de su hardware. Por favor espere... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Gastando Zerocoin. -Esto es computacionalmente intensivo, puede necesitar varios minutos dependiendo del Nivel de Seguridad elegido y el hardware de su máquina. -Por favor tenga paciencia... ) needed. @@ -2952,22 +2941,10 @@ Máximo permitido: to a newly generated (unused and therefore anonymous) local address <br /> a una dirección local recién generada (no utilizada y, por lo tanto, anónima)<br /> - - with Security Level - con Nivel de Seguridad - Confirm send coins Confirmar enviar monedas - - Version 1 zPIV require a security level of 100 to successfully spend. - La versión 1 zPIV requiere un nivel de seguridad de 100 para gastar exitosamente. - - - Failed to spend zPIV - Error al enviar zPIV - Failed to fetch mint associated with serial hash Error al buscar la asociación del acuñado con el hash serial @@ -2986,11 +2963,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Spend Zerocoin failed with status = Gastar Zerocoin falló con estado = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialogPrivacyDialog - denomination: Denominación: @@ -3024,6 +2996,9 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o comisión: + + ProposalFrame + QObject @@ -3074,7 +3049,11 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3436,10 +3415,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Confirm resync Blockchain Confirmar resincronización del Blockchain - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Use las teclas arriba y abajo para navegar por la historia, y <b>Ctrl-L</b> para limpiar la pantalla. - Type <b>help</b> for an overview of available commands. Escriba <b>help</b> para ver una lista de posibles comandos. @@ -3511,6 +3486,10 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o An optional label to associate with the new receiving address. Una etiqueta opcional a asociar con la nueva dirección de recepción. + + A&mount: + Cantidad: + 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 PIVX network. Un mensaje opcional a adjuntar a la solicitud de pago, que será mostrado cuando se abra la solicitud. Nota: El mensaje no se envía junto al pago por la red PIVX. @@ -3535,10 +3514,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o An optional amount to request. Leave this empty or zero to not request a specific amount. Una cantidad opcional a solicitar. Deje esto vacío o en cero para no pedir una cantidad específica. - - &Amount: - &Cantidad: - &Request payment &Solicitud de pago @@ -3583,6 +3558,10 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Copy amount Copiar cantidad + + Copy address + Copiar dirección + ReceiveRequestDialog @@ -3653,6 +3632,10 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Message Mensaje + + Address + Dirección + Amount Cantidad @@ -3698,7 +3681,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Amount: - Cantidad: + Suma: Priority: @@ -3936,10 +3919,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o 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 exageradamente alta. - - Estimated to begin confirmation within %n block(s). - Estimamos que empezará la confirmación en %n bloques.Estimamos que empezará la confirmación en %n bloques. - The recipient address is not valid, please recheck. La dirección de destino no es válida, por favor compruébelo de nuevo. @@ -4021,7 +4000,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Alt+A - Alt + A + Alt+A Paste address from clipboard @@ -4029,7 +4008,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Alt+P - Alt + P + Alt+P Remove this entry @@ -4111,7 +4090,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Alt+A - Alt + A + Alt+A Paste address from clipboard @@ -4119,7 +4098,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Alt+P - Alt + P + Alt+P Enter the message you want to sign here @@ -4262,10 +4241,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o TransactionDesc - - Open for %n more block(s) - Abierto para %n bloques másAbierto para %n bloques más - Open until %1 Abierto hasta %1 @@ -4326,10 +4301,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o , has not been successfully broadcast yet , no ha sido correctamente transmitida todavía - - , broadcast through %n node(s) - , retransmitido a través de %n nodos, retransmitido a través de %n nodos - Date Fecha @@ -4370,10 +4341,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Credit Crédito - - matures in %n more block(s) - madura en %n bloques másmaduracíon en %n bloques más - not accepted rechazado @@ -4472,10 +4439,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Address Dirección - - Open for %n more block(s) - Abierto para %n bloques másAbierto para %n bloques más - Open until %1 Abierto hasta %1 @@ -4558,7 +4521,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Received PIV from zPIV - PIV recibidos desde zPIV + PIV recibidos desde zPIV Minted Change as zPIV from zPIV Spend @@ -4878,11 +4841,7 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Select/Deselect All Seleccionar/Deseleccionar Todos - - Is Spendable - Es Gastable - - + pivx-core @@ -5369,6 +5328,10 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Error recovering public key. Error al recuperar clave pública. + + Error writing zerocoinDB to disk + Error al escribir zerocoinDB en el disco + Error Error @@ -5405,6 +5368,10 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Failed to listen on any port. Use -listen=0 if you want this. Falló la escucha en cualquiera de los puertos. Usar -listen=0 si quieres esto. + + Failed to parse host:port string + Error al analizar el host: cadena del puerto + Failed to read block Falló al leer el bloque @@ -5681,10 +5648,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Failed to create mint Error al acuñar - - Failed to deserialize - Error al deserializar - Failed to find Zerocoins in wallet.dat Error al encontrar Zerocoins en wallet.dat @@ -6125,14 +6088,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o The coin spend has been used El gasto de moneda se ha usado - - The new spend coin transaction did not verify - La nueva transacción de gasto de moneda no se verificó - - - The selected mint coin is an invalid coin - La moneda acuñada seleccionada es una moneda no válida - The transaction did not verify La transacción no se verificó @@ -6281,10 +6236,6 @@ O mint las denominaciones más altas (por lo tanto, se necesitan menos datos) o Verifying wallet... Verificando el monedero... - - Version 1 zPIV require a security level of 100 to successfully spend. - La versión 1 zPIV requiere un nivel de seguridad de 100 para gastar exitosamente. - Wallet %s resides outside data directory %s El monedero %s esta ubicada fuera del directorio de datos %s diff --git a/src/qt/locale/pivx_es_ES.ts b/src/qt/locale/pivx_es_ES.ts index 9f89d57f4aad..af4930efa625 100644 --- a/src/qt/locale/pivx_es_ES.ts +++ b/src/qt/locale/pivx_es_ES.ts @@ -392,6 +392,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -460,6 +463,9 @@ Alt+P + + ProposalFrame + QObject @@ -489,6 +495,10 @@ Label Etiqueta + + Address + Dirección + (no label) (sin etiqueta) @@ -637,7 +647,7 @@ WalletView &Export - &Exportar + Exportar Export the data in the current tab to a file diff --git a/src/qt/locale/pivx_fi.ts b/src/qt/locale/pivx_fi.ts index fcdd5b17b7b4..d8ec1890ea1c 100644 --- a/src/qt/locale/pivx_fi.ts +++ b/src/qt/locale/pivx_fi.ts @@ -905,6 +905,17 @@ nimi + + GovernancePage + + Form + Lomake + + + 0 + 0 + + HelpMessageDialog @@ -1056,39 +1067,10 @@ (no label) (ei nimikettä) - - The entered address: - - Syötetty osoite: - - - is invalid. -Please check the address and try again. - on invalidi. Ole hyvä ja tarkista osoite. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - MultiSend vektorisi kokonaismäärä on yli 100% panoksesi lohkopalkkiosta. - Please Enter 1 - 100 for percent. Syötä 1 - 100 prosenttia - - MultiSend Vector - - MultiSend vektori - - - Removed - Poistettu - - - Could not locate address - - Osoitetta ei löytynyt - MultisigDialog @@ -1474,12 +1456,19 @@ Please check the address and try again. Vahvista kolikoiden lähetys + + ProposalFrame + QObject Amount Määrä + + PIVX Core + PIVX Ydin + QRImageWidget @@ -1685,6 +1674,10 @@ Please check the address and try again. An optional label to associate with the new receiving address. Vaihtoehtoinen nimike uudelle vastaanottavalle osoitteelle + + A&mount: + M&äärä: + 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 PIVX network. Vaihtoehtoinen viesti joka liitetään maksupyyntöön, joka näytetään kun pyyntö avataan. Huomio: Viestiä ei lähetetä maksun mukana PIVX verkolle. @@ -1705,10 +1698,6 @@ Please check the address and try again. An optional amount to request. Leave this empty or zero to not request a specific amount. Pyydä vaihtoehtoinen määrä. Jätä tämä tyhjäksi tai 0, jos haluat pyytää ennaltamääräämättömän summan - - &Amount: - &Määrä: - &Request payment &Pyydä maksua @@ -1753,6 +1742,10 @@ Please check the address and try again. Copy amount Kopioi määrä + + Copy address + Kopioi osoite + ReceiveRequestDialog @@ -1823,6 +1816,10 @@ Please check the address and try again. Message Viesti + + Address + Osoite + Amount Määrä diff --git a/src/qt/locale/pivx_fr_FR.ts b/src/qt/locale/pivx_fr_FR.ts index 3766f53e06f4..d4e82afd465e 100644 --- a/src/qt/locale/pivx_fr_FR.ts +++ b/src/qt/locale/pivx_fr_FR.ts @@ -355,7 +355,7 @@ The entered address does not refer to a key. - L'adresse renseignée ne correspond à aucune à une clé. + L'adresse renseignée ne correspond pas à une clé. Wallet unlock was cancelled. @@ -363,7 +363,7 @@ Private key for the entered address is not available. - La clé privé pour l'adresse entrée n'est pas valide. + La clé privée pour l'adresse entrée n'est pas valide. Failed to decrypt. @@ -436,6 +436,14 @@ Privacy Actions for zPIV Actions confidentielles pour zPIV + + &Governance + &Gouvernance + + + Show Proposals + Afficher les propositions + E&xit Quitter @@ -478,7 +486,7 @@ Backup wallet to another location - Sauvegarder ailleurs le portefeuille + Sauvegarder le portefeuille dans un autre emplacement &Change Passphrase... @@ -610,7 +618,7 @@ Processed %n blocks of transaction history. - %n bloc de l'historique de transaction traité.%n blocs de l'historique de transaction traités. + Parcouru %n blocs dans l'historique des transactionsParcouru %n blocs dans l'historique des transactions Synchronizing additional data: %p% @@ -624,6 +632,10 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only Le portefeuille est <b>chiffré</b> et pour l'instant <b>débloqué</b>pour l'anonymat et le staking seulement + + Tor is <b>enabled</b>: %1 + Tor est <b>activé</b>: %1 + &File &Fichier @@ -738,7 +750,7 @@ %n active connection(s) to PIVX network - connexion(s) active(s) au réseau PIVXconnexion(s) active(s) au réseau PIVX + %n connection(s) active(s) au réseau PIVX%n connection(s) active(s) au réseau PIVX Synchronizing with network... @@ -848,6 +860,10 @@ Adresse : %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Le portefeuille est <b>crypté</b> et actuellement <b>verrouillé</b> + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Une erreur fatale s'est produite. PIVX Core ne peut plus poursuivre en toute sécurité et va quitter. + BlockExplorer @@ -915,7 +931,7 @@ Adresse : %4 Coin Selection - Coin de sélection + Sélection des pièces Dust: @@ -1031,7 +1047,7 @@ Adresse : %4 Copy change - Copier le changement + Copier la monnaie Please switch to "List mode" to use this function. @@ -1148,6 +1164,10 @@ Adresse : %4 &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 liste d'adresses. Ceci ne peut être modifié que pour les adresses d'envoi. + New receiving address Nouvelle adresse de reception @@ -1204,6 +1224,45 @@ Adresse : %4 Impossible de créer le répertoire pour les données ici + + GovernancePage + + Form + Formulaire + + + GOVERNANCE + GOUVERNANCE + + + Update Proposals + Mettre à jour les propositions + + + Next super block: + Super bloc suivant: + + + 0 + 0 + + + Blocks to next super block: + Blocs restants jusqu'au Super block suivant: + + + Allotted budget: + Budget alloué: + + + Budget left: + Budget restant: + + + Masternodes count: + Nombre de masternodes: + + HelpMessageDialog @@ -1358,7 +1417,7 @@ Adresse : %4 Status will be updated automatically in (sec): - Le statut sera mis à jour automatiquement dans (sec): + Statut màj automatiquement dans (sec): 0 @@ -1510,51 +1569,82 @@ L'Envoi-multiple ne sera activé que si vous avez cliqué sur Activer(pas de label) - The entered address: - - L'adresse entrée: - + MultiSend Active for Stakes and Masternode Rewards + Envoi multiple actif pour les recompenses Masternode et Stake - is invalid. -Please check the address and try again. - est invalide. -Veuillez vérifier l'adresse et réessayer. + MultiSend Active for Stakes + Envoi multiple actif pour les recompenses Stake - The total amount of your MultiSend vector is over 100% of your stake reward - - Le montant total de votre vecteur Multisend est supérieur à 100% de votre récompense Stake - + MultiSend Active for Masternode Rewards + Envoi multiple actif pour les recompenses Masternode - Please Enter 1 - 100 for percent. - Veuillez entrer un pourcentage entre 1 et 100. + MultiSend Not Active + Envoi multiple inactif - Saved the MultiSend to memory, but failed saving properties to the database. - - L'Envoi-multiple est sauvegardé en mémoire, néanmoins la sauvegarde des propriétés de celui-ci en base a échoué. - + The entered address: %1 is invalid. +Please check the address and try again. + L'adresse %1 entrée est invalide. +SVP vérifiez l'adresse et essayez à nouveau. - MultiSend Vector - - Vecteur des Envoi-multiples - + The total amount of your MultiSend vector is over 100% of your stake reward + Le montant total de votre vecteur d'envoi multiple est supérieur à 100% de votre récompense Stake - Removed - Supprimé + Saved the MultiSend to memory, but failed saving properties to the database. + Envoi multiple sauvegardé, mais échec de la sauvegarde de ses propriétés en base de données. - Could not locate address - + MultiSend Vector + Vecteur d'envoi multiple + + + Removed %1 + Retiré %1 + + + Could not locate address Impossible de localiser l'adresse + + Unable to activate MultiSend, check MultiSend vector + Impossible d'activer l'envoi multple, vérifiez le vecteur d'envoi + + + MultiSend activated but writing settings to DB failed + Envoi multiple activé mais les paramètres d'écriture en base de données ont échoué + + + MultiSend activated + Envoi multiple activé + + + First Address Not Valid + Première adresse invalide + + + MultiSend deactivated but writing settings to DB failed + Envoi multiple désactivé mais les paramètres d'écriture en base de données ont échoué + + + MultiSend deactivated + Envoi multiple désactivé + + + Please Enter 1 - 100 for percent. + Veuillez entrer un pourcentage entre 1 et 100. + MultisigDialog + + Multisignature Address Interactions + Interactions d'adresse multisignature + Create MultiSignature &Address Créer une nouvelle &adresse MultiSignature @@ -1603,6 +1693,10 @@ Please be patient after clicking import. Garder en tete que le portefeuille effectuera une nouvelle analyse de la blockchain pour trouver les transactions contenant la nouvelle adresse. S'il vous plaît soyez patient après avoir cliqué sur l'importation. + + &Import Redeem + &Import la compensation + &Create MultiSignature Tx Créer une transaction Multi-Signature @@ -1613,7 +1707,7 @@ S'il vous plaît soyez patient après avoir cliqué sur l'importation. Coin Control - Contrôle de pièce de monnaie + Contrôle des pièces Quantity Selected: @@ -1647,6 +1741,10 @@ S'il vous plaît soyez patient après avoir cliqué sur l'importation.Add &Destination Ajouter la destination + + Create a transaction object using the given inputs to the given outputs + Créer un objet de transaction en utilisant les données d'entrée pour les données de sortie + Cr&eate Cré&er @@ -1691,10 +1789,18 @@ S'il vous plaît soyez patient après avoir cliqué sur l'importation.Invalid Tx Hash. Le Hash de la transaction est invalide. + + Vout position must be positive. + La position Vout doit être positive. + Maximum possible addresses reached. (15) Nombre maximum d'adresses atteint. (15) + + Vout Position: + Position Vout: + Amount: Montant : @@ -1808,10 +1914,18 @@ S'il vous plaît soyez patient après avoir cliqué sur l'importation.Size of &database cache Taille du cache de base de données + + MB + MB + Number of script &verification threads Nombre de fil pour les scripts de vérification + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = laisser autant de cœurs libres) + W&allet Portefeuille @@ -1892,7 +2006,15 @@ https://www.transifex.com/pivx-project/pivx-project-translations Enable zPIV Automint - Activé ZPIV Auto-monnayage + Activer l'Auto-monnayage zPIV + + + Enable automatic zPIV minting from specific addresses + Activer la frappe zPIV automatique à partir d'adresses spécifiques + + + Enable Automint Addresses + Activer les Adresses Automint Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) @@ -1902,9 +2024,13 @@ https://www.transifex.com/pivx-project/pivx-project-translations Percentage of autominted zPIV Pourcentage de zPIV auto-monnayé + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Met en attente la conversion automatique Zerocoin jusqu'à ce qu'il y ai suffisament de PIV disponibles pour la dénomination demandée + Preferred Automint zPIV Denomination - Dénomination préférée d'auto-monnayage zPIV + Dénomination préférée pour l'auto-monnayage zPIV Stake split threshold: @@ -1978,6 +2104,14 @@ https://www.transifex.com/pivx-project/pivx-project-translations Hide empty balances Masquer les soldes vides + + Hide orphan stakes in transaction lists + Masquer les récompenses Stake orphelines dans la liste des transactions + + + Hide orphan stakes + Masquer les récompenses Stake orphelines + 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 tierces (par exemple un explorateur de blocs) qui apparaissent dans l'onglet des transactions en tant qu'éléments de menu contextuel. %s dans l'URL est remplacé par le hash de transaction. Les URL multiples sont séparées par une barre verticale | @@ -2100,14 +2234,14 @@ https://www.transifex.com/pivx-project/pivx-project-translations Mature: more than 20 confirmation and more than 1 mint of the same denomination after it was minted. These zPIV are spendable. - Maturité: plus de 20 confirmations et plus de 1 monnayer de la même dénomination après sa frappe. + Maturité: plus de 20 confirmations et plus de 1 monnaie de la même dénomination après sa frappe. Ces zPIV sont dépensables. Unconfirmed: less than 20 confirmations Immature: confirmed, but less than 1 mint of the same denomination after it was minted Non confirmé: moins de 20 confirmations -Immature: confirmé, mais moins de 1 monnayer de la même dénomination après sa frappe +Immature: confirmé, mais moins de 1 monnaie de la même dénomination après sa frappe The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. @@ -2155,7 +2289,7 @@ Immature: confirmé, mais moins de 1 monnayer de la même dénomination après s Locked PIV or Masternode collaterals. These are excluded from zPIV minting. - PIV Verrouillé ou Masternode collatéraux. Ceux-ci sont exclus de la monnayage zPIV. + PIV Verrouillé ou Masternode collatéraux. Ceux-ci sont exclus du monnayage zPIV. Locked: @@ -2182,7 +2316,8 @@ Immature: confirmé, mais moins de 1 monnayer de la même dénomination après s If AutoMint is enabled this percentage will settle around the configured AutoMint percentage (default = 10%). Le pourcentage actuel de zPIV. -Si Auto-monnayage est activé, ce pourcentage sera réglé autour du pourcentage Auto-monnayage configuré (par défaut = 10%). +Si l'Auto-monnayage est activé, ce pourcentage sera réglé au niveau du pourcentage d'Auto-monnayage configuré (par défaut = 10%). + AutoMint is currently enabled and set to @@ -2317,7 +2452,7 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 Mint Zerocoin - Monnayer Zerocoin + Créer des Zerocoin 0 @@ -2333,7 +2468,7 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 Available for Minting: - Disponible pour Monnayage: + Disponible : 0.000 000 00 PIV @@ -2349,7 +2484,7 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 Coin Control... - Contrôle des pièces... + Choisir les pièces... Quantity: @@ -2381,11 +2516,11 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 zPIV Control - Contrôle zPIV + Choisir les zPIV zPIV Selected: - zPIV sélectionné: + zPIV sélectionnés: Quantity Selected: @@ -2397,11 +2532,11 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 Spend Zerocoin - Dépenser Zerocoin + Dépenser les Zerocoin Available (mature and spendable) zPIV for spending - zPIV disponibles (matures et dépensables) pour dépenser + zPIV disponibles (matures et utilisables) pour les dépenses Available Balance: @@ -2411,33 +2546,21 @@ Pour activer Auto-monnayage, changez 'enablezeromint = 0' en 'enablezeromint = 1 Available (mature and spendable) zPIV for spending zPIV are mature when they have more than 20 confirmations AND more than 2 mints of the same denomination after them were minted - ZPIV disponible (mature et utilisable) pour les dépenses + zPIV disponibles (matures et utilisables) pour les dépenses -Les zPIV sont matures lorsqu'elles ont plus de 20 confirmations ET plus de 2 monnayent de même dénomination après ils était monnayer +Les zPIV sont matures lorsqu'ils ont plus de 20 confirmations ET plus de 2 monnaies de même dénomination après leur frappe 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Niveau de sécurité pour les transactions Zerocoin. Le plus élevé est préférable, mais cela requiert plus de temps et de ressource. - - - Security Level: - Niveau de sécurité: - - - Security Level 1 - 100 (default: 42) - Niveau de sécurité 1 - 100 (par défaut: 42) - Pay &To: Payer à : The PIVX address to send the payment to. Creates local payment to yourself when empty. - L'adresse PIVX à laquelle nevoyer le paiement. Créé un paiement à vous même lorsque ce champs est vide. + L'adresse PIVX à laquelle envoyer le paiement. Le système créé un paiement à vous même lorsque ce champs est vide. Choose previously used address @@ -2469,7 +2592,7 @@ Les zPIV sont matures lorsqu'elles ont plus de 20 confirmations ET plus de 2 mon Convert Change to Zerocoin (might cost additional fees) - Convertir la monnaie rendue en Zerocoin (peut augmenter les frais de transaction) + Convertir la monnaie rendue en Zerocoin (peut augmenter les frais) If checked, the wallet tries to minimize the returning change instead of minimizing the number of spent denominations. @@ -2507,7 +2630,7 @@ Les zPIV sont matures lorsqu'elles ont plus de 20 confirmations ET plus de 2 mon Unconfirmed: less than 20 confirmations Immature: confirmed, but less than 1 mint of the same denomination after it was minted Non confirmé: moins de 20 confirmations -Immature: confirmé, mais moins de 1 monnayer de la même dénomination après sa frappe +Immature: confirmé, mais moins de 1 monnaie de la même dénomination après sa frappe Show the current status of automatic zPIV minting. @@ -2520,7 +2643,7 @@ To change the percentage (no restart required): - menu Settings->Options->Percentage of autominted zPIV - Afficher l'état actuel de monnayage automatique zPIV. + Afficher l'état actuel de l'Auto-monnayage zPIV. Pour changer le statut (redémarrage requis): - enable: ajoute 'enablezeromint = 1' au fichier pivx.conf @@ -2575,6 +2698,14 @@ Pour changer le pourcentage (pas de redémarrage requis): 0 x 0 x + + Show zPIV denominations list + Montrer la liste des Dénominations pour zPIV + + + Show Denominations + Montrer les Dénominations + Denominations with value 5: Dénominations avec une valeur 5: @@ -2631,6 +2762,10 @@ Pour changer le pourcentage (pas de redémarrage requis): Denom. with value 5000: Dénom. avec une valeur 5000: + + Hide Denominations + Masquer les Dénominations + Priority: Priorité : @@ -2708,14 +2843,6 @@ Pour changer le pourcentage (pas de redémarrage requis): Please be patient... Démarrage de ResetMonnayerZerocoin: réanalyser blockchain complète, cela prendra jusqu'à 30 minutes selon votre matériel. S'il vous plaît soyez patient ... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - En cours de dépense Zerocoin. -Opération coûteuse en ressources, peut nécessiter plusieurs minutes selon le niveau de sécurité choisi et la performance de votre matériel. -SVP, soyez patient... ) needed. @@ -2729,7 +2856,7 @@ Maximum autorisé: zPIV Mint - Monnayer zPIV + Monnayage zPIV <b>enabled</b>. @@ -2833,11 +2960,11 @@ Maximum autorisé: Successfully minted - Monnayez réussi + Auto-monnayage réussi zPIV in - zPIV dans + zPIV en sec. Used denominations: @@ -2855,6 +2982,10 @@ Maximum autorisé: sec. + + Starting ResetSpentZerocoin: + Démarrage de ResetSpentZerocoin: + No 'Pay To' address provided, creating local payment Aucune adresse 'Payer à' de fournie, création d'un paiement local @@ -2883,26 +3014,13 @@ Maximum autorisé: to a newly generated (unused and therefore anonymous) local address <br /> vers une adresse locale nouvellement générée (inutilisée et donc anonyme) - - with Security Level - avec le niveau de sécurité - Confirm send coins Confirmer l'envoi des pièces - - Version 1 zPIV require a security level of 100 to successfully spend. - La version 1 de zPIV requiert un niveau de sécurité de 100 pour les dépenser. - - - - Failed to spend zPIV - Échec de la dépense de zPIV - Failed to fetch mint associated with serial hash - Impossible d'extraire la monnayer associée au hachage série + Impossible de récupérer la monnaie associée au hash Too much inputs ( @@ -2912,7 +3030,7 @@ Maximum autorisé: Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. -Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessaires), soit une réduction du montant à dépenser. +Monnayez des dénominations plus élevées (moins d'intrants sont nécessaires), ou réduisez le montant à dépenser. Spend Zerocoin failed with status = @@ -2922,6 +3040,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai denomination: dénomination: + + Spending Zerocoin. +Computationally expensive, might need several minutes depending on your hardware. +Please be patient... + Dépenses Zerocoin. +Cela peut prendre plusieurs minutes, selon votre matériel. +S'il vous plaît soyez patient ... + serial: série: @@ -2951,6 +3077,75 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai frais: + + ProposalFrame + + Open proposal page in browser + Ouvrir la page des propositions dans le navigateur + + + remaining payment(s). + paiement(s) restant. + + + Yes: + Pour: + + + Abstain: + Abstention: + + + No: + Contre: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Une page de proposition peut être utilisée pour le phishing, des escroqueries ou des virus informatiques. Ouvrez ce lien uniquement si vous faites confiance à l'URL suivante. + + + + Open link + Ouvrir le lien + + + Copy link + Copier le lien + + + Wallet Locked + Portefeuille vérouillé + + + You must unlock your wallet to vote. + Vous devez déverrouiller votre portefeuille pour voter + + + Do you want to vote %1 on + Voulez-vous voter %1 pour + + + using all your masternodes? + en utilisant tous vos masternodes? + + + Proposal Hash: + Hash de la proposition: + + + Proposal URL: + URL de la proposition: + + + Confirm Vote + Confirmer le vote + + + Vote Results + Résultats du vote + + QObject @@ -2959,7 +3154,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Enter a PIVX address (e.g. %1) - Entrez uen adresse PIVX (par ex. %1) + Entrez une adresse PIVX (par ex. %1) %1 d @@ -2985,6 +3180,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai BLOOM ÉCLOSION + + ZK_BLOOM + ZK_BLOOM + UNKNOWN INCONNU @@ -3001,6 +3200,30 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai %1 ms %1 ms + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Erreur: le répertoire de données spécifié "%1" n'existe pas. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Erreur: impossible d'analyser le fichier de configuration: %1. Utilisez uniquement la syntaxe clé=valeur. + + + Error: Invalid combination of -regtest and -testnet. + Erreur: Combinaison non valide de -regtest et -testnet. + + + Error reading masternode configuration file: %1 + Erreur de lecture du fichier de configuration Masternode: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core n'a pas encore quitté en toute sécurité ... + QRImageWidget @@ -3364,13 +3587,17 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Cornfirmer la resynchronisation Blockchain - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utilisez les flèches bas et haut pour naviguer dans l'historique, et <b> Ctrl-L </b> pour effacer l'écran. + Use up and down arrows to navigate history, and %1 to clear screen. + Utilisez la flèches haut et bas pour naviguer dans l'historique, et %1 pour purger l'écran. Type <b>help</b> for an overview of available commands. Entrez <b> aide </b> pour un aperçu des commandes disponibles + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + ATTENTION: Des escrocs sévisent, demandant aux utilisateurs de taper certaines commandes dans la console, volant le contenu de leur portefeuille. N'utilisez pas cette console sans une parfaite compréhension des conséquences des commandes que vous y tapez. + %1 B %1 B @@ -3424,7 +3651,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai 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 des adresses de réception précédement utilisées.<br /> Réutiliser des adresses posent des problèmes de sécurité etd e confidentialité. <br /> Ne réuilisez pas une adresse à moins que vous souhaitiez regénérer une demande de paiement antérieure. + Réutilise une des adresses de réception précédement utilisées.<br /> Réutiliser des adresses posent des problèmes de sécurité et de confidentialité. <br /> Ne réutilisez pas une adresse à moins que vous ne souhaitiez regénérer une demande de paiement antérieure. R&euse an existing receiving address (not recommended) @@ -3438,6 +3665,18 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai An optional label to associate with the new receiving address. Un label Un optionnel à associer à la nouvelle adresse de réception. + + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + Votre adresse de réception. Vous pouvez la copier et la diffuser pour recevoir vos pièces dans ce portefeuille. Une nouvelle adresse sera générée dès que celle-ci aura été utilisée. + + + &Address: + &Adresse: + + + A&mount: + Montant: + 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 PIVX network. Un message optionnel à ajouter à la demande de paiement, lequel sera affiché lorsque la demande sera ouverte. Note: Le message ne sera pas renvoyé avec le paiement sur le réseaux PIVX. @@ -3462,10 +3701,6 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai An optional amount to request. Leave this empty or zero to not request a specific amount. Montant demandé. Optionnel, laissez vide ou zéro pour ne pas demander de montant spécifique. - - &Amount: - Montant : - &Request payment Demande le paiement @@ -3478,6 +3713,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Clear Effacer + + Receiving Addresses + Adresses de réception + Requested payments history Historique des requêtes de paiement @@ -3500,7 +3739,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Copy label - Copier le montant + Copier label Copy message @@ -3510,6 +3749,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Copy amount Copier le montant + + Copy address + Copier l'adresse + ReceiveRequestDialog @@ -3580,6 +3823,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Message Message + + Address + Adresse + Amount Montant @@ -3679,6 +3926,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai 0 PIV 0 PIV + + SwiftX technology allows for near instant transactions - A flat fee of 0.01 PIV applies + La technologie SwiftX permet des transactions quasi instantanées - Des frais minimum de 0.01 PIV s'appliquent + Transaction Fee: Commission de transaction @@ -3719,6 +3970,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai SwiftX SwiftX + + Confirmation time: + Délai de confirmation: + Open Coin Control... Ouvrir le contrôle des pièces ... @@ -3727,6 +3982,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Coins automatically selected Pièces automatiquement sélectionnées + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + Si le tarif personnalisé est fixé à 1000 uPIV et que la transaction ne représente que 250 octets, "par kilo-octet", alors le système ne paiera que 250 uPIV en frais,<br />tandis que le choix "au moins" paiera 1000 uPIV forfaitairement. Pour les transactions supérieures à un kilo-octet, les deux choix paieront les frais par kilo-octets. + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + Si le tarif personnalisé est fixé à 1000 uPIV et que la transaction ne représente que 250 octets, "par kilo-octet", alors le système ne paiera que 250 uPIV en frais,tandis que le choix "total au moins" paiera 1000 uPIV. Pour les transactions supérieures à un kilo-octet, les deux choix paieront les frais par kilo-octets. + 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 PIVX transactions than the network can process. Payer les frais minimum est convenable tant qu'il y a moins de volume de transactions que d'espace dans les blocs. <br /> Mais sachez que cela peut aboutir à une transaction qui ne se confirmera jamais lorsqu'il y aura plus de transactions PIVX que le réseau ne peut en traiter. @@ -3903,6 +4166,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Pay only the minimum fee of %1 Payer uniquement les frais minimum de %1 + + Estimated to get 6 confirmations near instantly with <b>SwiftX</b>! + Estimé d'obtenir 6 confirmations quasi instantanément avec <b>SwiftX</b>! + + + Warning: Unknown change address + Attention: adresse de changement inconnue + (no label) (pas de label) @@ -3958,10 +4229,22 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Message: Message : + + A message that was attached to the PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX network. + Un message qui était attaché au PIVX: URI qui sera stockée avec la transaction pour votre référence ultérieure. Remarque: Ce message ne sera pas envoyé sur le réseau PIVX. + + + 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 requête de paiement vérifiée. @@ -3973,13 +4256,29 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai ShutdownWindow - + + PIVX Core is shutting down... + PIVX Core est en cours de fermeture... + + + Do not shut down the computer until this window disappears. + N'arrêtez pas l'ordinateur tant que cette fenêtre n'a pas disparu. + + SignVerifyMessageDialog + + Signatures - Sign / Verify a Message + Signatures - Signer / Vérifier un Message + &Sign Message Signer le 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 possédez. Veillez à ne rien signer d'imprécis, car des attaques de type phishing pourraient vous inciter à divulger votre identité. Ne signez que des déclarations détaillées que vous avez approuvé. + The PIVX address to sign the message with L'adresse PIVX avec laquelle signer le message @@ -4000,6 +4299,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Alt+P Alt+P + + Enter the message you want to sign here + Entrez ici le texte que vous souhaitez signer + Signature Signature @@ -4036,10 +4339,22 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai &Verify Message Vérifier le 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. + Entrez l'adresse de signature, le message (veillez à copier précisément les sauts de ligne, les espaces, les onglets, etc...) et la signature ci-dessous pour vérifier le message. Verifiez que vous ne lisez pas plus d'informations dans la signature que ce qui se trouve dans le message signé lui-même, afin d'éviter de se faire piéger par une attaque de type intermédiaire (tel que l'ajout d'informations à votre insu lors d'un copié/collé). + Verify &Message Vérifier le message + + Reset all verify message fields + Réinitialiser tous les champs de vérification du 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 entrée est incorrecte. @@ -4076,51 +4391,251 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Please check the signature and try again. Merci de vérifier la signature et de ré-essayer. - + + The signature did not match the message digest. + La signature ne correspond pas au résumé du message. + + + Message verification failed. + La vérification du message a échoué. + + + Message verified. + Message vérifié. + + SplashScreen PIVX Core PIVX Core - - - TrafficGraphWidget - - - TransactionDesc - Status - Statuts + Version %1 + Version %1 - Date - Date + The Bitcoin Core developers + Les développeurs Bitcoin Core - watch-only - témoin seulement + The Dash Core developers + Les développeurs Dash Core - label + The PIVX Core developers + Les développeurs PIVX Core + + + [testnet] + [testnet] + + + + TrafficGraphWidget + + KB/s + Ko/s + + + + TransactionDesc + + Open for %n more block(s) + Ouvert pour %n blocs supplémentairesOuvert pour %n blocs supplémentaires + + + Open until %1 + Ouvrir jusqu'à %1 + + + conflicted + en conflit + + + %1/offline + %1/hors ligne + + + %1/unconfirmed + %1/non confirmé + + + %1 confirmations + %1 confirmations + + + %1/offline (verified via SwiftX) + %1/hors ligne (vérifié via SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/confirmé (vérifié via SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 confirmations (vérifié via SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/hors ligne (Vérification SwiftX en cours - %2 de %3 signatures) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/confirmé (vérification SwiftX en cours - %2 sur %3 signatures) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 confirmations (Vérification SwiftX en cours - %2 de %3 signatures) + + + %1/offline (SwiftX verification failed) + %1/hors ligne (Vérification SwiftX échouée) + + + %1/confirmed (SwiftX verification failed) + %1/confirmé (vérification SwiftX a échoué) + + + Status + Statuts + + + , has not been successfully broadcast yet + , n'a pas encore été diffusé avec succès + + + , broadcast through %n node(s) + , diffusion à travers %n noeuds, diffusion à travers %n noeuds + + + Date + Date + + + Source + Source + + + Generated + Généré + + + From + De + + + unknown + inconnu + + + To + À + + + own address + Adresse personnelle + + + watch-only + témoin seulement + + + label label + + Credit + Crédit + + + matures in %n more block(s) + mature dans %n blocs supplémentairesmature dans %n blocs supplémentaires + + + not accepted + pas accepté + + + 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 transaction + + + Output index + Index de sortie + + + 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 créées doit murir %1 blocs avant qu'elles ne puissent être dépensées. Lorsque vous générez ce bloc, il est diffusé sur le réseau afin d'être ajouté à la chaîne de blocs. Si cet ajout échoue, son statut sera modifié à "non accepté" et il ne sera pas dépensable. Ceci peut arriver occasionnellement lorsqu'un autre noeud du réseau génère un bloc quelques secondes avant le votre. + + Debug information + Information de débug + + + Transaction + Transaction + + + Inputs + Entrées + Amount Montant - + + true + vrai + + + false + faux + + TransactionDescDialog - + + Transaction details + Détails de transaction + + + This pane shows a detailed description of the transaction + Ce volet affiche une description détaillée de la transaction + + TransactionTableModel @@ -4135,6 +4650,42 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Address Adresse + + Open for %n more block(s) + Ouvert pour %n blocs supplémentairesOuvert pour %n blocs supplémentaires + + + Open until %1 + Ouvrir jusqu'à %1 + + + Offline + Hors ligne + + + Unconfirmed + Non confirmé + + + Confirming (%1 of %2 recommended confirmations) + Confirmation en cours (%1 de %2 confirmations requises) + + + Confirmed (%1 confirmations) + Confirmé (%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 noeud du réseau et sera probablement refusé! + Received with Reçu avec @@ -4189,7 +4740,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Sent to - Envoyer à + Envoyé à Orphan Block - Generated but not accepted. This does not impact your holdings. @@ -4211,6 +4762,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai watch-only témoin seulement + + (n/a) + (n/a) + + + Transaction status. Hover over this field to show number of confirmations. + État de la transaction. Survolez le champ pour voir le nombre de transactions. + Date and time that the transaction was received. Date et heure a laquelle la transaction fut reçue @@ -4258,13 +4817,25 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai This year Cette année + + Range... + Choisir la période... + + + Most Common + Plus courant + Received with Reçu avec Sent to - Envoyer à + Envoyé à + + + To yourself + A vous-même Mined @@ -4272,7 +4843,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Minted - Monnayez + Récompense Stake Masternode Reward @@ -4280,161 +4851,649 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Zerocoin Mint - Zerocoin Monnayez + PIV convertit en zPIV + + + Zerocoin Spend + Dépense Zerocoin + + + Zerocoin Spend to Self + Dépense Zerocoin à soi-même + + + Other + Autre Enter address or label to search Entrez l'adresse ou label à rechercher + + Min amount + Montant min + Copy address Copier l'adresse Copy label + Copier label + + + Copy amount Copier le montant - Copy amount - Copier le montant + Copy transaction ID + Copier l'ID de la transaction + + + Edit label + Modifier label + + + Show transaction details + Afficher les détail de transaction + + + Hide orphan stakes + Masquer les récompenses Stake orphelines + + + Export Transaction History + Exporter l'historique des transactions + + + Comma separated file (*.csv) + Fichier avec séparation par des virgules (*.csv) + + + Confirmed + Confirmé + + + Watch-only + Témoin + + + Date + Date + + + Type + Type + + + Label + Label + + + Address + Adresse + + + ID + ID + + + Exporting Failed + Exportation échouée + + + There was an error trying to save the transaction history to %1. + Une erreur est survenue lors de la tentative de sauvegarde de l'historique de transaction vers %1. + + + Exporting Successful + Exportation réussie + + + Received PIV from zPIV + PIV reçu depuis zPIV + + + Zerocoin Spend, Change in zPIV + Dépense Zerocoin, monnaie rendue en zPIV + + + The transaction history was successfully saved to %1. + L'historique de transaction a été correctement sauvegardé à %1. + + + Range: + Période: + + + to + à + + + + UnitDisplayStatusBarControl + + Unit to show amounts in. Click to select another unit. + Unité pour afficher les montants. Cliquez pour choisir une autre unité. + + + + WalletFrame + + No wallet has been loaded. + Aucun portefeuille n'a été chargé. + + + + WalletModel + + Send Coins + Envoyer des pièces + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX ne supporte pas l'envoi de montants aussi élevés. Les transactions sont actuellement lmitées à %1 PIV. + + + + WalletView + + HISTORY + HISTORIQUE + + + &Export + Exporter + + + Export the data in the current tab to a file + Exporter les informations de l'onglet actuel vers un fichier + + + Selected amount: + Montant sélectionné : + + + Backup Wallet + Sauvegarder le Portefeuille + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + ZPivControlDialog + + Select zPIV to Spend + Choisir les zPIV à dépenser + + + Quantity + Quantité + + + 0 + 0 + + + zPIV + zPIV + + + Select/Deselect All + Tout Sélectionner/Désélectionner + + + Spendable? + Dépensable ? + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = conserve les métadonnées de transaction, par exemple le propriétaire du compte et les informations de demande de paiement, 2 = supprime les métadonné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 + Autoriser les connexions JSON-RPC à partir de la source spécifiée. Valable pour <ip> comme une seule adresse IP (par exemple, 1.2.3.4), un réseau / masque de sous-réseau (par exemple, 1.2.3.4/255.255.255.0) ou un réseau / CIDR (par exemple, 1.2.3.4/24). Cette option peut être spécifiée plusieurs fois. + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Relier à des adresses spécifiques et toujours écouter dessus. Utilisez [host]:port pour IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Relier à des adresses spécifiques et ajouter à la liste blanche les pairs qui s'y connectent. Utilisez la notation [host]:port pour 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) + Relier à une adresse spécifique pour écouter les connexions JSON-RPC. Utilisez la notation [host]:port pour IPv6. Cette option peut être spécifiée plusieurs fois (par défaut: liaison à toutes les interfaces) + + + Calculated accumulator checkpoint is not what is recorded by block index + Le point de contrôle de l'accumulateur qui a été calculé ne correspond pas à ce qui est enregistré par l'index de bloc + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Impossible de vérouiller le répertoire de données %s. PIVX Core est probablement déjà en cours d'exécution. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Modifier le comportement du vote budgétaire automatique. mode = auto: ne votez que pour une correspondance exacte avec votre budget généré. (chaîne, 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 autorisations système par défaut, au lieu de umask 077 (efficace uniquement avec la fonctionnalité de portefeuille désactivée) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Supprimer toutes les transactions de portefeuille et ne récupérer ces parties de la blockchain que via -rescan au démarrage + + + Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. + Distribué sous la licence du logiciel MIT, consultez le fichier d'accompagnement COPYING ou <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Activer la frappe automatique de monnaie à partir d’adresses spécifiques (0-1, par défaut: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Active ou désactive la fonctionnalité de staking pour les entrées PIV (0-1, par défaut: %u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Active ou désactive la fonctionnalité de staking pour les entrées zPIV (0-1, par défaut: %u) + + + Enable spork administration functionality with the appropriate private key. + Activer la fonctionnalité d'administration de spork avec la clé privée appropriée. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Entrer dans le mode de test de régression, qui utilise une chaîne spéciale dans laquelle les blocs peuvent être résolus instantanément. + + + Error: Listening for incoming connections failed (listen returned error %s) + Erreur: L'écoute des connexions entrantes a échoué (listen a renvoyé l'erreur %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Erreur: La transaction est plus grande que la taille maximum autorisée! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Erreur: Argument -socks non pris en charge. Le paramétrage de SOCKS n'est plus possible, seul les proxies SOCKS5 sont supportés. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Execute la commande quand une alerte pertinente est reçue ou que nous constatons un long fork dans la chaine (%s dans cmd est remplacé par un message) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Exécuter la commande quand une transaction de portefeuille change (%s dans cmd est remplacé par l'identifiant de transaction) + + + 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 hash du bloc) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Les frais (en PIV / Kb) inférieurs à ceux-ci sont considérés comme des frais nuls pour le relais (par défaut: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Les frais (en PIV / Kb) inférieurs à cette valeur sont considérés comme des frais nuls pour la création de transaction (par défaut: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Vider l'activité de la base de données du pool de mémoire vers le journal du disque tous les <n>mégaoctets (par défaut: %u) + + + Found unconfirmed denominated outputs, will wait till they confirm to continue. + Les sorties libellées non confirmées attendront jusqu'à ce qu'elles se confirment pour continuer. + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Si paytxfee n'est pas défini, incluez suffisamment de frais pour que les transactions commencent la confirmation en moyenne dans les n blocs (par défaut: %u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + Dans ce mode, -genproclimit contrôle le nombre de blocs générés immédiatement. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Vos fonds confirmés sont insuffisants, attendez quelques minutes et essayez à nouveau. + + + Invalid amount for -maxtxfee=<amount>: '%s' (must be at least the minrelay fee of %s to prevent stuck transactions) + Montant incorrect pour -maxtxfee=<amount>: '%s' (doit être au minimum de %s afin d'éviter que la transaction reste bloquée) + + + Keep the specified amount available for spending at all times (default: 0) + Garder le montant spécifié disponible pour la dépense en tous temps (défaut: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Journaliser la priorité des transactions et les frais par Ko lors de l'extraction de blocs (par défaut: %u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Maintenir un index de transaction complet, utilisé par l'appel rpc de 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 de support de données que nous transmettons et minons (par défaut: %u) + + + Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s) + Total des frais maximum à utiliser dans une même transaction, paramétrer une valeur trop basse peut empêcher des transactions importantes (défaut: %s) + + + Number of seconds to keep misbehaving peers from reconnecting (default: %u) + Nombre de secondes pendant lesquelles les pairs se conduisant mal ne peuvent pas se reconnecter (par défaut: %u) + + + Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. + L'Obfuscation utilise des montants libellés précis pour envoyer des fonds, vous devriez peut-être simplement anonymiser des pièces supplémentaires. + + + Output debugging information (default: %u, supplying <category> is optional) + Informations de débogage en sortie (par défaut: %u, fournir <category> est facultatif) + + + Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) + Requêter les adresses des pairs via la recherche DNS, si faible sur les adresses (par défaut: 1 sauf si -connect) + + + Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u) + Définir aléatoirement les informations d'identification pour chaque connexion proxy. Cela permet d'isoler le flux Tor (par défaut: %u) + + + Require high priority for relaying free or low-fee transactions (default:%u) + Exiger une priorité éleveée pour relayer des transactions gratuites ou à faible coût (par défaut: %u) + + + Send trace/debug info to console instead of debug.log file (default: %u) + Envoyer des informations de trace/débogage à la console au lieu du fichier debug.log (par défaut: %u) + + + Set maximum size of high-priority/low-fee transactions in bytes (default: %d) + Définir la taille maximale des transactions à priorité élevée / faible tarif en octets (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 de threads de vérification de script (%u à %d, 0 = auto, <0 = laisse autant de cœurs libres, par défaut: %d) + + + Set the number of threads for coin generation if enabled (-1 = all cores, default: %d) + Définir le nombre de threads pour la génération des pièces, si activé (-1 = tous les cœurs, par défaut: %d) + + + Show N confirmations for a successfully locked transaction (0-9999, default: %u) + Affiche N confirmations pour une transaction correctement verrouillée (0-9999, par défaut: %u) + + + Support filtering of blocks and transaction with bloom filters (default: %u) + Supporter le filtrage des blocs et des transactions avec des filtres de Bloom (par défaut: %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 inclut un logiciel développé par OpenSSL Project pour être utilisé dans OpenSSL Toolkit <https://www.openssl.org/> et le logiciel de cryptographie écrit par Eric Young ainsi que le logiciel UPnP écrit par Thomas Bernard. + + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + La longueur totale de la chaîne dans la version réseau (%i) dépasse la longueur maximale (%i). Réduisez le nombre ou la taille des commentaires de l'Agent Utilisateur + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Impossible de se lier à %s depuis cet ordinateur. PIVX Core est probablement déjà en cours d'exécution. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Incapable de localiser suffisamment de fonds non-dénommés pour l'Obfuscation de cette transaction. + + + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 PIV. + Incapable de localiser suffisamment de fonds non-dénommés pour l'Obfuscation de cette transaction qui ne sont pas égaux à 10000 PIV. + + + Unable to locate enough funds for this transaction that are not equal 10000 PIV. + Impossible de grouper assez de fonds pour cette transaction qui n'est pas égale à 10000 PIV. + + + Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) + Utilisez un proxy SOCKS5 séparé pour rejoindre les pairs via les services cachés Tor (par défaut: %s) + + + Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction. + Attention: -maxtxfee est très élevé! Ces frais importants pourraient être payés lors d'une seule transaction. + + + Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. + Attention: -paytxfee est réglé très haut! Ce sont les frais de transaction que vous paierez si vous envoyez une transaction. + + + Warning: Please check that your computer's date and time are correct! If your clock is wrong PIVX Core will not work properly. + Avertissement: Veuillez vérifier que la date et l'heure de votre ordinateur sont correctes! Si votre horloge est incorrecte, PIVX Core ne fonctionnera pas correctement. + + + 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! Certains mineurs semblent avoir des problèmes. + + + Warning: We do not appear to fully agree with our peers! You may need to upgrade, or other nodes may need to upgrade. + Attention: Il semble que nous soyons en désaccord avec nos pairs sur le réseau! Cela signifie que vous pourriez avoir besoin de mettre à jour votre PIVX Core, ou que les autres noeuds aient besoin de se mettre à jour de leur côté. + + + Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. + Attention: erreur de lecture du fichier wallet.dat! Toutes les clés sont lues correctement, mais les données de transaction ou les entrées du carnet d'adresse pourraient être manquantes ou incorrectes. + + + 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. + Attention: wallet.dat corrompu, données récupérées! Le wallet.dat original est enregistré en tant que wallet.{timestamp}.bak in %s; Si votre solde ou vos transactions sont incorrects, vous devez restaurer à partir de votre sauvegarde. + + + Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times. + Mettre en liste blanche les pairs se connectant à partir du masque de réseau ou de l'adresse IP donnés. Peut être spécifié plusieurs 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 + Les pairs inscrits sur la liste blanche ne peuvent pas être interdits par le DoS et leurs transactions sont toujours relayées, même si elles sont déjà dans le mempool, utile par exemple pour une passerelle + + + You must specify a masternodeprivkey in the configuration. Please see documentation for help. + Vous devez spécifier une masternodeprivkey dans la configuration. Veuillez consulter la documentation pour obtenir de l'aide. + + + (51472 could be used only on mainnet) + (51472 ne peut être utilisé que pour le mainnet) + + + (default: %s) + (défaut: %s) + + + (default: 1) + (default: 1) + + + (must be 51472 for mainnet) + (doit être 51472 pour le mainnet) + + + Accept command line and JSON-RPC commands + Accepter les lignes de commandes et les commandes JSON-RPC + + + Accept connections from outside (default: 1 if no -proxy or -connect) + Accepter les connections depuis l'extérieur (défaut: 1 si pas de -proxy ou -connect) + + + Accept public REST requests (default: %u) + Accepter les requêtes REST publiques (défaut: %u) + + + Add a node to connect to and attempt to keep the connection open + Ajouter un noeud pour se connecter avec et essayer 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. + Vous avez déjà cette entrée. + + + Always query for peer addresses via DNS lookup (default: %u) + Toujours rechercher les adresses des pairs via une recherche DNS (par défaut: %u) + + + Append comment to the user agent string + Ajouter un commentaire à la chaîne de l'Agent Utilisateur + + + Attempt to recover private keys from a corrupt wallet.dat + Essaye de restaurer les clés privées depuis un fichier wallet.dat corrompu + + + Automatically create Tor hidden service (default: %d) + Créer automatiquement un service Tor caché (défaut: %d) + + + Block creation options: + Options de création de bloc: + + + Calculating missing accumulators... + Calcul des accumulateurs manquants... - Copy transaction ID - Copier l'ID de la transaction + Can't denominate: no compatible inputs left. + Ne peut dénommer: aucune entrée compatible laissée. - Edit label - Modifier label + Can't find random Masternode. + Ne peut pas trouver un Masternode aléatoire - Comma separated file (*.csv) - Fichier avec séparation par des virgules (*.csv) + Can't mix while sync in progress. + Ne peut pas mélanger lorsqu'une sycnhronisation est en cours - Confirmed - Confirmé + Cannot downgrade wallet + Ne peut pas rétrograder le portefeuille - Watch-only - Témoin + Cannot resolve -bind address: '%s' + Impossible de résoudre l'adresse -bind: '%s' - Date - Date + Cannot resolve -externalip address: '%s' + Impossible de résoudre l'adresse -externalip: '%s' - Type - Type + Cannot resolve -whitebind address: '%s' + Impossible de résoudre l'adresse -whitebind: '%s' - Label - Label + Cannot write default address + Impossible d'écrire l'adresse par défaut - Address - Adresse + Collateral not valid. + Collatéral invalide. - Exporting Failed - Exportation échouée + Connect only to the specified node(s) + Se connecter uniquement au(x) noeud(s) spécifié(s) - There was an error trying to save the transaction history to %1. - Une erreur est survenue lors de la tentative de sauvegarde de l'historique de transaction vers %1. + Connect through SOCKS5 proxy + Connecter à travers un proxy SOCKS5 - Received PIV from zPIV - PIV reçu depuis zPIV + Connect to a node to retrieve peer addresses, and disconnect + Se connecter à un noeud pour retrouver les adresses des pairs et se déconnecter ensuite - Zerocoin Spend, Change in zPIV - Dépense Zerocoin, monnaie rendue en zPIV + Connection options: + Options de connection: - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - Send Coins - Envoyer des pièces + Copyright (C) 2009-%i The Bitcoin Core Developers + Copyright (C) 2009-%i Les développeurs de Bitcoin Core - - - WalletView - &Export - &Exporter + Copyright (C) 2014-%i The Dash Core Developers + Copyright (C) 2014-%i Les développeurs de DASH Core - Export the data in the current tab to a file - Exporter les informations de l'onglet actuel vers un fichier + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i Les développeurs de PIVX Core - Selected amount: - Montant sélectionné : + Corrupted block database detected + Corruption des base de données de blocs détectée - Backup Wallet - Sauvegarder le Portefeuille + Could not parse masternode.conf + Impossible d'analyser masternode.conf - Wallet Data (*.dat) - Wallet Data (*.dat) + Debugging/Testing options: + Options de déboguage/test: - - - ZPivControlDialog - Quantity - Quantité + Delete blockchain folders and resync from scratch + Supprimer les dossiers blockchain et resynchroniser à partir de zéro - 0 - 0 + Disable OS notifications for incoming transactions (default: %u) + Désactiver les notifications de l'OS pour les transcation entrantes (défaut: %u) - zPIV - zPIV + Disable safemode, override a real safe mode event (default: %u) + Désactiver le mode sans échec , remplacer un événement en mode sans échec réel (par défaut: %u) - - - pivx-core - Enable or disable staking functionality for PIV inputs (0-1, default: %u) - Active ou désactive la fonctionnalité de staking pour les entrées PIV (0-1, par défaut: %u) + Discover own IP address (default: 1 when listening and no -externalip) + Découvrir sa propre adresse IP (par défaut: 1 lorsqu'en écoute et sans -externalip) - Enable or disable staking functionality for zPIV inputs (0-1, default: %u) - Active ou désactive la fonctionnalité de staking pour les entrées zPIV (0-1, par défaut: %u) + Do not load the wallet and disable wallet RPC calls + Ne pas charger le portefeuille et désactiver les appels RPC - Error: Listening for incoming connections failed (listen returned error %s) - Erreur: L'écoute des connexions entrantes a échoué (listen a renvoyé l'erreur %s) + Do you want to rebuild the block database now? + Voulez-vous reconstruire la base de données des blocs maintenant ? - Error: The transaction is larger than the maximum allowed transaction size! - Erreur: La transaction est plus grande que la taille maximum autorisée! + Done loading + Chargement effectué - Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. - Erreur: Argument -socks non pris en charge. Le paramétrage de SOCKS n'est plus possible, seul les proxies SOCKS5 sont supportés. + Enable publish hash transaction (locked via SwiftX) in <address> + Activer la publication du hash des transactions (vérouillées via SwiftX) dans <address> - Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) - Exécuter la commande quand une transaction de portefeuille change (%s dans cmd est remplacé par l'identifiant de transaction) + Enable publish raw transaction (locked via SwiftX) in <address> + Activer la publication des transactions brut (vérouillées via SwiftX) dans <address> - 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 hash du bloc) + Enable the client to act as a masternode (0-1, default: %u) + Activer le client pour agir en tant que Masternode (0-1, défaut: %u) - Warning: error reading wallet.dat! All keys read correctly, but transaction data or address book entries might be missing or incorrect. - Attention: erreur de lecture du fichier wallet.dat! Toutes les clés sont lues correctement, mais les données de transaction ou les entrées du carnet d'adresse pourraient être manquantes ou incorrectes. + Entries are full. + Les entrées sont complètes. Error connecting to Masternode. @@ -4476,6 +5535,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Error recovering public key. Erreur de récupération de la clé publique. + + Error writing zerocoinDB to disk + Erreur lors de l'écriture de zerocoinDB sur le disque + Error Erreur @@ -4504,13 +5567,169 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Error: You already have pending entries in the Obfuscation pool Erreur: Vous avez déjà des enregistrements en attente de la pool d'obfuscation + + Failed to calculate accumulator checkpoint + Échec du calcul du point de contrôle de l'accumulateur + + + Failed to listen on any port. Use -listen=0 if you want this. + Écoute impossible quelque soit le port. Utilisez -listen=0 si c'est cela que vous souhaitez. + + + Failed to parse host:port string + Impossible d'interprêter la chaine host:port + + + Failed to read block + Impossible de lire le bloc + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Frais (en PIV/kB) à ajouter aux transactions envoyées (défaut: %s) + + + Finalizing transaction. + Finalisation de la transaction. + + + Force safe mode (default: %u) + Forcer le mode sans échec (défaut: %u) + + + Found enough users, signing ( waiting %s ) + Trouvé assez d'utilisateurs, signature en cours ( attente %s) + + + Found enough users, signing ... + Trouvé assez d'utilisateurs, signature en cours ... + + + Generate coins (default: %u) + Générer des pièces (par défaut: %u) + + + How many blocks to check at startup (default: %u, 0 = all) + Nombre de blocs à vérifier au démarrage (défaut: %u, 0 = tous) + + + If <category> is not supplied, output all debugging information. + Si <category> n'est pas fourni, afficher toutes les informations de débogage. + + + Importing... + Importation... + + + Imports blocks from external blk000??.dat file + Importe les blocs à partir du fichier externe blk000??.dat + + + Include IP addresses in debug output (default: %u) + Inclure les adresses IP dans les informations de déboguage (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 non trouvé. Peut-être un mauvais datadir pour le réseau ? + Information Information + + Initialization sanity check failed. PIVX Core is shutting down. + Échec de la vérification de l'initialisation. PIVX Core va fermer. + + + Input is not valid. + L'entrée n'est pas valide. + + + Insufficient funds + Fonds insuffisants + + + Insufficient funds. + Fonds insuffisants. + + + Invalid -onion address or hostname: '%s' + Adresse -onion ou hostname incorrect: '%s' + + + Invalid amount for -maxtxfee=<amount>: '%s' + Montant incorrect pour -maxtxfee=<amount>: '%s' + + + Invalid amount for -minrelaytxfee=<amount>: '%s' + Montant incorrect pour -minrelaytxfee=:<amount> '%s' + Invalid amount for -mintxfee=<amount>: '%s' - Invalid amount for -mintxfee=<amount>: '%s' + Montant incorrect pour -mintxfee=<amount>: '%s' + + + Invalid amount for -paytxfee=<amount>: '%s' (must be at least %s) + Montant incorrect pour -paytxfee=<amount>: '%s' (doit être au mininum %s) + + + Invalid amount for -paytxfee=<amount>: '%s' + Montant incorrect pour -paytxfee=<amount>: '%s' + + + Invalid amount for -reservebalance=<amount> + Montant incorrect pour -reservebalance=<amount> + + + Invalid amount + Montant incorrect + + + Invalid masternodeprivkey. Please see documenation. + Masternodeprivkey incorrecte. Regardez la documentation SVP. + + + Invalid netmask specified in -whitelist: '%s' + Masque réseau incorrect spécifié dans -whitelist: '%s' + + + Invalid port detected in masternode.conf + Port invalide détecté dans masternode.conf + + + Invalid private key. + Clé privée incorrecte. + + + Invalid script detected. + Script incorrect détecté. + + + Reindex the PIV and zPIV money supply statistics + Recalculer les statistiques sur l'approvisionnement en PIV et zPIV + + + Reindexing zerocoin database... + Réindexation de la base de données zerocoin... + + + Reindexing zerocoin failed + La réindexation zerocoin a échoué + + + Selected coins value is less than payment target + La valeur des monnaies choisies est inférieure au montant projeté + + + SwiftX options: + Options SwiftX: This is a pre-release test build - use at your own risk - do not use for staking or merchant applications! @@ -4527,6 +5746,20 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Monnayes actualisé , + + unconfirmed transactions removed + + Transactions non confirmées supprimées + + + + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Désactiver toutes les fonctionnalités spécifiques à PIVX (Masternodes, Zerocoin, SwiftX, Budgétisation) (0-1, défaut: %u) + + + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Activer SwiftX, montrer les confirmations pour les transactions vérouillées (booléen, défaut : %s) + Error: 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. Erreur: La transaction a été rejetée. Cela peut survenir si certaines pièces de votre portefeuille ont déjà été dépensées. Par exemple si vous avez utilisez une copie de wallet.dat et que les monnaies dépensées dans cette copie n'ont pas été marquées comme telles dans ce portefeuille. @@ -4543,6 +5776,62 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Execute command when the best block changes and its size is over (%s in cmd is replaced by block hash, %d with the block size) Exécute la commande lorsque le meilleur bloc change et que sa taille est finalisée (%s dans cmd est remplacé par le hash du bloc, %d avec la taille du bloc) + + Failed to find coin set amongst held coins with less than maxNumber of Spends + Impossible de trouver des pièces parmi celles détenues avec moins de maxNumber de dépenses + + + In rare cases, a spend with 7 coins exceeds our maximum allowable transaction size, please retry spend using 6 or less coins + Dans quelques rares cas, une dépense de 7 monnaies dépasse la taille maximale autorisée pour une transation, SVP réessayez en choisissant 6 monnaies ou moins + + + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Spécifier un chemin de sauvegarde personnalisé pour y ajouter les sauvegardes automatiques zPIV. S'il est paramétré comme un dossier, chaque sauvegarde génère un fichier horodaté. S'il est paramétré comme fichier, chaque sauvegarde écrasera la précédente. Si le chemin de la sauvegarde est défini, il y aura 4 versions de sauvegardes + + + Specify custom backup path to add a copy of any wallet backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. + Spécifier un chemin de sauvegarde personnalisé pour y ajouter les sauvegardes automatiques zPIV. S'il est paramétré comme un dossier, chaque sauvegarde génère un fichier horodaté. S'il est paramétré comme fichier, chaque sauvegarde écrasera la précédente. + + + SwiftX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again. + SwiftX requiert des entrées avec un minimum de 6 confirmations, attendez quelques minutes et réessayez. + + + <category> can be: + <category> peut être: + + + Attempt to force blockchain corruption recovery + Tenter de forcer la restauration d'une chaine de bloc corrompue + + + CoinSpend: Accumulator witness does not verify + CoinSpend: le témoin d'accumulateur ne vérifie pas + + + Display the stake modifier calculations in the debug.log file. + Afficher les calculs du modificateur de mise dans le fichier debug.log. + + + Display verbose coin stake messages in the debug.log file. + Afficher des messages détaillés dans le fichier debug.log. + + + Enable publish hash block in <address> + Activer la publication du bloc de hachage dans <address> + + + Enable publish hash transaction in <address> + Activer la publication d'une transaction de hachage dans <address> + + + Enable publish raw block in <address> + Activer la publication du bloc brut dans <address> + + + Enable publish raw transaction in <address> + Activer la publication des transactions brutes dans <address> + Enable staking functionality (0-1, default: %u) Activer la fonctionnalité de staking (0-1, par défaut: %u) @@ -4559,6 +5848,34 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Failed to create mint Impossible de créer la monnayer + + Failed to find Zerocoins in wallet.dat + Impossible de trouver un Zerocoin dans le portefeuille wallet.dat + + + Failed to select a zerocoin + Impossible de sélectionner un zerocoin + + + Failed to wipe zerocoinDB + Impossible de nettoyer zerocoinDB + + + Failed to write coin serial number into wallet + Impossible d'écrire le numéro de série de la monnaie dans le portefeuille + + + Keep at most <n> unconnectable transactions in memory (default: %u) + Conserver au maximum <n> transactions non connectables en mémoire (par défaut: %u) + + + Last Obfuscation was too recent. + La dernière Obfuscation est trop récente. + + + Last successful Obfuscation action was too recent. + La dernière Obfuscation réussie est trop récente. + Limit size of signature cache to <n> entries (default: %u) Limiter la taille du cache de signature à <n> entrées (par défaut: %u) @@ -4611,6 +5928,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Location of the auth cookie (default: data dir) Emplacement du cookie d'authentification (par défaut: répertoire de données) + + Lock is already in place. + Le vérouillage est déjà actif. + + + Lock masternodes from masternode configuration file (default: %u) + Verrouiller les masternodes à partir du fichier de configuration masternode (par défaut: %u) + Lookup(): Invalid -proxy address or hostname: '%s' Lookup(): adresse-proxy ou nom d'hôte non valide: '%s' @@ -4631,6 +5956,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Masternode: Masternode: + + Maximum per-connection receive buffer, <n>*1000 bytes (default: %u) + Tampon de réception maximum par connexion, * 1000 octets (par défaut: %u) + + + Maximum per-connection send buffer, <n>*1000 bytes (default: %u) + Tampon d'envoi maximum par connexion, <n>* 1000 octets (par défaut: %u) + Mint did not make it into blockchain Monnayés ne pas fait entre dans la blockchain @@ -4647,6 +5980,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Need address because change is not exact Nécessite une adresse pour rendre la monnaie + + Need to specify a port with -whitebind: '%s' + Nécessite de vérifier un port avec -whitebind: '%s' + No Masternodes detected. Aucun Masternode détecté. @@ -4655,6 +5992,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai No compatible Masternode found. Aucun Masternode compatible trouvé. + + No funds detected in need of denominating. + Aucun fonds détecté nécessitant une dénomination. + No matching denominations found for mixing. Aucune dénomination adéquate trouvée pour le mélange. @@ -4715,10 +6056,18 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Password for JSON-RPC connections Mot de passe pour les connexions JSON-RPC + + isValid(): Invalid -proxy address or hostname: '%s' + isValid(): adresses -proxy ou hostname invalides: '%s' + Preparing for resync... Préparation à la resynchronistaion... + + Prepend debug output with timestamp (default: %u) + Ajouter une sortie de débogage avec l'horodatage (par défaut: %u) + Print version and exit Imprimer la version est quitter @@ -4727,6 +6076,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai RPC server options: Options serveur RPC: + + Randomly drop 1 of every <n> network messages + Déposer aléatoirement 1 message tous les <n> messages du réseau + + + Randomly fuzz 1 of every <n> network messages + Couvrir aléatoirement 1 message tous les <n> messages du réseau + Rebuild block chain index from current blk000??.dat files Reconstruire l'index de la chaîne de blocs à partir des fichiers blk000 ??.dat courants @@ -4739,6 +6096,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Reindex the accumulator database Réindexer la base de données des accumulateurs + + 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 multisignatures non-P2SH (par défaut: %u) + Rescan the block chain for missing wallet transactions Rescanner la chaîne de blocs pour retrouver les transactions manquantes dans le portefeuille @@ -4749,7 +6114,11 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai ResetMintZerocoin finished: - ResetMonnayerZerocoin terminé: + ResetMintZerocoin terminé: + + + ResetSpentZerocoin finished: + ResetSpentZerocoin terminé: Run a thread to flush wallet periodically (default: %u) @@ -4799,6 +6168,22 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Set the masternode private key Définir la clé privée masternode + + Set the number of threads to service RPC calls (default: %d) + Définir le nombre de threads pour traiter les appels RPC (par défaut: %d) + + + Sets the DB_PRIVATE flag in the wallet db environment (default: %u) + Définit l'indicateur DB_PRIVATE dans l'environnement db du portefeuille (défaut: %u) + + + Show all debugging options (usage: --help -help-debug) + Afficher toutes les options de déboguage (utilisation: -help -help-debug) + + + Shrink debug.log file on client startup (default: 1 when no -debug) + Réduire le fichier debug.log au démarrage du client (défaut: 1 quand pas de -debug) + Signing failed. La signature a échoué. @@ -4839,6 +6224,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Specify your own public address Indiquez votre propre adresse publique + + Spend Valid + Dépenser Valide + 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) @@ -4847,6 +6236,14 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Staking options: Options de staking: + + Stop running after importing blocks from disk (default: %u) + Arrêter l'exécution après l'importation des blocs du disque (défaut: %u) + + + Submitted following entries to masternode: %u / %d + Entrées soumises au masternode: %u / %d + Submitted to masternode, waiting for more entries ( %u / %d ) %s Soumis au masternode, en attente d'entrées supplémentaires ( %u / %d ) %s @@ -4867,6 +6264,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Synchronization pending... Synchronisation en attente... + + Synchronizing budgets... + Synchronisation des budgets... + Synchronizing masternode winners... Synchronisation des masternodes gagnants... @@ -4887,14 +6288,6 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai The coin spend has been used La dépense en pièces a été utilisée - - The new spend coin transaction did not verify - La nouvelle transaction de pièces n'a pas été vérifiée - - - The selected mint coin is an invalid coin - La pièce de monnaie sélectionnée est une pièce invalide - The transaction did not verify La transaction n'a pas été vérifiée @@ -4945,7 +6338,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Transaction amounts must be positive - Le montant de la transaction doit être posiftif + Le montant de la transaction doit être positif Transaction created successfully. @@ -5023,6 +6416,10 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Use the test network Utiliser le réseau test + + User Agent comment (%s) contains unsafe characters. + Le commentaire de l'Agent Utilisateur (%s) contient des caractères non sécurisés. + Username for JSON-RPC connections Nom d'utilisateur pour les connections JSON-RPC @@ -5043,11 +6440,6 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Verifying wallet... Vérification du portefeuille... - - Version 1 zPIV require a security level of 100 to successfully spend. - La version 1 de zPIV requiert un niveau de sécurité de 100 pour les dépenser. - - Wallet is locked. Le portefeuille est vérouillé. @@ -5110,7 +6502,7 @@ Soit monnayer des dénominations plus élevées (moins d'intrants sont nécessai Zerocoin options: - Options de Zerocoin: + Options Zerocoin: on startup diff --git a/src/qt/locale/pivx_hi_IN.ts b/src/qt/locale/pivx_hi_IN.ts index 64e66335c281..a33a31c6ef8e 100644 --- a/src/qt/locale/pivx_hi_IN.ts +++ b/src/qt/locale/pivx_hi_IN.ts @@ -13,6 +13,10 @@ Choose the address to receive coins with सिक्कों को प्राप्त करने के लिए पता चुनें + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + पहले इस्तेमाल किए गए पते को चुनें + AddressTableModel @@ -92,6 +96,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -156,6 +163,9 @@ मध्यम + + ProposalFrame + QObject @@ -209,6 +219,10 @@ Message संदेश + + Address + पता + SendCoinsDialog diff --git a/src/qt/locale/pivx_hr.ts b/src/qt/locale/pivx_hr.ts index ce47ee63bde9..356f1a06ba8f 100644 --- a/src/qt/locale/pivx_hr.ts +++ b/src/qt/locale/pivx_hr.ts @@ -269,6 +269,18 @@ Copy the current signature to the system clipboard Kopirajte trenutačni potpis u međuspremnik sustava + + Reset all fields + Resetiraj sva polja + + + The encrypted private key + Šifrirani privatni ključ + + + Decrypt the entered key using the passphrase + Dešifriraj uneseni ključ pomoću zaporke + Encrypt &Key Šifriranje &Ključ @@ -580,6 +592,10 @@ %1 behind. Scanning block %2 %1 iza. Skeniranje blokiranjem %2 + + Tor is <b>enabled</b>: %1 + Tor je <b> omogućen <b>: %1 + &File &Datoteka @@ -652,10 +668,34 @@ Encrypt and decrypt private keys using a passphrase Šifriranje i dešifriranje privatnih ključeva pomoću zaporke + + &MultiSend + &MultiSend + + + MultiSend Settings + MultiSend postavke + + + Open Wallet &Configuration File + Otvori novčanik i konfiguracijsku datoteku + + + Open Masternode configuration file + Otvori konfiguracijsku datoteku za Masternode + PIVX Core client PIVX Core klijent + + Importing blocks from disk... + Unos blokova s diska + + + Up to date + Ažurirano + Error Greška @@ -668,13 +708,41 @@ Information Informacija + + Sent transaction + Poslana transakcija + + + Incoming transaction + Nadolazeća tranksakcija + + + Active + Aktivan + + + Not Active + Neaktivan + BlockExplorer + + Back + Povratak + + + Forward + Naprijed + Address / Block / Transaction Adresa / Blok / Transakcija + + Search + Traži + ClientModel @@ -693,10 +761,42 @@ Priority: Prioritet: + + Fee: + Naknada: + + + After Fee: + Nakon naknade: + + + Change: + Ostatak: + + + (un)select all + (od)znači sve + + + Tree mode + Stablo prikaz + + + List mode + Popis prikaz + + + (1 locked) + (1 zaključan) + Amount Iznos + + Received with address + Primljeno s adresom + Type Tip @@ -713,6 +813,10 @@ Confirmed Potvrđeno + + Priority + Prioritet + Copy address Kopiraj adrese @@ -725,10 +829,66 @@ Copy amount Kopiraj iznos + + Copy transaction ID + Kopiraj ID transakcije + + + Lock unspent + Zaključaj neiskorišteno + + + Unlock unspent + Otključaj neiskorišteno + Copy quantity Kopiraj količinu + + Copy fee + Kopiraj naknadu + + + Copy after fee + Kopiraj nakon naknade + + + Copy change + Kopiraj naknadu + + + highest + Najviši + + + higher + viši + + + high + visok + + + medium-high + srednje-visoki + + + medium + Srednji + + + low + nizak + + + lower + niži + + + lowest + najniži + yes da @@ -741,13 +901,24 @@ (no label) (nema oznake) - + + (change) + (ostatak) + + EditAddressDialog FreespaceChecker + + GovernancePage + + 0 + 0 + + HelpMessageDialog @@ -776,6 +947,10 @@ Status Status + + Active + Aktivan + 0 0 @@ -859,10 +1034,22 @@ Priority: Prioritet: + + Fee: + Naknada: + no ne + + medium + Srednji + + + Change: + Ostatak: + Copy quantity Kopiraj količinu @@ -872,6 +1059,9 @@ Kopiraj iznos + + ProposalFrame + QObject @@ -886,6 +1076,10 @@ N/A N/A + + PIVX Core + PIVX Core + QRImageWidget @@ -963,6 +1157,10 @@ Copy amount Kopiraj iznos + + Copy address + Kopiraj adrese + ReceiveRequestDialog @@ -1013,6 +1211,10 @@ Message Poruka + + Address + Adresa + Amount Iznos @@ -1040,10 +1242,26 @@ Priority: Prioritet: + + medium + Srednji + + + Fee: + Naknada: + no ne + + After Fee: + Nakon naknade: + + + Change: + Ostatak: + 0 PIV 0 PIV @@ -1068,6 +1286,18 @@ Copy amount Kopiraj iznos + + Copy fee + Kopiraj naknadu + + + Copy after fee + Kopiraj nakon naknade + + + Copy change + Kopiraj naknadu + %1 to %2 %1 do %2 @@ -1291,6 +1521,10 @@ Copy amount Kopiraj iznos + + Copy transaction ID + Kopiraj ID transakcije + Comma separated file (*.csv) Comma separated file (*.csv) @@ -1361,13 +1595,77 @@ Information Informacija + + Options: + Mogućnosti: + + + Synchronization failed + Sinkronizacija neuspjela + + + Synchronization finished + Usklađivanje završeno + + + Synchronization pending... + Sinkronizacija je na čekanju... + + + Synchronizing budgets... + Usklađivanje proračuna... + + + This is experimental software. + Ovo je eksperimentalan softver. + + + Transaction Created + Transakcija stvorena + + + Transaction not valid. + Transakcija nije valjana. + + + Transaction too large for fee policy + Transakcija je prevelika za trenutnu naknadu + + + Transaction too large + Transakcija je prevelika + + + Unable to find transaction containing mint + Nije moguće pronaći transakciju koja sadrži novcic + Use the test network Koristi testnu mrežu + + Verifying blocks... + Provjera blokova... + + + Verifying wallet... + Provjera novčanika... + + + Wallet is locked. + Novčanik je zaključan. + + + Wallet options: + Opcije novčanika: + Warning Upozorenje + + Zerocoin options: + Zerocoin opcije: + \ No newline at end of file diff --git a/src/qt/locale/pivx_hr_HR.ts b/src/qt/locale/pivx_hr_HR.ts index 1f5927b3bb31..5e59d19b9fa1 100644 --- a/src/qt/locale/pivx_hr_HR.ts +++ b/src/qt/locale/pivx_hr_HR.ts @@ -251,7 +251,7 @@ Address: - Adresa: + Adresa: Enter a PIVX Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. @@ -608,10 +608,6 @@ &Command-line options Opcije naredbene linije - - Processed %n blocks of transaction history. - Obrađeno %n blokova povijesti transakcija.Obrađeno %n blokova povijesti transakcija.Obrađeno %n blokova povijesti transakcija. - Synchronizing additional data: %p% Usklađivanje dodatnih podataka: %p% @@ -736,10 +732,6 @@ PIVX Core client PIVIX Core Klijent - - %n active connection(s) to PIVX network - %n aktivne veze na PIVX mrežu%n aktivne veze na PIVX mrežu%n aktivne veze na PIVX mrežu - Synchronizing with network... Sinkronizacija s mrežom... @@ -760,26 +752,10 @@ Up to date Ažurirano - - %n hour(s) - %n sati%n sati%n sati - - - %n day(s) - %n dana%n dana%n dana - - - %n week(s) - %n tjedni%n tjedni%n tjedni - %1 and %2 %1 i %2 - - %n year(s) - %n godine%n godine%n godine - Catching up... Nadoknađivanje @@ -836,7 +812,7 @@ Višestruko slanje: %1 Active - Aktivno + Aktivno Not Active @@ -864,7 +840,7 @@ Višestruko slanje: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Novčanik je 1. šifriran 1. i trenutno 2. zaključan 2. - + BlockExplorer @@ -1224,6 +1200,17 @@ Višestruko slanje: %1 Ovdje nije moguće stvoriti direktorij za podatke. + + GovernancePage + + Form + Obrazac + + + 0 + 0 + + HelpMessageDialog @@ -1541,47 +1528,10 @@ MultiSend neće biti aktiviran dok ne kliknete Aktiviraj (no label) (bez oznake) - - The entered address: - - Unesena adresa: - - - is invalid. -Please check the address and try again. - je netočna. -Provjerite adresu i pokušajte ponovo. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Ukupna količina vašeg MultiSend vektora iznosi preko 100% vaše nagrade uloga - - Please Enter 1 - 100 for percent. Unesite 1 - 100 za postotak. - - Saved the MultiSend to memory, but failed saving properties to the database. - - Spremio je MultiSend u memoriju, ali nije spasio svojstva u bazi podataka. - - - MultiSend Vector - - MultiSend Vektor - - - - Removed - Uklonjeno - - - Could not locate address - - Nije moguće pronaći adresu - MultisigDialog @@ -2485,18 +2435,6 @@ zPIV su zreli kada imaju više od 20 potvrda I više od 2 mint od iste denominac 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Razina sigurnosti za Zerocoin transakcije. Više je bolje, ali treba više vremena i resursa. - - - Security Level: - Razina sigurnosti: - - - Security Level 1 - 100 (default: 42) - Razina sigurnosti 1 - 100 (zadano: 42) - Pay &To: Platiti: @@ -2772,14 +2710,6 @@ Promjena postotka (nije potrebno ponovno pokretanje): Please be patient... Pokretanje ResetMintZerocoin: ponovno skeniranje potpunog blockchain, to će trajati i do 30 minuta, ovisno o vašem hardveru. - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Potrošnja Zerocoina. -Zahtjevan izračun, možda će trebati nekoliko minuta ovisno o odabranoj razini sigurnosti i vašem hardveru. -Budite strpljivi ... - ) needed. Maximum allowed: @@ -2949,22 +2879,10 @@ Maksimalno dopušteno: to a newly generated (unused and therefore anonymous) local address <br /> na novo generiranu (neiskorištenu i stoga anonimnu) lokalnu adresu - - with Security Level - s razinom sigurnosti - Confirm send coins Potvrdite slanje novca - - Version 1 zPIV require a security level of 100 to successfully spend. - Verzija 1 zPIV zahtjeva sigurnosnu razinu 100 da se uspješno utroši. - - - Failed to spend zPIV - Neuspjelo trošenje zPIV - Failed to fetch mint associated with serial hash Neuspjelo dohvaćanje minta asociranog s serijskim hashom @@ -2982,11 +2900,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Spend Zerocoin failed with status = Utrošak Zerocoina nije uspjela s statusom = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialogPrivacyDialogPrivacyDialog - denomination: denominacija: @@ -3020,6 +2933,9 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou naknada: + + ProposalFrame + QObject @@ -3070,7 +2986,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3433,10 +3353,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Confirm resync Blockchain Potvrdite resync Blockchain - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Upotrijebite strelice gore i dolje za kretanje po povijesti, a Ctrl-L za brisanje zaslona. - Type <b>help</b> for an overview of available commands. Upišite pomoć za pregled dostupnih naredbi. @@ -3508,6 +3424,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional label to associate with the new receiving address. Dodatna oznaka za povezivanje s novom adresom primatelja. + + A&mount: + Količina: + 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 PIVX network. Dodatna poruka priložena zahtjevu za plaćanje, koji će se prikazati kada se zahtjev otvori. Napomena: poruka neće biti poslana s plaćanjem putem PIVX mreže. @@ -3532,10 +3452,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional amount to request. Leave this empty or zero to not request a specific amount. Neobavezna količina za zahtjev. Ostavite ovo prazno ili nulu da ne zatražite određeni iznos. - - &Amount: - Iznos: - &Request payment Zatraži plaćanje @@ -3580,6 +3496,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Copy amount Kopiraj iznos + + Copy address + Kopiraj adresu + ReceiveRequestDialog @@ -3651,6 +3571,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Message Poruka + + Address + Adresa + Amount Iznos @@ -3936,10 +3860,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou A fee %1 times higher than %2 per kB is considered an insanely high fee. Naknada %1 puta veća od %2 po kB smatra se nerazumljivo visokom naknadom. - - Estimated to begin confirmation within %n block(s). - Procijenjeno za početak potvrde u%n blokova.Procijenjeno za početak potvrde u%n blokova.Procijenjeno za početak potvrde u %n blokova. - The recipient address is not valid, please recheck. Adresa primatelja nije važeća, ponovo provjerite. @@ -4262,10 +4182,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou TransactionDesc - - Open for %n more block(s) - Otvori se za %n više blokovaOtvori se za %n više blokovaOtvori se za %n više blokova - Open until %1 Otvori dok %1 @@ -4326,10 +4242,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou , has not been successfully broadcast yet , još nije uspješno emitiran - - , broadcast through %n node(s) - , emitiraju se preko %n čvorova, emitiraju se preko %n čvorova, emitiraju se preko %n čvorova - Date Datum @@ -4370,10 +4282,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Credit Kredit - - matures in %n more block(s) - sazrijeva se u %n više blokovasazrijeva se u %n više blokovasazrijeva se u %n više blokova - not accepted nije prihvaćeno @@ -4473,10 +4381,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Address Adresa - - Open for %n more block(s) - Otvori se za %n više blokovaOtvori se za %n više blokovaOtvori se za %n više blokova - Open until %1 Otvori dok %1 @@ -4879,11 +4783,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Select/Deselect All Odaberite/poništi odabir za Sve - - Is Spendable - Je moguće utrošiti - - + pivx-core @@ -5371,6 +5271,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Error recovering public key. Pogreška prilikom vraćanja javnog ključa. + + Error writing zerocoinDB to disk + Greška u zapisivanju zerocoinDB na disk + Error Greška @@ -5682,10 +5586,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to create mint Nije uspjelo kovanje - - Failed to deserialize - Deserializiranje nije uspjelo - Failed to find Zerocoins in wallet.dat Neuspjelo pronalaženje Zerocoina u wallet.dat @@ -6126,14 +6026,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou The coin spend has been used Korištena je potrošnja novčića - - The new spend coin transaction did not verify - Nova transakcija potrošnje novca nije potvrđena - - - The selected mint coin is an invalid coin - Odabrano je kovanje novčića za nevažeći novčić - The transaction did not verify Transakcija nije potvrđena @@ -6282,10 +6174,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Verifying wallet... Provjera novčanika... - - Version 1 zPIV require a security level of 100 to successfully spend. - Verzija 1 zPIV zahtjeva sigurnosnu razinu 100 da se uspješno utroši. - Wallet %s resides outside data directory %s Novčanik %s nalazi se izvan direktorija podataka %s diff --git a/src/qt/locale/pivx_it.ts b/src/qt/locale/pivx_it.ts index 07e21a82c6a9..bdafa2405fac 100644 --- a/src/qt/locale/pivx_it.ts +++ b/src/qt/locale/pivx_it.ts @@ -608,10 +608,6 @@ &Command-line options Opzioni riga di &Comando - - Processed %n blocks of transaction history. - Elaborato 1 blocco dalla cronologia delle transazioniElaborati %n blocchi dalla cronologia delle transazioni. - Synchronizing additional data: %p% Sincronizzazione dati addizionali: %p% @@ -736,10 +732,6 @@ PIVX Core client PIVX Core - - %n active connection(s) to PIVX network - %n connessione attiva alla rete PIVIX%n connessioni attive alla rete PIVIX - Synchronizing with network... Sincronizzazione con la rete ... @@ -760,26 +752,10 @@ 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 - Last received block was generated %1 ago. L'ultimo blocco ricevuto è stato generato %1 fa. @@ -860,7 +836,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Il portafoglio è <b>crittografato</b> e attualmente <b>bloccato</b> - + BlockExplorer @@ -1212,6 +1188,17 @@ MultiSend: %1 Impossibile creare la cartella dati qui. + + GovernancePage + + Form + Modulo + + + 0 + 0 + + HelpMessageDialog @@ -1529,49 +1516,10 @@ MultiSend non verrà attivato a meno che tu non prema su Attiva (no label) (nessuna etichetta) - - The entered address: - - L'indirizzo immesso: - - - is invalid. -Please check the address and try again. - è invalido. -Per favore controlla l'indirizzo e riprova nuovamente. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - L'ammontare totale del tuo vettore MultiSend è superiore al 100% della tua ricompensa per lo stake - - Please Enter 1 - 100 for percent. Per favore inserisci 1 - 100 come percentuale. - - Saved the MultiSend to memory, but failed saving properties to the database. - - MultiSend è stato salvato con successo in memoria, ma il salvataggio delle proprietà nel database non è andato a buon fine. - - - - MultiSend Vector - - Vettore InvioMultiplo - - - - Removed - Eliminato - - - Could not locate address - - Impossibile trovare l'indirizzo - - MultisigDialog @@ -1875,7 +1823,7 @@ Se il conio automatico è attivato questa percentuale si stabilizzerà all'incir AutoMint is currently enabled and set to - AutoMint è attivo e impostato su + Conio automatico è attivo e impostato su To disable AutoMint add 'enablezeromint=0' in pivx.conf. @@ -2174,7 +2122,7 @@ Per cambiare la percentuale (riavvio non necessario): Fee: - Tassa: + Commissione: Dust: @@ -2192,6 +2140,10 @@ Per cambiare la percentuale (riavvio non necessario): Insufficient funds! Fondi insufficienti! + + medium + media + Amount After Fee: Importo al netto della commissione: @@ -2226,7 +2178,7 @@ Per cambiare la percentuale (riavvio non necessario): Confirm send coins - Converma invio monete + Conferma invio monete Sending successful, return code: @@ -2237,12 +2189,19 @@ Per cambiare la percentuale (riavvio non necessario): commissione + + ProposalFrame + QObject Amount Ammontare + + PIVX Core + PIVX Core + QRImageWidget @@ -2268,6 +2227,10 @@ Per cambiare la percentuale (riavvio non necessario): ReceiveCoinsDialog + + A&mount: + Q&uantità: + &Label: &Etichetta: @@ -2280,6 +2243,10 @@ Per cambiare la percentuale (riavvio non necessario): Copy amount Copia ammontare + + Copy address + Copia indirizzo + ReceiveRequestDialog @@ -2306,6 +2273,10 @@ Per cambiare la percentuale (riavvio non necessario): Label Etichetta + + Address + Indirizzo + Amount Ammontare @@ -2345,9 +2316,13 @@ Per cambiare la percentuale (riavvio non necessario): Priority: Priorità: + + medium + media + Fee: - Tassa: + Commissione: Dust: @@ -2359,7 +2334,7 @@ Per cambiare la percentuale (riavvio non necessario): After Fee: - Al netto della commissione: + Importo al netto della commissione: Change: @@ -2407,16 +2382,20 @@ Per cambiare la percentuale (riavvio non necessario): Copy fee - Copia commissioni + Copia commissione Copy after fee - Copia al netto della commissione + Copia importo al netto della commissione Copy bytes Copia byte + + Copy priority + Copia priorità + Copy dust Copia polvere diff --git a/src/qt/locale/pivx_ja.ts b/src/qt/locale/pivx_ja.ts index d9af29c21a49..7010c19a546e 100644 --- a/src/qt/locale/pivx_ja.ts +++ b/src/qt/locale/pivx_ja.ts @@ -144,6 +144,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -188,6 +191,9 @@ PrivacyDialog + + ProposalFrame + QObject @@ -209,6 +215,10 @@ RecentRequestsTableModel + + Address + アドレス + SendCoinsDialog diff --git a/src/qt/locale/pivx_ko_KR.ts b/src/qt/locale/pivx_ko_KR.ts index 92b37e2036f8..9ffe1f7dee10 100644 --- a/src/qt/locale/pivx_ko_KR.ts +++ b/src/qt/locale/pivx_ko_KR.ts @@ -608,10 +608,6 @@ &Command-line options &명령행 옵션 - - Processed %n blocks of transaction history. - %n 블록의 거래내역 확인됨 - Synchronizing additional data: %p% 추가 데이터 동기화: %p% @@ -736,10 +732,6 @@ PIVX Core client PIVX Core 클라이언트 - - %n active connection(s) to PIVX network - %n 개의 PIVX 네트웍에 연결됨 - Synchronizing with network... 네트워크 동기화중... @@ -760,26 +752,10 @@ Up to date 최신 - - %n hour(s) - %n 시간 - - - %n day(s) - %n 일 - - - %n week(s) - %n 주 - %1 and %2 %1 그리고 %2 - - %n year(s) - %n 년 - Catching up... 동기화 중... @@ -864,7 +840,7 @@ Address: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> 지갑은 <b>암호화</ b>되어 있으며 현재 <b>잠겨 있습니다</ b>. - + BlockExplorer @@ -1224,6 +1200,17 @@ Address: %4 여기에 디렉토리를 만들 수 없습니다. + + GovernancePage + + Form + Form + + + 0 + 0 + + HelpMessageDialog @@ -1541,50 +1528,10 @@ MultiSend will not be activated unless you have clicked Activate (no label) (라벨 없음) - - The entered address: - - 입력된 주소: - - - - is invalid. -Please check the address and try again. - 올바르지 않습니다. -주소를 확인하고 다시 시도해주세요. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - 다중전송 벡터의 총 금액이 스테이크 보상 금액의 100 % 이상입니다 - - Please Enter 1 - 100 for percent. 퍼센트로 1 - 100을 입력하십시오. - - Saved the MultiSend to memory, but failed saving properties to the database. - - MultiSend를 메모리에 저장했지만 데이터베이스에 대한 속성 저장에 실패했습니다. - - - - MultiSend Vector - - 다중전송 벡터 - - - - Removed - 제거됨 - - - Could not locate address - - 주소를 찾을 수 없습니다 - - MultisigDialog @@ -2484,18 +2431,6 @@ zPIV는 성명서가 20 개 이상 있고 명칭이 동일하지 않은 2 개 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - 제로코인 전송 시큐리티 레벨. 높을수록 좋지만, 시간과 많은 자원이 필요합니다. - - - Security Level: - 시큐리티 레벨: - - - Security Level 1 - 100 (default: 42) - 시큐리티 레벨 1 - 100 (기본값: 42) - Pay &To: 지불 &대상: @@ -2718,7 +2653,7 @@ To change the percentage (no restart required): Bytes: - Bytes: + 바이트: Insufficient funds! @@ -2726,11 +2661,11 @@ To change the percentage (no restart required): Coins automatically selected - 코인 자동으로 선택됨 + 자동으로 선택됩니다. medium - 중간 + 5 중간 Coin Control Features @@ -2773,14 +2708,6 @@ To change the percentage (no restart required): Please be patient... 제로코인 생성 초기화 진행중... : 전체 블록체인을 다시 검색합니다. 하드웨어에 따라 최대 30분이 걸릴수 있습니다. 기다려주세요... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - 제로코인 전송중입니다. -시큐리티 레벨과 여러분의 하드웨어에 따라 수 분이 걸립니다. -조금만 기다려주세요... ) needed. @@ -2952,22 +2879,10 @@ Maximum allowed: to a newly generated (unused and therefore anonymous) local address <br /> 새로 생성된 개인 지갑 주소(미사용된 익명의) <br /> 로 - - with Security Level - 시큐리티 레벨 - Confirm send coins 코인 전송 확인 - - Version 1 zPIV require a security level of 100 to successfully spend. - zPIV 버전 1은 성공적으로 보내기 위해서 100 시큐리티 레벨이 필요합니다. - - - Failed to spend zPIV - zPIV 전송 실패 - Failed to fetch mint associated with serial hash Failed to fetch mint associated with serial hash @@ -2985,11 +2900,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Spend Zerocoin failed with status = 제로코인 송금 실패 상태 = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialog - denomination: 디노미네이션: @@ -3023,6 +2933,9 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou 수수료: + + ProposalFrame + QObject @@ -3073,7 +2986,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3436,10 +3353,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Confirm resync Blockchain 블록체인 동기화를 다시 하시겠습니까? - - 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>를 입력하십시오. @@ -3511,6 +3424,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional label to associate with the new receiving address. 새로운 수신 주소와 연결할 선택적 라벨. + + A&mount: + 금&액: + 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 PIVX network. 요청이 열릴 때 표시되는 결제 요청에 첨부할 선택적 메세지 입니다. 참고: PIVX 네트워크를 통한 결제는 메세지가 전송되지 않습니다. @@ -3535,10 +3452,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional amount to request. Leave this empty or zero to not request a specific amount. 요청할 선택적 금액. 이 금액을 비워두거나 특정 금액을 요청하지 않으려면 0으로 두세요. - - &Amount: - &금액: - &Request payment &결제 요청 @@ -3583,6 +3496,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Copy amount 금액 복사 + + Copy address + 주소 복사 + ReceiveRequestDialog @@ -3616,7 +3533,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Address - 마스터노드 주소 + 주소 Amount @@ -3653,6 +3570,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Message 메세지 + + Address + 주소 + Amount 금액 @@ -3706,7 +3627,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou medium - 중간 + 5 중간 Fee: @@ -3936,10 +3857,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou A fee %1 times higher than %2 per kB is considered an insanely high fee. KB당 %1보다 %2배 많은 수수료는 너무 높은 수수료입니다. - - Estimated to begin confirmation within %n block(s). - %n 개의 블록 내에서 컨펌이 시작할 것으로 추정됨. - The recipient address is not valid, please recheck. 수신자 주소가 유효하지 않습니다. 다시 확인해주세요. @@ -4262,10 +4179,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou TransactionDesc - - Open for %n more block(s) - %n 블럭 더 열기 - Open until %1 %1까지 열기 @@ -4327,10 +4240,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou , has not been successfully broadcast yet , 아직 성공적으로 브로드캐스트되지 않았습니다 - - , broadcast through %n node(s) - , %n 노드를 통한 브로드캐스트 - Date 날짜 @@ -4371,10 +4280,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Credit 크레딧 - - matures in %n more block(s) - %n 블록안에 생성됨 - not accepted 허용되지 않음 @@ -4473,10 +4378,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Address 주소 - - Open for %n more block(s) - %n 블럭 더 열기 - Open until %1 %1까지 열기 @@ -4666,7 +4567,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Received with - 수신 됨 + 수신됨 Sent to @@ -4746,7 +4647,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Confirmed - 확정 + 확정됨 Watch-only @@ -4879,11 +4780,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Select/Deselect All 전체 선택 / 해제 - - Is Spendable - 전송가능한 코인수 - - + pivx-core @@ -5370,6 +5267,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Error recovering public key. 공개 키를 복구하는 중 오류가 발생했습니다. + + Error writing zerocoinDB to disk + 디스크에 zerocoinDB 쓰기 오류 + Error 에러 @@ -5406,6 +5307,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to listen on any port. Use -listen=0 if you want this. 어떠한 포트에서도 수신하는 것에 실패했습니다. 원하신다면 -listen=0 을 사용하십시오. + + Failed to parse host:port string + 호스트 : 포트 문자열을 구문 분석하지 못했습니다. + Failed to read block 블록을 받아오는데 실패했습니다. @@ -5682,10 +5587,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to create mint 생성 실패 - - Failed to deserialize - 디시리얼 실패 - Failed to find Zerocoins in wallet.dat wallet.dat 에서 제로코인을 인식 실패 @@ -6126,14 +6027,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou The coin spend has been used 전송이 이미 되었습니다. - - The new spend coin transaction did not verify - 신규로 전송된 거래가 확인되지 않았습니다. - - - The selected mint coin is an invalid coin - 선택한 생성 코인은 유효하지 않은 동전입니다. - The transaction did not verify 거래가 확인되지 않았습니다. @@ -6282,10 +6175,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Verifying wallet... 지갑 인증 중... - - Version 1 zPIV require a security level of 100 to successfully spend. - zPIV 버전 1은 성공적으로 보내기 위해서 100 시큐리티 레벨이 필요합니다. - Wallet %s resides outside data directory %s 지갑 %s 가 데이터 디렉토리 외부에 존재합니다 %s diff --git a/src/qt/locale/pivx_lt_LT.ts b/src/qt/locale/pivx_lt_LT.ts index b7bb7c43ab95..dec45ce7b6d0 100644 --- a/src/qt/locale/pivx_lt_LT.ts +++ b/src/qt/locale/pivx_lt_LT.ts @@ -608,10 +608,6 @@ &Command-line options &Komandinės eilutės parinktys - - Processed %n blocks of transaction history. - Apdorota %n operacijų istorijos blokų.Apdorota %n operacijų istorijos blokų.Apdorota %n operacijų istorijos blokų.Apdorota %n operacijų istorijos blokų. - Synchronizing additional data: %p% Sinchronizuojami papildomi duomenys: %p% @@ -736,10 +732,6 @@ PIVX Core client PIVX Core piniginė - - %n active connection(s) to PIVX network - %n aktyvių prisijungimų PIVX tinkle ()%n aktyvių prisijungimų PIVX tinkle ()%n aktyvių prisijungimų PIVX tinkle ()%n aktyvių prisijungimų PIVX tinkle () - Synchronizing with network... Sinchronizuojama su tinklu ... @@ -760,26 +752,10 @@ Up to date Atnaujinta - - %n hour(s) - %n valanda%n valandų%n valandų%n valandų - - - %n day(s) - %n diena%n dienų%n dienų%n dienų - - - %n week(s) - %n savaitė%n savaičių%n savaičių%n savaičių - %1 and %2 %1 ir %2 - - %n year(s) - %n metai%n metų%n metų%n metų - Catching up... Atnaujinama... @@ -864,7 +840,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Piniginė yra <b>užšifruota</b> ir šiuo metu <b>užrakinta</b> - + BlockExplorer @@ -1216,6 +1192,17 @@ MultiSend: %1 Sukurti duomenų katalogo čia negalima . + + GovernancePage + + Form + Forma + + + 0 + 0 + + HelpMessageDialog @@ -1533,44 +1520,10 @@ MultiSend nebus aktyvuotas, nebent paspausite "Įjungti" (no label) (nėra etiketės) - - The entered address: - - Įvestas adresas: - - - - is invalid. -Please check the address and try again. - yra netinkamas. -Patikrinkite adresą ir bandykite dar kartą. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Bendra MultiSend sąrašo suma yra didesnė nei 100% jūsų stake'inimo atlygio - - Please Enter 1 - 100 for percent. Įveskite 1-100 procentų - - MultiSend Vector - - MultiSend Sąrašas - - - - Removed - Pašalintas - - - Could not locate address - - Nepavyko rasti adreso - - MultisigDialog @@ -2293,14 +2246,6 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos to pačio nominalo 0 zPIV 0 zPIV - - Security Level: - Saugumo Lygmuo: - - - Security Level 1 - 100 (default: 42) - Saugumo Lygmuo 1 - 100 (numatytas: 42) - Pay &To: &Mokėti: @@ -2357,7 +2302,7 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos to pačio nominalo Unconfirmed: less than 20 confirmations Immature: confirmed, but less than 1 mint of the same denomination after it was minted Nepatvirtinta: mažiau nei 20 patvirtinimų -Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominalo po to, kai buvo konvertuota. +Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos to pačio nominalo po to, kai buvo konvertuotas. Denom. 1: @@ -2501,7 +2446,7 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal out of sync - ne sinchronizuotas + nesinchronizuotas Mint Status: Okay @@ -2623,14 +2568,6 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal to address į adresą - - with Security Level - su Saugumo Lygmeniu - - - Failed to spend zPIV - Nepavyko išleisti zPIV - serial: serija: @@ -2644,6 +2581,9 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal mokestis: + + ProposalFrame + QObject @@ -2686,6 +2626,10 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal N/A N/A + + PIVX Core + PIVX Core + QRImageWidget @@ -2840,12 +2784,12 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal ReceiveCoinsDialog - &Label: - &Etiketė: + A&mount: + S&uma: - &Amount: - &Suma: + &Label: + &Etiketė: &Request payment @@ -2883,6 +2827,10 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal Copy amount Kopijuoti sumą + + Copy address + Kopijuoti adresą + ReceiveRequestDialog @@ -2929,6 +2877,10 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal Message Žinutė + + Address + Adresas + Amount Suma @@ -3569,10 +3521,6 @@ Nesubrendusios: patvirtintos, bet mažiau nei 1 konvertacijos tos pačio nominal SwiftX options: SwiftX nustatymai: - - Failed to deserialize - Nepavyko deserializuoti - Failed to select a zerocoin Nepavyko pasirinkti zerocoin diff --git a/src/qt/locale/pivx_nl.ts b/src/qt/locale/pivx_nl.ts index f2877d92ddaa..663b105ff47e 100644 --- a/src/qt/locale/pivx_nl.ts +++ b/src/qt/locale/pivx_nl.ts @@ -610,7 +610,7 @@ Processed %n blocks of transaction history. - %n blokken aan transactiegeschiedenis verwerkt.%n blokken aan transactiegeschiedenis verwerkt. + %n blokken verwerkt van de transactiegeschiedenis%n blokken verwerkt van de transactiegeschiedenis Synchronizing additional data: %p% @@ -624,6 +624,10 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only Portemonnee is <b>versleuteld</b> en momenteel <b>geopend</b>enkel voor anonimisering en staking + + Tor is <b>enabled</b>: %1 + Tor is <b>enabled</b>: %1 + &File &Bestand @@ -738,7 +742,7 @@ %n active connection(s) to PIVX network - %n actieve verbindingen met het PIVX netwerk%n actieve connectie(s) naar PIVX netwerk + %n actieve verbinding(en) naar het PIVX netwerk%n actieve verbinding(en) naar het PIVX netwerk Synchronizing with network... @@ -760,13 +764,9 @@ Up to date Bijgewerkt - - %n hour(s) - %n uren%n uren - %n day(s) - %n day%n dagen + %n dagen%n dagen %n week(s) @@ -778,7 +778,7 @@ %n year(s) - %n year%n jaren + %n jaren%n jaren Catching up... @@ -864,7 +864,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Portemonnee is versleuteld </b>en momenteel <b> vergrendeld</b> - + BlockExplorer @@ -1224,6 +1224,17 @@ MultiSend: %1 Kan de data directory hier niet aanmaken. + + GovernancePage + + Form + Formulier + + + 0 + 0 + + HelpMessageDialog @@ -1542,48 +1553,74 @@ MultiSend zal niet worden geactiveerd tenzij je op Activeer hebt geklikt(geen label) - The entered address: - - Het ingevoerde adres: - + MultiSend Active for Stakes and Masternode Rewards + MultiSend Actief voor Stakes en Masternodebeloningen + + + MultiSend Active for Stakes + MultiSend Actief voor Stakes + + + MultiSend Active for Masternode Rewards + MultiSend Actief voor Masternodebeloningen - is invalid. + MultiSend Not Active + MultiSend Niet Actief + + + The entered address: %1 is invalid. Please check the address and try again. - is ongeldig. -Controleer het adres alsjeblieft en probeer het opnieuw. + Het ingevoerde adres: %1 is ongeldig. +Controleer het adres en probeer opnieuw. - The total amount of your MultiSend vector is over 100% of your stake reward - - De totale hoeveelheid van je MultiSend vector is meer dan 100% van je stake beloning - + The total amount of your MultiSend vector is over 100% of your stake reward + De totale hoeveelheid van je MultiSend vector is meer dan 100% van je inzet beloning - Please Enter 1 - 100 for percent. - Vul alsjeblieft 1 - 100 voor procent in. + Saved the MultiSend to memory, but failed saving properties to the database. + De MultiSend in het geheugen opgeslagen, maar mislukt om de eigenschappen op te slaan in de database. - Saved the MultiSend to memory, but failed saving properties to the database. - - De MultiSend in het geheugen opgeslagen, maar mislukt om de eigenschappen op te slaan in de database. - + MultiSend Vector + MultiSend Vector - MultiSend Vector - - MultiSend Vector - + Removed %1 + Verwijderd %1 - Removed - Verwijderd + Could not locate address + Kan het adres niet lokaliseren - Could not locate address - - Kan het adres niet lokaliseren - + Unable to activate MultiSend, check MultiSend vector + Onmogelijk om MultiSend te activeren, controleer MultiSend vector + + + MultiSend activated but writing settings to DB failed + MultiSend geactiveerd maar instellingen naar DB wegschrijven mislukt + + + MultiSend activated + MultiSend geactiveerd + + + First Address Not Valid + Eerste Adres Niet Gevalideerd + + + MultiSend deactivated but writing settings to DB failed + MultiSend gedeactiveerd maar instellingen naar DB wegschrijven mislukt + + + MultiSend deactivated + MultiSend gedeactiveerd + + + Please Enter 1 - 100 for percent. + Vul alsjeblieft 1 - 100 voor procent in. @@ -2043,6 +2080,14 @@ https://www.transifex.com/pivx-project/pivx-project-translations Hide empty balances Verberg lege saldi + + Hide orphan stakes in transaction lists + Verberg orphan stakes in transactielijsten + + + Hide orphan stakes + Verberg orphan stakes + 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's van derden (bijvoorbeeld een blok verkenner) die in het tabblad transacties verschijnen als contextmenu items. %s in de URL wordt vervangen door transactie hash. Meerdere URL's worden gescheiden door verticale balk |. @@ -2423,7 +2468,7 @@ Om AutoMint in te schakelend verander je 'enablezeromint=0' naar 'enablezeromint Amount: - Hoeveelheid: + Bedrag: Rescan the complete blockchain for Zerocoin mints and their meta-data. @@ -2485,18 +2530,6 @@ zPiv zijn volwassen wanneer zij meer dan 20 bevestigingen hebben EN meer dan 2 m 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Beveiligingsniveau voor Zerocoin transacties. Meer is beter, maar heeft meer tijd en middelen nodig. - - - Security Level: - Beveiligings niveau: - - - Security Level 1 - 100 (default: 42) - Beveiligingsniveau 1 - 100 (standaard: 42) - Pay &To: Betaal &Naar: @@ -2640,6 +2673,14 @@ Om het percentage te wijzigen (geen herstart vereist): 0 x 0 x + + Show zPIV denominations list + Toon zPIV denominatielijst + + + Show Denominations + Toon Denominaties + Denominations with value 5: Denominaties met waarde 5: @@ -2696,6 +2737,10 @@ Om het percentage te wijzigen (geen herstart vereist): Denom. with value 5000: Denom. met waarde 5000: + + Hide Denominations + Verberg Denominaties + Priority: Prioriteit: @@ -2706,11 +2751,11 @@ Om het percentage te wijzigen (geen herstart vereist): Fee: - Kost: + Fee: Dust: - Stof: + Dust: no @@ -2750,7 +2795,7 @@ Om het percentage te wijzigen (geen herstart vereist): Change: - Wijzig: + Wisselgeld: out of sync @@ -2762,24 +2807,16 @@ Om het percentage te wijzigen (geen herstart vereist): Copy quantity - Kopieer kwanititeit + Kopieer kwantiteit Copy amount - Kopieer hoeveelheid + Kopieer bedrag Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. Please be patient... Start ResetMintZerocoin: rescanning complete blockchain, dit zal tot 30 minuten nodig hebben, afhankelijk van uw hardware. -Wees alsjeblieft geduldig... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Zerocoin besteden. -Computationeel duur, zou mogelijk enkele minuten nodig hebben, afhankelijk van het geselecteerde beveiligingsniveau en je hardware. Wees alsjeblieft geduldig... @@ -2952,22 +2989,10 @@ Maximaal toegestaan: to a newly generated (unused and therefore anonymous) local address <br /> naar een nieuw gegenereerd (ongebruikt en dus anoniem) lokaal adres<br /> - - with Security Level - met beveiligingsniveau - Confirm send coins Bevestig verzending coins - - Version 1 zPIV require a security level of 100 to successfully spend. - Versie 1 zPIV vereist een beveiligingsniveau van 100 om succesvol te besteden. - - - Failed to spend zPIV - Mislukt om zPIV te besteden. - Failed to fetch mint associated with serial hash Mislukt om de mint op te halen geassocieerd met de seriële hash @@ -2989,7 +3014,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes PrivacyDialog Enter an amount of PIV to convert to zPIV - PrivacyDialoogPrivacyDialog + PrivacyDialogPrivacyDialog denomination: @@ -3024,11 +3049,14 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes kosten: + + ProposalFrame + QObject Amount - Hoeveelheid + Bedrag Enter a PIVX address (e.g. %1) @@ -3074,7 +3102,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3436,10 +3468,6 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Confirm resync Blockchain Bevestig hersynchronisering van Blockchain - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Gebruik omhoog en omlaag pijlen om de geschiedenis te navigeren, en<b>Ctrl-L</b>om scherm te wissen. - Type <b>help</b> for an overview of available commands. Type <b>help </b>voor een overzicht van beschikbare commando's. @@ -3511,6 +3539,18 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes An optional label to associate with the new receiving address. Een optioneel label om te associëren met het nieuwe ontvangstadres. + + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + Je ontvangstadres. Je kan deze kopieren en gebruiken om munten te ontvangen in deze portemonnee. Een nieuwe zal gegenereerd worden van zodra het gebruikt is. + + + &Address: + &Adres: + + + A&mount: + &Hoeveelheid: + 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 PIVX network. Een optioneel bericht dat aan het betalingsverzoek wordt gehecht, dat wordt weergegeven wanneer het verzoek wordt geopend. Opmerking: het bericht wordt niet verzonden met de betaling via het PIVX netwerk. @@ -3535,10 +3575,6 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes An optional amount to request. Leave this empty or zero to not request a specific amount. Een optioneel bedrag om te vragen. Laat dit leeg of vul een nul in om geen specifiek bedrag te vragen. - - &Amount: - &Hoeveelheid: - &Request payment &Verzoek betaling @@ -3551,6 +3587,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Clear Leegmaken + + Receiving Addresses + Ontvangstadressen + Requested payments history Betalingsverzoeken geschiedenis @@ -3581,7 +3621,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Copy amount - Kopieer hoeveelheid + Kopieer bedrag + + + Copy address + Kopieer adres @@ -3620,7 +3664,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Amount - Hoeveelheid + Bedrag Label @@ -3653,9 +3697,13 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Message Bericht + + Address + Adres + Amount - Hoeveelheid + Bedrag (no label) @@ -3698,7 +3746,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Amount: - Hoeveelheid: + Bedrag: Priority: @@ -3710,11 +3758,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Fee: - Kost: + Fee: Dust: - Stof: + Dust: no @@ -3722,11 +3770,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes After Fee: - Na de kost: + Na de fee: Change: - Wijzig: + Wisselgeld: If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. @@ -3870,19 +3918,19 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Copy quantity - Kopieer kwanititeit + Kopieer kwantiteit Copy amount - Kopieer hoeveelheid + Kopieer bedrag Copy fee - Kopiëer kost + Kopieer fee Copy after fee - Kopiëer na kost + Kopieer na fee Copy bytes @@ -4191,11 +4239,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Wallet unlock was cancelled. - Portemonnee-ontsleuteling is geannuleerd. + Portemonnee ontsleuteling is geannuleerd. Private key for the entered address is not available. - Geheime sleutel voor het ingevoerde adres is niet beschikbaar. + Privé sleutel voor het ingevoerde adres is niet beschikbaar. Message signing failed. @@ -4230,7 +4278,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes SplashScreen PIVX Core - PIVX Kern + PIVX Core Version %1 @@ -4436,7 +4484,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Amount - Hoeveelheid + Bedrag true @@ -4721,11 +4769,11 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Copy amount - Kopieer hoeveelheid + Kopieer bedrag Copy transaction ID - Kopier transactie ID + Kopieer transactie ID Edit label @@ -4735,6 +4783,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Show transaction details Bekijk transactiedetails + + Hide orphan stakes + Verberg orphan stakes + Export Transaction History Exporteer Transactiegeschiedenis @@ -4878,11 +4930,7 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Select/Deselect All Selecteer/Deselecteer Alles - - Is Spendable - Is Uitgeefbaar - - + pivx-core @@ -5189,6 +5237,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Always query for peer addresses via DNS lookup (default: %u) Vraag altijd naar peer adressen via DNS lookup (standaard: %u) + + Append comment to the user agent string + Voeg opmerking toe aan de user agent string + Attempt to recover private keys from a corrupt wallet.dat Poog om privé sleutels te herstellen van een corrupte wallet.dat @@ -5369,6 +5421,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Error recovering public key. Fout bij het herstellen van de publieke sleutel. + + Error writing zerocoinDB to disk + Fout bij het schrijven van zerocoinDB naar schijf + Error Error @@ -5405,6 +5461,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Failed to listen on any port. Use -listen=0 if you want this. Niet gelukt om te luisteren op een poort. Gebruik -listen=0 als je dit wilt. + + Failed to parse host:port string + Kan host: poortreeks niet parseren + Failed to read block Mislukt om block te lezen @@ -5681,10 +5741,6 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Failed to create mint Het is niet gelukt om mint te maken - - Failed to deserialize - Kan deserialiseren niet - Failed to find Zerocoins in wallet.dat Niet gelukt om Zerocoins in wallet.dat te vinden. @@ -6125,14 +6181,6 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes The coin spend has been used De muntuitgaven zijn gebruikt - - The new spend coin transaction did not verify - De nieuwe uitgave voor uitgavengeld heeft niet geverifieerd - - - The selected mint coin is an invalid coin - De geselecteerde muntmunt is een ongeldige munt - The transaction did not verify De transactie heeft niet geverifieerd @@ -6261,6 +6309,10 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Use the test network Gebruik het test netwerk + + User Agent comment (%s) contains unsafe characters. + User Agent opmerking (%s) bevat onveilige karakters. + Username for JSON-RPC connections Gebruikersnaam voor JSON-RPC verbindingen @@ -6281,10 +6333,6 @@ Ofwel het munten van hogere denominaties (dus minder invoer nodig) of het te bes Verifying wallet... Portemonnee verifiëren... - - Version 1 zPIV require a security level of 100 to successfully spend. - Versie 1 zPIV vereist een beveiligingsniveau van 100 om succesvol uit te geven. - Wallet %s resides outside data directory %s Portemonnee %s verblijft buiten de data directory %s diff --git a/src/qt/locale/pivx_pl.ts b/src/qt/locale/pivx_pl.ts index ad599fccd968..6bfbaaaba18f 100644 --- a/src/qt/locale/pivx_pl.ts +++ b/src/qt/locale/pivx_pl.ts @@ -11,11 +11,15 @@ &New - Nowy + &Nowy + + + Copy the currently selected address to the system clipboard + Skopiuj aktualnie wybrany adres do schowka systemowego &Copy - Kopiuj + &Kopiuj Delete the currently selected address from the list @@ -23,15 +27,19 @@ &Delete - Usuń + &Usuń + + + Export the data in the current tab to a file + Wyeksportuj dane z bieżącej karty do pliku &Export - Eksportuj + &Eksportuj C&lose - Zamknij + &Zamknij Choose the address to send coins to @@ -43,7 +51,7 @@ C&hoose - Wybierz + &Wybierz Sending addresses @@ -53,13 +61,21 @@ Receiving addresses Adres odbiorczy + + These are your PIVX addresses for sending payments. Always check the amount and the receiving address before sending coins. + To są twoje adresy PIVX do wysyłania płatności. Zawsze sprawdzaj kwotę i adres odbiorcy przed wysłaniem monet. + + + These are your PIVX addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + To są twoje adresy PIVX do otrzymywania płatności. Zaleca się użycie nowego adresu odbiorczego dla każdej transakcji. + &Copy Address &Kopiuj adres Copy &Label - Kopiuj &Zakładkę + Skopiuj &etykietę &Edit @@ -69,6 +85,10 @@ Export Address List Eksportuj listę adresów + + Comma separated file (*.csv) + Plik rozdzielony przecinkami (* .csv) + Exporting Failed Eksport nieudany @@ -82,7 +102,7 @@ AddressTableModel Label - Zakładka + Etykieta Address @@ -90,11 +110,15 @@ (no label) - (brak zakładki) + (brak etykiety) AskPassphraseDialog + + Passphrase Dialog + Okno dialogowe "Passphrase" + Enter passphrase Wpisz hasło @@ -107,9 +131,22 @@ 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 wyłączania trivial sendmoney po złamaniu konta OS. Nie zapewnia prawdziwego bezpieczeństwa. + + + For anonymization, automint, and staking only + tylko do anonimizacji, automint i staking + + + 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 do portfela. +Użyj hasła składającego się z dziesięciu lub więcej losowych znaków lub ośmiu lub więcej słów. + Encrypt wallet - Zakoduj portfel + Zaszyfruj portfel This operation needs your wallet passphrase to unlock the wallet. @@ -125,7 +162,7 @@ Decrypt wallet - Zakoduj portfel + Odszyfruj portfel Change passphrase @@ -137,27 +174,35 @@ Confirm wallet encryption - Potwierdź zakodowanie portfela + Potwierdź szyfrowanie portfela + + + PIVX will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your PIVs from being stolen by malware infecting your computer. + PIVX zamknie się teraz, aby zakończyć proces szyfrowania. Pamiętaj, że zaszyfrowanie portfela nie chroni w pełni Twoich PIV przed kradzieżą przez złośliwe oprogramowanie infekujące Twój komputer. Are you sure you wish to encrypt your wallet? - Czy na pewno chcesz zakodować portfel? + Czy na pewno chcesz zaszyfrować swój portfel? Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR PIV</b>! - Ostrzeżenie: Jeżeli zakodujesz portfel i stracisz do niego hasło , UTRACISZ WSZYSTKIE PIV! + Ostrzeżenie: Jeżeli zaszyfrujesz portfel i stracisz do niego hasło , <b>UTRACISZ WSZYSTKIE PIV</b>! Wallet encrypted - Portfel zakodowany + Portfel zaszyfrowany + + + 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 poprzednie kopie zapasowe plików portfela należy zastąpić nowo wygenerowanym, zaszyfrowanym plikiem portfela. Ze względów bezpieczeństwa poprzednie kopie niezaszyfrowanego pliku portfela staną się bezużyteczne, gdy tylko zaczniesz korzystać z nowego, zaszyfrowanego portfela. Wallet encryption failed - Kodowanie portfela nieudane + Szyfrowanie portfela nieudane Wallet encryption failed due to an internal error. Your wallet was not encrypted. - Kodowanie portfela nieudane z powodu wewnętrznego błędu. Twój portfel nie został zakodowany + Szyfrowanie portfela nieudane z powodu wewnętrznego błędu. Twój portfel nie został zaszyfrowany The supplied passphrases do not match. @@ -169,11 +214,11 @@ The passphrase entered for the wallet decryption was incorrect. - Podane hasło do zakodowania portfela jest błędne + Podane hasło do odszyfrowania portfela jest błędne Wallet decryption failed - Kodowanie portfela nieudane + Odszyfrowywanie portfela nie powiodło się Wallet passphrase was successfully changed. @@ -186,7 +231,15 @@ BanTableModel - + + IP/Netmask + Numer IP / Netmask + + + Banned Until + Zakazany do + + Bip38ToolDialog @@ -195,12 +248,20 @@ &BIP 38 Encrypt - Zakoduj BIP 38 + &Zaszyfruj BIP 38 Address: Adres: + + Enter a PIVX Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. + Wprowadź adres PIVX, który chcesz zaszyfrować za pomocą BIP 38. Wprowadź hasło w środkowym polu. Naciśnij przycisk szyfrowania, aby obliczyć zaszyfrowany klucz prywatny. + + + The PIVX address to encrypt + Adres PIVX do zaszyfrowania + Choose previously used address Wybierz poprzednio używany adres @@ -223,11 +284,31 @@ Encrypted Key: - Zakodowany klucz: + Zaszyfrowany klucz: + + + Copy the current signature to the system clipboard + Skopiuj bieżący podpis do schowka systemowego + + + Encrypt the private key for this PIVX address + Zaszyfruj klucz prywatny dla tego adresu PIVX + + + Reset all fields + Zresetuj wszystkie pola + + + The encrypted private key + Zaszyfrowany klucz prywatny + + + Decrypt the entered key using the passphrase + Odszyfruj wprowadzony klucz za pomocą hasła Encrypt &Key - Kodowanie &klucz + Zaszyfruj &klucz Clear &All @@ -235,16 +316,28 @@ &BIP 38 Decrypt - &BIP 38 Zakoduj + &BIP 38 odszyfruj + + + Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. + Wprowadź zaszyfrowany klucz prywatny BIP 38. Wprowadź hasło w środkowym polu. Kliknij przycisk Odszyfruj klucz, aby obliczyć klucz prywatny. Po odszyfrowaniu klucza kliknięcie "Importuj adres" spowoduje dodanie tego klucza prywatnego do portfela. + + + Decrypt &Key + Odszyfruj &klucz Decrypted Key: - Zakodowany klucz: + Odszyfrowany klucz: Import Address Adres importu + + Click "Decrypt Key" to compute key + Kliknij "Odszyfruj Klucz", aby obliczyć klucz + The entered passphrase is invalid. Podane hasło jest nieprawidłowe @@ -275,7 +368,7 @@ Failed to decrypt. - Błąd kodowania + Nie udało się odszyfrować. Please check the key and passphrase and try again. @@ -283,7 +376,7 @@ Data Not Valid. - Dane nieprawdziwe + Dane są nieprawidłowe. Please try again. @@ -314,7 +407,7 @@ Node - Node + Węzeł &Overview @@ -340,9 +433,21 @@ Browse transaction history Przeglądaj historię transakcji + + Privacy Actions for zPIV + Prywatne Akcje zPIV + + + &Governance + &Zarządzanie + + + Show Proposals + Pokaż propozycje + E&xit - Wyjdź + &Wyjdź Quit application @@ -358,7 +463,7 @@ &Options... - &Opcje + &Opcje... &Show / Hide @@ -370,7 +475,7 @@ &Encrypt Wallet... - &Zakoduj portfel + &Zaszyfruj portfel ... Encrypt the private keys that belong to your wallet @@ -378,15 +483,15 @@ &Backup Wallet... - &Kopia zapasowa portfela + &zapis kopii zapasowa portfela... Backup wallet to another location - &Kopia zapasowa portfela z innej lokacji + Kopia zapasowa portfela z innej lokacji &Change Passphrase... - &Zmień hasło + &Zmiana hasła... Change the passphrase used for wallet encryption @@ -394,7 +499,7 @@ &Unlock Wallet... - &Odblokuj portfel + &Odblokowanie portfela Unlock wallet @@ -406,11 +511,11 @@ Sign &message... - &Zatwierdź wiadomość + Zatwierdźanie &wiadomości... &Verify message... - &Zweryfikuj wiadomość + &Zweryfikuje wiadomość... &Information @@ -430,7 +535,7 @@ &Network Monitor - Monitor sieci + &Monitor sieci Show network monitor @@ -446,7 +551,7 @@ Wallet &Repair - Portfel &Napraw + Napraw &Portfel Show wallet repair options @@ -466,7 +571,7 @@ &Sending addresses... - &Adres wysyłki + &Adres wysyłki... Show the list of used sending addresses and labels @@ -474,12 +579,36 @@ &Receiving addresses... - &Adres odbiorczy + &Adresy odbiorcze Show the list of used receiving addresses and labels Pokaż listę używanych adresów odbiorczych i zakładek + + &Multisignature creation... + &Tworzenie multisygnatur... + + + Create a new multisignature address and add it to this wallet + Utwórz nowy adres multisignature i dodaj go do tego portfela + + + &Multisignature spending... + &Wydawanie multisignature ... + + + Spend from a multisignature address + Wydaj z adresu multisignature + + + &Multisignature signing... + &Zatwierdzanie multisygnatur + + + Sign with a multisignature address + Zatwierdź używając adresu multisignature + Open &URI... Otwórz &URL @@ -488,10 +617,27 @@ &Command-line options &Opcje Command-line + + Processed %n blocks of transaction history. + Przetworzono %n blok historii transakcji.Przetworzono %n bloków historii transakcji.Przetworzono %n bloków historii transakcji.Przetworzono %n bloków historii transakcji. + Synchronizing additional data: %p% Synchronizacja dodatkowych danych %p% + + %1 behind. Scanning block %2 + %1 za. Skanowanie bloku %2f + + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only + Portfel jest +odszyfrowany i aktualnie odblokowany tylko do anonimizacji i stakingu + + + Tor is <b>enabled</b>: %1 + Tor włączony %1 + &File &Plik @@ -508,9 +654,13 @@ &Help &Pomoc + + Tabs toolbar + Pasek narzędzi + PIVX Core - &Rdzeń PIVX + Rdzeń PIVX Send coins to a PIVX address @@ -520,6 +670,10 @@ Request payments (generates QR codes and pivx: URIs) Zarządaj płatności (generuje kod QR i pivx:URI) + + &Privacy + &Prywatność + &Masternodes &Masternodes @@ -530,11 +684,11 @@ &About PIVX Core - &O rdzeniu bitcoina + &O PIVX Core Show information about PIVX Core - Pokaż informacje o rdzeniu bitcoina + Pokaż informacje o PIVX Core Modify configuration options for PIVX @@ -570,7 +724,11 @@ Open &Masternode Configuration File - Otwórz &Plik konfiguracji Masternode + Otwórz Plik konfiguracji &Masternode + + + Open Masternode configuration file + Otwórz plik konfiguracyjny Masternode Open a PIVX: URI or payment request @@ -590,7 +748,11 @@ PIVX Core client - Rdzeń PIVX klient + PIVX Core klient + + + %n active connection(s) to PIVX network + %n aktywne połączenie z siecią PIVX()%n aktywnych połączeń z siecią PIVX()%n aktywnych połączeń z siecią PIVX()%n aktywnych połączeń z siecią PIVX() Synchronizing with network... @@ -612,13 +774,37 @@ Up to date Zaktualizowany + + %n hour(s) + %n godzinę%n godzin%n godzin%n godzin + + + %n day(s) + %n dzień%n dni%n dni%n dni + + + %n week(s) + %n tydzień%n tygodni%n tygodni%n tygodni + + + %1 and %2 + %1 i %2 + + + %n year(s) + %n rok%n lat%n lat%n lat + + + Catching up... + Nadrabiam... + Last received block was generated %1 ago. - Ostatni wygenerowany blok %1 wcześniej + Ostatni otrzymany blok został wygenerowany %1 temu. Transactions after this will not yet be visible. - Transakcji po nim nie będą jeszcze widoczne + Transakcje późniejsze nie będą jeszcze widoczne Error @@ -676,13 +862,25 @@ MultiWysyłka: %1 Staking nieaktywny MultiWysyłlka: %1 + + AutoMint is currently enabled and set to + AutoMint jest obecnie włączony i ustawiony na + + + AutoMint is disabled + AutoMint jest wyłączony + Wallet is <b>encrypted</b> and currently <b>unlocked</b> - Portfel jest 1Zakodowany1 i obecnie 2Odblokowany2 + Portfel jest zaszyfrowany i obecnie odblokowany Wallet is <b>encrypted</b> and currently <b>locked</b> - Portfel jest 1Zakodowany1 i obecnie 2Zablokowany2 + Portfel jest zaszyfrowany i obecnie zablokowany + + + A fatal error occurred. PIVX can no longer continue safely and will quit. + Wystąpił błąd krytyczny. PIVX nie może już działać bezpiecznie i zakończy działanie. @@ -691,6 +889,14 @@ MultiWysyłlka: %1 Blockchain Explorer Eksplorer blockchain + + Back + Do tyłu + + + Forward + Do przodu + Address / Block / Transaction Adres / Blok / Transakcja @@ -703,15 +909,35 @@ MultiWysyłlka: %1 TextLabel TekstZakładka - + + Not all transactions will be shown. To view all transactions you need to set txindex=1 in the configuration file (pivx.conf). + Nie wszystkie transakcje zostaną pokazane. Aby wyświetlić wszystkie transakcje, musisz ustawić txindex=1 w pliku konfiguracyjnym (pivx.conf). + + ClientModel - + + Total: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Unknown: %5) + Razem: %1 (IPv4: %2 / IPv6: %3 / Tor: %4 / Nieznane: %5) + + + Network Alert + Alert sieciowy + + CoinControlDialog + + Quantity: + Ilość: + + + Bytes: + Bajty: + Amount: - Liczba: + Ilość: Priority: @@ -725,17 +951,25 @@ MultiWysyłlka: %1 Coin Selection Wybór monet + + Dust: + Pył: + After Fee: Po opłacie: Change: - Zmiana: + Reszta: (un)select all - (Od)znacz wszystkie + (od)/zaznacz wszystkie + + + toggle lock state + przełączać stan blokady Tree mode @@ -751,7 +985,7 @@ MultiWysyłlka: %1 Amount - Liczba + Ilość Received with label @@ -761,6 +995,10 @@ MultiWysyłlka: %1 Received with address Otrzymano z adresem + + Type + Typ + Date Data @@ -793,6 +1031,14 @@ MultiWysyłlka: %1 Copy transaction ID Kopiuj ID transakcji + + Lock unspent + Zablokuj niewydane + + + Unlock unspent + Odblokuj niewydane + Copy quantity Kopiuj ilość @@ -805,17 +1051,25 @@ MultiWysyłlka: %1 Copy after fee Kopiuj po opłacie + + Copy bytes + Skopiuj bajty + Copy priority Kopiuj priorytet + + Copy dust + Kopiuj Pył + Copy change - Kopiuj zmianę + Kopiuj resztę Please switch to "List mode" to use this function. - Proszę przełączyć na :Tryb listy" by użyć tej funkcji + Proszę przełączyć na "Tryb listy" by użyć tej funkcji highest @@ -877,6 +1131,10 @@ MultiWysyłlka: %1 This means a fee of at least %1 per kB is required. To znaczy, że opłata co najmniej %1 za kB jest wymagana + + Can vary +/- 1 byte per input. + Zmienia się +/- 1 byte + Transactions with higher priority are more likely to get included into a block. Transakcje o wyższym priorytecie ma większe prawdopodobieństwo wdrożenia do bloku @@ -885,26 +1143,221 @@ MultiWysyłlka: %1 This label turns red, if the priority is smaller than "medium". Ta zakładka staje się czerwona, jeżeli priorytet jest mniejszy niż "średni" + + This label turns red, if any recipient receives an amount smaller than %1. + Ta etykieta zmienia kolor na czerwony, jeśli odbiorca otrzymuje mniej niż %1. + + + Can vary +/- %1 upiv per input. + Zmienia się +/- %1 upiv + (no label) - (brak zakładki) + (brak etykiety) + + + change from %1 (%2) + Reszta z %1 (%2) + + + (change) + (reszta) - + EditAddressDialog - + + Edit Address + Edytuj adres + + + &Label + &Etykieta + + + The label associated with this address list entry + Etykieta powiązana z tą pozycją listy adresowej + + + &Address + &Adres + + + The address associated with this address list entry. This can only be modified for sending addresses. + Adres powiązany z tą pozycją listy adresowej. To można zmodyfikować tylko dla adresu docelowego. + + + New receiving address + Nowy adres odbiorczy + + + New sending address + Nowy adres wysyłania + + + Edit receiving address + Nowy adres wysyłania + + + Edit sending address + Edytuj adres wysyłania + + + The entered address "%1" is not a valid PIVX address. + Wprowadzony adres "%1" nie jest prawidłowym adresem PIVX. + + + The entered address "%1" is already in the address book. + Wprowadzony adres "%1" jest już w książce adresowej. + + + Could not unlock wallet. + Nie można odblokować portfela. + + + New key generation failed. + Nie udało się wygenerować nowego klucza. + + FreespaceChecker - + + A new data directory will be created. + Zostanie utworzony nowy katalog danych. + + + name + Nazwa + + + Directory already exists. Add %1 if you intend to create a new directory here. + Katalog już istnieje. Dodaj %1, jeśli zamierzasz utworzyć tutaj nowy katalog. + + + Path already exists, and is not a directory. + Ścieżka już istnieje i nie jest katalogiem. + + + Cannot create data directory here. + Nie można tutaj utworzyć katalogu danych. + + + + GovernancePage + + Form + Forma + + + GOVERNANCE + ZARZĄDZANIE + + + Update Proposals + Aktualizuj propozycje + + + Next super block: + Następny super blok: + + + 0 + 0 + + + Blocks to next super block: + Bloków to następnego super bloku: + + + Days to budget payout (estimate): + Dni do wypłaty (szacunkowe): + + + Allotted budget: + Budżet przydzielony: + + + Budget left: + Pozostały budżet: + + + Masternodes count: + Liczniki masternodes: + + HelpMessageDialog + + version + Wersja + PIVX Core - &Rdzeń PIVX + Rdzeń PIVX + + + (%1-bit) + (%1-bit) + + + About PIVX Core + O PIVX Core + + + Command-line options + Opcje wiersza poleceń + + + Usage: + użycie + + + command-line options + Opcje wiersza poleceń + + + UI Options: + UI opcje + + + Choose data directory on startup (default: %u) + Wybierz katalog danych podczas uruchamiania (domyślnie: %u ) + + + Show splash screen on startup (default: %u) + Pokaż ekran powitalny podczas uruchamiania (domyślnie: %u ) + + + Set language, for example "de_DE" (default: system locale) + Ustaw język, na przykład "pl_PL" (domyślnie: ustawienia regionalne) + + + Start minimized + Start zminimalizowany - + + Set SSL root certificates for payment request (default: -system-) + Ustaw certyfikaty SSL dla żądania zapłaty (domyślnie: -system-) + + Intro + + Welcome + Zapraszamy + + + Welcome to PIVX Core. + Zapraszamy do PIVX Core + + + As this is the first time the program is launched, you can choose where PIVX Core will store its data. + Ponieważ program jest uruchamiany po raz pierwszy, możesz wybrać miejsce, w którym PIVX Core będzie przechowywać swoje dane. + + + PIVX Core will download and store a copy of the PIVX 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. + PIVX Core pobierze i zapisze kopię łańcucha bloków PIVX. Przynajmniej %1 GB danych zostanie zapisanych w tym katalogu, a jego liczba będzie rosnąć z czasem. Portfel zostanie również zapisany w tym katalogu. + Use the default data directory Użyj domyślnej ścieżki danych @@ -915,7 +1368,11 @@ MultiWysyłlka: %1 PIVX Core - &Rdzeń PIVX + Rdzeń PIVX + + + Error: Specified data directory "%1" cannot be created. + Błąd: nie można utworzyć określonego katalogu danych "%1". Error @@ -923,15 +1380,31 @@ MultiWysyłlka: %1 %1 GB of free space available - %1GB dostępnej pamięci + %1 GB dostępnej pamięci + + + (of %1 GB needed) + ( %1 GB potrzebne) - + MasternodeList Form Forma + + MASTERNODES + MASTERNODES + + + Note: Status of your masternodes in local wallet can potentially be slightly incorrect.<br />Always wait for wallet to sync additional data and then double check from another node<br />if your node should be running but you still see "MISSING" in "Status" field. + Uwaga: Stan twoich masternodów w lokalnym portfelu może być nieco niepoprawny. Zawsze czekaj, aż portfel zsynchronizuje dodatkowe dane, a następnie sprawdź ponownie od innego węzła, w którym powinien działać twój węzeł, ale nadal widzisz komunikat "BRAK" w polu "Stan". + + + Alias + Alias + Address Adres @@ -950,7 +1423,7 @@ MultiWysyłlka: %1 Last Seen (UTC) - Ustatnio widziano (UTC) + Ostatnio widziano (UTC) Pubkey @@ -958,7 +1431,7 @@ MultiWysyłlka: %1 S&tart alias - Start alias + S&tart alias Start &all @@ -970,11 +1443,11 @@ MultiWysyłlka: %1 &Update status - &Status aktualizacji + &Stan aktualizacji Status will be updated automatically in (sec): - Status będzie uaktualniany automatycznie (w sekundach) + Stan będzie uaktualniany automatycznie (w sekundach) 0 @@ -986,7 +1459,7 @@ MultiWysyłlka: %1 Confirm masternode start - Potwierdź rozpoczęcie Masternode + Potwierdź start Masternode Are you sure you want to start masternode %1? @@ -1014,7 +1487,7 @@ MultiWysyłlka: %1 Are you sure you want to start MISSING masternodes? - Czy jesteś pewien, że chcesz rozpocząć BRAKUJĄCE masternode? + Czy jesteś pewien, że chcesz wystartować BRAKUJĄCE masternode? @@ -1035,6 +1508,17 @@ MultiWysyłlka: %1 Enter Address to Send to Wprowadź adres do wysłania + + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. +To Add: enter percentage to give and PIVX address to add to the MultiSend vector. +To Delete: Enter address to delete and press delete. +MultiSend will not be activated unless you have clicked Activate + MultiSend pozwala na automatyczne przesłanie do 100% swojej nagrody za staking lub masternoda na listę innych adresów PIVX po osiągnięciu dojrzałości. Aby dodać: wpisz procent i adres PIVX, żeby dodać do wektora MultiSend. Aby usunąć: Enter adres do usunięcia i naciśnij Usuń. MultiSend nie zostanie aktywowany, dopóki nie klikniesz Aktywuj + + + Add to MultiSend Vector + Dodaj do MultiSend Vector + Add Dodaj @@ -1061,64 +1545,206 @@ MultiWysyłlka: %1 Percentage: - Procent + Procent: + + + Address to send portion of stake to + Adres do wysłania stake. Address: Adres: - Delete - Usuń + Label: + Etykieta: - Activate MultiSend + Enter a label for this address to add it to your address book + Wpisz etykietę dla tego adresu, aby dodać ją do swojej książki adresowej + + + Delete Address From MultiSend Vector + Usuń adres z MultiSend Vector + + + Delete + Usuń + + + Activate MultiSend Aktywuj MultiWysyłkę Activate Aktywuj + + View MultiSend Vector + Zobacz wektor MultiSend + View MultiSend Podgląd MultiWysyłki + + Send For Stakes + Wyślij do Stakes + + + Send For Masternode Rewards + Wyślij do Masternode Rewards + (no label) - (brak zakładki) + (brak etykiety) - The entered address: - - Wprowadzony adres: - + MultiSend Active for Stakes and Masternode Rewards + MultiSend Aktywny dla Stakes i Masternode + + + MultiSend Active for Stakes + MultiSend Aktywny dla Stakes + + + MultiSend Active for Masternode Rewards + MultiSend Aktywny dla Masternode + + + MultiSend Not Active + MultiSend nieaktywny - is invalid. + The entered address: %1 is invalid. Please check the address and try again. - jest nieprawidłowy -Proszę sprawdzić adres i spróbować ponownie + Wprowadzony adres: %1 jest nieprawidłowy. +Sprawdź adres i spróbuj ponownie. - Please Enter 1 - 100 for percent. - Proszę wprowadzić 1-100 procent + The total amount of your MultiSend vector is over 100% of your stake reward + Łączna kwota Twojego wektora MultiSend to ponad 100% nagrody za stake - Removed - Usunięto + Saved the MultiSend to memory, but failed saving properties to the database. + Zapisano MultiSend w pamięci, ale nie powiodło się zapisywanie właściwości w bazie danych. - Could not locate address - - Nie można zlokalizować adresu - + MultiSend Vector + MultiSend Vector + + + Removed %1 + Usunięto %1 + + + Could not locate address + Nie można znaleźć adresu + + + Unable to activate MultiSend, check MultiSend vector + Nie można aktywować MultiSend, sprawdź wektor MultiSend + + + Need to select to send on stake and/or masternode rewards + Musisz wybrać, aby wysłać nagrody za stake i / lub masternode + + + MultiSend activated but writing settings to DB failed + Aktywowano funkcję MultiSend, ale zapisanie ustawień do bazy danych nie powiodło się + + + MultiSend activated + Aktywowano funkcję MultiSend + + + First Address Not Valid + Pierwszy adres nie jest prawidłowy + + + MultiSend deactivated but writing settings to DB failed + Funkcja MultiSend została wyłączona, ale zapisywanie ustawień do bazy danych nie powiodło się + + + MultiSend deactivated + Funkcja MultiSend została wyłączona + + + Please Enter 1 - 100 for percent. + Proszę wprowadzić 1-100 procent MultisigDialog + + Multisignature Address Interactions + Interakcje między adresami Multisignature + + + Create MultiSignature &Address + Utwórz adres MultiSignature + + + How many people must sign to verify a transaction + Ile osób musi podpisać, aby zweryfikować transakcję + + + Enter the minimum number of signatures required to sign transactions + Wprowadź minimalną liczbę podpisów wymaganych do podpisywania transakcji + + + Address Label: + Etykieta adresu: + + + Add another address that could sign to verify a transaction from the multisig address. + Dodaj kolejny adres, który może podpisać, aby zweryfikować transakcję z adresu multisig. + + + &Add Address / Key + &Dodaj adres / klucz + + + Local addresses or public keys that can sign: + Adres lokalny lub klucz publiczny, który może podpisać: + + + Create a new multisig address + Utwórz nowy adres multisig + + + C&reate + U&twórz + Status: - Status: + Stan: + + + Use below to quickly import an address by its redeem. Don't forget to add a label before clicking import! +Keep in mind, the wallet will rescan the blockchain to find transactions containing the new address. +Please be patient after clicking import. + Użyj, aby szybko zaimportować adres przez jego redeem. Nie zapomnij dodać etykiety przed kliknięciem przycisku importuj! Pamiętaj, że portfel przeszuka blockchain, aby znaleźć transakcje zawierające nowy adres. Po kliknięciu importu należy zachować cierpliwość. + + + &Import Redeem + &Importuj Redeem + + + &Create MultiSignature Tx + &Utwórz MultiSignature Tx + + + Inputs: + Wejścia: + + + Coin Control + Kontrola monet + + + Quantity Selected: + Wybrana ilość: 0 @@ -1126,11 +1752,103 @@ Proszę sprawdzić adres i spróbować ponownie Amount: - Liczba: + Ilość: + + + Add an input to fund the outputs + Dodaj dane wejściowe żeby znaleźć wyniki + + + Add a Raw Input + Dodaj Raw Input + + + Address / Amount: + Adres / kwota: + + + Add destinations to send PIV to + Dodaj miejsca docelowe, żeby wysłać PIV do + + + Add &Destination + &Dodaj cel + + + Create a transaction object using the given inputs to the given outputs + Utwórz obiekt transakcji, dopasowując dane wejściowe do danych wyników + + + Cr&eate + U&twórz + + + &Sign MultiSignature Tx + &Zarejestruj MultiSignature Tx + + + Transaction Hex: + Transakcja Hex: + + + Sign the transaction from this wallet or from provided private keys + Podpisuj transakcję z tego portfela lub z dostarczonych kluczy prywatnych + + + S&ign + &Podpis + + + <html><head/><body><p>DISABLED until transaction has been signed enough times.</p></body></html> + <html><head/><body><p>Nieaktywny, dopóki transakcja nie zostanie podpisana wystarczająco dużo razy.</p></body></html> + + + Co&mmit + &angażować + + + Add private keys to sign the transaction with + Dodaj klucze prywatne, aby podpisać transakcję + + + Add Private &Key + &Dodaj klucze prywatne + + + Sign with only private keys (Not Recommened) + Zaloguj się, używając tylko kluczy prywatnych (Niezalecane) + + + Invalid Tx Hash. + Nieprawidłowy Tx Hash + + + Vout position must be positive. + Pozycja Vout musi być dodatnia. + + + Maximum possible addresses reached. (15) + Osiągnięto maksymalne możliwą liczbę adresów. (15) + + + Vout Position: + Pozycja Vout + + + Amount: + Ilość: + + + Maximum (15) + Maximum (15) - + ObfuscationConfig + + Configure Obfuscation + Skonfiguruj Obfuskację + Basic Privacy Podstawowa prywatność @@ -1147,18 +1865,74 @@ Proszę sprawdzić adres i spróbować ponownie Please select a privacy level. Proszę wybrać poziom prywatności - + + Use 2 separate masternodes to mix funds up to 10000 PIV + Użyj 2 oddzielnych masternodów, aby wymieszać fundusze od 10000 PIV + + + Use 8 separate masternodes to mix funds up to 10000 PIV + Użyj 8 oddzielnych masternodów, aby wymieszać fundusze od 10000 PIV + + + Use 16 separate masternodes + Użyj 16 oddzielnych masternode + + + This option is the quickest and will cost about ~0.025 PIV to anonymize 10000 PIV + Ta opcja jest najszybsza, najmniej bezpieczna i kosztuje około 0,025 PIV, aby anonimizować 10000 PIV + + + This option is moderately fast and will cost about 0.05 PIV to anonymize 10000 PIV + Ta opcja jest wolniejsza, bezpieczniejsza i kosztuje około 0,05 PIV, aby anonimizować 10000 PIV + + + This is the slowest and most secure option. Using maximum anonymity will cost + Jest to najwolniejsza i najbezpieczniejsza opcja. Korzystanie z maksymalnej anonimowości będzie kosztować + + + 0.1 PIV per 10000 PIV you anonymize. + anonimizujesz 10000 PIV za 0,1 PIV + + + Obfuscation Configuration + Skonfiguruj Zaciemnianie + + + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening PIVX's configuration screen. + Zaciemnianie zostało z powodzeniem ustawione na podstawową wartość (%1 i 2 rundy). Możesz to zmienić w dowolnym momencie, otwierając ekran konfiguracji PIVX. + + + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening PIVX's configuration screen. + Zaciemnianie zostało z powodzeniem ustawiona na wysoką wartość (%1 i 8 rund). Możesz to zmienić w dowolnym momencie, otwierając ekran konfiguracji PIVX. + + + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening PIVX's configuration screen. + Zaciemnianie zostało z powodzeniem ustawione na makszmalną wartość (%1 i 16 rund). Możesz to zmienić w dowolnym momencie, otwierając ekran konfiguracji PIVX. + + OpenURIDialog Open URI Otwórz URI + + Open payment request from URI or file + Otwórz prośbę o płatność z URI lub pliku + URI: URI: - + + Select payment request file + Wybierz plik żądania płatności + + + Select payment request file to open + Wybierz plik żądania płatności, aby otworzyć + + OptionsDialog @@ -1171,15 +1945,31 @@ Proszę sprawdzić adres i spróbować ponownie Size of &database cache - Rozmiar &bazy danych cache + &Rozmiar bazy danych cache MB MB + + Number of script &verification threads + Liczba wątków skryptowych i weryfikacyjnych + + + (0 = auto, <0 = leave that many cores free) + (0 = auto, <0 = zostaw za darmo) + W&allet - Portfel + &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 wydawanie niepotwierdzonych reszt, reszta z transakcji nie może być użyta, dopóki transakcja nie uzyska co najmniej jednego potwierdzenia. Ma to również wpływ na sposób obliczania salda. + + + Automatically open the PIVX client port on the router. This only works when your router supports UPnP and it is enabled. + Automatycznie otwórz port klienta PIVX na routerze. Działa to tylko wtedy, gdy twój router obsługuje UPnP i jest włączony. Accept connections from outside @@ -1189,6 +1979,14 @@ Proszę sprawdzić adres i spróbować ponownie Allow incoming connections Zezwól na przychodzące połączenia + + &Connect through SOCKS5 proxy (default proxy): + &Połącz przez serwer proxy SOCKS5 (domyślne proxy): + + + Expert + Ekspert + Automatically start PIVX after logging in to the system. Automatycznie uruchom PIVX po zalogowaniu do systemu @@ -1205,10 +2003,18 @@ Proszę sprawdzić adres i spróbować ponownie Enable coin &control features Włącz cechy kontroli monety + + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. + Pokaż dodatkową tabelę wszystkich twoich masternodów w pierwszej szpalcie<br/> i wszystkich masternodów w sieci w drugiej + Show Masternodes Tab Pokaż Masternode Tab + + &Spend unconfirmed change + &Wydaj niepotwierdzoną resztę + &Network &Sieć @@ -1223,6 +2029,46 @@ https://www.transifex.com/pivx-project/pivx-project-translations Brakuje języka bądź nieukończona pełnego tłumaczenia? Pomóż w tłumaczeniu tutaj: https://www.transifex.com/pivx-project/pivx-project-translations + + Map port using &UPnP + Mapuj port za pomocą &UPnP + + + Enable automatic minting of PIV units to zPIV + Włącz automatyczny minting PIV do zPIV + + + Enable zPIV Automint + Włącz zPIV Automint + + + Enable automatic zPIV minting from specific addresses + Włącz automatyczne wybijanie zPIV-ów z określonych adresów + + + Enable Automint Addresses + Włącz adresy Automint + + + Percentage of incoming PIV which get automatically converted to zPIV via Zerocoin Protocol (min: 10%) + Procent PIV, które są automatycznie konwertowane na zPIV za pomocą protokołu Zerocoin (min: 10%) + + + Percentage of autominted zPIV + Procent automint zPIV + + + Wait with automatic conversion to Zerocoin until enough PIV for this denomination is available + Zaczekaj z automatyczną konwersją na Zerocoin, aż będzie dostępna wystarczająca wartość PIV dla tego nominału + + + Preferred Automint zPIV Denomination + Preferowane nominały Automint zPIV + + + Stake split threshold: + Próg podziału stawki -stake- : + Connect to the PIVX network through a SOCKS5 proxy. Połącz z siecią PIVX poprzez SOCKS5 proxy. @@ -1247,9 +2093,25 @@ https://www.transifex.com/pivx-project/pivx-project-translations &Window &Okno + + Show only a tray icon after minimizing the window. + Pokaż tylko ikonkę po zminimalizowaniu okna. + + + &Minimize to the tray instead of the taskbar + &Zminimalizuj do tray 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. + Zminimalizuj zamiast wychodzić z aplikacji, gdy okno jest zamknięte. Po włączeniu tej opcji aplikacja zostanie zamknięta dopiero po wybraniu opcji Zakończ w menu. + + + M&inimize on close + &Zminimalizuj przy zamknięciu + &Display - &Pokaz + &Pokaż User Interface &language: @@ -1271,6 +2133,30 @@ https://www.transifex.com/pivx-project/pivx-project-translations Decimal digits Liczby dziesiętne + + Hide empty balances + Ukryj puste saldo + + + Hide orphan stakes in transaction lists + Ukryj osierocone stawki w liście tranzakcji + + + Hide orphan stakes + Ukryj osierocone stakes + + + 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 |. + Zewnętrzne adresy URL (np. Eksplorator bloków), które pojawiają się na karcie transakcji jako elementy menu kontekstowego. %s w adresie URL jest zastąpione hashem transakcji. Wielokrotne URL są oddzielone pionową linią |. + + + Third party transaction URLs + Adresy URL transakcji stron trzecich + + + Active command-line options that override above options: + Aktywne opcje wiersza polecenia, które zastępują powyższe opcje: + Reset all client options to default. Zresetuj wszystkie ustawienia by przywrócić ustawienia domyślne @@ -1287,6 +2173,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations &Cancel &Anuluj + + Any + jakikolwiek + default domyślny @@ -1315,7 +2205,15 @@ https://www.transifex.com/pivx-project/pivx-project-translations The supplied proxy address is invalid. Podany adres proxy jest nieprawidłowy - + + The supplied proxy port is invalid. + Podany port proxy jest nieprawidłowy. + + + The supplied proxy settings are invalid. + Podane ustawienia proxy są nieprawidłowe. + + OverviewPage @@ -1330,78 +2228,372 @@ https://www.transifex.com/pivx-project/pivx-project-translations Your current spendable balance Twój aktualny balans do wysłania + + Total Balance, including all unavailable coins. + Saldo całkowite, w tym wszystkie niedostępne monety. + + + PIV Balance + PIV Saldo + Pending: W trakcie realizacji: + + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + Łącznie transakcji, które jeszcze nie zostały potwierdzone, i jeszcze nie wliczają się do salda do wydania + Immature: Niedojrzały - Total: - Całość: + Staked or masternode rewards that has not yet matured + Nagrody za Stake lub masternode, które nie zostały jeszcze potwierdzone - Current total balance in watch-only addresses - Obecny całkowity bilans w adresach tylko do obejrzenia + Current locked balance in watch-only addresses + Aktualne zablokowane saldo na testowych adresach - Watch-only: - Tylko do obejrzenia + Your current PIVX balance, unconfirmed and immature transactions included + Twoje bieżące saldo PIVX, niepotwierdzone transakcje zostały uwzględnione - Spendable: - Możliwy do wysłania: + zPIV Balance + zPIV Saldo - Recent transactions - Ostatnie transakcje + Mature: more than 20 confirmation and more than 1 mint of the same denomination after it was minted. +These zPIV are spendable. + Dojrzałe: ponad 20 potwierdzeń i więcej niż 1 mint o tym samym nominale po jej wybiciu. +Te zPIV można wydać - out of sync - Brak synchronizacji + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Niepotwierdzone: mniej niż 20 potwierdzeń +Niedojrzały: potwierdzony, ale mniej niż 1 mint o tym samym nominale po wybiciu - - - PaymentServer - Payment request error - BŁĄD żądania płatności + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + Wyświetlane informacje mogą być nieaktualne. Twój portfel automatycznie synchronizuje się z siecią PIVX po nawiązaniu połączenia, ale ten proces jeszcze się nie zakończył. - Payment request has expired. - Żadanie płatności straciło ważność + OVERVIEW + PRZEGLĄD - Payment request is not initialized. - Żądanie płatności nie zainicjowane + Combined Balance (including unconfirmed and immature coins) + Saldo połączone (w tym niepotwierdzone i niedojrzałe monety) - - - PeerTableModel - Version - Wersja + Combined Balance + Połączone saldo - Ping Time - Czas PinguCzas pingu + Unconfirmed transactions to watch-only addresses + Niepotwierdzone transakcje na adresy testowe - - - PrivacyDialog - 0 + Staked or masternode rewards in watch-only addresses that has not yet matured + Nagrody za Stake lub masternode w adresach testowych, które jeszcze nie zostały dojrzałe + + + Total: + Całość: + + + Current total balance in watch-only addresses + Obecny całkowity bilans w adresach tylko do obejrzenia + + + Watch-only: + Watch-only: + + + Your current balance in watch-only addresses + Twoje bieżące saldo na adresach testowych + + + Spendable: + Możliwy do wysłania: + + + Locked PIV or Masternode collaterals. These are excluded from zPIV minting. + Zablokowane PIV lub Masternode. Są one wyłączone zPIV minting + + + Locked: + Zablokowany: + + + Unconfirmed: + Niepotwierdzone: + + + Your current zPIV balance, unconfirmed and immature zPIV included. + Twoje obecne saldo zPIV, niepotwierdzone i niedojrzałe zPIV włącznie. + + + Recent transactions + Ostatnie transakcje + + + out of sync + Brak synchronizacji + + + Current percentage of zPIV. +If AutoMint is enabled this percentage will settle around the configured AutoMint percentage (default = 10%). + + Aktualny procent zPIV. +Jeśli włączona jest funkcja AutoMint, procent ten ustabilizuje się wokół skonfigurowanej wartości AutoMint (domyślnie = 10%). + + + + AutoMint is currently enabled and set to + AutoMint jest obecnie włączony i ustawiony na + + + To disable AutoMint add 'enablezeromint=0' in pivx.conf. + Aby wyłączyć AutoMint, dodaj "enablezeromint = 0" w pliku pivx.conf. + + + AutoMint is currently disabled. +To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1' in pivx.conf + Funkcja AutoMint jest obecnie wyłączona. +Aby włączyć AutoMint zmień "enablezeromint = 0" na "enablezeromint = 1" w pliku pivx.conf + + + + PaymentServer + + Payment request error + BŁĄD żądania płatności + + + URI handling + Obsługa URI + + + Payment request fetch URL is invalid: %1 + Adres URL żądania zapłaty jest nieprawidłowy: %1 + + + Payment request file handling + Obsługa plików żądań płatności + + + Invalid payment address %1 + Nieprawidłowy adres płatności %1 + + + Cannot start pivx: click-to-pay handler + Nie można uruchomić pivx: click-to-pay handler + + + URI cannot be parsed! This can be caused by an invalid PIVX address or malformed URI parameters. + Nie można przeanalizować identyfikatora URI! Może to być spowodowane nieprawidłowym adresem PIVX lub nieprawidłowymi parametrami URI. + + + Payment request file cannot be read! This can be caused by an invalid payment request file. + Plik żądania płatności nie może zostać odczytany! Przyczyną może być niepoprawny plik żądania płatności. + + + Payment request rejected + Żądanie płatności odrzucone + + + Payment request network doesn't match client network. + Sieć żądań płatności nie jest zgodna z siecią klienta. + + + Payment request has expired. + Żadanie płatności straciło ważność + + + Payment request is not initialized. + Żądanie płatności nie zainicjowane + + + Unverified payment requests to custom payment scripts are unsupported. + Niezweryfikowane żądania płatności dotyczące niestandardowych skryptów płatności są nieobsługiwane. + + + Requested payment amount of %1 is too small (considered dust). + Żądana kwota płatności %1 jest za mała (za pył). + + + Refund from %1 + Zwrot %1 + + + Payment request %1 is too large (%2 bytes, allowed %3 bytes). + Żądanie płatności %1 jest za duże ( %2 bajty, dozwolone %3 bajty). + + + Payment request DoS protection + Wniosek o płatność Ochrona DoS + + + Error communicating with %1: %2 + Błąd komunikacji z %1: %2 + + + Payment request cannot be parsed! + Żądania płatności nie można przeanalizować! + + + Bad response from server %1 + Zła odpowiedź z serwera %1 + + + Network request error + Błąd żądania sieci + + + Payment acknowledged + Płatność potwierdzona + + + + PeerTableModel + + Address/Hostname + adres / nazwa hosta + + + Version + Wersja + + + Ping Time + Czas Pingu + + + + PrivacyDialog + + Zerocoin Actions: + Działania Zerocoin: + + + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. + Wyświetlane informacje mogą być nieaktualne. Twój portfel automatycznie synchronizuje się z siecią PIVX po nawiązaniu połączenia, ale ten proces jeszcze się nie zakończył. + + + Mint Zerocoin + Mint Zerocoin + + + 0 0 + + zPIV + zPIV + + + Available for minting are coins which are confirmed and not locked or Masternode collaterals. + Do minting dostępne są monety, które są potwierdzone i niezablokowane dla Masternode. + + + Available for Minting: + Dostępne dla Minting: + + + 0.000 000 00 PIV + 0.000 000 00 PIV + + + Reset Zerocoin Wallet DB. Deletes transactions that did not make it into the blockchain. + Zresetuj DB portfela Zerocoin. Usuwa transakcje, które nie zostały wprowadzone do łańcucha blokowego. + Reset Resetuj + + Coin Control... + Kontrola monet ... + + + Quantity: + Ilość: + Amount: - Liczba: + Ilość: + + + Rescan the complete blockchain for Zerocoin mints and their meta-data. + Ponownie przeszukaj cały blockchain dla Zerocoin, mint i ich meta-danych. + + + ReScan + skanuje ponownie + + + Status and/or Mesages from the last Mint Action. + Status i / lub wiadomości z ostatniej akcji mint. + + + PRIVACY + PRYWATNOŚĆ + + + Enter an amount of Piv to convert to zPIV + Wprowadź ilość Piv, aby przekonwertować na zPIV + + + zPIV Control + Kontrola zPIV + + + zPIV Selected: + Wybrano zPIV: + + + Quantity Selected: + Wybrana ilość: + + + Spend Zerocoin. Without 'Pay To:' address creates payments to yourself. + Wydaj Zerocoin. Bez "Płać do:" tworzy płatności dla siebie. + + + Spend Zerocoin + Wydaj Zerocoin + + + Available (mature and spendable) zPIV for spending + Dostępne (starsze i dostępne) zPIV do wydania + + + Available Balance: + Dostępne saldo: + + + Available (mature and spendable) zPIV for spending + +zPIV are mature when they have more than 20 confirmations AND more than 2 mints of the same denomination after them were minted + Dostępne (starsze i dostępne) zPIV do wydania + +zPIV są dojrzałe, gdy mają więcej niż 20 potwierdzeń I więcej niż 2 mints tego samego nominału które po nich zostały wybite + + + 0 zPIV + 0 zPIV + + + Pay &To: + &Zapłać + + + The PIVX address to send the payment to. Creates local payment to yourself when empty. + Adres PIVX do wysłania płatności do. Tworzy lokalną płatność dla siebie, gdy jest pusta. Choose previously used address @@ -1420,626 +2612,3302 @@ https://www.transifex.com/pivx-project/pivx-project-translations Alt+P - Priority: - Priorytet: + &Label: + &Etykieta - TextLabel - TekstZakładka + Enter a label for this address to add it to the list of used addresses + Wprowadź etykietę dla tego adresu, aby dodać ją do listy używanych adresów - Fee: - Opłata: + A&mount: + &Ilość: - no - nie + Convert Change to Zerocoin (might cost additional fees) + Konwertuj resztę na Zerocoin (może to kosztować dodatkowe opłaty) - medium - średni + If checked, the wallet tries to minimize the returning change instead of minimizing the number of spent denominations. + Jeśli jest zaznaczone, portfel próbuje zminimalizować powracającą resztę, zamiast minimalizować liczbę zużytych nominałów. - Change: - Zmiana: + Minimize Change + Minimalizuj resztę - out of sync - Brak synchronizacji + Information about the available Zerocoin funds. + Informacje o dostępnych funduszach Zerocoin. - Copy quantity - Kopiuj ilość + Zerocoin Stats: + Zerocoin Stats: - Copy amount - Kopiuj liczbę + Total Balance including unconfirmed and immature zPIV + Łączne saldo razem z niepotwierdzonym i niedojrzałym zPIV - - - QObject - Amount - Liczba + Total Zerocoin Balance: + Total Balans Zerocoin: - Enter a PIVX address (e.g. %1) - Wprowadź adres PIVX (np. %1) + Denominations with value 1: + Nominały o wartości 1: - %1 d - %1 d + Denom. with value 1: + Nominały o wartości 1: - %1 h - %1 g + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Niepotwierdzone: mniej niż 20 potwierdzeń +Niedojrzały: potwierdzony, ale mniej niż 1 mint o tym samym nominale po wybiciu - %1 m - %1 m + Show the current status of automatic zPIV minting. + +To change the status (restart required): +- enable: add 'enablezeromint=1' to pivx.conf +- disable: add 'enablezeromint=0' to pivx.conf + +To change the percentage (no restart required): +- menu Settings->Options->Percentage of autominted zPIV + + + Pokaż aktualny status automatycznego mint zPIV. + +Aby zmienić status (wymagany restart): +- włącz: dodaj "enablezeromint = 1" do pliku pivx.conf +- wyłącz: dodaj "enablezeromint = 0" do pliku pivx.conf + +Aby zmienić procent (bez ponownego uruchamiania): +- menu Ustawienia-> Opcje-> Procent autominted zPIV + + - %1 s - %1 s + AutoMint Status + AutoMint Stan - NETWORK - Sieć + Global Supply: + Globalny zapas: - UNKNOWN - NIEZNANY + Denom. 1: + Nominały 1: - None - Brak + Denom. 5: + Nominały 5: - N/A - N/A + Denom. 10: + Nominały 10: - %1 ms - %1 ms + Denom. 50: + Nominały 50: - - - QRImageWidget - &Save Image... - &Zapisz obrazek + Denom. 100: + Nominały 100: - &Copy Image - &Kopiuj obrazek + Denom. 500: + Nominały 500: - Save QR Code - Zapisz kod QR + Denom. 1000: + Nominały 1000: - PNG Image (*.png) - Obrazek PNG (*.png) + Denom. 5000: + Nominały 5000: - - - RPCConsole - Tools window - Okno narzędzi + 0 x + 0 x - &Information - &Informacje + Show zPIV denominations list + Pokaż listę jednostek zPIV - General - Generalne + Show Denominations + Pokaż jednostki - Name - Nazwa + Denominations with value 5: + Nominały o wartości 5: + + + Denom. with value 5: + Nominały o wartości 5: + + + Denominations with value 10: + Nominały o wartości 10: + + + Denom. with value 10: + Nominały o wartości 10: + + + Denominations with value 50: + Nominały o wartości 50: + + + Denom. with value 50: + Nominały o wartości 50: + + + Denominations with value 100: + Nominały o wartości 100: + + + Denom. with value 100: + Nominały o wartości 100: + + + Denominations with value 500: + Nominały o wartości 500: + + + Denom. with value 500: + Nominały o wartości 500: + + + Denominations with value 1000: + Nominały o wartości 1000: + + + Denom. with value 1000: + Nominały o wartości 1000: + + + Denominations with value 5000: + Nominały o wartości 5000: + + + Denom. with value 5000: + Nominały o wartości 5000: + + + Hide Denominations + Ukryj jednostki + + + Priority: + Priorytet: + + + TextLabel + TekstZakładka + + + Fee: + Opłata: + + + Dust: + Pył: + + + no + nie + + + Bytes: + Bajty: + + + Insufficient funds! + Niewystarczające środki! + + + Coins automatically selected + Monety automatycznie wybrane + + + medium + średni + + + Coin Control Features + Funkcje kontroli monet + + + If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. + Jeśli jest aktywowany, ale adres reszty jest pusty lub nieprawidłowy, reszta zostanie wysłana na nowo wygenerowany adres. + + + Custom change address + Standardowy adres reszty + + + Amount After Fee: + Kwota po opłacie: + + + Change: + Reszta: + + + out of sync + Brak synchronizacji + + + Mint Status: Okay + Mint Stan: Ok + + + Copy quantity + Kopiuj ilość + + + Copy amount + Kopiuj liczbę + + + Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. +Please be patient... + Uruchamianie ResetMintZerocoin: ponowne skanowanie kompletnego blockchaina, to będzie wymagać do 30 minut w zależności od sprzętu. +Proszę być cierpliwym... + + + ) needed. +Maximum allowed: + ) potrzebne. +Maksymalna dozwolona: + + + zPIV Spend #: + Wydaj zPIV #: + + + zPIV Mint + zPIV Mint + + + <b>enabled</b>. + <b>włączony</b>. + + + <b>disabled</b>. + <b>wyłączony</b>. + + + Configured target percentage: <b> + Skonfigurowana wartość procentowa:<b> + + + zPIV is currently disabled due to maintenance. + zPIV jest obecnie wyłączony z powodu konserwacji. + + + zPIV is currently undergoing maintenance. + zPIV jest obecnie w trakcie konserwacji. + + + Denom. with value <b>1</b>: + Nominały o wartości <b> 1 </b> : + + + Denom. with value <b>5</b>: + Nominały o wartości<b> 5 </b> : + + + Denom. with value <b>10</b>: + Nominały o wartości<b> 10</b> : + + + Denom. with value <b>50</b>: + Nominały o wartości<b> 50</b> : + + + Denom. with value <b>100</b>: + Nominały o wartości<b> 100</b> : + + + Denom. with value <b>500</b>: + Nominały o wartości <b>500</b> : + + + Denom. with value <b>1000</b>: + Nominały o wartości <b>1000</b> : + + + Denom. with value <b>5000</b>: + Nominały o wartości <b>5000</b> : + + + AutoMint Status: + AutoMint Stan: + + + Denom. <b>1</b>: + Nominały <b>1</b> : + + + Denom. <b>5</b>: + Nominały 1 :<b>5</b> : + + + Denom. <b>10</b>: + Nominały <b>10</b> : + + + Denom. <b>50</b>: + Nominały <b>50</b> : + + + Denom. <b>100</b>: + Nominały <b>100</b> : + + + Denom. <b>500</b>: + Nominały <b>500</b> : + + + Denom. <b>1000</b>: + Nominały <b>1000</b> : + + + Denom. <b>5000</b>: + Nominały <b>5000</b> : + + + Error: Your wallet is locked. Please enter the wallet passphrase first. + Błąd: Twój portfel jest zablokowany. Najpierw wpisz hasło do portfela. + + + Message: Enter an amount > 0. + Wiadomość: wprowadź kwotę > 0. + + + Minting + Minting + + + Successfully minted + Pomyślnie minted -wybite- + + + zPIV in + zPIV w + + + sec. Used denominations: + + sec. Używane nominały: + + + + Duration: + Trwanie: + + + sec. + + sec. + + + + Starting ResetSpentZerocoin: + Uruchamianie ResetSpentZerocoin: + + + No 'Pay To' address provided, creating local payment + Nie podano adresu "Zapłać do", tworząc płatność lokalną + + + Invalid Pivx Address + Nieprawidłowy adres Pivx + + + Invalid Send Amount + Nieprawidłowa kwota wysyłania + + + Confirm additional Fees + Potwierdź dodatkowe opłaty + + + Are you sure you want to send?<br /><br /> + Czy na pewno chcesz wysłać?<br /><br /> + + + to address + na adres + + + to a newly generated (unused and therefore anonymous) local address <br /> + do nowo wygenerowanego (nieużywanego, a tym samym anonimowego) adresu lokalnego<br /> + + + Confirm send coins + Potwierdź wysyłanie monet + + + Failed to fetch mint associated with serial hash + Nie udało się pobrać mint powiązanej z hashem szeregowym + + + Too much inputs ( + Za dużo wejść ( + + + +Either mint higher denominations (so fewer inputs are needed) or reduce the amount to spend. + +Albo wybierz wyższe nominały (potrzeba mniej wejść) albo zmniejsz kwotę do wydania. + + + Spend Zerocoin failed with status = + Wydawanie Zerocoin nie powiodło się ze stanem = + + + PrivacyDialog + Enter an amount of PIV to convert to zPIV + PrivacyDialogPrivacyDialogPrivacyDialogPrivacyDialog + + + denomination: + Nominały + + + Spending Zerocoin. +Computationally expensive, might need several minutes depending on your hardware. +Please be patient... + Wydawanie Zerocoinów. +Kosztowne obliczeniowo może wymagać kilku minut w zależności od sprzętu. +Proszę być cierpliwym... + + + serial: + serial: + + + Spend is 1 of : + Wydane 1 z : + + + value out: + wartość wyjśćowa: + + + address: + adres + + + Sending successful, return code: + Wysyłanie pomyślne, kod powrotu: + + + txid: + txid: + + + fee: + opłata: + + + + ProposalFrame + + Open proposal page in browser + Otwórz stronę propozycji w przeglądarce + + + remaining payment(s). + pozostałe płatności.() + + + Yes: + Tak: + + + Abstain: + Wstrzymać się: + + + No: + Nie: + + + A proposal URL can be used for phishing, scams and computer viruses. Open this link only if you trust the following URL. + + Adres URL propozycji może być używany do phishingu, oszustw i wirusów komputerowych. Otwórz ten link tylko wtedy, gdy ufasz poniższemu adresowi URL. + + + + Open link + Otwórz link + + + Copy link + Kopiuj link + + + Wallet Locked + Portfel zablokowany + + + You must unlock your wallet to vote. + Aby głosować, musisz odblokować portfel. + + + Do you want to vote %1 on + Czy chcesz głosować na %1 + + + using all your masternodes? + używać wszystkich swoich masternodów? + + + Proposal Hash: + Hash propozycji: + + + Proposal URL: + URL propozycji: + + + Confirm Vote + Potwierdź głosowanie + + + Vote Results + Wyniki głosowania + + + + QObject + + Amount + Ilość + + + Enter a PIVX address (e.g. %1) + Wprowadź adres PIVX (np. %1) + + + %1 d + %1 d + + + %1 h + %1 g + + + %1 m + %1 m + + + %1 s + %1 s + + + NETWORK + Sieć + + + BLOOM + KWIAT + + + ZK_BLOOM + ZK_BLOOM + + + UNKNOWN + NIEZNANY + + + None + Brak + + + N/A + N/A + + + %1 ms + %1 ms + + + PIVX Core + PIVX Core + + + Error: Specified data directory "%1" does not exist. + Błąd: Określony katalog danych „%1” nie istnieje. + + + Error: Cannot parse configuration file: %1. Only use key=value syntax. + Błąd: Nie można przeanalizować pliku konfiguracyjnego: %1. Używaj tylko składni klucz=wartość. + + + Error: Invalid combination of -regtest and -testnet. + Błąd: nieprawidłowa kombinacja -regtest i -testnet. + + + Error reading masternode configuration file: %1 + Błąd odczytu pliku konfiguracyjnego masternode: %1 + + + PIVX Core didn't yet exit safely... + PIVX Core nie zamkną się jeszcze bezpiecznie ... + + + + QRImageWidget + + &Save Image... + &Zapisz obrazek + + + &Copy Image + &Kopiuj obrazek + + + Save QR Code + Zapisz kod QR + + + PNG Image (*.png) + Obrazek PNG (*.png) + + + + RPCConsole + + Tools window + Okno narzędzi + + + &Information + &Informacje + + + General + Generalne + + + Name + Nazwa + + + Client name + Nazwa klienta + + + N/A + N/A + + + Number of connections + Liczba połączeń + + + &Open + &Otwórz + + + Startup time + Czas startupu + + + Network + Sieć + + + Last block time + Czas ostatniego bloku + + + Debug log file + Debuguj plik log + + + Using OpenSSL version + Używanie wersji OpenSSL + + + Build date + Data zbudowania + + + Current number of blocks + Bieżąca liczba bloków + + + Client version + Wersja clienta + + + Using BerkeleyDB version + Używanie wersji BerkeleyDB + + + Block chain + Łańcuch bloków + + + Open the PIVX debug log file from the current data directory. This can take a few seconds for large log files. + Otwórz plik dziennika debugowania PIVX z bieżącego katalogu danych. Może to potrwać kilka sekund w przypadku dużych plików dziennika. + + + Number of Masternodes + Liczba Masternode + + + &Console + &Konsola + + + Clear console + Wyczyść konsolę + + + &Network Traffic + &Ruch sieci + + + &Clear + &Wyczyść + + + Totals + Razem + + + Received + Otrzymano + + + Sent + Wysłano + + + &Peers + &Peers + + + Banned peers + Zbanowani rówieśnicy -peers- + + + Select a peer to view detailed information. + Wybierz peer by zobaczyć szczegółowe informacje + + + Whitelisted + Dodane do białej listy + + + Direction + Kierunek + + + Protocol + Protokół + + + Version + Wersja + + + Services + Usługi + + + Ban Score + Wynik Ban + + + Connection Time + Czas połączenia + + + Last Send + OStatnio wysłano + + + Last Receive + Ostatnio otrzymano + + + Bytes Sent + Bajty wysłane + + + Bytes Received + Bajty otrzymane + + + Ping Time + Czas Pingu + + + &Wallet Repair + &Napraw portfel + + + Delete local Blockchain Folders + Usuń lokalne foldery Blockchain + + + Wallet In Use: + Portfel w użyciu: + + + Starting Block + Startuje Blok + + + Synced Headers + Zsynchronizowane nagłówki + + + Synced Blocks + Zsynchronizowane Bloki + + + The duration of a currently outstanding ping. + Aktualny czas polecenia ping. + + + Ping Wait + Ping czeka + + + Time Offset + Przesuniecie Czasu + + + Custom Backup Path: + Standardowa ścieżka kopii zapasowej: + + + Custom zPIV Backup Path: + standardowa ścieżka kopii zapasowej zPIV: + + + Custom Backups Threshold: + Próg standardowych kopii zapasowych: + + + Salvage wallet + Odzyskaj portfel + + + Attempt to recover private keys from a corrupt wallet.dat. + Próba odzyskania kluczy prywatnych z uszkodzonego pliku wallet.dat. + + + Rescan blockchain files + Reskanuj pliki łańcucha bloków + + + Rescan the block chain for missing wallet transactions. + Ponownie przeskanuj łańcuch blokujący w poszukiwaniu brakujących transakcji w portfelu. + + + Recover transactions 1 + Odzyskaj transakcji 1 + + + Recover transactions from blockchain (keep meta-data, e.g. account owner). + Odzyskaj transakcje z blockchain (zachowaj metadane, np. Właściciela konta). + + + Recover transactions 2 + Odzyskaj transakcje 2 + + + Recover transactions from blockchain (drop meta-data). + Odzyskaj transakcje z blockchain (niezachowuj metadanych). + + + Upgrade wallet format + Ulepsz format portfela + + + Rebuild block chain index from current blk000??.dat files. + Przebuduj indeks łańcucha bloków z bieżących plików blk000??.dat + + + -resync: + -resync: + + + Deletes all local blockchain folders so the wallet synchronizes from scratch. + Usuwa wszystkie lokalne foldery blockchain, aby portfel synchronizował się od początku. + + + 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. + Poniższe przyciski uruchomią ponownie portfel z opcjami wiersza poleceń, aby naprawić portfel, naprawić problemy z uszkodzonymi plikami blockhain lub brakującymi / przestarzałymi transakcjami. + + + Wallet repair options. + Opcje naprawy portfela. + + + Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!) + Uaktualnij portfel do najnowszego formatu podczas uruchamiania. (Uwaga: NIE jest to aktualizacja samego portfela!) + + + Rebuild index + Przebuduj indeks + + + In: + W + + + Out: + Z + + + Welcome to the PIVX RPC console. + Witamy w konsoli PIVX RPC. + + + &Disconnect Node + Odłącz węzeł + + + Ban Node for + Zbanuj węzeł na + + + 1 &hour + 1 &godzinę + + + 1 &day + 1 &dzień + + + 1 &week + 1 &tydzień + + + 1 &year + 1 &rok + + + &Unban Node + &Usuń bana na węzeł + + + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> + Spowoduje to usunięcie lokalnych folderów blockchain, a portfel zsynchronizuje kompletny Blockchain od zera.<br /><br /> + + + This needs quite some time and downloads a lot of data.<br /><br /> + To zajmuje sporo czasu i pobiera dużo danych.<br /><br /> + + + Your transactions and funds will be visible again after the download has completed.<br /><br /> + Twoje transakcje i środki będą widoczne ponownie po zakończeniu pobierania.<br /><br /> + + + Do you want to continue?.<br /> + Czy chcesz kontynuować?.<br /> + + + Confirm resync Blockchain + Potwierdź resynchronizacje Blockchain + + + Use up and down arrows to navigate history, and %1 to clear screen. + Użyj strzałek w górę iw dół, aby poruszać się po historii, a %1, aby wyczyścić ekran. + + + Type <b>help</b> for an overview of available commands. + Wpisz <b>help</b>, aby uzyskać przegląd dostępnych poleceń. + + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + OSTRZEŻENIE: Scamery były aktywne, mówiąc użytkownikom, aby wpisywali tutaj polecenia, kradnąc ich zawartość portfela. Nie używaj tej konsoli bez pełnego zrozumienia konsekwencji polecenia. + + + %1 B + %1 B + + + %1 KB + %1 KB + + + %1 MB + %1 MB + + + %1 GB + %1 GB + + + (node id: %1) + (identyfikator węzła: %1) + + + via %1 + przez %1 + + + never + nigdy + + + Inbound + Przychodzące + + + Outbound + Wychodzące + + + Yes + Tak + + + No + Nie + + + Unknown + Nieznane + + + + 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. + Ponownie użyj jednego z wcześniej używanych adresów odbiorczych.<br>Ponowne używanie adresów powoduje problemy z bezpieczeństwem i prywatnością.<br>Nie używaj tego, chyba że ponownie wygenerujesz prośbę o płatność. + + + R&euse an existing receiving address (not recommended) + Ponownie użyj istniejącego adresu odbiorczego (niezalecane) + + + &Message: + &Wiadomość: + + + An optional label to associate with the new receiving address. + Opcjonalna etykieta powiązana z nowym adresem odbiorczym. + + + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + Twój adres odbiorczy. Możesz go kopiować i używać do odbierania monet w tym portfelu. Nowy zostanie wygenerowany, gdy ten zostanie użyty. + + + &Address: + &Adres: + + + A&mount: + &Ilość: + + + 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 PIVX network. + Opcjonalna wiadomość dołączana do żądania zapłaty, która zostanie wyświetlona przy otwarciu żądania. Uwaga: Wiadomość nie będzie wysłana przez sieć PIVX. + + + RECEIVE + OTRZYMASZ + + + 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 PIVX network. + Opcjonalna wiadomość dołączana do żądania zapłaty, która zostanie wyświetlona po otwarciu żądania.<br>Uwaga: Wiadomość nie będzie wysłana przez sieć PIVX. + + + Use this form to request payments. All fields are <b>optional</b>. + Użyj tego formularza do żądania płatności. Wszystkie pola są<b>opcionalne</b>. + + + &Label: + &Etykieta + + + An optional amount to request. Leave this empty or zero to not request a specific amount. + Na opcjonalną kwotę do żądania. Pozostaw to pole puste lub zero, aby nie żądać określonej kwoty. + + + &Request payment + &Poproś o zapłatę + + + Clear all fields of the form. + Wyczyść wszystkie pola formularza. + + + Clear + Wyczyść + + + Receiving Addresses + Adresy odbiorcze + + + Requested payments history + Żądanie Historii płatności + + + Show the selected request (does the same as double clicking an entry) + Pokaż wybrane (robi to samo, co podwójne kliknięcie na wpis) + + + Show + Pokaż + + + Remove the selected entries from the list + Usuń wybrane pozycje z listy + + + Remove + Usuń + + + Copy label + Kopiuj zakładkę + + + Copy message + Skopiuj wiadomość + + + Copy amount + Kopiuj liczbę + + + Copy address + Kopiuj adres + + + + ReceiveRequestDialog + + QR Code + Kod QR + + + Copy &URI + Kopiuj &URI + + + Copy &Address + Kopiuj &Address + + + &Save Image... + &Zapisz obrazek + + + Request payment to %1 + Poproś o płatność do %1 + + + Payment information + Informacje dotyczące płatności + + + URI + URI + + + Address + Adres + + + Amount + Ilość + + + Label + Etykieta + + + Message + Wiadomość + + + Resulting URI too long, try to reduce the text for label / message. + Identyfikator URI jest zbyt długi, spróbuj skrucić tekst etykiety / wiadomości. + + + Error encoding URI into QR Code. + Błąd podczas kodowania URI do kodu QR. + + + + RecentRequestsTableModel + + Date + Data + + + Label + Etykieta + + + Message + Wiadomość + + + Address + Adres + + + Amount + Ilość + + + (no label) + (brak etykiety) + + + (no message) + (brak wiadomości) + + + (no amount) + (bez kwoty) + + + + SendCoinsDialog + + Send Coins + Wyślij monety + + + SEND + Wyślij + + + Coin Control Features + Funkcje kontroli monet + + + Insufficient funds! + Niewystarczające środki! + + + Quantity: + Ilość: + + + Bytes: + Bajty: + + + Amount: + Ilość: + + + Priority: + Priorytet: + + + medium + średni + + + 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. + Jeśli jest aktywowany, ale adres reszty jest pusty lub nieprawidłowy, reszta zostanie wysłana na nowo wygenerowany adres. + + + Custom change address + Standardowy adres reszty + + + Split UTXO + Podziel UTXO + + + # of outputs + # wyjść + + + UTXO Size: + Rozmiar UTXO: + + + 0 PIV + 0 PIV + + + SwiftX technology allows for near instant transactions - A flat fee of 0.01 PIV applies + Technologia SwiftX umożliwia dokonywanie transakcji zbliżonych do błyskawicznych - obowiązuje opłata ryczałtowa w wysokości 0,01 PIV + + + Transaction Fee: + Opłata transakcyjna: + + + Choose... + Wybierz ... + + + collapse fee-settings + zawalone ustawienia opłat + + + Minimize + Zminimalizuj + + + per kilobyte + za kilobajt + + + total at least + w sumie na końcu + + + (read the tooltip) + (przeczytaj wskazówkę) + + + Custom: + Zwyczaj: + + + (Smart fee not initialized yet. This usually takes a few blocks...) + (Opłata inteligentna nie została jeszcze zainicjowana, zazwyczaj zajmuje to kilka bloków ...) + + + SwiftX + SwiftX + + + Confirmation time: + Czas potwierdzenia: + + + Open Coin Control... + Otwórz kontrolę monet ... + + + Coins automatically selected + Monety automatycznie wybrane + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + Jeśli opłata trasakcyjna jest ustawiona na 1000 uPIV i transakcja ma tylko 250 bajtów, to płaci się tylko 250 uPIV,<br /> W przypadku transakcji większych niż kilobajt płacisz za kilobajta. + + + If the custom fee is set to 1000 uPIVs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uPIVs in fee,<br />while "total at least" pays 1000 uPIVs. For transactions bigger than a kilobyte both pay by kilobyte. + Jeśli opłata trasakcyjna jest ustawiona na 1000 uPIV i transakcja ma tylko 250 bajtów, to płaci się tylko 250 uPIV, <br /> W przypadku transakcji większych niż kilobajt płacisz za 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 PIVX transactions than the network can process. + Płacenie tylko minimalnej opłaty jest w porządku, o ile w blokach jest mniejsza ilość transakcji niż miejsca<br />Ale pamiętaj, że może to skończyć się niepotwierdzoną transakcją, gdy pojawi się większe ruch niż sieć może przetworzyć. + + + normal + normalnie + + + fast + szybko + + + Recommended + Zalecane + + + Send as zero-fee transaction if possible + Wyślij jako transakcję bez opłat, jeśli to możliwe + + + (confirmation may take longer) + (potwierdzenie może trwać dłużej) + + + Confirm the send action + Potwierdź akcję wysyłania + + + S&end + &Wyślij + + + Clear all fields of the form. + Wyczyść wszystkie pola formularza. + + + Clear &All + Wyczyść &Wszystko + + + Send to multiple recipients at once + Wysyłaj do wielu odbiorców naraz + + + Add &Recipient + Dodaj odbiorcę + + + Anonymized PIV + Anonimowy PIV + + + Balance: + Saldo + + + Copy quantity + Kopiuj ilość + + + Copy amount + Kopiuj liczbę + + + Copy fee + Kopiuj opłatę + + + Copy after fee + Kopiuj po opłacie + + + Copy bytes + Skopiuj bajty + + + Copy priority + Kopiuj priorytet + + + Copy dust + Kopiuj Pył + + + Copy change + Kopiuj resztę + + + The split block tool does not work when sending to outside addresses. Try again. + Narzędzie podzielonego bloku nie działa podczas wysyłania na adresy zewnętrzne. Spróbuj ponownie. + + + The split block tool does not work with multiple addresses. Try again. + Narzędzie podzielonego bloku nie działa z wieloma adresami. Spróbuj ponownie. + + + Warning: Invalid PIVX address + Ostrzeżenie: Nieprawidłowy adres PIVX + + + %1 to %2 + %1 do %2 + + + Are you sure you want to send? + Czy na pewno chcesz wysłać? + + + are added as transaction fee + są dodawane jako opłata transakcyjna + + + Total Amount = <b>%1</b><br />= %2 + Suma ogółem = <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 wyższa niż %2 za kB jest uważana za niesamowicie wysoką opłatę. + + + Estimated to begin confirmation within %n block(s). + Szacowany początek potwierdzenia za %n blok.Szacowany początek potwierdzenia za %n bloków.Szacowany początek potwierdzenia za %n bloków.Szacowany początek potwierdzenia za %n bloków. + + + The recipient address is not valid, please recheck. + Adres odbiorcy jest nieprawidłowy, proszę ponownie sprawdzić. + + + using SwiftX + użyj SwiftX + + + split into %1 outputs using the UTXO splitter. + podzielić na %1 wyjścia za pomocą rozdzielacza UTXO. + + + <b>(%1 of %2 entries displayed)</b> + <b>(Wyświetlono %1 z %2 wpisów)</b> + + + The amount to pay must be larger than 0. + Kwota do zapłaty musi być większa niż 0. + + + The amount exceeds your balance. + Kwota przekracza saldo. + + + The total exceeds your balance when the %1 transaction fee is included. + Suma przekracza saldo po uwzględnieniu opłaty transakcyjnej %1. + + + Duplicate address found, can only send to each address once per send operation. + Znaleziono zduplikowany adres, można wysłać tylko do każdego adresu raz na operację wysyłania. + + + Transaction creation failed! + Tworzenie 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ę tak zdarzyć, jeśli część monet w portfelu już została wydana, na przykład jeśli użyto kopii pliku wallet.dat, a monety zostały wydane w kopii, ale nie zostały oznaczone jako wydane. + + + Error: The wallet was unlocked only to anonymize coins. + Błąd: portfel został odblokowany tylko w celu anonimizacji monet. + + + Error: The wallet was unlocked only to anonymize coins. Unlock canceled. + Błąd: portfel został odblokowany tylko w celu anonimizacji monet. Odblokownie anulowanie. + + + Pay only the minimum fee of %1 + Płać tylko minimalną opłatę w wysokości %1 + + + Estimated to get 6 confirmations near instantly with <b>SwiftX</b>! + Szacuje się, że od razu otrzymasz 6 potwierdzeń<b>SwiftX</b>! + + + Warning: Unknown change address + Ostrzeżenie: nieznany adres reszty + + + (no label) + (brak etykiety) + + + + SendCoinsEntry + + This is a normal payment. + To jest normalna płatność. + + + Pay &To: + &Zapłać + + + The PIVX address to send the payment to + Adres PIVX do wysłania płatności do + + + Choose previously used address + Wybierz poprzednio używany 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, aby dodać ją do listy używanych adresów + + + A&mount: + &Ilość: + + + Message: + Wiadomość: + + + A message that was attached to the PIVX: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the PIVX network. + Komunikat dołączony do identyfikatora PIVX: URI, który będzie przechowywany wraz z transakcją w celach informacyjnych. Uwaga: ten komunikat nie zostanie wysłany przez sieć PIVX. + + + This is an unverified payment request. + Jest to niezweryfikowane żądanie zapłaty. + + + Pay To: + Zapłć: + + + Memo: + Notatka: + + + This is a verified payment request. + Jest to zweryfikowane żądanie zapłaty. + + + Enter a label for this address to add it to your address book + Wpisz etykietę dla tego adresu, aby dodać ją do swojej książki adresowej + + + + ShutdownWindow + + PIVX Core is shutting down... + PIVX Core się wyłącza ... + + + 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 + &Podpisz 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 ze swoimi adresami, aby udowodnić, że je posiadasz. Uważaj, aby nie podpisać niczego niejasnego, ponieważ ataki phishingowe mogą skłonić Cię do podpisania Twojej tożsamości. Podawaj tylko w pełni szczegółowe oświadczenia, na które wyrażasz zgodę. + + + The PIVX address to sign the message with + Adres PIVX do podpisania wiadomości za pomocą + + + Choose previously used address + Wybierz poprzednio używany 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 + Wpisz wiadomość, którą chcesz podpisać tutaj + + + Signature + Podpis + + + Copy the current signature to the system clipboard + Skopiuj bieżący podpis do schowka systemowego + + + Sign the message to prove you own this PIVX address + Zatwierdź wiadomość, aby udowodnić, że podany adres PIVX jest w twoim posiadaniu + + + The PIVX address the message was signed with + Adres PIVX, z którym została podpisana wiadomość + + + Verify the message to ensure it was signed with the specified PIVX address + Sprawdź komunikat, aby upewnić się, że został podpisany podanym adresem PIVX + + + Sign &Message + Podpisz wiadomość + + + Reset all sign message fields + Zresetuj wszystkie znaki z pola 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. + Wprowadź adres podpisu, wiadomość (upewnij się, że dokładnie kopiujesz wiersze, spacje, tabulatory itp.) i podpisz poniżej, aby zweryfikować wiadomość. Uważaj, aby nie wprowadzić więcej w podpis niż w podpisanej wiadomości, aby uniknąć oszustwa przez atak typu "man-in-the-middle". + + + Verify &Message + &Zweryfikuj wiadomość + + + Reset all verify message fields + Resetuj wszystkie zweryfikowane pola tekstowe + + + Click "Sign Message" to generate signature + Kliknij "Podpisz wiadomość", aby wygenerować 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. + Podany adres nie odnosi się do klucza + + + Wallet unlock was cancelled. + Odblokowywanie anulowanie + + + Private key for the entered address is not available. + Prywatny klucz do podanego adresu nie jest dostępny + + + Message signing failed. + Podpisywanie wiadomości nie powiodło się. + + + Message signed. + Wiadomość została podpisana. + + + The signature could not be decoded. + Podpis nie mógł 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 pasuje do skrótu wiadomości. + + + Message verification failed. + Weryfikacja wiadomości nieudana. + + + Message verified. + Wiadomość zweryfikowana. + + + + SplashScreen + + PIVX Core + PIVX Core + + + Version %1 + Wersja %1 + + + The Bitcoin Core developers + Twórcy Bitcoin Core + + + The Dash Core developers + Twórcy Dash Core + + + The PIVX Core developers + Twórcy PIVX Core + + + [testnet] + [testnet] + + + + TrafficGraphWidget + + KB/s + KB/s + + + + TransactionDesc + + Open for %n more block(s) + Otwórz dla %n kolejnego blokuOtwórz dla %n kolejnych blokówOtwórz dla %n kolejnych blokówOtwórz dla %n kolejnych bloków + + + Open until %1 + Otwórz od %1 + + + conflicted + sprzeczne + + + %1/offline + %1/offline + + + %1/unconfirmed + %1/ niepotwierdzone + + + %1 confirmations + %1 potwierdzeń + + + %1/offline (verified via SwiftX) + %1/offline (zweryfikowany przez SwiftX) + + + %1/confirmed (verified via SwiftX) + %1/potwierdzony (zweryfikowany przez SwiftX) + + + %1 confirmations (verified via SwiftX) + %1 potwierdzeń (zweryfikowane przez SwiftX) + + + %1/offline (SwiftX verification in progress - %2 of %3 signatures) + %1/offline (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1/confirmed (SwiftX verification in progress - %2 of %3 signatures ) + %1/potwierdzony (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1 confirmations (SwiftX verification in progress - %2 of %3 signatures) + %1 potwierdzeń (weryfikacja SwiftX w toku -%2 z %3 podpisów) + + + %1/offline (SwiftX verification failed) + %1/offline (Weryfikacja SwiftX nie powiodła się) + + + %1/confirmed (SwiftX verification failed) + %1/potwierdzony (Weryfikacja SwiftX nie powiodła się) + + + Status + Status + + + , has not been successfully broadcast yet + , nie udało się jeszcze nadać + + + , broadcast through %n node(s) + , rozgłaszane przez %n węzeł, rozgłaszane przez %n węzłów, rozgłaszane przez %n węzłów, rozgłaszane przez %n węzłów + + + Date + Data + + + Source + Źródło + + + Generated + Wygenerowano + + + From + Z + + + unknown + nieznany + + + To + Do + + + own address + własny adres + + + watch-only + watch-only + + + label + etykieta + + + Credit + Kredyt + + + matures in %n more block(s) + dojrzewa po %n blokudojrzewa po %n blokachdojrzewa po %n blokachdojrzewa po %n blokach + + + not accepted + nie zaakceptowany + + + Debit + Debet + + + Total debit + Debet razem + + + Total credit + Całkowity kredyt + + + Transaction fee + Opłata transakcyjna + + + Net amount + Kwota netto + + + Message + Wiadomość + + + Comment + Komentarz + + + Transaction ID + Identyfikator transakcji + + + Output index + Indeks wyjściowy + + + 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ć %1 bloków, zanim mogą zostać wydane. Gdy wygenerowałeś ten blok, został on wysłany do sieci, żaby dodać go do łańcucha bloków. Jeśli nie uda się dodanie do łańcucha, jego stan zmieni się na "nie zaakceptowany" i nie będzie można go wydać. Może się to zdarzyć, gdy inny węzeł wygeneruje blok w tym samym czasie co ty. + + + Debug information + Debug informacje + + + Transaction + Transakcja + + + Inputs + Wejścia + + + Amount + Ilość + + + true + prawdziwe + + + false + fałszywe + + + + 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) + Otwórz dla %n kolejnego blokuOtwórz dla %n kolejnych blokówOtwórz dla %n kolejnych blokówOtwórz dla %n kolejnych bloków + + + Open until %1 + Otwórz od %1 + + + Offline + Offline + + + Unconfirmed + Niepotwierdzone + + + Confirming (%1 of %2 recommended confirmations) + Potwierdzanie (%1 z %2 zalecanych potwierdzeń) + + + Confirmed (%1 confirmations) + Potwierdzone (%1 potwierdzeń) + + + Conflicted + kolidujące + + + Immature (%1 confirmations, will be available after %2) + Niedojrzałe (potwierdzenia %1, będą dostępne po %2) + + + This block was not received by any other nodes and will probably not be accepted! + Ten blok nie został odebrany przez żadne inne węzły i prawdopodobnie nie zostanie zaakceptowany! + + + Received with + Otrzymano z + + + Masternode Reward + Nagroda Masternode + + + Received from + Otrzymane od + + + Received via Obfuscation + Otrzymane przez Zamaskowanie + + + PIV Stake + PIV Stake + + + zPIV Stake + zPIV Stake + + + Obfuscation Denominate + Zamaskowanie Denominacja + + + Obfuscation Collateral Payment + Zamaskowanie Zabezpieczenie płatności + + + Obfuscation Make Collateral Inputs + Wprowadź zabezpieczenia Zaciemniania + + + Obfuscation Create Denominations + Zamaskowanie Utwórz denominacje + + + Converted PIV to zPIV + przekonwertowany PIV to zPIV + + + Spent zPIV + Wydaj zPIV + + + Received PIV from zPIV + Otrzymano PIV z zPIV + + + Minted Change as zPIV from zPIV Spend + Reszta Minted jako zPIV z Wysyłki zPIV + + + Converted zPIV to PIV + przekonwertowany zPIV to PIV + + + Anonymous (zPIV Transaction) + Anonimowa (transakcja zPIV) + + + Anonymous (zPIV Stake) + Anonimowy (zPIV Stake) + + + Sent to + Wyślij do + + + Orphan Block - Generated but not accepted. This does not impact your holdings. + Orphan Block - wygenerowany, ale nie akceptowany. To nie ma wpływu na twoje saldo. + + + Payment to yourself + Zapłata dla siebie + + + Mined + wydobyty + + + Obfuscated + Zamaskowane + + + watch-only + watch-only + + + (n/a) + (nie dotyczy) + + + Transaction status. Hover over this field to show number of confirmations. + Status transakcji. Najedź kursorem na to pole, aby wyświetlić liczbę potwierdzeń. + + + Date and time that the transaction was received. + Data i godzina otrzymania transakcji. + + + Type of transaction. + Rodzaj transakcji. + + + Whether or not a watch-only address is involved in this transaction. + Niezależnie od tego, czy w transakcji bierze udział adres typu watch-only. + + + Destination address of transaction. + Adres docelowy transakcji. + + + Amount removed from or added to balance. + Kwota usunięta z salda lub dodana do salda. + + + + TransactionView + + All + Wszystko + + + Today + Dzisiaj + + + This week + W tym tygodniu + + + This month + W tym miesiącu + + + Last month + W poprzednim miesiącu + + + This year + W tym roku + + + Range... + Zasięg... + + + Most Common + Najbardziej powszechne + + + Received with + Otrzymano z + + + Sent to + Wyślij do + + + To yourself + Dla siebie + + + Mined + wydobyty + + + Minted + Wybite + + + Masternode Reward + Nagroda Masternode + + + Zerocoin Mint + Zerocoin Mint + + + Zerocoin Spend + Wydawanie Zerocoin + + + Zerocoin Spend to Self + Wydawanie Zerocoin na swój adres + + + Other + Inny + + + Enter address or label to search + Wprowadź adres lub etykietę do wyszukiwania + + + Min amount + Kwota minimum + + + Copy address + Kopiuj adres + + + Copy label + Kopiuj zakładkę + + + Copy amount + Kopiuj liczbę + + + Copy transaction ID + Kopiuj ID transakcji + + + Edit label + Edytuj etykietę + + + Show transaction details + Pokaż szczegóły transakcji + + + Hide orphan stakes + Ukryj osierocone stakes + + + Export Transaction History + Eksportuj historię transakcji + + + Comma separated file (*.csv) + Plik rozdzielony przecinkami (* .csv) + + + Confirmed + Potwierdzone + + + Watch-only + Watch-only + + + Date + Data + + + Type + Typ + + + Label + Etykieta + + + Address + Adres + + + ID + ID + + + Exporting Failed + Eksport nieudany + + + There was an error trying to save the transaction history to %1. + Wystąpił błąd podczas próby zapisania historii transakcji w %1. + + + Exporting Successful + Eksportowanie zakończyło się pomyślnie + + + Received PIV from zPIV + Otrzymano PIV z zPIV + + + Zerocoin Spend, Change in zPIV + Wydawanie Zerocoin, Zmień z zPIV + + + The transaction history was successfully saved to %1. + Historia transakcji została pomyślnie zapisana w %1. + + + Range: + Zasięg: + + + to + do + + + + UnitDisplayStatusBarControl + + Unit to show amounts in. Click to select another unit. + Jednostka do przedstawienia kwot. Kliknij, aby wybrać inną jednostkę. + + + + WalletFrame + + No wallet has been loaded. + Żaden portfel nie został załadowany. + + + + WalletModel + + Send Coins + Wyślij monety + + + SwiftX doesn't support sending values that high yet. Transactions are currently limited to %1 PIV. + SwiftX nie obsługuje wysyłania wysokich wartości. Transakcje są obecnie ograniczone do %1 PIV. + + + + WalletView + + HISTORY + HISTORIA + + + &Export + &Eksportuj + + + Export the data in the current tab to a file + Wyeksportuj dane z bieżącej karty do pliku + + + Selected amount: + Wybrana kwota : + + + Backup Wallet + Kopia zapasowa portfela + + + Wallet Data (*.dat) + Wallet Data (*.dat) + + + + ZPivControlDialog + + Select zPIV to Spend + Wybierz zPIV do wydania + + + Quantity + Ilość + + + 0 + 0 + + + zPIV + zPIV + + + Select/Deselect All + Wybierz / Odznacz wszystko + + + Spendable? + Do wydania? + + + + pivx-core + + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) + (1 = zachowaj tx meta dane np. Właściciel konta i informacje o żądaniu płatności, 2 = porzuć tx meta dane) + + + 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 + Zezwalaj na połączenia JSON-RPC z określonego źródła. Ważny dla <ip> są pojedynczym IP (na przykład 1.2.3.4), siecią / maską sieci (np. 1.2.3.4/255.255.255.0) lub siecią / CIDR (na przykład 1.2.3.4/24). Ta opcja może być określona wiele razy + + + Bind to given address and always listen on it. Use [host]:port notation for IPv6 + Zwiąż się z podanym adresem i zawsze go słuchaj. Użyj [host]:port dla IPv6 + + + Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6 + Powiąż z podanym adresem i połączeniami whitelist. Użyj [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) + Powiąż z podanym adresem, aby odsłuchać połączenia JSON-RPC. Użyj [host]:port dla IPv6. Ta opcja może być określona wiele razy (domyślnie: powiązanie ze wszystkimi interfejsami) + + + Calculated accumulator checkpoint is not what is recorded by block index + Obliczony punkt kontrolny akumulatora nie jest tym, co jest rejestrowane przez indeks bloku + + + Cannot obtain a lock on data directory %s. PIVX Core is probably already running. + Nie można uzyskać dostępu do katalogu danych %s. PIVX Core prawdopodobnie już działa. + + + Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) + Zmień zachowanie automatycznego głosowania w budżecie finalizowanym. mode=auto: Głosuj tylko na dokładne sfinalizowane dopasowanie budżetu do mojego wygenerowanego budżetu. (ciąg, domyślny: auto) + + + Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u) + Limit bezpłatnych transakcji do <n>* 1000 bajtów na minutę (domyślnie:%u) + + + Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality) + Twórz nowe pliki z domyślnymi uprawnieniami systemowymi zamiast umask 077 (skuteczne tylko przy wyłączonej funkcji portfela) + + + Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup + Usuń wszystkie transakcje portfela i odzyskaj tylko część łańcucha blokowego -reskan przy uruchomieniu + + + Delete all zerocoin spends and mints that have been recorded to the blockchain database and reindex them (0-1, default: %u) + Usuń wszystkie wydane zerocoin i mint, które zostały zapisane w bazie danych blockchain i ponownie je zindeksuj (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>. + Dystrybuowane w ramach licencji oprogramowania MIT, patrz plik towarzyszący COPYING lub <http://www.opensource.org/licenses/mit-license.php>. + + + Enable automatic Zerocoin minting from specific addresses (0-1, default: %u) + Włącz automatyczne wybijanie Zerocoin z określonych adresów (0-1, domyślnie:%u) + + + Enable automatic wallet backups triggered after each zPIV minting (0-1, default: %u) + Włącz automatyczne kopie zapasowe portfela uruchamiane po każdym mintingu zPIV (0-1, domyślnie: %u) + + + Enable or disable staking functionality for PIV inputs (0-1, default: %u) + Włączanie lub wyłączanie funkcji stake dla przychodzących PIV (0-1, domyślnie:%u) + + + Enable or disable staking functionality for zPIV inputs (0-1, default: %u) + Włączanie lub wyłączanie funkcji staking dla nowych zPIV (0-1, domyślnie: %u) + + + Enable spork administration functionality with the appropriate private key. + Włącz funkcję zarządzania sporkami za pomocą odpowiedniego klucza prywatnego. + + + Enter regression test mode, which uses a special chain in which blocks can be solved instantly. + Wejdź w tryb testu regresyjnego, który wykorzystuje specjalny łańcuch, w którym bloki można natychmiast rozwiązać. + + + Error: Listening for incoming connections failed (listen returned error %s) + Błąd: Odsłuchiwanie przychodzących połączeń nie powiodło się (zwrócony błąd %s) + + + Error: The transaction is larger than the maximum allowed transaction size! + Błąd: transakcja jest większa niż maksymalny dozwolony rozmiar transakcji! + + + Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported. + Błąd: Znaleziono nieobsługiwany argument -socks. Ustawienie wersji SOCKS nie jest już możliwe, obsługiwane są tylko serwery proxy SOCKS5. + + + Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message) + Wykonaj polecenie, gdy otrzymasz odpowiednie powiadomienie lub zobaczysz naprawdę długi fork ( %s w cmd zostanie zastąpiony przez komunikat) + + + Execute command when a wallet transaction changes (%s in cmd is replaced by TxID) + Wykonaj polecenie, gdy zmieni się transakcja ( %s w cmd jest zastąpione przez TxID) + + + Execute command when the best block changes (%s in cmd is replaced by block hash) + Wykonaj polecenie, gdy najlepszy blok zostanie zmieniony ( %s w cmd zostanie zastąpione hash blokiem) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for relaying (default: %s) + Opłaty za przekazywanie (w PIV/Kb) mniejsze od tej są uznawane za opłaty zerowe (domyślnie: %s) + + + Fees (in PIV/Kb) smaller than this are considered zero fee for transaction creation (default: %s) + Opłaty za tworzenie transakcji (w PIV/Kb) mniejsze od tej są uznawane za opłaty zerowe (domyślnie: %s) + + + Flush database activity from memory pool to disk log every <n> megabytes (default: %u) + Opróżniaj dziennik z pamięci dysku co <n> megabajtów (domyślnie:%u) + + + Found unconfirmed denominated outputs, will wait till they confirm to continue. + Znaleziono niepotwierdzone wyniki, czekam na potwierdzenie żeby kontynuować. + + + If paytxfee is not set, include enough fee so transactions begin confirmation on average within n blocks (default: %u) + Jeśli paytxfee nie jest ustawiony, należy ustawić odpowiednią opłatę, aby transakcje zaczęły potwierdzać średnio w n blokach (domyślnie:%u) + + + In this mode -genproclimit controls how many blocks are generated immediately. + W tym trybie -genproclimit kontroluje, ile bloków jest generowanych natychmiast. + + + Insufficient or insufficient confirmed funds, you might need to wait a few minutes and try again. + Niewystarczające lub niewystarczająco potwierdzone fundusze, może trzeba poczekać kilka minut i spróbować ponownie. + + + Keep the specified amount available for spending at all times (default: 0) + Zawsze utrzymuj określoną kwotę przeznaczoną na wydatki (domyślnie: 0) + + + Log transaction priority and fee per kB when mining blocks (default: %u) + Loguj priorytet transakcji i opłatę za kB, gdy kopiesz bloki (domyślnie:%u) + + + Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u) + Utrzymuj pełny indeks transakcji, używany przez wywołanie getrawtransaction rpc (domyślnie:%u) + + + Unable to bind to %s on this computer. PIVX Core is probably already running. + Nie można podłączyć %s na tym komputerze. PIVX Core prawdopodobnie już działa. + + + Unable to locate enough Obfuscation denominated funds for this transaction. + Nie można znaleźć wystarczającej liczby funduszy ukrytych dla tej transakcji. + + + (51472 could be used only on mainnet) + (51472 może być używany tylko w sieci mainnet) + + + (default: %s) + (domyślnie: %s) + + + (default: 1) + (domyślnie: 1) + + + (must be 51472 for mainnet) + (musi być 51472 dla mainnetu) + + + Accept command line and JSON-RPC commands + Zaakceptuj polecenia linii poleceń i JSON-RPC + + + Already have that input. + Masz już to wejście. + + + Block creation options: + Opcje tworzenia bloku: + + + Calculating missing accumulators... + Obliczanie brakujących akumulatorów ... + + + Can't find random Masternode. + Nie można znaleźć losowego masternodu. + + + Can't mix while sync in progress. + Nie można mieszać w trakcie synchronizacji. + + + Cannot downgrade wallet + Nie można cofnąć wersji portfela + + + Cannot write default address + Nie można zapisać adresu domyślnego + + + Collateral not valid. + Zabezpieczenie jest nie ważne. + + + Connect only to the specified node(s) + Połącz tylko z określonym węzłem (węzłami) + + + Connect through SOCKS5 proxy + Połącz przez serwer proxy SOCKS5 + + + Connection options: + Opcje połączenia: + + + 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 + + + Copyright (C) 2015-%i The PIVX Core Developers + Copyright (C) 2015-%i The PIVX Core Developers + + + Corrupted block database detected + Wykryto uszkodzoną bazę danych bloków + + + Could not parse masternode.conf + Nie można przetworzyć pliku masternode.conf + + + Debugging/Testing options: + Opcje debugowania/testowania: + + + Delete blockchain folders and resync from scratch + Usuń foldery blockchain i zsynchronizuj ponownie od podstaw + + + Do you want to rebuild the block database now? + Czy chcesz teraz odbudować block database danych? + + + Done loading + Ładowanie ukończone + + + Enable automatic Zerocoin minting (0-1, default: %u) + Włącz automatyczne Zerocoin minting (0-100, domyślnie: %u) + + + Entries are full. + Wpisy są pełne. + + + Error connecting to Masternode. + Błąd połączenia z Masternode. + + + Error initializing block database + Błąd podczas inicjowania block database + + + Error initializing wallet database environment %s! + Błąd podczas inicjowania środowiska bazy danych portfela %s! + + + Error loading block database + Błąd podczas ładowania block database + + + Error loading wallet.dat + Wystąpił błąd podczas ładowania pliku wallet.dat + + + Error loading wallet.dat: Wallet corrupted + Wystąpił błąd podczas ładowania pliku wallet.dat: Portfel uszkodzony + + + Error loading wallet.dat: Wallet requires newer version of PIVX Core + Błąd ładowania pliku wallet.dat: Portfel wymaga nowszej wersji PIVX Core + + + Error opening block database + Błąd podczas otwierania block database + + + Error reading from database, shutting down. + Błąd odczytu z bazy danych, wyłączenie. + + + Error recovering public key. + Podczas odzyskiwania klucza publicznego wystąpił błąd. + + + Error writing zerocoinDB to disk + Błąd podczas zapisywania zerocoinDB na dysku + + + Error + Błąd + + + Error: Can't select current denominated inputs + Błąd: nie można wybrać takich jednostek + + + Error: Disk space is low! + Błąd: Mało miejsca na dysku! + + + Error: Wallet locked, unable to create transaction! + Błąd: Portfel zablokowany, nie można utworzyć transakcji! + + + Failed to calculate accumulator checkpoint + Nie można obliczyć punktu kontrolnego akumulatora + + + Failed to parse host:port string + Nie można przeanalizować host:port string + + + Failed to read block + Nie można odczytać bloku + + + Fee (in PIV/kB) to add to transactions you send (default: %s) + Opłata (w PIV/kB) dodawana do wysyłanych transakcji (domyślnie: %s) + + + Finalizing transaction. + Finalizowanie transakcji. + + + Force safe mode (default: %u) + Wymuś tryb bezpieczny (domyślnie: %u) + + + Found enough users, signing ( waiting %s ) + Znaleziono wystarczającą liczbę użytkowników, podpisanie (czekanie %s) + + + Found enough users, signing ... + Znaleziono wystarczającą liczbę użytkowników, podpisywanie ... + + + Generate coins (default: %u) + Wygeneruj monety (domyślnie: %u) - N/A - N/A + Importing... + Importuję ... - Number of connections - Liczba połączeń + Incompatible mode. + Tryb niezgodny. - &Open - &Otwórz + Incompatible version. + Niezgodna wersja. - Startup time - Czas startupu + Information + Informacje - Network - Sieć + Input is not valid. + Dane wejściowe nie są prawidłowe. - Last block time - Czas ostatniego bloku + Insufficient funds + Niewystarczające środki - Debug log file - Debuguj plik log + Insufficient funds. + Niewystarczające środki. - Using OpenSSL version - Używanie wersji OpenSSL + Invalid amount + nieprawidłowa kwota - Build date - Data zbudowania + Invalid private key. + Nieprawidłowy klucz prywatny. - Current number of blocks - Bieżąca liczba bloków + Invalid script detected. + Wykryto niepoprawny skrypt. - Client version - Wersja clienta + Percentage of automatically minted Zerocoin (1-100, default: %u) + Odsetek automatycznych minted Zerocoin (1-100, domyślnie: %u) - Using BerkeleyDB version - Używanie wersji BerkeleyDB + Reindexing zerocoin database... + Ponowne indeksowanie bazy danych zerocoin ... - Block chain - Łańcuch bloków + Reindexing zerocoin failed + Ponowne indeksowanie zerocoin nie powiodło się - Number of Masternodes - Liczba Masternode + SwiftX options: + Opcje SwiftX: - &Console - &Konsola + mints deleted + + mints usunięte + - Clear console - Wyczyść konsolę + mints updated, + zaktualizowano mints, - &Network Traffic - &Ruch sieci + unconfirmed transactions removed + + niepotwierdzone transakcje zostały usunięte + - &Clear - &Wyczyść& + Disable all PIVX specific functionality (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, default: %u) + Wyłącz wszystkie funkcje specyficzne dla PIVX (Masternodes, Zerocoin, SwiftX, Budgeting) (0-1, domyślnie: %u) - Totals - Razem + Enable SwiftX, show confirmations for locked transactions (bool, default: %s) + Włącz SwiftX, pokaż potwierdzenia zablokowanych transakcji (bool, domyślnie: %s) - Received - Otrzymano + Specify custom backup path to add a copy of any automatic zPIV backup. If set as dir, every backup generates a timestamped file. If set as file, will rewrite to that file every backup. If backuppath is set as well, 4 backups will happen + Określ standardową ścieżkę kopii zapasowej, aby dodać kopię automatycznej kopii zapasowej zPIV. Jeśli ustawione jako katalog, każda kopia zapasowa generuje plik z sygnaturą czasową. Jeśli ustawione jako plik, będzie przepisywać do tego pliku każdą kopię zapasową. Jeśli ustawiona jest również ścieżka tworzenia kopii zapasowych, zostaną utworzone 4 kopie zapasowe - Sent - Wysłano + <category> can be: + <category>może być: - &Peers - &Peers + Display the stake modifier calculations in the debug.log file. + Wyświetl obliczenia modyfikatora stake w pliku debug.log. - Select a peer to view detailed information. - Wybierz peer by zobaczyć szczegółowe informacje + Display verbose coin stake messages in the debug.log file. + Wyświetlaj szczegółowe komunikaty o staking w pliku debug.log. - Direction - Kierunek + Enable publish hash block in <address> + Włącz publiczny hash block w <address> - Protocol - Protokół + Enable publish hash transaction in <address> + Włącz publish hash transaction w <address> - Version - Wersja + Enable publish raw block in <address> + Włącz publish raw block w <address> - Services - Usługi + Enable publish raw transaction in <address> + Włącz publish raw transaction w <address> - Connection Time - Czas połączenia + Error: No valid utxo! + Błąd: brak prawidłowego utxo! - Last Send - OStatnio wysłano + Failed to create mint + Nie udało się utworzyć mint - Last Receive - Ostatnio otrzymano + Failed to find Zerocoins in wallet.dat + Nie można znaleźć Zerocoins w pliku wallet.dat - Bytes Sent - Bajty wysłane + Failed to select a zerocoin + Nie udało się wybrać zerocoin - Bytes Received - Bajty otrzymane + Line: %d + Linia: %d - Ping Time - Czas PinguCzas pingu + Loading addresses... + Ładowanie adresów ... - &Wallet Repair - &Napraw portfel + Loading block index... + Ładowanie indeksu bloków ... - Salvage wallet - Odzyskaj portfel + Loading budget cache... + Ładowanie cache budżetu ... - Rescan blockchain files - Reskanuj pliki łańcucha bloków + Loading sporks... + Ładowanie sporks ... - Recover transactions 1 - Odzyskaj transakcji 1 + Loading wallet... (%3.2f %%) + Ładowanie portfela ... (%3,2f %%) - Recover transactions 2 - Odzyskaj transakcje 2 + Loading wallet... + Ładowanie portfela ... - Upgrade wallet format - Ulepsz format portfela + Lock is already in place. + Blokada jest już na miejscu. - Wallet repair options. - Opcje naprawy portfela + Masternode options: + Opcje Masternode: - %1 B - %1 B + Masternode queue is full. + Kolejka Masternode jest pełna. - %1 KB - %1 KB + Masternode: + Masternode: - %1 MB - %1 MB + Mixing in progress... + Trwa miksowanie ... - %1 GB - %1 GB + No Masternodes detected. + Nie wykryto żadnych Masternodes. - via %1 - przez %1 + Number of automatic wallet backups (default: 10) + Liczba automatycznych kopii zapasowych portfela (domyślnie: 10) - never - nigdy + Obfuscation is idle. + Obfuscation jest bezczynne - Inbound - Przychodzące + Obfuscation request complete: + Obfuscation żądanie kompletne: - Outbound - Wychodzące + Obfuscation request incomplete: + Obfuscation żądanie niekompletne: - Unknown - Nieznane + Options: + Opcje: - - - ReceiveCoinsDialog - &Message: - &Wiadomość: + Password for JSON-RPC connections + Hasło dla połączeń JSON-RPC - Copy label - Kopiuj zakładkę + Preparing for resync... + Przygotowanie do ponownej synchronizacji ... - Copy amount - Kopiuj liczbę + Print version and exit + Wydrukuj wersję i zakończ - - - ReceiveRequestDialog - &Save Image... - &Zapisz obrazek + RPC server options: + Opcje serwera RPC: - Address - Adres + Rescanning... + Ponowne skanowanie ... - Amount - Liczba + Session not complete! + Sesja nie została ukończona! - Label - Zakładka + Session timed out. + Sesja skończyła się. - - - RecentRequestsTableModel - Date - Data + Signing failed. + Logowanie nie powiodło się. - Label - Zakładka + Signing timed out. + Upłynął limit czasu logowania - Amount - Liczba + Signing transaction failed + Podpisanie transakcji nie powiodło się - (no label) - (brak zakładki) + Specify configuration file (default: %s) + Określ plik konfiguracyjny (domyślnie: %s) - - - SendCoinsDialog - Amount: - Liczba: + Specify data directory + Określ katalog danych - Priority: - Priorytet: + Specify pid file (default: %s) + Określ plik pid (domyślnie: %s) - medium - średni + Specify wallet file (within data directory) + Określ plik portfela (w katalogu danych) - Fee: - Opłata: + Specify your own public address + Podaj swój własny adres publiczny - no - nie + Spend Valid + Spend Valid - After Fee: - Po opłacie: + Staking options: + Staking opcje: - Change: - Zmiana: + Synchronization failed + Synchronizacja nie powiodła się - Clear &All - Wyczyść &Wszystko + Synchronization finished + Synchronizacja zakończona - Copy quantity - Kopiuj ilość + Synchronization pending... + Trwa synchronizacja ... - Copy amount - Kopiuj liczbę + Synchronizing budgets... + Synchronizowanie budżetów ... - Copy fee - Kopiuj opłatę + Synchronizing masternode winners... + Synchronizowanie masternode winners... - Copy after fee - Kopiuj po opłacie + Synchronizing masternodes... + Synchronizowanie masternode... - Copy priority - Kopiuj priorytet + Synchronizing sporks... + Synchronizowanie sporks... - Copy change - Kopiuj zmianę + Syncing zPIV wallet... + Synchronizuję portfel zPIV ... - (no label) - (brak zakładki) + The coin spend has been used + Wykorzystano już monety - - - SendCoinsEntry - Choose previously used address - Wybierz poprzednio używany adres + The transaction did not verify + Transakcja nie została zweryfikowana - Alt+A - Alt+A + This help message + Ten komunikat pomocy - Paste address from clipboard - Wklej adres ze schowka + This is experimental software. + To jest oprogramowanie eksperymentalne. - Alt+P - Alt+P + This is not a Masternode. + To nie jest Masternode. - - - ShutdownWindow - - - SignVerifyMessageDialog - Choose previously used address - Wybierz poprzednio używany adres + Too many spends needed + Zbyt wiele potrzebnych środków - Alt+A - Alt+A + Tor control port password (default: empty) + Hasło portu kontrolnego Tora (domyślnie: puste) - Paste address from clipboard - Wklej adres ze schowka + Transaction Created + Utworzono transakcję - Alt+P - Alt+P + Transaction Mint Started + Rozpoczęto transakcję Mint - Sign the message to prove you own this PIVX address - Zatwierdź wiadomość, aby udowodnić, że podany adres PIVX jest w twoim posiadaniu + Transaction amount too small + Kwota transakcji jest za mała - Clear &All - Wyczyść &Wszystko + Transaction amounts must be positive + Kwoty transakcji muszą być dodatnie - Reset all verify message fields - Resetuj wszystkie zweryfikowane pola tekstowe + Transaction created successfully. + Transakcja została pomyślnie utworzona. - The entered address is invalid. - Podany adres jest nieprawidłowy + Transaction fees are too high. + Opłaty za transakcje są zbyt wysokie. - Please check the address and try again. - Proszę sprawdzić adres i spróbować ponownie + Transaction not valid. + Transakcja nie jest ważna. - The entered address does not refer to a key. - Podany adres nie odnosi się do klucza + Transaction too large for fee policy + Transakcja zbyt duża dla zasad płatności - Wallet unlock was cancelled. - Odblokowywanie anulowanie + Transaction too large + Transakcja zbyt duża - Private key for the entered address is not available. - Prywatny klucz do podanego adresu nie jest dostępny + Transmitting final transaction. + Przesyłanie ostatecznej transakcji. - - - SplashScreen - PIVX Core - &Rdzeń PIVX + Upgrade wallet to latest format + Uaktualnij portfel do najnowszego formatu - - - TrafficGraphWidget - - - TransactionDesc - Status - Status + Use the test network + Użyj sieci testowej - Date - Data + Username for JSON-RPC connections + Nazwa użytkownika dla połączeń JSON-RPC - Amount - Liczba + Value is below the smallest available denomination (= 1) of zPIV + Wartość jest mniejsza od najmniejszej dostępnej (= 1) zPIV - - - TransactionDescDialog - - - TransactionTableModel - Date - Data + Verifying blocks... + Weryfikuję bloki ... - Address - Adres + Verifying wallet... + Weryfikuję portfel ... - - - TransactionView - Copy address - Kopiuj adres + Wallet is locked. + Portfel jest zablokowany. - Copy label - Kopiuj zakładkę + Wallet needed to be rewritten: restart PIVX Core to complete + Portfel musiał zostać przepisany: zrestartuj PIVX Core, aby zakończyć - Copy amount - Kopiuj liczbę + Wallet options: + Opcje portfela: - Copy transaction ID - Kopiuj ID transakcji + Wallet window title + Tytuł okna portfela - Confirmed - Potwierdzone + Warning + Ostrzeżenie - Date - Data + Warning: This version is obsolete, upgrade required! + Ostrzeżenie: ta wersja jest przestarzała, wymagana jest aktualizacja! - Label - Zakładka + Will retry... + Spróbuję ponownie ... - Address - Adres + You don't have enough Zerocoins in your wallet + Nie masz wystarczającej liczby Zerocoins w swoim portfelu - Exporting Failed - Eksport nieudany + You need to rebuild the database using -reindex to change -txindex + Musisz przebudować bazę danych za pomocą -reindex, aby zmienić -txindeks - - - UnitDisplayStatusBarControl - - - WalletFrame - - - WalletModel - - - WalletView - &Export - Eksportuj + Your entries added successfully. + Twoje wpisy zostały dodane pomyślnie. - - - ZPivControlDialog - 0 - 0 + Your transaction was accepted into the pool! + Twoja transakcja została przyjęta do puli! - - - pivx-core - Error - Błąd + Zerocoin options: + Opcje Zerocoin: - Information - Informacje + on startup + na starcie - Warning - Ostrzeżenie + wallet.dat corrupt, salvage failed + wallet.dat uszkodzony, odzyskiwanie nie powiodło się - + \ No newline at end of file diff --git a/src/qt/locale/pivx_pt.ts b/src/qt/locale/pivx_pt.ts index cb8d6b760ecf..f0b4f98f825c 100644 --- a/src/qt/locale/pivx_pt.ts +++ b/src/qt/locale/pivx_pt.ts @@ -396,6 +396,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -484,6 +487,9 @@ não + + ProposalFrame + QObject @@ -545,6 +551,10 @@ Label Descrição + + Address + Endereço + Amount Quantidade diff --git a/src/qt/locale/pivx_pt_BR.ts b/src/qt/locale/pivx_pt_BR.ts index b10d84babfa3..596832f21865 100644 --- a/src/qt/locale/pivx_pt_BR.ts +++ b/src/qt/locale/pivx_pt_BR.ts @@ -809,7 +809,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> A carteira está <b>criptografada</b> e atualmente <b>travada</b> - + BlockExplorer @@ -1157,6 +1157,17 @@ MultiSend: %1 Não é possível criar informação de diretório aqui. + + GovernancePage + + Form + Formulário + + + 0 + 0 + + HelpMessageDialog @@ -1436,45 +1447,10 @@ MultiSend: %1 (no label) (sem rótulo) - - The entered address: - - O endereço informado: - - - - is invalid. -Please check the address and try again. - é inválido. - -Favor verificar o endereço e tente novamente. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - A quantia total de seu vetor MultiSend é superior a 100% da recompensa de seu stake - - Please Enter 1 - 100 for percent. Favor inserir 1 - 100 para porcentagem. - - MultiSend Vector - - Vetor MultiSend - - - - Removed - Removido - - - Could not locate address - - Não foi possível localizar o endereço - - MultisigDialog @@ -1985,14 +1961,6 @@ https://www.transifex.com/pivx-project/pivx-project-translations Available Balance: Saldo disponível: - - Security Level: - Nível de Segurança: - - - Security Level 1 - 100 (default: 42) - Nível de segurança 1 - 100 (padrão: 42) - Pay &To: Pagar &Para: @@ -2166,6 +2134,9 @@ https://www.transifex.com/pivx-project/pivx-project-translations taxa: + + ProposalFrame + QObject @@ -2212,7 +2183,11 @@ https://www.transifex.com/pivx-project/pivx-project-translations %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget @@ -2438,10 +2413,6 @@ https://www.transifex.com/pivx-project/pivx-project-translations Do you want to continue?.<br /> Você deseja continuar?.<br /> - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Utilize as teclas para cima ou baixo para navegar no histórico e <b>Ctrl-L</b> para limpar a tela. - %1 B %1 B @@ -2486,12 +2457,12 @@ https://www.transifex.com/pivx-project/pivx-project-translations Um rótulo opcional para associar a novos endereços de recebimento. - &Label: - &Rótulo: + A&mount: + Quantia: - &Amount: - &Quantidade: + &Label: + &Rótulo: &Request payment @@ -2537,6 +2508,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations Copy amount Copiar quantia + + Copy address + Copiar endereço + ReceiveRequestDialog @@ -2607,6 +2582,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations Message Mensagem + + Address + Endereço + Amount Quantidade diff --git a/src/qt/locale/pivx_ro_RO.ts b/src/qt/locale/pivx_ro_RO.ts index 3cacdd78fe35..f54b976e0bdb 100644 --- a/src/qt/locale/pivx_ro_RO.ts +++ b/src/qt/locale/pivx_ro_RO.ts @@ -84,6 +84,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -120,6 +123,9 @@ PrivacyDialog + + ProposalFrame + QObject diff --git a/src/qt/locale/pivx_ru.ts b/src/qt/locale/pivx_ru.ts index 093db2ebda3b..2568c548e214 100644 --- a/src/qt/locale/pivx_ru.ts +++ b/src/qt/locale/pivx_ru.ts @@ -608,10 +608,6 @@ &Command-line options &Параметры командной строки - - Processed %n blocks of transaction history. - Обработано %n блоков истории транзакцийОбработано %n блоков истории транзакцийОбработано %n блоков истории транзакцийОбработано %n блоков истории транзакций - Synchronizing additional data: %p% Синхронизация дополнительных данных: %p% @@ -736,10 +732,6 @@ PIVX Core client Клиент PIVX Core - - %n active connection(s) to PIVX network - %n активных подключений к сети PIVX%n активных подключений к сети PIVX%n активных подключений к сети PIVX%n активных подключений к сети PIVX - Synchronizing with network... Синхронизация с сетью... @@ -760,26 +752,10 @@ 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 лет - Catching up... ловлю... @@ -864,7 +840,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Кошелек <b>зашифрован</b> и в настоящее время <b>заблокирован</b> - + BlockExplorer @@ -1224,6 +1200,17 @@ MultiSend: %1 Здесь невозможно создать каталог данных. + + GovernancePage + + Form + Вид + + + 0 + 0 + + HelpMessageDialog @@ -1541,50 +1528,10 @@ MultiSend будет неактивен до тех пор, пока вы не (no label) (нет метки) - - The entered address: - - Введенный адрес: - - - - is invalid. -Please check the address and try again. - недопустим. -Пожалуйста, проверьте адрес и попробуйте снова. - - - The total amount of your MultiSend vector is over 100% of your stake reward - - Итоговое значение вектора MultiSend превышает 100% ваших вознаграждений - - Please Enter 1 - 100 for percent. Введите 1 - 100 для указания процентов. - - Saved the MultiSend to memory, but failed saving properties to the database. - - Сохранили МультиОтправку в памяти, но не удалось сохранить свойства в базе данных. - - - - MultiSend Vector - - Вектор MultiSend - - - - Removed - Удалено - - - Could not locate address - - Не удалось найти адрес - - MultisigDialog @@ -2484,18 +2431,6 @@ zPIV are mature when they have more than 20 confirmations AND more than 2 mints 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Уровень безопасности для транзакций Zerocoin. Больше лучше, но требуется больше времени и ресурсов. - - - Security Level: - Уровень безопасности: - - - Security Level 1 - 100 (default: 42) - Уровень безопасности 1-100 ( по умолчанию: 42) - Pay &To: Оплатить &кому: @@ -2771,14 +2706,6 @@ To change the percentage (no restart required): Please be patient... Запуск ResetMintZerocoin: повторное сканирование полной блок-цепи, это потребует до 30 минут в зависимости от вашего оборудования. Будьте терпеливы ... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Расходы Zerocoin. -Вычислительно дорого, может потребоваться несколько минут в зависимости от выбранного уровня безопасности и вашего оборудования. -Пожалуйста, будьте терпеливы... ) needed. @@ -2950,22 +2877,10 @@ Maximum allowed: to a newly generated (unused and therefore anonymous) local address <br /> к вновь созданному (неиспользуемому и поэтому анонимному) локальному адресу <br /> - - with Security Level - с безопасным уровнем - Confirm send coins Подтвердить отправку монет - - Version 1 zPIV require a security level of 100 to successfully spend. - Для версии 1 zPIV требуется уровень безопасности 100, который можно успешно тратить. - - - Failed to spend zPIV - Не удалось провести zPIV - Failed to fetch mint associated with serial hash Не удалось получить чеканку, связанную с серийным хэшем @@ -2984,11 +2899,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Spend Zerocoin failed with status = Провести Zerocoin не удалось со статусом = - - PrivacyDialog - Enter an amount of PIV to convert to zPIV - PrivacyDialogPrivacyDialogPrivacyDialogPrivacyDialog - denomination: наименование: @@ -3022,6 +2932,9 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Комиссия: + + ProposalFrame + QObject @@ -3072,7 +2985,11 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou %1 ms %1 мс - + + PIVX Core + PIVX Core + + QRImageWidget @@ -3435,10 +3352,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Confirm resync Blockchain Подтвердить повторную синхронизацию Blockchain - - 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> для просмотра доступных команд. @@ -3510,6 +3423,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional label to associate with the new receiving address. Дополнительный ярлык для связи с новым адресом приема. + + A&mount: + С&умма: + 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 PIVX network. Необязательное сообщение для присоединения к платежному запросу, которое будет отображаться при открытии запроса. Примечание. Сообщение не будет отправлено с оплатой через сеть PIVX. @@ -3534,10 +3451,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou An optional amount to request. Leave this empty or zero to not request a specific amount. Необязательная сумма для запроса. Оставьте это пустое или ноль, чтобы не запрашивать определенную сумму. - - &Amount: - &Количество: - &Request payment &Запрос платежа @@ -3582,6 +3495,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Copy amount Копировать сумму + + Copy address + Копировать адрес + ReceiveRequestDialog @@ -3652,6 +3569,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Message Сообщение + + Address + Адрес + Amount Сумма @@ -3935,10 +3856,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou A fee %1 times higher than %2 per kB is considered an insanely high fee. Плата в %1 раз выше, чем %2 за КБ, считается безумно высокой. - - Estimated to begin confirmation within %n block(s). - Предполагается начать подтверждение в пределах %n блоков.Предполагается начать подтверждение в пределах %n блоков.Предполагается начать подтверждение в пределах %n блоков.Предполагается начать подтверждение в пределах %n блоков. - The recipient address is not valid, please recheck. Адрес получателя недействителен, повторите проверку. @@ -4261,10 +4178,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou TransactionDesc - - Open for %n more block(s) - Открыть для %n блоковОткрыть для %n блоковОткрыть для %n блоковОткрыть для %n блоков - Open until %1 Открыть до %1 @@ -4325,10 +4238,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou , has not been successfully broadcast yet , еще не была успешно передана - - , broadcast through %n node(s) - , передается через %n узлов, передается через %n узлов, передается через %n узлов, передается через %n узлов - Date Дата @@ -4369,10 +4278,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Credit Кредит - - matures in %n more block(s) - созревает в %n блоковсозревает в %n блоковсозревает в %n блоковсозревает в %n блоков - not accepted не принимаются @@ -4471,10 +4376,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Address Адрес - - Open for %n more block(s) - Открыть для %n блоковОткрыть для %n блоковОткрыть для %n блоковОткрыть для %n блоков - Open until %1 Открыть до %1 @@ -4877,11 +4778,7 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Select/Deselect All Выбрать / Отменить выбор - - Is Spendable - Расходы - - + pivx-core @@ -5368,6 +5265,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Error recovering public key. Ошибка при восстановлении открытого ключа. + + Error writing zerocoinDB to disk + Ошибка записи zerocoinDB на диск + Error Ошибка @@ -5404,6 +5305,10 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to listen on any port. Use -listen=0 if you want this. Не удалось прослушивать любой порт. Используйте -listen = 0, если вы этого хотите. + + Failed to parse host:port string + Не удалось проанализировать хост: строка порта + Failed to read block Не удалось прочитать блок @@ -5680,10 +5585,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Failed to create mint Не удалось создать монетный двор - - Failed to deserialize - Не удалось десериализовать - Failed to find Zerocoins in wallet.dat Не удалось найти Zerocoins в файле wallet.dat @@ -6124,14 +6025,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou The coin spend has been used Расходы на монеты использовались - - The new spend coin transaction did not verify - Новая транзакция с мошенничеством не подтвердила - - - The selected mint coin is an invalid coin - Выбранная монетка - недействительна - The transaction did not verify Транзакция не подтверждена @@ -6280,10 +6173,6 @@ Either mint higher denominations (so fewer inputs are needed) or reduce the amou Verifying wallet... Проверка кошелька ... - - Version 1 zPIV require a security level of 100 to successfully spend. - Для версии 1 zPIV требуется уровень безопасности 100, который можно успешно тратить. - Wallet %s resides outside data directory %s Кошелек %s находится за пределами каталога данных %s diff --git a/src/qt/locale/pivx_sk.ts b/src/qt/locale/pivx_sk.ts index 104f7c6190b5..1072dd423dbb 100644 --- a/src/qt/locale/pivx_sk.ts +++ b/src/qt/locale/pivx_sk.ts @@ -756,7 +756,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Peňaženka je <b>zašifrovaná</ b> a momentálne je <b>zamknutá</ b> - + BlockExplorer @@ -864,6 +864,9 @@ MultiSend: %1 FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -984,12 +987,19 @@ MultiSend: %1 Skopírovať sumu + + ProposalFrame + QObject Amount Suma + + PIVX Core + PIVX Core + QRImageWidget @@ -1011,6 +1021,10 @@ MultiSend: %1 Copy amount Skopírovať sumu + + Copy address + Skopírovať adresu + ReceiveRequestDialog @@ -1037,6 +1051,10 @@ MultiSend: %1 Label Štítok + + Address + Adresa + Amount Suma diff --git a/src/qt/locale/pivx_sv.ts b/src/qt/locale/pivx_sv.ts index 60d88c553e27..9840165eb049 100644 --- a/src/qt/locale/pivx_sv.ts +++ b/src/qt/locale/pivx_sv.ts @@ -271,7 +271,7 @@ Paste address from clipboard - Limma in adress från urklipp + Infoga adress från urklipp Alt+P @@ -610,7 +610,7 @@ Processed %n blocks of transaction history. - Bearbetar %n block av transaktionshistoriken.Bearbetar %n block av transaktionshistoriken. + Bearbetat %n block av transaktionshistoriken.Bearbetat %n block av transaktionshistoriken. Synchronizing additional data: %p% @@ -624,6 +624,10 @@ Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only Plånboken är <b>krypterad</b> och för tillfället <b>olåst</b> för anonymisering och staking enbart + + Tor is <b>enabled</b>: %1 + Tor är <b>aktiverat</b>: %1 + &File Fil @@ -646,7 +650,7 @@ PIVX Core - PIVX Kärna + PIVX Core Send coins to a PIVX address @@ -738,7 +742,7 @@ %n active connection(s) to PIVX network - %n aktiv(a) annslutning(ar) till PIVX nätverket%n aktiv(a) annslutning(ar) till PIVX nätverket + %n aktiva anslutning(ar) till PIVX nätverket%n aktiva anslutning(ar) till PIVX nätverket Synchronizing with network... @@ -762,15 +766,15 @@ %n hour(s) - %n timme%n timmar + %n timmar%n timmar %n day(s) - %n dag%n dagar + %n dagar%n dagar %n week(s) - %n vecka%n veckor + %n veckor%n veckor %1 and %2 @@ -850,7 +854,7 @@ MultiSend: %1 AutoMint is currently enabled and set to - AutoMint är för tillfället aktiverat och inställd på + AutoMint är för tillfället aktiverat och inställt på AutoMint is disabled @@ -864,7 +868,7 @@ MultiSend: %1 Wallet is <b>encrypted</b> and currently <b>locked</b> Plånbok är <b>krypterad</b> och tillfälligt <b>låst</b> - + BlockExplorer @@ -1224,6 +1228,17 @@ MultiSend: %1 Kan inte skapa data katalog här. + + GovernancePage + + Form + Formulär + + + 0 + 0 + + HelpMessageDialog @@ -1232,7 +1247,7 @@ MultiSend: %1 PIVX Core - PIVX Kärna + PIVX Core (%1-bit) @@ -1542,47 +1557,78 @@ MultiSend kommer inte aktiveras om du inte tryckt på Aktivera (Ingen etikett) - The entered address: - - Den inmatade adressen: - + MultiSend Active for Stakes and Masternode Rewards + MultiSend Aktivt för Stakes och Huvudnods Belöningar + + + MultiSend Active for Stakes + MultiSend Aktiv för Stakes + + + MultiSend Active for Masternode Rewards + MultiSend Aktivt för Huvudnods Belöningar + + + MultiSend Not Active + MultiSend inte Aktivt - is invalid. + The entered address: %1 is invalid. Please check the address and try again. - är ogiltig. + Den angivna adressen: %1 är ej giltig. Var vänlig kontrollera adressen och försök igen. - The total amount of your MultiSend vector is over 100% of your stake reward - - Din totala MultiSend vektor mängd överstiger 100% av din staking belöning - + The total amount of your MultiSend vector is over 100% of your stake reward + Den totala mängden av din MultiSend vektor är över 100% av din stake belöning - Please Enter 1 - 100 for percent. - Var vänlig mata in 1 - 100 i procent. + Saved the MultiSend to memory, but failed saving properties to the database. + Sparade MultiSend till minne, men misslyckades spara egenskaperna till databasen. - Saved the MultiSend to memory, but failed saving properties to the database. - - Sparade MultiSend till minne, men misslyckades spara egenskaperna till databasen. - + MultiSend Vector + MultiSend Vektor - MultiSend Vector - - MultiSend Vektor + Removed %1 + Borttaget %1 - Removed - Borttagen + Could not locate address + Kunde inte lokalisera adress - Could not locate address - - Kunde inte lokalisera adress - + Unable to activate MultiSend, check MultiSend vector + Kan ej aktivera MultiSend, kontrollera MultiSend vektor + + + Need to select to send on stake and/or masternode rewards + Behöver välja att skicka på stake och/eller huvudnods belöningar + + + MultiSend activated but writing settings to DB failed + MultiSend aktiverat men misslyckades att skriva inställningar till DB + + + MultiSend activated + MultiSend aktiverat + + + First Address Not Valid + Första Adress Ej Giltig + + + MultiSend deactivated but writing settings to DB failed + MultiSend avaktiverat men misslyckades skriva inställningar till DB + + + MultiSend deactivated + MultiSend avaktiverat + + + Please Enter 1 - 100 for percent. + Var vänlig mata in 1 - 100 i procent. @@ -1657,7 +1703,7 @@ Var god vänta efter att du trycker på importera. Quantity Selected: - Kvantitet Vald: + Vald Kvantitet: 0 @@ -1864,6 +1910,10 @@ Var god vänta efter att du trycker på importera. MB MB + + Number of script &verification threads + Antal script &verifications trådar + (0 = auto, <0 = leave that many cores free) (0 = auto, <0 = lämna så många "kärnor" fria) @@ -1888,6 +1938,10 @@ Var god vänta efter att du trycker på importera. Allow incoming connections Tillåt inkommande anslutningar + + &Connect through SOCKS5 proxy (default proxy): + &Koppla upp genom SOCKS5 proxy (standard proxy): + Expert Expert @@ -1904,6 +1958,10 @@ Var god vänta efter att du trycker på importera. Whether to show coin control features or not. Huruvida mynt kontroll funktioner ska visas eller inte. + + Enable coin &control features + Tillåt mynt &kontroll funktioner + Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab. Visa ytterligare en flik som visar alla dina huvudnoder i sin första sub-flik<br/>och alla huvudnoder på nätverket i en andra sub-flik. @@ -2006,10 +2064,18 @@ https://www.transifex.com/pivx-project/pivx-project-translations &Display &Display + + User Interface &language: + Användargränssnitt och &språk: + User Interface Theme: Användargränssnitts Tema: + + &Unit to show amounts in: + &Enhet att visa mängd i: + Choose the default subdivision unit to show in the interface and when sending coins. Välj standardindelningsenheten att visa i gränssnittet och när mynt skickas. @@ -2022,6 +2088,14 @@ https://www.transifex.com/pivx-project/pivx-project-translations Hide empty balances Dölj tomma saldon + + Hide orphan stakes in transaction lists + Göm föräldralösa stakes i transaktionslistan + + + Hide orphan stakes + Göm föräldralösa stakes + 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 URLs (t.ex. en blockutforskare) som visar sig i transaktionsfliken som objekt i innehållsmeny. %s i URLen ersätts med transaktionshash. Flera URLs separeras med vertical stång |. @@ -2038,6 +2112,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations Reset all client options to default. Starta om alla klient alternativ till standard. + + &Reset Options + &Återställnings Inställningar + &OK &OK @@ -2151,7 +2229,7 @@ Omogna: bekräftade men under 1 myntning av samma valör efter den blev präglad The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. - Informationen kan vara föråldrad. Din plånbok synkroniserar automatiskt med PIVX nätverket efter att en anslutning är etablerad, men denna process har inte blivit klar än. + nformationen kan vara föråldrad. Din plånbok synkroniserar automatiskt med PIVX nätverket efter att en anslutning är etablerad, men denna process har inte blivit klar än. OVERVIEW @@ -2460,18 +2538,6 @@ zPIV är mogna när de har över 20 bekräftelser OCH över 2 präglingar av sam 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Säkerhetsnivå på Zerocoin Transaktioner. Mer är bättre, men behöver mer tid och resurser. - - - Security Level: - Säkerhetsnivå: - - - Security Level 1 - 100 (default: 42) - Säkerhetsnivå 1- 100 (standard: 42) - Pay &To: Betala &Till: @@ -2498,7 +2564,7 @@ zPIV är mogna när de har över 20 bekräftelser OCH över 2 präglingar av sam &Label: - Etikett: + &Etikett: Enter a label for this address to add it to the list of used addresses @@ -2548,7 +2614,7 @@ zPIV är mogna när de har över 20 bekräftelser OCH över 2 präglingar av sam Unconfirmed: less than 20 confirmations Immature: confirmed, but less than 1 mint of the same denomination after it was minted Obekräftade: Under 20 bekräftelser -Omogna: bekräftade men under 1 mint av samma valör efter den blev mintad +Omogna: bekräftade men under 1 myntning av samma valör efter den blev präglad Show the current status of automatic zPIV minting. @@ -2616,6 +2682,14 @@ För att ändra procenten (ingen omstart krävs): 0 x 0 x + + Show zPIV denominations list + Visa zPIV valör lista + + + Show Denominations + Visa Valörer + Denominations with value 5: Valörer med värde 5: @@ -2672,6 +2746,10 @@ För att ändra procenten (ingen omstart krävs): Denom. with value 5000: Valörer med värde 5000: + + Hide Denominations + Göm Valörer + Priority: Prioritet: @@ -2749,14 +2827,6 @@ För att ändra procenten (ingen omstart krävs): Please be patient... Startar ResetMintZerocoin: skannar om hela blockchain, detta kan ta upp till 30 minuter beroende på din hårdvara. Ha lite tålamod... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Spendera Zerocoin. -Beräkningsmässigt krävande, kan behöva flera minuter beroende på den valda säkerhetsnivån och din hårdvara. -Var god dröj... ) needed. @@ -2928,22 +2998,10 @@ Högsta tillåtna: to a newly generated (unused and therefore anonymous) local address <br /> till en nygjord (oanvänd och därför anonym) lokal adress<br /> - - with Security Level - med Säkerhetsnivå - Confirm send coins Bekräfta att skicka mynt - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV kräver en säkerhetsnivå på 100 för att kunna spenderas med framgång. - - - Failed to spend zPIV - Misslyckades med att spendera zPIV - Failed to fetch mint associated with serial hash Misslyckades med att hämta myntning associerat med serie hashen @@ -2965,7 +3023,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi PrivacyDialog Enter an amount of PIV to convert to zPIV - SekretessRutaSekretessDialog + SekretessDialogSekretessDialog denomination: @@ -3000,6 +3058,9 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi avgift: + + ProposalFrame + QObject @@ -3050,13 +3111,21 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi %1 ms %1 ms - + + PIVX Core + PIVX Core + + QRImageWidget &Save Image... &Spara Bild... + + &Copy Image + &Kopiera Bild + Save QR Code Spara QR Kod @@ -3074,7 +3143,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi &Information - information + &Information General @@ -3096,6 +3165,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Number of connections Antal anslutningar + + &Open + &Öppna + Startup time Starttid @@ -3144,6 +3217,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Number of Masternodes Antal Huvudnoder "masternodes" + + &Console + &Konsoll + Clear console Rensa konsol @@ -3152,6 +3229,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi &Network Traffic &Nätverkstrafik + + &Clear + &Rensa + Totals Totalt @@ -3224,6 +3305,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Ping Time Ping Tid + + &Wallet Repair + &Plånboks Reparation + Delete local Blockchain Folders Radera lokala Blockchain Mappar @@ -3352,6 +3437,22 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Ban Node for förbjud Nod för att + + 1 &hour + 1 &timme + + + 1 &day + 1 &dag + + + 1 &week + 1 &vecka + + + 1 &year + 1 &år + This will delete your local blockchain folders and the wallet will synchronize the complete Blockchain from scratch.<br /><br /> Detta kommer radera dina lokala blockchain mappar och plånboken kommer synkronisera den kompletta Blockchainen från början.<br /><br /> @@ -3373,13 +3474,17 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Godkänn omsynkronisering av Blockchain - 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 historiken, och <b>Ctrl-L</b> för att rensa skärm. + Use up and down arrows to navigate history, and %1 to clear screen. + Använd upp- och ner-pilarna för att navigera historiken, och %1 för att rensa skärm. Type <b>help</b> for an overview of available commands. Skriv <b>help</b> för en överblick av tillgängliga kommandon. + + WARNING: Scammers have been active, telling users to type commands here, stealing their wallet contents. Do not use this console without fully understanding the ramifications of a command. + VARNING: Bedrägare har varit aktiva, säger åt användare att skriva kommandon här, stjäl deras innehåll i plånboken. Använd inte denna konsoll utan att fullt förstå vad ett kommando kan leda till. + %1 B %1 B @@ -3447,6 +3552,18 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi An optional label to associate with the new receiving address. En valfri etikett att associera med den nya mottagaradressen. + + Your receiving address. You can copy and use it to receive coins on this wallet. A new one will be generated once it is used. + Din mottagaradress. Du kan kopiera och använda den för att ta emot mynt på denna plånbok. En ny kommer genereras när den har använts. + + + &Address: + &Adress + + + A&mount: + &Mängd: + 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 PIVX network. Ett frivilligt meddelande att bifoga till betalningsförfrågan, som kommer visas när förfrågan öppnas. Observera: Medelandet kommer inte skickas med betalningen över PIVX nätverket. @@ -3471,6 +3588,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi An optional amount to request. Leave this empty or zero to not request a specific amount. En frivillig mängd att anhålla om. Lämna den tom eller på noll för att inte fråga efter en specifik mängd. + + &Request payment + &Förfråga betalning + Clear all fields of the form. Rensa alla fält i formuläret. @@ -3479,6 +3600,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Clear Rensa + + Receiving Addresses + Mottagar Adress + Requested payments history Förfrågade betalningshistorik @@ -3511,6 +3636,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Copy amount Kopiera antal + + Copy address + Kopiera Adress + ReceiveRequestDialog @@ -3579,7 +3708,11 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Message - Medelande + Meddelande + + + Address + Adress Amount @@ -3614,7 +3747,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Insufficient funds! - Otillräckliga pengar! + Otillräckliga medel ! Quantity: @@ -3658,7 +3791,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi If this is activated, but the change address is empty or invalid, change will be sent to a newly generated address. - Om detta är aktiverat, men växeladressen är tom eller ogiltig så kommer växel skickas till en nybildad adress. + Om detta är aktiverat, men växeladressen är tom eller ogiltig så kommer växeln att skickas till en nybildad adress. Custom change address @@ -3680,6 +3813,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi 0 PIV 0 PIV + + SwiftX technology allows for near instant transactions - A flat fee of 0.01 PIV applies + SwiftX teknologi tillåter nästan omedelbara transaktioner - En fast avgift på 0.01PIV tillkommer + Transaction Fee: Transaktionsavgift: @@ -3688,6 +3825,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Choose... Välj... + + collapse fee-settings + göm avgifts-inställningar + Minimize Minimera @@ -3764,6 +3905,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Confirm the send action Bekräfta skickandet + + S&end + S&icka + Clear all fields of the form. Rensa alla fält i formuläret. @@ -3776,6 +3921,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Send to multiple recipients at once Skicka till flera mottagare på en gång + + Add &Recipient + Lägg till &Mottagare + Anonymized PIV Anonymiserade PIV @@ -3854,7 +4003,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Estimated to begin confirmation within %n block(s). - Bekräftelse börjar om uppskattningsvis %n block.Bekräftelse börjar om uppskattningsvis %n block. + Uppskattat att starta konfirmation inom %n block.Uppskattat att starta konfirmation inom %n block. The recipient address is not valid, please recheck. @@ -3908,6 +4057,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Pay only the minimum fee of %1 Betala endast minsta avgift på %1 + + Estimated to get 6 confirmations near instantly with <b>SwiftX</b>! + Upskattar att få 6 konfirmationer nästan omedelbart med <b>SwiftX</b>! + Warning: Unknown change address Varning: Okänd växeladress @@ -3953,7 +4106,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi &Label: - Etikett: + &Etikett: Enter a label for this address to add it to the list of used addresses @@ -3961,7 +4114,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi A&mount: - &mängd: + &Mängd: Message: @@ -4103,15 +4256,15 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi The entered address does not refer to a key. - Den angivna adressen refererar inte till en nyckel. + Den angivna adressen visar inte till en nyckel. Wallet unlock was cancelled. - Upplåsningen av plånboken var avbruten. + Upplåsningen av plånboken blev avbruten. Private key for the entered address is not available. - Den privata nyckel som angivits flr adressen är inte tillgänglig. + Den privata nyckel som angivits till adressen är inte tillgänglig. Message signing failed. @@ -4180,7 +4333,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi TransactionDesc Open for %n more block(s) - Öppen för %n fler blockÖppen för %n fler block + Öppna för %n fler blockÖppna för %n fler block Open until %1 @@ -4390,7 +4543,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Open for %n more block(s) - Öppen för %n fler blockÖppen för %n fler block + Öppna för %n fler blockÖppna för %n fler block Open until %1 @@ -4601,7 +4754,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Masternode Reward - Huvudnods Belöning + Masternode Belöning Zerocoin Mint @@ -4641,7 +4794,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Copy transaction ID - Kopiera transactions ID + Kopiera transaktions ID Edit label @@ -4651,6 +4804,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Show transaction details Visa Transaktionsdetaljer + + Hide orphan stakes + Göm föräldralösa stakes + Export Transaction History Exportera Transaktionshistorik @@ -4689,7 +4846,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Exporting Failed - Exportering Misslyckad + Exportering Misslyckades There was an error trying to save the transaction history to %1. @@ -4794,11 +4951,7 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Select/Deselect All Markera/Avmarkera alla - - Is Spendable - Är Spenderbar - - + pivx-core @@ -5001,6 +5154,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi 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. Denna produkt inkluderar mjukvara utvecklad av OpenSSL Projektet för användning i OpenSSL Toolkit <https://www.openssl.org/> och kryptografisk mjukvara skriven av Eric Young och UPnP mjukvara skriven av Thomas Bernard. + + Total length of network version string (%i) exceeds maximum length (%i). Reduce the number or size of uacomments. + Totala längden av nätverks verisionens sträng (%i) överskrider maximala längd (%i). Minska mängden eller storleken av uakommentarer. + Unable to bind to %s on this computer. PIVX Core is probably already running. Kan inte binda till %s på denna dator. PIVX Core körs förmodligen redan. @@ -5105,6 +5262,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Always query for peer addresses via DNS lookup (default: %u) Fråga alltid efter peer adresser via DNS lookup (standard: %u) + + Append comment to the user agent string + Bifoga kommentar till användaragent strängen + Attempt to recover private keys from a corrupt wallet.dat Försök återfå privata nycklar från en korrupt wallet.dat @@ -5285,6 +5446,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Error recovering public key. Fel vid återhämtning av offentlig nyckel. + + Error writing zerocoinDB to disk + Fel vid skrivning av zerocoinDB till disk + Error Fel @@ -5321,6 +5486,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Failed to listen on any port. Use -listen=0 if you want this. Misslyckades att lyssna på någon port. Använd -listen=0 om du vill detta. + + Failed to parse host:port string + Misslyckades ta ut satsdelarna i host:port sträng + Failed to read block Misslyckades läsa block @@ -5597,10 +5766,6 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Failed to create mint Misslyckades skapa mint - - Failed to deserialize - Misslyckades att deserialize - Failed to find Zerocoins in wallet.dat Misslyckades hitta Zerocoins i wallet.dat @@ -6041,14 +6206,6 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi The coin spend has been used Mynt spenderingen har redan använts - - The new spend coin transaction did not verify - Den nya spendera mynt transaktionen kunde inte verifieras - - - The selected mint coin is an invalid coin - Den valda mint myntet är ett ogiltigt mynt - The transaction did not verify Transaktionen verifierades inte @@ -6177,6 +6334,10 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Use the test network Använd test nätverket + + User Agent comment (%s) contains unsafe characters. + Användaragent kommentar (%s) innehåller osäkra tecken. + Username for JSON-RPC connections Användarnamn för JSON-RPC anslutningar @@ -6197,10 +6358,6 @@ Minta antingen högre valörer (så att färre inputs behövs) eller spendera mi Verifying wallet... Verifierar plånbok - - Version 1 zPIV require a security level of 100 to successfully spend. - Version 1 zPIV kräver en säkerhetsnivå på 100 för att kunna spenderas med framgång. - Wallet %s resides outside data directory %s Plånbok %s finns utanför data katalog %s diff --git a/src/qt/locale/pivx_tr.ts b/src/qt/locale/pivx_tr.ts index f32ba91919d5..60caa61662c8 100644 --- a/src/qt/locale/pivx_tr.ts +++ b/src/qt/locale/pivx_tr.ts @@ -616,6 +616,14 @@ %1 behind. Scanning block %2 %1 geride. blok tarıyor %2 + + Wallet is <b>encrypted</b> and currently <b>unlocked</b> for anonymization and staking only + Cüzdan şifrelenmiştirve şu anda sadece anonimleştirme ve staking yapılabilmesi amacıyla kilitsiz</b> hale getirilmiştir. + + + Tor is <b>enabled</b>: %1 + Tor <b>etkin</b> hale getirilmiştir: %1 + &File &Dosya @@ -786,7 +794,7 @@ Sent MultiSend transaction - MultiSend işlemi gönderildi + ÇokluGönderi işlemi gönderildi Date: %1 @@ -804,7 +812,7 @@ Adres: %4 Staking is active MultiSend: %1 Staking aktif - Multisend: %1 + ÇokluGönderi: %1 Active @@ -817,8 +825,8 @@ Adres: %4 Staking is not active MultiSend: %1 - staking inaktif - Multisend: %1 + Staking etkin değildir +ÇokluGönderi: %1 AutoMint is currently enabled and set to @@ -836,7 +844,7 @@ Adres: %4 Wallet is <b>encrypted</b> and currently <b>locked</b> Cüzdan<b>şifreli</b>ve şu anda<b>kilitli</b> - + BlockExplorer @@ -1193,6 +1201,17 @@ Adres: %4 Burada veri dizini oluşturulamıyor. + + GovernancePage + + Form + Form + + + 0 + 0 + + HelpMessageDialog @@ -1402,7 +1421,7 @@ Adres: %4 MultiSendDialog MultiSend - MultiSend + ÇokluGönderi Enter whole numbers 1 - 100 @@ -1416,19 +1435,9 @@ Adres: %4 Enter Address to Send to Gönderim adresi girin - - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other PIVX addresses after it matures. -To Add: enter percentage to give and PIVX address to add to the MultiSend vector. -To Delete: Enter address to delete and press delete. -MultiSend will not be activated unless you have clicked Activate - MultiSend, olgunlaştıktan sonra diğer PIVX adreslerinin bir listesine otomatik olarak kazancınızın 100% 'ünü veya grup yazınızı ödüllendirmenize olanak tanır. -Eklemek için: Verilecek yüzdeyi ve MultiSend vektörüne eklemek için PIVX adresi girin. -Silme: Silinecek adresi girin ve silmek için basın. -MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir - Add to MultiSend Vector - Ekle MultiSend Vector + ÇokluGönderi Vektörüne Ekle Add @@ -1436,7 +1445,7 @@ MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir Deactivate MultiSend - Deaktif et MultiSend + ÇokluGönderi'yi Etkisiz hale getir Deactivate @@ -1476,7 +1485,7 @@ MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir Delete Address From MultiSend Vector - MultiSend Vector den adresi sil + ÇokluGönderi Vektöründen Adresi Sil Delete @@ -1484,7 +1493,7 @@ MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir Activate MultiSend - aktifle MultiSend + ÇokluGönderi'yi Etkinleştir Activate @@ -1492,11 +1501,11 @@ MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir View MultiSend Vector - GösterMultiSend Vector + ÇokluGönderi Vektörünü Görüntüle View MultiSend - Göster multisend + ÇokluGönderi'yi Görüntüle Send For Stakes @@ -1511,42 +1520,42 @@ MultiSend, Etkinleştir'i tıklamadığınız sürece etkinleştirilmeyecektir(etiket yok) - The entered address: - - Girilen adres: - + MultiSend Active for Stakes and Masternode Rewards + Masternode Ödülleri için ÇokluGönderi Etkinleştirilmiştir + + + MultiSend Active for Masternode Rewards + Masternode Ödülleri için ÇokluGönderi Etkinleştirilmiştir + + + MultiSend Not Active + ÇokluGönderi Etkin değildir - is invalid. + The entered address: %1 is invalid. Please check the address and try again. - geçersiz. -Lütfen adresi kontrol edin ve tekrar deneyin. + Girili adres: %1 geçersiz. +Lütfen adresi kontrol ediniz ve tekrar deneyiniz. - The total amount of your MultiSend vector is over 100% of your stake reward - - MultiSend vectorünüzün toplam miktarı stake ödülünün 100% ünden fazla - + Removed %1 + Kaldırıldı %1 - Please Enter 1 - 100 for percent. - Lütfen 1 - 100 arası yüzdelik miktarı girin + Could not locate address + Adres bulunamadı. - MultiSend Vector - - MultiSend Vector - + MultiSend activated + ÇokluGönderi geçerli hale getirildi - Removed - Silindi + First Address Not Valid + İlk Adres Geçersiz - Could not locate address - - Adres bulunamıyor - + Please Enter 1 - 100 for percent. + Lütfen 1 - 100 arası yüzdelik miktarı girin @@ -1910,6 +1919,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations Map port using &UPnP Map port using &UPnP + + Enable automatic minting of PIV units to zPIV + PIV birimlerinin zPIV'e otomatik basımını ektinleştir + Enable zPIV Automint zPIV Otomatik basımı etkinleştir @@ -2058,7 +2071,15 @@ https://www.transifex.com/pivx-project/pivx-project-translations The supplied proxy address is invalid. Verilen proxy adresi geçersiz. - + + The supplied proxy port is invalid. + Verilen proxy port adresi geçersiz. + + + The supplied proxy settings are invalid. + Verilen proxy seçenekleri geçersiz. + + OverviewPage @@ -2097,6 +2118,10 @@ https://www.transifex.com/pivx-project/pivx-project-translations Staked or masternode rewards that has not yet matured Staklanmış veya masternod ödülleri henüz olgunlaşmamış + + Current locked balance in watch-only addresses + Mevcut kilitli bakiye sadece görüntülenebilir adreslerde. + Your current PIVX balance, unconfirmed and immature transactions included Güncel PIVX bakiyeniz, onaylanmamış ve olgunlaşmamış işlemler dahil @@ -2105,6 +2130,18 @@ https://www.transifex.com/pivx-project/pivx-project-translations zPIV Balance zPIV Bakiyesi + + Mature: more than 20 confirmation and more than 1 mint of the same denomination after it was minted. +These zPIV are spendable. + Olgun: basılmış olduktan sonra 20'den fazla onay alınmış ve aynı ölçü biriminden 1 kereden fazla basılmış. +Bu zPIV ler harcanabilir. + + + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Doğrulanmamış: 20'den az doğrulama +Olgunlaşmamış: onaylandı, ancak basıldıktan sonra aynı ölçü biriminden 1 taneden daha az basım bulunmakta. + The displayed information may be out of date. Your wallet automatically synchronizes with the PIVX network after a connection is established, but this process has not completed yet. Görüntülenen bilgiler güncelliğini yitirmiş olabilir. Bir bağlantı kurulduktan sonra M-cüzdanınız otomatik olarak PIVX şebekesiyle senkronize edilir, ancak bu işlem henüz tamamlanmadı. @@ -2372,6 +2409,18 @@ To enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1' in pivx.conf< PRIVACY GİZLİLİK + + Enter an amount of Piv to convert to zPIV + ZPiv'e dönüştürmek için bir miktar Piv girin + + + zPIV Control + zPIV Kontrolü + + + zPIV Selected: + zPiv Seçildi: + Quantity Selected: Seçilen miktar: @@ -2404,18 +2453,6 @@ zPIV, 20'den fazla teyit bulunduğunda olgunlaşır ve bundan sonra aynı mezhep 0 zPIV 0 zPIV - - Security Level for Zerocoin Transactions. More is better, but needs more time and resources. - Zerocoin İşlemleri için Güvenlik Seviyesi. Daha fazlası iyidir, ancak daha fazla zaman ve kaynak gerekmektedir. - - - Security Level: - Güvenlik seviyesi: - - - Security Level 1 - 100 (default: 42) - Güvenlik seviyesi 1 - 100 (varsayılan: 42) - Pay &To: şuna öde: @@ -2488,6 +2525,12 @@ zPIV, 20'den fazla teyit bulunduğunda olgunlaşır ve bundan sonra aynı mezhep Denom. with value 1: Denom. değer 1 ile: + + Unconfirmed: less than 20 confirmations +Immature: confirmed, but less than 1 mint of the same denomination after it was minted + Doğrulanmamış: 20'den az doğrulama +Olgunlaşmamış: onaylandı, ancak basıldıktan sonra aynı ölçü biriminden 1 basım daha az miktarda. + AutoMint Status Otomatik Basım Durumu @@ -2632,14 +2675,6 @@ zPIV, 20'den fazla teyit bulunduğunda olgunlaşır ve bundan sonra aynı mezhep Starting ResetMintZerocoin: rescanning complete blockchain, this will need up to 30 minutes depending on your hardware. Please be patient... ResetMintZerocoin: tam blok zinciri yeniden tarama, bu donanımınıza bağlı olarak 30 dakika kadar sürmelidir. -Lütfen sabırlı olun... - - - Spending Zerocoin. -Computationally expensive, might need several minutes depending on the selected Security Level and your hardware. -Please be patient... - Harcanıyor Zerocoin. -Hesaplaması pahalı, biraz fazla hardware. ve seçili güvenlik seviyesine bağlı olarak. Lütfen sabırlı olun... @@ -2728,10 +2763,6 @@ Maksimum bırakılan: to a newly generated (unused and therefore anonymous) local address <br /> yeni üretilen (kullanılmayan ve bu nedenle isimsiz) yerel adrese <br /> - - with Security Level - Güvenlik seviyesi ile - Confirm send coins Coin gönderimini onayla @@ -2783,6 +2814,9 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik ücret: + + ProposalFrame + QObject @@ -2833,7 +2867,11 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik %1 ms %1 ms - + + PIVX Core + PIVX CORE + + QRImageWidget @@ -3135,10 +3173,6 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik Confirm resync Blockchain Blockchaini resenkronize etmeyi onaylayın - - Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. - Geçmişi görmek için ukarı ve aşağı okları kullanın, ve <b>Ctrl-L</b> ekranı silmek için. - Type <b>help</b> for an overview of available commands. Yazın<b>help</b> mevcut komutaları görmek için @@ -3198,6 +3232,10 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik An optional label to associate with the new receiving address. Yeni alma adresi ile ilişkilendirilebilecek isteğe bağlı bir etiket. + + A&mount: + Miktar: + 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 PIVX network. Talep açıldığında görüntülenecek ödeme isteğine eklemek için isteğe bağlı bir mesaj. Not: Mesaj, ödemenin PIVX şebekesi üzerinden gönderilmeyecektir. @@ -3218,10 +3256,6 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik An optional amount to request. Leave this empty or zero to not request a specific amount. İsteğe bağlı olarak isteğe bağlı bir miktar. Belirli bir miktar talep etmemek için bu boş bırakın veya sıfırlayın. - - &Amount: - miktar: - &Request payment Ödeme talep et @@ -3266,6 +3300,10 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik Copy amount Miktarı kopyala + + Copy address + Adresi Kopyala + ReceiveRequestDialog @@ -3336,6 +3374,10 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik Message Mesaj + + Address + adres + Amount Miktar @@ -4481,11 +4523,7 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik Select/Deselect All Seç/Çıkar Hepsini - - Is Spendable - Harcanabilir - - + pivx-core @@ -4763,4 +4801,4 @@ Ya daha yüksek mezhepleri daraltın (daha az girdi gereklidir) veya harcama mik Başlangıçta - \ No newline at end of file + diff --git a/src/qt/locale/pivx_uk.ts b/src/qt/locale/pivx_uk.ts index 957e6739c719..9f00dfa9fa29 100644 --- a/src/qt/locale/pivx_uk.ts +++ b/src/qt/locale/pivx_uk.ts @@ -220,6 +220,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -264,6 +267,9 @@ PrivacyDialog + + ProposalFrame + QObject @@ -293,6 +299,10 @@ Label Мітка + + Address + Адреса + (no label) (без міток) diff --git a/src/qt/locale/pivx_vi.ts b/src/qt/locale/pivx_vi.ts index 9f3f4f8fb5bc..fece53763f2f 100644 --- a/src/qt/locale/pivx_vi.ts +++ b/src/qt/locale/pivx_vi.ts @@ -104,6 +104,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -140,6 +143,9 @@ PrivacyDialog + + ProposalFrame + QObject diff --git a/src/qt/locale/pivx_zh_CN.ts b/src/qt/locale/pivx_zh_CN.ts index ac563508ef34..022ab74ade6f 100644 --- a/src/qt/locale/pivx_zh_CN.ts +++ b/src/qt/locale/pivx_zh_CN.ts @@ -800,6 +800,13 @@ Address: %4 FreespaceChecker + + GovernancePage + + Form + 来自 + + HelpMessageDialog @@ -1116,8 +1123,15 @@ Address: %4 A&总计 + + ProposalFrame + QObject + + PIVX Core + PIVX Core + QRImageWidget @@ -1171,6 +1185,10 @@ Address: %4 &Message: &消息: + + A&mount: + A&总计 + 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 PIVX network. 附加到付款请求的可选消息,将在请求打开时显示。 注意:消息不会在付款时通过PIVX网络发送。 @@ -1183,10 +1201,6 @@ Address: %4 &Label: &标签 - - &Amount: - &总计 - &Request payment &请求支付 @@ -1195,7 +1209,11 @@ Address: %4 Copy message 复制消息 - + + Copy address + 复制地址 + + ReceiveRequestDialog @@ -1237,6 +1255,10 @@ Address: %4 Message 消息 + + Address + 地址 + (no label) 未设置标签 diff --git a/src/qt/locale/pivx_zh_TW.ts b/src/qt/locale/pivx_zh_TW.ts index 0799060aef48..bea6cbe979ed 100644 --- a/src/qt/locale/pivx_zh_TW.ts +++ b/src/qt/locale/pivx_zh_TW.ts @@ -668,6 +668,9 @@ FreespaceChecker + + GovernancePage + HelpMessageDialog @@ -748,8 +751,15 @@ 文字標籤 + + ProposalFrame + QObject + + PIVX Core + PIVX Core + QRImageWidget @@ -781,6 +791,10 @@ Label 標記 + + Address + 位址 + (no label) (沒有標記) diff --git a/src/qt/masternodelist.cpp b/src/qt/masternodelist.cpp index e4d70624cf41..c870d5608274 100644 --- a/src/qt/masternodelist.cpp +++ b/src/qt/masternodelist.cpp @@ -14,7 +14,7 @@ #include "masternodeconfig.h" #include "masternodeman.h" #include "sync.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "walletmodel.h" #include "askpassphrasedialog.h" diff --git a/src/qt/multisigdialog.cpp b/src/qt/multisigdialog.cpp index c0ce497b0f83..540147d8267b 100644 --- a/src/qt/multisigdialog.cpp +++ b/src/qt/multisigdialog.cpp @@ -15,7 +15,7 @@ #include "coins.h" #include "keystore.h" #include "init.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "script/sign.h" #include "script/interpreter.h" #include "utilmoneystr.h" diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 9e763d48bbe8..dfaaec5afda3 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -20,7 +20,7 @@ #include "txdb.h" // for -dbcache defaults #ifdef ENABLE_WALLET -#include "wallet.h" // for CWallet::minTxFee +#include "wallet/wallet.h" // for CWallet::minTxFee #endif #include diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index b655df9aeebb..fe04e492afd0 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -22,8 +22,8 @@ #ifdef ENABLE_WALLET #include "masternodeconfig.h" -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #endif #include diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index b9f199be685d..de726913aea4 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -14,7 +14,7 @@ #include "chainparams.h" #include "ui_interface.h" #include "util.h" -#include "wallet.h" +#include "wallet/wallet.h" #include diff --git a/src/qt/pivx.cpp b/src/qt/pivx.cpp index 369ca11c6f61..afb17809971c 100644 --- a/src/qt/pivx.cpp +++ b/src/qt/pivx.cpp @@ -34,7 +34,7 @@ #include "util.h" #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif #include diff --git a/src/qt/pivx_locale.qrc b/src/qt/pivx_locale.qrc index af5e43a5d2c7..86a0f10bef74 100644 --- a/src/qt/pivx_locale.qrc +++ b/src/qt/pivx_locale.qrc @@ -6,6 +6,7 @@ locale/pivx_da.qm locale/pivx_de.qm locale/pivx_en.qm + locale/pivx_en_GB.qm locale/pivx_en_US.qm locale/pivx_eo.qm locale/pivx_es.qm diff --git a/src/qt/pivxstrings.cpp b/src/qt/pivxstrings.cpp index 3576ea049812..bf166d341861 100644 --- a/src/qt/pivxstrings.cpp +++ b/src/qt/pivxstrings.cpp @@ -58,6 +58,8 @@ QT_TRANSLATE_NOOP("pivx-core", "" QT_TRANSLATE_NOOP("pivx-core", "" "Enable SwiftX, show confirmations for locked transactions (bool, default: %s)"), QT_TRANSLATE_NOOP("pivx-core", "" +"Enable automatic Zerocoin minting from specific addresses (0-1, default: %u)"), +QT_TRANSLATE_NOOP("pivx-core", "" "Enable automatic wallet backups triggered after each zPIV minting (0-1, " "default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "" @@ -134,9 +136,14 @@ QT_TRANSLATE_NOOP("pivx-core", "" "Maintain a full transaction index, used by the getrawtransaction rpc call " "(default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "" +"Maximum average size of an index occurrence in the block spam filter " +"(default: %u)"), +QT_TRANSLATE_NOOP("pivx-core", "" "Maximum size of data in data carrier transactions we relay and mine " "(default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "" +"Maximum size of the list of indexes in the block spam filter (default: %u)"), +QT_TRANSLATE_NOOP("pivx-core", "" "Maximum total fees to use in a single wallet transaction, setting too low " "may abort large transactions (default: %s)"), QT_TRANSLATE_NOOP("pivx-core", "" @@ -162,6 +169,9 @@ QT_TRANSLATE_NOOP("pivx-core", "" QT_TRANSLATE_NOOP("pivx-core", "" "Set maximum size of high-priority/low-fee transactions in bytes (default: %d)"), QT_TRANSLATE_NOOP("pivx-core", "" +"Set the number of included blocks to precompute per cycle. (minimum: %d) " +"(maximum: %d) (default: %d)"), +QT_TRANSLATE_NOOP("pivx-core", "" "Set the number of script verification threads (%u to %d, 0 = auto, <0 = " "leave that many cores free, default: %d)"), QT_TRANSLATE_NOOP("pivx-core", "" @@ -185,6 +195,11 @@ QT_TRANSLATE_NOOP("pivx-core", "" "SwiftX requires inputs with at least 6 confirmations, you might need to wait " "a few minutes and try again."), QT_TRANSLATE_NOOP("pivx-core", "" +"The block database contains a block which appears to be from the future. " +"This may be due to your computer's date and time being set incorrectly. Only " +"rebuild the block database if you are sure that your computer's date and " +"time are correct"), +QT_TRANSLATE_NOOP("pivx-core", "" "This is a pre-release test build - use at your own risk - do not use for " "staking or merchant applications!"), QT_TRANSLATE_NOOP("pivx-core", "" @@ -247,6 +262,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Accept command line and JSON-RPC commands"), QT_TRANSLATE_NOOP("pivx-core", "Accept connections from outside (default: 1 if no -proxy or -connect)"), QT_TRANSLATE_NOOP("pivx-core", "Accept public REST requests (default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "Add a node to connect to and attempt to keep the connection open"), +QT_TRANSLATE_NOOP("pivx-core", "Adding Wrapped Serials supply..."), QT_TRANSLATE_NOOP("pivx-core", "Allow DNS lookups for -addnode, -seednode and -connect"), QT_TRANSLATE_NOOP("pivx-core", "Already have that input."), QT_TRANSLATE_NOOP("pivx-core", "Always query for peer addresses via DNS lookup (default: %u)"), @@ -265,6 +281,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Cannot resolve -externalip address: '%s'"), QT_TRANSLATE_NOOP("pivx-core", "Cannot resolve -whitebind address: '%s'"), QT_TRANSLATE_NOOP("pivx-core", "Cannot write default address"), QT_TRANSLATE_NOOP("pivx-core", "CoinSpend: Accumulator witness does not verify"), +QT_TRANSLATE_NOOP("pivx-core", "CoinSpend: failed check"), QT_TRANSLATE_NOOP("pivx-core", "Collateral not valid."), QT_TRANSLATE_NOOP("pivx-core", "Connect only to the specified node(s)"), QT_TRANSLATE_NOOP("pivx-core", "Connect through SOCKS5 proxy"), @@ -275,6 +292,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Copyright (C) 2014-%i The Dash Core Developers") QT_TRANSLATE_NOOP("pivx-core", "Copyright (C) 2015-%i The PIVX Core Developers"), QT_TRANSLATE_NOOP("pivx-core", "Corrupted block database detected"), QT_TRANSLATE_NOOP("pivx-core", "Could not parse masternode.conf"), +QT_TRANSLATE_NOOP("pivx-core", "Couldn't generate the accumulator witness"), QT_TRANSLATE_NOOP("pivx-core", "Debugging/Testing options:"), QT_TRANSLATE_NOOP("pivx-core", "Delete blockchain folders and resync from scratch"), QT_TRANSLATE_NOOP("pivx-core", "Disable OS notifications for incoming transactions (default: %u)"), @@ -286,6 +304,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Do not load the wallet and disable wallet RPC ca QT_TRANSLATE_NOOP("pivx-core", "Do you want to rebuild the block database now?"), QT_TRANSLATE_NOOP("pivx-core", "Done loading"), QT_TRANSLATE_NOOP("pivx-core", "Enable automatic Zerocoin minting (0-1, default: %u)"), +QT_TRANSLATE_NOOP("pivx-core", "Enable precomputation of zPIV spends and stakes (0-1, default %u)"), QT_TRANSLATE_NOOP("pivx-core", "Enable publish hash block in
"), QT_TRANSLATE_NOOP("pivx-core", "Enable publish hash transaction (locked via SwiftX) in
"), QT_TRANSLATE_NOOP("pivx-core", "Enable publish hash transaction in
"), @@ -317,7 +336,6 @@ QT_TRANSLATE_NOOP("pivx-core", "Error: Wallet locked, unable to create transacti QT_TRANSLATE_NOOP("pivx-core", "Error: You already have pending entries in the Obfuscation pool"), QT_TRANSLATE_NOOP("pivx-core", "Failed to calculate accumulator checkpoint"), QT_TRANSLATE_NOOP("pivx-core", "Failed to create mint"), -QT_TRANSLATE_NOOP("pivx-core", "Failed to deserialize"), QT_TRANSLATE_NOOP("pivx-core", "Failed to find Zerocoins in wallet.dat"), QT_TRANSLATE_NOOP("pivx-core", "Failed to listen on any port. Use -listen=0 if you want this."), QT_TRANSLATE_NOOP("pivx-core", "Failed to parse host:port string"), @@ -413,6 +431,9 @@ QT_TRANSLATE_NOOP("pivx-core", "RPC server options:"), QT_TRANSLATE_NOOP("pivx-core", "Randomly drop 1 of every network messages"), QT_TRANSLATE_NOOP("pivx-core", "Randomly fuzz 1 of every network messages"), QT_TRANSLATE_NOOP("pivx-core", "Rebuild block chain index from current blk000??.dat files"), +QT_TRANSLATE_NOOP("pivx-core", "Recalculating PIV supply..."), +QT_TRANSLATE_NOOP("pivx-core", "Recalculating minted ZPIV..."), +QT_TRANSLATE_NOOP("pivx-core", "Recalculating spent ZPIV..."), QT_TRANSLATE_NOOP("pivx-core", "Receive and display P2P network alerts (default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "Reindex the PIV and zPIV money supply statistics"), QT_TRANSLATE_NOOP("pivx-core", "Reindex the accumulator database"), @@ -458,6 +479,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Stop running after importing blocks from disk (d QT_TRANSLATE_NOOP("pivx-core", "Submitted following entries to masternode: %u / %d"), QT_TRANSLATE_NOOP("pivx-core", "Submitted to masternode, waiting for more entries ( %u / %d ) %s"), QT_TRANSLATE_NOOP("pivx-core", "Submitted to masternode, waiting in queue %s"), +QT_TRANSLATE_NOOP("pivx-core", "Support the zerocoin light node protocol (default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "SwiftX options:"), QT_TRANSLATE_NOOP("pivx-core", "Synchronization failed"), QT_TRANSLATE_NOOP("pivx-core", "Synchronization finished"), @@ -468,8 +490,6 @@ QT_TRANSLATE_NOOP("pivx-core", "Synchronizing masternodes..."), QT_TRANSLATE_NOOP("pivx-core", "Synchronizing sporks..."), QT_TRANSLATE_NOOP("pivx-core", "Syncing zPIV wallet..."), QT_TRANSLATE_NOOP("pivx-core", "The coin spend has been used"), -QT_TRANSLATE_NOOP("pivx-core", "The new spend coin transaction did not verify"), -QT_TRANSLATE_NOOP("pivx-core", "The selected mint coin is an invalid coin"), QT_TRANSLATE_NOOP("pivx-core", "The transaction did not verify"), QT_TRANSLATE_NOOP("pivx-core", "This help message"), QT_TRANSLATE_NOOP("pivx-core", "This is experimental software."), @@ -489,7 +509,6 @@ QT_TRANSLATE_NOOP("pivx-core", "Transaction not valid."), QT_TRANSLATE_NOOP("pivx-core", "Transaction too large for fee policy"), QT_TRANSLATE_NOOP("pivx-core", "Transaction too large"), QT_TRANSLATE_NOOP("pivx-core", "Transmitting final transaction."), -QT_TRANSLATE_NOOP("pivx-core", "Try to spend with a higher security level to include more coins"), QT_TRANSLATE_NOOP("pivx-core", "Trying to spend an already spent serial #, try again."), QT_TRANSLATE_NOOP("pivx-core", "Unable to bind to %s on this computer (bind returned error %s)"), QT_TRANSLATE_NOOP("pivx-core", "Unable to find transaction containing mint"), @@ -501,6 +520,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Upgrade wallet to latest format"), QT_TRANSLATE_NOOP("pivx-core", "Use UPnP to map the listening port (default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "Use UPnP to map the listening port (default: 1 when listening)"), QT_TRANSLATE_NOOP("pivx-core", "Use a custom max chain reorganization depth (default: %u)"), +QT_TRANSLATE_NOOP("pivx-core", "Use block spam filter (default: %u)"), QT_TRANSLATE_NOOP("pivx-core", "Use the test network"), QT_TRANSLATE_NOOP("pivx-core", "User Agent comment (%s) contains unsafe characters."), QT_TRANSLATE_NOOP("pivx-core", "Username for JSON-RPC connections"), @@ -508,7 +528,6 @@ QT_TRANSLATE_NOOP("pivx-core", "Value is below the smallest available denominati QT_TRANSLATE_NOOP("pivx-core", "Value more than Obfuscation pool maximum allows."), QT_TRANSLATE_NOOP("pivx-core", "Verifying blocks..."), QT_TRANSLATE_NOOP("pivx-core", "Verifying wallet..."), -QT_TRANSLATE_NOOP("pivx-core", "Version 1 zPIV require a security level of 100 to successfully spend."), QT_TRANSLATE_NOOP("pivx-core", "Wallet %s resides outside data directory %s"), QT_TRANSLATE_NOOP("pivx-core", "Wallet is locked."), QT_TRANSLATE_NOOP("pivx-core", "Wallet needed to be rewritten: restart PIVX Core to complete"), @@ -526,6 +545,7 @@ QT_TRANSLATE_NOOP("pivx-core", "Your transaction was accepted into the pool!"), QT_TRANSLATE_NOOP("pivx-core", "Zapping all transactions from wallet..."), QT_TRANSLATE_NOOP("pivx-core", "ZeroMQ notification options:"), QT_TRANSLATE_NOOP("pivx-core", "Zerocoin options:"), +QT_TRANSLATE_NOOP("pivx-core", "could not get lock on cs_spendcache"), QT_TRANSLATE_NOOP("pivx-core", "isValid(): Invalid -proxy address or hostname: '%s'"), QT_TRANSLATE_NOOP("pivx-core", "on startup"), QT_TRANSLATE_NOOP("pivx-core", "wallet.dat corrupt, salvage failed"), diff --git a/src/qt/privacydialog.cpp b/src/qt/privacydialog.cpp index 80e58f2c55ed..789cc72d0bc5 100644 --- a/src/qt/privacydialog.cpp +++ b/src/qt/privacydialog.cpp @@ -22,8 +22,8 @@ #include #include #include -#include -#include +#include +#include PrivacyDialog::PrivacyDialog(QWidget* parent) : QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowCloseButtonHint), ui(new Ui::PrivacyDialog), @@ -85,14 +85,6 @@ PrivacyDialog::PrivacyDialog(QWidget* parent) : QDialog(parent, Qt::WindowSystem // PIVX settings QSettings settings; - if (!settings.contains("nSecurityLevel")){ - nSecurityLevel = 42; - settings.setValue("nSecurityLevel", nSecurityLevel); - } - else{ - nSecurityLevel = settings.value("nSecurityLevel").toInt(); - } - if (!settings.contains("fMinimizeChange")){ fMinimizeChange = false; settings.setValue("fMinimizeChange", fMinimizeChange); @@ -140,7 +132,6 @@ void PrivacyDialog::setModel(WalletModel* walletModel) SLOT(setBalance(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount))); connect(walletModel->getOptionsModel(), SIGNAL(zeromintEnableChanged(bool)), this, SLOT(updateAutomintStatus())); connect(walletModel->getOptionsModel(), SIGNAL(zeromintPercentageChanged(int)), this, SLOT(updateAutomintStatus())); - ui->securityLevel->setValue(nSecurityLevel); } } @@ -380,10 +371,6 @@ void PrivacyDialog::sendzPIV() } } - // Persist Security Level for next start - nSecurityLevel = ui->securityLevel->value(); - settings.setValue("nSecurityLevel", nSecurityLevel); - // Spend confirmation message box // Add address info if available @@ -402,8 +389,7 @@ void PrivacyDialog::sendzPIV() strAddress = tr(" to a newly generated (unused and therefore anonymous) local address
"); } - QString strSecurityLevel = tr("with Security Level ") + ui->securityLevel->text() + " ?"; - strQuestionString += strAmount + strAddress + strSecurityLevel; + strQuestionString += strAmount + strAddress; // Display message box QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm send coins"), @@ -417,7 +403,7 @@ void PrivacyDialog::sendzPIV() } int64_t nTime = GetTimeMillis(); - ui->TEMintStatus->setPlainText(tr("Spending Zerocoin.\nComputationally expensive, might need several minutes depending on the selected Security Level and your hardware.\nPlease be patient...")); + ui->TEMintStatus->setPlainText(tr("Spending Zerocoin.\nComputationally expensive, might need several minutes depending on your hardware.\nPlease be patient...")); ui->TEMintStatus->repaint(); // use mints from zPIV selector if applicable @@ -427,15 +413,6 @@ void PrivacyDialog::sendzPIV() vMintsToFetch = ZPivControlDialog::GetSelectedMints(); for (auto& meta : vMintsToFetch) { - if (meta.nVersion < libzerocoin::PrivateCoin::PUBKEY_VERSION) { - //version 1 coins have to use full security level to successfully spend. - if (nSecurityLevel < 100) { - QMessageBox::warning(this, tr("Spend Zerocoin"), tr("Version 1 zPIV require a security level of 100 to successfully spend."), QMessageBox::Ok, QMessageBox::Ok); - ui->TEMintStatus->setPlainText(tr("Failed to spend zPIV")); - ui->TEMintStatus->repaint(); - return; - } - } CZerocoinMint mint; if (!pwalletMain->GetMint(meta.hashSerial, mint)) { ui->TEMintStatus->setPlainText(tr("Failed to fetch mint associated with serial hash")); @@ -452,22 +429,15 @@ void PrivacyDialog::sendzPIV() bool fSuccess = false; if(ui->payTo->text().isEmpty()){ // Spend to newly generated local address - fSuccess = pwalletMain->SpendZerocoin(nAmount, nSecurityLevel, wtxNew, receipt, vMintsSelected, fMintChange, fMinimizeChange); + fSuccess = pwalletMain->SpendZerocoin(nAmount, wtxNew, receipt, vMintsSelected, fMintChange, fMinimizeChange); } else { // Spend to supplied destination address - fSuccess = pwalletMain->SpendZerocoin(nAmount, nSecurityLevel, wtxNew, receipt, vMintsSelected, fMintChange, fMinimizeChange, &address); + fSuccess = pwalletMain->SpendZerocoin(nAmount, wtxNew, receipt, vMintsSelected, fMintChange, fMinimizeChange, &address); } // Display errors during spend if (!fSuccess) { - if (receipt.GetStatus() == ZPIV_SPEND_V1_SEC_LEVEL) { - QMessageBox::warning(this, tr("Spend Zerocoin"), tr("Version 1 zPIV require a security level of 100 to successfully spend."), QMessageBox::Ok, QMessageBox::Ok); - ui->TEMintStatus->setPlainText(tr("Failed to spend zPIV")); - ui->TEMintStatus->repaint(); - return; - } - int nNeededSpends = receipt.GetNeededSpends(); // Number of spends we would need for this transaction const int nMaxSpends = Params().Zerocoin_MaxSpendsPerTransaction(); // Maximum possible spends for one zPIV transaction if (nNeededSpends > nMaxSpends) { diff --git a/src/qt/privacydialog.h b/src/qt/privacydialog.h index 1748d3c85564..acca75b279ad 100644 --- a/src/qt/privacydialog.h +++ b/src/qt/privacydialog.h @@ -49,7 +49,7 @@ class PrivacyDialog : public QDialog void setZPivControlLabels(int64_t nAmount, int nQuantity); public slots: - void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, + void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); protected: @@ -70,8 +70,7 @@ public slots: CAmount currentWatchOnlyBalance; CAmount currentWatchUnconfBalance; CAmount currentWatchImmatureBalance; - - int nSecurityLevel = 0; + bool fMinimizeChange = false; bool fDenomsMinimized; diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 39729ff20e15..b79aafa9a788 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -18,7 +18,7 @@ #include "rpc/server.h" #include "util.h" #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif // ENABLE_WALLET #include diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 2d74f80a3004..038c18e40369 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -21,7 +21,7 @@ #include "coincontrol.h" #include "ui_interface.h" #include "utilmoneystr.h" -#include "wallet.h" +#include "wallet/wallet.h" #include #include @@ -165,7 +165,7 @@ void SendCoinsDialog::setModel(WalletModel* model) setBalance(model->getBalance(), model->getUnconfirmedBalance(), model->getImmatureBalance(), model->getZerocoinBalance (), model->getUnconfirmedZerocoinBalance (), model->getImmatureZerocoinBalance (), model->getWatchBalance(), model->getWatchUnconfirmedBalance(), model->getWatchImmatureBalance()); - connect(model, SIGNAL(balanceChanged(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)), this, + connect(model, SIGNAL(balanceChanged(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)), this, SLOT(setBalance(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount))); connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit())); updateDisplayUnit(); @@ -546,7 +546,7 @@ bool SendCoinsDialog::handlePaymentRequest(const SendCoinsRecipient& rv) return true; } -void SendCoinsDialog::setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, +void SendCoinsDialog::setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, const CAmount& watchBalance, const CAmount& watchUnconfirmedBalance, const CAmount& watchImmatureBalance) { @@ -571,7 +571,7 @@ void SendCoinsDialog::updateDisplayUnit() TRY_LOCK(cs_main, lockMain); if (!lockMain) return; - setBalance(model->getBalance(), model->getUnconfirmedBalance(), model->getImmatureBalance(), + setBalance(model->getBalance(), model->getUnconfirmedBalance(), model->getImmatureBalance(), model->getZerocoinBalance (), model->getUnconfirmedZerocoinBalance (), model->getImmatureZerocoinBalance (), model->getWatchBalance(), model->getWatchUnconfirmedBalance(), model->getWatchImmatureBalance()); coinControlUpdateLabels(); @@ -608,7 +608,7 @@ void SendCoinsDialog::updateSwiftTX() void SendCoinsDialog::processSendCoinsReturn(const WalletModel::SendCoinsReturn& sendCoinsReturn, const QString& msgArg, bool fPrepare) { bool fAskForUnlock = false; - + QPair msgParams; // Default to a warning message, override if error message is needed msgParams.second = CClientUIInterface::MSG_WARNING; diff --git a/src/qt/signverifymessagedialog.cpp b/src/qt/signverifymessagedialog.cpp index 8c46ce3f6703..c1742bd8bdfd 100644 --- a/src/qt/signverifymessagedialog.cpp +++ b/src/qt/signverifymessagedialog.cpp @@ -13,7 +13,7 @@ #include "base58.h" #include "init.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "askpassphrasedialog.h" #include diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index b13c02f86493..9cb3b8205d95 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -14,7 +14,7 @@ #include "version.h" #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif #include diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp index 8f8c4810090b..c3da2e988166 100644 --- a/src/qt/transactiondesc.cpp +++ b/src/qt/transactiondesc.cpp @@ -18,7 +18,7 @@ #include "timedata.h" #include "ui_interface.h" #include "util.h" -#include "wallet.h" +#include "wallet/wallet.h" #include #include diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp index d768c297d7ac..0598e0fb0d1c 100644 --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -10,7 +10,7 @@ #include "obfuscation.h" #include "swifttx.h" #include "timedata.h" -#include "wallet.h" +#include "wallet/wallet.h" #include "zpivchain.h" #include diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index fa33e1947c67..68c3637881f3 100644 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -18,7 +18,7 @@ #include "sync.h" #include "uint256.h" #include "util.h" -#include "wallet.h" +#include "wallet/wallet.h" #include #include @@ -493,7 +493,7 @@ QVariant TransactionTableModel::txStatusDecoration(const TransactionRecord* wtx) return QIcon(":/icons/transaction_conflicted"); case TransactionStatus::Immature: { int total = wtx->status.depth + wtx->status.matures_in; - int part = (wtx->status.depth * 4 / total) + 1; + int part = (wtx->status.depth * 5 / total) + 1; return QIcon(QString(":/icons/transaction_%1").arg(part)); } case TransactionStatus::MaturesWarning: diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index e9a97401f47a..55442765dfa9 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -18,8 +18,8 @@ #include "spork.h" #include "sync.h" #include "ui_interface.h" -#include "wallet.h" -#include "walletdb.h" // for BackupWallet +#include "wallet/wallet.h" +#include "wallet/walletdb.h" // for BackupWallet #include #include @@ -164,7 +164,7 @@ void WalletModel::pollBalanceChanged() void WalletModel::emitBalanceChanged() { // Force update of UI elements even when no values have changed - emit balanceChanged(cachedBalance, cachedUnconfirmedBalance, cachedImmatureBalance, + emit balanceChanged(cachedBalance, cachedUnconfirmedBalance, cachedImmatureBalance, cachedZerocoinBalance, cachedUnconfirmedZerocoinBalance, cachedImmatureZerocoinBalance, cachedWatchOnlyBalance, cachedWatchUnconfBalance, cachedWatchImmatureBalance); } @@ -203,7 +203,7 @@ void WalletModel::checkBalanceChanged() cachedWatchOnlyBalance = newWatchOnlyBalance; cachedWatchUnconfBalance = newWatchUnconfBalance; cachedWatchImmatureBalance = newWatchImmatureBalance; - emit balanceChanged(newBalance, newUnconfirmedBalance, newImmatureBalance, + emit balanceChanged(newBalance, newUnconfirmedBalance, newImmatureBalance, newZerocoinBalance, newUnconfirmedZerocoinBalance, newImmatureZerocoinBalance, newWatchOnlyBalance, newWatchUnconfBalance, newWatchImmatureBalance); } diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 4a0d372ed95b..bf3e21ead671 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -13,7 +13,7 @@ #include "allocators.h" /* for SecureString */ #include "swifttx.h" -#include "wallet.h" +#include "wallet/wallet.h" #include #include @@ -257,8 +257,8 @@ class WalletModel : public QObject signals: // Signal that balance in wallet changed - void balanceChanged(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, - const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, + void balanceChanged(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, + const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); // Encryption status of wallet changed diff --git a/src/qt/walletmodeltransaction.cpp b/src/qt/walletmodeltransaction.cpp index d0cb1d1f5e4e..15b78b71cc35 100644 --- a/src/qt/walletmodeltransaction.cpp +++ b/src/qt/walletmodeltransaction.cpp @@ -5,7 +5,7 @@ #include "walletmodeltransaction.h" -#include "wallet.h" +#include "wallet/wallet.h" WalletModelTransaction::WalletModelTransaction(const QList& recipients) : recipients(recipients), walletTransaction(0), diff --git a/src/qt/zpivcontroldialog.cpp b/src/qt/zpivcontroldialog.cpp index 598fd0f90c23..08c5c45412cb 100644 --- a/src/qt/zpivcontroldialog.cpp +++ b/src/qt/zpivcontroldialog.cpp @@ -5,7 +5,7 @@ #include "zpivcontroldialog.h" #include "ui_zpivcontroldialog.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "main.h" #include "walletmodel.h" @@ -109,6 +109,19 @@ void ZPivControlDialog::updateList() itemMint->setText(COLUMN_CONFIRMATIONS, QString::number(nConfirmations)); itemMint->setData(COLUMN_CONFIRMATIONS, Qt::UserRole, QVariant((qlonglong) nConfirmations)); + { + LOCK(pwalletMain->zpivTracker->cs_spendcache); + + CoinWitnessData *witnessData = pwalletMain->zpivTracker->GetSpendCache(mint.hashStake); + if (witnessData->nHeightAccStart > 0 && witnessData->nHeightAccEnd > 0) { + int nPercent = std::max(0, std::min(100, (int)((double)(witnessData->nHeightAccEnd - witnessData->nHeightAccStart) / (double)(nBestHeight - witnessData->nHeightAccStart - 220) * 100))); + QString percent = QString::number(nPercent) + QString("%"); + itemMint->setText(COLUMN_PRECOMPUTE, percent); + } else { + itemMint->setText(COLUMN_PRECOMPUTE, QString("0%")); + } + } + // check for maturity bool isMature = false; if (mapMaturityHeight.count(mint.denom)) diff --git a/src/qt/zpivcontroldialog.h b/src/qt/zpivcontroldialog.h index 29adb03f159d..ea5a2ce584d4 100644 --- a/src/qt/zpivcontroldialog.h +++ b/src/qt/zpivcontroldialog.h @@ -7,7 +7,7 @@ #include #include -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "privacydialog.h" class CZerocoinMint; @@ -54,6 +54,7 @@ class ZPivControlDialog : public QDialog COLUMN_DENOMINATION, COLUMN_PUBCOIN, COLUMN_VERSION, + COLUMN_PRECOMPUTE, COLUMN_CONFIRMATIONS, COLUMN_ISSPENDABLE }; diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index a82092178f8b..6fe73895752f 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -14,9 +14,9 @@ #include "txdb.h" #include "util.h" #include "utilmoneystr.h" -#include "accumulatormap.h" -#include "accumulators.h" -#include "wallet.h" +#include "zpiv/accumulatormap.h" +#include "zpiv/accumulators.h" +#include "wallet/wallet.h" #include "zpivchain.h" #include @@ -1300,7 +1300,8 @@ UniValue getaccumulatorwitness(const UniValue& params, bool fHelp) string strFailReason = ""; int nMintsAdded = 0; CZerocoinSpendReceipt receipt; - if (!GenerateAccumulatorWitness(pubCoin, accumulator, witness, 100, nMintsAdded, strFailReason)) { + + if (!GenerateAccumulatorWitness(pubCoin, accumulator, witness, nMintsAdded, strFailReason)) { receipt.SetStatus(_(strFailReason.c_str()), ZPIV_FAILED_ACCUMULATOR_INITIALIZATION); throw JSONRPCError(RPC_DATABASE_ERROR, receipt.GetStatusMessage()); } diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index 2389058dacf1..a9ddea0e2ee4 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -138,7 +138,6 @@ static const CRPCConvertParam vRPCConvertParams[] = {"spendzerocoin", 0}, {"spendzerocoin", 1}, {"spendzerocoin", 2}, - {"spendzerocoin", 3}, {"spendrawzerocoin", 2}, {"spendzerocoinmints", 0}, {"importzerocoins", 0}, diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index b7f30b5075ea..1db7dc4d6850 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -17,8 +17,8 @@ #include "rpc/server.h" #include "util.h" #ifdef ENABLE_WALLET -#include "db.h" -#include "wallet.h" +#include "wallet/db.h" +#include "wallet/wallet.h" #endif #include diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index ce8c4e81ba89..fc732ea24f73 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -17,8 +17,8 @@ #include "timedata.h" #include "util.h" #ifdef ENABLE_WALLET -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #endif #include diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index ae5d20b54687..bb7ba1d3b130 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -12,7 +12,7 @@ #include "main.h" #include "net.h" #include "primitives/transaction.h" -#include "primitives/deterministicmint.h" +#include "zpiv/deterministicmint.h" #include "rpc/server.h" #include "script/script.h" #include "script/script_error.h" @@ -23,7 +23,7 @@ #include "utilmoneystr.h" #include "zpivchain.h" #ifdef ENABLE_WALLET -#include "wallet.h" +#include "wallet/wallet.h" #endif #include @@ -977,7 +977,7 @@ UniValue createrawzerocoinstake(const UniValue& params, bool fHelp) // create the zerocoinspend input CTxIn newTxIn; // !TODO: mint checks - if (!pwalletMain->MintToTxIn(input_mint, 100, hashTxOut, newTxIn, receipt, libzerocoin::SpendType::STAKE)) + if (!pwalletMain->MintToTxIn(input_mint, hashTxOut, newTxIn, receipt, libzerocoin::SpendType::STAKE)) throw JSONRPCError(RPC_WALLET_ERROR, "failed to create zc-spend stake input"); coinstake_tx.vin.push_back(newTxIn); diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 60d9b7adec37..6539294df5aa 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -468,7 +468,8 @@ static const CRPCCommand vRPCCommands[] = {"zerocoin", "setzpivseed", &setzpivseed, false, false, true}, {"zerocoin", "generatemintlist", &generatemintlist, false, false, true}, {"zerocoin", "searchdzpiv", &searchdzpiv, false, false, true}, - {"zerocoin", "dzpivstate", &dzpivstate, false, false, true} + {"zerocoin", "dzpivstate", &dzpivstate, false, false, true}, + {"zerocoin", "clearspendcache", &clearspendcache, false, false, true} #endif // ENABLE_WALLET }; diff --git a/src/rpc/server.h b/src/rpc/server.h index e7b3fde3690c..88897e82f113 100644 --- a/src/rpc/server.h +++ b/src/rpc/server.h @@ -8,7 +8,7 @@ #define BITCOIN_RPCSERVER_H #include "amount.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "rpc/protocol.h" #include "uint256.h" @@ -179,7 +179,7 @@ extern std::string HelpExampleCli(std::string methodname, std::string args); extern std::string HelpExampleRpc(std::string methodname, std::string args); extern void EnsureWalletIsUnlocked(bool fAllowAnonOnly = false); -extern UniValue DoZpivSpend(const CAmount nAmount, bool fMintChange, bool fMinimizeChange, const int nSecurityLevel, vector& vMintsSelected, std::string address_str); +extern UniValue DoZpivSpend(const CAmount nAmount, bool fMintChange, bool fMinimizeChange, vector& vMintsSelected, std::string address_str); extern UniValue getconnectioncount(const UniValue& params, bool fHelp); // in rpc/net.cpp extern UniValue getpeerinfo(const UniValue& params, bool fHelp); @@ -270,6 +270,7 @@ extern UniValue getzpivseed(const UniValue& params, bool fHelp); extern UniValue generatemintlist(const UniValue& params, bool fHelp); extern UniValue searchdzpiv(const UniValue& params, bool fHelp); extern UniValue dzpivstate(const UniValue& params, bool fHelp); +extern UniValue clearspendcache(const UniValue& params, bool fHelp); extern UniValue enableautomintaddress(const UniValue& params, bool fHelp); extern UniValue createautomintaddress(const UniValue& params, bool fHelp); diff --git a/src/stakeinput.cpp b/src/stakeinput.cpp index 803176001fbb..81f185825e90 100644 --- a/src/stakeinput.cpp +++ b/src/stakeinput.cpp @@ -2,12 +2,12 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "chain.h" -#include "primitives/deterministicmint.h" +#include "zpiv/deterministicmint.h" #include "main.h" #include "stakeinput.h" -#include "wallet.h" +#include "wallet/wallet.h" CZPivStake::CZPivStake(const libzerocoin::CoinSpend& spend) { @@ -119,9 +119,8 @@ bool CZPivStake::CreateTxIn(CWallet* pwallet, CTxIn& txIn, uint256 hashTxOut) if (libzerocoin::ExtractVersionFromSerial(mint.GetSerialNumber()) < 2) return error("%s: serial extract is less than v2", __func__); - int nSecurityLevel = 100; CZerocoinSpendReceipt receipt; - if (!pwallet->MintToTxIn(mint, nSecurityLevel, hashTxOut, txIn, receipt, libzerocoin::SpendType::STAKE, GetIndexFrom())) + if (!pwallet->MintToTxIn(mint, hashTxOut, txIn, receipt, libzerocoin::SpendType::STAKE, pindexCheckpoint)) return error("%s\n", receipt.GetStatusMessage()); return true; diff --git a/src/stakeinput.h b/src/stakeinput.h index ccd7ee979cc4..a8ed267bfa99 100644 --- a/src/stakeinput.h +++ b/src/stakeinput.h @@ -5,6 +5,10 @@ #ifndef PIVX_STAKEINPUT_H #define PIVX_STAKEINPUT_H +#include "chain.h" +#include "streams.h" +#include "uint256.h" + class CKeyStore; class CWallet; class CWalletTx; @@ -24,6 +28,7 @@ class CStakeInput virtual bool GetModifier(uint64_t& nStakeModifier) = 0; virtual bool IsZPIV() = 0; virtual CDataStream GetUniqueness() = 0; + virtual uint256 GetSerialHash() const = 0; }; @@ -58,6 +63,7 @@ class CZPivStake : public CStakeInput bool CreateTxOuts(CWallet* pwallet, vector& vout, CAmount nTotal) override; bool MarkSpent(CWallet* pwallet, const uint256& txid); bool IsZPIV() override { return true; } + uint256 GetSerialHash() const override { return hashSerial; } int GetChecksumHeightFromMint(); int GetChecksumHeightFromSpend(); uint32_t GetChecksum(); @@ -84,6 +90,7 @@ class CPivStake : public CStakeInput bool CreateTxIn(CWallet* pwallet, CTxIn& txIn, uint256 hashTxOut = 0) override; bool CreateTxOuts(CWallet* pwallet, vector& vout, CAmount nTotal) override; bool IsZPIV() override { return false; } + uint256 GetSerialHash() const override { return uint256(0); } }; diff --git a/src/test/accounting_tests.cpp b/src/test/accounting_tests.cpp index dc1cf10c6f7e..579da3c1b628 100644 --- a/src/test/accounting_tests.cpp +++ b/src/test/accounting_tests.cpp @@ -3,8 +3,8 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #include diff --git a/src/test/multisig_tests.cpp b/src/test/multisig_tests.cpp index 0b5402f2fd27..9caab9ddd9f1 100644 --- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -12,7 +12,7 @@ #include "uint256.h" #ifdef ENABLE_WALLET -#include "wallet_ismine.h" +#include "wallet/wallet_ismine.h" #endif #include diff --git a/src/test/rpc_wallet_tests.cpp b/src/test/rpc_wallet_tests.cpp index 454d33f7f1a6..935c7cedbfb0 100644 --- a/src/test/rpc_wallet_tests.cpp +++ b/src/test/rpc_wallet_tests.cpp @@ -7,7 +7,7 @@ #include "rpc/client.h" #include "base58.h" -#include "wallet.h" +#include "wallet/wallet.h" #include #include diff --git a/src/test/script_P2SH_tests.cpp b/src/test/script_P2SH_tests.cpp index bc40fd1b9718..369093a12b46 100644 --- a/src/test/script_P2SH_tests.cpp +++ b/src/test/script_P2SH_tests.cpp @@ -10,7 +10,7 @@ #include "script/sign.h" #ifdef ENABLE_WALLET -#include "wallet_ismine.h" +#include "wallet/wallet_ismine.h" #endif #include diff --git a/src/test/test_pivx.cpp b/src/test/test_pivx.cpp index 7570b17a0f7d..28ee95d7424a 100644 --- a/src/test/test_pivx.cpp +++ b/src/test/test_pivx.cpp @@ -11,8 +11,8 @@ #include "ui_interface.h" #include "util.h" #ifdef ENABLE_WALLET -#include "db.h" -#include "wallet.h" +#include "wallet/db.h" +#include "wallet/wallet.h" #endif #include diff --git a/src/test/zerocoin_chain_tests.cpp b/src/test/zerocoin_chain_tests.cpp new file mode 100644 index 000000000000..e1cd46532e4b --- /dev/null +++ b/src/test/zerocoin_chain_tests.cpp @@ -0,0 +1,4 @@ +// +// Created by tom on 2/11/18. +// + diff --git a/src/test/zerocoin_coinspend_tests.cpp b/src/test/zerocoin_coinspend_tests.cpp index 5ed906c5dd3c..5965d526fa0f 100644 --- a/src/test/zerocoin_coinspend_tests.cpp +++ b/src/test/zerocoin_coinspend_tests.cpp @@ -5,16 +5,16 @@ #include "libzerocoin/Denominations.h" #include "libzerocoin/CoinSpend.h" #include "libzerocoin/Accumulator.h" -#include "primitives/zerocoin.h" -#include "primitives/deterministicmint.h" -#include "zpivwallet.h" +#include "zpiv/zerocoin.h" +#include "zpiv/deterministicmint.h" +#include "zpiv/zpivwallet.h" #include "libzerocoin/Coin.h" #include "amount.h" #include "chainparams.h" #include "coincontrol.h" #include "main.h" -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #include "txdb.h" #include #include diff --git a/src/test/zerocoin_denomination_tests.cpp b/src/test/zerocoin_denomination_tests.cpp index dca449920f52..a10913cd2d37 100644 --- a/src/test/zerocoin_denomination_tests.cpp +++ b/src/test/zerocoin_denomination_tests.cpp @@ -8,8 +8,8 @@ #include "denomination_functions.h" #include "main.h" #include "txdb.h" -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #include #include @@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test241) listMints, mapDenom, nNeededSpends); - + if (fDebug) { if (vSpends.size() > 0) { std::cout << "SUCCESS : Coins = " << nValueTarget / COIN << " # spends used = " << vSpends.size() @@ -237,7 +237,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) // const int DenomAmounts[] = {0, 1, 4, 0, 0, 0, 0, 0}; // For 51 //const int nSpendValue = 51; - + // CoinsHeld = 245 const int DenomAmounts[] = {0, 1, 4, 2, 1, 0, 0, 0}; // We can spend up to this amount for above set for less 6 spends @@ -287,7 +287,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) // bool fDebug = 0; int nCoinsReturned; int nNeededSpends = 0; // Number of spends which would be needed if selection failed - + // Go through all possible spend between 1 and 241 and see if it's possible or not for (int i = 0; i < CoinsHeld; i++) { std::vector vSpends = SelectMintsFromList(nValueTarget, nSelectedValue, @@ -297,7 +297,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) listMints, mapOfDenomsHeld, nNeededSpends); - + // if (fDebug) { // if (vSpends.size() > 0) { // std::cout << "SUCCESS : Coins = " << nValueTarget / COIN << " # spends = " << vSpends.size() @@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) bool spends_not_ok = ((vSpends.size() > nMaxNumberOfSpends) || (vSpends.size() == 0)); if (i < nMaxSpendAmount) BOOST_CHECK_MESSAGE(!spends_not_ok, "Too many spends"); else BOOST_CHECK_MESSAGE(spends_not_ok, "Expected to fail but didn't"); - + std::vector vSpendsAlt = SelectMintsFromList(nValueTarget, nSelectedValue, nMaxNumberOfSpends, true, @@ -319,8 +319,8 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) listMints, mapOfDenomsHeld, nNeededSpends); - - + + // if (fDebug) { // if (vSpendsAlt.size() > 0) { // std::cout << "# spends = " << vSpendsAlt.size() @@ -330,11 +330,11 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_245) // std::cout << "UNABLE TO SPEND : Coins = " << nValueTarget / COIN << " Held = " << CoinsHeld << "\n"; // } // } - + spends_not_ok = ((vSpendsAlt.size() > nMaxNumberOfSpends) || (vSpendsAlt.size() == 0)); if (i < nMaxSpendAmount) BOOST_CHECK_MESSAGE(!spends_not_ok, "Too many spends"); else BOOST_CHECK_MESSAGE(spends_not_ok, "Expected to fail but didn't"); - + nValueTarget += OneCoinAmount; } } @@ -392,7 +392,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_145) //bool fDebug = 0; int nCoinsReturned; int nNeededSpends = 0; // Number of spends which would be needed if selection failed - + // Go through all possible spend between 1 and 241 and see if it's possible or not for (int i = 0; i < CoinsHeld; i++) { std::vector vSpends = SelectMintsFromList(nValueTarget, nSelectedValue, @@ -402,7 +402,7 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_145) listMints, mapOfDenomsHeld, nNeededSpends); - + // if (fDebug) { // if (vSpends.size() > 0) { // std::cout << "SUCCESS : Coins = " << nValueTarget / COIN << " # spends = " << vSpends.size() @@ -412,11 +412,11 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_145) // std::cout << "UNABLE TO SPEND : Coins = " << nValueTarget / COIN << " Held = " << CoinsHeld << "\n"; // } // } - + bool spends_not_ok = ((vSpends.size() > nMaxNumberOfSpends) || (vSpends.size() == 0)); if (i < nMaxSpendAmount) BOOST_CHECK_MESSAGE(!spends_not_ok, "Too many spends"); else BOOST_CHECK_MESSAGE(spends_not_ok, "Expected to fail but didn't"); - + std::vector vSpendsAlt = SelectMintsFromList(nValueTarget, nSelectedValue, nMaxNumberOfSpends, true, @@ -424,8 +424,8 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_145) listMints, mapOfDenomsHeld, nNeededSpends); - - + + // if (fDebug) { // if (vSpendsAlt.size() > 0) { // std::cout << "# spends = " << vSpendsAlt.size() @@ -435,12 +435,12 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test_from_145) // std::cout << "UNABLE TO SPEND : Coins = " << nValueTarget / COIN << " Held = " << CoinsHeld << "\n"; // } // } - + spends_not_ok = ((vSpendsAlt.size() > nMaxNumberOfSpends) || (vSpendsAlt.size() == 0)); if (i < nMaxSpendAmount) BOOST_CHECK_MESSAGE(!spends_not_ok, "Too many spends"); else BOOST_CHECK_MESSAGE(spends_not_ok, "Expected to fail but didn't"); - + nValueTarget += OneCoinAmount; } } diff --git a/src/test/zerocoin_implementation_tests.cpp b/src/test/zerocoin_implementation_tests.cpp index d7b24e9321f8..53ac2effd584 100644 --- a/src/test/zerocoin_implementation_tests.cpp +++ b/src/test/zerocoin_implementation_tests.cpp @@ -7,15 +7,15 @@ #include "chainparams.h" #include "main.h" #include "txdb.h" -#include "primitives/deterministicmint.h" +#include "zpiv/deterministicmint.h" #include "key.h" -#include "accumulatorcheckpoints.h" +#include "zpiv/accumulatorcheckpoints.h" #include "libzerocoin/bignum.h" #include #include -#include -#include "wallet.h" -#include "zpivwallet.h" +#include +#include "wallet/wallet.h" +#include "zpiv/zpivwallet.h" #include "zpivchain.h" using namespace libzerocoin; diff --git a/src/test/zerocoin_transactions_tests.cpp b/src/test/zerocoin_transactions_tests.cpp index 492d26c68d0e..7b1c2cf7c444 100644 --- a/src/test/zerocoin_transactions_tests.cpp +++ b/src/test/zerocoin_transactions_tests.cpp @@ -7,8 +7,8 @@ #include "chainparams.h" #include "coincontrol.h" #include "main.h" -#include "wallet.h" -#include "walletdb.h" +#include "wallet/wallet.h" +#include "wallet/walletdb.h" #include "txdb.h" #include #include @@ -36,16 +36,15 @@ BOOST_AUTO_TEST_CASE(zerocoin_spend_test) std::vector vSpends; std::vector vMints; CAmount nAmount = COIN; - int nSecurityLevel = 100; CZerocoinSpendReceipt receipt; - cWallet.SpendZerocoin(nAmount, nSecurityLevel, *wtx, receipt, vMints, fMintChange, fMinimizeChange); + cWallet.SpendZerocoin(nAmount, *wtx, receipt, vMints, fMintChange, fMinimizeChange); BOOST_CHECK_MESSAGE(receipt.GetStatus() == ZPIV_TRX_FUNDS_PROBLEMS, "Failed Invalid Amount Check"); nAmount = 1; CZerocoinSpendReceipt receipt2; - cWallet.SpendZerocoin(nAmount, nSecurityLevel, *wtx, receipt2, vMints, fMintChange, fMinimizeChange); + cWallet.SpendZerocoin(nAmount, *wtx, receipt2, vMints, fMintChange, fMinimizeChange); // if using "wallet.dat", instead of "unlocked.dat" need this /// BOOST_CHECK_MESSAGE(vString == "Error: Wallet locked, unable to create transaction!"," Locked Wallet Check Failed"); diff --git a/src/txdb.cpp b/src/txdb.cpp index b6212feab493..c14d7b8d26ad 100644 --- a/src/txdb.cpp +++ b/src/txdb.cpp @@ -9,7 +9,7 @@ #include "main.h" #include "pow.h" #include "uint256.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include diff --git a/src/txdb.h b/src/txdb.h index 7728e29a63cb..8675ead7466a 100644 --- a/src/txdb.h +++ b/src/txdb.h @@ -9,7 +9,7 @@ #include "leveldbwrapper.h" #include "main.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include #include diff --git a/src/util.cpp b/src/util.cpp index a3388f32acd0..aabbbe751890 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -244,6 +244,8 @@ bool LogAcceptCategory(const char* category) ptrCategory->insert(string("mnpayments")); ptrCategory->insert(string("zero")); ptrCategory->insert(string("mnbudget")); + ptrCategory->insert(string("precompute")); + ptrCategory->insert(string("staking")); } } const set& setCategories = *ptrCategory.get(); diff --git a/src/version.h b/src/version.h index deb03d16c36f..a20eafb59790 100644 --- a/src/version.h +++ b/src/version.h @@ -11,7 +11,7 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 70914; +static const int PROTOCOL_VERSION = 70915; //! initial proto version, to be increased after version/verack negotiation static const int INIT_PROTO_VERSION = 209; diff --git a/src/db.cpp b/src/wallet/db.cpp similarity index 100% rename from src/db.cpp rename to src/wallet/db.cpp diff --git a/src/db.h b/src/wallet/db.h similarity index 100% rename from src/db.h rename to src/wallet/db.h diff --git a/src/rpcdump.cpp b/src/wallet/rpcdump.cpp similarity index 100% rename from src/rpcdump.cpp rename to src/wallet/rpcdump.cpp diff --git a/src/rpcwallet.cpp b/src/wallet/rpcwallet.cpp similarity index 98% rename from src/rpcwallet.cpp rename to src/wallet/rpcwallet.cpp index 2684f173b3de..35cae7b3ed9c 100644 --- a/src/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -23,7 +23,7 @@ #include "libzerocoin/Coin.h" #include "spork.h" -#include "primitives/deterministicmint.h" +#include "zpiv/deterministicmint.h" #include #include @@ -2841,9 +2841,9 @@ UniValue mintzerocoin(const UniValue& params, bool fHelp) UniValue spendzerocoin(const UniValue& params, bool fHelp) { - if (fHelp || params.size() > 5 || params.size() < 4) + if (fHelp || params.size() > 4 || params.size() < 3) throw runtime_error( - "spendzerocoin amount mintchange minimizechange securitylevel ( \"address\" )\n" + "spendzerocoin amount mintchange minimizechange ( \"address\" )\n" "\nSpend zPIV to a PIV address.\n" + HelpRequiringPassphrase() + "\n" @@ -2851,12 +2851,7 @@ UniValue spendzerocoin(const UniValue& params, bool fHelp) "1. amount (numeric, required) Amount to spend.\n" "2. mintchange (boolean, required) Re-mint any leftover change.\n" "3. minimizechange (boolean, required) Try to minimize the returning change [false]\n" - "4. securitylevel (numeric, required) Amount of checkpoints to add to the accumulator.\n" - " A checkpoint contains 10 blocks worth of zerocoinmints.\n" - " The more checkpoints that are added, the more untraceable the transaction.\n" - " Use [100] to add the maximum amount of checkpoints available.\n" - " Adding more checkpoints makes the minting process take longer\n" - "5. \"address\" (string, optional, default=change) Send to specified address or to a new change address.\n" + "4. \"address\" (string, optional, default=change) Send to specified address or to a new change address.\n" " If there is change then an address is required\n" "\nResult:\n" @@ -2883,8 +2878,8 @@ UniValue spendzerocoin(const UniValue& params, bool fHelp) "}\n" "\nExamples\n" + - HelpExampleCli("spendzerocoin", "5000 false true 100 \"DMJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6\"") + - HelpExampleRpc("spendzerocoin", "5000 false true 100 \"DMJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6\"")); + HelpExampleCli("spendzerocoin", "5000 false true \"DMJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6\"") + + HelpExampleRpc("spendzerocoin", "5000 false true \"DMJRSsuU9zfyrvxVaAEFQqK4MxZg6vgeS6\"")); LOCK2(cs_main, pwalletMain->cs_wallet); @@ -2896,12 +2891,11 @@ UniValue spendzerocoin(const UniValue& params, bool fHelp) CAmount nAmount = AmountFromValue(params[0]); // Spending amount bool fMintChange = params[1].get_bool(); // Mint change to zPIV bool fMinimizeChange = params[2].get_bool(); // Minimize change - int nSecurityLevel = params[3].get_int(); // Security level - std::string address_str = params.size() > 4 ? params[4].get_str() : ""; + std::string address_str = params.size() > 3 ? params[3].get_str() : ""; vector vMintsSelected; - return DoZpivSpend(nAmount, fMintChange, fMinimizeChange, nSecurityLevel, vMintsSelected, address_str); + return DoZpivSpend(nAmount, fMintChange, fMinimizeChange, vMintsSelected, address_str); } @@ -2986,11 +2980,20 @@ UniValue spendzerocoinmints(const UniValue& params, bool fHelp) nAmount += mint.GetDenominationAsAmount(); } - return DoZpivSpend(nAmount, false, true, 100, vMintsSelected, address_str); + CBitcoinAddress address = CBitcoinAddress(); // Optional sending address. Dummy initialization here. + if (params.size() == 4) { + // Destination address was supplied as params[4]. Optional parameters MUST be at the end + // to avoid type confusion from the JSON interpreter + address = CBitcoinAddress(params[3].get_str()); + if(!address.IsValid()) + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid PIVX address"); + } + + return DoZpivSpend(nAmount, false, true, vMintsSelected, address_str); } -extern UniValue DoZpivSpend(const CAmount nAmount, bool fMintChange, bool fMinimizeChange, const int nSecurityLevel, vector& vMintsSelected, std::string address_str) +extern UniValue DoZpivSpend(const CAmount nAmount, bool fMintChange, bool fMinimizeChange, vector& vMintsSelected, std::string address_str) { int64_t nTimeStart = GetTimeMillis(); CBitcoinAddress address = CBitcoinAddress(); // Optional sending address. Dummy initialization here. @@ -3002,9 +3005,9 @@ extern UniValue DoZpivSpend(const CAmount nAmount, bool fMintChange, bool fMinim address = CBitcoinAddress(address_str); if(!address.IsValid()) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid PIVX address"); - fSuccess = pwalletMain->SpendZerocoin(nAmount, nSecurityLevel, wtx, receipt, vMintsSelected, fMintChange, fMinimizeChange, &address); + fSuccess = pwalletMain->SpendZerocoin(nAmount, wtx, receipt, vMintsSelected, fMintChange, fMinimizeChange, &address); } else // Spend to newly generated local address - fSuccess = pwalletMain->SpendZerocoin(nAmount, nSecurityLevel, wtx, receipt, vMintsSelected, fMintChange, fMinimizeChange); + fSuccess = pwalletMain->SpendZerocoin(nAmount, wtx, receipt, vMintsSelected, fMintChange, fMinimizeChange); if (!fSuccess) throw JSONRPCError(RPC_WALLET_ERROR, receipt.GetStatusMessage()); @@ -3755,6 +3758,41 @@ UniValue spendrawzerocoin(const UniValue& params, bool fHelp) vector vMintsSelected = {mint}; CAmount nAmount = mint.GetDenominationAsAmount(); - return DoZpivSpend(nAmount, false, true, 42, vMintsSelected, address_str); + return DoZpivSpend(nAmount, false, true, vMintsSelected, address_str); } +UniValue clearspendcache(const UniValue& params, bool fHelp) +{ + if(fHelp || params.size() != 0) + throw runtime_error( + "clearspendcache\n" + "\nClear the pre-computed zPIV spend cache, and database.\n" + + HelpRequiringPassphrase() + "\n" + + "\nExamples\n" + + HelpExampleCli("clearspendcache", "") + HelpExampleRpc("clearspendcache", "")); + + EnsureWalletIsUnlocked(); + + CzPIVTracker* zpivTracker = pwalletMain->zpivTracker.get(); + + { + int nTries = 0; + while (nTries < 100) { + TRY_LOCK(zpivTracker->cs_spendcache, fLocked); + if (fLocked) { + if (zpivTracker->ClearSpendCache()) { + fClearSpendCache = true; + CWalletDB walletdb("precomputes.dat", "cr+"); + walletdb.EraseAllPrecomputes(); + return "Successfully Cleared the Precompute Spend Cache and Database"; + } + } else { + fGlobalUnlockSpendCache = true; + nTries++; + MilliSleep(100); + } + } + } + throw JSONRPCError(RPC_WALLET_ERROR, "Error: Spend cache not cleared!"); +} diff --git a/src/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp similarity index 99% rename from src/test/wallet_tests.cpp rename to src/wallet/test/wallet_tests.cpp index 90fc470e0645..d82070c22f3d 100644 --- a/src/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -2,7 +2,7 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "wallet.h" +#include "wallet/wallet.h" #include #include diff --git a/src/wallet.cpp b/src/wallet/wallet.cpp similarity index 89% rename from src/wallet.cpp rename to src/wallet/wallet.cpp index 6593188b3afb..0eb5b659f8f5 100644 --- a/src/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -5,9 +5,9 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "wallet.h" +#include "wallet/wallet.h" -#include "accumulators.h" +#include "zpiv/accumulators.h" #include "base58.h" #include "checkpoints.h" #include "coincontrol.h" @@ -28,14 +28,16 @@ #include "denomination_functions.h" #include "libzerocoin/Denominations.h" -#include "zpivwallet.h" -#include "primitives/deterministicmint.h" +#include "zpiv/zpivwallet.h" +#include "zpiv/zpivtracker.h" +#include "zpiv/deterministicmint.h" #include #include #include #include #include +#include using namespace std; @@ -49,6 +51,7 @@ bool bSpendZeroConfChange = true; bool bdisableSystemnotifications = false; // Those bubbles can be annoying and slow down the UI when you get lots of trx bool fSendFreeTransactions = false; bool fPayAtLeastCustomFee = true; +bool fGlobalUnlockSpendCache = false; int64_t nStartupTime = GetTime(); //!< Client startup time for use with automint /** @@ -2108,14 +2111,14 @@ bool less_then_denom(const COutput& out1, const COutput& out2) return (!found1 && found2); } -bool CWallet::SelectStakeCoins(std::list >& listInputs, CAmount nTargetAmount) +bool CWallet::SelectStakeCoins(std::list >& listInputs, CAmount nTargetAmount, bool fPrecompute) { LOCK(cs_main); //Add PIV vector vCoins; AvailableCoins(vCoins, true, NULL, false, STAKABLE_COINS); CAmount nAmountSelected = 0; - if (GetBoolArg("-pivstake", true)) { + if (GetBoolArg("-pivstake", true) && !fPrecompute) { for (const COutput &out : vCoins) { //make sure not to outrun target amount if (nAmountSelected + out.tx->vout[out.i].nValue > nTargetAmount) @@ -2147,7 +2150,7 @@ bool CWallet::SelectStakeCoins(std::list >& listInp } //zPIV - if (GetBoolArg("-zpivstake", true) && chainActive.Height() > Params().Zerocoin_Block_V2_Start() && !IsSporkActive(SPORK_16_ZEROCOIN_MAINTENANCE_MODE)) { + if ((GetBoolArg("-zpivstake", true) || fPrecompute) && chainActive.Height() > Params().Zerocoin_Block_V2_Start() && !IsSporkActive(SPORK_16_ZEROCOIN_MAINTENANCE_MODE)) { //Only update zPIV set once per update interval bool fUpdate = false; static int64_t nTimeLastUpdate = 0; @@ -2998,23 +3001,21 @@ bool CWallet::CreateCoinStake( } if (listInputs.empty()) { - LogPrintf("CreateCoinStake(): listInputs empty\n"); + LogPrint("staking", "CreateCoinStake(): listInputs empty\n"); + MilliSleep(50000); return false; } - if (GetAdjustedTime() - chainActive.Tip()->GetBlockTime() < 60){ - - if(Params().NetworkID() != CBaseChainParams::REGTEST){ - MilliSleep(10000); - }else{ + if (GetAdjustedTime() - chainActive.Tip()->GetBlockTime() < 60) { + if (Params().NetworkID() == CBaseChainParams::REGTEST) { MilliSleep(1000); } - } CAmount nCredit; CScript scriptPubKeyKernel; bool fKernelFound = false; + int nAttempts = 0; for (std::unique_ptr& stakeInput : listInputs) { nCredit = 0; // Make sure the wallet is unlocked and shutdown hasn't been requested @@ -3032,10 +3033,9 @@ bool CWallet::CreateCoinStake( CBlockHeader block = pindex->GetBlockHeader(); uint256 hashProofOfStake = 0; nTxNewTime = GetAdjustedTime(); - + nAttempts++; //iterates each utxo inside of CheckStakeKernelHash() if (Stake(stakeInput.get(), nBits, block.GetBlockTime(), nTxNewTime, hashProofOfStake)) { - LOCK(cs_main); //Double check that this will pass time requirements if (nTxNewTime <= chainActive.Tip()->GetMedianTimePast() && Params().NetworkID() != CBaseChainParams::REGTEST) { LogPrintf("CreateCoinStake() : kernel found, but it is too far in the past \n"); @@ -3077,15 +3077,21 @@ bool CWallet::CreateCoinStake( //Masternode payment FillBlockPayee(txNew, nMinFee, true, stakeInput->IsZPIV()); - uint256 hashTxOut = txNew.GetHash(); - CTxIn in; - if (!stakeInput->CreateTxIn(this, in, hashTxOut)) { - LogPrintf("%s : failed to create TxIn\n", __func__); - txNew.vin.clear(); - txNew.vout.clear(); - continue; + { + TRY_LOCK(zpivTracker->cs_spendcache, fLocked); + if (!fLocked) + continue; + + uint256 hashTxOut = txNew.GetHash(); + CTxIn in; + if (!stakeInput->CreateTxIn(this, in, hashTxOut)) { + LogPrintf("%s : failed to create TxIn\n", __func__); + txNew.vin.clear(); + txNew.vout.clear(); + continue; + } + txNew.vin.emplace_back(in); } - txNew.vin.emplace_back(in); //Mark mints as spent if (stakeInput->IsZPIV()) { @@ -3100,6 +3106,8 @@ bool CWallet::CreateCoinStake( if (fKernelFound) break; // if kernel is found stop searching } + LogPrint("staking", "%s: attempted staking %d times\n", __func__, nAttempts); + if (!fKernelFound) return false; @@ -4667,137 +4675,151 @@ bool CWallet::CreateZerocoinMintTransaction(const CAmount nValue, CMutableTransa return true; } -bool CWallet::MintToTxIn(CZerocoinMint zerocoinSelected, int nSecurityLevel, const uint256& hashTxOut, CTxIn& newTxIn, - CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint) +bool CWallet::CheckCoinSpend(libzerocoin::CoinSpend& spend, libzerocoin::Accumulator& accumulator, CZerocoinSpendReceipt& receipt) { - // Default error status if not changed below - receipt.SetStatus(_("Transaction Mint Started"), ZPIV_TXMINT_GENERAL); - libzerocoin::ZerocoinParams* paramsAccumulator = Params().Zerocoin_Params(false); - - bool isV1Coin = libzerocoin::ExtractVersionFromSerial(zerocoinSelected.GetSerialNumber()) < libzerocoin::PrivateCoin::PUBKEY_VERSION; - libzerocoin::ZerocoinParams* paramsCoin = Params().Zerocoin_Params(isV1Coin); - //LogPrintf("%s: *** using v1 coin params=%b, using v1 acc params=%b\n", __func__, isV1Coin, chainActive.Height() < Params().Zerocoin_Block_V2_Start()); - - // 2. Get pubcoin from the private coin - libzerocoin::CoinDenomination denomination = zerocoinSelected.GetDenomination(); - libzerocoin::PublicCoin pubCoinSelected(paramsCoin, zerocoinSelected.GetValue(), denomination); - //LogPrintf("%s : selected mint %s\n pubcoinhash=%s\n", __func__, zerocoinSelected.ToString(), GetPubCoinHash(zerocoinSelected.GetValue()).GetHex()); - if (!pubCoinSelected.validate()) { - receipt.SetStatus(_("The selected mint coin is an invalid coin"), ZPIV_INVALID_COIN); - return error("%s : %s", __func__, receipt.GetStatusMessage()); + if (!spend.Verify(accumulator)) { + receipt.SetStatus(_("The transaction did not verify"), ZPIV_BAD_SERIALIZATION); + return error("%s : The transaction did not verify", __func__); } - // 3. Compute Accumulator and Witness - libzerocoin::Accumulator accumulator(paramsAccumulator, pubCoinSelected.getDenomination()); - libzerocoin::AccumulatorWitness witness(paramsAccumulator, accumulator, pubCoinSelected); - string strFailReason = ""; - int nMintsAdded = 0; - if (!GenerateAccumulatorWitness(pubCoinSelected, accumulator, witness, nSecurityLevel, nMintsAdded, strFailReason, pindexCheckpoint)) { - receipt.SetStatus(_("Try to spend with a higher security level to include more coins"), ZPIV_FAILED_ACCUMULATOR_INITIALIZATION); - return error("%s : %s", __func__, receipt.GetStatusMessage()); - } - - // Construct the CoinSpend object. This acts like a signature on the transaction. - libzerocoin::PrivateCoin privateCoin(paramsCoin, denomination, false); - privateCoin.setPublicCoin(pubCoinSelected); - privateCoin.setRandomness(zerocoinSelected.GetRandomness()); - privateCoin.setSerialNumber(zerocoinSelected.GetSerialNumber()); + if (Params().NetworkID() != CBaseChainParams::REGTEST && IsSerialKnown(spend.getCoinSerialNumber())) { + //Tried to spend an already spent zPIV + receipt.SetStatus(_("The coin spend has been used"), ZPIV_SPENT_USED_ZPIV); + uint256 hashSerial = GetSerialHash(spend.getCoinSerialNumber()); + if(!zpivTracker->HasSerialHash(hashSerial)) + return error("%s: serialhash %s not found in tracker", __func__, hashSerial.GetHex()); - //Version 2 zerocoins have a privkey associated with them - uint8_t nVersion = zerocoinSelected.GetVersion(); - privateCoin.setVersion(zerocoinSelected.GetVersion()); - LogPrintf("%s: privatecoin version=%d\n", __func__, privateCoin.getVersion()); - if (nVersion >= libzerocoin::PrivateCoin::PUBKEY_VERSION) { - CKey key; - if (!zerocoinSelected.GetKeyPair(key)) - return error("%s: failed to set zPIV privkey mint version=%d", __func__, nVersion); + CMintMeta meta = zpivTracker->Get(hashSerial); + meta.isUsed = true; + if (!zpivTracker->UpdateState(meta)) + LogPrintf("%s: failed to write zerocoinmint\n", __func__); - privateCoin.setPrivKey(key.GetPrivKey()); + return false; } + return true; +} - uint32_t nChecksum = GetChecksum(accumulator.getValue()); - CBigNum bnValue; - if (!GetAccumulatorValueFromChecksum(nChecksum, false, bnValue) || bnValue == 0) - return error("%s: could not find checksum used for spend\n", __func__); - - try { - libzerocoin::CoinSpend spend(paramsCoin, paramsAccumulator, privateCoin, accumulator, nChecksum, witness, hashTxOut, - spendType); - LogPrintf("%s\n", spend.ToString()); +bool CWallet::MintToTxIn(CZerocoinMint mint, const uint256& hashTxOut, CTxIn& newTxIn, CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint) +{ + std::map mapMints; + mapMints.insert(std::make_pair(mint.GetValue(), mint)); + std::vector vin; + if (MintsToInputVector(mapMints, hashTxOut, vin, receipt, spendType, pindexCheckpoint)) { + newTxIn = vin[0]; + return true; + } - if (!spend.Verify(accumulator)) { - receipt.SetStatus(_("The new spend coin transaction did not verify"), ZPIV_INVALID_WITNESS); - //return false; - LogPrintf("** spend.verify failed, trying with different params\n"); + return false; +} - libzerocoin::CoinSpend spend2(Params().Zerocoin_Params(true), paramsAccumulator, privateCoin, accumulator, - nChecksum, witness, hashTxOut, libzerocoin::SpendType::SPEND); - LogPrintf("*** spend2 valid=%d\n", spend2.Verify(accumulator)); - return error("%s : %s", __func__, receipt.GetStatusMessage()); +bool CWallet::MintsToInputVector(std::map& mapMintsSelected, const uint256& hashTxOut, std::vector& vin, + CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint) +{ + // Default error status if not changed below + receipt.SetStatus(_("Transaction Mint Started"), ZPIV_TXMINT_GENERAL); + libzerocoin::ZerocoinParams* paramsAccumulator = Params().Zerocoin_Params(false); + AccumulatorMap mapAccumulators(paramsAccumulator); + int64_t nTimeStart = GetTimeMicros(); + + int nLockAttempts = 0; + while (nLockAttempts < 100) { + TRY_LOCK(zpivTracker->cs_spendcache, lockSpendcache); + if (!lockSpendcache) { + fGlobalUnlockSpendCache = true; + MilliSleep(100); + ++nLockAttempts; + continue; } - // Deserialize the CoinSpend intro a fresh object - CDataStream serializedCoinSpend(SER_NETWORK, PROTOCOL_VERSION); - serializedCoinSpend << spend; - std::vector data(serializedCoinSpend.begin(), serializedCoinSpend.end()); + for (auto &it : mapMintsSelected) { + CZerocoinMint mint = it.second; + CMintMeta meta = zpivTracker->Get(GetSerialHash(mint.GetSerialNumber())); + CoinWitnessData *coinWitness = zpivTracker->GetSpendCache(meta.hashStake); - //Add the coin spend into a PIVX transaction - newTxIn.scriptSig = CScript() << OP_ZEROCOINSPEND << data.size(); - newTxIn.scriptSig.insert(newTxIn.scriptSig.end(), data.begin(), data.end()); - newTxIn.prevout.SetNull(); + if (!coinWitness->nHeightAccEnd) { + *coinWitness = CoinWitnessData(mint); + coinWitness->SetHeightMintAdded(mint.GetHeight()); + } - //use nSequence as a shorthand lookup of denomination - //NOTE that this should never be used in place of checking the value in the final blockchain acceptance/verification - //of the transaction - newTxIn.nSequence = denomination; + // Generate the witness for each mint being spent + if (!GenerateAccumulatorWitness(coinWitness, mapAccumulators, pindexCheckpoint)) { + receipt.SetStatus(_("Couldn't generate the accumulator witness"), + ZPIV_FAILED_ACCUMULATOR_INITIALIZATION); + return error("%s : %s", __func__, receipt.GetStatusMessage()); + } - CDataStream serializedCoinSpendChecking(SER_NETWORK, PROTOCOL_VERSION); - try { - serializedCoinSpendChecking << spend; - } catch (...) { - receipt.SetStatus(_("Failed to deserialize"), ZPIV_BAD_SERIALIZATION); - return error("%s : %s", __func__, receipt.GetStatusMessage()); - } + // Construct the CoinSpend object. This acts like a signature on the transaction. + int64_t nTime1 = GetTimeMicros(); + libzerocoin::ZerocoinParams *paramsCoin = Params().Zerocoin_Params(coinWitness->isV1); + libzerocoin::PrivateCoin privateCoin(paramsCoin, coinWitness->denom); + privateCoin.setPublicCoin(*coinWitness->coin); + privateCoin.setRandomness(mint.GetRandomness()); + privateCoin.setSerialNumber(mint.GetSerialNumber()); + int64_t nTime2 = GetTimeMicros(); + LogPrint("bench", " - CoinSpend constructed in %.2fms\n", 0.001 * (nTime2 - nTime1)); + + //Version 2 zerocoins have a privkey associated with them + uint8_t nVersion = mint.GetVersion(); + privateCoin.setVersion(mint.GetVersion()); + if (nVersion >= libzerocoin::PrivateCoin::PUBKEY_VERSION) { + CKey key; + if (!mint.GetKeyPair(key)) + return error("%s: failed to set zPIV privkey mint version=%d", __func__, nVersion); + privateCoin.setPrivKey(key.GetPrivKey()); + } + int64_t nTime3 = GetTimeMicros(); + LogPrint("bench", " - Signing key set in %.2fms\n", 0.001 * (nTime3 - nTime2)); - libzerocoin::CoinSpend newSpendChecking(paramsCoin, paramsAccumulator, serializedCoinSpendChecking); - if (!newSpendChecking.Verify(accumulator)) { - receipt.SetStatus(_("The transaction did not verify"), ZPIV_BAD_SERIALIZATION); - return error("%s : %s", __func__, receipt.GetStatusMessage()); - } + libzerocoin::Accumulator accumulator = mapAccumulators.GetAccumulator(coinWitness->denom); + uint32_t nChecksum = GetChecksum(accumulator.getValue()); + CBigNum bnValue; + if (!GetAccumulatorValueFromChecksum(nChecksum, false, bnValue) || bnValue == 0) + return error("%s: could not find checksum used for spend\n", __func__); - if (Params().NetworkID() != CBaseChainParams::REGTEST && IsSerialKnown(spend.getCoinSerialNumber())) { - //Tried to spend an already spent zPIV - receipt.SetStatus(_("The coin spend has been used"), ZPIV_SPENT_USED_ZPIV); + int64_t nTime4 = GetTimeMicros(); + LogPrint("bench", " - Accumulator value fetched in %.2fms\n", 0.001 * (nTime4 - nTime3)); - uint256 hashSerial = GetSerialHash(spend.getCoinSerialNumber()); - if (!zpivTracker->HasSerialHash(hashSerial)) - return error("%s: serialhash %s not found in tracker", __func__, hashSerial.GetHex()); + try { + libzerocoin::CoinSpend spend(paramsCoin, paramsAccumulator, privateCoin, accumulator, nChecksum, + *coinWitness->pWitness, hashTxOut, spendType); - CMintMeta meta = zpivTracker->Get(hashSerial); - meta.isUsed = true; - if (!zpivTracker->UpdateState(meta)) - LogPrintf("%s: failed to write zerocoinmint\n", __func__); + if (!CheckCoinSpend(spend, accumulator, receipt)) { + receipt.SetStatus(_("CoinSpend: failed check"), ZPIV_SPEND_ERROR); + return error("%s : %s", __func__, receipt.GetStatusMessage()); + } - pwalletMain->NotifyZerocoinChanged(pwalletMain, zerocoinSelected.GetValue().GetHex(), "Used", CT_UPDATED); - return error("%s : %s", __func__, receipt.GetStatusMessage()); + vin.emplace_back(CTxIn(spend, coinWitness->denom)); + CZerocoinSpend zcSpend(spend.getCoinSerialNumber(), 0, mint.GetValue(), mint.GetDenomination(), + GetChecksum(accumulator.getValue())); + zcSpend.SetMintCount(coinWitness->nMintsAdded); + receipt.AddSpend(zcSpend); + + int64_t nTime5 = GetTimeMicros(); + LogPrint("bench", " - CoinSpend verified in %.2fms\n", 0.001 * (nTime5 - nTime4)); + } catch (const std::exception &) { + receipt.SetStatus(_("CoinSpend: Accumulator witness does not verify"), ZPIV_INVALID_WITNESS); + return error("%s : %s", __func__, receipt.GetStatusMessage()); + } } + break; + } - uint32_t nAccumulatorChecksum = GetChecksum(accumulator.getValue()); - CZerocoinSpend zcSpend(spend.getCoinSerialNumber(), 0, zerocoinSelected.GetValue(), zerocoinSelected.GetDenomination(), nAccumulatorChecksum); - zcSpend.SetMintCount(nMintsAdded); - receipt.AddSpend(zcSpend); - } catch (const std::exception&) { - receipt.SetStatus(_("CoinSpend: Accumulator witness does not verify"), ZPIV_INVALID_WITNESS); - return error("%s : %s", __func__, receipt.GetStatusMessage()); + if (nLockAttempts == 100) { + LogPrintf("%s : could not get lock on cs_spendcache\n", __func__); + receipt.SetStatus(_("could not get lock on cs_spendcache"), ZPIV_TXMINT_GENERAL); + return false; } + int64_t nTimeFinished = GetTimeMicros(); + LogPrint("bench", " - %s took %.2fms [%.3fms/spend]\n", __func__, 0.001 * (nTimeFinished - nTimeStart), 0.001 * (nTimeFinished - nTimeStart) / mapMintsSelected.size()); + receipt.SetStatus(_("Spend Valid"), ZPIV_SPEND_OKAY); // Everything okay return true; } -bool CWallet::CreateZerocoinSpendTransaction(CAmount nValue, int nSecurityLevel, CWalletTx& wtxNew, CReserveKey& reserveKey, CZerocoinSpendReceipt& receipt, vector& vSelectedMints, vector& vNewMints, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* address) +bool CWallet::CreateZerocoinSpendTransaction(CAmount nValue, CWalletTx& wtxNew, CReserveKey& reserveKey, CZerocoinSpendReceipt& receipt, vector& vSelectedMints, vector& vNewMints, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* address) { // Check available funds int nStatus = ZPIV_TRX_FUNDS_PROBLEMS; @@ -4912,16 +4934,6 @@ bool CWallet::CreateZerocoinSpendTransaction(CAmount nValue, int nSecurityLevel, return false; } - for (const auto& mint : vSelectedMints) { - if (mint.GetVersion() < libzerocoin::PrivateCoin::PUBKEY_VERSION) { - if (nSecurityLevel < 100) { - nStatus = ZPIV_SPEND_V1_SEC_LEVEL; - receipt.SetStatus(_("Version 1 zPIV require a security level of 100 to successfully spend."), nStatus); - return false; - } - } - } - if ((static_cast(vSelectedMints.size()) > Params().Zerocoin_MaxSpendsPerTransaction())) { receipt.SetStatus(_("Failed to find coin set amongst held coins with less than maxNumber of Spends"), nStatus); return false; @@ -4991,14 +5003,16 @@ bool CWallet::CreateZerocoinSpendTransaction(CAmount nValue, int nSecurityLevel, //hash with only the output info in it to be used in Signature of Knowledge uint256 hashTxOut = txNew.GetHash(); + CBlockIndex* pindexCheckpoint = nullptr; + std::map mapSelectedMints; + for (const CZerocoinMint& mint : vSelectedMints) + mapSelectedMints.insert(std::make_pair(mint.GetValue(), mint)); + //add all of the mints to the transaction as inputs - for (CZerocoinMint mint : vSelectedMints) { - CTxIn newTxIn; - if (!MintToTxIn(mint, nSecurityLevel, hashTxOut, newTxIn, receipt, libzerocoin::SpendType::SPEND)) { - return false; - } - txNew.vin.push_back(newTxIn); - } + std::vector vin; + if (!MintsToInputVector(mapSelectedMints, hashTxOut, vin, receipt, libzerocoin::SpendType::SPEND, pindexCheckpoint)) + return false; + txNew.vin = vin; // Limit size unsigned int nBytes = ::GetSerializeSize(txNew, SER_NETWORK, PROTOCOL_VERSION); @@ -5303,7 +5317,7 @@ string CWallet::MintZerocoin(CAmount nValue, CWalletTx& wtxNew, vector& vMintsSelected, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* addressTo) +bool CWallet::SpendZerocoin(CAmount nAmount, CWalletTx& wtxNew, CZerocoinSpendReceipt& receipt, vector& vMintsSelected, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* addressTo) { // Default: assume something goes wrong. Depending on the problem this gets more specific below int nStatus = ZPIV_SPEND_ERROR; @@ -5315,7 +5329,7 @@ bool CWallet::SpendZerocoin(CAmount nAmount, int nSecurityLevel, CWalletTx& wtxN CReserveKey reserveKey(this); vector vNewMints; - if (!CreateZerocoinSpendTransaction(nAmount, nSecurityLevel, wtxNew, reserveKey, receipt, vMintsSelected, vNewMints, fMintChange, fMinimizeChange, addressTo)) { + if (!CreateZerocoinSpendTransaction(nAmount, wtxNew, reserveKey, receipt, vMintsSelected, vNewMints, fMintChange, fMinimizeChange, addressTo)) { return false; } @@ -5456,3 +5470,297 @@ bool CWallet::DatabaseMint(CDeterministicMint& dMint) zpivTracker->Add(dMint, true); return true; } + +void ThreadPrecomputeSpends() +{ + boost::this_thread::interruption_point(); + LogPrintf("ThreadPrecomputeSpends started\n"); + CWallet* pwallet = pwalletMain; + try { + pwallet->PrecomputeSpends(); + boost::this_thread::interruption_point(); + } catch (std::exception& e) { + LogPrintf("ThreadPrecomputeSpends() exception: %s \n", e.what()); + } catch (...) { + LogPrintf("ThreadPrecomputeSpends() error \n"); + } + LogPrintf("ThreadPrecomputeSpends exiting,\n"); +} + +void CWallet::PrecomputeSpends() +{ + LogPrintf("Precomputer started\n"); + RenameThread("pivx-precomputer"); + + CWalletDB walletdb("precomputes.dat", "cr+"); + + // Create LRU Cache + std::list > item_list; + std::map >::iterator> item_map; + + // Dirty cache that needs to be written to disk + std::map mapDirtyWitnessData; + + // Initialize Variables + bool fLoadedPrecomputesFromDB = false; + bool fOnFirstLoad = true; + int64_t nLastCacheCleanUpTime = GetTime(); + int64_t nLastCacheWriteDB = nLastCacheCleanUpTime; + int nRequiredStakeDepthBuffer = Params().Zerocoin_RequiredStakeDepth() + 10; + int nAdjustableCacheLength = GetArg("-precomputecachelength", DEFAULT_PRECOMPUTE_LENGTH); + + // Force the cache length to be divisible by 10 + if (nAdjustableCacheLength % 10) + nAdjustableCacheLength -= nAdjustableCacheLength % 10; + + if (nAdjustableCacheLength < MIN_PRECOMPUTE_LENGTH) + nAdjustableCacheLength = MIN_PRECOMPUTE_LENGTH; + + if (nAdjustableCacheLength > MAX_PRECOMPUTE_LENGTH) + nAdjustableCacheLength = MAX_PRECOMPUTE_LENGTH; + + while (true) { + // Check to see if we need to clear the cache + if (fClearSpendCache) { + fClearSpendCache = false; + item_map.clear(); + item_list.clear(); + mapDirtyWitnessData.clear(); + nLastCacheCleanUpTime = GetTime(); + nLastCacheWriteDB = nLastCacheCleanUpTime; + } + + // Get the list of zPIV inputs + std::list > listInputs; + if (!SelectStakeCoins(listInputs, 0, true)) { + MilliSleep(5000); + continue; + } + + if (listInputs.empty()) { + MilliSleep(5000); + continue; + } + + if (ShutdownRequested()) + break; + + while (IsLocked()) + MilliSleep(5000); + + // If we haven't loaded from database yet, load the precomputes from the database + if (!fLoadedPrecomputesFromDB) { + // Load the precomputes into the LRU cache + walletdb.LoadPrecomputes(item_list, item_map); + fLoadedPrecomputesFromDB = true; + LogPrint("precompute", "%s: Loaded precomputes from database. Size of lru cache: %d\n", __func__, + item_map.size()); + } + + // Do some precomputing of zerocoin spend knowledge proofs + std::set setInputHashes; + for (std::unique_ptr & stakeInput : listInputs) { + if (ShutdownRequested() || IsLocked()) + break; + + CoinWitnessCacheData tempDataHolder; + + { + TRY_LOCK(zpivTracker->cs_spendcache, fLocked); + if (!fLocked) + continue; + + if (fGlobalUnlockSpendCache) { + break; + } + + // When we see a clear spend cache bool set to true, break out of the loop + // All cache data will be cleared at the beginning of the while loop above + if (fClearSpendCache) { + break; + } + + uint256 serialHash = stakeInput->GetSerialHash(); + setInputHashes.insert(serialHash); + CoinWitnessData* witnessData = zpivTracker->GetSpendCache(serialHash); + + // Initialize nHeightStop so it can be set below + int nHeightStop = 0; + + if (witnessData->nHeightAccStart) { // Witness is already valid + nHeightStop = std::min(chainActive.Height() - nRequiredStakeDepthBuffer, + (witnessData->nHeightAccEnd ? witnessData->nHeightAccEnd + : witnessData->nHeightAccStart) + + nAdjustableCacheLength); + } else if (item_map.count(serialHash)) { // Check Database cache + // Get the witness data from the cache + auto it = item_map.find(serialHash); + item_list.splice(item_list.begin(), item_list, it->second); + + *witnessData = CoinWitnessData(it->second->second); + + // Set the stop height from the variables received from the database cache + nHeightStop = std::min(chainActive.Height() - nRequiredStakeDepthBuffer, + (witnessData->nHeightAccEnd ? witnessData->nHeightAccEnd + : witnessData->nHeightAccStart) + + nAdjustableCacheLength); + + LogPrint("precompute", "%s: Got Witness Data from lru cache: %s\n", __func__, + witnessData->ToString()); + } else if (mapDirtyWitnessData.count(serialHash) || walletdb.ReadPrecompute(serialHash, tempDataHolder)) { + if (mapDirtyWitnessData.count(serialHash)) { + // Get the witness data from the dirty cache if it exists + *witnessData = CoinWitnessData(mapDirtyWitnessData.at(serialHash)); + LogPrint("precompute", "%s: Got Witness Data from mapDirtyWitnessData: %s\n", __func__, + witnessData->ToString()); + } else { + // Get the witness data from the database + *witnessData = CoinWitnessData(tempDataHolder); + LogPrint("precompute", "%s: Got Witness Data from precompute database: %s\n", __func__, + witnessData->ToString()); + } + + // Set the stop height from the variables received from the database cache + nHeightStop = std::min(chainActive.Height() - nRequiredStakeDepthBuffer, + (witnessData->nHeightAccEnd ? witnessData->nHeightAccEnd + : witnessData->nHeightAccStart) + + nAdjustableCacheLength); + + // Add the serialHash found into the cache + item_list.push_front(make_pair(serialHash, tempDataHolder)); + item_map.insert(make_pair(serialHash, item_list.begin())); + + // We just added a new hash into our LRU cache, so remove it if we also have it in the dirty map + mapDirtyWitnessData.erase(serialHash); + + if (item_map.size() > PRECOMPUTE_LRU_CACHE_SIZE) { + auto last_it = item_list.end(); last_it --; + item_map.erase(last_it->first); + CoinWitnessCacheData removedData = item_list.back().second; + mapDirtyWitnessData[serialHash] = removedData; + item_list.pop_back(); + } + } else { // This has no cache, so initialize it + CZerocoinMint mint; + if (!GetMintFromStakeHash(serialHash, mint)) + continue; + *witnessData = CoinWitnessData(mint); + nHeightStop = std::min(chainActive.Height() - nRequiredStakeDepthBuffer, + mint.GetHeight() + nAdjustableCacheLength); + } + + if (nHeightStop - (witnessData->nHeightAccEnd ? witnessData->nHeightAccEnd : witnessData->nHeightAccStart) < 20) + continue; + + CBlockIndex* pindexStop = chainActive[nHeightStop]; + AccumulatorMap mapAccumulators(Params().Zerocoin_Params(false)); + LogPrint("precompute","%s: caching mint %s of denom %d start=%d stop=%d end=%s\n", __func__, + witnessData->coin->getValue().GetHex().substr(0, 6), + ZerocoinDenominationToInt(witnessData->denom), + witnessData->nHeightAccStart, nHeightStop, witnessData->nHeightAccEnd); + + if (!GenerateAccumulatorWitness(witnessData, mapAccumulators, pindexStop)) { + LogPrintf("%s: Generate witness failed!\n", __func__); + + // If we fail this check, we need to make sure we remove this from the LRU cache + auto it = item_map.find(serialHash); + if (it != item_map.end()) + { + item_list.erase(it->second); + item_map.erase(it); + } + mapDirtyWitnessData.erase(serialHash); + walletdb.ErasePrecompute(serialHash); + continue; + } + + + CoinWitnessCacheData serialData(witnessData); + + // If the LRU cache already has a entry for it, update the entry and move it to the front of the list + auto it = item_map.find(serialHash); + if (it != item_map.end()) { + item_list.splice(item_list.begin(), item_list, it->second); + item_list.begin()->second = serialData; + } else { + item_list.push_front(make_pair(serialHash, serialData)); + item_map.insert(make_pair(serialHash, item_list.begin())); + } + + // We just added a new hash into our LRU cache, so remove it if we also have it in the dirty map + mapDirtyWitnessData.erase(serialHash); + + // Clean up the LRU cache to the max size + while (item_map.size() > PRECOMPUTE_LRU_CACHE_SIZE) { + auto last_it = item_list.end(); last_it --; + item_map.erase(last_it->first); + mapDirtyWitnessData[serialHash] = item_list.back().second; + item_list.pop_back(); + } + } + // Sleep for 150ms to allow any potential spend attempt + MilliSleep(150); + } + + if (fGlobalUnlockSpendCache) { + fGlobalUnlockSpendCache = false; + } + + // On first load, and every 5 minutes clean up our cache with only valid unspent inputs + if (fOnFirstLoad || nLastCacheCleanUpTime < GetTime() - PRECOMPUTE_FLUSH_TIME) { + LogPrint("precompute", "%s: Cleaning up precompute cache\n", __func__); + + // We only want to clear the cache if we have calculated new witness data + if (setInputHashes.size()) { + // Get a list of hashes currently in the database + set databaseHashes; + walletdb.LoadPrecomputes(databaseHashes); + + // Remove old cache data + for (auto inputHash : setInputHashes) { + databaseHashes.erase(inputHash); + } + + // Erase all old hashes from the database + for (auto hash : databaseHashes) { + auto it = item_map.find(hash); + if (it != item_map.end()) + { + item_list.erase(it->second); + item_map.erase(it); + } + mapDirtyWitnessData.erase(hash); + walletdb.ErasePrecompute(hash); + } + + nLastCacheCleanUpTime = GetTime(); + } + } + + // On first load, and every 5 minutes write the cache to database + if (mapDirtyWitnessData.size() > PRECOMPUTE_MAX_DIRTY_CACHE_SIZE || nLastCacheWriteDB < GetTime() - PRECOMPUTE_FLUSH_TIME || ShutdownRequested()) { + // Save all cache data that was dirty back into the database + for (auto item : mapDirtyWitnessData) { + walletdb.WritePrecompute(item.first, item.second); + } + mapDirtyWitnessData.clear(); + + // Save the LRU cache data into the database + for (auto item : item_list) { + walletdb.WritePrecompute(item.first, item.second); + } + + LogPrint("precompute", "%s: Writing precomputes to database. Precomputes size: %d\n", __func__, item_map.size()); + nLastCacheWriteDB = GetTime(); + } + + fOnFirstLoad = false; + + if (ShutdownRequested()) + break; + + LogPrint("precompute", "%s: Finished precompute round...\n\n", __func__); + MilliSleep(5000); + } +} + diff --git a/src/wallet.h b/src/wallet/wallet.h similarity index 96% rename from src/wallet.h rename to src/wallet/wallet.h index 41f17cfa23d8..6d159f4e8055 100644 --- a/src/wallet.h +++ b/src/wallet/wallet.h @@ -17,14 +17,14 @@ #include "main.h" #include "primitives/block.h" #include "primitives/transaction.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "ui_interface.h" #include "util.h" #include "validationinterface.h" -#include "wallet_ismine.h" -#include "walletdb.h" -#include "zpivwallet.h" -#include "zpivtracker.h" +#include "wallet/wallet_ismine.h" +#include "wallet/walletdb.h" +#include "zpiv/zpivwallet.h" +#include "zpiv/zpivtracker.h" #include #include @@ -45,6 +45,7 @@ extern bool bSpendZeroConfChange; extern bool bdisableSystemnotifications; extern bool fSendFreeTransactions; extern bool fPayAtLeastCustomFee; +extern bool fGlobalUnlockSpendCache; // Bool used for letting the precomputing thread know that zpivspends need to use the cs_spendcache //! -paytxfee default static const CAmount DEFAULT_TRANSACTION_FEE = 0; @@ -195,7 +196,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface public: bool MintableCoins(); - bool SelectStakeCoins(std::list >& listInputs, CAmount nTargetAmount); + bool SelectStakeCoins(std::list >& listInputs, CAmount nTargetAmount, bool fPrecompute = false); bool SelectCoinsDark(CAmount nValueMin, CAmount nValueMax, std::vector& setCoinsRet, CAmount& nValueRet, int nObfuscationRoundsMin, int nObfuscationRoundsMax) const; bool SelectCoinsByDenominations(int nDenom, CAmount nValueMin, CAmount nValueMax, std::vector& vCoinsRet, std::vector& vCoinsRet2, CAmount& nValueRet, int nObfuscationRoundsMin, int nObfuscationRoundsMax); bool SelectCoinsDarkDenominated(CAmount nTargetValue, std::vector& setCoinsRet, CAmount& nValueRet) const; @@ -207,11 +208,14 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface // Zerocoin additions bool CreateZerocoinMintTransaction(const CAmount nValue, CMutableTransaction& txNew, vector& vDMints, CReserveKey* reservekey, int64_t& nFeeRet, std::string& strFailReason, const CCoinControl* coinControl = NULL, const bool isZCSpendChange = false); - bool CreateZerocoinSpendTransaction(CAmount nValue, int nSecurityLevel, CWalletTx& wtxNew, CReserveKey& reserveKey, CZerocoinSpendReceipt& receipt, vector& vSelectedMints, vector& vNewMints, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* address = NULL); - bool MintToTxIn(CZerocoinMint zerocoinSelected, int nSecurityLevel, const uint256& hashTxOut, CTxIn& newTxIn, CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint = nullptr); + bool CreateZerocoinSpendTransaction(CAmount nValue, CWalletTx& wtxNew, CReserveKey& reserveKey, CZerocoinSpendReceipt& receipt, vector& vSelectedMints, vector& vNewMints, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* address = NULL); + bool CheckCoinSpend(libzerocoin::CoinSpend& spend, libzerocoin::Accumulator& accumulator, CZerocoinSpendReceipt& receipt); + bool MintToTxIn(CZerocoinMint mint, const uint256& hashTxOut, CTxIn& newTxIn, CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint = nullptr); + bool MintsToInputVector(std::map& mapMintsSelected, const uint256& hashTxOut, std::vector& vin, + CZerocoinSpendReceipt& receipt, libzerocoin::SpendType spendType, CBlockIndex* pindexCheckpoint = nullptr); std::string MintZerocoinFromOutPoint(CAmount nValue, CWalletTx& wtxNew, std::vector& vDMints, const vector vOutpts); std::string MintZerocoin(CAmount nValue, CWalletTx& wtxNew, vector& vDMints, const CCoinControl* coinControl = NULL); - bool SpendZerocoin(CAmount nValue, int nSecurityLevel, CWalletTx& wtxNew, CZerocoinSpendReceipt& receipt, vector& vMintsSelected, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* addressTo = NULL); + bool SpendZerocoin(CAmount nValue, CWalletTx& wtxNew, CZerocoinSpendReceipt& receipt, vector& vMintsSelected, bool fMintChange, bool fMinimizeChange, CBitcoinAddress* addressTo = NULL); std::string ResetMintZerocoin(); std::string ResetSpentZerocoin(); void ReconsiderZerocoins(std::list& listMintsRestored, std::list& listDMintsRestored); @@ -382,6 +386,8 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface const CWalletTx* GetWalletTx(const uint256& hash) const; + void PrecomputeSpends(); + //! check whether we are allowed to upgrade (or already support) to the named feature bool CanSupportFeature(enum WalletFeature wf) { @@ -536,7 +542,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface std::set GetAccountAddresses(std::string strAccount) const; bool GetBudgetSystemCollateralTX(CWalletTx& tx, uint256 hash, bool useIX); - bool GetBudgetFinalizationCollateralTX(CWalletTx& tx, uint256 hash, bool useIX); // Only used for budget finalization + bool GetBudgetFinalizationCollateralTX(CWalletTx& tx, uint256 hash, bool useIX); // Only used for budget finalization // get the Obfuscation chain depth for a given input int GetRealInputObfuscationRounds(CTxIn in, int rounds) const; @@ -1231,4 +1237,6 @@ class CAccountingEntry std::vector _ssExtra; }; +void ThreadPrecomputeSpends(); + #endif // BITCOIN_WALLET_H diff --git a/src/wallet_ismine.cpp b/src/wallet/wallet_ismine.cpp similarity index 100% rename from src/wallet_ismine.cpp rename to src/wallet/wallet_ismine.cpp diff --git a/src/wallet_ismine.h b/src/wallet/wallet_ismine.h similarity index 100% rename from src/wallet_ismine.h rename to src/wallet/wallet_ismine.h diff --git a/src/walletdb.cpp b/src/wallet/walletdb.cpp similarity index 94% rename from src/walletdb.cpp rename to src/wallet/walletdb.cpp index 4a15f20d64e4..d5df4e390e37 100644 --- a/src/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -5,7 +5,7 @@ // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include "walletdb.h" +#include "wallet/walletdb.h" #include "base58.h" #include "protocol.h" @@ -14,8 +14,8 @@ #include "txdb.h" #include "util.h" #include "utiltime.h" -#include "wallet.h" -#include +#include "wallet/wallet.h" +#include #include #include @@ -1377,6 +1377,112 @@ bool CWalletDB::WriteMintPoolPair(const uint256& hashMasterSeed, const uint256& return Write(make_pair(string("mintpool"), hashPubcoin), make_pair(hashMasterSeed, nCount)); } +void CWalletDB::LoadPrecomputes(std::list >& itemList, std::map >::iterator>& itemMap) +{ + + Dbc* pcursor = GetCursor(); + if (!pcursor) + throw runtime_error(std::string(__func__)+" : cannot create DB cursor"); + unsigned int fFlags = DB_SET_RANGE; + for (;;) + { + // Read next record + CDataStream ssKey(SER_DISK, CLIENT_VERSION); + if (fFlags == DB_SET_RANGE) + ssKey << make_pair(string("precompute"), uint256(0)); + CDataStream ssValue(SER_DISK, CLIENT_VERSION); + int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags); + fFlags = DB_NEXT; + if (ret == DB_NOTFOUND) + break; + else if (ret != 0) + { + pcursor->close(); + throw runtime_error(std::string(__func__)+" : error scanning precompute DB"); + } + + // Unserialize + string strType; + ssKey >> strType; + if (strType != "precompute") + break; + + uint256 hash; + ssKey >> hash; + + CoinWitnessCacheData cacheData; + ssValue >> cacheData; + + itemList.push_front(std::make_pair(hash, cacheData)); + itemMap.insert(make_pair(hash, itemList.begin())); + + if (itemMap.size() == PRECOMPUTE_LRU_CACHE_SIZE) + break; + } + + pcursor->close(); +} + +void CWalletDB::LoadPrecomputes(set setHashes) +{ + Dbc* pcursor = GetCursor(); + if (!pcursor) + throw runtime_error(std::string(__func__)+" : cannot create DB cursor"); + unsigned int fFlags = DB_SET_RANGE; + for (;;) + { + // Read next record + CDataStream ssKey(SER_DISK, CLIENT_VERSION); + if (fFlags == DB_SET_RANGE) + ssKey << make_pair(string("precompute"), uint256(0)); + CDataStream ssValue(SER_DISK, CLIENT_VERSION); + int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags); + fFlags = DB_NEXT; + if (ret == DB_NOTFOUND) + break; + else if (ret != 0) + { + pcursor->close(); + throw runtime_error(std::string(__func__)+" : error scanning precompute DB"); + } + + // Unserialize + string strType; + ssKey >> strType; + if (strType != "precompute") + break; + + uint256 hash; + ssKey >> hash; + + setHashes.insert(hash); + } + + pcursor->close(); +} + +void CWalletDB::EraseAllPrecomputes() +{ + set setHashes; + LoadPrecomputes(setHashes); + + for (auto hash : setHashes) + ErasePrecompute(hash); +} + +bool CWalletDB::WritePrecompute(const uint256& hash, const CoinWitnessCacheData& data) +{ + return Write(make_pair(string("precompute"), hash), data); +} +bool CWalletDB::ReadPrecompute(const uint256& hash, CoinWitnessCacheData& data) +{ + return Read(make_pair(string("precompute"), hash), data); +} +bool CWalletDB::ErasePrecompute(const uint256& hash) +{ + return Erase(make_pair(string("precompute"), hash)); +} + //! map with hashMasterSeed as the key, paired with vector of hashPubcoins and their count std::map > > CWalletDB::MapMintPool() { diff --git a/src/walletdb.h b/src/wallet/walletdb.h similarity index 93% rename from src/walletdb.h rename to src/wallet/walletdb.h index 5cb316e54711..1f03d4a5b98d 100644 --- a/src/walletdb.h +++ b/src/wallet/walletdb.h @@ -8,13 +8,13 @@ #define BITCOIN_WALLETDB_H #include "amount.h" -#include "db.h" +#include "wallet/db.h" #include "key.h" #include "keystore.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "libzerocoin/Accumulator.h" #include "libzerocoin/Denominations.h" -#include "zpivtracker.h" +#include "zpiv/zpivtracker.h" #include #include @@ -190,6 +190,12 @@ class CWalletDB : public CDB std::map > > MapMintPool(); bool WriteMintPoolPair(const uint256& hashMasterSeed, const uint256& hashPubcoin, const uint32_t& nCount); + void LoadPrecomputes(std::list >& itemList, std::map >::iterator>& itemMap); + void LoadPrecomputes(set setHashes); + void EraseAllPrecomputes(); + bool WritePrecompute(const uint256& hash, const CoinWitnessCacheData& data); + bool ReadPrecompute(const uint256& hash, CoinWitnessCacheData& data); + bool ErasePrecompute(const uint256& hash); private: CWalletDB(const CWalletDB&); diff --git a/src/accumulatorcheckpoints.cpp b/src/zpiv/accumulatorcheckpoints.cpp similarity index 100% rename from src/accumulatorcheckpoints.cpp rename to src/zpiv/accumulatorcheckpoints.cpp diff --git a/src/accumulatorcheckpoints.h b/src/zpiv/accumulatorcheckpoints.h similarity index 100% rename from src/accumulatorcheckpoints.h rename to src/zpiv/accumulatorcheckpoints.h diff --git a/src/accumulatorcheckpoints.json.h b/src/zpiv/accumulatorcheckpoints.json.h similarity index 100% rename from src/accumulatorcheckpoints.json.h rename to src/zpiv/accumulatorcheckpoints.json.h diff --git a/src/accumulatormap.cpp b/src/zpiv/accumulatormap.cpp similarity index 94% rename from src/accumulatormap.cpp rename to src/zpiv/accumulatormap.cpp index abc438b22022..f07d97cd3e52 100644 --- a/src/accumulatormap.cpp +++ b/src/zpiv/accumulatormap.cpp @@ -73,6 +73,11 @@ bool AccumulatorMap::Accumulate(const PublicCoin& pubCoin, bool fSkipValidation) return true; } +libzerocoin::Accumulator AccumulatorMap::GetAccumulator(libzerocoin::CoinDenomination denom) +{ + return libzerocoin::Accumulator(params, denom, GetValue(denom)); +} + //Get the value of a specific accumulator CBigNum AccumulatorMap::GetValue(CoinDenomination denom) { diff --git a/src/accumulatormap.h b/src/zpiv/accumulatormap.h similarity index 92% rename from src/accumulatormap.h rename to src/zpiv/accumulatormap.h index 2baafc257b14..8ed5ea4a790e 100644 --- a/src/accumulatormap.h +++ b/src/zpiv/accumulatormap.h @@ -20,6 +20,7 @@ class AccumulatorMap bool Load(uint256 nCheckpoint); void Load(const AccumulatorCheckpoints::Checkpoint& checkpoint); bool Accumulate(const libzerocoin::PublicCoin& pubCoin, bool fSkipValidation = false); + libzerocoin::Accumulator GetAccumulator(libzerocoin::CoinDenomination denom); CBigNum GetValue(libzerocoin::CoinDenomination denom); uint256 GetCheckpoint(); void Reset(); diff --git a/src/accumulators.cpp b/src/zpiv/accumulators.cpp similarity index 74% rename from src/accumulators.cpp rename to src/zpiv/accumulators.cpp index 4f4a5f7517a2..71258739bab6 100644 --- a/src/accumulators.cpp +++ b/src/zpiv/accumulators.cpp @@ -11,12 +11,14 @@ #include "spork.h" #include "accumulatorcheckpoints.h" #include "zpivchain.h" +#include "tinyformat.h" using namespace libzerocoin; std::map mapAccumulatorValues; std::list listAccCheckpointsNoDB; + uint32_t ParseChecksum(uint256 nChecksum, CoinDenomination denomination) { //shift to the beginning bit of this denomination and trim any remaining bits by returning 32 bits only @@ -25,6 +27,7 @@ uint32_t ParseChecksum(uint256 nChecksum, CoinDenomination denomination) return nChecksum.Get32(); } + uint32_t GetChecksum(const CBigNum &bnValue) { CDataStream ss(SER_GETHASH, 0); @@ -34,6 +37,7 @@ uint32_t GetChecksum(const CBigNum &bnValue) return hash.Get32(); } + // Find the first occurance of a certain accumulator checksum. Return 0 if not found. int GetChecksumHeight(uint32_t nChecksum, CoinDenomination denomination) { @@ -60,6 +64,7 @@ int GetChecksumHeight(uint32_t nChecksum, CoinDenomination denomination) return 0; } + bool GetAccumulatorValueFromChecksum(uint32_t nChecksum, bool fMemoryOnly, CBigNum& bnAccValue) { if (mapAccumulatorValues.count(nChecksum)) { @@ -77,12 +82,14 @@ bool GetAccumulatorValueFromChecksum(uint32_t nChecksum, bool fMemoryOnly, CBigN return true; } + bool GetAccumulatorValueFromDB(uint256 nCheckpoint, CoinDenomination denom, CBigNum& bnAccValue) { uint32_t nChecksum = ParseChecksum(nCheckpoint, denom); return GetAccumulatorValueFromChecksum(nChecksum, false, bnAccValue); } + void AddAccumulatorChecksum(const uint32_t nChecksum, const CBigNum &bnValue) { //Since accumulators are switching at v2, stop databasing v1 because its useless. Only focus on v2. @@ -92,6 +99,7 @@ void AddAccumulatorChecksum(const uint32_t nChecksum, const CBigNum &bnValue) } } + void DatabaseChecksums(AccumulatorMap& mapAccumulators) { uint256 nCheckpoint = 0; @@ -103,6 +111,7 @@ void DatabaseChecksums(AccumulatorMap& mapAccumulators) } } + bool EraseChecksum(uint32_t nChecksum) { //erase from both memory and database @@ -127,6 +136,7 @@ bool EraseAccumulatorValues(const uint256& nCheckpointErase, const uint256& nChe return true; } + bool LoadAccumulatorValuesFromDB(const uint256 nCheckpoint) { for (auto& denomination : zerocoinDenomList) { @@ -145,6 +155,7 @@ bool LoadAccumulatorValuesFromDB(const uint256 nCheckpoint) return true; } + //Erase accumulator checkpoints for a certain block range bool EraseCheckpoints(int nStartHeight, int nEndHeight) { @@ -181,6 +192,7 @@ bool EraseCheckpoints(int nStartHeight, int nEndHeight) return true; } + bool InitializeAccumulators(const int nHeight, int& nHeightCheckpoint, AccumulatorMap& mapAccumulators) { if (nHeight < Params().Zerocoin_StartHeight()) @@ -228,6 +240,7 @@ bool InitializeAccumulators(const int nHeight, int& nHeightCheckpoint, Accumulat return true; } + //Get checkpoint value for a specific block height bool CalculateAccumulatorCheckpoint(int nHeight, uint256& nCheckpoint, AccumulatorMap& mapAccumulators) { @@ -328,20 +341,9 @@ bool ValidateAccumulatorCheckpoint(const CBlock& block, CBlockIndex* pindex, Acc return true; } -void RandomizeSecurityLevel(int& nSecurityLevel) -{ - //security level: this is an important prevention of tracing the coins via timing. Security level represents how many checkpoints - //of accumulated coins are added *beyond* the checkpoint that the mint being spent was added too. If each spend added the exact same - //amounts of checkpoints after the mint was accumulated, then you could know the range of blocks that the mint originated from. - if (nSecurityLevel < 100) { - //add some randomness to the user's selection so that it is not always the same - nSecurityLevel += CBigNum::randBignum(10).getint(); - - //security level 100 represents adding all available coins that have been accumulated - user did not select this - if (nSecurityLevel >= 100) - nSecurityLevel = 99; - } -} + +//########################## Witness + //Compute how many coins were added to an accumulator up to the end height int ComputeAccumulatedCoins(int nHeightEnd, libzerocoin::CoinDenomination denom) @@ -356,6 +358,7 @@ int ComputeAccumulatedCoins(int nHeightEnd, libzerocoin::CoinDenomination denom) return n; } + list GetPubcoinFromBlock(const CBlockIndex* pindex){ //grab mints from this block CBlock block; @@ -367,24 +370,21 @@ list GetPubcoinFromBlock(const CBlockIndex* pindex){ return listPubcoins; } + + int AddBlockMintsToAccumulator(const CoinDenomination den, const CBloomFilter filter, const CBlockIndex* pindex, libzerocoin::Accumulator* accumulator, bool isWitness, list& notAddedCoins) { // if this block contains mints of the denomination that is being spent, then add them to the witness int nMintsAdded = 0; if (pindex->MintedDenomination(den)) { - //grab mints from this block - list listPubcoins = GetPubcoinFromBlock(pindex); - //add the mints to the witness - for (const PublicCoin& pubcoin : listPubcoins) { + for (const PublicCoin& pubcoin : GetPubcoinFromBlock(pindex)) { if (pubcoin.getDenomination() != den) { continue; } - bool filterContains = filter.contains(pubcoin.getValue().getvch()); - - if (isWitness && filterContains) { + if (isWitness && filter.contains(pubcoin.getValue().getvch())) { notAddedCoins.emplace_back(pubcoin.getValue()); continue; } @@ -398,16 +398,13 @@ int AddBlockMintsToAccumulator(const CoinDenomination den, const CBloomFilter fi } int AddBlockMintsToAccumulator(const libzerocoin::PublicCoin& coin, const int nHeightMintAdded, const CBlockIndex* pindex, - libzerocoin::Accumulator* accumulator, bool isWitness) + libzerocoin::Accumulator* accumulator, bool isWitness) { // if this block contains mints of the denomination that is being spent, then add them to the witness int nMintsAdded = 0; if (pindex->MintedDenomination(coin.getDenomination())) { - //grab mints from this block - list listPubcoins = GetPubcoinFromBlock(pindex); - //add the mints to the witness - for (const PublicCoin& pubcoin : listPubcoins) { + for (const PublicCoin& pubcoin : GetPubcoinFromBlock(pindex)) { if (pubcoin.getDenomination() != coin.getDenomination()) continue; @@ -422,6 +419,20 @@ int AddBlockMintsToAccumulator(const libzerocoin::PublicCoin& coin, const int nH return nMintsAdded; } + +int AddBlockMintsToAccumulator(CoinWitnessData* coinWitness, const CBlockIndex* pindex, bool isWitness) +{ + // TODO: This should be the witness.. + return AddBlockMintsToAccumulator( + *coinWitness->coin.get(), + coinWitness->nHeightMintAdded, + pindex, + coinWitness->pAccumulator.get(), + isWitness + ); +} + + bool GetAccumulatorValue(int& nHeight, const libzerocoin::CoinDenomination denom, CBigNum& bnAccValue) { if (nHeight > chainActive.Height()) @@ -449,6 +460,9 @@ bool GetAccumulatorValue(int& nHeight, const libzerocoin::CoinDenomination denom return true; } + +//############ Witness Generation + /** * TODO: Why we are locking the wallet in this way? * @return @@ -470,34 +484,204 @@ bool LockMethod(){ return true; } -std::list calculateAccumulatedBlocksFor( +int SearchMintHeightOf(CBigNum value){ + uint256 txid; + if (!zerocoinDB->ReadCoinMint(value, txid)) + throw searchMintHeightException("searchForMintHeightOf:: failed to read mint from db"); + + CTransaction txMinted; + uint256 hashBlock; + if (!GetTransaction(txid, txMinted, hashBlock)) + throw searchMintHeightException("searchForMintHeightOf:: failed to read tx"); + + int nHeightTest; + if (!IsTransactionInChain(txid, nHeightTest)) + throw searchMintHeightException("searchForMintHeightOf:: mint tx "+ txid.GetHex() +" is not in chain"); + + return mapBlockIndex[hashBlock]->nHeight; +} + + +void AccumulateRange(CoinWitnessData* coinWitness, int nHeightEnd) +{ + bool fDoubleCounted = false; + int64_t nTimeStart = GetTimeMicros(); + int nHeightStart = std::max(coinWitness->nHeightAccStart, coinWitness->nHeightAccEnd + 1); + CBlockIndex* pindex = chainActive[nHeightStart]; + + LogPrint("zero", "%s: start=%d end=%d\n", __func__, nHeightStart, nHeightEnd); + while (pindex && pindex->nHeight <= nHeightEnd) { + coinWitness->nMintsAdded += AddBlockMintsToAccumulator(coinWitness, pindex, true); + coinWitness->nHeightAccEnd = pindex->nHeight; + + // 10 blocks were accumulated twice when zPIV v2 was activated + if (pindex->nHeight == Params().Zerocoin_Block_Double_Accumulated() + 10 && !fDoubleCounted) { + pindex = chainActive[Params().Zerocoin_Block_Double_Accumulated()]; + fDoubleCounted = true; + continue; + } + + pindex = chainActive.Next(pindex); + } + int64_t nTimeEnd = GetTimeMicros(); + LogPrint("bench", " - Range accumulation completed in %.2fms\n", 0.001 * (nTimeEnd - nTimeStart)); +} + + +bool GenerateAccumulatorWitness(CoinWitnessData* coinWitness, AccumulatorMap& mapAccumulators, CBlockIndex* pindexCheckpoint) +{ + try { + // Lock + LogPrint("zero", "%s: generating\n", __func__); + if (!LockMethod()) return false; + LogPrint("zero", "%s: after lock\n", __func__); + + int64_t nTimeStart = GetTimeMicros(); + + //If there is a Acc End height filled in, then this has already been partially accumulated. + if (!coinWitness->nHeightAccEnd) { + LogPrintf("RESET ACC\n"); + coinWitness->pAccumulator = std::unique_ptr(new Accumulator(Params().Zerocoin_Params(false), coinWitness->denom)); + coinWitness->pWitness = std::unique_ptr(new AccumulatorWitness(Params().Zerocoin_Params(false), *coinWitness->pAccumulator, *coinWitness->coin)); + } + + // Mint added height + coinWitness->SetHeightMintAdded(SearchMintHeightOf(coinWitness->coin->getValue())); + + // Set the initial state of the witness accumulator for this coin. + CBigNum bnAccValue = 0; + if (!coinWitness->nHeightAccEnd && GetAccumulatorValue(coinWitness->nHeightCheckpoint, coinWitness->coin->getDenomination(), bnAccValue)) { + libzerocoin::Accumulator witnessAccumulator(Params().Zerocoin_Params(false), coinWitness->denom, bnAccValue); + coinWitness->pAccumulator->setValue(witnessAccumulator.getValue()); + } + + //add the pubcoins from the blockchain up to the next checksum starting from the block + int nChainHeight = chainActive.Height(); + int nHeightMax = nChainHeight % 10; + nHeightMax = nChainHeight - nHeightMax - 20; // at least two checkpoints deep + + // Determine the height to stop at + int nHeightStop; + if (pindexCheckpoint) { + nHeightStop = pindexCheckpoint->nHeight - 10; + nHeightStop -= nHeightStop % 10; + LogPrint("zero", "%s: using checkpoint height %d\n", __func__, pindexCheckpoint->nHeight); + } else { + nHeightStop = nHeightMax; + } + + if (nHeightStop > coinWitness->nHeightAccEnd) + AccumulateRange(coinWitness, nHeightStop - 1); + + mapAccumulators.Load(chainActive[nHeightStop + 10]->nAccumulatorCheckpoint); + coinWitness->pWitness->resetValue(*coinWitness->pAccumulator, *coinWitness->coin); + if(!coinWitness->pWitness->VerifyWitness(mapAccumulators.GetAccumulator(coinWitness->denom), *coinWitness->coin)) + return error("%s: failed to verify witness", __func__); + + // A certain amount of accumulated coins are required + if (coinWitness->nMintsAdded < Params().Zerocoin_RequiredAccumulation()) + return error("%s : Less than %d mints added, unable to create spend. %s", __func__, Params().Zerocoin_RequiredAccumulation(), coinWitness->ToString()); + + // calculate how many mints of this denomination existed in the accumulator we initialized + coinWitness->nMintsAdded += ComputeAccumulatedCoins(coinWitness->nHeightAccStart, coinWitness->denom); + LogPrint("zero", "%s : %d mints added to witness\n", __func__, coinWitness->nMintsAdded); + + int64_t nTime1 = GetTimeMicros(); + LogPrint("bench", " - Witness generated in %.2fms\n", 0.001 * (nTime1 - nTimeStart)); + + return true; + + // TODO: I know that could merge all of this exception but maybe it's not really good.. think if we should have a different treatment for each one + } catch (searchMintHeightException e) { + return error("%s: searchMintHeightException: %s", __func__, e.message); + } catch (ChecksumInDbNotFoundException e) { + return error("%s: ChecksumInDbNotFoundException: %s", __func__, e.message); + } catch (GetPubcoinException e) { + return error("%s: GetPubcoinException: %s", __func__, e.message); + } +} + +bool calculateAccumulatedBlocksFor( + int startHeight, + int nHeightStop, + CBlockIndex *pindex, + CBigNum &bnAccValue, + libzerocoin::Accumulator &accumulator, + libzerocoin::CoinDenomination den, + CBloomFilter filter, + libzerocoin::Accumulator &witnessAccumulator, + list& ret, + string& strError +){ + bool fDoubleCounted = false; + int nMintsAdded = 0; + while (pindex) { + + if (pindex->nHeight >= nHeightStop) { + //If this height is within the invalid range (when fraudulent coins were being minted), then continue past this range + if(InvalidCheckpointRange(pindex->nHeight)) + continue; + + bnAccValue = 0; + uint256 nCheckpointSpend = chainActive[pindex->nHeight + 10]->nAccumulatorCheckpoint; + if (!GetAccumulatorValueFromDB(nCheckpointSpend, den, bnAccValue) || bnAccValue == 0) { + throw new ChecksumInDbNotFoundException( + "calculateAccumulatedBlocksFor : failed to find checksum in database for accumulator"); + } + accumulator.setValue(bnAccValue); + break; + } + + nMintsAdded += AddBlockMintsToAccumulator(den, filter, pindex, &witnessAccumulator, true, ret); + + // 10 blocks were accumulated twice when zPIV v2 was activated + if (pindex->nHeight == 1050010 && !fDoubleCounted) { + pindex = chainActive[1050000]; + fDoubleCounted = true; + continue; + } + + pindex = chainActive.Next(pindex); + } + + // A certain amount of accumulated coins are required + if (nMintsAdded < Params().Zerocoin_RequiredAccumulation()) { + strError = _(strprintf("Less than %d mints added, unable to create spend", + Params().Zerocoin_RequiredAccumulation()).c_str()); + throw NotEnoughMintsException(strError); + } + + LogPrintf("calculateAccumulatedBlocksFor() : nMintsAdded %d",nMintsAdded); + + return true; +} + +bool calculateAccumulatedBlocksFor( int startHeight, int nHeightStop, + int nHeightMintAdded, CBlockIndex *pindex, int &nCheckpointsAdded, CBigNum &bnAccValue, libzerocoin::Accumulator &accumulator, - libzerocoin::CoinDenomination den, - int nSecurityLevel + libzerocoin::Accumulator &witnessAccumulator, + libzerocoin::PublicCoin coin, + string& strError ){ - std::list blocksToInclude; int amountOfScannedBlocks = 0; bool fDoubleCounted = false; + int nMintsAdded = 0; while (pindex) { - if (pindex->nHeight != startHeight && pindex->pprev->nAccumulatorCheckpoint != pindex->nAccumulatorCheckpoint) - ++nCheckpointsAdded; - //If the security level is satisfied, or the stop height is reached, then initialize the accumulator from here - bool fSecurityLevelSatisfied = (nSecurityLevel != 100 && nCheckpointsAdded >= nSecurityLevel); - if (pindex->nHeight >= nHeightStop || fSecurityLevelSatisfied) { + if (pindex->nHeight >= nHeightStop) { //If this height is within the invalid range (when fraudulent coins were being minted), then continue past this range if(InvalidCheckpointRange(pindex->nHeight)) continue; bnAccValue = 0; uint256 nCheckpointSpend = chainActive[pindex->nHeight + 10]->nAccumulatorCheckpoint; - if (!GetAccumulatorValueFromDB(nCheckpointSpend, den, bnAccValue) || bnAccValue == 0) { + if (!GetAccumulatorValueFromDB(nCheckpointSpend, coin.getDenomination(), bnAccValue) || bnAccValue == 0) { throw new ChecksumInDbNotFoundException( "calculateAccumulatedBlocksFor : failed to find checksum in database for accumulator"); } @@ -506,7 +690,7 @@ std::list calculateAccumulatedBlocksFor( } // Add it - blocksToInclude.push_back(pindex); + nMintsAdded += AddBlockMintsToAccumulator(coin, nHeightMintAdded, pindex, &witnessAccumulator, true); // 10 blocks were accumulated twice when zPIV v2 was activated if (pindex->nHeight == 1050010 && !fDoubleCounted) { @@ -519,9 +703,19 @@ std::list calculateAccumulatedBlocksFor( pindex = chainActive.Next(pindex); } - return blocksToInclude; + // A certain amount of accumulated coins are required + if (nMintsAdded < Params().Zerocoin_RequiredAccumulation()) { + strError = _(strprintf("Less than %d mints added, unable to create spend", + Params().Zerocoin_RequiredAccumulation()).c_str()); + throw NotEnoughMintsException(strError); + } + + LogPrintf("calculateAccumulatedBlocksFor() : nMintsAdded %d",nMintsAdded); + + return true; } + bool CalculateAccumulatorWitnessFor( const ZerocoinParams* params, int startHeight, @@ -530,7 +724,6 @@ bool CalculateAccumulatorWitnessFor( const CBloomFilter& filter, Accumulator& accumulator, AccumulatorWitness& witness, - int nSecurityLevel, int& nMintsAdded, string& strError, list& ret, @@ -549,7 +742,6 @@ bool CalculateAccumulatorWitnessFor( int nHeightCheckpoint = startHeight + (10 - (startHeight % 10)); // Get the base accumulator - //CBigNum bnAccValue = accumulator.getValue(); // TODO: This needs to be changed to the partial witness calculation on the next version. CBigNum bnAccValue = 0; if (GetAccumulatorValue(nHeightCheckpoint, den, bnAccValue)) { @@ -570,36 +762,26 @@ bool CalculateAccumulatorWitnessFor( } heightStop = nHeightStop; - // Iterate through the chain and calculate the witness - int nCheckpointsAdded = 0; nMintsAdded = 0; - RandomizeSecurityLevel(nSecurityLevel); //make security level not always the same and predictable + // Starts on top of the witness that the node sent libzerocoin::Accumulator witnessAccumulator(params, den, witness.getValue()); - std::list blocksToInclude = calculateAccumulatedBlocksFor( + if(!calculateAccumulatedBlocksFor( startHeight, nHeightStop, pindex, - nCheckpointsAdded, bnAccValue, accumulator, den, - nSecurityLevel - ); - - // Now accumulate the coins - for (const CBlockIndex *blockIndex : blocksToInclude) { - nMintsAdded += AddBlockMintsToAccumulator(den, filter, blockIndex, &witnessAccumulator, true, ret); - } - - // A certain amount of accumulated coins are required - if (nMintsAdded < Params().Zerocoin_RequiredAccumulation()) { - strError = _(strprintf("Less than %d mints added, unable to create spend", - Params().Zerocoin_RequiredAccumulation()).c_str()); - throw NotEnoughMintsException(strError); - } - + filter, + witnessAccumulator, + ret, + strError + )) + return error("CalculateAccumulatorWitnessFor(): Calculate accumulated coins failed"); + + // reset the value witness.resetValue(witnessAccumulator, temp); // calculate how many mints of this denomination existed in the accumulator we initialized @@ -615,30 +797,10 @@ bool CalculateAccumulatorWitnessFor( } } - -int SearchMintHeightOf(CBigNum value){ - uint256 txid; - if (!zerocoinDB->ReadCoinMint(value, txid)) - throw searchMintHeightException("searchForMintHeightOf:: failed to read mint from db"); - - CTransaction txMinted; - uint256 hashBlock; - if (!GetTransaction(txid, txMinted, hashBlock)) - throw searchMintHeightException("searchForMintHeightOf:: failed to read tx"); - - int nHeightTest; - if (!IsTransactionInChain(txid, nHeightTest)) - throw searchMintHeightException("searchForMintHeightOf:: mint tx "+ txid.GetHex() +" is not in chain"); - - return mapBlockIndex[hashBlock]->nHeight; -} - - bool GenerateAccumulatorWitness( const PublicCoin &coin, Accumulator& accumulator, AccumulatorWitness& witness, - int nSecurityLevel, int& nMintsAdded, string& strError, CBlockIndex* pindexCheckpoint) @@ -680,23 +842,21 @@ bool GenerateAccumulatorWitness( //Iterate through the chain and calculate the witness int nCheckpointsAdded = 0; nMintsAdded = 0; - RandomizeSecurityLevel(nSecurityLevel); //make security level not always the same and predictable libzerocoin::Accumulator witnessAccumulator = accumulator; - std::list blocksToInclude = calculateAccumulatedBlocksFor( + if(!calculateAccumulatedBlocksFor( nAccStartHeight, nHeightStop, + nHeightMintAdded, pindex, nCheckpointsAdded, bnAccValue, accumulator, - coin.getDenomination(), - nSecurityLevel - ); - - // Now accumulate the coins - for (const CBlockIndex *blockIndex : blocksToInclude) { - nMintsAdded += AddBlockMintsToAccumulator(coin, nHeightMintAdded, blockIndex, &witnessAccumulator, true); + witnessAccumulator, + coin, + strError + )){ + return error("GenerateAccumulatorWitness(): Calculate accumulated coins failed"); } witness.resetValue(witnessAccumulator, coin); diff --git a/src/accumulators.h b/src/zpiv/accumulators.h similarity index 84% rename from src/accumulators.h rename to src/zpiv/accumulators.h index 9a9948da4960..7089961b76cc 100644 --- a/src/accumulators.h +++ b/src/zpiv/accumulators.h @@ -8,11 +8,12 @@ #include "libzerocoin/Accumulator.h" #include "libzerocoin/Coin.h" #include "libzerocoin/Denominations.h" -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "accumulatormap.h" #include "chain.h" #include "uint256.h" #include "bloom.h" +#include "witness.h" class CBlockIndex; @@ -22,14 +23,6 @@ std::map GetMintMaturityHeight(); * Calculate the acc witness for a single coin. * @return true if the witness was calculated well */ -bool GenerateAccumulatorWitness(const libzerocoin::PublicCoin &coin, - libzerocoin::Accumulator& accumulator, - libzerocoin::AccumulatorWitness& witness, - int nSecurityLevel, - int& nMintsAdded, - std::string& strError, - CBlockIndex* pindexCheckpoint = nullptr - ); bool CalculateAccumulatorWitnessFor( const libzerocoin::ZerocoinParams* params, @@ -39,14 +32,22 @@ bool CalculateAccumulatorWitnessFor( const CBloomFilter& filter, libzerocoin::Accumulator& accumulator, libzerocoin::AccumulatorWitness& witness, - int nSecurityLevel, int& nMintsAdded, string& strError, list& ret, int &heightStop ); +bool GenerateAccumulatorWitness( + const libzerocoin::PublicCoin &coin, + libzerocoin::Accumulator& accumulator, + libzerocoin::AccumulatorWitness& witness, + int& nMintsAdded, + string& strError, + CBlockIndex* pindexCheckpoint = nullptr); + +bool GenerateAccumulatorWitness(CoinWitnessData* coinWitness, AccumulatorMap& mapAccumulators, CBlockIndex* pindexCheckpoint); list GetPubcoinFromBlock(const CBlockIndex* pindex); bool GetAccumulatorValueFromDB(uint256 nCheckpoint, libzerocoin::CoinDenomination denom, CBigNum& bnAccValue); bool GetAccumulatorValue(int& nHeight, const libzerocoin::CoinDenomination denom, CBigNum& bnAccValue); @@ -90,3 +91,4 @@ class searchMintHeightException : public std::exception { }; #endif //PIVX_ACCUMULATORS_H + diff --git a/src/primitives/deterministicmint.cpp b/src/zpiv/deterministicmint.cpp similarity index 100% rename from src/primitives/deterministicmint.cpp rename to src/zpiv/deterministicmint.cpp diff --git a/src/primitives/deterministicmint.h b/src/zpiv/deterministicmint.h similarity index 100% rename from src/primitives/deterministicmint.h rename to src/zpiv/deterministicmint.h diff --git a/src/mintpool.cpp b/src/zpiv/mintpool.cpp similarity index 100% rename from src/mintpool.cpp rename to src/zpiv/mintpool.cpp diff --git a/src/mintpool.h b/src/zpiv/mintpool.h similarity index 98% rename from src/mintpool.h rename to src/zpiv/mintpool.h index aaa75399e8ba..8c2a137c2245 100644 --- a/src/mintpool.h +++ b/src/zpiv/mintpool.h @@ -8,7 +8,7 @@ #include #include -#include "primitives/zerocoin.h" +#include "zpiv/zerocoin.h" #include "libzerocoin/bignum.h" #include "uint256.h" diff --git a/src/zpiv/witness.cpp b/src/zpiv/witness.cpp new file mode 100644 index 000000000000..c28cc4d33022 --- /dev/null +++ b/src/zpiv/witness.cpp @@ -0,0 +1,106 @@ +#include +#include +#include "witness.h" + +void CoinWitnessData::SetNull() +{ + coin = nullptr; + pAccumulator = nullptr; + pWitness = nullptr; + nMintsAdded = 0; + nHeightMintAdded = 0; + nHeightCheckpoint = 0; + nHeightAccStart = 0; + nHeightAccEnd = 0; +} + +CoinWitnessData::CoinWitnessData() +{ + SetNull(); +} + +std::string CoinWitnessData::ToString() +{ + return strprintf("Mints Added: %d\n" + "Height Mint added: %d\n" + "Height Checkpoint: %d\n" + "Height Acc Start: %d\n" + "Height Acc End: %d\n" + "Amount: %s\n" + "Demon: %d\n", nMintsAdded, nHeightMintAdded, nHeightCheckpoint, nHeightAccStart, nHeightAccEnd, coin->getValue().GetHex(), coin->getDenomination()); +} + +CoinWitnessData::CoinWitnessData(CZerocoinMint& mint) +{ + SetNull(); + denom = mint.GetDenomination(); + isV1 = libzerocoin::ExtractVersionFromSerial(mint.GetSerialNumber()) < libzerocoin::PrivateCoin::PUBKEY_VERSION; + libzerocoin::ZerocoinParams* paramsCoin = Params().Zerocoin_Params(isV1); + coin = std::unique_ptr(new libzerocoin::PublicCoin(paramsCoin, mint.GetValue(), denom)); + libzerocoin::Accumulator accumulator1(Params().Zerocoin_Params(false), denom); + pWitness = std::unique_ptr(new libzerocoin::AccumulatorWitness(Params().Zerocoin_Params(false), accumulator1, *coin)); + nHeightAccStart = mint.GetHeight(); +} + +CoinWitnessData::CoinWitnessData(CoinWitnessCacheData& data) +{ + SetNull(); + denom = data.denom; + isV1 = data.isV1; + libzerocoin::ZerocoinParams* paramsCoin = Params().Zerocoin_Params(isV1); + coin = std::unique_ptr(new libzerocoin::PublicCoin(paramsCoin, data.coinAmount, data.coinDenom)); + pAccumulator = std::unique_ptr(new libzerocoin::Accumulator(Params().Zerocoin_Params(false), denom, data.accumulatorAmount)); + pWitness = std::unique_ptr(new libzerocoin::AccumulatorWitness(Params().Zerocoin_Params(false), *pAccumulator, *coin)); + nMintsAdded = data.nMintsAdded; + nHeightMintAdded = data.nHeightMintAdded; + nHeightCheckpoint = data.nHeightCheckpoint; + nHeightAccStart = data.nHeightAccStart; + nHeightAccEnd = data.nHeightAccEnd; + txid = data.txid; +} + +void CoinWitnessData::SetHeightMintAdded(int nHeight) +{ + nHeightMintAdded = nHeight; + nHeightCheckpoint = nHeight + (10 - (nHeight % 10)); + nHeightAccStart = nHeight - (nHeight % 10); +} + + + +void CoinWitnessCacheData::SetNull() +{ + nMintsAdded = 0; + nHeightMintAdded = 0; + nHeightCheckpoint = 0; + nHeightAccStart = 0; + nHeightAccEnd = 0; + coinAmount = CBigNum(0); + coinDenom = libzerocoin::CoinDenomination::ZQ_ERROR; + accumulatorAmount = CBigNum(0); + accumulatorDenom = libzerocoin::CoinDenomination::ZQ_ERROR; + +} + +CoinWitnessCacheData::CoinWitnessCacheData() +{ + SetNull(); +} + +CoinWitnessCacheData::CoinWitnessCacheData(CoinWitnessData* coinWitnessData) +{ + SetNull(); + denom = coinWitnessData->denom; + isV1 = coinWitnessData->isV1; + txid = coinWitnessData->txid; + nMintsAdded = coinWitnessData->nMintsAdded; + nHeightMintAdded = coinWitnessData->nHeightMintAdded; + nHeightCheckpoint = coinWitnessData->nHeightCheckpoint; + nHeightAccStart = coinWitnessData->nHeightAccStart; + nHeightAccEnd = coinWitnessData->nHeightAccEnd; + coinAmount = coinWitnessData->coin->getValue(); + coinDenom = coinWitnessData->coin->getDenomination(); + accumulatorAmount = coinWitnessData->pAccumulator->getValue(); + accumulatorDenom = coinWitnessData->pAccumulator->getDenomination(); +} + diff --git a/src/zpiv/witness.h b/src/zpiv/witness.h new file mode 100644 index 000000000000..d5721089c8fa --- /dev/null +++ b/src/zpiv/witness.h @@ -0,0 +1,78 @@ +#ifndef PIVX_WITNESS_H +#define PIVX_WITNESS_H + + +#include +#include +#include "zerocoin.h" +#include "serialize.h" + +#define PRECOMPUTE_LRU_CACHE_SIZE 1000 +#define PRECOMPUTE_MAX_DIRTY_CACHE_SIZE 100 +#define PRECOMPUTE_FLUSH_TIME 300 // 5 minutes + +class CoinWitnessCacheData; + +class CoinWitnessData +{ +public: + std::unique_ptr coin; + std::unique_ptr pAccumulator; + std::unique_ptr pWitness; + libzerocoin::CoinDenomination denom; + int nHeightCheckpoint; + int nHeightMintAdded; + int nHeightAccStart; + int nHeightAccEnd; + int nMintsAdded; + uint256 txid; + bool isV1; + + CoinWitnessData(); + CoinWitnessData(CZerocoinMint& mint); + CoinWitnessData(CoinWitnessCacheData& data); + void SetHeightMintAdded(int nHeight); + void SetNull(); + std::string ToString(); +}; + +class CoinWitnessCacheData +{ +public: + libzerocoin::CoinDenomination denom; + int nHeightCheckpoint; + int nHeightMintAdded; + int nHeightAccStart; + int nHeightAccEnd; + int nMintsAdded; + uint256 txid; + bool isV1; + CBigNum coinAmount; + libzerocoin::CoinDenomination coinDenom; + CBigNum accumulatorAmount; + libzerocoin::CoinDenomination accumulatorDenom; + + CoinWitnessCacheData(); + CoinWitnessCacheData(CoinWitnessData* coinWitnessData); + void SetNull(); + + ADD_SERIALIZE_METHODS; + + template + inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) + { + READWRITE(denom); + READWRITE(nHeightCheckpoint); + READWRITE(nHeightMintAdded); + READWRITE(nHeightAccStart); + READWRITE(nHeightAccEnd); + READWRITE(nMintsAdded); + READWRITE(txid); + READWRITE(isV1); + READWRITE(coinAmount); // used to create the PublicCoin + READWRITE(coinDenom); + READWRITE(accumulatorAmount); // used to create the pAccumulator + READWRITE(accumulatorDenom); + }; +}; +#endif //PIVX_WITNESS_H diff --git a/src/primitives/zerocoin.cpp b/src/zpiv/zerocoin.cpp similarity index 98% rename from src/primitives/zerocoin.cpp rename to src/zpiv/zerocoin.cpp index 76507bc9425f..b1d0fde10a09 100644 --- a/src/primitives/zerocoin.cpp +++ b/src/zpiv/zerocoin.cpp @@ -3,7 +3,7 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include -#include "primitives/zerocoin.h" +#include "zerocoin.h" #include "hash.h" #include "util.h" #include "utilstrencodings.h" diff --git a/src/primitives/zerocoin.h b/src/zpiv/zerocoin.h similarity index 100% rename from src/primitives/zerocoin.h rename to src/zpiv/zerocoin.h diff --git a/src/zpivtracker.cpp b/src/zpiv/zpivtracker.cpp similarity index 95% rename from src/zpivtracker.cpp rename to src/zpiv/zpivtracker.cpp index 8e84e40cf277..13fac4d65664 100644 --- a/src/zpivtracker.cpp +++ b/src/zpiv/zpivtracker.cpp @@ -2,15 +2,16 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. -#include +#include #include "zpivtracker.h" #include "util.h" #include "sync.h" #include "main.h" #include "txdb.h" -#include "walletdb.h" -#include "zpivwallet.h" -#include "accumulators.h" +#include "wallet/walletdb.h" +#include "zpiv/accumulators.h" +#include "zpiv/zpivwallet.h" +#include "witness.h" using namespace std; @@ -110,6 +111,29 @@ bool CzPIVTracker::GetMetaFromStakeHash(const uint256& hashStake, CMintMeta& met return false; } +CoinWitnessData* CzPIVTracker::GetSpendCache(const uint256& hashStake) +{ + AssertLockHeld(cs_spendcache); + if (!mapStakeCache.count(hashStake)) { + std::unique_ptr uptr(new CoinWitnessData()); + mapStakeCache.insert(std::make_pair(hashStake, std::move(uptr))); + return mapStakeCache.at(hashStake).get(); + } + + return mapStakeCache.at(hashStake).get(); +} + +bool CzPIVTracker::ClearSpendCache() +{ + AssertLockHeld(cs_spendcache); + if (!mapStakeCache.empty()) { + mapStakeCache.clear(); + return true; + } + + return false; +} + std::vector CzPIVTracker::GetSerialHashes() { vector vHashes; @@ -507,4 +531,4 @@ std::set CzPIVTracker::ListMints(bool fUnusedOnly, bool fMatureOnly, void CzPIVTracker::Clear() { mapSerialHashes.clear(); -} \ No newline at end of file +} diff --git a/src/zpivtracker.h b/src/zpiv/zpivtracker.h similarity index 85% rename from src/zpivtracker.h rename to src/zpiv/zpivtracker.h index 4d2e656f7fbd..944c534f586d 100644 --- a/src/zpivtracker.h +++ b/src/zpiv/zpivtracker.h @@ -5,7 +5,9 @@ #ifndef PIVX_ZPIVTRACKER_H #define PIVX_ZPIVTRACKER_H -#include "primitives/zerocoin.h" +#include "zerocoin.h" +#include "witness.h" +#include "sync.h" #include class CDeterministicMint; @@ -18,6 +20,7 @@ class CzPIVTracker std::string strWalletFile; std::map mapSerialHashes; std::map mapPendingSpends; //serialhash, txid of spend + std::map > mapStakeCache; //serialhash, witness value, height bool UpdateStatusInternal(const std::set& setMempool, CMintMeta& mint); public: CzPIVTracker(std::string strWalletFile); @@ -37,6 +40,9 @@ class CzPIVTracker bool GetMetaFromStakeHash(const uint256& hashStake, CMintMeta& meta) const; CAmount GetBalance(bool fConfirmedOnly, bool fUnconfirmedOnly) const; std::vector GetSerialHashes(); + mutable CCriticalSection cs_spendcache; + CoinWitnessData* GetSpendCache(const uint256& hashStake) EXCLUSIVE_LOCKS_REQUIRED(cs_spendcache); + bool ClearSpendCache() EXCLUSIVE_LOCKS_REQUIRED(cs_spendcache); std::vector GetMints(bool fConfirmedOnly) const; CAmount GetUnconfirmedBalance() const; std::set ListMints(bool fUnusedOnly, bool fMatureOnly, bool fUpdateStatus, bool fWrongSeed = false); diff --git a/src/zpivwallet.cpp b/src/zpiv/zpivwallet.cpp similarity index 99% rename from src/zpivwallet.cpp rename to src/zpiv/zpivwallet.cpp index 51827d36b0c0..69cdca4d703d 100644 --- a/src/zpivwallet.cpp +++ b/src/zpiv/zpivwallet.cpp @@ -5,10 +5,10 @@ #include "zpivwallet.h" #include "main.h" #include "txdb.h" -#include "walletdb.h" +#include "wallet/walletdb.h" #include "init.h" -#include "wallet.h" -#include "primitives/deterministicmint.h" +#include "wallet/wallet.h" +#include "deterministicmint.h" #include "zpivchain.h" using namespace libzerocoin; @@ -328,7 +328,7 @@ bool CzPIVWallet::SetMintSeen(const CBigNum& bnValue, const int& nHeight, const // Add to zpivTracker which also adds to database pwalletMain->zpivTracker->Add(dMint, true); - + //Update the count if it is less than the mint's count if (nCountLastUsed < pMint.second) { CWalletDB walletdb(strWalletFile); diff --git a/src/zpivwallet.h b/src/zpiv/zpivwallet.h similarity index 98% rename from src/zpivwallet.h rename to src/zpiv/zpivwallet.h index ae25a5890174..deb3de72ad2d 100644 --- a/src/zpivwallet.h +++ b/src/zpiv/zpivwallet.h @@ -9,7 +9,7 @@ #include "libzerocoin/Coin.h" #include "mintpool.h" #include "uint256.h" -#include "primitives/zerocoin.h" +#include "zerocoin.h" class CDeterministicMint; diff --git a/test/functional/interface_rest.py b/test/functional/interface_rest.py index 1d29a33dd2e6..25809d9bda62 100755 --- a/test/functional/interface_rest.py +++ b/test/functional/interface_rest.py @@ -210,9 +210,9 @@ def run_test(self): # compare with block header response_header = http_get_call(url.hostname, url.port, '/rest/headers/1/'+bb_hash+self.FORMAT_SEPARATOR+"bin", True) assert_equal(response_header.status, 200) - assert_equal(int(response_header.getheader('content-length')), 112) + assert_equal(int(response_header.getheader('content-length')), 80) response_header_str = response_header.read() - assert_equal(response_str[0:112], response_header_str) + assert_equal(response_str[0:80], response_header_str) # check block hex format response_hex = http_get_call(url.hostname, url.port, '/rest/block/'+bb_hash+self.FORMAT_SEPARATOR+"hex", True) diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py index cca6facf570e..5d47f9f7ba92 100644 --- a/test/functional/test_framework/util.py +++ b/test/functional/test_framework/util.py @@ -297,6 +297,7 @@ def initialize_datadir(dirname, n): f.write("listenonion=0\n") f.write("litemode=1\n") f.write("enablezeromint=0\n") + f.write("precompute=0\n") f.write("staking=0\n") f.write("spendzeroconfchange=1\n") return datadir diff --git a/test/functional/zerocoin_wrapped_serials.py b/test/functional/zerocoin_wrapped_serials.py old mode 100644 new mode 100755 index 14b091cf44fc..a84e3cee95cb --- a/test/functional/zerocoin_wrapped_serials.py +++ b/test/functional/zerocoin_wrapped_serials.py @@ -91,7 +91,7 @@ def run_test(self): tx = self.node.spendrawzerocoin(serial, randomness, DENOM_TO_USE, privkey) except JSONRPCException as e: exc_msg = str(e) - if exc_msg == "The new spend coin transaction did not verify (-4)": + if exc_msg == "CoinSpend: failed check (-4)": self.log.info("GOOD: Transaction did not verify") else: raise e From 8719b3d02942184ef380dedabde0768c5559ff1f Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Thu, 11 Apr 2019 22:29:41 -0400 Subject: [PATCH 2/8] Re-Implement old concept of AutoCombineRewardsThresholdTime; which appeared to be a failed attempt at delaying the AutoCombineDust() to occur after X minutes. That old algorithm was commented out and replaced with a 5 second wait. This concept also was flawed, in that it was going to be doing a sleep within the ProcessNewBlock() code. The first attempt was abandoned because it likely was blocking ProcessNewBlock for 15 minutes at a time, and no way to not block, if using the feature, for under a minute. The workaround (5 seconds) still wasn't desirable, as it would still lock up ProcessNewBlock for the 5 second block. This new method changes that design from ThresholdTime, to Block Frequency, and defaults to 15 blocks. Time can be adjusted per implementation, to get a desired minute time based on the block frequency of the coin parameters. If AutoCombineDust is enabled, it will only check and attempt to combine dust if the block height is a multiple of the Block Frequency. e.g. if set to 10, then every 10th block it will be executed. 100; then every 100th block. Additionally, logic was added to provide a "one time" sweep; if you don't want a regularly scheduled sweep but you want to do a sweep at that given moment. Specifying a block frequency of zero will run AutoCombineDust() on the next block received, and then turn it off. It will be saved in the database as a one time sweep; so it will then run every time you start up the wallet. If you do not wish it to run on startup, you can turn off autocombinerewards after the sweep was performed. This can now be tailored by the user, based on their desired dust cleanup threshold, and their expectation of frequency that they will need to clean. --- src/rpc/client.cpp | 3 +- src/rpc/server.cpp | 3 +- src/rpc/server.h | 3 +- src/wallet/rpcwallet.cpp | 86 +++++++++++++++++++++++++++++++++------- src/wallet/wallet.cpp | 14 ++++++- src/wallet/wallet.h | 4 +- src/wallet/walletdb.cpp | 16 ++++---- src/wallet/walletdb.h | 4 +- 8 files changed, 104 insertions(+), 29 deletions(-) diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index a9ddea0e2ee4..84bbf5ea7b26 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -128,6 +128,7 @@ static const CRPCConvertParam vRPCConvertParams[] = {"setstakesplitthreshold", 0}, {"autocombinerewards", 0}, {"autocombinerewards", 1}, + {"autocombinerewards", 2}, {"getzerocoinbalance", 0}, {"listmintedzerocoins", 0}, {"listmintedzerocoins", 1}, diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 6539294df5aa..7159952d36fb 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -418,6 +418,7 @@ static const CRPCCommand vRPCCommands[] = {"wallet", "getreceivedbyaddress", &getreceivedbyaddress, false, false, true}, {"wallet", "getstakingstatus", &getstakingstatus, false, false, true}, {"wallet", "getstakesplitthreshold", &getstakesplitthreshold, false, false, true}, + {"wallet", "getautocombineinfo", &getautocombineinfo, false, false, true}, {"wallet", "gettransaction", &gettransaction, false, false, true}, {"wallet", "getunconfirmedbalance", &getunconfirmedbalance, false, false, true}, {"wallet", "getwalletinfo", &getwalletinfo, false, false, true}, diff --git a/src/rpc/server.h b/src/rpc/server.h index 88897e82f113..d1790a5fef1d 100644 --- a/src/rpc/server.h +++ b/src/rpc/server.h @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -249,6 +249,7 @@ extern UniValue reservebalance(const UniValue& params, bool fHelp); extern UniValue setstakesplitthreshold(const UniValue& params, bool fHelp); extern UniValue getstakesplitthreshold(const UniValue& params, bool fHelp); extern UniValue multisend(const UniValue& params, bool fHelp); +extern UniValue getautocombineinfo(const UniValue& params, bool fHelp); extern UniValue autocombinerewards(const UniValue& params, bool fHelp); extern UniValue getzerocoinbalance(const UniValue& params, bool fHelp); extern UniValue listmintedzerocoins(const UniValue& params, bool fHelp); diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 35cae7b3ed9c..a4240ca45b55 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -2262,38 +2262,96 @@ UniValue getstakesplitthreshold(const UniValue& params, bool fHelp) return int(pwalletMain->nStakeSplitThreshold); } +UniValue getautocombineinfo(const UniValue& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "getautocombineinfo\n" + "Returns the autocombinerewards settings\n"); + + UniValue obj(UniValue::VOBJ); + obj.push_back(Pair("autocombine set to ", int(pwalletMain->fCombineDust))); + if (pwalletMain->fCombineDust) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine set to one time", "on next block")); + } else { + obj.push_back(Pair("autocombine block frequency set to ", + int(pwalletMain->nAutoCombineBlockFrequency))); + } + } + else { + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + obj.push_back(Pair("autocombine set to one time","on startup")); + } + } + + return obj; +} + UniValue autocombinerewards(const UniValue& params, bool fHelp) { - bool fEnable; - if (params.size() >= 1) + string strCommand; + bool fEnable = false; + + if (params.size() >= 1) { fEnable = params[0].get_bool(); + } - if (fHelp || params.size() < 1 || (fEnable && params.size() != 2) || params.size() > 2) + if (fHelp || params.size() < 1 || (fEnable && params.size() < 2) || params.size() > 3) throw runtime_error( - "autocombinerewards enable ( threshold )\n" - "\nWallet will automatically monitor for any coins with value below the threshold amount, and combine them if they reside with the same PIVX address\n" - "When autocombinerewards runs it will create a transaction, and therefore will be subject to transaction fees.\n" + "autocombinerewards true|false|onetime ( threshold ) ( frequency )\n" + "\nWallet will automatically monitor for UTXOs with values below the threshold amount, " + "and combine them into transactions sized to the threshold amount, if they reside with " + "the same UCC address.\n" + "\nA frequency value of \"0\" will run the sweep on the next available block, once on every startup.\n" + "\nWhen autocombinerewards runs it will create a transaction, and therefore will be subject " + "to transaction fees. Transactions will be limited to a full combine of the threshold " + "amount unless the transaction fees are zero.\n" "\nArguments:\n" - "1. enable (boolean, required) Enable auto combine (true) or disable (false)\n" - "2. threshold (numeric, optional) Threshold amount (default: 0)\n" - + "1. true|false (boolean, required) Enable auto combine (true) or disable (false)\n" + "2. threshold (numeric, required) Threshold amount (default: 0)\n" + "3. frequency (numeric, optional) Frequency (in blocks) for autocombine to run (default: 15)\n" "\nExamples:\n" + - HelpExampleCli("autocombinerewards", "true 500") + HelpExampleRpc("autocombinerewards", "true 500")); + HelpExampleCli("autocombinerewards", "true 500 15") + HelpExampleRpc("autocombinerewards", "true 500 15")); CWalletDB walletdb(pwalletMain->strWalletFile); CAmount nThreshold = 0; + int nBlockFrequency = 15; - if (fEnable) + if (fEnable) { nThreshold = params[1].get_int(); + if (params.size() > 2) { + nBlockFrequency = params[2].get_int(); + if (nBlockFrequency < 0) + nBlockFrequency = 1; + } + } pwalletMain->fCombineDust = fEnable; pwalletMain->nAutoCombineThreshold = nThreshold; + pwalletMain->nAutoCombineBlockFrequency = nBlockFrequency; - if (!walletdb.WriteAutoCombineSettings(fEnable, nThreshold)) + if (!walletdb.WriteAutoCombineSettings(fEnable, nThreshold, nBlockFrequency)) throw runtime_error("Changed settings in wallet but failed to save to database\n"); - return NullUniValue; + UniValue obj(UniValue::VOBJ); + obj.push_back(Pair("autocombine set to ", int(pwalletMain->fCombineDust))); + if (pwalletMain->fCombineDust) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine block frequency set to ", "one time")); + } else { + obj.push_back(Pair("autocombine block frequency set to ", + int(pwalletMain->nAutoCombineBlockFrequency))); + } + + return obj; } UniValue printMultiSend() diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 0eb5b659f8f5..3737f98572f6 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -4190,6 +4190,18 @@ void CWallet::AutoCombineDust() return; } + if (0 != nAutoCombineBlockFrequency) { + // If the block height hasn't exceeded our frequency; or is not a multiple of our frequency. + if ((nAutoCombineBlockFrequency > chainActive.Tip()->nHeight) || + (chainActive.Tip()->nHeight % nAutoCombineBlockFrequency)) { + return; + } + } else { + // If nAutoCombineBlockFrequency is 0, it's the special onetime case + // so let it rip but turn it off so it doesn't rip again. + fCombineDust = 0; + } + map > mapCoinsByAddress = AvailableCoinsByAddress(true, nAutoCombineThreshold * COIN); //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 6d159f4e8055..9edc22d98059 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -279,6 +279,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface //Auto Combine Inputs bool fCombineDust; CAmount nAutoCombineThreshold; + int nAutoCombineBlockFrequency; CWallet() { @@ -330,6 +331,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface //Auto Combine Dust fCombineDust = false; nAutoCombineThreshold = 0; + nAutoCombineBlockFrequency = 15; } int getZeromintPercentage() diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index d5df4e390e37..b6b30849eb10 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -278,12 +278,11 @@ bool CWalletDB::EraseMSDisabledAddresses(std::vector vDisabledAddre } return ret; } -bool CWalletDB::WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold) +bool CWalletDB::WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold, int nBlockFrequency) { nWalletDBUpdated++; - std::pair pSettings; - pSettings.first = fEnable; - pSettings.second = nCombineThreshold; + std::pair enabledMS1(fEnable, nCombineThreshold); + std::pair,int> pSettings(enabledMS1, nBlockFrequency); return Write(std::string("autocombinesettings"), pSettings, true); } @@ -700,10 +699,11 @@ bool ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, CW ssValue >> strDisabledAddress; pwallet->vDisabledAddresses.push_back(strDisabledAddress); } else if (strType == "autocombinesettings") { - std::pair pSettings; + std::pair,int> pSettings; ssValue >> pSettings; - pwallet->fCombineDust = pSettings.first; - pwallet->nAutoCombineThreshold = pSettings.second; + pwallet->fCombineDust = pSettings.first.first; + pwallet->nAutoCombineThreshold = pSettings.first.second; + pwallet->nAutoCombineBlockFrequency = pSettings.second; } else if (strType == "destdata") { std::string strAddress, strKey, strValue; ssKey >> strAddress; diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h index 1f03d4a5b98d..55fc80cd22d6 100644 --- a/src/wallet/walletdb.h +++ b/src/wallet/walletdb.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2013 The Bitcoin developers -// Copyright (c) 2016-2018 The PIVX developers +// Copyright (c) 2016-2019 The PIVX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -125,7 +125,7 @@ class CWalletDB : public CDB bool WriteMSettings(bool fMultiSendStake, bool fMultiSendMasternode, int nLastMultiSendHeight); bool WriteMSDisabledAddresses(std::vector vDisabledAddresses); bool EraseMSDisabledAddresses(std::vector vDisabledAddresses); - bool WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold); + bool WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold, int nBlockFrequency); bool WriteDefaultKey(const CPubKey& vchPubKey); From 6f8b74dcb7a7c4899d696a60890855bbfefbf845 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Tue, 16 Apr 2019 20:50:57 -0400 Subject: [PATCH 3/8] A problem was introduced with #518 when a utxo smaller than 10% of the threshold takes the total combined coins above the threshold, or when the total amount of dust is less than 10% above the threshold. What occurs is two fold. First, the nTotalRewardsValue > nAutoCombineThreshold will break it out of the for loop; but the "safety margin" will split it up into two utxos, one within 10% of the threshold, and then the utxo for the change. When the wallet comes back through on it's dust collection, it can pick up those two utxos and repeat until the fees widdle the two combined transactions fall below the threshold. If there is another utxo to add in order to get us far enough above the threshold that the 10% reduction is still above the threshold; then we're now good when accounting for the 10% in our check in the for loop. However there is still one other case that slips through. If the total amount being collected falls into the "within 10% of the threshold" situation, and the for loop can't make another pass... we exit the for loop normally, and find our way into the zero fee check. However the zero fee check sees we are over the threshold, but not that the transaction amount will be over the threshold. So we need to account for the 10% there as well, by using the actual amount (vsecSend[0].second) rather than nTotalRewardsValue to determine if we should continue only if free. --- src/wallet/wallet.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 3737f98572f6..1e8246e9d19e 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -4228,9 +4228,8 @@ void CWallet::AutoCombineDust() coinControl->Select(outpt); vRewardCoins.push_back(out); nTotalRewardsValue += out.Value(); - - // Combine to the threshold and not way above - if (nTotalRewardsValue > nAutoCombineThreshold * COIN) + // Combine until our total is enough above the threshold to remain above after adjustments + if ((nTotalRewardsValue - nTotalRewardsValue / 10) > nAutoCombineThreshold * COIN) break; // Around 180 bytes per input. We use 190 to be certain @@ -4276,7 +4275,7 @@ void CWallet::AutoCombineDust() } //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees - if (!maxSize && nTotalRewardsValue < nAutoCombineThreshold * COIN && nFeeRet > 0) + if (!maxSize && vecSend[0].second < nAutoCombineThreshold * COIN && nFeeRet > 0) continue; if (!CommitTransaction(wtx, keyChange)) { @@ -4284,7 +4283,8 @@ void CWallet::AutoCombineDust() continue; } - LogPrintf("AutoCombineDust sent transaction\n"); + LogPrintf("AutoCombineDust sent transaction. Fee=%d, Total Value=%d Sending=%d\n", + nFeeRet, nTotalRewardsValue, vecSend[0].second); delete coinControl; } From 15709402266c68a3984422fe089f5f1c63f75696 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Thu, 11 Apr 2019 22:29:41 -0400 Subject: [PATCH 4/8] Re-Implement old concept of AutoCombineRewardsThresholdTime; which appeared to be a failed attempt at delaying the AutoCombineDust() to occur after X minutes. That old algorithm was commented out and replaced with a 5 second wait. This concept also was flawed, in that it was going to be doing a sleep within the ProcessNewBlock() code. The first attempt was abandoned because it likely was blocking ProcessNewBlock for 15 minutes at a time, and no way to not block, if using the feature, for under a minute. The workaround (5 seconds) still wasn't desirable, as it would still lock up ProcessNewBlock for the 5 second block. This new method changes that design from ThresholdTime, to Block Frequency, and defaults to 15 blocks. Time can be adjusted per implementation, to get a desired minute time based on the block frequency of the coin parameters. If AutoCombineDust is enabled, it will only check and attempt to combine dust if the block height is a multiple of the Block Frequency. e.g. if set to 10, then every 10th block it will be executed. 100; then every 100th block. Additionally, logic was added to provide a "one time" sweep; if you don't want a regularly scheduled sweep but you want to do a sweep at that given moment. Specifying a block frequency of zero will run AutoCombineDust() on the next block received, and then turn it off. It will be saved in the database as a one time sweep; so it will then run every time you start up the wallet. If you do not wish it to run on startup, you can turn off autocombinerewards after the sweep was performed. This can now be tailored by the user, based on their desired dust cleanup threshold, and their expectation of frequency that they will need to clean. --- src/rpc/client.cpp | 3 +- src/rpc/server.cpp | 3 +- src/rpc/server.h | 3 +- src/wallet/rpcwallet.cpp | 86 +++++++++++++++++++++++++++++++++------- src/wallet/wallet.cpp | 14 ++++++- src/wallet/wallet.h | 4 +- src/wallet/walletdb.cpp | 16 ++++---- src/wallet/walletdb.h | 4 +- 8 files changed, 104 insertions(+), 29 deletions(-) diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp index a9ddea0e2ee4..84bbf5ea7b26 100644 --- a/src/rpc/client.cpp +++ b/src/rpc/client.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -128,6 +128,7 @@ static const CRPCConvertParam vRPCConvertParams[] = {"setstakesplitthreshold", 0}, {"autocombinerewards", 0}, {"autocombinerewards", 1}, + {"autocombinerewards", 2}, {"getzerocoinbalance", 0}, {"listmintedzerocoins", 0}, {"listmintedzerocoins", 1}, diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp index 6539294df5aa..7159952d36fb 100644 --- a/src/rpc/server.cpp +++ b/src/rpc/server.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -418,6 +418,7 @@ static const CRPCCommand vRPCCommands[] = {"wallet", "getreceivedbyaddress", &getreceivedbyaddress, false, false, true}, {"wallet", "getstakingstatus", &getstakingstatus, false, false, true}, {"wallet", "getstakesplitthreshold", &getstakesplitthreshold, false, false, true}, + {"wallet", "getautocombineinfo", &getautocombineinfo, false, false, true}, {"wallet", "gettransaction", &gettransaction, false, false, true}, {"wallet", "getunconfirmedbalance", &getunconfirmedbalance, false, false, true}, {"wallet", "getwalletinfo", &getwalletinfo, false, false, true}, diff --git a/src/rpc/server.h b/src/rpc/server.h index 88897e82f113..d1790a5fef1d 100644 --- a/src/rpc/server.h +++ b/src/rpc/server.h @@ -1,6 +1,6 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -249,6 +249,7 @@ extern UniValue reservebalance(const UniValue& params, bool fHelp); extern UniValue setstakesplitthreshold(const UniValue& params, bool fHelp); extern UniValue getstakesplitthreshold(const UniValue& params, bool fHelp); extern UniValue multisend(const UniValue& params, bool fHelp); +extern UniValue getautocombineinfo(const UniValue& params, bool fHelp); extern UniValue autocombinerewards(const UniValue& params, bool fHelp); extern UniValue getzerocoinbalance(const UniValue& params, bool fHelp); extern UniValue listmintedzerocoins(const UniValue& params, bool fHelp); diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 35cae7b3ed9c..a4240ca45b55 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -2262,38 +2262,96 @@ UniValue getstakesplitthreshold(const UniValue& params, bool fHelp) return int(pwalletMain->nStakeSplitThreshold); } +UniValue getautocombineinfo(const UniValue& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "getautocombineinfo\n" + "Returns the autocombinerewards settings\n"); + + UniValue obj(UniValue::VOBJ); + obj.push_back(Pair("autocombine set to ", int(pwalletMain->fCombineDust))); + if (pwalletMain->fCombineDust) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine set to one time", "on next block")); + } else { + obj.push_back(Pair("autocombine block frequency set to ", + int(pwalletMain->nAutoCombineBlockFrequency))); + } + } + else { + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + obj.push_back(Pair("autocombine set to one time","on startup")); + } + } + + return obj; +} + UniValue autocombinerewards(const UniValue& params, bool fHelp) { - bool fEnable; - if (params.size() >= 1) + string strCommand; + bool fEnable = false; + + if (params.size() >= 1) { fEnable = params[0].get_bool(); + } - if (fHelp || params.size() < 1 || (fEnable && params.size() != 2) || params.size() > 2) + if (fHelp || params.size() < 1 || (fEnable && params.size() < 2) || params.size() > 3) throw runtime_error( - "autocombinerewards enable ( threshold )\n" - "\nWallet will automatically monitor for any coins with value below the threshold amount, and combine them if they reside with the same PIVX address\n" - "When autocombinerewards runs it will create a transaction, and therefore will be subject to transaction fees.\n" + "autocombinerewards true|false|onetime ( threshold ) ( frequency )\n" + "\nWallet will automatically monitor for UTXOs with values below the threshold amount, " + "and combine them into transactions sized to the threshold amount, if they reside with " + "the same UCC address.\n" + "\nA frequency value of \"0\" will run the sweep on the next available block, once on every startup.\n" + "\nWhen autocombinerewards runs it will create a transaction, and therefore will be subject " + "to transaction fees. Transactions will be limited to a full combine of the threshold " + "amount unless the transaction fees are zero.\n" "\nArguments:\n" - "1. enable (boolean, required) Enable auto combine (true) or disable (false)\n" - "2. threshold (numeric, optional) Threshold amount (default: 0)\n" - + "1. true|false (boolean, required) Enable auto combine (true) or disable (false)\n" + "2. threshold (numeric, required) Threshold amount (default: 0)\n" + "3. frequency (numeric, optional) Frequency (in blocks) for autocombine to run (default: 15)\n" "\nExamples:\n" + - HelpExampleCli("autocombinerewards", "true 500") + HelpExampleRpc("autocombinerewards", "true 500")); + HelpExampleCli("autocombinerewards", "true 500 15") + HelpExampleRpc("autocombinerewards", "true 500 15")); CWalletDB walletdb(pwalletMain->strWalletFile); CAmount nThreshold = 0; + int nBlockFrequency = 15; - if (fEnable) + if (fEnable) { nThreshold = params[1].get_int(); + if (params.size() > 2) { + nBlockFrequency = params[2].get_int(); + if (nBlockFrequency < 0) + nBlockFrequency = 1; + } + } pwalletMain->fCombineDust = fEnable; pwalletMain->nAutoCombineThreshold = nThreshold; + pwalletMain->nAutoCombineBlockFrequency = nBlockFrequency; - if (!walletdb.WriteAutoCombineSettings(fEnable, nThreshold)) + if (!walletdb.WriteAutoCombineSettings(fEnable, nThreshold, nBlockFrequency)) throw runtime_error("Changed settings in wallet but failed to save to database\n"); - return NullUniValue; + UniValue obj(UniValue::VOBJ); + obj.push_back(Pair("autocombine set to ", int(pwalletMain->fCombineDust))); + if (pwalletMain->fCombineDust) { + obj.push_back(Pair("autocombine threshold set to ", + int(pwalletMain->nAutoCombineThreshold))); + if (0 == pwalletMain->nAutoCombineBlockFrequency) { + obj.push_back(Pair("autocombine block frequency set to ", "one time")); + } else { + obj.push_back(Pair("autocombine block frequency set to ", + int(pwalletMain->nAutoCombineBlockFrequency))); + } + + return obj; } UniValue printMultiSend() diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 0eb5b659f8f5..3737f98572f6 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -4190,6 +4190,18 @@ void CWallet::AutoCombineDust() return; } + if (0 != nAutoCombineBlockFrequency) { + // If the block height hasn't exceeded our frequency; or is not a multiple of our frequency. + if ((nAutoCombineBlockFrequency > chainActive.Tip()->nHeight) || + (chainActive.Tip()->nHeight % nAutoCombineBlockFrequency)) { + return; + } + } else { + // If nAutoCombineBlockFrequency is 0, it's the special onetime case + // so let it rip but turn it off so it doesn't rip again. + fCombineDust = 0; + } + map > mapCoinsByAddress = AvailableCoinsByAddress(true, nAutoCombineThreshold * COIN); //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h index 6d159f4e8055..9edc22d98059 100644 --- a/src/wallet/wallet.h +++ b/src/wallet/wallet.h @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -279,6 +279,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface //Auto Combine Inputs bool fCombineDust; CAmount nAutoCombineThreshold; + int nAutoCombineBlockFrequency; CWallet() { @@ -330,6 +331,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface //Auto Combine Dust fCombineDust = false; nAutoCombineThreshold = 0; + nAutoCombineBlockFrequency = 15; } int getZeromintPercentage() diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index d5df4e390e37..b6b30849eb10 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2014 The Bitcoin developers // Copyright (c) 2014-2015 The Dash developers -// Copyright (c) 2015-2018 The PIVX developers +// Copyright (c) 2015-2019 The PIVX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -278,12 +278,11 @@ bool CWalletDB::EraseMSDisabledAddresses(std::vector vDisabledAddre } return ret; } -bool CWalletDB::WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold) +bool CWalletDB::WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold, int nBlockFrequency) { nWalletDBUpdated++; - std::pair pSettings; - pSettings.first = fEnable; - pSettings.second = nCombineThreshold; + std::pair enabledMS1(fEnable, nCombineThreshold); + std::pair,int> pSettings(enabledMS1, nBlockFrequency); return Write(std::string("autocombinesettings"), pSettings, true); } @@ -700,10 +699,11 @@ bool ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, CW ssValue >> strDisabledAddress; pwallet->vDisabledAddresses.push_back(strDisabledAddress); } else if (strType == "autocombinesettings") { - std::pair pSettings; + std::pair,int> pSettings; ssValue >> pSettings; - pwallet->fCombineDust = pSettings.first; - pwallet->nAutoCombineThreshold = pSettings.second; + pwallet->fCombineDust = pSettings.first.first; + pwallet->nAutoCombineThreshold = pSettings.first.second; + pwallet->nAutoCombineBlockFrequency = pSettings.second; } else if (strType == "destdata") { std::string strAddress, strKey, strValue; ssKey >> strAddress; diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h index 1f03d4a5b98d..55fc80cd22d6 100644 --- a/src/wallet/walletdb.h +++ b/src/wallet/walletdb.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2013 The Bitcoin developers -// Copyright (c) 2016-2018 The PIVX developers +// Copyright (c) 2016-2019 The PIVX developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -125,7 +125,7 @@ class CWalletDB : public CDB bool WriteMSettings(bool fMultiSendStake, bool fMultiSendMasternode, int nLastMultiSendHeight); bool WriteMSDisabledAddresses(std::vector vDisabledAddresses); bool EraseMSDisabledAddresses(std::vector vDisabledAddresses); - bool WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold); + bool WriteAutoCombineSettings(bool fEnable, CAmount nCombineThreshold, int nBlockFrequency); bool WriteDefaultKey(const CPubKey& vchPubKey); From c8e14872974bc6ec9c3b968abfaf3741b63f7ac0 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Tue, 16 Apr 2019 20:50:57 -0400 Subject: [PATCH 5/8] A problem was introduced with #518 when a utxo smaller than 10% of the threshold takes the total combined coins above the threshold, or when the total amount of dust is less than 10% above the threshold. What occurs is two fold. First, the nTotalRewardsValue > nAutoCombineThreshold will break it out of the for loop; but the "safety margin" will split it up into two utxos, one within 10% of the threshold, and then the utxo for the change. When the wallet comes back through on it's dust collection, it can pick up those two utxos and repeat until the fees widdle the two combined transactions fall below the threshold. If there is another utxo to add in order to get us far enough above the threshold that the 10% reduction is still above the threshold; then we're now good when accounting for the 10% in our check in the for loop. However there is still one other case that slips through. If the total amount being collected falls into the "within 10% of the threshold" situation, and the for loop can't make another pass... we exit the for loop normally, and find our way into the zero fee check. However the zero fee check sees we are over the threshold, but not that the transaction amount will be over the threshold. So we need to account for the 10% there as well, by using the actual amount (vsecSend[0].second) rather than nTotalRewardsValue to determine if we should continue only if free. --- src/wallet/wallet.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 3737f98572f6..1e8246e9d19e 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -4228,9 +4228,8 @@ void CWallet::AutoCombineDust() coinControl->Select(outpt); vRewardCoins.push_back(out); nTotalRewardsValue += out.Value(); - - // Combine to the threshold and not way above - if (nTotalRewardsValue > nAutoCombineThreshold * COIN) + // Combine until our total is enough above the threshold to remain above after adjustments + if ((nTotalRewardsValue - nTotalRewardsValue / 10) > nAutoCombineThreshold * COIN) break; // Around 180 bytes per input. We use 190 to be certain @@ -4276,7 +4275,7 @@ void CWallet::AutoCombineDust() } //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees - if (!maxSize && nTotalRewardsValue < nAutoCombineThreshold * COIN && nFeeRet > 0) + if (!maxSize && vecSend[0].second < nAutoCombineThreshold * COIN && nFeeRet > 0) continue; if (!CommitTransaction(wtx, keyChange)) { @@ -4284,7 +4283,8 @@ void CWallet::AutoCombineDust() continue; } - LogPrintf("AutoCombineDust sent transaction\n"); + LogPrintf("AutoCombineDust sent transaction. Fee=%d, Total Value=%d Sending=%d\n", + nFeeRet, nTotalRewardsValue, vecSend[0].second); delete coinControl; } From e07c0e88d64468b3ebf3841c272dfcc1039f3c02 Mon Sep 17 00:00:00 2001 From: CaveSpectre11 <36988814+CaveSpectre11@users.noreply.github.com> Date: Tue, 16 Apr 2019 21:49:31 -0400 Subject: [PATCH 6/8] Cleanup travis trailing whitespace complaint --- src/wallet/rpcwallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index a4240ca45b55..50db3931d651 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -2342,7 +2342,7 @@ UniValue autocombinerewards(const UniValue& params, bool fHelp) UniValue obj(UniValue::VOBJ); obj.push_back(Pair("autocombine set to ", int(pwalletMain->fCombineDust))); if (pwalletMain->fCombineDust) { - obj.push_back(Pair("autocombine threshold set to ", + obj.push_back(Pair("autocombine threshold set to ", int(pwalletMain->nAutoCombineThreshold))); if (0 == pwalletMain->nAutoCombineBlockFrequency) { obj.push_back(Pair("autocombine block frequency set to ", "one time")); From 5be0d1523a621a5c19de476f7e913f5e9e8db980 Mon Sep 17 00:00:00 2001 From: CaveSpectre11 <36988814+CaveSpectre11@users.noreply.github.com> Date: Tue, 16 Apr 2019 21:50:20 -0400 Subject: [PATCH 7/8] Cleanup Travis trailing whitespace complaint --- src/wallet/wallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 1e8246e9d19e..4b2071220d17 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -4192,7 +4192,7 @@ void CWallet::AutoCombineDust() if (0 != nAutoCombineBlockFrequency) { // If the block height hasn't exceeded our frequency; or is not a multiple of our frequency. - if ((nAutoCombineBlockFrequency > chainActive.Tip()->nHeight) || + if ((nAutoCombineBlockFrequency > chainActive.Tip()->nHeight) || (chainActive.Tip()->nHeight % nAutoCombineBlockFrequency)) { return; } From 63dda7d49b8289c1bbc1e6510019dc6e109d205e Mon Sep 17 00:00:00 2001 From: CaveSpectre11 <36988814+CaveSpectre11@users.noreply.github.com> Date: Wed, 17 Apr 2019 06:19:30 -0400 Subject: [PATCH 8/8] Missed end --- src/wallet/rpcwallet.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 50db3931d651..6a776dbb5f7c 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -2350,6 +2350,7 @@ UniValue autocombinerewards(const UniValue& params, bool fHelp) obj.push_back(Pair("autocombine block frequency set to ", int(pwalletMain->nAutoCombineBlockFrequency))); } + } return obj; }