mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
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:
parent
03fbd79049
commit
2ffba736e9
10 changed files with 278 additions and 250 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue