@bsv/sdk 2.0.16 → 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 (405) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/package.json +14 -13
  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/docs/reference/kvstore.md +1 -2
  313. package/docs/reference/primitives.md +0 -1
  314. package/docs/reference/script.md +0 -7
  315. package/docs/reference/transaction.md +2 -2
  316. package/package.json +29 -28
  317. package/src/auth/Peer.ts +26 -13
  318. package/src/auth/SessionManager.ts +4 -7
  319. package/src/auth/certificates/MasterCertificate.ts +1 -1
  320. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -1
  321. package/src/auth/clients/AuthFetch.ts +41 -41
  322. package/src/auth/transports/SimplifiedFetchTransport.ts +4 -4
  323. package/src/compat/ECIES.ts +29 -34
  324. package/src/compat/HD.ts +10 -5
  325. package/src/compat/Mnemonic.ts +11 -11
  326. package/src/compat/__tests/HD.test.ts +19 -0
  327. package/src/identity/ContactsManager.ts +194 -257
  328. package/src/identity/IdentityClient.ts +155 -66
  329. package/src/identity/__tests/IdentityClient.test.ts +25 -1
  330. package/src/kvstore/GlobalKVStore.ts +31 -32
  331. package/src/kvstore/LocalKVStore.ts +8 -8
  332. package/src/kvstore/kvStoreInterpreter.ts +2 -2
  333. package/src/messages/SignedMessage.ts +1 -1
  334. package/src/overlay-tools/Historian.ts +1 -1
  335. package/src/overlay-tools/LookupResolver.ts +182 -45
  336. package/src/overlay-tools/SHIPBroadcaster.ts +92 -168
  337. package/src/primitives/AESGCM.ts +2 -2
  338. package/src/primitives/BigNumber.ts +122 -113
  339. package/src/primitives/Curve.ts +16 -15
  340. package/src/primitives/ECDSA.ts +10 -8
  341. package/src/primitives/Hash.ts +152 -53
  342. package/src/primitives/JacobianPoint.ts +13 -11
  343. package/src/primitives/K256.ts +3 -3
  344. package/src/primitives/Point.ts +35 -38
  345. package/src/primitives/PrivateKey.ts +3 -3
  346. package/src/primitives/PublicKey.ts +3 -3
  347. package/src/primitives/Random.ts +11 -14
  348. package/src/primitives/ReaderUint8Array.ts +7 -7
  349. package/src/primitives/Schnorr.ts +2 -1
  350. package/src/primitives/Secp256r1.ts +2 -1
  351. package/src/primitives/Signature.ts +8 -8
  352. package/src/primitives/TransactionSignature.ts +16 -16
  353. package/src/primitives/utils.ts +37 -47
  354. package/src/registry/RegistryClient.ts +25 -25
  355. package/src/remittance/RemittanceManager.ts +17 -18
  356. package/src/remittance/modules/BasicBRC29.ts +2 -5
  357. package/src/script/Script.ts +114 -170
  358. package/src/script/ScriptEvaluationError.ts +2 -2
  359. package/src/script/Spend.ts +14 -15
  360. package/src/script/templates/PushDrop.ts +5 -3
  361. package/src/script/templates/RPuzzle.ts +2 -4
  362. package/src/storage/StorageDownloader.ts +1 -1
  363. package/src/totp/totp.ts +1 -1
  364. package/src/transaction/Beef.ts +241 -203
  365. package/src/transaction/BeefConstants.ts +16 -0
  366. package/src/transaction/BeefTx.ts +3 -3
  367. package/src/transaction/MerklePath.ts +4 -4
  368. package/src/transaction/Transaction.ts +48 -51
  369. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +1 -1
  370. package/src/transaction/http/BinaryFetchClient.ts +8 -8
  371. package/src/transaction/http/DefaultHttpClient.ts +8 -8
  372. package/src/wallet/CachedKeyDeriver.ts +8 -6
  373. package/src/wallet/KeyDeriver.ts +1 -1
  374. package/src/wallet/Wallet.interfaces.ts +2 -4
  375. package/src/wallet/WalletClient.ts +8 -8
  376. package/src/wallet/WalletError.ts +1 -1
  377. package/src/wallet/__tests/WalletClient.substrate.test.ts +10 -6
  378. package/src/wallet/substrates/HTTPWalletJSON.ts +22 -21
  379. package/src/wallet/substrates/ReactNativeWebView.ts +9 -9
  380. package/src/wallet/substrates/WalletWireProcessor.ts +83 -83
  381. package/src/wallet/substrates/WalletWireTransceiver.ts +528 -938
  382. package/src/wallet/substrates/XDM.ts +4 -4
  383. package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +38 -25
  384. package/src/wallet/substrates/__tests/ReactNativeWebView.test.ts +174 -0
  385. package/src/wallet/substrates/__tests/window.CWI.test.ts +256 -0
  386. package/src/wallet/substrates/window.CWI.ts +10 -10
  387. package/src/wallet/validationHelpers.ts +9 -9
  388. package/docs/swagger/dist/LICENSE +0 -21
  389. package/docs/swagger/dist/favicon-16x16.png +0 -0
  390. package/docs/swagger/dist/favicon-32x32.png +0 -0
  391. package/docs/swagger/dist/index.css +0 -16
  392. package/docs/swagger/dist/oauth2-redirect.html +0 -79
  393. package/docs/swagger/dist/swagger-initializer.js +0 -20
  394. package/docs/swagger/dist/swagger-ui-bundle.js +0 -2
  395. package/docs/swagger/dist/swagger-ui-bundle.js.map +0 -1
  396. package/docs/swagger/dist/swagger-ui-es-bundle-core.js +0 -3
  397. package/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +0 -1
  398. package/docs/swagger/dist/swagger-ui-es-bundle.js +0 -2
  399. package/docs/swagger/dist/swagger-ui-es-bundle.js.map +0 -1
  400. package/docs/swagger/dist/swagger-ui-standalone-preset.js +0 -2
  401. package/docs/swagger/dist/swagger-ui-standalone-preset.js.map +0 -1
  402. package/docs/swagger/dist/swagger-ui.css +0 -3
  403. package/docs/swagger/dist/swagger-ui.css.map +0 -1
  404. package/docs/swagger/dist/swagger-ui.js +0 -2
  405. package/docs/swagger/dist/swagger-ui.js.map +0 -1
