@bsv/sdk 1.6.7 → 1.6.9

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 (611) hide show
  1. package/dist/cjs/package.json +4 -4
  2. package/dist/cjs/src/auth/__tests/Peer.test.js +446 -0
  3. package/dist/cjs/src/auth/__tests/Peer.test.js.map +1 -0
  4. package/dist/cjs/src/auth/__tests/SessionManager.test.js +69 -0
  5. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +1 -0
  6. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +182 -0
  7. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  8. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  9. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  10. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  11. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  12. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +101 -0
  13. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  14. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  15. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  16. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  17. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  18. package/dist/cjs/src/auth/utils/certificateHelpers.js +51 -0
  19. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +1 -0
  20. package/dist/cjs/src/compat/__tests/BSM.test.js +69 -0
  21. package/dist/cjs/src/compat/__tests/BSM.test.js.map +1 -0
  22. package/dist/cjs/src/compat/__tests/ECIES.test.js +115 -0
  23. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +1 -0
  24. package/dist/cjs/src/compat/__tests/HD.test.js +336 -0
  25. package/dist/cjs/src/compat/__tests/HD.test.js.map +1 -0
  26. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +150 -0
  27. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +1 -0
  28. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +175 -0
  29. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  30. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +57 -0
  31. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  32. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +52 -0
  33. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +1 -0
  34. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  35. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  36. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  37. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  38. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  39. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  40. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +248 -0
  41. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +1 -0
  42. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  43. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  44. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  45. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  46. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  47. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  48. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  49. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  50. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  51. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  52. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  53. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  54. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  55. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  56. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  57. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  58. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  59. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  60. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +145 -0
  61. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  62. package/dist/cjs/src/primitives/__tests/DRBG.test.js +22 -0
  63. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +1 -0
  64. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +170 -0
  65. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  66. package/dist/cjs/src/primitives/__tests/ECDH.test.js +34 -0
  67. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +1 -0
  68. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +89 -0
  69. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +1 -0
  70. package/dist/cjs/src/primitives/__tests/HMAC.test.js +60 -0
  71. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +1 -0
  72. package/dist/cjs/src/primitives/__tests/Hash.test.js +159 -0
  73. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +1 -0
  74. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  75. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  76. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  77. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  78. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +90 -0
  79. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  80. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +83 -0
  81. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +1 -0
  82. package/dist/cjs/src/primitives/__tests/Random.test.js +19 -0
  83. package/dist/cjs/src/primitives/__tests/Random.test.js.map +1 -0
  84. package/dist/cjs/src/primitives/__tests/Reader.test.js +282 -0
  85. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +1 -0
  86. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +224 -0
  87. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  88. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +213 -0
  89. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +1 -0
  90. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +51 -0
  91. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  92. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  93. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  94. package/dist/cjs/src/primitives/__tests/Writer.test.js +176 -0
  95. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +1 -0
  96. package/dist/cjs/src/primitives/__tests/bug-31.test.js +32 -0
  97. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +1 -0
  98. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +3506 -0
  99. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +1 -0
  100. package/dist/cjs/src/primitives/__tests/utils.test.js +110 -0
  101. package/dist/cjs/src/primitives/__tests/utils.test.js.map +1 -0
  102. package/dist/cjs/src/primitives/utils.js +18 -2
  103. package/dist/cjs/src/primitives/utils.js.map +1 -1
  104. package/dist/cjs/src/script/__tests/Script.test.js +347 -0
  105. package/dist/cjs/src/script/__tests/Script.test.js.map +1 -0
  106. package/dist/cjs/src/script/__tests/Spend.test.js +282 -0
  107. package/dist/cjs/src/script/__tests/Spend.test.js.map +1 -0
  108. package/dist/cjs/src/script/__tests/SpendComplex.test.js +52 -0
  109. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +1 -0
  110. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +2370 -0
  111. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +1 -0
  112. package/dist/cjs/src/script/__tests/script.valid.vectors.js +1181 -0
  113. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +1 -0
  114. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +2298 -0
  115. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +1 -0
  116. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +161 -0
  117. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  118. package/dist/cjs/src/totp/__tests/totp.test.js +67 -0
  119. package/dist/cjs/src/totp/__tests/totp.test.js.map +1 -0
  120. package/dist/cjs/src/transaction/__tests/Beef.test.js +393 -0
  121. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +1 -0
  122. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +209 -0
  123. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +1 -0
  124. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  125. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  126. package/dist/cjs/src/transaction/__tests/Transaction.test.js +1073 -0
  127. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +1 -0
  128. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +7 -0
  129. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  130. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  131. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  132. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +7 -0
  133. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  134. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  135. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  136. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +296 -0
  137. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  138. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  139. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  140. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  141. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  142. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  143. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  144. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js +39 -0
  145. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js.map +1 -0
  146. package/dist/cjs/src/wallet/WalletSigner.js +260 -0
  147. package/dist/cjs/src/wallet/WalletSigner.js.map +1 -0
  148. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  149. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  150. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +114 -0
  151. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  152. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +475 -0
  153. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  154. package/dist/cjs/src/wallet/createActionSdk.js +230 -0
  155. package/dist/cjs/src/wallet/createActionSdk.js.map +1 -0
  156. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js +174 -0
  157. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js.map +1 -0
  158. package/dist/cjs/src/wallet/sdk/CertOps.js +181 -0
  159. package/dist/cjs/src/wallet/sdk/CertOps.js.map +1 -0
  160. package/dist/cjs/src/wallet/sdk/Certificate.js +162 -0
  161. package/dist/cjs/src/wallet/sdk/Certificate.js.map +1 -0
  162. package/dist/cjs/src/wallet/sdk/KeyDeriver.js +176 -0
  163. package/dist/cjs/src/wallet/sdk/KeyDeriver.js.map +1 -0
  164. package/dist/cjs/src/wallet/sdk/ProtoWallet.js +75 -0
  165. package/dist/cjs/src/wallet/sdk/ProtoWallet.js.map +1 -0
  166. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js +3 -0
  167. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js.map +1 -0
  168. package/dist/cjs/src/wallet/sdk/WERR_errors.js +107 -0
  169. package/dist/cjs/src/wallet/sdk/WERR_errors.js.map +1 -0
  170. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js +3 -0
  171. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js.map +1 -0
  172. package/dist/cjs/src/wallet/sdk/WalletCrypto.js +171 -0
  173. package/dist/cjs/src/wallet/sdk/WalletCrypto.js.map +1 -0
  174. package/dist/cjs/src/wallet/sdk/WalletError.js +103 -0
  175. package/dist/cjs/src/wallet/sdk/WalletError.js.map +1 -0
  176. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js +3 -0
  177. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js.map +1 -0
  178. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js +3 -0
  179. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js.map +1 -0
  180. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js +3 -0
  181. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js.map +1 -0
  182. package/dist/cjs/src/wallet/sdk/index.js +31 -0
  183. package/dist/cjs/src/wallet/sdk/index.js.map +1 -0
  184. package/dist/cjs/src/wallet/sdk/types.js +11 -0
  185. package/dist/cjs/src/wallet/sdk/types.js.map +1 -0
  186. package/dist/cjs/src/wallet/sdk/validationHelpers.js +601 -0
  187. package/dist/cjs/src/wallet/sdk/validationHelpers.js.map +1 -0
  188. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +11 -3
  189. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  190. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1 -1
  191. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  192. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  193. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  194. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +579 -0
  195. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  196. package/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js +21 -0
  197. package/dist/cjs/src/wallet/substrates/utils/toOriginHeader.js.map +1 -0
  198. package/dist/cjs/src/wallet/utilityHelpers.js +305 -0
  199. package/dist/cjs/src/wallet/utilityHelpers.js.map +1 -0
  200. package/dist/cjs/src/wallet/validationHelpers.js +601 -0
  201. package/dist/cjs/src/wallet/validationHelpers.js.map +1 -0
  202. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  203. package/dist/esm/src/auth/__tests/Peer.test.js +448 -0
  204. package/dist/esm/src/auth/__tests/Peer.test.js.map +1 -0
  205. package/dist/esm/src/auth/__tests/SessionManager.test.js +69 -0
  206. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +1 -0
  207. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +182 -0
  208. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  209. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  210. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  211. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  212. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  213. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +101 -0
  214. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  215. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  216. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  217. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  218. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  219. package/dist/esm/src/auth/utils/certificateHelpers.js +47 -0
  220. package/dist/esm/src/auth/utils/certificateHelpers.js.map +1 -0
  221. package/dist/esm/src/compat/__tests/BSM.test.js +69 -0
  222. package/dist/esm/src/compat/__tests/BSM.test.js.map +1 -0
  223. package/dist/esm/src/compat/__tests/ECIES.test.js +115 -0
  224. package/dist/esm/src/compat/__tests/ECIES.test.js.map +1 -0
  225. package/dist/esm/src/compat/__tests/HD.test.js +336 -0
  226. package/dist/esm/src/compat/__tests/HD.test.js.map +1 -0
  227. package/dist/esm/src/compat/__tests/Mnemonic.test.js +150 -0
  228. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +1 -0
  229. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +175 -0
  230. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  231. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +57 -0
  232. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  233. package/dist/esm/src/messages/__tests/SignedMessage.test.js +52 -0
  234. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +1 -0
  235. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  236. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  237. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  238. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  239. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  240. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  241. package/dist/esm/src/primitives/__tests/AESGCM.test.js +248 -0
  242. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +1 -0
  243. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  244. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  245. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  246. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  247. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  248. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  249. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  250. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  251. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  252. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  253. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  254. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  255. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  256. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  257. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  258. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  259. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  260. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  261. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +145 -0
  262. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  263. package/dist/esm/src/primitives/__tests/DRBG.test.js +22 -0
  264. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +1 -0
  265. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +170 -0
  266. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  267. package/dist/esm/src/primitives/__tests/ECDH.test.js +34 -0
  268. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +1 -0
  269. package/dist/esm/src/primitives/__tests/ECDSA.test.js +89 -0
  270. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +1 -0
  271. package/dist/esm/src/primitives/__tests/HMAC.test.js +60 -0
  272. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +1 -0
  273. package/dist/esm/src/primitives/__tests/Hash.test.js +159 -0
  274. package/dist/esm/src/primitives/__tests/Hash.test.js.map +1 -0
  275. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  276. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  277. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  278. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  279. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +90 -0
  280. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  281. package/dist/esm/src/primitives/__tests/PublicKey.test.js +83 -0
  282. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +1 -0
  283. package/dist/esm/src/primitives/__tests/Random.test.js +19 -0
  284. package/dist/esm/src/primitives/__tests/Random.test.js.map +1 -0
  285. package/dist/esm/src/primitives/__tests/Reader.test.js +282 -0
  286. package/dist/esm/src/primitives/__tests/Reader.test.js.map +1 -0
  287. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +223 -0
  288. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  289. package/dist/esm/src/primitives/__tests/Schnorr.test.js +213 -0
  290. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +1 -0
  291. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +51 -0
  292. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  293. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  294. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  295. package/dist/esm/src/primitives/__tests/Writer.test.js +176 -0
  296. package/dist/esm/src/primitives/__tests/Writer.test.js.map +1 -0
  297. package/dist/esm/src/primitives/__tests/bug-31.test.js +32 -0
  298. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +1 -0
  299. package/dist/esm/src/primitives/__tests/sighash.vectors.js +3506 -0
  300. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +1 -0
  301. package/dist/esm/src/primitives/__tests/utils.test.js +110 -0
  302. package/dist/esm/src/primitives/__tests/utils.test.js.map +1 -0
  303. package/dist/esm/src/primitives/utils.js +18 -2
  304. package/dist/esm/src/primitives/utils.js.map +1 -1
  305. package/dist/esm/src/script/__tests/Script.test.js +347 -0
  306. package/dist/esm/src/script/__tests/Script.test.js.map +1 -0
  307. package/dist/esm/src/script/__tests/Spend.test.js +282 -0
  308. package/dist/esm/src/script/__tests/Spend.test.js.map +1 -0
  309. package/dist/esm/src/script/__tests/SpendComplex.test.js +51 -0
  310. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +1 -0
  311. package/dist/esm/src/script/__tests/script.invalid.vectors.js +2370 -0
  312. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +1 -0
  313. package/dist/esm/src/script/__tests/script.valid.vectors.js +1181 -0
  314. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +1 -0
  315. package/dist/esm/src/script/__tests/spend.valid.vectors.js +2298 -0
  316. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +1 -0
  317. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +161 -0
  318. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  319. package/dist/esm/src/totp/__tests/totp.test.js +67 -0
  320. package/dist/esm/src/totp/__tests/totp.test.js.map +1 -0
  321. package/dist/esm/src/transaction/__tests/Beef.test.js +393 -0
  322. package/dist/esm/src/transaction/__tests/Beef.test.js.map +1 -0
  323. package/dist/esm/src/transaction/__tests/MerklePath.test.js +209 -0
  324. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +1 -0
  325. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  326. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  327. package/dist/esm/src/transaction/__tests/Transaction.test.js +1072 -0
  328. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +1 -0
  329. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +7 -0
  330. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  331. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  332. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  333. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +7 -0
  334. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  335. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  336. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  337. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +296 -0
  338. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  339. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  340. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  341. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  342. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  343. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  344. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  345. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js +37 -0
  346. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js.map +1 -0
  347. package/dist/esm/src/wallet/WalletSigner.js +263 -0
  348. package/dist/esm/src/wallet/WalletSigner.js.map +1 -0
  349. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  350. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  351. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +113 -0
  352. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  353. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +475 -0
  354. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  355. package/dist/esm/src/wallet/createActionSdk.js +223 -0
  356. package/dist/esm/src/wallet/createActionSdk.js.map +1 -0
  357. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js +174 -0
  358. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js.map +1 -0
  359. package/dist/esm/src/wallet/sdk/CertOps.js +181 -0
  360. package/dist/esm/src/wallet/sdk/CertOps.js.map +1 -0
  361. package/dist/esm/src/wallet/sdk/Certificate.js +186 -0
  362. package/dist/esm/src/wallet/sdk/Certificate.js.map +1 -0
  363. package/dist/esm/src/wallet/sdk/KeyDeriver.js +174 -0
  364. package/dist/esm/src/wallet/sdk/KeyDeriver.js.map +1 -0
  365. package/dist/esm/src/wallet/sdk/ProtoWallet.js +71 -0
  366. package/dist/esm/src/wallet/sdk/ProtoWallet.js.map +1 -0
  367. package/dist/esm/src/wallet/sdk/StorageSyncReader.js +2 -0
  368. package/dist/esm/src/wallet/sdk/StorageSyncReader.js.map +1 -0
  369. package/dist/esm/src/wallet/sdk/WERR_errors.js +99 -0
  370. package/dist/esm/src/wallet/sdk/WERR_errors.js.map +1 -0
  371. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js +2 -0
  372. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js.map +1 -0
  373. package/dist/esm/src/wallet/sdk/WalletCrypto.js +168 -0
  374. package/dist/esm/src/wallet/sdk/WalletCrypto.js.map +1 -0
  375. package/dist/esm/src/wallet/sdk/WalletError.js +100 -0
  376. package/dist/esm/src/wallet/sdk/WalletError.js.map +1 -0
  377. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js +2 -0
  378. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js.map +1 -0
  379. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js +2 -0
  380. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js.map +1 -0
  381. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js +2 -0
  382. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js.map +1 -0
  383. package/dist/esm/src/wallet/sdk/index.js +15 -0
  384. package/dist/esm/src/wallet/sdk/index.js.map +1 -0
  385. package/dist/esm/src/wallet/sdk/types.js +8 -0
  386. package/dist/esm/src/wallet/sdk/types.js.map +1 -0
  387. package/dist/esm/src/wallet/sdk/validationHelpers.js +566 -0
  388. package/dist/esm/src/wallet/sdk/validationHelpers.js.map +1 -0
  389. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +9 -1
  390. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  391. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1 -1
  392. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  393. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  394. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  395. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +579 -0
  396. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  397. package/dist/esm/src/wallet/substrates/utils/toOriginHeader.js +17 -0
  398. package/dist/esm/src/wallet/substrates/utils/toOriginHeader.js.map +1 -0
  399. package/dist/esm/src/wallet/utilityHelpers.js +275 -0
  400. package/dist/esm/src/wallet/utilityHelpers.js.map +1 -0
  401. package/dist/esm/src/wallet/validationHelpers.js +566 -0
  402. package/dist/esm/src/wallet/validationHelpers.js.map +1 -0
  403. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  404. package/dist/types/src/auth/__tests/Peer.test.d.ts +2 -0
  405. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +1 -0
  406. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +2 -0
  407. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +1 -0
  408. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +2 -0
  409. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +1 -0
  410. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +2 -0
  411. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +1 -0
  412. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +2 -0
  413. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +1 -0
  414. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +2 -0
  415. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +1 -0
  416. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +2 -0
  417. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +1 -0
  418. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +2 -0
  419. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +1 -0
  420. package/dist/types/src/auth/utils/certificateHelpers.d.ts +26 -0
  421. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +1 -0
  422. package/dist/types/src/compat/__tests/BSM.test.d.ts +2 -0
  423. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +1 -0
  424. package/dist/types/src/compat/__tests/ECIES.test.d.ts +2 -0
  425. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +1 -0
  426. package/dist/types/src/compat/__tests/HD.test.d.ts +2 -0
  427. package/dist/types/src/compat/__tests/HD.test.d.ts.map +1 -0
  428. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +2 -0
  429. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +1 -0
  430. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +11 -0
  431. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +1 -0
  432. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +2 -0
  433. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +1 -0
  434. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +2 -0
  435. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +1 -0
  436. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +2 -0
  437. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +1 -0
  438. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +2 -0
  439. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +1 -0
  440. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +2 -0
  441. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +1 -0
  442. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +2 -0
  443. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +1 -0
  444. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +8 -0
  445. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +1 -0
  446. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +8 -0
  447. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +1 -0
  448. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +2 -0
  449. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +1 -0
  450. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +2 -0
  451. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +1 -0
  452. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +2 -0
  453. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +1 -0
  454. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +2 -0
  455. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +1 -0
  456. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +15 -0
  457. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +1 -0
  458. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +2 -0
  459. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +1 -0
  460. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +2 -0
  461. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +1 -0
  462. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +2 -0
  463. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +1 -0
  464. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +2 -0
  465. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +1 -0
  466. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +10 -0
  467. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +1 -0
  468. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +2 -0
  469. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +1 -0
  470. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +2 -0
  471. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +1 -0
  472. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +2 -0
  473. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +1 -0
  474. package/dist/types/src/primitives/__tests/Hash.test.d.ts +2 -0
  475. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +1 -0
  476. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +68 -0
  477. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +1 -0
  478. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +2 -0
  479. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +1 -0
  480. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +2 -0
  481. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +1 -0
  482. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +2 -0
  483. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +1 -0
  484. package/dist/types/src/primitives/__tests/Random.test.d.ts +2 -0
  485. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +1 -0
  486. package/dist/types/src/primitives/__tests/Reader.test.d.ts +2 -0
  487. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +1 -0
  488. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +2 -0
  489. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +1 -0
  490. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +2 -0
  491. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +1 -0
  492. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +2 -0
  493. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +1 -0
  494. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +20 -0
  495. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +1 -0
  496. package/dist/types/src/primitives/__tests/Writer.test.d.ts +2 -0
  497. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +1 -0
  498. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +2 -0
  499. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +1 -0
  500. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +3 -0
  501. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +1 -0
  502. package/dist/types/src/primitives/__tests/utils.test.d.ts +2 -0
  503. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +1 -0
  504. package/dist/types/src/primitives/utils.d.ts +2 -1
  505. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  506. package/dist/types/src/script/__tests/Script.test.d.ts +2 -0
  507. package/dist/types/src/script/__tests/Script.test.d.ts.map +1 -0
  508. package/dist/types/src/script/__tests/Spend.test.d.ts +2 -0
  509. package/dist/types/src/script/__tests/Spend.test.d.ts.map +1 -0
  510. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +2 -0
  511. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +1 -0
  512. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +3 -0
  513. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +1 -0
  514. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +3 -0
  515. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +1 -0
  516. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +3 -0
  517. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +1 -0
  518. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +2 -0
  519. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +1 -0
  520. package/dist/types/src/totp/__tests/totp.test.d.ts +2 -0
  521. package/dist/types/src/totp/__tests/totp.test.d.ts.map +1 -0
  522. package/dist/types/src/transaction/__tests/Beef.test.d.ts +2 -0
  523. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +1 -0
  524. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +2 -0
  525. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +1 -0
  526. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +2 -0
  527. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +1 -0
  528. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +2 -0
  529. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +1 -0
  530. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +6 -0
  531. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +1 -0
  532. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +6 -0
  533. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +1 -0
  534. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +5 -0
  535. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +1 -0
  536. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +3 -0
  537. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +1 -0
  538. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +3 -0
  539. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +1 -0
  540. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +2 -0
  541. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +1 -0
  542. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +2 -0
  543. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +1 -0
  544. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +2 -0
  545. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +1 -0
  546. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts +25 -0
  547. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts.map +1 -0
  548. package/dist/types/src/wallet/WalletSigner.d.ts +110 -0
  549. package/dist/types/src/wallet/WalletSigner.d.ts.map +1 -0
  550. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +2 -0
  551. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +1 -0
  552. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +2 -0
  553. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +1 -0
  554. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +2 -0
  555. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +1 -0
  556. package/dist/types/src/wallet/createActionSdk.d.ts +8 -0
  557. package/dist/types/src/wallet/createActionSdk.d.ts.map +1 -0
  558. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts +94 -0
  559. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts.map +1 -0
  560. package/dist/types/src/wallet/sdk/CertOps.d.ts +63 -0
  561. package/dist/types/src/wallet/sdk/CertOps.d.ts.map +1 -0
  562. package/dist/types/src/wallet/sdk/Certificate.d.ts +77 -0
  563. package/dist/types/src/wallet/sdk/Certificate.d.ts.map +1 -0
  564. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts +128 -0
  565. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts.map +1 -0
  566. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts +30 -0
  567. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts.map +1 -0
  568. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts +102 -0
  569. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts.map +1 -0
  570. package/dist/types/src/wallet/sdk/WERR_errors.d.ts +84 -0
  571. package/dist/types/src/wallet/sdk/WERR_errors.d.ts.map +1 -0
  572. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts +1036 -0
  573. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts.map +1 -0
  574. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts +31 -0
  575. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts.map +1 -0
  576. package/dist/types/src/wallet/sdk/WalletError.d.ts +46 -0
  577. package/dist/types/src/wallet/sdk/WalletError.d.ts.map +1 -0
  578. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts +293 -0
  579. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts.map +1 -0
  580. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts +48 -0
  581. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts.map +1 -0
  582. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts +296 -0
  583. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts.map +1 -0
  584. package/dist/types/src/wallet/sdk/index.d.ts +15 -0
  585. package/dist/types/src/wallet/sdk/index.d.ts.map +1 -0
  586. package/dist/types/src/wallet/sdk/types.d.ts +56 -0
  587. package/dist/types/src/wallet/sdk/types.d.ts.map +1 -0
  588. package/dist/types/src/wallet/sdk/validationHelpers.d.ts +301 -0
  589. package/dist/types/src/wallet/sdk/validationHelpers.d.ts.map +1 -0
  590. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  591. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +2 -0
  592. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +1 -0
  593. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +5 -0
  594. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +1 -0
  595. package/dist/types/src/wallet/substrates/utils/toOriginHeader.d.ts +2 -0
  596. package/dist/types/src/wallet/substrates/utils/toOriginHeader.d.ts.map +1 -0
  597. package/dist/types/src/wallet/utilityHelpers.d.ts +142 -0
  598. package/dist/types/src/wallet/utilityHelpers.d.ts.map +1 -0
  599. package/dist/types/src/wallet/validationHelpers.d.ts +301 -0
  600. package/dist/types/src/wallet/validationHelpers.d.ts.map +1 -0
  601. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  602. package/dist/umd/bundle.js +1 -1
  603. package/docs/primitives.md +2 -1
  604. package/docs/wallet.md +9 -0
  605. package/package.json +4 -4
  606. package/src/primitives/utils.ts +20 -2
  607. package/src/transaction/__tests/Transaction.test.ts +1 -1
  608. package/src/wallet/substrates/HTTPWalletJSON.ts +11 -1
  609. package/src/wallet/substrates/WalletWireProcessor.ts +1 -1
  610. package/src/wallet/substrates/__tests/toOriginHeader.test.ts +34 -0
  611. package/src/wallet/substrates/utils/toOriginHeader.ts +15 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getVerifiableCertificates_1 = require("../../../auth/utils/getVerifiableCertificates");
