mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 07:39:08 +01:00
Merge branch '0.4.x' into 0.5.x
This commit is contained in:
18
src/base58.h
18
src/base58.h
@@ -257,6 +257,14 @@ public:
|
||||
class CBitcoinAddress : public CBase58Data
|
||||
{
|
||||
public:
|
||||
enum
|
||||
{
|
||||
PUBKEY_ADDRESS = 0,
|
||||
SCRIPT_ADDRESS = 5,
|
||||
PUBKEY_ADDRESS_TEST = 111,
|
||||
SCRIPT_ADDRESS_TEST = 196,
|
||||
};
|
||||
|
||||
bool SetHash160(const uint160& hash160)
|
||||
{
|
||||
SetData(fTestNet ? 111 : 0, &hash160, 20);
|
||||
@@ -275,9 +283,11 @@ public:
|
||||
switch(nVersion)
|
||||
{
|
||||
case 0:
|
||||
case SCRIPT_ADDRESS:
|
||||
break;
|
||||
|
||||
case 111:
|
||||
case SCRIPT_ADDRESS_TEST:
|
||||
fExpectTestNet = true;
|
||||
break;
|
||||
|
||||
@@ -286,6 +296,14 @@ public:
|
||||
}
|
||||
return fExpectTestNet == fTestNet && vchData.size() == nExpectedSize;
|
||||
}
|
||||
bool IsScript() const
|
||||
{
|
||||
if (!IsValid())
|
||||
return false;
|
||||
if (fTestNet)
|
||||
return nVersion == SCRIPT_ADDRESS_TEST;
|
||||
return nVersion == SCRIPT_ADDRESS;
|
||||
}
|
||||
|
||||
CBitcoinAddress()
|
||||
{
|
||||
|
||||
@@ -654,7 +654,10 @@ public:
|
||||
void SetBitcoinAddress(const CBitcoinAddress& address)
|
||||
{
|
||||
this->clear();
|
||||
*this << OP_DUP << OP_HASH160 << address.GetHash160() << OP_EQUALVERIFY << OP_CHECKSIG;
|
||||
if (address.IsScript())
|
||||
*this << OP_HASH160 << address.GetHash160() << OP_EQUAL;
|
||||
else
|
||||
*this << OP_DUP << OP_HASH160 << address.GetHash160() << OP_EQUALVERIFY << OP_CHECKSIG;
|
||||
}
|
||||
|
||||
void SetBitcoinAddress(const std::vector<unsigned char>& vchPubKey)
|
||||
|
||||
Reference in New Issue
Block a user