Skip to content

Conversation

@jackielu3
Copy link
Collaborator

Description of Changes

Provide a brief description of the changes you've made.

Linked Issues / Tickets

Reference any related issues or tickets, e.g. "Closes #123".

Testing Procedure

Describe the tests you've added or any testing steps you've taken.

  • I have added new unit tests
  • All tests pass locally
  • I have tested manually in my local environment

Checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have updated CHANGELOG.md with my changes
  • I have run npm run doc and npm run lint one final time before requesting a review
  • I have fixed all linter errors to ensure these changes are compliant with ts-standard
  • I have run npm version patch so that my changes will trigger a new version to be released when they are merged

@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 91.66667% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/primitives/AESGCM.ts 89.77% 4 Missing and 5 partials ⚠️

📢 Thoughts on this report? Let us know!

@github-actions
Copy link

🏁 Benchmark Comparison (Node 22)

Comparing this PR (53a6f36) against master (1e0cc5c).

⚠️ 2 regressions detected (>5% slower).

Regressions

  • ⚠️ Symmetric Key – decrypt 50 small is 8.26% slower (7.47 ms vs 6.90 ms).
  • ⚠️ Reader & Writer – large payloads is 5.03% slower (43.47 ms vs 41.39 ms).
Benchmark Metric PR Branch Master Δ Change
BigNumber Arithmetic mul large numbers 8.77 ms 8.83 ms -0.06 ms -0.68%
BigNumber Arithmetic add large numbers 1.82 ms 1.81 ms +0.01 ms +0.55%
BigNumber Serialization toSm big 2.67 ms 2.69 ms -0.02 ms -0.74%
BigNumber Serialization toSm little 2.77 ms 2.73 ms +0.04 ms +1.47%
BigNumber Serialization fromSm big 3.27 ms 3.15 ms +0.12 ms +3.81%
BigNumber Serialization fromSm little 3.20 ms 3.22 ms -0.02 ms -0.62%
BigNumber Serialization fromScriptNum 3.31 ms 3.23 ms +0.08 ms +2.48%
Script Serialization Big script round trip 3.32 ms 3.32 ms +0.00 ms 0.00%
Transaction Verification deep chain verify 468.05 ms 479.45 ms -11.40 ms -2.38%
Transaction Verification wide transaction verify 496.17 ms 501.18 ms -5.01 ms -1.00%
Transaction Verification large tx verify 246.50 ms 251.18 ms -4.68 ms -1.86%
Transaction Verification nested inputs verify 112.57 ms 113.46 ms -0.89 ms -0.78%
Symmetric Key encrypt large 2MB 1647.07 ms 1659.05 ms -11.98 ms -0.72%
Symmetric Key decrypt large 2MB 1657.27 ms 1640.22 ms +17.05 ms +1.04%
Symmetric Key encrypt 50 small 7.22 ms 7.39 ms -0.17 ms -2.30%
Symmetric Key decrypt 50 small 7.47 ms 6.90 ms +0.57 ms +8.26%
Symmetric Key encrypt 200 medium 175.16 ms 177.17 ms -2.01 ms -1.13%
Symmetric Key decrypt 200 medium 176.52 ms 170.34 ms +6.18 ms +3.63%
Reader & Writer mixed ops 0.25 ms 0.25 ms +0.00 ms 0.00%
Reader & Writer large payloads 43.47 ms 41.39 ms +2.08 ms +5.03%
Reader & Writer 3000 small payloads 1.81 ms 1.77 ms +0.04 ms +2.26%
Reader & Writer 400 medium payloads 22.43 ms 22.53 ms -0.10 ms -0.44%
Atomic BEEF Transaction.toAtomicBEEF 1.38 ms 1.36 ms +0.02 ms +1.47%
Atomic BEEF Transaction.fromAtomicBEEF 3.92 ms 3.90 ms +0.02 ms +0.51%

@github-actions
Copy link

🏁 Benchmark Comparison (Node 22)

