neobytes/src
dexX7 506bae3ac9
Return all available information via validateaddress
`"validateaddress"` omits some information, even in cases where is it available.

The primary motivation is to be able to retrieve redeemScripts, after using `"addmultisigaddress"`, when not all keys are available in the keystore, but the redeemScript actually is.

The output of `"validateaddress"` with this commit:

Keys not available:
```js
validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
{
  "isvalid": true,
  "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
  "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
  "ismine": false,
  "iswatchonly": false,
  "isscript": false
}
```
```js
validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
{
  "isvalid": true,
  "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
  "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
  "ismine": false,
  "iswatchonly": false,
  "isscript": true
}
```

After adding the redeemScript:
```js
addmultisigaddress 2 '["02537357B156A33306A7A014A3748631C59DF405B56F11BA4AA4A3CE81501AF095","02F1FB200390E7864EF4450C07B15988179A57C3CF3A878F668E1070CB615749FE"]'
2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK

validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
{
  "isvalid": true,
  "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
  "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
  "ismine": false,
  "iswatchonly": false,
  "isscript": true,
  "script": "multisig",
  "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
  "addresses": [
    "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
    "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
  ],
  "sigsrequired": 2,
  "account": ""
}
```

All keys available:
```js
validateaddress "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3"
{
  "isvalid": true,
  "address": "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
  "scriptPubKey": "76a914fa20d564550b105787f7ce3a9ad7fd9a45cd407088ac",
  "ismine": true,
  "iswatchonly": false,
  "isscript": false,
  "pubkey": "02537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af095",
  "iscompressed": true,
  "account": ""
}
```
```js
validateaddress "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK"
{
  "isvalid": true,
  "address": "2N2g2H7gjA8a11g1yKBgh5VTqndyvbnWpBK",
  "scriptPubKey": "a9146769c19a16c9400b908756e19a4d2afb9e9760e187",
  "ismine": true,
  "iswatchonly": false,
  "isscript": true,
  "script": "multisig",
  "hex": "522102537357b156a33306a7a014a3748631c59df405b56f11ba4aa4a3ce81501af0952102f1fb200390e7864ef4450c07b15988179a57c3cf3a878f668e1070cb615749fe52ae",
  "addresses": [
    "n4KWZKx349gdMQGgTnZ8W6WfgSwybkGSK3",
    "mmSKNtbYYHRrhTLKiok5TuYrGEs4Y2A4k6"
  ],
  "sigsrequired": 2,
  "account": ""
}
```
2015-06-09 17:21:27 +02:00
..
compat build: Endian compatibility 2015-03-06 15:54:53 +01:00
config
consensus use const references where appropriate 2015-06-04 19:34:18 +02:00
crypto build: Endian compatibility 2015-03-06 15:54:53 +01:00
leveldb
obj
obj-test
policy Create new BlockPolicyEstimator for fee estimates 2015-05-13 10:36:24 -04:00
primitives Consensus: Create consensus/consensus.h with some constants 2015-04-20 21:27:51 +02:00
qt Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
script fix header include groups 2015-05-14 01:02:01 -04:00
secp256k1 Update libsecp256k1 2015-04-22 14:03:10 -07:00
support Remove assertion from ~LockedPageManager 2015-05-15 11:44:58 +02:00
test fix util_tests.cpp clang warnings 2015-06-06 10:12:12 +02:00
univalue use const references where appropriate 2015-06-04 19:34:18 +02:00
wallet Merge pull request #6152 2015-06-05 21:24:15 +02:00
.clang-format
addrman.cpp Merge pull request #6028 2015-04-24 16:11:23 +02:00
addrman.h Comment edits and cleanup 2015-05-14 01:02:01 -04:00
alert.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
alert.h use const references where appropriate 2015-06-04 19:34:18 +02:00
amount.cpp
amount.h Improve comment explaining purpose of MAX_MONEY constant 2015-05-27 21:02:04 -04:00
arith_uint256.cpp src/arith_256.cpp: bigendian compatibility 2015-03-06 17:21:59 +01:00
arith_uint256.h ensure consistent header comment naming conventions 2015-04-20 13:29:22 +02:00
base58.cpp openssl: abstract out OPENSSL_cleanse 2015-02-15 11:34:02 -05:00
base58.h Non-grammatical language improvements 2015-05-02 15:23:59 +00:00
bitcoin-cli-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoin-cli.cpp Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
bitcoin-tx-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoin-tx.cpp UniValue: prefer .size() to .count(), to harmonize w/ existing tree 2015-06-04 09:16:05 +02:00
bitcoind-res.rc Update Windows resource files (and add one for bitcoin-tx) 2015-05-22 02:56:55 +00:00
bitcoind.cpp Create a scheduler thread for lightweight tasks 2015-05-14 12:50:41 -04:00
bloom.cpp Rolling bloom filter class 2015-04-30 07:58:29 -07:00
bloom.h Merge pull request #6085 2015-05-04 08:01:58 +02:00
chain.cpp
chain.h Non-grammatical language improvements 2015-05-02 15:23:59 +00:00
chainparams.cpp Trivial: Corrected owner of DNS seeder 2015-05-14 01:02:00 -04:00
chainparams.h Chainparams: Refactor: Decouple main::GetBlockValue() from Params() [renamed GetBlockSubsidy] 2015-05-15 16:12:30 +02:00
chainparamsbase.cpp test: Remove UNITTEST params 2015-03-09 16:06:14 +01:00
chainparamsbase.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
chainparamsseeds.h
checkpoints.cpp Merge pull request #6055 2015-05-06 11:38:39 +02:00
checkpoints.h Merge pull request #6055 2015-05-06 11:38:39 +02:00
checkqueue.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
clientversion.cpp
clientversion.h bump version in clientversion.h 2015-06-02 17:11:05 +02:00
coincontrol.h
coins.cpp Keep track of memory usage in CCoinsViewCache 2015-05-11 17:56:48 -07:00
coins.h Keep track of memory usage in CCoinsViewCache 2015-05-11 17:56:48 -07:00
compat.h
compressor.cpp
compressor.h
core_io.h use const references where appropriate 2015-06-04 19:34:18 +02:00
core_read.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
core_write.cpp
eccryptoverify.cpp
eccryptoverify.h
ecwrapper.cpp Improve robustness of DER recoding code 2015-01-12 08:59:03 +01:00
ecwrapper.h
hash.cpp chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
hash.h chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
init.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
init.h Create a scheduler thread for lightweight tasks 2015-05-14 12:50:41 -04:00
key.cpp Merge pull request #6034 2015-05-06 18:37:49 +02:00
key.h Merge pull request #6034 2015-05-06 18:37:49 +02:00
keystore.cpp wallet: move crypter to wallet 2015-03-22 15:18:55 -04:00
keystore.h c++11: don't forward-declare types used in maps 2015-02-03 23:30:59 -05:00
leveldbwrapper.cpp
leveldbwrapper.h
limitedmap.h
main.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
main.h use const references where appropriate 2015-06-04 19:34:18 +02:00
Makefile.am Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
Makefile.qt.include [QT] use alert icon with tooltip insted of "(out of sync)" text 2015-05-12 20:46:12 +02:00
Makefile.qttest.include
Makefile.test.include Merge pull request #5964 2015-05-14 14:27:07 -04:00
memusage.h Add memusage.h 2015-05-11 17:56:48 -07:00
merkleblock.cpp Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
merkleblock.h Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
miner.cpp Be stricter in processing unrequested blocks 2015-06-02 13:54:29 -04:00
miner.h miner.h: fix clang warning because of class/struct mix 2015-04-16 10:32:47 +02:00
mruset.h Use ring buffer of set iterators instead of deque of copies in mruset 2015-04-30 08:16:30 -07:00
net.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
net.h use const references where appropriate 2015-06-04 19:34:18 +02:00
netbase.cpp [net, trivial] remove using namespace std pollution in netbase.cpp 2015-05-31 15:48:23 +02:00
netbase.h Simplify code for CSubnet 2015-05-26 08:59:13 +02:00
noui.cpp
noui.h
pow.cpp Use equivalent PoW for non-main-chain requests 2015-04-22 03:53:25 -07:00
pow.h Use equivalent PoW for non-main-chain requests 2015-04-22 03:53:25 -07:00
protocol.cpp nLastTry is only used for addrman entries 2015-04-19 11:10:23 -07:00
protocol.h nLastTry is only used for addrman entries 2015-04-19 11:10:23 -07:00
pubkey.cpp chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
pubkey.h chaincodes: abstract away more chaincode behavior 2015-05-06 17:22:46 +02:00
random.cpp WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef. 2015-02-25 18:37:06 -05:00
random.h
rest.cpp Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
rpcblockchain.cpp fix missing univalue types during constructing 2015-06-04 09:16:21 +02:00
rpcclient.cpp Simplify RPCclient, adapt json_parse_error test 2015-06-04 13:18:35 +02:00
rpcclient.h Simplify RPCclient, adapt json_parse_error test 2015-06-04 13:18:35 +02:00
rpcmining.cpp Merge pull request #6206 2015-06-05 07:11:44 +02:00
rpcmisc.cpp Return all available information via validateaddress 2015-06-09 17:21:27 +02:00
rpcnet.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
rpcprotocol.cpp Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
rpcprotocol.h Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
rpcrawtransaction.cpp Remove JSON Spirit wrapper, remove JSON Spirit leftovers 2015-06-04 09:16:21 +02:00
rpcserver.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
rpcserver.h use const references where appropriate 2015-06-04 19:34:18 +02:00
scheduler.cpp Fix intermittent hang issue in scheduler_tests 2015-05-21 19:07:10 +02:00
scheduler.h More robust CScheduler unit test 2015-05-16 17:59:23 -04:00
serialize.h fix header include groups 2015-05-14 01:02:01 -04:00
streams.h allocators: split allocators and pagelocker 2015-03-20 12:23:44 +01:00
sync.cpp Remove broken+useless lock/unlock log prints 2015-04-24 02:28:47 -07:00
sync.h [Trivial] format sync.h 2015-04-20 13:29:21 +02:00
threadsafety.h
timedata.cpp
timedata.h
tinyformat.h
txdb.cpp Consensus: Refactor: Decouple pow.o from chainparams.o 2015-03-26 00:47:51 +01:00
txdb.h Cache tweak and logging improvements 2015-05-11 17:58:14 -07:00
txmempool.cpp Consensus: MOVEONLY: Move CValidationState from main consensus/validation 2015-05-15 16:05:28 +02:00
txmempool.h Create new BlockPolicyEstimator for fee estimates 2015-05-13 10:36:24 -04:00
ui_interface.h Separate CTranslationInterface from CClientUIInterface 2015-04-16 19:58:48 +02:00
uint256.cpp BUGFIX: Stack around the variable 'rv' was corrupted 2015-03-12 22:17:22 +06:00
uint256.h
undo.h
util.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
util.h use const references where appropriate 2015-06-04 19:34:18 +02:00
utilmoneystr.cpp
utilmoneystr.h
utilstrencodings.cpp use const references where appropriate 2015-06-04 19:34:18 +02:00
utilstrencodings.h use const references where appropriate 2015-06-04 19:34:18 +02:00
utiltime.cpp Trivial: useless cast (ptime)(I'm ptime) 2015-04-30 23:11:52 +03:00
utiltime.h
validationinterface.cpp Remove unused code from wallet and validation interface 2015-05-18 17:11:06 +08:00
validationinterface.h Remove unused code from wallet and validation interface 2015-05-18 17:11:06 +08:00
version.h