Browse Source

update year, locales, fix tabulations

pull/29/head
R4SAS 6 years ago
parent
commit
e21f609ed3
  1. 2
      COPYING
  2. 2
      README.md
  3. 74
      src/Gost.cpp
  4. 22
      src/Gost.h
  5. 1
      src/alert.h
  6. 1
      src/base58.h
  7. 1
      src/bignum.h
  8. 1
      src/bitcoinrpc.cpp
  9. 1
      src/checkpoints.cpp
  10. 1
      src/compat.h
  11. 1
      src/crypter.cpp
  12. 1
      src/db.cpp
  13. 4
      src/hash.cpp
  14. 104
      src/hash.h
  15. 152
      src/i2p.cpp
  16. 1
      src/i2p.h
  17. 2
      src/i2psam/i2psam.cpp
  18. 2
      src/i2psam/i2psam.h
  19. 1
      src/init.cpp
  20. 1
      src/init.h
  21. 1
      src/key.cpp
  22. 1
      src/key.h
  23. 1
      src/main.cpp
  24. 1
      src/main.h
  25. 1
      src/net.cpp
  26. 1
      src/net.h
  27. 1
      src/netbase.cpp
  28. 1
      src/netbase.h
  29. 1
      src/noui.cpp
  30. 2
      src/qt/aboutdialog.cpp
  31. 14
      src/qt/bitcoingui.cpp
  32. 4
      src/qt/clientmodel.cpp
  33. 3
      src/qt/clientmodel.h
  34. 4
      src/qt/forms/signverifymessagedialog.ui
  35. 6
      src/qt/gostcoin.cpp
  36. 3827
      src/qt/locale/gostcoin_en.ts
  37. 478
      src/qt/locale/gostcoin_ru.ts
  38. 1
      src/qt/paymentserver.cpp
  39. 2
      src/qt/sendcoinsdialog.cpp
  40. 2
      src/qt/setupdarknet.cpp
  41. 14
      src/qt/walletframe.cpp
  42. 14
      src/qt/walletframe.h
  43. 14
      src/qt/walletstack.cpp
  44. 14
      src/qt/walletstack.h
  45. 14
      src/qt/walletview.cpp
  46. 14
      src/qt/walletview.h
  47. 1
      src/rpcdump.cpp
  48. 1
      src/rpcmining.cpp
  49. 1
      src/rpcnet.cpp
  50. 1
      src/rpcrawtransaction.cpp
  51. 1
      src/rpcwallet.cpp
  52. 1
      src/script.cpp
  53. 1
      src/script.h
  54. 1
      src/uint256.h
  55. 36
      src/util.cpp
  56. 1
      src/util.h
  57. 1
      src/version.cpp
  58. 1
      src/wallet.cpp
  59. 1
      src/wallet.h
  60. 1
      src/walletdb.cpp
  61. 1
      src/walletdb.h

2
COPYING

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
Copyright (c) 2013-2015 The Anoncoin Developers
Copyright (c) 2017 GOSTCoin Developers
Copyright (c) 2017-2018 GOSTCoin Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

2
README.md

@ -8,7 +8,7 @@ Why GOSTCoin? @@ -8,7 +8,7 @@ Why GOSTCoin?
-------------
GOSTCoin uses Soviet and Russian government standard cryptography:
GOST R 34.10-2012 for signature and GOST R 34.11-2012 for hash.
[GOST R 34.10-2012](https://tools.ietf.org/html/rfc7091) for signature and [GOST R 34.11-2012](https://tools.ietf.org/html/rfc6986) for hash.
[More info about crypto](https://github.com/GOSTSec/gostcoin/wiki/Cryptography).
GOSTCoin is using [Invisible Internet](https://github.com/PurpleI2P/i2pd) (I2P) as a secure network layer.

74
src/Gost.cpp

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2016, The PurpleI2P Project
* Copyright (c) 2013-2018, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@ -35,7 +35,7 @@ namespace crypto @@ -35,7 +35,7 @@ namespace crypto
GOSTR3410Curve::~GOSTR3410Curve ()
{
EC_GROUP_free (m_Group);
}
}
EC_POINT * GOSTR3410Curve::MulP (const BIGNUM * n) const
{
@ -65,9 +65,9 @@ namespace crypto @@ -65,9 +65,9 @@ namespace crypto
BIGNUM * q = BN_CTX_get (ctx);
EC_GROUP_get_order(m_Group, q, ctx);
BIGNUM * k = BN_CTX_get (ctx);
BN_rand_range (k, q); // 0 < k < q
BN_rand_range (k, q); // 0 < k < q
EC_POINT * C = MulP (k); // C = k*P
GetXY (C, r, nullptr); // r = Cx
GetXY (C, r, nullptr); // r = Cx
EC_POINT_free (C);
BN_mod_mul (s, r, priv, q, ctx); // (r*priv)%q
BIGNUM * tmp = BN_CTX_get (ctx);
@ -84,26 +84,26 @@ namespace crypto @@ -84,26 +84,26 @@ namespace crypto
BIGNUM * q = BN_CTX_get (ctx);
EC_GROUP_get_order(m_Group, q, ctx);
BIGNUM * h = BN_CTX_get (ctx);
BN_mod (h, digest, q, ctx); // h = digest % q
BN_mod_inverse (h, h, q, ctx); // 1/h mod q
BN_mod (h, digest, q, ctx); // h = digest % q
BN_mod_inverse (h, h, q, ctx); // 1/h mod q
BIGNUM * z1 = BN_CTX_get (ctx);
BN_mod_mul (z1, s, h, q, ctx); // z1 = s/h
BIGNUM * z2 = BN_CTX_get (ctx);
BN_sub (z2, q, r); // z2 = -r
BN_mod_mul (z1, s, h, q, ctx); // z1 = s/h
BIGNUM * z2 = BN_CTX_get (ctx);
BN_sub (z2, q, r); // z2 = -r
BN_mod_mul (z2, z2, h, q, ctx); // z2 = -r/h
EC_POINT * C = EC_POINT_new (m_Group);
EC_POINT_mul (m_Group, C, z1, pub, z2, ctx); // z1*P + z2*pub
BIGNUM * x = BN_CTX_get (ctx);
GetXY (C, x, nullptr); // Cx
BN_mod (x, x, q, ctx); // Cx % q
bool ret = !BN_cmp (x, r); // Cx = r ?
BIGNUM * x = BN_CTX_get (ctx);
GetXY (C, x, nullptr); // Cx
BN_mod (x, x, q, ctx); // Cx % q
bool ret = !BN_cmp (x, r); // Cx = r ?
EC_POINT_free (C);
BN_CTX_end (ctx);
BN_CTX_free (ctx);
return ret;
}
}
EC_POINT * GOSTR3410Curve::RecoverPublicKey (const BIGNUM * digest, const BIGNUM * r, const BIGNUM * s, bool isNegativeY) const
EC_POINT * GOSTR3410Curve::RecoverPublicKey (const BIGNUM * digest, const BIGNUM * r, const BIGNUM * s, bool isNegativeY) const
{
// s*P = r*Q + h*C
BN_CTX * ctx = BN_CTX_new ();
@ -111,36 +111,36 @@ namespace crypto @@ -111,36 +111,36 @@ namespace crypto
EC_POINT * C = EC_POINT_new (m_Group); // C = k*P = (rx, ry)
EC_POINT * Q = nullptr;
if (EC_POINT_set_compressed_coordinates_GFp (m_Group, C, r, isNegativeY ? 1 : 0, ctx))
{
{
EC_POINT * S = EC_POINT_new (m_Group); // S = s*P
EC_POINT_mul (m_Group, S, s, nullptr, nullptr, ctx);
BIGNUM * q = BN_CTX_get (ctx);
EC_GROUP_get_order(m_Group, q, ctx);
BIGNUM * h = BN_CTX_get (ctx);
BN_mod (h, digest, q, ctx); // h = digest % q
BN_sub (h, q, h); // h = -h
EC_POINT * H = EC_POINT_new (m_Group);
BN_sub (h, q, h); // h = -h
EC_POINT * H = EC_POINT_new (m_Group);
EC_POINT_mul (m_Group, H, nullptr, C, h, ctx); // -h*C
EC_POINT_add (m_Group, C, S, H, ctx); // s*P - h*C
EC_POINT_add (m_Group, C, S, H, ctx); // s*P - h*C
EC_POINT_free (H);
EC_POINT_free (S);
BIGNUM * r1 = BN_CTX_get (ctx);
BN_mod_inverse (r1, r, q, ctx);
Q = EC_POINT_new (m_Group);
EC_POINT_mul (m_Group, Q, nullptr, C, r1, ctx); // (s*P - h*C)/r
}
Q = EC_POINT_new (m_Group);
EC_POINT_mul (m_Group, Q, nullptr, C, r1, ctx); // (s*P - h*C)/r
}
EC_POINT_free (C);
BN_CTX_end (ctx);
BN_CTX_free (ctx);
return Q;
}
}
static GOSTR3410Curve * CreateGOSTR3410Curve (GOSTR3410ParamSet paramSet)
{
// a, b, p, q, x, y
static const char * params[eGOSTR3410NumParamSets][6] =
// a, b, p, q, x, y
static const char * params[eGOSTR3410NumParamSets][6] =
{
{
{
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD94",
"A6",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97",
@ -154,10 +154,10 @@ namespace crypto @@ -154,10 +154,10 @@ namespace crypto
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC7",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27E69532F48D89116FF22B8D4E0560609B4B38ABFAD2B85DCACDB1411F10B275",
"3",
"7503CFE87A836AE3A61B8816E25450E6CE5E1C93ACF1ABC1778064FDCBEFA921DF1626BE4FD036E93D75E6A50E3A41E98028FE5FC235F5B889A589CB5215F2A4"
"7503CFE87A836AE3A61B8816E25450E6CE5E1C93ACF1ABC1778064FDCBEFA921DF1626BE4FD036E93D75E6A50E3A41E98028FE5FC235F5B889A589CB5215F2A4"
} // tc26-2012-paramSetA-512
};
};
BIGNUM * a = nullptr, * b = nullptr, * p = nullptr, * q =nullptr, * x = nullptr, * y = nullptr;
BN_hex2bn(&a, params[paramSet][0]);
BN_hex2bn(&b, params[paramSet][1]);
@ -168,20 +168,20 @@ namespace crypto @@ -168,20 +168,20 @@ namespace crypto
auto curve = new GOSTR3410Curve (a, b, p, q, x, y);
BN_free (a); BN_free (b); BN_free (p); BN_free (q); BN_free (x); BN_free (y);
return curve;
}
}
static std::array<std::unique_ptr<GOSTR3410Curve>, eGOSTR3410NumParamSets> g_GOSTR3410Curves;
std::unique_ptr<GOSTR3410Curve>& GetGOSTR3410Curve (GOSTR3410ParamSet paramSet)
{
if (!g_GOSTR3410Curves[paramSet])
{
auto c = CreateGOSTR3410Curve (paramSet);
auto c = CreateGOSTR3410Curve (paramSet);
if (!g_GOSTR3410Curves[paramSet]) // make sure it was not created already
g_GOSTR3410Curves[paramSet].reset (c);
else
delete c;
}
return g_GOSTR3410Curves[paramSet];
}
return g_GOSTR3410Curves[paramSet];
}
}
}
@ -193,7 +193,7 @@ namespace crypto @@ -193,7 +193,7 @@ namespace crypto
* ==========================(LICENSE BEGIN)============================
*
* Copyright (c) 2007-2010 Projet RNRT SAPHIR
*
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
@ -201,10 +201,10 @@ namespace crypto @@ -201,10 +201,10 @@ namespace crypto
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