Comparing this PR (ed04564) against master (1e0cc5c).

✅ No regressions over the 5% threshold detected. 🎉 1 significant speedup (>5% faster).

Speedups

  • 🎉 BigNumber Serialization – toSm little is 5.10% faster (2.98 ms vs 3.14 ms).
Benchmark Metric PR Branch Master Δ Change
BigNumber Arithmetic mul large numbers 8.86 ms 8.89 ms -0.03 ms -0.34%
BigNumber Arithmetic add large numbers 1.48 ms 1.51 ms -0.03 ms -1.99%
BigNumber Serialization toSm big 2.93 ms 3.03 ms -0.10 ms -3.30%
BigNumber Serialization toSm little 2.98 ms 3.14 ms -0.16 ms -5.10%
BigNumber Serialization fromSm big 3.01 ms 3.11 ms -0.10 ms -3.22%
BigNumber Serialization fromSm little 3.11 ms 3.17 ms -0.06 ms -1.89%
BigNumber Serialization fromScriptNum 3.07 ms 3.21 ms -0.14 ms -4.36%
Script Serialization Big script round trip 3.84 ms 3.98 ms -0.14 ms -3.52%
Transaction Verification deep chain verify 448.04 ms 448.44 ms -0.40 ms -0.09%
Transaction Verification wide transaction verify 456.32 ms 476.66 ms -20.34 ms -4.27%
Transaction Verification large tx verify 227.05 ms 229.63 ms -2.58 ms -1.12%
Transaction Verification nested inputs verify 103.97 ms 105.03 ms -1.06 ms -1.01%
Symmetric Key encrypt large 2MB 1527.37 ms 1542.48 ms -15.11 ms -0.98%
Symmetric Key decrypt large 2MB 1527.73 ms 1539.40 ms -11.67 ms -0.76%
Symmetric Key encrypt 50 small 6.70 ms 6.73 ms -0.03 ms -0.45%
Symmetric Key decrypt 50 small 6.50 ms 6.55 ms -0.05 ms -0.76%
Symmetric Key encrypt 200 medium 162.94 ms 161.84 ms +1.10 ms +0.68%
Symmetric Key decrypt 200 medium 159.82 ms 160.24 ms -0.42 ms -0.26%
Reader & Writer mixed ops 0.23 ms 0.23 ms +0.00 ms 0.00%
Reader & Writer large payloads 29.19 ms 29.56 ms -0.37 ms -1.25%
Reader & Writer 3000 small payloads 1.85 ms 1.82 ms +0.03 ms +1.65%
Reader & Writer 400 medium payloads 16.25 ms 16.82 ms -0.57 ms -3.39%
Atomic BEEF Transaction.toAtomicBEEF 1.57 ms 1.58 ms -0.01 ms -0.63%
Atomic BEEF Transaction.fromAtomicBEEF 3.70 ms 3.85 ms -0.15 ms -3.90%

@jackielu3
Copy link
Collaborator Author

image

Long ciphertext test results for 2^29 + 16, 2^28 + 16, 2^27 + 16, and 2^26 + 16 bytes correspondingly. This test will be skipped, but will remain in the AESGCM.test.ts file.

@github-actions
Copy link

🏁 Benchmark Comparison (Node 22)

Comparing this PR (ea9492a) against master (6048ed2).

✅ No regressions over the 5% threshold detected.

