Use CBitcoinAddress instead of string/uint160

Instead of conversion functions between pubkey/uint160/address in
base58.h, have a fully fledged class CBitcoinAddress (CAddress was
already taken) to represent addresses.
This commit is contained in:
Pieter Wuille
2011-07-05 20:53:43 +02:00
parent 03fbd79049
commit 2ffba736e9
10 changed files with 278 additions and 250 deletions

View File

@@ -1123,7 +1123,7 @@ bool IsMine(const CKeyStore &keystore, const CScript& scriptPubKey)
}
bool ExtractHash160(const CScript& scriptPubKey, const CKeyStore* keystore, uint160& hash160Ret)
bool ExtractAddress(const CScript& scriptPubKey, const CKeyStore* keystore, CBitcoinAddress& addressRet)
{
vector<pair<opcodetype, valtype> > vSolution;
if (!Solver(scriptPubKey, vSolution))
@@ -1135,18 +1135,11 @@ bool ExtractHash160(const CScript& scriptPubKey, const CKeyStore* keystore, uint
{
uint160 hash160;
if (item.first == OP_PUBKEY)
{
hash160 = Hash160(item.second);
}
addressRet.SetAddress(item.second);
else if (item.first == OP_PUBKEYHASH)
{
hash160 = uint160(item.second);
}
if (keystore == NULL || keystore->HaveKey(hash160))
{
hash160Ret = hash160;
addressRet.SetAddress(uint160(item.second));
if (keystore == NULL || keystore->HaveKey(addressRet))
return true;
}
}
}
return false;