[POC/DRAFT] - Finalize remove reqsigs deprecation from rpcs #20775

pull mjdietzx wants to merge 4 commits into bitcoin:master from mjdietzx:finalize-remove-reqsigs-from-rpcs changing 45 files +104 −350
  1. mjdietzx commented at 4:53 PM on December 26, 2020: contributor

    This is on top of #20286. Only the top commit https://github.com/bitcoin/bitcoin/commit/11c22742150f44d28d15fc85a5fd5fd8fb7c157f is relevant to this PR. When the reqSigs deprecation period ends, this PR would need to be reviewed/merged.

    This PR is meant to look at what goes away once we can get rid of the depreciation process for reqSigs. ie using IsDeprecatedRPCEnabled in core_write.cpp required (in the current implementation approach) a change to the build system. However it's temporary and these changes are only for as long as the deprecation period lives, as shown in this PR

    <!-- *** Please remove the following help text before submitting: *** Pull requests without a rationale and clear improvement may be closed immediately. GUI-related pull requests should be opened against https://github.com/bitcoin-core/gui first. See CONTRIBUTING.md -->

    <!-- Please provide clear motivation for your patch and explain how it improves Bitcoin Core user experience or Bitcoin Core developer experience significantly: * Any test improvements or new tests that improve coverage are always welcome. * All other changes should have accompanying unit tests (see `src/test/`) or functional tests (see `test/`). Contributors should note which tests cover modified code. If no tests exist for a region of modified code, new tests should accompany the change. * Bug fixes are most welcome when they come with steps to reproduce or an explanation of the potential issue as well as reasoning for the way the bug was fixed. * Features are welcome, but might be rejected due to design or scope issues. If a feature is based on a lot of dependencies, contributors should first consider building the system outside of Bitcoin Core, if possible. * Refactoring changes are only accepted if they are required for a feature or bug fix or otherwise improve developer experience significantly. For example, most "code style" refactoring changes require a thorough explanation why they are useful, what downsides they have and why they *significantly* improve developer experience or avoid serious programming bugs. Note that code style is often a subjective matter. Unless they are explicitly mentioned to be preferred in the [developer notes](/doc/developer-notes.md), stylistic code changes are usually rejected. -->

    <!-- Bitcoin Core has a thorough review process and even the most trivial change needs to pass a lot of eyes and requires non-zero or even substantial time effort to review. There is a huge lack of active reviewers on the project, so patches often sit for a long time. -->

  2. rpc: deprecate `addresses` and `reqSigs` from rpc outputs
    1) add a new sane "address" field (for outputs that have an
       identifiable address, which doesn't include bare multisig)
    2) with -deprecatedrpc: leave "reqSigs" and "addresses" intact
       (with all weird/wrong behavior they have now)
    3) without -deprecatedrpc: drop "reqSigs" and "addresses" entirely,
       always.
    
    Note: we add a circular dependency to EXPECTED_CIRCULAR_DEPENDENCIES
    which allows us to use IsDeprecatedRPCEnabled in core_write.cpp
    
    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.
    d6932139c2
  3. minor style fix to src/script/standard.cpp
    Co-authored-by: MarcoFalke <falkemarco@gmail.com>
    340b9183b8
  4. DrahtBot commented at 6:02 PM on December 26, 2020: member

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #20772 (fuzz: bolster ExtractDestination(s) checks by mjdietzx)
    • #20556 (rpc: Properly document return values (submitblock, gettxout, getblocktemplate, scantxoutset) by MarcoFalke)
    • #20480 (Replace boost::variant with std::variant by MarcoFalke)
    • #20459 (rpc: Fail to return undocumented return values by MarcoFalke)
    • #20286 (rpc: deprecate addresses and reqSigs from rpc outputs by mjdietzx)
    • #19183 ([WIP DONOTMERGE] Replace boost with C++17 by MarcoFalke)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. DrahtBot added the label Docs on Dec 26, 2020
  6. DrahtBot added the label RPC/REST/ZMQ on Dec 26, 2020
  7. DrahtBot added the label Wallet on Dec 26, 2020
  8. change how we check deprecatedrpc so we don't touch build system 45d411a13f
  9. rpc: finalize deprecate addresses and reqSigs from rpc outputs 283701fdf5
  10. mjdietzx force-pushed on Dec 26, 2020
  11. mjdietzx commented at 3:02 PM on December 30, 2020: contributor

    No need to leave this open for now

  12. mjdietzx closed this on Dec 30, 2020

  13. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 15:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me