Merge branch 'master' into v0.12.1.x
This commit is contained in:
commit
435f670921
@ -2,8 +2,8 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 0)
|
||||
define(_CLIENT_VERSION_MINOR, 12)
|
||||
define(_CLIENT_VERSION_REVISION, 1)
|
||||
define(_CLIENT_VERSION_BUILD, 0)
|
||||
define(_CLIENT_VERSION_REVISION, 0)
|
||||
define(_CLIENT_VERSION_BUILD, 52)
|
||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||
define(_COPYRIGHT_YEAR, 2015)
|
||||
AC_INIT([Dash Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[info@dashpay.io],[dash])
|
||||
|
@ -652,6 +652,7 @@ TRANSLATIONS += src/qt/locale/dash_bg.ts \
|
||||
src/qt/locale/dash_pl.ts \
|
||||
src/qt/locale/dash_pt.ts \
|
||||
src/qt/locale/dash_ru.ts \
|
||||
src/qt/locale/dash_sk.ts \
|
||||
src/qt/locale/dash_sv.ts \
|
||||
src/qt/locale/dash_vi.ts \
|
||||
src/qt/locale/dash_zh_CN.ts \
|
||||
|
@ -13,6 +13,7 @@ QT_TS = \
|
||||
qt/locale/dash_pl.ts \
|
||||
qt/locale/dash_pt.ts \
|
||||
qt/locale/dash_ru.ts \
|
||||
qt/locale/dash_sk.ts \
|
||||
qt/locale/dash_sv.ts \
|
||||
qt/locale/dash_vi.ts \
|
||||
qt/locale/dash_zh_CN.ts \
|
||||
|
@ -16,8 +16,8 @@
|
||||
//! These need to be macros, as clientversion.cpp's and dash*-res.rc's voodoo requires it
|
||||
#define CLIENT_VERSION_MAJOR 0
|
||||
#define CLIENT_VERSION_MINOR 12
|
||||
#define CLIENT_VERSION_REVISION 1
|
||||
#define CLIENT_VERSION_BUILD 0
|
||||
#define CLIENT_VERSION_REVISION 0
|
||||
#define CLIENT_VERSION_BUILD 52
|
||||
|
||||
//! Set to true for release, false for prerelease or test build
|
||||
#define CLIENT_VERSION_IS_RELEASE true
|
||||
|
111
src/darksend.cpp
111
src/darksend.cpp
@ -67,22 +67,8 @@ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand
|
||||
}
|
||||
|
||||
int nDenom;
|
||||
int nNumberOfInputs;
|
||||
CTransaction txCollateral;
|
||||
vRecv >> nDenom >> nNumberOfInputs >> txCollateral;
|
||||
|
||||
//non-denom's are incompatible
|
||||
if((nDenom & (1 << 4))) {
|
||||
errorID = ERR_INVALID_DENOM;
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_REJECTED, errorID);
|
||||
return;
|
||||
}
|
||||
|
||||
if(nNumberOfInputs < DARKSEND_MIN_INPUTS || nNumberOfInputs > DARKSEND_MAX_INPUTS) {
|
||||
errorID = ERR_INVALID_INPUTS_NUMBER;
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_REJECTED, errorID);
|
||||
return;
|
||||
}
|
||||
vRecv >> nDenom >> txCollateral;
|
||||
|
||||
CMasternode* pmn = mnodeman.Find(activeMasternode.vin);
|
||||
if(pmn == NULL)
|
||||
@ -102,13 +88,13 @@ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand
|
||||
}
|
||||
}
|
||||
|
||||
if(!IsCompatibleWithSession(nDenom, nNumberOfInputs, txCollateral, errorID))
|
||||
if(!IsCompatibleWithSession(nDenom, txCollateral, errorID))
|
||||
{
|
||||
LogPrintf("dsa -- not compatible with existing transactions!\n");
|
||||
LogPrintf("dsa -- not compatible with existing transactions! \n");
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_REJECTED, errorID);
|
||||
return;
|
||||
} else {
|
||||
LogPrintf("dsa -- is compatible, please submit!\n");
|
||||
LogPrintf("dsa -- is compatible, please submit! \n");
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_ACCEPTED, errorID);
|
||||
return;
|
||||
}
|
||||
@ -124,15 +110,6 @@ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand
|
||||
CDarksendQueue dsq;
|
||||
vRecv >> dsq;
|
||||
|
||||
//non-denom's are incompatible
|
||||
if((dsq.nDenom & (1 << 4))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(dsq.nNumberOfInputs < DARKSEND_MIN_INPUTS || dsq.nNumberOfInputs > DARKSEND_MAX_INPUTS) {
|
||||
return;
|
||||
}
|
||||
|
||||
CService addr;
|
||||
if(!dsq.GetAddress(addr)) return;
|
||||
if(!dsq.CheckSignature()) return;
|
||||
@ -196,16 +173,10 @@ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand
|
||||
}
|
||||
|
||||
std::vector<CTxIn> in;
|
||||
int64_t nAmount;
|
||||
CTransaction txCollateral;
|
||||
std::vector<CTxOut> out;
|
||||
vRecv >> in >> txCollateral >> out;
|
||||
|
||||
if((int)in.size() != sessionNumberOfInputs || (int)out.size() != sessionNumberOfInputs) {
|
||||
errorID = ERR_INVALID_INPUTS_NUMBER;
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_REJECTED, errorID);
|
||||
return;
|
||||
}
|
||||
|
||||
vRecv >> in >> nAmount >> txCollateral >> out;
|
||||
|
||||
//do we have enough users in the current session?
|
||||
if(!IsSessionReady()){
|
||||
@ -299,7 +270,7 @@ void CDarksendPool::ProcessMessageDarksend(CNode* pfrom, std::string& strCommand
|
||||
}
|
||||
}
|
||||
|
||||
if(AddEntry(in, txCollateral, out, errorID)){
|
||||
if(AddEntry(in, nAmount, txCollateral, out, errorID)){
|
||||
pfrom->PushMessage("dssu", sessionID, GetState(), GetEntriesCount(), MASTERNODE_ACCEPTED, errorID);
|
||||
Check();
|
||||
|
||||
@ -915,7 +886,6 @@ void CDarksendPool::CheckForCompleteQueue(){
|
||||
|
||||
CDarksendQueue dsq;
|
||||
dsq.nDenom = sessionDenom;
|
||||
dsq.nNumberOfInputs = sessionNumberOfInputs;
|
||||
dsq.vin = activeMasternode.vin;
|
||||
dsq.time = GetTime();
|
||||
dsq.ready = true;
|
||||
@ -1022,11 +992,11 @@ bool CDarksendPool::IsCollateralValid(const CTransaction& txCollateral){
|
||||
//
|
||||
// Add a clients transaction to the pool
|
||||
//
|
||||
bool CDarksendPool::AddEntry(const std::vector<CTxIn>& newInput, const CTransaction& txCollateral, const std::vector<CTxOut>& newOutput, int& errorID){
|
||||
bool CDarksendPool::AddEntry(const std::vector<CTxIn>& newInput, const int64_t& nAmount, const CTransaction& txCollateral, const std::vector<CTxOut>& newOutput, int& errorID){
|
||||
if (!fMasterNode) return false;
|
||||
|
||||
BOOST_FOREACH(CTxIn in, newInput) {
|
||||
if (in.prevout.IsNull()) {
|
||||
if (in.prevout.IsNull() || nAmount < 0) {
|
||||
LogPrint("darksend", "CDarksendPool::AddEntry - input not valid!\n");
|
||||
errorID = ERR_INVALID_INPUT;
|
||||
sessionUsers--;
|
||||
@ -1063,7 +1033,7 @@ bool CDarksendPool::AddEntry(const std::vector<CTxIn>& newInput, const CTransact
|
||||
}
|
||||
|
||||
CDarkSendEntry v;
|
||||
v.Add(newInput, txCollateral, newOutput);
|
||||
v.Add(newInput, nAmount, txCollateral, newOutput);
|
||||
entries.push_back(v);
|
||||
|
||||
LogPrint("darksend", "CDarksendPool::AddEntry -- adding %s\n", newInput[0].ToString());
|
||||
@ -1124,7 +1094,7 @@ bool CDarksendPool::SignaturesComplete(){
|
||||
// Execute a Darksend denomination via a Masternode.
|
||||
// This is only ran from clients
|
||||
//
|
||||
void CDarksendPool::SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<CTxOut>& vout){
|
||||
void CDarksendPool::SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<CTxOut>& vout, int64_t amount){
|
||||
|
||||
if(fMasterNode) {
|
||||
LogPrintf("CDarksendPool::SendDarksendDenominate() - Darksend from a Masternode is not supported currently.\n");
|
||||
@ -1171,10 +1141,13 @@ void CDarksendPool::SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<
|
||||
|
||||
//check it against the memory pool to make sure it's valid
|
||||
{
|
||||
int64_t nValueOut = 0;
|
||||
|
||||
CValidationState state;
|
||||
CMutableTransaction tx;
|
||||
|
||||
BOOST_FOREACH(const CTxOut& o, vout){
|
||||
nValueOut += o.nValue;
|
||||
tx.vout.push_back(o);
|
||||
}
|
||||
|
||||
@ -1201,10 +1174,10 @@ void CDarksendPool::SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<
|
||||
|
||||
// store our entry for later use
|
||||
CDarkSendEntry e;
|
||||
e.Add(vin, txCollateral, vout);
|
||||
e.Add(vin, amount, txCollateral, vout);
|
||||
entries.push_back(e);
|
||||
|
||||
RelayIn(entries[0].sev, txCollateral, entries[0].vout);
|
||||
RelayIn(entries[0].sev, entries[0].amount, txCollateral, entries[0].vout);
|
||||
Check();
|
||||
}
|
||||
|
||||
@ -1552,8 +1525,6 @@ bool CDarksendPool::DoAutomaticDenominating(bool fDryRun)
|
||||
//non-denom's are incompatible
|
||||
if((dsq.nDenom & (1 << 4))) continue;
|
||||
|
||||
if(dsq.nNumberOfInputs < DARKSEND_MIN_INPUTS || dsq.nNumberOfInputs > DARKSEND_MAX_INPUTS) continue;
|
||||
|
||||
bool fUsed = false;
|
||||
//don't reuse Masternodes
|
||||
BOOST_FOREACH(CTxIn usedVin, vecMasternodesUsed){
|
||||
@ -1567,16 +1538,11 @@ bool CDarksendPool::DoAutomaticDenominating(bool fDryRun)
|
||||
std::vector<CTxIn> vTempCoins;
|
||||
std::vector<COutput> vTempCoins2;
|
||||
// Try to match their denominations if possible
|
||||
if (!pwalletMain->SelectCoinsByDenominations(dsq.nDenom, dsq.nNumberOfInputs, vTempCoins, vTempCoins2, 0, nDarksendRounds)){
|
||||
if (!pwalletMain->SelectCoinsByDenominations(dsq.nDenom, nValueMin, nBalanceNeedsAnonymized, vTempCoins, vTempCoins2, nValueIn, 0, nDarksendRounds)){
|
||||
LogPrintf("DoAutomaticDenominating - Couldn't match denominations %d\n", dsq.nDenom);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((int)vTempCoins.size() < dsq.nNumberOfInputs) {
|
||||
LogPrintf("DoAutomaticDenominating - Not enough denominations %d to match queue - %d %d\n", dsq.nDenom, (int)vTempCoins.size(), dsq.nNumberOfInputs);
|
||||
continue;
|
||||
}
|
||||
|
||||
// connect to Masternode and submit the queue request
|
||||
CNode* pnode = ConnectNode((CAddress)addr, NULL, true);
|
||||
if(pnode != NULL)
|
||||
@ -1590,10 +1556,9 @@ bool CDarksendPool::DoAutomaticDenominating(bool fDryRun)
|
||||
pSubmittedToMasternode = pmn;
|
||||
vecMasternodesUsed.push_back(dsq.vin);
|
||||
sessionDenom = dsq.nDenom;
|
||||
sessionNumberOfInputs = dsq.nNumberOfInputs;
|
||||
|
||||
pnode->PushMessage("dsa", sessionDenom, sessionNumberOfInputs, txCollateral);
|
||||
LogPrintf("DoAutomaticDenominating --- connected (from queue), sending dsa for essionNumberOfInputs %d sessionDenom %d - %s\n", sessionNumberOfInputs, sessionDenom, pnode->addr.ToString());
|
||||
pnode->PushMessage("dsa", sessionDenom, txCollateral);
|
||||
LogPrintf("DoAutomaticDenominating --- connected (from queue), sending dsa for %d - %s\n", sessionDenom, pnode->addr.ToString());
|
||||
strAutoDenomResult = _("Mixing in progress...");
|
||||
dsq.time = 0; //remove node
|
||||
return true;
|
||||
@ -1638,23 +1603,8 @@ bool CDarksendPool::DoAutomaticDenominating(bool fDryRun)
|
||||
while(sessionDenom == 0)
|
||||
sessionDenom = GetDenominationsByAmounts(vecAmounts);
|
||||
|
||||
std::vector<CTxIn> vTempCoins;
|
||||
std::vector<COutput> vTempCoins2;
|
||||
if (!pwalletMain->SelectCoinsByDenominations(sessionDenom, rand() % DARKSEND_MAX_INPUTS + 1, vTempCoins, vTempCoins2, 0, nDarksendRounds)){
|
||||
// should never really happen
|
||||
LogPrintf("DoAutomaticDenominating - Couldn't match denominations %d\n", sessionDenom);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((int)vTempCoins.size() < DARKSEND_MIN_INPUTS) {
|
||||
LogPrintf("DoAutomaticDenominating - Not enough denominations to send %d\n", sessionDenom);
|
||||
continue;
|
||||
}
|
||||
|
||||
sessionNumberOfInputs = std::min(DARKSEND_MAX_INPUTS, (int)vTempCoins.size());
|
||||
|
||||
pnode->PushMessage("dsa", sessionDenom, sessionNumberOfInputs, txCollateral);
|
||||
LogPrintf("DoAutomaticDenominating --- connected, sending dsa for sessionNumberOfInputs %d sessionDenom %d\n", sessionNumberOfInputs, sessionDenom);
|
||||
pnode->PushMessage("dsa", sessionDenom, txCollateral);
|
||||
LogPrintf("DoAutomaticDenominating --- connected, sending dsa for %d\n", sessionDenom);
|
||||
strAutoDenomResult = _("Mixing in progress...");
|
||||
return true;
|
||||
} else {
|
||||
@ -1868,18 +1818,16 @@ bool CDarksendPool::IsCompatibleWithEntries(std::vector<CTxOut>& vout)
|
||||
LogPrintf(" vout 2 - %s\n", o2.ToString());
|
||||
*/
|
||||
if(GetDenominations(vout) != GetDenominations(v.vout)) return false;
|
||||
if(vout.size() != v.vout.size()) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CDarksendPool::IsCompatibleWithSession(int64_t nDenom, int nNumberOfInputs, CTransaction txCollateral, int& errorID)
|
||||
bool CDarksendPool::IsCompatibleWithSession(int64_t nDenom, CTransaction txCollateral, int& errorID)
|
||||
{
|
||||
if(nDenom == 0) return false;
|
||||
|
||||
LogPrintf("CDarksendPool::IsCompatibleWithSession - sessionDenom %d sessionUsers %d nDenom %d nNumberOfInputs %d sessionNumberOfInputs %d\n",
|
||||
sessionDenom, sessionUsers, nDenom, nNumberOfInputs, sessionNumberOfInputs);
|
||||
LogPrintf("CDarksendPool::IsCompatibleWithSession - sessionDenom %d sessionUsers %d\n", sessionDenom, sessionUsers);
|
||||
|
||||
if (!unitTest && !IsCollateralValid(txCollateral)){
|
||||
LogPrint("darksend", "CDarksendPool::IsCompatibleWithSession - collateral not valid!\n");
|
||||
@ -1893,14 +1841,12 @@ bool CDarksendPool::IsCompatibleWithSession(int64_t nDenom, int nNumberOfInputs,
|
||||
sessionID = 1 + (rand() % 999999);
|
||||
sessionDenom = nDenom;
|
||||
sessionUsers++;
|
||||
sessionNumberOfInputs = nNumberOfInputs;
|
||||
lastTimeChanged = GetTimeMillis();
|
||||
|
||||
if(!unitTest){
|
||||
//broadcast that I'm accepting entries, only if it's the first entry through
|
||||
CDarksendQueue dsq;
|
||||
dsq.nDenom = nDenom;
|
||||
dsq.nNumberOfInputs = nNumberOfInputs;
|
||||
dsq.vin = activeMasternode.vin;
|
||||
dsq.time = GetTime();
|
||||
dsq.Sign();
|
||||
@ -1924,11 +1870,6 @@ bool CDarksendPool::IsCompatibleWithSession(int64_t nDenom, int nNumberOfInputs,
|
||||
return false;
|
||||
}
|
||||
|
||||
if(sessionNumberOfInputs != nNumberOfInputs) {
|
||||
errorID = ERR_INVALID_INPUTS_NUMBER;
|
||||
return false;
|
||||
}
|
||||
|
||||
LogPrintf("CDarkSendPool::IsCompatibleWithSession - compatible\n");
|
||||
|
||||
sessionUsers++;
|
||||
@ -2075,9 +2016,7 @@ std::string CDarksendPool::GetMessageByID(int messageID) {
|
||||
case ERR_EXISTING_TX: return _("Not compatible with existing transactions.");
|
||||
case ERR_FEES: return _("Transaction fees are too high.");
|
||||
case ERR_INVALID_COLLATERAL: return _("Collateral not valid.");
|
||||
case ERR_INVALID_DENOM: return _("Invalid denominations.");
|
||||
case ERR_INVALID_INPUT: return _("Input is not valid.");
|
||||
case ERR_INVALID_INPUTS_NUMBER: return _("Number of inputs is not valid.");
|
||||
case ERR_INVALID_SCRIPT: return _("Invalid script detected.");
|
||||
case ERR_INVALID_TX: return _("Transaction not valid.");
|
||||
case ERR_MAXIMUM: return _("Value more than Darksend pool maximum allows.");
|
||||
@ -2232,7 +2171,7 @@ void CDarksendPool::RelayFinalTransaction(const int sessionID, const CTransactio
|
||||
}
|
||||
}
|
||||
|
||||
void CDarksendPool::RelayIn(const std::vector<CTxDSIn>& vin, const CTransaction& txCollateral, const std::vector<CTxDSOut>& vout)
|
||||
void CDarksendPool::RelayIn(const std::vector<CTxDSIn>& vin, const int64_t& nAmount, const CTransaction& txCollateral, const std::vector<CTxDSOut>& vout)
|
||||
{
|
||||
if(!pSubmittedToMasternode) return;
|
||||
|
||||
@ -2248,7 +2187,7 @@ void CDarksendPool::RelayIn(const std::vector<CTxDSIn>& vin, const CTransaction&
|
||||
CNode* pnode = FindNode(pSubmittedToMasternode->addr);
|
||||
if(pnode != NULL) {
|
||||
LogPrintf("RelayIn - found master, relaying message - %s \n", pnode->addr.ToString());
|
||||
pnode->PushMessage("dsi", vin2, txCollateral, vout2);
|
||||
pnode->PushMessage("dsi", vin2, nAmount, txCollateral, vout2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,9 +46,6 @@ class CActiveMasternode;
|
||||
#define DARKSEND_RELAY_OUT 2
|
||||
#define DARKSEND_RELAY_SIG 3
|
||||
|
||||
#define DARKSEND_MIN_INPUTS 1
|
||||
#define DARKSEND_MAX_INPUTS 5
|
||||
|
||||
static const int64_t DARKSEND_COLLATERAL = (0.01*COIN);
|
||||
static const int64_t DARKSEND_POOL_MAX = (999.99*COIN);
|
||||
|
||||
@ -101,6 +98,7 @@ public:
|
||||
bool isSet;
|
||||
std::vector<CTxDSIn> sev;
|
||||
std::vector<CTxDSOut> vout;
|
||||
int64_t amount;
|
||||
CTransaction collateral;
|
||||
CTransaction txSupporting;
|
||||
int64_t addedTime; // time in UTC milliseconds
|
||||
@ -109,10 +107,11 @@ public:
|
||||
{
|
||||
isSet = false;
|
||||
collateral = CTransaction();
|
||||
amount = 0;
|
||||
}
|
||||
|
||||
/// Add entries to use for Darksend
|
||||
bool Add(const std::vector<CTxIn> vinIn, const CTransaction collateralIn, const std::vector<CTxOut> voutIn)
|
||||
bool Add(const std::vector<CTxIn> vinIn, int64_t amountIn, const CTransaction collateralIn, const std::vector<CTxOut> voutIn)
|
||||
{
|
||||
if(isSet){return false;}
|
||||
|
||||
@ -122,6 +121,7 @@ public:
|
||||
BOOST_FOREACH(const CTxOut& out, voutIn)
|
||||
vout.push_back(out);
|
||||
|
||||
amount = amountIn;
|
||||
collateral = collateralIn;
|
||||
isSet = true;
|
||||
addedTime = GetTime();
|
||||
@ -161,14 +161,12 @@ public:
|
||||
CTxIn vin;
|
||||
int64_t time;
|
||||
int nDenom;
|
||||
int nNumberOfInputs;
|
||||
bool ready; //ready for submit
|
||||
std::vector<unsigned char> vchSig;
|
||||
|
||||
CDarksendQueue()
|
||||
{
|
||||
nDenom = 0;
|
||||
nNumberOfInputs = 0;
|
||||
vin = CTxIn();
|
||||
time = 0;
|
||||
vchSig.clear();
|
||||
@ -180,7 +178,6 @@ public:
|
||||
template <typename Stream, typename Operation>
|
||||
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
|
||||
READWRITE(nDenom);
|
||||
READWRITE(nNumberOfInputs);
|
||||
READWRITE(vin);
|
||||
READWRITE(time);
|
||||
READWRITE(ready);
|
||||
@ -304,9 +301,7 @@ public:
|
||||
ERR_EXISTING_TX,
|
||||
ERR_FEES,
|
||||
ERR_INVALID_COLLATERAL,
|
||||
ERR_INVALID_DENOM,
|
||||
ERR_INVALID_INPUT,
|
||||
ERR_INVALID_INPUTS_NUMBER,
|
||||
ERR_INVALID_SCRIPT,
|
||||
ERR_INVALID_TX,
|
||||
ERR_MAXIMUM,
|
||||
@ -329,7 +324,6 @@ public:
|
||||
|
||||
CMasternode* pSubmittedToMasternode;
|
||||
int sessionDenom; //Users must submit an denom matching this
|
||||
int sessionNumberOfInputs;//Users must submit only matching number of inputs
|
||||
int cachedNumBlocks; //used for the overview screen
|
||||
|
||||
CDarksendPool()
|
||||
@ -440,7 +434,7 @@ public:
|
||||
bool IsCompatibleWithEntries(std::vector<CTxOut>& vout);
|
||||
|
||||
/// Is this amount compatible with other client in the pool?
|
||||
bool IsCompatibleWithSession(int64_t nAmount, int nNumberOfInputs, CTransaction txCollateral, int &errorID);
|
||||
bool IsCompatibleWithSession(int64_t nAmount, CTransaction txCollateral, int &errorID);
|
||||
|
||||
/// Passively run Darksend in the background according to the configuration in settings (only for QT)
|
||||
bool DoAutomaticDenominating(bool fDryRun=false);
|
||||
@ -460,13 +454,13 @@ public:
|
||||
/// If the collateral is valid given by a client
|
||||
bool IsCollateralValid(const CTransaction& txCollateral);
|
||||
/// Add a clients entry to the pool
|
||||
bool AddEntry(const std::vector<CTxIn>& newInput, const CTransaction& txCollateral, const std::vector<CTxOut>& newOutput, int& errorID);
|
||||
bool AddEntry(const std::vector<CTxIn>& newInput, const int64_t& nAmount, const CTransaction& txCollateral, const std::vector<CTxOut>& newOutput, int& errorID);
|
||||
/// Add signature to a vin
|
||||
bool AddScriptSig(const CTxIn& newVin);
|
||||
/// Check that all inputs are signed. (Are all inputs signed?)
|
||||
bool SignaturesComplete();
|
||||
/// As a client, send a transaction to a Masternode to start the denomination process
|
||||
void SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<CTxOut>& vout);
|
||||
void SendDarksendDenominate(std::vector<CTxIn>& vin, std::vector<CTxOut>& vout, int64_t amount);
|
||||
/// Get Masternode updates about the progress of Darksend
|
||||
bool StatusUpdate(int newState, int newEntriesCount, int newAccepted, int &errorID, int newSessionID=0);
|
||||
|
||||
@ -505,7 +499,7 @@ public:
|
||||
void RelayFinalTransaction(const int sessionID, const CTransaction& txNew);
|
||||
void RelaySignaturesAnon(std::vector<CTxIn>& vin);
|
||||
void RelayInAnon(std::vector<CTxIn>& vin, std::vector<CTxOut>& vout);
|
||||
void RelayIn(const std::vector<CTxDSIn>& vin, const CTransaction& txCollateral, const std::vector<CTxDSOut>& vout);
|
||||
void RelayIn(const std::vector<CTxDSIn>& vin, const int64_t& nAmount, const CTransaction& txCollateral, const std::vector<CTxDSOut>& vout);
|
||||
void RelayStatus(const int sessionID, const int newState, const int newEntriesCount, const int newAccepted, const int errorID=MSG_NOERR);
|
||||
void RelayCompletedTransaction(const int sessionID, const bool error, const int errorID);
|
||||
};
|
||||
|
@ -598,7 +598,7 @@ void CMasternodePayments::CleanPaymentList()
|
||||
if(chainActive.Tip() == NULL) return;
|
||||
|
||||
//keep up to five cycles for historical sake
|
||||
int nLimit = std::max(((int)mnodeman.size())*2, 1000);
|
||||
int nLimit = std::max(int(mnodeman.size()*1.25), 1000);
|
||||
|
||||
std::map<uint256, CMasternodePaymentWinner>::iterator it = mapMasternodePayeeVotes.begin();
|
||||
while(it != mapMasternodePayeeVotes.end()) {
|
||||
|
@ -160,7 +160,7 @@ void CMasternodeSync::GetNextAsset()
|
||||
std::string CMasternodeSync::GetSyncStatus()
|
||||
{
|
||||
switch (masternodeSync.RequestedMasternodeAssets) {
|
||||
case MASTERNODE_SYNC_INITIAL: return _("Synchronization doesn't yet started");
|
||||
case MASTERNODE_SYNC_INITIAL: return _("Synchronization pending...");
|
||||
case MASTERNODE_SYNC_SPORKS: return _("Synchronizing sporks...");
|
||||
case MASTERNODE_SYNC_LIST: return _("Synchronizing masternodes...");
|
||||
case MASTERNODE_SYNC_MNW: return _("Synchronizing masternode winners...");
|
||||
@ -265,7 +265,7 @@ void CMasternodeSync::Process()
|
||||
} else if(RequestedMasternodeAttempt < 4) {
|
||||
mnodeman.DsegUpdate(pnode);
|
||||
} else if(RequestedMasternodeAttempt < 6) {
|
||||
int nMnCount = mnodeman.CountEnabled()*2;
|
||||
int nMnCount = mnodeman.CountEnabled();
|
||||
pnode->PushMessage("mnget", nMnCount); //sync payees
|
||||
uint256 n = 0;
|
||||
pnode->PushMessage("mnvs", n); //sync masternode votes
|
||||
@ -351,7 +351,7 @@ void CMasternodeSync::Process()
|
||||
CBlockIndex* pindexPrev = chainActive.Tip();
|
||||
if(pindexPrev == NULL) return;
|
||||
|
||||
int nMnCount = mnodeman.CountEnabled()*2;
|
||||
int nMnCount = mnodeman.CountEnabled();
|
||||
pnode->PushMessage("mnget", nMnCount); //sync payees
|
||||
RequestedMasternodeAttempt++;
|
||||
|
||||
|
@ -258,7 +258,7 @@ int64_t CMasternode::GetLastPaid() {
|
||||
|
||||
const CBlockIndex *BlockReading = chainActive.Tip();
|
||||
|
||||
int nMnCount = mnodeman.CountEnabled()*2;
|
||||
int nMnCount = mnodeman.CountEnabled()*1.25;
|
||||
int n = 0;
|
||||
for (unsigned int i = 1; BlockReading && BlockReading->nHeight > 0; i++) {
|
||||
if(n >= nMnCount){
|
||||
|
@ -10,6 +10,7 @@
|
||||
<file alias="pl">locale/dash_pl.qm</file>
|
||||
<file alias="pt">locale/dash_pt.qm</file>
|
||||
<file alias="ru">locale/dash_ru.qm</file>
|
||||
<file alias="sv">locale/dash_sk.qm</file>
|
||||
<file alias="sv">locale/dash_sv.qm</file>
|
||||
<file alias="vi">locale/dash_vi.qm</file>
|
||||
<file alias="zh_CN">locale/dash_zh_CN.qm</file>
|
||||
|
@ -313,6 +313,9 @@ QT_TRANSLATE_NOOP("dash-core", "Listen for JSON-RPC connections on <port> (defau
|
||||
QT_TRANSLATE_NOOP("dash-core", "Listen for connections on <port> (default: %u or testnet: %u)"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading addresses..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading block index..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading budget cache..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading masternode cache..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading masternode payment cache..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading wallet... (%3.2f %%)"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Loading wallet..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Lock is already in place."),
|
||||
@ -385,9 +388,9 @@ QT_TRANSLATE_NOOP("dash-core", "Stop running after importing blocks from disk (d
|
||||
QT_TRANSLATE_NOOP("dash-core", "Submitted following entries to masternode: %u / %d"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Submitted to masternode, waiting for more entries ( %u / %d ) %s"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Submitted to masternode, waiting in queue %s"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronization doesn't yet started"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronization failed"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronization finished"),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronization pending..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronizing budgets..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronizing masternode winners..."),
|
||||
QT_TRANSLATE_NOOP("dash-core", "Synchronizing masternodes..."),
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="bg" version="2.1">
|
||||
<TS language="bg" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -3954,6 +3954,18 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Слушане за входящи връзки на <port> (по подразбиране:%u или за тестовата мрежа: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Зареждане на бюджетния кеш...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Зареждане на masternode кеш...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Зараждане на masternode кеш за плащане</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Заключването е вече налично.</translation>
|
||||
@ -4090,10 +4102,6 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Изпратено към Мастернода, чака в опашката %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Синхронизацията все още не е започнала</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Синхронизацията е неуспешна</translation>
|
||||
@ -4374,6 +4382,10 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Въведете Ваш публичен адрес</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Изчаква синхронизация ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Това помощно съобщение</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="de" version="2.1">
|
||||
<TS language="de" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -3963,6 +3963,18 @@ Dash Core wird heruntergefahren.</translation>
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation><port> nach Verbindungen abhören (Standard: %u oder Testnetz: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Lade Budget-Cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Lade Masternode-Cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Lade Masternode Zahlungs-Cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Schon gesperrt.</translation>
|
||||
@ -4099,10 +4111,6 @@ Dash Core wird heruntergefahren.</translation>
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>An Masternode übermittelt, wartet in Warteschlange %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Die Synchronisation hat noch nicht begonnen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Synchronisation fehlgeschlagen</translation>
|
||||
@ -4383,6 +4391,10 @@ Dash Core wird heruntergefahren.</translation>
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Die eigene öffentliche Adresse angeben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Synchronisation steht bevor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Dieser Hilfetext</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.1">
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -294,7 +294,7 @@
|
||||
<context>
|
||||
<name>BitcoinGUI</name>
|
||||
<message>
|
||||
<location filename="../bitcoingui.cpp" line="+107"/>
|
||||
<location filename="../bitcoingui.cpp" line="+108"/>
|
||||
<location line="+752"/>
|
||||
<source>Dash Core</source>
|
||||
<translation>Dash Core</translation>
|
||||
@ -581,12 +581,12 @@
|
||||
<translation><numerusform>Processed %n block of transaction history.</numerusform><numerusform>Processed %n blocks of transaction history.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+32"/>
|
||||
<location line="+31"/>
|
||||
<source>Synchronizing additional data: %p%</source>
|
||||
<translation>Synchronizing additional data: %p%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-408"/>
|
||||
<location line="-407"/>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>Show the Dash Core help message to get a list with possible Dash command-line options</translation>
|
||||
</message>
|
||||
@ -641,12 +641,12 @@
|
||||
<translation>No block source available...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+17"/>
|
||||
<location line="+18"/>
|
||||
<source>Up to date</source>
|
||||
<translation>Up to date</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location line="+43"/>
|
||||
<location line="+42"/>
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n hour</numerusform><numerusform>%n hours</numerusform></translation>
|
||||
</message>
|
||||
@ -1815,7 +1815,7 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+573"/>
|
||||
<location filename="../overviewpage.cpp" line="+487"/>
|
||||
<location filename="../overviewpage.cpp" line="+488"/>
|
||||
<location line="+10"/>
|
||||
<location line="+10"/>
|
||||
<location line="+14"/>
|
||||
@ -4206,12 +4206,12 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<translation>Export the data in the current tab to a file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+8"/>
|
||||
<location line="+9"/>
|
||||
<source>Selected amount:</source>
|
||||
<translation>Selected amount:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+193"/>
|
||||
<location line="+194"/>
|
||||
<source>Backup Wallet</source>
|
||||
<translation>Backup Wallet</translation>
|
||||
</message>
|
||||
@ -5041,7 +5041,22 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<translation>Listen for connections on <port> (default: %u or testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+5"/>
|
||||
<location line="+3"/>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Loading budget cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Loading masternode cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Loading masternode payment cache...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+3"/>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Lock is already in place.</translation>
|
||||
</message>
|
||||
@ -5210,11 +5225,6 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Submitted to masternode, waiting in queue %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Synchronization doesn't yet started</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Synchronization failed</source>
|
||||
@ -5226,7 +5236,7 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<translation>Synchronization finished</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<location line="+2"/>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>Synchronizing budgets...</translation>
|
||||
</message>
|
||||
@ -5291,7 +5301,7 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<translation>Will retry...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-133"/>
|
||||
<location line="-136"/>
|
||||
<source>Invalid masternodeprivkey. Please see documenation.</source>
|
||||
<translation>Invalid masternodeprivkey. Please see documenation.</translation>
|
||||
</message>
|
||||
@ -5376,7 +5386,7 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<translation>Loading block index...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<location line="+4"/>
|
||||
<source>Loading wallet... (%3.2f %%)</source>
|
||||
<translation>Loading wallet... (%3.2f %%)</translation>
|
||||
</message>
|
||||
@ -5566,7 +5576,12 @@ for example: alertnotify=echo %%s | mail -s "Dash Alert" admin@foo.com
|
||||
<translation>Specify your own public address</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+13"/>
|
||||
<location line="+8"/>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Synchronization pending...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+5"/>
|
||||
<source>This help message</source>
|
||||
<translation>This help message</translation>
|
||||
</message>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="es" version="2.1">
|
||||
<TS language="es" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -790,7 +790,7 @@ Dirección: %4
|
||||
</message>
|
||||
<message>
|
||||
<source>(%1 locked)</source>
|
||||
<translation>(%1 bloqueada)</translation>
|
||||
<translation>(%1 bloqueadas)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>none</source>
|
||||
@ -3964,6 +3964,18 @@ por ejemplo: alertnotify=echo %%s | mail -s "Alerta de Dash" admin@foo.com
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Escuchar a las conexiones en el <port> (predeterminado: %u ó testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Cargando caché del presupuesto...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Cargando caché de nodos maestros...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Cargando caché de pago del nodo maestro...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>El bloqueo ya está activo.</translation>
|
||||
@ -4100,10 +4112,6 @@ por ejemplo: alertnotify=echo %%s | mail -s "Alerta de Dash" admin@foo.com
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Enviado al nodo maestro, esperando en cola %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>La sincronización aún no ha comenzado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>La sincronización falló</translation>
|
||||
@ -4384,6 +4392,10 @@ por ejemplo: alertnotify=echo %%s | mail -s "Alerta de Dash" admin@foo.com
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Especifique su propia dirección pública</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Sincronización pendiente...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Este mensaje de ayuda</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="fi" version="2.1">
|
||||
<TS language="fi" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -3714,7 +3714,7 @@ Näillä toiminnoilla voit korjata korruptoituneen lohkoketjun tai puuttuvat/van
|
||||
<source>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.</source>
|
||||
<translation>Tämä ohjelma sisältää OpenSSL projektin OpenSSL työkalupakin <https://www.openssl.org/> sekä Eric Youngin kehittämän salausohjelmiston ja Thomas Bernardin kehittämän UPnP ohjelmiston.
|
||||
|
||||
Käännös päivitetty: 22.8.2015 by AjM.</translation>
|
||||
Käännös päivitetty: 1.9.2015 by AjM.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>To use dashd, or the -server option to dash-qt, you must set an rpcpassword in the configuration file:
|
||||
@ -3970,6 +3970,18 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Dash Hälytys" admin@foo.com
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Kuuntele yhteyksiä portissa <port> (oletus: %u tai testiverkossa: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Ladataan budjetti välimuistia...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Ladataan masternode välimuistia...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Ladataan masternode maksuvälimuistia...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>On jo lukittu.</translation>
|
||||
@ -4106,10 +4118,6 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Dash Hälytys" admin@foo.com
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Esitetty masternodelle, odotetaan jonossa %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Synkronointia ei ole vielä aloitettu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Synkronointi epäonnistui</translation>
|
||||
@ -4390,6 +4398,10 @@ esimerkiksi: alertnotify=echo %%s | mail -s "Dash Hälytys" admin@foo.com
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Määritä julkinen osoitteesi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Synkronointi odottaa...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Tämä ohjeviesti</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="fr" version="2.1">
|
||||
<TS language="fr" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -3963,6 +3963,18 @@ Pour exemple: alertnotify=echo %%s | mail -s "Alerte Dash" admin@foo.com
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Écouter les connexions sur <port> (par défaut: %u ou testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Chargement du cache de budget...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Chargement du cache de masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Chargement du cache de paiement masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Verrou déjà en place.</translation>
|
||||
@ -4099,10 +4111,6 @@ Pour exemple: alertnotify=echo %%s | mail -s "Alerte Dash" admin@foo.com
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Soumis au masternode, dans la file d'attente %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>La synchronisation n'a pas encore démarrée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>La synchronisation a échouée</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="it" version="2.1">
|
||||
<TS language="it" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -446,6 +446,10 @@
|
||||
<source>Dash Core client</source>
|
||||
<translation>Cliente Dash Core</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>Processato %n blocco della cronologia transazioni.</numerusform><numerusform>Processati %n blocchi della cronologia transazioni.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>Mostra il messaggio di aiuto di Dash Core per ottenere una lista con le possibili opzioni di linea di comando di Dash</translation>
|
||||
@ -470,6 +474,10 @@
|
||||
<source>Tabs toolbar</source>
|
||||
<translation>Barra degli strumenti "Tabs"</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n active connection(s) to Dash network</source>
|
||||
<translation><numerusform>%n connessione attiva alla rete Dash</numerusform><numerusform>%n connessioni attive alla rete Dash</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>Sincronizzazione con la rete in corso...</translation>
|
||||
@ -860,6 +868,10 @@ Indirizzo: %4
|
||||
<source>Darksend was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Dash's configuration screen.</source>
|
||||
<translation>Dark send è statto correttamente impostato su base (%1 e 2 round). Puoi cambiare questa impostazione in qualsiasi momento tu lo voglia dalla finestra di configurazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Darksend was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Dash's configuration screen.</source>
|
||||
<translation>Darksend è stata impostata correttamente a elevato (%1 e 8 turni). È possibile modificare in qualsiasi momento aprendo schermata di configurazione di Dash.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Darksend was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Dash's configuration screen.</source>
|
||||
<translation>Darksend è stato correttamente settato al massimo (%1 e 16 rounds). Puoi cambiarlo quando vuoi aprendo la finestra di configurazione di Dash</translation>
|
||||
@ -1440,6 +1452,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>No inputs detected</source>
|
||||
<translation>Non ci sono input rilevati</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n Rounds</source>
|
||||
<translation><numerusform>%n Round</numerusform><numerusform>%n Rounds</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found enough compatible inputs to anonymize %1</source>
|
||||
<translation>Incontrati sufficienti inputs compatibili per anonimizzare %1</translation>
|
||||
@ -2249,6 +2265,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>anonymous funds</source>
|
||||
<translation>fondi anonimi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(darksend requires this amount to be rounded up to the nearest %1).</source>
|
||||
<translation>(darksend richiede questo importo da arrotondato al più vicino %1).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>any available funds (not recommended)</source>
|
||||
<translation>tutti i fondi disponibili (non raccomandato)</translation>
|
||||
@ -2277,6 +2297,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>A fee %1 times higher than %2 per kB is considered an insanely high fee.</source>
|
||||
<translation>Una commissione %1 volte piú alta che %2 per kB é considerata incredibilmente alta.</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Estimated to begin confirmation within %n block(s).</source>
|
||||
<translation><numerusform>Inizio della confirmazione stimato in %n blocco</numerusform><numerusform>Inizio della confirmazione stimato in %n blocchi</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The recipient address is not valid, please recheck.</source>
|
||||
<translation>L'indirizzo del beneficiario non è valido, si prega di ricontrollare.</translation>
|
||||
@ -2583,6 +2607,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
</context>
|
||||
<context>
|
||||
<name>TransactionDesc</name>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Aperto per %n blocco in piú</numerusform><numerusform>Aperto per %n blocchi in piú</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Aperto fino a %1</translation>
|
||||
@ -2643,6 +2671,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>, has not been successfully broadcast yet</source>
|
||||
<translation>, non è stato ancora trasmesso con successo</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>, broadcast through %n node(s)</source>
|
||||
<translation><numerusform>, trasmettere attraverso %n nodo</numerusform><numerusform>, trasmettere attraverso %n nodi</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Date</source>
|
||||
<translation>Data</translation>
|
||||
@ -2683,6 +2715,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>Credit</source>
|
||||
<translation>Credito</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>matures in %n more block(s)</source>
|
||||
<translation><numerusform>Matura in %n blocco in piú</numerusform><numerusform>Matura in %n blocchi in piú</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>not accepted</source>
|
||||
<translation>non accettato</translation>
|
||||
@ -2777,6 +2813,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>Address</source>
|
||||
<translation>Indirizzo</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>Open for %n more block(s)</source>
|
||||
<translation><numerusform>Aperto per %n blocco in piú</numerusform><numerusform>Aperto per %n blocchi in piú</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open until %1</source>
|
||||
<translation>Aperto fino a %1</translation>
|
||||
@ -3123,6 +3163,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>Bind to given address and always listen on it. Use [host]:port notation for IPv6</source>
|
||||
<translation>Associa all'indirizzo indicato e resta permanentemente in ascolto su questo. Usa la notazione [host]:porta per l'IPv6</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot obtain a lock on data directory %s. Dash Core is probably already running.</source>
|
||||
<translation>Impossibile ottenere un blocco sulla data directory %s. Dash Core è probabilmente già in esecuzione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Darksend uses exact denominated amounts to send funds, you might simply need to anonymize some more coins.</source>
|
||||
<translation>Darksend utilizza esatto denominato importo a inviare fondi, si potrebbe semplicemente bisogno di anonimizzare alcuni più monete.</translation>
|
||||
@ -3187,10 +3231,6 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Impossibile trovare un numero sufficiente di non denominati fondi Darksend per questa operazione che non sono uguali a 1000 DASH.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction.</source>
|
||||
<translation>Impossibile trovare un numero sufficiente di non denominati fondi Darksend per questa transazione.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>Attenzione: -paytxfee è molto alta. Questa è la commissione che si paga quando si invia una transazione.</translation>
|
||||
@ -3543,6 +3583,10 @@ Più URL vengono separati da una barra verticale |.</translation>
|
||||
<source>KeePassHttp key for AES encrypted communication with KeePass</source>
|
||||
<translation>Chiave KeePassHttp per AES comunicazione cripra con KeePass</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep at most <n> unconnectable transactions in memory (default: %u)</source>
|
||||
<translation>Mantenere al massimo <n> le operazioni in collegabile in memoria (predefinito: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last Darksend was too recent.</source>
|
||||
<translation>L'ultima darksend è troppo recente</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="pl" version="2.1">
|
||||
<TS language="pl" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -1456,7 +1456,7 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations.</source>
|
||||
<translation>Denominacje, które wysłałeś do Masternoda.<br>Aby zostały one ymieszane, inni użytkownicy muszą wysłać dokładnie takie same denominacje. </translation>
|
||||
<translation>Denominacje, które wysłałeś do Masternoda.<br>Aby zostały one wymieszane, inni użytkownicy muszą wysłać dokładnie takie same denominacje. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(Last Message)</source>
|
||||
@ -3962,6 +3962,18 @@ Zaleca się również aby ustawić alarm powiadomień tzw. alertnotify, aby dać
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Nasłuchuj połączeń na <port> (domyślnie: %u lub testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Ładuje pamięć podręczną budżetu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Ładuję pamięć podręczną masternoda...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Ładuję pamięć podręczną płatności masternodów...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Transakcja została już zamknięta.</translation>
|
||||
@ -4098,10 +4110,6 @@ Zaleca się również aby ustawić alarm powiadomień tzw. alertnotify, aby dać
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Przesłano do masterdnoda, czekaj na swoją kolej %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Synchronizacja jeszcze się nie zaczęła</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Synchronizacja nie powiodła się</translation>
|
||||
@ -4382,6 +4390,10 @@ Zaleca się również aby ustawić alarm powiadomień tzw. alertnotify, aby dać
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Sprecyzuj swój adres publiczny</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Synchronizacja w toku...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Ten komunikat pomocny</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="pt" version="2.1">
|
||||
<TS language="pt" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -506,22 +506,6 @@
|
||||
<source>Up to date</source>
|
||||
<translation>Actualizado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing sporks...</source>
|
||||
<translation>A sincronizar sporks...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternodes...</source>
|
||||
<translation>A sincronizar masternodes...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternode winners...</source>
|
||||
<translation>A sincronizar masternodes vencedores...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>A sincronizar orçamentos...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n hora</numerusform><numerusform>%n horas</numerusform></translation>
|
||||
@ -3393,10 +3377,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Não foi possível localizar fundos Darksend não denominados suficientes para esta transacção que não sejam igual a 1000DRK.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction.</source>
|
||||
<translation>Não foi possível localizar fundos Darksend não denominados suficientes para esta transacção.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>Aviso: -paytxfee tem um valor muito elevado! Esta é a taxa de transacção que será paga se enviar uma transacção.</translation>
|
||||
@ -3585,6 +3565,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>(1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data)</source>
|
||||
<translation>(1 = mantem meta dados das transacções ex. dono da conta e informação das solicitações de pagamento, 2 = elimina os meta dados das transacções)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred while setting up the RPC address %s port %u for listening: %s</source>
|
||||
<translation>Ocorreu um erro ao configurar o endereço RPC %s na porta %u para escutar: %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6</source>
|
||||
<translation>Vincular a um determinado endereço e ouvir sempre aí. Use a notação [host]:porta para IPv6</translation>
|
||||
@ -3633,6 +3617,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Output debugging information (default: %u, supplying <category> is optional)</source>
|
||||
<translation>Informação de depuração de saída (omissão: %u, fornecer <category> é opcional)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees)</source>
|
||||
<translation>Providenciar liquidez para o Darksend misturando moedas continuamente com baixa frequência (0-100, omissão: %u, 1=muito frequente taxas elevadas, 100=pouco frequente, taxas reduzidas)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send trace/debug info to console instead of debug.log file (default: %u)</source>
|
||||
<translation>Enviar informação de execução/depuração para a consola em vez de enviar para o ficheiro debug.log (omissão: %u)</translation>
|
||||
@ -3645,6 +3633,14 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Show N confirmations for a successfully locked transaction (0-9999, default: %u)</source>
|
||||
<translation>Mostrar N confirmações para uma transacção bloqueada com sucesso (0-9999, omissão: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>Este produto inclui software desenvolvido pelo Projecto OpenSSL para uso no OpenSSL Toolkit <https://www.openssl.org/>, software criptográfico escrito por Eric Young e software UPnP escrito por Thomas Bernard.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Não foi possível localizar fundos suficientes para esta transacção que não sejam igual a 1000DRK.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source>
|
||||
<translation>Usar um proxy SOCKS5 diferente para ligar aos nós através dos serviços escondidos Tor (omissão: %s)</translation>
|
||||
@ -3771,6 +3767,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>Gerar moedas (default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>Quanto blocos deve verificar no arranque (omissão: %u, 0 = all)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Importing...</source>
|
||||
<translation>A importar...</translation>
|
||||
@ -3859,6 +3859,18 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Escutar ligações na <port> (default: %u or testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Carregando cache de orçamentos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>A carregar a cache de masternodes...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Carregando cache de pagamento de maternodes...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Bloqueio já efectuado.</translation>
|
||||
@ -3995,6 +4007,22 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Apresentado ao masternode, esperando na fila %s </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>A sincronizar orçamentos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternode winners...</source>
|
||||
<translation>A sincronizar masternodes vencedores...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternodes...</source>
|
||||
<translation>A sincronizar masternodes...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing sporks...</source>
|
||||
<translation>A sincronizar sporks...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is not a Masternode.</source>
|
||||
<translation>Este não é um Masternode</translation>
|
||||
@ -4099,18 +4127,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Loading block index...</source>
|
||||
<translation>A carregar índice de blocos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Carregando cache de orçamentos...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Carregando cache de masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Carregando cache de pagamento de maternodes...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet... (%3.2f %%)</source>
|
||||
<translation>A carregar carteira... (%3.2f %%)</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="ru" version="2.1">
|
||||
<TS language="ru" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -3963,6 +3963,18 @@ rpcpassword=%s
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Принимать входящие подключения на порт <port> (по умолчанию: %u или testnet: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Загрузка кэша бюджетов...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Загрузка кэша мастернод...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Загрузка кэша выплат Мастернодам...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Установлена блокировка.</translation>
|
||||
@ -4099,10 +4111,6 @@ rpcpassword=%s
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Отправлено на мастерноду, ожидаем в очереди %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization doesn't yet started</source>
|
||||
<translation>Синхронизация еще не началась</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Синхронизация закончилась неудачно</translation>
|
||||
@ -4383,6 +4391,10 @@ rpcpassword=%s
|
||||
<source>Specify your own public address</source>
|
||||
<translation>Укажите Ваш собственный публичный адрес</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization pending...</source>
|
||||
<translation>Ожидание синхронизации...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This help message</source>
|
||||
<translation>Эта справка</translation>
|
||||
|
3558
src/qt/locale/dash_sk.ts
Normal file
3558
src/qt/locale/dash_sk.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
<TS language="sv" version="2.1">
|
||||
<TS language="sv" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -407,6 +407,10 @@
|
||||
<source>Open a dash: URI or payment request</source>
|
||||
<translation>Öppna en Dash-URI eller betalningsbegäran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Command-line options</source>
|
||||
<translation>&Kommandoradalternativ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>Visa Dash Core-hjälpmeddelandet för att få en lista med möjliga Dash-kommandoradalternativ</translation>
|
||||
@ -2669,10 +2673,22 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source>
|
||||
<translation>Gå in i regressionstestläget, vilken använder en särskild kedja i vilken block kan lösas direkt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Listening for incoming connections failed (listen returned error %s)</source>
|
||||
<translation>Fel: Lyssnande på inkommande anslutningar misslyckades (avlyssna återkommande fel %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source>
|
||||
<translation>Exekvera kommandot när ett viktigt larm mottas eller vi ser en jättelång förgrening (%s i cmd ersätts av ett meddelande)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)</source>
|
||||
<translation>Exekvera kommandot när en plånbokstransaktion ändras (%s i cmd ersätts av TxID) </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source>
|
||||
<translation>Exekvera kommandot när det bästa blocket ändras (%s i cmd ersätts av blockhash)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In this mode -genproclimit controls how many blocks are generated immediately.</source>
|
||||
<translation>I detta läge kontrollerar -genproclimit hur många block som genereras omedelbart.</translation>
|
||||
@ -2713,10 +2729,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Kunde inte hitta tillräckliga Darksend-icke-denominationsmedel för denna transaktion som inte är likvärdiga 1000 DASH.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction.</source>
|
||||
<translation>Kunde inte hitta tillräckliga Darksend-icke-denominationsmedel för denna transaktion.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>Varning: -paytxfee är väldigt högt satt! Detta är transaktionsavgiften du kommer att få betala om du skickar en transaktion.</translation>
|
||||
@ -3161,6 +3173,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Transaction too large</source>
|
||||
<translation>Transaktionen är för stor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to bind to %s on this computer (bind returned error %s)</source>
|
||||
<translation>Kan inte binda %s till denna dator (bindande återgav ett fel %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to sign spork message, wrong key?</source>
|
||||
<translation>Kan inte sporka meddelandet, fel nyckel?</translation>
|
||||
@ -3201,6 +3217,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Verifying wallet...</source>
|
||||
<translation>Bekräftar plånbok...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet %s resides outside data directory %s</source>
|
||||
<translation>Plånboken %s återfinns utanför datakatalogen %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is locked.</source>
|
||||
<translation>Plånboken är låst.</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="vi" version="2.1">
|
||||
<TS language="vi" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -458,6 +458,10 @@
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>Xử lý được %n khối của các giao dịch đã qua.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing additional data: %p%</source>
|
||||
<translation>Đang đồng bộ những dữ liệu bổ sung: %p%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>Hiển thị hướng dẫn của Dash Core để có danh sách đầy đủ các tuỳ chọn dòng lệnh của Dash.</translation>
|
||||
@ -589,6 +593,10 @@ Kiểu: %3
|
||||
</context>
|
||||
<context>
|
||||
<name>ClientModel</name>
|
||||
<message>
|
||||
<source>Total: %1 (DS compatible: %2 / Enabled: %3)</source>
|
||||
<translation>Tổng số: %1 (Tương thích với DS: %2 / Sẵn sàng: %3)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Network Alert</source>
|
||||
<translation>Cảnh báo mạng</translation>
|
||||
@ -1169,6 +1177,10 @@ Kiểu: %3
|
||||
<source>Expert</source>
|
||||
<translation>Chuyên gia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees.</source>
|
||||
<translation>Thiết lập này xác định số tiền cho mỗi master nodes mà đầu vào thông qua đó được ẩn danh.<br/>Càng có nhiều vòng ẩn danh thì sẽ cho mức độ riêng tư càng cao, nhưng nó cũng tốn nhiều phí hơn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Whether to show coin control features or not.</source>
|
||||
<translation>Hiển thị hoặc không hiển thị tính năng coin control.</translation>
|
||||
@ -1903,6 +1915,26 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Upgrade wallet format</source>
|
||||
<translation>Nâng cấp định dạng ví</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-salvagewallet: Attempt to recover private keys from a corrupt wallet.dat.</source>
|
||||
<translation>-salvagewallet: Thử phục hồi khoá riêng từ tệp wallet.dat bị lỗi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-rescan: Rescan the block chain for missing wallet transactions.</source>
|
||||
<translation>-rescan: Quét lại blockchain để tìm những giao dịch bị thiếu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-zapwallettxes=1: Recover transactions from blockchain (keep meta-data, e.g. account owner).</source>
|
||||
<translation>-zapwallettxes=1: Phục hồi các giao dịch từ blockchain (giữ các meta-data, ví dụ: chủ tải khoản).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-zapwallettxes=2: Recover transactions from blockchain (drop meta-data).</source>
|
||||
<translation>-zapwallettxes=2: Phục hồi tất cả các giao dịch từ blockchain (bỏ đi các meta-data).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!)</source>
|
||||
<translation>-upgradewallet: Nâng cấp ví lên định dạng mới nhất khi khởi động. (Chú ý: điều này KHÔNG có nghĩa là nâng cấp bản thân phần mềm ví)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet repair options.</source>
|
||||
<translation>Các tuỳ chọn sửa ví.</translation>
|
||||
@ -1978,6 +2010,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</context>
|
||||
<context>
|
||||
<name>ReceiveCoinsDialog</name>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>Sử dụng lại địa chỉ đã được sử dụng để nhận trước đây.<br>Sử dụng lại địa chỉ nảy sinh vấn đề an ninh và riêng tư.<br>Đừng sử dụng nó trừ khi bạn tạo lại yêu cầu thanh toán mà bạn đã làm trước đây.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>R&euse an existing receiving address (not recommended)</source>
|
||||
<translation>Tái &sử dụng lại địa chỉ nhận đã có (không khuyến khích)</translation>
|
||||
@ -1994,6 +2030,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>An optional label to associate with the new receiving address.</source>
|
||||
<translation>Một nhãn tuỳ chọn để liên kết với địa chỉ nhận mới.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network.</source>
|
||||
<translation>Một thông điệp tuỳ chọn để đính vào yêu cầu thanh toán, nó sẽ hiển thị khi yêu cầu được mở.<br>Chú ý: Thông điệp sẽ không được gửi thông qua mạng lưới Dash.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use this form to request payments. All fields are <b>optional</b>.</source>
|
||||
<translation>Sử dụng biểu mẫu này để yêu cầu thanh toán. Tất cả các trường đều là <b>không bắt buộc</b>.</translation>
|
||||
@ -2387,6 +2427,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>The recipient address is not valid, please recheck.</source>
|
||||
<translation>Địa chỉ nhận không hợp lệ, hãy kiểm tra lại.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><b>(%1 of %2 entries displayed)</b></source>
|
||||
<translation><b>(%1 của %2 các thành phần được hiển thị)</b></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The amount to pay must be larger than 0.</source>
|
||||
<translation>Số tiền thanh toán phải lớn hơn 0.</translation>
|
||||
@ -2841,6 +2885,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Merchant</source>
|
||||
<translation>Người bán</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>Coin được tạo phải được trưởng thành %1 khối trước khi chúng có thể được tiêu. Khi bạn sinh khối này, nó được quảng bá trong mạng để thêm vào chuỗi khối. Nếu nó không được đưa vào chuỗi, trạng thái của nó được chuyển thành "không được chấp nhận" và sẽ không thể tiêu được. Điều này thỉnh thoảng có xảy ra nếu những nút khác cũng sinh trong vòng vài giây với khối của bạn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Debug information</source>
|
||||
<translation>Thông tin gỡ rối</translation>
|
||||
@ -3309,10 +3357,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Không tìm đủ ngân sách Darksend denominated cho giao dịch mà nó không bằng 1000 DASH</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough Darksend non-denominated funds for this transaction.</source>
|
||||
<translation>Không kiếm đủ ngân sách Darksend non-denominated cho giao dịch này.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>Cảnh báo: -paytxfee được đặt rất cao! Đây là mức phí giao dịch mà bạn sẽ trả nếu bạn gửi một giao dịch.</translation>
|
||||
@ -3497,18 +3541,114 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>If <category> is not supplied, output all debugging information.</source>
|
||||
<translation>Nếu <category> không được cung cấp, đưa ra tất cả các thông tin gỡ rối.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An error occurred while setting up the RPC address %s port %u for listening: %s</source>
|
||||
<translation>Có một lỗi xảy ra trong khi thiết lập địa chỉ RPC %s cổng %u để lắng nghe: %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Continuously rate-limit free transactions to <n>*1000 bytes per minute (default:%u)</source>
|
||||
<translation>Liên tục giới hạn tỷ lệ miễn phí giao dịch về <n>*1000 byte cho mỗi phút (ngầm định:%u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create new files with system default permissions, instead of umask 077 (only effective with disabled wallet functionality)</source>
|
||||
<translation>Tạo tệp mới với các quyền hệ thống ngầm định, thay vì umask 077 (chỉ có tác dụng với chức năng ví được tắt)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup</source>
|
||||
<translation>Xoá hết tất cả các giao dịch ví và chỉ phục hồi những phần đó của blockchain qua -rescan khi khởi động</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u)</source>
|
||||
<translation>Tắt tất cả các chức năng đặc trưng của Dash (Masternode, Darksend, InstantX, Lập ngân sách) (0-1, ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>.</source>
|
||||
<translation>Phân phối dưới giấy phép phần mềm MIT, hãy xem file COPYING đi kèm hoặc <http://www.opensource.org/licenses/mit-license.php>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable instantx, show confirmations for locked transactions (bool, default: %s)</source>
|
||||
<translation>Bật InstantX, hiển thị các xác thực cho các giao dịch bị khoá (bool, ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enable use of automated darksend for funds stored in this wallet (0-1, default: %u)</source>
|
||||
<translation>Cho phép sử dụng tự động darksend cho những ngân sách được lưu trong ví (0-1, ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s)</source>
|
||||
<translation>Phí (tính theo DASH/Kb) nhỏ hơn số này được coi là không mất phí cho việc chuyển tiền (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
<translation>Phí (theo DASH/Kb) nhỏ hơn số này được coi không mất phí cho việc khởi tạo giao dịch (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flush database activity from memory pool to disk log every <n> megabytes (default: %u)</source>
|
||||
<translation>Đẩy các hoạt động với cơ sở dữ liệu từ bộ nhớ xuống nhật ký trên đĩa mỗi <n> megabytes (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found unconfirmed denominated outputs, will wait till they confirm to continue.</source>
|
||||
<translation>Đã thấy các mệnh giá đầu ra chưa được xác nhận, sẽ đợi đến khi chúng xác nhận để tiếp tục.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How thorough the block verification of -checkblocks is (0-4, default: %u)</source>
|
||||
<translation>Cách kiểm tra khối triệt để -checkblocks là (0-4, ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Log transaction priority and fee per kB when mining blocks (default: %u)</source>
|
||||
<translation>Lưu nhật ký các ưu tiên và phí giao dịch cho mỗi kB khi đào các khối (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source>
|
||||
<translation>Số giây hạn chế để không cho phép các đối tác ngang hàng cư xử không đúng tiếp tục kết nối lại (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Output debugging information (default: %u, supplying <category> is optional)</source>
|
||||
<translation>Thông tin gỡ rối đầu ra (ngầm định: %u, cung cấp <category> là một tuỳ chọn)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Provide liquidity to Darksend by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees)</source>
|
||||
<translation>Cung cấp thanh khoản cho Darksend bằng việc thường xuyên trộn tiền một cách liên tục (0-100, ngầm định: %u, 1=rất thường xuyên, phí cao, 100=rất ít thường xuyên, phí thấp)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send trace/debug info to console instead of debug.log file (default: %u)</source>
|
||||
<translation>Gửi thông tin trace/debug đến console thay vì ra tệp debug.log (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
||||
<translation>Thiết lập số các luồng cho việc sinh coin nếu bật (-1 = tất cả các lõi, ngầm định: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show N confirmations for a successfully locked transaction (0-9999, default: %u)</source>
|
||||
<translation>Hiển thị N xác nhận cho mỗi giao dịch được khoá thành công (0-9999, ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>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.</source>
|
||||
<translation>Sản phẩm này có kèm theo phần mềm được phát triển bởi dự án OpenSSL để sử dụng các công cụ OpenSSL <https://www.openssl.org/> và phần mềm mã hoá được viết bởi Eric Young và phần mềm UPnP được viết bởi Thomas Bernard.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to locate enough funds for this transaction that are not equal 1000 DASH.</source>
|
||||
<translation>Không tìm được đủ ngân sách cho giao dịch mà nó không đủ 1000 DASH.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s)</source>
|
||||
<translation>Sửa dụng các SOCKS5 proxy riêng biệt cho mỗi đối tác ngang hàng thông qua dịch vụ ẩn Tor (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -maxtxfee is set very high! Fees this large could be paid on a single transaction.</source>
|
||||
<translation>Cảnh báo: -maxtxfee được đặt rất cao! Mức Phí cao này sẽ được trả cho mỗi một giao dịch đơn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Please check that your computer's date and time are correct! If your clock is wrong Dash Core will not work properly.</source>
|
||||
<translation>Cánh báo: Hãy vui lòng kiểm tra ngày giờ máy tính của bạn cho chính xác! Nếu đồng hồ của bạn sai thì Dash Core sẽ không làm việc một cách hoàn hảo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Whitelist peers connecting from the given netmask or IP address. Can be specified multiple times.</source>
|
||||
<translation>Các đối tác ngang hàng cho phép đang kết nối từ địa chỉ IP và netmask. Nó có thể được chỉ rõ nhiều lần.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(9999 could be used only on mainnet)</source>
|
||||
<translation>(9999 chỉ được sử dụng trên mạng chính thức)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(default: %s)</source>
|
||||
<translation>(ngầm định: %s)</translation>
|
||||
@ -3526,6 +3666,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Acceptable ciphers (default: %s)</source>
|
||||
<translation>Các loại mã hoá có thể chấp nhận (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Always query for peer addresses via DNS lookup (default: %u)</source>
|
||||
<translation>Luôn luôn tìm kiếm địa chỉ các đối tác ngang hàng thông qua tìm kiếm DNS (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cannot resolve -whitebind address: '%s'</source>
|
||||
<translation>Không thể phân giải địa chỉ -whitebind: '%s'</translation>
|
||||
@ -3534,6 +3678,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Connect through SOCKS5 proxy</source>
|
||||
<translation>Kết nối thông qua SOCKS 5 proxy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to KeePassHttp on port <port> (default: %u)</source>
|
||||
<translation>Kết nối tới KeePassHttp trên cổng <port> (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright (C) 2009-%i The Bitcoin Core Developers</source>
|
||||
<translation>Bản quyền (C) 2009-%i bởi Nhóm phát triển Bitcoin Core</translation>
|
||||
@ -3570,10 +3718,18 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Error loading wallet.dat: Wallet requires newer version of Dash Core</source>
|
||||
<translation>Lỗi nạp wallet.dat: Ví cần một phiên bản mới hơn của Dash Core</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: A fatal internal error occured, see debug.log for details</source>
|
||||
<translation>Lỗi: Một lỗi nghiêm trọng đã xuất hiện, xem debug.log để biết thêm chi tiết</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error: Unsupported argument -tor found, use -onion.</source>
|
||||
<translation>Lỗi: Tìm thấy tham số không được hỗ trợ -tor, thay vào đó hãy sử dụng -onion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fee (in DASH/kB) to add to transactions you send (default: %s)</source>
|
||||
<translation>Phí (theo DASH/Kb) sẽ thêm vào các giao dịch mà bạn gửi (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Finalizing transaction.</source>
|
||||
<translation>Đang hoàn tất giao dịch.</translation>
|
||||
@ -3582,10 +3738,18 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Force safe mode (default: %u)</source>
|
||||
<translation>Cưỡng bức ở chế độ an toàn (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found enough users, signing ( waiting %s )</source>
|
||||
<translation>Đã tìm đủ người dùng, đang ký (vui lòng đợi %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found enough users, signing ...</source>
|
||||
<translation>Đã kiếm đủ người dùng, đang ký ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate coins (default: %u)</source>
|
||||
<translation>Sinh tiền (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>How many blocks to check at startup (default: %u, 0 = all)</source>
|
||||
<translation>Bao nhiêu khối để kiểm tra khi khởi động (ngầm định: %u, 0 = tất cả)</translation>
|
||||
@ -3598,6 +3762,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Imports blocks from external blk000??.dat file</source>
|
||||
<translation>Nạp khối từ tệp ngoài blk000??.dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include IP addresses in debug output (default: %u)</source>
|
||||
<translation>Kèm địa chỉ IP trong thông tin gỡ rối đầu ra (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Incompatible mode.</source>
|
||||
<translation>Kiểu không tương thích.</translation>
|
||||
@ -3674,6 +3842,22 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Listen for connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>Lắng nghe kết nối từ <cổng> (ngầm định: %u hoặc mạng thử: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Đang nạp bộ đệm ngân sách...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Đang tải cache cho masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Đang tải bộ đệm thanh toán cho masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock is already in place.</source>
|
||||
<translation>Khoá đã sẵn sàng.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Lock masternodes from masternode configuration file (default: %u)</source>
|
||||
<translation>Khoá các masternode từ tệp cấu hình masternode (ngầm định: %u)</translation>
|
||||
@ -3682,6 +3866,14 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Maintain at most <n> connections to peers (default: %u)</source>
|
||||
<translation>Duy trì nhiều nhất <n> kết nối tới các điểm ngang cấp (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection receive buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>Tối đa cho bộ đệm nhận của mỗi kết nối, <n>*1000 bytes (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum per-connection send buffer, <n>*1000 bytes (default: %u)</source>
|
||||
<translation>Tối đa cho bộ đệm gửi của mỗi kết nối, <n>*1000 bytes (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mixing in progress...</source>
|
||||
<translation>Đang trong quá trình trộn...</translation>
|
||||
@ -3702,6 +3894,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Number of automatic wallet backups (default: 10)</source>
|
||||
<translation>Số lượng ví tự động sao lưu (ngầm định: 10)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Only accept block chain matching built-in checkpoints (default: %u)</source>
|
||||
<translation>Chỉ chấp nhận các chuỗi khối tương ứng với các điểm kiểm tra trong (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Only connect to nodes in network <net> (ipv4, ipv6 or onion)</source>
|
||||
<translation>Chỉ kết nối với các nút trong mạng <net> (IPv4, IPv6 hoặc onion)</translation>
|
||||
@ -3710,6 +3906,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Prepend debug output with timestamp (default: %u)</source>
|
||||
<translation>Thêm tiền tố đầu ra debug với dấu thời gian (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Run a thread to flush wallet periodically (default: %u)</source>
|
||||
<translation>Chạy một luồng để làm sạch ví một cách thường xuyên (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Send transactions as zero-fee transactions if possible (default: %u)</source>
|
||||
<translation>Gửi giao dịch như là giao dịch không phí nếu có thể (ngầm định: %u)</translation>
|
||||
@ -3722,6 +3922,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Server private key (default: %s)</source>
|
||||
<translation>Khoá riêng của máy chủ (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set external address:port to get to this masternode (example: %s)</source>
|
||||
<translation>Đặt external address:port cho masternode này (ví dụ: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set key pool size to <n> (default: %u)</source>
|
||||
<translation>Thiết lập kích thước pool đến <n> (ngầm định: %u)</translation>
|
||||
@ -3734,6 +3938,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Set the number of threads to service RPC calls (default: %d)</source>
|
||||
<translation>Thiết lập số luồng phục vụ các lời gọi RPC (ngầm định: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sets the DB_PRIVATE flag in the wallet db environment (default: %u)</source>
|
||||
<translation>Thiết lập cờ DB_PRIVATE trong môi trường cơ sở dữ liệu ví (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Signing timed out.</source>
|
||||
<translation>Ký không kịp.</translation>
|
||||
@ -3754,6 +3962,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Specify pid file (default: %s)</source>
|
||||
<translation>Hãy chỉ rõ tệp pid (ngầm định: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Spend unconfirmed change when sending transactions (default: %u)</source>
|
||||
<translation>Tiên các khoản trả lại chưa được xác nhận khi gửi các giao dịch (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop running after importing blocks from disk (default: %u)</source>
|
||||
<translation>Dừng chạy sau khi nạp các khối từ đĩa (ngầm định: %u)</translation>
|
||||
@ -3770,6 +3982,30 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Submitted to masternode, waiting in queue %s</source>
|
||||
<translation>Đã được gửi cho masternode, đang đợi trong hàng đợi %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>Đồng bộ thất bại</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization finished</source>
|
||||
<translation>Đồng bộ đã hoàn thành</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>Đang đồng bộ ngân sách...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternode winners...</source>
|
||||
<translation>Đồng bộ các masternode được chọn...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternodes...</source>
|
||||
<translation>Đang đồng bộ các masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing sporks...</source>
|
||||
<translation>Đang đồng bộ các sporks...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is not a Masternode.</source>
|
||||
<translation>Đây không phải là một Masternode.</translation>
|
||||
@ -3778,14 +4014,26 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Threshold for disconnecting misbehaving peers (default: %u)</source>
|
||||
<translation>Ngưỡng ngắt kết nối khi đối tác ngang hàng cư xử không đúng (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use KeePass 2 integration using KeePassHttp plugin (default: %u)</source>
|
||||
<translation>Sử dụng tích hợp KeePass 2 dùng KeePassHttp plugin (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use N separate masternodes to anonymize funds (2-8, default: %u)</source>
|
||||
<translation>Sử dụng N masternods riêng biệt để ẩn danh khoản tiền (2-8, ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use UPnP to map the listening port (default: %u)</source>
|
||||
<translation>Sử dụng UPnP để ánh xạ cổng lắng nghe (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet needed to be rewritten: restart Dash Core to complete</source>
|
||||
<translation>Ví cần được ghi lại: khởi động lại Dash Core để hoàn tất</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Unsupported argument -benchmark ignored, use -debug=bench.</source>
|
||||
<translation>Cảnh báo: Tham số không hỗ trợ -benchmark được bỏ qua, hãy sử dụng -debug=bench.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: Unsupported argument -debugnet ignored, use -debug=net.</source>
|
||||
<translation>Cảnh báo: Tham số không hỗ trợ -debugnet được bỏ qua, hãy sử dụng -debug=net</translation>
|
||||
@ -3798,6 +4046,30 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Invalid masternodeprivkey. Please see documenation.</source>
|
||||
<translation>Masternodeprivkey không hợp lệ. Hãy xem lại tài liệu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>(must be 9999 for mainnet)</source>
|
||||
<translation>(phải là 9999 cho mạng chính thức)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't find random Masternode.</source>
|
||||
<translation>Không tìm thấy Masternode ngẫu nhiên.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Can't mix while sync in progress.</source>
|
||||
<translation>Không thể trộn trong quá trình đồng bộ.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not parse masternode.conf</source>
|
||||
<translation>Không hiểu được tệp masternode.conf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid netmask specified in -whitelist: '%s'</source>
|
||||
<translation>Lỗi netmask được chỉ ra trong -whitelist: '%s'</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid port detected in masternode.conf</source>
|
||||
<translation>Phát hiện thấy cổng không hợp lệ trong tệp masternode.conf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Invalid private key.</source>
|
||||
<translation>Khoá riêng không hợp lệ.</translation>
|
||||
@ -3814,6 +4086,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>KeePassHttp key for AES encrypted communication with KeePass</source>
|
||||
<translation>Khoá KeePassHttp cho liên lạc mã hoá AES với KeePass</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep N DASH anonymized (default: %u)</source>
|
||||
<translation>Giữ N DASH đã được ẩn danh (ngầm định: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Keep at most <n> unconnectable transactions in memory (default: %u)</source>
|
||||
<translation>Giữ nhiều nhất <n> các giao dịch không kết nối được trong bộ nhớ (ngầm định: %u)</translation>
|
||||
@ -3834,18 +4110,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Loading block index...</source>
|
||||
<translation>Đang nạp chỉ mục khối...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading budget cache...</source>
|
||||
<translation>Đang nạp bộ đệm ngân sách...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>Đang tải cache cho masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>Đang tải bộ đệm thanh toán cho masternode...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet... (%3.2f %%)</source>
|
||||
<translation>Đang nạp ví... (%3.2f %%)</translation>
|
||||
@ -3878,6 +4142,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>No matching denominations found for mixing.</source>
|
||||
<translation>Không tìm thấy mệnh giá tương ứng để trộn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Node relay options:</source>
|
||||
<translation>Tuỳ chọn trung chuyển nút:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Non-standard public key detected.</source>
|
||||
<translation>Phát hiện thấy khoá công khai không hợp chuẩn.</translation>
|
||||
@ -4082,6 +4350,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Wallet options:</source>
|
||||
<translation>Tuỳ chọn ví:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet window title</source>
|
||||
<translation>Tiêu đề cửa sổ ví</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation>Cảnh báo</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="zh_CN" version="2.1">
|
||||
<TS language="zh_CN" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -278,6 +278,10 @@
|
||||
<source>&About Dash Core</source>
|
||||
<translation>&关于达世币核心</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show information about Dash Core</source>
|
||||
<translation>显示关于达世币核心信息</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About &Qt</source>
|
||||
<translation>关于 &Qt</translation>
|
||||
@ -414,6 +418,10 @@
|
||||
<source>&Command-line options</source>
|
||||
<translation>&命令行 选项</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dash Core client</source>
|
||||
<translation>达世币核心客户端</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>打开达世币核心帮助信息取得可使用的命令行列表</translation>
|
||||
@ -438,6 +446,10 @@
|
||||
<source>Tabs toolbar</source>
|
||||
<translation>分页工具栏</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n active connection(s) to Dash network</source>
|
||||
<translation><numerusform>%n 已连接至达世币网络</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing with network...</source>
|
||||
<translation>正在与网络同步...</translation>
|
||||
@ -892,6 +904,10 @@ Address: %4
|
||||
<source>version</source>
|
||||
<translation>版本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>About Dash Core</source>
|
||||
<translation>关于 达世币核心</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Usage:</source>
|
||||
<translation>使用:</translation>
|
||||
@ -952,6 +968,10 @@ Address: %4
|
||||
<source>Use a custom data directory:</source>
|
||||
<translation>使用自定义的数据目录:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dash Core</source>
|
||||
<translation>达世币核心</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation>错误</translation>
|
||||
@ -1030,6 +1050,10 @@ Address: %4
|
||||
<source>W&allet</source>
|
||||
<translation>&钱包</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Connect to the Dash network through a SOCKS5 proxy.</source>
|
||||
<translation>通过SOCKS5代理链接达世币网络。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expert</source>
|
||||
<translation>专家</translation>
|
||||
@ -1317,6 +1341,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Darksend was successfully reset.</source>
|
||||
<translation>匿名化被成功重置。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Darksend requires at least %1 to use.</source>
|
||||
<translation>匿名化要求至少 %1 以使用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet is locked and user declined to unlock. Disabling Darksend.</source>
|
||||
<translation>钱包已锁定需要用户解锁。 正在关闭匿名化。</translation>
|
||||
@ -1344,6 +1372,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Payment request file handling</source>
|
||||
<translation>付款请求文件处理 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>URI cannot be parsed! This can be caused by an invalid Dash address or malformed URI parameters.</source>
|
||||
<translation>链接不能被解析! 原因可能是无效的达世币地址或输入的链接有错。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unverified payment requests to custom payment scripts are unsupported.</source>
|
||||
<translation>不支持到自定义付款脚本的未验证付款请求。</translation>
|
||||
@ -1378,6 +1410,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>Enter a Dash address (e.g. %1)</source>
|
||||
<translation>输入达世币地址(e.g. %1)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QRImageWidget</name>
|
||||
@ -1547,6 +1583,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>An optional label to associate with the new receiving address.</source>
|
||||
<translation>可为新建的收款地址添加一个标签。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Dash network.</source>
|
||||
<translation>附加在付款要求中的讯息,可以不填,打开要求内容时会显示。<br>注意: 这个讯息不会随着付款送到达世币网路上。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use this form to request payments. All fields are <b>optional</b>.</source>
|
||||
<translation>使用此表单要求付款。所有字段都是<b>可选</b>。</translation>
|
||||
@ -1915,6 +1955,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Pay &To:</source>
|
||||
<translation>付给(&T):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Dash address to send the payment to</source>
|
||||
<translation>选择发款地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>选择以前用过的地址</translation>
|
||||
@ -2001,6 +2045,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>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.</source>
|
||||
<translation>您可以用你的地址对消息进行签名,以证明您是该地址的所有人。注意不要对模棱两可的消息签名,以免遭受钓鱼式攻击。请确保消息内容准确的表达了您的真实意愿。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Dash address to sign the message with</source>
|
||||
<translation>对此地址进行签名</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose previously used address</source>
|
||||
<translation>选择以前用过的地址</translation>
|
||||
@ -2053,6 +2101,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>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.</source>
|
||||
<translation>在下面输入签名地址,消息(请确保换行符、空格符、制表符等等一个不漏)和签名以验证消息。请确保签名信息准确,提防中间人攻击。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The Dash address the message was signed with</source>
|
||||
<translation>已签名的地址</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Verify the message to ensure it was signed with the specified Dash address</source>
|
||||
<translation>验证信息用来确保此被签署信息对应相对的达世币地址</translation>
|
||||
@ -2612,7 +2664,11 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Send Coins</source>
|
||||
<translation>发送达世币</translation>
|
||||
</message>
|
||||
</context>
|
||||
<message>
|
||||
<source>InstantX doesn't support sending values that high yet. Transactions are currently limited to %1 DASH.</source>
|
||||
<translation>即时支付功能目前还不支持发送如此高的金额.目前限制在%1 达世币.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>WalletView</name>
|
||||
<message>
|
||||
@ -2686,6 +2742,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>InstantX requires inputs with at least 6 confirmations, you might need to wait a few minutes and try again.</source>
|
||||
<translation>即时支付功能需要6步确认,您可以稍后重试。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unable to bind to %s on this computer. Dash Core is probably already running.</source>
|
||||
<translation>无法绑定%s此计算机. 达世币核心应该已经在运行中了.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.</source>
|
||||
<translation>警告: -paytxfee 设定了很高的金额!这可是你交易付款所要付的手续费。</translation>
|
||||
@ -2858,6 +2918,14 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Failed to read block</source>
|
||||
<translation>读取数据块失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Disable all Dash specific functionality (Masternodes, Darksend, InstantX, Budgeting) (0-1, default: %u)</source>
|
||||
<translation>禁止所有达世币附加功能(主节点, 匿名发送, 即时发送, 预算) (0-1, default: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
<translation>如果手续费比这个值低,就视为没有付手续费(当产生交易时)(默认: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Found unconfirmed denominated outputs, will wait till they confirm to continue.</source>
|
||||
<translation>未确认的面额化输出,将等待他们确认后继续。</translation>
|
||||
@ -3014,6 +3082,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Set database cache size in megabytes (%d to %d, default: %d)</source>
|
||||
<translation>以兆字节为单位设置缓存数据大小 (%d to %d, 默认: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set maximum block size in bytes (default: %d)</source>
|
||||
<translation>以字节为单位设置最大的块(默认: %d)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the masternode private key</source>
|
||||
<translation>设置主节点私钥</translation>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<TS language="zh_TW" version="2.1">
|
||||
<TS language="zh_TW" version="2.0">
|
||||
<context>
|
||||
<name>AddressBookPage</name>
|
||||
<message>
|
||||
@ -458,6 +458,10 @@
|
||||
<source>Processed %n blocks of transaction history.</source>
|
||||
<translation><numerusform>已經處理了 %n 個區塊的交易紀錄。</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing additional data: %p%</source>
|
||||
<translation>正在同步額外的數據: %p%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show the Dash Core help message to get a list with possible Dash command-line options</source>
|
||||
<translation>顯示達世幣核心的說明訊息,來取得可用命令列選項的列表</translation>
|
||||
@ -506,14 +510,6 @@
|
||||
<source>Up to date</source>
|
||||
<translation>最新狀態</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternodes...</source>
|
||||
<translation>正在跟主節點網絡進行同步...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>正在跟預算案進行同步...</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<source>%n hour(s)</source>
|
||||
<translation><numerusform>%n 個小時</numerusform></translation>
|
||||
@ -1817,11 +1813,11 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Received</source>
|
||||
<translation>收款</translation>
|
||||
<translation>接收</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent</source>
|
||||
<translation>付款</translation>
|
||||
<translation>發送</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Peers</source>
|
||||
@ -1925,7 +1921,7 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>-upgradewallet: Upgrade wallet to latest format on startup. (Note: this is NOT an update of the wallet itself!)</source>
|
||||
<translation>-upgradewallet: 在啟動時升級錢包到最新的格式。 (注:這不是錢包本身的更新!)</translation>
|
||||
<translation>-upgradewallet: 在啟動時升級錢包到最新的格式。 (注:這不是錢包軟件本身的更新!)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wallet repair options.</source>
|
||||
@ -3052,7 +3048,7 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sent to</source>
|
||||
<translation>付款</translation>
|
||||
<translation>付款給</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Darksent</source>
|
||||
@ -3441,6 +3437,14 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Error: Unsupported argument -socks found. Setting SOCKS version isn't possible anymore, only SOCKS5 proxies are supported.</source>
|
||||
<translation>錯誤: 找到不再支援的 -socks 參數。現在只支援 SOCKS5 協定的代理伺服器了,因為不再能夠指定 SOCKS 協定版本。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in DASH/Kb) smaller than this are considered zero fee for relaying (default: %s)</source>
|
||||
<translation>當處理轉發的交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fees (in DASH/Kb) smaller than this are considered zero fee for transaction creation (default: %s)</source>
|
||||
<translation>當建立交易時,如果每千位元組(Kb)的手續費比這個值低,就視為沒付手續費 (預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flush database activity from memory pool to disk log every <n> megabytes (default: %u)</source>
|
||||
<translation>每當累積到 <n> 百萬位元組(MB)時,才將資料庫的變動從記憶體暫存池中寫進磁碟紀錄檔(預設值: %u)</translation>
|
||||
@ -3461,6 +3465,26 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Log transaction priority and fee per kB when mining blocks (default: %u)</source>
|
||||
<translation>開採區塊的時候,紀錄交易的優先度以及每千位元組(kB)的手續費(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maintain a full transaction index, used by the getrawtransaction rpc call (default: %u)</source>
|
||||
<translation>維護全部交易的索引,用在 getrawtransaction 這個 RPC 請求(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum size of data in data carrier transactions we relay and mine (default: %u)</source>
|
||||
<translation>轉發和開採時,對只帶資料的交易的大小上限(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum total fees to use in a single wallet transaction, setting too low may abort large transactions (default: %s)</source>
|
||||
<translation>單一的錢包交易允許付出最高的總手續費,設定太低的話,可能會無法進行資料量大的交易(預設值: %s)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Number of seconds to keep misbehaving peers from reconnecting (default: %u)</source>
|
||||
<translation>避免與異常的節點重新連線的秒數(預設: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Output debugging information (default: %u, supplying <category> is optional)</source>
|
||||
<translation>輸出除錯資訊(預設值: %u, 不一定要指定 <category>)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)</source>
|
||||
<translation>設定產生錢幣的執行緒數目(-1 表示處理器核心數,預設值: %d)</translation>
|
||||
@ -3597,6 +3621,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Listen for JSON-RPC connections on <port> (default: %u or testnet: %u)</source>
|
||||
<translation>在通訊埠 <port> 聽候 JSON-RPC 連線(預設值: %u, 或若為測試網路: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>正在載入主節點緩存...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mixing in progress...</source>
|
||||
<translation>正在進行混合...</translation>
|
||||
@ -3621,6 +3649,10 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Only accept block chain matching built-in checkpoints (default: %u)</source>
|
||||
<translation>只接受與內建的檢查段點吻合的區塊鎖鏈(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Only connect to nodes in network <net> (ipv4, ipv6 or onion)</source>
|
||||
<translation>只會連接到網絡節點 <net> (IPv4,IPv6或onion)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Prepend debug output with timestamp (default: %u)</source>
|
||||
<translation>在除錯輸出內容前附加時間(預設值: %u)</translation>
|
||||
@ -3681,6 +3713,22 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Stop running after importing blocks from disk (default: %u)</source>
|
||||
<translation>從磁碟匯入區塊資料後停止執行(預設值: %u)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization failed</source>
|
||||
<translation>同步失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronization finished</source>
|
||||
<translation>同步完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing budgets...</source>
|
||||
<translation>正在跟預算案進行同步...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Synchronizing masternodes...</source>
|
||||
<translation>正在跟主節點網絡進行同步...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>This is not a Masternode.</source>
|
||||
<translation>這並不是一個主節點。</translation>
|
||||
@ -3713,14 +3761,6 @@ https://www.transifex.com/projects/p/dash/</translation>
|
||||
<source>Loading block index...</source>
|
||||
<translation>正在載入區塊索引...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode cache...</source>
|
||||
<translation>正在載入主節點緩存...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading masternode payment cache...</source>
|
||||
<translation>正在載入主節點付款緩存...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loading wallet... (%3.2f %%)</source>
|
||||
<translation>正在載入錢包資料... (%3.2f %%)</translation>
|
||||
|
@ -10,7 +10,7 @@
|
||||
* network protocol versioning
|
||||
*/
|
||||
|
||||
static const int PROTOCOL_VERSION = 70104;
|
||||
static const int PROTOCOL_VERSION = 70103;
|
||||
|
||||
//! initial proto version, to be increased after version/verack negotiation
|
||||
static const int INIT_PROTO_VERSION = 209;
|
||||
@ -22,7 +22,7 @@ static const int GETHEADERS_VERSION = 70077;
|
||||
static const int MIN_PEER_PROTO_VERSION = 70066;
|
||||
|
||||
//! minimum peer version accepted by DarksendPool
|
||||
static const int MIN_POOL_PEER_PROTO_VERSION = 70104;
|
||||
static const int MIN_POOL_PEER_PROTO_VERSION = 70103;
|
||||
|
||||
//! minimum peer version for masternode budgets
|
||||
static const int MIN_BUDGET_PEER_PROTO_VERSION = 70103;
|
||||
|
108
src/wallet.cpp
108
src/wallet.cpp
@ -1787,9 +1787,11 @@ struct CompareByPriority
|
||||
}
|
||||
};
|
||||
|
||||
bool CWallet::SelectCoinsByDenominations(int nDenom, int nNumberOfInputs, std::vector<CTxIn>& vCoinsRet, std::vector<COutput>& vCoinsRet2, int nDarksendRoundsMin, int nDarksendRoundsMax)
|
||||
bool CWallet::SelectCoinsByDenominations(int nDenom, int64_t nValueMin, int64_t nValueMax, std::vector<CTxIn>& vCoinsRet, std::vector<COutput>& vCoinsRet2, int64_t& nValueRet, int nDarksendRoundsMin, int nDarksendRoundsMax)
|
||||
{
|
||||
vCoinsRet.clear();
|
||||
nValueRet = 0;
|
||||
|
||||
vCoinsRet2.clear();
|
||||
vector<COutput> vCoins;
|
||||
AvailableCoins(vCoins, true, NULL, ONLY_DENOMINATED);
|
||||
@ -1812,44 +1814,53 @@ bool CWallet::SelectCoinsByDenominations(int nDenom, int nNumberOfInputs, std::v
|
||||
{
|
||||
// masternode-like input should not be selected by AvailableCoins now anyway
|
||||
//if(out.tx->vout[out.i].nValue == 1000*COIN) continue;
|
||||
bool fAccepted = false;
|
||||
if(nValueRet + out.tx->vout[out.i].nValue <= nValueMax){
|
||||
bool fAccepted = false;
|
||||
|
||||
// Function returns as follows:
|
||||
//
|
||||
// bit 0 - 100DRK+1 ( bit on if present )
|
||||
// bit 1 - 10DRK+1
|
||||
// bit 2 - 1DRK+1
|
||||
// bit 3 - .1DRK+1
|
||||
// Function returns as follows:
|
||||
//
|
||||
// bit 0 - 100DRK+1 ( bit on if present )
|
||||
// bit 1 - 10DRK+1
|
||||
// bit 2 - 1DRK+1
|
||||
// bit 3 - .1DRK+1
|
||||
|
||||
CTxIn vin = CTxIn(out.tx->GetHash(),out.i);
|
||||
CTxIn vin = CTxIn(out.tx->GetHash(),out.i);
|
||||
|
||||
int rounds = GetInputDarksendRounds(vin);
|
||||
if(rounds >= nDarksendRoundsMax) continue;
|
||||
if(rounds < nDarksendRoundsMin) continue;
|
||||
int rounds = GetInputDarksendRounds(vin);
|
||||
if(rounds >= nDarksendRoundsMax) continue;
|
||||
if(rounds < nDarksendRoundsMin) continue;
|
||||
|
||||
if(fFound100 && fFound10 && fFound1 && fFoundDot1){ //if fulfilled
|
||||
//we can return this for submission
|
||||
if((int)vCoinsRet.size() >= nNumberOfInputs) return true;
|
||||
//Denomination criterion has been met, we can take any matching denominations
|
||||
if((nDenom & (1 << 0)) && out.tx->vout[out.i].nValue == ((100*COIN) +100000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 1)) && out.tx->vout[out.i].nValue == ((10*COIN)+10000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 2)) && out.tx->vout[out.i].nValue == ((1*COIN) +1000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 3)) && out.tx->vout[out.i].nValue == ((.1*COIN)+100)) {fAccepted = true;}
|
||||
} else {
|
||||
//Criterion has not been satisfied, we will only take 1 of each until it is.
|
||||
if((nDenom & (1 << 0)) && out.tx->vout[out.i].nValue == ((100*COIN) +100000)) {fAccepted = true; fFound100 = true;}
|
||||
else if((nDenom & (1 << 1)) && out.tx->vout[out.i].nValue == ((10*COIN)+10000)) {fAccepted = true; fFound10 = true;}
|
||||
else if((nDenom & (1 << 2)) && out.tx->vout[out.i].nValue == ((1*COIN) +1000)) {fAccepted = true; fFound1 = true;}
|
||||
else if((nDenom & (1 << 3)) && out.tx->vout[out.i].nValue == ((.1*COIN)+100)) {fAccepted = true; fFoundDot1 = true;}
|
||||
if(fFound100 && fFound10 && fFound1 && fFoundDot1){ //if fulfilled
|
||||
//we can return this for submission
|
||||
if(nValueRet >= nValueMin){
|
||||
//random reduce the max amount we'll submit for anonymity
|
||||
nValueMax -= (rand() % (nValueMax/5));
|
||||
//on average use 50% of the inputs or less
|
||||
int r = (rand() % (int)vCoins.size());
|
||||
if((int)vCoinsRet.size() > r) return true;
|
||||
}
|
||||
//Denomination criterion has been met, we can take any matching denominations
|
||||
if((nDenom & (1 << 0)) && out.tx->vout[out.i].nValue == ((100*COIN) +100000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 1)) && out.tx->vout[out.i].nValue == ((10*COIN)+10000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 2)) && out.tx->vout[out.i].nValue == ((1*COIN) +1000)) {fAccepted = true;}
|
||||
else if((nDenom & (1 << 3)) && out.tx->vout[out.i].nValue == ((.1*COIN)+100)) {fAccepted = true;}
|
||||
} else {
|
||||
//Criterion has not been satisfied, we will only take 1 of each until it is.
|
||||
if((nDenom & (1 << 0)) && out.tx->vout[out.i].nValue == ((100*COIN) +100000)) {fAccepted = true; fFound100 = true;}
|
||||
else if((nDenom & (1 << 1)) && out.tx->vout[out.i].nValue == ((10*COIN)+10000)) {fAccepted = true; fFound10 = true;}
|
||||
else if((nDenom & (1 << 2)) && out.tx->vout[out.i].nValue == ((1*COIN) +1000)) {fAccepted = true; fFound1 = true;}
|
||||
else if((nDenom & (1 << 3)) && out.tx->vout[out.i].nValue == ((.1*COIN)+100)) {fAccepted = true; fFoundDot1 = true;}
|
||||
}
|
||||
if(!fAccepted) continue;
|
||||
|
||||
vin.prevPubKey = out.tx->vout[out.i].scriptPubKey; // the inputs PubKey
|
||||
nValueRet += out.tx->vout[out.i].nValue;
|
||||
vCoinsRet.push_back(vin);
|
||||
vCoinsRet2.push_back(out);
|
||||
}
|
||||
if(!fAccepted) continue;
|
||||
|
||||
vin.prevPubKey = out.tx->vout[out.i].scriptPubKey; // the inputs PubKey
|
||||
vCoinsRet.push_back(vin);
|
||||
vCoinsRet2.push_back(out);
|
||||
}
|
||||
|
||||
return ((int)vCoinsRet.size() >= nNumberOfInputs && fFound100 && fFound10 && fFound1 && fFoundDot1);
|
||||
return (nValueRet >= nValueMin && fFound100 && fFound10 && fFound1 && fFoundDot1);
|
||||
}
|
||||
|
||||
bool CWallet::SelectCoinsDark(CAmount nValueMin, CAmount nValueMax, std::vector<CTxIn>& setCoinsRet, CAmount& nValueRet, int nDarksendRoundsMin, int nDarksendRoundsMax) const
|
||||
@ -2380,7 +2391,7 @@ int64_t CWallet::GetTotalValue(std::vector<CTxIn> vCoins) {
|
||||
return nTotalValue;
|
||||
}
|
||||
|
||||
std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
{
|
||||
if (IsLocked())
|
||||
return _("Error: Wallet locked, unable to create transaction!");
|
||||
@ -2393,6 +2404,7 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
std::vector<CTxIn> vCoins;
|
||||
std::vector<CTxIn> vCoinsResult;
|
||||
std::vector<COutput> vCoins2;
|
||||
int64_t nValueIn = 0;
|
||||
CReserveKey reservekey(this);
|
||||
|
||||
/*
|
||||
@ -2401,17 +2413,11 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
if minRounds >= 0 it means only denominated inputs are going in and coming out
|
||||
*/
|
||||
if(minRounds >= 0){
|
||||
if (!SelectCoinsByDenominations(darkSendPool.sessionDenom, darkSendPool.sessionNumberOfInputs, vCoins, vCoins2, minRounds, maxRounds))
|
||||
if (!SelectCoinsByDenominations(darkSendPool.sessionDenom, 0.1*COIN, DARKSEND_POOL_MAX, vCoins, vCoins2, nValueIn, minRounds, maxRounds))
|
||||
return _("Error: Can't select current denominated inputs");
|
||||
|
||||
if ((int)vCoins.size() < darkSendPool.sessionNumberOfInputs) {
|
||||
LogPrintf("PrepareDarksendDenominate - Not enough denominations %d to match queue - %d %d\n", darkSendPool.sessionDenom, (int)vCoins.size(), darkSendPool.sessionNumberOfInputs);
|
||||
return "Error: Not enough denominations to match queue";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
LogPrintf("PrepareDarksendDenominate - preparing darksend denominate\n");
|
||||
LogPrintf("PrepareDarksendDenominate - preparing darksend denominate . Got: %d \n", nValueIn);
|
||||
|
||||
{
|
||||
LOCK(cs_wallet);
|
||||
@ -2419,18 +2425,20 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
LockCoin(v.prevout);
|
||||
}
|
||||
|
||||
int64_t nValueLeft = nValueIn;
|
||||
std::vector<CTxOut> vOut;
|
||||
|
||||
/*
|
||||
TODO: Front load with needed denominations (e.g. .1, 1 )
|
||||
*/
|
||||
|
||||
// Make outputs by looping through denominations: try to add needed denomination,
|
||||
// repeat darkSendPool.sessionNumberOfInputs times.
|
||||
// Make outputs by looping through denominations: try to add every needed denomination, repeat up to 5-10 times.
|
||||
// This way we can be pretty sure that it should have at least one of each needed denomination.
|
||||
// NOTE: No need to randomize order of inputs because they were
|
||||
// initially shuffled in CWallet::SelectCoinsByDenominations already.
|
||||
int nStep = 0;
|
||||
while(nStep < darkSendPool.sessionNumberOfInputs) {
|
||||
int nStepsMax = 5 + GetRandInt(5);
|
||||
while(nStep < nStepsMax) {
|
||||
|
||||
BOOST_FOREACH(int64_t v, darkSendDenominations){
|
||||
// only use the ones that are approved
|
||||
@ -2442,7 +2450,7 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
if(!fAccepted) continue;
|
||||
|
||||
// try to add it
|
||||
if((int)vCoinsResult.size() < darkSendPool.sessionNumberOfInputs) {
|
||||
if(nValueLeft - v >= 0) {
|
||||
// Note: this relies on a fact that both vectors MUST have same size
|
||||
std::vector<CTxIn>::iterator it = vCoins.begin();
|
||||
std::vector<COutput>::iterator it2 = vCoins2.begin();
|
||||
@ -2467,6 +2475,7 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
vOut.push_back(o);
|
||||
|
||||
// subtract denomination amount
|
||||
nValueLeft -= v;
|
||||
|
||||
break;
|
||||
}
|
||||
@ -2475,7 +2484,10 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nStep++;
|
||||
|
||||
if(nValueLeft == 0) break;
|
||||
}
|
||||
|
||||
{
|
||||
@ -2485,9 +2497,7 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
UnlockCoin(v.prevout);
|
||||
}
|
||||
|
||||
if(darkSendPool.GetDenominations(vOut) != darkSendPool.sessionDenom ||
|
||||
(int)vCoinsResult.size() != darkSendPool.sessionNumberOfInputs ||
|
||||
(int)vOut.size() != darkSendPool.sessionNumberOfInputs) {
|
||||
if(darkSendPool.GetDenominations(vOut) != darkSendPool.sessionDenom) {
|
||||
// unlock used coins on failure
|
||||
LOCK(cs_wallet);
|
||||
BOOST_FOREACH(CTxIn v, vCoinsResult)
|
||||
@ -2499,7 +2509,7 @@ std::string CWallet::PrepareDarksendDenominate(int minRounds, int maxRounds)
|
||||
std::random_shuffle (vOut.begin(), vOut.end());
|
||||
|
||||
// We also do not care about full amount as long as we have right denominations, just pass what we found
|
||||
darkSendPool.SendDarksendDenominate(vCoinsResult, vOut);
|
||||
darkSendPool.SendDarksendDenominate(vCoinsResult, vOut, nValueIn - nValueLeft);
|
||||
|
||||
return "";
|
||||
}
|
||||
|
@ -149,7 +149,7 @@ private:
|
||||
public:
|
||||
// bool SelectCoins(int64_t nTargetValue, std::set<std::pair<const CWalletTx*,unsigned int> >& setCoinsRet, int64_t& nValueRet, const CCoinControl *coinControl = NULL, AvailableCoinsType coin_type=ALL_COINS, bool useIX = true) const;
|
||||
bool SelectCoinsDark(int64_t nValueMin, int64_t nValueMax, std::vector<CTxIn>& setCoinsRet, int64_t& nValueRet, int nDarksendRoundsMin, int nDarksendRoundsMax) const;
|
||||
bool SelectCoinsByDenominations(int nDenom, int nNumberOfInputs, std::vector<CTxIn>& vCoinsRet, std::vector<COutput>& vCoinsRet2, int nDarksendRoundsMin, int nDarksendRoundsMax);
|
||||
bool SelectCoinsByDenominations(int nDenom, int64_t nValueMin, int64_t nValueMax, std::vector<CTxIn>& vCoinsRet, std::vector<COutput>& vCoinsRet2, int64_t& nValueRet, int nDarksendRoundsMin, int nDarksendRoundsMax);
|
||||
bool SelectCoinsDarkDenominated(int64_t nTargetValue, std::vector<CTxIn>& setCoinsRet, int64_t& nValueRet) const;
|
||||
bool HasCollateralInputs(bool fOnlyConfirmed = true) const;
|
||||
bool IsCollateralAmount(int64_t nInputAmount) const;
|
||||
|
Loading…
Reference in New Issue
Block a user