22
src/Gost.h

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2017, The PurpleI2P Project
* Copyright (c) 2013-2018, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@ -18,25 +18,25 @@ namespace crypto @@ -18,25 +18,25 @@ namespace crypto
{
// ГОСТ Р 34.10
enum GOSTR3410ParamSet
{
eGOSTR3410CryptoProA = 0, // 1.2.643.2.2.35.1
eGOSTR3410CryptoProA = 0, // 1.2.643.2.2.35.1
// XchA = A, XchB = C
//eGOSTR3410CryptoProXchA, // 1.2.643.2.2.36.0
//eGOSTR3410CryptoProXchB, // 1.2.643.2.2.36.1
eGOSTR3410TC26A512, // 1.2.643.7.1.2.1.2.1
//eGOSTR3410CryptoProXchB, // 1.2.643.2.2.36.1
eGOSTR3410TC26A512, // 1.2.643.7.1.2.1.2.1
eGOSTR3410NumParamSets
};
};
class GOSTR3410Curve
{
public:
GOSTR3410Curve (BIGNUM * a, BIGNUM * b, BIGNUM * p, BIGNUM * q, BIGNUM * x, BIGNUM * y);
~GOSTR3410Curve ();
~GOSTR3410Curve ();
size_t GetKeyLen () const { return m_KeyLen; };
size_t GetKeyLen () const { return m_KeyLen; };
const EC_GROUP * GetGroup () const { return m_Group; };
EC_POINT * MulP (const BIGNUM * n) const;
bool GetXY (const EC_POINT * p, BIGNUM * x, BIGNUM * y) const;
@ -44,7 +44,7 @@ namespace crypto @@ -44,7 +44,7 @@ namespace crypto
void Sign (const BIGNUM * priv, const BIGNUM * digest, BIGNUM * r, BIGNUM * s);
bool Verify (const EC_POINT * pub, const BIGNUM * digest, const BIGNUM * r, const BIGNUM * s);
EC_POINT * RecoverPublicKey (const BIGNUM * digest, const BIGNUM * r, const BIGNUM * s, bool isNegativeY = false) const;
private:
EC_GROUP * m_Group;
@ -55,7 +55,7 @@ namespace crypto @@ -55,7 +55,7 @@ namespace crypto
// Big Endian
void GOSTR3411_2012_256 (const uint8_t * buf, size_t len, uint8_t * digest);
void GOSTR3411_2012_512 (const uint8_t * buf, size_t len, uint8_t * digest);
void GOSTR3411_2012_512 (const uint8_t * buf, size_t len, uint8_t * digest);
}
}

1
src/alert.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/base58.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/bignum.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_BIGNUM_H

1
src/bitcoinrpc.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/checkpoints.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/compat.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef _BITCOIN_COMPAT_H

1
src/crypter.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/db.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

4
src/hash.cpp

@ -1,3 +1,7 @@ @@ -1,3 +1,7 @@
// Copyright (c) 2017-2018 The Gostcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "hash.h"
uint256 Hash (const uint256& left, const uint256& right)

104
src/hash.h

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017 The Gostcoin developers
// Copyright (c) 2017-2018 The Gostcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_HASH_H
@ -20,80 +20,80 @@ template<typename T1> @@ -20,80 +20,80 @@ template<typename T1>
inline uint256 Hash(const T1 pbegin, const T1 pend)
{
// GOST 34.11-256 (GOST 34.11-512 (...))
static unsigned char pblank[1];
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512 ((pbegin == pend ? pblank : (unsigned char*)&pbegin[0]), (pend - pbegin) * sizeof(pbegin[0]), hash1);
static unsigned char pblank[1];
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512 ((pbegin == pend ? pblank : (unsigned char*)&pbegin[0]), (pend - pbegin) * sizeof(pbegin[0]), hash1);
uint32_t digest[8];
i2p::crypto::GOSTR3411_2012_256 (hash1, 64, (uint8_t *)digest);
i2p::crypto::GOSTR3411_2012_256 (hash1, 64, (uint8_t *)digest);
// to little endian
uint256 hash2;
uint256 hash2;
for (int i = 0; i < 8; i++)
hash2.pn[i] = ByteReverse (digest[7-i]);
return hash2;
return hash2;
}
class CHashWriter
{
private:
std::stringstream ctx;
std::stringstream ctx;
public:
int nType;
int nVersion;
int nType;
int nVersion;
void Init() {
ctx.str("");
}
void Init() {
ctx.str("");
}
CHashWriter(int nTypeIn, int nVersionIn) : nType(nTypeIn), nVersion(nVersionIn) {
Init();
}
CHashWriter(int nTypeIn, int nVersionIn) : nType(nTypeIn), nVersion(nVersionIn) {
Init();
}
CHashWriter& write(const char *pch, size_t size) {
CHashWriter& write(const char *pch, size_t size) {
ctx.write (pch, size);
return (*this);
}
return (*this);
}
// invalidates the object
uint256 GetHash() { // shouldn't be called after hard fork 1
// invalidates the object
uint256 GetHash() { // shouldn't be called after hard fork 1
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512 ((uint8_t *)ctx.str ().c_str (), ctx.str ().length (), hash1);
uint256 hash2;
i2p::crypto::GOSTR3411_2012_256 (hash1, 64, (unsigned char*)&hash2);
return hash2;
}
i2p::crypto::GOSTR3411_2012_512 ((uint8_t *)ctx.str ().c_str (), ctx.str ().length (), hash1);
uint256 hash2;
i2p::crypto::GOSTR3411_2012_256 (hash1, 64, (unsigned char*)&hash2);
return hash2;
}
uint256 GetHashHF1()
{
const uint8_t * buf = (const uint8_t *)ctx.str ().c_str ();
return Hash (buf, buf + ctx.str ().length ());
}
template<typename T>
CHashWriter& operator<<(const T& obj) {
// Serialize to this stream
::Serialize(*this, obj, nType, nVersion);
return (*this);
}
}
template<typename T>
CHashWriter& operator<<(const T& obj) {
// Serialize to this stream
::Serialize(*this, obj, nType, nVersion);
return (*this);
}
};
template<typename T1, typename T2>
inline uint256 Hash(const T1 p1begin, const T1 p1end,
const T2 p2begin, const T2 p2end) // shouldn't be called after hard fork 1
const T2 p2begin, const T2 p2end) // shouldn't be called after hard fork 1
{
static unsigned char pblank[1];
size_t s1 = (p1end - p1begin) * sizeof(p1begin[0]),
s2 = (p2end - p2begin) * sizeof(p2begin[0]);
s2 = (p2end - p2begin) * sizeof(p2begin[0]);
uint8_t * buf = new uint8_t[s1+s2];
memcpy (buf, (unsigned char*)&p1begin[0], s1);
memcpy (buf + s1, (unsigned char*)&p1begin[0], s2);
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512 ((s1 + s2) ? buf : pblank, s1 + s2, hash1);
delete[] buf;
i2p::crypto::GOSTR3411_2012_512 ((s1 + s2) ? buf : pblank, s1 + s2, hash1);
delete[] buf;
uint256 hash2;
i2p::crypto::GOSTR3411_2012_256 (hash1, 64, (unsigned char*)&hash2);
return hash2;
return hash2;
}
uint256 Hash (const uint256& left, const uint256& right); // for Merkle tree
@ -102,33 +102,33 @@ template<typename T> @@ -102,33 +102,33 @@ template<typename T>
uint256 SerializeHash(const T& obj, int nType=SER_GETHASH, int nVersion=PROTOCOL_VERSION)
// shouldn't be called after hard fork 1
{
CHashWriter ss(nType, nVersion);
ss << obj;
return ss.GetHash();
CHashWriter ss(nType, nVersion);
ss << obj;
return ss.GetHash();
}
template<typename T>
uint256 SerializeHashHF1(const T& obj, int nType=SER_GETHASH, int nVersion=PROTOCOL_VERSION)
{
CHashWriter ss(nType, nVersion);
ss << obj;
return ss.GetHashHF1();
CHashWriter ss(nType, nVersion);
ss << obj;
return ss.GetHashHF1();
}
template<typename T1>
inline uint160 Hash160(const T1 pbegin, const T1 pend)
{
static unsigned char pblank[1];
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512((pbegin == pend ? pblank : (unsigned char*)&pbegin[0]), (pend - pbegin) * sizeof(pbegin[0]), hash1);
uint160 hash2;
RIPEMD160(hash1, 64, (unsigned char*)&hash2);
return hash2;
static unsigned char pblank[1];
uint8_t hash1[64];
i2p::crypto::GOSTR3411_2012_512((pbegin == pend ? pblank : (unsigned char*)&pbegin[0]), (pend - pbegin) * sizeof(pbegin[0]), hash1);
uint160 hash2;
RIPEMD160(hash1, 64, (unsigned char*)&hash2);
return hash2;
}
inline uint160 Hash160(const std::vector<unsigned char>& vch)
{
return Hash160(vch.begin(), vch.end());
return Hash160(vch.begin(), vch.end());
}
unsigned int MurmurHash3(unsigned int nHashSeed, const std::vector<unsigned char>& vDataToHash);

