@bsv/sdk 1.3.12 → 1.3.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1234) hide show
  1. package/dist/cjs/mod.js +15 -15
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +10 -2
  4. package/dist/cjs/src/auth/Peer.js +62 -46
  5. package/dist/cjs/src/auth/Peer.js.map +1 -1
  6. package/dist/cjs/src/auth/SessionManager.js +4 -4
  7. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  8. package/dist/cjs/src/auth/__tests/Peer.test.js +446 -0
  9. package/dist/cjs/src/auth/__tests/Peer.test.js.map +1 -0
  10. package/dist/cjs/src/auth/__tests/SessionManager.test.js +69 -0
  11. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +1 -0
  12. package/dist/cjs/src/auth/certificates/Certificate.js +26 -23
  13. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  14. package/dist/cjs/src/auth/certificates/MasterCertificate.js +18 -16
  15. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  16. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +7 -7
  17. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  18. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +182 -0
  19. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  20. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +22 -22
  21. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  22. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  23. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  24. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  25. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  26. package/dist/cjs/src/auth/certificates/index.js +5 -5
  27. package/dist/cjs/src/auth/certificates/index.js.map +1 -1
  28. package/dist/cjs/src/auth/clients/AuthFetch.js +74 -64
  29. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  30. package/dist/cjs/src/auth/clients/index.js +1 -1
  31. package/dist/cjs/src/auth/clients/index.js.map +1 -1
  32. package/dist/cjs/src/auth/index.js +7 -7
  33. package/dist/cjs/src/auth/index.js.map +1 -1
  34. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +62 -54
  35. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  36. package/dist/cjs/src/auth/transports/index.js +1 -1
  37. package/dist/cjs/src/auth/transports/index.js.map +1 -1
  38. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +101 -0
  39. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  40. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  41. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  42. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  43. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  44. package/dist/cjs/src/auth/utils/createNonce.js +4 -4
  45. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  46. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +2 -2
  47. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  48. package/dist/cjs/src/auth/utils/index.js +4 -4
  49. package/dist/cjs/src/auth/utils/index.js.map +1 -1
  50. package/dist/cjs/src/auth/utils/validateCertificates.js +2 -2
  51. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  52. package/dist/cjs/src/auth/utils/verifyNonce.js +3 -3
  53. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  54. package/dist/cjs/src/compat/BSM.js +9 -9
  55. package/dist/cjs/src/compat/BSM.js.map +1 -1
  56. package/dist/cjs/src/compat/ECIES.js +157 -116
  57. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  58. package/dist/cjs/src/compat/HD.js +75 -75
  59. package/dist/cjs/src/compat/HD.js.map +1 -1
  60. package/dist/cjs/src/compat/Mnemonic.js +98 -93
  61. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  62. package/dist/cjs/src/compat/Utxo.js +5 -5
  63. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  64. package/dist/cjs/src/compat/__tests/BSM.test.js +69 -0
  65. package/dist/cjs/src/compat/__tests/BSM.test.js.map +1 -0
  66. package/dist/cjs/src/compat/__tests/ECIES.test.js +115 -0
  67. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +1 -0
  68. package/dist/cjs/src/compat/__tests/HD.test.js +336 -0
  69. package/dist/cjs/src/compat/__tests/HD.test.js.map +1 -0
  70. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +150 -0
  71. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +1 -0
  72. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +175 -0
  73. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  74. package/dist/cjs/src/compat/index.js +9 -9
  75. package/dist/cjs/src/compat/index.js.map +1 -1
  76. package/dist/cjs/src/messages/EncryptedMessage.js +17 -15
  77. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  78. package/dist/cjs/src/messages/SignedMessage.js +20 -20
  79. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  80. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +57 -0
  81. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  82. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +52 -0
  83. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +1 -0
  84. package/dist/cjs/src/messages/index.js +2 -2
  85. package/dist/cjs/src/messages/index.js.map +1 -1
  86. package/dist/cjs/src/overlay-tools/LookupResolver.js +20 -13
  87. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  88. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +44 -32
  89. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  90. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +41 -30
  91. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  92. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  93. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  94. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  95. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  96. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  97. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  98. package/dist/cjs/src/overlay-tools/index.js +8 -8
  99. package/dist/cjs/src/overlay-tools/index.js.map +1 -1
  100. package/dist/cjs/src/primitives/BasePoint.js +2 -2
  101. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  102. package/dist/cjs/src/primitives/BigNumber.js +46 -59
  103. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  104. package/dist/cjs/src/primitives/Curve.js +29 -39
  105. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  106. package/dist/cjs/src/primitives/DRBG.js +8 -14
  107. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  108. package/dist/cjs/src/primitives/ECDSA.js +24 -24
  109. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  110. package/dist/cjs/src/primitives/Hash.js +76 -111
  111. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  112. package/dist/cjs/src/primitives/JacobianPoint.js +20 -16
  113. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  114. package/dist/cjs/src/primitives/K256.js +2 -2
  115. package/dist/cjs/src/primitives/K256.js.map +1 -1
  116. package/dist/cjs/src/primitives/Mersenne.js +4 -4
  117. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  118. package/dist/cjs/src/primitives/MontgomoryMethod.js +5 -5
  119. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  120. package/dist/cjs/src/primitives/Point.js +74 -72
  121. package/dist/cjs/src/primitives/Point.js.map +1 -1
  122. package/dist/cjs/src/primitives/Polynomial.js +15 -13
  123. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  124. package/dist/cjs/src/primitives/PrivateKey.js +48 -39
  125. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  126. package/dist/cjs/src/primitives/PublicKey.js +23 -23
  127. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  128. package/dist/cjs/src/primitives/Random.js +4 -4
  129. package/dist/cjs/src/primitives/Random.js.map +1 -1
  130. package/dist/cjs/src/primitives/ReductionContext.js +11 -11
  131. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  132. package/dist/cjs/src/primitives/Schnorr.js +29 -23
  133. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  134. package/dist/cjs/src/primitives/Signature.js +25 -24
  135. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  136. package/dist/cjs/src/primitives/SymmetricKey.js +26 -26
  137. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  138. package/dist/cjs/src/primitives/TransactionSignature.js +23 -21
  139. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  140. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +248 -0
  141. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +1 -0
  142. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  143. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  144. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  145. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  146. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  147. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  148. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  149. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  150. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  151. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  152. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  153. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  154. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  155. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  156. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  157. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  158. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  159. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  160. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +145 -0
  161. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  162. package/dist/cjs/src/primitives/__tests/DRBG.test.js +22 -0
  163. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +1 -0
  164. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +170 -0
  165. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  166. package/dist/cjs/src/primitives/__tests/ECDH.test.js +34 -0
  167. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +1 -0
  168. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +89 -0
  169. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +1 -0
  170. package/dist/cjs/src/primitives/__tests/HMAC.test.js +60 -0
  171. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +1 -0
  172. package/dist/cjs/src/primitives/__tests/Hash.test.js +159 -0
  173. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +1 -0
  174. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  175. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  176. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  177. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  178. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +90 -0
  179. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  180. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +83 -0
  181. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +1 -0
  182. package/dist/cjs/src/primitives/__tests/Random.test.js +19 -0
  183. package/dist/cjs/src/primitives/__tests/Random.test.js.map +1 -0
  184. package/dist/cjs/src/primitives/__tests/Reader.test.js +282 -0
  185. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +1 -0
  186. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +224 -0
  187. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  188. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +213 -0
  189. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +1 -0
  190. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +51 -0
  191. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  192. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  193. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  194. package/dist/cjs/src/primitives/__tests/Writer.test.js +176 -0
  195. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +1 -0
  196. package/dist/cjs/src/primitives/__tests/bug-31.test.js +32 -0
  197. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +1 -0
  198. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +3506 -0
  199. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +1 -0
  200. package/dist/cjs/src/primitives/__tests/utils.test.js +110 -0
  201. package/dist/cjs/src/primitives/__tests/utils.test.js.map +1 -0
  202. package/dist/cjs/src/primitives/index.js +27 -27
  203. package/dist/cjs/src/primitives/index.js.map +1 -1
  204. package/dist/cjs/src/primitives/utils.js +70 -60
  205. package/dist/cjs/src/primitives/utils.js.map +1 -1
  206. package/dist/cjs/src/script/LockingScript.js +2 -2
  207. package/dist/cjs/src/script/LockingScript.js.map +1 -1
  208. package/dist/cjs/src/script/Script.js +49 -47
  209. package/dist/cjs/src/script/Script.js.map +1 -1
  210. package/dist/cjs/src/script/Spend.js +305 -300
  211. package/dist/cjs/src/script/Spend.js.map +1 -1
  212. package/dist/cjs/src/script/UnlockingScript.js +2 -2
  213. package/dist/cjs/src/script/UnlockingScript.js.map +1 -1
  214. package/dist/cjs/src/script/__tests/Script.test.js +347 -0
  215. package/dist/cjs/src/script/__tests/Script.test.js.map +1 -0
  216. package/dist/cjs/src/script/__tests/Spend.test.js +282 -0
  217. package/dist/cjs/src/script/__tests/Spend.test.js.map +1 -0
  218. package/dist/cjs/src/script/__tests/SpendComplex.test.js +52 -0
  219. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +1 -0
  220. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +2370 -0
  221. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +1 -0
  222. package/dist/cjs/src/script/__tests/script.valid.vectors.js +1181 -0
  223. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +1 -0
  224. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +2298 -0
  225. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +1 -0
  226. package/dist/cjs/src/script/index.js +11 -11
  227. package/dist/cjs/src/script/index.js.map +1 -1
  228. package/dist/cjs/src/script/templates/P2PKH.js +40 -36
  229. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  230. package/dist/cjs/src/script/templates/PushDrop.js +42 -43
  231. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  232. package/dist/cjs/src/script/templates/RPuzzle.js +48 -45
  233. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  234. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +161 -0
  235. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  236. package/dist/cjs/src/script/templates/index.js +6 -6
  237. package/dist/cjs/src/script/templates/index.js.map +1 -1
  238. package/dist/cjs/src/totp/__tests/totp.test.js +67 -0
  239. package/dist/cjs/src/totp/__tests/totp.test.js.map +1 -0
  240. package/dist/cjs/src/totp/index.js +1 -1
  241. package/dist/cjs/src/totp/index.js.map +1 -1
  242. package/dist/cjs/src/totp/totp.js +7 -7
  243. package/dist/cjs/src/totp/totp.js.map +1 -1
  244. package/dist/cjs/src/transaction/Beef.js +141 -129
  245. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  246. package/dist/cjs/src/transaction/BeefParty.js +25 -25
  247. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  248. package/dist/cjs/src/transaction/BeefTx.js +25 -23
  249. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  250. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  251. package/dist/cjs/src/transaction/MerklePath.js +27 -22
  252. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  253. package/dist/cjs/src/transaction/Transaction.js +89 -157
  254. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  255. package/dist/cjs/src/transaction/__tests/Beef.test.js +393 -0
  256. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +1 -0
  257. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +209 -0
  258. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +1 -0
  259. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  260. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  261. package/dist/cjs/src/transaction/__tests/Transaction.test.js +1073 -0
  262. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +1 -0
  263. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +7 -0
  264. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  265. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  266. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  267. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +7 -0
  268. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  269. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  270. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  271. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +296 -0
  272. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  273. package/dist/cjs/src/transaction/broadcasters/ARC.js +39 -35
  274. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  275. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -2
  276. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  277. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +15 -15
  278. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  279. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  280. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  281. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  282. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  283. package/dist/cjs/src/transaction/broadcasters/index.js +6 -6
  284. package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -1
  285. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -2
  286. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  287. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +8 -8
  288. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  289. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  290. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  291. package/dist/cjs/src/transaction/chaintrackers/index.js +4 -4
  292. package/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -1
  293. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +3 -3
  294. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  295. package/dist/cjs/src/transaction/fee-models/index.js +2 -2
  296. package/dist/cjs/src/transaction/fee-models/index.js.map +1 -1
  297. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +11 -11
  298. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  299. package/dist/cjs/src/transaction/http/FetchHttpClient.js +4 -2
  300. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  301. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +10 -8
  302. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  303. package/dist/cjs/src/transaction/http/index.js +6 -6
  304. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  305. package/dist/cjs/src/transaction/index.js +12 -12
  306. package/dist/cjs/src/transaction/index.js.map +1 -1
  307. package/dist/cjs/src/wallet/CachedKeyDeriver.js +65 -63
  308. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  309. package/dist/cjs/src/wallet/KeyDeriver.js +66 -58
  310. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  311. package/dist/cjs/src/wallet/ProtoWallet.js +27 -14
  312. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  313. package/dist/cjs/src/wallet/WalletClient.js +15 -14
  314. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  315. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  316. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  317. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +114 -0
  318. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  319. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +475 -0
  320. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  321. package/dist/cjs/src/wallet/index.js +12 -12
  322. package/dist/cjs/src/wallet/index.js.map +1 -1
  323. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +3 -3
  324. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  325. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +10 -10
  326. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  327. package/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -1
  328. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1293 -1316
  329. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  330. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +320 -272
  331. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  332. package/dist/cjs/src/wallet/substrates/XDM.js +8 -5
  333. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  334. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  335. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  336. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +579 -0
  337. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  338. package/dist/cjs/src/wallet/substrates/index.js +12 -12
  339. package/dist/cjs/src/wallet/substrates/index.js.map +1 -1
  340. package/dist/cjs/src/wallet/substrates/window.CWI.js +4 -4
  341. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  342. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  343. package/dist/esm/mod.js +31 -15
  344. package/dist/esm/mod.js.map +1 -1
  345. package/dist/esm/src/auth/Peer.js +67 -47
  346. package/dist/esm/src/auth/Peer.js.map +1 -1
  347. package/dist/esm/src/auth/SessionManager.js +9 -5
  348. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  349. package/dist/esm/src/auth/__tests/Peer.test.js +448 -0
  350. package/dist/esm/src/auth/__tests/Peer.test.js.map +1 -0
  351. package/dist/esm/src/auth/__tests/SessionManager.test.js +69 -0
  352. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +1 -0
  353. package/dist/esm/src/auth/certificates/Certificate.js +31 -25
  354. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  355. package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -16
  356. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  357. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +14 -7
  358. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  359. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +182 -0
  360. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  361. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +26 -22
  362. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  363. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  364. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  365. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  366. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  367. package/dist/esm/src/auth/certificates/index.js +25 -4
  368. package/dist/esm/src/auth/certificates/index.js.map +1 -1
  369. package/dist/esm/src/auth/clients/AuthFetch.js +79 -65
  370. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  371. package/dist/esm/src/auth/clients/index.js +17 -1
  372. package/dist/esm/src/auth/clients/index.js.map +1 -1
  373. package/dist/esm/src/auth/index.js +23 -7
  374. package/dist/esm/src/auth/index.js.map +1 -1
  375. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +67 -55
  376. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  377. package/dist/esm/src/auth/transports/index.js +17 -1
  378. package/dist/esm/src/auth/transports/index.js.map +1 -1
  379. package/dist/esm/src/auth/types.js +2 -1
  380. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +101 -0
  381. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  382. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  383. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  384. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  385. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  386. package/dist/esm/src/auth/utils/createNonce.js +8 -5
  387. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  388. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +7 -3
  389. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  390. package/dist/esm/src/auth/utils/index.js +20 -4
  391. package/dist/esm/src/auth/utils/index.js.map +1 -1
  392. package/dist/esm/src/auth/utils/validateCertificates.js +7 -3
  393. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  394. package/dist/esm/src/auth/utils/verifyNonce.js +7 -4
  395. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  396. package/dist/esm/src/compat/BSM.js +56 -14
  397. package/dist/esm/src/compat/BSM.js.map +1 -1
  398. package/dist/esm/src/compat/ECIES.js +197 -117
  399. package/dist/esm/src/compat/ECIES.js.map +1 -1
  400. package/dist/esm/src/compat/HD.js +115 -76
  401. package/dist/esm/src/compat/HD.js.map +1 -1
  402. package/dist/esm/src/compat/Mnemonic.js +138 -94
  403. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  404. package/dist/esm/src/compat/Utxo.js +12 -6
  405. package/dist/esm/src/compat/Utxo.js.map +1 -1
  406. package/dist/esm/src/compat/__tests/BSM.test.js +69 -0
  407. package/dist/esm/src/compat/__tests/BSM.test.js.map +1 -0
  408. package/dist/esm/src/compat/__tests/ECIES.test.js +115 -0
  409. package/dist/esm/src/compat/__tests/ECIES.test.js.map +1 -0
  410. package/dist/esm/src/compat/__tests/HD.test.js +336 -0
  411. package/dist/esm/src/compat/__tests/HD.test.js.map +1 -0
  412. package/dist/esm/src/compat/__tests/Mnemonic.test.js +150 -0
  413. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +1 -0
  414. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +175 -0
  415. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  416. package/dist/esm/src/compat/bip-39-wordlist-en.js +4 -1
  417. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
  418. package/dist/esm/src/compat/index.js +48 -5
  419. package/dist/esm/src/compat/index.js.map +1 -1
  420. package/dist/esm/src/messages/EncryptedMessage.js +27 -17
  421. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  422. package/dist/esm/src/messages/SignedMessage.js +30 -22
  423. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  424. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +57 -0
  425. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  426. package/dist/esm/src/messages/__tests/SignedMessage.test.js +52 -0
  427. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +1 -0
  428. package/dist/esm/src/messages/index.js +38 -2
  429. package/dist/esm/src/messages/index.js.map +1 -1
  430. package/dist/esm/src/overlay-tools/LookupResolver.js +32 -17
  431. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  432. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +51 -33
  433. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  434. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +51 -32
  435. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  436. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  437. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  438. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  439. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  440. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  441. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  442. package/dist/esm/src/overlay-tools/index.js +28 -5
  443. package/dist/esm/src/overlay-tools/index.js.map +1 -1
  444. package/dist/esm/src/primitives/AESGCM.js +39 -26
  445. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  446. package/dist/esm/src/primitives/BasePoint.js +9 -3
  447. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  448. package/dist/esm/src/primitives/BigNumber.js +50 -60
  449. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  450. package/dist/esm/src/primitives/Curve.js +36 -40
  451. package/dist/esm/src/primitives/Curve.js.map +1 -1
  452. package/dist/esm/src/primitives/DRBG.js +12 -15
  453. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  454. package/dist/esm/src/primitives/ECDSA.js +34 -26
  455. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  456. package/dist/esm/src/primitives/Hash.js +115 -130
  457. package/dist/esm/src/primitives/Hash.js.map +1 -1
  458. package/dist/esm/src/primitives/JacobianPoint.js +26 -16
  459. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  460. package/dist/esm/src/primitives/K256.js +8 -2
  461. package/dist/esm/src/primitives/K256.js.map +1 -1
  462. package/dist/esm/src/primitives/Mersenne.js +11 -5
  463. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  464. package/dist/esm/src/primitives/MontgomoryMethod.js +11 -5
  465. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  466. package/dist/esm/src/primitives/Point.js +80 -72
  467. package/dist/esm/src/primitives/Point.js.map +1 -1
  468. package/dist/esm/src/primitives/Polynomial.js +25 -15
  469. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  470. package/dist/esm/src/primitives/PrivateKey.js +90 -40
  471. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  472. package/dist/esm/src/primitives/PublicKey.js +29 -23
  473. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  474. package/dist/esm/src/primitives/Random.js +7 -5
  475. package/dist/esm/src/primitives/Random.js.map +1 -1
  476. package/dist/esm/src/primitives/ReductionContext.js +18 -12
  477. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  478. package/dist/esm/src/primitives/Schnorr.js +36 -24
  479. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  480. package/dist/esm/src/primitives/Signature.js +32 -25
  481. package/dist/esm/src/primitives/Signature.js.map +1 -1
  482. package/dist/esm/src/primitives/SymmetricKey.js +32 -26
  483. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  484. package/dist/esm/src/primitives/TransactionSignature.js +62 -21
  485. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  486. package/dist/esm/src/primitives/__tests/AESGCM.test.js +248 -0
  487. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +1 -0
  488. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  489. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  490. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  491. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  492. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  493. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  494. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  495. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  496. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  497. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  498. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  499. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  500. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  501. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  502. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  503. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  504. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  505. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  506. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +145 -0
  507. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  508. package/dist/esm/src/primitives/__tests/DRBG.test.js +22 -0
  509. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +1 -0
  510. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +170 -0
  511. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  512. package/dist/esm/src/primitives/__tests/ECDH.test.js +34 -0
  513. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +1 -0
  514. package/dist/esm/src/primitives/__tests/ECDSA.test.js +89 -0
  515. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +1 -0
  516. package/dist/esm/src/primitives/__tests/HMAC.test.js +60 -0
  517. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +1 -0
  518. package/dist/esm/src/primitives/__tests/Hash.test.js +159 -0
  519. package/dist/esm/src/primitives/__tests/Hash.test.js.map +1 -0
  520. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  521. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  522. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  523. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  524. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +90 -0
  525. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  526. package/dist/esm/src/primitives/__tests/PublicKey.test.js +83 -0
  527. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +1 -0
  528. package/dist/esm/src/primitives/__tests/Random.test.js +19 -0
  529. package/dist/esm/src/primitives/__tests/Random.test.js.map +1 -0
  530. package/dist/esm/src/primitives/__tests/Reader.test.js +282 -0
  531. package/dist/esm/src/primitives/__tests/Reader.test.js.map +1 -0
  532. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +223 -0
  533. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  534. package/dist/esm/src/primitives/__tests/Schnorr.test.js +213 -0
  535. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +1 -0
  536. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +51 -0
  537. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  538. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  539. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  540. package/dist/esm/src/primitives/__tests/Writer.test.js +176 -0
  541. package/dist/esm/src/primitives/__tests/Writer.test.js.map +1 -0
  542. package/dist/esm/src/primitives/__tests/bug-31.test.js +32 -0
  543. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +1 -0
  544. package/dist/esm/src/primitives/__tests/sighash.vectors.js +3506 -0
  545. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +1 -0
  546. package/dist/esm/src/primitives/__tests/utils.test.js +110 -0
  547. package/dist/esm/src/primitives/__tests/utils.test.js.map +1 -0
  548. package/dist/esm/src/primitives/index.js +66 -14
  549. package/dist/esm/src/primitives/index.js.map +1 -1
  550. package/dist/esm/src/primitives/utils.js +109 -80
  551. package/dist/esm/src/primitives/utils.js.map +1 -1
  552. package/dist/esm/src/script/LockingScript.js +8 -2
  553. package/dist/esm/src/script/LockingScript.js.map +1 -1
  554. package/dist/esm/src/script/OP.js +3 -1
  555. package/dist/esm/src/script/OP.js.map +1 -1
  556. package/dist/esm/src/script/Script.js +56 -48
  557. package/dist/esm/src/script/Script.js.map +1 -1
  558. package/dist/esm/src/script/ScriptChunk.js +2 -1
  559. package/dist/esm/src/script/ScriptTemplate.js +2 -1
  560. package/dist/esm/src/script/Spend.js +345 -301
  561. package/dist/esm/src/script/Spend.js.map +1 -1
  562. package/dist/esm/src/script/UnlockingScript.js +8 -2
  563. package/dist/esm/src/script/UnlockingScript.js.map +1 -1
  564. package/dist/esm/src/script/__tests/Script.test.js +347 -0
  565. package/dist/esm/src/script/__tests/Script.test.js.map +1 -0
  566. package/dist/esm/src/script/__tests/Spend.test.js +282 -0
  567. package/dist/esm/src/script/__tests/Spend.test.js.map +1 -0
  568. package/dist/esm/src/script/__tests/SpendComplex.test.js +51 -0
  569. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +1 -0
  570. package/dist/esm/src/script/__tests/script.invalid.vectors.js +2370 -0
  571. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +1 -0
  572. package/dist/esm/src/script/__tests/script.valid.vectors.js +1181 -0
  573. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +1 -0
  574. package/dist/esm/src/script/__tests/spend.valid.vectors.js +2298 -0
  575. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +1 -0
  576. package/dist/esm/src/script/index.js +31 -6
  577. package/dist/esm/src/script/index.js.map +1 -1
  578. package/dist/esm/src/script/templates/P2PKH.js +52 -39
  579. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  580. package/dist/esm/src/script/templates/PushDrop.js +51 -46
  581. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  582. package/dist/esm/src/script/templates/RPuzzle.js +55 -46
  583. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  584. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +161 -0
  585. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  586. package/dist/esm/src/script/templates/index.js +12 -3
  587. package/dist/esm/src/script/templates/index.js.map +1 -1
  588. package/dist/esm/src/totp/__tests/totp.test.js +67 -0
  589. package/dist/esm/src/totp/__tests/totp.test.js.map +1 -0
  590. package/dist/esm/src/totp/index.js +17 -1
  591. package/dist/esm/src/totp/index.js.map +1 -1
  592. package/dist/esm/src/totp/totp.js +15 -8
  593. package/dist/esm/src/totp/totp.js.map +1 -1
  594. package/dist/esm/src/transaction/Beef.js +160 -141
  595. package/dist/esm/src/transaction/Beef.js.map +1 -1
  596. package/dist/esm/src/transaction/BeefParty.js +30 -26
  597. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  598. package/dist/esm/src/transaction/BeefTx.js +32 -24
  599. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  600. package/dist/esm/src/transaction/Broadcaster.js +6 -2
  601. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  602. package/dist/esm/src/transaction/ChainTracker.js +2 -1
  603. package/dist/esm/src/transaction/FeeModel.js +2 -1
  604. package/dist/esm/src/transaction/MerklePath.js +31 -23
  605. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  606. package/dist/esm/src/transaction/Transaction.js +96 -158
  607. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  608. package/dist/esm/src/transaction/TransactionInput.js +2 -1
  609. package/dist/esm/src/transaction/TransactionOutput.js +2 -1
  610. package/dist/esm/src/transaction/__tests/Beef.test.js +393 -0
  611. package/dist/esm/src/transaction/__tests/Beef.test.js.map +1 -0
  612. package/dist/esm/src/transaction/__tests/MerklePath.test.js +209 -0
  613. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +1 -0
  614. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  615. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  616. package/dist/esm/src/transaction/__tests/Transaction.test.js +1072 -0
  617. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +1 -0
  618. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +7 -0
  619. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  620. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  621. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  622. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +7 -0
  623. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  624. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  625. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  626. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +296 -0
  627. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  628. package/dist/esm/src/transaction/broadcasters/ARC.js +46 -36
  629. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  630. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +9 -3
  631. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  632. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +19 -16
  633. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  634. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  635. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  636. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  637. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  638. package/dist/esm/src/transaction/broadcasters/index.js +12 -3
  639. package/dist/esm/src/transaction/broadcasters/index.js.map +1 -1
  640. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +9 -3
  641. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  642. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +12 -9
  643. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  644. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  645. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  646. package/dist/esm/src/transaction/chaintrackers/index.js +10 -2
  647. package/dist/esm/src/transaction/chaintrackers/index.js.map +1 -1
  648. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +7 -4
  649. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  650. package/dist/esm/src/transaction/fee-models/index.js +8 -1
  651. package/dist/esm/src/transaction/fee-models/index.js.map +1 -1
  652. package/dist/esm/src/transaction/http/DefaultHttpClient.js +15 -12
  653. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  654. package/dist/esm/src/transaction/http/FetchHttpClient.js +9 -3
  655. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  656. package/dist/esm/src/transaction/http/HttpClient.js +2 -1
  657. package/dist/esm/src/transaction/http/NodejsHttpClient.js +15 -9
  658. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  659. package/dist/esm/src/transaction/http/index.js +9 -3
  660. package/dist/esm/src/transaction/http/index.js.map +1 -1
  661. package/dist/esm/src/transaction/index.js +32 -6
  662. package/dist/esm/src/transaction/index.js.map +1 -1
  663. package/dist/esm/src/wallet/CachedKeyDeriver.js +69 -64
  664. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  665. package/dist/esm/src/wallet/KeyDeriver.js +72 -60
  666. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  667. package/dist/esm/src/wallet/ProtoWallet.js +33 -16
  668. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  669. package/dist/esm/src/wallet/Wallet.interfaces.js +5 -2
  670. package/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -1
  671. package/dist/esm/src/wallet/WalletClient.js +22 -15
  672. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  673. package/dist/esm/src/wallet/WalletError.js +6 -2
  674. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  675. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  676. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  677. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +113 -0
  678. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  679. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +475 -0
  680. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  681. package/dist/esm/src/wallet/index.js +32 -8
  682. package/dist/esm/src/wallet/index.js.map +1 -1
  683. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +7 -4
  684. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  685. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +17 -11
  686. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  687. package/dist/esm/src/wallet/substrates/WalletWire.js +2 -1
  688. package/dist/esm/src/wallet/substrates/WalletWireCalls.js +3 -1
  689. package/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -1
  690. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1300 -1317
  691. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  692. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +327 -273
  693. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  694. package/dist/esm/src/wallet/substrates/XDM.js +12 -6
  695. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  696. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  697. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  698. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +579 -0
  699. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  700. package/dist/esm/src/wallet/substrates/index.js +32 -7
  701. package/dist/esm/src/wallet/substrates/index.js.map +1 -1
  702. package/dist/esm/src/wallet/substrates/window.CWI.js +8 -5
  703. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  704. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  705. package/dist/types/mod.d.ts +15 -15
  706. package/dist/types/mod.d.ts.map +1 -1
  707. package/dist/types/src/auth/Peer.d.ts +14 -14
  708. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  709. package/dist/types/src/auth/SessionManager.d.ts +5 -5
  710. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  711. package/dist/types/src/auth/__tests/Peer.test.d.ts +2 -0
  712. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +1 -0
  713. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +2 -0
  714. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +1 -0
  715. package/dist/types/src/auth/certificates/Certificate.d.ts +2 -2
  716. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  717. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +2 -2
  718. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  719. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +2 -2
  720. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  721. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +2 -0
  722. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +1 -0
  723. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +2 -2
  724. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  725. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +2 -0
  726. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +1 -0
  727. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +2 -0
  728. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +1 -0
  729. package/dist/types/src/auth/certificates/index.d.ts +4 -4
  730. package/dist/types/src/auth/certificates/index.d.ts.map +1 -1
  731. package/dist/types/src/auth/clients/AuthFetch.d.ts +9 -9
  732. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  733. package/dist/types/src/auth/clients/index.d.ts +1 -1
  734. package/dist/types/src/auth/clients/index.d.ts.map +1 -1
  735. package/dist/types/src/auth/index.d.ts +7 -7
  736. package/dist/types/src/auth/index.d.ts.map +1 -1
  737. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  738. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  739. package/dist/types/src/auth/transports/index.d.ts +1 -1
  740. package/dist/types/src/auth/transports/index.d.ts.map +1 -1
  741. package/dist/types/src/auth/types.d.ts +1 -1
  742. package/dist/types/src/auth/types.d.ts.map +1 -1
  743. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +2 -0
  744. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +1 -0
  745. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +2 -0
  746. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +1 -0
  747. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +2 -0
  748. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +1 -0
  749. package/dist/types/src/auth/utils/createNonce.d.ts +1 -1
  750. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  751. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  752. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  753. package/dist/types/src/auth/utils/index.d.ts +4 -4
  754. package/dist/types/src/auth/utils/index.d.ts.map +1 -1
  755. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  756. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  757. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  758. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  759. package/dist/types/src/compat/BSM.d.ts +3 -3
  760. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  761. package/dist/types/src/compat/ECIES.d.ts +38 -38
  762. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  763. package/dist/types/src/compat/HD.d.ts +53 -53
  764. package/dist/types/src/compat/HD.d.ts.map +1 -1
  765. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  766. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  767. package/dist/types/src/compat/Utxo.d.ts +3 -3
  768. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  769. package/dist/types/src/compat/__tests/BSM.test.d.ts +2 -0
  770. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +1 -0
  771. package/dist/types/src/compat/__tests/ECIES.test.d.ts +2 -0
  772. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +1 -0
  773. package/dist/types/src/compat/__tests/HD.test.d.ts +2 -0
  774. package/dist/types/src/compat/__tests/HD.test.d.ts.map +1 -0
  775. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +2 -0
  776. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +1 -0
  777. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +11 -0
  778. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +1 -0
  779. package/dist/types/src/compat/index.d.ts +5 -5
  780. package/dist/types/src/compat/index.d.ts.map +1 -1
  781. package/dist/types/src/messages/EncryptedMessage.d.ts +2 -2
  782. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  783. package/dist/types/src/messages/SignedMessage.d.ts +2 -2
  784. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  785. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +2 -0
  786. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +1 -0
  787. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +2 -0
  788. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +1 -0
  789. package/dist/types/src/messages/index.d.ts +2 -2
  790. package/dist/types/src/messages/index.d.ts.map +1 -1
  791. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  792. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  793. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +21 -21
  794. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  795. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +16 -16
  796. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  797. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +2 -0
  798. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +1 -0
  799. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +2 -0
  800. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +1 -0
  801. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +2 -0
  802. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +1 -0
  803. package/dist/types/src/overlay-tools/index.d.ts +5 -5
  804. package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
  805. package/dist/types/src/primitives/BasePoint.d.ts +1 -1
  806. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  807. package/dist/types/src/primitives/BigNumber.d.ts +1 -1
  808. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  809. package/dist/types/src/primitives/Curve.d.ts +3 -3
  810. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  811. package/dist/types/src/primitives/DRBG.d.ts +1 -1
  812. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  813. package/dist/types/src/primitives/ECDSA.d.ts +3 -3
  814. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  815. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  816. package/dist/types/src/primitives/JacobianPoint.d.ts +3 -3
  817. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  818. package/dist/types/src/primitives/K256.d.ts +2 -2
  819. package/dist/types/src/primitives/K256.d.ts.map +1 -1
  820. package/dist/types/src/primitives/Mersenne.d.ts +1 -1
  821. package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
  822. package/dist/types/src/primitives/MontgomoryMethod.d.ts +2 -2
  823. package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -1
  824. package/dist/types/src/primitives/Point.d.ts +17 -13
  825. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  826. package/dist/types/src/primitives/Polynomial.d.ts +2 -2
  827. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  828. package/dist/types/src/primitives/PrivateKey.d.ts +5 -5
  829. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  830. package/dist/types/src/primitives/PublicKey.d.ts +4 -4
  831. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  832. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  833. package/dist/types/src/primitives/ReductionContext.d.ts +2 -2
  834. package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
  835. package/dist/types/src/primitives/Schnorr.d.ts +17 -17
  836. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  837. package/dist/types/src/primitives/Signature.d.ts +2 -2
  838. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  839. package/dist/types/src/primitives/SymmetricKey.d.ts +14 -14
  840. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  841. package/dist/types/src/primitives/TransactionSignature.d.ts +9 -9
  842. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  843. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +2 -0
  844. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +1 -0
  845. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +8 -0
  846. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +1 -0
  847. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +8 -0
  848. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +1 -0
  849. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +2 -0
  850. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +1 -0
  851. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +2 -0
  852. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +1 -0
  853. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +2 -0
  854. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +1 -0
  855. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +2 -0
  856. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +1 -0
  857. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +15 -0
  858. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +1 -0
  859. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +2 -0
  860. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +1 -0
  861. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +2 -0
  862. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +1 -0
  863. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +2 -0
  864. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +1 -0
  865. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +2 -0
  866. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +1 -0
  867. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +10 -0
  868. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +1 -0
  869. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +2 -0
  870. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +1 -0
  871. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +2 -0
  872. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +1 -0
  873. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +2 -0
  874. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +1 -0
  875. package/dist/types/src/primitives/__tests/Hash.test.d.ts +2 -0
  876. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +1 -0
  877. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +68 -0
  878. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +1 -0
  879. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +2 -0
  880. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +1 -0
  881. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +2 -0
  882. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +1 -0
  883. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +2 -0
  884. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +1 -0
  885. package/dist/types/src/primitives/__tests/Random.test.d.ts +2 -0
  886. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +1 -0
  887. package/dist/types/src/primitives/__tests/Reader.test.d.ts +2 -0
  888. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +1 -0
  889. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +2 -0
  890. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +1 -0
  891. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +2 -0
  892. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +1 -0
  893. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +2 -0
  894. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +1 -0
  895. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +20 -0
  896. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +1 -0
  897. package/dist/types/src/primitives/__tests/Writer.test.d.ts +2 -0
  898. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +1 -0
  899. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +2 -0
  900. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +1 -0
  901. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +3 -0
  902. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +1 -0
  903. package/dist/types/src/primitives/__tests/utils.test.d.ts +2 -0
  904. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +1 -0
  905. package/dist/types/src/primitives/index.d.ts +14 -14
  906. package/dist/types/src/primitives/index.d.ts.map +1 -1
  907. package/dist/types/src/primitives/utils.d.ts +1 -1
  908. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  909. package/dist/types/src/script/LockingScript.d.ts +1 -1
  910. package/dist/types/src/script/LockingScript.d.ts.map +1 -1
  911. package/dist/types/src/script/Script.d.ts +5 -5
  912. package/dist/types/src/script/Script.d.ts.map +1 -1
  913. package/dist/types/src/script/ScriptTemplate.d.ts +3 -3
  914. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  915. package/dist/types/src/script/Spend.d.ts +4 -4
  916. package/dist/types/src/script/Spend.d.ts.map +1 -1
  917. package/dist/types/src/script/UnlockingScript.d.ts +1 -1
  918. package/dist/types/src/script/UnlockingScript.d.ts.map +1 -1
  919. package/dist/types/src/script/__tests/Script.test.d.ts +2 -0
  920. package/dist/types/src/script/__tests/Script.test.d.ts.map +1 -0
  921. package/dist/types/src/script/__tests/Spend.test.d.ts +2 -0
  922. package/dist/types/src/script/__tests/Spend.test.d.ts.map +1 -0
  923. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +2 -0
  924. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +1 -0
  925. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +3 -0
  926. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +1 -0
  927. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +3 -0
  928. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +1 -0
  929. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +3 -0
  930. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +1 -0
  931. package/dist/types/src/script/index.d.ts +7 -7
  932. package/dist/types/src/script/index.d.ts.map +1 -1
  933. package/dist/types/src/script/templates/P2PKH.d.ts +7 -7
  934. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  935. package/dist/types/src/script/templates/PushDrop.d.ts +7 -7
  936. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  937. package/dist/types/src/script/templates/RPuzzle.d.ts +9 -9
  938. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  939. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +2 -0
  940. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +1 -0
  941. package/dist/types/src/script/templates/index.d.ts +3 -3
  942. package/dist/types/src/script/templates/index.d.ts.map +1 -1
  943. package/dist/types/src/totp/__tests/totp.test.d.ts +2 -0
  944. package/dist/types/src/totp/__tests/totp.test.d.ts.map +1 -0
  945. package/dist/types/src/totp/index.d.ts +1 -1
  946. package/dist/types/src/totp/index.d.ts.map +1 -1
  947. package/dist/types/src/transaction/Beef.d.ts +96 -96
  948. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  949. package/dist/types/src/transaction/BeefParty.d.ts +23 -23
  950. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  951. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  952. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  953. package/dist/types/src/transaction/Broadcaster.d.ts +1 -1
  954. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  955. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  956. package/dist/types/src/transaction/FeeModel.d.ts +1 -1
  957. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  958. package/dist/types/src/transaction/MerklePath.d.ts +2 -2
  959. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  960. package/dist/types/src/transaction/Transaction.d.ts +11 -19
  961. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  962. package/dist/types/src/transaction/TransactionInput.d.ts +2 -2
  963. package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -1
  964. package/dist/types/src/transaction/TransactionOutput.d.ts +1 -1
  965. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  966. package/dist/types/src/transaction/__tests/Beef.test.d.ts +2 -0
  967. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +1 -0
  968. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +2 -0
  969. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +1 -0
  970. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +2 -0
  971. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +1 -0
  972. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +2 -0
  973. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +1 -0
  974. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +6 -0
  975. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +1 -0
  976. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +6 -0
  977. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +1 -0
  978. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +5 -0
  979. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +1 -0
  980. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +3 -0
  981. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +1 -0
  982. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +3 -0
  983. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +1 -0
  984. package/dist/types/src/transaction/broadcasters/ARC.d.ts +3 -3
  985. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  986. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +2 -2
  987. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  988. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +4 -4
  989. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  990. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +2 -0
  991. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +1 -0
  992. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +2 -0
  993. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +1 -0
  994. package/dist/types/src/transaction/broadcasters/index.d.ts +4 -4
  995. package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -1
  996. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
  997. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  998. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +3 -3
  999. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  1000. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +2 -0
  1001. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +1 -0
  1002. package/dist/types/src/transaction/chaintrackers/index.d.ts +3 -3
  1003. package/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -1
  1004. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +2 -2
  1005. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  1006. package/dist/types/src/transaction/fee-models/index.d.ts +1 -1
  1007. package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -1
  1008. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +2 -2
  1009. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  1010. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +6 -6
  1011. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  1012. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  1013. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  1014. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +4 -4
  1015. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  1016. package/dist/types/src/transaction/http/index.d.ts +6 -6
  1017. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  1018. package/dist/types/src/transaction/index.d.ts +10 -10
  1019. package/dist/types/src/transaction/index.d.ts.map +1 -1
  1020. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +61 -61
  1021. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  1022. package/dist/types/src/wallet/KeyDeriver.d.ts +80 -80
  1023. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  1024. package/dist/types/src/wallet/ProtoWallet.d.ts +3 -3
  1025. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  1026. package/dist/types/src/wallet/Wallet.interfaces.d.ts +144 -144
  1027. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  1028. package/dist/types/src/wallet/WalletClient.d.ts +1 -1
  1029. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  1030. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +2 -0
  1031. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +1 -0
  1032. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +2 -0
  1033. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +1 -0
  1034. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +2 -0
  1035. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +1 -0
  1036. package/dist/types/src/wallet/index.d.ts +8 -8
  1037. package/dist/types/src/wallet/index.d.ts.map +1 -1
  1038. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +1 -1
  1039. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  1040. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +1 -1
  1041. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  1042. package/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -1
  1043. package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -1
  1044. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +2 -2
  1045. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  1046. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +10 -10
  1047. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  1048. package/dist/types/src/wallet/substrates/XDM.d.ts +2 -2
  1049. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  1050. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +2 -0
  1051. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +1 -0
  1052. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +5 -0
  1053. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +1 -0
  1054. package/dist/types/src/wallet/substrates/index.d.ts +7 -7
  1055. package/dist/types/src/wallet/substrates/index.d.ts.map +1 -1
  1056. package/dist/types/src/wallet/substrates/window.CWI.d.ts +19 -19
  1057. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  1058. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  1059. package/dist/umd/bundle.js +1 -1
  1060. package/docs/auth.md +55 -51
  1061. package/docs/compat.md +24 -24
  1062. package/docs/messages.md +7 -5
  1063. package/docs/overlay-tools.md +21 -21
  1064. package/docs/primitives.md +239 -242
  1065. package/docs/script.md +31 -31
  1066. package/docs/totp.md +5 -5
  1067. package/docs/transaction.md +76 -78
  1068. package/docs/wallet-substrates.md +6 -6
  1069. package/docs/wallet.md +129 -129
  1070. package/mod.ts +15 -15
  1071. package/package.json +10 -2
  1072. package/src/auth/Peer.ts +217 -72
  1073. package/src/auth/SessionManager.ts +8 -6
  1074. package/src/auth/__tests/Peer.test.ts +314 -159
  1075. package/src/auth/certificates/Certificate.ts +16 -6
  1076. package/src/auth/certificates/MasterCertificate.ts +96 -43
  1077. package/src/auth/certificates/VerifiableCertificate.ts +29 -9
  1078. package/src/auth/certificates/__tests/Certificate.test.ts +160 -146
  1079. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +148 -59
  1080. package/src/auth/certificates/__tests/MasterCertificate.test.ts +65 -41
  1081. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +47 -31
  1082. package/src/auth/certificates/index.ts +4 -4
  1083. package/src/auth/clients/AuthFetch.ts +316 -231
  1084. package/src/auth/clients/index.ts +1 -1
  1085. package/src/auth/index.ts +7 -7
  1086. package/src/auth/transports/SimplifiedFetchTransport.ts +166 -124
  1087. package/src/auth/transports/index.ts +1 -1
  1088. package/src/auth/types.ts +1 -1
  1089. package/src/auth/utils/__tests/cryptononce.test.ts +52 -25
  1090. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +64 -38
  1091. package/src/auth/utils/__tests/validateCertificates.test.ts +101 -89
  1092. package/src/auth/utils/createNonce.ts +11 -3
  1093. package/src/auth/utils/getVerifiableCertificates.ts +11 -6
  1094. package/src/auth/utils/index.ts +4 -4
  1095. package/src/auth/utils/validateCertificates.ts +53 -39
  1096. package/src/auth/utils/verifyNonce.ts +6 -2
  1097. package/src/compat/BSM.ts +17 -9
  1098. package/src/compat/ECIES.ts +239 -123
  1099. package/src/compat/HD.ts +82 -63
  1100. package/src/compat/Mnemonic.ts +98 -87
  1101. package/src/compat/Utxo.ts +12 -9
  1102. package/src/compat/__tests/BSM.test.ts +43 -16
  1103. package/src/compat/__tests/ECIES.test.ts +117 -52
  1104. package/src/compat/__tests/HD.test.ts +49 -38
  1105. package/src/compat/__tests/Mnemonic.test.ts +145 -145
  1106. package/src/compat/index.ts +5 -5
  1107. package/src/messages/EncryptedMessage.ts +11 -7
  1108. package/src/messages/SignedMessage.ts +19 -14
  1109. package/src/messages/__tests/EncryptedMessage.test.ts +55 -56
  1110. package/src/messages/__tests/SignedMessage.test.ts +58 -52
  1111. package/src/messages/index.ts +2 -2
  1112. package/src/overlay-tools/LookupResolver.ts +65 -33
  1113. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -27
  1114. package/src/overlay-tools/SHIPBroadcaster.ts +134 -59
  1115. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  1116. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  1117. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  1118. package/src/overlay-tools/index.ts +5 -5
  1119. package/src/primitives/BasePoint.ts +1 -1
  1120. package/src/primitives/BigNumber.ts +94 -87
  1121. package/src/primitives/Curve.ts +49 -30
  1122. package/src/primitives/DRBG.ts +10 -12
  1123. package/src/primitives/ECDSA.ts +59 -33
  1124. package/src/primitives/Hash.ts +298 -179
  1125. package/src/primitives/JacobianPoint.ts +55 -21
  1126. package/src/primitives/K256.ts +2 -2
  1127. package/src/primitives/Mersenne.ts +1 -1
  1128. package/src/primitives/MontgomoryMethod.ts +2 -2
  1129. package/src/primitives/Point.ts +193 -113
  1130. package/src/primitives/Polynomial.ts +12 -7
  1131. package/src/primitives/PrivateKey.ts +44 -20
  1132. package/src/primitives/PublicKey.ts +21 -11
  1133. package/src/primitives/Random.ts +7 -5
  1134. package/src/primitives/ReductionContext.ts +4 -4
  1135. package/src/primitives/Schnorr.ts +45 -23
  1136. package/src/primitives/Signature.ts +27 -19
  1137. package/src/primitives/SymmetricKey.ts +17 -17
  1138. package/src/primitives/TransactionSignature.ts +29 -18
  1139. package/src/primitives/__tests/AESGCM.test.ts +635 -329
  1140. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +721 -502
  1141. package/src/primitives/__tests/BigNumber.binary.test.ts +271 -190
  1142. package/src/primitives/__tests/BigNumber.constructor.test.ts +60 -24
  1143. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +19 -15
  1144. package/src/primitives/__tests/BigNumber.serializers.test.ts +183 -157
  1145. package/src/primitives/__tests/BigNumber.utils.test.ts +394 -304
  1146. package/src/primitives/__tests/Curve.unit.test.ts +158 -143
  1147. package/src/primitives/__tests/DRBG.test.ts +13 -13
  1148. package/src/primitives/__tests/ECDH.test.ts +15 -8
  1149. package/src/primitives/__tests/ECDSA.test.ts +63 -57
  1150. package/src/primitives/__tests/HMAC.test.ts +55 -49
  1151. package/src/primitives/__tests/Hash.test.ts +96 -85
  1152. package/src/primitives/__tests/PrivateKey.split.test.ts +29 -9
  1153. package/src/primitives/__tests/PrivateKey.test.ts +53 -50
  1154. package/src/primitives/__tests/PublicKey.test.ts +15 -6
  1155. package/src/primitives/__tests/Random.test.ts +10 -10
  1156. package/src/primitives/__tests/Reader.test.ts +240 -219
  1157. package/src/primitives/__tests/ReductionContext.test.ts +271 -234
  1158. package/src/primitives/__tests/Schnorr.test.ts +252 -242
  1159. package/src/primitives/__tests/SymmetricKey.test.ts +53 -50
  1160. package/src/primitives/__tests/Writer.test.ts +23 -13
  1161. package/src/primitives/__tests/bug-31.test.ts +25 -23
  1162. package/src/primitives/__tests/utils.test.ts +70 -19
  1163. package/src/primitives/index.ts +14 -14
  1164. package/src/primitives/utils.ts +88 -63
  1165. package/src/script/LockingScript.ts +1 -1
  1166. package/src/script/Script.ts +14 -10
  1167. package/src/script/ScriptTemplate.ts +5 -7
  1168. package/src/script/Spend.ts +314 -118
  1169. package/src/script/UnlockingScript.ts +1 -1
  1170. package/src/script/__tests/Script.test.ts +68 -54
  1171. package/src/script/__tests/Spend.test.ts +188 -68
  1172. package/src/script/__tests/SpendComplex.test.ts +36 -26
  1173. package/src/script/__tests/script.valid.vectors.ts +1064 -3100
  1174. package/src/script/index.ts +7 -7
  1175. package/src/script/templates/P2PKH.ts +63 -52
  1176. package/src/script/templates/PushDrop.ts +117 -89
  1177. package/src/script/templates/RPuzzle.ts +72 -54
  1178. package/src/script/templates/__tests/PushDrop.test.ts +146 -40
  1179. package/src/script/templates/index.ts +3 -3
  1180. package/src/totp/__tests/totp.test.ts +39 -39
  1181. package/src/totp/index.ts +1 -1
  1182. package/src/totp/totp.ts +2 -2
  1183. package/src/transaction/Beef.ts +211 -141
  1184. package/src/transaction/BeefParty.ts +35 -27
  1185. package/src/transaction/BeefTx.ts +13 -9
  1186. package/src/transaction/Broadcaster.ts +11 -7
  1187. package/src/transaction/ChainTracker.ts +2 -2
  1188. package/src/transaction/FeeModel.ts +2 -2
  1189. package/src/transaction/MerklePath.ts +81 -37
  1190. package/src/transaction/Transaction.ts +185 -208
  1191. package/src/transaction/TransactionInput.ts +2 -2
  1192. package/src/transaction/TransactionOutput.ts +2 -2
  1193. package/src/transaction/__tests/Beef.test.ts +359 -297
  1194. package/src/transaction/__tests/MerklePath.test.ts +163 -131
  1195. package/src/transaction/__tests/Transaction.benchmarks.test.ts +235 -202
  1196. package/src/transaction/__tests/Transaction.test.ts +746 -459
  1197. package/src/transaction/broadcasters/ARC.ts +120 -94
  1198. package/src/transaction/broadcasters/DefaultBroadcaster.ts +11 -5
  1199. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +46 -33
  1200. package/src/transaction/broadcasters/__tests/ARC.test.ts +77 -45
  1201. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +25 -17
  1202. package/src/transaction/broadcasters/index.ts +4 -4
  1203. package/src/transaction/chaintrackers/DefaultChainTracker.ts +4 -4
  1204. package/src/transaction/chaintrackers/WhatsOnChain.ts +53 -38
  1205. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +138 -102
  1206. package/src/transaction/chaintrackers/index.ts +3 -3
  1207. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +37 -32
  1208. package/src/transaction/fee-models/index.ts +1 -1
  1209. package/src/transaction/http/DefaultHttpClient.ts +17 -17
  1210. package/src/transaction/http/FetchHttpClient.ts +18 -9
  1211. package/src/transaction/http/HttpClient.ts +30 -25
  1212. package/src/transaction/http/NodejsHttpClient.ts +42 -28
  1213. package/src/transaction/http/index.ts +10 -6
  1214. package/src/transaction/index.ts +14 -10
  1215. package/src/wallet/CachedKeyDeriver.ts +118 -72
  1216. package/src/wallet/KeyDeriver.ts +186 -105
  1217. package/src/wallet/ProtoWallet.ts +53 -17
  1218. package/src/wallet/Wallet.interfaces.ts +158 -149
  1219. package/src/wallet/WalletClient.ts +316 -58
  1220. package/src/wallet/__tests/CachedKeyDeriver.test.ts +83 -27
  1221. package/src/wallet/__tests/KeyDeriver.test.ts +219 -116
  1222. package/src/wallet/__tests/ProtoWallet.test.ts +420 -339
  1223. package/src/wallet/index.ts +8 -8
  1224. package/src/wallet/substrates/HTTPWalletJSON.ts +201 -32
  1225. package/src/wallet/substrates/HTTPWalletWire.ts +30 -26
  1226. package/src/wallet/substrates/WalletWire.ts +1 -1
  1227. package/src/wallet/substrates/WalletWireCalls.ts +3 -3
  1228. package/src/wallet/substrates/WalletWireProcessor.ts +1651 -1515
  1229. package/src/wallet/substrates/WalletWireTransceiver.ts +1424 -854
  1230. package/src/wallet/substrates/XDM.ts +427 -37
  1231. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +484 -223
  1232. package/src/wallet/substrates/__tests/XDM.test.ts +191 -195
  1233. package/src/wallet/substrates/index.ts +7 -7
  1234. package/src/wallet/substrates/window.CWI.ts +524 -65
