@bsv/sdk 1.6.9 → 1.6.11

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 (654) hide show
  1. package/README.md +9 -4
  2. package/dist/cjs/package.json +4 -2
  3. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -1
  4. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  5. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  6. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -1
  7. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  8. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  9. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  10. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  11. package/dist/umd/bundle.js +1 -1
  12. package/docs/concepts/beef.md +84 -0
  13. package/docs/concepts/chain-tracking.md +122 -0
  14. package/docs/concepts/decentralized-identity.md +184 -0
  15. package/docs/concepts/fees.md +217 -0
  16. package/docs/concepts/identity-certificates.md +255 -0
  17. package/docs/concepts/index.md +62 -0
  18. package/docs/concepts/key-management.md +176 -0
  19. package/docs/concepts/script-templates.md +163 -0
  20. package/docs/concepts/sdk-philosophy.md +72 -0
  21. package/docs/concepts/signatures.md +179 -0
  22. package/docs/concepts/spv-verification.md +106 -0
  23. package/docs/concepts/transaction-encoding.md +148 -0
  24. package/docs/concepts/transaction-structure.md +63 -0
  25. package/docs/concepts/trust-model.md +123 -0
  26. package/docs/concepts/verification.md +219 -0
  27. package/docs/concepts/wallet-integration.md +95 -0
  28. package/docs/guides/direct-transaction-creation.md +137 -0
  29. package/docs/guides/http-client-configuration.md +414 -0
  30. package/docs/guides/index.md +30 -0
  31. package/docs/guides/transaction-signing-methods.md +268 -0
  32. package/docs/index.md +74 -0
  33. package/docs/reference/arc-config.md +698 -0
  34. package/docs/reference/brc-100.md +33 -0
  35. package/docs/reference/configuration.md +829 -0
  36. package/docs/reference/debugging.md +700 -0
  37. package/docs/reference/errors.md +547 -0
  38. package/docs/reference/index.md +98 -0
  39. package/docs/reference/network-config.md +914 -0
  40. package/docs/reference/op-codes.md +306 -0
  41. package/docs/reference/transaction-signatures.md +94 -0
  42. package/docs/requirements.txt +3 -0
  43. package/docs/tutorials/advanced-transaction.md +575 -0
  44. package/docs/tutorials/aes-encryption.md +947 -0
  45. package/docs/tutorials/authfetch-tutorial.md +957 -0
  46. package/docs/tutorials/ecdh-key-exchange.md +547 -0
  47. package/docs/tutorials/elliptic-curve-fundamentals.md +603 -0
  48. package/docs/tutorials/error-handling.md +1215 -0
  49. package/docs/tutorials/first-transaction-low-level.md +204 -0
  50. package/docs/tutorials/first-transaction.md +278 -0
  51. package/docs/tutorials/hashes-and-hmacs.md +814 -0
  52. package/docs/tutorials/identity-management.md +702 -0
  53. package/docs/tutorials/index.md +182 -0
  54. package/docs/tutorials/key-management.md +536 -0
  55. package/docs/tutorials/protowallet-development.md +716 -0
  56. package/docs/tutorials/script-construction.md +690 -0
  57. package/docs/tutorials/spv-merkle-proofs.md +682 -0
  58. package/docs/tutorials/testnet-transactions-low-level.md +352 -0
  59. package/docs/tutorials/transaction-broadcasting.md +535 -0
  60. package/docs/tutorials/transaction-types.md +419 -0
  61. package/docs/tutorials/type-42.md +582 -0
  62. package/docs/tutorials/uhrp-storage.md +579 -0
  63. package/package.json +4 -2
  64. package/src/wallet/substrates/HTTPWalletJSON.ts +6 -1
  65. package/dist/cjs/src/auth/__tests/Peer.test.js +0 -446
  66. package/dist/cjs/src/auth/__tests/Peer.test.js.map +0 -1
  67. package/dist/cjs/src/auth/__tests/SessionManager.test.js +0 -69
  68. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +0 -1
  69. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +0 -182
  70. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  71. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  72. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  73. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  74. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  75. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +0 -101
  76. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  77. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  78. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  79. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  80. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  81. package/dist/cjs/src/auth/utils/certificateHelpers.js +0 -51
  82. package/dist/cjs/src/auth/utils/certificateHelpers.js.map +0 -1
  83. package/dist/cjs/src/compat/__tests/BSM.test.js +0 -69
  84. package/dist/cjs/src/compat/__tests/BSM.test.js.map +0 -1
  85. package/dist/cjs/src/compat/__tests/ECIES.test.js +0 -115
  86. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +0 -1
  87. package/dist/cjs/src/compat/__tests/HD.test.js +0 -336
  88. package/dist/cjs/src/compat/__tests/HD.test.js.map +0 -1
  89. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +0 -150
  90. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +0 -1
  91. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +0 -175
  92. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  93. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +0 -57
  94. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  95. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +0 -52
  96. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +0 -1
  97. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  98. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  99. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  100. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  101. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  102. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  103. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +0 -248
  104. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +0 -1
  105. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  106. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  107. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  108. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  109. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  110. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  111. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  112. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  113. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  114. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  115. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  116. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  117. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  118. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  119. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  120. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  121. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  122. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  123. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +0 -145
  124. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  125. package/dist/cjs/src/primitives/__tests/DRBG.test.js +0 -22
  126. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +0 -1
  127. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +0 -170
  128. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  129. package/dist/cjs/src/primitives/__tests/ECDH.test.js +0 -34
  130. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +0 -1
  131. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +0 -89
  132. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +0 -1
  133. package/dist/cjs/src/primitives/__tests/HMAC.test.js +0 -60
  134. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +0 -1
  135. package/dist/cjs/src/primitives/__tests/Hash.test.js +0 -159
  136. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +0 -1
  137. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  138. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  139. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  140. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  141. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +0 -90
  142. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  143. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +0 -83
  144. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +0 -1
  145. package/dist/cjs/src/primitives/__tests/Random.test.js +0 -19
  146. package/dist/cjs/src/primitives/__tests/Random.test.js.map +0 -1
  147. package/dist/cjs/src/primitives/__tests/Reader.test.js +0 -282
  148. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +0 -1
  149. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +0 -224
  150. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  151. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +0 -213
  152. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +0 -1
  153. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +0 -51
  154. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  155. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  156. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  157. package/dist/cjs/src/primitives/__tests/Writer.test.js +0 -176
  158. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +0 -1
  159. package/dist/cjs/src/primitives/__tests/bug-31.test.js +0 -32
  160. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +0 -1
  161. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +0 -3506
  162. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +0 -1
  163. package/dist/cjs/src/primitives/__tests/utils.test.js +0 -110
  164. package/dist/cjs/src/primitives/__tests/utils.test.js.map +0 -1
  165. package/dist/cjs/src/script/__tests/Script.test.js +0 -347
  166. package/dist/cjs/src/script/__tests/Script.test.js.map +0 -1
  167. package/dist/cjs/src/script/__tests/Spend.test.js +0 -282
  168. package/dist/cjs/src/script/__tests/Spend.test.js.map +0 -1
  169. package/dist/cjs/src/script/__tests/SpendComplex.test.js +0 -52
  170. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +0 -1
  171. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +0 -2370
  172. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +0 -1
  173. package/dist/cjs/src/script/__tests/script.valid.vectors.js +0 -1181
  174. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +0 -1
  175. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +0 -2298
  176. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +0 -1
  177. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +0 -161
  178. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  179. package/dist/cjs/src/totp/__tests/totp.test.js +0 -67
  180. package/dist/cjs/src/totp/__tests/totp.test.js.map +0 -1
  181. package/dist/cjs/src/transaction/__tests/Beef.test.js +0 -393
  182. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +0 -1
  183. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +0 -209
  184. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +0 -1
  185. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  186. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  187. package/dist/cjs/src/transaction/__tests/Transaction.test.js +0 -1073
  188. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +0 -1
  189. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +0 -7
  190. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  191. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  192. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  193. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +0 -7
  194. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  195. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  196. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  197. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +0 -296
  198. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  199. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  200. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  201. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  202. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  203. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  204. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  205. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js +0 -39
  206. package/dist/cjs/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  207. package/dist/cjs/src/wallet/WalletSigner.js +0 -260
  208. package/dist/cjs/src/wallet/WalletSigner.js.map +0 -1
  209. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  210. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  211. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +0 -114
  212. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  213. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +0 -475
  214. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  215. package/dist/cjs/src/wallet/createActionSdk.js +0 -230
  216. package/dist/cjs/src/wallet/createActionSdk.js.map +0 -1
  217. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  218. package/dist/cjs/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  219. package/dist/cjs/src/wallet/sdk/CertOps.js +0 -181
  220. package/dist/cjs/src/wallet/sdk/CertOps.js.map +0 -1
  221. package/dist/cjs/src/wallet/sdk/Certificate.js +0 -162
  222. package/dist/cjs/src/wallet/sdk/Certificate.js.map +0 -1
  223. package/dist/cjs/src/wallet/sdk/KeyDeriver.js +0 -176
  224. package/dist/cjs/src/wallet/sdk/KeyDeriver.js.map +0 -1
  225. package/dist/cjs/src/wallet/sdk/ProtoWallet.js +0 -75
  226. package/dist/cjs/src/wallet/sdk/ProtoWallet.js.map +0 -1
  227. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js +0 -3
  228. package/dist/cjs/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  229. package/dist/cjs/src/wallet/sdk/WERR_errors.js +0 -107
  230. package/dist/cjs/src/wallet/sdk/WERR_errors.js.map +0 -1
  231. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js +0 -3
  232. package/dist/cjs/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  233. package/dist/cjs/src/wallet/sdk/WalletCrypto.js +0 -171
  234. package/dist/cjs/src/wallet/sdk/WalletCrypto.js.map +0 -1
  235. package/dist/cjs/src/wallet/sdk/WalletError.js +0 -103
  236. package/dist/cjs/src/wallet/sdk/WalletError.js.map +0 -1
  237. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js +0 -3
  238. package/dist/cjs/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  239. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js +0 -3
  240. package/dist/cjs/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  241. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js +0 -3
  242. package/dist/cjs/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  243. package/dist/cjs/src/wallet/sdk/index.js +0 -31
  244. package/dist/cjs/src/wallet/sdk/index.js.map +0 -1
  245. package/dist/cjs/src/wallet/sdk/types.js +0 -11
  246. package/dist/cjs/src/wallet/sdk/types.js.map +0 -1
  247. package/dist/cjs/src/wallet/sdk/validationHelpers.js +0 -601
  248. package/dist/cjs/src/wallet/sdk/validationHelpers.js.map +0 -1
  249. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  250. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  251. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +0 -579
  252. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  253. package/dist/cjs/src/wallet/utilityHelpers.js +0 -305
  254. package/dist/cjs/src/wallet/utilityHelpers.js.map +0 -1
  255. package/dist/cjs/src/wallet/validationHelpers.js +0 -601
  256. package/dist/cjs/src/wallet/validationHelpers.js.map +0 -1
  257. package/dist/esm/src/auth/__tests/Peer.test.js +0 -448
  258. package/dist/esm/src/auth/__tests/Peer.test.js.map +0 -1
  259. package/dist/esm/src/auth/__tests/SessionManager.test.js +0 -69
  260. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +0 -1
  261. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +0 -182
  262. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +0 -1
  263. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +0 -184
  264. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +0 -1
  265. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +0 -75
  266. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +0 -1
  267. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +0 -101
  268. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +0 -1
  269. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +0 -106
  270. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +0 -1
  271. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +0 -111
  272. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +0 -1
  273. package/dist/esm/src/auth/utils/certificateHelpers.js +0 -47
  274. package/dist/esm/src/auth/utils/certificateHelpers.js.map +0 -1
  275. package/dist/esm/src/compat/__tests/BSM.test.js +0 -69
  276. package/dist/esm/src/compat/__tests/BSM.test.js.map +0 -1
  277. package/dist/esm/src/compat/__tests/ECIES.test.js +0 -115
  278. package/dist/esm/src/compat/__tests/ECIES.test.js.map +0 -1
  279. package/dist/esm/src/compat/__tests/HD.test.js +0 -336
  280. package/dist/esm/src/compat/__tests/HD.test.js.map +0 -1
  281. package/dist/esm/src/compat/__tests/Mnemonic.test.js +0 -150
  282. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +0 -1
  283. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +0 -175
  284. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +0 -1
  285. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +0 -57
  286. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +0 -1
  287. package/dist/esm/src/messages/__tests/SignedMessage.test.js +0 -52
  288. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +0 -1
  289. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +0 -1471
  290. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +0 -1
  291. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +0 -78
  292. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +0 -1
  293. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +0 -933
  294. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +0 -1
  295. package/dist/esm/src/primitives/__tests/AESGCM.test.js +0 -248
  296. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +0 -1
  297. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +0 -36
  298. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +0 -1
  299. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +0 -36
  300. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +0 -1
  301. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +0 -501
  302. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +0 -1
  303. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +0 -185
  304. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +0 -1
  305. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +0 -149
  306. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +0 -1
  307. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +0 -23
  308. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +0 -1
  309. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +0 -268
  310. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +0 -1
  311. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +0 -147
  312. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +0 -1
  313. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +0 -322
  314. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +0 -1
  315. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +0 -145
  316. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +0 -1
  317. package/dist/esm/src/primitives/__tests/DRBG.test.js +0 -22
  318. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +0 -1
  319. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +0 -170
  320. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +0 -1
  321. package/dist/esm/src/primitives/__tests/ECDH.test.js +0 -34
  322. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +0 -1
  323. package/dist/esm/src/primitives/__tests/ECDSA.test.js +0 -89
  324. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +0 -1
  325. package/dist/esm/src/primitives/__tests/HMAC.test.js +0 -60
  326. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +0 -1
  327. package/dist/esm/src/primitives/__tests/Hash.test.js +0 -159
  328. package/dist/esm/src/primitives/__tests/Hash.test.js.map +0 -1
  329. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +0 -122
  330. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +0 -1
  331. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +0 -105
  332. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +0 -1
  333. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +0 -90
  334. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +0 -1
  335. package/dist/esm/src/primitives/__tests/PublicKey.test.js +0 -83
  336. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +0 -1
  337. package/dist/esm/src/primitives/__tests/Random.test.js +0 -19
  338. package/dist/esm/src/primitives/__tests/Random.test.js.map +0 -1
  339. package/dist/esm/src/primitives/__tests/Reader.test.js +0 -282
  340. package/dist/esm/src/primitives/__tests/Reader.test.js.map +0 -1
  341. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +0 -223
  342. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +0 -1
  343. package/dist/esm/src/primitives/__tests/Schnorr.test.js +0 -213
  344. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +0 -1
  345. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +0 -51
  346. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +0 -1
  347. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +0 -43
  348. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +0 -1
  349. package/dist/esm/src/primitives/__tests/Writer.test.js +0 -176
  350. package/dist/esm/src/primitives/__tests/Writer.test.js.map +0 -1
  351. package/dist/esm/src/primitives/__tests/bug-31.test.js +0 -32
  352. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +0 -1
  353. package/dist/esm/src/primitives/__tests/sighash.vectors.js +0 -3506
  354. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +0 -1
  355. package/dist/esm/src/primitives/__tests/utils.test.js +0 -110
  356. package/dist/esm/src/primitives/__tests/utils.test.js.map +0 -1
  357. package/dist/esm/src/script/__tests/Script.test.js +0 -347
  358. package/dist/esm/src/script/__tests/Script.test.js.map +0 -1
  359. package/dist/esm/src/script/__tests/Spend.test.js +0 -282
  360. package/dist/esm/src/script/__tests/Spend.test.js.map +0 -1
  361. package/dist/esm/src/script/__tests/SpendComplex.test.js +0 -51
  362. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +0 -1
  363. package/dist/esm/src/script/__tests/script.invalid.vectors.js +0 -2370
  364. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +0 -1
  365. package/dist/esm/src/script/__tests/script.valid.vectors.js +0 -1181
  366. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +0 -1
  367. package/dist/esm/src/script/__tests/spend.valid.vectors.js +0 -2298
  368. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +0 -1
  369. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +0 -161
  370. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +0 -1
  371. package/dist/esm/src/totp/__tests/totp.test.js +0 -67
  372. package/dist/esm/src/totp/__tests/totp.test.js.map +0 -1
  373. package/dist/esm/src/transaction/__tests/Beef.test.js +0 -393
  374. package/dist/esm/src/transaction/__tests/Beef.test.js.map +0 -1
  375. package/dist/esm/src/transaction/__tests/MerklePath.test.js +0 -209
  376. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +0 -1
  377. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +0 -219
  378. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +0 -1
  379. package/dist/esm/src/transaction/__tests/Transaction.test.js +0 -1072
  380. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +0 -1
  381. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +0 -7
  382. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +0 -1
  383. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +0 -11
  384. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +0 -1
  385. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +0 -7
  386. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +0 -1
  387. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +0 -230
  388. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +0 -1
  389. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +0 -296
  390. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +0 -1
  391. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +0 -246
  392. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +0 -1
  393. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +0 -148
  394. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +0 -1
  395. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +0 -155
  396. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +0 -1
  397. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js +0 -37
  398. package/dist/esm/src/wallet/ScriptTemplateSABPPP.js.map +0 -1
  399. package/dist/esm/src/wallet/WalletSigner.js +0 -263
  400. package/dist/esm/src/wallet/WalletSigner.js.map +0 -1
  401. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +0 -269
  402. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +0 -1
  403. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +0 -113
  404. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +0 -1
  405. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +0 -475
  406. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +0 -1
  407. package/dist/esm/src/wallet/createActionSdk.js +0 -223
  408. package/dist/esm/src/wallet/createActionSdk.js.map +0 -1
  409. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js +0 -174
  410. package/dist/esm/src/wallet/sdk/CachedKeyDeriver.js.map +0 -1
  411. package/dist/esm/src/wallet/sdk/CertOps.js +0 -181
  412. package/dist/esm/src/wallet/sdk/CertOps.js.map +0 -1
  413. package/dist/esm/src/wallet/sdk/Certificate.js +0 -186
  414. package/dist/esm/src/wallet/sdk/Certificate.js.map +0 -1
  415. package/dist/esm/src/wallet/sdk/KeyDeriver.js +0 -174
  416. package/dist/esm/src/wallet/sdk/KeyDeriver.js.map +0 -1
  417. package/dist/esm/src/wallet/sdk/ProtoWallet.js +0 -71
  418. package/dist/esm/src/wallet/sdk/ProtoWallet.js.map +0 -1
  419. package/dist/esm/src/wallet/sdk/StorageSyncReader.js +0 -2
  420. package/dist/esm/src/wallet/sdk/StorageSyncReader.js.map +0 -1
  421. package/dist/esm/src/wallet/sdk/WERR_errors.js +0 -99
  422. package/dist/esm/src/wallet/sdk/WERR_errors.js.map +0 -1
  423. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js +0 -2
  424. package/dist/esm/src/wallet/sdk/Wallet.interfaces.js.map +0 -1
  425. package/dist/esm/src/wallet/sdk/WalletCrypto.js +0 -168
  426. package/dist/esm/src/wallet/sdk/WalletCrypto.js.map +0 -1
  427. package/dist/esm/src/wallet/sdk/WalletError.js +0 -100
  428. package/dist/esm/src/wallet/sdk/WalletError.js.map +0 -1
  429. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js +0 -2
  430. package/dist/esm/src/wallet/sdk/WalletServices.interfaces.js.map +0 -1
  431. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js +0 -2
  432. package/dist/esm/src/wallet/sdk/WalletSigner.interfaces.js.map +0 -1
  433. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js +0 -2
  434. package/dist/esm/src/wallet/sdk/WalletStorage.interfaces.js.map +0 -1
  435. package/dist/esm/src/wallet/sdk/index.js +0 -15
  436. package/dist/esm/src/wallet/sdk/index.js.map +0 -1
  437. package/dist/esm/src/wallet/sdk/types.js +0 -8
  438. package/dist/esm/src/wallet/sdk/types.js.map +0 -1
  439. package/dist/esm/src/wallet/sdk/validationHelpers.js +0 -566
  440. package/dist/esm/src/wallet/sdk/validationHelpers.js.map +0 -1
  441. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +0 -1962
  442. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +0 -1
  443. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +0 -579
  444. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +0 -1
  445. package/dist/esm/src/wallet/utilityHelpers.js +0 -275
  446. package/dist/esm/src/wallet/utilityHelpers.js.map +0 -1
  447. package/dist/esm/src/wallet/validationHelpers.js +0 -566
  448. package/dist/esm/src/wallet/validationHelpers.js.map +0 -1
  449. package/dist/types/src/auth/__tests/Peer.test.d.ts +0 -2
  450. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +0 -1
  451. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +0 -2
  452. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +0 -1
  453. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +0 -2
  454. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +0 -1
  455. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +0 -2
  456. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +0 -1
  457. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +0 -2
  458. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +0 -1
  459. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +0 -2
  460. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +0 -1
  461. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +0 -2
  462. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +0 -1
  463. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +0 -2
  464. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +0 -1
  465. package/dist/types/src/auth/utils/certificateHelpers.d.ts +0 -26
  466. package/dist/types/src/auth/utils/certificateHelpers.d.ts.map +0 -1
  467. package/dist/types/src/compat/__tests/BSM.test.d.ts +0 -2
  468. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +0 -1
  469. package/dist/types/src/compat/__tests/ECIES.test.d.ts +0 -2
  470. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +0 -1
  471. package/dist/types/src/compat/__tests/HD.test.d.ts +0 -2
  472. package/dist/types/src/compat/__tests/HD.test.d.ts.map +0 -1
  473. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +0 -2
  474. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +0 -1
  475. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +0 -11
  476. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +0 -1
  477. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +0 -2
  478. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +0 -1
  479. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +0 -2
  480. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +0 -1
  481. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +0 -2
  482. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +0 -1
  483. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +0 -2
  484. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +0 -1
  485. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +0 -2
  486. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +0 -1
  487. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +0 -2
  488. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +0 -1
  489. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +0 -8
  490. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +0 -1
  491. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +0 -8
  492. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +0 -1
  493. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +0 -2
  494. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +0 -1
  495. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +0 -2
  496. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +0 -1
  497. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +0 -2
  498. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +0 -1
  499. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +0 -2
  500. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +0 -1
  501. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +0 -15
  502. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +0 -1
  503. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +0 -2
  504. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +0 -1
  505. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +0 -2
  506. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +0 -1
  507. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +0 -2
  508. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +0 -1
  509. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +0 -2
  510. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +0 -1
  511. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +0 -10
  512. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +0 -1
  513. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +0 -2
  514. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +0 -1
  515. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +0 -2
  516. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +0 -1
  517. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +0 -2
  518. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +0 -1
  519. package/dist/types/src/primitives/__tests/Hash.test.d.ts +0 -2
  520. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +0 -1
  521. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +0 -68
  522. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +0 -1
  523. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +0 -2
  524. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +0 -1
  525. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +0 -2
  526. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +0 -1
  527. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +0 -2
  528. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +0 -1
  529. package/dist/types/src/primitives/__tests/Random.test.d.ts +0 -2
  530. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +0 -1
  531. package/dist/types/src/primitives/__tests/Reader.test.d.ts +0 -2
  532. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +0 -1
  533. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +0 -2
  534. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +0 -1
  535. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +0 -2
  536. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +0 -1
  537. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +0 -2
  538. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +0 -1
  539. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +0 -20
  540. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +0 -1
  541. package/dist/types/src/primitives/__tests/Writer.test.d.ts +0 -2
  542. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +0 -1
  543. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +0 -2
  544. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +0 -1
  545. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +0 -3
  546. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +0 -1
  547. package/dist/types/src/primitives/__tests/utils.test.d.ts +0 -2
  548. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +0 -1
  549. package/dist/types/src/script/__tests/Script.test.d.ts +0 -2
  550. package/dist/types/src/script/__tests/Script.test.d.ts.map +0 -1
  551. package/dist/types/src/script/__tests/Spend.test.d.ts +0 -2
  552. package/dist/types/src/script/__tests/Spend.test.d.ts.map +0 -1
  553. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +0 -2
  554. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +0 -1
  555. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +0 -3
  556. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +0 -1
  557. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +0 -3
  558. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +0 -1
  559. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +0 -3
  560. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +0 -1
  561. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +0 -2
  562. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +0 -1
  563. package/dist/types/src/totp/__tests/totp.test.d.ts +0 -2
  564. package/dist/types/src/totp/__tests/totp.test.d.ts.map +0 -1
  565. package/dist/types/src/transaction/__tests/Beef.test.d.ts +0 -2
  566. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +0 -1
  567. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +0 -2
  568. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +0 -1
  569. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +0 -2
  570. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +0 -1
  571. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +0 -2
  572. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +0 -1
  573. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +0 -6
  574. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +0 -1
  575. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +0 -6
  576. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +0 -1
  577. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +0 -5
  578. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +0 -1
  579. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +0 -3
  580. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +0 -1
  581. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +0 -3
  582. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +0 -1
  583. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +0 -2
  584. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +0 -1
  585. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +0 -2
  586. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +0 -1
  587. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +0 -2
  588. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +0 -1
  589. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts +0 -25
  590. package/dist/types/src/wallet/ScriptTemplateSABPPP.d.ts.map +0 -1
  591. package/dist/types/src/wallet/WalletSigner.d.ts +0 -110
  592. package/dist/types/src/wallet/WalletSigner.d.ts.map +0 -1
  593. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +0 -2
  594. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +0 -1
  595. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +0 -2
  596. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +0 -1
  597. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +0 -2
  598. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +0 -1
  599. package/dist/types/src/wallet/createActionSdk.d.ts +0 -8
  600. package/dist/types/src/wallet/createActionSdk.d.ts.map +0 -1
  601. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts +0 -94
  602. package/dist/types/src/wallet/sdk/CachedKeyDeriver.d.ts.map +0 -1
  603. package/dist/types/src/wallet/sdk/CertOps.d.ts +0 -63
  604. package/dist/types/src/wallet/sdk/CertOps.d.ts.map +0 -1
  605. package/dist/types/src/wallet/sdk/Certificate.d.ts +0 -77
  606. package/dist/types/src/wallet/sdk/Certificate.d.ts.map +0 -1
  607. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts +0 -128
  608. package/dist/types/src/wallet/sdk/KeyDeriver.d.ts.map +0 -1
  609. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts +0 -30
  610. package/dist/types/src/wallet/sdk/ProtoWallet.d.ts.map +0 -1
  611. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts +0 -102
  612. package/dist/types/src/wallet/sdk/StorageSyncReader.d.ts.map +0 -1
  613. package/dist/types/src/wallet/sdk/WERR_errors.d.ts +0 -84
  614. package/dist/types/src/wallet/sdk/WERR_errors.d.ts.map +0 -1
  615. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts +0 -1036
  616. package/dist/types/src/wallet/sdk/Wallet.interfaces.d.ts.map +0 -1
  617. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts +0 -31
  618. package/dist/types/src/wallet/sdk/WalletCrypto.d.ts.map +0 -1
  619. package/dist/types/src/wallet/sdk/WalletError.d.ts +0 -46
  620. package/dist/types/src/wallet/sdk/WalletError.d.ts.map +0 -1
  621. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts +0 -293
  622. package/dist/types/src/wallet/sdk/WalletServices.interfaces.d.ts.map +0 -1
  623. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts +0 -48
  624. package/dist/types/src/wallet/sdk/WalletSigner.interfaces.d.ts.map +0 -1
  625. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts +0 -296
  626. package/dist/types/src/wallet/sdk/WalletStorage.interfaces.d.ts.map +0 -1
  627. package/dist/types/src/wallet/sdk/index.d.ts +0 -15
  628. package/dist/types/src/wallet/sdk/index.d.ts.map +0 -1
  629. package/dist/types/src/wallet/sdk/types.d.ts +0 -56
  630. package/dist/types/src/wallet/sdk/types.d.ts.map +0 -1
  631. package/dist/types/src/wallet/sdk/validationHelpers.d.ts +0 -301
  632. package/dist/types/src/wallet/sdk/validationHelpers.d.ts.map +0 -1
  633. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +0 -2
  634. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +0 -1
  635. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +0 -5
  636. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +0 -1
  637. package/dist/types/src/wallet/utilityHelpers.d.ts +0 -142
  638. package/dist/types/src/wallet/utilityHelpers.d.ts.map +0 -1
  639. package/dist/types/src/wallet/validationHelpers.d.ts +0 -301
  640. package/dist/types/src/wallet/validationHelpers.d.ts.map +0 -1
  641. package/docs/README.md +0 -21
  642. /package/docs/{auth.md → reference/auth.md} +0 -0
  643. /package/docs/{compat.md → reference/compat.md} +0 -0
  644. /package/docs/{identity.md → reference/identity.md} +0 -0
  645. /package/docs/{kvstore.md → reference/kvstore.md} +0 -0
  646. /package/docs/{messages.md → reference/messages.md} +0 -0
  647. /package/docs/{overlay-tools.md → reference/overlay-tools.md} +0 -0
  648. /package/docs/{primitives.md → reference/primitives.md} +0 -0
  649. /package/docs/{registry.md → reference/registry.md} +0 -0
  650. /package/docs/{script.md → reference/script.md} +0 -0
  651. /package/docs/{storage.md → reference/storage.md} +0 -0
  652. /package/docs/{totp.md → reference/totp.md} +0 -0
  653. /package/docs/{transaction.md → reference/transaction.md} +0 -0
  654. /package/docs/{wallet.md → reference/wallet.md} +0 -0
