@bsv/sdk 1.4.6 → 1.4.7

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 (604) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/overlay-tools/LookupResolver.js +1 -1
  3. package/dist/cjs/src/storage/StorageDownloader.js +5 -0
  4. package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
  5. package/dist/cjs/src/storage/StorageUploader.js +8 -4
  6. package/dist/cjs/src/storage/StorageUploader.js.map +1 -1
  7. package/dist/cjs/src/storage/__test/StorageDownloader.test.js +27 -0
  8. package/dist/cjs/src/storage/__test/StorageDownloader.test.js.map +1 -1
  9. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  10. package/dist/esm/src/overlay-tools/LookupResolver.js +1 -1
  11. package/dist/esm/src/storage/StorageDownloader.js +5 -0
  12. package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
  13. package/dist/esm/src/storage/StorageUploader.js +8 -4
  14. package/dist/esm/src/storage/StorageUploader.js.map +1 -1
  15. package/dist/esm/src/storage/__test/StorageDownloader.test.js +27 -0
  16. package/dist/esm/src/storage/__test/StorageDownloader.test.js.map +1 -1
  17. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  18. package/dist/types/src/storage/StorageDownloader.d.ts.map +1 -1
  19. package/dist/types/src/storage/StorageUploader.d.ts.map +1 -1
  20. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  21. package/dist/umd/bundle.js +1 -1
  22. package/docs/storage.md +4 -4
  23. package/package.json +1 -1
  24. package/src/overlay-tools/LookupResolver.ts +1 -1
  25. package/src/overlay-tools/__tests/LookupResolver.test.ts +16 -16
  26. package/src/storage/StorageDownloader.ts +7 -0
  27. package/src/storage/StorageUploader.ts +11 -4
  28. package/src/storage/__test/StorageDownloader.test.ts +35 -1
  29. package/dist/cjs/src/auth/__tests/Peer.test.js +0 -446
  30. package/dist/cjs/src/auth/__tests/Peer.test.js.map +0 -1
  31. package/dist/cjs/src/auth/__tests/SessionManager.test.js +0 -69
  32. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +0 -1
  33. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +0 -182
  34. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  35. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  36. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  37. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  38. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  39. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +0 -101
  40. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  41. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  42. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  43. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  44. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  45. package/dist/cjs/src/auth/utils/certificateHelpers.js +0 -51
  46. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +0 -1
  47. package/dist/cjs/src/compat/__tests/BSM.test.js +0 -69
  48. package/dist/cjs/src/compat/__tests/BSM.test.js.map +0 -1
  49. package/dist/cjs/src/compat/__tests/ECIES.test.js +0 -115
  50. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +0 -1
  51. package/dist/cjs/src/compat/__tests/HD.test.js +0 -336
  52. package/dist/cjs/src/compat/__tests/HD.test.js.map +0 -1
  53. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +0 -150
  54. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +0 -1
  55. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +0 -175
  56. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  57. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +0 -57
  58. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  59. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +0 -52
  60. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +0 -1
  61. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  62. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  63. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  64. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  65. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  66. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  67. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +0 -248
  68. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +0 -1
  69. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  70. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  71. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  72. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  73. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  74. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  75. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  76. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  77. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  78. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  79. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  80. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  81. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  82. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  83. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  84. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  85. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  86. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  87. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +0 -145
  88. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  89. package/dist/cjs/src/primitives/__tests/DRBG.test.js +0 -22
  90. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +0 -1
  91. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +0 -170
  92. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  93. package/dist/cjs/src/primitives/__tests/ECDH.test.js +0 -34
  94. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +0 -1
  95. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +0 -89
  96. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +0 -1
  97. package/dist/cjs/src/primitives/__tests/HMAC.test.js +0 -60
  98. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +0 -1
  99. package/dist/cjs/src/primitives/__tests/Hash.test.js +0 -159
  100. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +0 -1
  101. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  102. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  103. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  104. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  105. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +0 -90
  106. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  107. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +0 -83
  108. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +0 -1
  109. package/dist/cjs/src/primitives/__tests/Random.test.js +0 -19
  110. package/dist/cjs/src/primitives/__tests/Random.test.js.map +0 -1
  111. package/dist/cjs/src/primitives/__tests/Reader.test.js +0 -282
  112. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +0 -1
  113. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +0 -224
  114. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  115. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +0 -213
  116. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +0 -1
  117. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +0 -51
  118. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  119. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  120. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  121. package/dist/cjs/src/primitives/__tests/Writer.test.js +0 -176
  122. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +0 -1
  123. package/dist/cjs/src/primitives/__tests/bug-31.test.js +0 -32
  124. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +0 -1
  125. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +0 -3506
  126. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +0 -1
  127. package/dist/cjs/src/primitives/__tests/utils.test.js +0 -110
  128. package/dist/cjs/src/primitives/__tests/utils.test.js.map +0 -1
  129. package/dist/cjs/src/script/__tests/Script.test.js +0 -347
  130. package/dist/cjs/src/script/__tests/Script.test.js.map +0 -1
  131. package/dist/cjs/src/script/__tests/Spend.test.js +0 -282
  132. package/dist/cjs/src/script/__tests/Spend.test.js.map +0 -1
  133. package/dist/cjs/src/script/__tests/SpendComplex.test.js +0 -52
  134. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +0 -1
  135. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +0 -2370
  136. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +0 -1
  137. package/dist/cjs/src/script/__tests/script.valid.vectors.js +0 -1181
  138. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +0 -1
  139. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +0 -2298
  140. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +0 -1
  141. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +0 -161
  142. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  143. package/dist/cjs/src/totp/__tests/totp.test.js +0 -67
  144. package/dist/cjs/src/totp/__tests/totp.test.js.map +0 -1
  145. package/dist/cjs/src/transaction/__tests/Beef.test.js +0 -393
  146. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +0 -1
  147. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +0 -209
  148. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +0 -1
  149. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  150. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  151. package/dist/cjs/src/transaction/__tests/Transaction.test.js +0 -1073
  152. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +0 -1
  153. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +0 -7
  154. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  155. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  156. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  157. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +0 -7
  158. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  159. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  160. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  161. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +0 -296
  162. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  163. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  164. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  165. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  166. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  167. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  168. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  169. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js +0 -39
  170. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  171. package/dist/cjs/src/wallet/WalletSigner.js +0 -260
  172. package/dist/cjs/src/wallet/WalletSigner.js.map +0 -1
  173. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  174. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  175. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +0 -114
  176. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  177. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +0 -475
  178. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  179. package/dist/cjs/src/wallet/createActionSdk.js +0 -230
  180. package/dist/cjs/src/wallet/createActionSdk.js.map +0 -1
  181. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  182. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  183. package/dist/cjs/src/wallet/sdk/CertOps.js +0 -181
  184. package/dist/cjs/src/wallet/sdk/CertOps.js.map +0 -1
  185. package/dist/cjs/src/wallet/sdk/Certificate.js +0 -162
  186. package/dist/cjs/src/wallet/sdk/Certificate.js.map +0 -1
  187. package/dist/cjs/src/wallet/sdk/KeyDeriver.js +0 -176
  188. package/dist/cjs/src/wallet/sdk/KeyDeriver.js.map +0 -1
  189. package/dist/cjs/src/wallet/sdk/ProtoWallet.js +0 -75
  190. package/dist/cjs/src/wallet/sdk/ProtoWallet.js.map +0 -1
  191. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js +0 -3
  192. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  193. package/dist/cjs/src/wallet/sdk/WERR_errors.js +0 -107
  194. package/dist/cjs/src/wallet/sdk/WERR_errors.js.map +0 -1
  195. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js +0 -3
  196. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  197. package/dist/cjs/src/wallet/sdk/WalletCrypto.js +0 -171
  198. package/dist/cjs/src/wallet/sdk/WalletCrypto.js.map +0 -1
  199. package/dist/cjs/src/wallet/sdk/WalletError.js +0 -103
  200. package/dist/cjs/src/wallet/sdk/WalletError.js.map +0 -1
  201. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js +0 -3
  202. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  203. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js +0 -3
  204. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  205. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js +0 -3
  206. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  207. package/dist/cjs/src/wallet/sdk/index.js +0 -31
  208. package/dist/cjs/src/wallet/sdk/index.js.map +0 -1
  209. package/dist/cjs/src/wallet/sdk/types.js +0 -11
  210. package/dist/cjs/src/wallet/sdk/types.js.map +0 -1
  211. package/dist/cjs/src/wallet/sdk/validationHelpers.js +0 -601
  212. package/dist/cjs/src/wallet/sdk/validationHelpers.js.map +0 -1
  213. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  214. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  215. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +0 -579
  216. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  217. package/dist/cjs/src/wallet/utilityHelpers.js +0 -305
  218. package/dist/cjs/src/wallet/utilityHelpers.js.map +0 -1
  219. package/dist/cjs/src/wallet/validationHelpers.js +0 -601
  220. package/dist/cjs/src/wallet/validationHelpers.js.map +0 -1
  221. package/dist/esm/src/auth/__tests/Peer.test.js +0 -448
  222. package/dist/esm/src/auth/__tests/Peer.test.js.map +0 -1
  223. package/dist/esm/src/auth/__tests/SessionManager.test.js +0 -69
  224. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +0 -1
  225. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +0 -182
  226. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  227. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  228. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  229. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  230. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  231. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +0 -101
  232. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  233. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  234. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  235. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  236. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  237. package/dist/esm/src/auth/utils/certificateHelpers.js +0 -47
  238. package/dist/esm/src/auth/utils/certificateHelpers.js.map +0 -1
  239. package/dist/esm/src/compat/__tests/BSM.test.js +0 -69
  240. package/dist/esm/src/compat/__tests/BSM.test.js.map +0 -1
  241. package/dist/esm/src/compat/__tests/ECIES.test.js +0 -115
  242. package/dist/esm/src/compat/__tests/ECIES.test.js.map +0 -1
  243. package/dist/esm/src/compat/__tests/HD.test.js +0 -336
  244. package/dist/esm/src/compat/__tests/HD.test.js.map +0 -1
  245. package/dist/esm/src/compat/__tests/Mnemonic.test.js +0 -150
  246. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +0 -1
  247. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +0 -175
  248. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  249. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +0 -57
  250. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  251. package/dist/esm/src/messages/__tests/SignedMessage.test.js +0 -52
  252. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +0 -1
  253. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  254. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  255. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  256. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  257. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  258. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  259. package/dist/esm/src/primitives/__tests/AESGCM.test.js +0 -248
  260. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +0 -1
  261. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  262. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  263. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  264. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  265. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  266. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  267. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  268. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  269. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  270. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  271. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  272. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  273. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  274. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  275. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  276. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  277. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  278. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  279. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +0 -145
  280. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  281. package/dist/esm/src/primitives/__tests/DRBG.test.js +0 -22
  282. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +0 -1
  283. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +0 -170
  284. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  285. package/dist/esm/src/primitives/__tests/ECDH.test.js +0 -34
  286. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +0 -1
  287. package/dist/esm/src/primitives/__tests/ECDSA.test.js +0 -89
  288. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +0 -1
  289. package/dist/esm/src/primitives/__tests/HMAC.test.js +0 -60
  290. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +0 -1
  291. package/dist/esm/src/primitives/__tests/Hash.test.js +0 -159
  292. package/dist/esm/src/primitives/__tests/Hash.test.js.map +0 -1
  293. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  294. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  295. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  296. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  297. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +0 -90
  298. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  299. package/dist/esm/src/primitives/__tests/PublicKey.test.js +0 -83
  300. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +0 -1
  301. package/dist/esm/src/primitives/__tests/Random.test.js +0 -19
  302. package/dist/esm/src/primitives/__tests/Random.test.js.map +0 -1
  303. package/dist/esm/src/primitives/__tests/Reader.test.js +0 -282
  304. package/dist/esm/src/primitives/__tests/Reader.test.js.map +0 -1
  305. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +0 -223
  306. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  307. package/dist/esm/src/primitives/__tests/Schnorr.test.js +0 -213
  308. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +0 -1
  309. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +0 -51
  310. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  311. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  312. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  313. package/dist/esm/src/primitives/__tests/Writer.test.js +0 -176
  314. package/dist/esm/src/primitives/__tests/Writer.test.js.map +0 -1
  315. package/dist/esm/src/primitives/__tests/bug-31.test.js +0 -32
  316. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +0 -1
  317. package/dist/esm/src/primitives/__tests/sighash.vectors.js +0 -3506
  318. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +0 -1
  319. package/dist/esm/src/primitives/__tests/utils.test.js +0 -110
  320. package/dist/esm/src/primitives/__tests/utils.test.js.map +0 -1
  321. package/dist/esm/src/script/__tests/Script.test.js +0 -347
  322. package/dist/esm/src/script/__tests/Script.test.js.map +0 -1
  323. package/dist/esm/src/script/__tests/Spend.test.js +0 -282
  324. package/dist/esm/src/script/__tests/Spend.test.js.map +0 -1
  325. package/dist/esm/src/script/__tests/SpendComplex.test.js +0 -51
  326. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +0 -1
  327. package/dist/esm/src/script/__tests/script.invalid.vectors.js +0 -2370
  328. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +0 -1
  329. package/dist/esm/src/script/__tests/script.valid.vectors.js +0 -1181
  330. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +0 -1
  331. package/dist/esm/src/script/__tests/spend.valid.vectors.js +0 -2298
  332. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +0 -1
  333. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +0 -161
  334. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  335. package/dist/esm/src/totp/__tests/totp.test.js +0 -67
  336. package/dist/esm/src/totp/__tests/totp.test.js.map +0 -1
  337. package/dist/esm/src/transaction/__tests/Beef.test.js +0 -393
  338. package/dist/esm/src/transaction/__tests/Beef.test.js.map +0 -1
  339. package/dist/esm/src/transaction/__tests/MerklePath.test.js +0 -209
  340. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +0 -1
  341. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  342. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  343. package/dist/esm/src/transaction/__tests/Transaction.test.js +0 -1072
  344. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +0 -1
  345. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +0 -7
  346. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  347. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  348. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  349. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +0 -7
  350. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  351. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  352. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  353. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +0 -296
  354. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  355. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  356. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  357. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  358. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  359. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  360. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  361. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js +0 -37
  362. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  363. package/dist/esm/src/wallet/WalletSigner.js +0 -263
  364. package/dist/esm/src/wallet/WalletSigner.js.map +0 -1
  365. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  366. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  367. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +0 -113
  368. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  369. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +0 -475
  370. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  371. package/dist/esm/src/wallet/createActionSdk.js +0 -223
  372. package/dist/esm/src/wallet/createActionSdk.js.map +0 -1
  373. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  374. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  375. package/dist/esm/src/wallet/sdk/CertOps.js +0 -181
  376. package/dist/esm/src/wallet/sdk/CertOps.js.map +0 -1
  377. package/dist/esm/src/wallet/sdk/Certificate.js +0 -186
  378. package/dist/esm/src/wallet/sdk/Certificate.js.map +0 -1
  379. package/dist/esm/src/wallet/sdk/KeyDeriver.js +0 -174
  380. package/dist/esm/src/wallet/sdk/KeyDeriver.js.map +0 -1
  381. package/dist/esm/src/wallet/sdk/ProtoWallet.js +0 -71
  382. package/dist/esm/src/wallet/sdk/ProtoWallet.js.map +0 -1
  383. package/dist/esm/src/wallet/sdk/StorageSyncReader.js +0 -2
  384. package/dist/esm/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  385. package/dist/esm/src/wallet/sdk/WERR_errors.js +0 -99
  386. package/dist/esm/src/wallet/sdk/WERR_errors.js.map +0 -1
  387. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js +0 -2
  388. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  389. package/dist/esm/src/wallet/sdk/WalletCrypto.js +0 -168
  390. package/dist/esm/src/wallet/sdk/WalletCrypto.js.map +0 -1
  391. package/dist/esm/src/wallet/sdk/WalletError.js +0 -100
  392. package/dist/esm/src/wallet/sdk/WalletError.js.map +0 -1
  393. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js +0 -2
  394. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  395. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js +0 -2
  396. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  397. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js +0 -2
  398. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  399. package/dist/esm/src/wallet/sdk/index.js +0 -15
  400. package/dist/esm/src/wallet/sdk/index.js.map +0 -1
  401. package/dist/esm/src/wallet/sdk/types.js +0 -8
  402. package/dist/esm/src/wallet/sdk/types.js.map +0 -1
  403. package/dist/esm/src/wallet/sdk/validationHelpers.js +0 -566
  404. package/dist/esm/src/wallet/sdk/validationHelpers.js.map +0 -1
  405. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  406. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  407. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +0 -579
  408. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  409. package/dist/esm/src/wallet/utilityHelpers.js +0 -275
  410. package/dist/esm/src/wallet/utilityHelpers.js.map +0 -1
  411. package/dist/esm/src/wallet/validationHelpers.js +0 -566
  412. package/dist/esm/src/wallet/validationHelpers.js.map +0 -1
  413. package/dist/types/src/auth/__tests/Peer.test.d.ts +0 -2
  414. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +0 -1
  415. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +0 -2
  416. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +0 -1
  417. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +0 -2
  418. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +0 -1
  419. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +0 -2
  420. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +0 -1
  421. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +0 -2
  422. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +0 -1
  423. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +0 -2
  424. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +0 -1
  425. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +0 -2
  426. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +0 -1
  427. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +0 -2
  428. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +0 -1
  429. package/dist/types/src/auth/utils/certificateHelpers.d.ts +0 -26
  430. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +0 -1
  431. package/dist/types/src/compat/__tests/BSM.test.d.ts +0 -2
  432. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +0 -1
  433. package/dist/types/src/compat/__tests/ECIES.test.d.ts +0 -2
  434. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +0 -1
  435. package/dist/types/src/compat/__tests/HD.test.d.ts +0 -2
  436. package/dist/types/src/compat/__tests/HD.test.d.ts.map +0 -1
  437. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +0 -2
  438. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +0 -1
  439. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +0 -11
  440. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +0 -1
  441. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +0 -2
  442. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +0 -1
  443. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +0 -2
  444. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +0 -1
  445. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +0 -2
  446. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +0 -1
  447. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +0 -2
  448. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +0 -1
  449. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +0 -2
  450. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +0 -1
  451. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +0 -2
  452. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +0 -1
  453. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +0 -8
  454. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +0 -1
  455. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +0 -8
  456. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +0 -1
  457. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +0 -2
  458. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +0 -1
  459. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +0 -2
  460. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +0 -1
  461. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +0 -2
  462. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +0 -1
  463. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +0 -2
  464. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +0 -1
  465. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +0 -15
  466. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +0 -1
  467. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +0 -2
  468. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +0 -1
  469. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +0 -2
  470. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +0 -1
  471. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +0 -2
  472. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +0 -1
  473. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +0 -2
  474. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +0 -1
  475. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +0 -10
  476. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +0 -1
  477. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +0 -2
  478. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +0 -1
  479. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +0 -2
  480. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +0 -1
  481. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +0 -2
  482. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +0 -1
  483. package/dist/types/src/primitives/__tests/Hash.test.d.ts +0 -2
  484. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +0 -1
  485. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +0 -68
  486. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +0 -1
  487. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +0 -2
  488. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +0 -1
  489. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +0 -2
  490. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +0 -1
  491. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +0 -2
  492. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +0 -1
  493. package/dist/types/src/primitives/__tests/Random.test.d.ts +0 -2
  494. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +0 -1
  495. package/dist/types/src/primitives/__tests/Reader.test.d.ts +0 -2
  496. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +0 -1
  497. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +0 -2
  498. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +0 -1
  499. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +0 -2
  500. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +0 -1
  501. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +0 -2
  502. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +0 -1
  503. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +0 -20
  504. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +0 -1
  505. package/dist/types/src/primitives/__tests/Writer.test.d.ts +0 -2
  506. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +0 -1
  507. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +0 -2
  508. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +0 -1
  509. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +0 -3
  510. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +0 -1
  511. package/dist/types/src/primitives/__tests/utils.test.d.ts +0 -2
  512. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +0 -1
  513. package/dist/types/src/script/__tests/Script.test.d.ts +0 -2
  514. package/dist/types/src/script/__tests/Script.test.d.ts.map +0 -1
  515. package/dist/types/src/script/__tests/Spend.test.d.ts +0 -2
  516. package/dist/types/src/script/__tests/Spend.test.d.ts.map +0 -1
  517. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +0 -2
  518. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +0 -1
  519. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +0 -3
  520. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +0 -1
  521. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +0 -3
  522. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +0 -1
  523. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +0 -3
  524. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +0 -1
  525. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +0 -2
  526. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +0 -1
  527. package/dist/types/src/totp/__tests/totp.test.d.ts +0 -2
  528. package/dist/types/src/totp/__tests/totp.test.d.ts.map +0 -1
  529. package/dist/types/src/transaction/__tests/Beef.test.d.ts +0 -2
  530. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +0 -1
  531. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +0 -2
  532. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +0 -1
  533. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +0 -2
  534. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +0 -1
  535. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +0 -2
  536. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +0 -1
  537. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +0 -6
  538. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +0 -1
  539. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +0 -6
  540. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +0 -1
  541. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +0 -5
  542. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +0 -1
  543. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +0 -3
  544. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +0 -1
  545. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +0 -3
  546. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +0 -1
  547. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +0 -2
  548. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +0 -1
  549. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +0 -2
  550. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +0 -1
  551. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +0 -2
  552. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +0 -1
  553. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts +0 -25
  554. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts.map +0 -1
  555. package/dist/types/src/wallet/WalletSigner.d.ts +0 -110
  556. package/dist/types/src/wallet/WalletSigner.d.ts.map +0 -1
  557. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +0 -2
  558. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +0 -1
  559. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +0 -2
  560. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +0 -1
  561. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +0 -2
  562. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +0 -1
  563. package/dist/types/src/wallet/createActionSdk.d.ts +0 -8
  564. package/dist/types/src/wallet/createActionSdk.d.ts.map +0 -1
  565. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts +0 -94
  566. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts.map +0 -1
  567. package/dist/types/src/wallet/sdk/CertOps.d.ts +0 -63
  568. package/dist/types/src/wallet/sdk/CertOps.d.ts.map +0 -1
  569. package/dist/types/src/wallet/sdk/Certificate.d.ts +0 -77
  570. package/dist/types/src/wallet/sdk/Certificate.d.ts.map +0 -1
  571. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts +0 -128
  572. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts.map +0 -1
  573. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts +0 -30
  574. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts.map +0 -1
  575. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts +0 -102
  576. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts.map +0 -1
  577. package/dist/types/src/wallet/sdk/WERR_errors.d.ts +0 -84
  578. package/dist/types/src/wallet/sdk/WERR_errors.d.ts.map +0 -1
  579. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts +0 -1036
  580. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts.map +0 -1
  581. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts +0 -31
  582. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts.map +0 -1
  583. package/dist/types/src/wallet/sdk/WalletError.d.ts +0 -46
  584. package/dist/types/src/wallet/sdk/WalletError.d.ts.map +0 -1
  585. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts +0 -293
  586. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts.map +0 -1
  587. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts +0 -48
  588. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts.map +0 -1
  589. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts +0 -296
  590. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts.map +0 -1
  591. package/dist/types/src/wallet/sdk/index.d.ts +0 -15
  592. package/dist/types/src/wallet/sdk/index.d.ts.map +0 -1
  593. package/dist/types/src/wallet/sdk/types.d.ts +0 -56
  594. package/dist/types/src/wallet/sdk/types.d.ts.map +0 -1
  595. package/dist/types/src/wallet/sdk/validationHelpers.d.ts +0 -301
  596. package/dist/types/src/wallet/sdk/validationHelpers.d.ts.map +0 -1
  597. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +0 -2
  598. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +0 -1
  599. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +0 -5
  600. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +0 -1
  601. package/dist/types/src/wallet/utilityHelpers.d.ts +0 -142
  602. package/dist/types/src/wallet/utilityHelpers.d.ts.map +0 -1
  603. package/dist/types/src/wallet/validationHelpers.d.ts +0 -301
  604. package/dist/types/src/wallet/validationHelpers.d.ts.map +0 -1
