mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-10 10:52:31 -05:00
Merge remote branch 'refs/remotes/svn/trunk' into svn
This commit is contained in:
commit
d12e53ea09
8 changed files with 57 additions and 18 deletions
20
main.cpp
20
main.cpp
|
@ -572,7 +572,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
|
||||||
return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet");
|
return error("AcceptToMemoryPool() : not accepting nLockTime beyond 2038 yet");
|
||||||
|
|
||||||
// Rather not work on nonstandard transactions
|
// Rather not work on nonstandard transactions
|
||||||
if (GetSigOpCount() > 2 || ::GetSerializeSize(*this, SER_NETWORK) < 100)
|
if (!IsStandard() || GetSigOpCount() > 2 || ::GetSerializeSize(*this, SER_NETWORK) < 100)
|
||||||
return error("AcceptToMemoryPool() : nonstandard transaction");
|
return error("AcceptToMemoryPool() : nonstandard transaction");
|
||||||
|
|
||||||
// Do we already have it?
|
// Do we already have it?
|
||||||
|
@ -2567,15 +2567,17 @@ bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
||||||
else if (strCommand == "checkorder")
|
else if (strCommand == "checkorder")
|
||||||
{
|
{
|
||||||
uint256 hashReply;
|
uint256 hashReply;
|
||||||
CWalletTx order;
|
vRecv >> hashReply;
|
||||||
vRecv >> hashReply >> order;
|
|
||||||
|
|
||||||
if (!mapArgs.count("-allowreceivebyip") || mapArgs["-allowreceivebyip"] == "0")
|
if (!GetBoolArg("-allowreceivebyip"))
|
||||||
{
|
{
|
||||||
pfrom->PushMessage("reply", hashReply, (int)2, string(""));
|
pfrom->PushMessage("reply", hashReply, (int)2, string(""));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CWalletTx order;
|
||||||
|
vRecv >> order;
|
||||||
|
|
||||||
/// we have a chance to check the order here
|
/// we have a chance to check the order here
|
||||||
|
|
||||||
// Keep giving the same key to the same ip until they use it
|
// Keep giving the same key to the same ip until they use it
|
||||||
|
@ -2592,16 +2594,18 @@ bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
||||||
else if (strCommand == "submitorder")
|
else if (strCommand == "submitorder")
|
||||||
{
|
{
|
||||||
uint256 hashReply;
|
uint256 hashReply;
|
||||||
CWalletTx wtxNew;
|
vRecv >> hashReply;
|
||||||
vRecv >> hashReply >> wtxNew;
|
|
||||||
wtxNew.fFromMe = false;
|
|
||||||
|
|
||||||
if (!mapArgs.count("-allowreceivebyip") || mapArgs["-allowreceivebyip"] == "0")
|
if (!GetBoolArg("-allowreceivebyip"))
|
||||||
{
|
{
|
||||||
pfrom->PushMessage("reply", hashReply, (int)2);
|
pfrom->PushMessage("reply", hashReply, (int)2);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CWalletTx wtxNew;
|
||||||
|
vRecv >> wtxNew;
|
||||||
|
wtxNew.fFromMe = false;
|
||||||
|
|
||||||
// Broadcast
|
// Broadcast
|
||||||
if (!wtxNew.AcceptWalletTransaction())
|
if (!wtxNew.AcceptWalletTransaction())
|
||||||
{
|
{
|
||||||
|
|
11
main.h
11
main.h
|
@ -499,6 +499,17 @@ public:
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsStandard() const
|
||||||
|
{
|
||||||
|
foreach(const CTxIn& txin, vin)
|
||||||
|
if (!txin.scriptSig.IsPushOnly())
|
||||||
|
return error("nonstandard txin: %s", txin.scriptSig.ToString().c_str());
|
||||||
|
foreach(const CTxOut& txout, vout)
|
||||||
|
if (!::IsStandard(txout.scriptPubKey))
|
||||||
|
return error("nonstandard txout: %s", txout.scriptPubKey.ToString().c_str());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool IsMine() const
|
bool IsMine() const
|
||||||
{
|
{
|
||||||
foreach(const CTxOut& txout, vout)
|
foreach(const CTxOut& txout, vout)
|
||||||
|
|
|
@ -997,7 +997,7 @@ bool Solver(const CScript& scriptPubKey, vector<pair<opcodetype, valtype> >& vSo
|
||||||
break;
|
break;
|
||||||
if (opcode2 == OP_PUBKEY)
|
if (opcode2 == OP_PUBKEY)
|
||||||
{
|
{
|
||||||
if (vch1.size() < 33)
|
if (vch1.size() < 33 || vch1.size() > 120)
|
||||||
break;
|
break;
|
||||||
vSolutionRet.push_back(make_pair(opcode2, vch1));
|
vSolutionRet.push_back(make_pair(opcode2, vch1));
|
||||||
}
|
}
|
||||||
|
@ -1076,6 +1076,13 @@ bool Solver(const CScript& scriptPubKey, uint256 hash, int nHashType, CScript& s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool IsStandard(const CScript& scriptPubKey)
|
||||||
|
{
|
||||||
|
vector<pair<opcodetype, valtype> > vSolution;
|
||||||
|
return Solver(scriptPubKey, vSolution);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool IsMine(const CScript& scriptPubKey)
|
bool IsMine(const CScript& scriptPubKey)
|
||||||
{
|
{
|
||||||
CScript scriptSig;
|
CScript scriptSig;
|
||||||
|
|
18
script.h
18
script.h
|
@ -597,6 +597,23 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool IsPushOnly() const
|
||||||
|
{
|
||||||
|
if (size() > 200)
|
||||||
|
return false;
|
||||||
|
const_iterator pc = begin();
|
||||||
|
while (pc < end())
|
||||||
|
{
|
||||||
|
opcodetype opcode;
|
||||||
|
if (!GetOp(pc, opcode))
|
||||||
|
return false;
|
||||||
|
if (opcode > OP_16)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
uint160 GetBitcoinAddressHash160() const
|
uint160 GetBitcoinAddressHash160() const
|
||||||
{
|
{
|
||||||
opcodetype opcode;
|
opcodetype opcode;
|
||||||
|
@ -684,6 +701,7 @@ public:
|
||||||
|
|
||||||
|
|
||||||
uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType);
|
uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType);
|
||||||
|
bool IsStandard(const CScript& scriptPubKey);
|
||||||
bool IsMine(const CScript& scriptPubKey);
|
bool IsMine(const CScript& scriptPubKey);
|
||||||
bool ExtractPubKey(const CScript& scriptPubKey, bool fMineOnly, vector<unsigned char>& vchPubKeyRet);
|
bool ExtractPubKey(const CScript& scriptPubKey, bool fMineOnly, vector<unsigned char>& vchPubKeyRet);
|
||||||
bool ExtractHash160(const CScript& scriptPubKey, uint160& hash160Ret);
|
bool ExtractHash160(const CScript& scriptPubKey, uint160& hash160Ret);
|
||||||
|
|
|
@ -25,7 +25,7 @@ class CDataStream;
|
||||||
class CAutoFile;
|
class CAutoFile;
|
||||||
static const unsigned int MAX_SIZE = 0x02000000;
|
static const unsigned int MAX_SIZE = 0x02000000;
|
||||||
|
|
||||||
static const int VERSION = 31704;
|
static const int VERSION = 31800;
|
||||||
static const char* pszSubVer = "";
|
static const char* pszSubVer = "";
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ RequestExecutionLevel highest
|
||||||
|
|
||||||
# General Symbol Definitions
|
# General Symbol Definitions
|
||||||
!define REGKEY "SOFTWARE\$(^Name)"
|
!define REGKEY "SOFTWARE\$(^Name)"
|
||||||
!define VERSION 0.3.17
|
!define VERSION 0.3.18
|
||||||
!define COMPANY "Bitcoin project"
|
!define COMPANY "Bitcoin project"
|
||||||
!define URL http://www.bitcoin.org/
|
!define URL http://www.bitcoin.org/
|
||||||
|
|
||||||
|
@ -42,12 +42,12 @@ Var StartMenuGroup
|
||||||
!insertmacro MUI_LANGUAGE English
|
!insertmacro MUI_LANGUAGE English
|
||||||
|
|
||||||
# Installer attributes
|
# Installer attributes
|
||||||
OutFile bitcoin-0.3.17-win32-setup.exe
|
OutFile bitcoin-0.3.18-win32-setup.exe
|
||||||
InstallDir $PROGRAMFILES\Bitcoin
|
InstallDir $PROGRAMFILES\Bitcoin
|
||||||
CRCCheck on
|
CRCCheck on
|
||||||
XPStyle on
|
XPStyle on
|
||||||
ShowInstDetails show
|
ShowInstDetails show
|
||||||
VIProductVersion 0.3.17.0
|
VIProductVersion 0.3.18.0
|
||||||
VIAddVersionKey ProductName Bitcoin
|
VIAddVersionKey ProductName Bitcoin
|
||||||
VIAddVersionKey ProductVersion "${VERSION}"
|
VIAddVersionKey ProductVersion "${VERSION}"
|
||||||
VIAddVersionKey CompanyName "${COMPANY}"
|
VIAddVersionKey CompanyName "${COMPANY}"
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright (c) 2010 Satoshi Nakamoto
|
// Copyright (c) 2010 Nils Schneider
|
||||||
// Distributed under the MIT/X11 software license, see the accompanying
|
// Distributed under the MIT/X11 software license, see the accompanying
|
||||||
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
// tcatm's 4-way 128-bit SSE2 SHA-256
|
// 4-way 128-bit SSE2 SHA-256
|
||||||
|
|
||||||
#ifdef FOURWAYSSE2
|
#ifdef FOURWAYSSE2
|
||||||
|
|
||||||
|
|
5
util.cpp
5
util.cpp
|
@ -175,7 +175,6 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
|
||||||
va_start(arg_ptr, pszFormat);
|
va_start(arg_ptr, pszFormat);
|
||||||
ret = vfprintf(fileout, pszFormat, arg_ptr);
|
ret = vfprintf(fileout, pszFormat, arg_ptr);
|
||||||
va_end(arg_ptr);
|
va_end(arg_ptr);
|
||||||
fflush(fileout);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,11 +405,11 @@ vector<unsigned char> ParseHex(const char* psz)
|
||||||
while (isspace(*psz))
|
while (isspace(*psz))
|
||||||
psz++;
|
psz++;
|
||||||
char c = phexdigit[(unsigned char)*psz++];
|
char c = phexdigit[(unsigned char)*psz++];
|
||||||
if (c == -1)
|
if (c == (char)-1)
|
||||||
break;
|
break;
|
||||||
unsigned char n = (c << 4);
|
unsigned char n = (c << 4);
|
||||||
c = phexdigit[(unsigned char)*psz++];
|
c = phexdigit[(unsigned char)*psz++];
|
||||||
if (c == -1)
|
if (c == (char)-1)
|
||||||
break;
|
break;
|
||||||
n |= c;
|
n |= c;
|
||||||
vch.push_back(n);
|
vch.push_back(n);
|
||||||
|
|
Loading…
Add table
Reference in a new issue