@@ -1,14 +1,12 @@
1
1
  import BigNumber from './BigNumber.js'
2
2
  import { hash256 } from './Hash.js'
3
3
  import { assertValidHex } from './hex.js'
4
- import { WriterUint8Array } from './WriterUint8Array.js'
5
- import { ReaderUint8Array } from './ReaderUint8Array.js'
6
4
 
7
- export { WriterUint8Array }
8
- export { ReaderUint8Array }
5
+ export { WriterUint8Array } from './WriterUint8Array.js'
6
+ export { ReaderUint8Array } from './ReaderUint8Array.js'
9
7
 
10
8
  const BufferCtor =
11
- typeof globalThis !== 'undefined' ? (globalThis as any).Buffer : undefined
9
+ typeof globalThis === 'undefined' ? undefined : (globalThis as any).Buffer
12
10
  const CAN_USE_BUFFER =
13
11
  BufferCtor != null && typeof BufferCtor.from === 'function'
14
12
 
@@ -75,7 +73,7 @@ export const toArray = (msg: any, enc?: 'hex' | 'utf8' | 'base64'): any[] => {
75
73
  if (msg === undefined) return []
76
74
 
77
75
  if (typeof msg !== 'string') {
78
- return Array.from(msg, (item: any) => item | 0)
76
+ return Array.from(msg, (item: any) => Math.trunc(item))
79
77
  }
80
78
 
81
79
  switch (enc) {
@@ -106,8 +104,8 @@ const hexToArray = (msg: string): number[] => {
106
104
  const out = new Array(normalized.length / 2)
107
105
  let o = 0
108
106
  for (let i = 0; i < normalized.length; i += 2) {
109
- const hi = HEX_CHAR_TO_VALUE[normalized.charCodeAt(i)]
110
- const lo = HEX_CHAR_TO_VALUE[normalized.charCodeAt(i + 1)]
107
+ const hi = HEX_CHAR_TO_VALUE[normalized.codePointAt(i) as number]
108
+ const lo = HEX_CHAR_TO_VALUE[normalized.codePointAt(i + 1) as number]
111
109
  out[o++] = (hi << 4) | lo
112
110
  }
113
111
  return out
@@ -119,8 +117,8 @@ export function base64ToArray (msg: string): number[] {
119
117
  }
120
118
 
121
119
  // cleanse string
122
- let s = msg.trim().replace(/[\r\n\t\f\v ]+/g, '')
123
- s = s.replace(/-/g, '+').replace(/_/g, '/')
120
+ let s = msg.trim().replaceAll(/[\r\n\t\f\v ]+/g, '')
121
+ s = s.replaceAll('-', '+').replaceAll('_', '/')
124
122
 
125
123
  // ensure padding is correct
126
124
  const padIndex = s.indexOf('=')
@@ -135,17 +133,12 @@ export function base64ToArray (msg: string): number[] {
135
133
  s = s.slice(0, padIndex)
136
134
  }
137
135
 
138
- // if (s.length % 4 === 1)
139
- // {
140
- // throw new Error("Invalid base64 length")
141
- // }
142
-
143
136
  const result: number[] = []
144
137
  let bitBuffer = 0
145
138
  let bitCount = 0
146
139
 
147
140
  for (let i = 0; i < s.length; i++) {
148
- const c = s.charCodeAt(i)
141
+ const c = s.codePointAt(i) as number
149
142
  // using ascii map values rather than indexOf
150
143
  let v = -1
151
144
  if (c >= 65 && c <= 90) {
@@ -271,7 +264,7 @@ export const fromBase58 = (str: string): number[] => {
271
264
  throw new Error(`Invalid base58 character “${match.join('')}”`)
272
265
  }
273
266
  const lz = str.match(/^1+/gmu)
274
- const psz: number = (lz !== null) ? lz[0].length : 0
267
+ const psz: number = lz === null ? 0 : lz[0].length
275
268
  const size = ((str.length - psz) * (Math.log(58) / Math.log(256)) + 1) >>> 0
276
269
 
277
270
  const uint8 = new Uint8Array([
@@ -306,9 +299,9 @@ export const fromBase58 = (str: string): number[] => {
306
299
  * @returns The base58 string representation
307
300
  */
308
301
  export const toBase58 = (bin: number[]): string => {
309
- const base58Map = Array(256).fill(-1)
302
+ const base58Map = new Array(256).fill(-1)
310
303
  for (let i = 0; i < base58chars.length; ++i) {
311
- base58Map[base58chars.charCodeAt(i)] = i
304
+ base58Map[base58chars.codePointAt(i) as number] = i
312
305
  }
313
306
 
314
307
  const result: number[] = []
@@ -317,23 +310,23 @@ export const toBase58 = (bin: number[]): string => {
317
310
  let carry = byte
318
311
  for (let j = 0; j < result.length; ++j) {
319
312
  const x = (base58Map[result[j]] << 8) + carry
320
- result[j] = base58chars.charCodeAt(x % 58)
321
- carry = (x / 58) | 0
313
+ result[j] = base58chars.codePointAt(x % 58) as number
314
+ carry = Math.trunc(x / 58)
322
315
  }
323
316
  while (carry !== 0) {
324
- result.push(base58chars.charCodeAt(carry % 58))
325
- carry = (carry / 58) | 0
317
+ result.push(base58chars.codePointAt(carry % 58) as number)
318
+ carry = Math.trunc(carry / 58)
326
319
  }
327
320
  }
328
321
 
329
322
  for (const byte of bin) {
330
- if (byte !== 0) break
331
- else result.push('1'.charCodeAt(0))
323
+ if (byte === 0) result.push('1'.codePointAt(0) as number)
324
+ else break
332
325
  }
333
326
 
334
327
  result.reverse()
335
328
 
336
- return String.fromCharCode(...result)
329
+ return String.fromCodePoint(...result)
337
330
  }
338
331
 
339
332
  /**
@@ -383,7 +376,7 @@ export class Writer {
383
376
  private length: number
384
377
 
385
378
  constructor (bufs?: WriterChunk[]) {
386
- this.bufs = bufs !== undefined ? bufs : []
379
+ this.bufs = bufs ?? []
387
380
  this.length = 0
388
381
  for (const b of this.bufs) this.length += b.length
389
382
  }
@@ -408,13 +401,13 @@ export class Writer {
408
401
  let offset = 0
409
402
  for (const buf of this.bufs) {
410
403
  if (buf instanceof Uint8Array) {
411
- for (let i = 0; i < buf.length; i++) {
412
- ret[offset++] = buf[i]
404
+ for (const byte of buf) {
405
+ ret[offset++] = byte
413
406
  }
414
407
  } else {
415
408
  const arr = buf as number[]
416
- for (let i = 0; i < arr.length; i++) {
417
- ret[offset++] = arr[i]
409
+ for (const item of arr) {
410
+ ret[offset++] = item
418
411
  }
419
412
  }
420
413
  }
@@ -447,10 +440,7 @@ export class Writer {
447
440
  }
448
441
 
449
442
  writeInt8 (n: number): this {
450
- const buf = new Array(1)
451
- buf[0] = n & 0xff
452
- this.write(buf)
453
- return this
443
+ return this.writeUInt8(n)
454
444
  }
455
445
 
456
446
  writeUInt16BE (n: number): this {
@@ -657,7 +647,7 @@ export class Reader {
657
647
  const val = this.bin[this.pos]
658
648
  this.pos += 1
659
649
  // If the sign bit is set, convert to negative value
660
- return (val & 0x80) !== 0 ? val - 0x100 : val
650
+ return (val & 0x80) === 0 ? val : val - 0x100
661
651
  }
662
652
 
663
653
  public readUInt16BE (): number {
@@ -669,7 +659,7 @@ export class Reader {
669
659
  public readInt16BE (): number {
670
660
  const val = this.readUInt16BE()
671
661
  // If the sign bit is set, convert to negative value
672
- return (val & 0x8000) !== 0 ? val - 0x10000 : val
662
+ return (val & 0x8000) === 0 ? val : val - 0x10000
673
663
  }
674
664
 
675
665
  public readUInt16LE (): number {
@@ -681,7 +671,7 @@ export class Reader {
681
671
  public readInt16LE (): number {
682
672
  const val = this.readUInt16LE()
683
673
  // If the sign bit is set, convert to negative value
684
- const x = (val & 0x8000) !== 0 ? val - 0x10000 : val
674
+ const x = (val & 0x8000) === 0 ? val : val - 0x10000
685
675
  return x
686
676
  }
687
677
 
@@ -698,7 +688,7 @@ export class Reader {
698
688
  public readInt32BE (): number {
699
689
  const val = this.readUInt32BE()
700
690
  // If the sign bit is set, convert to negative value
701
- return (val & 0x80000000) !== 0 ? val - 0x100000000 : val
691
+ return (val & 0x80000000) === 0 ? val : val - 0x100000000
702
692
  }
703
693
 
704
694
  public readUInt32LE (): number {
@@ -715,7 +705,7 @@ export class Reader {
715
705
  public readInt32LE (): number {
716
706
  const val = this.readUInt32LE()
717
707
  // Explicitly check if the sign bit is set and then convert to a negative value
718
- return (val & 0x80000000) !== 0 ? val - 0x100000000 : val
708
+ return (val & 0x80000000) === 0 ? val : val - 0x100000000
719
709
  }
720
710
 
721
711
  public readUInt64BEBn (): BigNumber {
@@ -797,7 +787,7 @@ export const minimallyEncode = (buf: number[]): number[] => {
797
787
  }
798
788
 
799
789
  // If the last byte is not 0x00 or 0x80, we are minimally encoded.
800
- const last = buf[buf.length - 1]
790
+ const last = buf.at(-1)
801
791
  if ((last & 0x7f) !== 0) {
802
792
  return buf
803
793
  }
@@ -809,7 +799,7 @@ export const minimallyEncode = (buf: number[]): number[] => {
809
799
  }
810
800
 
811
801
  // If the next byte has it sign bit set, then we are minimaly encoded.
812
- if ((buf[buf.length - 2] & 0x80) !== 0) {
802
+ if ((buf.at(-2) & 0x80) !== 0) {
813
803
  return buf
814
804
  }
815
805
 
@@ -817,15 +807,15 @@ export const minimallyEncode = (buf: number[]): number[] => {
817
807
  for (let i = buf.length - 1; i > 0; i--) {
818
808
  // We found a non zero byte, time to encode.
819
809
  if (buf[i - 1] !== 0) {
820
- if ((buf[i - 1] & 0x80) !== 0) {
810
+ if ((buf[i - 1] & 0x80) === 0) {
811
+ // the sign bit is clear, we can use it.
812
+ buf[i - 1] |= last
813
+ return buf.slice(0, i)
814
+ } else {
821
815
  // We found a byte with it sign bit set so we need one more
822
816
  // byte.
823
817
  buf[i] = last
824
818
  return buf.slice(0, i + 1)
825
- } else {
826
- // the sign bit is clear, we can use it.
827
- buf[i - 1] |= last
828
- return buf.slice(0, i)
829
819
  }
830
820
  }
831
821
  }
@@ -64,9 +64,7 @@ export class RegistryClient {
64
64
  * @returns The public identity key as a hex string.
65
65
  */
66
66
  private async getIdentityKey (): Promise<PubKeyHex> {
67
- if (this.cachedIdentityKey === undefined) {
68
- this.cachedIdentityKey = (await this.wallet.getPublicKey({ identityKey: true })).publicKey
69
- }
67
+ this.cachedIdentityKey ??= (await this.wallet.getPublicKey({ identityKey: true })).publicKey
70
68
  return this.cachedIdentityKey
71
69
  }
72
70
 
@@ -75,9 +73,7 @@ export class RegistryClient {
75
73
  * @returns The network type ('mainnet' or 'testnet').
76
74
  */
77
75
  private async getNetwork (): Promise<'mainnet' | 'testnet'> {
78
- if (this.network === undefined) {
79
- this.network = (await this.wallet.getNetwork({})).network
80
- }
76
+ this.network ??= (await this.wallet.getNetwork({})).network
81
77
  return this.network
82
78
  }
83
79
 
@@ -229,7 +225,7 @@ export class RegistryClient {
229
225
  async removeDefinition (
230
226
  registryRecord: RegistryRecord
231
227
  ): Promise<BroadcastResponse | BroadcastFailure> {
232
- if (registryRecord.txid === undefined || typeof registryRecord.outputIndex === 'undefined' || registryRecord.lockingScript === undefined) {
228
+ if (registryRecord.txid === undefined || registryRecord.outputIndex === undefined || registryRecord.lockingScript === undefined) {
233
229
  throw new Error('Invalid registry record. Missing txid, outputIndex, or lockingScript.')
234
230
  }
235
231
 
@@ -240,14 +236,16 @@ export class RegistryClient {
240
236
  }
241
237
 
242
238
  // Create a descriptive label for the item we're removing
243
- const itemIdentifier =
244
- registryRecord.definitionType === 'basket'
245
- ? registryRecord.basketID
246
- : registryRecord.definitionType === 'protocol'
247
- ? registryRecord.name
248
- : registryRecord.definitionType === 'certificate'
249
- ? (registryRecord.name !== undefined ? registryRecord.name : registryRecord.type)
250
- : 'unknown'
239
+ let itemIdentifier: string | undefined
240
+ if (registryRecord.definitionType === 'basket') {
241
+ itemIdentifier = registryRecord.basketID
242
+ } else if (registryRecord.definitionType === 'protocol') {
243
+ itemIdentifier = registryRecord.name
244
+ } else if (registryRecord.definitionType === 'certificate') {
245
+ itemIdentifier = registryRecord.name ?? registryRecord.type
246
+ } else {
247
+ itemIdentifier = 'unknown'
248
+ }
251
249
 
252
250
  const outpoint = `${registryRecord.txid}.${registryRecord.outputIndex}`
253
251
  const { signableTransaction } = await this.wallet.createAction({
@@ -321,7 +319,7 @@ export class RegistryClient {
321
319
  registryRecord: RegistryRecord,
322
320
  updatedData: DefinitionData
323
321
  ): Promise<BroadcastResponse | BroadcastFailure> {
324
- if (registryRecord.txid === undefined || typeof registryRecord.outputIndex === 'undefined' || registryRecord.lockingScript === undefined) {
322
+ if (registryRecord.txid === undefined || registryRecord.outputIndex === undefined || registryRecord.lockingScript === undefined) {
325
323
  throw new Error('Invalid registry record. Missing txid, outputIndex, or lockingScript.')
326
324
  }
327
325
 
@@ -337,14 +335,16 @@ export class RegistryClient {
337
335
  }
338
336
 
339
337
  // Create a descriptive label for the item we're updating
340
- const itemIdentifier =
341
- registryRecord.definitionType === 'basket'
342
- ? registryRecord.basketID
343
- : registryRecord.definitionType === 'protocol'
344
- ? registryRecord.name
345
- : registryRecord.definitionType === 'certificate'
346
- ? (registryRecord.name !== undefined ? registryRecord.name : registryRecord.type)
347
- : 'unknown'
338
+ let itemIdentifier: string | undefined
339
+ if (registryRecord.definitionType === 'basket') {
340
+ itemIdentifier = registryRecord.basketID
341
+ } else if (registryRecord.definitionType === 'protocol') {
342
+ itemIdentifier = registryRecord.name
343
+ } else if (registryRecord.definitionType === 'certificate') {
344
+ itemIdentifier = registryRecord.name ?? registryRecord.type
345
+ } else {
346
+ itemIdentifier = 'unknown'
347
+ }
348
348
 
349
349
  const pushdrop = new PushDrop(this.wallet, this.originator)
350
350
 
@@ -660,7 +660,7 @@ export function deserializeWalletProtocol (str: string): WalletProtocol {
660
660
 
661
661
  // Validate that the protocol string is a string and its length is within the allowed bounds.
662
662
  if (typeof protocolString !== 'string') {
663
- throw new Error('Invalid protocolID')
663
+ throw new TypeError('Invalid protocolID')
664
664
  }
665
665
 
666
666
  return [security as SecurityLevel, protocolString]
@@ -419,7 +419,7 @@ export class RemittanceManager {
419
419
  */
420
420
  async startListening (hostOverride?: string): Promise<void> {
421
421
  if (typeof this.comms.listenForLiveMessages !== 'function') {
422
- throw new Error('CommsLayer does not support live message listening')
422
+ throw new TypeError('CommsLayer does not support live message listening')
423
423
  }
424
424
 
425
425
  await this.comms.listenForLiveMessages({
@@ -994,12 +994,13 @@ export class RemittanceManager {
994
994
  } else if (takerRequests && !makerRequests) {
995
995
  requesterRole = 'taker'
996
996
  } else if (makerRequests && takerRequests && makerRequest !== takerRequest) {
997
- requesterRole =
998
- makerRequest === 'beforeInvoicing' && takerRequest === 'beforeSettlement'
999
- ? 'maker'
1000
- : makerRequest === 'beforeSettlement' && takerRequest === 'beforeInvoicing'
1001
- ? 'taker'
1002
- : undefined
997
+ if (makerRequest === 'beforeInvoicing' && takerRequest === 'beforeSettlement') {
998
+ requesterRole = 'maker'
999
+ } else if (makerRequest === 'beforeSettlement' && takerRequest === 'beforeInvoicing') {
1000
+ requesterRole = 'taker'
1001
+ } else {
1002
+ requesterRole = undefined
1003
+ }
1003
1004
  }
1004
1005
 
1005
1006
  if (typeof requesterRole !== 'string') return 'taker'
@@ -1083,7 +1084,7 @@ export class RemittanceManager {
1083
1084
  case 'identityVerificationRequest': {
1084
1085
  const payload = env.payload as IdentityVerificationRequest
1085
1086
  if (typeof payload !== 'object') {
1086
- throw new Error('Identity verification request payload missing data')
1087
+ throw new TypeError('Identity verification request payload missing data')
1087
1088
  }
1088
1089
 
1089
1090
  if (this.cfg.identityLayer == null) {
@@ -1117,7 +1118,7 @@ export class RemittanceManager {
1117
1118
  case 'identityVerificationResponse': {
1118
1119
  const payload = env.payload as IdentityVerificationResponse
1119
1120
  if (typeof payload !== 'object') {
1120
- throw new Error('Identity verification response payload missing data')
1121
+ throw new TypeError('Identity verification response payload missing data')
1121
1122
  }
1122
1123
 
1123
1124
  if (this.cfg.identityLayer == null) {
@@ -1155,7 +1156,7 @@ export class RemittanceManager {
1155
1156
  case 'identityVerificationAcknowledgment': {
1156
1157
  const payload = env.payload as IdentityVerificationAcknowledgment
1157
1158
  if (typeof payload !== 'object') {
1158
- throw new Error('Identity verification acknowledgment payload missing data')
1159
+ throw new TypeError('Identity verification acknowledgment payload missing data')
1159
1160
  }
1160
1161
 
1161
1162
  thread.identity.acknowledgmentReceived = true
@@ -1168,7 +1169,7 @@ export class RemittanceManager {
1168
1169
  case 'invoice': {
1169
1170
  const invoice = env.payload as Invoice
1170
1171
  if (typeof invoice !== 'object') {
1171
- throw new Error('Invoice payload missing invoice data')
1172
+ throw new TypeError('Invoice payload missing invoice data')
1172
1173
  }
1173
1174
 
1174
1175
  thread.invoice = invoice
@@ -1181,7 +1182,7 @@ export class RemittanceManager {
1181
1182
  case 'settlement': {
1182
1183
  const settlement = env.payload as Settlement
1183
1184
  if (typeof settlement !== 'object') {
1184
- throw new Error('Settlement payload missing settlement data')
1185
+ throw new TypeError('Settlement payload missing settlement data')
1185
1186
  }
1186
1187
 
1187
1188
  if (this.shouldRequireIdentityBeforeSettlement(thread) && !thread.flags.hasIdentified) {
@@ -1253,7 +1254,7 @@ export class RemittanceManager {
1253
1254
  case 'receipt': {
1254
1255
  const receipt = env.payload as Receipt
1255
1256
  if (typeof receipt !== 'object') {
1256
- throw new Error('Receipt payload missing receipt data')
1257
+ throw new TypeError('Receipt payload missing receipt data')
1257
1258
  }
1258
1259
 
1259
1260
  thread.receipt = receipt
@@ -1275,7 +1276,7 @@ export class RemittanceManager {
1275
1276
  case 'termination': {
1276
1277
  const payload = env.payload as Termination
1277
1278
  if (typeof payload !== 'object') {
1278
- throw new Error('Termination payload missing data')
1279
+ throw new TypeError('Termination payload missing data')
1279
1280
  }
1280
1281
  thread.termination = payload
1281
1282
  thread.lastError = { message: payload.message, at: this.now() }
@@ -1430,9 +1431,7 @@ export class RemittanceManager {
1430
1431
  thread.protocolLog ??= []
1431
1432
  thread.stateLog ??= []
1432
1433
 
1433
- if (thread.state == null) {
1434
- thread.state = this.deriveThreadState(thread)
1435
- }
1434
+ thread.state ??= this.deriveThreadState(thread)
1436
1435
  return thread
1437
1436
  }
1438
1437
 
@@ -1575,7 +1574,7 @@ export class RemittanceManager {
1575
1574
 
1576
1575
  private requireMyIdentityKey (errMsg: string): PubKeyHex {
1577
1576
  if (typeof this.myIdentityKey !== 'string') {
1578
- throw new Error(errMsg)
1577
+ throw new TypeError(errMsg)
1579
1578
  }
1580
1579
  return this.myIdentityKey
1581
1580
  }
@@ -1,8 +1,5 @@
1
- import type {
2
- Invoice,
3
- RemittanceOptionId,
4
- Termination
5
- } from '../types.js'
1
+ import type { RemittanceOptionId, Termination } from '../types.js'
2
+
6
3
  import type { ModuleContext } from '../types.js'
7
4
  import type { RemittanceModule } from '../RemittanceModule.js'
8
5
  import type {