@laceio/sdk 0.1.1 → 0.1.2-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 (388) hide show
  1. package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-CCjOn7NA.cjs} +42 -0
  2. package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-CIzdw18M.js} +1 -1
  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 +16956 -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-CCjiakoy.cjs} +6 -6
  64. package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-DZFjHDS8.js} +5 -5
  65. package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-Bf6xAYp4.js} +5 -5
  66. package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CQP35yex.cjs} +6 -6
  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-BDbTDZmD.js → earn-rewards-tx-builder-Bsga3yFb.js} +5 -5
  81. package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-GuxofYns.cjs} +6 -6
  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 +86273 -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 +37496 -10033
  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-8v_n8boO.js +1177 -0
  134. package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
  135. package/dist/init-B8U3ABhS.cjs +107 -0
  136. package/dist/init-BJn-8_hf.js +141 -0
  137. package/dist/init-BPU3j8sT.cjs +6 -0
  138. package/dist/init-BRzH6xu-2.cjs +2797 -0
  139. package/dist/init-BmzfDaKL.js +1142 -0
  140. package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
  141. package/dist/init-BpHTq2R5.js +105 -0
  142. package/dist/init-BpSITBfF.js +39 -0
  143. package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
  144. package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
  145. package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
  146. package/dist/init-C00gw1zi.js +422 -0
  147. package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
  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-CuW7rHNA.js +3584 -0
  157. package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
  158. package/dist/init-Cz0rz5fU.cjs +3585 -0
  159. package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
  160. package/dist/init-D8OeObDF.cjs +1141 -0
  161. package/dist/init-D9g1HXYf.cjs +40 -0
  162. package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
  163. package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
  164. package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
  165. package/dist/init-DGjXwWs2.cjs +143 -0
  166. package/dist/init-DHrCbpkW.cjs +121 -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-DrRdf5sZ.cjs +1176 -0
  171. package/dist/init-DuYENxci.js +17 -0
  172. package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
  173. package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
  174. package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
  175. package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
  176. package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
  177. package/dist/init-GsT2AEa4.cjs +424 -0
  178. package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
  179. package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
  180. package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
  181. package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
  182. package/dist/init-c4l6r-o-.js +5 -0
  183. package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
  184. package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
  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-B1nDUWqy.js +995 -0
  210. package/dist/modules-cardano-BYeYHrRm.cjs +1108 -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-BpEMSti4.cjs → vote-delegation-tx-builder-BUg1S2Ep.cjs} +6 -6
  305. package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-C6FiS7zI.js} +5 -5
  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,6 @@
