• Pieter Wuille's avatar
    Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress · 0c0b1b4e
    Pieter Wuille authored
    This introduces internal types:
    * CKeyID: reference (hash160) of a key
    * CScriptID: reference (hash160) of a script
    * CTxDestination: a boost::variant of the former two
    
    CBitcoinAddress is retrofitted to be a Base58 encoding of a
    CTxDestination. This allows all internal code to only use the
    internal types, and only have RPC and GUI depend on the base58 code.
    
    Furthermore, the header dependencies are a lot saner now. base58.h is
    at the top (right below rpc and gui) instead of at the bottom. For the
    rest: wallet -> script -> keystore -> key. Only keystore still requires
    a forward declaration of CScript. Solving that would require splitting
    script into two layers.
    0c0b1b4e
wallet.cpp 49.7 KB