@bsv/sdk 2.0.11 → 2.0.13

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 (106) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.additional.test.js +827 -0
  3. package/dist/cjs/src/auth/clients/__tests__/AuthFetch.additional.test.js.map +1 -0
  4. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js +654 -0
  5. package/dist/cjs/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js.map +1 -0
  6. package/dist/cjs/src/overlay-tools/HostReputationTracker.js +21 -13
  7. package/dist/cjs/src/overlay-tools/HostReputationTracker.js.map +1 -1
  8. package/dist/cjs/src/primitives/PrivateKey.js +3 -3
  9. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  10. package/dist/cjs/src/script/Spend.js +17 -9
  11. package/dist/cjs/src/script/Spend.js.map +1 -1
  12. package/dist/cjs/src/storage/StorageDownloader.js +6 -6
  13. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  14. package/dist/cjs/src/storage/StorageUtils.js +1 -1
  15. package/dist/cjs/src/storage/StorageUtils.js.map +1 -1
  16. package/dist/cjs/src/transaction/MerklePath.js +168 -27
  17. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  18. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  19. package/dist/esm/src/auth/clients/__tests__/AuthFetch.additional.test.js +825 -0
  20. package/dist/esm/src/auth/clients/__tests__/AuthFetch.additional.test.js.map +1 -0
  21. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js +619 -0
  22. package/dist/esm/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.js.map +1 -0
  23. package/dist/esm/src/overlay-tools/HostReputationTracker.js +21 -13
  24. package/dist/esm/src/overlay-tools/HostReputationTracker.js.map +1 -1
  25. package/dist/esm/src/primitives/PrivateKey.js +3 -3
  26. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  27. package/dist/esm/src/script/Spend.js +17 -9
  28. package/dist/esm/src/script/Spend.js.map +1 -1
  29. package/dist/esm/src/storage/StorageDownloader.js +6 -6
  30. package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
  31. package/dist/esm/src/storage/StorageUtils.js +1 -1
  32. package/dist/esm/src/storage/StorageUtils.js.map +1 -1
  33. package/dist/esm/src/transaction/MerklePath.js +168 -27
  34. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  35. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  36. package/dist/types/src/auth/clients/__tests__/AuthFetch.additional.test.d.ts +21 -0
  37. package/dist/types/src/auth/clients/__tests__/AuthFetch.additional.test.d.ts.map +1 -0
  38. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.d.ts +2 -0
  39. package/dist/types/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.d.ts.map +1 -0
  40. package/dist/types/src/overlay-tools/HostReputationTracker.d.ts.map +1 -1
  41. package/dist/types/src/script/Spend.d.ts.map +1 -1
  42. package/dist/types/src/transaction/MerklePath.d.ts +27 -0
  43. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  44. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  45. package/dist/umd/bundle.js +3 -3
  46. package/dist/umd/bundle.js.map +1 -1
  47. package/docs/reference/storage.md +1 -1
  48. package/docs/reference/transaction.md +40 -0
  49. package/package.json +1 -1
  50. package/src/auth/clients/__tests__/AuthFetch.additional.test.ts +1131 -0
  51. package/src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.ts +770 -0
  52. package/src/auth/utils/__tests/validateCertificates.test.ts +12 -9
  53. package/src/compat/__tests/Mnemonic.additional.test.ts +64 -0
  54. package/src/identity/__tests/IdentityClient.additional.test.ts +767 -0
  55. package/src/kvstore/__tests/LocalKVStore.additional.test.ts +611 -0
  56. package/src/kvstore/__tests/LocalKVStore.test.ts +4 -6
  57. package/src/kvstore/__tests/kvStoreInterpreter.test.ts +327 -0
  58. package/src/overlay-tools/HostReputationTracker.ts +17 -14
  59. package/src/overlay-tools/__tests/HostReputationTracker.additional.test.ts +561 -0
  60. package/src/overlay-tools/__tests/LookupResolver.additional.test.ts +612 -0
  61. package/src/overlay-tools/__tests/withDoubleSpendRetry.test.ts +278 -0
  62. package/src/primitives/PrivateKey.ts +3 -3
  63. package/src/primitives/__tests/BigNumber.additional.test.ts +79 -0
  64. package/src/primitives/__tests/Curve.additional.test.ts +208 -0
  65. package/src/primitives/__tests/ECDSA.additional.test.ts +122 -0
  66. package/src/primitives/__tests/Hash.additional.test.ts +59 -0
  67. package/src/primitives/__tests/JacobianPoint.test.ts +308 -0
  68. package/src/primitives/__tests/Point.additional.test.ts +503 -0
  69. package/src/primitives/__tests/PublicKey.additional.test.ts +383 -0
  70. package/src/primitives/__tests/Random.additional.test.ts +262 -0
  71. package/src/primitives/__tests/Signature.test.ts +333 -0
  72. package/src/primitives/__tests/TransactionSignature.additional.test.ts +241 -0
  73. package/src/registry/__tests/RegistryClient.additional.test.ts +750 -0
  74. package/src/remittance/__tests/BasicBRC29.additional.test.ts +657 -0
  75. package/src/remittance/__tests/RemittanceManager.additional.test.ts +1272 -0
  76. package/src/script/Spend.ts +19 -11
  77. package/src/script/__tests/LockingUnlockingScript.test.ts +79 -0
  78. package/src/script/__tests/Script.additional.test.ts +100 -0
  79. package/src/script/__tests/ScriptEvaluationError.test.ts +98 -0
  80. package/src/script/__tests/Spend.additional.test.ts +837 -0
  81. package/src/script/templates/__tests/RPuzzle.test.ts +134 -0
  82. package/src/storage/StorageDownloader.ts +6 -6
  83. package/src/storage/StorageUtils.ts +1 -1
  84. package/src/transaction/MerklePath.ts +196 -36
  85. package/src/transaction/__tests/BeefParty.additional.test.ts +22 -0
  86. package/src/transaction/__tests/Broadcaster.test.ts +159 -0
  87. package/src/transaction/__tests/MerklePath.bench.test.ts +105 -0
  88. package/src/transaction/__tests/MerklePath.test.ts +232 -21
  89. package/src/transaction/__tests/Transaction.additional.test.ts +225 -0
  90. package/src/transaction/broadcasters/__tests/ARC.additional.test.ts +585 -0
  91. package/src/transaction/broadcasters/__tests/Teranode.test.ts +349 -0
  92. package/src/transaction/chaintrackers/__tests/BlockHeadersService.test.ts +253 -0
  93. package/src/transaction/chaintrackers/__tests/DefaultChainTracker.test.ts +44 -0
  94. package/src/transaction/chaintrackers/__tests/WhatsOnChain.additional.test.ts +193 -0
  95. package/src/transaction/fee-models/__tests/SatoshisPerKilobyte.test.ts +262 -0
  96. package/src/transaction/http/__tests/BinaryFetchClient.test.ts +212 -0
  97. package/src/transaction/http/__tests/DefaultHttpClient.additional.test.ts +192 -0
  98. package/src/transaction/http/__tests/DefaultHttpClient.test.ts +71 -0
  99. package/src/wallet/__tests/ProtoWallet.additional.test.ts +134 -0
  100. package/src/wallet/__tests/WERR.test.ts +212 -0
  101. package/src/wallet/__tests/WalletClient.additional.test.ts +699 -0
  102. package/src/wallet/__tests/WalletClient.substrate.test.ts +759 -0
  103. package/src/wallet/__tests/WalletError.test.ts +290 -0
  104. package/src/wallet/__tests/validationHelpers.test.ts +1218 -0
  105. package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +496 -0
  106. package/src/wallet/substrates/__tests/HTTPWalletWire.test.ts +273 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * AuthFetch additional tests.