152
src/i2p.cpp

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Copyright (c) 2012-2013 giv
// Copyright (c) 2017 orignal
// Copyright (c) 2017-2018 orignal
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//--------------------------------------------------------------------------------------------------
@ -15,22 +15,22 @@ namespace SAM @@ -15,22 +15,22 @@ namespace SAM
class StreamSessionAdapter::SessionHolder
{
public:
explicit SessionHolder(std::shared_ptr<SAM::StreamSession> session);
explicit SessionHolder(std::shared_ptr<SAM::StreamSession> session);
~SessionHolder();
const SAM::StreamSession& getSession() const;
SAM::StreamSession& getSession();
const SAM::StreamSession& getSession() const;
SAM::StreamSession& getSession();
private:
void heal() const;
void reborn() const;
void heal() const;
void reborn() const;
mutable std::shared_ptr<SAM::StreamSession> session_;
typedef boost::shared_mutex mutex_type;
mutable mutex_type mtx_;
mutable std::shared_ptr<SAM::StreamSession> session_;
typedef boost::shared_mutex mutex_type;
mutable mutex_type mtx_;
};
StreamSessionAdapter::SessionHolder::SessionHolder(std::shared_ptr<SAM::StreamSession> session)
: session_(session)
: session_(session)
{
}
@ -40,38 +40,38 @@ StreamSessionAdapter::SessionHolder::~SessionHolder() @@ -40,38 +40,38 @@ StreamSessionAdapter::SessionHolder::~SessionHolder()
const SAM::StreamSession& StreamSessionAdapter::SessionHolder::getSession() const
{
boost::upgrade_lock<mutex_type> lock(mtx_);
if (session_->isSick())
{
boost::upgrade_to_unique_lock<mutex_type> ulock(lock);
heal();
}
return *session_;
boost::upgrade_lock<mutex_type> lock(mtx_);
if (session_->isSick())
{
boost::upgrade_to_unique_lock<mutex_type> ulock(lock);
heal();
}
return *session_;
}
SAM::StreamSession& StreamSessionAdapter::SessionHolder::getSession()
{
boost::upgrade_lock<mutex_type> lock(mtx_);
if (session_->isSick())
{
boost::upgrade_to_unique_lock<mutex_type> ulock(lock);
heal();
}
return *session_;
boost::upgrade_lock<mutex_type> lock(mtx_);
if (session_->isSick())
{
boost::upgrade_to_unique_lock<mutex_type> ulock(lock);
heal();
}
return *session_;
}
void StreamSessionAdapter::SessionHolder::heal() const
{
reborn(); // if we don't know how to heal it just reborn it
reborn(); // if we don't know how to heal it just reborn it
}
void StreamSessionAdapter::SessionHolder::reborn() const
{
if (!session_->isSick())
return;
std::shared_ptr<SAM::StreamSession> newSession(new SAM::StreamSession(*session_));
if (!newSession->isSick() && session_->isSick())
session_ = newSession;
if (!session_->isSick())
return;
std::shared_ptr<SAM::StreamSession> newSession(new SAM::StreamSession(*session_));
if (!newSession->isSick() && session_->isSick())
session_ = newSession;
}
//--------------------------------------------------------------------------------------------------
@ -87,13 +87,13 @@ StreamSessionAdapter::~StreamSessionAdapter() @@ -87,13 +87,13 @@ StreamSessionAdapter::~StreamSessionAdapter()
}
bool StreamSessionAdapter::StartSession (
const std::string& nickname,
const std::string& SAMHost /*= SAM_DEFAULT_ADDRESS*/,
uint16_t SAMPort /*= SAM_DEFAULT_PORT*/,
const std::string& myDestination /*= SAM_GENERATE_MY_DESTINATION*/,
const std::string& i2pOptions /*= SAM_DEFAULT_I2P_OPTIONS*/,
const std::string& minVer /*= SAM_DEFAULT_MIN_VER*/,
const std::string& maxVer /*= SAM_DEFAULT_MAX_VER*/)
const std::string& nickname,
const std::string& SAMHost /*= SAM_DEFAULT_ADDRESS*/,
uint16_t SAMPort /*= SAM_DEFAULT_PORT*/,
const std::string& myDestination /*= SAM_GENERATE_MY_DESTINATION*/,
const std::string& i2pOptions /*= SAM_DEFAULT_I2P_OPTIONS*/,
const std::string& minVer /*= SAM_DEFAULT_MIN_VER*/,
const std::string& maxVer /*= SAM_DEFAULT_MAX_VER*/)
{
std::cout << "Creating SAM session..." << std::endl;
auto s = std::make_shared<SAM::StreamSession>(nickname, SAMHost, SAMPort, myDestination, i2pOptions, minVer, maxVer);
@ -116,11 +116,11 @@ void StreamSessionAdapter::StopSession () @@ -116,11 +116,11 @@ void StreamSessionAdapter::StopSession ()
bool StreamSessionAdapter::Start ()
{
return StartSession(
GetArg(I2P_SESSION_NAME_PARAM, I2P_SESSION_NAME_DEFAULT),
GetArg(I2P_SAM_HOST_PARAM, I2P_SAM_HOST_DEFAULT),
(uint16_t)GetArg(I2P_SAM_PORT_PARAM, I2P_SAM_PORT_DEFAULT),
GetArg(I2P_SAM_MY_DESTINATION_PARAM, I2P_SAM_MY_DESTINATION_DEFAULT),
GetArg(I2P_SAM_I2P_OPTIONS_PARAM, SAM_DEFAULT_I2P_OPTIONS));
GetArg(I2P_SESSION_NAME_PARAM, I2P_SESSION_NAME_DEFAULT),
GetArg(I2P_SAM_HOST_PARAM, I2P_SAM_HOST_DEFAULT),
(uint16_t)GetArg(I2P_SAM_PORT_PARAM, I2P_SAM_PORT_DEFAULT),
GetArg(I2P_SAM_MY_DESTINATION_PARAM, I2P_SAM_MY_DESTINATION_DEFAULT),
GetArg(I2P_SAM_I2P_OPTIONS_PARAM, SAM_DEFAULT_I2P_OPTIONS));
}
void StreamSessionAdapter::Stop ()
@ -130,88 +130,88 @@ void StreamSessionAdapter::Stop () @@ -130,88 +130,88 @@ void StreamSessionAdapter::Stop ()
SAM::SOCKET StreamSessionAdapter::accept(bool silent)
{
SAM::RequestResult<std::shared_ptr<SAM::Socket> > result = sessionHolder_->getSession().accept(silent);
// call Socket::release
return result.isOk ? result.value->release() : SAM_INVALID_SOCKET;
SAM::RequestResult<std::shared_ptr<SAM::Socket> > result = sessionHolder_->getSession().accept(silent);
// call Socket::release
return result.isOk ? result.value->release() : SAM_INVALID_SOCKET;
}
SAM::SOCKET StreamSessionAdapter::connect(const std::string& destination, bool silent)
{
SAM::RequestResult<std::shared_ptr<SAM::Socket> > result = sessionHolder_->getSession().connect(destination, silent);
// call Socket::release
return result.isOk ? result.value->release() : SAM_INVALID_SOCKET;
SAM::RequestResult<std::shared_ptr<SAM::Socket> > result = sessionHolder_->getSession().connect(destination, silent);
// call Socket::release
return result.isOk ? result.value->release() : SAM_INVALID_SOCKET;
}
bool StreamSessionAdapter::forward(const std::string& host, uint16_t port, bool silent)
{
return sessionHolder_->getSession().forward(host, port, silent).isOk;
return sessionHolder_->getSession().forward(host, port, silent).isOk;
}
std::string StreamSessionAdapter::namingLookup(const std::string& name) const
{
SAM::RequestResult<const std::string> result = sessionHolder_->getSession().namingLookup(name);
return result.isOk ? result.value : std::string();
SAM::RequestResult<const std::string> result = sessionHolder_->getSession().namingLookup(name);
return result.isOk ? result.value : std::string();
}
SAM::FullDestination StreamSessionAdapter::destGenerate() const
{
SAM::RequestResult<const SAM::FullDestination> result = sessionHolder_->getSession().destGenerate();
return result.isOk ? result.value : SAM::FullDestination();
SAM::RequestResult<const SAM::FullDestination> result = sessionHolder_->getSession().destGenerate();
return result.isOk ? result.value : SAM::FullDestination();
}
void StreamSessionAdapter::stopForwarding(const std::string& host, uint16_t port)
{
sessionHolder_->getSession().stopForwarding(host, port);
sessionHolder_->getSession().stopForwarding(host, port);
}
void StreamSessionAdapter::stopForwardingAll()
{
sessionHolder_->getSession().stopForwardingAll();
sessionHolder_->getSession().stopForwardingAll();
}
const SAM::FullDestination& StreamSessionAdapter::getMyDestination() const
{
return sessionHolder_->getSession().getMyDestination();
return sessionHolder_->getSession().getMyDestination();
}
const sockaddr_in& StreamSessionAdapter::getSAMAddress() const
{
return sessionHolder_->getSession().getSAMAddress();
return sessionHolder_->getSession().getSAMAddress();
}
const std::string& StreamSessionAdapter::getSAMHost() const
{
return sessionHolder_->getSession().getSAMHost();
return sessionHolder_->getSession().getSAMHost();
}
uint16_t StreamSessionAdapter::getSAMPort() const
{
return sessionHolder_->getSession().getSAMPort();
return sessionHolder_->getSession().getSAMPort();
}
const std::string& StreamSessionAdapter::getNickname() const
{
return sessionHolder_->getSession().getNickname();
return sessionHolder_->getSession().getNickname();
}
const std::string& StreamSessionAdapter::getSAMMinVer() const
{
return sessionHolder_->getSession().getSAMMinVer();
return sessionHolder_->getSession().getSAMMinVer();
}
const std::string& StreamSessionAdapter::getSAMMaxVer() const
{
return sessionHolder_->getSession().getSAMMaxVer();
return sessionHolder_->getSession().getSAMMaxVer();
}
const std::string& StreamSessionAdapter::getSAMVersion() const
{
return sessionHolder_->getSession().getSAMVersion();
return sessionHolder_->getSession().getSAMVersion();
}
const std::string& StreamSessionAdapter::getOptions() const
{
return sessionHolder_->getSession().getOptions();
return sessionHolder_->getSession().getOptions();
}
} // namespace SAM
@ -228,16 +228,16 @@ I2PSession::~I2PSession() @@ -228,16 +228,16 @@ I2PSession::~I2PSession()
/*static*/
std::string I2PSession::GenerateB32AddressFromDestination(const std::string& destination)
{
std::string canonicalDest = destination;
for (size_t pos = canonicalDest.find_first_of('-'); pos != std::string::npos; pos = canonicalDest.find_first_of('-', pos))
canonicalDest[pos] = '+';
for (size_t pos = canonicalDest.find_first_of('~'); pos != std::string::npos; pos = canonicalDest.find_first_of('~', pos))
canonicalDest[pos] = '/';
std::string rawHash = DecodeBase64(canonicalDest);
uint256 hash;
SHA256((const unsigned char*)rawHash.c_str(), rawHash.size(), (unsigned char*)&hash);
std::string result = EncodeBase32(hash.begin(), hash.end() - hash.begin()) + ".b32.i2p";
for (size_t pos = result.find_first_of('='); pos != std::string::npos; pos = result.find_first_of('=', pos-1))
result.erase(pos, 1);
return result;
std::string canonicalDest = destination;
for (size_t pos = canonicalDest.find_first_of('-'); pos != std::string::npos; pos = canonicalDest.find_first_of('-', pos))
canonicalDest[pos] = '+';
for (size_t pos = canonicalDest.find_first_of('~'); pos != std::string::npos; pos = canonicalDest.find_first_of('~', pos))
canonicalDest[pos] = '/';
std::string rawHash = DecodeBase64(canonicalDest);
uint256 hash;
SHA256((const unsigned char*)rawHash.c_str(), rawHash.size(), (unsigned char*)&hash);
std::string result = EncodeBase32(hash.begin(), hash.end() - hash.begin()) + ".b32.i2p";
for (size_t pos = result.find_first_of('='); pos != std::string::npos; pos = result.find_first_of('=', pos-1))
result.erase(pos, 1);
return result;
}

