@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,40 @@
1
- import LookupResolver, { HTTPSOverlayLookupFacilitator } from '../../../dist/cjs/src/overlay-tools/LookupResolver.js'
2
- import OverlayAdminTokenTemplate from '../../../dist/cjs/src//overlay-tools/OverlayAdminTokenTemplate.js'
3
- import ProtoWallet from '../../../dist/cjs/src/wallet/ProtoWallet.js'
4
- import { PrivateKey } from '../../../dist/cjs/src/primitives/index.js'
5
- import { Transaction } from '../../../dist/cjs/src/transaction/index.js'
6
- import { LockingScript } from '../../../dist/cjs/src/script/index.js'
1
+ import LookupResolver, {
2
+ HTTPSOverlayLookupFacilitator
3
+ } from '../LookupResolver'
4
+ import OverlayAdminTokenTemplate from '../../overlay-tools/OverlayAdminTokenTemplate'
5
+ import { CompletedProtoWallet } from '../../auth/certificates/__tests/CompletedProtoWallet'
6
+ import { PrivateKey } from '../../primitives/index'
7
+ import { Transaction } from '../../transaction/index'
8
+ import { LockingScript } from '../../script/index'
7
9
 
8
10
  const mockFacilitator = {
9
11
  lookup: jest.fn()
10
12
  }
11
13
 
12
- const sampleBeef1 = new Transaction(1, [], [{ lockingScript: LockingScript.fromHex('88'), satoshis: 1 }], 0).toBEEF()
13
- const sampleBeef2 = new Transaction(1, [], [{ lockingScript: LockingScript.fromHex('88'), satoshis: 2 }], 0).toBEEF()
14
- const sampleBeef3 = new Transaction(1, [], [{ lockingScript: LockingScript.fromHex('88'), satoshis: 3 }], 0).toBEEF()
15
- const sampleBeef4 = new Transaction(1, [], [{ lockingScript: LockingScript.fromHex('88'), satoshis: 4 }], 0).toBEEF()
14
+ const sampleBeef1 = new Transaction(
15
+ 1,
16
+ [],
17
+ [{ lockingScript: LockingScript.fromHex('88'), satoshis: 1 }],
18
+ 0
19
+ ).toBEEF()
20
+ const sampleBeef2 = new Transaction(
21
+ 1,
22
+ [],
23
+ [{ lockingScript: LockingScript.fromHex('88'), satoshis: 2 }],
24
+ 0
25
+ ).toBEEF()
26
+ const sampleBeef3 = new Transaction(
27
+ 1,
28
+ [],
29
+ [{ lockingScript: LockingScript.fromHex('88'), satoshis: 3 }],
30
+ 0
31
+ ).toBEEF()
32
+ const sampleBeef4 = new Transaction(
33
+ 1,
34
+ [],
35
+ [{ lockingScript: LockingScript.fromHex('88'), satoshis: 4 }],
36
+ 0
37
+ ).toBEEF()
16
38
 
