@bsv/sdk 1.3.12 → 1.3.14

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 (607) hide show
  1. package/dist/cjs/package.json +15 -3
  2. package/dist/cjs/src/auth/Peer.js +83 -57
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js +14 -9
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  12. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  18. package/dist/cjs/src/auth/utils/createNonce.js +2 -1
  19. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  20. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  21. package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
  22. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  23. package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
  24. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  25. package/dist/cjs/src/compat/BSM.js +7 -17
  26. package/dist/cjs/src/compat/BSM.js.map +1 -1
  27. package/dist/cjs/src/compat/ECIES.js +172 -133
  28. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  29. package/dist/cjs/src/compat/HD.js +63 -73
  30. package/dist/cjs/src/compat/HD.js.map +1 -1
  31. package/dist/cjs/src/compat/Mnemonic.js +102 -106
  32. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  33. package/dist/cjs/src/compat/Utxo.js +2 -2
  34. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  35. package/dist/cjs/src/compat/index.js +7 -17
  36. package/dist/cjs/src/compat/index.js.map +1 -1
  37. package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
  38. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  39. package/dist/cjs/src/messages/SignedMessage.js +1 -0
  40. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  41. package/dist/cjs/src/messages/index.js +7 -17
  42. package/dist/cjs/src/messages/index.js.map +1 -1
  43. package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
  44. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  45. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  46. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  47. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
  48. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  49. package/dist/cjs/src/primitives/AESGCM.js +6 -5
  50. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  51. package/dist/cjs/src/primitives/BasePoint.js +1 -1
  52. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  53. package/dist/cjs/src/primitives/BigNumber.js +50 -62
  54. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  55. package/dist/cjs/src/primitives/Curve.js +46 -22
  56. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  57. package/dist/cjs/src/primitives/DRBG.js +2 -8
  58. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  59. package/dist/cjs/src/primitives/ECDSA.js +51 -35
  60. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  61. package/dist/cjs/src/primitives/Hash.js +191 -216
  62. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  63. package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
  64. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  65. package/dist/cjs/src/primitives/K256.js.map +1 -1
  66. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  67. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  68. package/dist/cjs/src/primitives/Point.js +117 -88
  69. package/dist/cjs/src/primitives/Point.js.map +1 -1
  70. package/dist/cjs/src/primitives/Polynomial.js +4 -2
  71. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  72. package/dist/cjs/src/primitives/PrivateKey.js +32 -33
  73. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  74. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  75. package/dist/cjs/src/primitives/Random.js +6 -5
  76. package/dist/cjs/src/primitives/Random.js.map +1 -1
  77. package/dist/cjs/src/primitives/ReductionContext.js +1 -1
  78. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  79. package/dist/cjs/src/primitives/Schnorr.js +21 -15
  80. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  81. package/dist/cjs/src/primitives/Signature.js +8 -7
  82. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  83. package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
  84. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  85. package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
  86. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  87. package/dist/cjs/src/primitives/index.js +7 -17
  88. package/dist/cjs/src/primitives/index.js.map +1 -1
  89. package/dist/cjs/src/primitives/utils.js +79 -68
  90. package/dist/cjs/src/primitives/utils.js.map +1 -1
  91. package/dist/cjs/src/script/OP.js +3 -3
  92. package/dist/cjs/src/script/OP.js.map +1 -1
  93. package/dist/cjs/src/script/Script.js +12 -10
  94. package/dist/cjs/src/script/Script.js.map +1 -1
  95. package/dist/cjs/src/script/Spend.js +47 -49
  96. package/dist/cjs/src/script/Spend.js.map +1 -1
  97. package/dist/cjs/src/script/templates/P2PKH.js +24 -12
  98. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  99. package/dist/cjs/src/script/templates/PushDrop.js +28 -23
  100. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  101. package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
  102. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  103. package/dist/cjs/src/totp/totp.js +2 -1
  104. package/dist/cjs/src/totp/totp.js.map +1 -1
  105. package/dist/cjs/src/transaction/Beef.js +177 -154
  106. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  107. package/dist/cjs/src/transaction/BeefParty.js +24 -24
  108. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  109. package/dist/cjs/src/transaction/BeefTx.js +26 -18
  110. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  111. package/dist/cjs/src/transaction/Broadcaster.js +3 -2
  112. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  113. package/dist/cjs/src/transaction/MerklePath.js +64 -37
  114. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  115. package/dist/cjs/src/transaction/Transaction.js +111 -137
  116. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  117. package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
  118. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  119. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
  120. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  121. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  122. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
  123. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  124. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  125. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  126. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  127. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
  128. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  129. package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
  130. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  131. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
  132. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  133. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  134. package/dist/cjs/src/transaction/index.js.map +1 -1
  135. package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
  136. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  137. package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
  138. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  139. package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
  140. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  141. package/dist/cjs/src/wallet/WalletClient.js +7 -2
  142. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  143. package/dist/cjs/src/wallet/WalletError.js +2 -2
  144. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  145. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
  146. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  147. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
  148. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  149. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  150. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  151. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
  152. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  153. package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
  154. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  155. package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
  156. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  157. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  158. package/dist/esm/mod.js +15 -15
  159. package/dist/esm/src/auth/Peer.js +75 -54
  160. package/dist/esm/src/auth/Peer.js.map +1 -1
  161. package/dist/esm/src/auth/SessionManager.js +14 -9
  162. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  163. package/dist/esm/src/auth/certificates/Certificate.js +15 -11
  164. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  165. package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
  166. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  167. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
  168. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  169. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
  170. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  171. package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
  172. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  173. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
  174. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  175. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  176. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
  177. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  178. package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
  179. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  180. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  181. package/dist/esm/src/compat/BSM.js.map +1 -1
  182. package/dist/esm/src/compat/ECIES.js +165 -116
  183. package/dist/esm/src/compat/ECIES.js.map +1 -1
  184. package/dist/esm/src/compat/HD.js +56 -56
  185. package/dist/esm/src/compat/HD.js.map +1 -1
  186. package/dist/esm/src/compat/Mnemonic.js +95 -89
  187. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  188. package/dist/esm/src/compat/Utxo.js +1 -1
  189. package/dist/esm/src/compat/Utxo.js.map +1 -1
  190. package/dist/esm/src/messages/EncryptedMessage.js +3 -1
  191. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  192. package/dist/esm/src/messages/SignedMessage.js +1 -0
  193. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  194. package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
  195. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  196. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  197. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  198. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
  199. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  200. package/dist/esm/src/primitives/AESGCM.js +1 -0
  201. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  202. package/dist/esm/src/primitives/BasePoint.js +1 -1
  203. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  204. package/dist/esm/src/primitives/BigNumber.js +50 -62
  205. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  206. package/dist/esm/src/primitives/Curve.js +45 -22
  207. package/dist/esm/src/primitives/Curve.js.map +1 -1
  208. package/dist/esm/src/primitives/DRBG.js +2 -8
  209. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  210. package/dist/esm/src/primitives/ECDSA.js +50 -35
  211. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  212. package/dist/esm/src/primitives/Hash.js +188 -213
  213. package/dist/esm/src/primitives/Hash.js.map +1 -1
  214. package/dist/esm/src/primitives/JacobianPoint.js +18 -5
  215. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  216. package/dist/esm/src/primitives/K256.js.map +1 -1
  217. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  218. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  219. package/dist/esm/src/primitives/Point.js +107 -88
  220. package/dist/esm/src/primitives/Point.js.map +1 -1
  221. package/dist/esm/src/primitives/Polynomial.js +4 -2
  222. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  223. package/dist/esm/src/primitives/PrivateKey.js +25 -16
  224. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  225. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  226. package/dist/esm/src/primitives/Random.js +7 -6
  227. package/dist/esm/src/primitives/Random.js.map +1 -1
  228. package/dist/esm/src/primitives/ReductionContext.js +1 -1
  229. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  230. package/dist/esm/src/primitives/Schnorr.js +21 -15
  231. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  232. package/dist/esm/src/primitives/Signature.js +8 -7
  233. package/dist/esm/src/primitives/Signature.js.map +1 -1
  234. package/dist/esm/src/primitives/SymmetricKey.js +13 -13
  235. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  236. package/dist/esm/src/primitives/TransactionSignature.js +22 -12
  237. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  238. package/dist/esm/src/primitives/utils.js +76 -66
  239. package/dist/esm/src/primitives/utils.js.map +1 -1
  240. package/dist/esm/src/script/OP.js +3 -3
  241. package/dist/esm/src/script/OP.js.map +1 -1
  242. package/dist/esm/src/script/Script.js +12 -10
  243. package/dist/esm/src/script/Script.js.map +1 -1
  244. package/dist/esm/src/script/Spend.js +39 -32
  245. package/dist/esm/src/script/Spend.js.map +1 -1
  246. package/dist/esm/src/script/templates/P2PKH.js +26 -11
  247. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  248. package/dist/esm/src/script/templates/PushDrop.js +29 -22
  249. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  250. package/dist/esm/src/script/templates/RPuzzle.js +11 -6
  251. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  252. package/dist/esm/src/totp/totp.js +2 -1
  253. package/dist/esm/src/totp/totp.js.map +1 -1
  254. package/dist/esm/src/transaction/Beef.js +176 -154
  255. package/dist/esm/src/transaction/Beef.js.map +1 -1
  256. package/dist/esm/src/transaction/BeefParty.js +24 -24
  257. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  258. package/dist/esm/src/transaction/BeefTx.js +26 -18
  259. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  260. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  261. package/dist/esm/src/transaction/MerklePath.js +61 -36
  262. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  263. package/dist/esm/src/transaction/Transaction.js +105 -138
  264. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  265. package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
  266. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  267. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  268. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  269. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  270. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  271. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  272. package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
  273. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  274. package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
  275. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  276. package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
  277. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  278. package/dist/esm/src/transaction/http/index.js.map +1 -1
  279. package/dist/esm/src/transaction/index.js.map +1 -1
  280. package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
  281. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  282. package/dist/esm/src/wallet/KeyDeriver.js +60 -52
  283. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  284. package/dist/esm/src/wallet/ProtoWallet.js +75 -29
  285. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  286. package/dist/esm/src/wallet/WalletClient.js +7 -2
  287. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  288. package/dist/esm/src/wallet/WalletError.js +2 -2
  289. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  290. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
  291. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  292. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
  293. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  294. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  295. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  296. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
  297. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  298. package/dist/esm/src/wallet/substrates/XDM.js +8 -3
  299. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  300. package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
  301. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  302. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  303. package/dist/types/mod.d.ts +15 -15
  304. package/dist/types/src/auth/Peer.d.ts +10 -10
  305. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  306. package/dist/types/src/auth/SessionManager.d.ts +4 -4
  307. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  308. package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
  309. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  310. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
  311. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  312. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  313. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
  314. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  315. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  316. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  317. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  318. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  319. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  320. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  321. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  322. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  323. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  324. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  325. package/dist/types/src/compat/BSM.d.ts +1 -1
  326. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  327. package/dist/types/src/compat/ECIES.d.ts +36 -36
  328. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  329. package/dist/types/src/compat/HD.d.ts +51 -51
  330. package/dist/types/src/compat/HD.d.ts.map +1 -1
  331. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  332. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  333. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  334. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  335. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  336. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  337. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  338. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
  339. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  340. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
  341. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  342. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  343. package/dist/types/src/primitives/BasePoint.d.ts +8 -8
  344. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  345. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  346. package/dist/types/src/primitives/Curve.d.ts +14 -7
  347. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  348. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  349. package/dist/types/src/primitives/ECDSA.d.ts +1 -1
  350. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  351. package/dist/types/src/primitives/Hash.d.ts +11 -11
  352. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  353. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  354. package/dist/types/src/primitives/Point.d.ts +14 -10
  355. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  356. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  357. package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
  358. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  359. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  360. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  361. package/dist/types/src/primitives/Schnorr.d.ts +14 -14
  362. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  363. package/dist/types/src/primitives/Signature.d.ts +1 -1
  364. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  365. package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
  366. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  367. package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
  368. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  369. package/dist/types/src/primitives/utils.d.ts +3 -6
  370. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  371. package/dist/types/src/script/Script.d.ts +3 -3
  372. package/dist/types/src/script/Script.d.ts.map +1 -1
  373. package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
  374. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  375. package/dist/types/src/script/Spend.d.ts.map +1 -1
  376. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  377. package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
  378. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  379. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  380. package/dist/types/src/totp/totp.d.ts.map +1 -1
  381. package/dist/types/src/transaction/Beef.d.ts +96 -96
  382. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  383. package/dist/types/src/transaction/BeefParty.d.ts +22 -22
  384. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  385. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  386. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  387. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  388. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  389. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  390. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  391. package/dist/types/src/transaction/Transaction.d.ts +4 -12
  392. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  393. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  394. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  395. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  396. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  397. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  398. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  399. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  400. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  401. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
  402. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  403. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
  404. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  406. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  407. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
  408. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  409. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  410. package/dist/types/src/transaction/index.d.ts.map +1 -1
  411. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
  412. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  413. package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
  414. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  415. package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
  416. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  417. package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
  418. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  419. package/dist/types/src/wallet/WalletClient.d.ts +5 -5
  420. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  421. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
  422. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  423. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  424. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  425. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  426. package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
  427. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  428. package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
  429. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  430. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  431. package/dist/umd/bundle.js +1 -1
  432. package/docs/auth.md +92 -82
  433. package/docs/compat.md +24 -24
  434. package/docs/messages.md +7 -5
  435. package/docs/overlay-tools.md +21 -21
  436. package/docs/primitives.md +336 -315
  437. package/docs/script.md +35 -35
  438. package/docs/swagger/dist/swagger-initializer.js +7 -7
  439. package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
  440. package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
  441. package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
  442. package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
  443. package/docs/swagger/dist/swagger-ui.js +2 -2
  444. package/docs/totp.md +5 -5
  445. package/docs/transaction.md +103 -105
  446. package/docs/wallet-substrates.md +17 -17
  447. package/docs/wallet.md +202 -204
  448. package/mod.ts +15 -15
  449. package/package.json +15 -3
  450. package/src/auth/Peer.ts +271 -121
  451. package/src/auth/SessionManager.ts +17 -10
  452. package/src/auth/__tests/Peer.test.ts +361 -179
  453. package/src/auth/__tests/SessionManager.test.ts +67 -19
  454. package/src/auth/__tests/build.test.ts +11 -0
  455. package/src/auth/certificates/Certificate.ts +27 -14
  456. package/src/auth/certificates/MasterCertificate.ts +106 -62
  457. package/src/auth/certificates/VerifiableCertificate.ts +30 -8
  458. package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
  459. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
  460. package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
  461. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
  462. package/src/auth/certificates/index.ts +1 -1
  463. package/src/auth/clients/AuthFetch.ts +1 -0
  464. package/src/auth/clients/index.ts +1 -1
  465. package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
  466. package/src/auth/transports/index.ts +1 -1
  467. package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
  468. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
  469. package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
  470. package/src/auth/utils/createNonce.ts +11 -3
  471. package/src/auth/utils/getVerifiableCertificates.ts +12 -7
  472. package/src/auth/utils/validateCertificates.ts +57 -39
  473. package/src/auth/utils/verifyNonce.ts +6 -2
  474. package/src/compat/BSM.ts +10 -2
  475. package/src/compat/ECIES.ts +265 -141
  476. package/src/compat/HD.ts +81 -63
  477. package/src/compat/Mnemonic.ts +104 -91
  478. package/src/compat/Utxo.ts +8 -5
  479. package/src/compat/__tests/BSM.test.ts +42 -16
  480. package/src/compat/__tests/ECIES.test.ts +117 -52
  481. package/src/compat/__tests/HD.test.ts +55 -42
  482. package/src/compat/__tests/Mnemonic.test.ts +11 -12
  483. package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
  484. package/src/messages/EncryptedMessage.ts +6 -2
  485. package/src/messages/SignedMessage.ts +14 -8
  486. package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
  487. package/src/messages/__tests/SignedMessage.test.ts +17 -11
  488. package/src/overlay-tools/LookupResolver.ts +108 -56
  489. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
  490. package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
  491. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  492. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  493. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  494. package/src/primitives/AESGCM.ts +2 -0
  495. package/src/primitives/BasePoint.ts +4 -4
  496. package/src/primitives/BigNumber.ts +99 -90
  497. package/src/primitives/Curve.ts +117 -46
  498. package/src/primitives/DRBG.ts +9 -11
  499. package/src/primitives/ECDSA.ts +109 -63
  500. package/src/primitives/Hash.ts +492 -321
  501. package/src/primitives/JacobianPoint.ts +67 -19
  502. package/src/primitives/Point.ts +254 -152
  503. package/src/primitives/Polynomial.ts +8 -3
  504. package/src/primitives/PrivateKey.ts +41 -17
  505. package/src/primitives/PublicKey.ts +13 -3
  506. package/src/primitives/Random.ts +14 -8
  507. package/src/primitives/ReductionContext.ts +1 -1
  508. package/src/primitives/Schnorr.ts +40 -18
  509. package/src/primitives/Signature.ts +26 -16
  510. package/src/primitives/SymmetricKey.ts +14 -14
  511. package/src/primitives/TransactionSignature.ts +41 -17
  512. package/src/primitives/__tests/AESGCM.test.ts +457 -151
  513. package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
  514. package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
  515. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
  516. package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
  517. package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
  518. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
  519. package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
  520. package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
  521. package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
  522. package/src/primitives/__tests/Curve.unit.test.ts +75 -53
  523. package/src/primitives/__tests/DRBG.test.ts +1 -1
  524. package/src/primitives/__tests/DRBG.vectors.ts +45 -75
  525. package/src/primitives/__tests/ECDH.test.ts +15 -8
  526. package/src/primitives/__tests/ECDSA.test.ts +12 -6
  527. package/src/primitives/__tests/HMAC.test.ts +24 -18
  528. package/src/primitives/__tests/Hash.test.ts +57 -46
  529. package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
  530. package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
  531. package/src/primitives/__tests/PrivateKey.test.ts +11 -10
  532. package/src/primitives/__tests/PublicKey.test.ts +64 -53
  533. package/src/primitives/__tests/Random.test.ts +1 -1
  534. package/src/primitives/__tests/Reader.test.ts +240 -219
  535. package/src/primitives/__tests/ReductionContext.test.ts +98 -61
  536. package/src/primitives/__tests/Schnorr.test.ts +249 -237
  537. package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
  538. package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
  539. package/src/primitives/__tests/Writer.test.ts +23 -13
  540. package/src/primitives/__tests/bug-31.test.ts +6 -10
  541. package/src/primitives/__tests/utils.test.ts +70 -19
  542. package/src/primitives/utils.ts +103 -79
  543. package/src/script/Script.ts +18 -12
  544. package/src/script/ScriptTemplate.ts +3 -5
  545. package/src/script/Spend.ts +306 -108
  546. package/src/script/__tests/Script.test.ts +73 -55
  547. package/src/script/__tests/Spend.test.ts +208 -83
  548. package/src/script/__tests/SpendComplex.test.ts +19 -13
  549. package/src/script/__tests/script.invalid.vectors.ts +428 -1796
  550. package/src/script/__tests/script.valid.vectors.ts +728 -2764
  551. package/src/script/templates/P2PKH.ts +34 -12
  552. package/src/script/templates/PushDrop.ts +65 -31
  553. package/src/script/templates/RPuzzle.ts +29 -8
  554. package/src/script/templates/__tests/PushDrop.test.ts +146 -41
  555. package/src/totp/__tests/totp.test.ts +45 -44
  556. package/src/totp/totp.ts +3 -2
  557. package/src/transaction/Beef.ts +269 -174
  558. package/src/transaction/BeefParty.ts +41 -31
  559. package/src/transaction/BeefTx.ts +36 -26
  560. package/src/transaction/Broadcaster.ts +10 -6
  561. package/src/transaction/ChainTracker.ts +2 -2
  562. package/src/transaction/FeeModel.ts +0 -1
  563. package/src/transaction/MerklePath.ts +124 -59
  564. package/src/transaction/Transaction.ts +188 -187
  565. package/src/transaction/TransactionOutput.ts +0 -1
  566. package/src/transaction/__tests/Beef.test.ts +390 -287
  567. package/src/transaction/__tests/MerklePath.test.ts +59 -26
  568. package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
  569. package/src/transaction/__tests/Transaction.test.ts +758 -482
  570. package/src/transaction/__tests/bigtx.vectors.ts +2 -1
  571. package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
  572. package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
  573. package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
  574. package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
  575. package/src/transaction/broadcasters/ARC.ts +69 -38
  576. package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
  577. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
  578. package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
  579. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
  580. package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
  581. package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
  582. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
  583. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
  584. package/src/transaction/http/DefaultHttpClient.ts +5 -4
  585. package/src/transaction/http/FetchHttpClient.ts +18 -9
  586. package/src/transaction/http/HttpClient.ts +27 -22
  587. package/src/transaction/http/NodejsHttpClient.ts +23 -9
  588. package/src/transaction/http/index.ts +5 -1
  589. package/src/transaction/index.ts +5 -1
  590. package/src/wallet/CachedKeyDeriver.ts +151 -82
  591. package/src/wallet/KeyDeriver.ts +186 -105
  592. package/src/wallet/ProtoWallet.ts +121 -52
  593. package/src/wallet/Wallet.interfaces.ts +167 -156
  594. package/src/wallet/WalletClient.ts +314 -59
  595. package/src/wallet/WalletError.ts +2 -2
  596. package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
  597. package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
  598. package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
  599. package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
  600. package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
  601. package/src/wallet/substrates/WalletWireCalls.ts +2 -2
  602. package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
  603. package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
  604. package/src/wallet/substrates/XDM.ts +425 -36
  605. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
  606. package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
  607. package/src/wallet/substrates/window.CWI.ts +520 -61
