@bsv/sdk 2.1.0 → 2.1.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 (383) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/auth/Peer.js +8 -13
  4. package/dist/cjs/src/auth/Peer.js.map +1 -1
  5. package/dist/cjs/src/auth/SessionManager.js +4 -7
  6. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  7. package/dist/cjs/src/auth/certificates/MasterCertificate.js +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  9. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  10. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  11. package/dist/cjs/src/auth/clients/AuthFetch.js +32 -32
  12. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  13. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +4 -4
  14. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  15. package/dist/cjs/src/compat/ECIES.js +29 -34
  16. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  17. package/dist/cjs/src/compat/HD.js +9 -4
  18. package/dist/cjs/src/compat/HD.js.map +1 -1
  19. package/dist/cjs/src/compat/Mnemonic.js +12 -12
  20. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  21. package/dist/cjs/src/identity/ContactsManager.js +172 -232
  22. package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
  23. package/dist/cjs/src/identity/IdentityClient.js +122 -55
  24. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  25. package/dist/cjs/src/kvstore/GlobalKVStore.js +30 -31
  26. package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
  27. package/dist/cjs/src/kvstore/LocalKVStore.js +9 -9
  28. package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
  29. package/dist/cjs/src/kvstore/kvStoreInterpreter.js +2 -2
  30. package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -1
  31. package/dist/cjs/src/messages/SignedMessage.js +1 -1
  32. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  33. package/dist/cjs/src/overlay-tools/Historian.js +1 -1
  34. package/dist/cjs/src/overlay-tools/Historian.js.map +1 -1
  35. package/dist/cjs/src/overlay-tools/LookupResolver.js +139 -46
  36. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  37. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +75 -146
  38. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  39. package/dist/cjs/src/primitives/AESGCM.js +2 -2
  40. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  41. package/dist/cjs/src/primitives/BigNumber.js +164 -148
  42. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  43. package/dist/cjs/src/primitives/Curve.js +17 -15
  44. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  45. package/dist/cjs/src/primitives/ECDSA.js +12 -7
  46. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  47. package/dist/cjs/src/primitives/Hash.js +140 -56
  48. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  49. package/dist/cjs/src/primitives/JacobianPoint.js +8 -8
  50. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  51. package/dist/cjs/src/primitives/K256.js +3 -3
  52. package/dist/cjs/src/primitives/K256.js.map +1 -1
  53. package/dist/cjs/src/primitives/Point.js +36 -40
  54. package/dist/cjs/src/primitives/Point.js.map +1 -1
  55. package/dist/cjs/src/primitives/PrivateKey.js +4 -4
  56. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  57. package/dist/cjs/src/primitives/PublicKey.js +4 -4
  58. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  59. package/dist/cjs/src/primitives/Random.js +10 -14
  60. package/dist/cjs/src/primitives/Random.js.map +1 -1
  61. package/dist/cjs/src/primitives/ReaderUint8Array.js +6 -6
  62. package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -1
  63. package/dist/cjs/src/primitives/Schnorr.js +2 -2
  64. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  65. package/dist/cjs/src/primitives/Secp256r1.js +2 -1
  66. package/dist/cjs/src/primitives/Secp256r1.js.map +1 -1
  67. package/dist/cjs/src/primitives/Signature.js +8 -8
  68. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  69. package/dist/cjs/src/primitives/TransactionSignature.js +20 -21
  70. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  71. package/dist/cjs/src/primitives/utils.js +39 -46
  72. package/dist/cjs/src/primitives/utils.js.map +1 -1
  73. package/dist/cjs/src/registry/RegistryClient.js +31 -23
  74. package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
  75. package/dist/cjs/src/remittance/RemittanceManager.js +19 -18
  76. package/dist/cjs/src/remittance/RemittanceManager.js.map +1 -1
  77. package/dist/cjs/src/remittance/modules/BasicBRC29.js.map +1 -1
  78. package/dist/cjs/src/script/Script.js +93 -170
  79. package/dist/cjs/src/script/Script.js.map +1 -1
  80. package/dist/cjs/src/script/ScriptEvaluationError.js +2 -2
  81. package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -1
  82. package/dist/cjs/src/script/Spend.js +14 -12
  83. package/dist/cjs/src/script/Spend.js.map +1 -1
  84. package/dist/cjs/src/script/templates/PushDrop.js +22 -18
  85. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  86. package/dist/cjs/src/script/templates/RPuzzle.js +2 -4
  87. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  88. package/dist/cjs/src/storage/StorageDownloader.js +42 -9
  89. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  90. package/dist/cjs/src/totp/totp.js +1 -1
  91. package/dist/cjs/src/totp/totp.js.map +1 -1
  92. package/dist/cjs/src/transaction/Beef.js +239 -192
  93. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  94. package/dist/cjs/src/transaction/BeefConstants.js +19 -0
  95. package/dist/cjs/src/transaction/BeefConstants.js.map +1 -0
  96. package/dist/cjs/src/transaction/BeefTx.js +12 -12
  97. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  98. package/dist/cjs/src/transaction/MerklePath.js +4 -4
  99. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  100. package/dist/cjs/src/transaction/Transaction.js +49 -52
  101. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  102. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
  103. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  104. package/dist/cjs/src/transaction/http/BinaryFetchClient.js +9 -9
  105. package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
  106. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +9 -9
  107. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  108. package/dist/cjs/src/wallet/CachedKeyDeriver.js +1 -1
  109. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  110. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  111. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  112. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -4
  113. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  114. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +9 -9
  115. package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  116. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +92 -92
  117. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  118. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +387 -711
  119. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  120. package/dist/cjs/src/wallet/substrates/XDM.js +4 -4
  121. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  122. package/dist/cjs/src/wallet/substrates/window.CWI.js +2 -2
  123. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  124. package/dist/cjs/src/wallet/validationHelpers.js +9 -9
  125. package/dist/cjs/src/wallet/validationHelpers.js.map +1 -1
  126. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  127. package/dist/esm/src/auth/Peer.js +25 -13
  128. package/dist/esm/src/auth/Peer.js.map +1 -1
  129. package/dist/esm/src/auth/SessionManager.js +4 -7
  130. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  131. package/dist/esm/src/auth/certificates/MasterCertificate.js +1 -1
  132. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  133. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
  134. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  135. package/dist/esm/src/auth/clients/AuthFetch.js +32 -32
  136. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  137. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +4 -4
  138. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  139. package/dist/esm/src/compat/ECIES.js +29 -34
  140. package/dist/esm/src/compat/ECIES.js.map +1 -1
  141. package/dist/esm/src/compat/HD.js +9 -4
  142. package/dist/esm/src/compat/HD.js.map +1 -1
  143. package/dist/esm/src/compat/Mnemonic.js +12 -12
  144. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  145. package/dist/esm/src/identity/ContactsManager.js +172 -232
  146. package/dist/esm/src/identity/ContactsManager.js.map +1 -1
  147. package/dist/esm/src/identity/IdentityClient.js +122 -55
  148. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  149. package/dist/esm/src/kvstore/GlobalKVStore.js +30 -31
  150. package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
  151. package/dist/esm/src/kvstore/LocalKVStore.js +9 -9
  152. package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
  153. package/dist/esm/src/kvstore/kvStoreInterpreter.js +2 -2
  154. package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -1
  155. package/dist/esm/src/messages/SignedMessage.js +1 -1
  156. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  157. package/dist/esm/src/overlay-tools/Historian.js +1 -1
  158. package/dist/esm/src/overlay-tools/Historian.js.map +1 -1
  159. package/dist/esm/src/overlay-tools/LookupResolver.js +139 -46
  160. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  161. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +74 -146
  162. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  163. package/dist/esm/src/primitives/AESGCM.js +2 -2
  164. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  165. package/dist/esm/src/primitives/BigNumber.js +167 -154
  166. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  167. package/dist/esm/src/primitives/Curve.js +17 -15
  168. package/dist/esm/src/primitives/Curve.js.map +1 -1
  169. package/dist/esm/src/primitives/ECDSA.js +12 -7
  170. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  171. package/dist/esm/src/primitives/Hash.js +140 -56
  172. package/dist/esm/src/primitives/Hash.js.map +1 -1
  173. package/dist/esm/src/primitives/JacobianPoint.js +8 -8
  174. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  175. package/dist/esm/src/primitives/K256.js +3 -3
  176. package/dist/esm/src/primitives/K256.js.map +1 -1
  177. package/dist/esm/src/primitives/Point.js +36 -40
  178. package/dist/esm/src/primitives/Point.js.map +1 -1
  179. package/dist/esm/src/primitives/PrivateKey.js +4 -4
  180. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  181. package/dist/esm/src/primitives/PublicKey.js +4 -4
  182. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  183. package/dist/esm/src/primitives/Random.js +10 -14
  184. package/dist/esm/src/primitives/Random.js.map +1 -1
  185. package/dist/esm/src/primitives/ReaderUint8Array.js +6 -6
  186. package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -1
  187. package/dist/esm/src/primitives/Schnorr.js +1 -1
  188. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  189. package/dist/esm/src/primitives/Secp256r1.js +2 -1
  190. package/dist/esm/src/primitives/Secp256r1.js.map +1 -1
  191. package/dist/esm/src/primitives/Signature.js +8 -8
  192. package/dist/esm/src/primitives/Signature.js.map +1 -1
  193. package/dist/esm/src/primitives/TransactionSignature.js +20 -21
  194. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  195. package/dist/esm/src/primitives/utils.js +39 -48
  196. package/dist/esm/src/primitives/utils.js.map +1 -1
  197. package/dist/esm/src/registry/RegistryClient.js +31 -23
  198. package/dist/esm/src/registry/RegistryClient.js.map +1 -1
  199. package/dist/esm/src/remittance/RemittanceManager.js +19 -18
  200. package/dist/esm/src/remittance/RemittanceManager.js.map +1 -1
  201. package/dist/esm/src/remittance/modules/BasicBRC29.js.map +1 -1
  202. package/dist/esm/src/script/Script.js +93 -170
  203. package/dist/esm/src/script/Script.js.map +1 -1
  204. package/dist/esm/src/script/ScriptEvaluationError.js +2 -2
  205. package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -1
  206. package/dist/esm/src/script/Spend.js +14 -12
  207. package/dist/esm/src/script/Spend.js.map +1 -1
  208. package/dist/esm/src/script/templates/PushDrop.js +4 -3
  209. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  210. package/dist/esm/src/script/templates/RPuzzle.js +2 -4
  211. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  212. package/dist/esm/src/storage/StorageDownloader.js +1 -1
  213. package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
  214. package/dist/esm/src/totp/totp.js +1 -1
  215. package/dist/esm/src/totp/totp.js.map +1 -1
  216. package/dist/esm/src/transaction/Beef.js +229 -186
  217. package/dist/esm/src/transaction/Beef.js.map +1 -1
  218. package/dist/esm/src/transaction/BeefConstants.js +16 -0
  219. package/dist/esm/src/transaction/BeefConstants.js.map +1 -0
  220. package/dist/esm/src/transaction/BeefTx.js +3 -3
  221. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  222. package/dist/esm/src/transaction/MerklePath.js +4 -4
  223. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  224. package/dist/esm/src/transaction/Transaction.js +49 -52
  225. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  226. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
  227. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  228. package/dist/esm/src/transaction/http/BinaryFetchClient.js +9 -9
  229. package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
  230. package/dist/esm/src/transaction/http/DefaultHttpClient.js +9 -9
  231. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  232. package/dist/esm/src/wallet/CachedKeyDeriver.js +1 -1
  233. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  234. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  235. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  236. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -4
  237. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  238. package/dist/esm/src/wallet/substrates/ReactNativeWebView.js +9 -9
  239. package/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
  240. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +92 -92
  241. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  242. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +387 -711
  243. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  244. package/dist/esm/src/wallet/substrates/XDM.js +4 -4
  245. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  246. package/dist/esm/src/wallet/substrates/window.CWI.js +2 -2
  247. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  248. package/dist/esm/src/wallet/validationHelpers.js +9 -9
  249. package/dist/esm/src/wallet/validationHelpers.js.map +1 -1
  250. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  251. package/dist/types/src/auth/Peer.d.ts +13 -0
  252. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  253. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  254. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  255. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  256. package/dist/types/src/compat/HD.d.ts.map +1 -1
  257. package/dist/types/src/identity/ContactsManager.d.ts +18 -0
  258. package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
  259. package/dist/types/src/identity/IdentityClient.d.ts +47 -8
  260. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
  261. package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
  262. package/dist/types/src/overlay-tools/LookupResolver.d.ts +59 -1
  263. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  264. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +18 -3
  265. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  266. package/dist/types/src/primitives/BigNumber.d.ts +13 -3
  267. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  268. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  269. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  270. package/dist/types/src/primitives/Hash.d.ts +3 -3
  271. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  272. package/dist/types/src/primitives/JacobianPoint.d.ts +3 -1
  273. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  274. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  275. package/dist/types/src/primitives/Random.d.ts +2 -2
  276. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  277. package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -1
  278. package/dist/types/src/primitives/Schnorr.d.ts +2 -1
  279. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  280. package/dist/types/src/primitives/Secp256r1.d.ts.map +1 -1
  281. package/dist/types/src/primitives/utils.d.ts +2 -4
  282. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  283. package/dist/types/src/registry/RegistryClient.d.ts.map +1 -1
  284. package/dist/types/src/remittance/RemittanceManager.d.ts.map +1 -1
  285. package/dist/types/src/remittance/modules/BasicBRC29.d.ts.map +1 -1
  286. package/dist/types/src/script/Script.d.ts +15 -8
  287. package/dist/types/src/script/Script.d.ts.map +1 -1
  288. package/dist/types/src/script/Spend.d.ts.map +1 -1
  289. package/dist/types/src/script/templates/PushDrop.d.ts +3 -1
  290. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  291. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  292. package/dist/types/src/transaction/Beef.d.ts +46 -8
  293. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  294. package/dist/types/src/transaction/BeefConstants.d.ts +15 -0
  295. package/dist/types/src/transaction/BeefConstants.d.ts.map +1 -0
  296. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  297. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  298. package/dist/types/src/wallet/KeyDeriver.d.ts +1 -1
  299. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  300. package/dist/types/src/wallet/Wallet.interfaces.d.ts +2 -2
  301. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  302. package/dist/types/src/wallet/WalletClient.d.ts +7 -7
  303. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  304. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +7 -7
  305. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  306. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +36 -7
  307. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  308. package/dist/types/src/wallet/substrates/window.CWI.d.ts +8 -8
  309. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  310. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  311. package/dist/umd/bundle.js +3 -3
  312. package/package.json +1 -1
  313. package/src/auth/Peer.ts +26 -13
  314. package/src/auth/SessionManager.ts +4 -7
  315. package/src/auth/certificates/MasterCertificate.ts +1 -1
  316. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -1
  317. package/src/auth/clients/AuthFetch.ts +41 -41
  318. package/src/auth/transports/SimplifiedFetchTransport.ts +4 -4
  319. package/src/compat/ECIES.ts +29 -34
  320. package/src/compat/HD.ts +10 -5
  321. package/src/compat/Mnemonic.ts +11 -11
  322. package/src/compat/__tests/HD.test.ts +19 -0
  323. package/src/identity/ContactsManager.ts +194 -257
  324. package/src/identity/IdentityClient.ts +155 -66
  325. package/src/identity/__tests/IdentityClient.test.ts +25 -1
  326. package/src/kvstore/GlobalKVStore.ts +31 -32
  327. package/src/kvstore/LocalKVStore.ts +8 -8
  328. package/src/kvstore/kvStoreInterpreter.ts +2 -2
  329. package/src/messages/SignedMessage.ts +1 -1
  330. package/src/overlay-tools/Historian.ts +1 -1
  331. package/src/overlay-tools/LookupResolver.ts +182 -45
  332. package/src/overlay-tools/SHIPBroadcaster.ts +92 -168
  333. package/src/primitives/AESGCM.ts +2 -2
  334. package/src/primitives/BigNumber.ts +122 -113
  335. package/src/primitives/Curve.ts +16 -15
  336. package/src/primitives/ECDSA.ts +10 -8
  337. package/src/primitives/Hash.ts +152 -53
  338. package/src/primitives/JacobianPoint.ts +13 -11
  339. package/src/primitives/K256.ts +3 -3
  340. package/src/primitives/Point.ts +35 -38
  341. package/src/primitives/PrivateKey.ts +3 -3
  342. package/src/primitives/PublicKey.ts +3 -3
  343. package/src/primitives/Random.ts +11 -14
  344. package/src/primitives/ReaderUint8Array.ts +7 -7
  345. package/src/primitives/Schnorr.ts +2 -1
  346. package/src/primitives/Secp256r1.ts +2 -1
  347. package/src/primitives/Signature.ts +8 -8
  348. package/src/primitives/TransactionSignature.ts +16 -16
  349. package/src/primitives/utils.ts +37 -47
  350. package/src/registry/RegistryClient.ts +25 -25
  351. package/src/remittance/RemittanceManager.ts +17 -18
  352. package/src/remittance/modules/BasicBRC29.ts +2 -5
  353. package/src/script/Script.ts +114 -170
  354. package/src/script/ScriptEvaluationError.ts +2 -2
  355. package/src/script/Spend.ts +14 -15
  356. package/src/script/templates/PushDrop.ts +5 -3
  357. package/src/script/templates/RPuzzle.ts +2 -4
  358. package/src/storage/StorageDownloader.ts +1 -1
  359. package/src/totp/totp.ts +1 -1
  360. package/src/transaction/Beef.ts +241 -203
  361. package/src/transaction/BeefConstants.ts +16 -0
  362. package/src/transaction/BeefTx.ts +3 -3
  363. package/src/transaction/MerklePath.ts +4 -4
  364. package/src/transaction/Transaction.ts +48 -51
  365. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +1 -1
  366. package/src/transaction/http/BinaryFetchClient.ts +8 -8
  367. package/src/transaction/http/DefaultHttpClient.ts +8 -8
  368. package/src/wallet/CachedKeyDeriver.ts +8 -6
  369. package/src/wallet/KeyDeriver.ts +1 -1
  370. package/src/wallet/Wallet.interfaces.ts +2 -4
  371. package/src/wallet/WalletClient.ts +8 -8
  372. package/src/wallet/WalletError.ts +1 -1
  373. package/src/wallet/__tests/WalletClient.substrate.test.ts +10 -6
  374. package/src/wallet/substrates/HTTPWalletJSON.ts +22 -21
  375. package/src/wallet/substrates/ReactNativeWebView.ts +9 -9
  376. package/src/wallet/substrates/WalletWireProcessor.ts +83 -83
  377. package/src/wallet/substrates/WalletWireTransceiver.ts +528 -938
  378. package/src/wallet/substrates/XDM.ts +4 -4
  379. package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +38 -25
  380. package/src/wallet/substrates/__tests/ReactNativeWebView.test.ts +174 -0
  381. package/src/wallet/substrates/__tests/window.CWI.test.ts +256 -0
  382. package/src/wallet/substrates/window.CWI.ts +10 -10
  383. package/src/wallet/validationHelpers.ts +9 -9