1
src/i2p.h

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2012-2013 giv
// Copyright (c) 2017-2018 orignal
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//--------------------------------------------------------------------------------------------------

2
src/i2psam/i2psam.cpp

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Copyright (c) 2012-2013 giv
// Copyright (c) 2017 orignal
// Copyright (c) 2017-2018 orignal
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//--------------------------------------------------------------------------------------------------

2
src/i2psam/i2psam.h

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Copyright (c) 2012-2013 giv
// Copyright (c) 2017 orignal
// Copyright (c) 2017-2018 orignal
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//--------------------------------------------------------------------------------------------------

1
src/init.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
// I2P-patch

1
src/init.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_INIT_H

1
src/key.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/key.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2013 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KEY_H

1
src/main.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/main.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_MAIN_H

1
src/net.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/net.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_NET_H

1
src/netbase.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/netbase.h

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_NETBASE_H

1
src/noui.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

2
src/qt/aboutdialog.cpp

@ -16,7 +16,7 @@ AboutDialog::AboutDialog(QWidget *parent) : @@ -16,7 +16,7 @@ AboutDialog::AboutDialog(QWidget *parent) :
tr("Copyright") + QString(" &copy; 2011-%1 ").arg(COPYRIGHT_YEAR) + tr("The Litecoin developers") + QString("<br>") +
tr("Copyright") + QString(" &copy; 2013-%1 ").arg(COPYRIGHT_YEAR) + tr("The Anoncoin developers") + QString("<br>") +
tr("Copyright") + QString(" &copy; 2015-%1 ").arg(COPYRIGHT_YEAR) + tr("The i2pd developers") + QString("<br>") +
tr("Copyright") + QString(" &copy; %1 ").arg(COPYRIGHT_YEAR) + tr("The Gostcoin developers")
tr("Copyright") + QString(" &copy; 2017-%1 ").arg(COPYRIGHT_YEAR) + tr("The Gostcoin developers")
);
}

14
src/qt/bitcoingui.cpp

@ -1,12 +1,14 @@ @@ -1,12 +1,14 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2012
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
// I2P-patch
// Copyright (c) 2012-2013 giv
//
#include <QApplication>

4
src/qt/clientmodel.cpp

@ -1,6 +1,10 @@ @@ -1,6 +1,10 @@
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
// I2P-patch
// Copyright (c) 2012-2013 giv
#include "clientmodel.h"
#include "guiconstants.h"

3
src/qt/clientmodel.h

@ -1,3 +1,6 @@ @@ -1,3 +1,6 @@
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
// I2P-patch
// Copyright (c) 2012-2013 giv

4
src/qt/forms/signverifymessagedialog.ui

