Implement 64 bit arithmetic op codes in the Script interpreter #29221

pull Christewart wants to merge 2 commits into bitcoin:master from Christewart:64bit-arith changing 29 files +638 āˆ’49
  1. Christewart commented at 8:47 pm on January 10, 2024: contributor

    This PR adds 64 bit arithmetic op codes to the Script interpreter.

    This PR corresponds with this BIP proposal: https://github.com/bitcoin/bips/pull/1538

    This work is heavily borrowed from the elements implementation of 64 bit op codes: https://github.com/ElementsProject/elements/pull/1020

  2. DrahtBot commented at 8:47 pm on January 10, 2024: contributor

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

    Code Coverage

    For detailed information about the code coverage, see the test coverage report.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept ACK moonsettler, tiero, hsjoberg

    If your review is incorrectly listed, please react with šŸ‘Ž to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #30076 (test: fix MiniWallet script-path spend (missing parity bit in leaf version) by theStack)
    • #29371 (test: Add leaf_version parameter to taproot_tree_helper() by Christewart)
    • #29270 (Implement OP_CHECKSIGFROMSTACK(VERIFY) by reardencode)
    • #29269 (Add OP_INTERNALKEY for Tapscript by reardencode)
    • #29247 (Reenable OP_CAT by 0xBEEFCAF3)
    • #28710 (Remove the legacy wallet and BDB dependency by achow101)

    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.

  3. Christewart renamed this:
    Implement OP_ADD64, OP_SUB64, OP_MUL64, OP_DIV64, OP_LESSTHAN64, OP_Lā€¦
    Implement 64 bit arithmetic op codes to the Script interpreter
    on Jan 10, 2024
  4. Christewart renamed this:
    Implement 64 bit arithmetic op codes to the Script interpreter
    Implement 64 bit arithmetic op codes in the Script interpreter
    on Jan 10, 2024
  5. DrahtBot added the label CI failed on Jan 10, 2024
  6. DrahtBot commented at 10:49 pm on January 10, 2024: contributor

    šŸš§ At least one of the CI tasks failed. Make sure to run all tests locally, according to the documentation.

    Possibly this is due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    Leave a comment here, if you need help tracking down a confusing failure.

    Debug: https://github.com/bitcoin/bitcoin/runs/20360373986

  7. moonsettler commented at 10:58 am on January 11, 2024: none
    Concept ACK. i see no reason for this not to be bundled with any future amount introspection soft fork.
  8. tiero commented at 3:16 pm on January 12, 2024: none
    Concept ACK
  9. Christewart force-pushed on Jan 12, 2024
  10. hsjoberg commented at 10:03 am on January 14, 2024: contributor
    Concept ACK. This is great!
  11. ajtowns added the label Consensus on Jan 15, 2024
  12. Christewart force-pushed on Feb 1, 2024
  13. Christewart force-pushed on Feb 1, 2024
  14. Christewart force-pushed on Feb 2, 2024
  15. DrahtBot removed the label CI failed on Feb 3, 2024
  16. Christewart force-pushed on Feb 3, 2024
  17. Christewart force-pushed on Feb 3, 2024
  18. Christewart force-pushed on Feb 3, 2024
  19. Christewart force-pushed on Feb 8, 2024
  20. Christewart force-pushed on Feb 22, 2024
  21. Christewart force-pushed on Mar 6, 2024
  22. DrahtBot added the label CI failed on Mar 6, 2024
  23. DrahtBot commented at 4:11 pm on March 6, 2024: contributor

    šŸš§ At least one of the CI tasks failed. Make sure to run all tests locally, according to the documentation.

    Possibly this is due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    Leave a comment here, if you need help tracking down a confusing failure.

    Debug: https://github.com/bitcoin/bitcoin/runs/22345188040

  24. Christewart force-pushed on Mar 6, 2024
  25. DrahtBot removed the label CI failed on Mar 7, 2024
  26. DrahtBot added the label Needs rebase on Apr 1, 2024
  27. Christewart force-pushed on May 21, 2024
  28. DrahtBot removed the label Needs rebase on May 21, 2024
  29. Add SigVersion parameter to IsOpSuccess()
    Rework IsOpSuccess() to use SigVersion rather than leaf_version
    
    Use switch based impl for IsOpSuccess()
    
    Remove default in switch statement
    
    Fix compiler warning
    
    Move SigVersion to sigversion.h
    
    Fix includes
    
    try to fix compile
    
    Add sigversion.h
    
    Add include guards
    cc16fca689
  30. Implement OP_ADD64, OP_SUB64, OP_MUL64, OP_DIV64, OP_LESSTHAN64, OP_LESSTHANOREQUAL64, OP_GREATERTHAN64, OP_GREATERTHANOREQUAL64, OP_SCRIPTNUMTOLE64, OP_LE64TOSCRIPTNUM, OP_LE32TOLE64
    Remove liquid args
    
    WIP
    
    Get simple OP_1 functional test case working
    
    Get tests for arithmetic and comparison opcodes working
    
    Get all functional tests passing
    
    Rename test case to Arithmetic64bitTest
    
    Rename file to feature_64bit_arithmetic_opcodes.py, add it to test_runner.py
    
    Get tests passing in feature_taproot.py
    
    Remove unused push_le4
    
    Revert test fixture setup
    
    Cleanup
    
    Fix linting
    
    test: Add leaf_version parameter to taproot_tree_helper()
    
    Fix bug
    
    Fix bugs
    
    Fix compile
    
    Fix missing sigversion checks
    
    Fix htole64 -> htole64_internal due to #29263
    
    Add negative test case for OP_LE64TOSCRIPTNUM
    
    Use OP_EQUAL rather than OP_EQUALVERIFY
    
    Fix rebase
    2c40ae01e5
  31. Christewart force-pushed on Jun 3, 2024
  32. DrahtBot added the label CI failed on Jun 13, 2024
  33. DrahtBot added the label Needs rebase on Jul 26, 2024
  34. DrahtBot commented at 11:26 am on July 26, 2024: contributor

    šŸ™ This pull request conflicts with the target branch and needs rebase.

  35. Christewart commented at 9:51 pm on August 23, 2024: contributor
  36. Christewart closed this on Aug 23, 2024


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: 2024-11-21 15:12 UTC

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