@laceio/sdk 0.1.0 → 0.1.1-canary.0

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 (408) hide show
  1. package/dist/{Ed25519PublicKey-lvu1s54U.cjs → Address-AMKTo-dA.cjs} +17150 -61
  2. package/dist/{Ed25519PublicKey-CjnuAYRR.js → Address-_c_-9hLC.js} +16955 -264
  3. package/dist/{Bip32Account-r3KAhCgU.js → Bip32Account-CaW1zC9Y.js} +4 -5
  4. package/dist/{Bip32Account-Cz3h0ZUa.cjs → Bip32Account-DOaGmKpv.cjs} +4 -5
  5. package/dist/Cardano-B-gyqBBD.js +311 -0
  6. package/dist/Cardano-BQ_af0Y3.cjs +322 -0
  7. package/dist/Ed25519PublicKey-B3QcR0J2.cjs +88 -0
  8. package/dist/Ed25519PublicKey-DIE19xHg.js +83 -0
  9. package/dist/InMemoryKeyAgent-Bc_xZY-v.cjs +652 -0
  10. package/dist/InMemoryKeyAgent-D8T3vtXy.js +631 -0
  11. package/dist/{PaymentAddress-DhbtuYb7.cjs → PaymentAddress-B4n1KZMx.cjs} +1 -2
  12. package/dist/{PaymentAddress-xSmGUQ-8.js → PaymentAddress-Cml3EA1n.js} +1 -2
  13. package/dist/Percent-Cfuw5YyL.cjs +11 -0
  14. package/dist/Percent-DpvyJ_93.js +5 -0
  15. package/dist/SodiumBip32Ed25519-BaD-kjyx.cjs +380 -0
  16. package/dist/SodiumBip32Ed25519-DCikAMsl.js +363 -0
  17. package/dist/{TransactionBuilder-CeJTNzm-.cjs → TransactionBuilder-BakTJvsJ.cjs} +59 -89
  18. package/dist/{TransactionBuilder-DGNDM4kt.js → TransactionBuilder-D2ErwVWv.js} +5 -71
  19. package/dist/_md-6zV2Cme0.cjs +684 -0
  20. package/dist/_md-gbUqlhqd.js +399 -0
  21. package/dist/_web-crypto-random-bytes-BvzwTYPG.js +197 -0
  22. package/dist/acc-module-NL_8mEHH.cjs +27654 -0
  23. package/dist/acc-module-ur8CkBd1.js +27624 -0
  24. package/dist/account-call-B7cF8ly4.cjs +293 -0
  25. package/dist/account-call-BF4rBcNw.js +3 -0
  26. package/dist/account-call-CoCq3V55.js +252 -0
  27. package/dist/account-call-DFcD257E.cjs +4 -0
  28. package/dist/account-guards-BeKbV9D1.cjs +41 -0
  29. package/dist/account-guards-qnFXuXSE.js +36 -0
  30. package/dist/{activity-type.stable-ClO9j_PH.cjs → activity-type-BPXxdHBP.cjs} +2 -1
  31. package/dist/{activity-type.stable-Ml0SOYv9.js → activity-type-C1geyPsH.js} +2 -1
  32. package/dist/address-OxwXIwbF.js +15502 -0
  33. package/dist/address-book-address-validator-BqYM0Uyp.cjs +41 -0
  34. package/dist/{address-book-address-validator-BhqRfmlL.cjs → address-book-address-validator-CGIcqn5W.cjs} +5 -4
  35. package/dist/{address-book-address-validator-VqIOB8PY.js → address-book-address-validator-FkkYim3z.js} +6 -4
  36. package/dist/address-book-address-validator-RSx2Jozy.js +39 -0
  37. package/dist/address-lECYBd9-.cjs +13043 -0
  38. package/dist/{apply-vkey-witnesses-Ctzk7eye.cjs → apply-vkey-witnesses-1jyczTkw.cjs} +1 -1
  39. package/dist/{apply-vkey-witnesses-Dfo7XfhL.js → apply-vkey-witnesses-Byb40-yJ.js} +1 -1
  40. package/dist/artefact-loader-Cqc9eSkL.cjs +182 -0
  41. package/dist/artefact-loader-D0T2f6F7.js +159 -0
  42. package/dist/auto-dismiss-failure-on-success-BWJceNXd.cjs +37 -0
  43. package/dist/auto-dismiss-failure-on-success-Bpod-v4r.js +31 -0
  44. package/dist/bip32-EPpcFrpH.cjs +3851 -0
  45. package/dist/{bip32ed25519-D2In8WzR.cjs → bip32ed25519-CRiG-Kjg.cjs} +5 -4
  46. package/dist/{bip32ed25519-qsLH_eWO.js → bip32ed25519-E-fCUZNv.js} +6 -4
  47. package/dist/bip39-DZomfqeY.js +9 -0
  48. package/dist/bip39-MAck9iod.cjs +26 -0
  49. package/dist/bitcoin-data-provider-D0OT_Uiu.cjs +26 -0
  50. package/dist/bitcoin-data-provider-LN_8oamW.js +21 -0
  51. package/dist/bitcoin.cjs +48 -0
  52. package/dist/bitcoin.d.ts +29805 -1
  53. package/dist/bitcoin.js +22 -0
  54. package/dist/{blake2b-BGHUWMsV.js → blake2b-BL-eR5G2.js} +6 -4
  55. package/dist/{blake2b-DspUqw68.cjs → blake2b-Iy324FwH.cjs} +5 -4
  56. package/dist/{blockfrost-tx-submit-provider-BUEOmdvc.js → blockfrost-tx-submit-provider-BHDLgOIE.js} +9 -162
  57. package/dist/{blockfrost-tx-submit-provider-B5dWbdrZ.cjs → blockfrost-tx-submit-provider-BxC19smv.cjs} +7 -171
  58. package/dist/{blockingWithLatestFrom-BhaE7pnA.js → blockingWithLatestFrom-FUfZFEUG.js} +1 -1
  59. package/dist/{blockingWithLatestFrom-DkuT3G2a.cjs → blockingWithLatestFrom-bmCPgA3c.cjs} +1 -1
  60. package/dist/bn-BFq5a4dk.cjs +2553 -0
  61. package/dist/{SodiumBip32Ed25519-BEfo1Q9m.js → browser-D5jRKv_L.js} +4 -401
  62. package/dist/bytes.vo-CziaOsba.js +24 -0
  63. package/dist/bytes.vo-hecRu3YZ.cjs +35 -0
  64. package/dist/{cardano-network-id-to-network-type-PXvn1ycQ.cjs → cardano-network-id-to-network-type-BwG_d6QP.cjs} +1 -1
  65. package/dist/{cardano-network-id-to-network-type-DHgKhDAK.js → cardano-network-id-to-network-type-CYJheetp.js} +1 -1
  66. package/dist/{cardano-network-id.vo-CbNNKd-k.cjs → cardano-network-id.vo-C5VuBXT3.cjs} +2 -2
  67. package/dist/{cardano-network-id.vo-CTYe-Oix.js → cardano-network-id.vo-CeLJqmb_.js} +2 -2
  68. package/dist/{cardano-tx-id.vo-BMwemq5x.js → cardano-tx-id.vo-DJ70NC0-.js} +1 -1
  69. package/dist/{cardano-tx-id.vo-NY-gCOWJ.cjs → cardano-tx-id.vo-lnyO9XaW.cjs} +1 -1
  70. package/dist/cardano.cjs +31 -24
  71. package/dist/cardano.d.ts +27602 -8121
  72. package/dist/cardano.js +21 -13
  73. package/dist/client-Bw2foG5E.cjs +808 -0
  74. package/dist/const-BB3MccLt.js +153 -0
  75. package/dist/{const-BErUlcZw.cjs → const-BWBAzOmN.cjs} +1 -1
  76. package/dist/const-CSWmOyzn.cjs +42 -0
  77. package/dist/{const-Dy8Ctnpd.cjs → const-D3mCkwrM.cjs} +5 -5
  78. package/dist/const-DW7z3R5k.js +13 -0
  79. package/dist/{const-DeUA7zYl.js → const-DbuUHSzR.js} +5 -5
  80. package/dist/const-DgBzKfz6.cjs +31995 -0
  81. package/dist/{const-DVW6DGkZ.js → const-xGSNCtwQ.js} +1 -1
  82. package/dist/contract-BsIGhsYa.js +171 -0
  83. package/dist/contract-DD6CGnpB.cjs +189 -0
  84. package/dist/create-add-accounts-2mQA0ST2.js +102 -0
  85. package/dist/create-add-accounts-B6mR2NMn.cjs +114 -0
  86. package/dist/{delegation-tx-builder-CF0VunDW.cjs → delegation-tx-builder-Cp30jtj9.cjs} +9 -8
  87. package/dist/{delegation-tx-builder-C8LQxU2R.js → delegation-tx-builder-DUMikSTg.js} +9 -7
  88. package/dist/{deregistration-tx-builder-DcUXA3Ls.cjs → deregistration-tx-builder-B-ZeY-dR.cjs} +10 -9
  89. package/dist/{deregistration-tx-builder-BOBPP8m_.js → deregistration-tx-builder-CRLrK99U.js} +10 -8
  90. package/dist/device-commitment-hex.vo-BIUYUNz1.cjs +31 -0
  91. package/dist/device-commitment-hex.vo-D9FsYLn7.js +26 -0
  92. package/dist/device-key-BToCoS4D.js +2394 -0
  93. package/dist/device-key-D6euvxFi.cjs +2489 -0
  94. package/dist/device-readers-BHJeNR8I.js +3 -0
  95. package/dist/device-readers-Dw7uTNM5.cjs +167 -0
  96. package/dist/device-readers-b4g2j3QL.js +144 -0
  97. package/dist/device-readers-cxcJcWq5.cjs +7 -0
  98. package/dist/dist-B00GN41m.js +141 -0
  99. package/dist/dist-BA1xnF9O.cjs +4413 -0
  100. package/dist/dist-BmHOXLe8.cjs +3814 -0
  101. package/dist/dist-Br0OVXKt.cjs +535 -0
  102. package/dist/dist-C1JK9C1I.cjs +3452 -0
  103. package/dist/dist-DKEViNEI.cjs +1306 -0
  104. package/dist/dist-Dwqx184a.cjs +43175 -0
  105. package/dist/dist-MJof_Ky1.cjs +145 -0
  106. package/dist/dist-p84sVVJ9.cjs +1394 -0
  107. package/dist/{earn-rewards-tx-builder-BRlTueHS.js → earn-rewards-tx-builder-8G_rouIk.js} +9 -7
  108. package/dist/{earn-rewards-tx-builder-RgO0QUY8.cjs → earn-rewards-tx-builder-cOUNV58E.cjs} +9 -8
  109. package/dist/enc-key-circuits-0Dud78IB.js +13 -0
  110. package/dist/enc-key-circuits-yjPHbuo_.cjs +24 -0
  111. package/dist/english-BZ_ebp2-.cjs +2057 -0
  112. package/dist/envelopes-B3QCzo5p.js +2658 -0
  113. package/dist/envelopes-BdE1xlgz.cjs +2777 -0
  114. package/dist/errors-BA3b8aVu.cjs +584 -0
  115. package/dist/errors-pkQdxW-7.js +392 -0
  116. package/dist/experimental.cjs +6820 -0
  117. package/dist/experimental.d.ts +63552 -0
  118. package/dist/experimental.js +6670 -0
  119. package/dist/fees-6C2uEWFK.js +653 -0
  120. package/dist/fees-DtC71fOx.cjs +820 -0
  121. package/dist/gated-call-BrPjKolT.js +3 -0
  122. package/dist/gated-call-CcsuW9L5.js +691 -0
  123. package/dist/gated-call-DdDrxEq5.cjs +732 -0
  124. package/dist/gated-call-Dk7PazhG.cjs +4 -0
  125. package/dist/grant-rules-B7eDuD5G.cjs +5468 -0
  126. package/dist/grant-rules-qLrKUIR3.js +5217 -0
  127. package/dist/grant-status-CDmZpx32.js +296 -0
  128. package/dist/grant-status-CQtwjLsA.cjs +337 -0
  129. package/dist/grants-Bnb-3Hkv.cjs +16 -0
  130. package/dist/grants-CIb6nOV7.cjs +273 -0
  131. package/dist/grants-CYY0AquW.js +202 -0
  132. package/dist/grants-DOsFSotP.js +4 -0
  133. package/dist/{group-cardano-addresses-by-account-C-1GHUu8.cjs → group-cardano-addresses-by-account-BGOtPV-Y.cjs} +4 -40
  134. package/dist/{group-cardano-addresses-by-account-p4dXmCoj.js → group-cardano-addresses-by-account-TqvESg9x.js} +6 -37
  135. package/dist/{guarded-transaction-signer-DZSGHp1K.js → guarded-transaction-signer-BbVDE9Nn.js} +12 -18
  136. package/dist/{guarded-transaction-signer-BLSezbfV.cjs → guarded-transaction-signer-DTLjAkif.cjs} +26 -26
  137. package/dist/hex-BVtOKJki.cjs +263 -0
  138. package/dist/hex-CGYJPK_Z.js +192 -0
  139. package/dist/http-client-B7_kBTYn.js +155 -0
  140. package/dist/http-client-DYQ_7Rdf.cjs +167 -0
  141. package/dist/identity-DxPhxkZs.js +239 -0
  142. package/dist/identity-y41Yle03.cjs +274 -0
  143. package/dist/in-memory-wallet-integration-5BKiAvPT.js +20861 -0
  144. package/dist/{in-memory-wallet-integration-CUTa68ET.js → in-memory-wallet-integration-BCOqDgbt.js} +10 -107
  145. package/dist/in-memory-wallet-integration-Bi8I9Dso.js +128 -0
  146. package/dist/in-memory-wallet-integration-Bsl2ONua.cjs +239 -0
  147. package/dist/in-memory-wallet-integration-DZ0CAyvY.cjs +20865 -0
  148. package/dist/{in-memory-wallet-integration-Dw_S7amX.cjs → in-memory-wallet-integration-DsFm8gLk.cjs} +21 -112
  149. package/dist/{in-memory-wallet-integration-Z4Bp_DTv.cjs → in-memory-wallet-integration-aW_SF-go.cjs} +8 -5
  150. package/dist/{in-memory-wallet-integration-B6cbAlvD.js → in-memory-wallet-integration-mIEc8EfR.js} +9 -5
  151. package/dist/index.cjs +95 -58
  152. package/dist/index.d.ts +45152 -13448
  153. package/dist/index.js +55 -28
  154. package/dist/{init-CVi8J0zk.cjs → init-5SfWgCYD.cjs} +3 -3
  155. package/dist/{init-Ci7aqWCf2.cjs → init-8NVWbo302.cjs} +2 -2
  156. package/dist/init-B-C7n6u6.js +5 -0
  157. package/dist/{init-BFMWRf-L.js → init-B-ppfGO-.js} +1 -1
  158. package/dist/{init-IiR093Jw.cjs → init-B2OUhY5T.cjs} +2 -2
  159. package/dist/{init-DXnus199.cjs → init-B6Eg_o6G.cjs} +5 -5
  160. package/dist/{init-4hDl5bpr.js → init-BAWMHL1k.js} +2 -2
  161. package/dist/init-BC2CZZOu2.cjs +2002 -0
  162. package/dist/{init-a228hXnS.cjs → init-BF-a2p6E.cjs} +65 -73
  163. package/dist/{init-fFirX8OY.cjs → init-BFxlQAD8.cjs} +1 -1
  164. package/dist/init-BJE1ry0O.js +17 -0
  165. package/dist/{init-BVnI4z2J.js → init-BPKBVOHU.js} +2 -2
  166. package/dist/{init-bdqZBd-o.js → init-BSP_xcpB.js} +2 -2
  167. package/dist/{init-CFNOn3lo.js → init-BSd7mznK.js} +3 -3
  168. package/dist/{init-MjR4swi6.js → init-BUJTT0MN.js} +36 -43
  169. package/dist/init-BUpFzYsD.cjs +143 -0
  170. package/dist/{init-BvpYHyLH.cjs → init-BZ-WyAIL.cjs} +3 -3
  171. package/dist/init-BZdfdLX7.js +422 -0
  172. package/dist/{init-CJeOys1w.cjs → init-B_HWNXMD.cjs} +2 -2
  173. package/dist/init-BbIMt6xU.cjs +6 -0
  174. package/dist/{init-BYdN1aqE.cjs → init-BewG6swt.cjs} +2 -2
  175. package/dist/{init-BX0AZAVH2.js → init-Bilqsbng.js} +2 -2
  176. package/dist/{init-Tpn9VkFu.cjs → init-BpwlQ6wF.cjs} +1 -1
  177. package/dist/{init-D5-P0HXK.js → init-BtQOzUjX.js} +1 -1
  178. package/dist/{init-BvGz3qUd2.js → init-CCTscPaY2.js} +2 -2
  179. package/dist/{init-D4hPipCD.cjs → init-CH0yyBof.cjs} +1 -1
  180. package/dist/init-CaIkrXal.cjs +121 -0
  181. package/dist/init-CkZy4IMf.cjs +107 -0
  182. package/dist/{init-Drr2f_Pr.js → init-CmfcY7SV.js} +1 -1
  183. package/dist/{init-Kf3_OLv6.js → init-CnJAlks_.js} +1 -1
  184. package/dist/{init-Cdjt_z-b.cjs → init-CqqmtAIK.cjs} +4 -4
  185. package/dist/{init-Bb0avZeZ.js → init-Cu2znmIc.js} +5 -5
  186. package/dist/init-Cz5LAizN.js +2001 -0
  187. package/dist/init-D4WM3-Mn.cjs +18 -0
  188. package/dist/init-DMi2FGpf.cjs +424 -0
  189. package/dist/{init-lcaUSOOG.js → init-DPTJohPd.js} +1 -1
  190. package/dist/{init-BTYLMF9F2.cjs → init-DexLSprL2.cjs} +258 -61
  191. package/dist/init-DfKPgD21.js +106 -0
  192. package/dist/init-DgzRsI-C.js +141 -0
  193. package/dist/init-Dj4Cn7-P.js +4789 -0
  194. package/dist/init-DktAnYI0.cjs +2354 -0
  195. package/dist/{init-DFwhgert.cjs → init-DmyuM9Lo.cjs} +1 -1
  196. package/dist/{init-CX_zLXc6.js → init-IBnizp1U.js} +5 -5
  197. package/dist/init-MDKB6tGI2.cjs +4790 -0
  198. package/dist/{init-DbZ5byj42.js → init-TbB38KNt2.js} +258 -60
  199. package/dist/init-X6m_cqDy.js +2353 -0
  200. package/dist/{init-DvVgKCaP2.cjs → init-bzvl1JhF.cjs} +2 -2
  201. package/dist/{init-BgrY29gW.js → init-dsYkC_0B.js} +4 -4
  202. package/dist/{init-B5BsI3DR.cjs → init-kvn5FlPS.cjs} +7 -7
  203. package/dist/init-vfy9DW_E.js +119 -0
  204. package/dist/{init-BE_6Jyc4.js → init-w7xl6LsP.js} +3 -3
  205. package/dist/{init-DEsWVyn5.cjs → init-wgiBUmyW.cjs} +1 -1
  206. package/dist/{is-retriable-error-DWv_ob-f.js → is-retriable-error-CmFR20pe.js} +1 -1
  207. package/dist/{is-retriable-error-Dtb4JGjd.cjs → is-retriable-error-D2yo0_lS.cjs} +1 -1
  208. package/dist/jubjub-authoriser-A2c8vmkN.js +84 -0
  209. package/dist/jubjub-authoriser-D3ZDgzcF.cjs +85 -0
  210. package/dist/key-source-CcLTx8HK.js +2761 -0
  211. package/dist/key-source-D2tTAag-.cjs +806 -0
  212. package/dist/{key-value-store-DTX1quRS.js → key-value-store-DZcNDB3n.js} +1 -1
  213. package/dist/{key-value-store-B-XRIwaM.cjs → key-value-store-Htj4RgMe.cjs} +1 -1
  214. package/dist/keyDerivation-DcKRUCVh.cjs +274 -0
  215. package/dist/keyDerivation-QGesIMbS.js +4077 -0
  216. package/dist/{lace-context-FpU3iG3f.cjs → lace-context-BN0b_ury.cjs} +4 -4
  217. package/dist/{lace-context-BQvvxVLm.js → lace-context-DMRJ87Vg.js} +4 -4
  218. package/dist/lib-BC-62Byh.cjs +2359 -0
  219. package/dist/lib-JYqcAX0c.js +2354 -0
  220. package/dist/midnight-account-id.vo--Vcx34Xk.cjs +10 -0
  221. package/dist/midnight-account-id.vo-BuB8fiVO.js +5 -0
  222. package/dist/midnight-engine-B7D2hbHo.js +5 -0
  223. package/dist/midnight-engine-D5ikN_5F.cjs +6 -0
  224. package/dist/midnight-wallet-BOdFD6SX.cjs +24 -0
  225. package/dist/midnight-wallet-CAqZrNVe.js +18 -0
  226. package/dist/midnight.cjs +1412 -0
  227. package/dist/midnight.d.ts +28609 -0
  228. package/dist/midnight.js +1355 -0
  229. package/dist/modules-cardano-BiL9hoM3.js +996 -0
  230. package/dist/modules-cardano-UeXks3sd.cjs +1109 -0
  231. package/dist/node-relay-BOuvdZvC.cjs +49 -0
  232. package/dist/node-relay-CLtc5n1v.js +48 -0
  233. package/dist/outputs-5qdW8s-f.js +196 -0
  234. package/dist/outputs-BEM1GPMf.cjs +339 -0
  235. package/dist/{SodiumBip32Ed25519-BQUcrQWX.cjs → pbkdf2-B1veireP.cjs} +6 -411
  236. package/dist/pending-operation-CfTUNQVD.cjs +26 -0
  237. package/dist/pending-operation-Ljijb1Uh.js +21 -0
  238. package/dist/providers-1on_fwJO.cjs +364 -0
  239. package/dist/providers-C1MsxfMA.js +341 -0
  240. package/dist/redacted-4SJPqt-G.js +81 -0
  241. package/dist/redacted-DwxIDdIF.cjs +86 -0
  242. package/dist/{reselect-DPML1uFN.cjs → reselect-kP4DaAII.cjs} +1 -1
  243. package/dist/{retry-config-oNtfdyrG.cjs → retry-config-BGv5q5QM.cjs} +1 -1
  244. package/dist/{retry-config-VdbuqBsI.js → retry-config-Bu5Yn5ua.js} +1 -1
  245. package/dist/safe-buffer-CqGpSFCQ.js +43 -0
  246. package/dist/safe-buffer-DbXbwhUQ.cjs +48 -0
  247. package/dist/sdk-1SRu8Ype.cjs +1445 -0
  248. package/dist/sdk-BneJm7ey.js +1249 -0
  249. package/dist/sdk-init-9TG1ZvHF.cjs +3795 -0
  250. package/dist/sdk-init-Ce3mD-8F.js +1047 -0
  251. package/dist/secret-box-CSmRp6Tt.js +3777 -0
  252. package/dist/secret-box-ZfbYwBgS.cjs +6970 -0
  253. package/dist/send-proof-progress-DtAcrMP6.cjs +33 -0
  254. package/dist/send-proof-progress-Dx2cUz1B.js +22 -0
  255. package/dist/sha2-DaRJZOjk.cjs +390 -0
  256. package/dist/sha2-c4sB6peD.js +378 -0
  257. package/dist/side-effects-C3BhLrdP.js +768 -0
  258. package/dist/side-effects-DG0R-KFc.cjs +804 -0
  259. package/dist/sign-bitcoin-transaction-with-seed-C7vq9om8.js +147 -0
  260. package/dist/sign-bitcoin-transaction-with-seed-Ds1dwzan.cjs +158 -0
  261. package/dist/signer--2I6poMD.js +2 -0
  262. package/dist/signer-CX21Ups_.cjs +121 -0
  263. package/dist/signer-Cnn9q9oY.js +92 -0
  264. package/dist/signer-DbSxjk0F.cjs +7 -0
  265. package/dist/signer-factory-B5oFuUZ-.cjs +130 -0
  266. package/dist/signer-factory-BAt8FPNc.cjs +281 -0
  267. package/dist/signer-factory-BGE4nL4k.js +129 -0
  268. package/dist/signer-factory-C4pgsiJi.js +281 -0
  269. package/dist/{signer-factory-DySc1wRX.cjs → signer-factory-D95jQIPV.cjs} +9 -6
  270. package/dist/{signer-factory-D4HrwFPl.js → signer-factory-PrpsGX-8.js} +10 -6
  271. package/dist/{slice-BZTQgYSs.js → slice-B-xJcuT1.js} +4 -4
  272. package/dist/slice-B4QOYaOG.cjs +105 -0
  273. package/dist/{slice-CtIMw2YT.cjs → slice-B9QKuhi0.cjs} +3 -3
  274. package/dist/slice-BKnGkAkd.cjs +9031 -0
  275. package/dist/{slice-Bhwmqn1p.cjs → slice-Bf4enJKZ.cjs} +8 -8
  276. package/dist/{slice-DaNVz7_l.js → slice-ByNWnxKS.js} +8 -8
  277. package/dist/{slice-C2UDQrdt.js → slice-C1zOeseG.js} +449 -355
  278. package/dist/{slice-DFLyKRm5.cjs → slice-C4toRM6A.cjs} +2 -2
  279. package/dist/{slice-Cx4dULDA.cjs → slice-C8YVv4Qn.cjs} +1 -1
  280. package/dist/{slice-jnpOgiSZ.cjs → slice-CaMfviYu.cjs} +3 -3
  281. package/dist/{slice-DFvrwUur.js → slice-CgeRsYRg.js} +6 -6
  282. package/dist/slice-Cwt8jShq.js +9013 -0
  283. package/dist/{slice-zNEspZND.js → slice-D0VzpMbY.js} +2 -2
  284. package/dist/slice-D14F78Ca.js +87 -0
  285. package/dist/{slice-F6A1YKOF.cjs → slice-DLflttAu.cjs} +479 -366
  286. package/dist/{slice-C96EdeY1.js → slice-DcO-iNz2.js} +1 -1
  287. package/dist/{slice-C19quNWM.cjs → slice-DimtxfAT.cjs} +2 -2
  288. package/dist/{slice-KiNoGwD9.js → slice-DlTEqIoI.js} +1 -1
  289. package/dist/{slice-ws8PccRX.js → slice-Dn0WojD7.js} +3 -3
  290. package/dist/{slice-BLSxLmie.cjs → slice-Dongunf7.cjs} +4 -4
  291. package/dist/{slice-B6vPum19.js → slice-DpufJAjJ.js} +2 -2
  292. package/dist/{slice-exhhmucR.cjs → slice-DtitVc9L.cjs} +7 -7
  293. package/dist/{slice-Bjj2t2ut.cjs → slice-WMMMc1Xv.cjs} +2 -2
  294. package/dist/slice-a8VuIqzS.cjs +378 -0
  295. package/dist/slice-bRASyM-m.js +354 -0
  296. package/dist/{slice-CBFrgHSH.js → slice-hNyKbDry.js} +3 -3
  297. package/dist/{InMemoryKeyAgent-pyB2gA-N.cjs → src-BayYMIjw.cjs} +20 -8228
  298. package/dist/{InMemoryKeyAgent-D-3HejxN.js → src-CgINPlSx.js} +29 -4811
  299. package/dist/store-AUlTfcI_.js +37 -0
  300. package/dist/store-C7AneHEY.cjs +66 -0
  301. package/dist/submit-BuBCVi-l.cjs +87 -0
  302. package/dist/submit-D37lxFrK.js +70 -0
  303. package/dist/submit-bitcoin-tx-DFLnhidO.js +983 -0
  304. package/dist/submit-bitcoin-tx-sih2hSfb.cjs +1049 -0
  305. package/dist/{subtractValueQuantities-DfZg6oiG.js → subtractValueQuantities-BuDJVxq6.js} +3 -22
  306. package/dist/{subtractValueQuantities-C8qDTtgH.cjs → subtractValueQuantities-CqR606HV.cjs} +2 -32
  307. package/dist/{sync-operation-utils-BrQyWFS_.cjs → sync-operation-utils--Z_IQfyW.cjs} +0 -66
  308. package/dist/{sync-operation-utils-CAaCGvEN.js → sync-operation-utils-BimBpvI3.js} +1 -37
  309. package/dist/token-color.vo-CItgoOjw.js +26 -0
  310. package/dist/token-color.vo-Ca4hUXfh.cjs +37 -0
  311. package/dist/token-id-mapper-BVau2RXa.js +16 -0
  312. package/dist/token-id-mapper-CSeLzM4o.cjs +18 -0
  313. package/dist/{token-id-mapper-pDaTxpw2.js → token-id-mapper-ClBeIdJR.js} +2 -2
  314. package/dist/{token-id-mapper-DYcd8hhQ.cjs → token-id-mapper-D0wFdbOy.cjs} +2 -2
  315. package/dist/types-BhzypKMS.cjs +15 -0
  316. package/dist/types-DTE1ctDB.js +10 -0
  317. package/dist/types-DXSxXGz0.js +12 -0
  318. package/dist/types-Dls6Z5gV.cjs +23 -0
  319. package/dist/{util-P4PX2muj.cjs → util-D1YlKzrc.cjs} +2 -2
  320. package/dist/{util-CQSJU0wT.js → util-DHxtzUzY.js} +2 -2
  321. package/dist/{utils-Bv4OHT4S.cjs → utils-DYf4iZKX.cjs} +7 -1
  322. package/dist/{utils-DrtzChYN.js → utils-DcnoETEP.js} +2 -2
  323. package/dist/utils-Du0YXRcU.cjs +112 -0
  324. package/dist/utils-fF_rnZe3.js +65 -0
  325. package/dist/v8Signatures-ClGpA8mS.cjs +71 -0
  326. package/dist/{vote-delegation-tx-builder-69gOEkCB.cjs → vote-delegation-tx-builder-BjZxCOd3.cjs} +9 -8
  327. package/dist/{vote-delegation-tx-builder-BRJ_pf-c.js → vote-delegation-tx-builder-DRJwPXkD.js} +9 -7
  328. package/dist/watch-FGE4B_Ge.js +13056 -0
  329. package/dist/watch-imlsRZDp.cjs +52207 -0
  330. package/package.json +95 -3
  331. package/dist/Address-4KjeDt_x.cjs +0 -17269
  332. package/dist/Address-_VPkf7Xh.js +0 -17101
  333. package/dist/account-guards.stable-BKyYPj4z.cjs +0 -10
  334. package/dist/account-guards.stable-BdmQ43vC.js +0 -5
  335. package/dist/init-BR9ZIbED.cjs +0 -378
  336. package/dist/init-B_k1RUN_.cjs +0 -21
  337. package/dist/init-Bs3b5ZQH.js +0 -378
  338. package/dist/init-ChfcrHgG2.cjs +0 -4354
  339. package/dist/init-D1uUMMpG.js +0 -19
  340. package/dist/init-DV1OSZiK.js +0 -4352
  341. package/dist/modules-cardano-BINzpXpk.js +0 -5454
  342. package/dist/modules-cardano-Dt8OwoQb.cjs +0 -5640
  343. package/dist/slice-Caf98m0d2.js +0 -107
  344. package/dist/slice-PM6llajQ2.cjs +0 -125
  345. /package/dist/{BigIntMath-CoJWXt1h.cjs → BigIntMath-CBciEQn2.cjs} +0 -0
  346. /package/dist/{BigIntMath-BWUJOsOW.js → BigIntMath-X3EniYDo.js} +0 -0
  347. /package/dist/{ChainId-sdLmlIRk.cjs → ChainId-CNPSU9nn.cjs} +0 -0
  348. /package/dist/{ChainId-CKbm87yQ.js → ChainId-CeoG8Sov.js} +0 -0
  349. /package/dist/{_polyfill-node.process-4fnlkbBi.cjs → _polyfill-node.process-5UxyjoHG.cjs} +0 -0
  350. /package/dist/{account-id.vo-Xpgnu-av.cjs → account-id.vo-DYZBZQsz.cjs} +0 -0
  351. /package/dist/{account-id.vo-DP0BtOoF.js → account-id.vo-KDTWJ-W5.js} +0 -0
  352. /package/dist/{actions-BNagEO6m.cjs → actions-BnHFVSr_.cjs} +0 -0
  353. /package/dist/{actions-BWTyAr7B.js → actions-Cwj0ApZf.js} +0 -0
  354. /package/dist/{asyncoption-po7-RiA5.cjs → asyncoption-CYcZNBRM.cjs} +0 -0
  355. /package/dist/{asyncoption-CzIVH5Y1.js → asyncoption-DZQGfznq.js} +0 -0
  356. /package/dist/{bignum.vo-DhhZ9HP1.js → bignum.vo-Co6tMH2q.js} +0 -0
  357. /package/dist/{bignum.vo-CpkrIXjH.cjs → bignum.vo-Du-bpvar.cjs} +0 -0
  358. /package/dist/{blockchain-network-id.vo-CbgrAY_K.js → blockchain-network-id.vo-C6Jowh8t.js} +0 -0
  359. /package/dist/{blockchain-network-id.vo-5iC6Kffo.cjs → blockchain-network-id.vo-DEQ14dYj.cjs} +0 -0
  360. /package/dist/{composite-signer-factory-DABpCe1_.js → composite-signer-factory-D9RWY-1V.js} +0 -0
  361. /package/dist/{composite-signer-factory-BizuNPP7.cjs → composite-signer-factory-v4Pxn8bA.cjs} +0 -0
  362. /package/dist/{error-ggOihIfv.cjs → error-B6wj9nPv.cjs} +0 -0
  363. /package/dist/{error-DHKO2iS4.js → error-CvEYL98P.js} +0 -0
  364. /package/dist/{esm-browser-DnXNvpcn.cjs → esm-browser-CZbMeVod.cjs} +0 -0
  365. /package/dist/{esm-browser-BBVQuyQv.js → esm-browser-DpAD_RKv.js} +0 -0
  366. /package/dist/{feature-flag-key.vo-DoGK5Bfh.js → feature-flag-key.vo-9reURsOQ.js} +0 -0
  367. /package/dist/{feature-flag-key.vo-CP1Z9s8e.cjs → feature-flag-key.vo-KTIdnzYX.cjs} +0 -0
  368. /package/dist/{first-state-of-status-Bx4-QQ5m.cjs → first-state-of-status-9ICeDNSa.cjs} +0 -0
  369. /package/dist/{first-state-of-status-D7XzEuSa.js → first-state-of-status-BscbKj_t.js} +0 -0
  370. /package/dist/{init-4319psUJ.cjs → init-BT67pd9x.cjs} +0 -0
  371. /package/dist/{init-AFUM1TSg.js → init-CHk1fvJ2.js} +0 -0
  372. /package/dist/{init-ZX90nEJe2.js → init-DIyNx6DZ.js} +0 -0
  373. /package/dist/{init-CTQ2g6Xt.js → init-DtxxFaCx.js} +0 -0
  374. /package/dist/{init-Dt1Xifg_2.cjs → init-J8QobR93.cjs} +0 -0
  375. /package/dist/{init-BNewLCqw.cjs → init-xzZPlQwB.cjs} +0 -0
  376. /package/dist/{is-redux-persist-state-DxJSsvxB.cjs → is-redux-persist-state-C5luvPEH.cjs} +0 -0
  377. /package/dist/{is-redux-persist-state-Bl2n4VMr.js → is-redux-persist-state-CjcqyCoh.js} +0 -0
  378. /package/dist/{isNotNil-CZxBMfL5.js → isNotNil-Be7gCY0m.js} +0 -0
  379. /package/dist/{isNotNil-C_SO1tcC.cjs → isNotNil-CrYIUFry.cjs} +0 -0
  380. /package/dist/{logging-BvMDKgl0.js → logging-BAMMfn5j.js} +0 -0
  381. /package/dist/{logging-Bh9ikph3.cjs → logging-CbxgIX9V.cjs} +0 -0
  382. /package/dist/{metadatum-B-sxBnSY.cjs → metadatum-BGvFqGPt.cjs} +0 -0
  383. /package/dist/{metadatum-Ego4jVas.js → metadatum-BVocMYy_.js} +0 -0
  384. /package/dist/{repo-slice-BzZQUTj8.cjs → repo-slice-BB_W-6OL.cjs} +0 -0
  385. /package/dist/{repo-slice-vCcQJotS.js → repo-slice-BQlssw9M.js} +0 -0
  386. /package/dist/{reselect-BPkMzw3k.js → reselect-JIgawvPe.js} +0 -0
  387. /package/dist/{serializable-BxFUShKY.js → serializable-F7OtYl8d.js} +0 -0
  388. /package/dist/{serializable-DWgkHhv_.cjs → serializable-n3UoxbZc.cjs} +0 -0
  389. /package/dist/{slice-DY-DNtSi.js → slice-5dGBAz6w.js} +0 -0
  390. /package/dist/{slice-BEFoeqgr.cjs → slice-BzJgg9FS.cjs} +0 -0
  391. /package/dist/{src-CPmX4KUh.cjs → src-CeBNkonz.cjs} +0 -0
  392. /package/dist/{src-XOZXPKxe.js → src-Cv1ifqbe.js} +0 -0
  393. /package/dist/{time-CQPt4FdU.js → time-ByoKevdZ.js} +0 -0
  394. /package/dist/{time-Blvoyh9G.cjs → time-qD7edGU0.cjs} +0 -0
  395. /package/dist/{time.vo-Xln4yGBU.js → time.vo-C17-tYq3.js} +0 -0
  396. /package/dist/{time.vo-rwWwJzmP.cjs → time.vo-TmYE-_Y2.cjs} +0 -0
  397. /package/dist/{toEmpty-CzmoZVLN.cjs → toEmpty-Db6V94Mf.cjs} +0 -0
  398. /package/dist/{toEmpty-DzLd-ZCi.js → toEmpty-Djj-QbpI.js} +0 -0
  399. /package/dist/{token-id.vo-l8fuSpem.cjs → token-id.vo-CZ622zcZ.cjs} +0 -0
  400. /package/dist/{token-id.vo-DMKSaMlc.js → token-id.vo-IDI9C_Qm.js} +0 -0
  401. /package/dist/{types-B61DQoFW.js → types-By-XeXWg.js} +0 -0
  402. /package/dist/{types-CUC-Kcqh.cjs → types-Cn6WlQV6.cjs} +0 -0
  403. /package/dist/{util-BV3iGOrz.cjs → util-Cp1h58uD.cjs} +0 -0
  404. /package/dist/{util-BsQKLorV.js → util-DHppXj7U.js} +0 -0
  405. /package/dist/{util-selector-CKIyoAOz.js → util-selector-BWmHpo92.js} +0 -0
  406. /package/dist/{util-selector-C9H5RsNw.cjs → util-selector-glXkO-jR.cjs} +0 -0
  407. /package/dist/{while-active-CNXeLxre.js → while-active-CDBnUlQA.js} +0 -0
  408. /package/dist/{while-active-BsDWSNrO.cjs → while-active-I2TlHtm7.cjs} +0 -0