@@ -1,18 +1,20 @@
1
- import ProtoWallet from '../../../../dist/cjs/src/wallet/ProtoWallet.js'
2
- import { Utils, PrivateKey, Hash } from '../../../../dist/cjs/src/primitives/index.js'
3
- import WalletWireTransceiver from '../../../../dist/cjs/src/wallet/substrates/WalletWireTransceiver.js'
4
- import WalletWireProcessor from '../../../../dist/cjs/src/wallet/substrates/WalletWireProcessor.js'
1
+ import { CompletedProtoWallet } from '../../../auth/certificates/__tests/CompletedProtoWallet'
2
+ import { Utils, PrivateKey, Hash } from '../../../primitives/index'
3
+ import WalletWireTransceiver from '../../../wallet/substrates/WalletWireTransceiver'
4
+ import WalletWireProcessor from '../../../wallet/substrates/WalletWireProcessor'
5
5
 
6
6
  const sampleData = [3, 1, 4, 1, 5, 9]
7
7
 
8
8
  describe('WalletWire Integration Tests', () => {
9
9
  /**
10
- * This is a copy of the test suite for ProtoWallet, but instead of using a ProtoWallet directly, we're using it over the WalletWire.
11
- * This serves as an imperfect but still useful way to ensure that the WalletWire doesn't contain serialization or deserialization issues.
12
- */
10
+ * This is a copy of the test suite for CompletedProtoWallet, but instead of using a CompletedProtoWallet directly, we're using it over the WalletWire.
11
+ * This serves as an imperfect but still useful way to ensure that the WalletWire doesn't contain serialization or deserialization issues.
12
+ */
13
13
  describe('ProtoWallet Over Wallet Wire', () => {
14
14
  it('Throws when functions are not supported', async () => {
15
- const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
15
+ const wallet = new WalletWireTransceiver(
16
+ new WalletWireProcessor(new CompletedProtoWallet('anyone'))
17
+ )
16
18
  await expect(() => {
17
19
  return (wallet as any).createAction()
18
20
  }).rejects.toThrow()
@@ -61,42 +63,88 @@ describe('WalletWire Integration Tests', () => {
61
63
  }).rejects.toThrow()
62
64
  })
63
65
  it('Validates the BRC-3 compliance vector', async () => {
64
- const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
66
+ const wallet = new WalletWireTransceiver(
67
+ new WalletWireProcessor(new CompletedProtoWallet('anyone'))
68
+ )
65
69
  const { valid } = await wallet.verifySignature({
66
70
  data: Utils.toArray('BRC-3 Compliance Validated!', 'utf8'),
67
- signature: [48, 68, 2, 32, 43, 34, 58, 156, 219, 32, 50, 70, 29, 240, 155, 137, 88, 60, 200, 95, 243, 198, 201, 21, 56, 82, 141, 112, 69, 196, 170, 73, 156, 6, 44, 48, 2, 32, 118, 125, 254, 201, 44, 87, 177, 170, 93, 11, 193, 134, 18, 70, 9, 31, 234, 27, 170, 177, 54, 96, 181, 140, 166, 196, 144, 14, 230, 118, 106, 105],
71
+ signature: [
72
+ 48, 68, 2, 32, 43, 34, 58, 156, 219, 32, 50, 70, 29, 240, 155, 137,
73
+ 88, 60, 200, 95, 243, 198, 201, 21, 56, 82, 141, 112, 69, 196, 170,
74
+ 73, 156, 6, 44, 48, 2, 32, 118, 125, 254, 201, 44, 87, 177, 170, 93,
75
+ 11, 193, 134, 18, 70, 9, 31, 234, 27, 170, 177, 54, 96, 181, 140, 166,
76
+ 196, 144, 14, 230, 118, 106, 105
77
+ ],
68
78
  protocolID: [2, 'BRC3 Test'],
69
79
  keyID: '42',
70
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
80
+ counterparty:
81
+ '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
71
82
  })
72
83
  expect(valid).toBe(true)
73
84
  })
74
85
  it('Validates the BRC-2 HMAC compliance vector', async () => {
75
- const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(new PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex'))))
86
+ const wallet = new WalletWireTransceiver(
87
+ new WalletWireProcessor(
88
+ new CompletedProtoWallet(
89
+ new PrivateKey(
90
+ '6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8',
91
+ 'hex'
92
+ )
93
+ )
94
+ )
95
+ )
76
96
  const { valid } = await wallet.verifyHmac({
77
97
  data: Utils.toArray('BRC-2 HMAC Compliance Validated!', 'utf8'),
78
- hmac: [81, 240, 18, 153, 163, 45, 174, 85, 9, 246, 142, 125, 209, 133, 82, 76, 254, 103, 46, 182, 86, 59, 219, 61, 126, 30, 176, 232, 233, 100, 234, 14],
98
+ hmac: [
99
+ 81, 240, 18, 153, 163, 45, 174, 85, 9, 246, 142, 125, 209, 133, 82,
100
+ 76, 254, 103, 46, 182, 86, 59, 219, 61, 126, 30, 176, 232, 233, 100,
101
+ 234, 14
102
+ ],
79
103
  protocolID: [2, 'BRC2 Test'],
80
104
  keyID: '42',
81
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
105
+ counterparty:
106
+ '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
82
107
  })
83
108
  expect(valid).toBe(true)
84
109
  })
85
110
  it('Validates the BRC-2 Encryption compliance vector', async () => {
86
- const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(new PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex'))))
111
+ const wallet = new WalletWireTransceiver(
112
+ new WalletWireProcessor(
113
+ new CompletedProtoWallet(
114
+ new PrivateKey(
115
+ '6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8',
116
+ 'hex'
117
+ )
118
+ )
119
+ )
120
+ )
87
121
  const { plaintext } = await wallet.decrypt({
88
- ciphertext: [252, 203, 216, 184, 29, 161, 223, 212, 16, 193, 94, 99, 31, 140, 99, 43, 61, 236, 184, 67, 54, 105, 199, 47, 11, 19, 184, 127, 2, 165, 125, 9, 188, 195, 196, 39, 120, 130, 213, 95, 186, 89, 64, 28, 1, 80, 20, 213, 159, 133, 98, 253, 128, 105, 113, 247, 197, 152, 236, 64, 166, 207, 113, 134, 65, 38, 58, 24, 127, 145, 140, 206, 47, 70, 146, 84, 186, 72, 95, 35, 154, 112, 178, 55, 72, 124],
122
+ ciphertext: [
123
+ 252, 203, 216, 184, 29, 161, 223, 212, 16, 193, 94, 99, 31, 140, 99,
124
+ 43, 61, 236, 184, 67, 54, 105, 199, 47, 11, 19, 184, 127, 2, 165, 125,
125
+ 9, 188, 195, 196, 39, 120, 130, 213, 95, 186, 89, 64, 28, 1, 80, 20,
126
+ 213, 159, 133, 98, 253, 128, 105, 113, 247, 197, 152, 236, 64, 166,
127
+ 207, 113, 134, 65, 38, 58, 24, 127, 145, 140, 206, 47, 70, 146, 84,
128
+ 186, 72, 95, 35, 154, 112, 178, 55, 72, 124
129
+ ],
89
130
  protocolID: [2, 'BRC2 Test'],
90
131
  keyID: '42',
91
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
132
+ counterparty:
133
+ '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
92
134
  })
93
- expect(Utils.toUTF8(plaintext)).toEqual('BRC-2 Encryption Compliance Validated!')
135
+ expect(Utils.toUTF8(plaintext)).toEqual(
136
+ 'BRC-2 Encryption Compliance Validated!'
137
+ )
94
138
  })
95
139
  it('Encrypts messages decryptable by the counterparty', async () => {
96
140
  const userKey = PrivateKey.fromRandom()
97
141
  const counterpartyKey = PrivateKey.fromRandom()
98
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
99
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
142
+ const user = new WalletWireTransceiver(
143
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
144
+ )
145
+ const counterparty = new WalletWireTransceiver(
146
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
147
+ )
100
148
  const { ciphertext } = await user.encrypt({
101
149
  plaintext: sampleData,
102
150
  protocolID: [2, 'tests'],
@@ -115,38 +163,55 @@ describe('WalletWire Integration Tests', () => {
115
163
  it('Fails to decryupt messages for the wrong protocol, key, and counterparty', async () => {
116
164
  const userKey = PrivateKey.fromRandom()
117
165
  const counterpartyKey = PrivateKey.fromRandom()
118
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
119
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
166
+ const user = new WalletWireTransceiver(
167
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
168
+ )
169
+ const counterparty = new WalletWireTransceiver(
170
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
171
+ )
120
172
  const { ciphertext } = await user.encrypt({
121
173
  plaintext: sampleData,
122
174
  protocolID: [2, 'tests'],
123
175
  keyID: '4',
124
176
  counterparty: counterpartyKey.toPublicKey().toString()
125
177
  })
126
- await expect(async () => await counterparty.decrypt({
127
- ciphertext,
128
- protocolID: [1, 'tests'],
129
- keyID: '4',
130
- counterparty: userKey.toPublicKey().toString()
131
- })).rejects.toThrow()
132
- await expect(async () => await counterparty.decrypt({
133
- ciphertext,
134
- protocolID: [2, 'tests'],
135
- keyID: '5',
136
- counterparty: userKey.toPublicKey().toString()
137
- })).rejects.toThrow()
138
- await expect(async () => await counterparty.decrypt({
139
- ciphertext,
140
- protocolID: [2, 'tests'],
141
- keyID: '4',
142
- counterparty: counterpartyKey.toPublicKey().toString()
143
- })).rejects.toThrow()
178
+ await expect(
179
+ async () =>
180
+ await counterparty.decrypt({
181
+ ciphertext,
182
+ protocolID: [1, 'tests'],
183
+ keyID: '4',
184
+ counterparty: userKey.toPublicKey().toString()
185
+ })
186
+ ).rejects.toThrow()
187
+ await expect(
188
+ async () =>
189
+ await counterparty.decrypt({
190
+ ciphertext,
191
+ protocolID: [2, 'tests'],
192
+ keyID: '5',
193
+ counterparty: userKey.toPublicKey().toString()
194
+ })
195
+ ).rejects.toThrow()
196
+ await expect(
197
+ async () =>
198
+ await counterparty.decrypt({
199
+ ciphertext,
200
+ protocolID: [2, 'tests'],
201
+ keyID: '4',
202
+ counterparty: counterpartyKey.toPublicKey().toString()
203
+ })
204
+ ).rejects.toThrow()
144
205
  })
145
206
  it('Correctly derives keys for a counterparty', async () => {
146
207
  const userKey = PrivateKey.fromRandom()
147
208
  const counterpartyKey = PrivateKey.fromRandom()
148
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
149
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
209
+ const user = new WalletWireTransceiver(
210
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
211
+ )
212
+ const counterparty = new WalletWireTransceiver(
213
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
214
+ )
150
215
  const { publicKey: identityKey } = await user.getPublicKey({
151
216
  identityKey: true
152
217
  })
@@ -156,19 +221,24 @@ describe('WalletWire Integration Tests', () => {
156
221
  keyID: '4',
157
222
  counterparty: counterpartyKey.toPublicKey().toString()
158
223
  })
159
- const { publicKey: derivedByCounterparty } = await counterparty.getPublicKey({
160
- protocolID: [2, 'tests'],
161
- keyID: '4',
162
- counterparty: userKey.toPublicKey().toString(),
163
- forSelf: true
164
- })
224
+ const { publicKey: derivedByCounterparty } =
225
+ await counterparty.getPublicKey({
226
+ protocolID: [2, 'tests'],
227
+ keyID: '4',
228
+ counterparty: userKey.toPublicKey().toString(),
229
+ forSelf: true
230
+ })
165
231
  expect(derivedForCounterparty).toEqual(derivedByCounterparty)
166
232
  })
167
233
  it('Signs messages verifiable by the counterparty', async () => {
168
234
  const userKey = PrivateKey.fromRandom()
169
235
  const counterpartyKey = PrivateKey.fromRandom()
170
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
171
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
236
+ const user = new WalletWireTransceiver(
237
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
238
+ )
239
+ const counterparty = new WalletWireTransceiver(
240
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
241
+ )
172
242
  const { signature } = await user.createSignature({
173
243
  data: sampleData,
174
244
  protocolID: [2, 'tests'],
@@ -188,8 +258,12 @@ describe('WalletWire Integration Tests', () => {
188
258
  it('Directly signs hash of message verifiable by the counterparty', async () => {
189
259
  const userKey = PrivateKey.fromRandom()
190
260
  const counterpartyKey = PrivateKey.fromRandom()
191
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
192
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
261
+ const user = new WalletWireTransceiver(
262
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
263
+ )
264
+ const counterparty = new WalletWireTransceiver(
265
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
266
+ )
193
267
  const { signature } = await user.createSignature({
194
268
  hashToDirectlySign: Hash.sha256(sampleData),
195
269
  protocolID: [2, 'tests'],
@@ -217,48 +291,68 @@ describe('WalletWire Integration Tests', () => {
217
291
  it('Fails to verify signature for the wrong data, protocol, key, and counterparty', async () => {
218
292
  const userKey = PrivateKey.fromRandom()
219
293
  const counterpartyKey = PrivateKey.fromRandom()
220
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
221
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
294
+ const user = new WalletWireTransceiver(
295
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
296
+ )
297
+ const counterparty = new WalletWireTransceiver(
298
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
299
+ )
222
300
  const { signature } = await user.createSignature({
223
301
  data: sampleData,
224
302
  protocolID: [2, 'tests'],
225
303
  keyID: '4',
226
304
  counterparty: counterpartyKey.toPublicKey().toString()
227
305
  })
228
- await expect(async () => await counterparty.verifySignature({
229
- signature,
230
- data: [0, ...sampleData],
231
- protocolID: [2, 'tests'],
232
- keyID: '4',
233
- counterparty: userKey.toPublicKey().toString()
234
- })).rejects.toThrow()
235
- await expect(async () => await counterparty.verifySignature({
236
- signature,
237
- data: sampleData,
238
- protocolID: [2, 'wrong'],
239
- keyID: '4',
240
- counterparty: userKey.toPublicKey().toString()
241
- })).rejects.toThrow()
242
- await expect(async () => await counterparty.verifySignature({
243
- signature,
244
- data: sampleData,
245
- protocolID: [2, 'tests'],
246
- keyID: '2',
247
- counterparty: userKey.toPublicKey().toString()
248
- })).rejects.toThrow()
249
- await expect(async () => await counterparty.verifySignature({
250
- signature,
251
- data: sampleData,
252
- protocolID: [2, 'tests'],
253
- keyID: '4',
254
- counterparty: counterpartyKey.toPublicKey().toString()
255
- })).rejects.toThrow()
306
+ await expect(
307
+ async () =>
308
+ await counterparty.verifySignature({
309
+ signature,
310
+ data: [0, ...sampleData],
311
+ protocolID: [2, 'tests'],
312
+ keyID: '4',
313
+ counterparty: userKey.toPublicKey().toString()
314
+ })
315
+ ).rejects.toThrow()
316
+ await expect(
317
+ async () =>
318
+ await counterparty.verifySignature({
319
+ signature,
320
+ data: sampleData,
321
+ protocolID: [2, 'wrong'],
322
+ keyID: '4',
323
+ counterparty: userKey.toPublicKey().toString()
324
+ })
325
+ ).rejects.toThrow()
326
+ await expect(
327
+ async () =>
328
+ await counterparty.verifySignature({
329
+ signature,
330
+ data: sampleData,
331
+ protocolID: [2, 'tests'],
332
+ keyID: '2',
333
+ counterparty: userKey.toPublicKey().toString()
334
+ })
335
+ ).rejects.toThrow()
336
+ await expect(
337
+ async () =>
338
+ await counterparty.verifySignature({
339
+ signature,
340
+ data: sampleData,
341
+ protocolID: [2, 'tests'],
342
+ keyID: '4',
343
+ counterparty: counterpartyKey.toPublicKey().toString()
344
+ })
345
+ ).rejects.toThrow()
256
346
  })
257
347
  it('Computes HMAC over messages verifiable by the counterparty', async () => {
258
348
  const userKey = PrivateKey.fromRandom()
259
349
  const counterpartyKey = PrivateKey.fromRandom()
260
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
261
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
350
+ const user = new WalletWireTransceiver(
351
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
352
+ )
353
+ const counterparty = new WalletWireTransceiver(
354
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
355
+ )
262
356
  const { hmac } = await user.createHmac({
263
357
  data: sampleData,
264
358
  protocolID: [2, 'tests'],
@@ -278,46 +372,64 @@ describe('WalletWire Integration Tests', () => {
278
372
  it('Fails to verify HMAC for the wrong data, protocol, key, and counterparty', async () => {
279
373
  const userKey = PrivateKey.fromRandom()
280
374
  const counterpartyKey = PrivateKey.fromRandom()
281
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
282
- const counterparty = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(counterpartyKey)))
375
+ const user = new WalletWireTransceiver(
376
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
377
+ )
378
+ const counterparty = new WalletWireTransceiver(
379
+ new WalletWireProcessor(new CompletedProtoWallet(counterpartyKey))
380
+ )
283
381
  const { hmac } = await user.createHmac({
284
382
  data: sampleData,
285
383
  protocolID: [2, 'tests'],
286
384
  keyID: '4',
287
385
  counterparty: counterpartyKey.toPublicKey().toString()
288
386
  })
289
- await expect(async () => await counterparty.verifyHmac({
290
- hmac,
291
- data: [0, ...sampleData],
292
- protocolID: [2, 'tests'],
293
- keyID: '4',
294
- counterparty: userKey.toPublicKey().toString()
295
- })).rejects.toThrow()
296
- await expect(async () => await counterparty.verifyHmac({
297
- hmac,
298
- data: sampleData,
299
- protocolID: [2, 'wrong'],
300
- keyID: '4',
301
- counterparty: userKey.toPublicKey().toString()
302
- })).rejects.toThrow()
303
- await expect(async () => await counterparty.verifyHmac({
304
- hmac,
305
- data: sampleData,
306
- protocolID: [2, 'tests'],
307
- keyID: '2',
308
- counterparty: userKey.toPublicKey().toString()
309
- })).rejects.toThrow()
310
- await expect(async () => await counterparty.verifyHmac({
311
- hmac,
312
- data: sampleData,
313
- protocolID: [2, 'tests'],
314
- keyID: '4',
315
- counterparty: counterpartyKey.toPublicKey().toString()
316
- })).rejects.toThrow()
387
+ await expect(
388
+ async () =>
389
+ await counterparty.verifyHmac({
390
+ hmac,
391
+ data: [0, ...sampleData],
392
+ protocolID: [2, 'tests'],
393
+ keyID: '4',
394
+ counterparty: userKey.toPublicKey().toString()
395
+ })
396
+ ).rejects.toThrow()
397
+ await expect(
398
+ async () =>
399
+ await counterparty.verifyHmac({
400
+ hmac,
401
+ data: sampleData,
402
+ protocolID: [2, 'wrong'],
403
+ keyID: '4',
404
+ counterparty: userKey.toPublicKey().toString()
405
+ })
406
+ ).rejects.toThrow()
407
+ await expect(
408
+ async () =>
409
+ await counterparty.verifyHmac({
410
+ hmac,
411
+ data: sampleData,
412
+ protocolID: [2, 'tests'],
413
+ keyID: '2',
414
+ counterparty: userKey.toPublicKey().toString()
415
+ })
416
+ ).rejects.toThrow()
417
+ await expect(
418
+ async () =>
419
+ await counterparty.verifyHmac({
420
+ hmac,
421
+ data: sampleData,
422
+ protocolID: [2, 'tests'],
423
+ keyID: '4',
424
+ counterparty: counterpartyKey.toPublicKey().toString()
425
+ })
426
+ ).rejects.toThrow()
317
427
  })
318
428
  it('Uses anyone for creating signatures and self for other operations if no counterparty is provided', async () => {
319
429
  const userKey = PrivateKey.fromRandom()
320
- const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
430
+ const user = new WalletWireTransceiver(
431
+ new WalletWireProcessor(new CompletedProtoWallet(userKey))
432
+ )
321
433
  const { hmac } = await user.createHmac({
322
434
  data: sampleData,
323
435
  protocolID: [2, 'tests'],
@@ -345,7 +457,9 @@ describe('WalletWire Integration Tests', () => {
345
457
  keyID: '4'
346
458
  // counterparty=anyone is implicit for creating signatures
347
459
  })
348
- const anyone = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
460
+ const anyone = new WalletWireTransceiver(
461
+ new WalletWireProcessor(new CompletedProtoWallet('anyone'))
462
+ )
349
463
  const { valid: anyoneSigValid } = await anyone.verifySignature({
350
464
  signature: anyoneSig,
351
465
  data: sampleData,
@@ -412,8 +526,12 @@ describe('WalletWire Integration Tests', () => {
412
526
  const verifierKey = PrivateKey.fromRandom()
413
527
 
414
528
  // Initialize wallets
415
- const proverWallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(proverKey)))
416
- const verifierWallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(verifierKey)))
529
+ const proverWallet = new WalletWireTransceiver(
530
+ new WalletWireProcessor(new CompletedProtoWallet(proverKey))
531
+ )
532
+ const verifierWallet = new WalletWireTransceiver(
533
+ new WalletWireProcessor(new CompletedProtoWallet(verifierKey))
534
+ )
417
535
 
418
536
  // Prover reveals counterparty key linkage
419
537
  const revelation = await proverWallet.revealCounterpartyKeyLinkage({
@@ -430,7 +548,9 @@ describe('WalletWire Integration Tests', () => {
430
548
  })
431
549
 
432
550
  // Compute expected linkage
433
- const expectedLinkage = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
551
+ const expectedLinkage = proverKey
552
+ .deriveSharedSecret(counterpartyKey.toPublicKey())
553
+ .encode(true)
434
554
 
435
555
  // Compare linkage and expectedLinkage
436
556
  expect(linkage).toEqual(expectedLinkage)
@@ -443,8 +563,12 @@ describe('WalletWire Integration Tests', () => {
443
563
  const verifierKey = PrivateKey.fromRandom()
444
564
 
445
565
  // Initialize wallets
446
- const proverWallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(proverKey)))
447
- const verifierWallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(verifierKey)))
566
+ const proverWallet = new WalletWireTransceiver(
567
+ new WalletWireProcessor(new CompletedProtoWallet(proverKey))
568
+ )
569
+ const verifierWallet = new WalletWireTransceiver(
570
+ new WalletWireProcessor(new CompletedProtoWallet(verifierKey))
571
+ )
448
572
 
449
573
  const protocolID: [0 | 1 | 2, string] = [0, 'tests']
450
574
  const keyID = 'test key id'
@@ -462,18 +586,27 @@ describe('WalletWire Integration Tests', () => {
462
586
  // Verifier decrypts the encrypted linkage
463
587
  const { plaintext: linkage } = await verifierWallet.decrypt({
464
588
  ciphertext: revelation.encryptedLinkage,
465
- protocolID: [2, `specific linkage revelation ${protocolID[0]} ${protocolID[1]}`],
589
+ protocolID: [
590
+ 2,
591
+ `specific linkage revelation ${protocolID[0]} ${protocolID[1]}`
592
+ ],
466
593
  keyID,
467
594
  counterparty: proverKey.toPublicKey().toString()
468
595
  })
469
596
 
470
597
  // Compute expected linkage
471
- const sharedSecret = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
598
+ const sharedSecret = proverKey
599
+ .deriveSharedSecret(counterpartyKey.toPublicKey())
600
+ .encode(true)
472
601
 
473
602
  // Function to compute the invoice number
474
603
  const computeInvoiceNumber = function (protocolID, keyID) {
475
604
  const securityLevel = protocolID[0]
476
- if (!Number.isInteger(securityLevel) || securityLevel < 0 || securityLevel > 2) {
605
+ if (
606
+ !Number.isInteger(securityLevel) ||
607
+ securityLevel < 0 ||
608
+ securityLevel > 2
609
+ ) {
477
610
  throw new Error('Protocol security level must be 0, 1, or 2')
478
611
  }
479
612
  const protocolName = protocolID[1].toLowerCase().trim()
@@ -490,10 +623,14 @@ describe('WalletWire Integration Tests', () => {
490
623
  throw new Error('Protocol names must be 5 characters or more')
491
624
  }
492
625
  if (protocolName.includes(' ')) {
493
- throw new Error('Protocol names cannot contain multiple consecutive spaces (" ")')
626
+ throw new Error(
627
+ 'Protocol names cannot contain multiple consecutive spaces (" ")'
628
+ )
494
629
  }
495
630
  if (!/^[a-z0-9 ]+$/g.test(protocolName)) {
496
- throw new Error('Protocol names can only contain letters, numbers and spaces')
631
+ throw new Error(
632
+ 'Protocol names can only contain letters, numbers and spaces'
633
+ )
497
634
  }
498
635
  if (protocolName.endsWith(' protocol')) {
499
636
  throw new Error('No need to end your protocol name with " protocol"')
@@ -511,17 +648,19 @@ describe('WalletWire Integration Tests', () => {
511
648
  })
512
649
  })
513
650
  // Helper function to create a test wallet wire setup
514
- const createTestWalletWire = (wallet: ProtoWallet) => {
651
+ const createTestWalletWire = (wallet: CompletedProtoWallet) => {
515
652
  const processor = new WalletWireProcessor(wallet)
516
653
  const transceiver = new WalletWireTransceiver(processor)
517
654
  return transceiver
518
655
  }
519
656
 
520
- // Mock implementation for methods not supported by ProtoWallet
521
- const mockUnsupportedMethods = (methods: Partial<ProtoWallet>): ProtoWallet => {
657
+ // Mock implementation for methods not supported by CompletedProtoWallet
658
+ const mockUnsupportedMethods = (
659
+ methods: Partial<CompletedProtoWallet>
660
+ ): CompletedProtoWallet => {
522
661
  return {
523
662
  ...methods
524
- } as ProtoWallet
663
+ } as CompletedProtoWallet
525
664
  }
526
665
 
527
666
  describe('createAction', () => {
@@ -665,11 +804,13 @@ describe('WalletWire Integration Tests', () => {
665
804
  description: 'Test action with all options',
666
805
  inputs: [],
667
806
  inputBEEF: [1, 2, 3, 4],
668
- outputs: [{
669
- lockingScript: '016a',
670
- satoshis: 1,
671
- outputDescription: 'This is a test.'
672
- }],
807
+ outputs: [
808
+ {
809
+ lockingScript: '016a',
810
+ satoshis: 1,
811
+ outputDescription: 'This is a test.'
812
+ }
813
+ ],
673
814
  lockTime: 0,
674
815
  version: 1,
675
816
  labels: ['label1', 'label2'],
@@ -702,7 +843,9 @@ describe('WalletWire Integration Tests', () => {
702
843
 
703
844
  it('should throw an error with invalid inputs', async () => {
704
845
  // Mock the createAction method to throw an error
705
- const createActionMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
846
+ const createActionMock = jest
847
+ .fn()
848
+ .mockRejectedValue(new Error('Invalid inputs'))
706
849
  const wallet = createTestWalletWire(
707
850
  mockUnsupportedMethods({
708
851
  createAction: createActionMock
@@ -745,7 +888,9 @@ describe('WalletWire Integration Tests', () => {
745
888
 
746
889
  it('should throw an error with invalid inputs', async () => {
747
890
  // Mock the signAction method to throw an error
748
- const signActionMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
891
+ const signActionMock = jest
892
+ .fn()
893
+ .mockRejectedValue(new Error('Invalid inputs'))
749
894
  const wallet = createTestWalletWire(
750
895
  mockUnsupportedMethods({
751
896
  signAction: signActionMock
@@ -778,7 +923,9 @@ describe('WalletWire Integration Tests', () => {
778
923
 
779
924
  it('should throw an error with invalid reference', async () => {
780
925
  // Mock the abortAction method to throw an error
781
- const abortActionMock = jest.fn().mockRejectedValue(new Error('Invalid reference'))
926
+ const abortActionMock = jest
927
+ .fn()
928
+ .mockRejectedValue(new Error('Invalid reference'))
782
929
  const wallet = createTestWalletWire(
783
930
  mockUnsupportedMethods({
784
931
  abortAction: abortActionMock
@@ -786,7 +933,9 @@ describe('WalletWire Integration Tests', () => {
786
933
  )
787
934
  const reference = ''
788
935
  const args = { reference }
789
- await expect(wallet.abortAction(args)).rejects.toThrow('Invalid reference')
936
+ await expect(wallet.abortAction(args)).rejects.toThrow(
937
+ 'Invalid reference'
938
+ )
790
939
  expect(abortActionMock).toHaveBeenCalledWith(args, '')
791
940
  })
792
941
  })
@@ -855,7 +1004,9 @@ describe('WalletWire Integration Tests', () => {
855
1004
 
856
1005
  it('should throw an error with invalid inputs', async () => {
857
1006
  // Mock the listActions method to throw an error
858
- const listActionsMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
1007
+ const listActionsMock = jest
1008
+ .fn()
1009
+ .mockRejectedValue(new Error('Invalid inputs'))
859
1010
  const wallet = createTestWalletWire(
860
1011
  mockUnsupportedMethods({
861
1012
  listActions: listActionsMock
@@ -872,7 +1023,9 @@ describe('WalletWire Integration Tests', () => {
872
1023
  describe('internalizeAction', () => {
873
1024
  it('should internalize an action with valid inputs', async () => {
874
1025
  // Mock the internalizeAction method
875
- const internalizeActionMock = jest.fn().mockResolvedValue({ accepted: true })
1026
+ const internalizeActionMock = jest
1027
+ .fn()
1028
+ .mockResolvedValue({ accepted: true })
876
1029
  const wallet = createTestWalletWire(
877
1030
  mockUnsupportedMethods({
878
1031
  internalizeAction: internalizeActionMock
@@ -902,7 +1055,9 @@ describe('WalletWire Integration Tests', () => {
902
1055
 
903
1056
  it('should throw an error with invalid inputs', async () => {
904
1057
  // Mock the internalizeAction method to throw an error
905
- const internalizeActionMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
1058
+ const internalizeActionMock = jest
1059
+ .fn()
1060
+ .mockRejectedValue(new Error('Invalid inputs'))
906
1061
  const wallet = createTestWalletWire(
907
1062
  mockUnsupportedMethods({
908
1063
  internalizeAction: internalizeActionMock
@@ -913,12 +1068,16 @@ describe('WalletWire Integration Tests', () => {
913
1068
  outputs: [],
914
1069
  description: 'Test internalize action'
915
1070
  }
916
- await expect(wallet.internalizeAction(args)).rejects.toThrow('Invalid inputs')
1071
+ await expect(wallet.internalizeAction(args)).rejects.toThrow(
1072
+ 'Invalid inputs'
1073
+ )
917
1074
  expect(internalizeActionMock).toHaveBeenCalledWith(args, '')
918
1075
  })
919
1076
  it('should internalize an action with "basket insertion" protocol', async () => {
920
1077
  // Mock the internalizeAction method
921
- const internalizeActionMock = jest.fn().mockResolvedValue({ accepted: true })
1078
+ const internalizeActionMock = jest
1079
+ .fn()
1080
+ .mockResolvedValue({ accepted: true })
922
1081
  const wallet = createTestWalletWire(
923
1082
  mockUnsupportedMethods({
924
1083
  internalizeAction: internalizeActionMock
@@ -954,7 +1113,8 @@ describe('WalletWire Integration Tests', () => {
954
1113
  totalOutputs: 1,
955
1114
  outputs: [
956
1115
  {
957
- outpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1116
+ outpoint:
1117
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
958
1118
  satoshis: 1000,
959
1119
  lockingScript: '00',
960
1120
  spendable: true,
@@ -985,7 +1145,9 @@ describe('WalletWire Integration Tests', () => {
985
1145
 
986
1146
  it('should throw an error with invalid inputs', async () => {
987
1147
  // Mock the listOutputs method to throw an error
988
- const listOutputsMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
1148
+ const listOutputsMock = jest
1149
+ .fn()
1150
+ .mockRejectedValue(new Error('Invalid inputs'))
989
1151
  const wallet = createTestWalletWire(
990
1152
  mockUnsupportedMethods({
991
1153
  listOutputs: listOutputsMock
@@ -1004,7 +1166,8 @@ describe('WalletWire Integration Tests', () => {
1004
1166
  BEEF: [1, 2, 3, 4],
1005
1167
  outputs: [
1006
1168
  {
1007
- outpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1169
+ outpoint:
1170
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1008
1171
  satoshis: 1000,
1009
1172
  spendable: true
1010
1173
  }
@@ -1037,7 +1200,9 @@ describe('WalletWire Integration Tests', () => {
1037
1200
 
1038
1201
  describe('getPublicKey', () => {
1039
1202
  it('should get the identity public key', async () => {
1040
- const wallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
1203
+ const wallet = createTestWalletWire(
1204
+ new CompletedProtoWallet(PrivateKey.fromRandom())
1205
+ )
1041
1206
  const result = await wallet.getPublicKey({ identityKey: true })
1042
1207
  expect(result).toHaveProperty('publicKey')
1043
1208
  expect(typeof result.publicKey).toBe('string')
@@ -1047,7 +1212,7 @@ describe('WalletWire Integration Tests', () => {
1047
1212
  it('should get a derived public key with valid inputs', async () => {
1048
1213
  const userKey = PrivateKey.fromRandom()
1049
1214
  const counterpartyKey = PrivateKey.fromRandom()
1050
- const wallet = createTestWalletWire(new ProtoWallet(userKey))
1215
+ const wallet = createTestWalletWire(new CompletedProtoWallet(userKey))
1051
1216
  const args = {
1052
1217
  protocolID: [2, 'tests'] as [0 | 1 | 2, string],
1053
1218
  keyID: 'test-key-id',
@@ -1060,7 +1225,9 @@ describe('WalletWire Integration Tests', () => {
1060
1225
  })
1061
1226
 
1062
1227
  it('should get the public key with counterparty "anyone"', async () => {
1063
- const wallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
1228
+ const wallet = createTestWalletWire(
1229
+ new CompletedProtoWallet(PrivateKey.fromRandom())
1230
+ )
1064
1231
  const args = {
1065
1232
  protocolID: [1, 'testprotocol'] as [0 | 1 | 2, string],
1066
1233
  keyID: 'testkeyid',
@@ -1073,7 +1240,9 @@ describe('WalletWire Integration Tests', () => {
1073
1240
  })
1074
1241
 
1075
1242
  it('should get the public key with missing optional parameters', async () => {
1076
- const wallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
1243
+ const wallet = createTestWalletWire(
1244
+ new CompletedProtoWallet(PrivateKey.fromRandom())
1245
+ )
1077
1246
  const args = {
1078
1247
  protocolID: [0, 'minimalprotocol'] as [0 | 1 | 2, string],
1079
1248
  keyID: 'minimalkeyid'
@@ -1090,8 +1259,10 @@ describe('WalletWire Integration Tests', () => {
1090
1259
  it('should encrypt and decrypt data correctly', async () => {
1091
1260
  const userKey = PrivateKey.fromRandom()
1092
1261
  const counterpartyKey = PrivateKey.fromRandom()
1093
- const userWallet = createTestWalletWire(new ProtoWallet(userKey))
1094
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(counterpartyKey))
1262
+ const userWallet = createTestWalletWire(new CompletedProtoWallet(userKey))
1263
+ const counterpartyWallet = createTestWalletWire(
1264
+ new CompletedProtoWallet(counterpartyKey)
1265
+ )
1095
1266
 
1096
1267
  const plaintext = sampleData
1097
1268
  const encryptArgs = {
@@ -1118,7 +1289,9 @@ describe('WalletWire Integration Tests', () => {
1118
1289
  it('should throw an error for invalid decryption inputs', async () => {
1119
1290
  const userKey = PrivateKey.fromRandom()
1120
1291
  const counterpartyKey = PrivateKey.fromRandom()
1121
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(counterpartyKey))
1292
+ const counterpartyWallet = createTestWalletWire(
1293
+ new CompletedProtoWallet(counterpartyKey)
1294
+ )
1122
1295
 
1123
1296
  const decryptArgs = {
1124
1297
  ciphertext: [0x00],
@@ -1134,8 +1307,10 @@ describe('WalletWire Integration Tests', () => {
1134
1307
  it('should create and verify HMAC correctly', async () => {
1135
1308
  const userKey = PrivateKey.fromRandom()
1136
1309
  const counterpartyKey = PrivateKey.fromRandom()
1137
- const userWallet = createTestWalletWire(new ProtoWallet(userKey))
1138
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(counterpartyKey))
1310
+ const userWallet = createTestWalletWire(new CompletedProtoWallet(userKey))
1311
+ const counterpartyWallet = createTestWalletWire(
1312
+ new CompletedProtoWallet(counterpartyKey)
1313
+ )
1139
1314
 
1140
1315
  const data = sampleData
1141
1316
  const createHmacArgs = {
@@ -1155,13 +1330,16 @@ describe('WalletWire Integration Tests', () => {
1155
1330
  keyID: 'test-key-id',
1156
1331
  counterparty: userKey.toPublicKey().toString()
1157
1332
  }
1158
- const verifyHmacResult = await counterpartyWallet.verifyHmac(verifyHmacArgs)
1333
+ const verifyHmacResult =
1334
+ await counterpartyWallet.verifyHmac(verifyHmacArgs)
1159
1335
  expect(verifyHmacResult).toEqual({ valid: true })
1160
1336
  })
1161
1337
 
1162
1338
  it('should throw an error for invalid HMAC verification', async () => {
1163
1339
  const userKey = PrivateKey.fromRandom()
1164
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
1340
+ const counterpartyWallet = createTestWalletWire(
1341
+ new CompletedProtoWallet(PrivateKey.fromRandom())
1342
+ )
1165
1343
 
1166
1344
  const verifyHmacArgs = {
1167
1345
  data: sampleData,
@@ -1170,7 +1348,9 @@ describe('WalletWire Integration Tests', () => {
1170
1348
  keyID: 'test-key-id',
1171
1349
  counterparty: userKey.toPublicKey().toString()
1172
1350
  }
1173
- await expect(counterpartyWallet.verifyHmac(verifyHmacArgs)).rejects.toThrow()
1351
+ await expect(
1352
+ counterpartyWallet.verifyHmac(verifyHmacArgs)
1353
+ ).rejects.toThrow()
1174
1354
  })
1175
1355
  })
1176
1356
 
@@ -1178,8 +1358,10 @@ describe('WalletWire Integration Tests', () => {
1178
1358
  it('should create and verify signature correctly', async () => {
1179
1359
  const userKey = PrivateKey.fromRandom()
1180
1360
  const counterpartyKey = PrivateKey.fromRandom()
1181
- const userWallet = createTestWalletWire(new ProtoWallet(userKey))
1182
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(counterpartyKey))
1361
+ const userWallet = createTestWalletWire(new CompletedProtoWallet(userKey))
1362
+ const counterpartyWallet = createTestWalletWire(
1363
+ new CompletedProtoWallet(counterpartyKey)
1364
+ )
1183
1365
 
1184
1366
  const data = sampleData
1185
1367
  const createSignatureArgs = {
@@ -1188,7 +1370,8 @@ describe('WalletWire Integration Tests', () => {
1188
1370
  keyID: 'test-key-id',
1189
1371
  counterparty: counterpartyKey.toPublicKey().toString()
1190
1372
  }
1191
- const createSignatureResult = await userWallet.createSignature(createSignatureArgs)
1373
+ const createSignatureResult =
1374
+ await userWallet.createSignature(createSignatureArgs)
1192
1375
  expect(createSignatureResult).toHaveProperty('signature')
1193
1376
  expect(createSignatureResult.signature.length).toBeGreaterThan(0)
1194
1377
 
@@ -1199,13 +1382,16 @@ describe('WalletWire Integration Tests', () => {
1199
1382
  keyID: 'test-key-id',
1200
1383
  counterparty: userKey.toPublicKey().toString()
1201
1384
  }
1202
- const verifySignatureResult = await counterpartyWallet.verifySignature(verifySignatureArgs)
1385
+ const verifySignatureResult =
1386
+ await counterpartyWallet.verifySignature(verifySignatureArgs)
1203
1387
  expect(verifySignatureResult).toEqual({ valid: true })
1204
1388
  })
1205
1389
 
1206
1390
  it('should throw an error for invalid signature verification', async () => {
1207
1391
  const userKey = PrivateKey.fromRandom()
1208
- const counterpartyWallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
1392
+ const counterpartyWallet = createTestWalletWire(
1393
+ new CompletedProtoWallet(PrivateKey.fromRandom())
1394
+ )
1209
1395
 
1210
1396
  const verifySignatureArgs = {
1211
1397
  data: sampleData,
@@ -1214,7 +1400,9 @@ describe('WalletWire Integration Tests', () => {
1214
1400
  keyID: 'test-key-id',
1215
1401
  counterparty: userKey.toPublicKey().toString()
1216
1402
  }
1217
- await expect(counterpartyWallet.verifySignature(verifySignatureArgs)).rejects.toThrow()
1403
+ await expect(
1404
+ counterpartyWallet.verifySignature(verifySignatureArgs)
1405
+ ).rejects.toThrow()
1218
1406
  })
1219
1407
  })
1220
1408
 
@@ -1224,8 +1412,12 @@ describe('WalletWire Integration Tests', () => {
1224
1412
  const counterpartyKey = PrivateKey.fromRandom()
1225
1413
  const verifierKey = PrivateKey.fromRandom()
1226
1414
 
1227
- const proverWallet = createTestWalletWire(new ProtoWallet(proverKey))
1228
- const verifierWallet = createTestWalletWire(new ProtoWallet(verifierKey))
1415
+ const proverWallet = createTestWalletWire(
1416
+ new CompletedProtoWallet(proverKey)
1417
+ )
1418
+ const verifierWallet = createTestWalletWire(
1419
+ new CompletedProtoWallet(verifierKey)
1420
+ )
1229
1421
 
1230
1422
  const args = {
1231
1423
  counterparty: counterpartyKey.toPublicKey().toString(),
@@ -1237,13 +1429,18 @@ describe('WalletWire Integration Tests', () => {
1237
1429
 
1238
1430
  const decryptArgs = {
1239
1431
  ciphertext: revelation.encryptedLinkage,
1240
- protocolID: [2, 'counterparty linkage revelation'] as [0 | 1 | 2, string],
1432
+ protocolID: [2, 'counterparty linkage revelation'] as [
1433
+ 0 | 1 | 2,
1434
+ string
1435
+ ],
1241
1436
  keyID: revelation.revelationTime,
1242
1437
  counterparty: proverKey.toPublicKey().toString()
1243
1438
  }
1244
1439
  const decryptedResult = await verifierWallet.decrypt(decryptArgs)
1245
1440
 
1246
- const expectedLinkage = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
1441
+ const expectedLinkage = proverKey
1442
+ .deriveSharedSecret(counterpartyKey.toPublicKey())
1443
+ .encode(true)
1247
1444
  expect(decryptedResult.plaintext).toEqual(expectedLinkage)
1248
1445
  })
1249
1446
  })
@@ -1256,8 +1453,10 @@ describe('WalletWire Integration Tests', () => {
1256
1453
  subject: '02' + 'a'.repeat(64),
1257
1454
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1258
1455
  certifier: '02' + 'b'.repeat(64),
1259
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1260
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1456
+ revocationOutpoint:
1457
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1458
+ signature:
1459
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1261
1460
  fields: {
1262
1461
  field1: 'value1',
1263
1462
  field2: 'value2'
@@ -1278,8 +1477,10 @@ describe('WalletWire Integration Tests', () => {
1278
1477
  field2: 'value2'
1279
1478
  },
1280
1479
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1281
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1282
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1480
+ revocationOutpoint:
1481
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1482
+ signature:
1483
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1283
1484
  keyringRevealer: 'certifier',
1284
1485
  keyringForSubject: {}
1285
1486
  }
@@ -1300,8 +1501,10 @@ describe('WalletWire Integration Tests', () => {
1300
1501
  subject: '02' + 'a'.repeat(64),
1301
1502
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1302
1503
  certifier: '02' + 'b'.repeat(64),
1303
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1304
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1504
+ revocationOutpoint:
1505
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1506
+ signature:
1507
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1305
1508
  fields: {
1306
1509
  field1: 'value1',
1307
1510
  field2: 'value2'
@@ -1322,8 +1525,10 @@ describe('WalletWire Integration Tests', () => {
1322
1525
  field2: 'value2'
1323
1526
  },
1324
1527
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1325
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1326
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1528
+ revocationOutpoint:
1529
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1530
+ signature:
1531
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1327
1532
  keyringRevealer: 'certifier' as 'certifier',
1328
1533
  keyringForSubject: {
1329
1534
  field1: Utils.toBase64([0x01, 0x02, 0x03]),
@@ -1348,8 +1553,10 @@ describe('WalletWire Integration Tests', () => {
1348
1553
  subject: '02' + 'a'.repeat(64),
1349
1554
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1350
1555
  certifier: '02' + 'b'.repeat(64),
1351
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1352
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1556
+ revocationOutpoint:
1557
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1558
+ signature:
1559
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1353
1560
  fields: {
1354
1561
  field1: 'value1',
1355
1562
  field2: 'value2'
@@ -1371,8 +1578,10 @@ describe('WalletWire Integration Tests', () => {
1371
1578
  field2: 'value2'
1372
1579
  },
1373
1580
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1374
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1375
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1581
+ revocationOutpoint:
1582
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1583
+ signature:
1584
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1376
1585
  keyringRevealer: keyringRevealerPubKey,
1377
1586
  keyringForSubject: {
1378
1587
  field1: Utils.toBase64([0x01, 0x02, 0x03]),
@@ -1397,8 +1606,10 @@ describe('WalletWire Integration Tests', () => {
1397
1606
  subject: '02' + 'd'.repeat(64),
1398
1607
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1399
1608
  certifier: '02' + 'b'.repeat(64),
1400
- revocationOutpoint: 'cafebabedeadbeefcafebabedeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.1',
1401
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1609
+ revocationOutpoint:
1610
+ 'cafebabedeadbeefcafebabedeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.1',
1611
+ signature:
1612
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1402
1613
  fields: {
1403
1614
  field3: 'value3',
1404
1615
  field4: 'value4'
@@ -1438,8 +1649,10 @@ describe('WalletWire Integration Tests', () => {
1438
1649
  subject: '02' + 'e'.repeat(64),
1439
1650
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1440
1651
  certifier: '02' + 'b'.repeat(64),
1441
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1442
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1652
+ revocationOutpoint:
1653
+ 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1654
+ signature:
1655
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1443
1656
  fields: {
1444
1657
  field5: 'value5'
1445
1658
  }
@@ -1458,8 +1671,10 @@ describe('WalletWire Integration Tests', () => {
1458
1671
  field5: 'value5'
1459
1672
  },
1460
1673
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1461
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1462
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1674
+ revocationOutpoint:
1675
+ 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1676
+ signature:
1677
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1463
1678
  keyringRevealer: 'certifier' as 'certifier',
1464
1679
  keyringForSubject: {} // Empty keyring
1465
1680
  }
@@ -1487,8 +1702,10 @@ describe('WalletWire Integration Tests', () => {
1487
1702
  subject: '02' + 'a'.repeat(64),
1488
1703
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1489
1704
  certifier: '02' + 'b'.repeat(64),
1490
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1491
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1705
+ revocationOutpoint:
1706
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1707
+ signature:
1708
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1492
1709
  fields: {
1493
1710
  field1: 'value1',
1494
1711
  field2: 'value2'
@@ -1524,8 +1741,10 @@ describe('WalletWire Integration Tests', () => {
1524
1741
  subject: '02' + 'a'.repeat(64),
1525
1742
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1526
1743
  certifier: '02' + 'b'.repeat(64),
1527
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1528
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1744
+ revocationOutpoint:
1745
+ 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1746
+ signature:
1747
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1529
1748
  fields: {
1530
1749
  field1: 'value1',
1531
1750
  field2: 'value2'
@@ -1536,8 +1755,10 @@ describe('WalletWire Integration Tests', () => {
1536
1755
  subject: '02' + 'c'.repeat(64),
1537
1756
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1538
1757
  certifier: '02' + 'b'.repeat(64),
1539
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1540
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1758
+ revocationOutpoint:
1759
+ 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1760
+ signature:
1761
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1541
1762
  fields: {
1542
1763
  field3: 'value3',
1543
1764
  field4: 'value4',
@@ -1564,7 +1785,10 @@ describe('WalletWire Integration Tests', () => {
1564
1785
  const result = await wallet.listCertificates(args)
1565
1786
  expect(result).toHaveProperty('totalCertificates', 2)
1566
1787
  expect(result.certificates.length).toBe(2)
1567
- expect(result.certificates[0].fields).toEqual({ field1: 'value1', field2: 'value2' })
1788
+ expect(result.certificates[0].fields).toEqual({
1789
+ field1: 'value1',
1790
+ field2: 'value2'
1791
+ })
1568
1792
  expect(result.certificates[1].fields).toEqual({
1569
1793
  field3: 'value3',
1570
1794
  field4: 'value4',
@@ -1583,8 +1807,10 @@ describe('WalletWire Integration Tests', () => {
1583
1807
  subject: '02' + 'd'.repeat(64),
1584
1808
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1585
1809
  certifier: '02' + 'e'.repeat(64),
1586
- revocationOutpoint: 'cafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe.2',
1587
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1810
+ revocationOutpoint:
1811
+ 'cafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe.2',
1812
+ signature:
1813
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1588
1814
  fields: {
1589
1815
  field6: 'value6'
1590
1816
  }
@@ -1633,8 +1859,10 @@ describe('WalletWire Integration Tests', () => {
1633
1859
  subject: '02' + 'a'.repeat(64),
1634
1860
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1635
1861
  certifier: '02' + 'b'.repeat(64),
1636
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1637
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1862
+ revocationOutpoint:
1863
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1864
+ signature:
1865
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1638
1866
  fields: {
1639
1867
  field1: 'value1',
1640
1868
  field2: 'value2'
@@ -1667,8 +1895,10 @@ describe('WalletWire Integration Tests', () => {
1667
1895
  subject: '02' + 'a'.repeat(64),
1668
1896
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1669
1897
  certifier: '02' + 'b'.repeat(64),
1670
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1671
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1898
+ revocationOutpoint:
1899
+ 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1900
+ signature:
1901
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1672
1902
  fields: {
1673
1903
  field1: 'value1',
1674
1904
  field2: 'value2',
@@ -1680,7 +1910,10 @@ describe('WalletWire Integration Tests', () => {
1680
1910
  }
1681
1911
  const result = await wallet.proveCertificate(args)
1682
1912
  expect(result).toHaveProperty('keyringForVerifier')
1683
- expect(Object.keys(result.keyringForVerifier)).toEqual(['field1', 'field2'])
1913
+ expect(Object.keys(result.keyringForVerifier)).toEqual([
1914
+ 'field1',
1915
+ 'field2'
1916
+ ])
1684
1917
  expect(proveCertificateMock).toHaveBeenCalledWith(args, '')
1685
1918
  })
1686
1919
 
@@ -1701,8 +1934,10 @@ describe('WalletWire Integration Tests', () => {
1701
1934
  subject: '02' + 'a'.repeat(64),
1702
1935
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1703
1936
  certifier: '02' + 'b'.repeat(64),
1704
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1705
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1937
+ revocationOutpoint:
1938
+ 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1939
+ signature:
1940
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1706
1941
  fields: {
1707
1942
  field4: 'value4',
1708
1943
  field5: 'value5'
@@ -1721,7 +1956,9 @@ describe('WalletWire Integration Tests', () => {
1721
1956
  describe('relinquishCertificate', () => {
1722
1957
  it('should relinquish a certificate with valid inputs', async () => {
1723
1958
  // Mock the relinquishCertificate method
1724
- const relinquishCertificateMock = jest.fn().mockResolvedValue({ relinquished: true })
1959
+ const relinquishCertificateMock = jest
1960
+ .fn()
1961
+ .mockResolvedValue({ relinquished: true })
1725
1962
  const wallet = createTestWalletWire(
1726
1963
  mockUnsupportedMethods({
1727
1964
  relinquishCertificate: relinquishCertificateMock
@@ -1758,7 +1995,9 @@ describe('WalletWire Integration Tests', () => {
1758
1995
 
1759
1996
  it('should throw an error when getHeight fails', async () => {
1760
1997
  // Mock the getHeight method to throw an error
1761
- const getHeightMock = jest.fn().mockRejectedValue(new Error('Failed to get height'))
1998
+ const getHeightMock = jest
1999
+ .fn()
2000
+ .mockRejectedValue(new Error('Failed to get height'))
1762
2001
  const wallet = createTestWalletWire(
1763
2002
  mockUnsupportedMethods({
1764
2003
  getHeight: getHeightMock
@@ -1789,14 +2028,18 @@ describe('WalletWire Integration Tests', () => {
1789
2028
 
1790
2029
  it('should throw an error when getHeaderForHeight fails', async () => {
1791
2030
  // Mock the getHeaderForHeight method to throw an error
1792
- const getHeaderForHeightMock = jest.fn().mockRejectedValue(new Error('Failed to get header'))
2031
+ const getHeaderForHeightMock = jest
2032
+ .fn()
2033
+ .mockRejectedValue(new Error('Failed to get header'))
1793
2034
  const wallet = createTestWalletWire(
1794
2035
  mockUnsupportedMethods({
1795
2036
  getHeaderForHeight: getHeaderForHeightMock
1796
2037
  })
1797
2038
  )
1798
2039
  const args = { height: -1 } // Invalid height
1799
- await expect(wallet.getHeaderForHeight(args)).rejects.toThrow('Failed to get header')
2040
+ await expect(wallet.getHeaderForHeight(args)).rejects.toThrow(
2041
+ 'Failed to get header'
2042
+ )
1800
2043
  expect(getHeaderForHeightMock).toHaveBeenCalledWith(args, '')
1801
2044
  })
1802
2045
  })
@@ -1812,8 +2055,10 @@ describe('WalletWire Integration Tests', () => {
1812
2055
  subject: '02' + 'a'.repeat(64),
1813
2056
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1814
2057
  certifier: '02' + 'b'.repeat(64),
1815
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1816
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2058
+ revocationOutpoint:
2059
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
2060
+ signature:
2061
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1817
2062
  fields: {},
1818
2063
  certifierInfo: {
1819
2064
  name: 'Test Certifier',
@@ -1853,8 +2098,10 @@ describe('WalletWire Integration Tests', () => {
1853
2098
  subject: '02' + 'a'.repeat(64),
1854
2099
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1855
2100
  certifier: '02' + 'b'.repeat(64),
1856
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1857
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2101
+ revocationOutpoint:
2102
+ 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
2103
+ signature:
2104
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1858
2105
  fields: {},
1859
2106
  certifierInfo: {
1860
2107
  name: 'Test Certifier',
@@ -1896,8 +2143,10 @@ describe('WalletWire Integration Tests', () => {
1896
2143
  subject: '02' + 'a'.repeat(64),
1897
2144
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1898
2145
  certifier: '02' + 'b'.repeat(64),
1899
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1900
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2146
+ revocationOutpoint:
2147
+ 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
2148
+ signature:
2149
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1901
2150
  fields: {},
1902
2151
  certifierInfo: {
1903
2152
  name: 'Certifier One',
@@ -1917,8 +2166,10 @@ describe('WalletWire Integration Tests', () => {
1917
2166
  subject: '02' + 'a'.repeat(64),
1918
2167
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1919
2168
  certifier: '02' + 'c'.repeat(64),
1920
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1921
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2169
+ revocationOutpoint:
2170
+ 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
2171
+ signature:
2172
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1922
2173
  fields: {},
1923
2174
  certifierInfo: {
1924
2175
  name: 'Certifier Two',
@@ -1965,8 +2216,10 @@ describe('WalletWire Integration Tests', () => {
1965
2216
  subject: '02' + 'a'.repeat(64),
1966
2217
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
1967
2218
  certifier: '02' + 'b'.repeat(64),
1968
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1969
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2219
+ revocationOutpoint:
2220
+ 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
2221
+ signature:
2222
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1970
2223
  fields: {},
1971
2224
  certifierInfo: {
1972
2225
  name: 'Test Certifier',
@@ -2001,7 +2254,9 @@ describe('WalletWire Integration Tests', () => {
2001
2254
 
2002
2255
  it('should throw an error with invalid inputs', async () => {
2003
2256
  // Mock the discoverByAttributes method to throw an error
2004
- const discoverByAttributesMock = jest.fn().mockRejectedValue(new Error('Invalid inputs'))
2257
+ const discoverByAttributesMock = jest
2258
+ .fn()
2259
+ .mockRejectedValue(new Error('Invalid inputs'))
2005
2260
  const wallet = createTestWalletWire(
2006
2261
  mockUnsupportedMethods({
2007
2262
  discoverByAttributes: discoverByAttributesMock
@@ -2010,7 +2265,9 @@ describe('WalletWire Integration Tests', () => {
2010
2265
  const args = {
2011
2266
  attributes: {}
2012
2267
  }
2013
- await expect(wallet.discoverByAttributes(args)).rejects.toThrow('Invalid inputs')
2268
+ await expect(wallet.discoverByAttributes(args)).rejects.toThrow(
2269
+ 'Invalid inputs'
2270
+ )
2014
2271
  expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '')
2015
2272
  })
2016
2273
  it('should discover certificates matching provided attributes', async () => {
@@ -2023,8 +2280,10 @@ describe('WalletWire Integration Tests', () => {
2023
2280
  subject: '02' + 'd'.repeat(64),
2024
2281
  serialNumber: Utils.toBase64(new Array(32).fill(2)),
2025
2282
  certifier: '02' + 'e'.repeat(64),
2026
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
2027
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2283
+ revocationOutpoint:
2284
+ 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
2285
+ signature:
2286
+ '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
2028
2287
  fields: {},
2029
2288
  certifierInfo: {
2030
2289
  name: 'Certifier Three',
@@ -2033,7 +2292,7 @@ describe('WalletWire Integration Tests', () => {
2033
2292
  trust: 8
2034
2293
  },
2035
2294
  publiclyRevealedKeyring: {
2036
- fieldX: Utils.toBase64([0x0A, 0x0B])
2295
+ fieldX: Utils.toBase64([0x0a, 0x0b])
2037
2296
  },
2038
2297
  decryptedFields: {
2039
2298
  fieldY: 'decryptedValueY'
@@ -2058,7 +2317,9 @@ describe('WalletWire Integration Tests', () => {
2058
2317
  expect(result).toHaveProperty('totalCertificates', 1)
2059
2318
  expect(result.certificates.length).toBe(1)
2060
2319
  expect(result.certificates[0].certifierInfo.name).toBe('Certifier Three')
2061
- expect(result.certificates[0].decryptedFields.fieldY).toBe('decryptedValueY')
2320
+ expect(result.certificates[0].decryptedFields.fieldY).toBe(
2321
+ 'decryptedValueY'
2322
+ )
2062
2323
  expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '')
2063
2324
  })
2064
2325