@bsv/sdk 1.5.3 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/overlay-tools/LookupResolver.js +0 -4
  3. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  4. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +0 -2
  5. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  6. package/dist/cjs/src/primitives/AESGCM.js +113 -137
  7. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  8. package/dist/cjs/src/primitives/BigNumber.js +1019 -3947
  9. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  10. package/dist/cjs/src/primitives/K256.js +53 -37
  11. package/dist/cjs/src/primitives/K256.js.map +1 -1
  12. package/dist/cjs/src/primitives/Mersenne.js +16 -21
  13. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  14. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  15. package/dist/cjs/src/primitives/utils.js +27 -17
  16. package/dist/cjs/src/primitives/utils.js.map +1 -1
  17. package/dist/cjs/src/script/Spend.js +618 -858
  18. package/dist/cjs/src/script/Spend.js.map +1 -1
  19. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  20. package/dist/esm/src/overlay-tools/LookupResolver.js +0 -4
  21. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  22. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +0 -2
  23. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  24. package/dist/esm/src/primitives/AESGCM.js +112 -137
  25. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  26. package/dist/esm/src/primitives/BigNumber.js +1011 -3969
  27. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  28. package/dist/esm/src/primitives/K256.js +53 -37
  29. package/dist/esm/src/primitives/K256.js.map +1 -1
  30. package/dist/esm/src/primitives/Mersenne.js +16 -21
  31. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  32. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  33. package/dist/esm/src/primitives/utils.js +29 -17
  34. package/dist/esm/src/primitives/utils.js.map +1 -1
  35. package/dist/esm/src/script/Spend.js +618 -857
  36. package/dist/esm/src/script/Spend.js.map +1 -1
  37. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  38. package/dist/types/src/overlay-tools/LookupResolver.d.ts +1 -3
  39. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  40. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +1 -0
  41. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  42. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  43. package/dist/types/src/primitives/BigNumber.d.ts +238 -1705
  44. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  45. package/dist/types/src/primitives/K256.d.ts.map +1 -1
  46. package/dist/types/src/primitives/Mersenne.d.ts +2 -2
  47. package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
  48. package/dist/types/src/primitives/utils.d.ts +2 -0
  49. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  50. package/dist/types/src/script/Spend.d.ts +11 -1
  51. package/dist/types/src/script/Spend.d.ts.map +1 -1
  52. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  53. package/dist/umd/bundle.js +1 -1
  54. package/docs/performance.md +70 -0
  55. package/docs/primitives.md +262 -3049
  56. package/package.json +1 -1
  57. package/src/auth/__tests/Peer.test.ts +38 -23
  58. package/src/auth/certificates/__tests/MasterCertificate.test.ts +27 -20
  59. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +24 -24
  60. package/src/overlay-tools/LookupResolver.ts +1 -9
  61. package/src/overlay-tools/SHIPBroadcaster.ts +1 -2
  62. package/src/overlay-tools/__tests/LookupResolver.test.ts +0 -112
  63. package/src/primitives/AESGCM.ts +118 -164
  64. package/src/primitives/BigNumber.ts +867 -4180
  65. package/src/primitives/K256.ts +57 -37
  66. package/src/primitives/Mersenne.ts +16 -20
  67. package/src/primitives/MontgomoryMethod.ts +2 -2
  68. package/src/primitives/__tests/ReductionContext.test.ts +6 -1
  69. package/src/primitives/utils.ts +28 -17
  70. package/src/script/Spend.ts +634 -1309
  71. package/src/transaction/__tests/Transaction.test.ts +14 -16
  72. package/src/transaction/__tests/Transaction.benchmarks.test.ts +0 -237
@@ -0,0 +1,70 @@
1
+ # BigNumber Benchmarks
2
+
3
+ The benchmark scripts measure extremely large number operations and script number serialization performance.
4
+
5
+ All results below were gathered on Node.js v22.16.0 using the `dist` build of the SDK. Each benchmark was executed with 200,000-digit inputs to stress the implementation.
6
+
7
+ ## Addition and Multiplication
8
+
9
+ Command:
10
+
11
+ ```bash
12
+ node benchmarks/bignumber-bench.js 200000 1 1
13
+ ```
14
+
15
+ | Branch | mul large numbers | add large numbers |
16
+ | --- | --- | --- |
17
+ | master (pre-May-2025) | 6364.11ms | 13.04ms |
18
+ | fix-mem (May-2025) | 13.60ms | 2.64ms |
19
+
20
+ ## Serialization
21
+
22
+ Command:
23
+
24
+ ```bash
25
+ node benchmarks/serialization-bench.js 200000 1
26
+ ```
27
+
28
+ | Branch | toSm big | toSm little | fromSm big | fromSm little | fromScriptNum |
29
+ | --- | --- | --- | --- | --- | --- |
30
+ | master (pre-May-2025) | 6.12ms | 10.11ms | 6.35ms | 12.56ms | 3.39ms |
31
+ | fix-mem (May-2025) | 8.46ms | 8.12ms | 27.77ms | 11.16ms | 10.31ms |
32
+
33
+ ## Transaction Verification
34
+
35
+ Command:
36
+
37
+ ```bash
38
+ node benchmarks/transaction-bench.js
39
+ ```
40
+
41
+ | Branch | deep chain verify | wide transaction verify | large tx verify | nested inputs verify |
42
+ | --- | --- | --- | --- | --- |
43
+ | fix-mem (May-2025) | 3335.76ms | 2930.86ms | 1534.36ms | 1198.08ms |
44
+
45
+ ## SymmetricKey Encryption/Decryption
46
+
47
+ Command:
48
+
49
+ ```bash
50
+ node benchmarks/symmetric-key-bench.js
51
+ ```
52
+
53
+ | Branch | encrypt large 2MB | decrypt large 2MB | encrypt 50 small | decrypt 50 small | encrypt 200 medium | decrypt 200 medium |
54
+ | --- | --- | --- | --- | --- | --- | --- |
55
+ | fix-mem baseline | 8609.78ms | 8372.23ms | 34.02ms | 48.58ms | 859.38ms | 960.16ms |
56
+ | optimized AESGCM (round 1) | 7678.65ms | 7619.82ms | 60.23ms | 35.21ms | 871.89ms | 763.13ms |
57
+ | optimized AESGCM (round 2) | 2026.89ms | 1793.35ms | 15.01ms | 7.88ms | 213.35ms | 169.37ms |
58
+
59
+ ## Reader/Writer Operations
60
+
61
+ Command:
62
+
63
+ ```bash
64
+ node benchmarks/reader-writer-bench.js
65
+ ```
66
+
67
+ | Branch | mixed ops | large payloads | 3000 small payloads | 400 medium payloads |
68
+ | --- | --- | --- | --- | --- |
69
+ | fix-mem baseline | 9.93ms | 127.49ms | 27.86ms | 41.71ms |
70
+ | optimized utils.ts | 5.02ms | 91.93ms | 19.04ms | 53.80ms |