@@ -19,9 +19,9 @@ import { kvProtocol } from './types.js';
19
19
  export const kvStoreInterpreter = async (transaction, outputIndex, ctx) => {
20
20
  try {
21
21
  const output = transaction.outputs[outputIndex];
22
- if (output == null || output.lockingScript == null)
22
+ if (output?.lockingScript == null)
23
23
  return undefined;
24
- if (ctx == null || ctx.key == null)
24
+ if (ctx?.key == null)
25
25
  return undefined;
26
26
  // Decode the KVStore token
27
27
  const decoded = PushDrop.decode(output.lockingScript);
@@ -1 +1 @@
1
- {"version":3,"file":"kvStoreInterpreter.js","sourceRoot":"","sources":["../../../../src/kvstore/kvStoreInterpreter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2C,KAAK,EAAE,WAAwB,EAAE,WAAmB,EAAE,GAAe,EAA+B,EAAE;IAC9K,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QACpE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QAEpD,2BAA2B;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAErD,iFAAiF;QACjF,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAA;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,GAAG,CAAC,CAAA;QAEpE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAA;QAEnD,sDAAsD;QACtD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAA;QACtF,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"kvStoreInterpreter.js","sourceRoot":"","sources":["../../../../src/kvstore/kvStoreInterpreter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2C,KAAK,EAAE,WAAwB,EAAE,WAAmB,EAAE,GAAe,EAA+B,EAAE;IAC9K,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,MAAM,EAAE,aAAa,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QACnD,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI;YAAE,OAAO,SAAS,CAAA;QAEtC,2BAA2B;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAErD,iFAAiF;QACjF,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;QACzD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAA;QACjE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,GAAG,CAAC,CAAA;QAEpE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAA;QAEnD,sDAAsD;QACtD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAA;QACtF,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA"}
@@ -60,7 +60,7 @@ export const verify = (message, sig, recipient) => {
60
60
  const verifierRest = reader.read(32);
61
61
  const verifierDER = toHex([verifierFirst, ...verifierRest]);
62
62
  if (typeof recipient !== 'object') {
63
- throw new Error(`This signature can only be verified with knowledge of a specific private key. The associated public key is: ${verifierDER}`);
63
+ throw new TypeError(`This signature can only be verified with knowledge of a specific private key. The associated public key is: ${verifierDER}`);
64
64
  }
65
65
  const recipientDER = recipient.toPublicKey().encode(true, 'hex');
66
66
  if (verifierDER !== recipientDER) {
@@ -1 +1 @@
1
- {"version":3,"file":"SignedMessage.js","sourceRoot":"","sources":["../../../../src/messages/SignedMessage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignedMessage.js","sourceRoot":"","sources":["../../../../src/messages/SignedMessage.ts"],"names":[],"mappings":"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"}
@@ -141,7 +141,7 @@ export class Historian {
141
141
  await traverseHistory(startTransaction);
142
142
  // History is built in reverse chronological order during traversal,
143
143
  // so we reverse it to return oldest-first
144
- const chronological = history.reverse();
144
+ const chronological = history.toReversed();
145
145
  if (this.historyCache != null) {
146
146
  const cacheKey = this.historyKey(startTransaction, context);
147
147
  // Store an immutable snapshot to avoid accidental external mutation
@@ -1 +1 @@
1
- {"version":3,"file":"Historian.js","sourceRoot":"","sources":["../../../../src/overlay-tools/Historian.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Historian.js","sourceRoot":"","sources":["../../../../src/overlay-tools/Historian.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,SAAS;IACH,WAAW,CAA2B;IACtC,KAAK,CAAS;IAE/B,gCAAgC;IACf,YAAY,CAA4B;IACxC,kBAAkB,CAAQ;IAC1B,QAAQ,CAAqB;IAE9C;;;;;;;;;OASG;IACH,YACE,WAAsC,EACtC,OAQC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAA;QAEpC,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,CAAA;QACzC,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAI,CAAA;QAC7D,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAO,EAAE,EAAE;YAChD,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAA;YAAC,CAAC;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,UAAU,CAAE,gBAA6B,EAAE,OAAW;QAC5D,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACrC,OAAO,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAA;IACvD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAAE,gBAA6B,EAAE,OAAW;QAC5D,kCAAkC;QAClC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAC3D,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC9C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,KAAK;wBAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAA;oBACvE,uEAAuE;oBACvE,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAQ,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QAEjC,2DAA2D;QAC3D,MAAM,eAAe,GAAG,KAAK,EAAE,WAAwB,EAAiB,EAAE;YACxE,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;YAElC,yBAAyB;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,qDAAqD,IAAI,EAAE,CAAC,CAAA;gBAC1E,CAAC;gBACD,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAA;YAC5D,CAAC;YAED,iEAAiE;YACjE,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;gBAClF,IAAI,CAAC;oBACH,+BAA+B;oBAC/B,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;oBAEnG,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACnC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;wBAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAA;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,0CAA0C,WAAW,GAAG,EAAE,KAAK,CAAC,CAAA;oBAC9E,CAAC;oBACD,yCAAyC;gBAC3C,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;oBACpC,MAAM,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAChD,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;gBACtE,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,gDAAgD;QAChD,MAAM,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAEvC,oEAAoE;QACpE,0CAA0C;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;QAE1C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAC3D,oEAAoE;YACpE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YACrE,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;CACF"}
@@ -30,17 +30,17 @@ export class HTTPSOverlayLookupFacilitator {
30
30
  allowHTTP;
31
31
  constructor(httpClient = defaultFetch, allowHTTP = false) {
32
32
  if (typeof httpClient !== 'function') {
33
- throw new Error('HTTPSOverlayLookupFacilitator requires a fetch implementation. ' +
33
+ throw new TypeError('HTTPSOverlayLookupFacilitator requires a fetch implementation. ' +
34
34
  'In environments without fetch, provide a polyfill or custom implementation.');
35
35
  }
36
36
  this.fetchClient = httpClient;
37
37
  this.allowHTTP = allowHTTP;
38
38
  }
39
- async lookup(url, question, timeout = 5000) {
39
+ async lookup(url, question, timeout = 2000) {
40
40
  if (!url.startsWith('https:') && !this.allowHTTP) {
41
41
  throw new Error('HTTPS facilitator can only use URLs that start with "https:"');
42
42
  }
43
- const controller = typeof AbortController !== 'undefined' ? new AbortController() : undefined;
43
+ const controller = typeof AbortController === 'undefined' ? undefined : new AbortController();
44
44
  const timer = setTimeout(() => {
45
45
  try {
46
46
  controller?.abort();
@@ -149,8 +149,39 @@ export default class LookupResolver {
149
149
  }
150
150
  /**
151
151
  * Given a LookupQuestion, returns a LookupAnswer. Aggregates across multiple services and supports resiliency.
152
+ *
153
+ * Optional `options.graceMs` overrides the per-call grace window (default 80 ms).
154
+ * Optional `options.softTimeoutMs` resolves the query early with whatever has arrived once any host has
155
+ * answered (or with an empty result if no host has answered by `softTimeoutMs`).
152
156
  */
153
- async query(question, timeout) {
157
+ async query(question, timeout, options) {
158
+ let last = null;
159
+ // Existing fast-but-narrow contract: return at the first cumulative emission
160
+ // (the post-grace aggregate, or the final emission when every host settles
161
+ // before the grace window). Callers wanting progressive enrichment use query$().
162
+ for await (const partial of this.query$(question, timeout, options)) {
163
+ last = partial;
164
+ break;
165
+ }
166
+ return {
167
+ type: 'output-list',
168
+ outputs: last?.outputs ?? []
169
+ };
170
+ }
171
+ /**
172
+ * Iterable form of {@link query}. Emits partial results as hosts answer.
173
+ *
174
+ * Emission order:
175
+ * - First emission: after the grace window expires (or as soon as the soft timeout elapses), containing
176
+ * every output gathered from hosts that answered by then.
177
+ * - Subsequent emissions: re-emitted whenever a late host returns extra outputs that weren't in earlier
178
+ * emissions. Each emission contains the cumulative `outputs` set.
179
+ * - Final emission: `isFinal: true` once all in-flight hosts have settled (success / fail / timeout). The
180
+ * caller can `break` early; outstanding work is bounded by the per-host timeout.
181
+ *
182
+ * No host work runs past its per-host `timeout` — there is no leak risk on early break.
183
+ */
184
+ async *query$(question, timeout, options) {
154
185
  let competentHosts = [];
155
186
  if (question.service === 'ls_slap') {
156
187
  competentHosts = this.networkPreset === 'local' ? ['http://localhost:8080'] : this.slapTrackers;
@@ -178,46 +209,51 @@ export default class LookupResolver {
178
209
  if (rankedHosts.length < 1) {
179
210
  throw new Error(`All competent hosts for ${question.service} are temporarily unavailable due to backoff.`);
180
211
  }
181
- // Fire all hosts; resolve as soon as we have results from any host,
182
- // then allow a short grace window for additional hosts to contribute.
183
- const GRACE_MS = 80;
184
- const answers = await new Promise((resolve) => {
185
- const collected = [];
186
- let pending = rankedHosts.length;
187
- let graceTimer = null;
188
- const tryResolve = () => {
189
- if (graceTimer !== null)
190
- clearTimeout(graceTimer);
191
- resolve(collected);
192
- };
193
- for (const host of rankedHosts) {
194
- this.lookupHostWithTracking(host, question, timeout)
195
- .then((answer) => {
196
- if (answer?.type === 'output-list' && Array.isArray(answer.outputs) && answer.outputs.length > 0) {
197
- collected.push(answer);
198
- // First valid response: start a grace window for others
199
- if (collected.length === 1 && pending > 1) {
200
- graceTimer = setTimeout(tryResolve, GRACE_MS);
201
- }
202
- }
203
- })
204
- .catch(() => { })
205
- .finally(() => {
206
- pending--;
207
- if (pending === 0)
208
- tryResolve();
209
- });
210
- }
211
- });
212
+ const graceMs = options?.graceMs ?? 80;
213
+ const softTimeoutMs = options?.softTimeoutMs;
214
+ const hostCount = rankedHosts.length;
212
215
  const outputsMap = new Map();
213
- // Memo key helper for tx parsing
216
+ const txIds = [];
217
+ let completedHosts = 0;
218
+ let firstResponseAt = null;
219
+ const queue = [];
220
+ let waiter = null;
221
+ const push = (e) => {
222
+ queue.push(e);
223
+ if (waiter !== null) {
224
+ const w = waiter;
225
+ waiter = null;
226
+ w();
227
+ }
228
+ };
229
+ for (const host of rankedHosts) {
230
+ this.lookupHostWithTracking(host, question, timeout)
231
+ .then((answer) => {
232
+ if (answer?.type === 'output-list' && Array.isArray(answer.outputs) && answer.outputs.length > 0) {
233
+ push({ kind: 'answer', answer });
234
+ }
235
+ })
236
+ .catch(() => { })
237
+ .finally(() => {
238
+ completedHosts++;
239
+ push({ kind: 'done' });
240
+ });
241
+ }
242
+ let softTimer = null;
243
+ if (typeof softTimeoutMs === 'number' && softTimeoutMs >= 0) {
244
+ softTimer = setTimeout(() => push({ kind: 'soft' }), softTimeoutMs);
245
+ }
246
+ let graceTimer = null;
247
+ let graceFired = false;
248
+ let emittedOnce = false;
214
249
  const beefKey = (beef) => {
215
- if (typeof beef !== 'object')
216
- return ''; // The invalid BEEF has an empty key.
250
+ if (typeof beef !== 'object' || beef == null)
251
+ return '';
217
252
  return beef.join(',');
218
253
  };
219
- for (const response of answers) {
220
- for (const output of response.outputs) {
254
+ const mergeAnswer = (answer) => {
255
+ let added = false;
256
+ for (const output of answer.outputs) {
221
257
  const keyForBeef = beefKey(output.beef);
222
258
  let memo = this.txMemo.get(keyForBeef);
223
259
  const now = Date.now();
@@ -234,13 +270,70 @@ export default class LookupResolver {
234
270
  }
235
271
  }
236
272
  const uniqKey = `${memo.txId}.${output.outputIndex}`;
237
- outputsMap.set(uniqKey, output);
273
+ if (!outputsMap.has(uniqKey)) {
274
+ outputsMap.set(uniqKey, output);
275
+ txIds.push(memo.txId);
276
+ added = true;
277
+ }
238
278
  }
239
- }
240
- return {
241
- type: 'output-list',
242
- outputs: Array.from(outputsMap.values())
279
+ return added;
243
280
  };
281
+ const snapshot = (isFinal) => ({
282
+ type: 'output-list',
283
+ outputs: Array.from(outputsMap.values()),
284
+ txIds: txIds.slice(),
285
+ isFinal,
286
+ hostCount,
287
+ completedHosts
288
+ });
289
+ try {
290
+ while (completedHosts < hostCount) {
291
+ if (queue.length === 0) {
292
+ await new Promise((resolve) => { waiter = resolve; });
293
+ }
294
+ const e = queue.shift();
295
+ if (e.kind === 'answer') {
296
+ const added = mergeAnswer(e.answer);
297
+ if (firstResponseAt === null) {
298
+ firstResponseAt = Date.now();
299
+ if (!graceFired && graceMs > 0) {
300
+ graceTimer = setTimeout(() => {
301
+ graceFired = true;
302
+ push({ kind: 'soft' });
303
+ }, graceMs);
304
+ }
305
+ else {
306
+ graceFired = true;
307
+ }
308
+ }
309
+ if (graceFired && added) {
310
+ emittedOnce = true;
311
+ yield snapshot(false);
312
+ }
313
+ }
314
+ else if (e.kind === 'soft') {
315
+ if (!emittedOnce) {
316
+ graceFired = true;
317
+ emittedOnce = true;
318
+ yield snapshot(false);
319
+ }
320
+ if (typeof softTimeoutMs === 'number' && firstResponseAt !== null) {
321
+ // Soft timeout: caller asked to bail out once any answer is in. Yield final.
322
+ break;
323
+ }
324
+ }
325
+ else if (e.kind === 'done') {
326
+ // continue loop; final emission happens after the loop
327
+ }
328
+ }
329
+ yield snapshot(true);
330
+ }
331
+ finally {
332
+ if (graceTimer !== null)
333
+ clearTimeout(graceTimer);
334
+ if (softTimer !== null)
335
+ clearTimeout(softTimer);
336
+ }
244
337
  }
245
338
  /**
246
339
  * Cached wrapper for competent host discovery with stale-while-revalidate.
@@ -266,7 +359,7 @@ export default class LookupResolver {
266
359
  try {
267
360
  const hosts = await this.hostsInFlight.get(service);
268
361
  if (typeof hosts !== 'object') {
269
- throw new Error('Hosts is not defined.');
362
+ throw new TypeError('Hosts is not defined.');
270
363
  }
271
364
  return hosts.slice();
272
365
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LookupResolver.js","sourceRoot":"","sources":["../../../../src/overlay-tools/LookupResolver.ts"],"names":[],"mappings":"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"}