17
39
  describe('LookupResolver', () => {
18
40
  beforeEach(() => {
@@ -21,39 +43,61 @@ describe('LookupResolver', () => {
21
43
 
22
44
  it('should query the host and return the response when a single host is found via SLAP', async () => {
23
45
  const slapHostKey = new PrivateKey(42)
24
- const slapWallet = new ProtoWallet(slapHostKey)
46
+ const slapWallet = new CompletedProtoWallet(slapHostKey)
25
47
  const slapLib = new OverlayAdminTokenTemplate(slapWallet)
26
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo')
27
- const slapTx = new Transaction(1, [], [{
28
- lockingScript: slapScript,
29
- satoshis: 1
30
- }], 0)
48
+ const slapScript = await slapLib.lock(
49
+ 'SLAP',
50
+ 'https://slaphost.com',
51
+ 'ls_foo'
52
+ )
53
+ const slapTx = new Transaction(
54
+ 1,
55
+ [],
56
+ [
57
+ {
58
+ lockingScript: slapScript,
59
+ satoshis: 1
60
+ }
61
+ ],
62
+ 0
63
+ )
31
64
 
32
- mockFacilitator.lookup.mockReturnValueOnce({
33
- type: 'output-list',
34
- outputs: [{
35
- outputIndex: 0,
36
- beef: slapTx.toBEEF()
37
- }]
38
- }).mockReturnValueOnce({
39
- type: 'output-list',
40
- outputs: [{
41
- beef: sampleBeef1,
42
- outputIndex: 0
43
- }]
44
- })
65
+ mockFacilitator.lookup
66
+ .mockReturnValueOnce({
67
+ type: 'output-list',
68
+ outputs: [
69
+ {
70
+ outputIndex: 0,
71
+ beef: slapTx.toBEEF()
72
+ }
73
+ ]
74
+ })
75
+ .mockReturnValueOnce({
76
+ type: 'output-list',
77
+ outputs: [
78
+ {
79
+ beef: sampleBeef1,
80
+ outputIndex: 0
81
+ }
82
+ ]
83
+ })
45
84
 
46
- const r = new LookupResolver({ facilitator: mockFacilitator, slapTrackers: ['https://mock.slap'] })
85
+ const r = new LookupResolver({
86
+ facilitator: mockFacilitator,
87
+ slapTrackers: ['https://mock.slap']
88
+ })
47
89
  const res = await r.query({
48
90
  service: 'ls_foo',
49
91
  query: { test: 1 }
50
92
  })
51
93
  expect(res).toEqual({
52
94
  type: 'output-list',
53
- outputs: [{
54
- beef: sampleBeef1,
55
- outputIndex: 0
56
- }]
95
+ outputs: [
96
+ {
97
+ beef: sampleBeef1,
98
+ outputIndex: 0
99
+ }
100
+ ]
57
101
  })
58
102
  expect(mockFacilitator.lookup.mock.calls).toEqual([
59
103
  [
@@ -72,7 +116,7 @@ describe('LookupResolver', () => {
72
116
  service: 'ls_foo',
73
117
  query: {
74
118
  test: 1
75
- },
119
+ }
76
120
  },
77
121
  undefined
78
122
  ]
@@ -81,36 +125,59 @@ describe('LookupResolver', () => {
81
125
 
82
126
  it('should query from provided additional hosts while still making use of SLAP', async () => {
83
127
  const slapHostKey = new PrivateKey(42)
84
- const slapWallet = new ProtoWallet(slapHostKey)
128
+ const slapWallet = new CompletedProtoWallet(slapHostKey)
85
129
  const slapLib = new OverlayAdminTokenTemplate(slapWallet)
86
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo')
87
- const slapTx = new Transaction(1, [], [{
88
- lockingScript: slapScript,
89
- satoshis: 1
90
- }], 0)
130
+ const slapScript = await slapLib.lock(
131
+ 'SLAP',
132
+ 'https://slaphost.com',
133
+ 'ls_foo'
134
+ )
135
+ const slapTx = new Transaction(
136
+ 1,
137
+ [],
138
+ [
139
+ {
140
+ lockingScript: slapScript,
141
+ satoshis: 1
142
+ }
143
+ ],
144
+ 0
145
+ )
91
146
 
92
- mockFacilitator.lookup.mockReturnValueOnce({
93
- type: 'output-list',
94
- outputs: [{
95
- outputIndex: 0,
96
- beef: slapTx.toBEEF()
97
- }]
98
- }).mockReturnValueOnce({
99
- type: 'output-list',
100
- outputs: [{
101
- beef: sampleBeef1,
102
- outputIndex: 0
103
- }]
104
- }).mockReturnValueOnce({
105
- type: 'output-list',
106
- outputs: [{ // duplicate the output the other host knows about
107
- beef: sampleBeef1,
108
- outputIndex: 0
109
- }, { // the additional host also knows about a second output
110
- beef: sampleBeef2,
111
- outputIndex: 1033
112
- }]
113
- })
147
+ mockFacilitator.lookup
148
+ .mockReturnValueOnce({
149
+ type: 'output-list',
150
+ outputs: [
151
+ {
152
+ outputIndex: 0,
153
+ beef: slapTx.toBEEF()
154
+ }
155
+ ]
156
+ })
157
+ .mockReturnValueOnce({
158
+ type: 'output-list',
159
+ outputs: [
160
+ {
161
+ beef: sampleBeef1,
162
+ outputIndex: 0
163
+ }
164
+ ]
165
+ })
166
+ .mockReturnValueOnce({
167
+ type: 'output-list',
168
+ outputs: [
169
+ {
170
+ // duplicate the output the other host knows about
171
+ beef: sampleBeef1,
172
+ outputIndex: 0
173
+ },
174
+ {
175
+ // the additional host also knows about a second output
176
+ beef: sampleBeef2,
177
+ outputIndex: 1033
178
+ }
179
+ ]
180
+ })
114
181
 
115
182
  const r = new LookupResolver({
116
183
  facilitator: mockFacilitator,
@@ -125,13 +192,18 @@ describe('LookupResolver', () => {
125
192
  })
126
193
  expect(res).toEqual({
127
194
  type: 'output-list',
128
- outputs: [{ // expect the first output to appear only once, and be de-duplicated
129
- beef: sampleBeef1,
130
- outputIndex: 0
131
- }, { // also expect the second output from the additional host
132
- beef: sampleBeef2,
133
- outputIndex: 1033
134
- }]
195
+ outputs: [
196
+ {
197
+ // expect the first output to appear only once, and be de-duplicated
198
+ beef: sampleBeef1,
199
+ outputIndex: 0
200
+ },
201
+ {
202
+ // also expect the second output from the additional host
203
+ beef: sampleBeef2,
204
+ outputIndex: 1033
205
+ }
206
+ ]
135
207
  })
136
208
  expect(mockFacilitator.lookup.mock.calls).toEqual([
137
209
  [
@@ -154,7 +226,8 @@ describe('LookupResolver', () => {
154
226
  },
155
227
  undefined
156
228
  ],
157
- [ // additional host should also have been queried
229
+ [
230
+ // additional host should also have been queried
158
231
  'https://additional.host',
159
232
  {
160
233
  service: 'ls_foo',
@@ -170,10 +243,12 @@ describe('LookupResolver', () => {
170
243
  it('should utilize host overrides instead of SLAP', async () => {
171
244
  mockFacilitator.lookup.mockReturnValueOnce({
172
245
  type: 'output-list',
173
- outputs: [{
174
- beef: sampleBeef1,
175
- outputIndex: 0
176
- }]
246
+ outputs: [
247
+ {
248
+ beef: sampleBeef1,
249
+ outputIndex: 0
250
+ }
251
+ ]
177
252
  })
178
253
 
179
254
  const r = new LookupResolver({
@@ -189,10 +264,12 @@ describe('LookupResolver', () => {
189
264
  })
190
265
  expect(res).toEqual({
191
266
  type: 'output-list',
192
- outputs: [{
193
- beef: sampleBeef1,
194
- outputIndex: 0
195
- }]
267
+ outputs: [
268
+ {
269
+ beef: sampleBeef1,
270
+ outputIndex: 0
271
+ }
272
+ ]
196
273
  })
197
274
  expect(mockFacilitator.lookup.mock.calls).toEqual([
198
275
  [
@@ -209,22 +286,29 @@ describe('LookupResolver', () => {
209
286
  })
210
287
 
211
288
  it('should allow using host overrides with additional hosts at the same time', async () => {
212
- mockFacilitator.lookup.mockReturnValueOnce({
213
- type: 'output-list', // from the override host
214
- outputs: [{
215
- beef: sampleBeef1,
216
- outputIndex: 0
217
- }]
218
- }).mockReturnValueOnce({
219
- type: 'output-list', // from the additional host
220
- outputs: [{
221
- beef: sampleBeef1,
222
- outputIndex: 0
223
- }, {
224
- beef: sampleBeef2,
225
- outputIndex: 1033
226
- }]
227
- })
289
+ mockFacilitator.lookup
290
+ .mockReturnValueOnce({
291
+ type: 'output-list', // from the override host
292
+ outputs: [
293
+ {
294
+ beef: sampleBeef1,
295
+ outputIndex: 0
296
+ }
297
+ ]
298
+ })
299
+ .mockReturnValueOnce({
300
+ type: 'output-list', // from the additional host
301
+ outputs: [
302
+ {
303
+ beef: sampleBeef1,
304
+ outputIndex: 0
305
+ },
306
+ {
307
+ beef: sampleBeef2,
308
+ outputIndex: 1033
309
+ }
310
+ ]
311
+ })
228
312
 
229
313
  const r = new LookupResolver({
230
314
  facilitator: mockFacilitator,
@@ -242,13 +326,18 @@ describe('LookupResolver', () => {
242
326
  })
243
327
  expect(res).toEqual({
244
328
  type: 'output-list',
245
- outputs: [{ // expect the first output to appear only once, and be de-duplicated
246
- beef: sampleBeef1,
247
- outputIndex: 0
248
- }, { // also expect the second output from the additional host
249
- beef: sampleBeef2,
250
- outputIndex: 1033
251
- }]
329
+ outputs: [
330
+ {
331
+ // expect the first output to appear only once, and be de-duplicated
332
+ beef: sampleBeef1,
333
+ outputIndex: 0
334
+ },
335
+ {
336
+ // also expect the second output from the additional host
337
+ beef: sampleBeef2,
338
+ outputIndex: 1033
339
+ }
340
+ ]
252
341
  })
253
342
  expect(mockFacilitator.lookup.mock.calls).toEqual([
254
343
  [
@@ -261,7 +350,8 @@ describe('LookupResolver', () => {
261
350
  },
262
351
  undefined
263
352
  ],
264
- [ // additional host should also have been queried
353
+ [
354
+ // additional host should also have been queried
265
355
  'https://additional.host',
266
356
  {
267
357
  service: 'ls_foo',
@@ -276,52 +366,86 @@ describe('LookupResolver', () => {
276
366
 
277
367
  it('should handle multiple SLAP trackers and aggregate results from multiple hosts', async () => {
278
368
  const slapHostKey1 = new PrivateKey(42)
279
- const slapWallet1 = new ProtoWallet(slapHostKey1)
369
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
280
370
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
281
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
282
- const slapTx1 = new Transaction(1, [], [{
283
- lockingScript: slapScript1,
284
- satoshis: 1
285
- }], 0)
371
+ const slapScript1 = await slapLib1.lock(
372
+ 'SLAP',
373
+ 'https://slaphost1.com',
374
+ 'ls_foo'
375
+ )
376
+ const slapTx1 = new Transaction(
377
+ 1,
378
+ [],
379
+ [
380
+ {
381
+ lockingScript: slapScript1,
382
+ satoshis: 1
383
+ }
384
+ ],
385
+ 0
386
+ )
286
387
 
287
388
  const slapHostKey2 = new PrivateKey(43)
288
- const slapWallet2 = new ProtoWallet(slapHostKey2)
389
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
289
390
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
290
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
291
- const slapTx2 = new Transaction(1, [], [{
292
- lockingScript: slapScript2,
293
- satoshis: 1
294
- }], 0)
391
+ const slapScript2 = await slapLib2.lock(
392
+ 'SLAP',
393
+ 'https://slaphost2.com',
394
+ 'ls_foo'
395
+ )
396
+ const slapTx2 = new Transaction(
397
+ 1,
398
+ [],
399
+ [
400
+ {
401
+ lockingScript: slapScript2,
402
+ satoshis: 1
403
+ }
404
+ ],
405
+ 0
406
+ )
295
407
 
296
408
  // SLAP trackers return hosts
297
- mockFacilitator.lookup.mockReturnValueOnce({
298
- type: 'output-list',
299
- outputs: [{
300
- outputIndex: 0,
301
- beef: slapTx1.toBEEF()
302
- }]
303
- }).mockReturnValueOnce({
304
- type: 'output-list',
305
- outputs: [{
306
- outputIndex: 0,
307
- beef: slapTx2.toBEEF()
308
- }]
309
- })
409
+ mockFacilitator.lookup
410
+ .mockReturnValueOnce({
411
+ type: 'output-list',
412
+ outputs: [
413
+ {
414
+ outputIndex: 0,
415
+ beef: slapTx1.toBEEF()
416
+ }
417
+ ]
418
+ })
419
+ .mockReturnValueOnce({
420
+ type: 'output-list',
421
+ outputs: [
422
+ {
423
+ outputIndex: 0,
424
+ beef: slapTx2.toBEEF()
425
+ }
426
+ ]
427
+ })
310
428
 
311
429
  // Hosts respond to the query
312
- mockFacilitator.lookup.mockReturnValueOnce({
313
- type: 'output-list',
314
- outputs: [{
315
- beef: sampleBeef3,
316
- outputIndex: 0
317
- }]
318
- }).mockReturnValueOnce({
319
- type: 'output-list',
320
- outputs: [{
321
- beef: sampleBeef4,
322
- outputIndex: 1
323
- }]
324
- })
430
+ mockFacilitator.lookup
431
+ .mockReturnValueOnce({
432
+ type: 'output-list',
433
+ outputs: [
434
+ {
435
+ beef: sampleBeef3,
436
+ outputIndex: 0
437
+ }
438
+ ]
439
+ })
440
+ .mockReturnValueOnce({
441
+ type: 'output-list',
442
+ outputs: [
443
+ {
444
+ beef: sampleBeef4,
445
+ outputIndex: 1
446
+ }
447
+ ]
448
+ })
325
449
 
326
450
  const r = new LookupResolver({
327
451
  facilitator: mockFacilitator,
@@ -387,22 +511,44 @@ describe('LookupResolver', () => {
387
511
 
388
512
  it('should de-duplicate outputs from multiple hosts', async () => {
389
513
  const slapHostKey1 = new PrivateKey(42)
390
- const slapWallet1 = new ProtoWallet(slapHostKey1)
514
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
391
515
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
392
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
393
- const slapTx1 = new Transaction(1, [], [{
394
- lockingScript: slapScript1,
395
- satoshis: 1
396
- }], 0)
516
+ const slapScript1 = await slapLib1.lock(
517
+ 'SLAP',
518
+ 'https://slaphost1.com',
519
+ 'ls_foo'
520
+ )
521
+ const slapTx1 = new Transaction(
522
+ 1,
523
+ [],
524
+ [
525
+ {
526
+ lockingScript: slapScript1,
527
+ satoshis: 1
528
+ }
529
+ ],
530
+ 0
531
+ )
397
532
 
398
533
  const slapHostKey2 = new PrivateKey(43)
399
- const slapWallet2 = new ProtoWallet(slapHostKey2)
534
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
400
535
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
401
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
402
- const slapTx2 = new Transaction(1, [], [{
403
- lockingScript: slapScript2,
404
- satoshis: 1
405
- }], 0)
536
+ const slapScript2 = await slapLib2.lock(
537
+ 'SLAP',
538
+ 'https://slaphost2.com',
539
+ 'ls_foo'
540
+ )
541
+ const slapTx2 = new Transaction(
542
+ 1,
543
+ [],
544
+ [
545
+ {
546
+ lockingScript: slapScript2,
547
+ satoshis: 1
548
+ }
549
+ ],
550
+ 0
551
+ )
406
552
 
407
553
  // SLAP tracker returns two hosts
408
554
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -415,13 +561,15 @@ describe('LookupResolver', () => {
415
561
 
416
562
  // Both hosts return the same output
417
563
  const duplicateOutput = { beef: sampleBeef3, outputIndex: 0 }
418
- mockFacilitator.lookup.mockReturnValueOnce({
419
- type: 'output-list',
420
- outputs: [duplicateOutput]
421
- }).mockReturnValueOnce({
422
- type: 'output-list',
423
- outputs: [duplicateOutput]
424
- })
564
+ mockFacilitator.lookup
565
+ .mockReturnValueOnce({
566
+ type: 'output-list',
567
+ outputs: [duplicateOutput]
568
+ })
569
+ .mockReturnValueOnce({
570
+ type: 'output-list',
571
+ outputs: [duplicateOutput]
572
+ })
425
573
 
426
574
  const r = new LookupResolver({
427
575
  facilitator: mockFacilitator,
@@ -474,22 +622,44 @@ describe('LookupResolver', () => {
474
622
 
475
623
  it('should handle hosts returning different response types', async () => {
476
624
  const slapHostKey1 = new PrivateKey(42)
477
- const slapWallet1 = new ProtoWallet(slapHostKey1)
625
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
478
626
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
479
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
480
- const slapTx1 = new Transaction(1, [], [{
481
- lockingScript: slapScript1,
482
- satoshis: 1
483
- }], 0)
627
+ const slapScript1 = await slapLib1.lock(
628
+ 'SLAP',
629
+ 'https://slaphost1.com',
630
+ 'ls_foo'
631
+ )
632
+ const slapTx1 = new Transaction(
633
+ 1,
634
+ [],
635
+ [
636
+ {
637
+ lockingScript: slapScript1,
638
+ satoshis: 1
639
+ }
640
+ ],
641
+ 0
642
+ )
484
643
 
485
644
  const slapHostKey2 = new PrivateKey(43)
486
- const slapWallet2 = new ProtoWallet(slapHostKey2)
645
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
487
646
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
488
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
489
- const slapTx2 = new Transaction(1, [], [{
490
- lockingScript: slapScript2,
491
- satoshis: 1
492
- }], 0)
647
+ const slapScript2 = await slapLib2.lock(
648
+ 'SLAP',
649
+ 'https://slaphost2.com',
650
+ 'ls_foo'
651
+ )
652
+ const slapTx2 = new Transaction(
653
+ 1,
654
+ [],
655
+ [
656
+ {
657
+ lockingScript: slapScript2,
658
+ satoshis: 1
659
+ }
660
+ ],
661
+ 0
662
+ )
493
663
 
494
664
  // SLAP tracker returns two hosts
495
665
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -564,22 +734,44 @@ describe('LookupResolver', () => {
564
734
 
565
735
  it('should ignore freeform responses when first response is output-list', async () => {
566
736
  const slapHostKey1 = new PrivateKey(42)
567
- const slapWallet1 = new ProtoWallet(slapHostKey1)
737
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
568
738
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
569
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
570
- const slapTx1 = new Transaction(1, [], [{
571
- lockingScript: slapScript1,
572
- satoshis: 1
573
- }], 0)
739
+ const slapScript1 = await slapLib1.lock(
740
+ 'SLAP',
741
+ 'https://slaphost1.com',
742
+ 'ls_foo'
743
+ )
744
+ const slapTx1 = new Transaction(
745
+ 1,
746
+ [],
747
+ [
748
+ {
749
+ lockingScript: slapScript1,
750
+ satoshis: 1
751
+ }
752
+ ],
753
+ 0
754
+ )
574
755
 
575
756
  const slapHostKey2 = new PrivateKey(43)
576
- const slapWallet2 = new ProtoWallet(slapHostKey2)
757
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
577
758
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
578
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
579
- const slapTx2 = new Transaction(1, [], [{
580
- lockingScript: slapScript2,
581
- satoshis: 1
582
- }], 0)
759
+ const slapScript2 = await slapLib2.lock(
760
+ 'SLAP',
761
+ 'https://slaphost2.com',
762
+ 'ls_foo'
763
+ )
764
+ const slapTx2 = new Transaction(
765
+ 1,
766
+ [],
767
+ [
768
+ {
769
+ lockingScript: slapScript2,
770
+ satoshis: 1
771
+ }
772
+ ],
773
+ 0
774
+ )
583
775
 
584
776
  // SLAP tracker returns two hosts
585
777
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -663,10 +855,14 @@ describe('LookupResolver', () => {
663
855
  slapTrackers: ['https://mock.slap']
664
856
  })
665
857
 
666
- await expect(r.query({
667
- service: 'ls_foo',
668
- query: { test: 1 }
669
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo')
858
+ await expect(
859
+ r.query({
860
+ service: 'ls_foo',
861
+ query: { test: 1 }
862
+ })
863
+ ).rejects.toThrow(
864
+ 'No competent hosts found by the SLAP trackers for lookup service: ls_foo'
865
+ )
670
866
 
671
867
  expect(mockFacilitator.lookup.mock.calls).toEqual([
672
868
  [
@@ -684,22 +880,44 @@ describe('LookupResolver', () => {
684
880
 
685
881
  it('should not throw an error when one host fails to respond', async () => {
686
882
  const slapHostKey1 = new PrivateKey(42)
687
- const slapWallet1 = new ProtoWallet(slapHostKey1)
883
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
688
884
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
689
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
690
- const slapTx1 = new Transaction(1, [], [{
691
- lockingScript: slapScript1,
692
- satoshis: 1
693
- }], 0)
885
+ const slapScript1 = await slapLib1.lock(
886
+ 'SLAP',
887
+ 'https://slaphost1.com',
888
+ 'ls_foo'
889
+ )
890
+ const slapTx1 = new Transaction(
891
+ 1,
892
+ [],
893
+ [
894
+ {
895
+ lockingScript: slapScript1,
896
+ satoshis: 1
897
+ }
898
+ ],
899
+ 0
900
+ )
694
901
 
695
902
  const slapHostKey2 = new PrivateKey(43)
696
- const slapWallet2 = new ProtoWallet(slapHostKey2)
903
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
697
904
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
698
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
699
- const slapTx2 = new Transaction(1, [], [{
700
- lockingScript: slapScript2,
701
- satoshis: 1
702
- }], 0)
905
+ const slapScript2 = await slapLib2.lock(
906
+ 'SLAP',
907
+ 'https://slaphost2.com',
908
+ 'ls_foo'
909
+ )
910
+ const slapTx2 = new Transaction(
911
+ 1,
912
+ [],
913
+ [
914
+ {
915
+ lockingScript: slapScript2,
916
+ satoshis: 1
917
+ }
918
+ ],
919
+ 0
920
+ )
703
921
 
704
922
  // SLAP tracker returns two hosts
705
923
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -733,10 +951,12 @@ describe('LookupResolver', () => {
733
951
 
734
952
  expect(res).toEqual({
735
953
  type: 'output-list',
736
- outputs: [{
737
- beef: sampleBeef3,
738
- outputIndex: 0
739
- }]
954
+ outputs: [
955
+ {
956
+ beef: sampleBeef3,
957
+ outputIndex: 0
958
+ }
959
+ ]
740
960
  })
741
961
 
742
962
  expect(mockFacilitator.lookup.mock.calls).toEqual([
@@ -776,23 +996,30 @@ describe('LookupResolver', () => {
776
996
  it('Directly uses SLAP resolvers to facilitate SLAP queries', async () => {
777
997
  mockFacilitator.lookup.mockReturnValueOnce({
778
998
  type: 'output-list',
779
- outputs: [{
780
- beef: sampleBeef1,
781
- outputIndex: 0
782
- }]
999
+ outputs: [
1000
+ {
1001
+ beef: sampleBeef1,
1002
+ outputIndex: 0
1003
+ }
1004
+ ]
783
1005
  })
784
1006
 
785
- const r = new LookupResolver({ facilitator: mockFacilitator, slapTrackers: ['https://mock.slap'] })
1007
+ const r = new LookupResolver({
1008
+ facilitator: mockFacilitator,
1009
+ slapTrackers: ['https://mock.slap']
1010
+ })
786
1011
  const res = await r.query({
787
1012
  service: 'ls_slap',
788
1013
  query: { test: 1 }
789
1014
  })
790
1015
  expect(res).toEqual({
791
1016
  type: 'output-list',
792
- outputs: [{
793
- beef: sampleBeef1,
794
- outputIndex: 0
795
- }]
1017
+ outputs: [
1018
+ {
1019
+ beef: sampleBeef1,
1020
+ outputIndex: 0
1021
+ }
1022
+ ]
796
1023
  })
797
1024
  expect(mockFacilitator.lookup.mock.calls).toEqual([
798
1025
  [
@@ -821,10 +1048,14 @@ describe('LookupResolver', () => {
821
1048
  })
822
1049
 
823
1050
  // Because a freeform response is not valid, the SLAP trackers have not found any competent hosts.
824
- await expect(r.query({
825
- service: 'ls_foo',
826
- query: { test: 1 }
827
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo')
1051
+ await expect(
1052
+ r.query({
1053
+ service: 'ls_foo',
1054
+ query: { test: 1 }
1055
+ })
1056
+ ).rejects.toThrow(
1057
+ 'No competent hosts found by the SLAP trackers for lookup service: ls_foo'
1058
+ )
828
1059
 
829
1060
  expect(mockFacilitator.lookup.mock.calls).toEqual([
830
1061
  [
@@ -842,8 +1073,11 @@ describe('LookupResolver', () => {
842
1073
 
843
1074
  it('should throw an error when HTTPSOverlayLookupFacilitator is used with non-HTTPS URL', async () => {
844
1075
  const facilitator = new HTTPSOverlayLookupFacilitator()
845
- await expect(facilitator.lookup('http://insecure.url', { service: 'test', query: {} }))
846
- .rejects.toThrow('HTTPS facilitator can only use URLs that start with "https:"')
1076
+ await expect(
1077
+ facilitator.lookup('http://insecure.url', { service: 'test', query: {} })
1078
+ ).rejects.toThrow(
1079
+ 'HTTPS facilitator can only use URLs that start with "https:"'
1080
+ )
847
1081
  })
848
1082
  describe('LookupResolver Resiliency', () => {
849
1083
  beforeEach(() => {
@@ -852,13 +1086,24 @@ describe('LookupResolver', () => {
852
1086
 
853
1087
  it('should continue to function when one SLAP tracker fails', async () => {
854
1088
  const slapHostKey = new PrivateKey(42)
855
- const slapWallet = new ProtoWallet(slapHostKey)
1089
+ const slapWallet = new CompletedProtoWallet(slapHostKey)
856
1090
  const slapLib = new OverlayAdminTokenTemplate(slapWallet)
857
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo')
858
- const slapTx = new Transaction(1, [], [{
859
- lockingScript: slapScript,
860
- satoshis: 1
861
- }], 0)
1091
+ const slapScript = await slapLib.lock(
1092
+ 'SLAP',
1093
+ 'https://slaphost.com',
1094
+ 'ls_foo'
1095
+ )
1096
+ const slapTx = new Transaction(
1097
+ 1,
1098
+ [],
1099
+ [
1100
+ {
1101
+ lockingScript: slapScript,
1102
+ satoshis: 1
1103
+ }
1104
+ ],
1105
+ 0
1106
+ )
862
1107
 
863
1108
  // First SLAP tracker fails
864
1109
  mockFacilitator.lookup.mockImplementationOnce(async () => {
@@ -868,19 +1113,23 @@ describe('LookupResolver', () => {
868
1113
  // Second SLAP tracker succeeds
869
1114
  mockFacilitator.lookup.mockReturnValueOnce({
870
1115
  type: 'output-list',
871
- outputs: [{
872
- outputIndex: 0,
873
- beef: slapTx.toBEEF()
874
- }]
1116
+ outputs: [
1117
+ {
1118
+ outputIndex: 0,
1119
+ beef: slapTx.toBEEF()
1120
+ }
1121
+ ]
875
1122
  })
876
1123
 
877
1124
  // Host responds successfully
878
1125
  mockFacilitator.lookup.mockReturnValueOnce({
879
1126
  type: 'output-list',
880
- outputs: [{
881
- beef: sampleBeef3,
882
- outputIndex: 0
883
- }]
1127
+ outputs: [
1128
+ {
1129
+ beef: sampleBeef3,
1130
+ outputIndex: 0
1131
+ }
1132
+ ]
884
1133
  })
885
1134
 
886
1135
  const r = new LookupResolver({
@@ -895,10 +1144,12 @@ describe('LookupResolver', () => {
895
1144
 
896
1145
  expect(res).toEqual({
897
1146
  type: 'output-list',
898
- outputs: [{
899
- beef: sampleBeef3,
900
- outputIndex: 0
901
- }]
1147
+ outputs: [
1148
+ {
1149
+ beef: sampleBeef3,
1150
+ outputIndex: 0
1151
+ }
1152
+ ]
902
1153
  })
903
1154
 
904
1155
  expect(mockFacilitator.lookup.mock.calls).toEqual([
@@ -937,31 +1188,64 @@ describe('LookupResolver', () => {
937
1188
 
938
1189
  it('should aggregate outputs from hosts that respond, even if some SLAP trackers lie to our face', async () => {
939
1190
  const slapHostKey1 = new PrivateKey(42)
940
- const slapWallet1 = new ProtoWallet(slapHostKey1)
1191
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
941
1192
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
942
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
943
- const slapTx1 = new Transaction(1, [], [{
944
- lockingScript: slapScript1,
945
- satoshis: 1
946
- }], 0)
1193
+ const slapScript1 = await slapLib1.lock(
1194
+ 'SLAP',
1195
+ 'https://slaphost1.com',
1196
+ 'ls_foo'
1197
+ )
1198
+ const slapTx1 = new Transaction(
1199
+ 1,
1200
+ [],
1201
+ [
1202
+ {
1203
+ lockingScript: slapScript1,
1204
+ satoshis: 1
1205
+ }
1206
+ ],
1207
+ 0
1208
+ )
947
1209
 
948
1210
  const slapHostKey2 = new PrivateKey(43)
949
- const slapWallet2 = new ProtoWallet(slapHostKey2)
1211
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
950
1212
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
951
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
952
- const slapTx2 = new Transaction(1, [], [{
953
- lockingScript: slapScript2,
954
- satoshis: 1
955
- }], 0)
1213
+ const slapScript2 = await slapLib2.lock(
1214
+ 'SLAP',
1215
+ 'https://slaphost2.com',
1216
+ 'ls_foo'
1217
+ )
1218
+ const slapTx2 = new Transaction(
1219
+ 1,
1220
+ [],
1221
+ [
1222
+ {
1223
+ lockingScript: slapScript2,
1224
+ satoshis: 1
1225
+ }
1226
+ ],
1227
+ 0
1228
+ )
956
1229
 
957
1230
  const slapHostKey3 = new PrivateKey(44)
958
- const slapWallet3 = new ProtoWallet(slapHostKey3)
1231
+ const slapWallet3 = new CompletedProtoWallet(slapHostKey3)
959
1232
  const slapLib3 = new OverlayAdminTokenTemplate(slapWallet3)
960
- const slapScript3 = await slapLib3.lock('SLAP', 'https://slaphost3.pantsonfire.com', 'ls_not_what_i_asked_you_for')
961
- const slapTx3 = new Transaction(1, [], [{
962
- lockingScript: slapScript3,
963
- satoshis: 1
964
- }], 0)
1233
+ const slapScript3 = await slapLib3.lock(
1234
+ 'SLAP',
1235
+ 'https://slaphost3.pantsonfire.com',
1236
+ 'ls_not_what_i_asked_you_for'
1237
+ )
1238
+ const slapTx3 = new Transaction(
1239
+ 1,
1240
+ [],
1241
+ [
1242
+ {
1243
+ lockingScript: slapScript3,
1244
+ satoshis: 1
1245
+ }
1246
+ ],
1247
+ 0
1248
+ )
965
1249
 
966
1250
  // SLAP trackers return hosts
967
1251
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1035,22 +1319,44 @@ describe('LookupResolver', () => {
1035
1319
 
1036
1320
  it('should aggregate outputs from hosts that respond, even if some SLAP trackers give us rotten BEEF', async () => {
1037
1321
  const slapHostKey1 = new PrivateKey(42)
1038
- const slapWallet1 = new ProtoWallet(slapHostKey1)
1322
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
1039
1323
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
1040
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
1041
- const slapTx1 = new Transaction(1, [], [{
1042
- lockingScript: slapScript1,
1043
- satoshis: 1
1044
- }], 0)
1324
+ const slapScript1 = await slapLib1.lock(
1325
+ 'SLAP',
1326
+ 'https://slaphost1.com',
1327
+ 'ls_foo'
1328
+ )
1329
+ const slapTx1 = new Transaction(
1330
+ 1,
1331
+ [],
1332
+ [
1333
+ {
1334
+ lockingScript: slapScript1,
1335
+ satoshis: 1
1336
+ }
1337
+ ],
1338
+ 0
1339
+ )
1045
1340
 
1046
1341
  const slapHostKey2 = new PrivateKey(43)
1047
- const slapWallet2 = new ProtoWallet(slapHostKey2)
1342
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
1048
1343
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
1049
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
1050
- const slapTx2 = new Transaction(1, [], [{
1051
- lockingScript: slapScript2,
1052
- satoshis: 1
1053
- }], 0)
1344
+ const slapScript2 = await slapLib2.lock(
1345
+ 'SLAP',
1346
+ 'https://slaphost2.com',
1347
+ 'ls_foo'
1348
+ )
1349
+ const slapTx2 = new Transaction(
1350
+ 1,
1351
+ [],
1352
+ [
1353
+ {
1354
+ lockingScript: slapScript2,
1355
+ satoshis: 1
1356
+ }
1357
+ ],
1358
+ 0
1359
+ )
1054
1360
 
1055
1361
  // SLAP trackers return hosts
1056
1362
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1124,22 +1430,44 @@ describe('LookupResolver', () => {
1124
1430
 
1125
1431
  it('should aggregate outputs from hosts that respond, even if some fail', async () => {
1126
1432
  const slapHostKey1 = new PrivateKey(42)
1127
- const slapWallet1 = new ProtoWallet(slapHostKey1)
1433
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
1128
1434
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
1129
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
1130
- const slapTx1 = new Transaction(1, [], [{
1131
- lockingScript: slapScript1,
1132
- satoshis: 1
1133
- }], 0)
1435
+ const slapScript1 = await slapLib1.lock(
1436
+ 'SLAP',
1437
+ 'https://slaphost1.com',
1438
+ 'ls_foo'
1439
+ )
1440
+ const slapTx1 = new Transaction(
1441
+ 1,
1442
+ [],
1443
+ [
1444
+ {
1445
+ lockingScript: slapScript1,
1446
+ satoshis: 1
1447
+ }
1448
+ ],
1449
+ 0
1450
+ )
1134
1451
 
1135
1452
  const slapHostKey2 = new PrivateKey(43)
1136
- const slapWallet2 = new ProtoWallet(slapHostKey2)
1453
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
1137
1454
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
1138
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
1139
- const slapTx2 = new Transaction(1, [], [{
1140
- lockingScript: slapScript2,
1141
- satoshis: 1
1142
- }], 0)
1455
+ const slapScript2 = await slapLib2.lock(
1456
+ 'SLAP',
1457
+ 'https://slaphost2.com',
1458
+ 'ls_foo'
1459
+ )
1460
+ const slapTx2 = new Transaction(
1461
+ 1,
1462
+ [],
1463
+ [
1464
+ {
1465
+ lockingScript: slapScript2,
1466
+ satoshis: 1
1467
+ }
1468
+ ],
1469
+ 0
1470
+ )
1143
1471
 
1144
1472
  // SLAP trackers return hosts
1145
1473
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1212,13 +1540,24 @@ describe('LookupResolver', () => {
1212
1540
 
1213
1541
  it('should handle invalid responses from some hosts and continue with valid ones', async () => {
1214
1542
  const slapHostKey = new PrivateKey(42)
1215
- const slapWallet = new ProtoWallet(slapHostKey)
1543
+ const slapWallet = new CompletedProtoWallet(slapHostKey)
1216
1544
  const slapLib = new OverlayAdminTokenTemplate(slapWallet)
1217
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo')
1218
- const slapTx = new Transaction(1, [], [{
1219
- lockingScript: slapScript,
1220
- satoshis: 1
1221
- }], 0)
1545
+ const slapScript = await slapLib.lock(
1546
+ 'SLAP',
1547
+ 'https://slaphost.com',
1548
+ 'ls_foo'
1549
+ )
1550
+ const slapTx = new Transaction(
1551
+ 1,
1552
+ [],
1553
+ [
1554
+ {
1555
+ lockingScript: slapScript,
1556
+ satoshis: 1
1557
+ }
1558
+ ],
1559
+ 0
1560
+ )
1222
1561
 
1223
1562
  // SLAP tracker returns host
1224
1563
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1283,23 +1622,38 @@ describe('LookupResolver', () => {
1283
1622
  slapTrackers: ['https://mock.slap1', 'https://mock.slap2']
1284
1623
  })
1285
1624
 
1286
- await expect(r.query({
1287
- service: 'ls_foo',
1288
- query: { test: 1 }
1289
- })).rejects.toThrow('No competent hosts found by the SLAP trackers for lookup service: ls_foo')
1625
+ await expect(
1626
+ r.query({
1627
+ service: 'ls_foo',
1628
+ query: { test: 1 }
1629
+ })
1630
+ ).rejects.toThrow(
1631
+ 'No competent hosts found by the SLAP trackers for lookup service: ls_foo'
1632
+ )
1290
1633
 
1291
1634
  expect(mockFacilitator.lookup.mock.calls.length).toBe(2)
1292
1635
  })
1293
1636
 
1294
1637
  it('should handle all hosts failing and throw an error', async () => {
1295
1638
  const slapHostKey = new PrivateKey(42)
1296
- const slapWallet = new ProtoWallet(slapHostKey)
1639
+ const slapWallet = new CompletedProtoWallet(slapHostKey)
1297
1640
  const slapLib = new OverlayAdminTokenTemplate(slapWallet)
1298
- const slapScript = await slapLib.lock('SLAP', 'https://slaphost.com', 'ls_foo')
1299
- const slapTx = new Transaction(1, [], [{
1300
- lockingScript: slapScript,
1301
- satoshis: 1
1302
- }], 0)
1641
+ const slapScript = await slapLib.lock(
1642
+ 'SLAP',
1643
+ 'https://slaphost.com',
1644
+ 'ls_foo'
1645
+ )
1646
+ const slapTx = new Transaction(
1647
+ 1,
1648
+ [],
1649
+ [
1650
+ {
1651
+ lockingScript: slapScript,
1652
+ satoshis: 1
1653
+ }
1654
+ ],
1655
+ 0
1656
+ )
1303
1657
 
1304
1658
  // SLAP tracker returns host
1305
1659
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1317,32 +1671,56 @@ describe('LookupResolver', () => {
1317
1671
  slapTrackers: ['https://mock.slap']
1318
1672
  })
1319
1673
 
1320
- await expect(r.query({
1321
- service: 'ls_foo',
1322
- query: { test: 1 }
1323
- })).rejects.toThrow('No successful responses from any hosts')
1674
+ await expect(
1675
+ r.query({
1676
+ service: 'ls_foo',
1677
+ query: { test: 1 }
1678
+ })
1679
+ ).rejects.toThrow('No successful responses from any hosts')
1324
1680
 
1325
1681
  expect(mockFacilitator.lookup.mock.calls.length).toBe(2)
1326
1682
  })
1327
1683
 
1328
1684
  it('should continue to aggregate outputs when some hosts return invalid outputs', async () => {
1329
1685
  const slapHostKey1 = new PrivateKey(42)
1330
- const slapWallet1 = new ProtoWallet(slapHostKey1)
1686
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
1331
1687
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
1332
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
1333
- const slapTx1 = new Transaction(1, [], [{
1334
- lockingScript: slapScript1,
1335
- satoshis: 1
1336
- }], 0)
1688
+ const slapScript1 = await slapLib1.lock(
1689
+ 'SLAP',
1690
+ 'https://slaphost1.com',
1691
+ 'ls_foo'
1692
+ )
1693
+ const slapTx1 = new Transaction(
1694
+ 1,
1695
+ [],
1696
+ [
1697
+ {
1698
+ lockingScript: slapScript1,
1699
+ satoshis: 1
1700
+ }
1701
+ ],
1702
+ 0
1703
+ )
1337
1704
 
1338
1705
  const slapHostKey2 = new PrivateKey(43)
1339
- const slapWallet2 = new ProtoWallet(slapHostKey2)
1706
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
1340
1707
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
1341
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
1342
- const slapTx2 = new Transaction(1, [], [{
1343
- lockingScript: slapScript2,
1344
- satoshis: 1
1345
- }], 0)
1708
+ const slapScript2 = await slapLib2.lock(
1709
+ 'SLAP',
1710
+ 'https://slaphost2.com',
1711
+ 'ls_foo'
1712
+ )
1713
+ const slapTx2 = new Transaction(
1714
+ 1,
1715
+ [],
1716
+ [
1717
+ {
1718
+ lockingScript: slapScript2,
1719
+ satoshis: 1
1720
+ }
1721
+ ],
1722
+ 0
1723
+ )
1346
1724
 
1347
1725
  // SLAP tracker returns two hosts
1348
1726
  mockFacilitator.lookup.mockReturnValueOnce({
@@ -1385,22 +1763,44 @@ describe('LookupResolver', () => {
1385
1763
 
1386
1764
  it('should continue to aggregate outputs when some hosts return malformed malarkie', async () => {
1387
1765
  const slapHostKey1 = new PrivateKey(42)
1388
- const slapWallet1 = new ProtoWallet(slapHostKey1)
1766
+ const slapWallet1 = new CompletedProtoWallet(slapHostKey1)
1389
1767
  const slapLib1 = new OverlayAdminTokenTemplate(slapWallet1)
1390
- const slapScript1 = await slapLib1.lock('SLAP', 'https://slaphost1.com', 'ls_foo')
1391
- const slapTx1 = new Transaction(1, [], [{
1392
- lockingScript: slapScript1,
1393
- satoshis: 1
1394
- }], 0)
1768
+ const slapScript1 = await slapLib1.lock(
1769
+ 'SLAP',
1770
+ 'https://slaphost1.com',
1771
+ 'ls_foo'
1772
+ )
1773
+ const slapTx1 = new Transaction(
1774
+ 1,
1775
+ [],
1776
+ [
1777
+ {
1778
+ lockingScript: slapScript1,
1779
+ satoshis: 1
1780
+ }
1781
+ ],
1782
+ 0
1783
+ )
1395
1784
 
1396
1785
  const slapHostKey2 = new PrivateKey(43)
1397
- const slapWallet2 = new ProtoWallet(slapHostKey2)
1786
+ const slapWallet2 = new CompletedProtoWallet(slapHostKey2)
1398
1787
  const slapLib2 = new OverlayAdminTokenTemplate(slapWallet2)
1399
- const slapScript2 = await slapLib2.lock('SLAP', 'https://slaphost2.com', 'ls_foo')
1400
- const slapTx2 = new Transaction(1, [], [{
1401
- lockingScript: slapScript2,
1402
- satoshis: 1
1403
- }], 0)
1788
+ const slapScript2 = await slapLib2.lock(
1789
+ 'SLAP',
1790
+ 'https://slaphost2.com',
1791
+ 'ls_foo'
1792
+ )
1793
+ const slapTx2 = new Transaction(
1794
+ 1,
1795
+ [],
1796
+ [
1797
+ {
1798
+ lockingScript: slapScript2,
1799
+ satoshis: 1
1800
+ }
1801
+ ],
1802
+ 0
1803
+ )
1404
1804
 
1405
1805
  // SLAP tracker returns two hosts
1406
1806
  mockFacilitator.lookup.mockReturnValueOnce({