@@ -0,0 +1,2761 @@
1
+ import { Lt as utils } from "./Address-_c_-9hLC.js";
2
+ import { E as toBytes$1, b as kdfInputToBytes, c as aexists, f as bytesToHex, l as ahash, m as clean, o as Hash, p as checkOpts, s as abytes, u as anumber, v as createView, y as hexToBytes } from "./_md-gbUqlhqd.js";
3
+ import { n as sha512, t as sha256 } from "./sha2-c4sB6peD.js";
4
+ //#region ../../node_modules/@noble/hashes/esm/hmac.js
5
+ /**
6
+ * HMAC: RFC2104 message authentication code.
7
+ * @module
8
+ */
9
+ var HMAC = class extends Hash {
10
+ constructor(hash, _key) {
11
+ super();
12
+ this.finished = false;
13
+ this.destroyed = false;
14
+ ahash(hash);
15
+ const key = toBytes$1(_key);
16
+ this.iHash = hash.create();
17
+ if (typeof this.iHash.update !== "function") throw new Error("Expected instance of class which extends utils.Hash");
18
+ this.blockLen = this.iHash.blockLen;
19
+ this.outputLen = this.iHash.outputLen;
20
+ const blockLen = this.blockLen;
21
+ const pad = new Uint8Array(blockLen);
22
+ pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);
23
+ for (let i = 0; i < pad.length; i++) pad[i] ^= 54;
24
+ this.iHash.update(pad);
25
+ this.oHash = hash.create();
26
+ for (let i = 0; i < pad.length; i++) pad[i] ^= 106;
27
+ this.oHash.update(pad);
28
+ clean(pad);
29
+ }
30
+ update(buf) {
31
+ aexists(this);
32
+ this.iHash.update(buf);
33
+ return this;
34
+ }
35
+ digestInto(out) {
36
+ aexists(this);
37
+ abytes(out, this.outputLen);
38
+ this.finished = true;
39
+ this.iHash.digestInto(out);
40
+ this.oHash.update(out);
41
+ this.oHash.digestInto(out);
42
+ this.destroy();
43
+ }
44
+ digest() {
45
+ const out = new Uint8Array(this.oHash.outputLen);
46
+ this.digestInto(out);
47
+ return out;
48
+ }
49
+ _cloneInto(to) {
50
+ to || (to = Object.create(Object.getPrototypeOf(this), {}));
51
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;
52
+ to = to;
53
+ to.finished = finished;
54
+ to.destroyed = destroyed;
55
+ to.blockLen = blockLen;
56
+ to.outputLen = outputLen;
57
+ to.oHash = oHash._cloneInto(to.oHash);
58
+ to.iHash = iHash._cloneInto(to.iHash);
59
+ return to;
60
+ }
61
+ clone() {
62
+ return this._cloneInto();
63
+ }
64
+ destroy() {
65
+ this.destroyed = true;
66
+ this.oHash.destroy();
67
+ this.iHash.destroy();
68
+ }
69
+ };
70
+ /**
71
+ * HMAC: RFC2104 message authentication code.
72
+ * @param hash - function that would be used e.g. sha256
73
+ * @param key - message key
74
+ * @param message - message data
75
+ * @example
76
+ * import { hmac } from '@noble/hashes/hmac';
77
+ * import { sha256 } from '@noble/hashes/sha2';
78
+ * const mac1 = hmac(sha256, 'key', 'message');
79
+ */
80
+ const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();
81
+ hmac.create = (hash, key) => new HMAC(hash, key);
82
+ //#endregion
83
+ //#region ../../node_modules/@noble/hashes/esm/hkdf.js
84
+ /**
85
+ * HKDF (RFC 5869): extract + expand in one step.
86
+ * See https://soatok.blog/2021/11/17/understanding-hkdf/.
87
+ * @module
88
+ */
89
+ /**
90
+ * HKDF-extract from spec. Less important part. `HKDF-Extract(IKM, salt) -> PRK`
91
+ * Arguments position differs from spec (IKM is first one, since it is not optional)
92
+ * @param hash - hash function that would be used (e.g. sha256)
93
+ * @param ikm - input keying material, the initial key
94
+ * @param salt - optional salt value (a non-secret random value)
95
+ */
96
+ function extract(hash, ikm, salt) {
97
+ ahash(hash);
98
+ if (salt === void 0) salt = new Uint8Array(hash.outputLen);
99
+ return hmac(hash, toBytes$1(salt), toBytes$1(ikm));
100
+ }
101
+ const HKDF_COUNTER = /* @__PURE__ */ Uint8Array.from([0]);
102
+ const EMPTY_BUFFER = /* @__PURE__ */ Uint8Array.of();
103
+ /**
104
+ * HKDF-expand from the spec. The most important part. `HKDF-Expand(PRK, info, L) -> OKM`
105
+ * @param hash - hash function that would be used (e.g. sha256)
106
+ * @param prk - a pseudorandom key of at least HashLen octets (usually, the output from the extract step)
107
+ * @param info - optional context and application specific information (can be a zero-length string)
108
+ * @param length - length of output keying material in bytes
109
+ */
110
+ function expand(hash, prk, info, length = 32) {
111
+ ahash(hash);
112
+ anumber(length);
113
+ const olen = hash.outputLen;
114
+ if (length > 255 * olen) throw new Error("Length should be <= 255*HashLen");
115
+ const blocks = Math.ceil(length / olen);
116
+ if (info === void 0) info = EMPTY_BUFFER;
117
+ const okm = new Uint8Array(blocks * olen);
118
+ const HMAC = hmac.create(hash, prk);
119
+ const HMACTmp = HMAC._cloneInto();
120
+ const T = new Uint8Array(HMAC.outputLen);
121
+ for (let counter = 0; counter < blocks; counter++) {
122
+ HKDF_COUNTER[0] = counter + 1;
123
+ HMACTmp.update(counter === 0 ? EMPTY_BUFFER : T).update(info).update(HKDF_COUNTER).digestInto(T);
124
+ okm.set(T, olen * counter);
125
+ HMAC._cloneInto(HMACTmp);
126
+ }
127
+ HMAC.destroy();
128
+ HMACTmp.destroy();
129
+ clean(T, HKDF_COUNTER);
130
+ return okm.slice(0, length);
131
+ }
132
+ /**
133
+ * HKDF (RFC 5869): derive keys from an initial input.
134
+ * Combines hkdf_extract + hkdf_expand in one step
135
+ * @param hash - hash function that would be used (e.g. sha256)
136
+ * @param ikm - input keying material, the initial key
137
+ * @param salt - optional salt value (a non-secret random value)
138
+ * @param info - optional context and application specific information (can be a zero-length string)
139
+ * @param length - length of output keying material in bytes
140
+ * @example
141
+ * import { hkdf } from '@noble/hashes/hkdf';
142
+ * import { sha256 } from '@noble/hashes/sha2';
143
+ * import { randomBytes } from '@noble/hashes/utils';
144
+ * const inputKey = randomBytes(32);
145
+ * const salt = randomBytes(32);
146
+ * const info = 'application-key';
147
+ * const hk1 = hkdf(sha256, inputKey, salt, info, 32);
148
+ */
149
+ const hkdf = (hash, ikm, salt, info, length) => expand(hash, extract(hash, ikm, salt), info, length);
150
+ //#endregion
151
+ //#region ../../packages/lib/crypto/src/value-objects/entropy-hex.vo.ts
152
+ const ENTROPY_BYTE_LENGTH = 32;
153
+ const ENTROPY_HEX_LENGTH = ENTROPY_BYTE_LENGTH * 2;
154
+ const HEX_PATTERN = /^[0-9a-fA-F]+$/;
155
+ /**
156
+ * Types 32 bytes of entropy, as 64 hex characters, for `Mnemonic.deriveFrom`.
157
+ * Throws when the value has another length or is not hex.
158
+ */
159
+ const EntropyHex = (value) => {
160
+ if (value.length !== ENTROPY_HEX_LENGTH) throw new Error(`EntropyHex must be ${ENTROPY_BYTE_LENGTH} bytes (${ENTROPY_HEX_LENGTH} hex characters), got ${value.length}`);
161
+ if (!HEX_PATTERN.test(value)) throw new Error("EntropyHex must be a hex-encoded string");
162
+ return value;
163
+ };
164
+ //#endregion
165
+ //#region ../../node_modules/@noble/hashes/esm/pbkdf2.js
166
+ /**
167
+ * PBKDF (RFC 2898). Can be used to create a key from password and salt.
168
+ * @module
169
+ */
170
+ function pbkdf2Init(hash, _password, _salt, _opts) {
171
+ ahash(hash);
172
+ const { c, dkLen, asyncTick } = checkOpts({
173
+ dkLen: 32,
174
+ asyncTick: 10
175
+ }, _opts);
176
+ anumber(c);
177
+ anumber(dkLen);
178
+ anumber(asyncTick);
179
+ if (c < 1) throw new Error("iterations (c) should be >= 1");
180
+ const password = kdfInputToBytes(_password);
181
+ const salt = kdfInputToBytes(_salt);
182
+ const DK = new Uint8Array(dkLen);
183
+ const PRF = hmac.create(hash, password);
184
+ return {
185
+ c,
186
+ dkLen,
187
+ asyncTick,
188
+ DK,
189
+ PRF,
190
+ PRFSalt: PRF._cloneInto().update(salt)
191
+ };
192
+ }
193
+ function pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {
194
+ PRF.destroy();
195
+ PRFSalt.destroy();
196
+ if (prfW) prfW.destroy();
197
+ clean(u);
198
+ return DK;
199
+ }
200
+ /**
201
+ * PBKDF2-HMAC: RFC 2898 key derivation function
202
+ * @param hash - hash function that would be used e.g. sha256
203
+ * @param password - password from which a derived key is generated
204
+ * @param salt - cryptographic salt
205
+ * @param opts - {c, dkLen} where c is work factor and dkLen is output message size
206
+ * @example
207
+ * const key = pbkdf2(sha256, 'password', 'salt', { dkLen: 32, c: Math.pow(2, 18) });
208
+ */
209
+ function pbkdf2(hash, password, salt, opts) {
210
+ const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);
211
+ let prfW;
212
+ const arr = new Uint8Array(4);
213
+ const view = createView(arr);
214
+ const u = new Uint8Array(PRF.outputLen);
215
+ for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
216
+ const Ti = DK.subarray(pos, pos + PRF.outputLen);
217
+ view.setInt32(0, ti, false);
218
+ (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);
219
+ Ti.set(u.subarray(0, Ti.length));
220
+ for (let ui = 1; ui < c; ui++) {
221
+ PRF._cloneInto(prfW).update(u).digestInto(u);
222
+ for (let i = 0; i < Ti.length; i++) Ti[i] ^= u[i];
223
+ }
224
+ }
225
+ return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);
226
+ }
227
+ //#endregion
228
+ //#region ../../packages/lib/crypto/node_modules/@scure/bip39/esm/index.js
229
+ /**
230
+ * Audited & minimal JS implementation of
231
+ * [BIP39 mnemonic phrases](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki).
232
+ * @module
233
+ * @example
234
+ ```js
235
+ import * as bip39 from '@scure/bip39';
236
+ import { wordlist } from '@scure/bip39/wordlists/english';
237
+ const mn = bip39.generateMnemonic(wordlist);
238
+ console.log(mn);
239
+ const ent = bip39.mnemonicToEntropy(mn, wordlist)
240
+ bip39.entropyToMnemonic(ent, wordlist);
241
+ bip39.validateMnemonic(mn, wordlist);
242
+ await bip39.mnemonicToSeed(mn, 'password');
243
+ bip39.mnemonicToSeedSync(mn, 'password');
244
+
245
+ // Wordlists
246
+ import { wordlist as czech } from '@scure/bip39/wordlists/czech';
247
+ import { wordlist as english } from '@scure/bip39/wordlists/english';
248
+ import { wordlist as french } from '@scure/bip39/wordlists/french';
249
+ import { wordlist as italian } from '@scure/bip39/wordlists/italian';
250
+ import { wordlist as japanese } from '@scure/bip39/wordlists/japanese';
251
+ import { wordlist as korean } from '@scure/bip39/wordlists/korean';
252
+ import { wordlist as portuguese } from '@scure/bip39/wordlists/portuguese';
253
+ import { wordlist as simplifiedChinese } from '@scure/bip39/wordlists/simplified-chinese';
254
+ import { wordlist as spanish } from '@scure/bip39/wordlists/spanish';
255
+ import { wordlist as traditionalChinese } from '@scure/bip39/wordlists/traditional-chinese';
256
+ ```
257
+ */
258
+ /*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
259
+ const isJapanese = (wordlist) => wordlist[0] === "あいこくしん";
260
+ function nfkd(str) {
261
+ if (typeof str !== "string") throw new TypeError("invalid mnemonic type: " + typeof str);
262
+ return str.normalize("NFKD");
263
+ }
264
+ function normalize(str) {
265
+ const norm = nfkd(str);
266
+ const words = norm.split(" ");
267
+ if (![
268
+ 12,
269
+ 15,
270
+ 18,
271
+ 21,
272
+ 24
273
+ ].includes(words.length)) throw new Error("Invalid mnemonic");
274
+ return {
275
+ nfkd: norm,
276
+ words
277
+ };
278
+ }
279
+ function aentropy(ent) {
280
+ abytes(ent, 16, 20, 24, 28, 32);
281
+ }
282
+ const calcChecksum = (entropy) => {
283
+ const bitsLeft = 8 - entropy.length / 4;
284
+ return new Uint8Array([sha256(entropy)[0] >> bitsLeft << bitsLeft]);
285
+ };
286
+ function getCoder(wordlist) {
287
+ if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== "string") throw new Error("Wordlist: expected array of 2048 strings");
288
+ wordlist.forEach((i) => {
289
+ if (typeof i !== "string") throw new Error("wordlist: non-string element: " + i);
290
+ });
291
+ return utils.chain(utils.checksum(1, calcChecksum), utils.radix2(11, true), utils.alphabet(wordlist));
292
+ }
293
+ /**
294
+ * Reversible: Converts raw entropy in form of byte array to mnemonic string.
295
+ * @param entropy byte array
296
+ * @param wordlist imported wordlist for specific language
297
+ * @returns 12-24 words
298
+ * @example
299
+ * const ent = new Uint8Array([
300
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
301
+ * 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f
302
+ * ]);
303
+ * entropyToMnemonic(ent, wordlist);
304
+ * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'
305
+ */
306
+ function entropyToMnemonic(entropy, wordlist) {
307
+ aentropy(entropy);
308
+ return getCoder(wordlist).encode(entropy).join(isJapanese(wordlist) ? " " : " ");
309
+ }
310
+ const psalt = (passphrase) => nfkd("mnemonic" + passphrase);
311
+ /**
312
+ * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.
313
+ * @param mnemonic 12-24 words
314
+ * @param passphrase string that will additionally protect the key
315
+ * @returns 64 bytes of key data
316
+ * @example
317
+ * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';
318
+ * mnemonicToSeedSync(mnem, 'password');
319
+ * // new Uint8Array([...64 bytes])
320
+ */
321
+ function mnemonicToSeedSync(mnemonic, passphrase = "") {
322
+ return pbkdf2(sha512, normalize(mnemonic).nfkd, psalt(passphrase), {
323
+ c: 2048,
324
+ dkLen: 64
325
+ });
326
+ }
327
+ //#endregion
328
+ //#region ../../node_modules/@scure/bip39/wordlists/english.js
329
+ /** English BIP39 wordlist. */
330
+ const wordlist = /* @__PURE__ */ Object.freeze(`abandon
331
+ ability
332
+ able
333
+ about
334
+ above
335
+ absent
336
+ absorb
337
+ abstract
338
+ absurd
339
+ abuse
340
+ access
341
+ accident
342
+ account
343
+ accuse
344
+ achieve
345
+ acid
346
+ acoustic
347
+ acquire
348
+ across
349
+ act
350
+ action
351
+ actor
352
+ actress
353
+ actual
354
+ adapt
355
+ add
356
+ addict
357
+ address
358
+ adjust
359
+ admit
360
+ adult
361
+ advance
362
+ advice
363
+ aerobic
364
+ affair
365
+ afford
366
+ afraid
367
+ again
368
+ age
369
+ agent
370
+ agree
371
+ ahead
372
+ aim
373
+ air
374
+ airport
375
+ aisle
376
+ alarm
377
+ album
378
+ alcohol
379
+ alert
380
+ alien
381
+ all
382
+ alley
383
+ allow
384
+ almost
385
+ alone
386
+ alpha
387
+ already
388
+ also
389
+ alter
390
+ always
391
+ amateur
392
+ amazing
393
+ among
394
+ amount
395
+ amused
396
+ analyst
397
+ anchor
398
+ ancient
399
+ anger
400
+ angle
401
+ angry
402
+ animal
403
+ ankle
404
+ announce
405
+ annual
406
+ another
407
+ answer
408
+ antenna
409
+ antique
410
+ anxiety
411
+ any
412
+ apart
413
+ apology
414
+ appear
415
+ apple
416
+ approve
417
+ april
418
+ arch
419
+ arctic
420
+ area
421
+ arena
422
+ argue
423
+ arm
424
+ armed
425
+ armor
426
+ army
427
+ around
428
+ arrange
429
+ arrest
430
+ arrive
431
+ arrow
432
+ art
433
+ artefact
434
+ artist
435
+ artwork
436
+ ask
437
+ aspect
438
+ assault
439
+ asset
440
+ assist
441
+ assume
442
+ asthma
443
+ athlete
444
+ atom
445
+ attack
446
+ attend
447
+ attitude
448
+ attract
449
+ auction
450
+ audit
451
+ august
452
+ aunt
453
+ author
454
+ auto
455
+ autumn
456
+ average
457
+ avocado
458
+ avoid
459
+ awake
460
+ aware
461
+ away
462
+ awesome
463
+ awful
464
+ awkward
465
+ axis
466
+ baby
467
+ bachelor
468
+ bacon
469
+ badge
470
+ bag
471
+ balance
472
+ balcony
473
+ ball
474
+ bamboo
475
+ banana
476
+ banner
477
+ bar
478
+ barely
479
+ bargain
480
+ barrel
481
+ base
482
+ basic
483
+ basket
484
+ battle
485
+ beach
486
+ bean
487
+ beauty
488
+ because
489
+ become
490
+ beef
491
+ before
492
+ begin
493
+ behave
494
+ behind
495
+ believe
496
+ below
497
+ belt
498
+ bench
499
+ benefit
500
+ best
501
+ betray
502
+ better
503
+ between
504
+ beyond
505
+ bicycle
506
+ bid
507
+ bike
508
+ bind
509
+ biology
510
+ bird
511
+ birth
512
+ bitter
513
+ black
514
+ blade
515
+ blame
516
+ blanket
517
+ blast
518
+ bleak
519
+ bless
520
+ blind
521
+ blood
522
+ blossom
523
+ blouse
524
+ blue
525
+ blur
526
+ blush
527
+ board
528
+ boat
529
+ body
530
+ boil
531
+ bomb
532
+ bone
533
+ bonus
534
+ book
535
+ boost
536
+ border
537
+ boring
538
+ borrow
539
+ boss
540
+ bottom
541
+ bounce
542
+ box
543
+ boy
544
+ bracket
545
+ brain
546
+ brand
547
+ brass
548
+ brave
549
+ bread
550
+ breeze
551
+ brick
552
+ bridge
553
+ brief
554
+ bright
555
+ bring
556
+ brisk
557
+ broccoli
558
+ broken
559
+ bronze
560
+ broom
561
+ brother
562
+ brown
563
+ brush
564
+ bubble
565
+ buddy
566
+ budget
567
+ buffalo
568
+ build
569
+ bulb
570
+ bulk
571
+ bullet
572
+ bundle
573
+ bunker
574
+ burden
575
+ burger
576
+ burst
577
+ bus
578
+ business
579
+ busy
580
+ butter
581
+ buyer
582
+ buzz
583
+ cabbage
584
+ cabin
585
+ cable
586
+ cactus
587
+ cage
588
+ cake
589
+ call
590
+ calm
591
+ camera
592
+ camp
593
+ can
594
+ canal
595
+ cancel
596
+ candy
597
+ cannon
598
+ canoe
599
+ canvas
600
+ canyon
601
+ capable
602
+ capital
603
+ captain
604
+ car
605
+ carbon
606
+ card
607
+ cargo
608
+ carpet
609
+ carry
610
+ cart
611
+ case
612
+ cash
613
+ casino
614
+ castle
615
+ casual
616
+ cat
617
+ catalog
618
+ catch
619
+ category
620
+ cattle
621
+ caught
622
+ cause
623
+ caution
624
+ cave
625
+ ceiling
626
+ celery
627
+ cement
628
+ census
629
+ century
630
+ cereal
631
+ certain
632
+ chair
633
+ chalk
634
+ champion
635
+ change
636
+ chaos
637
+ chapter
638
+ charge
639
+ chase
640
+ chat
641
+ cheap
642
+ check
643
+ cheese
644
+ chef
645
+ cherry
646
+ chest
647
+ chicken
648
+ chief
649
+ child
650
+ chimney
651
+ choice
652
+ choose
653
+ chronic
654
+ chuckle
655
+ chunk
656
+ churn
657
+ cigar
658
+ cinnamon
659
+ circle
660
+ citizen
661
+ city
662
+ civil
663
+ claim
664
+ clap
665
+ clarify
666
+ claw
667
+ clay
668
+ clean
669
+ clerk
670
+ clever
671
+ click
672
+ client
673
+ cliff
674
+ climb
675
+ clinic
676
+ clip
677
+ clock
678
+ clog
679
+ close
680
+ cloth
681
+ cloud
682
+ clown
683
+ club
684
+ clump
685
+ cluster
686
+ clutch
687
+ coach
688
+ coast
689
+ coconut
690
+ code
691
+ coffee
692
+ coil
693
+ coin
694
+ collect
695
+ color
696
+ column
697
+ combine
698
+ come
699
+ comfort
700
+ comic
701
+ common
702
+ company
703
+ concert
704
+ conduct
705
+ confirm
706
+ congress
707
+ connect
708
+ consider
709
+ control
710
+ convince
711
+ cook
712
+ cool
713
+ copper
714
+ copy
715
+ coral
716
+ core
717
+ corn
718
+ correct
719
+ cost
720
+ cotton
721
+ couch
722
+ country
723
+ couple
724
+ course
725
+ cousin
726
+ cover
727
+ coyote
728
+ crack
729
+ cradle
730
+ craft
731
+ cram
732
+ crane
733
+ crash
734
+ crater
735
+ crawl
736
+ crazy
737
+ cream
738
+ credit
739
+ creek
740
+ crew
741
+ cricket
742
+ crime
743
+ crisp
744
+ critic
745
+ crop
746
+ cross
747
+ crouch
748
+ crowd
749
+ crucial
750
+ cruel
751
+ cruise
752
+ crumble
753
+ crunch
754
+ crush
755
+ cry
756
+ crystal
757
+ cube
758
+ culture
759
+ cup
760
+ cupboard
761
+ curious
762
+ current
763
+ curtain
764
+ curve
765
+ cushion
766
+ custom
767
+ cute
768
+ cycle
769
+ dad
770
+ damage
771
+ damp
772
+ dance
773
+ danger
774
+ daring
775
+ dash
776
+ daughter
777
+ dawn
778
+ day
779
+ deal
780
+ debate
781
+ debris
782
+ decade
783
+ december
784
+ decide
785
+ decline
786
+ decorate
787
+ decrease
788
+ deer
789
+ defense
790
+ define
791
+ defy
792
+ degree
793
+ delay
794
+ deliver
795
+ demand
796
+ demise
797
+ denial
798
+ dentist
799
+ deny
800
+ depart
801
+ depend
802
+ deposit
803
+ depth
804
+ deputy
805
+ derive
806
+ describe
807
+ desert
808
+ design
809
+ desk
810
+ despair
811
+ destroy
812
+ detail
813
+ detect
814
+ develop
815
+ device
816
+ devote
817
+ diagram
818
+ dial
819
+ diamond
820
+ diary
821
+ dice
822
+ diesel
823
+ diet
824
+ differ
825
+ digital
826
+ dignity
827
+ dilemma
828
+ dinner
829
+ dinosaur
830
+ direct
831
+ dirt
832
+ disagree
833
+ discover
834
+ disease
835
+ dish
836
+ dismiss
837
+ disorder
838
+ display
839
+ distance
840
+ divert
841
+ divide
842
+ divorce
843
+ dizzy
844
+ doctor
845
+ document
846
+ dog
847
+ doll
848
+ dolphin
849
+ domain
850
+ donate
851
+ donkey
852
+ donor
853
+ door
854
+ dose
855
+ double
856
+ dove
857
+ draft
858
+ dragon
859
+ drama
860
+ drastic
861
+ draw
862
+ dream
863
+ dress
864
+ drift
865
+ drill
866
+ drink
867
+ drip
868
+ drive
869
+ drop
870
+ drum
871
+ dry
872
+ duck
873
+ dumb
874
+ dune
875
+ during
876
+ dust
877
+ dutch
878
+ duty
879
+ dwarf
880
+ dynamic
881
+ eager
882
+ eagle
883
+ early
884
+ earn
885
+ earth
886
+ easily
887
+ east
888
+ easy
889
+ echo
890
+ ecology
891
+ economy
892
+ edge
893
+ edit
894
+ educate
895
+ effort
896
+ egg
897
+ eight
898
+ either
899
+ elbow
900
+ elder
901
+ electric
902
+ elegant
903
+ element
904
+ elephant
905
+ elevator
906
+ elite
907
+ else
908
+ embark
909
+ embody
910
+ embrace
911
+ emerge
912
+ emotion
913
+ employ
914
+ empower
915
+ empty
916
+ enable
917
+ enact
918
+ end
919
+ endless
920
+ endorse
921
+ enemy
922
+ energy
923
+ enforce
924
+ engage
925
+ engine
926
+ enhance
927
+ enjoy
928
+ enlist
929
+ enough
930
+ enrich
931
+ enroll
932
+ ensure
933
+ enter
934
+ entire
935
+ entry
936
+ envelope
937
+ episode
938
+ equal
939
+ equip
940
+ era
941
+ erase
942
+ erode
943
+ erosion
944
+ error
945
+ erupt
946
+ escape
947
+ essay
948
+ essence
949
+ estate
950
+ eternal
951
+ ethics
952
+ evidence
953
+ evil
954
+ evoke
955
+ evolve
956
+ exact
957
+ example
958
+ excess
959
+ exchange
960
+ excite
961
+ exclude
962
+ excuse
963
+ execute
964
+ exercise
965
+ exhaust
966
+ exhibit
967
+ exile
968
+ exist
969
+ exit
970
+ exotic
971
+ expand
972
+ expect
973
+ expire
974
+ explain
975
+ expose
976
+ express
977
+ extend
978
+ extra
979
+ eye
980
+ eyebrow
981
+ fabric
982
+ face
983
+ faculty
984
+ fade
985
+ faint
986
+ faith
987
+ fall
988
+ false
989
+ fame
990
+ family
991
+ famous
992
+ fan
993
+ fancy
994
+ fantasy
995
+ farm
996
+ fashion
997
+ fat
998
+ fatal
999
+ father
1000
+ fatigue
1001
+ fault
1002
+ favorite
1003
+ feature
1004
+ february
1005
+ federal
1006
+ fee
1007
+ feed
1008
+ feel
1009
+ female
1010
+ fence
1011
+ festival
1012
+ fetch
1013
+ fever
1014
+ few
1015
+ fiber
1016
+ fiction
1017
+ field
1018
+ figure
1019
+ file
1020
+ film
1021
+ filter
1022
+ final
1023
+ find
1024
+ fine
1025
+ finger
1026
+ finish
1027
+ fire
1028
+ firm
1029
+ first
1030
+ fiscal
1031
+ fish
1032
+ fit
1033
+ fitness
1034
+ fix
1035
+ flag
1036
+ flame
1037
+ flash
1038
+ flat
1039
+ flavor
1040
+ flee
1041
+ flight
1042
+ flip
1043
+ float
1044
+ flock
1045
+ floor
1046
+ flower
1047
+ fluid
1048
+ flush
1049
+ fly
1050
+ foam
1051
+ focus
1052
+ fog
1053
+ foil
1054
+ fold
1055
+ follow
1056
+ food
1057
+ foot
1058
+ force
1059
+ forest
1060
+ forget
1061
+ fork
1062
+ fortune
1063
+ forum
1064
+ forward
1065
+ fossil
1066
+ foster
1067
+ found
1068
+ fox
1069
+ fragile
1070
+ frame
1071
+ frequent
1072
+ fresh
1073
+ friend
1074
+ fringe
1075
+ frog
1076
+ front
1077
+ frost
1078
+ frown
1079
+ frozen
1080
+ fruit
1081
+ fuel
1082
+ fun
1083
+ funny
1084
+ furnace
1085
+ fury
1086
+ future
1087
+ gadget
1088
+ gain
1089
+ galaxy
1090
+ gallery
1091
+ game
1092
+ gap
1093
+ garage
1094
+ garbage
1095
+ garden
1096
+ garlic
1097
+ garment
1098
+ gas
1099
+ gasp
1100
+ gate
1101
+ gather
1102
+ gauge
1103
+ gaze
1104
+ general
1105
+ genius
1106
+ genre
1107
+ gentle
1108
+ genuine
1109
+ gesture
1110
+ ghost
1111
+ giant
1112
+ gift
1113
+ giggle
1114
+ ginger
1115
+ giraffe
1116
+ girl
1117
+ give
1118
+ glad
1119
+ glance
1120
+ glare
1121
+ glass
1122
+ glide
1123
+ glimpse
1124
+ globe
1125
+ gloom
1126
+ glory
1127
+ glove
1128
+ glow
1129
+ glue
1130
+ goat
1131
+ goddess
1132
+ gold
1133
+ good
1134
+ goose
1135
+ gorilla
1136
+ gospel
1137
+ gossip
1138
+ govern
1139
+ gown
1140
+ grab
1141
+ grace
1142
+ grain
1143
+ grant
1144
+ grape
1145
+ grass
1146
+ gravity
1147
+ great
1148
+ green
1149
+ grid
1150
+ grief
1151
+ grit
1152
+ grocery
1153
+ group
1154
+ grow
1155
+ grunt
1156
+ guard
1157
+ guess
1158
+ guide
1159
+ guilt
1160
+ guitar
1161
+ gun
1162
+ gym
1163
+ habit
1164
+ hair
1165
+ half
1166
+ hammer
1167
+ hamster
1168
+ hand
1169
+ happy
1170
+ harbor
1171
+ hard
1172
+ harsh
1173
+ harvest
1174
+ hat
1175
+ have
1176
+ hawk
1177
+ hazard
1178
+ head
1179
+ health
1180
+ heart
1181
+ heavy
1182
+ hedgehog
1183
+ height
1184
+ hello
1185
+ helmet
1186
+ help
1187
+ hen
1188
+ hero
1189
+ hidden
1190
+ high
1191
+ hill
1192
+ hint
1193
+ hip
1194
+ hire
1195
+ history
1196
+ hobby
1197
+ hockey
1198
+ hold
1199
+ hole
1200
+ holiday
1201
+ hollow
1202
+ home
1203
+ honey
1204
+ hood
1205
+ hope
1206
+ horn
1207
+ horror
1208
+ horse
1209
+ hospital
1210
+ host
1211
+ hotel
1212
+ hour
1213
+ hover
1214
+ hub
1215
+ huge
1216
+ human
1217
+ humble
1218
+ humor
1219
+ hundred
1220
+ hungry
1221
+ hunt
1222
+ hurdle
1223
+ hurry
1224
+ hurt
1225
+ husband
1226
+ hybrid
1227
+ ice
1228
+ icon
1229
+ idea
1230
+ identify
1231
+ idle
1232
+ ignore
1233
+ ill
1234
+ illegal
1235
+ illness
1236
+ image
1237
+ imitate
1238
+ immense
1239
+ immune
1240
+ impact
1241
+ impose
1242
+ improve
1243
+ impulse
1244
+ inch
1245
+ include
1246
+ income
1247
+ increase
1248
+ index
1249
+ indicate
1250
+ indoor
1251
+ industry
1252
+ infant
1253
+ inflict
1254
+ inform
1255
+ inhale
1256
+ inherit
1257
+ initial
1258
+ inject
1259
+ injury
1260
+ inmate
1261
+ inner
1262
+ innocent
1263
+ input
1264
+ inquiry
1265
+ insane
1266
+ insect
1267
+ inside
1268
+ inspire
1269
+ install
1270
+ intact
1271
+ interest
1272
+ into
1273
+ invest
1274
+ invite
1275
+ involve
1276
+ iron
1277
+ island
1278
+ isolate
1279
+ issue
1280
+ item
1281
+ ivory
1282
+ jacket
1283
+ jaguar
1284
+ jar
1285
+ jazz
1286
+ jealous
1287
+ jeans
1288
+ jelly
1289
+ jewel
1290
+ job
1291
+ join
1292
+ joke
1293
+ journey
1294
+ joy
1295
+ judge
1296
+ juice
1297
+ jump
1298
+ jungle
1299
+ junior
1300
+ junk
1301
+ just
1302
+ kangaroo
1303
+ keen
1304
+ keep
1305
+ ketchup
1306
+ key
1307
+ kick
1308
+ kid
1309
+ kidney
1310
+ kind
1311
+ kingdom
1312
+ kiss
1313
+ kit
1314
+ kitchen
1315
+ kite
1316
+ kitten
1317
+ kiwi
1318
+ knee
1319
+ knife
1320
+ knock
1321
+ know
1322
+ lab
1323
+ label
1324
+ labor
1325
+ ladder
1326
+ lady
1327
+ lake
1328
+ lamp
1329
+ language
1330
+ laptop
1331
+ large
1332
+ later
1333
+ latin
1334
+ laugh
1335
+ laundry
1336
+ lava
1337
+ law
1338
+ lawn
1339
+ lawsuit
1340
+ layer
1341
+ lazy
1342
+ leader
1343
+ leaf
1344
+ learn
1345
+ leave
1346
+ lecture
1347
+ left
1348
+ leg
1349
+ legal
1350
+ legend
1351
+ leisure
1352
+ lemon
1353
+ lend
1354
+ length
1355
+ lens
1356
+ leopard
1357
+ lesson
1358
+ letter
1359
+ level
1360
+ liar
1361
+ liberty
1362
+ library
1363
+ license
1364
+ life
1365
+ lift
1366
+ light
1367
+ like
1368
+ limb
1369
+ limit
1370
+ link
1371
+ lion
1372
+ liquid
1373
+ list
1374
+ little
1375
+ live
1376
+ lizard
1377
+ load
1378
+ loan
1379
+ lobster
1380
+ local
1381
+ lock
1382
+ logic
1383
+ lonely
1384
+ long
1385
+ loop
1386
+ lottery
1387
+ loud
1388
+ lounge
1389
+ love
1390
+ loyal
1391
+ lucky
1392
+ luggage
1393
+ lumber
1394
+ lunar
1395
+ lunch
1396
+ luxury
1397
+ lyrics
1398
+ machine
1399
+ mad
1400
+ magic
1401
+ magnet
1402
+ maid
1403
+ mail
1404
+ main
1405
+ major
1406
+ make
1407
+ mammal
1408
+ man
1409
+ manage
1410
+ mandate
1411
+ mango
1412
+ mansion
1413
+ manual
1414
+ maple
1415
+ marble
1416
+ march
1417
+ margin
1418
+ marine
1419
+ market
1420
+ marriage
1421
+ mask
1422
+ mass
1423
+ master
1424
+ match
1425
+ material
1426
+ math
1427
+ matrix
1428
+ matter
1429
+ maximum
1430
+ maze
1431
+ meadow
1432
+ mean
1433
+ measure
1434
+ meat
1435
+ mechanic
1436
+ medal
1437
+ media
1438
+ melody
1439
+ melt
1440
+ member
1441
+ memory
1442
+ mention
1443
+ menu
1444
+ mercy
1445
+ merge
1446
+ merit
1447
+ merry
1448
+ mesh
1449
+ message
1450
+ metal
1451
+ method
1452
+ middle
1453
+ midnight
1454
+ milk
1455
+ million
1456
+ mimic
1457
+ mind
1458
+ minimum
1459
+ minor
1460
+ minute
1461
+ miracle
1462
+ mirror
1463
+ misery
1464
+ miss
1465
+ mistake
1466
+ mix
1467
+ mixed
1468
+ mixture
1469
+ mobile
1470
+ model
1471
+ modify
1472
+ mom
1473
+ moment
1474
+ monitor
1475
+ monkey
1476
+ monster
1477
+ month
1478
+ moon
1479
+ moral
1480
+ more
1481
+ morning
1482
+ mosquito
1483
+ mother
1484
+ motion
1485
+ motor
1486
+ mountain
1487
+ mouse
1488
+ move
1489
+ movie
1490
+ much
1491
+ muffin
1492
+ mule
1493
+ multiply
1494
+ muscle
1495
+ museum
1496
+ mushroom
1497
+ music
1498
+ must
1499
+ mutual
1500
+ myself
1501
+ mystery
1502
+ myth
1503
+ naive
1504
+ name
1505
+ napkin
1506
+ narrow
1507
+ nasty
1508
+ nation
1509
+ nature
1510
+ near
1511
+ neck
1512
+ need
1513
+ negative
1514
+ neglect
1515
+ neither
1516
+ nephew
1517
+ nerve
1518
+ nest
1519
+ net
1520
+ network
1521
+ neutral
1522
+ never
1523
+ news
1524
+ next
1525
+ nice
1526
+ night
1527
+ noble
1528
+ noise
1529
+ nominee
1530
+ noodle
1531
+ normal
1532
+ north
1533
+ nose
1534
+ notable
1535
+ note
1536
+ nothing
1537
+ notice
1538
+ novel
1539
+ now
1540
+ nuclear
1541
+ number
1542
+ nurse
1543
+ nut
1544
+ oak
1545
+ obey
1546
+ object
1547
+ oblige
1548
+ obscure
1549
+ observe
1550
+ obtain
1551
+ obvious
1552
+ occur
1553
+ ocean
1554
+ october
1555
+ odor
1556
+ off
1557
+ offer
1558
+ office
1559
+ often
1560
+ oil
1561
+ okay
1562
+ old
1563
+ olive
1564
+ olympic
1565
+ omit
1566
+ once
1567
+ one
1568
+ onion
1569
+ online
1570
+ only
1571
+ open
1572
+ opera
1573
+ opinion
1574
+ oppose
1575
+ option
1576
+ orange
1577
+ orbit
1578
+ orchard
1579
+ order
1580
+ ordinary
1581
+ organ
1582
+ orient
1583
+ original
1584
+ orphan
1585
+ ostrich
1586
+ other
1587
+ outdoor
1588
+ outer
1589
+ output
1590
+ outside
1591
+ oval
1592
+ oven
1593
+ over
1594
+ own
1595
+ owner
1596
+ oxygen
1597
+ oyster
1598
+ ozone
1599
+ pact
1600
+ paddle
1601
+ page
1602
+ pair
1603
+ palace
1604
+ palm
1605
+ panda
1606
+ panel
1607
+ panic
1608
+ panther
1609
+ paper
1610
+ parade
1611
+ parent
1612
+ park
1613
+ parrot
1614
+ party
1615
+ pass
1616
+ patch
1617
+ path
1618
+ patient
1619
+ patrol
1620
+ pattern
1621
+ pause
1622
+ pave
1623
+ payment
1624
+ peace
1625
+ peanut
1626
+ pear
1627
+ peasant
1628
+ pelican
1629
+ pen
1630
+ penalty
1631
+ pencil
1632
+ people
1633
+ pepper
1634
+ perfect
1635
+ permit
1636
+ person
1637
+ pet
1638
+ phone
1639
+ photo
1640
+ phrase
1641
+ physical
1642
+ piano
1643
+ picnic
1644
+ picture
1645
+ piece
1646
+ pig
1647
+ pigeon
1648
+ pill
1649
+ pilot
1650
+ pink
1651
+ pioneer
1652
+ pipe
1653
+ pistol
1654
+ pitch
1655
+ pizza
1656
+ place
1657
+ planet
1658
+ plastic
1659
+ plate
1660
+ play
1661
+ please
1662
+ pledge
1663
+ pluck
1664
+ plug
1665
+ plunge
1666
+ poem
1667
+ poet
1668
+ point
1669
+ polar
1670
+ pole
1671
+ police
1672
+ pond
1673
+ pony
1674
+ pool
1675
+ popular
1676
+ portion
1677
+ position
1678
+ possible
1679
+ post
1680
+ potato
1681
+ pottery
1682
+ poverty
1683
+ powder
1684
+ power
1685
+ practice
1686
+ praise
1687
+ predict
1688
+ prefer
1689
+ prepare
1690
+ present
1691
+ pretty
1692
+ prevent
1693
+ price
1694
+ pride
1695
+ primary
1696
+ print
1697
+ priority
1698
+ prison
1699
+ private
1700
+ prize
1701
+ problem
1702
+ process
1703
+ produce
1704
+ profit
1705
+ program
1706
+ project
1707
+ promote
1708
+ proof
1709
+ property
1710
+ prosper
1711
+ protect
1712
+ proud
1713
+ provide
1714
+ public
1715
+ pudding
1716
+ pull
1717
+ pulp
1718
+ pulse
1719
+ pumpkin
1720
+ punch
1721
+ pupil
1722
+ puppy
1723
+ purchase
1724
+ purity
1725
+ purpose
1726
+ purse
1727
+ push
1728
+ put
1729
+ puzzle
1730
+ pyramid
1731
+ quality
1732
+ quantum
1733
+ quarter
1734
+ question
1735
+ quick
1736
+ quit
1737
+ quiz
1738
+ quote
1739
+ rabbit
1740
+ raccoon
1741
+ race
1742
+ rack
1743
+ radar
1744
+ radio
1745
+ rail
1746
+ rain
1747
+ raise
1748
+ rally
1749
+ ramp
1750
+ ranch
1751
+ random
1752
+ range
1753
+ rapid
1754
+ rare
1755
+ rate
1756
+ rather
1757
+ raven
1758
+ raw
1759
+ razor
1760
+ ready
1761
+ real
1762
+ reason
1763
+ rebel
1764
+ rebuild
1765
+ recall
1766
+ receive
1767
+ recipe
1768
+ record
1769
+ recycle
1770
+ reduce
1771
+ reflect
1772
+ reform
1773
+ refuse
1774
+ region
1775
+ regret
1776
+ regular
1777
+ reject
1778
+ relax
1779
+ release
1780
+ relief
1781
+ rely
1782
+ remain
1783
+ remember
1784
+ remind
1785
+ remove
1786
+ render
1787
+ renew
1788
+ rent
1789
+ reopen
1790
+ repair
1791
+ repeat
1792
+ replace
1793
+ report
1794
+ require
1795
+ rescue
1796
+ resemble
1797
+ resist
1798
+ resource
1799
+ response
1800
+ result
1801
+ retire
1802
+ retreat
1803
+ return
1804
+ reunion
1805
+ reveal
1806
+ review
1807
+ reward
1808
+ rhythm
1809
+ rib
1810
+ ribbon
1811
+ rice
1812
+ rich
1813
+ ride
1814
+ ridge
1815
+ rifle
1816
+ right
1817
+ rigid
1818
+ ring
1819
+ riot
1820
+ ripple
1821
+ risk
1822
+ ritual
1823
+ rival
1824
+ river
1825
+ road
1826
+ roast
1827
+ robot
1828
+ robust
1829
+ rocket
1830
+ romance
1831
+ roof
1832
+ rookie
1833
+ room
1834
+ rose
1835
+ rotate
1836
+ rough
1837
+ round
1838
+ route
1839
+ royal
1840
+ rubber
1841
+ rude
1842
+ rug
1843
+ rule
1844
+ run
1845
+ runway
1846
+ rural
1847
+ sad
1848
+ saddle
1849
+ sadness
1850
+ safe
1851
+ sail
1852
+ salad
1853
+ salmon
1854
+ salon
1855
+ salt
1856
+ salute
1857
+ same
1858
+ sample
1859
+ sand
1860
+ satisfy
1861
+ satoshi
1862
+ sauce
1863
+ sausage
1864
+ save
1865
+ say
1866
+ scale
1867
+ scan
1868
+ scare
1869
+ scatter
1870
+ scene
1871
+ scheme
1872
+ school
1873
+ science
1874
+ scissors
1875
+ scorpion
1876
+ scout
1877
+ scrap
1878
+ screen
1879
+ script
1880
+ scrub
1881
+ sea
1882
+ search
1883
+ season
1884
+ seat
1885
+ second
1886
+ secret
1887
+ section
1888
+ security
1889
+ seed
1890
+ seek
1891
+ segment
1892
+ select
1893
+ sell
1894
+ seminar
1895
+ senior
1896
+ sense
1897
+ sentence
1898
+ series
1899
+ service
1900
+ session
1901
+ settle
1902
+ setup
1903
+ seven
1904
+ shadow
1905
+ shaft
1906
+ shallow
1907
+ share
1908
+ shed
1909
+ shell
1910
+ sheriff
1911
+ shield
1912
+ shift
1913
+ shine
1914
+ ship
1915
+ shiver
1916
+ shock
1917
+ shoe
1918
+ shoot
1919
+ shop
1920
+ short
1921
+ shoulder
1922
+ shove
1923
+ shrimp
1924
+ shrug
1925
+ shuffle
1926
+ shy
1927
+ sibling
1928
+ sick
1929
+ side
1930
+ siege
1931
+ sight
1932
+ sign
1933
+ silent
1934
+ silk
1935
+ silly
1936
+ silver
1937
+ similar
1938
+ simple
1939
+ since
1940
+ sing
1941
+ siren
1942
+ sister
1943
+ situate
1944
+ six
1945
+ size
1946
+ skate
1947
+ sketch
1948
+ ski
1949
+ skill
1950
+ skin
1951
+ skirt
1952
+ skull
1953
+ slab
1954
+ slam
1955
+ sleep
1956
+ slender
1957
+ slice
1958
+ slide
1959
+ slight
1960
+ slim
1961
+ slogan
1962
+ slot
1963
+ slow
1964
+ slush
1965
+ small
1966
+ smart
1967
+ smile
1968
+ smoke
1969
+ smooth
1970
+ snack
1971
+ snake
1972
+ snap
1973
+ sniff
1974
+ snow
1975
+ soap
1976
+ soccer
1977
+ social
1978
+ sock
1979
+ soda
1980
+ soft
1981
+ solar
1982
+ soldier
1983
+ solid
1984
+ solution
1985
+ solve
1986
+ someone
1987
+ song
1988
+ soon
1989
+ sorry
1990
+ sort
1991
+ soul
1992
+ sound
1993
+ soup
1994
+ source
1995
+ south
1996
+ space
1997
+ spare
1998
+ spatial
1999
+ spawn
2000
+ speak
2001
+ special
2002
+ speed
2003
+ spell
2004
+ spend
2005
+ sphere
2006
+ spice
2007
+ spider
2008
+ spike
2009
+ spin
2010
+ spirit
2011
+ split
2012
+ spoil
2013
+ sponsor
2014
+ spoon
2015
+ sport
2016
+ spot
2017
+ spray
2018
+ spread
2019
+ spring
2020
+ spy
2021
+ square
2022
+ squeeze
2023
+ squirrel
2024
+ stable
2025
+ stadium
2026
+ staff
2027
+ stage
2028
+ stairs
2029
+ stamp
2030
+ stand
2031
+ start
2032
+ state
2033
+ stay
2034
+ steak
2035
+ steel
2036
+ stem
2037
+ step
2038
+ stereo
2039
+ stick
2040
+ still
2041
+ sting
2042
+ stock
2043
+ stomach
2044
+ stone
2045
+ stool
2046
+ story
2047
+ stove
2048
+ strategy
2049
+ street
2050
+ strike
2051
+ strong
2052
+ struggle
2053
+ student
2054
+ stuff
2055
+ stumble
2056
+ style
2057
+ subject
2058
+ submit
2059
+ subway
2060
+ success
2061
+ such
2062
+ sudden
2063
+ suffer
2064
+ sugar
2065
+ suggest
2066
+ suit
2067
+ summer
2068
+ sun
2069
+ sunny
2070
+ sunset
2071
+ super
2072
+ supply
2073
+ supreme
2074
+ sure
2075
+ surface
2076
+ surge
2077
+ surprise
2078
+ surround
2079
+ survey
2080
+ suspect
2081
+ sustain
2082
+ swallow
2083
+ swamp
2084
+ swap
2085
+ swarm
2086
+ swear
2087
+ sweet
2088
+ swift
2089
+ swim
2090
+ swing
2091
+ switch
2092
+ sword
2093
+ symbol
2094
+ symptom
2095
+ syrup
2096
+ system
2097
+ table
2098
+ tackle
2099
+ tag
2100
+ tail
2101
+ talent
2102
+ talk
2103
+ tank
2104
+ tape
2105
+ target
2106
+ task
2107
+ taste
2108
+ tattoo
2109
+ taxi
2110
+ teach
2111
+ team
2112
+ tell
2113
+ ten
2114
+ tenant
2115
+ tennis
2116
+ tent
2117
+ term
2118
+ test
2119
+ text
2120
+ thank
2121
+ that
2122
+ theme
2123
+ then
2124
+ theory
2125
+ there
2126
+ they
2127
+ thing
2128
+ this
2129
+ thought
2130
+ three
2131
+ thrive
2132
+ throw
2133
+ thumb
2134
+ thunder
2135
+ ticket
2136
+ tide
2137
+ tiger
2138
+ tilt
2139
+ timber
2140
+ time
2141
+ tiny
2142
+ tip
2143
+ tired
2144
+ tissue
2145
+ title
2146
+ toast
2147
+ tobacco
2148
+ today
2149
+ toddler
2150
+ toe
2151
+ together
2152
+ toilet
2153
+ token
2154
+ tomato
2155
+ tomorrow
2156
+ tone
2157
+ tongue
2158
+ tonight
2159
+ tool
2160
+ tooth
2161
+ top
2162
+ topic
2163
+ topple
2164
+ torch
2165
+ tornado
2166
+ tortoise
2167
+ toss
2168
+ total
2169
+ tourist
2170
+ toward
2171
+ tower
2172
+ town
2173
+ toy
2174
+ track
2175
+ trade
2176
+ traffic
2177
+ tragic
2178
+ train
2179
+ transfer
2180
+ trap
2181
+ trash
2182
+ travel
2183
+ tray
2184
+ treat
2185
+ tree
2186
+ trend
2187
+ trial
2188
+ tribe
2189
+ trick
2190
+ trigger
2191
+ trim
2192
+ trip
2193
+ trophy
2194
+ trouble
2195
+ truck
2196
+ true
2197
+ truly
2198
+ trumpet
2199
+ trust
2200
+ truth
2201
+ try
2202
+ tube
2203
+ tuition
2204
+ tumble
2205
+ tuna
2206
+ tunnel
2207
+ turkey
2208
+ turn
2209
+ turtle
2210
+ twelve
2211
+ twenty
2212
+ twice
2213
+ twin
2214
+ twist
2215
+ two
2216
+ type
2217
+ typical
2218
+ ugly
2219
+ umbrella
2220
+ unable
2221
+ unaware
2222
+ uncle
2223
+ uncover
2224
+ under
2225
+ undo
2226
+ unfair
2227
+ unfold
2228
+ unhappy
2229
+ uniform
2230
+ unique
2231
+ unit
2232
+ universe
2233
+ unknown
2234
+ unlock
2235
+ until
2236
+ unusual
2237
+ unveil
2238
+ update
2239
+ upgrade
2240
+ uphold
2241
+ upon
2242
+ upper
2243
+ upset
2244
+ urban
2245
+ urge
2246
+ usage
2247
+ use
2248
+ used
2249
+ useful
2250
+ useless
2251
+ usual
2252
+ utility
2253
+ vacant
2254
+ vacuum
2255
+ vague
2256
+ valid
2257
+ valley
2258
+ valve
2259
+ van
2260
+ vanish
2261
+ vapor
2262
+ various
2263
+ vast
2264
+ vault
2265
+ vehicle
2266
+ velvet
2267
+ vendor
2268
+ venture
2269
+ venue
2270
+ verb
2271
+ verify
2272
+ version
2273
+ very
2274
+ vessel
2275
+ veteran
2276
+ viable
2277
+ vibrant
2278
+ vicious
2279
+ victory
2280
+ video
2281
+ view
2282
+ village
2283
+ vintage
2284
+ violin
2285
+ virtual
2286
+ virus
2287
+ visa
2288
+ visit
2289
+ visual
2290
+ vital
2291
+ vivid
2292
+ vocal
2293
+ voice
2294
+ void
2295
+ volcano
2296
+ volume
2297
+ vote
2298
+ voyage
2299
+ wage
2300
+ wagon
2301
+ wait
2302
+ walk
2303
+ wall
2304
+ walnut
2305
+ want
2306
+ warfare
2307
+ warm
2308
+ warrior
2309
+ wash
2310
+ wasp
2311
+ waste
2312
+ water
2313
+ wave
2314
+ way
2315
+ wealth
2316
+ weapon
2317
+ wear
2318
+ weasel
2319
+ weather
2320
+ web
2321
+ wedding
2322
+ weekend
2323
+ weird
2324
+ welcome
2325
+ west
2326
+ wet
2327
+ whale
2328
+ what
2329
+ wheat
2330
+ wheel
2331
+ when
2332
+ where
2333
+ whip
2334
+ whisper
2335
+ wide
2336
+ width
2337
+ wife
2338
+ wild
2339
+ will
2340
+ win
2341
+ window
2342
+ wine
2343
+ wing
2344
+ wink
2345
+ winner
2346
+ winter
2347
+ wire
2348
+ wisdom
2349
+ wise
2350
+ wish
2351
+ witness
2352
+ wolf
2353
+ woman
2354
+ wonder
2355
+ wood
2356
+ wool
2357
+ word
2358
+ work
2359
+ world
2360
+ worry
2361
+ worth
2362
+ wrap
2363
+ wreck
2364
+ wrestle
2365
+ wrist
2366
+ write
2367
+ wrong
2368
+ yard
2369
+ year
2370
+ yellow
2371
+ you
2372
+ young
2373
+ youth
2374
+ zebra
2375
+ zero
2376
+ zone
2377
+ zoo`.split("\n"));
2378
+ //#endregion
2379
+ //#region ../../packages/lib/crypto/src/value-objects/mnemonic.vo.ts
2380
+ /**
2381
+ * Types a list of words as a BIP-39 mnemonic; it checks nothing.
2382
+ * `Mnemonic.deriveFrom(entropy)` derives 24 words from 32 bytes of entropy,
2383
+ * and `Mnemonic.toSeed(words)` gives their BIP-39 seed.
2384
+ */
2385
+ const Mnemonic = (words) => words;
2386
+ /**
2387
+ * Derives a 24-word BIP39 mnemonic from 32 bytes of hex-encoded entropy.
2388
+ * Uses HKDF for domain separation, so the raw entropy is never used
2389
+ * directly as seed material. The entropy bytes and the expanded key are zeroed once the
2390
+ * words exist; the words themselves are strings and cannot be.
2391
+ */
2392
+ Mnemonic.deriveFrom = (entropyHex) => {
2393
+ const rawKey = hexToBytes(entropyHex);
2394
+ const derived = hkdf(sha256, rawKey, "lace", "wallet-seed", 32);
2395
+ try {
2396
+ return Mnemonic(entropyToMnemonic(derived, wordlist).split(" "));
2397
+ } finally {
2398
+ rawKey.fill(0);
2399
+ derived.fill(0);
2400
+ }
2401
+ };
2402
+ /**
2403
+ * The 64-byte BIP39 seed of the mnemonic with an empty passphrase: the seed
2404
+ * that wallets deriving their keys from the BIP39 seed consume, so secrets
2405
+ * derived from it match what such a wallet built from the same words would
2406
+ * derive. The caller owns the bytes and zeroes them after use.
2407
+ */
2408
+ Mnemonic.toSeed = (words) => mnemonicToSeedSync(words.join(" "));
2409
+ //#endregion
2410
+ //#region ../../packages/lib/passkey/src/constants.ts
2411
+ /** The label of the first PRF salt, whose output is the device secret. */
2412
+ const PRF_SALT_AUTHORISER_LABEL = "lace-passport/prf/authoriser/v1";
2413
+ /** The label of the second PRF salt, whose output is the root every named derivation starts from. */
2414
+ const PRF_SALT_ROOT_LABEL = "lace/prf/root/v1";
2415
+ /** The HKDF info label under which the record sealing key derives from the root. */
2416
+ const HKDF_RECORD_KEY_INFO = "lace-passport/hkdf/record-key/v1";
2417
+ /** The HKDF info label under which the wallet entropy, and from it the recovery words, derives from the root. */
2418
+ const HKDF_WALLET_ENTROPY_INFO = "lace/hkdf/wallet-entropy/v1";
2419
+ //#endregion
2420
+ //#region ../../packages/lib/passkey/src/errors.ts
2421
+ /** The user dismissed a WebAuthn ceremony. */
2422
+ var PasskeyCeremonyCancelledError = class extends Error {
2423
+ code = "ceremony-cancelled";
2424
+ constructor() {
2425
+ super("The passkey ceremony was cancelled.");
2426
+ this.name = "PasskeyCeremonyCancelledError";
2427
+ }
2428
+ };
2429
+ /** The authenticator did not supply both PRF outputs. */
2430
+ var PasskeyPrfUnsupportedError = class extends Error {
2431
+ code = "prf-unsupported";
2432
+ constructor() {
2433
+ super("The platform authenticator does not support the PRF extension.");
2434
+ this.name = "PasskeyPrfUnsupportedError";
2435
+ }
2436
+ };
2437
+ /** The selected credential differs from the imported wallet credential. */
2438
+ var PasskeyCredentialMismatchError = class extends Error {
2439
+ code = "credential-mismatch";
2440
+ constructor() {
2441
+ super("The selected passkey does not match the wallet credential.");
2442
+ this.name = "PasskeyCredentialMismatchError";
2443
+ }
2444
+ };
2445
+ /**
2446
+ * The browser refused to open the signer popup (`popup-blocked`); it must be
2447
+ * opened inside a user gesture.
2448
+ */
2449
+ var SignerPopupBlockedError = class extends Error {
2450
+ code = "popup-blocked";
2451
+ constructor() {
2452
+ super("The browser blocked the signer popup.");
2453
+ this.name = "SignerPopupBlockedError";
2454
+ }
2455
+ };
2456
+ /**
2457
+ * The signer answered a request with a failure; `code` is the code it
2458
+ * reported, such as `ceremony-cancelled` when the user rejects the request
2459
+ * or `malformed-request` when the signer cannot describe it for consent,
2460
+ * and `details` the values it declared alongside, when any. Both come from
2461
+ * the signer page, so a reader validates `details` before acting on it.
2462
+ */
2463
+ var RemoteSignerError = class extends Error {
2464
+ code;
2465
+ details;
2466
+ constructor(code, message, details) {
2467
+ super(message);
2468
+ this.code = code;
2469
+ this.details = details;
2470
+ this.name = "RemoteSignerError";
2471
+ }
2472
+ };
2473
+ /**
2474
+ * The signer popup closed, as when the user closes the window, while requests
2475
+ * were still pending (`ceremony-cancelled`).
2476
+ */
2477
+ var SignerClosedError = class extends Error {
2478
+ code = "ceremony-cancelled";
2479
+ constructor() {
2480
+ super("The signer popup was closed.");
2481
+ this.name = "SignerClosedError";
2482
+ }
2483
+ };
2484
+ //#endregion
2485
+ //#region ../../packages/lib/passkey/src/ceremony.ts
2486
+ const DEFAULT_RP_NAME = "Lace";
2487
+ const CHALLENGE_LENGTH = 32;
2488
+ const USER_ID_LENGTH = 16;
2489
+ const WALLET_ENTROPY_LENGTH = 32;
2490
+ const MAX_CREDENTIAL_ID_LENGTH = 1023;
2491
+ const ES256 = -7;
2492
+ const RS256 = -257;
2493
+ const RECIPE_VERSION = "v1";
2494
+ const encodeId = (id) => btoa(String.fromCharCode(...new Uint8Array(id))).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/, "");
2495
+ const decodeId = (id) => {
2496
+ if (!/^[A-Za-z0-9_-]+$/.test(id) || id.length > Math.ceil(MAX_CREDENTIAL_ID_LENGTH * 4 / 3)) throw new Error("Invalid passkey credential ID.");
2497
+ let bytes;
2498
+ try {
2499
+ bytes = Uint8Array.from(atob(id.replaceAll("-", "+").replaceAll("_", "/")), (character) => character.charCodeAt(0));
2500
+ } catch {
2501
+ throw new Error("Invalid passkey credential ID.");
2502
+ }
2503
+ if (bytes.length > MAX_CREDENTIAL_ID_LENGTH || encodeId(bytes.buffer) !== id) throw new Error("Invalid passkey credential ID.");
2504
+ return bytes.buffer;
2505
+ };
2506
+ const utf8 = (value) => new TextEncoder().encode(value);
2507
+ /** PRF salts are public domain separators: SHA-256 of their label. */
2508
+ const prfSalt = async (label) => new Uint8Array(await crypto.subtle.digest("SHA-256", utf8(label)));
2509
+ const isCancellation = (error) => error instanceof Object && "name" in error && error.name === "NotAllowedError";
2510
+ const toBytes = (source) => source instanceof ArrayBuffer ? new Uint8Array(source) : new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
2511
+ /** Zeroes every PRF output of one assertion. */
2512
+ const zeroOutputs = (outputs) => {
2513
+ outputs.device?.fill(0);
2514
+ outputs.root.fill(0);
2515
+ };
2516
+ /**
2517
+ * The wallet entropy is HKDF-SHA256 over the root with an empty salt and a
2518
+ * fixed info label. The expanded bytes are zeroed once encoded; the hex
2519
+ * string is what leaves this function, and only for the caller's use.
2520
+ */
2521
+ const deriveWalletEntropy = (root) => {
2522
+ const raw = hkdf(sha256, root, void 0, HKDF_WALLET_ENTROPY_INFO, WALLET_ENTROPY_LENGTH);
2523
+ try {
2524
+ return EntropyHex(bytesToHex(raw));
2525
+ } finally {
2526
+ raw.fill(0);
2527
+ }
2528
+ };
2529
+ /**
2530
+ * Runs a fresh assertion and confines the words its root derives to `consume`.
2531
+ * The outputs are zeroed and the credential released on success and failure
2532
+ * alike; the credential is committed only when `consume` succeeds.
2533
+ */
2534
+ const withCeremonyMnemonic = async (ceremony, consume) => {
2535
+ const { outputs, credential } = await ceremony();
2536
+ try {
2537
+ const result = await consume(Mnemonic.deriveFrom(deriveWalletEntropy(outputs.root)));
2538
+ credential.commit();
2539
+ return result;
2540
+ } finally {
2541
+ credential.release();
2542
+ zeroOutputs(outputs);
2543
+ }
2544
+ };
2545
+ /**
2546
+ * The credential handling every key source shares: enrolment, the pinned
2547
+ * credential, and assertions evaluating the PRF at the root salt and, when
2548
+ * `deviceSaltLabel` is given, at that salt first. The root output is the
2549
+ * same either way, so every key source over one passkey derives the same
2550
+ * words.
2551
+ *
2552
+ * Ceremonies pin `allowCredentials` to the credential id captured from
2553
+ * passkey creation or a previous assertion; before one is known the key
2554
+ * is omitted, which is how WebAuthn asks for a discoverable credential,
2555
+ * so the browser offers any resident passkey for the origin. A dismissed
2556
+ * prompt maps to PasskeyCeremonyCancelledError and an authenticator without
2557
+ * PRF support to PasskeyPrfUnsupportedError.
2558
+ *
2559
+ * Enrolment asks for a platform authenticator, so the passkey is created
2560
+ * on the device the user is on and syncs through their platform
2561
+ * credential manager. Without that constraint a browser with no passkey
2562
+ * for the origin yet offers to scan a QR code and enrol another device
2563
+ * instead.
2564
+ */
2565
+ const createPasskeyCeremonies = ({ credentials, rpName = DEFAULT_RP_NAME, rpId = globalThis.location?.hostname, credentialId: importedCredentialId }, deviceSaltLabel) => {
2566
+ if (!rpId) throw new Error("A passkey RP ID is required.");
2567
+ const container = credentials ?? navigator.credentials;
2568
+ let credentialPin = importedCredentialId !== void 0 ? {
2569
+ credentialId: decodeId(importedCredentialId),
2570
+ committed: true,
2571
+ holders: 0
2572
+ } : void 0;
2573
+ const prfEval = async () => {
2574
+ const rootSalt = await prfSalt(PRF_SALT_ROOT_LABEL);
2575
+ return deviceSaltLabel === void 0 ? { first: rootSalt } : {
2576
+ first: await prfSalt(deviceSaltLabel),
2577
+ second: rootSalt
2578
+ };
2579
+ };
2580
+ const toOutputs = (results) => {
2581
+ if (deviceSaltLabel === void 0) {
2582
+ if (!results?.first) throw new PasskeyPrfUnsupportedError();
2583
+ return { root: toBytes(results.first) };
2584
+ }
2585
+ if (!results?.first || !results.second) throw new PasskeyPrfUnsupportedError();
2586
+ return {
2587
+ device: toBytes(results.first),
2588
+ root: toBytes(results.second)
2589
+ };
2590
+ };
2591
+ const credentialRef = () => credentialPin ? {
2592
+ credentialId: encodeId(credentialPin.credentialId),
2593
+ rpId,
2594
+ recipeVersion: RECIPE_VERSION
2595
+ } : void 0;
2596
+ const releaseCredentialPin = (pin) => {
2597
+ pin.holders -= 1;
2598
+ if (!pin.committed && pin.holders === 0 && credentialPin === pin) credentialPin = void 0;
2599
+ };
2600
+ const createCredential = async () => {
2601
+ const evaluation = await prfEval();
2602
+ let created;
2603
+ try {
2604
+ created = await container.create({ publicKey: {
2605
+ rp: {
2606
+ name: rpName,
2607
+ id: rpId
2608
+ },
2609
+ user: {
2610
+ id: crypto.getRandomValues(new Uint8Array(USER_ID_LENGTH)),
2611
+ name: rpName,
2612
+ displayName: rpName
2613
+ },
2614
+ challenge: crypto.getRandomValues(new Uint8Array(CHALLENGE_LENGTH)),
2615
+ pubKeyCredParams: [{
2616
+ type: "public-key",
2617
+ alg: ES256
2618
+ }, {
2619
+ type: "public-key",
2620
+ alg: RS256
2621
+ }],
2622
+ authenticatorSelection: {
2623
+ authenticatorAttachment: "platform",
2624
+ residentKey: "required",
2625
+ userVerification: "required"
2626
+ },
2627
+ extensions: { prf: { eval: evaluation } }
2628
+ } });
2629
+ } catch (error) {
2630
+ if (isCancellation(error)) throw new PasskeyCeremonyCancelledError();
2631
+ throw error;
2632
+ }
2633
+ if (!created) throw new PasskeyCeremonyCancelledError();
2634
+ const credential = created;
2635
+ if (!credential.getClientExtensionResults().prf?.enabled) throw new PasskeyPrfUnsupportedError();
2636
+ credentialPin = {
2637
+ credentialId: credential.rawId,
2638
+ committed: true,
2639
+ holders: 0
2640
+ };
2641
+ return credentialRef();
2642
+ };
2643
+ let enrolment;
2644
+ const ensureCredential = async () => {
2645
+ const existing = credentialRef();
2646
+ if (existing) return existing;
2647
+ enrolment ??= createCredential().finally(() => {
2648
+ enrolment = void 0;
2649
+ });
2650
+ return enrolment;
2651
+ };
2652
+ const ceremony = async () => {
2653
+ const evaluation = await prfEval();
2654
+ const expectedPin = credentialPin;
2655
+ const expectedCredentialId = expectedPin?.credentialId;
2656
+ if (expectedPin) expectedPin.holders += 1;
2657
+ let asserted;
2658
+ try {
2659
+ asserted = await container.get({ publicKey: {
2660
+ challenge: crypto.getRandomValues(new Uint8Array(CHALLENGE_LENGTH)),
2661
+ rpId,
2662
+ ...expectedCredentialId && { allowCredentials: [{
2663
+ type: "public-key",
2664
+ id: expectedCredentialId
2665
+ }] },
2666
+ userVerification: "required",
2667
+ extensions: { prf: { eval: evaluation } }
2668
+ } });
2669
+ } catch (error) {
2670
+ if (expectedPin) releaseCredentialPin(expectedPin);
2671
+ if (isCancellation(error)) throw new PasskeyCeremonyCancelledError();
2672
+ throw error;
2673
+ }
2674
+ if (!asserted) {
2675
+ if (expectedPin) releaseCredentialPin(expectedPin);
2676
+ throw new PasskeyCeremonyCancelledError();
2677
+ }
2678
+ let heldPin = expectedPin;
2679
+ try {
2680
+ const credential = asserted;
2681
+ if (expectedCredentialId && encodeId(credential.rawId) !== encodeId(expectedCredentialId)) throw new PasskeyCredentialMismatchError();
2682
+ const outputs = toOutputs(credential.getClientExtensionResults().prf?.results);
2683
+ if (!heldPin) {
2684
+ const currentPin = credentialPin;
2685
+ if (currentPin && encodeId(credential.rawId) !== encodeId(currentPin.credentialId)) throw new PasskeyCredentialMismatchError();
2686
+ if (currentPin) {
2687
+ currentPin.holders += 1;
2688
+ heldPin = currentPin;
2689
+ } else {
2690
+ heldPin = {
2691
+ credentialId: credential.rawId,
2692
+ committed: false,
2693
+ holders: 1
2694
+ };
2695
+ credentialPin = heldPin;
2696
+ }
2697
+ }
2698
+ const selectedPin = heldPin;
2699
+ let isReleased = false;
2700
+ return {
2701
+ outputs,
2702
+ credential: {
2703
+ commit: () => {
2704
+ selectedPin.committed = true;
2705
+ },
2706
+ release: () => {
2707
+ if (isReleased) return;
2708
+ isReleased = true;
2709
+ releaseCredentialPin(selectedPin);
2710
+ }
2711
+ }
2712
+ };
2713
+ } catch (error) {
2714
+ if (heldPin) releaseCredentialPin(heldPin);
2715
+ throw error;
2716
+ }
2717
+ };
2718
+ return {
2719
+ ensureCredential,
2720
+ credentialRef,
2721
+ ceremony
2722
+ };
2723
+ };
2724
+ //#endregion
2725
+ //#region ../../packages/lib/passkey/src/key-source.ts
2726
+ /**
2727
+ * Creates the key source of one passkey: it runs the WebAuthn PRF ceremony
2728
+ * and derives the passkey's wallet words, handing them only to the callback
2729
+ * of `withPasskeyMnemonic`.
2730
+ *
2731
+ * @remarks
2732
+ * A {@link PasskeyKeySource} over the WebAuthn PRF extension. Each call to
2733
+ * `withPasskeyMnemonic` is its own assertion: the PRF output is the root,
2734
+ * the words derive from it through HKDF and BIP-39, and the root is zeroed
2735
+ * once the callback settles, on success and failure alike. Nothing is kept
2736
+ * between calls except the credential id.
2737
+ *
2738
+ * Ceremonies pin `allowCredentials` to the credential id captured from
2739
+ * passkey creation or a previous assertion; before one is known the key is
2740
+ * omitted, so the browser offers any resident passkey for the origin. A
2741
+ * dismissed prompt rejects with a `ceremony-cancelled` error and an
2742
+ * authenticator without PRF support with a `prf-unsupported` one.
2743
+ *
2744
+ * Enrolment asks for a platform authenticator, so the passkey is created on
2745
+ * the device the user is on and syncs through their platform credential
2746
+ * manager. Without that constraint a browser with no passkey for the origin
2747
+ * yet offers to scan a QR code and enrol another device instead.
2748
+ *
2749
+ * @param props - The relying party, a saved credential ID and the WebAuthn
2750
+ * entry point, each optional.
2751
+ */
2752
+ const createPasskeyKeySource = (props = {}) => {
2753
+ const { ensureCredential, credentialRef, ceremony } = createPasskeyCeremonies(props);
2754
+ return {
2755
+ ensureCredential,
2756
+ credentialRef,
2757
+ withPasskeyMnemonic: async (use) => withCeremonyMnemonic(ceremony, use)
2758
+ };
2759
+ };
2760
+ //#endregion
2761
+ export { zeroOutputs as a, RemoteSignerError as c, HKDF_RECORD_KEY_INFO as d, PRF_SALT_AUTHORISER_LABEL as f, hmac as g, hkdf as h, withCeremonyMnemonic as i, SignerClosedError as l, EntropyHex as m, createPasskeyCeremonies as n, PasskeyCeremonyCancelledError as o, Mnemonic as p, deriveWalletEntropy as r, PasskeyPrfUnsupportedError as s, createPasskeyKeySource as t, SignerPopupBlockedError as u };