Benchmark Metric PR Branch Master Δ Change
BigNumber Arithmetic mul large numbers 8.82 ms 8.79 ms +0.03 ms +0.34%
BigNumber Arithmetic add large numbers 1.45 ms 1.45 ms +0.00 ms 0.00%
BigNumber Serialization toSm big 2.84 ms 2.83 ms +0.01 ms +0.35%
BigNumber Serialization toSm little 2.91 ms 2.93 ms -0.02 ms -0.68%
BigNumber Serialization fromSm big 2.98 ms 2.97 ms +0.01 ms +0.34%
BigNumber Serialization fromSm little 3.04 ms 3.04 ms +0.00 ms 0.00%
BigNumber Serialization fromScriptNum 3.04 ms 3.04 ms +0.00 ms 0.00%
Script Serialization Big script round trip 3.78 ms 3.81 ms -0.03 ms -0.79%
Transaction Verification deep chain verify 440.49 ms 439.03 ms +1.46 ms +0.33%
Transaction Verification wide transaction verify 456.17 ms 452.10 ms +4.07 ms +0.90%
Transaction Verification large tx verify 227.73 ms 224.33 ms +3.40 ms +1.52%
Transaction Verification nested inputs verify 103.21 ms 102.69 ms +0.52 ms +0.51%
Symmetric Key encrypt large 2MB 1584.79 ms 1513.61 ms +71.18 ms +4.70%
Symmetric Key decrypt large 2MB 1540.40 ms 1508.96 ms +31.44 ms +2.08%
Symmetric Key encrypt 50 small 6.77 ms 6.50 ms +0.27 ms +4.15%
Symmetric Key decrypt 50 small 6.37 ms 6.33 ms +0.04 ms +0.63%
Symmetric Key encrypt 200 medium 165.02 ms 157.69 ms +7.33 ms +4.65%
Symmetric Key decrypt 200 medium 160.97 ms 155.58 ms +5.39 ms +3.46%
Reader & Writer mixed ops 0.22 ms 0.22 ms +0.00 ms 0.00%
Reader & Writer large payloads 28.35 ms 27.88 ms +0.47 ms +1.69%
Reader & Writer 3000 small payloads 1.74 ms 1.69 ms +0.05 ms +2.96%
Reader & Writer 400 medium payloads 15.03 ms 14.66 ms +0.37 ms +2.52%
Atomic BEEF Transaction.toAtomicBEEF 1.47 ms 1.49 ms -0.02 ms -1.34%
Atomic BEEF Transaction.fromAtomicBEEF 3.63 ms 3.62 ms +0.01 ms +0.28%

@github-actions
Copy link

🏁 Benchmark Comparison (Node 22)

Comparing this PR (6ec6d13) against master (6048ed2).

✅ No regressions over the 5% threshold detected.

Benchmark Metric PR Branch Master Δ Change
BigNumber Arithmetic mul large numbers 8.86 ms 8.79 ms +0.07 ms +0.80%
BigNumber Arithmetic add large numbers 1.45 ms 1.45 ms +0.00 ms 0.00%
BigNumber Serialization toSm big 2.84 ms 2.81 ms +0.03 ms +1.07%
BigNumber Serialization toSm little 2.86 ms 2.88 ms -0.02 ms -0.69%
BigNumber Serialization fromSm big 2.92 ms 2.92 ms +0.00 ms 0.00%
BigNumber Serialization fromSm little 3.00 ms 3.01 ms -0.01 ms -0.33%
BigNumber Serialization fromScriptNum 3.02 ms 3.01 ms +0.01 ms +0.33%
Script Serialization Big script round trip 3.79 ms 3.75 ms +0.04 ms +1.07%
Transaction Verification deep chain verify 435.66 ms 432.95 ms +2.71 ms +0.63%
Transaction Verification wide transaction verify 450.77 ms 455.31 ms -4.54 ms -1.00%
Transaction Verification large tx verify 224.05 ms 221.95 ms +2.10 ms +0.95%
Transaction Verification nested inputs verify 102.40 ms 101.55 ms +0.85 ms +0.84%
Symmetric Key encrypt large 2MB 1561.50 ms 1507.41 ms +54.09 ms +3.59%
Symmetric Key decrypt large 2MB 1515.65 ms 1506.16 ms +9.49 ms +0.63%
Symmetric Key encrypt 50 small 6.66 ms 6.52 ms +0.14 ms +2.15%
Symmetric Key decrypt 50 small 6.27 ms 6.32 ms -0.05 ms -0.79%
Symmetric Key encrypt 200 medium 163.04 ms 156.06 ms +6.98 ms +4.47%
Symmetric Key decrypt 200 medium 158.10 ms 155.57 ms +2.53 ms +1.63%
Reader & Writer mixed ops 0.22 ms 0.22 ms +0.00 ms 0.00%
Reader & Writer large payloads 27.84 ms 27.47 ms +0.37 ms +1.35%
Reader & Writer 3000 small payloads 1.70 ms 1.72 ms -0.02 ms -1.16%
Reader & Writer 400 medium payloads 14.25 ms 14.80 ms -0.55 ms -3.72%
Atomic BEEF Transaction.toAtomicBEEF 1.48 ms 1.47 ms +0.01 ms +0.68%
Atomic BEEF Transaction.fromAtomicBEEF 3.57 ms 3.54 ms +0.03 ms +0.85%

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
13.3% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@github-actions
Copy link