@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
<item>
<widget class="QValidatedLineEdit" name="addressIn_SM">
<property name="toolTip">
<string>The address to sign the message with (e.g. Ler4HNAEfwYhBmGXcFP2Po1NpRUEiK8km2)</string>
<string>The address to sign the message with (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</string>
</property>
<property name="maxLength">
<number>34</number>
@ -261,7 +261,7 @@ @@ -261,7 +261,7 @@
<item>
<widget class="QValidatedLineEdit" name="addressIn_VM">
<property name="toolTip">
<string>The address the message was signed with (e.g. Ler4HNAEfwYhBmGXcFP2Po1NpRUEiK8km2)</string>
<string>The address the message was signed with (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</string>
</property>
<property name="maxLength">
<number>34</number>

6
src/qt/gostcoin.cpp

@ -1,8 +1,10 @@ @@ -1,8 +1,10 @@
/*
* W.J. van der Laan 2011-2012
*/
// Copyright 2013 The Anoncoin Developers
// Copyright 2017 The Gostcoin Developers
// Copyright (c) 2013 The Anoncoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
//
// I2P-patch
// Copyright (c) 2012-2013 giv

3827
src/qt/locale/gostcoin_en.ts

File diff suppressed because it is too large Load Diff

478
src/qt/locale/gostcoin_ru.ts

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="ru" version="2.0">
<!-- About Dialog -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru" sourcelanguage="en">
<context>
<name>AboutDialog</name>
<message>
@ -17,46 +17,48 @@ @@ -17,46 +17,48 @@
<location line="+57"/>
<source>
&lt;p&gt;This is experimental software.&lt;/p&gt;
&lt;p&gt;Distributed under the MIT/X11 software license, see the accompanying file COPYING or &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;http://www.opensource.org/licenses/mit-license.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (&lt;a href="http://www.openssl.org/"&gt;http://www.openssl.org/&lt;/a&gt;) and cryptographic software written by Eric Young (eay@cryptsoft.com).&lt;/p&gt;</source>
&lt;p&gt;Distributed under the MIT/X11 software license, see the accompanying file COPYING or &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;http://www.opensource.org/licenses/mit-license.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (&lt;a href=&quot;http://www.openssl.org/&quot;&gt;http://www.openssl.org/&lt;/a&gt;) and cryptographic software written by Eric Young (eay@cryptsoft.com).&lt;/p&gt;</source>
<translation>
&lt;p&gt;Это экспериментальная программа.&lt;/p&gt;
&lt;p&gt;Распространяется на правах лицензии MIT/X11, см. файл COPYING или &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;http://www.opensource.org/licenses/mit-license.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Этот продукт включает ПО, разработанное OpenSSL Project для использования в OpenSSL Toolkit (&lt;a href="http://www.openssl.org/"&gt;http://www.openssl.org/&lt;/a&gt;) и криптографическое ПО, написанное Eric Young (eay@cryptsoft.com).&lt;/p&gt;</translation>
&lt;p&gt;Распространяется на правах лицензии MIT/X11, см. файл COPYING или &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;http://www.opensource.org/licenses/mit-license.php&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Этот продукт включает ПО, разработанное OpenSSL Project для использования в OpenSSL Toolkit (&lt;a href=&quot;http://www.openssl.org/&quot;&gt;http://www.openssl.org/&lt;/a&gt;) и криптографическое ПО, написанное Eric Young (eay@cryptsoft.com).&lt;/p&gt;</translation>
</message>
<message>
<location filename="../aboutdialog.cpp" line="+14"/>
<location filename="../aboutdialog.cpp" line="+15"/>
<location line="+1"/>
<location line="+1"/>
<location line="+1"/>
<location line="+1"/>
<source>Copyright</source>
<translation>Все права защищены</translation>
</message>
<message>
<location line="+0"/>
<location line="-4"/>
<source>The Bitcoin developers</source>
<translation>Разработчики Bitcoin</translation>
</message>
<message>
<location line="+0"/>
<location line="+1"/>
<source>The Litecoin developers</source>
<translation>Разработчики Litecoin</translation>
</message>
<message>
<location line="+0"/>
<location line="+1"/>
<source>The Anoncoin developers</source>
<translation>Разработчики Anoncoin</translation>
</message>
<message>
<location line="+0"/>
<location line="+1"/>
<source>The i2pd developers</source>
<translation>Разработчики I2Pd</translation>
</message>
<message>
<location line="+0"/>
<location line="+1"/>
<source>The Gostcoin developers</source>
<translation>Разработчики Gostcoin</translation>
</message>
</context>
<!-- Address Book -->
<context>
<name>AddressBookPage</name>
<message>
@ -198,8 +200,6 @@ @@ -198,8 +200,6 @@
<translation>[нет метки]</translation>
</message>
</context>
<!-- Passphrase dialog -->
<context>
<name>AskPassphraseDialog</name>
<message>
@ -279,11 +279,12 @@ @@ -279,11 +279,12 @@
</message>
<message>
<location line="+9"/>
<location line="+58"/>
<source>Wallet encrypted</source>
<translation>Бумажник зашифрован</translation>
</message>
<message>
<location line="+2"/>
<location line="-56"/>
<source>Gostcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your gostcoins from being stolen by malware infecting your computer.</source>
<translation>Сейчас программа закроется для завершения процесса шифрования. Помните, что шифрование вашего бумажника не может полностью защитить ваши ГОСТкойны от кражи инфицированием вашего компьютера вредоносным ПО.</translation>
</message>
@ -293,7 +294,7 @@ @@ -293,7 +294,7 @@
<translation>ВАЖНО: все предыдущие резервные копии вашего кошелька должны быть заменены новым зашифрованным файлом. В целях безопасности предыдущие резервные копии нешифрованного кошелька станут бесполезны, как только вы начнёте использовать новый шифрованный кошелёк.</translation>
</message>
<message>
<location line="+6"/>
<location line="+9"/>
<location line="+7"/>
<location line="+42"/>
<location line="+6"/>
@ -340,12 +341,10 @@ @@ -340,12 +341,10 @@
<translation>Внимание: Caps Lock включен!</translation>
</message>
</context>
<!-- GUI -->
<context>
<name>BitcoinGUI</name>
<message>
<location filename="../bitcoingui.cpp" line="+77"/>
<location filename="../bitcoingui.cpp" line="+79"/>
<location line="+602"/>
<source>Gostcoin</source>
<translation>ГОСТкойн</translation>
@ -426,7 +425,7 @@ @@ -426,7 +425,7 @@
<translation>Показать информацию о ГОСТкойн&apos;е</translation>
</message>
<message>
<location line="+3"/>
<location line="+2"/>
<source>About &amp;Qt</source>
<translation>О &amp;Qt</translation>
</message>
@ -552,17 +551,17 @@ @@ -552,17 +551,17 @@
<translation>[тестовая сеть]</translation>
</message>
<message>
<location line="+22"/>
<location line="+17"/>
<source>Wallet is using I2P-network only</source>
<translation>Кошелек работает только в I2P</translation>
</message>
<message>
<location line="+5"/>
<location line="+7"/>
<source>Wallet is using mixed or non-I2P (clear) network</source>
<translation>Кошелек работает смешанном режиме, или без I2P</translation>
</message>
<message>
<location line="+6"/>
<location line="+8"/>
<source>Wallet is running with a random generated I2P-address</source>
<translation>Кошелек работает со случайно сгенерированным I2P адресом</translation>
</message>
@ -579,12 +578,20 @@ @@ -579,12 +578,20 @@
<message numerus="yes">
<location line="+141"/>
<source>%n active connection(s) to Gostcoin network</source>
<translation><numerusform>%n активное соединение с сетью</numerusform><numerusform>%n активных соединения с сетью</numerusform><numerusform>%n активных соединений с сетью</numerusform></translation>
<translation>
<numerusform>%n активное соединение с сетью</numerusform>
<numerusform>%n активных соединения с сетью</numerusform>
<numerusform>%n активных соединений с сетью</numerusform>
</translation>
</message>
<message numerus="yes">
<location line="+15"/>
<source>%n active connection(s) to I2P-Gostcoin network</source>
<translation><numerusform>%n активное соединение с I2P сетью</numerusform><numerusform>%n активных соединения с I2P сетью</numerusform><numerusform>%n активных соединений с I2P сетью</numerusform></translation>
<translation>
<numerusform>%n активное соединение с I2P сетью</numerusform>
<numerusform>%n активных соединения с I2P сетью</numerusform>
<numerusform>%n активных соединений с I2P сетью</numerusform>
</translation>
</message>
<message>
<location line="+12"/>
@ -624,17 +631,29 @@ @@ -624,17 +631,29 @@
<message numerus="yes">
<location line="+14"/>
<source>%n hour(s)</source>
<translation><numerusform>%n час</numerusform><numerusform>%n часа</numerusform><numerusform>%n часов</numerusform></translation>
<translation>
<numerusform>%n час</numerusform>
<numerusform>%n часа</numerusform>
<numerusform>%n часов</numerusform>
</translation>
</message>
<message numerus="yes">
<location line="+4"/>
<source>%n day(s)</source>
<translation><numerusform>%n день</numerusform><numerusform>%n дня</numerusform><numerusform>%n дней</numerusform></translation>
<translation>
<numerusform>%n день</numerusform>
<numerusform>%n дня</numerusform>
<numerusform>%n дней</numerusform>
</translation>
</message>
<message numerus="yes">
<location line="+4"/>
<source>%n week(s)</source>
<translation><numerusform>%n неделя</numerusform><numerusform>%n недели</numerusform><numerusform>%n недель</numerusform></translation>
<translation>
<numerusform>%n неделя</numerusform>
<numerusform>%n недели</numerusform>
<numerusform>%n недель</numerusform>
</translation>
</message>
<message>
<location line="+4"/>
@ -727,7 +746,7 @@ Address: %4 @@ -727,7 +746,7 @@ Address: %4
<translation>Бумажник &lt;b&gt;зашифрован&lt;/b&gt; и в настоящее время &lt;b&gt;заблокирован&lt;/b&gt;</translation>
</message>
<message>
<location filename="../bitcoin.cpp" line="+164"/>
<location filename="../gostcoin.cpp" line="+166"/>
<source>A fatal error occurred. Gostcoin can no longer continue safely and will quit.</source>
<translation>Произошла неисправимая ошибка. ГОСТкойн не может безопасно продолжать работу и будет закрыт.</translation>
</message>
@ -741,25 +760,71 @@ Address: %4 @@ -741,25 +760,71 @@ Address: %4
<source>Failed to load the stylesheet provided.</source>
<translation>Не удалось загрузить указанный файл стиля.</translation>
</message>
<message>
<location filename="../setupdarknet.cpp" line="+15"/>
<source>Do you run I2P on your computer?
If so, press yes to let Gostcoin configure it&apos;s connection to the I2P</source>
<translation>Используете ли вы I2P на своем компьютере?
Если это так, то нажмите &quot;Да&quot; чтобы ГОСТкойн сконфигурировал подключение через I2P</translation>
</message>
<message>
<location line="+4"/>
<source>Gostcoin Wizard - Step #1</source>
<translation>Конфигурирование ГОСТкойн - шаг #1</translation>
</message>
<message>
<location line="+5"/>
<source>Do you want to install I2P, and continue I2P setup?
If you select yes Gostcoin will quit, so you can continue the wizard after installing I2P.
If you select no, Gostcoin will write a default clearnet (regular internet) config file for you. (unsafe mode)
</source>
<translation>Вы хотите установить I2P и продолжить конфигурирование I2P?
Если вы выберете &quot;Да&quot;, ГОСТкойн будет закрыт, и вы сможете продолжить настройку после установки I2P.
Если вы выберете &quot;Нет&quot;, ГОСТкойн запишет стандатную конфигурацию работающую через интернет. (не безопасно)
</translation>
</message>
<message>
<location line="+6"/>
<source>Gostcoin Wizard - Step #2</source>
<translation>Конфигурирование ГОСТкойн - шаг #2</translation>
</message>
<message>
<location line="+17"/>
<source>Shared</source>
<translation>Смешанный</translation>
</message>
<message>
<location line="+1"/>
<source>I2P only</source>
<translation>Только I2P</translation>
</message>
<message>
<location line="+1"/>
<source>Ok, last question!
Do you want to run shared (which means you work as a bridge between the I2P and internet) or only I2P?</source>
<translation>Хорошо, последний вопрос!
Хотите ли вы запустить кошелек в смешанном (значит что вы будете работать в режиме моста между I2P и интернетом) или только-I2P режиме?</translation>
</message>
<message>
<location line="+9"/>
<source>Thanks! That was all. Enjoy your wallet :)</source>
<translation>Спасибо, это всё. Наслаждайтесь вашим кошельком :)</translation>
</message>
</context>
<!-- Client Model -->
<context>
<name>ClientModel</name>
<message>
<location filename="../clientmodel.cpp" line="+104"/>
<location filename="../clientmodel.cpp" line="+114"/>
<source>Network Alert</source>
<translation>Сетевое оповещение</translation>
</message>
</context>
<!-- Coin control dialog -->
<context>
<name>CoinControlDialog</name>
<message>
<location filename="../forms/coincontroldialog.ui" line="+14"/>
<source>Coin Control Address Selection</source>
<translation>Выбор адреса контроля монет</translation>
<source>Coin Control</source>
<translation>Контроль монет</translation>
</message>
<message>
<location line="+31"/>
@ -922,13 +987,61 @@ Address: %4 @@ -922,13 +987,61 @@ Address: %4
<source>highest</source>
<translation>самый высокий</translation>
</message>
<message>
<location line="+199"/>
<source>DUST</source>
<translation>ПЫЛЬ</translation>
</message>
<message>
<location line="+10"/>
<source>This label turns red, if the transaction size is bigger than 10000 bytes.
This means a fee of at least %1 per kb is required.
Can vary +/- 1 Byte per input.</source>
<translation>Эта пометка становится красной, если размер транзакции больше 10000 байт.
Это значит, что требуется комиссия как минимум %1 на КБ.
Может отличаться на +/- 1 байт на вход.</translation>
</message>
<message>
<location line="+1"/>
<source>higher</source>
<translation>выше</translation>
<source>Transactions with higher priority get more likely into a block.
This label turns red, if the priority is smaller than &quot;medium&quot;.
This means a fee of at least %1 per kb is required.</source>
<translation>Транзакции с более высоким приоритетом будут вероятнее других включены в блок.
Эта пометка становится красной, если приоритет ниже, чем &quot;средний&quot;.
Это значит, что требуется комиссия как минимум %1 на КБ.</translation>
</message>
<message>
<location line="+1"/>
<source>This label turns red, if any recipient receives an amount smaller than %1.
This means a fee of at least %2 is required.
Amounts below 0.546 times the minimum relay fee are shown as DUST.</source>
<translation>Эта пометка становится красной, если какой-либо из адресатов получает сумму менее %1.
Это значит, что требуется комиссия как минимум %2.
Суммы ниже, чем 0.546 минимальных комиссий ретрансляции, показаны как пыль.</translation>
</message>
<message>
<location line="+1"/>
<source>This label turns red, if the change is smaller than %1.
This means a fee of at least %2 is required.</source>
<translation>Эта пометка становится красной, если сдача меньше %1.
Это значит, что требуется комиссия как минимум %2.</translation>
</message>
<message>
<location line="-211"/>
<source>high</source>
<translation>высокий</translation>
</message>
@ -955,7 +1068,7 @@ Address: %4 @@ -955,7 +1068,7 @@ Address: %4
<message>
<location line="+1"/>
<source>lower</source>
<translation>ниже</translation>
<translation>наинизший</translation>
</message>
<message>
<location line="+1"/>
@ -963,47 +1076,24 @@ Address: %4 @@ -963,47 +1076,24 @@ Address: %4
<translation>самый низкий</translation>
</message>
<message>
<location line="+11"/>
<location filename="../forms/coincontroldialog.ui" line="-73"/>
<location filename="../coincontroldialog.cpp" line="+11"/>
<source>(%1 locked)</source>
<translation>(%1 заблокировано)</translation>
</message>
<message>
<location line="+178"/>
<source>Dust</source>
<translation>Пыль</translation>
</message>
<message>
<location line="+0"/>
<location filename="../coincontroldialog.cpp" line="+178"/>
<source>yes</source>
<translation>да</translation>
</message>
<message>
<location line="+0"/>
<location filename="../forms/coincontroldialog.ui" line="-169"/>
<location filename="../coincontroldialog.cpp" line="+0"/>
<source>no</source>
<translation>нет</translation>
</message>
<message>
<location line="+10"/>
<source>This label turns red, if the transaction size is bigger than 10000 bytes.\n\nThis means a fee of at least %1 per kb is required.\n\nCan vary +/- 1 Byte per input.</source>
<translation>Эта пометка становится красной, если размер транзакции больше 1000 байт.\n\nЭто значит, что требуется комиссия как минимум %1 на КБ.Может отличаться на +/- 1 байт на вход.</translation>
</message>
<message>
<location line="+2"/>
<source>Transactions with higher priority get more likely into a block.\n\nThis label turns red, if the priority is smaller than \"medium\".\n\nThis means a fee of at least %1 per kb is required.</source>
<translation>Транзакции с более высоким приоритетом будут вероятнее других включены в блок.\n\nЭта пометка становится красной, если приоритет ниже, чем &quot;средний&quot;.\n\nЭто значит, что требуется комиссия как минимум %1 на КБ.</translation>
</message>
<message>
<location line="+3"/>
<source>This label turns red, if any recipient receives an amount smaller than %1.\n\nThis means a fee of at least %2 is required. \n\nAmounts below 0.546 times the minimum relay fee are shown as DUST.</source>
<translation>Эта пометка становится красной, если какой-либо из адресатов получает сумму менее %1.\n\nЭто значит, что требуется комиссия как минимум %2.\n\nСуммы ниже, чем 0.546 минимальных комиссий ретрансляции, показаны как пыль.</translation>
</message>
<message>
<location line="+2"/>
<source>This label turns red, if the change is smaller than %1.\n\nThis means a fee of at least %2 is required.</source>
<translation>Эта пометка становится красной, если сдача меньше %1.\n\nЭто значит, что требуется комиссия как минимум %2.</translation>
</message>
<message>
<location line="+37"/>
<location filename="../coincontroldialog.cpp" line="+50"/>
<location line="+66"/>
<source>(no label)</source>
<translation>[нет метки]</translation>
@ -1019,8 +1109,6 @@ Address: %4 @@ -1019,8 +1109,6 @@ Address: %4
<translation>(размен)</translation>
</message>
</context>
<!-- Address editing dialog -->
<context>
<name>EditAddressDialog</name>
<message>
@ -1089,8 +1177,6 @@ Address: %4 @@ -1089,8 +1177,6 @@ Address: %4
<translation>Генерация нового ключа не удалась.</translation>
</message>
</context>
<!-- Help Message box -->
<context>
<name>GUIUtil::HelpMessageBox</name>
<message>
@ -1135,8 +1221,6 @@ Address: %4 @@ -1135,8 +1221,6 @@ Address: %4
<translation>Показывать сплэш при запуске (по умолчанию: 1)</translation>
</message>
</context>
<!-- Options dialog -->
<context>
<name>OptionsDialog</name>
<message>
@ -1145,7 +1229,7 @@ Address: %4 @@ -1145,7 +1229,7 @@ Address: %4
<translation>Настройки</translation>
</message>
<message>
<location line="+16"/>
<location line="+19"/>
<source>&amp;Main</source>
<translation>&amp;Главная</translation>
</message>
@ -1275,7 +1359,7 @@ Address: %4 @@ -1275,7 +1359,7 @@ Address: %4
<translation>Здесь можно выбрать язык интерфейса. Настройки вступят в силу после перезапуска ГОСТкойн.</translation>
</message>
<message>
<location line="+11"/>
<location line="+14"/>
<source>&amp;Unit to show amounts in:</source>
<translation>&amp;Отображать суммы в единицах: </translation>
</message>
@ -1450,59 +1534,6 @@ Address: %4 @@ -1450,59 +1534,6 @@ Address: %4
<translation>Адрес прокси неверен.</translation>
</message>
</context>
<!-- Show I2P address window -->
<context>
<name>ShowI2PAddresses</name>
<message>
<location filename="../forms/showi2paddresses.ui" line="+40"/>
<source>Dialog</source>
<translation>Диалог</translation>
</message>
<message>
<location line="+6"/>
<source>If you want to use a permanent I2P-address you have to set a &apos;mydestination&apos; option in the configuration file:</source>
<translation>Если вы хотите использовать постоянный I2P адрес, добавьте параметр &apos;mydestination&apos; в конфигурационный файл:</translation>
</message>
<message>
<location line="+10"/>
<source>Ready to save parameter (If you want to use this address save this text in the configuration file and keep it secret):</source>
<translation>Сохраните этот параметр (если вы хотите использовать данный адрес, сохраните этот текст в конфигурационный файл и держите его в сектрете):</translation>
</message>
<message>
<location line="+23"/>
<source>Address (you can publish it):</source>
<translation>Адрес (вы можете публиковать его):</translation>
</message>
<message>
<location line="+20"/>
<source>Short base32-address:</source>
<translation>Короткий base32 адрес:</translation>
</message>
<message>
<location line="+22"/>
<source>Copy &quot;mydestination&quot; parameter
to the clipboard</source>
<translation>Скопировать параметр &quot;mydestination&quot;
в буфер обмена</translation>
</message>
<message>
<location line="+8"/>
<source>Copy public address
to the clipboard</source>
<translation>Скопировать публичный адрес
в буфер обмена</translation>
</message>
<message>
<location line="+8"/>
<source>Copy b32-address
to the clipboard</source>
<translation>Скопировать b32 адрес
в буфер обмена</translation>
</message>
</context>
<!-- Overview page -->
<context>
<name>OverviewPage</name>
<message>
@ -1537,7 +1568,7 @@ to the clipboard</source> @@ -1537,7 +1568,7 @@ to the clipboard</source>
<translation>Не подтверждено:</translation>
</message>
<message>
<location line="+17"/>
<location line="+16"/>
<source>Total of transactions that have yet to be confirmed, and do not yet count toward the current balance</source>
<translation>Общая сумма всех транзакций, которые до сих пор не подтверждены, и до сих пор не учитываются в текущем балансе</translation>
</message>
@ -1563,18 +1594,14 @@ to the clipboard</source> @@ -1563,18 +1594,14 @@ to the clipboard</source>
<translation>не синхронизировано</translation>
</message>
</context>
<!-- Payment server -->
<context>
<name>PaymentServer</name>
<message>
<location filename="../paymentserver.cpp" line="+109"/>
<location filename="../paymentserver.cpp" line="+110"/>
<source>Cannot start gostcoin: click-to-pay handler</source>
<translation>Не удаётся запустить gostcoin: обработчик click-to-pay</translation>
</message>
</context>
<!-- QR Code dialog -->
<context>
<name>QRCodeDialog</name>
<message>
@ -1633,8 +1660,6 @@ to the clipboard</source> @@ -1633,8 +1660,6 @@ to the clipboard</source>
<translation>PNG Изображения (*.png)</translation>
</message>
</context>
<!-- RPC console -->
<context>
<name>RPCConsole</name>
<message>
@ -1660,7 +1685,7 @@ to the clipboard</source> @@ -1660,7 +1685,7 @@ to the clipboard</source>
<message>
<location line="+10"/>
<location line="+23"/>
<location line="+26"/>
<location line="+23"/>
<location line="+23"/>
<location line="+23"/>
<location line="+36"/>
@ -1672,7 +1697,7 @@ to the clipboard</source> @@ -1672,7 +1697,7 @@ to the clipboard</source>
<translation>Н/Д</translation>
</message>
<message>
<location line="+13"/>
<location line="-214"/>
<source>Client version</source>
<translation>Версия клиента</translation>
</message>
@ -1686,7 +1711,7 @@ to the clipboard</source> @@ -1686,7 +1711,7 @@ to the clipboard</source>
<source>Build date</source>
<translation>Дата сборки</translation>
</message>
<message>
<message>
<location line="+23"/>
<source>Startup time</source>
<translation>Время запуска</translation>
@ -1726,17 +1751,17 @@ to the clipboard</source> @@ -1726,17 +1751,17 @@ to the clipboard</source>
<source>Last block time</source>
<translation>Время последнего блока</translation>
</message>
<message>
<message>
<location line="+42"/>
<source>Debug log file</source>
<translation>Отладочный лог-файл</translation>
</message>
<message>
<message>
<location line="+7"/>
<source>Open the Gostcoin debug log file from the current data directory. This can take a few seconds for large log files.</source>
<translation>Открыть отладочный лог-файл ГОСТкойн из текущего каталога данных. Это может занять несколько секунд для больших лог-файлов.</translation>
</message>
<message>
<message>
<location line="+3"/>
<source>&amp;Open</source>
<translation>&amp;Открыть</translation>
@ -1782,8 +1807,6 @@ to the clipboard</source> @@ -1782,8 +1807,6 @@ to the clipboard</source>
<translation>Напишите &lt;b&gt;help&lt;/b&gt; для просмотра доступных команд.</translation>
</message>
</context>
<!-- Send coins dialog -->
<context>
<name>SendCoinsDialog</name>
<message>
@ -1798,7 +1821,6 @@ to the clipboard</source> @@ -1798,7 +1821,6 @@ to the clipboard</source>
<source>Send Coins</source>
<translation>Отправка</translation>
</message>
<message>
<location line="+76"/>
<source>Coin Control Features</source>
@ -1840,7 +1862,12 @@ to the clipboard</source> @@ -1840,7 +1862,12 @@ to the clipboard</source>
<translation>Приоритет:</translation>
</message>
<message>
<location line="+51"/>
<location line="+19"/>
<source>medium</source>
<translation>средний</translation>
</message>
<message>
<location line="+32"/>
<source>Fee:</source>
<translation>Комиссия:</translation>
</message>
@ -1850,7 +1877,12 @@ to the clipboard</source> @@ -1850,7 +1877,12 @@ to the clipboard</source>
<translation>Малый выход:</translation>
</message>
<message>
<location line="+51"/>
<location line="+19"/>
<source>no</source>
<translation>нет</translation>
</message>
<message>
<location line="+32"/>
<source>After Fee:</source>
<translation>После комиссии:</translation>
</message>
@ -1905,12 +1937,12 @@ to the clipboard</source> @@ -1905,12 +1937,12 @@ to the clipboard</source>
<translation>&amp;Отправить</translation>
</message>
<message>
<location filename="../sendcoinsdialog.cpp" line="-170"/>
<location filename="../sendcoinsdialog.cpp" line="-175"/>
<source>Enter a Gostcoin address (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</source>
<translation>Введите адрес Gostcoin (напр. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</translation>
</message>
<message>
<location line="+14"/>
<location line="+15"/>
<source>Copy quantity</source>
<translation>Копировать количество</translation>
</message>
@ -1950,12 +1982,13 @@ to the clipboard</source> @@ -1950,12 +1982,13 @@ to the clipboard</source>
<translation>Копировать размен</translation>
</message>
<message>
<location line="+86"/>
<location line="+87"/>
<location line="+2"/>
<source>&lt;b&gt;%1&lt;/b&gt; to %2 (%3)</source>
<translation>&lt;b&gt;%1&lt;/b&gt; адресату %2 (%3)</translation>
</message>
<message>
<location line="+5"/>
<location line="+6"/>
<source>Confirm send coins</source>
<translation>Подтвердите отправку монет</translation>
</message>
@ -2020,8 +2053,6 @@ to the clipboard</source> @@ -2020,8 +2053,6 @@ to the clipboard</source>
<translation>Внимание: неизвестный адрес для сдачи</translation>
</message>
</context>
<!-- -->
<context>
<name>SendCoinsEntry</name>
<message>
@ -2076,8 +2107,55 @@ to the clipboard</source> @@ -2076,8 +2107,55 @@ to the clipboard</source>
<translation>Введите ГОСТкойн-адрес (например GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</translation>
</message>
</context>
<!-- -->
<context>
<name>ShowI2PAddresses</name>
<message>
<location filename="../forms/showi2paddresses.ui" line="+20"/>
<source>Dialog</source>
<translation>Диалог</translation>
</message>
<message>
<location line="+6"/>
<source>If you want to use a permanent I2P-address you have to set a &apos;mydestination&apos; option in the configuration file:</source>
<translation>Если вы хотите использовать постоянный I2P адрес, добавьте параметр &apos;mydestination&apos; в конфигурационный файл:</translation>
</message>
<message>
<location line="+10"/>
<source>Ready to save parameter (If you want to use this address save this text in the configuration file and keep it secret):</source>
<translation>Сохраните этот параметр (если вы хотите использовать данный адрес, сохраните этот текст в конфигурационный файл и держите его в сектрете):</translation>
</message>
<message>
<location line="+23"/>
<source>Address (you can publish it):</source>
<translation>Адрес (вы можете публиковать его):</translation>
</message>
<message>
<location line="+20"/>
<source>Short base32-address:</source>
<translation>Короткий base32 адрес:</translation>
</message>
<message>
<location line="+22"/>
<source>Copy &quot;mydestination&quot; parameter
to the clipboard</source>
<translation>Скопировать параметр &quot;mydestination&quot;
в буфер обмена</translation>
</message>
<message>
<location line="+8"/>
<source>Copy public address
to the clipboard</source>
<translation>Скопировать публичный адрес
в буфер обмена</translation>
</message>
<message>
<location line="+8"/>
<source>Copy b32-address
to the clipboard</source>
<translation>Скопировать b32 адрес
в буфер обмена</translation>
</message>
</context>
<context>
<name>SignVerifyMessageDialog</name>
<message>
@ -2098,7 +2176,7 @@ to the clipboard</source> @@ -2098,7 +2176,7 @@ to the clipboard</source>
<message>
<location line="+18"/>
<source>The address to sign the message with (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</source>
<translation>Адрес, которым вы хотите подписать сообщение (напр. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</translation>
<translation>Адрес, которым вы хотите подписать сообщение (напр. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)</translation>
</message>
<message>
<location line="+10"/>
@ -2107,7 +2185,7 @@ to the clipboard</source> @@ -2107,7 +2185,7 @@ to the clipboard</source>
<translation>Выберите адрес из адресной книги</translation>
</message>
<message>
<location line="-194"/>
<location line="-193"/>
<source>Paste address from clipboard</source>
<translation>Вставить адрес из буфера обмена</translation>
</message>
@ -2260,12 +2338,10 @@ to the clipboard</source> @@ -2260,12 +2338,10 @@ to the clipboard</source>
<translation>Сообщение проверено.</translation>
</message>
</context>
<!-- -->
<context>
<name>SplashScreen</name>
<message>
<location filename="../splashscreen.cpp" line="+25"/>
<location filename="../splashscreen.cpp" line="+26"/>
<source>Version %1</source>
<translation>Версия %1 </translation>
</message>
@ -2295,14 +2371,16 @@ to the clipboard</source> @@ -2295,14 +2371,16 @@ to the clipboard</source>
<translation>Разработчики Gostcoin</translation>
</message>
</context>
<!-- -->
<context>
<name>TransactionDesc</name>
<message numerus="yes">
<location filename="../transactiondesc.cpp" line="+18"/>
<source>Open for %n more block(s)</source>
<translation><numerusform>Открыто для ещё %n блока</numerusform><numerusform>Открыто для ещё %n блоков</numerusform><numerusform>Открыто для ещё %n блоков</numerusform></translation>
<translation>
<numerusform>Открыто для ещё %n блока</numerusform>
<numerusform>Открыто для ещё %n блоков</numerusform>
<numerusform>Открыто для ещё %n блоков</numerusform>
</translation>
</message>
<message>
<location line="+2"/>
@ -2337,7 +2415,11 @@ to the clipboard</source> @@ -2337,7 +2415,11 @@ to the clipboard</source>
<message numerus="yes">
<location line="+2"/>
<source>, broadcast through %n node(s)</source>
<translation><numerusform>, разослано через %n узел</numerusform><numerusform>, разослано через %n узла</numerusform><numerusform>, разослано через %n узлов</numerusform></translation>
<translation>
<numerusform>, разослано через %n узел</numerusform>
<numerusform>, разослано через %n узла</numerusform>
<numerusform>, разослано через %n узлов</numerusform>
</translation>
</message>
<message>
<location line="+4"/>
@ -2395,7 +2477,11 @@ to the clipboard</source> @@ -2395,7 +2477,11 @@ to the clipboard</source>
<message numerus="yes">
<location line="-102"/>
<source>matures in %n more block(s)</source>
<translation><numerusform>будет доступно через %n блок</numerusform><numerusform>будет доступно через %n блока</numerusform><numerusform>будет доступно через %n блоков</numerusform></translation>
<translation>
<numerusform>будет доступно через %n блок</numerusform>
<numerusform>будет доступно через %n блока</numerusform>
<numerusform>будет доступно через %n блоков</numerusform>
</translation>
</message>
<message>
<location line="+2"/>
@ -2471,8 +2557,6 @@ to the clipboard</source> @@ -2471,8 +2557,6 @@ to the clipboard</source>
<translation>ложь</translation>
</message>
</context>
<!-- -->
<context>
<name>TransactionDescDialog</name>
<message>
@ -2486,8 +2570,6 @@ to the clipboard</source> @@ -2486,8 +2570,6 @@ to the clipboard</source>
<translation>Данный диалог показывает детализированную статистику по выбранной транзакции</translation>
</message>
</context>
<!-- -->
<context>
<name>TransactionTableModel</name>
<message>
@ -2513,7 +2595,11 @@ to the clipboard</source> @@ -2513,7 +2595,11 @@ to the clipboard</source>
<message numerus="yes">
<location line="+57"/>
<source>Open for %n more block(s)</source>
<translation><numerusform>Открыто для ещё %n блока</numerusform><numerusform>Открыто для ещё %n блоков</numerusform><numerusform>Открыто для ещё %n блоков</numerusform></translation>
<translation>
<numerusform>Открыто для ещё %n блока</numerusform>
<numerusform>Открыто для ещё %n блоков</numerusform>
<numerusform>Открыто для ещё %n блоков</numerusform>
</translation>
</message>
<message>
<location line="+3"/>
@ -2523,7 +2609,11 @@ to the clipboard</source> @@ -2523,7 +2609,11 @@ to the clipboard</source>
<message numerus="yes">
<location line="+3"/>
<source>Offline (%n confirmations)</source>
<translation><numerusform>Оффлайн (%n подтверждение)</numerusform><numerusform>Оффлайн (%n подтверждения)</numerusform><numerusform>Оффлайн (%n подтверждений)</numerusform></translation>
<translation>
<numerusform>Оффлайн (%n подтверждение)</numerusform>
<numerusform>Оффлайн (%n подтверждения)</numerusform>
<numerusform>Оффлайн (%n подтверждений)</numerusform>
</translation>
</message>
<message>
<location line="+3"/>
@ -2533,12 +2623,20 @@ to the clipboard</source> @@ -2533,12 +2623,20 @@ to the clipboard</source>
<message numerus="yes">
<location line="+3"/>
<source>Confirmed (%n confirmations)</source>
<translation><numerusform>Подтверждено (%n подтверждение)</numerusform><numerusform>Подтверждено (%n подтверждения)</numerusform><numerusform>Подтверждено (%n подтверждений)</numerusform></translation>
<translation>
<numerusform>Подтверждено (%n подтверждение)</numerusform>
<numerusform>Подтверждено (%n подтверждения)</numerusform>
<numerusform>Подтверждено (%n подтверждений)</numerusform>
</translation>
</message>
<message numerus="yes">
<location line="+8"/>
<source>Mined balance will be available when it matures in %n more block(s)</source>
<translation><numerusform>Добытыми монетами можно будет воспользоваться через %n блок</numerusform><numerusform>Добытыми монетами можно будет воспользоваться через %n блока</numerusform><numerusform>Добытыми монетами можно будет воспользоваться через %n блоков</numerusform></translation>
<translation>
<numerusform>Добытыми монетами можно будет воспользоваться через %n блок</numerusform>
<numerusform>Добытыми монетами можно будет воспользоваться через %n блока</numerusform>
<numerusform>Добытыми монетами можно будет воспользоваться через %n блоков</numerusform>
</translation>
</message>
<message>
<location line="+5"/>
@ -2606,8 +2704,6 @@ to the clipboard</source> @@ -2606,8 +2704,6 @@ to the clipboard</source>
<translation>Сумма, добавленная, или снятая с баланса.</translation>
</message>
</context>
<!-- -->
<context>
<name>TransactionView</name>
<message>
@ -2712,7 +2808,7 @@ to the clipboard</source> @@ -2712,7 +2808,7 @@ to the clipboard</source>
<translation>Показать подробности транзакции</translation>
</message>
<message>
<location line="+139"/>
<location line="+143"/>
<source>Export Transaction Data</source>
<translation>Экспортировать данные транзакций</translation>
</message>
@ -2777,22 +2873,26 @@ to the clipboard</source> @@ -2777,22 +2873,26 @@ to the clipboard</source>
<translation>до</translation>
</message>
</context>
<!-- -->
<context>
<name>WalletFrame</name>
<message>
<location filename="../walletframe.cpp" line="+31"/>
<source>No wallet has been loaded.</source>
<translation>Кошелек не был загружен.</translation>
</message>
</context>
<context>
<name>WalletModel</name>
<message>
<location filename="../walletmodel.cpp" line="+193"/>
<location filename="../walletmodel.cpp" line="+206"/>
<source>Send Coins</source>
<translation>Отправка</translation>
</message>
</context>
<!-- -->
<context>
<name>WalletView</name>
<message>
<location filename="../walletview.cpp" line="+46"/>
<location filename="../walletview.cpp" line="+52"/>
<source>&amp;Export</source>
<translation>&amp;Экспорт</translation>
</message>
@ -2832,8 +2932,6 @@ to the clipboard</source> @@ -2832,8 +2932,6 @@ to the clipboard</source>
<translation>Данные бумажника успешно сохранены в новое место.</translation>
</message>
</context>
<!-- -->
<context>
<name>bitcoin-core</name>
<message>
@ -3083,7 +3181,7 @@ If the file does not exist, create it with owner-readable-only file permissions. @@ -3083,7 +3181,7 @@ If the file does not exist, create it with owner-readable-only file permissions.
<message>
<location line="+1"/>
<source>Enable I2P-only mode</source>
<translation>Включить режим работы "только в I2P"</translation>
<translation>Включить режим работы &quot;только в I2P&quot;</translation>
</message>
<message>
<location line="+1"/>
@ -3642,7 +3740,7 @@ If the file does not exist, create it with owner-readable-only file permissions. @@ -3642,7 +3740,7 @@ If the file does not exist, create it with owner-readable-only file permissions.
</message>
<message>
<location line="+1"/>
<source>You need to rebuild the databases using -reindex to change -txindex</source>
<source>You need to rebuild the database using -reindex to change -txindex</source>
<translation>Вам необходимо пересобрать базы данных с помощью -reindex, чтобы изменить -txindex</translation>
</message>
<message>

1
src/qt/paymentserver.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

2
src/qt/sendcoinsdialog.cpp

@ -32,7 +32,7 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) : @@ -32,7 +32,7 @@ SendCoinsDialog::SendCoinsDialog(QWidget *parent) :
#endif
#if QT_VERSION >= 0x040700
/* Do not move this to the XML file, Qt before 4.7 will choke on it */
ui->lineEditCoinControlChange->setPlaceholderText(tr("Enter a Gostcoin address (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG"));
ui->lineEditCoinControlChange->setPlaceholderText(tr("Enter a Gostcoin address (e.g. GbD2JSQHBHCKLa9WTHmigJRpyFgmBj4woG)"));
#endif
addEntry();

2
src/qt/setupdarknet.cpp

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
// Copyright 2013 The Anoncoin Developers
// Copyright 2017 The Gostcoin Developers
// Copyright 2017-2018 The Gostcoin Developers
#include <QApplication>
#include <QMessageBox>

14
src/qt/walletframe.cpp

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "walletframe.h"
#include "bitcoingui.h"
#include "walletstack.h"

14
src/qt/walletframe.h

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef WALLETFRAME_H
#define WALLETFRAME_H

14
src/qt/walletstack.cpp

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "walletstack.h"
#include "walletview.h"
#include "bitcoingui.h"

14
src/qt/walletstack.h

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef WALLETSTACK_H
#define WALLETSTACK_H

14
src/qt/walletview.cpp

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "walletview.h"
#include "bitcoingui.h"
#include "transactiontablemodel.h"

14
src/qt/walletview.h

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
/*
* Qt4 bitcoin GUI.
*
* W.J. van der Laan 2011-2012
* The Bitcoin Developers 2011-2013
*/
// Qt bitcoin GUI.
//
// Copyright (c) 2011-2012 W.J. van der Laan
// Copyright (c) 2011-2012 The Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef WALLETVIEW_H
#define WALLETVIEW_H

1
src/rpcdump.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/rpcmining.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/rpcnet.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2009-2012 Bitcoin Developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/rpcrawtransaction.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/rpcwallet.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/script.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <boost/foreach.hpp>

1
src/script.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef H_BITCOIN_SCRIPT

1
src/uint256.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_UINT256_H

36
src/util.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@ -143,13 +144,6 @@ public: @@ -143,13 +144,6 @@ public:
}
instance_of_cinit;
void RandAddSeed()
{
// Seed with CPU performance counter
@ -212,12 +206,6 @@ uint256 GetRandHash() @@ -212,12 +206,6 @@ uint256 GetRandHash()
return hash;
}
//
// OutputDebugStringF (aka printf -- there is a #define that we really
// should get rid of one day) has been broken a couple of times now
@ -398,7 +386,6 @@ void ParseString(const string& str, char c, vector<string>& v) @@ -398,7 +386,6 @@ void ParseString(const string& str, char c, vector<string>& v)
}
}
string FormatMoney(int64 n, bool fPlus)
{
// Note: not using straight sprintf here because we do NOT want
@ -422,7 +409,6 @@ string FormatMoney(int64 n, bool fPlus) @@ -422,7 +409,6 @@ string FormatMoney(int64 n, bool fPlus)
return str;
}
bool ParseMoney(const string& str, int64& nRet)
{
return ParseMoney(str.c_str(), nRet);
@ -468,7 +454,6 @@ bool ParseMoney(const char* pszIn, int64& nRet) @@ -468,7 +454,6 @@ bool ParseMoney(const char* pszIn, int64& nRet)
return true;
}
static const signed char phexdigit[256] =
{ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
@ -624,7 +609,6 @@ bool SoftSetBoolArg(const std::string& strArg, bool fValue) @@ -624,7 +609,6 @@ bool SoftSetBoolArg(const std::string& strArg, bool fValue)
return SoftSetArg(strArg, std::string("0"));
}
string EncodeBase64(const unsigned char* pch, size_t len)
{
static const char *pbase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@ -952,7 +936,6 @@ string DecodeBase32(const string& str) @@ -952,7 +936,6 @@ string DecodeBase32(const string& str)
return string((const char*)&vchRet[0], vchRet.size());
}
bool WildcardMatch(const char* psz, const char* mask)
{
loop
@ -982,7 +965,6 @@ bool WildcardMatch(const string& str, const string& mask) @@ -982,7 +965,6 @@ bool WildcardMatch(const string& str, const string& mask)
return WildcardMatch(str.c_str(), mask.c_str());
}
// Anoncoin
// Write config file
@ -1022,12 +1004,6 @@ bool writeFirstConfig(bool i2pOnlyEnabled, bool i2pEnabled) @@ -1022,12 +1004,6 @@ bool writeFirstConfig(bool i2pOnlyEnabled, bool i2pEnabled)
return writeConfig(GetConfigFile().string().c_str(), pt);
}
static std::string FormatException(std::exception* pex, const char* pszThread)
{
#ifdef WIN32
@ -1259,7 +1235,6 @@ bool TruncateFile(FILE *file, unsigned int length) { @@ -1259,7 +1235,6 @@ bool TruncateFile(FILE *file, unsigned int length) {
#endif
}
// this function tries to raise the file descriptor limit to the requested number.
// It returns the actual file descriptor limit (which may be more or less than nMinFD)
int RaiseFileDescriptorLimit(int nMinFD) {
@ -1347,16 +1322,9 @@ void ShrinkDebugFile() @@ -1347,16 +1322,9 @@ void ShrinkDebugFile()
}
}
else if(file != NULL)
fclose(file);
fclose(file);
}
//
// "Never go to sea with two chronometers; take one or three."
// Our three time sources are:

1
src/util.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_UTIL_H

1
src/version.cpp

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
// Copyright (c) 2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <string>

1
src/wallet.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/wallet.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_WALLET_H

1
src/walletdb.cpp

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

1
src/walletdb.h

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2012 The Bitcoin developers
// Copyright (c) 2017-2018 The Gostcoin Developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_WALLETDB_H

Loading…
Cancel
Save