@laceio/sdk 0.1.0 → 0.1.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/{Ed25519PublicKey-lvu1s54U.cjs → Address-AMKTo-dA.cjs} +17150 -61
  2. package/dist/{Ed25519PublicKey-CjnuAYRR.js → Address-_c_-9hLC.js} +16955 -264
  3. package/dist/{Bip32Account-r3KAhCgU.js → Bip32Account-CaW1zC9Y.js} +4 -5
  4. package/dist/{Bip32Account-Cz3h0ZUa.cjs → Bip32Account-DOaGmKpv.cjs} +4 -5
  5. package/dist/Cardano-B-gyqBBD.js +311 -0
  6. package/dist/Cardano-BQ_af0Y3.cjs +322 -0
  7. package/dist/Ed25519PublicKey-B3QcR0J2.cjs +88 -0
  8. package/dist/Ed25519PublicKey-DIE19xHg.js +83 -0
  9. package/dist/InMemoryKeyAgent-Bc_xZY-v.cjs +652 -0
  10. package/dist/InMemoryKeyAgent-D8T3vtXy.js +631 -0
  11. package/dist/{PaymentAddress-DhbtuYb7.cjs → PaymentAddress-B4n1KZMx.cjs} +1 -2
  12. package/dist/{PaymentAddress-xSmGUQ-8.js → PaymentAddress-Cml3EA1n.js} +1 -2
  13. package/dist/Percent-Cfuw5YyL.cjs +11 -0
  14. package/dist/Percent-DpvyJ_93.js +5 -0
  15. package/dist/SodiumBip32Ed25519-BaD-kjyx.cjs +380 -0
  16. package/dist/SodiumBip32Ed25519-DCikAMsl.js +363 -0
  17. package/dist/{TransactionBuilder-CeJTNzm-.cjs → TransactionBuilder-BakTJvsJ.cjs} +59 -89
  18. package/dist/{TransactionBuilder-DGNDM4kt.js → TransactionBuilder-D2ErwVWv.js} +5 -71
  19. package/dist/_md-6zV2Cme0.cjs +684 -0
  20. package/dist/_md-gbUqlhqd.js +399 -0
  21. package/dist/_web-crypto-random-bytes-BvzwTYPG.js +197 -0
  22. package/dist/acc-module-NL_8mEHH.cjs +27654 -0
  23. package/dist/acc-module-ur8CkBd1.js +27624 -0
  24. package/dist/account-call-B7cF8ly4.cjs +293 -0
  25. package/dist/account-call-BF4rBcNw.js +3 -0
  26. package/dist/account-call-CoCq3V55.js +252 -0
  27. package/dist/account-call-DFcD257E.cjs +4 -0
  28. package/dist/account-guards-BeKbV9D1.cjs +41 -0
  29. package/dist/account-guards-qnFXuXSE.js +36 -0
  30. package/dist/{activity-type.stable-ClO9j_PH.cjs → activity-type-BPXxdHBP.cjs} +2 -1
  31. package/dist/{activity-type.stable-Ml0SOYv9.js → activity-type-C1geyPsH.js} +2 -1
  32. package/dist/address-OxwXIwbF.js +15502 -0
  33. package/dist/address-book-address-validator-BqYM0Uyp.cjs +41 -0
  34. package/dist/{address-book-address-validator-BhqRfmlL.cjs → address-book-address-validator-CGIcqn5W.cjs} +5 -4
  35. package/dist/{address-book-address-validator-VqIOB8PY.js → address-book-address-validator-FkkYim3z.js} +6 -4
  36. package/dist/address-book-address-validator-RSx2Jozy.js +39 -0
  37. package/dist/address-lECYBd9-.cjs +13043 -0
  38. package/dist/{apply-vkey-witnesses-Ctzk7eye.cjs → apply-vkey-witnesses-1jyczTkw.cjs} +1 -1
  39. package/dist/{apply-vkey-witnesses-Dfo7XfhL.js → apply-vkey-witnesses-Byb40-yJ.js} +1 -1
  40. package/dist/artefact-loader-Cqc9eSkL.cjs +182 -0
  41. package/dist/artefact-loader-D0T2f6F7.js +159 -0
  42. package/dist/auto-dismiss-failure-on-success-BWJceNXd.cjs +37 -0
  43. package/dist/auto-dismiss-failure-on-success-Bpod-v4r.js +31 -0
  44. package/dist/bip32-EPpcFrpH.cjs +3851 -0
  45. package/dist/{bip32ed25519-D2In8WzR.cjs → bip32ed25519-CRiG-Kjg.cjs} +5 -4
  46. package/dist/{bip32ed25519-qsLH_eWO.js → bip32ed25519-E-fCUZNv.js} +6 -4
  47. package/dist/bip39-DZomfqeY.js +9 -0
  48. package/dist/bip39-MAck9iod.cjs +26 -0
  49. package/dist/bitcoin-data-provider-D0OT_Uiu.cjs +26 -0
  50. package/dist/bitcoin-data-provider-LN_8oamW.js +21 -0
  51. package/dist/bitcoin.cjs +48 -0
  52. package/dist/bitcoin.d.ts +29805 -1
  53. package/dist/bitcoin.js +22 -0
  54. package/dist/{blake2b-BGHUWMsV.js → blake2b-BL-eR5G2.js} +6 -4
  55. package/dist/{blake2b-DspUqw68.cjs → blake2b-Iy324FwH.cjs} +5 -4
  56. package/dist/{blockfrost-tx-submit-provider-BUEOmdvc.js → blockfrost-tx-submit-provider-BHDLgOIE.js} +9 -162
  57. package/dist/{blockfrost-tx-submit-provider-B5dWbdrZ.cjs → blockfrost-tx-submit-provider-BxC19smv.cjs} +7 -171
  58. package/dist/{blockingWithLatestFrom-BhaE7pnA.js → blockingWithLatestFrom-FUfZFEUG.js} +1 -1
  59. package/dist/{blockingWithLatestFrom-DkuT3G2a.cjs → blockingWithLatestFrom-bmCPgA3c.cjs} +1 -1
  60. package/dist/bn-BFq5a4dk.cjs +2553 -0
  61. package/dist/{SodiumBip32Ed25519-BEfo1Q9m.js → browser-D5jRKv_L.js} +4 -401
  62. package/dist/bytes.vo-CziaOsba.js +24 -0
  63. package/dist/bytes.vo-hecRu3YZ.cjs +35 -0
  64. package/dist/{cardano-network-id-to-network-type-PXvn1ycQ.cjs → cardano-network-id-to-network-type-BwG_d6QP.cjs} +1 -1
  65. package/dist/{cardano-network-id-to-network-type-DHgKhDAK.js → cardano-network-id-to-network-type-CYJheetp.js} +1 -1
  66. package/dist/{cardano-network-id.vo-CbNNKd-k.cjs → cardano-network-id.vo-C5VuBXT3.cjs} +2 -2
  67. package/dist/{cardano-network-id.vo-CTYe-Oix.js → cardano-network-id.vo-CeLJqmb_.js} +2 -2
  68. package/dist/{cardano-tx-id.vo-BMwemq5x.js → cardano-tx-id.vo-DJ70NC0-.js} +1 -1
  69. package/dist/{cardano-tx-id.vo-NY-gCOWJ.cjs → cardano-tx-id.vo-lnyO9XaW.cjs} +1 -1
  70. package/dist/cardano.cjs +31 -24
  71. package/dist/cardano.d.ts +27602 -8121
  72. package/dist/cardano.js +21 -13
  73. package/dist/client-Bw2foG5E.cjs +808 -0
  74. package/dist/const-BB3MccLt.js +153 -0
  75. package/dist/{const-BErUlcZw.cjs → const-BWBAzOmN.cjs} +1 -1
  76. package/dist/const-CSWmOyzn.cjs +42 -0
  77. package/dist/{const-Dy8Ctnpd.cjs → const-D3mCkwrM.cjs} +5 -5
  78. package/dist/const-DW7z3R5k.js +13 -0
  79. package/dist/{const-DeUA7zYl.js → const-DbuUHSzR.js} +5 -5
  80. package/dist/const-DgBzKfz6.cjs +31995 -0
  81. package/dist/{const-DVW6DGkZ.js → const-xGSNCtwQ.js} +1 -1
  82. package/dist/contract-BsIGhsYa.js +171 -0
  83. package/dist/contract-DD6CGnpB.cjs +189 -0
  84. package/dist/create-add-accounts-2mQA0ST2.js +102 -0
  85. package/dist/create-add-accounts-B6mR2NMn.cjs +114 -0
  86. package/dist/{delegation-tx-builder-CF0VunDW.cjs → delegation-tx-builder-Cp30jtj9.cjs} +9 -8
  87. package/dist/{delegation-tx-builder-C8LQxU2R.js → delegation-tx-builder-DUMikSTg.js} +9 -7
  88. package/dist/{deregistration-tx-builder-DcUXA3Ls.cjs → deregistration-tx-builder-B-ZeY-dR.cjs} +10 -9
  89. package/dist/{deregistration-tx-builder-BOBPP8m_.js → deregistration-tx-builder-CRLrK99U.js} +10 -8
  90. package/dist/device-commitment-hex.vo-BIUYUNz1.cjs +31 -0
  91. package/dist/device-commitment-hex.vo-D9FsYLn7.js +26 -0
  92. package/dist/device-key-BToCoS4D.js +2394 -0
  93. package/dist/device-key-D6euvxFi.cjs +2489 -0
  94. package/dist/device-readers-BHJeNR8I.js +3 -0
  95. package/dist/device-readers-Dw7uTNM5.cjs +167 -0
  96. package/dist/device-readers-b4g2j3QL.js +144 -0
  97. package/dist/device-readers-cxcJcWq5.cjs +7 -0
  98. package/dist/dist-B00GN41m.js +141 -0
  99. package/dist/dist-BA1xnF9O.cjs +4413 -0
  100. package/dist/dist-BmHOXLe8.cjs +3814 -0
  101. package/dist/dist-Br0OVXKt.cjs +535 -0
  102. package/dist/dist-C1JK9C1I.cjs +3452 -0
  103. package/dist/dist-DKEViNEI.cjs +1306 -0
  104. package/dist/dist-Dwqx184a.cjs +43175 -0
  105. package/dist/dist-MJof_Ky1.cjs +145 -0
  106. package/dist/dist-p84sVVJ9.cjs +1394 -0
  107. package/dist/{earn-rewards-tx-builder-BRlTueHS.js → earn-rewards-tx-builder-8G_rouIk.js} +9 -7
  108. package/dist/{earn-rewards-tx-builder-RgO0QUY8.cjs → earn-rewards-tx-builder-cOUNV58E.cjs} +9 -8
  109. package/dist/enc-key-circuits-0Dud78IB.js +13 -0
  110. package/dist/enc-key-circuits-yjPHbuo_.cjs +24 -0
  111. package/dist/english-BZ_ebp2-.cjs +2057 -0
  112. package/dist/envelopes-B3QCzo5p.js +2658 -0
  113. package/dist/envelopes-BdE1xlgz.cjs +2777 -0
  114. package/dist/errors-BA3b8aVu.cjs +584 -0
  115. package/dist/errors-pkQdxW-7.js +392 -0
  116. package/dist/experimental.cjs +6820 -0
  117. package/dist/experimental.d.ts +63552 -0
  118. package/dist/experimental.js +6670 -0
  119. package/dist/fees-6C2uEWFK.js +653 -0
  120. package/dist/fees-DtC71fOx.cjs +820 -0
  121. package/dist/gated-call-BrPjKolT.js +3 -0
  122. package/dist/gated-call-CcsuW9L5.js +691 -0
  123. package/dist/gated-call-DdDrxEq5.cjs +732 -0
  124. package/dist/gated-call-Dk7PazhG.cjs +4 -0
  125. package/dist/grant-rules-B7eDuD5G.cjs +5468 -0
  126. package/dist/grant-rules-qLrKUIR3.js +5217 -0
  127. package/dist/grant-status-CDmZpx32.js +296 -0
  128. package/dist/grant-status-CQtwjLsA.cjs +337 -0
  129. package/dist/grants-Bnb-3Hkv.cjs +16 -0
  130. package/dist/grants-CIb6nOV7.cjs +273 -0
  131. package/dist/grants-CYY0AquW.js +202 -0
  132. package/dist/grants-DOsFSotP.js +4 -0
  133. package/dist/{group-cardano-addresses-by-account-C-1GHUu8.cjs → group-cardano-addresses-by-account-BGOtPV-Y.cjs} +4 -40
  134. package/dist/{group-cardano-addresses-by-account-p4dXmCoj.js → group-cardano-addresses-by-account-TqvESg9x.js} +6 -37
  135. package/dist/{guarded-transaction-signer-DZSGHp1K.js → guarded-transaction-signer-BbVDE9Nn.js} +12 -18
  136. package/dist/{guarded-transaction-signer-BLSezbfV.cjs → guarded-transaction-signer-DTLjAkif.cjs} +26 -26
  137. package/dist/hex-BVtOKJki.cjs +263 -0
  138. package/dist/hex-CGYJPK_Z.js +192 -0
  139. package/dist/http-client-B7_kBTYn.js +155 -0
  140. package/dist/http-client-DYQ_7Rdf.cjs +167 -0
  141. package/dist/identity-DxPhxkZs.js +239 -0
  142. package/dist/identity-y41Yle03.cjs +274 -0
  143. package/dist/in-memory-wallet-integration-5BKiAvPT.js +20861 -0
  144. package/dist/{in-memory-wallet-integration-CUTa68ET.js → in-memory-wallet-integration-BCOqDgbt.js} +10 -107
  145. package/dist/in-memory-wallet-integration-Bi8I9Dso.js +128 -0
  146. package/dist/in-memory-wallet-integration-Bsl2ONua.cjs +239 -0
  147. package/dist/in-memory-wallet-integration-DZ0CAyvY.cjs +20865 -0
  148. package/dist/{in-memory-wallet-integration-Dw_S7amX.cjs → in-memory-wallet-integration-DsFm8gLk.cjs} +21 -112
  149. package/dist/{in-memory-wallet-integration-Z4Bp_DTv.cjs → in-memory-wallet-integration-aW_SF-go.cjs} +8 -5
  150. package/dist/{in-memory-wallet-integration-B6cbAlvD.js → in-memory-wallet-integration-mIEc8EfR.js} +9 -5
  151. package/dist/index.cjs +95 -58
  152. package/dist/index.d.ts +45152 -13448
  153. package/dist/index.js +55 -28
  154. package/dist/{init-CVi8J0zk.cjs → init-5SfWgCYD.cjs} +3 -3
  155. package/dist/{init-Ci7aqWCf2.cjs → init-8NVWbo302.cjs} +2 -2
  156. package/dist/init-B-C7n6u6.js +5 -0
  157. package/dist/{init-BFMWRf-L.js → init-B-ppfGO-.js} +1 -1
  158. package/dist/{init-IiR093Jw.cjs → init-B2OUhY5T.cjs} +2 -2
  159. package/dist/{init-DXnus199.cjs → init-B6Eg_o6G.cjs} +5 -5
  160. package/dist/{init-4hDl5bpr.js → init-BAWMHL1k.js} +2 -2
  161. package/dist/init-BC2CZZOu2.cjs +2002 -0
  162. package/dist/{init-a228hXnS.cjs → init-BF-a2p6E.cjs} +65 -73
  163. package/dist/{init-fFirX8OY.cjs → init-BFxlQAD8.cjs} +1 -1
  164. package/dist/init-BJE1ry0O.js +17 -0
  165. package/dist/{init-BVnI4z2J.js → init-BPKBVOHU.js} +2 -2
  166. package/dist/{init-bdqZBd-o.js → init-BSP_xcpB.js} +2 -2
  167. package/dist/{init-CFNOn3lo.js → init-BSd7mznK.js} +3 -3
  168. package/dist/{init-MjR4swi6.js → init-BUJTT0MN.js} +36 -43
  169. package/dist/init-BUpFzYsD.cjs +143 -0
  170. package/dist/{init-BvpYHyLH.cjs → init-BZ-WyAIL.cjs} +3 -3
  171. package/dist/init-BZdfdLX7.js +422 -0
  172. package/dist/{init-CJeOys1w.cjs → init-B_HWNXMD.cjs} +2 -2
  173. package/dist/init-BbIMt6xU.cjs +6 -0
  174. package/dist/{init-BYdN1aqE.cjs → init-BewG6swt.cjs} +2 -2
  175. package/dist/{init-BX0AZAVH2.js → init-Bilqsbng.js} +2 -2
  176. package/dist/{init-Tpn9VkFu.cjs → init-BpwlQ6wF.cjs} +1 -1
  177. package/dist/{init-D5-P0HXK.js → init-BtQOzUjX.js} +1 -1
  178. package/dist/{init-BvGz3qUd2.js → init-CCTscPaY2.js} +2 -2
  179. package/dist/{init-D4hPipCD.cjs → init-CH0yyBof.cjs} +1 -1
  180. package/dist/init-CaIkrXal.cjs +121 -0
  181. package/dist/init-CkZy4IMf.cjs +107 -0
  182. package/dist/{init-Drr2f_Pr.js → init-CmfcY7SV.js} +1 -1
  183. package/dist/{init-Kf3_OLv6.js → init-CnJAlks_.js} +1 -1
  184. package/dist/{init-Cdjt_z-b.cjs → init-CqqmtAIK.cjs} +4 -4
  185. package/dist/{init-Bb0avZeZ.js → init-Cu2znmIc.js} +5 -5
  186. package/dist/init-Cz5LAizN.js +2001 -0
  187. package/dist/init-D4WM3-Mn.cjs +18 -0
  188. package/dist/init-DMi2FGpf.cjs +424 -0
  189. package/dist/{init-lcaUSOOG.js → init-DPTJohPd.js} +1 -1
  190. package/dist/{init-BTYLMF9F2.cjs → init-DexLSprL2.cjs} +258 -61
  191. package/dist/init-DfKPgD21.js +106 -0
  192. package/dist/init-DgzRsI-C.js +141 -0
  193. package/dist/init-Dj4Cn7-P.js +4789 -0
  194. package/dist/init-DktAnYI0.cjs +2354 -0
  195. package/dist/{init-DFwhgert.cjs → init-DmyuM9Lo.cjs} +1 -1
  196. package/dist/{init-CX_zLXc6.js → init-IBnizp1U.js} +5 -5
  197. package/dist/init-MDKB6tGI2.cjs +4790 -0
  198. package/dist/{init-DbZ5byj42.js → init-TbB38KNt2.js} +258 -60
  199. package/dist/init-X6m_cqDy.js +2353 -0
  200. package/dist/{init-DvVgKCaP2.cjs → init-bzvl1JhF.cjs} +2 -2
  201. package/dist/{init-BgrY29gW.js → init-dsYkC_0B.js} +4 -4
  202. package/dist/{init-B5BsI3DR.cjs → init-kvn5FlPS.cjs} +7 -7
  203. package/dist/init-vfy9DW_E.js +119 -0
  204. package/dist/{init-BE_6Jyc4.js → init-w7xl6LsP.js} +3 -3
  205. package/dist/{init-DEsWVyn5.cjs → init-wgiBUmyW.cjs} +1 -1
  206. package/dist/{is-retriable-error-DWv_ob-f.js → is-retriable-error-CmFR20pe.js} +1 -1
  207. package/dist/{is-retriable-error-Dtb4JGjd.cjs → is-retriable-error-D2yo0_lS.cjs} +1 -1
  208. package/dist/jubjub-authoriser-A2c8vmkN.js +84 -0
  209. package/dist/jubjub-authoriser-D3ZDgzcF.cjs +85 -0
  210. package/dist/key-source-CcLTx8HK.js +2761 -0
  211. package/dist/key-source-D2tTAag-.cjs +806 -0
  212. package/dist/{key-value-store-DTX1quRS.js → key-value-store-DZcNDB3n.js} +1 -1
  213. package/dist/{key-value-store-B-XRIwaM.cjs → key-value-store-Htj4RgMe.cjs} +1 -1
  214. package/dist/keyDerivation-DcKRUCVh.cjs +274 -0
  215. package/dist/keyDerivation-QGesIMbS.js +4077 -0
  216. package/dist/{lace-context-FpU3iG3f.cjs → lace-context-BN0b_ury.cjs} +4 -4
  217. package/dist/{lace-context-BQvvxVLm.js → lace-context-DMRJ87Vg.js} +4 -4
  218. package/dist/lib-BC-62Byh.cjs +2359 -0
  219. package/dist/lib-JYqcAX0c.js +2354 -0
  220. package/dist/midnight-account-id.vo--Vcx34Xk.cjs +10 -0
  221. package/dist/midnight-account-id.vo-BuB8fiVO.js +5 -0
  222. package/dist/midnight-engine-B7D2hbHo.js +5 -0
  223. package/dist/midnight-engine-D5ikN_5F.cjs +6 -0
  224. package/dist/midnight-wallet-BOdFD6SX.cjs +24 -0
  225. package/dist/midnight-wallet-CAqZrNVe.js +18 -0
  226. package/dist/midnight.cjs +1412 -0
  227. package/dist/midnight.d.ts +28609 -0
  228. package/dist/midnight.js +1355 -0
  229. package/dist/modules-cardano-BiL9hoM3.js +996 -0
  230. package/dist/modules-cardano-UeXks3sd.cjs +1109 -0
  231. package/dist/node-relay-BOuvdZvC.cjs +49 -0
  232. package/dist/node-relay-CLtc5n1v.js +48 -0
  233. package/dist/outputs-5qdW8s-f.js +196 -0
  234. package/dist/outputs-BEM1GPMf.cjs +339 -0
  235. package/dist/{SodiumBip32Ed25519-BQUcrQWX.cjs → pbkdf2-B1veireP.cjs} +6 -411
  236. package/dist/pending-operation-CfTUNQVD.cjs +26 -0
  237. package/dist/pending-operation-Ljijb1Uh.js +21 -0
  238. package/dist/providers-1on_fwJO.cjs +364 -0
  239. package/dist/providers-C1MsxfMA.js +341 -0
  240. package/dist/redacted-4SJPqt-G.js +81 -0
  241. package/dist/redacted-DwxIDdIF.cjs +86 -0
  242. package/dist/{reselect-DPML1uFN.cjs → reselect-kP4DaAII.cjs} +1 -1
  243. package/dist/{retry-config-oNtfdyrG.cjs → retry-config-BGv5q5QM.cjs} +1 -1
  244. package/dist/{retry-config-VdbuqBsI.js → retry-config-Bu5Yn5ua.js} +1 -1
  245. package/dist/safe-buffer-CqGpSFCQ.js +43 -0
  246. package/dist/safe-buffer-DbXbwhUQ.cjs +48 -0
  247. package/dist/sdk-1SRu8Ype.cjs +1445 -0
  248. package/dist/sdk-BneJm7ey.js +1249 -0
  249. package/dist/sdk-init-9TG1ZvHF.cjs +3795 -0
  250. package/dist/sdk-init-Ce3mD-8F.js +1047 -0
  251. package/dist/secret-box-CSmRp6Tt.js +3777 -0
  252. package/dist/secret-box-ZfbYwBgS.cjs +6970 -0
  253. package/dist/send-proof-progress-DtAcrMP6.cjs +33 -0
  254. package/dist/send-proof-progress-Dx2cUz1B.js +22 -0
  255. package/dist/sha2-DaRJZOjk.cjs +390 -0
  256. package/dist/sha2-c4sB6peD.js +378 -0
  257. package/dist/side-effects-C3BhLrdP.js +768 -0
  258. package/dist/side-effects-DG0R-KFc.cjs +804 -0
  259. package/dist/sign-bitcoin-transaction-with-seed-C7vq9om8.js +147 -0
  260. package/dist/sign-bitcoin-transaction-with-seed-Ds1dwzan.cjs +158 -0
  261. package/dist/signer--2I6poMD.js +2 -0
  262. package/dist/signer-CX21Ups_.cjs +121 -0
  263. package/dist/signer-Cnn9q9oY.js +92 -0
  264. package/dist/signer-DbSxjk0F.cjs +7 -0
  265. package/dist/signer-factory-B5oFuUZ-.cjs +130 -0
  266. package/dist/signer-factory-BAt8FPNc.cjs +281 -0
  267. package/dist/signer-factory-BGE4nL4k.js +129 -0
  268. package/dist/signer-factory-C4pgsiJi.js +281 -0
  269. package/dist/{signer-factory-DySc1wRX.cjs → signer-factory-D95jQIPV.cjs} +9 -6
  270. package/dist/{signer-factory-D4HrwFPl.js → signer-factory-PrpsGX-8.js} +10 -6
  271. package/dist/{slice-BZTQgYSs.js → slice-B-xJcuT1.js} +4 -4
  272. package/dist/slice-B4QOYaOG.cjs +105 -0
  273. package/dist/{slice-CtIMw2YT.cjs → slice-B9QKuhi0.cjs} +3 -3
  274. package/dist/slice-BKnGkAkd.cjs +9031 -0
  275. package/dist/{slice-Bhwmqn1p.cjs → slice-Bf4enJKZ.cjs} +8 -8
  276. package/dist/{slice-DaNVz7_l.js → slice-ByNWnxKS.js} +8 -8
  277. package/dist/{slice-C2UDQrdt.js → slice-C1zOeseG.js} +449 -355
  278. package/dist/{slice-DFLyKRm5.cjs → slice-C4toRM6A.cjs} +2 -2
  279. package/dist/{slice-Cx4dULDA.cjs → slice-C8YVv4Qn.cjs} +1 -1
  280. package/dist/{slice-jnpOgiSZ.cjs → slice-CaMfviYu.cjs} +3 -3
  281. package/dist/{slice-DFvrwUur.js → slice-CgeRsYRg.js} +6 -6
  282. package/dist/slice-Cwt8jShq.js +9013 -0
  283. package/dist/{slice-zNEspZND.js → slice-D0VzpMbY.js} +2 -2
  284. package/dist/slice-D14F78Ca.js +87 -0
  285. package/dist/{slice-F6A1YKOF.cjs → slice-DLflttAu.cjs} +479 -366
  286. package/dist/{slice-C96EdeY1.js → slice-DcO-iNz2.js} +1 -1
  287. package/dist/{slice-C19quNWM.cjs → slice-DimtxfAT.cjs} +2 -2
  288. package/dist/{slice-KiNoGwD9.js → slice-DlTEqIoI.js} +1 -1
  289. package/dist/{slice-ws8PccRX.js → slice-Dn0WojD7.js} +3 -3
  290. package/dist/{slice-BLSxLmie.cjs → slice-Dongunf7.cjs} +4 -4
  291. package/dist/{slice-B6vPum19.js → slice-DpufJAjJ.js} +2 -2
  292. package/dist/{slice-exhhmucR.cjs → slice-DtitVc9L.cjs} +7 -7
  293. package/dist/{slice-Bjj2t2ut.cjs → slice-WMMMc1Xv.cjs} +2 -2
  294. package/dist/slice-a8VuIqzS.cjs +378 -0
  295. package/dist/slice-bRASyM-m.js +354 -0
  296. package/dist/{slice-CBFrgHSH.js → slice-hNyKbDry.js} +3 -3
  297. package/dist/{InMemoryKeyAgent-pyB2gA-N.cjs → src-BayYMIjw.cjs} +20 -8228
  298. package/dist/{InMemoryKeyAgent-D-3HejxN.js → src-CgINPlSx.js} +29 -4811
  299. package/dist/store-AUlTfcI_.js +37 -0
  300. package/dist/store-C7AneHEY.cjs +66 -0
  301. package/dist/submit-BuBCVi-l.cjs +87 -0
  302. package/dist/submit-D37lxFrK.js +70 -0
  303. package/dist/submit-bitcoin-tx-DFLnhidO.js +983 -0
  304. package/dist/submit-bitcoin-tx-sih2hSfb.cjs +1049 -0
  305. package/dist/{subtractValueQuantities-DfZg6oiG.js → subtractValueQuantities-BuDJVxq6.js} +3 -22
  306. package/dist/{subtractValueQuantities-C8qDTtgH.cjs → subtractValueQuantities-CqR606HV.cjs} +2 -32
  307. package/dist/{sync-operation-utils-BrQyWFS_.cjs → sync-operation-utils--Z_IQfyW.cjs} +0 -66
  308. package/dist/{sync-operation-utils-CAaCGvEN.js → sync-operation-utils-BimBpvI3.js} +1 -37
  309. package/dist/token-color.vo-CItgoOjw.js +26 -0
  310. package/dist/token-color.vo-Ca4hUXfh.cjs +37 -0
  311. package/dist/token-id-mapper-BVau2RXa.js +16 -0
  312. package/dist/token-id-mapper-CSeLzM4o.cjs +18 -0
  313. package/dist/{token-id-mapper-pDaTxpw2.js → token-id-mapper-ClBeIdJR.js} +2 -2
  314. package/dist/{token-id-mapper-DYcd8hhQ.cjs → token-id-mapper-D0wFdbOy.cjs} +2 -2
  315. package/dist/types-BhzypKMS.cjs +15 -0
  316. package/dist/types-DTE1ctDB.js +10 -0
  317. package/dist/types-DXSxXGz0.js +12 -0
  318. package/dist/types-Dls6Z5gV.cjs +23 -0
  319. package/dist/{util-P4PX2muj.cjs → util-D1YlKzrc.cjs} +2 -2
  320. package/dist/{util-CQSJU0wT.js → util-DHxtzUzY.js} +2 -2
  321. package/dist/{utils-Bv4OHT4S.cjs → utils-DYf4iZKX.cjs} +7 -1
  322. package/dist/{utils-DrtzChYN.js → utils-DcnoETEP.js} +2 -2
  323. package/dist/utils-Du0YXRcU.cjs +112 -0
  324. package/dist/utils-fF_rnZe3.js +65 -0
  325. package/dist/v8Signatures-ClGpA8mS.cjs +71 -0
  326. package/dist/{vote-delegation-tx-builder-69gOEkCB.cjs → vote-delegation-tx-builder-BjZxCOd3.cjs} +9 -8
  327. package/dist/{vote-delegation-tx-builder-BRJ_pf-c.js → vote-delegation-tx-builder-DRJwPXkD.js} +9 -7
  328. package/dist/watch-FGE4B_Ge.js +13056 -0
  329. package/dist/watch-imlsRZDp.cjs +52207 -0
  330. package/package.json +95 -3
  331. package/dist/Address-4KjeDt_x.cjs +0 -17269
  332. package/dist/Address-_VPkf7Xh.js +0 -17101
  333. package/dist/account-guards.stable-BKyYPj4z.cjs +0 -10
  334. package/dist/account-guards.stable-BdmQ43vC.js +0 -5
  335. package/dist/init-BR9ZIbED.cjs +0 -378
  336. package/dist/init-B_k1RUN_.cjs +0 -21
  337. package/dist/init-Bs3b5ZQH.js +0 -378
  338. package/dist/init-ChfcrHgG2.cjs +0 -4354
  339. package/dist/init-D1uUMMpG.js +0 -19
  340. package/dist/init-DV1OSZiK.js +0 -4352
  341. package/dist/modules-cardano-BINzpXpk.js +0 -5454
  342. package/dist/modules-cardano-Dt8OwoQb.cjs +0 -5640
  343. package/dist/slice-Caf98m0d2.js +0 -107
  344. package/dist/slice-PM6llajQ2.cjs +0 -125
  345. /package/dist/{BigIntMath-CoJWXt1h.cjs → BigIntMath-CBciEQn2.cjs} +0 -0
  346. /package/dist/{BigIntMath-BWUJOsOW.js → BigIntMath-X3EniYDo.js} +0 -0
  347. /package/dist/{ChainId-sdLmlIRk.cjs → ChainId-CNPSU9nn.cjs} +0 -0
  348. /package/dist/{ChainId-CKbm87yQ.js → ChainId-CeoG8Sov.js} +0 -0
  349. /package/dist/{_polyfill-node.process-4fnlkbBi.cjs → _polyfill-node.process-5UxyjoHG.cjs} +0 -0
  350. /package/dist/{account-id.vo-Xpgnu-av.cjs → account-id.vo-DYZBZQsz.cjs} +0 -0
  351. /package/dist/{account-id.vo-DP0BtOoF.js → account-id.vo-KDTWJ-W5.js} +0 -0
  352. /package/dist/{actions-BNagEO6m.cjs → actions-BnHFVSr_.cjs} +0 -0
  353. /package/dist/{actions-BWTyAr7B.js → actions-Cwj0ApZf.js} +0 -0
  354. /package/dist/{asyncoption-po7-RiA5.cjs → asyncoption-CYcZNBRM.cjs} +0 -0
  355. /package/dist/{asyncoption-CzIVH5Y1.js → asyncoption-DZQGfznq.js} +0 -0
  356. /package/dist/{bignum.vo-DhhZ9HP1.js → bignum.vo-Co6tMH2q.js} +0 -0
  357. /package/dist/{bignum.vo-CpkrIXjH.cjs → bignum.vo-Du-bpvar.cjs} +0 -0
  358. /package/dist/{blockchain-network-id.vo-CbgrAY_K.js → blockchain-network-id.vo-C6Jowh8t.js} +0 -0
  359. /package/dist/{blockchain-network-id.vo-5iC6Kffo.cjs → blockchain-network-id.vo-DEQ14dYj.cjs} +0 -0
  360. /package/dist/{composite-signer-factory-DABpCe1_.js → composite-signer-factory-D9RWY-1V.js} +0 -0
  361. /package/dist/{composite-signer-factory-BizuNPP7.cjs → composite-signer-factory-v4Pxn8bA.cjs} +0 -0
  362. /package/dist/{error-ggOihIfv.cjs → error-B6wj9nPv.cjs} +0 -0
  363. /package/dist/{error-DHKO2iS4.js → error-CvEYL98P.js} +0 -0
  364. /package/dist/{esm-browser-DnXNvpcn.cjs → esm-browser-CZbMeVod.cjs} +0 -0
  365. /package/dist/{esm-browser-BBVQuyQv.js → esm-browser-DpAD_RKv.js} +0 -0
  366. /package/dist/{feature-flag-key.vo-DoGK5Bfh.js → feature-flag-key.vo-9reURsOQ.js} +0 -0
  367. /package/dist/{feature-flag-key.vo-CP1Z9s8e.cjs → feature-flag-key.vo-KTIdnzYX.cjs} +0 -0
  368. /package/dist/{first-state-of-status-Bx4-QQ5m.cjs → first-state-of-status-9ICeDNSa.cjs} +0 -0
  369. /package/dist/{first-state-of-status-D7XzEuSa.js → first-state-of-status-BscbKj_t.js} +0 -0
  370. /package/dist/{init-4319psUJ.cjs → init-BT67pd9x.cjs} +0 -0
  371. /package/dist/{init-AFUM1TSg.js → init-CHk1fvJ2.js} +0 -0
  372. /package/dist/{init-ZX90nEJe2.js → init-DIyNx6DZ.js} +0 -0
  373. /package/dist/{init-CTQ2g6Xt.js → init-DtxxFaCx.js} +0 -0
  374. /package/dist/{init-Dt1Xifg_2.cjs → init-J8QobR93.cjs} +0 -0
  375. /package/dist/{init-BNewLCqw.cjs → init-xzZPlQwB.cjs} +0 -0
  376. /package/dist/{is-redux-persist-state-DxJSsvxB.cjs → is-redux-persist-state-C5luvPEH.cjs} +0 -0
  377. /package/dist/{is-redux-persist-state-Bl2n4VMr.js → is-redux-persist-state-CjcqyCoh.js} +0 -0
  378. /package/dist/{isNotNil-CZxBMfL5.js → isNotNil-Be7gCY0m.js} +0 -0
  379. /package/dist/{isNotNil-C_SO1tcC.cjs → isNotNil-CrYIUFry.cjs} +0 -0
  380. /package/dist/{logging-BvMDKgl0.js → logging-BAMMfn5j.js} +0 -0
  381. /package/dist/{logging-Bh9ikph3.cjs → logging-CbxgIX9V.cjs} +0 -0
  382. /package/dist/{metadatum-B-sxBnSY.cjs → metadatum-BGvFqGPt.cjs} +0 -0
  383. /package/dist/{metadatum-Ego4jVas.js → metadatum-BVocMYy_.js} +0 -0
  384. /package/dist/{repo-slice-BzZQUTj8.cjs → repo-slice-BB_W-6OL.cjs} +0 -0
  385. /package/dist/{repo-slice-vCcQJotS.js → repo-slice-BQlssw9M.js} +0 -0
  386. /package/dist/{reselect-BPkMzw3k.js → reselect-JIgawvPe.js} +0 -0
  387. /package/dist/{serializable-BxFUShKY.js → serializable-F7OtYl8d.js} +0 -0
  388. /package/dist/{serializable-DWgkHhv_.cjs → serializable-n3UoxbZc.cjs} +0 -0
  389. /package/dist/{slice-DY-DNtSi.js → slice-5dGBAz6w.js} +0 -0
  390. /package/dist/{slice-BEFoeqgr.cjs → slice-BzJgg9FS.cjs} +0 -0
  391. /package/dist/{src-CPmX4KUh.cjs → src-CeBNkonz.cjs} +0 -0
  392. /package/dist/{src-XOZXPKxe.js → src-Cv1ifqbe.js} +0 -0
  393. /package/dist/{time-CQPt4FdU.js → time-ByoKevdZ.js} +0 -0
  394. /package/dist/{time-Blvoyh9G.cjs → time-qD7edGU0.cjs} +0 -0
  395. /package/dist/{time.vo-Xln4yGBU.js → time.vo-C17-tYq3.js} +0 -0
  396. /package/dist/{time.vo-rwWwJzmP.cjs → time.vo-TmYE-_Y2.cjs} +0 -0
  397. /package/dist/{toEmpty-CzmoZVLN.cjs → toEmpty-Db6V94Mf.cjs} +0 -0
  398. /package/dist/{toEmpty-DzLd-ZCi.js → toEmpty-Djj-QbpI.js} +0 -0
  399. /package/dist/{token-id.vo-l8fuSpem.cjs → token-id.vo-CZ622zcZ.cjs} +0 -0
  400. /package/dist/{token-id.vo-DMKSaMlc.js → token-id.vo-IDI9C_Qm.js} +0 -0
  401. /package/dist/{types-B61DQoFW.js → types-By-XeXWg.js} +0 -0
  402. /package/dist/{types-CUC-Kcqh.cjs → types-Cn6WlQV6.cjs} +0 -0
  403. /package/dist/{util-BV3iGOrz.cjs → util-Cp1h58uD.cjs} +0 -0
  404. /package/dist/{util-BsQKLorV.js → util-DHppXj7U.js} +0 -0
  405. /package/dist/{util-selector-CKIyoAOz.js → util-selector-BWmHpo92.js} +0 -0
  406. /package/dist/{util-selector-C9H5RsNw.cjs → util-selector-glXkO-jR.cjs} +0 -0
  407. /package/dist/{while-active-CNXeLxre.js → while-active-CDBnUlQA.js} +0 -0
  408. /package/dist/{while-active-BsDWSNrO.cjs → while-active-I2TlHtm7.cjs} +0 -0
@@ -0,0 +1,293 @@
1
+ const require_bytes_vo = require("./bytes.vo-hecRu3YZ.cjs");
2
+ const require_providers = require("./providers-1on_fwJO.cjs");
3
+ const require_gated_call = require("./gated-call-DdDrxEq5.cjs");
4
+ const require_errors = require("./errors-BA3b8aVu.cjs");
5
+ const require_acc_module = require("./acc-module-NL_8mEHH.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 toRecord = (action) => {
20
+ const transaction = action.transaction ?? {};
21
+ return {
22
+ kind: action.__typename,
23
+ entryPoint: action.entryPoint ?? void 0,
24
+ txHash: String(transaction.hash ?? ""),
25
+ identifiers: (transaction.identifiers ?? []).map(String),
26
+ blockHeight: Number(transaction.block?.height ?? 0),
27
+ startIndex: transaction.zswapStartIndex == null ? void 0 : Number(transaction.zswapStartIndex),
28
+ endIndex: transaction.zswapEndIndex == null ? void 0 : Number(transaction.zswapEndIndex)
29
+ };
30
+ };
31
+ const stripHexPrefix = (address) => address.replace(/^0x/, "");
32
+ const HEX_BYTES_PATTERN = /^(?:[0-9a-fA-F]{2})*$/;
33
+ /**
34
+ * The bytes of a ledger event the indexer returned as hex. A payload that
35
+ * is not whole hex bytes is refused outright: decoding it leniently would
36
+ * hand the ledger a truncated event and lose the output it described.
37
+ */
38
+ const eventBytes = (raw) => {
39
+ if (!HEX_BYTES_PATTERN.test(raw)) throw new Error(`transactions query: ledger event is not hex: "${raw}"`);
40
+ return require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(raw));
41
+ };
42
+ /**
43
+ * Reads Passport contract data from a Midnight indexer: the current
44
+ * contract state through the midnight-js public data provider, the
45
+ * complete per-address action history through the indexer's
46
+ * contractActions subscription, and the shielded outputs a transaction
47
+ * created through the ledger events the indexer keeps per transaction.
48
+ */
49
+ const createIndexerClient = ({ indexerUrl, indexerWsUrl, fetchHttp = globalThis.fetch, createSocket = (url, protocol) => new WebSocket(url, protocol), createPublicDataProvider }) => {
50
+ const defaultProvider = async () => {
51
+ const { indexerPublicDataProvider } = await import("@midnight-ntwrk/midnight-js-indexer-public-data-provider");
52
+ return indexerPublicDataProvider({
53
+ queryURL: indexerUrl,
54
+ subscriptionURL: indexerWsUrl
55
+ });
56
+ };
57
+ let providerPromise;
58
+ const provider = async () => providerPromise ??= (createPublicDataProvider ?? defaultProvider)();
59
+ const postQuery = async (name, query, variables) => {
60
+ const response = await fetchHttp(indexerUrl, {
61
+ method: "POST",
62
+ headers: { "Content-Type": "application/json" },
63
+ body: JSON.stringify({
64
+ query,
65
+ variables
66
+ })
67
+ });
68
+ if (!response.ok) throw new Error(`${name} query failed: HTTP ${response.status} ${response.statusText}`);
69
+ const body = await response.json();
70
+ if (body.errors?.length) throw new Error(`${name} query: ${JSON.stringify(body.errors)}`);
71
+ return body;
72
+ };
73
+ const latestContractAction = async (address) => {
74
+ const action = (await postQuery("contractAction", `query($address: HexEncoded!) { contractAction(address: $address) { ${ACTION_FIELDS} } }`, { address: stripHexPrefix(address) })).data?.contractAction;
75
+ return action ? toRecord(action) : null;
76
+ };
77
+ const enumerateContractActions = async (address, { timeoutMs = 6e4, drainMs = 500 } = {}) => {
78
+ const frontier = await latestContractAction(address);
79
+ if (!frontier) return [];
80
+ return new Promise((resolve, reject) => {
81
+ const actions = [];
82
+ const socket = createSocket(indexerWsUrl, "graphql-transport-ws");
83
+ let drain;
84
+ const deadline = setTimeout(() => {
85
+ fail(/* @__PURE__ */ new Error(`contractActions replay timed out after ${timeoutMs}ms (${actions.length} received)`));
86
+ }, timeoutMs);
87
+ const finish = (error) => {
88
+ clearTimeout(deadline);
89
+ if (drain) clearTimeout(drain);
90
+ try {
91
+ socket.close();
92
+ } catch {}
93
+ if (error) reject(error);
94
+ else resolve(actions);
95
+ };
96
+ const fail = (error) => {
97
+ finish(error);
98
+ };
99
+ socket.addEventListener("error", (event) => {
100
+ fail(/* @__PURE__ */ new Error(`indexer websocket: ${event.message ?? "error"}`));
101
+ });
102
+ socket.addEventListener("open", () => {
103
+ socket.send(JSON.stringify({ type: "connection_init" }));
104
+ });
105
+ socket.addEventListener("message", (event) => {
106
+ const message = JSON.parse(String(event.data));
107
+ switch (message.type ?? "") {
108
+ case "connection_ack":
109
+ socket.send(JSON.stringify({
110
+ id: "1",
111
+ type: "subscribe",
112
+ payload: {
113
+ query: `subscription($address: HexEncoded!) {
114
+ contractActions(address: $address, offset: { height: 0 }) { ${ACTION_FIELDS} }
115
+ }`,
116
+ variables: { address: stripHexPrefix(address) }
117
+ }
118
+ }));
119
+ break;
120
+ case "next": {
121
+ if (message.payload?.errors?.length) {
122
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload.errors)}`));
123
+ break;
124
+ }
125
+ const action = message.payload?.data?.contractActions;
126
+ if (!action) break;
127
+ actions.push(toRecord(action));
128
+ if (actions.at(-1)?.txHash === frontier.txHash && !drain) drain = setTimeout(() => {
129
+ finish();
130
+ }, drainMs);
131
+ break;
132
+ }
133
+ case "error":
134
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload)}`));
135
+ break;
136
+ case "complete":
137
+ finish();
138
+ break;
139
+ default: break;
140
+ }
141
+ });
142
+ });
143
+ };
144
+ /**
145
+ * The indexer keeps, per transaction, the events the ledger emitted while
146
+ * applying it; a shielded output's event carries the commitment and the
147
+ * tree index the ledger assigned, so the index is read, never inferred
148
+ * from the transaction's position window.
149
+ */
150
+ const queryShieldedOutputs = async (txHash) => {
151
+ 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 ?? []);
152
+ if (events.length === 0) return [];
153
+ const { Event } = await import("@midnightntwrk/ledger-v9");
154
+ return events.flatMap(({ raw }) => {
155
+ const { content } = Event.deserialize(eventBytes(stripHexPrefix(raw ?? "")));
156
+ return isShieldedOutputEvent(content) ? [{
157
+ commitment: content.commitment.toLowerCase(),
158
+ ...content.contract === void 0 ? {} : { contractAddress: content.contract.toLowerCase() },
159
+ index: content.mtIndex
160
+ }] : [];
161
+ });
162
+ };
163
+ return {
164
+ queryContractState: async (address) => (await provider()).queryContractState(address),
165
+ enumerateContractActions,
166
+ queryShieldedOutputs
167
+ };
168
+ };
169
+ //#endregion
170
+ //#region ../../packages/module/passport-account/src/flows/account-call.ts
171
+ /** Contract aborts meaning the authorising key was rejected. */
172
+ const NOT_AUTHORISED_ABORTS = ["failed assert: invalid signature", "failed assert: device key"];
173
+ /**
174
+ * Raised by the caller checks in require_authorised and by the target
175
+ * check in _do_remove_device: the same string for two different failures.
176
+ */
177
+ const UNKNOWN_ENTRY_ABORT = "failed assert: unknown device entry";
178
+ /** Whether a contract abort message says the authorising key was rejected. */
179
+ const isNotAuthorisedAbort = (message) => NOT_AUTHORISED_ABORTS.some((abort) => message.includes(abort));
180
+ /**
181
+ * The decoded ledger state of the account at `address`, which must hold
182
+ * a live contract.
183
+ *
184
+ * @throws {@link AccountContractMissingError} when the indexer serves no
185
+ * contract at the address.
186
+ */
187
+ const queryAccountLedger = async (indexer, address) => {
188
+ const state = await indexer.queryContractState(address);
189
+ if (!state) throw new require_errors.AccountContractMissingError(`No live Account Custody Contract found at ${address}.`);
190
+ return require_acc_module.ledger(state.data);
191
+ };
192
+ /**
193
+ * Reads the account's ledger state through a fresh indexer client, which
194
+ * is returned with it so a flow can read the state again after a call.
195
+ */
196
+ const readAccountLedger = async (address, { indexerUrl, indexerWsUrl }) => {
197
+ const indexer = createIndexerClient({
198
+ indexerUrl,
199
+ indexerWsUrl
200
+ });
201
+ return {
202
+ indexer,
203
+ ledgerState: await queryAccountLedger(indexer, address)
204
+ };
205
+ };
206
+ /**
207
+ * Submits one gated call and reports the position it left the local
208
+ * device in. The handle is connected without the account encryption
209
+ * secret: the device and grant lifecycle circuits read no private state,
210
+ * so deriving it here would only widen the window the secret spends in
211
+ * memory. The successor commitment is computed against the epoch read
212
+ * before the call, which is the epoch the accepted call ran under: a
213
+ * gated call never changes device_epoch (it is only written at
214
+ * construction), so the pre-call epoch names the very entry the contract
215
+ * inserted.
216
+ */
217
+ const submitAccountCall = async ({ circuit, args, account, localUseCounter, ledgerState, onStage }, { passportAuthoriser, passportNetwork, passportProver, passportSponsor }) => {
218
+ const handle = await require_gated_call.connectAccountHandle(await require_providers.createMidnightProviders({
219
+ network: passportNetwork,
220
+ prover: passportProver,
221
+ sponsor: passportSponsor,
222
+ ...onStage ? { onStage } : {}
223
+ }), account.address);
224
+ const address = require_providers.AccAddress(account.address);
225
+ const advancedCounter = await require_gated_call.executeGatedCall({
226
+ handle,
227
+ authoriser: passportAuthoriser,
228
+ circuit,
229
+ args,
230
+ address,
231
+ ledgerState,
232
+ knownUseCounter: localUseCounter === void 0 ? void 0 : require_gated_call.UseCounter(BigInt(localUseCounter))
233
+ });
234
+ return {
235
+ advancedCounter,
236
+ localCommitmentHex: await passportAuthoriser.deviceCommitment(address, require_gated_call.DeviceEpoch(ledgerState.device_epoch), advancedCounter)
237
+ };
238
+ };
239
+ /**
240
+ * The devices list with the local device's row moved to the commitment it
241
+ * holds after an accepted call. An entry is single use: the call consumed
242
+ * the one the row carried and the contract inserted its successor, so
243
+ * leaving the row as it was would name an entry the on-chain set no
244
+ * longer holds. Only existing rows are rewritten, so a removal that
245
+ * dropped the local row does not resurrect it.
246
+ */
247
+ const withRefreshedLocalDevice = (devices, commitmentHex) => devices.map((device) => device.isLocal ? {
248
+ ...device,
249
+ commitmentHex
250
+ } : device);
251
+ //#endregion
252
+ Object.defineProperty(exports, "UNKNOWN_ENTRY_ABORT", {
253
+ enumerable: true,
254
+ get: function() {
255
+ return UNKNOWN_ENTRY_ABORT;
256
+ }
257
+ });
258
+ Object.defineProperty(exports, "createIndexerClient", {
259
+ enumerable: true,
260
+ get: function() {
261
+ return createIndexerClient;
262
+ }
263
+ });
264
+ Object.defineProperty(exports, "isNotAuthorisedAbort", {
265
+ enumerable: true,
266
+ get: function() {
267
+ return isNotAuthorisedAbort;
268
+ }
269
+ });
270
+ Object.defineProperty(exports, "queryAccountLedger", {
271
+ enumerable: true,
272
+ get: function() {
273
+ return queryAccountLedger;
274
+ }
275
+ });
276
+ Object.defineProperty(exports, "readAccountLedger", {
277
+ enumerable: true,
278
+ get: function() {
279
+ return readAccountLedger;
280
+ }
281
+ });
282
+ Object.defineProperty(exports, "submitAccountCall", {
283
+ enumerable: true,
284
+ get: function() {
285
+ return submitAccountCall;
286
+ }
287
+ });
288
+ Object.defineProperty(exports, "withRefreshedLocalDevice", {
289
+ enumerable: true,
290
+ get: function() {
291
+ return withRefreshedLocalDevice;
292
+ }
293
+ });
@@ -0,0 +1,3 @@
1
+ import "./_polyfill-buffer-patch-JcrfT1gU.js";
2
+ import { i as readAccountLedger } from "./account-call-CoCq3V55.js";
3
+ export { readAccountLedger };
@@ -0,0 +1,252 @@
1
+ import { n as HexBytes, t as ByteArray } from "./bytes.vo-CziaOsba.js";
2
+ import { i as AccAddress, t as createMidnightProviders } from "./providers-C1MsxfMA.js";
3
+ import { n as executeGatedCall, o as DeviceEpoch, s as UseCounter, t as connectAccountHandle } from "./gated-call-CcsuW9L5.js";
4
+ import { t as AccountContractMissingError } from "./errors-pkQdxW-7.js";
5
+ import { i as ledger } from "./acc-module-ur8CkBd1.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 toRecord = (action) => {
20
+ const transaction = action.transaction ?? {};
21
+ return {
22
+ kind: action.__typename,
23
+ entryPoint: action.entryPoint ?? void 0,
24
+ txHash: String(transaction.hash ?? ""),
25
+ identifiers: (transaction.identifiers ?? []).map(String),
26
+ blockHeight: Number(transaction.block?.height ?? 0),
27
+ startIndex: transaction.zswapStartIndex == null ? void 0 : Number(transaction.zswapStartIndex),
28
+ endIndex: transaction.zswapEndIndex == null ? void 0 : Number(transaction.zswapEndIndex)
29
+ };
30
+ };
31
+ const stripHexPrefix = (address) => address.replace(/^0x/, "");
32
+ const HEX_BYTES_PATTERN = /^(?:[0-9a-fA-F]{2})*$/;
33
+ /**
34
+ * The bytes of a ledger event the indexer returned as hex. A payload that
35
+ * is not whole hex bytes is refused outright: decoding it leniently would
36
+ * hand the ledger a truncated event and lose the output it described.
37
+ */
38
+ const eventBytes = (raw) => {
39
+ if (!HEX_BYTES_PATTERN.test(raw)) throw new Error(`transactions query: ledger event is not hex: "${raw}"`);
40
+ return ByteArray.fromHex(HexBytes(raw));
41
+ };
42
+ /**
43
+ * Reads Passport contract data from a Midnight indexer: the current
44
+ * contract state through the midnight-js public data provider, the
45
+ * complete per-address action history through the indexer's
46
+ * contractActions subscription, and the shielded outputs a transaction
47
+ * created through the ledger events the indexer keeps per transaction.
48
+ */
49
+ const createIndexerClient = ({ indexerUrl, indexerWsUrl, fetchHttp = globalThis.fetch, createSocket = (url, protocol) => new WebSocket(url, protocol), createPublicDataProvider }) => {
50
+ const defaultProvider = async () => {
51
+ const { indexerPublicDataProvider } = await import("@midnight-ntwrk/midnight-js-indexer-public-data-provider");
52
+ return indexerPublicDataProvider({
53
+ queryURL: indexerUrl,
54
+ subscriptionURL: indexerWsUrl
55
+ });
56
+ };
57
+ let providerPromise;
58
+ const provider = async () => providerPromise ??= (createPublicDataProvider ?? defaultProvider)();
59
+ const postQuery = async (name, query, variables) => {
60
+ const response = await fetchHttp(indexerUrl, {
61
+ method: "POST",
62
+ headers: { "Content-Type": "application/json" },
63
+ body: JSON.stringify({
64
+ query,
65
+ variables
66
+ })
67
+ });
68
+ if (!response.ok) throw new Error(`${name} query failed: HTTP ${response.status} ${response.statusText}`);
69
+ const body = await response.json();
70
+ if (body.errors?.length) throw new Error(`${name} query: ${JSON.stringify(body.errors)}`);
71
+ return body;
72
+ };
73
+ const latestContractAction = async (address) => {
74
+ const action = (await postQuery("contractAction", `query($address: HexEncoded!) { contractAction(address: $address) { ${ACTION_FIELDS} } }`, { address: stripHexPrefix(address) })).data?.contractAction;
75
+ return action ? toRecord(action) : null;
76
+ };
77
+ const enumerateContractActions = async (address, { timeoutMs = 6e4, drainMs = 500 } = {}) => {
78
+ const frontier = await latestContractAction(address);
79
+ if (!frontier) return [];
80
+ return new Promise((resolve, reject) => {
81
+ const actions = [];
82
+ const socket = createSocket(indexerWsUrl, "graphql-transport-ws");
83
+ let drain;
84
+ const deadline = setTimeout(() => {
85
+ fail(/* @__PURE__ */ new Error(`contractActions replay timed out after ${timeoutMs}ms (${actions.length} received)`));
86
+ }, timeoutMs);
87
+ const finish = (error) => {
88
+ clearTimeout(deadline);
89
+ if (drain) clearTimeout(drain);
90
+ try {
91
+ socket.close();
92
+ } catch {}
93
+ if (error) reject(error);
94
+ else resolve(actions);
95
+ };
96
+ const fail = (error) => {
97
+ finish(error);
98
+ };
99
+ socket.addEventListener("error", (event) => {
100
+ fail(/* @__PURE__ */ new Error(`indexer websocket: ${event.message ?? "error"}`));
101
+ });
102
+ socket.addEventListener("open", () => {
103
+ socket.send(JSON.stringify({ type: "connection_init" }));
104
+ });
105
+ socket.addEventListener("message", (event) => {
106
+ const message = JSON.parse(String(event.data));
107
+ switch (message.type ?? "") {
108
+ case "connection_ack":
109
+ socket.send(JSON.stringify({
110
+ id: "1",
111
+ type: "subscribe",
112
+ payload: {
113
+ query: `subscription($address: HexEncoded!) {
114
+ contractActions(address: $address, offset: { height: 0 }) { ${ACTION_FIELDS} }
115
+ }`,
116
+ variables: { address: stripHexPrefix(address) }
117
+ }
118
+ }));
119
+ break;
120
+ case "next": {
121
+ if (message.payload?.errors?.length) {
122
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload.errors)}`));
123
+ break;
124
+ }
125
+ const action = message.payload?.data?.contractActions;
126
+ if (!action) break;
127
+ actions.push(toRecord(action));
128
+ if (actions.at(-1)?.txHash === frontier.txHash && !drain) drain = setTimeout(() => {
129
+ finish();
130
+ }, drainMs);
131
+ break;
132
+ }
133
+ case "error":
134
+ fail(/* @__PURE__ */ new Error(`contractActions subscription: ${JSON.stringify(message.payload)}`));
135
+ break;
136
+ case "complete":
137
+ finish();
138
+ break;
139
+ default: break;
140
+ }
141
+ });
142
+ });
143
+ };
144
+ /**
145
+ * The indexer keeps, per transaction, the events the ledger emitted while
146
+ * applying it; a shielded output's event carries the commitment and the
147
+ * tree index the ledger assigned, so the index is read, never inferred
148
+ * from the transaction's position window.
149
+ */
150
+ const queryShieldedOutputs = async (txHash) => {
151
+ 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 ?? []);
152
+ if (events.length === 0) return [];
153
+ const { Event } = await import("@midnightntwrk/ledger-v9");
154
+ return events.flatMap(({ raw }) => {
155
+ const { content } = Event.deserialize(eventBytes(stripHexPrefix(raw ?? "")));
156
+ return isShieldedOutputEvent(content) ? [{
157
+ commitment: content.commitment.toLowerCase(),
158
+ ...content.contract === void 0 ? {} : { contractAddress: content.contract.toLowerCase() },
159
+ index: content.mtIndex
160
+ }] : [];
161
+ });
162
+ };
163
+ return {
164
+ queryContractState: async (address) => (await provider()).queryContractState(address),
165
+ enumerateContractActions,
166
+ queryShieldedOutputs
167
+ };
168
+ };
169
+ //#endregion
170
+ //#region ../../packages/module/passport-account/src/flows/account-call.ts
171
+ /** Contract aborts meaning the authorising key was rejected. */
172
+ const NOT_AUTHORISED_ABORTS = ["failed assert: invalid signature", "failed assert: device key"];
173
+ /**
174
+ * Raised by the caller checks in require_authorised and by the target
175
+ * check in _do_remove_device: the same string for two different failures.
176
+ */
177
+ const UNKNOWN_ENTRY_ABORT = "failed assert: unknown device entry";
178
+ /** Whether a contract abort message says the authorising key was rejected. */
179
+ const isNotAuthorisedAbort = (message) => NOT_AUTHORISED_ABORTS.some((abort) => message.includes(abort));
180
+ /**
181
+ * The decoded ledger state of the account at `address`, which must hold
182
+ * a live contract.
183
+ *
184
+ * @throws {@link AccountContractMissingError} when the indexer serves no
185
+ * contract at the address.
186
+ */
187
+ const queryAccountLedger = async (indexer, address) => {
188
+ const state = await indexer.queryContractState(address);
189
+ if (!state) throw new AccountContractMissingError(`No live Account Custody Contract found at ${address}.`);
190
+ return ledger(state.data);
191
+ };
192
+ /**
193
+ * Reads the account's ledger state through a fresh indexer client, which
194
+ * is returned with it so a flow can read the state again after a call.
195
+ */
196
+ const readAccountLedger = async (address, { indexerUrl, indexerWsUrl }) => {
197
+ const indexer = createIndexerClient({
198
+ indexerUrl,
199
+ indexerWsUrl
200
+ });
201
+ return {
202
+ indexer,
203
+ ledgerState: await queryAccountLedger(indexer, address)
204
+ };
205
+ };
206
+ /**
207
+ * Submits one gated call and reports the position it left the local
208
+ * device in. The handle is connected without the account encryption
209
+ * secret: the device and grant lifecycle circuits read no private state,
210
+ * so deriving it here would only widen the window the secret spends in
211
+ * memory. The successor commitment is computed against the epoch read
212
+ * before the call, which is the epoch the accepted call ran under: a
213
+ * gated call never changes device_epoch (it is only written at
214
+ * construction), so the pre-call epoch names the very entry the contract
215
+ * inserted.
216
+ */
217
+ const submitAccountCall = async ({ circuit, args, account, localUseCounter, ledgerState, onStage }, { passportAuthoriser, passportNetwork, passportProver, passportSponsor }) => {
218
+ const handle = await connectAccountHandle(await createMidnightProviders({
219
+ network: passportNetwork,
220
+ prover: passportProver,
221
+ sponsor: passportSponsor,
222
+ ...onStage ? { onStage } : {}
223
+ }), account.address);
224
+ const address = AccAddress(account.address);
225
+ const advancedCounter = await executeGatedCall({
226
+ handle,
227
+ authoriser: passportAuthoriser,
228
+ circuit,
229
+ args,
230
+ address,
231
+ ledgerState,
232
+ knownUseCounter: localUseCounter === void 0 ? void 0 : UseCounter(BigInt(localUseCounter))
233
+ });
234
+ return {
235
+ advancedCounter,
236
+ localCommitmentHex: await passportAuthoriser.deviceCommitment(address, DeviceEpoch(ledgerState.device_epoch), advancedCounter)
237
+ };
238
+ };
239
+ /**
240
+ * The devices list with the local device's row moved to the commitment it
241
+ * holds after an accepted call. An entry is single use: the call consumed
242
+ * the one the row carried and the contract inserted its successor, so
243
+ * leaving the row as it was would name an entry the on-chain set no
244
+ * longer holds. Only existing rows are rewritten, so a removal that
245
+ * dropped the local row does not resurrect it.
246
+ */
247
+ const withRefreshedLocalDevice = (devices, commitmentHex) => devices.map((device) => device.isLocal ? {
248
+ ...device,
249
+ commitmentHex
250
+ } : device);
251
+ //#endregion
252
+ export { submitAccountCall as a, readAccountLedger as i, isNotAuthorisedAbort as n, withRefreshedLocalDevice as o, queryAccountLedger as r, createIndexerClient as s, UNKNOWN_ENTRY_ABORT as t };
@@ -0,0 +1,4 @@
1
+ require("./chunk-9hOWP6kD.cjs");
2
+ require("./_polyfill-buffer-patch-BycQkEkK.cjs");
3
+ const require_account_call = require("./account-call-B7cF8ly4.cjs");
4
+ exports.readAccountLedger = require_account_call.readAccountLedger;
@@ -0,0 +1,41 @@
1
+ const require_Address = require("./Address-AMKTo-dA.cjs");
2
+ const require_outputs = require("./outputs-BEM1GPMf.cjs");
3
+ //#region ../../packages/module/blockchain-cardano/src/store/custody/custody-account-guard.ts
4
+ /**
5
+ * An ordinary builder was asked to spend from a Cardano custody account.
6
+ * Its UTxOs are locked by the custody script, and a key-signed build would
7
+ * be one the chain refuses; only the custody builder spends them.
8
+ */
9
+ var CardanoCustodyAccountRefusedError = class extends Error {
10
+ code = "custody-account";
11
+ constructor(accountId) {
12
+ super(`Account ${accountId} is a Cardano custody account; build its transactions with the custody builder`);
13
+ this.name = "CardanoCustodyAccountRefusedError";
14
+ }
15
+ };
16
+ const isCustodyAddress = (address) => {
17
+ const parsed = require_Address.Address.fromString(address);
18
+ return !!parsed && require_outputs.classifyCustodyAddress(parsed).kind !== "other";
19
+ };
20
+ /**
21
+ * Throws when any of the account's Cardano addresses pays a supported
22
+ * custody account validator, with any stake part or none.
23
+ *
24
+ * @throws `CardanoCustodyAccountRefusedError`
25
+ */
26
+ const refuseCustodyAccount = (accountId, addresses) => {
27
+ if (addresses.some((address) => address.accountId === accountId && address.blockchainName === "Cardano" && isCustodyAddress(address.address))) throw new CardanoCustodyAccountRefusedError(accountId);
28
+ };
29
+ //#endregion
30
+ //#region ../../packages/module/blockchain-cardano/src/store/account-guards.ts
31
+ /** Throws when an ordinary builder may not spend from the account. */
32
+ const refuseExtensionAccount = (accountId, addresses) => {
33
+ refuseCustodyAccount(accountId, addresses);
34
+ };
35
+ //#endregion
36
+ Object.defineProperty(exports, "refuseExtensionAccount", {
37
+ enumerable: true,
38
+ get: function() {
39
+ return refuseExtensionAccount;
40
+ }
41
+ });
@@ -0,0 +1,36 @@
1
+ import { t as Address } from "./Address-_c_-9hLC.js";
2
+ import { a as classifyCustodyAddress } from "./outputs-5qdW8s-f.js";
3
+ //#region ../../packages/module/blockchain-cardano/src/store/custody/custody-account-guard.ts
4
+ /**
5
+ * An ordinary builder was asked to spend from a Cardano custody account.
6
+ * Its UTxOs are locked by the custody script, and a key-signed build would
7
+ * be one the chain refuses; only the custody builder spends them.
8
+ */
9
+ var CardanoCustodyAccountRefusedError = class extends Error {
10
+ code = "custody-account";
11
+ constructor(accountId) {
12
+ super(`Account ${accountId} is a Cardano custody account; build its transactions with the custody builder`);
13
+ this.name = "CardanoCustodyAccountRefusedError";
14
+ }
15
+ };
16
+ const isCustodyAddress = (address) => {
17
+ const parsed = Address.fromString(address);
18
+ return !!parsed && classifyCustodyAddress(parsed).kind !== "other";
19
+ };
20
+ /**
21
+ * Throws when any of the account's Cardano addresses pays a supported
22
+ * custody account validator, with any stake part or none.
23
+ *
24
+ * @throws `CardanoCustodyAccountRefusedError`
25
+ */
26
+ const refuseCustodyAccount = (accountId, addresses) => {
27
+ if (addresses.some((address) => address.accountId === accountId && address.blockchainName === "Cardano" && isCustodyAddress(address.address))) throw new CardanoCustodyAccountRefusedError(accountId);
28
+ };
29
+ //#endregion
30
+ //#region ../../packages/module/blockchain-cardano/src/store/account-guards.ts
31
+ /** Throws when an ordinary builder may not spend from the account. */
32
+ const refuseExtensionAccount = (accountId, addresses) => {
33
+ refuseCustodyAccount(accountId, addresses);
34
+ };
35
+ //#endregion
36
+ export { refuseExtensionAccount as t };
@@ -1,4 +1,4 @@
1
- //#region ../../packages/contract/activities/src/activity-type.stable.ts
1
+ //#region ../../packages/contract/activities/src/activity-type.ts
2
2
  /** What an activity did, such as `Send`, `Receive`, `Rewards` or `Delegation`. */
3
3
  let ActivityType = /* @__PURE__ */ function(ActivityType) {
4
4
  ActivityType["Send"] = "Send";
@@ -11,6 +11,7 @@ let ActivityType = /* @__PURE__ */ function(ActivityType) {
11
11
  ActivityType["Registration"] = "Registration";
12
12
  ActivityType["Deregistration"] = "Deregistration";
13
13
  ActivityType["Withdrawal"] = "Withdrawal";
14
+ ActivityType["NightDesignation"] = "NightDesignation";
14
15
  return ActivityType;
15
16
  }({});
16
17
  //#endregion
@@ -1,4 +1,4 @@
1
- //#region ../../packages/contract/activities/src/activity-type.stable.ts
1
+ //#region ../../packages/contract/activities/src/activity-type.ts
2
2
  /** What an activity did, such as `Send`, `Receive`, `Rewards` or `Delegation`. */
3
3
  let ActivityType = /* @__PURE__ */ function(ActivityType) {
4
4
  ActivityType["Send"] = "Send";
@@ -11,6 +11,7 @@ let ActivityType = /* @__PURE__ */ function(ActivityType) {
11
11
  ActivityType["Registration"] = "Registration";
12
12
  ActivityType["Deregistration"] = "Deregistration";
13
13
  ActivityType["Withdrawal"] = "Withdrawal";
14
+ ActivityType["NightDesignation"] = "NightDesignation";
14
15
  return ActivityType;
15
16
  }({});
16
17
  //#endregion