@@ -1,1962 +0,0 @@
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 CompletedProtoWallet_1 = require("../../../auth/certificates/__tests/CompletedProtoWallet");
7
- const index_1 = require("../../../primitives/index");
8
- const WalletWireTransceiver_1 = __importDefault(require("../../../wallet/substrates/WalletWireTransceiver"));
9
- const WalletWireProcessor_1 = __importDefault(require("../../../wallet/substrates/WalletWireProcessor"));
10
- const sampleData = [3, 1, 4, 1, 5, 9];
11
- describe('WalletWire Integration Tests', () => {
12
- /**
13
- * This is a copy of the test suite for CompletedProtoWallet, but instead of using a CompletedProtoWallet directly, we're using it over the WalletWire.
14
- * This serves as an imperfect but still useful way to ensure that the WalletWire doesn't contain serialization or deserialization issues.
15
- */
16
- describe('ProtoWallet Over Wallet Wire', () => {
17
- it('Throws when functions are not supported', async () => {
18
- const wallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet('anyone')));
19
- await expect(() => {
20
- return wallet.createAction();
21
- }).rejects.toThrow();
22
- await expect(() => {
23
- return wallet.abortAction();
24
- }).rejects.toThrow();
25
- await expect(() => {
26
- return wallet.signAction();
27
- }).rejects.toThrow();
28
- await expect(() => {
29
- return wallet.listOutputs();
30
- }).rejects.toThrow();
31
- await expect(() => {
32
- return wallet.relinquishOutput();
33
- }).rejects.toThrow();
34
- await expect(() => {
35
- return wallet.listActions();
36
- }).rejects.toThrow();
37
- await expect(() => {
38
- return wallet.internalizeAction();
39
- }).rejects.toThrow();
40
- await expect(() => {
41
- return wallet.acquireCertificate();
42
- }).rejects.toThrow();
43
- await expect(() => {
44
- return wallet.proveCertificate();
45
- }).rejects.toThrow();
46
- await expect(() => {
47
- return wallet.listCertificates();
48
- }).rejects.toThrow();
49
- await expect(() => {
50
- return wallet.relinquishCertificate();
51
- }).rejects.toThrow();
52
- await expect(() => {
53
- return wallet.getHeight();
54
- }).rejects.toThrow();
55
- await expect(() => {
56
- return wallet.getHeaderForHeight();
57
- }).rejects.toThrow();
58
- // TODO: Remove these two from the throw list once they are implemented.
59
- await expect(() => {
60
- return wallet.discoverByIdentityKey();
61
- }).rejects.toThrow();
62
- await expect(() => {
63
- return wallet.discoverByAttributes();
64
- }).rejects.toThrow();
65
- });
66
- it('Validates the BRC-3 compliance vector', async () => {
67
- const wallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet('anyone')));
68
- const { valid } = await wallet.verifySignature({
69
- data: index_1.Utils.toArray('BRC-3 Compliance Validated!', 'utf8'),
70
- signature: [
71
- 48, 68, 2, 32, 43, 34, 58, 156, 219, 32, 50, 70, 29, 240, 155, 137,
72
- 88, 60, 200, 95, 243, 198, 201, 21, 56, 82, 141, 112, 69, 196, 170,
73
- 73, 156, 6, 44, 48, 2, 32, 118, 125, 254, 201, 44, 87, 177, 170, 93,
74
- 11, 193, 134, 18, 70, 9, 31, 234, 27, 170, 177, 54, 96, 181, 140, 166,
75
- 196, 144, 14, 230, 118, 106, 105
76
- ],
77
- protocolID: [2, 'BRC3 Test'],
78
- keyID: '42',
79
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
80
- });
81
- expect(valid).toBe(true);
82
- });
83
- it('Validates the BRC-2 HMAC compliance vector', async () => {
84
- const wallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(new index_1.PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex'))));
85
- const { valid } = await wallet.verifyHmac({
86
- data: index_1.Utils.toArray('BRC-2 HMAC Compliance Validated!', 'utf8'),
87
- hmac: [
88
- 81, 240, 18, 153, 163, 45, 174, 85, 9, 246, 142, 125, 209, 133, 82,
89
- 76, 254, 103, 46, 182, 86, 59, 219, 61, 126, 30, 176, 232, 233, 100,
90
- 234, 14
91
- ],
92
- protocolID: [2, 'BRC2 Test'],
93
- keyID: '42',
94
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
95
- });
96
- expect(valid).toBe(true);
97
- });
98
- it('Validates the BRC-2 Encryption compliance vector', async () => {
99
- const wallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(new index_1.PrivateKey('6a2991c9de20e38b31d7ea147bf55f5039e4bbc073160f5e0d541d1f17e321b8', 'hex'))));
100
- const { plaintext } = await wallet.decrypt({
101
- ciphertext: [
102
- 252, 203, 216, 184, 29, 161, 223, 212, 16, 193, 94, 99, 31, 140, 99,
103
- 43, 61, 236, 184, 67, 54, 105, 199, 47, 11, 19, 184, 127, 2, 165, 125,
104
- 9, 188, 195, 196, 39, 120, 130, 213, 95, 186, 89, 64, 28, 1, 80, 20,
105
- 213, 159, 133, 98, 253, 128, 105, 113, 247, 197, 152, 236, 64, 166,
106
- 207, 113, 134, 65, 38, 58, 24, 127, 145, 140, 206, 47, 70, 146, 84,
107
- 186, 72, 95, 35, 154, 112, 178, 55, 72, 124
108
- ],
109
- protocolID: [2, 'BRC2 Test'],
110
- keyID: '42',
111
- counterparty: '0294c479f762f6baa97fbcd4393564c1d7bd8336ebd15928135bbcf575cd1a71a1'
112
- });
113
- expect(index_1.Utils.toUTF8(plaintext)).toEqual('BRC-2 Encryption Compliance Validated!');
114
- });
115
- it('Encrypts messages decryptable by the counterparty', async () => {
116
- const userKey = index_1.PrivateKey.fromRandom();
117
- const counterpartyKey = index_1.PrivateKey.fromRandom();
118
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
119
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
120
- const { ciphertext } = await user.encrypt({
121
- plaintext: sampleData,
122
- protocolID: [2, 'tests'],
123
- keyID: '4',
124
- counterparty: counterpartyKey.toPublicKey().toString()
125
- });
126
- const { plaintext } = await counterparty.decrypt({
127
- ciphertext,
128
- protocolID: [2, 'tests'],
129
- keyID: '4',
130
- counterparty: userKey.toPublicKey().toString()
131
- });
132
- expect(plaintext).toEqual(sampleData);
133
- expect(ciphertext).not.toEqual(plaintext);
134
- });
135
- it('Fails to decryupt messages for the wrong protocol, key, and counterparty', async () => {
136
- const userKey = index_1.PrivateKey.fromRandom();
137
- const counterpartyKey = index_1.PrivateKey.fromRandom();
138
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
139
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
140
- const { ciphertext } = await user.encrypt({
141
- plaintext: sampleData,
142
- protocolID: [2, 'tests'],
143
- keyID: '4',
144
- counterparty: counterpartyKey.toPublicKey().toString()
145
- });
146
- await expect(async () => await counterparty.decrypt({
147
- ciphertext,
148
- protocolID: [1, 'tests'],
149
- keyID: '4',
150
- counterparty: userKey.toPublicKey().toString()
151
- })).rejects.toThrow();
152
- await expect(async () => await counterparty.decrypt({
153
- ciphertext,
154
- protocolID: [2, 'tests'],
155
- keyID: '5',
156
- counterparty: userKey.toPublicKey().toString()
157
- })).rejects.toThrow();
158
- await expect(async () => await counterparty.decrypt({
159
- ciphertext,
160
- protocolID: [2, 'tests'],
161
- keyID: '4',
162
- counterparty: counterpartyKey.toPublicKey().toString()
163
- })).rejects.toThrow();
164
- });
165
- it('Correctly derives keys for a counterparty', async () => {
166
- const userKey = index_1.PrivateKey.fromRandom();
167
- const counterpartyKey = index_1.PrivateKey.fromRandom();
168
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
169
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
170
- const { publicKey: identityKey } = await user.getPublicKey({
171
- identityKey: true
172
- });
173
- expect(identityKey).toEqual(userKey.toPublicKey().toString());
174
- const { publicKey: derivedForCounterparty } = await user.getPublicKey({
175
- protocolID: [2, 'tests'],
176
- keyID: '4',
177
- counterparty: counterpartyKey.toPublicKey().toString()
178
- });
179
- const { publicKey: derivedByCounterparty } = await counterparty.getPublicKey({
180
- protocolID: [2, 'tests'],
181
- keyID: '4',
182
- counterparty: userKey.toPublicKey().toString(),
183
- forSelf: true
184
- });
185
- expect(derivedForCounterparty).toEqual(derivedByCounterparty);
186
- });
187
- it('Signs messages verifiable by the counterparty', async () => {
188
- const userKey = index_1.PrivateKey.fromRandom();
189
- const counterpartyKey = index_1.PrivateKey.fromRandom();
190
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
191
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
192
- const { signature } = await user.createSignature({
193
- data: sampleData,
194
- protocolID: [2, 'tests'],
195
- keyID: '4',
196
- counterparty: counterpartyKey.toPublicKey().toString()
197
- });
198
- const { valid } = await counterparty.verifySignature({
199
- signature,
200
- data: sampleData,
201
- protocolID: [2, 'tests'],
202
- keyID: '4',
203
- counterparty: userKey.toPublicKey().toString()
204
- });
205
- expect(valid).toEqual(true);
206
- expect(signature.length).not.toEqual(0);
207
- });
208
- it('Directly signs hash of message verifiable by the counterparty', async () => {
209
- const userKey = index_1.PrivateKey.fromRandom();
210
- const counterpartyKey = index_1.PrivateKey.fromRandom();
211
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
212
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
213
- const { signature } = await user.createSignature({
214
- hashToDirectlySign: index_1.Hash.sha256(sampleData),
215
- protocolID: [2, 'tests'],
216
- keyID: '4',
217
- counterparty: counterpartyKey.toPublicKey().toString()
218
- });
219
- const { valid } = await counterparty.verifySignature({
220
- signature,
221
- data: sampleData,
222
- protocolID: [2, 'tests'],
223
- keyID: '4',
224
- counterparty: userKey.toPublicKey().toString()
225
- });
226
- expect(valid).toEqual(true);
227
- const { valid: hashValid } = await counterparty.verifySignature({
228
- signature,
229
- hashToDirectlyVerify: index_1.Hash.sha256(sampleData),
230
- protocolID: [2, 'tests'],
231
- keyID: '4',
232
- counterparty: userKey.toPublicKey().toString()
233
- });
234
- expect(hashValid).toEqual(true);
235
- expect(signature.length).not.toEqual(0);
236
- });
237
- it('Fails to verify signature for the wrong data, protocol, key, and counterparty', async () => {
238
- const userKey = index_1.PrivateKey.fromRandom();
239
- const counterpartyKey = index_1.PrivateKey.fromRandom();
240
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
241
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
242
- const { signature } = await user.createSignature({
243
- data: sampleData,
244
- protocolID: [2, 'tests'],
245
- keyID: '4',
246
- counterparty: counterpartyKey.toPublicKey().toString()
247
- });
248
- await expect(async () => await counterparty.verifySignature({
249
- signature,
250
- data: [0, ...sampleData],
251
- protocolID: [2, 'tests'],
252
- keyID: '4',
253
- counterparty: userKey.toPublicKey().toString()
254
- })).rejects.toThrow();
255
- await expect(async () => await counterparty.verifySignature({
256
- signature,
257
- data: sampleData,
258
- protocolID: [2, 'wrong'],
259
- keyID: '4',
260
- counterparty: userKey.toPublicKey().toString()
261
- })).rejects.toThrow();
262
- await expect(async () => await counterparty.verifySignature({
263
- signature,
264
- data: sampleData,
265
- protocolID: [2, 'tests'],
266
- keyID: '2',
267
- counterparty: userKey.toPublicKey().toString()
268
- })).rejects.toThrow();
269
- await expect(async () => await counterparty.verifySignature({
270
- signature,
271
- data: sampleData,
272
- protocolID: [2, 'tests'],
273
- keyID: '4',
274
- counterparty: counterpartyKey.toPublicKey().toString()
275
- })).rejects.toThrow();
276
- });
277
- it('Computes HMAC over messages verifiable by the counterparty', async () => {
278
- const userKey = index_1.PrivateKey.fromRandom();
279
- const counterpartyKey = index_1.PrivateKey.fromRandom();
280
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
281
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
282
- const { hmac } = await user.createHmac({
283
- data: sampleData,
284
- protocolID: [2, 'tests'],
285
- keyID: '4',
286
- counterparty: counterpartyKey.toPublicKey().toString()
287
- });
288
- const { valid } = await counterparty.verifyHmac({
289
- hmac,
290
- data: sampleData,
291
- protocolID: [2, 'tests'],
292
- keyID: '4',
293
- counterparty: userKey.toPublicKey().toString()
294
- });
295
- expect(valid).toEqual(true);
296
- expect(hmac.length).toEqual(32);
297
- });
298
- it('Fails to verify HMAC for the wrong data, protocol, key, and counterparty', async () => {
299
- const userKey = index_1.PrivateKey.fromRandom();
300
- const counterpartyKey = index_1.PrivateKey.fromRandom();
301
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
302
- const counterparty = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey)));
303
- const { hmac } = await user.createHmac({
304
- data: sampleData,
305
- protocolID: [2, 'tests'],
306
- keyID: '4',
307
- counterparty: counterpartyKey.toPublicKey().toString()
308
- });
309
- await expect(async () => await counterparty.verifyHmac({
310
- hmac,
311
- data: [0, ...sampleData],
312
- protocolID: [2, 'tests'],
313
- keyID: '4',
314
- counterparty: userKey.toPublicKey().toString()
315
- })).rejects.toThrow();
316
- await expect(async () => await counterparty.verifyHmac({
317
- hmac,
318
- data: sampleData,
319
- protocolID: [2, 'wrong'],
320
- keyID: '4',
321
- counterparty: userKey.toPublicKey().toString()
322
- })).rejects.toThrow();
323
- await expect(async () => await counterparty.verifyHmac({
324
- hmac,
325
- data: sampleData,
326
- protocolID: [2, 'tests'],
327
- keyID: '2',
328
- counterparty: userKey.toPublicKey().toString()
329
- })).rejects.toThrow();
330
- await expect(async () => await counterparty.verifyHmac({
331
- hmac,
332
- data: sampleData,
333
- protocolID: [2, 'tests'],
334
- keyID: '4',
335
- counterparty: counterpartyKey.toPublicKey().toString()
336
- })).rejects.toThrow();
337
- });
338
- it('Uses anyone for creating signatures and self for other operations if no counterparty is provided', async () => {
339
- const userKey = index_1.PrivateKey.fromRandom();
340
- const user = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(userKey)));
341
- const { hmac } = await user.createHmac({
342
- data: sampleData,
343
- protocolID: [2, 'tests'],
344
- keyID: '4'
345
- });
346
- const { valid: hmacValid } = await user.verifyHmac({
347
- hmac,
348
- data: sampleData,
349
- protocolID: [2, 'tests'],
350
- keyID: '4'
351
- });
352
- expect(hmacValid).toEqual(true);
353
- const { valid: explicitSelfHmacValid } = await user.verifyHmac({
354
- hmac,
355
- data: sampleData,
356
- protocolID: [2, 'tests'],
357
- keyID: '4',
358
- counterparty: 'self'
359
- });
360
- expect(explicitSelfHmacValid).toEqual(true);
361
- expect(hmac.length).toEqual(32);
362
- const { signature: anyoneSig } = await user.createSignature({
363
- data: sampleData,
364
- protocolID: [2, 'tests'],
365
- keyID: '4'
366
- // counterparty=anyone is implicit for creating signatures
367
- });
368
- const anyone = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet('anyone')));
369
- const { valid: anyoneSigValid } = await anyone.verifySignature({
370
- signature: anyoneSig,
371
- data: sampleData,
372
- protocolID: [2, 'tests'],
373
- keyID: '4',
374
- counterparty: userKey.toPublicKey().toString()
375
- });
376
- expect(anyoneSigValid).toEqual(true);
377
- const { signature: selfSig } = await user.createSignature({
378
- data: sampleData,
379
- protocolID: [2, 'tests'],
380
- keyID: '4',
381
- counterparty: 'self'
382
- });
383
- const { valid: selfSigValid } = await user.verifySignature({
384
- signature: selfSig,
385
- data: sampleData,
386
- protocolID: [2, 'tests'],
387
- keyID: '4'
388
- // Self is implicit when verifying signatures
389
- });
390
- expect(selfSigValid).toEqual(true);
391
- const { valid: explicitSelfSigValid } = await user.verifySignature({
392
- signature: selfSig,
393
- data: sampleData,
394
- protocolID: [2, 'tests'],
395
- keyID: '4',
396
- counterparty: 'self'
397
- });
398
- expect(explicitSelfSigValid).toEqual(true);
399
- const { publicKey } = await user.getPublicKey({
400
- protocolID: [2, 'tests'],
401
- keyID: '4'
402
- });
403
- const { publicKey: explicitSelfPublicKey } = await user.getPublicKey({
404
- protocolID: [2, 'tests'],
405
- keyID: '4',
406
- counterparty: 'self'
407
- });
408
- expect(publicKey).toEqual(explicitSelfPublicKey);
409
- const { ciphertext } = await user.encrypt({
410
- plaintext: sampleData,
411
- protocolID: [2, 'tests'],
412
- keyID: '4'
413
- });
414
- const { plaintext } = await user.decrypt({
415
- ciphertext,
416
- protocolID: [2, 'tests'],
417
- keyID: '4'
418
- });
419
- const { plaintext: explicitSelfPlaintext } = await user.decrypt({
420
- ciphertext,
421
- protocolID: [2, 'tests'],
422
- keyID: '4',
423
- counterparty: 'self'
424
- });
425
- expect(plaintext).toEqual(explicitSelfPlaintext);
426
- expect(plaintext).toEqual(sampleData);
427
- });
428
- it('Validates the revealCounterpartyKeyLinkage function', async () => {
429
- // Initialize keys
430
- const proverKey = index_1.PrivateKey.fromRandom();
431
- const counterpartyKey = index_1.PrivateKey.fromRandom();
432
- const verifierKey = index_1.PrivateKey.fromRandom();
433
- // Initialize wallets
434
- const proverWallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(proverKey)));
435
- const verifierWallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(verifierKey)));
436
- // Prover reveals counterparty key linkage
437
- const revelation = await proverWallet.revealCounterpartyKeyLinkage({
438
- counterparty: counterpartyKey.toPublicKey().toString(),
439
- verifier: verifierKey.toPublicKey().toString()
440
- });
441
- // Verifier decrypts the encrypted linkage
442
- const { plaintext: linkage } = await verifierWallet.decrypt({
443
- ciphertext: revelation.encryptedLinkage,
444
- protocolID: [2, 'counterparty linkage revelation'],
445
- keyID: revelation.revelationTime,
446
- counterparty: proverKey.toPublicKey().toString()
447
- });
448
- // Compute expected linkage
449
- const expectedLinkage = proverKey
450
- .deriveSharedSecret(counterpartyKey.toPublicKey())
451
- .encode(true);
452
- // Compare linkage and expectedLinkage
453
- expect(linkage).toEqual(expectedLinkage);
454
- });
455
- it('Validates the revealSpecificKeyLinkage function', async () => {
456
- // Initialize keys
457
- const proverKey = index_1.PrivateKey.fromRandom();
458
- const counterpartyKey = index_1.PrivateKey.fromRandom();
459
- const verifierKey = index_1.PrivateKey.fromRandom();
460
- // Initialize wallets
461
- const proverWallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(proverKey)));
462
- const verifierWallet = new WalletWireTransceiver_1.default(new WalletWireProcessor_1.default(new CompletedProtoWallet_1.CompletedProtoWallet(verifierKey)));
463
- const protocolID = [0, 'tests'];
464
- const keyID = 'test key id';
465
- // Prover reveals specific key linkage
466
- const revelation = await proverWallet.revealSpecificKeyLinkage({
467
- counterparty: counterpartyKey.toPublicKey().toString(),
468
- verifier: verifierKey.toPublicKey().toString(),
469
- protocolID,
470
- keyID
471
- });
472
- expect(revelation.encryptedLinkageProof).toBeDefined();
473
- expect(revelation.proofType).toBeDefined();
474
- // Verifier decrypts the encrypted linkage
475
- const { plaintext: linkage } = await verifierWallet.decrypt({
476
- ciphertext: revelation.encryptedLinkage,
477
- protocolID: [
478
- 2,
479
- `specific linkage revelation ${protocolID[0]} ${protocolID[1]}`
480
- ],
481
- keyID,
482
- counterparty: proverKey.toPublicKey().toString()
483
- });
484
- // Compute expected linkage
485
- const sharedSecret = proverKey
486
- .deriveSharedSecret(counterpartyKey.toPublicKey())
487
- .encode(true);
488
- // Function to compute the invoice number
489
- const computeInvoiceNumber = function (protocolID, keyID) {
490
- const securityLevel = protocolID[0];
491
- if (!Number.isInteger(securityLevel) ||
492
- securityLevel < 0 ||
493
- securityLevel > 2) {
494
- throw new Error('Protocol security level must be 0, 1, or 2');
495
- }
496
- const protocolName = protocolID[1].toLowerCase().trim();
497
- if (keyID.length > 800) {
498
- throw new Error('Key IDs must be 800 characters or less');
499
- }
500
- if (keyID.length < 1) {
501
- throw new Error('Key IDs must be 1 character or more');
502
- }
503
- if (protocolName.length > 400) {
504
- throw new Error('Protocol names must be 400 characters or less');
505
- }
506
- if (protocolName.length < 5) {
507
- throw new Error('Protocol names must be 5 characters or more');
508
- }
509
- if (protocolName.includes(' ')) {
510
- throw new Error('Protocol names cannot contain multiple consecutive spaces (" ")');
511
- }
512
- if (!/^[a-z0-9 ]+$/g.test(protocolName)) {
513
- throw new Error('Protocol names can only contain letters, numbers and spaces');
514
- }
515
- if (protocolName.endsWith(' protocol')) {
516
- throw new Error('No need to end your protocol name with " protocol"');
517
- }
518
- return `${securityLevel}-${protocolName}-${keyID}`;
519
- };
520
- const invoiceNumber = computeInvoiceNumber(protocolID, keyID);
521
- const invoiceNumberBin = index_1.Utils.toArray(invoiceNumber, 'utf8');
522
- // Compute expected linkage
523
- const expectedLinkage = index_1.Hash.sha256hmac(sharedSecret, invoiceNumberBin);
524
- // Compare linkage and expectedLinkage
525
- expect(linkage).toEqual(expectedLinkage);
526
- });
527
- });
528
- // Helper function to create a test wallet wire setup
529
- const createTestWalletWire = (wallet) => {
530
- const processor = new WalletWireProcessor_1.default(wallet);
531
- const transceiver = new WalletWireTransceiver_1.default(processor);
532
- return transceiver;
533
- };
534
- // Mock implementation for methods not supported by CompletedProtoWallet
535
- const mockUnsupportedMethods = (methods) => {
536
- return {
537
- ...methods
538
- };
539
- };
540
- describe('createAction', () => {
541
- it('should create an action with valid inputs', async () => {
542
- // Mock the createAction method
543
- const createActionMock = jest.fn().mockResolvedValue({
544
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806',
545
- tx: [1, 2, 3, 4]
546
- });
547
- const wallet = createTestWalletWire(mockUnsupportedMethods({
548
- createAction: createActionMock
549
- }));
550
- const args = {
551
- description: 'Test action description',
552
- outputs: [
553
- {
554
- lockingScript: '00', // Sample locking script
555
- satoshis: 1000,
556
- outputDescription: 'Test output',
557
- basket: 'test-basket',
558
- customInstructions: 'Test instructions',
559
- tags: ['test-tag']
560
- }
561
- ],
562
- labels: ['test-label']
563
- };
564
- const result = await wallet.createAction(args);
565
- expect(result).toHaveProperty('txid');
566
- expect(result).toHaveProperty('tx');
567
- expect(result.tx).toBeInstanceOf(Array);
568
- expect(createActionMock).toHaveBeenCalledWith(args, '');
569
- });
570
- it('should create an action with minimal inputs (only description)', async () => {
571
- // Mock the createAction method
572
- const createActionMock = jest.fn().mockResolvedValue({
573
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806'
574
- });
575
- const wallet = createTestWalletWire(mockUnsupportedMethods({
576
- createAction: createActionMock
577
- }));
578
- const args = {
579
- description: 'Minimal action description'
580
- };
581
- const result = await wallet.createAction(args);
582
- expect(result).toHaveProperty('txid');
583
- expect(result).not.toHaveProperty('tx');
584
- expect(result).not.toHaveProperty('noSendChange');
585
- expect(result).not.toHaveProperty('sendWithResults');
586
- expect(result).not.toHaveProperty('signableTransaction');
587
- expect(createActionMock).toHaveBeenCalledWith(args, '');
588
- });
589
- it('should create an action and return only txid when returnTXIDOnly is true', async () => {
590
- // Mock the createAction method
591
- const createActionMock = jest.fn().mockResolvedValue({
592
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806'
593
- });
594
- const wallet = createTestWalletWire(mockUnsupportedMethods({
595
- createAction: createActionMock
596
- }));
597
- const args = {
598
- description: 'Test action with returnTXIDOnly',
599
- options: {
600
- returnTXIDOnly: true
601
- }
602
- };
603
- const result = await wallet.createAction(args);
604
- expect(result).toHaveProperty('txid');
605
- expect(result).not.toHaveProperty('tx');
606
- expect(result).not.toHaveProperty('noSendChange');
607
- expect(result).not.toHaveProperty('sendWithResults');
608
- expect(result).not.toHaveProperty('signableTransaction');
609
- expect(createActionMock).toHaveBeenCalledWith(args, '');
610
- });
611
- it('should create an action and return a signableTransaction when noSend is true', async () => {
612
- // Mock the createAction method
613
- const createActionMock = jest.fn().mockResolvedValue({
614
- signableTransaction: {
615
- tx: [0x01],
616
- reference: index_1.Utils.toBase64([0x01])
617
- }
618
- });
619
- const wallet = createTestWalletWire(mockUnsupportedMethods({
620
- createAction: createActionMock
621
- }));
622
- const args = {
623
- description: 'Test action with noSend',
624
- options: {
625
- noSend: true
626
- }
627
- };
628
- const result = await wallet.createAction(args);
629
- expect(result).toHaveProperty('signableTransaction');
630
- expect(result.signableTransaction).toHaveProperty('tx');
631
- expect(result.signableTransaction).toHaveProperty('reference');
632
- expect(result).not.toHaveProperty('txid');
633
- expect(result).not.toHaveProperty('tx');
634
- expect(createActionMock).toHaveBeenCalledWith(args, '');
635
- });
636
- it('should create an action with all options set and handle all return values', async () => {
637
- // Mock the createAction method
638
- const createActionMock = jest.fn().mockResolvedValue({
639
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806',
640
- tx: [1, 2, 3, 4],
641
- noSendChange: [
642
- 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0'
643
- ],
644
- sendWithResults: [
645
- {
646
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806',
647
- status: 'sending'
648
- }
649
- ],
650
- signableTransaction: {
651
- tx: [0x01],
652
- reference: index_1.Utils.toBase64([0x01])
653
- }
654
- });
655
- const wallet = createTestWalletWire(mockUnsupportedMethods({
656
- createAction: createActionMock
657
- }));
658
- const args = {
659
- description: 'Test action with all options',
660
- inputs: [],
661
- inputBEEF: [1, 2, 3, 4],
662
- outputs: [
663
- {
664
- lockingScript: '016a',
665
- satoshis: 1,
666
- outputDescription: 'This is a test.'
667
- }
668
- ],
669
- lockTime: 0,
670
- version: 1,
671
- labels: ['label1', 'label2'],
672
- options: {
673
- signAndProcess: false,
674
- acceptDelayedBroadcast: false,
675
- trustSelf: 'known',
676
- knownTxids: [
677
- 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806'
678
- ],
679
- returnTXIDOnly: false,
680
- noSend: true,
681
- noSendChange: [
682
- 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0'
683
- ],
684
- sendWith: [
685
- 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806'
686
- ],
687
- randomizeOutputs: false
688
- }
689
- };
690
- const result = await wallet.createAction(args);
691
- expect(result).toHaveProperty('txid');
692
- expect(result).toHaveProperty('tx');
693
- expect(result).toHaveProperty('noSendChange');
694
- expect(result).toHaveProperty('sendWithResults');
695
- expect(result).toHaveProperty('signableTransaction');
696
- expect(createActionMock).toHaveBeenCalledWith(args, '');
697
- });
698
- it('should throw an error with invalid inputs', async () => {
699
- // Mock the createAction method to throw an error
700
- const createActionMock = jest
701
- .fn()
702
- .mockRejectedValue(new Error('Invalid inputs'));
703
- const wallet = createTestWalletWire(mockUnsupportedMethods({
704
- createAction: createActionMock
705
- }));
706
- const args = {
707
- description: '' // Invalid description (too short)
708
- };
709
- await expect(wallet.createAction(args)).rejects.toThrow('Invalid inputs');
710
- expect(createActionMock).toHaveBeenCalledWith(args, '');
711
- });
712
- });
713
- describe('signAction', () => {
714
- it('should sign an action with valid inputs', async () => {
715
- // Mock the signAction method
716
- const signActionMock = jest.fn().mockResolvedValue({
717
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806',
718
- tx: [1, 2, 3, 4]
719
- });
720
- const wallet = createTestWalletWire(mockUnsupportedMethods({
721
- signAction: signActionMock
722
- }));
723
- const spends = {
724
- 0: {
725
- unlockingScript: '00' // Sample unlocking script
726
- }
727
- };
728
- const reference = index_1.Utils.toBase64([1, 2, 3]);
729
- const args = { spends, reference };
730
- const result = await wallet.signAction(args);
731
- expect(result).toHaveProperty('txid');
732
- expect(result).toHaveProperty('tx');
733
- expect(result.tx).toBeInstanceOf(Array);
734
- expect(signActionMock).toHaveBeenCalledWith(args, '');
735
- });
736
- it('should throw an error with invalid inputs', async () => {
737
- // Mock the signAction method to throw an error
738
- const signActionMock = jest
739
- .fn()
740
- .mockRejectedValue(new Error('Invalid inputs'));
741
- const wallet = createTestWalletWire(mockUnsupportedMethods({
742
- signAction: signActionMock
743
- }));
744
- const spends = {};
745
- const reference = '';
746
- const args = { spends, reference };
747
- await expect(wallet.signAction(args)).rejects.toThrow('Invalid inputs');
748
- expect(signActionMock).toHaveBeenCalledWith(args, '');
749
- });
750
- });
751
- describe('abortAction', () => {
752
- it('should abort an action with valid reference', async () => {
753
- // Mock the abortAction method
754
- const abortActionMock = jest.fn().mockResolvedValue({ aborted: true });
755
- const wallet = createTestWalletWire(mockUnsupportedMethods({
756
- abortAction: abortActionMock
757
- }));
758
- const reference = index_1.Utils.toBase64([1, 2, 3]);
759
- const args = { reference };
760
- const result = await wallet.abortAction(args);
761
- expect(result).toEqual({ aborted: true });
762
- expect(abortActionMock).toHaveBeenCalledWith(args, '');
763
- });
764
- it('should throw an error with invalid reference', async () => {
765
- // Mock the abortAction method to throw an error
766
- const abortActionMock = jest
767
- .fn()
768
- .mockRejectedValue(new Error('Invalid reference'));
769
- const wallet = createTestWalletWire(mockUnsupportedMethods({
770
- abortAction: abortActionMock
771
- }));
772
- const reference = '';
773
- const args = { reference };
774
- await expect(wallet.abortAction(args)).rejects.toThrow('Invalid reference');
775
- expect(abortActionMock).toHaveBeenCalledWith(args, '');
776
- });
777
- });
778
- describe('listActions', () => {
779
- it('should list actions with valid inputs', async () => {
780
- // Mock the listActions method
781
- const listActionsMock = jest.fn().mockResolvedValue({
782
- totalActions: 1,
783
- actions: [
784
- {
785
- txid: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806',
786
- satoshis: 1000,
787
- status: 'completed',
788
- isOutgoing: true,
789
- description: 'Test action',
790
- labels: ['test-label'],
791
- version: 1,
792
- lockTime: 0
793
- }
794
- ]
795
- });
796
- const wallet = createTestWalletWire(mockUnsupportedMethods({
797
- listActions: listActionsMock
798
- }));
799
- const args = {
800
- labels: ['test-label'],
801
- includeLabels: true,
802
- limit: 10,
803
- offset: 0
804
- };
805
- const result = await wallet.listActions(args);
806
- expect(result).toHaveProperty('totalActions');
807
- expect(result).toHaveProperty('actions');
808
- expect(Array.isArray(result.actions)).toBe(true);
809
- expect(listActionsMock).toHaveBeenCalledWith(args, '');
810
- });
811
- it('should list actions with empty labels array', async () => {
812
- // Mock the listActions method
813
- const listActionsMock = jest.fn().mockResolvedValue({
814
- totalActions: 0,
815
- actions: []
816
- });
817
- const wallet = createTestWalletWire(mockUnsupportedMethods({
818
- listActions: listActionsMock
819
- }));
820
- const args = {
821
- labels: [],
822
- includeLabels: true,
823
- limit: 10,
824
- offset: 0
825
- };
826
- const result = await wallet.listActions(args);
827
- expect(result).toHaveProperty('totalActions');
828
- expect(result.totalActions).toBe(0);
829
- expect(result.actions).toEqual([]);
830
- expect(listActionsMock).toHaveBeenCalledWith(args, '');
831
- });
832
- it('should throw an error with invalid inputs', async () => {
833
- // Mock the listActions method to throw an error
834
- const listActionsMock = jest
835
- .fn()
836
- .mockRejectedValue(new Error('Invalid inputs'));
837
- const wallet = createTestWalletWire(mockUnsupportedMethods({
838
- listActions: listActionsMock
839
- }));
840
- const args = {
841
- labels: []
842
- };
843
- await expect(wallet.listActions(args)).rejects.toThrow('Invalid inputs');
844
- expect(listActionsMock).toHaveBeenCalledWith(args, '');
845
- });
846
- });
847
- describe('internalizeAction', () => {
848
- it('should internalize an action with valid inputs', async () => {
849
- // Mock the internalizeAction method
850
- const internalizeActionMock = jest
851
- .fn()
852
- .mockResolvedValue({ accepted: true });
853
- const wallet = createTestWalletWire(mockUnsupportedMethods({
854
- internalizeAction: internalizeActionMock
855
- }));
856
- const args = {
857
- tx: [0x00], // Sample transaction byte array
858
- outputs: [
859
- {
860
- outputIndex: 0,
861
- protocol: 'wallet payment',
862
- paymentRemittance: {
863
- derivationPrefix: index_1.Utils.toBase64([1, 2, 3]),
864
- derivationSuffix: index_1.Utils.toBase64([4, 5, 6]),
865
- senderIdentityKey: '02' + '1'.repeat(64)
866
- }
867
- }
868
- ],
869
- description: 'Test internalize action',
870
- labels: ['test-label']
871
- };
872
- const result = await wallet.internalizeAction(args);
873
- expect(result).toEqual({ accepted: true });
874
- expect(internalizeActionMock).toHaveBeenCalledWith(args, '');
875
- });
876
- it('should throw an error with invalid inputs', async () => {
877
- // Mock the internalizeAction method to throw an error
878
- const internalizeActionMock = jest
879
- .fn()
880
- .mockRejectedValue(new Error('Invalid inputs'));
881
- const wallet = createTestWalletWire(mockUnsupportedMethods({
882
- internalizeAction: internalizeActionMock
883
- }));
884
- const args = {
885
- tx: [], // Empty transaction array
886
- outputs: [],
887
- description: 'Test internalize action'
888
- };
889
- await expect(wallet.internalizeAction(args)).rejects.toThrow('Invalid inputs');
890
- expect(internalizeActionMock).toHaveBeenCalledWith(args, '');
891
- });
892
- it('should internalize an action with "basket insertion" protocol', async () => {
893
- // Mock the internalizeAction method
894
- const internalizeActionMock = jest
895
- .fn()
896
- .mockResolvedValue({ accepted: true });
897
- const wallet = createTestWalletWire(mockUnsupportedMethods({
898
- internalizeAction: internalizeActionMock
899
- }));
900
- const args = {
901
- tx: [0x00], // Sample transaction byte array
902
- outputs: [
903
- {
904
- outputIndex: 0,
905
- protocol: 'basket insertion',
906
- insertionRemittance: {
907
- basket: 'test-basket',
908
- customInstructions: 'Test instructions',
909
- tags: ['test-tag1', 'test-tag2']
910
- }
911
- }
912
- ],
913
- description: 'Test internalize action with basket insertion',
914
- labels: ['test-label']
915
- };
916
- const result = await wallet.internalizeAction(args);
917
- expect(result).toEqual({ accepted: true });
918
- expect(internalizeActionMock).toHaveBeenCalledWith(args, '');
919
- });
920
- });
921
- describe('listOutputs', () => {
922
- it('should list outputs with valid inputs', async () => {
923
- // Mock the listOutputs method
924
- const listOutputsMock = jest.fn().mockResolvedValue({
925
- totalOutputs: 1,
926
- outputs: [
927
- {
928
- outpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
929
- satoshis: 1000,
930
- lockingScript: '00',
931
- spendable: true,
932
- customInstructions: 'Test instructions',
933
- tags: ['test-tag'],
934
- labels: ['test-label']
935
- }
936
- ]
937
- });
938
- const wallet = createTestWalletWire(mockUnsupportedMethods({
939
- listOutputs: listOutputsMock
940
- }));
941
- const args = {
942
- basket: 'test-basket',
943
- includeLabels: true,
944
- limit: 10,
945
- offset: 0
946
- };
947
- const result = await wallet.listOutputs(args);
948
- expect(result).toHaveProperty('totalOutputs');
949
- expect(result).toHaveProperty('outputs');
950
- expect(Array.isArray(result.outputs)).toBe(true);
951
- expect(listOutputsMock).toHaveBeenCalledWith(args, '');
952
- });
953
- it('should throw an error with invalid inputs', async () => {
954
- // Mock the listOutputs method to throw an error
955
- const listOutputsMock = jest
956
- .fn()
957
- .mockRejectedValue(new Error('Invalid inputs'));
958
- const wallet = createTestWalletWire(mockUnsupportedMethods({
959
- listOutputs: listOutputsMock
960
- }));
961
- const args = {
962
- basket: ''
963
- };
964
- await expect(wallet.listOutputs(args)).rejects.toThrow('Invalid inputs');
965
- expect(listOutputsMock).toHaveBeenCalledWith(args, '');
966
- });
967
- it('should list outputs without specifying optional parameters', async () => {
968
- // Mock the listOutputs method
969
- const listOutputsMock = jest.fn().mockResolvedValue({
970
- totalOutputs: 1,
971
- BEEF: [1, 2, 3, 4],
972
- outputs: [
973
- {
974
- outpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
975
- satoshis: 1000,
976
- spendable: true
977
- }
978
- ]
979
- });
980
- const wallet = createTestWalletWire(mockUnsupportedMethods({
981
- listOutputs: listOutputsMock
982
- }));
983
- const args = {
984
- basket: 'test-basket'
985
- // Optional parameters are not specified
986
- };
987
- const result = await wallet.listOutputs(args);
988
- expect(result).toHaveProperty('totalOutputs');
989
- expect(result).toHaveProperty('outputs');
990
- expect(result).toHaveProperty('BEEF');
991
- expect(result.outputs[0]).toHaveProperty('outpoint');
992
- expect(result.outputs[0]).toHaveProperty('satoshis');
993
- expect(result.outputs[0]).toHaveProperty('spendable');
994
- expect(result.outputs[0]).not.toHaveProperty('lockingScript');
995
- expect(result.outputs[0]).not.toHaveProperty('customInstructions');
996
- expect(result.outputs[0]).not.toHaveProperty('tags');
997
- expect(result.outputs[0]).not.toHaveProperty('labels');
998
- expect(listOutputsMock).toHaveBeenCalledWith(args, '');
999
- });
1000
- });
1001
- describe('getPublicKey', () => {
1002
- it('should get the identity public key', async () => {
1003
- const wallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(index_1.PrivateKey.fromRandom()));
1004
- const result = await wallet.getPublicKey({ identityKey: true });
1005
- expect(result).toHaveProperty('publicKey');
1006
- expect(typeof result.publicKey).toBe('string');
1007
- expect(result.publicKey.length).toBe(66); // Compressed public key hex length
1008
- });
1009
- it('should get a derived public key with valid inputs', async () => {
1010
- const userKey = index_1.PrivateKey.fromRandom();
1011
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1012
- const wallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(userKey));
1013
- const args = {
1014
- protocolID: [2, 'tests'],
1015
- keyID: 'test-key-id',
1016
- counterparty: counterpartyKey.toPublicKey().toString()
1017
- };
1018
- const result = await wallet.getPublicKey(args);
1019
- expect(result).toHaveProperty('publicKey');
1020
- expect(typeof result.publicKey).toBe('string');
1021
- expect(result.publicKey.length).toBe(66);
1022
- });
1023
- it('should get the public key with counterparty "anyone"', async () => {
1024
- const wallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(index_1.PrivateKey.fromRandom()));
1025
- const args = {
1026
- protocolID: [1, 'testprotocol'],
1027
- keyID: 'testkeyid',
1028
- counterparty: 'anyone'
1029
- };
1030
- const result = await wallet.getPublicKey(args);
1031
- expect(result).toHaveProperty('publicKey');
1032
- expect(typeof result.publicKey).toBe('string');
1033
- expect(result.publicKey.length).toBe(66); // Compressed public key hex length
1034
- });
1035
- it('should get the public key with missing optional parameters', async () => {
1036
- const wallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(index_1.PrivateKey.fromRandom()));
1037
- const args = {
1038
- protocolID: [0, 'minimalprotocol'],
1039
- keyID: 'minimalkeyid'
1040
- // Missing counterparty, should default to 'self' or 'anyone' based on context
1041
- };
1042
- const result = await wallet.getPublicKey(args);
1043
- expect(result).toHaveProperty('publicKey');
1044
- expect(typeof result.publicKey).toBe('string');
1045
- expect(result.publicKey.length).toBe(66);
1046
- });
1047
- });
1048
- describe('encrypt and decrypt', () => {
1049
- it('should encrypt and decrypt data correctly', async () => {
1050
- const userKey = index_1.PrivateKey.fromRandom();
1051
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1052
- const userWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(userKey));
1053
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey));
1054
- const plaintext = sampleData;
1055
- const encryptArgs = {
1056
- plaintext,
1057
- protocolID: [2, 'tests'],
1058
- keyID: 'test-key-id',
1059
- counterparty: counterpartyKey.toPublicKey().toString()
1060
- };
1061
- const encryptResult = await userWallet.encrypt(encryptArgs);
1062
- expect(encryptResult).toHaveProperty('ciphertext');
1063
- expect(encryptResult.ciphertext).not.toEqual(plaintext);
1064
- const decryptArgs = {
1065
- ciphertext: encryptResult.ciphertext,
1066
- protocolID: [2, 'tests'],
1067
- keyID: 'test-key-id',
1068
- counterparty: userKey.toPublicKey().toString()
1069
- };
1070
- const decryptResult = await counterpartyWallet.decrypt(decryptArgs);
1071
- expect(decryptResult).toHaveProperty('plaintext');
1072
- expect(decryptResult.plaintext).toEqual(plaintext);
1073
- });
1074
- it('should throw an error for invalid decryption inputs', async () => {
1075
- const userKey = index_1.PrivateKey.fromRandom();
1076
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1077
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey));
1078
- const decryptArgs = {
1079
- ciphertext: [0x00],
1080
- protocolID: [2, 'tests'],
1081
- keyID: 'test-key-id',
1082
- counterparty: userKey.toPublicKey().toString()
1083
- };
1084
- await expect(counterpartyWallet.decrypt(decryptArgs)).rejects.toThrow();
1085
- });
1086
- });
1087
- describe('createHmac and verifyHmac', () => {
1088
- it('should create and verify HMAC correctly', async () => {
1089
- const userKey = index_1.PrivateKey.fromRandom();
1090
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1091
- const userWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(userKey));
1092
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey));
1093
- const data = sampleData;
1094
- const createHmacArgs = {
1095
- data,
1096
- protocolID: [2, 'tests'],
1097
- keyID: 'test-key-id',
1098
- counterparty: counterpartyKey.toPublicKey().toString()
1099
- };
1100
- const createHmacResult = await userWallet.createHmac(createHmacArgs);
1101
- expect(createHmacResult).toHaveProperty('hmac');
1102
- expect(createHmacResult.hmac.length).toBe(32);
1103
- const verifyHmacArgs = {
1104
- data,
1105
- hmac: createHmacResult.hmac,
1106
- protocolID: [2, 'tests'],
1107
- keyID: 'test-key-id',
1108
- counterparty: userKey.toPublicKey().toString()
1109
- };
1110
- const verifyHmacResult = await counterpartyWallet.verifyHmac(verifyHmacArgs);
1111
- expect(verifyHmacResult).toEqual({ valid: true });
1112
- });
1113
- it('should throw an error for invalid HMAC verification', async () => {
1114
- const userKey = index_1.PrivateKey.fromRandom();
1115
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(index_1.PrivateKey.fromRandom()));
1116
- const verifyHmacArgs = {
1117
- data: sampleData,
1118
- hmac: [0x00],
1119
- protocolID: [2, 'tests'],
1120
- keyID: 'test-key-id',
1121
- counterparty: userKey.toPublicKey().toString()
1122
- };
1123
- await expect(counterpartyWallet.verifyHmac(verifyHmacArgs)).rejects.toThrow();
1124
- });
1125
- });
1126
- describe('createSignature and verifySignature', () => {
1127
- it('should create and verify signature correctly', async () => {
1128
- const userKey = index_1.PrivateKey.fromRandom();
1129
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1130
- const userWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(userKey));
1131
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(counterpartyKey));
1132
- const data = sampleData;
1133
- const createSignatureArgs = {
1134
- data,
1135
- protocolID: [2, 'tests'],
1136
- keyID: 'test-key-id',
1137
- counterparty: counterpartyKey.toPublicKey().toString()
1138
- };
1139
- const createSignatureResult = await userWallet.createSignature(createSignatureArgs);
1140
- expect(createSignatureResult).toHaveProperty('signature');
1141
- expect(createSignatureResult.signature.length).toBeGreaterThan(0);
1142
- const verifySignatureArgs = {
1143
- data,
1144
- signature: createSignatureResult.signature,
1145
- protocolID: [2, 'tests'],
1146
- keyID: 'test-key-id',
1147
- counterparty: userKey.toPublicKey().toString()
1148
- };
1149
- const verifySignatureResult = await counterpartyWallet.verifySignature(verifySignatureArgs);
1150
- expect(verifySignatureResult).toEqual({ valid: true });
1151
- });
1152
- it('should throw an error for invalid signature verification', async () => {
1153
- const userKey = index_1.PrivateKey.fromRandom();
1154
- const counterpartyWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(index_1.PrivateKey.fromRandom()));
1155
- const verifySignatureArgs = {
1156
- data: sampleData,
1157
- signature: [0x00],
1158
- protocolID: [2, 'tests'],
1159
- keyID: 'test-key-id',
1160
- counterparty: userKey.toPublicKey().toString()
1161
- };
1162
- await expect(counterpartyWallet.verifySignature(verifySignatureArgs)).rejects.toThrow();
1163
- });
1164
- });
1165
- describe('revealCounterpartyKeyLinkage', () => {
1166
- it('should reveal counterparty key linkage correctly', async () => {
1167
- const proverKey = index_1.PrivateKey.fromRandom();
1168
- const counterpartyKey = index_1.PrivateKey.fromRandom();
1169
- const verifierKey = index_1.PrivateKey.fromRandom();
1170
- const proverWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(proverKey));
1171
- const verifierWallet = createTestWalletWire(new CompletedProtoWallet_1.CompletedProtoWallet(verifierKey));
1172
- const args = {
1173
- counterparty: counterpartyKey.toPublicKey().toString(),
1174
- verifier: verifierKey.toPublicKey().toString()
1175
- };
1176
- const revelation = await proverWallet.revealCounterpartyKeyLinkage(args);
1177
- expect(revelation.encryptedLinkageProof).toBeDefined();
1178
- const decryptArgs = {
1179
- ciphertext: revelation.encryptedLinkage,
1180
- protocolID: [2, 'counterparty linkage revelation'],
1181
- keyID: revelation.revelationTime,
1182
- counterparty: proverKey.toPublicKey().toString()
1183
- };
1184
- const decryptedResult = await verifierWallet.decrypt(decryptArgs);
1185
- const expectedLinkage = proverKey
1186
- .deriveSharedSecret(counterpartyKey.toPublicKey())
1187
- .encode(true);
1188
- expect(decryptedResult.plaintext).toEqual(expectedLinkage);
1189
- });
1190
- });
1191
- describe('acquireCertificate', () => {
1192
- it('should acquire a certificate with valid inputs', async () => {
1193
- // Mock the acquireCertificate method
1194
- const acquireCertificateMock = jest.fn().mockResolvedValue({
1195
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1196
- subject: '02' + 'a'.repeat(64),
1197
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1198
- certifier: '02' + 'b'.repeat(64),
1199
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1200
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1201
- fields: {
1202
- field1: 'value1',
1203
- field2: 'value2'
1204
- }
1205
- });
1206
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1207
- acquireCertificate: acquireCertificateMock
1208
- }));
1209
- const args = {
1210
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1211
- certifier: '02' + 'b'.repeat(64),
1212
- acquisitionProtocol: 'direct',
1213
- fields: {
1214
- field1: 'value1',
1215
- field2: 'value2'
1216
- },
1217
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1218
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1219
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1220
- keyringRevealer: 'certifier',
1221
- keyringForSubject: {}
1222
- };
1223
- const result = await wallet.acquireCertificate(args);
1224
- expect(result).toHaveProperty('type');
1225
- expect(result).toHaveProperty('subject');
1226
- expect(result).toHaveProperty('serialNumber');
1227
- expect(result).toHaveProperty('certifier');
1228
- expect(result).toHaveProperty('revocationOutpoint');
1229
- expect(result).toHaveProperty('signature');
1230
- expect(result).toHaveProperty('fields');
1231
- expect(acquireCertificateMock).toHaveBeenCalledWith(args, '');
1232
- });
1233
- it('should acquire a certificate using acquisitionProtocol "direct" with keyringRevealer as "certifier"', async () => {
1234
- // Mock the acquireCertificate method
1235
- const acquireCertificateMock = jest.fn().mockResolvedValue({
1236
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1237
- subject: '02' + 'a'.repeat(64),
1238
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1239
- certifier: '02' + 'b'.repeat(64),
1240
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1241
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1242
- fields: {
1243
- field1: 'value1',
1244
- field2: 'value2'
1245
- }
1246
- });
1247
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1248
- acquireCertificate: acquireCertificateMock
1249
- }));
1250
- const args = {
1251
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1252
- certifier: '02' + 'b'.repeat(64),
1253
- acquisitionProtocol: 'direct',
1254
- fields: {
1255
- field1: 'value1',
1256
- field2: 'value2'
1257
- },
1258
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1259
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1260
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1261
- keyringRevealer: 'certifier',
1262
- keyringForSubject: {
1263
- field1: index_1.Utils.toBase64([0x01, 0x02, 0x03]),
1264
- field2: index_1.Utils.toBase64([0x04, 0x05, 0x06])
1265
- }
1266
- };
1267
- const result = await wallet.acquireCertificate(args);
1268
- expect(result).toHaveProperty('type');
1269
- expect(result).toHaveProperty('subject');
1270
- expect(result).toHaveProperty('serialNumber');
1271
- expect(result).toHaveProperty('certifier');
1272
- expect(result).toHaveProperty('revocationOutpoint');
1273
- expect(result).toHaveProperty('signature');
1274
- expect(result).toHaveProperty('fields');
1275
- expect(acquireCertificateMock).toHaveBeenCalledWith(args, '');
1276
- });
1277
- it('should acquire a certificate using acquisitionProtocol "direct" with keyringRevealer as PubKeyHex', async () => {
1278
- // Mock the acquireCertificate method
1279
- const acquireCertificateMock = jest.fn().mockResolvedValue({
1280
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1281
- subject: '02' + 'a'.repeat(64),
1282
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1283
- certifier: '02' + 'b'.repeat(64),
1284
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1285
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1286
- fields: {
1287
- field1: 'value1',
1288
- field2: 'value2'
1289
- }
1290
- });
1291
- const keyringRevealerPubKey = '02' + 'c'.repeat(64);
1292
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1293
- acquireCertificate: acquireCertificateMock
1294
- }));
1295
- const args = {
1296
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1297
- certifier: '02' + 'b'.repeat(64),
1298
- acquisitionProtocol: 'direct',
1299
- fields: {
1300
- field1: 'value1',
1301
- field2: 'value2'
1302
- },
1303
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1304
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1305
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1306
- keyringRevealer: keyringRevealerPubKey,
1307
- keyringForSubject: {
1308
- field1: index_1.Utils.toBase64([0x01, 0x02, 0x03]),
1309
- field2: index_1.Utils.toBase64([0x04, 0x05, 0x06])
1310
- }
1311
- };
1312
- const result = await wallet.acquireCertificate(args);
1313
- expect(result).toHaveProperty('type');
1314
- expect(result).toHaveProperty('subject');
1315
- expect(result).toHaveProperty('serialNumber');
1316
- expect(result).toHaveProperty('certifier');
1317
- expect(result).toHaveProperty('revocationOutpoint');
1318
- expect(result).toHaveProperty('signature');
1319
- expect(result).toHaveProperty('fields');
1320
- expect(acquireCertificateMock).toHaveBeenCalledWith(args, '');
1321
- });
1322
- it('should acquire a certificate using acquisitionProtocol "issuance"', async () => {
1323
- // Mock the acquireCertificate method
1324
- const acquireCertificateMock = jest.fn().mockResolvedValue({
1325
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1326
- subject: '02' + 'd'.repeat(64),
1327
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1328
- certifier: '02' + 'b'.repeat(64),
1329
- revocationOutpoint: 'cafebabedeadbeefcafebabedeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.1',
1330
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1331
- fields: {
1332
- field3: 'value3',
1333
- field4: 'value4'
1334
- }
1335
- });
1336
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1337
- acquireCertificate: acquireCertificateMock
1338
- }));
1339
- const args = {
1340
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1341
- certifier: '02' + 'b'.repeat(64),
1342
- acquisitionProtocol: 'issuance',
1343
- fields: {
1344
- field3: 'value3',
1345
- field4: 'value4'
1346
- },
1347
- certifierUrl: 'https://certifier.example.com/api/issue'
1348
- };
1349
- const result = await wallet.acquireCertificate(args);
1350
- expect(result).toHaveProperty('type');
1351
- expect(result).toHaveProperty('subject');
1352
- expect(result).toHaveProperty('serialNumber');
1353
- expect(result).toHaveProperty('certifier');
1354
- expect(result).toHaveProperty('revocationOutpoint');
1355
- expect(result).toHaveProperty('signature');
1356
- expect(result).toHaveProperty('fields');
1357
- expect(acquireCertificateMock).toHaveBeenCalledWith(args, '');
1358
- });
1359
- it('should handle optional keyringForSubject being empty in "direct" protocol', async () => {
1360
- // Mock the acquireCertificate method
1361
- const acquireCertificateMock = jest.fn().mockResolvedValue({
1362
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1363
- subject: '02' + 'e'.repeat(64),
1364
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1365
- certifier: '02' + 'b'.repeat(64),
1366
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1367
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1368
- fields: {
1369
- field5: 'value5'
1370
- }
1371
- });
1372
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1373
- acquireCertificate: acquireCertificateMock
1374
- }));
1375
- const args = {
1376
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1377
- certifier: '02' + 'b'.repeat(64),
1378
- acquisitionProtocol: 'direct',
1379
- fields: {
1380
- field5: 'value5'
1381
- },
1382
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1383
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1384
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1385
- keyringRevealer: 'certifier',
1386
- keyringForSubject: {} // Empty keyring
1387
- };
1388
- const result = await wallet.acquireCertificate(args);
1389
- expect(result).toHaveProperty('type');
1390
- expect(result).toHaveProperty('subject');
1391
- expect(result).toHaveProperty('serialNumber');
1392
- expect(result).toHaveProperty('certifier');
1393
- expect(result).toHaveProperty('revocationOutpoint');
1394
- expect(result).toHaveProperty('signature');
1395
- expect(result).toHaveProperty('fields');
1396
- expect(result.fields).toEqual({ field5: 'value5' });
1397
- expect(acquireCertificateMock).toHaveBeenCalledWith(args, '');
1398
- });
1399
- });
1400
- describe('listCertificates', () => {
1401
- it('should list certificates with valid inputs', async () => {
1402
- // Mock the listCertificates method
1403
- const listCertificatesMock = jest.fn().mockResolvedValue({
1404
- totalCertificates: 1,
1405
- certificates: [
1406
- {
1407
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1408
- subject: '02' + 'a'.repeat(64),
1409
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1410
- certifier: '02' + 'b'.repeat(64),
1411
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1412
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1413
- fields: {
1414
- field1: 'value1',
1415
- field2: 'value2'
1416
- }
1417
- }
1418
- ]
1419
- });
1420
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1421
- listCertificates: listCertificatesMock
1422
- }));
1423
- const args = {
1424
- certifiers: ['02' + 'b'.repeat(64)],
1425
- types: [index_1.Utils.toBase64(new Array(32).fill(1))],
1426
- limit: 10,
1427
- offset: 0
1428
- };
1429
- const result = await wallet.listCertificates(args);
1430
- expect(result).toHaveProperty('totalCertificates');
1431
- expect(result).toHaveProperty('certificates');
1432
- expect(Array.isArray(result.certificates)).toBe(true);
1433
- expect(listCertificatesMock).toHaveBeenCalledWith(args, '');
1434
- });
1435
- it('should list certificates with multiple fields in each certificate', async () => {
1436
- // Mock the listCertificates method
1437
- const listCertificatesMock = jest.fn().mockResolvedValue({
1438
- totalCertificates: 2,
1439
- certificates: [
1440
- {
1441
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1442
- subject: '02' + 'a'.repeat(64),
1443
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1444
- certifier: '02' + 'b'.repeat(64),
1445
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1446
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1447
- fields: {
1448
- field1: 'value1',
1449
- field2: 'value2'
1450
- }
1451
- },
1452
- {
1453
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1454
- subject: '02' + 'c'.repeat(64),
1455
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1456
- certifier: '02' + 'b'.repeat(64),
1457
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1458
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1459
- fields: {
1460
- field3: 'value3',
1461
- field4: 'value4',
1462
- field5: 'value5'
1463
- }
1464
- }
1465
- ]
1466
- });
1467
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1468
- listCertificates: listCertificatesMock
1469
- }));
1470
- const args = {
1471
- certifiers: ['02' + 'b'.repeat(64)],
1472
- types: [
1473
- index_1.Utils.toBase64(new Array(32).fill(1)),
1474
- index_1.Utils.toBase64(new Array(32).fill(2))
1475
- ],
1476
- limit: 10,
1477
- offset: 0
1478
- };
1479
- const result = await wallet.listCertificates(args);
1480
- expect(result).toHaveProperty('totalCertificates', 2);
1481
- expect(result.certificates.length).toBe(2);
1482
- expect(result.certificates[0].fields).toEqual({
1483
- field1: 'value1',
1484
- field2: 'value2'
1485
- });
1486
- expect(result.certificates[1].fields).toEqual({
1487
- field3: 'value3',
1488
- field4: 'value4',
1489
- field5: 'value5'
1490
- });
1491
- expect(listCertificatesMock).toHaveBeenCalledWith(args, '');
1492
- });
1493
- it('should list certificates when privileged is true', async () => {
1494
- // Mock the listCertificates method
1495
- const listCertificatesMock = jest.fn().mockResolvedValue({
1496
- totalCertificates: 1,
1497
- certificates: [
1498
- {
1499
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1500
- subject: '02' + 'd'.repeat(64),
1501
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1502
- certifier: '02' + 'e'.repeat(64),
1503
- revocationOutpoint: 'cafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe.2',
1504
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1505
- fields: {
1506
- field6: 'value6'
1507
- }
1508
- }
1509
- ]
1510
- });
1511
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1512
- listCertificates: listCertificatesMock
1513
- }));
1514
- const args = {
1515
- certifiers: ['02' + 'e'.repeat(64)],
1516
- types: [index_1.Utils.toBase64(new Array(32).fill(1))],
1517
- limit: 10,
1518
- offset: 0,
1519
- privileged: true,
1520
- privilegedReason: 'Testing privileged access'
1521
- };
1522
- const result = await wallet.listCertificates(args);
1523
- expect(result).toHaveProperty('totalCertificates', 1);
1524
- expect(result.certificates[0].fields).toEqual({ field6: 'value6' });
1525
- expect(listCertificatesMock).toHaveBeenCalledWith(args, '');
1526
- });
1527
- });
1528
- describe('proveCertificate', () => {
1529
- it('should prove a certificate with valid inputs', async () => {
1530
- // Mock the proveCertificate method
1531
- const proveCertificateMock = jest.fn().mockResolvedValue({
1532
- keyringForVerifier: {
1533
- field1: index_1.Utils.toBase64([0x01, 0x02, 0x03]),
1534
- field2: index_1.Utils.toBase64([0x04, 0x05, 0x06])
1535
- }
1536
- });
1537
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1538
- proveCertificate: proveCertificateMock
1539
- }));
1540
- const args = {
1541
- certificate: {
1542
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1543
- subject: '02' + 'a'.repeat(64),
1544
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1545
- certifier: '02' + 'b'.repeat(64),
1546
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1547
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1548
- fields: {
1549
- field1: 'value1',
1550
- field2: 'value2'
1551
- }
1552
- },
1553
- fieldsToReveal: ['field1'],
1554
- verifier: '02' + 'c'.repeat(64)
1555
- };
1556
- const result = await wallet.proveCertificate(args);
1557
- expect(result).toHaveProperty('keyringForVerifier');
1558
- expect(proveCertificateMock).toHaveBeenCalledWith(args, '');
1559
- });
1560
- it('should prove a certificate revealing multiple fields', async () => {
1561
- // Mock the proveCertificate method
1562
- const proveCertificateMock = jest.fn().mockResolvedValue({
1563
- keyringForVerifier: {
1564
- field1: index_1.Utils.toBase64([0x01, 0x02, 0x03]),
1565
- field2: index_1.Utils.toBase64([0x04, 0x05, 0x06])
1566
- }
1567
- });
1568
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1569
- proveCertificate: proveCertificateMock
1570
- }));
1571
- const args = {
1572
- certificate: {
1573
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1574
- subject: '02' + 'a'.repeat(64),
1575
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1576
- certifier: '02' + 'b'.repeat(64),
1577
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1578
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1579
- fields: {
1580
- field1: 'value1',
1581
- field2: 'value2',
1582
- field3: 'value3'
1583
- }
1584
- },
1585
- fieldsToReveal: ['field1', 'field2'],
1586
- verifier: '02' + 'f'.repeat(64)
1587
- };
1588
- const result = await wallet.proveCertificate(args);
1589
- expect(result).toHaveProperty('keyringForVerifier');
1590
- expect(Object.keys(result.keyringForVerifier)).toEqual([
1591
- 'field1',
1592
- 'field2'
1593
- ]);
1594
- expect(proveCertificateMock).toHaveBeenCalledWith(args, '');
1595
- });
1596
- it('should handle empty fieldsToReveal array (no fields revealed)', async () => {
1597
- // Mock the proveCertificate method
1598
- const proveCertificateMock = jest.fn().mockResolvedValue({
1599
- keyringForVerifier: {}
1600
- });
1601
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1602
- proveCertificate: proveCertificateMock
1603
- }));
1604
- const args = {
1605
- certificate: {
1606
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1607
- subject: '02' + 'a'.repeat(64),
1608
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1609
- certifier: '02' + 'b'.repeat(64),
1610
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1611
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1612
- fields: {
1613
- field4: 'value4',
1614
- field5: 'value5'
1615
- }
1616
- },
1617
- fieldsToReveal: [],
1618
- verifier: '02' + 'f'.repeat(64)
1619
- };
1620
- const result = await wallet.proveCertificate(args);
1621
- expect(result).toHaveProperty('keyringForVerifier');
1622
- expect(Object.keys(result.keyringForVerifier).length).toBe(0);
1623
- expect(proveCertificateMock).toHaveBeenCalledWith(args, '');
1624
- });
1625
- });
1626
- describe('relinquishCertificate', () => {
1627
- it('should relinquish a certificate with valid inputs', async () => {
1628
- // Mock the relinquishCertificate method
1629
- const relinquishCertificateMock = jest
1630
- .fn()
1631
- .mockResolvedValue({ relinquished: true });
1632
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1633
- relinquishCertificate: relinquishCertificateMock
1634
- }));
1635
- const args = {
1636
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1637
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1638
- certifier: '02' + 'b'.repeat(64)
1639
- };
1640
- const result = await wallet.relinquishCertificate(args);
1641
- expect(result).toEqual({ relinquished: true });
1642
- expect(relinquishCertificateMock).toHaveBeenCalledWith(args, '');
1643
- });
1644
- });
1645
- describe('getHeight and getHeaderForHeight', () => {
1646
- it('should get the current blockchain height', async () => {
1647
- // Mock the getHeight method
1648
- const getHeightMock = jest.fn().mockResolvedValue({ height: 680000 });
1649
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1650
- getHeight: getHeightMock
1651
- }));
1652
- const result = await wallet.getHeight({});
1653
- expect(result).toHaveProperty('height');
1654
- expect(typeof result.height).toBe('number');
1655
- expect(result.height).toBeGreaterThan(0);
1656
- expect(getHeightMock).toHaveBeenCalledWith({}, '');
1657
- });
1658
- it('should throw an error when getHeight fails', async () => {
1659
- // Mock the getHeight method to throw an error
1660
- const getHeightMock = jest
1661
- .fn()
1662
- .mockRejectedValue(new Error('Failed to get height'));
1663
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1664
- getHeight: getHeightMock
1665
- }));
1666
- await expect(wallet.getHeight({})).rejects.toThrow('Failed to get height');
1667
- expect(getHeightMock).toHaveBeenCalledWith({}, '');
1668
- });
1669
- it('should get the header for a given height', async () => {
1670
- // Mock the getHeaderForHeight method
1671
- const getHeaderForHeightMock = jest.fn().mockResolvedValue({
1672
- header: '00' + 'ff'.repeat(79)
1673
- });
1674
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1675
- getHeaderForHeight: getHeaderForHeightMock
1676
- }));
1677
- const args = { height: 680000 };
1678
- const result = await wallet.getHeaderForHeight(args);
1679
- expect(result).toHaveProperty('header');
1680
- expect(typeof result.header).toBe('string');
1681
- expect(result.header.length).toBe(80 * 2); // 80 bytes in hex
1682
- expect(getHeaderForHeightMock).toHaveBeenCalledWith(args, '');
1683
- });
1684
- it('should throw an error when getHeaderForHeight fails', async () => {
1685
- // Mock the getHeaderForHeight method to throw an error
1686
- const getHeaderForHeightMock = jest
1687
- .fn()
1688
- .mockRejectedValue(new Error('Failed to get header'));
1689
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1690
- getHeaderForHeight: getHeaderForHeightMock
1691
- }));
1692
- const args = { height: -1 }; // Invalid height
1693
- await expect(wallet.getHeaderForHeight(args)).rejects.toThrow('Failed to get header');
1694
- expect(getHeaderForHeightMock).toHaveBeenCalledWith(args, '');
1695
- });
1696
- });
1697
- describe('discoverByIdentityKey', () => {
1698
- it('should discover certificates by identity key with valid inputs', async () => {
1699
- // Mock the discoverByIdentityKey method
1700
- const discoverByIdentityKeyMock = jest.fn().mockResolvedValue({
1701
- totalCertificates: 1,
1702
- certificates: [
1703
- {
1704
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1705
- subject: '02' + 'a'.repeat(64),
1706
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1707
- certifier: '02' + 'b'.repeat(64),
1708
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1709
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1710
- fields: {},
1711
- certifierInfo: {
1712
- name: 'Test Certifier',
1713
- iconUrl: 'https://example.com/icon.png',
1714
- description: 'Test description',
1715
- trust: 5
1716
- },
1717
- publiclyRevealedKeyring: {},
1718
- decryptedFields: {}
1719
- }
1720
- ]
1721
- });
1722
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1723
- discoverByIdentityKey: discoverByIdentityKeyMock
1724
- }));
1725
- const args = {
1726
- identityKey: '02' + 'a'.repeat(64),
1727
- limit: 10,
1728
- offset: 0
1729
- };
1730
- const result = await wallet.discoverByIdentityKey(args);
1731
- expect(result).toHaveProperty('totalCertificates');
1732
- expect(result).toHaveProperty('certificates');
1733
- expect(Array.isArray(result.certificates)).toBe(true);
1734
- expect(discoverByIdentityKeyMock).toHaveBeenCalledWith(args, '');
1735
- });
1736
- it('should discover certificates with empty decryptedFields and publiclyRevealedKeyring', async () => {
1737
- // Mock the discoverByIdentityKey method
1738
- const discoverByIdentityKeyMock = jest.fn().mockResolvedValue({
1739
- totalCertificates: 1,
1740
- certificates: [
1741
- {
1742
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1743
- subject: '02' + 'a'.repeat(64),
1744
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1745
- certifier: '02' + 'b'.repeat(64),
1746
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1747
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1748
- fields: {},
1749
- certifierInfo: {
1750
- name: 'Test Certifier',
1751
- iconUrl: 'https://example.com/icon.png',
1752
- description: 'Test description',
1753
- trust: 5
1754
- },
1755
- publiclyRevealedKeyring: {},
1756
- decryptedFields: {}
1757
- }
1758
- ]
1759
- });
1760
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1761
- discoverByIdentityKey: discoverByIdentityKeyMock
1762
- }));
1763
- const args = {
1764
- identityKey: '02' + 'a'.repeat(64),
1765
- limit: 10,
1766
- offset: 0
1767
- };
1768
- const result = await wallet.discoverByIdentityKey(args);
1769
- expect(result).toHaveProperty('totalCertificates');
1770
- expect(result.certificates.length).toBe(1);
1771
- expect(result.certificates[0].publiclyRevealedKeyring).toEqual({});
1772
- expect(result.certificates[0].decryptedFields).toEqual({});
1773
- expect(discoverByIdentityKeyMock).toHaveBeenCalledWith(args, '');
1774
- });
1775
- it('should discover multiple certificates with varying fields', async () => {
1776
- // Mock the discoverByIdentityKey method
1777
- const discoverByIdentityKeyMock = jest.fn().mockResolvedValue({
1778
- totalCertificates: 2,
1779
- certificates: [
1780
- {
1781
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1782
- subject: '02' + 'a'.repeat(64),
1783
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1784
- certifier: '02' + 'b'.repeat(64),
1785
- revocationOutpoint: 'deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef.0',
1786
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1787
- fields: {},
1788
- certifierInfo: {
1789
- name: 'Certifier One',
1790
- iconUrl: 'https://example.com/icon1.png',
1791
- description: 'First certifier',
1792
- trust: 5
1793
- },
1794
- publiclyRevealedKeyring: {
1795
- field1: index_1.Utils.toBase64([0x01])
1796
- },
1797
- decryptedFields: {
1798
- fieldA: 'decryptedValueA'
1799
- }
1800
- },
1801
- {
1802
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1803
- subject: '02' + 'a'.repeat(64),
1804
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1805
- certifier: '02' + 'c'.repeat(64),
1806
- revocationOutpoint: 'cafebabecafebabecafebabecafebabecafebabecafebabecafebabecafebabe.1',
1807
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1808
- fields: {},
1809
- certifierInfo: {
1810
- name: 'Certifier Two',
1811
- iconUrl: 'https://example.com/icon2.png',
1812
- description: 'Second certifier',
1813
- trust: 7
1814
- },
1815
- publiclyRevealedKeyring: {},
1816
- decryptedFields: {
1817
- fieldB: 'decryptedValueB',
1818
- fieldC: 'decryptedValueC'
1819
- }
1820
- }
1821
- ]
1822
- });
1823
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1824
- discoverByIdentityKey: discoverByIdentityKeyMock
1825
- }));
1826
- const args = {
1827
- identityKey: '02' + 'a'.repeat(64),
1828
- limit: 10,
1829
- offset: 0
1830
- };
1831
- const result = await wallet.discoverByIdentityKey(args);
1832
- expect(result).toHaveProperty('totalCertificates', 2);
1833
- expect(result.certificates.length).toBe(2);
1834
- expect(result.certificates[0].certifierInfo.name).toBe('Certifier One');
1835
- expect(result.certificates[1].certifierInfo.name).toBe('Certifier Two');
1836
- expect(discoverByIdentityKeyMock).toHaveBeenCalledWith(args, '');
1837
- });
1838
- });
1839
- describe('discoverByAttributes', () => {
1840
- it('should discover certificates by attributes with valid inputs', async () => {
1841
- // Mock the discoverByAttributes method
1842
- const discoverByAttributesMock = jest.fn().mockResolvedValue({
1843
- totalCertificates: 1,
1844
- certificates: [
1845
- {
1846
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1847
- subject: '02' + 'a'.repeat(64),
1848
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1849
- certifier: '02' + 'b'.repeat(64),
1850
- revocationOutpoint: 'deadbeef20248806deadbeef20248806deadbeef20248806deadbeef20248806.0',
1851
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1852
- fields: {},
1853
- certifierInfo: {
1854
- name: 'Test Certifier',
1855
- iconUrl: 'https://example.com/icon.png',
1856
- description: 'Test description',
1857
- trust: 5
1858
- },
1859
- publiclyRevealedKeyring: {},
1860
- decryptedFields: {}
1861
- }
1862
- ]
1863
- });
1864
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1865
- discoverByAttributes: discoverByAttributesMock
1866
- }));
1867
- const args = {
1868
- attributes: {
1869
- field1: 'value1'
1870
- },
1871
- limit: 10,
1872
- offset: 0
1873
- };
1874
- const result = await wallet.discoverByAttributes(args);
1875
- expect(result).toHaveProperty('totalCertificates');
1876
- expect(result).toHaveProperty('certificates');
1877
- expect(Array.isArray(result.certificates)).toBe(true);
1878
- expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '');
1879
- });
1880
- it('should throw an error with invalid inputs', async () => {
1881
- // Mock the discoverByAttributes method to throw an error
1882
- const discoverByAttributesMock = jest
1883
- .fn()
1884
- .mockRejectedValue(new Error('Invalid inputs'));
1885
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1886
- discoverByAttributes: discoverByAttributesMock
1887
- }));
1888
- const args = {
1889
- attributes: {}
1890
- };
1891
- await expect(wallet.discoverByAttributes(args)).rejects.toThrow('Invalid inputs');
1892
- expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '');
1893
- });
1894
- it('should discover certificates matching provided attributes', async () => {
1895
- // Mock the discoverByAttributes method
1896
- const discoverByAttributesMock = jest.fn().mockResolvedValue({
1897
- totalCertificates: 1,
1898
- certificates: [
1899
- {
1900
- type: index_1.Utils.toBase64(new Array(32).fill(1)),
1901
- subject: '02' + 'd'.repeat(64),
1902
- serialNumber: index_1.Utils.toBase64(new Array(32).fill(2)),
1903
- certifier: '02' + 'e'.repeat(64),
1904
- revocationOutpoint: 'beadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbeadbead.2',
1905
- signature: '3045022100e4d03d959697ed191f9ef7ae7deacd3118b8693d18da0fd76e4ad92664ce05cf02200d753951e766cbf2d2b306e08921c06341d2de67ab75389bf84caf954ee40e88',
1906
- fields: {},
1907
- certifierInfo: {
1908
- name: 'Certifier Three',
1909
- iconUrl: 'https://example.com/icon3.png',
1910
- description: 'Third certifier',
1911
- trust: 8
1912
- },
1913
- publiclyRevealedKeyring: {
1914
- fieldX: index_1.Utils.toBase64([0x0a, 0x0b])
1915
- },
1916
- decryptedFields: {
1917
- fieldY: 'decryptedValueY'
1918
- }
1919
- }
1920
- ]
1921
- });
1922
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1923
- discoverByAttributes: discoverByAttributesMock
1924
- }));
1925
- const args = {
1926
- attributes: {
1927
- fieldY: 'decryptedValueY'
1928
- },
1929
- limit: 5,
1930
- offset: 0
1931
- };
1932
- const result = await wallet.discoverByAttributes(args);
1933
- expect(result).toHaveProperty('totalCertificates', 1);
1934
- expect(result.certificates.length).toBe(1);
1935
- expect(result.certificates[0].certifierInfo.name).toBe('Certifier Three');
1936
- expect(result.certificates[0].decryptedFields.fieldY).toBe('decryptedValueY');
1937
- expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '');
1938
- });
1939
- it('should return empty certificates array when no matches found', async () => {
1940
- // Mock the discoverByAttributes method
1941
- const discoverByAttributesMock = jest.fn().mockResolvedValue({
1942
- totalCertificates: 0,
1943
- certificates: []
1944
- });
1945
- const wallet = createTestWalletWire(mockUnsupportedMethods({
1946
- discoverByAttributes: discoverByAttributesMock
1947
- }));
1948
- const args = {
1949
- attributes: {
1950
- nonExistentField: 'noValue'
1951
- },
1952
- limit: 5,
1953
- offset: 0
1954
- };
1955
- const result = await wallet.discoverByAttributes(args);
1956
- expect(result).toHaveProperty('totalCertificates', 0);
1957
- expect(result.certificates.length).toBe(0);
1958
- expect(discoverByAttributesMock).toHaveBeenCalledWith(args, '');
1959
- });
1960
- });
1961
- });
1962
- //# sourceMappingURL=WalletWire.integration.test.js.map