3
+ *
4
+ * Covers branches not exercised by the primary AuthFetch.test.ts:
5
+ * - fetch(): retryCounter exhaustion, non-auth fallback path, stale-session retry
6
+ * - serializeRequest(): all header/body/URL variants
7
+ * - handleFetchAndValidate(): success, x-bsv header spoofing, non-ok response
8
+ * - handlePaymentAndRetry(): missing/invalid headers, incompatible context regeneration
9
+ * - describeRequestBodyForLogging(): all body types
10
+ * - getMaxPaymentAttempts(): edge cases
11
+ * - getPaymentRetryDelay(): values at different attempt counts
12
+ * - wait(): zero / positive
13
+ * - isPaymentContextCompatible(): match / mismatch branches
14
+ * - consumeReceivedCertificates(): drains the internal buffer
15
+ * - sendCertificateRequest(): creates new peer when none exists
16
+ * - logPaymentAttempt(): all three log levels
17
+ * - createPaymentErrorEntry(): Error vs non-Error values
18
+ * - buildPaymentFailureError(): shapes the error correctly
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=AuthFetch.additional.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthFetch.additional.test.d.ts","sourceRoot":"","sources":["../../../../../../src/auth/clients/__tests__/AuthFetch.additional.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SimplifiedFetchTransport.additional.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimplifiedFetchTransport.additional.test.d.ts","sourceRoot":"","sources":["../../../../../../src/auth/transports/__tests__/SimplifiedFetchTransport.additional.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"HostReputationTracker.d.ts","sourceRoot":"","sources":["../../../../src/overlay-tools/HostReputationTracker.ts"],"names":[],"mappings":"AAAA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACrD,KAAK,EAAE,MAAM,CAAA;CACd;AAWD,UAAU,aAAa;IACrB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;gBAEpC,KAAK,CAAC,EAAE,aAAa;IAMlC,KAAK,IAAK,IAAI;IAId,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAoBrD,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAwCpD,SAAS,CAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAmB,GAAG,UAAU,EAAE;IA6BnE,QAAQ,CAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAKxD,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;CAiBpB;AAID,eAAO,MAAM,+BAA+B,QAAO,qBAAsC,CAAA"}
1
+ {"version":3,"file":"HostReputationTracker.d.ts","sourceRoot":"","sources":["../../../../src/overlay-tools/HostReputationTracker.ts"],"names":[],"mappings":"AAAA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACrD,KAAK,EAAE,MAAM,CAAA;CACd;AAWD,UAAU,aAAa;IACrB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;gBAEpC,KAAK,CAAC,EAAE,aAAa;IAMlC,KAAK,IAAK,IAAI;IAId,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAoBrD,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IA2CpD,SAAS,CAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAmB,GAAG,UAAU,EAAE;IA6BnE,QAAQ,CAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAKxD,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;CAiBpB;AAID,eAAO,MAAM,+BAA+B,QAAO,qBAAsC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAWlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAuFnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAE1B,OAAO,CAAC,YAAY,CAAoB;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;gBACU,MAAM,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;IAuBD,OAAO,CAAC,SAAS;IAKjB,KAAK,IAAK,IAAI;IAYd,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,eAAe;IAuBvB,IAAI,IAAK,OAAO;IAqsBhB;;;;;;;;;;OAUG;IACH,QAAQ,IAAK,OAAO;IA2CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;CAc9B"}
1
+ {"version":3,"file":"Spend.d.ts","sourceRoot":"","sources":["../../../../src/script/Spend.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,eAAe,MAAM,sBAAsB,CAAA;AAWlD,OAAO,gBAAgB,MAAM,oCAAoC,CAAA;AACjE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AAuFnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,eAAe,CAAA;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAEhB,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAA;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAE1B,OAAO,CAAC,YAAY,CAAoB;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;gBACU,MAAM,EAAE;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,aAAa,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,WAAW,EAAE,gBAAgB,EAAE,CAAA;QAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;QAC5B,eAAe,EAAE,eAAe,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;IAuBD,OAAO,CAAC,SAAS;IAKjB,KAAK,IAAK,IAAI;IAYd,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,eAAe;IAuBvB,IAAI,IAAK,OAAO;IAqsBhB;;;;;;;;;;OAUG;IACH,QAAQ,IAAK,OAAO;IA2CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;CAc9B"}
@@ -134,5 +134,32 @@ export default class MerklePath {
134
134
  * Leaves all levels sorted by increasing offset.
135
135
  */
136
136
  trim(): void;
137
+ /**
138
+ * Cached leaf finder for extract(). Uses Map-based indexes for O(1) lookups
139
+ * and caches computed intermediate hashes to avoid redundant work.
140
+ */
141
+ private cachedFindLeaf;
142
+ /**
143
+ * Extracts a minimal compound MerklePath covering only the specified transaction IDs.
144
+ *
145
+ * Given a compound MerklePath (e.g. all block txids at level 0, or a trimmed
146
+ * compound path), this method reconstructs the sibling hashes at each tree level
147
+ * for every requested txid using cached Map-indexed lookups, then assembles them
148
+ * into a single trimmed compound path.
149
+ *
150
+ * The extracted path is verified to compute the same Merkle root as the source.
151
+ *
152
+ * @param {string[]} txids - Transaction IDs to extract proofs for.
153
+ * @returns {MerklePath} - A new trimmed compound MerklePath covering only the requested txids.
154
+ * @throws {Error} - If no txids are provided, a txid is not found, or the roots do not match.
155
+ *
156
+ * @example
157
+ * // Full block compound path (all txids at level 0)
158
+ * const fullBlock = new MerklePath(height, [allTxidsAtLevel0])
159
+ * // Extract a smaller compound proof covering just two transactions
160
+ * const twoTxProof = fullBlock.extract([txid1, txid2])
161
+ * twoTxProof.computeRoot(txid1) // === fullBlock.computeRoot()
162
+ */
163
+ extract(txids: string[]): MerklePath;
137
164
  }
138
165
  //# sourceMappingURL=MerklePath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MerklePath.d.ts","sourceRoot":"","sources":["../../../../src/transaction/MerklePath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzF,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,CAAA;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAIxC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,GAAG,gBAAgB,EACjC,gBAAgB,GAAE,OAAc,GAC/B,UAAU;IAwCb;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU;IAK3D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;gBAKzE,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,EACD,gBAAgB,GAAE,OAAc;IA+ClC;;;;OAIG;IACH,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAwBlD;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IAMrB;;;;OAIG;IACH,kBAAkB,IAAK,UAAU;IAMjC;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAKhB,OAAO,CAAC,OAAO;IAQf;;;;;;OAMG;IACH,WAAW,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IA+CnC;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAmC7B;;;;;;OAMG;IACG,MAAM,CAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE;;;;;OAKG;IACH,OAAO,CAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IA2CjC;;;;OAIG;IACH,IAAI,IAAK,IAAI;CAqDd"}
1
+ {"version":3,"file":"MerklePath.d.ts","sourceRoot":"","sources":["../../../../src/transaction/MerklePath.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAkB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzF,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,CAAA;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAIxC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,GAAG,gBAAgB,EACjC,gBAAgB,GAAE,OAAc,GAC/B,UAAU;IAwCb;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU;IAK3D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,yBAAyB,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU;gBAKzE,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,KAAK,CACX,KAAK,CAAC;QACJ,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAC,CACD,EACD,gBAAgB,GAAE,OAAc;IA6ClC;;;;OAIG;IACH,QAAQ,CAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAwBlD;;;;OAIG;IACH,QAAQ,IAAK,MAAM,EAAE;IAMrB;;;;OAIG;IACH,kBAAkB,IAAK,UAAU;IAMjC;;;;OAIG;IACH,KAAK,IAAK,MAAM;IAKhB,OAAO,CAAC,OAAO;IAQf;;;;;;OAMG;IACH,WAAW,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAiDnC;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAgD7B;;;;;;OAMG;IACG,MAAM,CAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAazE;;;;;OAKG;IACH,OAAO,CAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAmCjC;;;;OAIG;IACH,IAAI,IAAK,IAAI;IAsDb;;;OAGG;IACH,OAAO,CAAC,cAAc;IAsDtB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU;CA2EtC"}