Considering the limited applicability of reqSigs
and the confusing output of 1
in all cases except bare multisig, the addresses
and reqSigs
outputs are removed for all rpc commands.
- add a new sane “address” field (for outputs that have an identifiable address, which doesn’t include bare multisig)
- with -deprecatedrpc: leave “reqSigs” and “addresses” intact (with all weird/wrong behavior they have now)
- without -deprecatedrpc: drop “reqSigs” and “addresses” entirely always.
Note: Some light refactoring done to allow us to very easily delete a few chunks of code (marked with TODOs) when we remove this deprecated behavior.
Using IsDeprecatedRPCEnabled
in core_write.cpp caused some circular dependencies involving core_io
Circular dependencies were caused by rpc/util unnecessarily importing node/coinstats and node/transaction. Really what rpc/util needs are some fundamental type/helper-function definitions. So this was cleaned up to make more sense.
This fixes #20102.