🏁 Benchmark Comparison (Node 22)

Comparing this PR (2df2536) against master (6048ed2).

⚠️ 1 regression detected (>5% slower).

Regressions

  • ⚠️ Symmetric Key – encrypt 200 medium is 5.32% slower (165.22 ms vs 156.88 ms).
Benchmark Metric PR Branch Master Δ Change
BigNumber Arithmetic mul large numbers 8.81 ms 8.80 ms +0.01 ms +0.11%
BigNumber Arithmetic add large numbers 1.44 ms 1.44 ms +0.00 ms 0.00%
BigNumber Serialization toSm big 2.81 ms 2.86 ms -0.05 ms -1.75%
BigNumber Serialization toSm little 2.87 ms 2.88 ms -0.01 ms -0.35%
BigNumber Serialization fromSm big 2.93 ms 2.92 ms +0.01 ms +0.34%
BigNumber Serialization fromSm little 3.00 ms 3.00 ms +0.00 ms 0.00%
BigNumber Serialization fromScriptNum 3.01 ms 3.04 ms -0.03 ms -0.99%
Script Serialization Big script round trip 3.75 ms 3.76 ms -0.01 ms -0.27%
Transaction Verification deep chain verify 435.86 ms 436.82 ms -0.96 ms -0.22%
Transaction Verification wide transaction verify 448.96 ms 451.54 ms -2.58 ms -0.57%
Transaction Verification large tx verify 224.82 ms 224.00 ms +0.82 ms +0.37%
Transaction Verification nested inputs verify 102.71 ms 102.60 ms +0.11 ms +0.11%
Symmetric Key encrypt large 2MB 1567.49 ms 1509.30 ms +58.19 ms +3.86%
Symmetric Key decrypt large 2MB 1518.32 ms 1504.74 ms +13.58 ms +0.90%
Symmetric Key encrypt 50 small 6.66 ms 6.49 ms +0.17 ms +2.62%
Symmetric Key decrypt 50 small 6.27 ms 6.33 ms -0.06 ms -0.95%
Symmetric Key encrypt 200 medium 165.22 ms 156.88 ms +8.34 ms +5.32%
Symmetric Key decrypt 200 medium 157.87 ms 155.12 ms +2.75 ms +1.77%
Reader & Writer mixed ops 0.22 ms 0.22 ms +0.00 ms 0.00%
Reader & Writer large payloads 28.26 ms 28.45 ms -0.19 ms -0.67%
Reader & Writer 3000 small payloads 1.73 ms 1.70 ms +0.03 ms +1.76%
Reader & Writer 400 medium payloads 14.42 ms 14.82 ms -0.40 ms -2.70%
Atomic BEEF Transaction.toAtomicBEEF 1.46 ms 1.46 ms +0.00 ms 0.00%
Atomic BEEF Transaction.fromAtomicBEEF 3.53 ms 3.56 ms -0.03 ms -0.84%

@ty-everett ty-everett self-requested a review December 12, 2025 01:02
@ty-everett ty-everett merged commit 13506aa into master Dec 12, 2025
14 of 15 checks passed
@ty-everett ty-everett deleted the fix/tob-10 branch December 12, 2025 01:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants