@laceio/sdk 0.1.1 → 0.1.2-canary.1

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 (388) hide show
  1. package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-X1H9Gze6.cjs} +64 -14
  2. package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-bp2aMDhg.js} +23 -15
  3. package/dist/{_polyfill-buffer-patch-BnPVerlG.cjs → _polyfill-buffer-patch-CM8X7JiY.cjs} +21 -2
  4. package/dist/_polyfill-buffer-patch-yNxN4d5E.js +1467 -0
  5. package/dist/_web-crypto-random-bytes-Bo-GTcRS.js +197 -0
  6. package/dist/acc-module-4iIUv6My.cjs +27654 -0
  7. package/dist/acc-module-Cmj8EsIb.js +27624 -0
  8. package/dist/account-BOQruszJ.js +6 -0
  9. package/dist/account-BUOj4pYJ.cjs +11 -0
  10. package/dist/account-call-7wnopBq0.cjs +5 -0
  11. package/dist/account-call-B9d_2Xwi.js +4 -0
  12. package/dist/account-call-Bd4Rpbvt.cjs +323 -0
  13. package/dist/account-call-C3CkDqEC.js +276 -0
  14. package/dist/account-guards-BtjTGxDZ.cjs +42 -0
  15. package/dist/account-guards-D9Lu5T3W.js +36 -0
  16. package/dist/account-tokens-DvkOFVON.js +16 -0
  17. package/dist/account-tokens-nwcvwLu4.cjs +21 -0
  18. package/dist/{activity-type.stable-BJEfeLxL.cjs → activity-type-Ch6ljxBy.cjs} +2 -1
  19. package/dist/{activity-type.stable-C76_hWd7.js → activity-type-GsJGWs-3.js} +2 -1
  20. package/dist/address-B9ntKL8K.js +13761 -0
  21. package/dist/address-BXp-mY8H.cjs +11270 -0
  22. package/dist/{address-book-address-validator-DIUolI-s.js → address-book-address-validator-0J9XAADH.js} +2 -2
  23. package/dist/address-book-address-validator-DK0dnsRS.cjs +41 -0
  24. package/dist/address-book-address-validator-Di_ywo8M.js +39 -0
  25. package/dist/{address-book-address-validator-DNwQGlOB.cjs → address-book-address-validator-Dte_YQ2L.cjs} +2 -2
  26. package/dist/artefact-loader-BWWYAD7E.cjs +183 -0
  27. package/dist/artefact-loader-Dik4HIfv.js +160 -0
  28. package/dist/auto-dismiss-failure-on-success-C-qoJuid.cjs +37 -0
  29. package/dist/auto-dismiss-failure-on-success-s8MGDEIu.js +31 -0
  30. package/dist/bip32-D6wd_QMn.cjs +3851 -0
  31. package/dist/bitcoin-data-provider-BYPSmuZS.js +21 -0
  32. package/dist/bitcoin-data-provider-w1oEDSU3.cjs +26 -0
  33. package/dist/bitcoin.cjs +45 -0
  34. package/dist/bitcoin.d.ts +29906 -1
  35. package/dist/bitcoin.js +20 -0
  36. package/dist/{blockfrost-tx-submit-provider-DPTrapz-.js → blockfrost-tx-submit-provider-CBWQ0wK9.js} +5 -157
  37. package/dist/{blockfrost-tx-submit-provider-BAIzV5o3.cjs → blockfrost-tx-submit-provider-CLNQ5ycR.cjs} +3 -167
  38. package/dist/bn-d3nSOIf7.cjs +2553 -0
  39. package/dist/browser-B1eMbDwh.js +7468 -0
  40. package/dist/bytes.vo-BB7_4JK6.js +23 -0
  41. package/dist/bytes.vo-BNRquqaO.cjs +34 -0
  42. package/dist/cardano-DfPwhwm-.js +3 -0
  43. package/dist/{cardano-network-id.vo-DSxrFk9S.cjs → cardano-network-id.vo-BEDPn6Li.cjs} +1 -1
  44. package/dist/{cardano-network-id.vo-CK1tNQDg.js → cardano-network-id.vo-Cfpvbod9.js} +1 -1
  45. package/dist/cardano.cjs +22 -18
  46. package/dist/cardano.d.ts +16962 -1716
  47. package/dist/cardano.js +16 -11
  48. package/dist/client-DXBLHk7K.cjs +808 -0
  49. package/dist/codecs-Cswkg7Tm.cjs +4051 -0
  50. package/dist/codecs-Dc1Krpbt.js +3903 -0
  51. package/dist/{const-C84qHkjp.js → const-BJfIK_G-.js} +4 -4
  52. package/dist/const-BhYOdznB.cjs +42 -0
  53. package/dist/const-BsnjG2_Q.cjs +32071 -0
  54. package/dist/const-CUnCl5U0.js +13 -0
  55. package/dist/{const-DXk2tFyv.js → const-CjmfjBP3.js} +1 -1
  56. package/dist/{const-BDEg2Trq.cjs → const-D-eZIS4n.cjs} +4 -4
  57. package/dist/const-D0CbQlo4.js +154 -0
  58. package/dist/{const-BY8B3_0_.cjs → const-iwzZEE_w.cjs} +1 -1
  59. package/dist/contract-1R86jhSw.js +171 -0
  60. package/dist/contract-MKLzYVkW.cjs +189 -0
  61. package/dist/create-add-accounts-Brqk84vF.js +102 -0
  62. package/dist/create-add-accounts-DzXIh7Ot.cjs +114 -0
  63. package/dist/{delegation-tx-builder-CRpLP6jH.cjs → delegation-tx-builder-Dof_0N_d.cjs} +6 -6
  64. package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-Dy3-2Auz.js} +5 -5
  65. package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CcLwyFpj.cjs} +6 -6
  66. package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-QkWW_gWl.js} +5 -5
  67. package/dist/device-commitment-hex.vo-5wFtQvDS.js +26 -0
  68. package/dist/device-commitment-hex.vo-CT3RmAug.cjs +31 -0
  69. package/dist/device-readers-CUHYoYOH.js +145 -0
  70. package/dist/device-readers-CdxS2btd.cjs +168 -0
  71. package/dist/device-readers-D_JZeNL2.cjs +8 -0
  72. package/dist/device-readers-DwSNCGPP.js +4 -0
  73. package/dist/dist-BMi5ZjEq.cjs +43175 -0
  74. package/dist/dist-BtIq4XFn.cjs +535 -0
  75. package/dist/dist-C3SHC_Ho.cjs +1394 -0
  76. package/dist/dist-CykEjYEX.cjs +3814 -0
  77. package/dist/dist-Dcsxh3be.cjs +3452 -0
  78. package/dist/dist-DqJfSlTd.cjs +4413 -0
  79. package/dist/dist-nTZ70qj7.cjs +1306 -0
  80. package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-BP5JMIKS.cjs} +6 -6
  81. package/dist/{earn-rewards-tx-builder-BDbTDZmD.js → earn-rewards-tx-builder-Cku4BmNU.js} +5 -5
  82. package/dist/enc-key-circuits-B7BjgUL9.js +13 -0
  83. package/dist/enc-key-circuits-BLrZrBVI.cjs +24 -0
  84. package/dist/english-Byb9M0E_.cjs +2057 -0
  85. package/dist/envelopes-BGoO_v8m.js +1621 -0
  86. package/dist/envelopes-CH25R-DN.cjs +1722 -0
  87. package/dist/errors-BIftM8ZN.cjs +688 -0
  88. package/dist/errors-DSq5wUwt.js +466 -0
  89. package/dist/esm-HBSUQw3w.js +384 -0
  90. package/dist/esm-LZuaZjMf.cjs +389 -0
  91. package/dist/experimental.cjs +7349 -0
  92. package/dist/experimental.d.ts +86279 -0
  93. package/dist/experimental.js +7184 -0
  94. package/dist/gated-call-CDCVZIK-.cjs +5 -0
  95. package/dist/gated-call-D-tT7P_t.js +722 -0
  96. package/dist/gated-call-D_VT2quk.js +4 -0
  97. package/dist/gated-call-DgJm1Mi_.cjs +787 -0
  98. package/dist/grant-circuits-DswmW3nI.cjs +71 -0
  99. package/dist/grant-circuits-Jxb5y1HW.js +42 -0
  100. package/dist/grant-rules-By07_eDi.js +6824 -0
  101. package/dist/grant-rules-BzVTWXS7.cjs +7099 -0
  102. package/dist/grant-spend-B3Md9L0n.js +215 -0
  103. package/dist/grant-spend-oWmzRsjH.cjs +217 -0
  104. package/dist/grant-status-B2y49iIu.js +2688 -0
  105. package/dist/grant-status-DOr3t_u8.cjs +2820 -0
  106. package/dist/grants-2BZ-qEVQ.js +5 -0
  107. package/dist/grants-BPoLSiMt.cjs +18 -0
  108. package/dist/grants-BoI5uwSF.cjs +272 -0
  109. package/dist/grants-CtofFu-e.js +213 -0
  110. package/dist/{group-cardano-addresses-by-account-B533oVXR.cjs → group-cardano-addresses-by-account-Bp0g4wEY.cjs} +3 -39
  111. package/dist/{group-cardano-addresses-by-account-RHKoEskR.js → group-cardano-addresses-by-account-SR8MMrZf.js} +5 -35
  112. package/dist/{guarded-transaction-signer-Bxl6_XNd.cjs → guarded-transaction-signer-MFpPg98D.cjs} +17 -18
  113. package/dist/{guarded-transaction-signer-CpKLj8Kp.js → guarded-transaction-signer-P6Rp1faj.js} +8 -15
  114. package/dist/hex-D9ITYbwt.cjs +263 -0
  115. package/dist/hex-mkXcV3pN.js +191 -0
  116. package/dist/http-client-B3N-TMxu.cjs +167 -0
  117. package/dist/http-client-TRlhDZGh.js +155 -0
  118. package/dist/identity-BMLuufva.cjs +263 -0
  119. package/dist/identity-DII6f-h7.js +233 -0
  120. package/dist/in-memory-wallet-integration-B2xzxORj.cjs +20741 -0
  121. package/dist/in-memory-wallet-integration-CBRiPjLO.js +130 -0
  122. package/dist/in-memory-wallet-integration-CULUB5Tf.cjs +240 -0
  123. package/dist/{in-memory-wallet-integration-D-qn65Kx.js → in-memory-wallet-integration-ChIOirMW.js} +5 -2
  124. package/dist/{in-memory-wallet-integration-Croiuopx.js → in-memory-wallet-integration-CljprQQV.js} +7 -104
  125. package/dist/{in-memory-wallet-integration-DVh9sRXa.cjs → in-memory-wallet-integration-Cm6P8sk6.cjs} +3 -2
  126. package/dist/in-memory-wallet-integration-TM9bBphA.js +20738 -0
  127. package/dist/{in-memory-wallet-integration-CnLYeX4-.cjs → in-memory-wallet-integration-t9I00R_V.cjs} +17 -108
  128. package/dist/index.cjs +84 -47
  129. package/dist/index.d.ts +37505 -10036
  130. package/dist/index.js +52 -24
  131. package/dist/{init-CLHuAMB-.js → init-0zzs9aqU.js} +4 -4
  132. package/dist/{init-U8c9yHYx.cjs → init-5KcGcBb5.cjs} +1 -1
  133. package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
  134. package/dist/init-B8U3ABhS.cjs +107 -0
  135. package/dist/init-BJn-8_hf.js +141 -0
  136. package/dist/init-BPU3j8sT.cjs +6 -0
  137. package/dist/init-BRzH6xu-2.cjs +2797 -0
  138. package/dist/init-BmzfDaKL.js +1142 -0
  139. package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
  140. package/dist/init-BpHTq2R5.js +105 -0
  141. package/dist/init-BpSITBfF.js +39 -0
  142. package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
  143. package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
  144. package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
  145. package/dist/init-C00gw1zi.js +422 -0
  146. package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
  147. package/dist/init-C5mYyFTv.js +3584 -0
  148. package/dist/{init-DcYY6zMD.js → init-C8URA2OX.js} +1 -1
  149. package/dist/init-CDkRynJa.js +2796 -0
  150. package/dist/{init-Cg9XdAru.js → init-CNM5m7M2.js} +4 -4
  151. package/dist/init-CR7BfztQ.cjs +18 -0
  152. package/dist/{init-CSHwHnfg.cjs → init-CSDpdu0Q.cjs} +2 -2
  153. package/dist/{init-aJHl-7AO.js → init-CX0AMQUn.js} +2 -2
  154. package/dist/{init-FMGDET-9.js → init-CfTbSEKy.js} +259 -60
  155. package/dist/{init-CR6tpw1B.js → init-Cigr_tKx.js} +47 -43
  156. package/dist/init-Clu8pxwQ.cjs +1181 -0
  157. package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
  158. package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
  159. package/dist/init-D8OeObDF.cjs +1141 -0
  160. package/dist/init-D9g1HXYf.cjs +40 -0
  161. package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
  162. package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
  163. package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
  164. package/dist/init-DGjXwWs2.cjs +143 -0
  165. package/dist/init-DHrCbpkW.cjs +121 -0
  166. package/dist/init-DRzJR02G.cjs +3585 -0
  167. package/dist/{init-B64zCLxG.cjs → init-DUF4ar8P.cjs} +4 -4
  168. package/dist/init-DlqJuHhl.js +119 -0
  169. package/dist/{init-y2Ra0vZP.js → init-Dnsv155v.js} +3 -3
  170. package/dist/init-DuYENxci.js +17 -0
  171. package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
  172. package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
  173. package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
  174. package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
  175. package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
  176. package/dist/init-GsT2AEa4.cjs +424 -0
  177. package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
  178. package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
  179. package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
  180. package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
  181. package/dist/init-c4l6r-o-.js +5 -0
  182. package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
  183. package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
  184. package/dist/init-qSEd_Spq.js +1182 -0
  185. package/dist/{init-anYu6XB7.cjs → init-rmt7-fQE.cjs} +2 -2
  186. package/dist/{init-C4Bkib9u.cjs → init-zU-_9Gsp.cjs} +67 -65
  187. package/dist/{is-retriable-error-BU0e3hVI.js → is-retriable-error-BUiVJDwH.js} +1 -1
  188. package/dist/{is-retriable-error-CeeuHqDa.cjs → is-retriable-error-Dpt860if.cjs} +1 -1
  189. package/dist/jubjub-authoriser-D7zDXu3V.js +86 -0
  190. package/dist/jubjub-authoriser-Dgu6o3Sv.cjs +87 -0
  191. package/dist/key-source-5oUBFiC7.cjs +583 -0
  192. package/dist/key-source-B08HukZg.js +2550 -0
  193. package/dist/keyDerivation-D3k9XyHg.js +4077 -0
  194. package/dist/keyDerivation-u0nBA93T.cjs +274 -0
  195. package/dist/{lace-context-CZcNHr4M.js → lace-context-BZciB9c7.js} +4 -4
  196. package/dist/{lace-context-fJTDghdp.cjs → lace-context-DgR6vLli.cjs} +4 -4
  197. package/dist/lib--iqvW4O_.js +2354 -0
  198. package/dist/lib-Yk6Upl5D.cjs +2359 -0
  199. package/dist/{libsodium-wrappers-UH0LaOUE.js → libsodium-wrappers-BhbOA8dQ.js} +3 -1647
  200. package/dist/midnight-account-id.vo-0x9X-r3l.cjs +10 -0
  201. package/dist/midnight-account-id.vo-DjCAGcqc.js +5 -0
  202. package/dist/midnight-engine-DpemplKO.js +5 -0
  203. package/dist/midnight-engine-xU1wotne.cjs +6 -0
  204. package/dist/midnight-wallet-DIsAlSn6.js +18 -0
  205. package/dist/midnight-wallet-XTZc2li7.cjs +24 -0
  206. package/dist/midnight.cjs +1408 -0
  207. package/dist/midnight.d.ts +28934 -0
  208. package/dist/midnight.js +1352 -0
  209. package/dist/modules-cardano-D9Gs2j60.cjs +1108 -0
  210. package/dist/modules-cardano-VIM8fKu-.js +995 -0
  211. package/dist/node-relay-DWe1U0w2.cjs +49 -0
  212. package/dist/node-relay-h4i5IlAQ.js +48 -0
  213. package/dist/outputs-Bd2yZVjx.js +720 -0
  214. package/dist/outputs-CJoQBIA2.cjs +990 -0
  215. package/dist/pbkdf2-CIW-oWrm.cjs +1337 -0
  216. package/dist/pending-operation-B0_P78Jo.cjs +26 -0
  217. package/dist/pending-operation-BIS6mpjB.js +21 -0
  218. package/dist/providers-FjhM47BH.cjs +388 -0
  219. package/dist/providers-WtiSuxFu.js +365 -0
  220. package/dist/redacted-BmE2aXqr.js +81 -0
  221. package/dist/redacted-CRZJLS3w.cjs +86 -0
  222. package/dist/{retry-config-DC5IMaH7.cjs → retry-config-BaCfVC1H.cjs} +1 -1
  223. package/dist/{retry-config-BcUmMS--.js → retry-config-Dmgt28wM.js} +1 -1
  224. package/dist/safe-buffer-B_vMqJWU.js +43 -0
  225. package/dist/safe-buffer-DYOwEfHB.cjs +48 -0
  226. package/dist/sdk-Cb-gZnS9.js +1241 -0
  227. package/dist/sdk-DffwmX8b.cjs +1439 -0
  228. package/dist/sdk-init-Bln9rFtn.js +4138 -0
  229. package/dist/sdk-init-CYViTJY_.cjs +3841 -0
  230. package/dist/{seam-cardano-CATqBEyK.js → seam-cardano-B_etH4F4.js} +1 -1
  231. package/dist/{bytes.vo-TgiwogWF.js → secret-box-DUR0ACYz.js} +3 -25
  232. package/dist/{bytes.vo-Ck5u40RA.cjs → secret-box-DrjLZuS1.cjs} +1 -35
  233. package/dist/send-proof-progress-C-ljq1x5.js +30 -0
  234. package/dist/send-proof-progress-vmsaSfbz.cjs +47 -0
  235. package/dist/side-effects-BnqYz7Nl.js +768 -0
  236. package/dist/side-effects-CngaeXi0.cjs +804 -0
  237. package/dist/sign-bitcoin-transaction-with-seed-D4z62-jV.js +147 -0
  238. package/dist/sign-bitcoin-transaction-with-seed-DsLYXnCY.cjs +158 -0
  239. package/dist/signer-3fk8lZtE.cjs +7 -0
  240. package/dist/signer-CsL28DrK.cjs +121 -0
  241. package/dist/signer-DGluibtn.js +92 -0
  242. package/dist/signer-RqB5pu3K.js +2 -0
  243. package/dist/signer-factory-BA7WFJVZ.js +282 -0
  244. package/dist/signer-factory-Cwd6o-lG.cjs +281 -0
  245. package/dist/{signer-factory-9URFliA5.js → signer-factory-DObB55D4.js} +6 -3
  246. package/dist/signer-factory-DhZiE03y.cjs +149 -0
  247. package/dist/{signer-factory-BWGUmnvm.cjs → signer-factory-Ds6G2AZk.cjs} +4 -3
  248. package/dist/signer-factory-hzSRaIw2.js +148 -0
  249. package/dist/{slice-CuHUaPZx.cjs → slice-7G2xxYKJ.cjs} +3 -3
  250. package/dist/{slice-DZmQJNV8.cjs → slice-B4CdYoPu.cjs} +2 -2
  251. package/dist/slice-BPNuHKfw.js +9091 -0
  252. package/dist/{slice-DGcNrbPR.cjs → slice-Bg6HEr3K.cjs} +4 -4
  253. package/dist/{slice-DtaO72qY.cjs → slice-Bs2aMERu.cjs} +3 -3
  254. package/dist/{slice-HeHCv3bl.cjs → slice-C34iOOUH.cjs} +7 -7
  255. package/dist/{slice-Do2R2CYW.cjs → slice-C9TT5KhY.cjs} +6 -6
  256. package/dist/{slice-eIwcwKHI.js → slice-CK07EBCo.js} +4 -4
  257. package/dist/{slice-CnyWevM9.js → slice-CU80pbiu.js} +3 -3
  258. package/dist/{slice-CobanYgn.js → slice-CwyYrh1H.js} +2 -2
  259. package/dist/slice-Czfp6t84.cjs +436 -0
  260. package/dist/{slice-d0p6-xj5.js → slice-D-9aPKG-.js} +6 -6
  261. package/dist/{slice-maaskdUn.js → slice-DBpJ2QGf.js} +6 -6
  262. package/dist/{slice-mxLQ_FeY.cjs → slice-DTZTiJle.cjs} +352 -39
  263. package/dist/{slice-zJ9XVYjZ.js → slice-Da426sf9.js} +1 -1
  264. package/dist/{slice-D11m2EKl.cjs → slice-DayJvMRD.cjs} +1 -1
  265. package/dist/slice-DnBWfA-k.cjs +9109 -0
  266. package/dist/{slice-oqm_r1cS.cjs → slice-DnG-yvpI.cjs} +2 -2
  267. package/dist/{slice-BNu73oBa.js → slice-DyNs7oWp.js} +2 -2
  268. package/dist/{slice-CB4SnzMm.js → slice-GwiiJRoq.js} +3 -3
  269. package/dist/slice-oWnc7YVD.js +412 -0
  270. package/dist/{slice-B2PhoWAg.js → slice-qt0uBExh.js} +325 -37
  271. package/dist/slice-t8Gzj55G2.cjs +106 -0
  272. package/dist/slice-t8Q1cHm-.js +88 -0
  273. package/dist/src-BDzYIksE.cjs +20637 -0
  274. package/dist/src-BFoefPv_.js +20755 -0
  275. package/dist/store-B1Lq3cEf.cjs +66 -0
  276. package/dist/store-DuBG8qh5.js +37 -0
  277. package/dist/submit-Bs77dPn_.cjs +413 -0
  278. package/dist/submit-DOv8Z0Vf.js +336 -0
  279. package/dist/submit-bitcoin-tx-D6oYgH5S.js +983 -0
  280. package/dist/submit-bitcoin-tx-goFuRL7K.cjs +1049 -0
  281. package/dist/{sync-operation-utils-BYXLO80m.js → sync-operation-utils-31iFLExW.js} +2 -38
  282. package/dist/{sync-operation-utils-SdPbwFoD.cjs → sync-operation-utils-COIZ66-I.cjs} +1 -67
  283. package/dist/token-id-mapper-Bnds3xKH.cjs +18 -0
  284. package/dist/{token-id-mapper-DsPAL6Nh.cjs → token-id-mapper-CVyQJUKY.cjs} +2 -2
  285. package/dist/token-id-mapper-CnKHQ8DV.js +16 -0
  286. package/dist/{token-id-mapper-B2ivlLv3.js → token-id-mapper-D29Ggv8h.js} +2 -2
  287. package/dist/tokens-Cevp7rdU.cjs +62 -0
  288. package/dist/tokens-Diw4MLRM.js +44 -0
  289. package/dist/types-B8uiJn-X.js +12 -0
  290. package/dist/types-BHC12eSa.js +33 -0
  291. package/dist/types-CJT6XF2c.js +10 -0
  292. package/dist/types-CLRUYpfe.cjs +23 -0
  293. package/dist/types-Cc3mC8u0.cjs +50 -0
  294. package/dist/types-DWbVZpnF.cjs +15 -0
  295. package/dist/unwrap-provider-result-BZSiwabU.js +32 -0
  296. package/dist/unwrap-provider-result-ZqfBsTkk.cjs +39 -0
  297. package/dist/{util-CGzqQ8IV.cjs → util-Bu4W5lF4.cjs} +1 -1
  298. package/dist/{util-BaLzwa32.js → util-Cp5cZkfK.js} +1 -1
  299. package/dist/{utils-o8aMjfln.js → utils-BfBEUvWA.js} +2 -2
  300. package/dist/utils-DFwzEvbv.js +65 -0
  301. package/dist/{utils-5JvjbqH3.cjs → utils-DsElZgCI.cjs} +7 -1
  302. package/dist/utils-IXxR-Djh.cjs +112 -0
  303. package/dist/v8Signatures-CO_Uloy7.cjs +71 -0
  304. package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-BsBSDmcX.js} +5 -5
  305. package/dist/{vote-delegation-tx-builder-BpEMSti4.cjs → vote-delegation-tx-builder-DSs8nybk.cjs} +6 -6
  306. package/dist/watch-CUEvcP-V.js +21997 -0
  307. package/dist/watch-DMF2s-II.cjs +52281 -0
  308. package/package.json +96 -4
  309. package/dist/account-guards.stable-B1DSSh9D.cjs +0 -10
  310. package/dist/account-guards.stable-JRQ5qx2V.js +0 -5
  311. package/dist/codecs-B7X9pAsK.cjs +0 -1945
  312. package/dist/codecs-CC1Xjntz.js +0 -1882
  313. package/dist/init-Bv53hpLM.js +0 -19
  314. package/dist/init-CRbjI7p1.js +0 -3494
  315. package/dist/init-DAna1KCg.cjs +0 -3495
  316. package/dist/init-DGe47B22.cjs +0 -364
  317. package/dist/init-DMtyvYfC.cjs +0 -21
  318. package/dist/init-TkPDD750.js +0 -363
  319. package/dist/modules-cardano-BDvuL4Xx.js +0 -5248
  320. package/dist/modules-cardano-D2G3De2P.cjs +0 -5432
  321. package/dist/slice-CGVHXHDt.cjs +0 -125
  322. package/dist/slice-DhvF7L6X.js +0 -107
  323. /package/dist/{account-id.vo-LvCBVn5r.cjs → account-id.vo-DwqFjK5u.cjs} +0 -0
  324. /package/dist/{account-id.vo-MYSI7YFm.js → account-id.vo-OPz2v-JZ.js} +0 -0
  325. /package/dist/{actions-DdGbj7c7.cjs → actions-B2BJ4RTy.cjs} +0 -0
  326. /package/dist/{actions-9QSQR-GB.js → actions-iLXdgL5Y.js} +0 -0
  327. /package/dist/{apply-vkey-witnesses-ClZbpk5w.js → apply-vkey-witnesses-BKx3lcs0.js} +0 -0
  328. /package/dist/{apply-vkey-witnesses-CLzVSWxl.cjs → apply-vkey-witnesses-ZnFS0jnJ.cjs} +0 -0
  329. /package/dist/{asyncoption-Cw07zPH7.js → asyncoption-CruEYOBI.js} +0 -0
  330. /package/dist/{asyncoption-DYoGuQfP.cjs → asyncoption-i0VbqVTq.cjs} +0 -0
  331. /package/dist/{bignum.vo-B0rK_PQ1.js → bignum.vo-CEXOIew0.js} +0 -0
  332. /package/dist/{bignum.vo-DsG3kNiZ.cjs → bignum.vo-hx2kuqlA.cjs} +0 -0
  333. /package/dist/{bip32ed25519-1ApqeAZk.cjs → bip32ed25519-B7Yat217.cjs} +0 -0
  334. /package/dist/{bip32ed25519-DetAdGwD.js → bip32ed25519-FQ8qvdcq.js} +0 -0
  335. /package/dist/{blake2b-DOEVc57D.js → blake2b-BiQTw3GC.js} +0 -0
  336. /package/dist/{blake2b-B9tftbvG.cjs → blake2b-DEeVUdKR.cjs} +0 -0
  337. /package/dist/{blockchain-network-id.vo-BXpZhvvQ.cjs → blockchain-network-id.vo-BAKEwGjG.cjs} +0 -0
  338. /package/dist/{blockchain-network-id.vo-DNRkuT5B.js → blockchain-network-id.vo-CiVykuqG.js} +0 -0
  339. /package/dist/{blockingWithLatestFrom-C5wp_uA-.js → blockingWithLatestFrom-Cd8c8EPG.js} +0 -0
  340. /package/dist/{blockingWithLatestFrom-DY8OPg0w.cjs → blockingWithLatestFrom-D8kBPBMX.cjs} +0 -0
  341. /package/dist/{cardano-network-id-to-network-type-CrZfUcyP.js → cardano-network-id-to-network-type-BWwzeEtM.js} +0 -0
  342. /package/dist/{cardano-network-id-to-network-type-BDTF-HmK.cjs → cardano-network-id-to-network-type-C0ufJOyE.cjs} +0 -0
  343. /package/dist/{cardano-tx-id.vo-BPhV-AmZ.cjs → cardano-tx-id.vo-TLjJZHCI.cjs} +0 -0
  344. /package/dist/{cardano-tx-id.vo-DF9NzZXk.js → cardano-tx-id.vo-eVnKuzlm.js} +0 -0
  345. /package/dist/{composite-signer-factory-_46QsNBz.js → composite-signer-factory-CR8YHA1y.js} +0 -0
  346. /package/dist/{composite-signer-factory-BpF1mIYA.cjs → composite-signer-factory-m5cVs9h_.cjs} +0 -0
  347. /package/dist/{error-CNIquqT5.cjs → error-Cb3EnD0u.cjs} +0 -0
  348. /package/dist/{error-BCp9NkPi.js → error-DIZOY2Lw.js} +0 -0
  349. /package/dist/{esm-browser-C93Q-EOI.js → esm-browser-MG97cre9.js} +0 -0
  350. /package/dist/{esm-browser-DTc9IK3D.cjs → esm-browser-bweqfBlL.cjs} +0 -0
  351. /package/dist/{feature-flag-key.vo-ofrB6ZVQ.js → feature-flag-key.vo-DN_-4-sG.js} +0 -0
  352. /package/dist/{feature-flag-key.vo-BPz-ZAp6.cjs → feature-flag-key.vo-RlfHL3hq.cjs} +0 -0
  353. /package/dist/{first-state-of-status-OROkXcRv.cjs → first-state-of-status-CbT7hPa4.cjs} +0 -0
  354. /package/dist/{first-state-of-status-DQnMT3ya.js → first-state-of-status-unPynOuM.js} +0 -0
  355. /package/dist/{init-Es3wHW7D.js → init-829HRYcz.js} +0 -0
  356. /package/dist/{init-CKipPE_c.js → init-A-VyGSNW2.js} +0 -0
  357. /package/dist/{init-DFQQ9dTW.cjs → init-Atisw4x2.cjs} +0 -0
  358. /package/dist/{init-C5CEZ1m0.cjs → init-BFcvPHL-.cjs} +0 -0
  359. /package/dist/{init-IAk_CkGa.cjs → init-BgNobbNq.cjs} +0 -0
  360. /package/dist/{init-cqN3uX2j.js → init-atCFur0v.js} +0 -0
  361. /package/dist/{is-redux-persist-state-CTn3WZVh.cjs → is-redux-persist-state-BCFnSm36.cjs} +0 -0
  362. /package/dist/{is-redux-persist-state-Cxcd0_bM.js → is-redux-persist-state-yBfq0h_E.js} +0 -0
  363. /package/dist/{key-value-store-8cMzeNyG.js → key-value-store--W3SrMaw.js} +0 -0
  364. /package/dist/{key-value-store-DUAepXQf.cjs → key-value-store-C2Xt5Emp.cjs} +0 -0
  365. /package/dist/{repo-slice-WxetRhMY.cjs → repo-slice-7X4AYYVm.cjs} +0 -0
  366. /package/dist/{repo-slice-DwyMhCR1.js → repo-slice-RxFm0zDZ.js} +0 -0
  367. /package/dist/{reselect-CRDqmQY9.cjs → reselect-Bd94u0K-.cjs} +0 -0
  368. /package/dist/{reselect-C06X06oX.js → reselect-CGoLzEPv.js} +0 -0
  369. /package/dist/{serializable-B8GahgE1.js → serializable-BHdKIgk3.js} +0 -0
  370. /package/dist/{serializable-CRdnFaLZ.cjs → serializable-BxHkoPdk.cjs} +0 -0
  371. /package/dist/{slice-D11FHQuQ.cjs → slice-BiRsDKOK.cjs} +0 -0
  372. /package/dist/{slice-Be7hj4Iy.js → slice-Bk0Sv05J.js} +0 -0
  373. /package/dist/{slice-FioKeHtA.cjs → slice-Dqw1ecum.cjs} +0 -0
  374. /package/dist/{slice-B87b52iM.js → slice-obCSLm1x.js} +0 -0
  375. /package/dist/{src-vq1wS9sZ.js → src-BlxEp6Mm.js} +0 -0
  376. /package/dist/{src-BTPIvlDI.cjs → src-Cqp0B2M_.cjs} +0 -0
  377. /package/dist/{time.vo-CQ8pSXz2.cjs → time.vo-D3wWRw9L.cjs} +0 -0
  378. /package/dist/{time.vo-DkYYGYp6.js → time.vo-tNheinXm.js} +0 -0
  379. /package/dist/{toEmpty-CgAl3097.js → toEmpty-8Zax1MPd.js} +0 -0
  380. /package/dist/{toEmpty-DAMmNB5r.cjs → toEmpty-CYAbupM4.cjs} +0 -0
  381. /package/dist/{token-id.vo-ClsroxHO.js → token-id.vo-Bvwhr3ZE.js} +0 -0
  382. /package/dist/{token-id.vo-BxG9TG0O.cjs → token-id.vo-DXv5uS9n.cjs} +0 -0
  383. /package/dist/{util-DxzlYNS5.js → util-C8a4fA9p.js} +0 -0
  384. /package/dist/{util-CmdAhheh.cjs → util-CzeB3hfa.cjs} +0 -0
  385. /package/dist/{util-selector-CcK-GAdE.js → util-selector-BSTsxgne.js} +0 -0
  386. /package/dist/{util-selector-BcAncU4L.cjs → util-selector-BWPH68_l.cjs} +0 -0
  387. /package/dist/{while-active-BpppWuCs.js → while-active-B0lWy_6l.js} +0 -0
  388. /package/dist/{while-active-Dhc2LwOm.cjs → while-active-Dsowp0Fi.cjs} +0 -0
@@ -0,0 +1,1241 @@
1
+ import { n as import_buffer } from "./_polyfill-buffer-patch-yNxN4d5E.js";
2
+ import { a as util, r as Crypto } from "./seam-cardano-B_etH4F4.js";
3
+ import { t as SecretBox } from "./secret-box-DUR0ACYz.js";
4
+ import { n as HexBytes, t as ByteArray } from "./bytes.vo-BB7_4JK6.js";
5
+ import { t as IS_PARAMETERIZED } from "./util-selector-BSTsxgne.js";
6
+ import { i as selectModules } from "./util-C8a4fA9p.js";
7
+ import { a as inferStoreContext, i as inferModuleContext, n as combineContracts, r as inferContractContext, t as store_default$15 } from "./store-DuBG8qh5.js";
8
+ import { r as featuresSelectors, t as featuresActions } from "./slice-Bk0Sv05J.js";
9
+ import { t as Redacted } from "./redacted-BmE2aXqr.js";
10
+ import { t as FeatureFlagKey } from "./feature-flag-key.vo-DN_-4-sG.js";
11
+ import { r as analyticsSelectors, t as analyticsActions } from "./slice-DyNs7oWp.js";
12
+ import { i as networkSelectors, n as networkActions } from "./slice-GwiiJRoq.js";
13
+ import { n as walletsSelectors, t as walletsActions } from "./lace-context-BZciB9c7.js";
14
+ import { n as tokensActions, r as tokensSelectors } from "./slice-DBpJ2QGf.js";
15
+ import { r as activitiesSelectors, t as activitiesActions } from "./slice-D-9aPKG-.js";
16
+ import { r as addressesSelectors, t as addressesActions } from "./slice-CU80pbiu.js";
17
+ import { h as store_default$16, r as cardanoContextSelectors, t as cardanoContextActions } from "./slice-qt0uBExh.js";
18
+ import { n as FEATURE_FLAG_CARDANO } from "./const-BJfIK_G-.js";
19
+ import { r as viewsSelectors, t as viewsActions } from "./slice-BPNuHKfw.js";
20
+ import { t as setFeatureFlags } from "./actions-iLXdgL5Y.js";
21
+ import { contextLogger, isNotNil } from "@laceio/cardano/util";
22
+ import { NEVER, Subject, defaultIfEmpty, delay, distinctUntilChanged, filter, firstValueFrom, from, map, share, shareReplay, takeUntil } from "rxjs";
23
+ import { applyMiddleware, combineReducers, configureStore, createAction, isAnyOf } from "@reduxjs/toolkit";
24
+ import merge$1 from "lodash/merge.js";
25
+ import { combineEpics, createEpicMiddleware } from "redux-observable";
26
+ import { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE, persistReducer, persistStore } from "redux-persist";
27
+ import uniq from "lodash/uniq.js";
28
+ import { dummyLogger } from "ts-log";
29
+ //#region ../../packages/lib/core/src/encrypt-recovery-phrase.ts
30
+ /**
31
+ * SBV1 (Argon2id + ChaCha20-Poly1305) encryption of a mnemonic recovery phrase:
32
+ * encrypt the utf8 bytes of the space-joined words with the passphrase, returning
33
+ * hex. New wallets are sealed with SBV1; `SecretBox.open` still reads legacy
34
+ * EMIP-003 blobs through the `@lace-lib/vendor` seam (ADR 37/38).
35
+ */
36
+ const encryptRecoveryPhrase = async (words, passphrase) => HexBytes.fromByteArray(await SecretBox.seal(ByteArray.fromUTF8(util.joinMnemonicWords(words)), passphrase));
37
+ //#endregion
38
+ //#region ../../packages/lib/core/src/value-objects/wallet-id.vo.ts
39
+ const WALLET_ID_BYTES = 16;
40
+ const doubleBlake2b128 = (inputHex) => {
41
+ const digest = Crypto.blake2b.hash(inputHex, WALLET_ID_BYTES);
42
+ return WalletId(Crypto.blake2b.hash(digest, WALLET_ID_BYTES));
43
+ };
44
+ /**
45
+ * Types a string as a wallet identifier. It checks nothing; the `deriveFrom…`
46
+ * functions derive the identifier a wallet's keys give it.
47
+ */
48
+ const WalletId = (walletId) => walletId;
49
+ /** Derive a walletId from an extended account public key (xpub). */
50
+ WalletId.deriveFromBip32PublicKey = (xpubHex) => doubleBlake2b128(xpubHex);
51
+ /**
52
+ * Derive a walletId from a hardware device's BIP-32 master key fingerprint
53
+ * (`xfpHex` — 8 hex chars / 4 bytes), domain-separated by `vendorTag` (the device
54
+ * family: `'ledger'`, `'trezor'`).
55
+ *
56
+ * The xfp identifies the master key itself, so it is invariant across derivation
57
+ * paths and across mainnet/testnet (whose account xpubs differ): one physical
58
+ * device is one wallet whichever network its open app served. The vendor tag is
59
+ * what keeps one seed restored onto two device families two wallets — the xfp
60
+ * alone is identical for both. Same double blake2b-128 as the xpub mints, so every
61
+ * id shares one 32-hex format and one collision domain.
62
+ */
63
+ WalletId.deriveFromHardwareFingerprint = (vendorTag, xfpHex) => doubleBlake2b128(import_buffer.Buffer.from(`${vendorTag}:${xfpHex.toLowerCase()}`, "utf8").toString("hex"));
64
+ /** Derive a walletId from a mnemonic — the utf8 bytes of the space-joined words. */
65
+ WalletId.deriveFromMnemonic = (words) => doubleBlake2b128(import_buffer.Buffer.from(util.joinMnemonicWords(words), "utf8").toString("hex"));
66
+ //#endregion
67
+ //#region ../../packages/contract/module/src/redux-persist-storage.ts
68
+ /** The name of the contract a module implements to provide key-value storage. */
69
+ const STORAGE_CONTRACT_NAME = "storage-dependency";
70
+ /**
71
+ * Adapts a key-value storage factory to the redux-persist `Storage` interface,
72
+ * keeping persisted state in the `redux` collection.
73
+ */
74
+ const createReduxPersistStorage = (keyValueStorageFactory) => {
75
+ const keyValueStorage = keyValueStorageFactory({ collectionId: "redux" });
76
+ return {
77
+ getItem: async (key) => firstValueFrom(keyValueStorage.getValues([key]).pipe(map(([value]) => value), defaultIfEmpty(void 0))),
78
+ removeItem: async (key) => firstValueFrom(keyValueStorage.setValue(key, void 0)),
79
+ setItem: async (key, value) => firstValueFrom(keyValueStorage.setValue(key, value))
80
+ };
81
+ };
82
+ /**
83
+ * Finds the module implementing the storage contract, initializes its store on
84
+ * its own and returns the key-value storage factory it provides.
85
+ *
86
+ * @throws Error when no module implements the storage contract or it provides no `createKeyValueStorage`.
87
+ */
88
+ const findStorageModule = async (props, { logger, ...rest }) => {
89
+ const storageModule = props.modules.find((m) => m.implements.contracts.some((contract) => contract.name === STORAGE_CONTRACT_NAME));
90
+ if (!storageModule) throw new Error("No storage module found");
91
+ const storageModuleStore = await storageModule.store?.load();
92
+ if (!storageModuleStore) throw new Error(`Module '${storageModule.moduleName}' must implement 'createKeyValueStorage' in store sideEffectDependencies`);
93
+ const dependencies = {
94
+ ...rest,
95
+ logger: contextLogger(contextLogger(logger, storageModule.moduleName), "redux-storage"),
96
+ reduxPersistStorage: {}
97
+ };
98
+ const keyValueStorageFactory = (await storageModuleStore.default({
99
+ ...props,
100
+ loadModules: () => {
101
+ throw new Error("Storage module \"store\" cannot load other modules");
102
+ }
103
+ }, dependencies)).sideEffectDependencies?.createKeyValueStorage;
104
+ if (!keyValueStorageFactory) throw new Error(`Module '${storageModule.moduleName}' must implement 'createKeyValueStorage' in store sideEffectDependencies`);
105
+ return keyValueStorageFactory;
106
+ };
107
+ //#endregion
108
+ //#region ../../packages/contract/module/src/create-store.ts
109
+ const SERIALIZABLE_CHECK_WARN_AFTER_MS = 128;
110
+ const IMMUTABLE_CHECK_WARN_AFTER_MS = 256;
111
+ const createActionObservables = (action$, actions) => {
112
+ return Object.fromEntries(Object.entries(actions).map(([scope, actionCreators]) => [scope, Object.fromEntries(Object.entries(actionCreators).map(([actionCreatorName, actionCreator]) => [`${actionCreatorName}$`, action$.pipe(filter(isAnyOf(actionCreator)), share())]))]));
113
+ };
114
+ /**
115
+ * Maps scoped selectors to observables of the state, keyed `<selectorName>$`.
116
+ * A parameterized selector yields a function of its parameter instead of a
117
+ * value. Each observable emits on change and replays its latest value.
118
+ */
119
+ const createStateObservables = (state$, selectors) => {
120
+ return Object.fromEntries(Object.entries(selectors).map(([scope, selectors]) => [scope, Object.fromEntries(Object.entries(selectors).map(([selectorName, selector]) => {
121
+ const selectorFunction = selector;
122
+ return [`${selectorName}$`, state$.pipe(map((state) => {
123
+ if (selectorFunction[IS_PARAMETERIZED] === true) return (parameter) => selectorFunction(state, parameter);
124
+ if (selectorFunction.length > 1) return (parameter) => selectorFunction(state, parameter);
125
+ return selectorFunction(state);
126
+ }), distinctUntilChanged(), shareReplay(1))];
127
+ }))]));
128
+ };
129
+ const rehydrateStore = async (store) => new Promise((resolve) => {
130
+ const persistor = persistStore(store, null, () => {
131
+ resolve(persistor);
132
+ });
133
+ });
134
+ const mergeStoreExports = (storeExports, getter) => merge$1({}, ...storeExports.map(getter).filter(isNotNil));
135
+ /**
136
+ * Builds the app's Redux store from every loaded module store: combines their
137
+ * reducers, middleware and side effects, rehydrates persisted slices, and
138
+ * starts the side effects.
139
+ */
140
+ const createStore = async (createStoreProps, createStoreDependencies) => {
141
+ const { loadModules, runtime, lastEnhancer } = createStoreProps;
142
+ const { logger, reduxPersistStorage, sideEffectDependenciesOverride } = createStoreDependencies;
143
+ const stores = await loadModules("store");
144
+ const storeExports = await Promise.all(stores.map(async (s) => s.load().then(async (module) => module.default(createStoreProps, createStoreDependencies))));
145
+ const selectors = stores.map((s) => s.context.selectors).filter((selectors) => !!selectors).reduce(Object.assign, {});
146
+ const actions = stores.map((s) => s.context.actions).reduce(Object.assign, {});
147
+ const persistConfigs = mergeStoreExports(storeExports, (s) => s.persistConfig);
148
+ const preloadedState = mergeStoreExports(storeExports, (s) => s.preloadedState);
149
+ const reducer = combineReducers(Object.assign({}, ...storeExports.map((m) => m.reducers ? Object.fromEntries(Object.entries(m.reducers).map(([key, reducer]) => [key, key in persistConfigs ? persistReducer({
150
+ key,
151
+ storage: reduxPersistStorage,
152
+ ...persistConfigs[key]
153
+ }, reducer) : reducer])) : void 0)));
154
+ const initialState = reducer(void 0, { type: "@@lace/initial-state-snapshot" });
155
+ const toEpic = (sideEffect) => (action$, state$, dependencies) => sideEffect(createActionObservables(action$, actions), createStateObservables(state$, selectors), dependencies).pipe(createStoreProps.noEpicDelay ? (a) => a : delay(0));
156
+ let actionObservables;
157
+ let stateObservables;
158
+ let state$ = null;
159
+ const captureObservables = (actions, state) => {
160
+ actionObservables = actions;
161
+ stateObservables = state;
162
+ return NEVER;
163
+ };
164
+ const rootEpic = combineEpics(...[...storeExports.flatMap(({ sideEffects }) => sideEffects).filter(isNotNil), captureObservables].map(toEpic), (_, stateObservable$) => {
165
+ state$ = stateObservable$;
166
+ return NEVER;
167
+ });
168
+ let persistor;
169
+ const defaultDependencies = {
170
+ actions,
171
+ selectors,
172
+ createKeyValueStorage: () => {
173
+ throw new Error("This must be overridden by storage module");
174
+ },
175
+ __getState: () => {
176
+ if (!state$) throw new Error("__getState() is not available during SideEffect initialization");
177
+ return state$.value;
178
+ },
179
+ flushPersistedState: () => from(persistor?.flush() ?? Promise.resolve()),
180
+ runtime,
181
+ logger,
182
+ loadModules
183
+ };
184
+ const epicMiddleware = createEpicMiddleware({ dependencies: Object.assign(defaultDependencies, ...storeExports.map(({ sideEffectDependencies }) => sideEffectDependencies), sideEffectDependenciesOverride ?? {}) });
185
+ const middleware = storeExports.map(({ middleware }) => middleware).filter(isNotNil).flat();
186
+ const store = configureStore({
187
+ reducer,
188
+ preloadedState,
189
+ devTools: createStoreProps.devTools || false,
190
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({
191
+ immutableCheck: { warnAfter: IMMUTABLE_CHECK_WARN_AFTER_MS },
192
+ serializableCheck: {
193
+ ignoredActions: [
194
+ "accountManagement/attemptAddAccount",
195
+ "accountManagement/attemptAddInMemoryWalletAccount",
196
+ "txExecutor/tx-phase-completed",
197
+ "sendFlow/processingResulted",
198
+ "cardanoContext/setProtocolParameters",
199
+ "cardanoContext/setEraSummaries",
200
+ "cardanoContext/setStakePoolsData",
201
+ "cardanoContext/setAccountUtxos",
202
+ FLUSH,
203
+ REHYDRATE,
204
+ PAUSE,
205
+ PERSIST,
206
+ PURGE,
207
+ REGISTER
208
+ ],
209
+ warnAfter: SERIALIZABLE_CHECK_WARN_AFTER_MS
210
+ }
211
+ }),
212
+ enhancers: (getDefaultEnhancers) => {
213
+ const enhancers = getDefaultEnhancers().prepend([applyMiddleware(...middleware, epicMiddleware)]);
214
+ if (lastEnhancer) return enhancers.concat(lastEnhancer);
215
+ return enhancers;
216
+ }
217
+ });
218
+ if (Object.keys(persistConfigs)) persistor = await rehydrateStore(store);
219
+ const epicTeardown$ = new Subject();
220
+ epicMiddleware.run((...args) => rootEpic(...args).pipe(takeUntil(epicTeardown$)));
221
+ return {
222
+ store,
223
+ initialState,
224
+ teardown: () => {
225
+ epicTeardown$.next();
226
+ epicTeardown$.complete();
227
+ },
228
+ actionObservables,
229
+ stateObservables
230
+ };
231
+ };
232
+ //#endregion
233
+ //#region ../../packages/contract/module/src/create-module-loader.ts
234
+ const isStoreContract = (contract) => contract.contractType === "store";
235
+ /**
236
+ * Builds the single module formed by applying, once each, the mixins of every
237
+ * store contract the given modules implement or depend on as `zero-or-more`.
238
+ */
239
+ const reduceMixinsModule = (modules) => {
240
+ return uniq(modules.flatMap((laceModule) => [...laceModule.implements.contracts, ...laceModule.dependsOn?.contracts.filter(({ instance }) => instance === "zero-or-more") || []])).filter(isStoreContract).map(({ mixin }) => mixin).filter(isNotNil).reduce((laceModule, mixin) => mixin(laceModule), {});
241
+ };
242
+ const parseLoadableKey = (loadableKey) => loadableKey.split(".");
243
+ const moduleOrAddonExport = (m, key) => {
244
+ const [moduleKey, addonKey] = parseLoadableKey(key);
245
+ const moduleValue = m[moduleKey];
246
+ if (addonKey) {
247
+ if (typeof moduleValue !== "object") return;
248
+ return moduleValue[addonKey];
249
+ }
250
+ return moduleValue;
251
+ };
252
+ /**
253
+ * Creates a {@link ModuleLoader} over the given modules and their contract
254
+ * mixins. Each loaded initializer receives the shared dependencies, a logger
255
+ * scoped to its module and key, and a nested loader of its own.
256
+ */
257
+ const createModuleLoader = (props, { logger, ...rest }) => {
258
+ const { modules } = props;
259
+ const loadModule = async (m, key) => {
260
+ if (!m) return;
261
+ const dependencies = {
262
+ ...rest,
263
+ logger: contextLogger(contextLogger(logger, m.moduleName), key.replace("load", ""))
264
+ };
265
+ const exportValue = moduleOrAddonExport(m, key);
266
+ if (typeof exportValue === "function") {
267
+ const defaultExport = (await exportValue()).default;
268
+ if (typeof defaultExport === "function") return defaultExport({
269
+ ...props,
270
+ loadModules: createModuleLoader(props, dependencies)
271
+ }, dependencies);
272
+ return defaultExport;
273
+ } else return exportValue;
274
+ };
275
+ const mixinsAndModules = [reduceMixinsModule(modules), ...modules];
276
+ return async (key) => {
277
+ return (await Promise.all(mixinsAndModules.map(async (m) => loadModule(m, key)))).filter(isNotNil);
278
+ };
279
+ };
280
+ //#endregion
281
+ //#region ../../packages/contract/module/src/value-objects/module-name.vo.ts
282
+ /** Types a string as a module's name, the `moduleName` it declares. It checks nothing. */
283
+ const ModuleName = (moduleName) => moduleName;
284
+ //#endregion
285
+ //#region ../../packages/contract/module/src/value-objects/contract-name.vo.ts
286
+ /** Types a string as a contract's name. It checks nothing. */
287
+ const ContractName = (moduleKind) => moduleKind;
288
+ //#endregion
289
+ //#region ../../packages/contract/module/src/util-mixin.ts
290
+ /**
291
+ * Combines a module's store with a contract mixin's store. Reducers,
292
+ * middleware, side effects, persist config, preloaded state, selectors and
293
+ * actions of both are merged; the mixin's entries win on a key clash.
294
+ */
295
+ const combineStore = (module, mixinStore) => {
296
+ const combinedStoreInit = (mixinStoreInit, moduleStoreInit) => async (props, dependencies) => {
297
+ const loadedModuleStore = await moduleStoreInit?.default(props, dependencies);
298
+ const loadedMixinStore = await mixinStoreInit.default(props, dependencies);
299
+ return {
300
+ middleware: uniq([...loadedModuleStore?.middleware || [], ...loadedMixinStore.middleware || []]),
301
+ reducers: {
302
+ ...loadedModuleStore?.reducers,
303
+ ...loadedMixinStore.reducers
304
+ },
305
+ persistConfig: {
306
+ ...loadedModuleStore?.persistConfig,
307
+ ...loadedMixinStore.persistConfig
308
+ },
309
+ preloadedState: {
310
+ ...loadedModuleStore?.preloadedState,
311
+ ...loadedMixinStore.preloadedState
312
+ },
313
+ sideEffectDependencies: {
314
+ ...loadedModuleStore?.sideEffectDependencies,
315
+ ...loadedMixinStore.sideEffectDependencies
316
+ },
317
+ sideEffects: uniq([...loadedModuleStore?.sideEffects || [], ...loadedMixinStore.sideEffects || []])
318
+ };
319
+ };
320
+ return {
321
+ load: async () => {
322
+ const moduleStoreInit = await module.store?.load();
323
+ return { default: combinedStoreInit(await mixinStore.load(), moduleStoreInit) };
324
+ },
325
+ context: {
326
+ actions: {
327
+ ...module.store?.context.actions,
328
+ ...mixinStore.context.actions
329
+ },
330
+ selectors: Object.assign({}, module.store?.context.selectors, mixinStore.context.selectors)
331
+ }
332
+ };
333
+ };
334
+ /**
335
+ * Creates a contract mixin: a function that patches every module implementing
336
+ * the contract with the properties `patchModule` returns.
337
+ */
338
+ const createMixin = (patchModule) => (laceModule) => ({
339
+ ...laceModule,
340
+ addons: laceModule.addons || {},
341
+ ...patchModule(laceModule)
342
+ });
343
+ //#endregion
344
+ //#region ../../packages/contract/storage/src/contract.ts
345
+ /**
346
+ * The contract a storage module implements: it gives every module's side
347
+ * effects `createDocumentStorage` and `createCollectionStorage`, backed by
348
+ * the platform's storage. A wallet loads one storage module; with two,
349
+ * `createLaceWallet` fails with `MultipleImplementationsError`.
350
+ */
351
+ const storageDependencyContract = inferContractContext({
352
+ contractType: "sideEffectDependency",
353
+ name: ContractName("storage-dependency"),
354
+ instance: "exactly-one"
355
+ });
356
+ //#endregion
357
+ //#region ../../packages/contract/feature/src/store/index.ts
358
+ var store_default$14 = inferStoreContext({
359
+ load: async () => import("./init-NCjgwCZy.js"),
360
+ context: {
361
+ actions: featuresActions,
362
+ selectors: featuresSelectors
363
+ }
364
+ });
365
+ //#endregion
366
+ //#region ../../packages/contract/feature/src/contract.ts
367
+ const featureDependencyContract = inferContractContext({
368
+ contractType: "sideEffectDependency",
369
+ name: ContractName("feature-dependency"),
370
+ instance: "exactly-one"
371
+ });
372
+ inferContractContext({
373
+ contractType: "sideEffectDependency",
374
+ name: ContractName("feature-flag-refresh-trigger-dependency"),
375
+ instance: "exactly-one"
376
+ });
377
+ const featureStoreContract = inferContractContext({
378
+ contractType: "store",
379
+ name: ContractName("feature-store"),
380
+ instance: "exactly-one",
381
+ dependsOn: combineContracts([storageDependencyContract]),
382
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$14) }))
383
+ });
384
+ //#endregion
385
+ //#region ../../packages/contract/analytics/src/store/index.ts
386
+ var store_default$13 = inferStoreContext({
387
+ load: async () => import("./init-CNM5m7M2.js"),
388
+ context: {
389
+ actions: analyticsActions,
390
+ selectors: analyticsSelectors
391
+ }
392
+ });
393
+ //#endregion
394
+ //#region ../../packages/contract/analytics/src/contract.ts
395
+ const analyticsProviderDependencyContract = inferContractContext({
396
+ contractType: "sideEffectDependency",
397
+ name: ContractName("analytics-provider-dependency"),
398
+ instance: "exactly-one"
399
+ });
400
+ const analyticsStoreContract = inferContractContext({
401
+ contractType: "store",
402
+ name: ContractName("analytics-store"),
403
+ instance: "exactly-one",
404
+ dependsOn: combineContracts([analyticsProviderDependencyContract, featureStoreContract]),
405
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$13) }))
406
+ });
407
+ //#endregion
408
+ //#region ../../packages/contract/failures/src/contract.ts
409
+ const failuresStoreContract = inferContractContext({
410
+ name: ContractName("failures-store"),
411
+ contractType: "store",
412
+ instance: "exactly-one",
413
+ dependsOn: combineContracts([analyticsStoreContract]),
414
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$15) }))
415
+ });
416
+ //#endregion
417
+ //#region ../../packages/contract/network/src/store/index.ts
418
+ var store_default$12 = inferStoreContext({
419
+ load: async () => import("./init-Fw89ZmrR.js"),
420
+ context: {
421
+ actions: networkActions,
422
+ selectors: networkSelectors
423
+ }
424
+ });
425
+ //#endregion
426
+ //#region ../../packages/contract/network/src/contract.ts
427
+ const networkStoreContract = inferContractContext({
428
+ name: ContractName("network-store"),
429
+ contractType: "store",
430
+ instance: "exactly-one",
431
+ dependsOn: combineContracts([featureStoreContract]),
432
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$12) }))
433
+ });
434
+ //#endregion
435
+ //#region ../../packages/contract/wallet-repo/src/store/index.ts
436
+ var store_default$11 = inferStoreContext({
437
+ load: async () => import("./init-BJn-8_hf.js"),
438
+ context: {
439
+ actions: walletsActions,
440
+ selectors: walletsSelectors
441
+ }
442
+ });
443
+ //#endregion
444
+ //#region ../../packages/contract/wallet-repo/src/contract.ts
445
+ /**
446
+ * Store contract for the wallet repository: the persisted `wallets` state
447
+ * holding every wallet, its accounts and the active account. Exactly one
448
+ * module provides it; it depends on the network store.
449
+ */
450
+ const walletRepoStoreContract = inferContractContext({
451
+ contractType: "store",
452
+ name: ContractName("wallet-repo-store"),
453
+ instance: "exactly-one",
454
+ dependsOn: combineContracts([networkStoreContract]),
455
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$11) }))
456
+ });
457
+ inferContractContext({
458
+ name: ContractName("request-hw-connection-addon"),
459
+ instance: "exactly-one",
460
+ contractType: "addon",
461
+ provides: { addons: ["loadRequestHWConnections"] }
462
+ });
463
+ inferContractContext({
464
+ name: ContractName("search-hw-devices-addon"),
465
+ instance: "zero-or-more",
466
+ contractType: "addon",
467
+ provides: { addons: ["loadSearchHWDevices"] }
468
+ });
469
+ inferContractContext({
470
+ name: ContractName("wallet-identity-addon"),
471
+ instance: "zero-or-more",
472
+ contractType: "addon",
473
+ preloadInServiceWorker: true,
474
+ provides: { addons: ["loadWalletIdentity"] }
475
+ });
476
+ //#endregion
477
+ //#region ../../packages/contract/wallet-repo/src/wallet-type.ts
478
+ /** The kinds of wallet the wallet repository holds, by who manages their keys. */
479
+ let WalletType = /* @__PURE__ */ function(WalletType) {
480
+ /**
481
+ * Keys are held by the wallet: it stores its recovery phrase encrypted under
482
+ * the app's authentication secret, such as a password the user chooses.
483
+ * A wallet imported without its recovery phrase stores none.
484
+ */
485
+ WalletType["InMemory"] = "InMemory";
486
+ /**
487
+ * Keys, and the seed they derive from, are never stored. The wallet holds
488
+ * only public keys, and a vault module signs for it, reaching the seed for
489
+ * each signature wherever the app keeps it.
490
+ */
491
+ WalletType["LazyInMemory"] = "LazyInMemory";
492
+ /**
493
+ * Keys are managed by an external Ledger device
494
+ */
495
+ WalletType["HardwareLedger"] = "HardwareLedger";
496
+ /**
497
+ * Keys are managed by an external Trezor device
498
+ */
499
+ WalletType["HardwareTrezor"] = "HardwareTrezor";
500
+ /**
501
+ * Keys are managed by an external Cardano Seed Signer device.
502
+ * Like other hardware wallets, the wallet stores only its public keys and
503
+ * the device signs; it also stores the device master fingerprint (xfp) so
504
+ * signing requests can target the right device seed.
505
+ */
506
+ WalletType["HardwareSeedSigner"] = "HardwareSeedSigner";
507
+ /**
508
+ * Keys are managed by an external Keystone device.
509
+ * Like other hardware wallets, the wallet stores only its public keys and
510
+ * the device signs; the device communicates exclusively over QR codes and is
511
+ * identified by its BIP-32 master fingerprint (xfp) so signing requests can
512
+ * target the right device seed.
513
+ */
514
+ WalletType["HardwareKeystone"] = "HardwareKeystone";
515
+ /**
516
+ * Requires more than 1 set of keys to spend from this wallet.
517
+ * Some (or all) co-signers are other wallet (InMemory/Hardware)
518
+ * accounts from this repository.
519
+ */
520
+ WalletType["MultiSig"] = "MultiSig";
521
+ /** A Cardano script account. */
522
+ WalletType["CardanoCustody"] = "CardanoCustody";
523
+ return WalletType;
524
+ }({});
525
+ //#endregion
526
+ //#region ../../packages/contract/activities/src/store/index.ts
527
+ var store_default$10 = inferStoreContext({
528
+ load: async () => import("./init-0zzs9aqU.js"),
529
+ context: {
530
+ actions: activitiesActions,
531
+ selectors: activitiesSelectors
532
+ }
533
+ });
534
+ //#endregion
535
+ //#region ../../packages/contract/activities/src/contract.ts
536
+ const activitiesStoreContract = inferContractContext({
537
+ name: ContractName("activities-store"),
538
+ contractType: "store",
539
+ instance: "exactly-one",
540
+ dependsOn: combineContracts([failuresStoreContract]),
541
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$10) }))
542
+ });
543
+ //#endregion
544
+ //#region ../../packages/contract/addresses/src/store/index.ts
545
+ var store_default$9 = inferStoreContext({
546
+ load: async () => import("./init-C8URA2OX.js"),
547
+ context: {
548
+ actions: addressesActions,
549
+ selectors: addressesSelectors
550
+ }
551
+ });
552
+ //#endregion
553
+ //#region ../../packages/contract/addresses/src/contract.ts
554
+ const addressesStoreContract = inferContractContext({
555
+ name: ContractName("addresses-store"),
556
+ contractType: "store",
557
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$9) })),
558
+ instance: "at-least-one"
559
+ });
560
+ inferContractContext({
561
+ name: ContractName("addresses-alias-resolver-addon"),
562
+ instance: "zero-or-more",
563
+ contractType: "addon",
564
+ preloadInServiceWorker: true,
565
+ provides: { addons: ["loadAddressAliasResolver"] }
566
+ });
567
+ //#endregion
568
+ //#region ../../packages/contract/sync/src/contract.ts
569
+ const syncStoreContract = inferContractContext({
570
+ name: ContractName("sync-store"),
571
+ contractType: "store",
572
+ instance: "at-least-one",
573
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$16) }))
574
+ });
575
+ //#endregion
576
+ //#region ../../packages/contract/tokens/src/store/index.ts
577
+ var store_default$8 = inferStoreContext({
578
+ load: async () => import("./init-Dnsv155v.js"),
579
+ context: {
580
+ actions: tokensActions,
581
+ selectors: tokensSelectors
582
+ }
583
+ });
584
+ //#endregion
585
+ //#region ../../packages/contract/tokens/src/contract.ts
586
+ const tokensStoreContract = inferContractContext({
587
+ name: ContractName("tokens-store"),
588
+ contractType: "store",
589
+ dependsOn: combineContracts([storageDependencyContract]),
590
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$8) })),
591
+ instance: "at-least-one"
592
+ });
593
+ //#endregion
594
+ //#region ../../packages/contract/cardano-context/src/store/index.ts
595
+ var store_default$7 = inferStoreContext({
596
+ load: async () => import("./init-Cigr_tKx.js"),
597
+ context: {
598
+ actions: cardanoContextActions,
599
+ selectors: cardanoContextSelectors
600
+ }
601
+ });
602
+ //#endregion
603
+ //#region ../../packages/contract/views/src/store/index.ts
604
+ var store_default$6 = inferStoreContext({
605
+ load: async () => import("./init-kEfUTuG2.js"),
606
+ context: {
607
+ actions: viewsActions,
608
+ selectors: viewsSelectors
609
+ }
610
+ });
611
+ //#endregion
612
+ //#region ../../packages/contract/views/src/ui-addon-contracts.ts
613
+ const initializeExtensionViewAddonContract = inferContractContext({
614
+ name: ContractName("initialize-extension-view-addon"),
615
+ instance: "zero-or-more",
616
+ contractType: "addon",
617
+ provides: { addons: ["loadInitializeExtensionView"] }
618
+ });
619
+ const initializeMobileViewAddonContract = inferContractContext({
620
+ name: ContractName("initialize-mobile-view-addon"),
621
+ instance: "zero-or-more",
622
+ contractType: "addon",
623
+ provides: { addons: ["loadInitializeMobileView"] }
624
+ });
625
+ const renderRootAddonContract = inferContractContext({
626
+ name: ContractName("render-root-addon"),
627
+ instance: "zero-or-more",
628
+ contractType: "addon",
629
+ provides: { addons: ["renderRoot"] }
630
+ });
631
+ const stackPagesAddonContract = inferContractContext({
632
+ name: ContractName("stack-pages-addon"),
633
+ instance: "zero-or-more",
634
+ contractType: "addon",
635
+ provides: { addons: ["loadStackPages"] }
636
+ });
637
+ const tabPagesAddonContract = inferContractContext({
638
+ name: ContractName("tab-pages-addon"),
639
+ instance: "zero-or-more",
640
+ contractType: "addon",
641
+ provides: { addons: ["loadTabPages"] }
642
+ });
643
+ inferContractContext({
644
+ name: ContractName("global-overlays-addon"),
645
+ instance: "zero-or-more",
646
+ contractType: "addon",
647
+ provides: { addons: ["loadGlobalOverlays"] }
648
+ });
649
+ const sheetPagesAddonContract = inferContractContext({
650
+ name: ContractName("sheet-pages-addon"),
651
+ instance: "zero-or-more",
652
+ contractType: "addon",
653
+ provides: { addons: ["loadSheetPages"] }
654
+ });
655
+ inferContractContext({
656
+ name: ContractName("load-deep-links-addon"),
657
+ instance: "exactly-one",
658
+ contractType: "addon",
659
+ provides: { addons: ["loadMobileDeepLinks"] }
660
+ });
661
+ //#endregion
662
+ //#region ../../packages/contract/views/src/ui-addon-dependencies.ts
663
+ /**
664
+ * The UI addon contracts the views store depends on, in its dependency
665
+ * order.
666
+ */
667
+ const viewsUiAddonDependencies = [
668
+ initializeExtensionViewAddonContract,
669
+ initializeMobileViewAddonContract,
670
+ tabPagesAddonContract,
671
+ stackPagesAddonContract,
672
+ renderRootAddonContract,
673
+ sheetPagesAddonContract
674
+ ];
675
+ //#endregion
676
+ //#region ../../packages/contract/views/src/contract.ts
677
+ const viewsStoreContract = inferContractContext({
678
+ name: ContractName("views-store"),
679
+ instance: "exactly-one",
680
+ contractType: "store",
681
+ dependsOn: combineContracts([analyticsStoreContract, ...viewsUiAddonDependencies]),
682
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$6) }))
683
+ });
684
+ /** Direct import of this is an anti-pattern. OK for tests. */
685
+ const appActions = { app: { reloadApplication: createAction("app/reloadApplication") } };
686
+ const uiActions = { ui: {
687
+ showToast: createAction("ui/showToast"),
688
+ hideToast: createAction("ui/hideToast")
689
+ } };
690
+ //#endregion
691
+ //#region ../../packages/contract/app/src/store/index.ts
692
+ var store_default$5 = inferStoreContext({
693
+ load: async () => import("./init-C2RgrfZe.js"),
694
+ context: { actions: {
695
+ ...appActions,
696
+ ...uiActions
697
+ } }
698
+ });
699
+ inferContractContext({
700
+ name: ContractName("profile-dropdown-wallets-addon"),
701
+ contractType: "addon",
702
+ instance: "zero-or-more",
703
+ provides: { addons: ["loadProfileDropdownWalletsUICustomisations", "loadProfileDropdownMenuItemUICustomisations"] }
704
+ });
705
+ inferContractContext({
706
+ name: ContractName("blockchain-specific-app-customizations-addon"),
707
+ instance: "zero-or-more",
708
+ contractType: "addon",
709
+ provides: { addons: [
710
+ "loadAccountUICustomisations",
711
+ "loadReceiveSheetAddressDataCustomisations",
712
+ "loadTokenDetailsUICustomisations",
713
+ "loadPortfolioBannerUICustomisations",
714
+ "loadAboutPageUICustomisations"
715
+ ] }
716
+ });
717
+ inferContractContext({
718
+ name: ContractName("token-details-ui-customisations-addon"),
719
+ instance: "zero-or-more",
720
+ contractType: "addon",
721
+ provides: { addons: ["loadTokenDetailsUICustomisations"] }
722
+ });
723
+ inferContractContext({
724
+ name: ContractName("portfolio-announcements-addon"),
725
+ instance: "zero-or-more",
726
+ contractType: "addon",
727
+ provides: { addons: ["loadPortfolioAnnouncements"] }
728
+ });
729
+ inferContractContext({
730
+ name: ContractName("blockchain-specific-app-settings-page-customizations-addon"),
731
+ instance: "zero-or-more",
732
+ contractType: "addon",
733
+ provides: { addons: ["loadSettingsPageUICustomisations"] }
734
+ });
735
+ inferContractContext({
736
+ name: ContractName("dialogs-addon"),
737
+ instance: "zero-or-more",
738
+ contractType: "addon",
739
+ provides: { addons: ["loadDialogs"] }
740
+ });
741
+ inferContractContext({
742
+ name: ContractName("account-ui-customisation-addon"),
743
+ instance: "zero-or-more",
744
+ contractType: "addon",
745
+ provides: { addons: ["loadAccountUICustomisations"] }
746
+ });
747
+ inferContractContext({
748
+ name: ContractName("send-flow-sheet-ui-customisation-addon"),
749
+ instance: "zero-or-more",
750
+ contractType: "addon",
751
+ provides: { addons: ["loadSendFlowSheetUICustomisations"] }
752
+ });
753
+ //#endregion
754
+ //#region ../../packages/contract/app/src/ui-addon-dependencies.ts
755
+ /**
756
+ * The UI addon contracts the app store depends on, in its dependency
757
+ * order.
758
+ */
759
+ const appUiAddonDependencies = [
760
+ inferContractContext({
761
+ name: ContractName("app-context-initialization-addon"),
762
+ instance: "zero-or-more",
763
+ contractType: "addon",
764
+ preloadInServiceWorker: true,
765
+ provides: { addons: ["loadInitializeAppContext"] }
766
+ }),
767
+ inferContractContext({
768
+ name: ContractName("app-menu-items-addon"),
769
+ instance: "zero-or-more",
770
+ contractType: "addon",
771
+ provides: { addons: ["loadAppMenuItems"] }
772
+ }),
773
+ inferContractContext({
774
+ name: ContractName("tab-menu-items-addon"),
775
+ instance: "zero-or-more",
776
+ contractType: "addon",
777
+ provides: { addons: ["loadTabMenuItems"] }
778
+ })
779
+ ];
780
+ //#endregion
781
+ //#region ../../packages/contract/app/src/contract.ts
782
+ const performAppReloadDependencyContract = inferContractContext({
783
+ contractType: "sideEffectDependency",
784
+ name: ContractName("perform-app-reload-dependency"),
785
+ instance: "exactly-one"
786
+ });
787
+ const appStoreContract = inferContractContext({
788
+ name: ContractName("app-store"),
789
+ instance: "exactly-one",
790
+ contractType: "store",
791
+ dependsOn: combineContracts([
792
+ viewsStoreContract,
793
+ ...appUiAddonDependencies,
794
+ analyticsStoreContract,
795
+ featureStoreContract,
796
+ tokensStoreContract,
797
+ performAppReloadDependencyContract
798
+ ]),
799
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$5) }))
800
+ });
801
+ //#endregion
802
+ //#region ../../packages/contract/app/src/utils.ts
803
+ const runInitializers = async (initializers) => Promise.all(initializers.map(async (initializer) => initializer()));
804
+ //#endregion
805
+ //#region ../../packages/contract/wallet-active-state/src/contract.ts
806
+ const walletActiveStateDependencyContract = inferContractContext({
807
+ contractType: "sideEffectDependency",
808
+ name: ContractName("wallet-active-state-dependency"),
809
+ instance: "exactly-one"
810
+ });
811
+ //#endregion
812
+ //#region ../../packages/contract/cardano-context/src/contract.ts
813
+ const cardanoProviderDependencyContract = inferContractContext({
814
+ contractType: "sideEffectDependency",
815
+ name: ContractName("cardano-provider-dependency"),
816
+ instance: "exactly-one"
817
+ });
818
+ const cardanoInMemorySigningDependencyContract = inferContractContext({
819
+ contractType: "sideEffectDependency",
820
+ name: ContractName("cardano-in-memory-signing-dependency"),
821
+ instance: "exactly-one"
822
+ });
823
+ /**
824
+ * Implementor must provide sideEffectDependencies (CardanoProviderDependencies)
825
+ */
826
+ const cardanoProviderStoreContract = inferContractContext({
827
+ name: ContractName("cardano-provider-store"),
828
+ instance: "exactly-one",
829
+ contractType: "store",
830
+ dependsOn: combineContracts([
831
+ networkStoreContract,
832
+ activitiesStoreContract,
833
+ addressesStoreContract,
834
+ appStoreContract,
835
+ tokensStoreContract,
836
+ walletActiveStateDependencyContract,
837
+ walletRepoStoreContract,
838
+ cardanoProviderDependencyContract,
839
+ syncStoreContract,
840
+ failuresStoreContract,
841
+ analyticsStoreContract,
842
+ featureStoreContract
843
+ ]),
844
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$7) }))
845
+ });
846
+ const delegationTxBuilderAddonContract = inferContractContext({
847
+ name: ContractName("delegation-tx-builder-addon"),
848
+ instance: "at-least-one",
849
+ contractType: "addon",
850
+ preloadInServiceWorker: true,
851
+ provides: { addons: ["loadDelegationTxBuilder"] }
852
+ });
853
+ const deregistrationTxBuilderAddonContract = inferContractContext({
854
+ name: ContractName("deregistration-tx-builder-addon"),
855
+ instance: "at-least-one",
856
+ contractType: "addon",
857
+ preloadInServiceWorker: true,
858
+ provides: { addons: ["loadDeregistrationTxBuilder"] }
859
+ });
860
+ const voteDelegationTxBuilderAddonContract = inferContractContext({
861
+ name: ContractName("vote-delegation-tx-builder-addon"),
862
+ instance: "at-least-one",
863
+ contractType: "addon",
864
+ preloadInServiceWorker: true,
865
+ provides: { addons: ["loadVoteDelegationTxBuilder"] }
866
+ });
867
+ const earnRewardsTxBuilderAddonContract = inferContractContext({
868
+ name: ContractName("earn-rewards-tx-builder-addon"),
869
+ instance: "at-least-one",
870
+ contractType: "addon",
871
+ preloadInServiceWorker: true,
872
+ provides: { addons: ["loadEarnRewardsTxBuilder"] }
873
+ });
874
+ //#endregion
875
+ //#region ../../packages/contract/signer/src/store/index.ts
876
+ var store_default$4 = inferStoreContext({
877
+ load: async () => import("./init-CyAY4Lzl.js"),
878
+ context: {
879
+ actions: {},
880
+ selectors: {}
881
+ }
882
+ });
883
+ //#endregion
884
+ //#region ../../packages/contract/signer/src/contract.ts
885
+ const signerFactoryAddonContract = inferContractContext({
886
+ name: ContractName("signer-factory-addon"),
887
+ instance: "at-least-one",
888
+ contractType: "addon",
889
+ preloadInServiceWorker: true,
890
+ provides: { addons: ["loadSignerFactory"] }
891
+ });
892
+ const signerStoreContract = inferContractContext({
893
+ name: ContractName("signer-store"),
894
+ instance: "exactly-one",
895
+ contractType: "store",
896
+ dependsOn: combineContracts([signerFactoryAddonContract]),
897
+ mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$4) }))
898
+ });
899
+ //#endregion
900
+ //#region ../../packages/module/cardano-sync/src/store/index.ts
901
+ var store_default$3 = inferStoreContext({
902
+ load: async () => import("./init-CfTbSEKy.js"),
903
+ context: {
904
+ actions: {},
905
+ selectors: {}
906
+ }
907
+ });
908
+ //#endregion
909
+ //#region ../../packages/module/cardano-sync/src/module.ts
910
+ const cardanoSyncModule = inferModuleContext({
911
+ moduleName: ModuleName("cardano-sync"),
912
+ implements: combineContracts([]),
913
+ dependsOn: combineContracts([cardanoProviderStoreContract, syncStoreContract]),
914
+ store: store_default$3,
915
+ feature: {
916
+ willLoad: (featureFlags) => featureFlags.some((flag) => flag.key === FEATURE_FLAG_CARDANO),
917
+ metadata: {
918
+ name: "CardanoSync",
919
+ description: "Cardano provider-backed sync executors and round model"
920
+ }
921
+ },
922
+ addons: {}
923
+ });
924
+ //#endregion
925
+ //#region src/app-context.ts
926
+ /** Runs the app-context initializers the loaded modules provide, such as i18n. */
927
+ const initializeAppContext = async (loadModules) => {
928
+ await runInitializers(await loadModules("addons.loadInitializeAppContext"));
929
+ };
930
+ //#endregion
931
+ //#region src/base-module-store/index.ts
932
+ var base_module_store_default = inferStoreContext({
933
+ load: async () => import("./init-atCFur0v.js"),
934
+ context: {
935
+ actions: {},
936
+ selectors: {}
937
+ }
938
+ });
939
+ //#endregion
940
+ //#region src/base-module.ts
941
+ /**
942
+ * SDK base module - implements the "app shell" store contracts
943
+ * that app-mobile currently provides.
944
+ *
945
+ * NOTE: app-mobile owns too many store contracts that should ideally
946
+ * be implemented by their respective domain modules (e.g., sendFlowStoreContract
947
+ * should be owned by a send-flow domain module, activitiesStoreContract by an
948
+ * activities domain module, etc.). This base module inherits that over-centralization
949
+ * for now. As contracts get properly distributed to domain modules in the future,
950
+ * this base module should shrink.
951
+ */
952
+ const implementsContracts$1 = combineContracts([
953
+ activitiesStoreContract,
954
+ analyticsStoreContract,
955
+ analyticsProviderDependencyContract,
956
+ networkStoreContract,
957
+ failuresStoreContract,
958
+ walletActiveStateDependencyContract,
959
+ walletRepoStoreContract,
960
+ signerStoreContract
961
+ ]);
962
+ const sdkBaseModule = inferModuleContext({
963
+ moduleName: ModuleName("lace-sdk-base"),
964
+ implements: implementsContracts$1,
965
+ store: base_module_store_default,
966
+ addons: {}
967
+ });
968
+ //#endregion
969
+ //#region src/cardano-app-module-store/index.ts
970
+ var cardano_app_module_store_default = inferStoreContext({
971
+ load: async () => import("./init-829HRYcz.js"),
972
+ context: {
973
+ actions: {},
974
+ selectors: {}
975
+ }
976
+ });
977
+ //#endregion
978
+ //#region src/cardano-app-module.ts
979
+ /**
980
+ * The key of the flag that enables Bitcoin accounts. Spelled out here rather
981
+ * than imported from the Bitcoin contract, which is canary code that neither
982
+ * the stable build nor the Cardano entry may carry (ADR 66).
983
+ */
984
+ const BITCOIN_FEATURE_FLAG_KEY = FeatureFlagKey("BLOCKCHAIN_BITCOIN");
985
+ /**
986
+ * The app-shell contracts the blockchain modules need, such as the analytics
987
+ * store that failures report to, implemented headless. `createLaceWallet`
988
+ * loads it whenever the Cardano or Bitcoin feature flag is on.
989
+ */
990
+ const sdkCardanoAppModule = inferModuleContext({
991
+ moduleName: ModuleName("lace-sdk-cardano-app"),
992
+ implements: combineContracts([
993
+ appStoreContract,
994
+ viewsStoreContract,
995
+ performAppReloadDependencyContract
996
+ ]),
997
+ store: cardano_app_module_store_default,
998
+ feature: {
999
+ willLoad: (featureFlags) => featureFlags.some((flag) => flag.key === FEATURE_FLAG_CARDANO || flag.key === BITCOIN_FEATURE_FLAG_KEY),
1000
+ metadata: {
1001
+ name: "SdkCardanoApp",
1002
+ description: "Headless app contracts of the blockchain modules"
1003
+ }
1004
+ },
1005
+ addons: {}
1006
+ });
1007
+ //#endregion
1008
+ //#region src/create-lace-wallet.ts
1009
+ const parseKey = (key) => {
1010
+ const items = key.split(".");
1011
+ if (items.length < 2) throw new Error(`Invalid key "${key}", expected format: "{scope}.{actionName}"`);
1012
+ return items;
1013
+ };
1014
+ /**
1015
+ * Creates a wallet from a set of modules. The SDK adds its own base modules,
1016
+ * keeps the modules whose feature flags are enabled, and checks that every
1017
+ * contract a module depends on is implemented, and implemented once where it
1018
+ * allows only one. It then loads the modules and returns a wallet whose
1019
+ * actions and state are typed from them.
1020
+ *
1021
+ * @param props - The modules, environment, configuration and feature flags.
1022
+ * @returns The wallet, typed from `props.modules`. Rejects with
1023
+ * `MissingContractImplementationError` or `MultipleImplementationsError` when
1024
+ * the modules do not fit together.
1025
+ */
1026
+ const createLaceWallet = async (props) => {
1027
+ const { modules, environment, config, featureFlags = [] } = props;
1028
+ const app = "lace-sdk";
1029
+ const logger = dummyLogger;
1030
+ const allModules = [
1031
+ sdkBaseModule,
1032
+ sdkCardanoAppModule,
1033
+ cardanoSyncModule,
1034
+ ...modules
1035
+ ];
1036
+ const { modulesToLoad } = selectModules(allModules, featureFlags, environment);
1037
+ const moduleInitProps = {
1038
+ modules: modulesToLoad,
1039
+ runtime: {
1040
+ app,
1041
+ env: environment,
1042
+ config,
1043
+ platform: "web",
1044
+ features: {
1045
+ availableModules: allModules,
1046
+ loaded: {
1047
+ featureFlags,
1048
+ modules: modulesToLoad.map((m) => ({
1049
+ moduleName: m.moduleName,
1050
+ feature: m.feature ? { metadata: m.feature.metadata } : void 0
1051
+ }))
1052
+ }
1053
+ }
1054
+ }
1055
+ };
1056
+ const loadModules = createModuleLoader(moduleInitProps, { logger });
1057
+ const reduxPersistStorage = createReduxPersistStorage(await findStorageModule(moduleInitProps, { logger }));
1058
+ await initializeAppContext(loadModules);
1059
+ const { store, stateObservables, actionObservables } = await createStore({
1060
+ ...moduleInitProps,
1061
+ loadModules
1062
+ }, {
1063
+ logger,
1064
+ reduxPersistStorage
1065
+ });
1066
+ const stores = await loadModules("store");
1067
+ const actions = {};
1068
+ for (const s of stores) Object.assign(actions, s.context.actions);
1069
+ const dispatch = (key, ...args) => {
1070
+ const [scope, actionCreatorName] = parseKey(key);
1071
+ const actionCreator = actions[scope]?.[actionCreatorName];
1072
+ if (!actionCreator) throw new Error(`Unknown action: ${key}`);
1073
+ store.dispatch(actionCreator(...args));
1074
+ };
1075
+ return {
1076
+ stateObservables,
1077
+ actionObservables,
1078
+ dispatch,
1079
+ getState: () => store.getState(),
1080
+ _loadModules: loadModules
1081
+ };
1082
+ };
1083
+ //#endregion
1084
+ //#region ../../packages/contract/authentication-prompt/src/value-objects/auth-secret.ts
1085
+ const AuthSecret = (authSecret) => Redacted.make(authSecret);
1086
+ const fromUTF8 = (utf8string) => AuthSecret(ByteArray.fromUTF8(utf8string));
1087
+ const fromHex = (hex) => AuthSecret(HexBytes.toByteArray(hex));
1088
+ AuthSecret.fromUTF8 = fromUTF8;
1089
+ AuthSecret.fromHex = fromHex;
1090
+ //#endregion
1091
+ //#region ../../packages/contract/in-memory/src/contract.ts
1092
+ const inMemoryIntegrationAddonContract = inferContractContext({
1093
+ name: ContractName("in-memory-integration-addon"),
1094
+ instance: "at-least-one",
1095
+ contractType: "addon",
1096
+ preloadInServiceWorker: true,
1097
+ provides: { addons: ["loadInMemoryWalletIntegration"] }
1098
+ });
1099
+ //#endregion
1100
+ //#region ../../packages/contract/onboarding-v2/src/store/wallet-creation/wallet-entity.ts
1101
+ /**
1102
+ * Factory for creating in-memory wallet entities.
1103
+ *
1104
+ * With `password`: encrypts the recovery phrase and returns an
1105
+ * {@link InMemoryWallet}. Without `password`: persists no seed material and
1106
+ * returns a {@link LazyInMemoryWallet} — signing relies on an external module
1107
+ * re-supplying the mnemonic on demand.
1108
+ */
1109
+ const createInMemoryWalletEntityFactory = ({ integrations, logger }) => {
1110
+ const create = async ({ walletName, blockchains, password, order, recoveryPhrase }) => {
1111
+ const walletId = WalletId.deriveFromMnemonic(recoveryPhrase);
1112
+ const integrationResults = await Promise.all(integrations.filter(({ blockchainName }) => blockchains.includes(blockchainName)).map(async (integration) => integration.initializeWallet({
1113
+ recoveryPhrase,
1114
+ walletId,
1115
+ order,
1116
+ walletName,
1117
+ password
1118
+ }, { logger }).then((result) => ({
1119
+ ...result,
1120
+ blockchainName: integration.blockchainName
1121
+ }))));
1122
+ const blockchainSpecific = integrationResults.map(({ blockchainName, blockchainSpecificWalletData }) => ({ [blockchainName]: blockchainSpecificWalletData })).reduce((accumulator, value) => ({
1123
+ ...accumulator,
1124
+ ...value
1125
+ }), {});
1126
+ const accounts = integrationResults.flatMap(({ accounts }) => accounts);
1127
+ if (!password) return {
1128
+ accounts,
1129
+ blockchainSpecific,
1130
+ metadata: {
1131
+ name: walletName,
1132
+ order
1133
+ },
1134
+ type: WalletType.LazyInMemory,
1135
+ walletId
1136
+ };
1137
+ return {
1138
+ accounts,
1139
+ blockchainSpecific,
1140
+ encryptedRecoveryPhrase: await encryptRecoveryPhrase(recoveryPhrase, password),
1141
+ isPassphraseConfirmed: false,
1142
+ metadata: {
1143
+ name: walletName,
1144
+ order
1145
+ },
1146
+ type: WalletType.InMemory,
1147
+ walletId
1148
+ };
1149
+ };
1150
+ return create;
1151
+ };
1152
+ //#endregion
1153
+ //#region src/create-in-memory-wallet-entity.ts
1154
+ async function createInMemoryWalletEntity(wallet, props) {
1155
+ return createEntity(wallet, props);
1156
+ }
1157
+ async function createBlockchainWalletEntity(wallet, blockchainName, props) {
1158
+ return createEntity(wallet, props, blockchainName);
1159
+ }
1160
+ const createEntity = async (wallet, props, blockchainName) => {
1161
+ const { mnemonicWords, password: rawPassword, walletName, order = 0 } = props;
1162
+ const password = rawPassword ? AuthSecret(ByteArray(rawPassword)) : void 0;
1163
+ const integrations = (await wallet._loadModules("addons.loadInMemoryWalletIntegration")).filter((integration) => !blockchainName || integration.blockchainName === blockchainName);
1164
+ return createInMemoryWalletEntityFactory({
1165
+ integrations,
1166
+ logger: dummyLogger
1167
+ })({
1168
+ blockchains: integrations.map((integration) => integration.blockchainName),
1169
+ order,
1170
+ password,
1171
+ recoveryPhrase: mnemonicWords,
1172
+ walletName
1173
+ });
1174
+ };
1175
+ //#endregion
1176
+ //#region ../../packages/module/feature-dev/src/sdk-contracts.ts
1177
+ const implementsContracts = combineContracts([featureStoreContract, featureDependencyContract]);
1178
+ var store_default$2 = inferStoreContext({
1179
+ load: async () => import("./init-B3-1ghyx.js"),
1180
+ context: {
1181
+ actions: { featureDev: { setFeatureFlags } },
1182
+ selectors: {}
1183
+ }
1184
+ });
1185
+ //#endregion
1186
+ //#region ../../packages/module/feature-dev/src/sdk.ts
1187
+ /**
1188
+ * Feature flags the app sets: the wallet starts with the flags passed to
1189
+ * `createLaceWallet`, and dispatching `featureDev.setFeatureFlags` replaces
1190
+ * them.
1191
+ */
1192
+ var sdk_default$2 = inferModuleContext({
1193
+ moduleName: ModuleName("feature-dev"),
1194
+ implements: implementsContracts,
1195
+ store: store_default$2,
1196
+ addons: {}
1197
+ });
1198
+ //#endregion
1199
+ //#region ../../packages/module/storage-in-memory/src/store/index.ts
1200
+ var store_default$1 = inferStoreContext({
1201
+ load: async () => import("./init-A-VyGSNW2.js"),
1202
+ context: {
1203
+ actions: {},
1204
+ selectors: {}
1205
+ }
1206
+ });
1207
+ //#endregion
1208
+ //#region ../../packages/module/storage-in-memory/src/sdk.ts
1209
+ /**
1210
+ * In-memory storage: the wallet's persisted state lasts as long as the
1211
+ * process.
1212
+ */
1213
+ var sdk_default$1 = inferModuleContext({
1214
+ moduleName: ModuleName("storage-in-memory"),
1215
+ implements: combineContracts([storageDependencyContract]),
1216
+ store: store_default$1,
1217
+ addons: {}
1218
+ });
1219
+ //#endregion
1220
+ //#region ../../packages/module/storage-web-indexeddb/src/store/index.ts
1221
+ var store_default = inferStoreContext({
1222
+ load: async () => import("./init-SZ01tARX2.js"),
1223
+ context: {
1224
+ actions: {},
1225
+ selectors: {}
1226
+ }
1227
+ });
1228
+ //#endregion
1229
+ //#region ../../packages/module/storage-web-indexeddb/src/sdk.ts
1230
+ /**
1231
+ * Browser storage in IndexedDB: the wallet's persisted state lasts across
1232
+ * page loads and sessions.
1233
+ */
1234
+ var sdk_default = inferModuleContext({
1235
+ moduleName: ModuleName("storage-web-indexeddb"),
1236
+ implements: combineContracts([storageDependencyContract]),
1237
+ store: store_default,
1238
+ addons: {}
1239
+ });
1240
+ //#endregion
1241
+ export { ContractName as A, walletRepoStoreContract as C, storageDependencyContract as D, featureStoreContract as E, WalletId as M, combineStore as O, WalletType as S, failuresStoreContract as T, walletActiveStateDependencyContract as _, createInMemoryWalletEntity as a, addressesStoreContract as b, createLaceWallet as c, cardanoProviderDependencyContract as d, cardanoProviderStoreContract as f, voteDelegationTxBuilderAddonContract as g, earnRewardsTxBuilderAddonContract as h, createBlockchainWalletEntity as i, ModuleName as j, createMixin as k, signerFactoryAddonContract as l, deregistrationTxBuilderAddonContract as m, sdk_default$1 as n, inMemoryIntegrationAddonContract as o, delegationTxBuilderAddonContract as p, sdk_default$2 as r, AuthSecret as s, sdk_default as t, cardanoInMemorySigningDependencyContract as u, tokensStoreContract as v, networkStoreContract as w, activitiesStoreContract as x, syncStoreContract as y };