4
+ const VerifiableCertificate_1 = require("../../../auth/certificates/VerifiableCertificate");
5
+ describe('getVerifiableCertificates', () => {
6
+ let mockWallet;
7
+ let requestedCertificates;
8
+ let verifierIdentityKey;
9
+ beforeEach(() => {
10
+ mockWallet = {
11
+ listCertificates: jest.fn(),
12
+ proveCertificate: jest.fn()
13
+ };
14
+ requestedCertificates = {
15
+ certifiers: ['certifier1', 'certifier2'],
16
+ types: {
17
+ certType1: ['field1', 'field2'],
18
+ certType2: ['field3']
19
+ }
20
+ };
21
+ verifierIdentityKey = 'verifier_public_key';
22
+ });
23
+ it('retrieves matching certificates based on requested set', async () => {
24
+ const mockCertificate = {
25
+ type: 'certType1',
26
+ serialNumber: 'serial1',
27
+ subject: 'subject1',
28
+ certifier: 'certifier1',
29
+ revocationOutpoint: 'outpoint1',
30
+ fields: { field1: 'encryptedData1', field2: 'encryptedData2' },
31
+ signature: 'signature1'
32
+ };
33
+ mockWallet.listCertificates.mockResolvedValue({
34
+ certificates: [mockCertificate]
35
+ });
36
+ mockWallet.proveCertificate.mockResolvedValue({
37
+ keyringForVerifier: { field1: 'key1', field2: 'key2' }
38
+ });
39
+ const result = await (0, getVerifiableCertificates_1.getVerifiableCertificates)(mockWallet, requestedCertificates, verifierIdentityKey);
40
+ expect(mockWallet.listCertificates).toHaveBeenCalledWith({
41
+ certifiers: requestedCertificates.certifiers,
42
+ types: Object.keys(requestedCertificates.types)
43
+ });
44
+ expect(mockWallet.proveCertificate).toHaveBeenCalledWith({
45
+ certificate: mockCertificate,
46
+ fieldsToReveal: requestedCertificates.types[mockCertificate.type],
47
+ verifier: verifierIdentityKey
48
+ });
49
+ expect(result).toHaveLength(1);
50
+ expect(result[0]).toBeInstanceOf(VerifiableCertificate_1.VerifiableCertificate);
51
+ expect(result[0]).toMatchObject({
52
+ type: 'certType1',
53
+ serialNumber: 'serial1',
54
+ subject: 'subject1',
55
+ certifier: 'certifier1',
56
+ revocationOutpoint: 'outpoint1',
57
+ fields: { field1: 'encryptedData1', field2: 'encryptedData2' },
58
+ signature: 'signature1',
59
+ keyring: { field1: 'key1', field2: 'key2' }
60
+ });
61
+ });
62
+ it('returns an empty array when no matching certificates are found', async () => {
63
+ ;
64
+ mockWallet.listCertificates.mockResolvedValue({
65
+ certificates: []
66
+ });
67
+ const result = await (0, getVerifiableCertificates_1.getVerifiableCertificates)(mockWallet, requestedCertificates, verifierIdentityKey);
68
+ expect(result).toEqual([]);
69
+ expect(mockWallet.listCertificates).toHaveBeenCalled();
70
+ expect(mockWallet.proveCertificate).not.toHaveBeenCalled();
71
+ });
72
+ it('propagates errors from listCertificates', async () => {
73
+ ;
74
+ mockWallet.listCertificates.mockRejectedValue(new Error('listCertificates failed'));
75
+ await expect((0, getVerifiableCertificates_1.getVerifiableCertificates)(mockWallet, requestedCertificates, verifierIdentityKey)).rejects.toThrow('listCertificates failed');
76
+ });
77
+ it('propagates errors from proveCertificate', async () => {
78
+ const mockCertificate = {
79
+ type: 'certType1',
80
+ serialNumber: 'serial1',
81
+ subject: 'subject1',
82
+ certifier: 'certifier1',
83
+ revocationOutpoint: 'outpoint1',
84
+ fields: { field1: 'encryptedData1', field2: 'encryptedData2' },
85
+ signature: 'signature1'
86
+ };
87
+ mockWallet.listCertificates.mockResolvedValue({
88
+ certificates: [mockCertificate]
89
+ });
90
+ mockWallet.proveCertificate.mockRejectedValue(new Error('proveCertificate failed'));
91
+ await expect((0, getVerifiableCertificates_1.getVerifiableCertificates)(mockWallet, requestedCertificates, verifierIdentityKey)).rejects.toThrow('proveCertificate failed');
92
+ });
93
+ it('handles empty requested certificates gracefully', async () => {
94
+ requestedCertificates = { certifiers: [], types: {} };
95
+ mockWallet.listCertificates.mockResolvedValue({
96
+ certificates: []
97
+ });
98
+ const result = await (0, getVerifiableCertificates_1.getVerifiableCertificates)(mockWallet, requestedCertificates, verifierIdentityKey);
99
+ expect(result).toEqual([]);
100
+ expect(mockWallet.listCertificates).toHaveBeenCalledWith({
101
+ certifiers: [],
102
+ types: []
103
+ });
104
+ });
105
+ });
106
+ //# sourceMappingURL=getVerifiableCertificates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVerifiableCertificates.test.js","sourceRoot":"","sources":["../../../../../../src/auth/utils/__tests/getVerifiableCertificates.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const validateCertificates_1 = require("../../../auth/utils/validateCertificates");
4
+ const VerifiableCertificate_1 = require("../../../auth/certificates/VerifiableCertificate");
5
+ const index_1 = require("../../../wallet/index");
6
+ const index_2 = require("../../../primitives/index");
7
+ let mockVerify = jest.fn(() => Promise.resolve(true));
8
+ let mockDecryptFields = jest.fn(() => Promise.resolve({ field1: "decryptedValue1" }));
9
+ const mockInstances = [];
10
+ jest.mock("../../../auth/certificates/VerifiableCertificate", () => {
11
+ return {
12
+ VerifiableCertificate: jest.fn().mockImplementation(() => {
13
+ const instance = {
14
+ type: "requested_type",
15
+ serialNumber: "valid_serial",
16
+ subject: "valid_subject",
17
+ certifier: "valid_certifier",
18
+ revocationOutpoint: "outpoint",
19
+ fields: { field1: "encryptedData1" },
20
+ decryptedFields: {},
21
+ verify: mockVerify,
22
+ decryptFields: mockDecryptFields,
23
+ };
24
+ mockInstances.push(instance);
25
+ return instance;
26
+ }),
27
+ };
28
+ });
29
+ describe("validateCertificates", () => {
30
+ let verifierWallet;
31
+ let message;
32
+ beforeEach(() => {
33
+ jest.clearAllMocks();
34
+ mockInstances.length = 0; // Clear tracked instances
35
+ // Reset state
36
+ mockVerify = jest.fn(() => Promise.resolve(true));
37
+ mockDecryptFields = jest.fn(() => Promise.resolve({ field1: "decryptedValue1" }));
38
+ verifierWallet = new index_1.ProtoWallet(new index_2.PrivateKey(1));
39
+ message = {
40
+ identityKey: "valid_subject",
41
+ certificates: [
42
+ {
43
+ type: "requested_type",
44
+ serialNumber: "valid_serial",
45
+ subject: "valid_subject",
46
+ certifier: "valid_certifier",
47
+ revocationOutpoint: "outpoint",
48
+ fields: { field1: "encryptedData1" },
49
+ decryptedFields: {},
50
+ },
51
+ ],
52
+ };
53
+ });
54
+ it("completes without errors for valid input", async () => {
55
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).resolves.not.toThrow();
56
+ expect(VerifiableCertificate_1.VerifiableCertificate).toHaveBeenCalledTimes(message.certificates.length);
57
+ expect(mockVerify).toHaveBeenCalledTimes(message.certificates.length);
58
+ expect(mockDecryptFields).toHaveBeenCalledWith(verifierWallet);
59
+ });
60
+ it("throws an error for mismatched identity key", async () => {
61
+ message.identityKey = "different_subject";
62
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).rejects.toThrow(`The subject of one of your certificates ("valid_subject") is not the same as the request sender ("different_subject").`);
63
+ });
64
+ it("throws an error if certificate signature is invalid", async () => {
65
+ mockVerify.mockResolvedValueOnce(false);
66
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).rejects.toThrow(`The signature for the certificate with serial number valid_serial is invalid!`);
67
+ });
68
+ it("throws an error for unrequested certifier", async () => {
69
+ const certificatesRequested = {
70
+ certifiers: ["another_certifier"],
71
+ types: { requested_type: ["field1"] },
72
+ };
73
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message, certificatesRequested)).rejects.toThrow(`Certificate with serial number valid_serial has an unrequested certifier: valid_certifier`);
74
+ });
75
+ it("throws an error for unrequested certificate type", async () => {
76
+ const certificatesRequested = {
77
+ certifiers: ["valid_certifier"],
78
+ types: { another_type: ["field1"] },
79
+ };
80
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message, certificatesRequested)).rejects.toThrow(`Certificate with type requested_type was not requested`);
81
+ });
82
+ it("decrypts fields without throwing errors", async () => {
83
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).resolves.not.toThrow();
84
+ for (const instance of mockInstances) {
85
+ expect(instance.decryptFields).toHaveBeenCalledWith(verifierWallet);
86
+ }
87
+ });
88
+ it("throws an error if a field decryption fails", async () => {
89
+ mockDecryptFields.mockRejectedValue(new Error("Decryption failed"));
90
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).rejects.toThrow("Decryption failed");
91
+ });
92
+ it("handles multiple certificates properly", async () => {
93
+ const anotherCertificate = {
94
+ type: "requested_type",
95
+ serialNumber: "another_serial",
96
+ subject: "valid_subject",
97
+ certifier: "valid_certifier",
98
+ revocationOutpoint: "outpoint",
99
+ fields: { field1: "encryptedData1" },
100
+ decryptedFields: {},
101
+ };
102
+ message.certificates.push(anotherCertificate);
103
+ await expect((0, validateCertificates_1.validateCertificates)(verifierWallet, message)).resolves.not.toThrow();
104
+ expect(VerifiableCertificate_1.VerifiableCertificate).toHaveBeenCalledTimes(2);
105
+ expect(mockVerify).toHaveBeenCalledTimes(2);
106
+ for (const instance of mockInstances) {
107
+ expect(instance.decryptFields).toHaveBeenCalledWith(verifierWallet);
108
+ }
109
+ });
110
+ });
111
+ //# sourceMappingURL=validateCertificates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateCertificates.test.js","sourceRoot":"","sources":["../../../../../../src/auth/utils/__tests/validateCertificates.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMasterCertificate = createMasterCertificate;
4
+ exports.createVerifiableCertificate = createVerifiableCertificate;
5
+ const mod_js_1 = require("../../../mod.js");
6
+ const MasterCertificate_js_1 = require("../certificates/MasterCertificate.js");
7
+ const VerifiableCertificate_js_1 = require("../certificates/VerifiableCertificate.js");
8
+ /**
9
+ * Creates a Master Certificate by encrypting provided fields and generating a master keyring.
10
+ *
11
+ * @param {Wallet} wallet - The wallet instance used for encryption and public key retrieval.
12
+ * @param {Record<string, string>} fields - The certificate fields to encrypt.
13
+ * @param {string} certificateType - The type of the certificate being created.
14
+ * @param {string} certificateSerialNumber - The serial number of the certificate.
15
+ * @param {string} certifierPublicKey - The public key of the certifier.
16
+ * @returns {Promise<MasterCertificate>} A promise resolving to the created Master Certificate.
17
+ */
18
+ async function createMasterCertificate(wallet, fields, certificateType, certificateSerialNumber, certifierPublicKey) {
19
+ const certificateFields = {};
20
+ const masterKeyring = {};
21
+ for (const fieldName in fields) {
22
+ const fieldSymmetricKey = mod_js_1.SymmetricKey.fromRandom();
23
+ const encryptedFieldValue = fieldSymmetricKey.encrypt(mod_js_1.Utils.toArray(fields[fieldName], 'utf8'));
24
+ certificateFields[fieldName] = mod_js_1.Utils.toBase64(encryptedFieldValue);
25
+ const encryptedFieldKey = await wallet.encrypt({
26
+ plaintext: fieldSymmetricKey.toArray(),
27
+ protocolID: [2, 'certificate field encryption'],
28
+ keyID: `${certificateSerialNumber} ${fieldName}`,
29
+ counterparty: 'self'
30
+ });
31
+ masterKeyring[fieldName] = mod_js_1.Utils.toBase64(encryptedFieldKey.ciphertext);
32
+ }
33
+ return new MasterCertificate_js_1.MasterCertificate(certificateType, certificateSerialNumber, (await wallet.getPublicKey({ identityKey: true })).publicKey, certifierPublicKey, 'revocationOutpoint', certificateFields, masterKeyring);
34
+ }
35
+ /**
36
+ * Creates a Verifiable Certificate by signing a Master Certificate and generating a keyring for a verifier.
37
+ *
38
+ * @param {MasterCertificate} masterCertificate - The master certificate to convert into a verifiable certificate.
39
+ * @param {Wallet} wallet - The wallet instance used for generating a keyring for the verifier.
40
+ * @param {string} verifierIdentityKey - The identity key of the verifier.
41
+ * @param {string[]} fieldsToReveal - The list of fields to reveal to the verifier.
42
+ * @param {PrivateKey} certifierPrivateKey - The private key of the certifier for signing the certificate.
43
+ * @returns {Promise<VerifiableCertificate>} A promise resolving to the created Verifiable Certificate.
44
+ */
45
+ async function createVerifiableCertificate(masterCertificate, wallet, verifierIdentityKey, fieldsToReveal, certifierPrivateKey) {
46
+ const certifierWallet = new mod_js_1.ProtoWallet(certifierPrivateKey);
47
+ await masterCertificate.sign(certifierWallet);
48
+ const keyringForVerifier = await masterCertificate.createKeyringForVerifier(wallet, verifierIdentityKey, fieldsToReveal);
49
+ return new VerifiableCertificate_js_1.VerifiableCertificate(masterCertificate.type, masterCertificate.serialNumber, masterCertificate.subject, masterCertificate.certifier, masterCertificate.revocationOutpoint, masterCertificate.fields, masterCertificate.signature, keyringForVerifier);
50
+ }
51
+ //# sourceMappingURL=certificateHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificateHelpers.js","sourceRoot":"","sources":["../../../../../src/auth/utils/certificateHelpers.ts"],"names":[],"mappings":";;AAcA,0DAiCC;AAYD,kEA0BC;AArFD,4CAAsF;AACtF,+EAAwE;AACxE,uFAAgF;AAEhF;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EACd,MAA8B,EAC9B,eAAuB,EACvB,uBAA+B,EAC/B,kBAA0B;IAE1B,MAAM,iBAAiB,GAA2B,EAAE,CAAA;IACpD,MAAM,aAAa,GAA2B,EAAE,CAAA;IAEhD,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAG,qBAAY,CAAC,UAAU,EAAE,CAAA;QACnD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC,cAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC/F,iBAAiB,CAAC,SAAS,CAAC,GAAG,cAAK,CAAC,QAAQ,CAAC,mBAA+B,CAAC,CAAA;QAE9E,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAC7C,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE;YACtC,UAAU,EAAE,CAAC,CAAC,EAAE,8BAA8B,CAAC;YAC/C,KAAK,EAAE,GAAG,uBAAuB,IAAI,SAAS,EAAE;YAChD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAA;QACF,aAAa,CAAC,SAAS,CAAC,GAAG,cAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,IAAI,wCAAiB,CAC1B,eAAe,EACf,uBAAuB,EACvB,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,EAC5D,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,CACd,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,2BAA2B,CAC/C,iBAAoC,EACpC,MAAc,EACd,mBAA2B,EAC3B,cAAwB,EACxB,mBAA+B;IAE/B,MAAM,eAAe,GAAG,IAAI,oBAAW,CAAC,mBAAmB,CAAC,CAAA;IAC5D,MAAM,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAE7C,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CACzE,MAAM,EACN,mBAAmB,EACnB,cAAc,CACf,CAAA;IAED,OAAO,IAAI,gDAAqB,CAC9B,iBAAiB,CAAC,IAAI,EACtB,iBAAiB,CAAC,YAAY,EAC9B,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,SAAS,EAC3B,iBAAiB,CAAC,kBAAkB,EACpC,iBAAiB,CAAC,MAAM,EACxB,iBAAiB,CAAC,SAAS,EAC3B,kBAAkB,CACnB,CAAA;AACH,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BSM_1 = require("../BSM");
7
+ const utils_1 = require("../../primitives/utils");
8
+ const PrivateKey_1 = __importDefault(require("../../primitives/PrivateKey"));
9
+ const PublicKey_1 = __importDefault(require("../../primitives/PublicKey"));
10
+ const Signature_1 = __importDefault(require("../../primitives/Signature"));
11
+ const BigNumber_1 = __importDefault(require("../../primitives/BigNumber"));
12
+ describe('BSM', () => {
13
+ describe('magicHash', () => {
14
+ it('should return a hash', () => {
15
+ const buf = (0, utils_1.toArray)('001122', 'hex');
16
+ const hashBuf = (0, BSM_1.magicHash)(buf);
17
+ expect(hashBuf.length).toEqual(32);
18
+ });
19
+ });
20
+ describe('sign', () => {
21
+ const messageBuf = (0, utils_1.toArray)('this is my message', 'utf8');
22
+ const privateKey = new PrivateKey_1.default(42);
23
+ it('should return a signature', () => {
24
+ const sig = (0, BSM_1.sign)(messageBuf, privateKey, 'raw');
25
+ if (typeof sig !== 'string' && sig.toDER) {
26
+ const derSignature = sig.toDER();
27
+ expect(derSignature.length).toEqual(70);
28
+ }
29
+ else {
30
+ throw new Error('Expected a Signature object, but got a string');
31
+ }
32
+ });
33
+ it('Creates the correct base64 signature', () => {
34
+ const privateKey = PrivateKey_1.default.fromWif('L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu');
35
+ const sig = (0, BSM_1.sign)((0, utils_1.toArray)('hello world', 'utf8'), privateKey, 'base64');
36
+ expect(sig).toEqual('H4T8Asr0WkC6wYfBESR6pCAfECtdsPM4fwiSQ2qndFi8dVtv/mrOFaySx9xQE7j24ugoJ4iGnsRwAC8QwaoHOXk=');
37
+ });
38
+ });
39
+ describe('verify', () => {
40
+ const messageBuf = (0, utils_1.toArray)('this is my message', 'utf8');
41
+ const privateKey = new PrivateKey_1.default(42);
42
+ it('should verify a signed message', () => {
43
+ const sig = (0, BSM_1.sign)(messageBuf, privateKey, 'raw');
44
+ if (typeof sig !== 'string') {
45
+ expect((0, BSM_1.verify)(messageBuf, sig, privateKey.toPublicKey())).toEqual(true);
46
+ }
47
+ else {
48
+ throw new Error('Expected a Signature object, but got a string');
49
+ }
50
+ });
51
+ it('Should verify a signed message in base64', () => {
52
+ const message = (0, utils_1.toArray)('Texas', 'utf8');
53
+ const signature = Signature_1.default.fromCompact('IAV89EkfHSzAIA8cEWbbKHUYzJqcShkpWaXGJ5+mf4+YIlf3XNlr0bj9X60sNe1A7+x9qyk+zmXropMDY4370n8=', 'base64');
54
+ const publicKey = PublicKey_1.default.fromString('03d4d1a6c5d8c03b0e671bc1891b69afaecb40c0686188fe9019f93581b43e8334');
55
+ expect((0, BSM_1.verify)(message, signature, publicKey)).toBe(true);
56
+ });
57
+ it('Should be able to calculate the recovery number for a signature and public key', () => {
58
+ const message = (0, utils_1.toArray)('Texas', 'utf8');
59
+ const signature = Signature_1.default.fromCompact('IAV89EkfHSzAIA8cEWbbKHUYzJqcShkpWaXGJ5+mf4+YIlf3XNlr0bj9X60sNe1A7+x9qyk+zmXropMDY4370n8=', 'base64');
60
+ const publicKey = PublicKey_1.default.fromString('03d4d1a6c5d8c03b0e671bc1891b69afaecb40c0686188fe9019f93581b43e8334');
61
+ const msgHash = new BigNumber_1.default((0, BSM_1.magicHash)(message));
62
+ const recovery = signature.CalculateRecoveryFactor(publicKey, msgHash);
63
+ expect(recovery).toBe(1);
64
+ const recoveredPubkey = signature.RecoverPublicKey(recovery, msgHash);
65
+ expect(recoveredPubkey.toDER()).toEqual(publicKey.toDER());
66
+ });
67
+ });
68
+ });
69
+ //# sourceMappingURL=BSM.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BSM.test.js","sourceRoot":"","sources":["../../../../../src/compat/__tests/BSM.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const ECIES_1 = __importDefault(require("../ECIES"));
40
+ const Hash = __importStar(require("../../primitives/Hash"));
41
+ const PrivateKey_1 = __importDefault(require("../../primitives/PrivateKey"));
42
+ const index_1 = require("../../primitives/index");
43
+ describe('#ECIES', () => {
44
+ it('should make a new ECIES object', () => {
45
+ expect(ECIES_1.default).toBeDefined();
46
+ });
47
+ const fromkey = new PrivateKey_1.default(42);
48
+ const tokey = new PrivateKey_1.default(88);
49
+ const messageBuf = Hash.sha256(index_1.Utils.toArray('my message is the hash of this string', 'utf8'));
50
+ describe('@bitcoreEncrypt', () => {
51
+ it('should return a buffer', () => {
52
+ const encBuf = ECIES_1.default.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey);
53
+ expect(Array.isArray(encBuf)).toEqual(true);
54
+ });
55
+ it('should return a buffer if fromkey is not present', () => {
56
+ const encBuf = ECIES_1.default.bitcoreEncrypt(messageBuf, tokey.toPublicKey());
57
+ expect(Array.isArray(encBuf)).toEqual(true);
58
+ });
59
+ });
60
+ describe('@bitcoreDecrypt', () => {
61
+ it('should decrypt that which was encrypted', () => {
62
+ const encBuf = ECIES_1.default.bitcoreEncrypt(messageBuf, tokey.toPublicKey(), fromkey);
63
+ const messageBuf2 = ECIES_1.default.bitcoreDecrypt(encBuf, tokey);
64
+ expect(index_1.Utils.toHex(messageBuf2)).toEqual(index_1.Utils.toHex(messageBuf));
65
+ });
66
+ it('should decrypt that which was encrypted if fromPrivateKey was randomly generated', () => {
67
+ const encBuf = ECIES_1.default.bitcoreEncrypt(messageBuf, tokey.toPublicKey());
68
+ const messageBuf2 = ECIES_1.default.bitcoreDecrypt(encBuf, tokey);
69
+ expect(messageBuf2).toEqual(messageBuf);
70
+ });
71
+ });
72
+ describe('Electrum ECIES', () => {
73
+ // const alicePrivateKey = PrivateKey.fromString('L1Ejc5dAigm5XrM3mNptMEsNnHzS7s51YxU7J61ewGshZTKkbmzJ')
74
+ // const bobPrivateKey = PrivateKey.fromString('KxfxrUXSMjJQcb3JgnaaA6MqsrKQ1nBSxvhuigdKRyFiEm6BZDgG')
75
+ const alicePrivateKey = PrivateKey_1.default.fromString('77e06abc52bf065cb5164c5deca839d0276911991a2730be4d8d0a0307de7ceb', 16);
76
+ const bobPrivateKey = PrivateKey_1.default.fromString('2b57c7c5e408ce927eef5e2efb49cfdadde77961d342daa72284bb3d6590862d', 16);
77
+ it('should do these test vectors correctly', () => {
78
+ const message = index_1.Utils.toArray('this is my test message', 'utf8');
79
+ expect(ECIES_1.default.electrumDecrypt(index_1.Utils.toArray('QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU=', 'base64'), alicePrivateKey)).toEqual(message);
80
+ expect(ECIES_1.default.electrumDecrypt(index_1.Utils.toArray('QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo=', 'base64'), bobPrivateKey)).toEqual(message);
81
+ expect(index_1.Utils.toBase64(ECIES_1.default.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey))).toEqual('QklFMQM55QTWSSsILaluEejwOXlrBs1IVcEB4kkqbxDz4Fap53XHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbvZJHgyAzxA6SoujduvJXv+A9ri3po9veilrmc8p6dwo=');
82
+ expect(index_1.Utils.toBase64(ECIES_1.default.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey))).toEqual('QklFMQOGFyMXLo9Qv047K3BYJhmnJgt58EC8skYP/R2QU/U0yXXHOt6L3tKmrXho6yj6phfoiMkBOhUldRPnEI4fSZXbiaH4FsxKIOOvzolIFVAS0FplUmib2HnlAM1yP/iiPsU=');
83
+ });
84
+ it('should encrypt and decrypt symmetrically with matching strings in ECDH noKey mode', () => {
85
+ const message = index_1.Utils.toArray('this is my ECDH test message', 'utf8');
86
+ const ecdhMessageEncryptedBob = ECIES_1.default.electrumEncrypt(message, bobPrivateKey.toPublicKey(), alicePrivateKey, true);
87
+ const ecdhMessageEncryptedAlice = ECIES_1.default.electrumEncrypt(message, alicePrivateKey.toPublicKey(), bobPrivateKey, true);
88
+ expect(ecdhMessageEncryptedBob).toEqual(ecdhMessageEncryptedAlice);
89
+ expect(ECIES_1.default.electrumDecrypt(ecdhMessageEncryptedAlice, bobPrivateKey, alicePrivateKey.toPublicKey())).toEqual(index_1.Utils.toArray('this is my ECDH test message', 'utf8'));
90
+ expect(ECIES_1.default.electrumDecrypt(ecdhMessageEncryptedBob, alicePrivateKey, bobPrivateKey.toPublicKey())).toEqual(index_1.Utils.toArray('this is my ECDH test message', 'utf8'));
91
+ });
92
+ it('should encrypt and decrypt using ephemeral fromPrivateKey', () => {
93
+ const message = index_1.Utils.toArray('this is my ephemeral key test message', 'utf8');
94
+ const encryptedMessage = ECIES_1.default.electrumEncrypt(message, bobPrivateKey.toPublicKey());
95
+ expect(ECIES_1.default.electrumDecrypt(encryptedMessage, bobPrivateKey)).toEqual(message);
96
+ });
97
+ it('should encrypt and decrypt message with counterparty public key', () => {
98
+ const wif = 'L211enC224G1kV8pyyq7bjVd9SxZebnRYEzzM3i7ZHCc1c5E7dQu';
99
+ const senderPrivateKey = PrivateKey_1.default.fromWif(wif);
100
+ const senderPublicKey = senderPrivateKey.toPublicKey();
101
+ const msgStr = 'hello world';
102
+ const messageBuf = index_1.Utils.toArray(msgStr, 'utf8');
103
+ // Create a random counterparty (recipient) public/private key pair
104
+ const recipientPrivateKey = PrivateKey_1.default.fromRandom();
105
+ const recipientPublicKey = recipientPrivateKey.toPublicKey();
106
+ // Encrypt the message using electrumEncrypt
107
+ const encryptedMessage = ECIES_1.default.electrumEncrypt(messageBuf, recipientPublicKey, senderPrivateKey);
108
+ // Decrypt the message using electrumDecrypt
109
+ const decryptedMessageBuf = ECIES_1.default.electrumDecrypt(encryptedMessage, recipientPrivateKey, senderPublicKey);
110
+ const decryptedMsgStr = index_1.Utils.toUTF8(decryptedMessageBuf);
111
+ expect(decryptedMsgStr).toEqual(msgStr);
112
+ });
113
+ });
114
+ });
115
+ //# sourceMappingURL=ECIES.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECIES.test.js","sourceRoot":"","sources":["../../../../../src/compat/__tests/ECIES.test.ts"],"names":[],"mappings":"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"}