diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2014-06-09 21:11:59 +0200 |
---|---|---|
committer | JaSK <temp@temp.temp> | 2014-07-02 15:48:39 +0200 |
commit | d5087d1ba08142bdf135333a0da08ef0f5fc7ef0 (patch) | |
tree | 42c945e1a21db1c7b9bfe9a91f8ee47f9eb7b49a /src/wallet.h | |
parent | 0fa2f8899adf8f9f0ead29ba5d708ead6c5d4eaf (diff) |
Use script matching rather than destination matching for watch-only.
This changes the keystore data format, wallet format and IsMine logic
to detect watch-only outputs based on direct script matching rather
than first trying to convert outputs to destinations (addresses).
The reason is that we don't know how the software that has the spending
keys works. It may support the same types of scripts as us, but that is
not guaranteed. Furthermore, it removes the ambiguity between addresses
used as identifiers for output scripts or identifiers for public keys.
One practical implication is that adding a normal pay-to-pubkey-hash
address via importaddress will not cause payments to the corresponding
full public key to be detected as IsMine. If that is wanted, add those
scripts directly (importaddress now also accepts any hex-encoded script).
Conflicts:
src/wallet.cpp
Diffstat (limited to 'src/wallet.h')
-rw-r--r-- | src/wallet.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/wallet.h b/src/wallet.h index 3453d23d97..b44b73568b 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -227,9 +227,9 @@ public: bool GetDestData(const CTxDestination &dest, const std::string &key, std::string *value) const; // Adds a watch-only address to the store, and saves it to disk. - bool AddWatchOnly(const CTxDestination &dest); + bool AddWatchOnly(const CScript &dest); // Adds a watch-only address to the store, without saving it to disk (used by LoadWallet) - bool LoadWatchOnly(const CTxDestination &dest); + bool LoadWatchOnly(const CScript &dest); bool Unlock(const SecureString& strWalletPassphrase); bool ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase, const SecureString& strNewWalletPassphrase); |