mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2024-11-19 09:52:09 +01:00
211339f344
* Add static test vectors for Taproot and the ability to parse those test cases Add TaprootWitness data structure, get parsing working for first static test case WIP: Distinguish between TaprootKeyPath and TaprootScriptPath Remove invariants and make val to method in TaprootScriptPath so we can parse test cases Add TaprootTestCase.{txSigComponents, programs} methods Try to run test case WIP Wrap failure case in Try Get first test case passing Fix building of sig component for p2sh WIP test case legacy/pk-wrongkey Get more test cases passing Move where MAX_PUSH_SIZE is checked for segwit Get another test case passing Add links to bitcoin core in test case Fix stack parsing for witness Get success test cases passing (without signature verification?) Add failure test cases Fix basic compile failures except in javascript projects Get basic TaprootKeyPath parsing working from ScriptWitness Get invariants implemented correctly for TaprootScriptPath WIP WIP Get first taproot signature serialization test working Get tagged hash working correctly Rework test framework, get 2nd success test case passing Get compile working with rebase Implement computeTapleafHash with a unit test case Add scaffolding of computing merkle root test case Implement computeTaprootMerkleRoot() with a unit test Implement computeTapTweakHash() with a unit test WIP: checkTapTweak() WIP Implement computeTapTweakHash() unit test Rebase onto master Get verifyTaprootCommitment() passing unit test Refactors to be more readable * WIP: Tapscript signature checking * Get taproot script path signature serialization working for unit test * Add carve out for unknown public key types * WIP: OP_CHECKSIGADD * Add test case to detect annex and compute its hash * Get test case passing when using upgradable public keys with an annex on the stack * Fix missing pattern match * Fix bug with tapscript SIGHASH_ALL and add test case * Add check if taproot flag is enabled * Get signature verification working with annex hash * Implement correct handling of fail case for OP_CHECKSIGADD * Get test case passing * DRY * Fix bug, now we only allow tapscript sig checking when pubkey is 32 bytes in size * Refactor evalChecksigTapscript to use XOnlyPubKey * Get signature serialization working with OP_CODESEPARATOR * Get SIGHASH_ANYONECANPAY|SINGLE example working * Fix bug in BIP342 impl where we don't count op codes if the version is taproot * Fix OP_CODESEPARATOR bug * Implement calculating of OP_CODESEPARATOR idx relative to other opcodes, not push operations * Fix OP_CHECKSIG tapscript bug where we didn't push OP_FALSE onto stack in case of signature validation failure * Add annex to TaprootKeyPath * Get signature chcking working with tapscript keypath annex * Cleanup test framework code a bit to avoid casting exceptions * Implement handling of OP_SUCCESS * WIP: Segwit v0 serialization with nonstandard sighash flag * Fix hash bug in segwit v0 serialization * WIP * Fix bug where we weren't defaulting to SIGHASH_DEFAULT when using tapscript * Add disabled opcodes to OP_SUCCESS case * Fix parsing for witnesses in test case * Get a SIGHASH_SINGLE test case working * Clean up rebase * Fix default hash type in TaprootKeyPath * Implement opCodeSeparator counting that does NOT work when OP_CODESEPARATOR is is not executed inside of an OP_IF, otherwise is very simple for the base case * Cherry-pick ben's commits & rebase * Remove script size limit for tap scripts * Fix incorrect handling of unassigned spk * Fix invariant * get correct test case failing * WIP: SIGHASH_ALL_ANYONECANPAY test case * Cleanup logging/println * Refactors & fix regressions in some simple unit tests * Remove logback in core to get the entire project compiling again * Make TapscriptPath.hasAnnex() more robust against exceptions * Add validation of XOnlyPubKey to control block * Implement known leaf versions in the control block * Add TaprootUnknownPath and UnknownControlBlock * Fix rebase * Fix interpreter bug where v0 segwit wasn't failing when a wrong program was used * Cleanup println * Clean up println pt2 * Re-enable -Xfatal-warnings * Turn off logback-test.xml * Parallelize taproot success test cases * Try to bump timeout * Optimization: Reduce number of intersections in ScriptInterpreter.run() * Ben's code review * Take ben's clean stack bugfix Co-authored-by: benthecarman <benthecarman@live.com> |
||
---|---|---|
.. | ||
.js/src/test/scala/org/bitcoins/crypto | ||
.jvm/src/test/scala/org/bitcoins/crypto | ||
src/test/scala/org/bitcoins/crypto | ||
crypto-test.sbt |