@@ -9,29 +9,34 @@ const KeyDeriver_js_1 = require("./KeyDeriver.js");
9
9
  */
10
10
  class CachedKeyDeriver {
11
11
  /**
12
- * Initializes the CachedKeyDeriver instance with a root private key and optional cache settings.
13
- * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
14
- * @param {Object} [options] - Optional settings for the cache.
15
- * @param {number} [options.maxCacheSize=1000] - The maximum number of entries to store in the cache.
16
- */
12
+ * Initializes the CachedKeyDeriver instance with a root private key and optional cache settings.
13
+ * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
14
+ * @param {Object} [options] - Optional settings for the cache.
15
+ * @param {number} [options.maxCacheSize=1000] - The maximum number of entries to store in the cache.
16
+ */
17
17
  constructor(rootKey, options) {
18
18
  this.keyDeriver = new KeyDeriver_js_1.KeyDeriver(rootKey);
19
19
  this.cache = new Map();
20
- this.maxCacheSize = (options === null || options === void 0 ? void 0 : options.maxCacheSize) || 1000;
20
+ const maxCacheSize = options === null || options === void 0 ? void 0 : options.maxCacheSize;
21
+ this.maxCacheSize = (maxCacheSize != null && !isNaN(maxCacheSize) && maxCacheSize > 0) ? maxCacheSize : 1000;
21
22
  }
22
23
  /**
23
- * Derives a public key based on protocol ID, key ID, and counterparty.
24
- * Caches the result for future calls with the same parameters.
25
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
26
- * @param {string} keyID - The key identifier.
27
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
28
- * @param {boolean} [forSelf=false] - Whether deriving for self.
29
- * @returns {PublicKey} - The derived public key.
30
- */
24
+ * Derives a public key based on protocol ID, key ID, and counterparty.
25
+ * Caches the result for future calls with the same parameters.
26
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
27
+ * @param {string} keyID - The key identifier.
28
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
29
+ * @param {boolean} [forSelf=false] - Whether deriving for self.
30
+ * @returns {PublicKey} - The derived public key.
31
+ */
31
32
  derivePublicKey(protocolID, keyID, counterparty, forSelf = false) {
32
33
  const cacheKey = this.generateCacheKey('derivePublicKey', protocolID, keyID, counterparty, forSelf);
33
34
  if (this.cache.has(cacheKey)) {
34
- return this.cacheGet(cacheKey);
35
+ const cachedValue = this.cacheGet(cacheKey);
36
+ if (cachedValue === undefined) {
37
+ throw new Error('Cached value is undefined');
38
+ }
39
+ return cachedValue;
35
40
  }
36
41
  else {
37
42
  const result = this.keyDeriver.derivePublicKey(protocolID, keyID, counterparty, forSelf);
@@ -40,17 +45,21 @@ class CachedKeyDeriver {
40
45
  }
41
46
  }
42
47
  /**
43
- * Derives a private key based on protocol ID, key ID, and counterparty.
44
- * Caches the result for future calls with the same parameters.
45
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
46
- * @param {string} keyID - The key identifier.
47
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
48
- * @returns {PrivateKey} - The derived private key.
49
- */
48
+ * Derives a private key based on protocol ID, key ID, and counterparty.
49
+ * Caches the result for future calls with the same parameters.
50
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
51
+ * @param {string} keyID - The key identifier.
52
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
53
+ * @returns {PrivateKey} - The derived private key.
54
+ */
50
55
  derivePrivateKey(protocolID, keyID, counterparty) {
51
56
  const cacheKey = this.generateCacheKey('derivePrivateKey', protocolID, keyID, counterparty);
52
57
  if (this.cache.has(cacheKey)) {
53
- return this.cacheGet(cacheKey);
58
+ const cachedValue = this.cacheGet(cacheKey);
59
+ if (cachedValue === undefined) {
60
+ throw new Error('Cached value is undefined');
61
+ }
62
+ return cachedValue;
54
63
  }
55
64
  else {
56
65
  const result = this.keyDeriver.derivePrivateKey(protocolID, keyID, counterparty);
@@ -59,18 +68,22 @@ class CachedKeyDeriver {
59
68
  }
60
69
  }
61
70
  /**
62
- * Derives a symmetric key based on protocol ID, key ID, and counterparty.
63
- * Caches the result for future calls with the same parameters.
64
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
65
- * @param {string} keyID - The key identifier.
66
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
67
- * @returns {SymmetricKey} - The derived symmetric key.
68
- * @throws {Error} - Throws an error if attempting to derive a symmetric key for 'anyone'.
69
- */
71
+ * Derives a symmetric key based on protocol ID, key ID, and counterparty.
72
+ * Caches the result for future calls with the same parameters.
73
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
74
+ * @param {string} keyID - The key identifier.
75
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
76
+ * @returns {SymmetricKey} - The derived symmetric key.
77
+ * @throws {Error} - Throws an error if attempting to derive a symmetric key for 'anyone'.
78
+ */
70
79
  deriveSymmetricKey(protocolID, keyID, counterparty) {
71
80
  const cacheKey = this.generateCacheKey('deriveSymmetricKey', protocolID, keyID, counterparty);
72
81
  if (this.cache.has(cacheKey)) {
73
- return this.cacheGet(cacheKey);
82
+ const cachedValue = this.cacheGet(cacheKey);
83
+ if (cachedValue === undefined) {
84
+ throw new Error('Cached value is undefined');
85
+ }
86
+ return cachedValue;
74
87
  }
75
88
  else {
76
89
  const result = this.keyDeriver.deriveSymmetricKey(protocolID, keyID, counterparty);
@@ -79,16 +92,20 @@ class CachedKeyDeriver {
79
92
  }
80
93
  }
81
94
  /**
82
- * Reveals the shared secret between the root key and the counterparty.
83
- * Caches the result for future calls with the same parameters.
84
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
85
- * @returns {number[]} - The shared secret as a number array.
86
- * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
87
- */
95
+ * Reveals the shared secret between the root key and the counterparty.
96
+ * Caches the result for future calls with the same parameters.
97
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
98
+ * @returns {number[]} - The shared secret as a number array.
99
+ * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
100
+ */
88
101
  revealCounterpartySecret(counterparty) {
89
102
  const cacheKey = this.generateCacheKey('revealCounterpartySecret', counterparty);
90
103
  if (this.cache.has(cacheKey)) {
91
- return this.cacheGet(cacheKey);
104
+ const cachedValue = this.cacheGet(cacheKey);
105
+ if (cachedValue === undefined) {
106
+ throw new Error('Cached value is undefined');
107
+ }
108
+ return cachedValue;
92
109
  }
93
110
  else {
94
111
  const result = this.keyDeriver.revealCounterpartySecret(counterparty);
@@ -97,17 +114,21 @@ class CachedKeyDeriver {
97
114
  }
98
115
  }
99
116
  /**
100
- * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
101
- * Caches the result for future calls with the same parameters.
102
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
103
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
104
- * @param {string} keyID - The key identifier.
105
- * @returns {number[]} - The specific key association as a number array.
106
- */
117
+ * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
118
+ * Caches the result for future calls with the same parameters.
119
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
120
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
121
+ * @param {string} keyID - The key identifier.
122
+ * @returns {number[]} - The specific key association as a number array.
123
+ */
107
124
  revealSpecificSecret(counterparty, protocolID, keyID) {
108
125
  const cacheKey = this.generateCacheKey('revealSpecificSecret', counterparty, protocolID, keyID);
109
126
  if (this.cache.has(cacheKey)) {
110
- return this.cacheGet(cacheKey);
127
+ const cachedValue = this.cacheGet(cacheKey);
128
+ if (cachedValue === undefined) {
129
+ throw new Error('Cached value is undefined');
130
+ }
131
+ return cachedValue;
111
132
  }
112
133
  else {
113
134
  const result = this.keyDeriver.revealSpecificSecret(counterparty, protocolID, keyID);
@@ -116,20 +137,22 @@ class CachedKeyDeriver {
116
137
  }
117
138
  }
118
139
  /**
119
- * Generates a unique cache key based on the method name and input parameters.
120
- * @param {string} methodName - The name of the method.
121
- * @param {...any} args - The arguments passed to the method.
122
- * @returns {string} - The generated cache key.
123
- */
140
+ * Generates a unique cache key based on the method name and input parameters.
141
+ * @param {string} methodName - The name of the method.
142
+ * @param {...any} args - The arguments passed to the method.
143
+ * @returns {string} - The generated cache key.
144
+ */
124
145
  generateCacheKey(methodName, ...args) {
125
- const serializedArgs = args.map((arg) => this.serializeArgument(arg)).join('|');
146
+ const serializedArgs = args
147
+ .map((arg) => this.serializeArgument(arg))
148
+ .join('|');
126
149
  return `${methodName}|${serializedArgs}`;
127
150
  }
128
151
  /**
129
- * Serializes an argument to a string for use in a cache key.
130
- * @param {any} arg - The argument to serialize.
131
- * @returns {string} - The serialized argument.
132
- */
152
+ * Serializes an argument to a string for use in a cache key.
153
+ * @param {any} arg - The argument to serialize.
154
+ * @returns {string} - The serialized argument.
155
+ */
133
156
  serializeArgument(arg) {
134
157
  if (arg instanceof index_js_1.PublicKey || arg instanceof index_js_1.PrivateKey) {
135
158
  return arg.toString();
@@ -145,22 +168,24 @@ class CachedKeyDeriver {
145
168
  }
146
169
  }
147
170
  /**
148
- * Retrieves an item from the cache and updates its position to reflect recent use.
149
- * @param {string} cacheKey - The key of the cached item.
150
- * @returns {any} - The cached value.
151
- */
171
+ * Retrieves an item from the cache and updates its position to reflect recent use.
172
+ * @param {string} cacheKey - The key of the cached item.
173
+ * @returns {any} - The cached value.
174
+ */
152
175
  cacheGet(cacheKey) {
153
176
  const value = this.cache.get(cacheKey);
154
177
  // Update the entry to reflect recent use
155
178
  this.cache.delete(cacheKey);
156
- this.cache.set(cacheKey, value);
179
+ if (value !== undefined) {
180
+ this.cache.set(cacheKey, value);
181
+ }
157
182
  return value;
158
183
  }
159
184
  /**
160
- * Adds an item to the cache and evicts the least recently used item if necessary.
161
- * @param {string} cacheKey - The key of the item to cache.
162
- * @param {any} value - The value to cache.
163
- */
185
+ * Adds an item to the cache and evicts the least recently used item if necessary.
186
+ * @param {string} cacheKey - The key of the item to cache.
187
+ * @param {any} value - The value to cache.
188
+ */
164
189
  cacheSet(cacheKey, value) {
165
190
  if (this.cache.size >= this.maxCacheSize) {
166
191
  // Evict the least recently used item (first item in Map)
@@ -1 +1 @@
1
- {"version":3,"file":"CachedKeyDeriver.js","sourceRoot":"","sources":["../../../../src/wallet/CachedKeyDeriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CachedKeyDeriver.js","sourceRoot":"","sources":["../../../../src/wallet/CachedKeyDeriver.ts"],"names":[],"mappings":";;AAAA,qDAA4E;AAC5E,mDAA0D;AAG1D;;;;GAIG;AACH,MAAqB,gBAAgB;IAKnC;;;;;OAKG;IACH,YACE,OAA8B,EAC9B,OAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAA4D,CAAA;QAChF,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA;QAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9G,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CACb,UAA0B,EAC1B,KAAa,EACb,YAA0B,EAC1B,UAAmB,KAAK;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,iBAAiB,EACjB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,CACR,CAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC7C;YACD,OAAO,WAAwB,CAAA;SAChC;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAC5C,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,CACR,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;IACH,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CACd,UAA0B,EAC1B,KAAa,EACb,YAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,kBAAkB,EAClB,UAAU,EACV,KAAK,EACL,YAAY,CACb,CAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC7C;YACD,OAAO,WAAyB,CAAA;SACjC;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAC7C,UAAU,EACV,KAAK,EACL,YAAY,CACb,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,kBAAkB,CAChB,UAA0B,EAC1B,KAAa,EACb,YAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,oBAAoB,EACpB,UAAU,EACV,KAAK,EACL,YAAY,CACb,CAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC7C;YACD,OAAO,WAA2B,CAAA;SACnC;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAC/C,UAAU,EACV,KAAK,EACL,YAAY,CACb,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;IACH,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CAAE,YAA0B;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,0BAA0B,EAC1B,YAAY,CACb,CAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC7C;YACD,OAAO,WAAuB,CAAA;SAC/B;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAA;YACrE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;IACH,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAClB,YAA0B,EAC1B,UAA0B,EAC1B,KAAa;QAEb,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CACpC,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,KAAK,CACN,CAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC7C;YACD,OAAO,WAAuB,CAAA;SAC/B;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACjD,YAAY,EACZ,UAAU,EACV,KAAK,CACN,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;IACH,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAE,UAAkB,EAAE,GAAG,IAA+F;QAC9I,MAAM,cAAc,GAAG,IAAI;aACxB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,GAAG,UAAU,IAAI,cAAc,EAAE,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAE,GAAuG;QAChI,IAAI,GAAG,YAAY,oBAAS,IAAI,GAAG,YAAY,qBAAU,EAAE;YACzD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;SACtB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACjE;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YAClD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;SAC3B;aAAM;YACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;SACnB;IACH,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAE,QAAgB;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtC,yCAAyC;QACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;SAChC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAE,QAAgB,EAAE,KAAuD;QACzF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;YACxC,yDAAyD;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAC5B;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AA7PD,mCA6PC"}
@@ -8,9 +8,9 @@ const index_js_1 = require("../primitives/index.js");
8
8
  */
9
9
  class KeyDeriver {
10
10
  /**
11
- * Initializes the KeyDeriver instance with a root private key.
12
- * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
13
- */
11
+ * Initializes the KeyDeriver instance with a root private key.
12
+ * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
13
+ */
14
14
  constructor(rootKey) {
15
15
  if (rootKey === 'anyone') {
16
16
  this.rootKey = new index_js_1.PrivateKey(1);
@@ -21,42 +21,45 @@ class KeyDeriver {
21
21
  this.identityKey = this.rootKey.toPublicKey().toString();
22
22
  }
23
23
  /**
24
- * Derives a public key based on protocol ID, key ID, and counterparty.
25
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
26
- * @param {string} keyID - The key identifier.
27
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
28
- * @param {boolean} [forSelf=false] - Whether deriving for self.
29
- * @returns {PublicKey} - The derived public key.
30
- */
24
+ * Derives a public key based on protocol ID, key ID, and counterparty.
25
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
26
+ * @param {string} keyID - The key identifier.
27
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
28
+ * @param {boolean} [forSelf=false] - Whether deriving for self.
29
+ * @returns {PublicKey} - The derived public key.
30
+ */
31
31
  derivePublicKey(protocolID, keyID, counterparty, forSelf = false) {
32
32
  counterparty = this.normalizeCounterparty(counterparty);
33
33
  if (forSelf) {
34
- return this.rootKey.deriveChild(counterparty, this.computeInvoiceNumber(protocolID, keyID)).toPublicKey();
34
+ return this.rootKey
35
+ .deriveChild(counterparty, this.computeInvoiceNumber(protocolID, keyID))
36
+ .toPublicKey();
35
37
  }
36
38
  else {
37
39
  return counterparty.deriveChild(this.rootKey, this.computeInvoiceNumber(protocolID, keyID));
38
40
  }
39
41
  }
40
42
  /**
41
- * Derives a private key based on protocol ID, key ID, and counterparty.
42
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
43
- * @param {string} keyID - The key identifier.
44
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
45
- * @returns {PrivateKey} - The derived private key.
46
- */
43
+ * Derives a private key based on protocol ID, key ID, and counterparty.
44
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
45
+ * @param {string} keyID - The key identifier.
46
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
47
+ * @returns {PrivateKey} - The derived private key.
48
+ */
47
49
  derivePrivateKey(protocolID, keyID, counterparty) {
48
50
  counterparty = this.normalizeCounterparty(counterparty);
49
51
  return this.rootKey.deriveChild(counterparty, this.computeInvoiceNumber(protocolID, keyID));
50
52
  }
51
53
  /**
52
- * Derives a symmetric key based on protocol ID, key ID, and counterparty.
53
- * Note: Symmetric keys should not be derivable by everyone due to security risks.
54
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
55
- * @param {string} keyID - The key identifier.
56
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
57
- * @returns {SymmetricKey} - The derived symmetric key.
58
- */
54
+ * Derives a symmetric key based on protocol ID, key ID, and counterparty.
55
+ * Note: Symmetric keys should not be derivable by everyone due to security risks.
56
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
57
+ * @param {string} keyID - The key identifier.
58
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
59
+ * @returns {SymmetricKey} - The derived symmetric key.
60
+ */
59
61
  deriveSymmetricKey(protocolID, keyID, counterparty) {
62
+ var _a, _b, _c;
60
63
  // If counterparty is 'anyone', we use 1*G as the public key.
61
64
  // This is a publicly derivable key and should only be used in scenarios where public disclosure is intended.
62
65
  if (counterparty === 'anyone') {
@@ -65,15 +68,15 @@ class KeyDeriver {
65
68
  counterparty = this.normalizeCounterparty(counterparty);
66
69
  const derivedPublicKey = this.derivePublicKey(protocolID, keyID, counterparty);
67
70
  const derivedPrivateKey = this.derivePrivateKey(protocolID, keyID, counterparty);
68
- return new index_js_1.SymmetricKey(derivedPrivateKey.deriveSharedSecret(derivedPublicKey).x.toArray());
71
+ return new index_js_1.SymmetricKey((_c = (_b = (_a = derivedPrivateKey.deriveSharedSecret(derivedPublicKey)) === null || _a === void 0 ? void 0 : _a.x) === null || _b === void 0 ? void 0 : _b.toArray()) !== null && _c !== void 0 ? _c : []);
69
72
  }
70
73
  /**
71
- * Reveals the shared secret between the root key and the counterparty.
72
- * Note: This should not be used for 'self'.
73
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
74
- * @returns {number[]} - The shared secret as a number array.
75
- * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
76
- */
74
+ * Reveals the shared secret between the root key and the counterparty.
75
+ * Note: This should not be used for 'self'.
76
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
77
+ * @returns {number[]} - The shared secret as a number array.
78
+ * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
79
+ */
77
80
  revealCounterpartySecret(counterparty) {
78
81
  if (counterparty === 'self') {
79
82
  throw new Error('Counterparty secrets cannot be revealed for counterparty=self.');
@@ -82,19 +85,23 @@ class KeyDeriver {
82
85
  // Double-check to ensure not revealing the secret for 'self'
83
86
  const self = this.rootKey.toPublicKey();
84
87
  const keyDerivedBySelf = this.rootKey.deriveChild(self, 'test').toHex();
85
- const keyDerivedByCounterparty = this.rootKey.deriveChild(counterparty, 'test').toHex();
88
+ const keyDerivedByCounterparty = this.rootKey
89
+ .deriveChild(counterparty, 'test')
90
+ .toHex();
86
91
  if (keyDerivedBySelf === keyDerivedByCounterparty) {
87
92
  throw new Error('Counterparty secrets cannot be revealed for counterparty=self.');
88
93
  }
89
- return this.rootKey.deriveSharedSecret(counterparty).encode(true);
94
+ return this.rootKey
95
+ .deriveSharedSecret(counterparty)
96
+ .encode(true);
90
97
  }
91
98
  /**
92
- * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
93
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
94
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
95
- * @param {string} keyID - The key identifier.
96
- * @returns {number[]} - The specific key association as a number array.
97
- */
99
+ * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
100
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
101
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
102
+ * @param {string} keyID - The key identifier.
103
+ * @returns {number[]} - The specific key association as a number array.
104
+ */
98
105
  revealSpecificSecret(counterparty, protocolID, keyID) {
99
106
  counterparty = this.normalizeCounterparty(counterparty);
100
107
  const sharedSecret = this.rootKey.deriveSharedSecret(counterparty);
@@ -102,13 +109,13 @@ class KeyDeriver {
102
109
  return index_js_1.Hash.sha256hmac(sharedSecret.encode(true), invoiceNumberBin);
103
110
  }
104
111
  /**
105
- * Normalizes the counterparty to a public key.
106
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
107
- * @returns {PublicKey} - The normalized counterparty public key.
108
- * @throws {Error} - Throws an error if the counterparty is invalid.
109
- */
112
+ * Normalizes the counterparty to a public key.
113
+ * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
114
+ * @returns {PublicKey} - The normalized counterparty public key.
115
+ * @throws {Error} - Throws an error if the counterparty is invalid.
116
+ */
110
117
  normalizeCounterparty(counterparty) {
111
- if (!counterparty) {
118
+ if (counterparty === null || counterparty === undefined) {
112
119
  throw new Error('counterparty must be self, anyone or a public key!');
113
120
  }
114
121
  else if (counterparty === 'self') {
@@ -125,15 +132,17 @@ class KeyDeriver {
125
132
  }
126
133
  }
127
134
  /**
128
- * Computes the invoice number based on the protocol ID and key ID.
129
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
130
- * @param {string} keyID - The key identifier.
131
- * @returns {string} - The computed invoice number.
132
- * @throws {Error} - Throws an error if protocol ID or key ID are invalid.
133
- */
135
+ * Computes the invoice number based on the protocol ID and key ID.
136
+ * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
137
+ * @param {string} keyID - The key identifier.
138
+ * @returns {string} - The computed invoice number.
139
+ * @throws {Error} - Throws an error if protocol ID or key ID are invalid.
140
+ */
134
141
  computeInvoiceNumber(protocolID, keyID) {
135
142
  const securityLevel = protocolID[0];
136
- if (!Number.isInteger(securityLevel) || securityLevel < 0 || securityLevel > 2) {
143
+ if (!Number.isInteger(securityLevel) ||
144
+ securityLevel < 0 ||
145
+ securityLevel > 2) {
137
146
  throw new Error('Protocol security level must be 0, 1, or 2');
138
147
  }
139
148
  const protocolName = protocolID[1].toLowerCase().trim();
@@ -1 +1 @@
1
- {"version":3,"file":"KeyDeriver.js","sourceRoot":"","sources":["../../../../src/wallet/KeyDeriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyDeriver.js","sourceRoot":"","sources":["../../../../src/wallet/KeyDeriver.ts"],"names":[],"mappings":"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"}