@@ -1,223 +0,0 @@
1
- import { Script, Transaction } from "@bsv/sdk";
2
- import { asBsvSdkScript, makeAtomicBeef, verifyTruthy } from "./utilityHelpers.js";
3
- import { ScriptTemplateSABPPP } from './ScriptTemplateSABPPP.js';
4
- import { sdk } from './sdk';
5
- export async function createActionSdk(signer, vargs) {
6
- const r = {};
7
- let prior = undefined;
8
- if (vargs.isNewTx) {
9
- prior = await createNewTx(signer, vargs);
10
- if (vargs.isSignAction) {
11
- return makeSignableTransactionResult(prior, signer, vargs);
12
- }
13
- prior.tx = await completeSignedTransaction(prior, {}, signer);
14
- r.txid = prior.tx.id('hex');
15
- r.noSendChange = prior.dcr.noSendChangeOutputVouts?.map(vout => `${r.txid}.${vout}`);
16
- if (!vargs.options.returnTXIDOnly)
17
- r.tx = makeAtomicBeef(prior.tx, prior.dcr.inputBeef);
18
- }
19
- r.sendWithResults = await processActionSdk(prior, signer, vargs);
20
- return r;
21
- }
22
- async function createNewTx(signer, args) {
23
- const storageArgs = removeUnlockScripts(args);
24
- const dcr = await signer.storage.createTransactionSdk(storageArgs);
25
- const reference = dcr.reference;
26
- const { tx, amount, pdi } = buildSignableTransaction(dcr, args, signer);
27
- const prior = { reference, dcr, args, amount, tx, pdi };
28
- return prior;
29
- }
30
- function makeSignableTransactionResult(prior, signer, args) {
31
- if (!prior.dcr.inputBeef)
32
- throw new sdk.WERR_INTERNAL('prior.dcr.inputBeef must be valid');
33
- const txid = prior.tx.id('hex');
34
- const r = {
35
- noSendChange: args.isNoSend ? prior.dcr.noSendChangeOutputVouts?.map(vout => `${txid}.${vout}`) : undefined,
36
- signableTransaction: {
37
- reference: prior.dcr.reference,
38
- tx: makeAtomicBeef(prior.tx, prior.dcr.inputBeef)
39
- }
40
- };
41
- signer.pendingSignActions[r.signableTransaction.reference] = prior;
42
- return r;
43
- }
44
- /**
45
- * Derive a change output locking script
46
- */
47
- function makeChangeLock(out, dctr, args, changeKeys, signer) {
48
- const derivationPrefix = dctr.derivationPrefix;
49
- const derivationSuffix = verifyTruthy(out.derivationSuffix);
50
- const sabppp = new ScriptTemplateSABPPP({ derivationPrefix, derivationSuffix, keyDeriver: signer.keyDeriver });
51
- const lockingScript = sabppp.lock(changeKeys.privateKey, changeKeys.publicKey);
52
- return lockingScript;
53
- }
54
- export async function completeSignedTransaction(prior, spends, signer) {
55
- /////////////////////
56
- // Insert the user provided unlocking scripts from "spends" arg
57
- /////////////////////
58
- for (const [key, spend] of Object.entries(spends)) {
59
- const vin = Number(key);
60
- const createInput = prior.args.inputs[vin];
61
- const input = prior.tx.inputs[vin];
62
- if (!createInput || !input || createInput.unlockingScript || !Number.isInteger(createInput.unlockingScriptLength))
63
- throw new sdk.WERR_INVALID_PARAMETER('args', `spend does not correspond to prior input with valid unlockingScriptLength.`);
64
- if (spend.unlockingScript.length / 2 > createInput.unlockingScriptLength)
65
- throw new sdk.WERR_INVALID_PARAMETER('args', `spend unlockingScript length ${spend.unlockingScript.length} exceeds expected length ${createInput.unlockingScriptLength}`);
66
- input.unlockingScript = asBsvSdkScript(spend.unlockingScript);
67
- if (spend.sequenceNumber !== undefined)
68
- input.sequence = spend.sequenceNumber;
69
- }
70
- const results = {
71
- sdk: {}
72
- };
73
- /////////////////////
74
- // Insert SABPPP unlock templates for storage signed inputs
75
- /////////////////////
76
- for (const pdi of prior.pdi) {
77
- const sabppp = new ScriptTemplateSABPPP({
78
- derivationPrefix: pdi.derivationPrefix,
79
- derivationSuffix: pdi.derivationSuffix,
80
- keyDeriver: signer.keyDeriver
81
- });
82
- const keys = signer.getClientChangeKeyPair();
83
- const lockerPrivKey = keys.privateKey;
84
- const unlockerPubKey = pdi.unlockerPubKey || keys.publicKey;
85
- const sourceSatoshis = pdi.sourceSatoshis;
86
- const lockingScript = asBsvSdkScript(pdi.lockingScript);
87
- const unlockTemplate = sabppp.unlock(lockerPrivKey, unlockerPubKey, sourceSatoshis, lockingScript);
88
- const input = prior.tx.inputs[pdi.vin];
89
- input.unlockingScriptTemplate = unlockTemplate;
90
- }
91
- /////////////////////
92
- // Sign storage signed inputs making transaction fully valid.
93
- /////////////////////
94
- await prior.tx.sign();
95
- return prior.tx;
96
- }
97
- function removeUnlockScripts(args) {
98
- let storageArgs = args;
99
- if (!storageArgs.inputs.every(i => i.unlockingScript === undefined)) {
100
- // Never send unlocking scripts to storage, all it needs is the script length.
101
- storageArgs = { ...args, inputs: [] };
102
- for (const i of args.inputs) {
103
- const di = {
104
- ...i,
105
- unlockingScriptLength: i.unlockingScript !== undefined ? i.unlockingScript.length : i.unlockingScriptLength
106
- };
107
- delete di.unlockingScript;
108
- storageArgs.inputs.push(di);
109
- }
110
- }
111
- return storageArgs;
112
- }
113
- export async function processActionSdk(prior, signer, vargs) {
114
- const params = {
115
- userId: vargs.userId, ////////////!!!!!!!!!!!!!!!!!!!!!!!!!!
116
- isNewTx: vargs.isNewTx,
117
- isSendWith: vargs.isSendWith,
118
- isNoSend: vargs.isNoSend,
119
- isDelayed: vargs.isDelayed,
120
- reference: prior ? prior.reference : undefined,
121
- txid: prior ? prior.tx.id('hex') : undefined,
122
- rawTx: prior ? prior.tx.toBinary() : undefined,
123
- sendWith: vargs.isSendWith ? vargs.options.sendWith : [],
124
- };
125
- const r = await signer.storage.processActionSdk(params);
126
- return r.sendWithResults;
127
- }
128
- function buildSignableTransaction(dctr, args, signer) {
129
- const changeKeys = signer.getClientChangeKeyPair();
130
- const { inputs: storageInputs, outputs: storageOutputs, } = dctr;
131
- const tx = new Transaction(args.version, [], [], args.lockTime);
132
- // The order of outputs in storageOutputs is always:
133
- // CreateActionArgs.outputs in the original order
134
- // Commission output
135
- // Change outputs
136
- // The Vout values will be randomized if args.options.randomizeOutputs is true. Default is true.
137
- const voutToIndex = Array(storageOutputs.length);
138
- for (let vout = 0; vout < storageOutputs.length; vout++) {
139
- const i = storageOutputs.findIndex(o => o.vout === vout);
140
- if (i < 0)
141
- throw new sdk.WERR_INVALID_PARAMETER('output.vout', `sequential. ${vout} is missing`);
142
- voutToIndex[vout] = i;
143
- }
144
- //////////////
145
- // Add OUTPUTS
146
- /////////////
147
- for (let vout = 0; vout < storageOutputs.length; vout++) {
148
- const i = voutToIndex[vout];
149
- const out = storageOutputs[i];
150
- if (vout !== out.vout)
151
- throw new sdk.WERR_INVALID_PARAMETER('output.vout', `equal to array index. ${out.vout} !== ${vout}`);
152
- const change = out.providedBy === 'storage' && out.purpose === 'change';
153
- const lockingScript = change ? makeChangeLock(out, dctr, args, changeKeys, signer) : asBsvSdkScript(out.lockingScript);
154
- const output = {
155
- satoshis: out.satoshis,
156
- lockingScript,
157
- change
158
- };
159
- tx.addOutput(output);
160
- }
161
- //////////////
162
- // Merge and sort INPUTS info by vin order.
163
- /////////////
164
- const inputs = [];
165
- for (const storageInput of storageInputs) {
166
- const argsInput = (storageInput.vin !== undefined && storageInput.vin < args.inputs.length) ? args.inputs[storageInput.vin] : undefined;
167
- inputs.push({ argsInput, storageInput });
168
- }
169
- inputs.sort((a, b) => a.storageInput.vin < b.storageInput.vin ? -1 : a.storageInput.vin === b.storageInput.vin ? 0 : 1);
170
- const pendingStorageInputs = [];
171
- //////////////
172
- // Add INPUTS
173
- /////////////
174
- let totalChangeInputs = 0;
175
- for (const { storageInput, argsInput } of inputs) {
176
- // Two types of inputs are handled: user specified wth/without unlockingScript and storage specified using SABPPP template.
177
- if (argsInput) {
178
- // Type 1: User supplied input, with or without an explicit unlockingScript.
179
- // If without, signAction must be used to provide the actual unlockScript.
180
- const hasUnlock = typeof argsInput.unlockingScript === 'string';
181
- const unlock = hasUnlock ? asBsvSdkScript(argsInput.unlockingScript) : new Script();
182
- const inputToAdd = {
183
- sourceTXID: argsInput.outpoint.txid,
184
- sourceOutputIndex: argsInput.outpoint.vout,
185
- unlockingScript: unlock,
186
- sequence: argsInput.sequenceNumber
187
- };
188
- tx.addInput(inputToAdd);
189
- }
190
- else {
191
- // Type2: SABPPP protocol inputs which are signed using ScriptTemplateSABPPP.
192
- if (storageInput.type !== 'P2PKH')
193
- throw new sdk.WERR_INVALID_PARAMETER('type', `vin ${storageInput.vin}, "${storageInput.type}" is not a supported unlocking script type.`);
194
- pendingStorageInputs.push({
195
- vin: tx.inputs.length,
196
- derivationPrefix: verifyTruthy(storageInput.derivationPrefix),
197
- derivationSuffix: verifyTruthy(storageInput.derivationSuffix),
198
- unlockerPubKey: storageInput.senderIdentityKey,
199
- sourceSatoshis: storageInput.sourceSatoshis,
200
- lockingScript: storageInput.sourceLockingScript
201
- });
202
- const inputToAdd = {
203
- sourceTXID: storageInput.sourceTxid,
204
- sourceOutputIndex: storageInput.sourceVout,
205
- unlockingScript: new Script(),
206
- sequence: 0xffffffff
207
- };
208
- tx.addInput(inputToAdd);
209
- totalChangeInputs += verifyTruthy(storageInput.sourceSatoshis);
210
- }
211
- }
212
- // The amount is the total of non-foreign inputs minus change outputs
213
- // Note that the amount can be negative when we are redeeming more inputs than we are spending
214
- const totalChangeOutputs = storageOutputs.filter(x => x.purpose === 'change').reduce((acc, el) => acc + el.satoshis, 0);
215
- const amount = totalChangeInputs - totalChangeOutputs;
216
- return {
217
- tx,
218
- amount,
219
- pdi: pendingStorageInputs,
220
- log: ''
221
- };
222
- }
223
- //# sourceMappingURL=createActionSdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createActionSdk.js","sourceRoot":"","sources":["../../../../src/wallet/createActionSdk.ts"],"names":[],"mappings":"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"}
@@ -1,174 +0,0 @@
1
- import { PrivateKey, PublicKey } from '@bsv/sdk';
2
- import { KeyDeriver } from './KeyDeriver';
3
- /**
4
- * A cached version of KeyDeriver that caches the results of key derivation methods.
5
- * This is useful for optimizing performance when the same keys are derived multiple times.
6
- * It supports configurable cache size with sane defaults and maintains cache entries using LRU (Least Recently Used) eviction policy.
7
- */
8
- export default class CachedKeyDeriver {
9
- keyDeriver;
10
- cache;
11
- maxCacheSize;
12
- /**
13
- * Initializes the CachedKeyDeriver instance with a root private key and optional cache settings.
14
- * @param {PrivateKey | 'anyone'} rootKey - The root private key or the string 'anyone'.
15
- * @param {Object} [options] - Optional settings for the cache.
16
- * @param {number} [options.maxCacheSize=1000] - The maximum number of entries to store in the cache.
17
- */
18
- constructor(rootKey, options) {
19
- this.keyDeriver = new KeyDeriver(rootKey);
20
- this.cache = new Map();
21
- this.maxCacheSize = options?.maxCacheSize || 1000;
22
- }
23
- /**
24
- * Derives a public key based on protocol ID, key ID, and counterparty.
25
- * Caches the result for future calls with the same parameters.
26
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
27
- * @param {string} keyID - The key identifier.
28
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
29
- * @param {boolean} [forSelf=false] - Whether deriving for self.
30
- * @returns {PublicKey} - The derived public key.
31
- */
32
- derivePublicKey(protocolID, keyID, counterparty, forSelf = false) {
33
- const cacheKey = this.generateCacheKey('derivePublicKey', protocolID, keyID, counterparty, forSelf);
34
- if (this.cache.has(cacheKey)) {
35
- return this.cacheGet(cacheKey);
36
- }
37
- else {
38
- const result = this.keyDeriver.derivePublicKey(protocolID, keyID, counterparty, forSelf);
39
- this.cacheSet(cacheKey, result);
40
- return result;
41
- }
42
- }
43
- /**
44
- * Derives a private key based on protocol ID, key ID, and counterparty.
45
- * Caches the result for future calls with the same parameters.
46
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
47
- * @param {string} keyID - The key identifier.
48
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
49
- * @returns {PrivateKey} - The derived private key.
50
- */
51
- derivePrivateKey(protocolID, keyID, counterparty) {
52
- const cacheKey = this.generateCacheKey('derivePrivateKey', protocolID, keyID, counterparty);
53
- if (this.cache.has(cacheKey)) {
54
- return this.cacheGet(cacheKey);
55
- }
56
- else {
57
- const result = this.keyDeriver.derivePrivateKey(protocolID, keyID, counterparty);
58
- this.cacheSet(cacheKey, result);
59
- return result;
60
- }
61
- }
62
- /**
63
- * Derives a symmetric key based on protocol ID, key ID, and counterparty.
64
- * Caches the result for future calls with the same parameters.
65
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
66
- * @param {string} keyID - The key identifier.
67
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
68
- * @returns {SymmetricKey} - The derived symmetric key.
69
- * @throws {Error} - Throws an error if attempting to derive a symmetric key for 'anyone'.
70
- */
71
- deriveSymmetricKey(protocolID, keyID, counterparty) {
72
- const cacheKey = this.generateCacheKey('deriveSymmetricKey', protocolID, keyID, counterparty);
73
- if (this.cache.has(cacheKey)) {
74
- return this.cacheGet(cacheKey);
75
- }
76
- else {
77
- const result = this.keyDeriver.deriveSymmetricKey(protocolID, keyID, counterparty);
78
- this.cacheSet(cacheKey, result);
79
- return result;
80
- }
81
- }
82
- /**
83
- * Reveals the shared secret between the root key and the counterparty.
84
- * Caches the result for future calls with the same parameters.
85
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
86
- * @returns {number[]} - The shared secret as a number array.
87
- * @throws {Error} - Throws an error if attempting to reveal a shared secret for 'self'.
88
- */
89
- revealCounterpartySecret(counterparty) {
90
- const cacheKey = this.generateCacheKey('revealCounterpartySecret', counterparty);
91
- if (this.cache.has(cacheKey)) {
92
- return this.cacheGet(cacheKey);
93
- }
94
- else {
95
- const result = this.keyDeriver.revealCounterpartySecret(counterparty);
96
- this.cacheSet(cacheKey, result);
97
- return result;
98
- }
99
- }
100
- /**
101
- * Reveals the specific key association for a given protocol ID, key ID, and counterparty.
102
- * Caches the result for future calls with the same parameters.
103
- * @param {Counterparty} counterparty - The counterparty's public key or a predefined value ('self' or 'anyone').
104
- * @param {WalletProtocol} protocolID - The protocol ID including a security level and protocol name.
105
- * @param {string} keyID - The key identifier.
106
- * @returns {number[]} - The specific key association as a number array.
107
- */
108
- revealSpecificSecret(counterparty, protocolID, keyID) {
109
- const cacheKey = this.generateCacheKey('revealSpecificSecret', counterparty, protocolID, keyID);
110
- if (this.cache.has(cacheKey)) {
111
- return this.cacheGet(cacheKey);
112
- }
113
- else {
114
- const result = this.keyDeriver.revealSpecificSecret(counterparty, protocolID, keyID);
115
- this.cacheSet(cacheKey, result);
116
- return result;
117
- }
118
- }
119
- /**
120
- * Generates a unique cache key based on the method name and input parameters.
121
- * @param {string} methodName - The name of the method.
122
- * @param {...any} args - The arguments passed to the method.
123
- * @returns {string} - The generated cache key.
124
- */
125
- generateCacheKey(methodName, ...args) {
126
- const serializedArgs = args.map((arg) => this.serializeArgument(arg)).join('|');
127
- return `${methodName}|${serializedArgs}`;
128
- }
129
- /**
130
- * Serializes an argument to a string for use in a cache key.
131
- * @param {any} arg - The argument to serialize.
132
- * @returns {string} - The serialized argument.
133
- */
134
- serializeArgument(arg) {
135
- if (arg instanceof PublicKey || arg instanceof PrivateKey) {
136
- return arg.toString();
137
- }
138
- else if (Array.isArray(arg)) {
139
- return arg.map((item) => this.serializeArgument(item)).join(',');
140
- }
141
- else if (typeof arg === 'object' && arg !== null) {
142
- return JSON.stringify(arg);
143
- }
144
- else {
145
- return String(arg);
146
- }
147
- }
148
- /**
149
- * Retrieves an item from the cache and updates its position to reflect recent use.
150
- * @param {string} cacheKey - The key of the cached item.
151
- * @returns {any} - The cached value.
152
- */
153
- cacheGet(cacheKey) {
154
- const value = this.cache.get(cacheKey);
155
- // Update the entry to reflect recent use
156
- this.cache.delete(cacheKey);
157
- this.cache.set(cacheKey, value);
158
- return value;
159
- }
160
- /**
161
- * Adds an item to the cache and evicts the least recently used item if necessary.
162
- * @param {string} cacheKey - The key of the item to cache.
163
- * @param {any} value - The value to cache.
164
- */
165
- cacheSet(cacheKey, value) {
166
- if (this.cache.size >= this.maxCacheSize) {
167
- // Evict the least recently used item (first item in Map)
168
- const firstKey = this.cache.keys().next().value;
169
- this.cache.delete(firstKey);
170
- }
171
- this.cache.set(cacheKey, value);
172
- }
173
- }
174
- //# sourceMappingURL=CachedKeyDeriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CachedKeyDeriver.js","sourceRoot":"","sources":["../../../../../src/wallet/sdk/CachedKeyDeriver.ts"],"names":[],"mappings":"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"}
@@ -1,181 +0,0 @@
1
- import { sdk } from '..';
2
- import { SymmetricKey, Utils } from "@bsv/sdk";
3
- import { Certificate } from './Certificate';
4
- import { WERR_INVALID_OPERATION } from './WERR_errors';
5
- export class CertOps extends Certificate {
6
- wallet;
7
- _keyring;
8
- _encryptedFields;
9
- _decryptedFields;
10
- constructor(wallet, wc) {
11
- super(wc.type, wc.serialNumber, wc.subject, wc.certifier, wc.revocationOutpoint, wc.fields, wc.signature);
12
- this.wallet = wallet;
13
- }
14
- static async fromCounterparty(wallet, e) {
15
- const c = new CertOps(wallet, e.certificate);
16
- // confirm cert verifies and decrypts.
17
- await c.verify();
18
- await c.decryptFields(e.counterparty, e.keyring);
19
- // un-decrypt
20
- c.fields = c._encryptedFields;
21
- return c;
22
- }
23
- static async fromCertifier(wallet, e) {
24
- return await CertOps.fromCounterparty(wallet, { counterparty: e.certificate.certifier, ...e });
25
- }
26
- static async fromEncrypted(wallet, wc, keyring) {
27
- const c = new CertOps(wallet, wc);
28
- c._keyring = keyring;
29
- c._encryptedFields = this.copyFields(c.fields);
30
- c._decryptedFields = await c.decryptFields();
31
- await c.verify();
32
- return c;
33
- }
34
- static async fromDecrypted(wallet, wc) {
35
- const c = new CertOps(wallet, wc);
36
- ({ fields: c._encryptedFields, keyring: c._keyring } = await c.encryptFields());
37
- c._decryptedFields = await c.decryptFields();
38
- return c;
39
- }
40
- static copyFields(fields) {
41
- const copy = {};
42
- for (const [n, v] of Object.entries(fields))
43
- copy[n] = v;
44
- return copy;
45
- }
46
- static getProtocolForCertificateFieldEncryption(serialNumber, fieldName) {
47
- return { protocolID: [2, 'certificate field encryption'], keyID: `${serialNumber} ${fieldName}` };
48
- }
49
- exportForSubject() {
50
- if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
51
- throw new WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`);
52
- const certificate = this.toWalletCertificate();
53
- const keyring = this._keyring;
54
- return { certificate, keyring };
55
- }
56
- toWalletCertificate() {
57
- const wc = {
58
- signature: '',
59
- ...this
60
- };
61
- return wc;
62
- }
63
- async encryptFields(counterparty = 'self') {
64
- const fields = this._decryptedFields || this.fields;
65
- const encryptedFields = {};
66
- const keyring = {};
67
- for (const fieldName of Object.keys(fields)) {
68
- const fieldSymmetricKey = SymmetricKey.fromRandom();
69
- const encryptedFieldValue = fieldSymmetricKey.encrypt(Utils.toArray(this.fields[fieldName], 'utf8'));
70
- encryptedFields[fieldName] = Utils.toBase64(encryptedFieldValue);
71
- const encryptedFieldKey = await this.wallet.encrypt({
72
- plaintext: fieldSymmetricKey.toArray(),
73
- counterparty,
74
- ...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
75
- });
76
- keyring[fieldName] = Utils.toBase64(encryptedFieldKey.ciphertext);
77
- }
78
- this._keyring = keyring;
79
- this._decryptedFields = fields;
80
- this.fields = this._encryptedFields = encryptedFields;
81
- return { fields: encryptedFields, keyring };
82
- }
83
- async decryptFields(counterparty, keyring) {
84
- keyring ||= this._keyring;
85
- const fields = this._encryptedFields || this.fields;
86
- const decryptedFields = {};
87
- if (!keyring)
88
- throw new sdk.WERR_INVALID_PARAMETER('keyring', 'valid');
89
- try {
90
- for (const fieldName of Object.keys(keyring)) {
91
- const { plaintext: fieldRevelationKey } = await this.wallet.decrypt({
92
- ciphertext: Utils.toArray(keyring[fieldName], 'base64'),
93
- counterparty: counterparty || this.subject,
94
- ...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
95
- });
96
- const fieldValue = new SymmetricKey(fieldRevelationKey).decrypt(Utils.toArray(fields[fieldName], 'base64'));
97
- decryptedFields[fieldName] = Utils.toUTF8(fieldValue);
98
- }
99
- this._keyring = keyring;
100
- this._encryptedFields = fields;
101
- this.fields = this._decryptedFields = decryptedFields;
102
- return decryptedFields;
103
- }
104
- catch (eu) {
105
- const e = sdk.WalletError.fromUnknown(eu);
106
- throw e;
107
- }
108
- }
109
- async exportForCounterparty(
110
- /** The incoming counterparty is who they are to us. */
111
- counterparty, fieldsToReveal) {
112
- if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
113
- throw new WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`);
114
- const certificate = this.toWalletCertificate();
115
- const keyring = await this.createKeyringForVerifier(counterparty, fieldsToReveal);
116
- // The exported counterparty is who we are to them...
117
- return { certificate, keyring, counterparty: this.wallet.keyDeriver.identityKey };
118
- }
119
- /**
120
- * Creates a verifiable certificate structure for a specific verifier, allowing them access to specified fields.
121
- * This method decrypts the master field keys for each field specified in `fieldsToReveal` and re-encrypts them
122
- * for the verifier's identity key. The resulting certificate structure includes only the fields intended to be
123
- * revealed and a verifier-specific keyring for field decryption.
124
- *
125
- * @param {sdk.PubKeyHex} verifierIdentityKey - The public identity key of the verifier who will receive access to the specified fields.
126
- * @param {sdk.CertificateFieldNameUnder50Bytes[]} fieldsToReveal - An array of field names to be revealed to the verifier. Must be a subset of the certificate's fields.
127
- * @param {sdk.OriginatorDomainNameStringUnder250Bytes} [originator] - Optional originator identifier, used if additional context is needed for decryption and encryption operations.
128
- * @returns {Promise<Record<sdk.CertificateFieldNameUnder50Bytes[], sdk.Base64String>} - A new certificate structure containing the original encrypted fields, the verifier-specific field decryption keyring, and essential certificate metadata.
129
- * @throws {WERR_INVALID_PARAMETER} Throws an error if:
130
- * - fieldsToReveal is empty or a field in `fieldsToReveal` does not exist in the certificate.
131
- * - The decrypted master field key fails to decrypt the corresponding field (indicating an invalid key).
132
- */
133
- async createKeyringForVerifier(verifierIdentityKey, fieldsToReveal, originator) {
134
- if (!this._keyring || !this._encryptedFields)
135
- throw new sdk.WERR_INVALID_OPERATION(`certificate must be encrypted`);
136
- if (!Array.isArray(fieldsToReveal) || fieldsToReveal.some(n => this._encryptedFields[n] === undefined))
137
- throw new sdk.WERR_INVALID_PARAMETER('fieldsToReveal', `an array of certificate field names`);
138
- const fieldRevelationKeyring = {};
139
- for (const fieldName of fieldsToReveal) {
140
- // Create a keyID
141
- const encryptedFieldKey = this._keyring[fieldName];
142
- const protocol = CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName);
143
- // Decrypt the master field key
144
- const { plaintext: fieldKey } = await this.wallet.decrypt({
145
- ciphertext: Utils.toArray(encryptedFieldKey, 'base64'),
146
- counterparty: this.certifier,
147
- ...protocol
148
- }, originator);
149
- // Verify that derived key actually decrypts requested field
150
- try {
151
- new SymmetricKey(fieldKey).decrypt(Utils.toArray(this.fields[fieldName], 'base64'));
152
- }
153
- catch (_) {
154
- throw new sdk.WERR_INTERNAL(`unable to decrypt field "${fieldName}" using derived field key.`);
155
- }
156
- // Encrypt derived fieldRevelationKey for verifier
157
- const { ciphertext: encryptedFieldRevelationKey } = await this.wallet.encrypt({
158
- plaintext: fieldKey,
159
- counterparty: verifierIdentityKey,
160
- ...protocol
161
- }, originator);
162
- // Add encryptedFieldRevelationKey to fieldRevelationKeyring
163
- fieldRevelationKeyring[fieldName] = Utils.toBase64(encryptedFieldRevelationKey);
164
- }
165
- // Return the field revelation keyring which can be used to create a verifiable certificate for a verifier.
166
- return fieldRevelationKeyring;
167
- }
168
- /**
169
- * encrypt plaintext field values for the subject
170
- * update the signature using the certifier's private key.
171
- */
172
- async encryptAndSignNewCertificate() {
173
- if (this.wallet.keyDeriver.identityKey !== this.certifier)
174
- throw new sdk.WERR_INVALID_PARAMETER('wallet', 'the certifier for new certificate issuance.');
175
- await this.encryptFields(this.subject);
176
- await this.sign(this.wallet);
177
- // Confirm the signed certificate verifies:
178
- await this.verify();
179
- }
180
- }
181
- //# sourceMappingURL=CertOps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CertOps.js","sourceRoot":"","sources":["../../../../../src/wallet/sdk/CertOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAMzB;IALX,QAAQ,CAAuD;IAC/D,gBAAgB,CAAiE;IACjF,gBAAgB,CAAuD;IAEvE,YACW,MAAwB,EAC/B,EAAyB;QAEzB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;QAHlG,WAAM,GAAN,MAAM,CAAkB;IAInC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACzB,MAAwB,EACxB,CAIC;QAID,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;QAC5C,sCAAsC;QACtC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;QAChB,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAChD,aAAa;QACb,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,gBAAiB,CAAA;QAC9B,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,MAAwB,EACxB,CAAwG;QAIxG,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,MAAwB,EACxB,EAAyB,EACzB,OAA6D;QAI7D,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACjC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAA;QACpB,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAC9C,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;QAC5C,MAAM,CAAC,CAAC,MAAM,EAAE,CAAA;QAChB,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,MAAwB,EACxB,EAAyB;QAGzB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,CAAA;QAC/E,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;QAC5C,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,UAAU,CAAI,MAAuD;QACxE,MAAM,IAAI,GAAoD,EAAE,CAAA;QAChE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,wCAAwC,CAAC,YAAoB,EAAE,SAAiB;QAGnF,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,8BAA8B,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,IAAI,SAAS,EAAE,EAAE,CAAA;IACrG,CAAC;IAED,gBAAgB;QAEZ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC1F,MAAM,IAAI,sBAAsB,CAAC,2DAA2D,CAAC,CAAA;QACjG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAS,CAAA;QAC9B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAA;IACnC,CAAC;IAED,mBAAmB;QACf,MAAM,EAAE,GAA0B;YAC9B,SAAS,EAAE,EAAE;YACb,GAAG,IAAI;SACV,CAAA;QACD,OAAO,EAAE,CAAA;IACb,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,eAAuC,MAAM;QAG7D,MAAM,MAAM,GAAyD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAA;QACzG,MAAM,eAAe,GAAmE,EAAE,CAAA;QAC1F,MAAM,OAAO,GAAmE,EAAE,CAAA;QAElF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,EAAE,CAAA;YACnD,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;YACpG,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,mBAA+B,CAAC,CAAA;YAE5E,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChD,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE;gBACtC,YAAY;gBACZ,GAAG,OAAO,CAAC,wCAAwC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;aACpF,CAAC,CAAA;YACF,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;QACrD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAA4B,EAAE,OAA8D;QAC5G,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAA;QACzB,MAAM,MAAM,GAAmE,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAA;QACnH,MAAM,eAAe,GAAyD,EAAE,CAAA;QAChF,IAAI,CAAC,OAAO;YACR,MAAM,IAAI,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAE5D,IAAI,CAAC;YACD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAChE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;oBACvD,YAAY,EAAE,YAAY,IAAI,IAAI,CAAC,OAAO;oBAC1C,GAAG,OAAO,CAAC,wCAAwC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;iBACpF,CAAC,CAAA;gBAEF,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAC3G,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,UAAsB,CAAC,CAAA;YACrE,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;YACvB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAA;YACrD,OAAO,eAAe,CAAA;QAC1B,CAAC;QAAC,OAAO,EAAW,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACzC,MAAM,CAAC,CAAA;QACX,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB;IACvB,uDAAuD;IACvD,YAA2B,EAC3B,cAAsD;QAQtD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC1F,MAAM,IAAI,sBAAsB,CAAC,2DAA2D,CAAC,CAAA;QACjG,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;QACjF,qDAAqD;QACrD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA;IACrF,CAAC;IAED;;;;;;;;;;;;;MAaE;IACF,KAAK,CAAC,wBAAwB,CAC1B,mBAAkC,EAClC,cAAsD,EACtD,UAAwD;QAIxD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACxC,MAAM,IAAI,GAAG,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,CAAA;QACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;YACnG,MAAM,IAAI,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAAA;QACjG,MAAM,sBAAsB,GAAG,EAAE,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACrC,iBAAiB;YACjB,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,wCAAwC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAE/F,+BAA+B;YAC/B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBACtD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;gBACtD,YAAY,EAAE,IAAI,CAAC,SAAS;gBAC5B,GAAG,QAAQ;aACd,EAAE,UAAU,CAAC,CAAA;YAEd,4DAA4D;YAC5D,IAAI,CAAC;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;YACvF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,4BAA4B,SAAS,4BAA4B,CAAC,CAAA;YAClG,CAAC;YAED,kDAAkD;YAClD,MAAM,EAAE,UAAU,EAAE,2BAA2B,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC1E,SAAS,EAAE,QAAQ;gBACnB,YAAY,EAAE,mBAAmB;gBACjC,GAAG,QAAQ;aACd,EAAE,UAAU,CAAC,CAAA;YAEd,4DAA4D;YAC5D,sBAAsB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAA;QACnF,CAAC;QAED,2GAA2G;QAC3G,OAAO,sBAAsB,CAAA;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,4BAA4B;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS;YACrD,MAAM,IAAI,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,6CAA6C,CAAC,CAAA;QAEjG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,2CAA2C;QAC3C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;IACvB,CAAC;CACJ"}