1
+ import { a as isCardanoAccount } from "./util-Cp5cZkfK.js";
2
+ //#region ../../packages/contract/cardano-context/src/custody/account.ts
3
+ /** Whether `account` is a Cardano custody account. */
4
+ const isCardanoCustodyAccount = (account) => isCardanoAccount(account) && account.accountType === "CardanoCustody";
5
+ //#endregion
6
+ export { isCardanoCustodyAccount as t };
@@ -0,0 +1,11 @@
1
+ const require_util = require("./util-Bu4W5lF4.cjs");
2
+ //#region ../../packages/contract/cardano-context/src/custody/account.ts
3
+ /** Whether `account` is a Cardano custody account. */
4
+ const isCardanoCustodyAccount = (account) => require_util.isCardanoAccount(account) && account.accountType === "CardanoCustody";
5
+ //#endregion
6
+ Object.defineProperty(exports, "isCardanoCustodyAccount", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return isCardanoCustodyAccount;
10
+ }
11
+ });
@@ -0,0 +1,5 @@
1
+ require("./rolldown-runtime-Br2OG8yv.cjs");
2
+ require("./_polyfill-buffer-patch-CM8X7JiY.cjs");
3
+ require("./codecs-Cswkg7Tm.cjs");
4
+ const require_account_call = require("./account-call-Bd4Rpbvt.cjs");
5
+ exports.readAccountLedger = require_account_call.readAccountLedger;
@@ -0,0 +1,4 @@
1
+ import "./_polyfill-buffer-patch-yNxN4d5E.js";
2
+ import "./codecs-Dc1Krpbt.js";
3
+ import { a as readAccountLedger } from "./account-call-C3CkDqEC.js";
4
+ export { readAccountLedger };
@@ -0,0 +1,323 @@
1
+ const require_bytes_vo = require("./bytes.vo-BNRquqaO.cjs");
2
+ const require_errors = require("./errors-BIftM8ZN.cjs");
3
+ const require_providers = require("./providers-FjhM47BH.cjs");
4
+ const require_gated_call = require("./gated-call-DgJm1Mi_.cjs");
5
+ const require_acc_module = require("./acc-module-4iIUv6My.cjs");
6
+ //#region ../../packages/module/passport-account/src/infra/indexer.ts
7
+ const TX_FIELDS = `transaction {
8
+ hash
9
+ block { height }
10
+ ... on RegularTransaction { identifiers zswapStartIndex zswapEndIndex }
11
+ }`;
12
+ const ACTION_FIELDS = `
13
+ __typename
14
+ ... on ContractDeploy { ${TX_FIELDS} }
15
+ ... on ContractCall { entryPoint ${TX_FIELDS} }
16
+ ... on ContractUpdate { ${TX_FIELDS} }
17
+ `;
18
+ const isShieldedOutputEvent = (content) => content.tag === "zswapOutput";
19
+ const isShieldedInputEvent = (content) => content.tag === "zswapInput";
20
+ const toRecord = (action) => {
21
+ const transaction = action.transaction ?? {};
22
+ return {
23
+ kind: action.__typename,
24
+ entryPoint: action.entryPoint ?? void 0,
25
+ txHash: String(transaction.hash ?? ""),
26
+ identifiers: (transaction.identifiers ?? []).map(String),
27
+ blockHeight: Number(transaction.block?.height ?? 0),
28
+ startIndex: transaction.zswapStartIndex == null ? void 0 : Number(transaction.zswapStartIndex),
29
+ endIndex: transaction.zswapEndIndex == null ? void 0 : Number(transaction.zswapEndIndex)
30
+ };
31
+ };
32
+ const stripHexPrefix = (address) => address.replace(/^0x/, "");
33
+ const HEX_BYTES_PATTERN = /^(?:[0-9a-fA-F]{2})*$/;
34
+ /**
35
+ * The bytes of a ledger event the indexer returned as hex. A payload that
36
+ * is not whole hex bytes is refused outright: decoding it leniently would
37
+ * hand the ledger a truncated event and lose the output it described.
38
+ */
39
+ const eventBytes = (raw) => {
40
+ if (!HEX_BYTES_PATTERN.test(raw)) throw new Error(`transactions query: ledger event is not hex: "${raw}"`);
41
+ return require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(raw));
42
+ };
43
+ /**
44
+ * Reads Passport contract data from a Midnight indexer: the current
45
+ * contract state through the midnight-js public data provider, the
46
+ * complete per-address action history through the indexer's
47
+ * contractActions subscription, and the shielded outputs a transaction
48
+ * created and the coins it spent through the ledger events the indexer
49
+ * keeps per transaction.
50
+ */
51
+ const createIndexerClient = ({ indexerUrl, indexerWsUrl, fetchHttp = globalThis.fetch, createSocket = (url, protocol) => new WebSocket(url, protocol), createPublicDataProvider }) => {
52
+ const defaultProvider = async () => {
53
+ const { indexerPublicDataProvider } = await import("@midnight-ntwrk/midnight-js-indexer-public-data-provider");
54
+ return indexerPublicDataProvider({
55
+ queryURL: indexerUrl,
56
+ subscriptionURL: indexerWsUrl
57
+ });
58
+ };
59
+ let providerPromise;
60
+ const provider = async () => providerPromise ??= (createPublicDataProvider ?? defaultProvider)();
61
+ const postQuery = async (name, query, variables) => {
62
+ const response = await fetchHttp(indexerUrl, {
63
+ method: "POST",
64
+ headers: { "Content-Type": "application/json" },
65
+ body: JSON.stringify({
66
+ query,
67
+ variables
68
+ })
69
+ });
70
+ if (!response.ok) throw new Error(`${name} query failed: HTTP ${response.status} ${response.statusText}`);
71
+ const body = await response.json();
72
+ if (body.errors?.length) throw new Error(`${name} query: ${JSON.stringify(body.errors)}`);
73
+ return body;
74
+ };
75
+ const latestContractAction = async (address) => {
76
+ const action = (await postQuery("contractAction", `query($address: HexEncoded!) { contractAction(address: $address) { ${ACTION_FIELDS} } }`, { address: stripHexPrefix(address) })).data?.contractAction;
77
+ return action ? toRecord(action) : null;
78
+ };
79
+ const enumerateContractActions = async (address, { timeoutMs = 6e4, drainMs = 500 } = {}) => {
80
+ const frontier = await latestContractAction(address);
81
+ if (!frontier) return [];
82
+ return new Promise((resolve, reject) => {
83
+ const actions = [];
84
+ const socket = createSocket(indexerWsUrl, "graphql-transport-ws");
85
+ let drain;
86
+ const deadline = setTimeout(() => {
87
+ fail(/* @__PURE__ */ new Error(`contractActions replay timed out after ${timeoutMs}ms (${actions.length} received)`));
88
+ }, timeoutMs);
89
+ const finish = (error) => {
90
+ clearTimeout(deadline);
91
+ if (drain) clearTimeout(drain);
92
+ try {
93
+ socket.close();
94
+ } catch {}
95
+ if (error) reject(error);
96
+ else resolve(actions);
97
+ };
98
+ const fail = (error) => {
99
+ finish(error);
100
+ };
101
+ socket.addEventListener("error", (event) => {
102
+ fail(/* @__PURE__ */ new Error(`indexer websocket: ${event.message ?? "error"}`));
103
+ });
104
+ socket.addEventListener("open", () => {
105
+ socket.send(JSON.stringify({ type: "connection_init" }));
106
+ });
107
+ socket.addEventListener("message", (event) => {
108
+ const message = JSON.parse(String(event.data));
109
+ switch (message.type ?? "") {
110
+ case "connection_ack":
111
+ socket.send(JSON.stringify({
112
+ id: "1",
113
+ type: "subscribe",
114
+ payload: {
115
+ query: `subscription($address: HexEncoded!) {
116
+ contractActions(address: $address, offset: { height: 0 }) { ${ACTION_FIELDS} }
117
+ }`,
118
+ variables: { address: stripHexPrefix(address) }
119
+ }
120
+ }));
121
+ break;
122
+ case "next": {
123
+ if (message.payload?.errors?.length) {
124
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload.errors)}`));
125
+ break;
126
+ }
127
+ const action = message.payload?.data?.contractActions;
128
+ if (!action) break;
129
+ actions.push(toRecord(action));
130
+ if (actions.at(-1)?.txHash === frontier.txHash && !drain) drain = setTimeout(() => {
131
+ finish();
132
+ }, drainMs);
133
+ break;
134
+ }
135
+ case "error":
136
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload)}`));
137
+ break;
138
+ case "complete":
139
+ finish();
140
+ break;
141
+ default: break;
142
+ }
143
+ });
144
+ });
145
+ };
146
+ /**
147
+ * The indexer keeps, per transaction, the events the ledger emitted while
148
+ * applying it; a shielded output's event carries the commitment and the
149
+ * tree index the ledger assigned, so the index is read, never inferred
150
+ * from the transaction's position window, and a shielded spend's event
151
+ * carries the nullifier the ledger recorded for the coin it consumed.
152
+ */
153
+ const queryShieldedEvents = async (txHash) => {
154
+ const events = ((await postQuery("transactions", `query($offset: TransactionOffset!) { transactions(offset: $offset) { hash ... on RegularTransaction { zswapLedgerEvents { raw } } } }`, { offset: { hash: stripHexPrefix(txHash) } })).data?.transactions ?? []).flatMap((transaction) => transaction.zswapLedgerEvents ?? []);
155
+ const found = {
156
+ outputs: [],
157
+ nullifiers: []
158
+ };
159
+ if (events.length === 0) return found;
160
+ const { Event } = await import("@midnightntwrk/ledger-v9");
161
+ for (const { raw } of events) {
162
+ const { content } = Event.deserialize(eventBytes(stripHexPrefix(raw ?? "")));
163
+ if (isShieldedOutputEvent(content)) found.outputs.push({
164
+ commitment: content.commitment.toLowerCase(),
165
+ ...content.contract === void 0 ? {} : { contractAddress: content.contract.toLowerCase() },
166
+ index: content.mtIndex
167
+ });
168
+ else if (isShieldedInputEvent(content)) found.nullifiers.push(content.nullifier.toLowerCase());
169
+ }
170
+ return found;
171
+ };
172
+ return {
173
+ queryContractState: async (address) => (await provider()).queryContractState(address),
174
+ enumerateContractActions,
175
+ queryShieldedEvents
176
+ };
177
+ };
178
+ //#endregion
179
+ //#region ../../packages/module/passport-account/src/flows/account-call.ts
180
+ /** Contract aborts meaning the authorising key was rejected. */
181
+ const NOT_AUTHORISED_ABORTS = ["failed assert: invalid signature", "failed assert: device key"];
182
+ /**
183
+ * Raised by the caller checks in require_authorised and by the target
184
+ * check in _do_remove_device: the same string for two different failures.
185
+ */
186
+ const UNKNOWN_ENTRY_ABORT = "failed assert: unknown device entry";
187
+ /** Whether a contract abort message says the authorising key was rejected. */
188
+ const isNotAuthorisedAbort = (message) => NOT_AUTHORISED_ABORTS.some((abort) => message.includes(abort));
189
+ /**
190
+ * The contract state the indexer serves at `address`, which must exist.
191
+ *
192
+ * @throws {@link AccountContractMissingError} when the indexer serves no
193
+ * contract at the address.
194
+ */
195
+ const queryAccountState = async (indexer, address) => {
196
+ const state = await indexer.queryContractState(address);
197
+ if (!state) throw new require_errors.AccountContractMissingError(`No live Account Custody Contract found at ${address}.`);
198
+ return state;
199
+ };
200
+ /**
201
+ * The decoded ledger state of the account at `address`, which must hold
202
+ * a live contract.
203
+ *
204
+ * @throws {@link AccountContractMissingError} when the indexer serves no
205
+ * contract at the address.
206
+ */
207
+ const queryAccountLedger = async (indexer, address) => require_acc_module.ledger((await queryAccountState(indexer, address)).data);
208
+ /**
209
+ * The operations the account at `address` holds verifier keys for, which
210
+ * are the circuits the chain will accept a call to.
211
+ *
212
+ * @throws {@link AccountContractMissingError} when the indexer serves no
213
+ * contract at the address.
214
+ */
215
+ const queryAccountOperations = async (indexer, address) => (await queryAccountState(indexer, address)).operations().map(String);
216
+ /**
217
+ * Reads the account's ledger state through a fresh indexer client, which
218
+ * is returned with it so a flow can read the state again after a call.
219
+ */
220
+ const readAccountLedger = async (address, { indexerUrl, indexerWsUrl }) => {
221
+ const indexer = createIndexerClient({
222
+ indexerUrl,
223
+ indexerWsUrl
224
+ });
225
+ return {
226
+ indexer,
227
+ ledgerState: await queryAccountLedger(indexer, address)
228
+ };
229
+ };
230
+ /**
231
+ * Submits one gated call and reports the position it left the local
232
+ * device in. The handle is connected without the account encryption
233
+ * secret: the device and grant lifecycle circuits read no private state,
234
+ * so deriving it here would only widen the window the secret spends in
235
+ * memory. The successor commitment is computed against the epoch read
236
+ * before the call, which is the epoch the accepted call ran under: a
237
+ * gated call never changes device_epoch (it is only written at
238
+ * construction), so the pre-call epoch names the very entry the contract
239
+ * inserted.
240
+ */
241
+ const submitAccountCall = async ({ circuit, args, account, localUseCounter, ledgerState, onStage }, { passportAuthoriser, passportNetwork, passportProver, passportSponsor }) => {
242
+ const handle = await require_gated_call.connectAccountHandle(await require_providers.createMidnightProviders({
243
+ network: passportNetwork,
244
+ prover: passportProver,
245
+ sponsor: passportSponsor,
246
+ ...onStage ? { onStage } : {}
247
+ }), account.address);
248
+ const address = require_providers.AccAddress(account.address);
249
+ const advancedCounter = await require_gated_call.executeGatedCall({
250
+ handle,
251
+ authoriser: passportAuthoriser,
252
+ circuit,
253
+ args,
254
+ address,
255
+ ledgerState,
256
+ knownUseCounter: localUseCounter === void 0 ? void 0 : require_gated_call.UseCounter(BigInt(localUseCounter))
257
+ });
258
+ return {
259
+ advancedCounter,
260
+ localCommitmentHex: await passportAuthoriser.deviceCommitment(address, require_gated_call.DeviceEpoch(ledgerState.device_epoch), advancedCounter)
261
+ };
262
+ };
263
+ /**
264
+ * The devices list with the local device's row moved to the commitment it
265
+ * holds after an accepted call. An entry is single use: the call consumed
266
+ * the one the row carried and the contract inserted its successor, so
267
+ * leaving the row as it was would name an entry the on-chain set no
268
+ * longer holds. Only existing rows are rewritten, so a removal that
269
+ * dropped the local row does not resurrect it.
270
+ */
271
+ const withRefreshedLocalDevice = (devices, commitmentHex) => devices.map((device) => device.isLocal ? {
272
+ ...device,
273
+ commitmentHex
274
+ } : device);
275
+ //#endregion
276
+ Object.defineProperty(exports, "UNKNOWN_ENTRY_ABORT", {
277
+ enumerable: true,
278
+ get: function() {
279
+ return UNKNOWN_ENTRY_ABORT;
280
+ }
281
+ });
282
+ Object.defineProperty(exports, "createIndexerClient", {
283
+ enumerable: true,
284
+ get: function() {
285
+ return createIndexerClient;
286
+ }
287
+ });
288
+ Object.defineProperty(exports, "isNotAuthorisedAbort", {
289
+ enumerable: true,
290
+ get: function() {
291
+ return isNotAuthorisedAbort;
292
+ }
293
+ });
294
+ Object.defineProperty(exports, "queryAccountLedger", {
295
+ enumerable: true,
296
+ get: function() {
297
+ return queryAccountLedger;
298
+ }
299
+ });
300
+ Object.defineProperty(exports, "queryAccountOperations", {
301
+ enumerable: true,
302
+ get: function() {
303
+ return queryAccountOperations;
304
+ }
305
+ });
306
+ Object.defineProperty(exports, "readAccountLedger", {
307
+ enumerable: true,
308
+ get: function() {
309
+ return readAccountLedger;
310
+ }
311
+ });
312
+ Object.defineProperty(exports, "submitAccountCall", {
313
+ enumerable: true,
314
+ get: function() {
315
+ return submitAccountCall;
316
+ }
317
+ });
318
+ Object.defineProperty(exports, "withRefreshedLocalDevice", {
319
+ enumerable: true,
320
+ get: function() {
321
+ return withRefreshedLocalDevice;
322
+ }
323
+ });
@@ -0,0 +1,276 @@
1
+ import { n as HexBytes, t as ByteArray } from "./bytes.vo-BB7_4JK6.js";
2
+ import { t as AccountContractMissingError } from "./errors-DSq5wUwt.js";
3
+ import { i as AccAddress, t as createMidnightProviders } from "./providers-WtiSuxFu.js";
4
+ import { d as UseCounter, n as executeGatedCall, t as connectAccountHandle, u as DeviceEpoch } from "./gated-call-D-tT7P_t.js";
5
+ import { i as ledger } from "./acc-module-Cmj8EsIb.js";
6
+ //#region ../../packages/module/passport-account/src/infra/indexer.ts
7
+ const TX_FIELDS = `transaction {
8
+ hash
9
+ block { height }
10
+ ... on RegularTransaction { identifiers zswapStartIndex zswapEndIndex }
11
+ }`;
12
+ const ACTION_FIELDS = `
13
+ __typename
14
+ ... on ContractDeploy { ${TX_FIELDS} }
15
+ ... on ContractCall { entryPoint ${TX_FIELDS} }
16
+ ... on ContractUpdate { ${TX_FIELDS} }
17
+ `;
18
+ const isShieldedOutputEvent = (content) => content.tag === "zswapOutput";
19
+ const isShieldedInputEvent = (content) => content.tag === "zswapInput";
20
+ const toRecord = (action) => {
21
+ const transaction = action.transaction ?? {};
22
+ return {
23
+ kind: action.__typename,
24
+ entryPoint: action.entryPoint ?? void 0,
25
+ txHash: String(transaction.hash ?? ""),
26
+ identifiers: (transaction.identifiers ?? []).map(String),
27
+ blockHeight: Number(transaction.block?.height ?? 0),
28
+ startIndex: transaction.zswapStartIndex == null ? void 0 : Number(transaction.zswapStartIndex),
29
+ endIndex: transaction.zswapEndIndex == null ? void 0 : Number(transaction.zswapEndIndex)
30
+ };
31
+ };
32
+ const stripHexPrefix = (address) => address.replace(/^0x/, "");
33
+ const HEX_BYTES_PATTERN = /^(?:[0-9a-fA-F]{2})*$/;
34
+ /**
35
+ * The bytes of a ledger event the indexer returned as hex. A payload that
36
+ * is not whole hex bytes is refused outright: decoding it leniently would
37
+ * hand the ledger a truncated event and lose the output it described.
38
+ */
39
+ const eventBytes = (raw) => {
40
+ if (!HEX_BYTES_PATTERN.test(raw)) throw new Error(`transactions query: ledger event is not hex: "${raw}"`);
41
+ return ByteArray.fromHex(HexBytes(raw));
42
+ };
43
+ /**
44
+ * Reads Passport contract data from a Midnight indexer: the current
45
+ * contract state through the midnight-js public data provider, the
46
+ * complete per-address action history through the indexer's
47
+ * contractActions subscription, and the shielded outputs a transaction
48
+ * created and the coins it spent through the ledger events the indexer
49
+ * keeps per transaction.
50
+ */
51
+ const createIndexerClient = ({ indexerUrl, indexerWsUrl, fetchHttp = globalThis.fetch, createSocket = (url, protocol) => new WebSocket(url, protocol), createPublicDataProvider }) => {
52
+ const defaultProvider = async () => {
53
+ const { indexerPublicDataProvider } = await import("@midnight-ntwrk/midnight-js-indexer-public-data-provider");
54
+ return indexerPublicDataProvider({
55
+ queryURL: indexerUrl,
56
+ subscriptionURL: indexerWsUrl
57
+ });
58
+ };
59
+ let providerPromise;
60
+ const provider = async () => providerPromise ??= (createPublicDataProvider ?? defaultProvider)();
61
+ const postQuery = async (name, query, variables) => {
62
+ const response = await fetchHttp(indexerUrl, {
63
+ method: "POST",
64
+ headers: { "Content-Type": "application/json" },
65
+ body: JSON.stringify({
66
+ query,
67
+ variables
68
+ })
69
+ });
70
+ if (!response.ok) throw new Error(`${name} query failed: HTTP ${response.status} ${response.statusText}`);
71
+ const body = await response.json();
72
+ if (body.errors?.length) throw new Error(`${name} query: ${JSON.stringify(body.errors)}`);
73
+ return body;
74
+ };
75
+ const latestContractAction = async (address) => {
76
+ const action = (await postQuery("contractAction", `query($address: HexEncoded!) { contractAction(address: $address) { ${ACTION_FIELDS} } }`, { address: stripHexPrefix(address) })).data?.contractAction;
77
+ return action ? toRecord(action) : null;
78
+ };
79
+ const enumerateContractActions = async (address, { timeoutMs = 6e4, drainMs = 500 } = {}) => {
80
+ const frontier = await latestContractAction(address);
81
+ if (!frontier) return [];
82
+ return new Promise((resolve, reject) => {
83
+ const actions = [];
84
+ const socket = createSocket(indexerWsUrl, "graphql-transport-ws");
85
+ let drain;
86
+ const deadline = setTimeout(() => {
87
+ fail(/* @__PURE__ */ new Error(`contractActions replay timed out after ${timeoutMs}ms (${actions.length} received)`));
88
+ }, timeoutMs);
89
+ const finish = (error) => {
90
+ clearTimeout(deadline);
91
+ if (drain) clearTimeout(drain);
92
+ try {
93
+ socket.close();
94
+ } catch {}
95
+ if (error) reject(error);
96
+ else resolve(actions);
97
+ };
98
+ const fail = (error) => {
99
+ finish(error);
100
+ };
101
+ socket.addEventListener("error", (event) => {
102
+ fail(/* @__PURE__ */ new Error(`indexer websocket: ${event.message ?? "error"}`));
103
+ });
104
+ socket.addEventListener("open", () => {
105
+ socket.send(JSON.stringify({ type: "connection_init" }));
106
+ });
107
+ socket.addEventListener("message", (event) => {
108
+ const message = JSON.parse(String(event.data));
109
+ switch (message.type ?? "") {
110
+ case "connection_ack":
111
+ socket.send(JSON.stringify({
112
+ id: "1",
113
+ type: "subscribe",
114
+ payload: {
115
+ query: `subscription($address: HexEncoded!) {
116
+ contractActions(address: $address, offset: { height: 0 }) { ${ACTION_FIELDS} }
117
+ }`,
118
+ variables: { address: stripHexPrefix(address) }
119
+ }
120
+ }));
121
+ break;
122
+ case "next": {
123
+ if (message.payload?.errors?.length) {
124
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload.errors)}`));
125
+ break;
126
+ }
127
+ const action = message.payload?.data?.contractActions;
128
+ if (!action) break;
129
+ actions.push(toRecord(action));
130
+ if (actions.at(-1)?.txHash === frontier.txHash && !drain) drain = setTimeout(() => {
131
+ finish();
132
+ }, drainMs);
133
+ break;
134
+ }
135
+ case "error":
136
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload)}`));
137
+ break;
138
+ case "complete":
139
+ finish();
140
+ break;
141
+ default: break;
142
+ }
143
+ });
144
+ });
145
+ };
146
+ /**
147
+ * The indexer keeps, per transaction, the events the ledger emitted while
148
+ * applying it; a shielded output's event carries the commitment and the
149
+ * tree index the ledger assigned, so the index is read, never inferred
150
+ * from the transaction's position window, and a shielded spend's event
151
+ * carries the nullifier the ledger recorded for the coin it consumed.
152
+ */
153
+ const queryShieldedEvents = async (txHash) => {
154
+ const events = ((await postQuery("transactions", `query($offset: TransactionOffset!) { transactions(offset: $offset) { hash ... on RegularTransaction { zswapLedgerEvents { raw } } } }`, { offset: { hash: stripHexPrefix(txHash) } })).data?.transactions ?? []).flatMap((transaction) => transaction.zswapLedgerEvents ?? []);
155
+ const found = {
156
+ outputs: [],
157
+ nullifiers: []
158
+ };
159
+ if (events.length === 0) return found;
160
+ const { Event } = await import("@midnightntwrk/ledger-v9");
161
+ for (const { raw } of events) {
162
+ const { content } = Event.deserialize(eventBytes(stripHexPrefix(raw ?? "")));
163
+ if (isShieldedOutputEvent(content)) found.outputs.push({
164
+ commitment: content.commitment.toLowerCase(),
165
+ ...content.contract === void 0 ? {} : { contractAddress: content.contract.toLowerCase() },
166
+ index: content.mtIndex
167
+ });
168
+ else if (isShieldedInputEvent(content)) found.nullifiers.push(content.nullifier.toLowerCase());
169
+ }
170
+ return found;
171
+ };
172
+ return {
173
+ queryContractState: async (address) => (await provider()).queryContractState(address),
174
+ enumerateContractActions,
175
+ queryShieldedEvents
176
+ };
177
+ };
178
+ //#endregion
179
+ //#region ../../packages/module/passport-account/src/flows/account-call.ts
180
+ /** Contract aborts meaning the authorising key was rejected. */
181
+ const NOT_AUTHORISED_ABORTS = ["failed assert: invalid signature", "failed assert: device key"];
182
+ /**
183
+ * Raised by the caller checks in require_authorised and by the target
184
+ * check in _do_remove_device: the same string for two different failures.
185
+ */
186
+ const UNKNOWN_ENTRY_ABORT = "failed assert: unknown device entry";
187
+ /** Whether a contract abort message says the authorising key was rejected. */
188
+ const isNotAuthorisedAbort = (message) => NOT_AUTHORISED_ABORTS.some((abort) => message.includes(abort));
189
+ /**
190
+ * The contract state the indexer serves at `address`, which must exist.
191
+ *
192
+ * @throws {@link AccountContractMissingError} when the indexer serves no
193
+ * contract at the address.
194
+ */
195
+ const queryAccountState = async (indexer, address) => {
196
+ const state = await indexer.queryContractState(address);
197
+ if (!state) throw new AccountContractMissingError(`No live Account Custody Contract found at ${address}.`);
198
+ return state;
199
+ };
200
+ /**
201
+ * The decoded ledger state of the account at `address`, which must hold
202
+ * a live contract.
203
+ *
204
+ * @throws {@link AccountContractMissingError} when the indexer serves no
205
+ * contract at the address.
206
+ */
207
+ const queryAccountLedger = async (indexer, address) => ledger((await queryAccountState(indexer, address)).data);
208
+ /**
209
+ * The operations the account at `address` holds verifier keys for, which
210
+ * are the circuits the chain will accept a call to.
211
+ *
212
+ * @throws {@link AccountContractMissingError} when the indexer serves no
213
+ * contract at the address.
214
+ */
215
+ const queryAccountOperations = async (indexer, address) => (await queryAccountState(indexer, address)).operations().map(String);
216
+ /**
217
+ * Reads the account's ledger state through a fresh indexer client, which
218
+ * is returned with it so a flow can read the state again after a call.
219
+ */
220
+ const readAccountLedger = async (address, { indexerUrl, indexerWsUrl }) => {
221
+ const indexer = createIndexerClient({
222
+ indexerUrl,
223
+ indexerWsUrl
224
+ });
225
+ return {
226
+ indexer,
227
+ ledgerState: await queryAccountLedger(indexer, address)
228
+ };
229
+ };
230
+ /**
231
+ * Submits one gated call and reports the position it left the local
232
+ * device in. The handle is connected without the account encryption
233
+ * secret: the device and grant lifecycle circuits read no private state,
234
+ * so deriving it here would only widen the window the secret spends in
235
+ * memory. The successor commitment is computed against the epoch read
236
+ * before the call, which is the epoch the accepted call ran under: a
237
+ * gated call never changes device_epoch (it is only written at
238
+ * construction), so the pre-call epoch names the very entry the contract
239
+ * inserted.
240
+ */
241
+ const submitAccountCall = async ({ circuit, args, account, localUseCounter, ledgerState, onStage }, { passportAuthoriser, passportNetwork, passportProver, passportSponsor }) => {
242
+ const handle = await connectAccountHandle(await createMidnightProviders({
243
+ network: passportNetwork,
244
+ prover: passportProver,
245
+ sponsor: passportSponsor,
246
+ ...onStage ? { onStage } : {}
247
+ }), account.address);
248
+ const address = AccAddress(account.address);
249
+ const advancedCounter = await executeGatedCall({
250
+ handle,
251
+ authoriser: passportAuthoriser,
252
+ circuit,
253
+ args,
254
+ address,
255
+ ledgerState,
256
+ knownUseCounter: localUseCounter === void 0 ? void 0 : UseCounter(BigInt(localUseCounter))
257
+ });
258
+ return {
259
+ advancedCounter,
260
+ localCommitmentHex: await passportAuthoriser.deviceCommitment(address, DeviceEpoch(ledgerState.device_epoch), advancedCounter)
261
+ };
262
+ };
263
+ /**
264
+ * The devices list with the local device's row moved to the commitment it
265
+ * holds after an accepted call. An entry is single use: the call consumed
266
+ * the one the row carried and the contract inserted its successor, so
267
+ * leaving the row as it was would name an entry the on-chain set no
268
+ * longer holds. Only existing rows are rewritten, so a removal that
269
+ * dropped the local row does not resurrect it.
270
+ */
271
+ const withRefreshedLocalDevice = (devices, commitmentHex) => devices.map((device) => device.isLocal ? {
272
+ ...device,
273
+ commitmentHex
274
+ } : device);
275
+ //#endregion
276
+ export { readAccountLedger as a, createIndexerClient as c, queryAccountOperations as i, isNotAuthorisedAbort as n, submitAccountCall as o, queryAccountLedger as r, withRefreshedLocalDevice as s, UNKNOWN_ENTRY_ABORT as t };
@@ -0,0 +1,42 @@
1
+ require("./rolldown-runtime-Br2OG8yv.cjs");
2
+ const require_outputs = require("./outputs-CJoQBIA2.cjs");
3
+ let _laceio_cardano_core = require("@laceio/cardano/core");
4
+ //#region ../../packages/module/blockchain-cardano/src/store/custody/custody-account-guard.ts
5
+ /**
6
+ * An ordinary builder was asked to spend from a Cardano custody account.
7
+ * Its UTxOs are locked by the custody script, and a key-signed build would
8
+ * be one the chain refuses; only the custody builder spends them.
9
+ */
10
+ var CardanoCustodyAccountRefusedError = class extends Error {
11
+ code = "custody-account";
12
+ constructor(accountId) {
13
+ super(`Account ${accountId} is a Cardano custody account; build its transactions with the custody builder`);
14
+ this.name = "CardanoCustodyAccountRefusedError";
15
+ }
16
+ };
17
+ const isCustodyAddress = (address) => {
18
+ const parsed = _laceio_cardano_core.Cardano.Address.fromString(address);
19
+ return !!parsed && require_outputs.classifyCustodyAddress(parsed).kind !== "other";
20
+ };
21
+ /**
22
+ * Throws when any of the account's Cardano addresses pays a supported
23
+ * custody account validator, with any stake part or none.
24
+ *
25
+ * @throws `CardanoCustodyAccountRefusedError`
26
+ */
27
+ const refuseCustodyAccount = (accountId, addresses) => {
28
+ if (addresses.some((address) => address.accountId === accountId && address.blockchainName === "Cardano" && isCustodyAddress(address.address))) throw new CardanoCustodyAccountRefusedError(accountId);
29
+ };
30
+ //#endregion
31
+ //#region ../../packages/module/blockchain-cardano/src/store/account-guards.ts
32
+ /** Throws when an ordinary builder may not spend from the account. */
33
+ const refuseExtensionAccount = (accountId, addresses) => {
34
+ refuseCustodyAccount(accountId, addresses);
35
+ };
36
+ //#endregion
37
+ Object.defineProperty(exports, "refuseExtensionAccount", {
38
+ enumerable: true,
39
+ get: function() {
40
+ return refuseExtensionAccount;
41
+ }
42
+ });