@laceio/sdk 0.1.1 → 0.1.2-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-X1H9Gze6.cjs} +64 -14
  2. package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-bp2aMDhg.js} +23 -15
  3. package/dist/{_polyfill-buffer-patch-BnPVerlG.cjs → _polyfill-buffer-patch-CM8X7JiY.cjs} +21 -2
  4. package/dist/_polyfill-buffer-patch-yNxN4d5E.js +1467 -0
  5. package/dist/_web-crypto-random-bytes-Bo-GTcRS.js +197 -0
  6. package/dist/acc-module-4iIUv6My.cjs +27654 -0
  7. package/dist/acc-module-Cmj8EsIb.js +27624 -0
  8. package/dist/account-BOQruszJ.js +6 -0
  9. package/dist/account-BUOj4pYJ.cjs +11 -0
  10. package/dist/account-call-7wnopBq0.cjs +5 -0
  11. package/dist/account-call-B9d_2Xwi.js +4 -0
  12. package/dist/account-call-Bd4Rpbvt.cjs +323 -0
  13. package/dist/account-call-C3CkDqEC.js +276 -0
  14. package/dist/account-guards-BtjTGxDZ.cjs +42 -0
  15. package/dist/account-guards-D9Lu5T3W.js +36 -0
  16. package/dist/account-tokens-DvkOFVON.js +16 -0
  17. package/dist/account-tokens-nwcvwLu4.cjs +21 -0
  18. package/dist/{activity-type.stable-BJEfeLxL.cjs → activity-type-Ch6ljxBy.cjs} +2 -1
  19. package/dist/{activity-type.stable-C76_hWd7.js → activity-type-GsJGWs-3.js} +2 -1
  20. package/dist/address-B9ntKL8K.js +13761 -0
  21. package/dist/address-BXp-mY8H.cjs +11270 -0
  22. package/dist/{address-book-address-validator-DIUolI-s.js → address-book-address-validator-0J9XAADH.js} +2 -2
  23. package/dist/address-book-address-validator-DK0dnsRS.cjs +41 -0
  24. package/dist/address-book-address-validator-Di_ywo8M.js +39 -0
  25. package/dist/{address-book-address-validator-DNwQGlOB.cjs → address-book-address-validator-Dte_YQ2L.cjs} +2 -2
  26. package/dist/artefact-loader-BWWYAD7E.cjs +183 -0
  27. package/dist/artefact-loader-Dik4HIfv.js +160 -0
  28. package/dist/auto-dismiss-failure-on-success-C-qoJuid.cjs +37 -0
  29. package/dist/auto-dismiss-failure-on-success-s8MGDEIu.js +31 -0
  30. package/dist/bip32-D6wd_QMn.cjs +3851 -0
  31. package/dist/bitcoin-data-provider-BYPSmuZS.js +21 -0
  32. package/dist/bitcoin-data-provider-w1oEDSU3.cjs +26 -0
  33. package/dist/bitcoin.cjs +45 -0
  34. package/dist/bitcoin.d.ts +29906 -1
  35. package/dist/bitcoin.js +20 -0
  36. package/dist/{blockfrost-tx-submit-provider-DPTrapz-.js → blockfrost-tx-submit-provider-CBWQ0wK9.js} +5 -157
  37. package/dist/{blockfrost-tx-submit-provider-BAIzV5o3.cjs → blockfrost-tx-submit-provider-CLNQ5ycR.cjs} +3 -167
  38. package/dist/bn-d3nSOIf7.cjs +2553 -0
  39. package/dist/browser-B1eMbDwh.js +7468 -0
  40. package/dist/bytes.vo-BB7_4JK6.js +23 -0
  41. package/dist/bytes.vo-BNRquqaO.cjs +34 -0
  42. package/dist/cardano-DfPwhwm-.js +3 -0
  43. package/dist/{cardano-network-id.vo-DSxrFk9S.cjs → cardano-network-id.vo-BEDPn6Li.cjs} +1 -1
  44. package/dist/{cardano-network-id.vo-CK1tNQDg.js → cardano-network-id.vo-Cfpvbod9.js} +1 -1
  45. package/dist/cardano.cjs +22 -18
  46. package/dist/cardano.d.ts +16962 -1716
  47. package/dist/cardano.js +16 -11
  48. package/dist/client-DXBLHk7K.cjs +808 -0
  49. package/dist/codecs-Cswkg7Tm.cjs +4051 -0
  50. package/dist/codecs-Dc1Krpbt.js +3903 -0
  51. package/dist/{const-C84qHkjp.js → const-BJfIK_G-.js} +4 -4
  52. package/dist/const-BhYOdznB.cjs +42 -0
  53. package/dist/const-BsnjG2_Q.cjs +32071 -0
  54. package/dist/const-CUnCl5U0.js +13 -0
  55. package/dist/{const-DXk2tFyv.js → const-CjmfjBP3.js} +1 -1
  56. package/dist/{const-BDEg2Trq.cjs → const-D-eZIS4n.cjs} +4 -4
  57. package/dist/const-D0CbQlo4.js +154 -0
  58. package/dist/{const-BY8B3_0_.cjs → const-iwzZEE_w.cjs} +1 -1
  59. package/dist/contract-1R86jhSw.js +171 -0
  60. package/dist/contract-MKLzYVkW.cjs +189 -0
  61. package/dist/create-add-accounts-Brqk84vF.js +102 -0
  62. package/dist/create-add-accounts-DzXIh7Ot.cjs +114 -0
  63. package/dist/{delegation-tx-builder-CRpLP6jH.cjs → delegation-tx-builder-Dof_0N_d.cjs} +6 -6
  64. package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-Dy3-2Auz.js} +5 -5
  65. package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CcLwyFpj.cjs} +6 -6
  66. package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-QkWW_gWl.js} +5 -5
  67. package/dist/device-commitment-hex.vo-5wFtQvDS.js +26 -0
  68. package/dist/device-commitment-hex.vo-CT3RmAug.cjs +31 -0
  69. package/dist/device-readers-CUHYoYOH.js +145 -0
  70. package/dist/device-readers-CdxS2btd.cjs +168 -0
  71. package/dist/device-readers-D_JZeNL2.cjs +8 -0
  72. package/dist/device-readers-DwSNCGPP.js +4 -0
  73. package/dist/dist-BMi5ZjEq.cjs +43175 -0
  74. package/dist/dist-BtIq4XFn.cjs +535 -0
  75. package/dist/dist-C3SHC_Ho.cjs +1394 -0
  76. package/dist/dist-CykEjYEX.cjs +3814 -0
  77. package/dist/dist-Dcsxh3be.cjs +3452 -0
  78. package/dist/dist-DqJfSlTd.cjs +4413 -0
  79. package/dist/dist-nTZ70qj7.cjs +1306 -0
  80. package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-BP5JMIKS.cjs} +6 -6
  81. package/dist/{earn-rewards-tx-builder-BDbTDZmD.js → earn-rewards-tx-builder-Cku4BmNU.js} +5 -5
  82. package/dist/enc-key-circuits-B7BjgUL9.js +13 -0
  83. package/dist/enc-key-circuits-BLrZrBVI.cjs +24 -0
  84. package/dist/english-Byb9M0E_.cjs +2057 -0
  85. package/dist/envelopes-BGoO_v8m.js +1621 -0
  86. package/dist/envelopes-CH25R-DN.cjs +1722 -0
  87. package/dist/errors-BIftM8ZN.cjs +688 -0
  88. package/dist/errors-DSq5wUwt.js +466 -0
  89. package/dist/esm-HBSUQw3w.js +384 -0
  90. package/dist/esm-LZuaZjMf.cjs +389 -0
  91. package/dist/experimental.cjs +7349 -0
  92. package/dist/experimental.d.ts +86279 -0
  93. package/dist/experimental.js +7184 -0
  94. package/dist/gated-call-CDCVZIK-.cjs +5 -0
  95. package/dist/gated-call-D-tT7P_t.js +722 -0
  96. package/dist/gated-call-D_VT2quk.js +4 -0
  97. package/dist/gated-call-DgJm1Mi_.cjs +787 -0
  98. package/dist/grant-circuits-DswmW3nI.cjs +71 -0
  99. package/dist/grant-circuits-Jxb5y1HW.js +42 -0
  100. package/dist/grant-rules-By07_eDi.js +6824 -0
  101. package/dist/grant-rules-BzVTWXS7.cjs +7099 -0
  102. package/dist/grant-spend-B3Md9L0n.js +215 -0
  103. package/dist/grant-spend-oWmzRsjH.cjs +217 -0
  104. package/dist/grant-status-B2y49iIu.js +2688 -0
  105. package/dist/grant-status-DOr3t_u8.cjs +2820 -0
  106. package/dist/grants-2BZ-qEVQ.js +5 -0
  107. package/dist/grants-BPoLSiMt.cjs +18 -0
  108. package/dist/grants-BoI5uwSF.cjs +272 -0
  109. package/dist/grants-CtofFu-e.js +213 -0
  110. package/dist/{group-cardano-addresses-by-account-B533oVXR.cjs → group-cardano-addresses-by-account-Bp0g4wEY.cjs} +3 -39
  111. package/dist/{group-cardano-addresses-by-account-RHKoEskR.js → group-cardano-addresses-by-account-SR8MMrZf.js} +5 -35
  112. package/dist/{guarded-transaction-signer-Bxl6_XNd.cjs → guarded-transaction-signer-MFpPg98D.cjs} +17 -18
  113. package/dist/{guarded-transaction-signer-CpKLj8Kp.js → guarded-transaction-signer-P6Rp1faj.js} +8 -15
  114. package/dist/hex-D9ITYbwt.cjs +263 -0
  115. package/dist/hex-mkXcV3pN.js +191 -0
  116. package/dist/http-client-B3N-TMxu.cjs +167 -0
  117. package/dist/http-client-TRlhDZGh.js +155 -0
  118. package/dist/identity-BMLuufva.cjs +263 -0
  119. package/dist/identity-DII6f-h7.js +233 -0
  120. package/dist/in-memory-wallet-integration-B2xzxORj.cjs +20741 -0
  121. package/dist/in-memory-wallet-integration-CBRiPjLO.js +130 -0
  122. package/dist/in-memory-wallet-integration-CULUB5Tf.cjs +240 -0
  123. package/dist/{in-memory-wallet-integration-D-qn65Kx.js → in-memory-wallet-integration-ChIOirMW.js} +5 -2
  124. package/dist/{in-memory-wallet-integration-Croiuopx.js → in-memory-wallet-integration-CljprQQV.js} +7 -104
  125. package/dist/{in-memory-wallet-integration-DVh9sRXa.cjs → in-memory-wallet-integration-Cm6P8sk6.cjs} +3 -2
  126. package/dist/in-memory-wallet-integration-TM9bBphA.js +20738 -0
  127. package/dist/{in-memory-wallet-integration-CnLYeX4-.cjs → in-memory-wallet-integration-t9I00R_V.cjs} +17 -108
  128. package/dist/index.cjs +84 -47
  129. package/dist/index.d.ts +37505 -10036
  130. package/dist/index.js +52 -24
  131. package/dist/{init-CLHuAMB-.js → init-0zzs9aqU.js} +4 -4
  132. package/dist/{init-U8c9yHYx.cjs → init-5KcGcBb5.cjs} +1 -1
  133. package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
  134. package/dist/init-B8U3ABhS.cjs +107 -0
  135. package/dist/init-BJn-8_hf.js +141 -0
  136. package/dist/init-BPU3j8sT.cjs +6 -0
  137. package/dist/init-BRzH6xu-2.cjs +2797 -0
  138. package/dist/init-BmzfDaKL.js +1142 -0
  139. package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
  140. package/dist/init-BpHTq2R5.js +105 -0
  141. package/dist/init-BpSITBfF.js +39 -0
  142. package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
  143. package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
  144. package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
  145. package/dist/init-C00gw1zi.js +422 -0
  146. package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
  147. package/dist/init-C5mYyFTv.js +3584 -0
  148. package/dist/{init-DcYY6zMD.js → init-C8URA2OX.js} +1 -1
  149. package/dist/init-CDkRynJa.js +2796 -0
  150. package/dist/{init-Cg9XdAru.js → init-CNM5m7M2.js} +4 -4
  151. package/dist/init-CR7BfztQ.cjs +18 -0
  152. package/dist/{init-CSHwHnfg.cjs → init-CSDpdu0Q.cjs} +2 -2
  153. package/dist/{init-aJHl-7AO.js → init-CX0AMQUn.js} +2 -2
  154. package/dist/{init-FMGDET-9.js → init-CfTbSEKy.js} +259 -60
  155. package/dist/{init-CR6tpw1B.js → init-Cigr_tKx.js} +47 -43
  156. package/dist/init-Clu8pxwQ.cjs +1181 -0
  157. package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
  158. package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
  159. package/dist/init-D8OeObDF.cjs +1141 -0
  160. package/dist/init-D9g1HXYf.cjs +40 -0
  161. package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
  162. package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
  163. package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
  164. package/dist/init-DGjXwWs2.cjs +143 -0
  165. package/dist/init-DHrCbpkW.cjs +121 -0
  166. package/dist/init-DRzJR02G.cjs +3585 -0
  167. package/dist/{init-B64zCLxG.cjs → init-DUF4ar8P.cjs} +4 -4
  168. package/dist/init-DlqJuHhl.js +119 -0
  169. package/dist/{init-y2Ra0vZP.js → init-Dnsv155v.js} +3 -3
  170. package/dist/init-DuYENxci.js +17 -0
  171. package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
  172. package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
  173. package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
  174. package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
  175. package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
  176. package/dist/init-GsT2AEa4.cjs +424 -0
  177. package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
  178. package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
  179. package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
  180. package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
  181. package/dist/init-c4l6r-o-.js +5 -0
  182. package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
  183. package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
  184. package/dist/init-qSEd_Spq.js +1182 -0
  185. package/dist/{init-anYu6XB7.cjs → init-rmt7-fQE.cjs} +2 -2
  186. package/dist/{init-C4Bkib9u.cjs → init-zU-_9Gsp.cjs} +67 -65
  187. package/dist/{is-retriable-error-BU0e3hVI.js → is-retriable-error-BUiVJDwH.js} +1 -1
  188. package/dist/{is-retriable-error-CeeuHqDa.cjs → is-retriable-error-Dpt860if.cjs} +1 -1
  189. package/dist/jubjub-authoriser-D7zDXu3V.js +86 -0
  190. package/dist/jubjub-authoriser-Dgu6o3Sv.cjs +87 -0
  191. package/dist/key-source-5oUBFiC7.cjs +583 -0
  192. package/dist/key-source-B08HukZg.js +2550 -0
  193. package/dist/keyDerivation-D3k9XyHg.js +4077 -0
  194. package/dist/keyDerivation-u0nBA93T.cjs +274 -0
  195. package/dist/{lace-context-CZcNHr4M.js → lace-context-BZciB9c7.js} +4 -4
  196. package/dist/{lace-context-fJTDghdp.cjs → lace-context-DgR6vLli.cjs} +4 -4
  197. package/dist/lib--iqvW4O_.js +2354 -0
  198. package/dist/lib-Yk6Upl5D.cjs +2359 -0
  199. package/dist/{libsodium-wrappers-UH0LaOUE.js → libsodium-wrappers-BhbOA8dQ.js} +3 -1647
  200. package/dist/midnight-account-id.vo-0x9X-r3l.cjs +10 -0
  201. package/dist/midnight-account-id.vo-DjCAGcqc.js +5 -0
  202. package/dist/midnight-engine-DpemplKO.js +5 -0
  203. package/dist/midnight-engine-xU1wotne.cjs +6 -0
  204. package/dist/midnight-wallet-DIsAlSn6.js +18 -0
  205. package/dist/midnight-wallet-XTZc2li7.cjs +24 -0
  206. package/dist/midnight.cjs +1408 -0
  207. package/dist/midnight.d.ts +28934 -0
  208. package/dist/midnight.js +1352 -0
  209. package/dist/modules-cardano-D9Gs2j60.cjs +1108 -0
  210. package/dist/modules-cardano-VIM8fKu-.js +995 -0
  211. package/dist/node-relay-DWe1U0w2.cjs +49 -0
  212. package/dist/node-relay-h4i5IlAQ.js +48 -0
  213. package/dist/outputs-Bd2yZVjx.js +720 -0
  214. package/dist/outputs-CJoQBIA2.cjs +990 -0
  215. package/dist/pbkdf2-CIW-oWrm.cjs +1337 -0
  216. package/dist/pending-operation-B0_P78Jo.cjs +26 -0
  217. package/dist/pending-operation-BIS6mpjB.js +21 -0
  218. package/dist/providers-FjhM47BH.cjs +388 -0
  219. package/dist/providers-WtiSuxFu.js +365 -0
  220. package/dist/redacted-BmE2aXqr.js +81 -0
  221. package/dist/redacted-CRZJLS3w.cjs +86 -0
  222. package/dist/{retry-config-DC5IMaH7.cjs → retry-config-BaCfVC1H.cjs} +1 -1
  223. package/dist/{retry-config-BcUmMS--.js → retry-config-Dmgt28wM.js} +1 -1
  224. package/dist/safe-buffer-B_vMqJWU.js +43 -0
  225. package/dist/safe-buffer-DYOwEfHB.cjs +48 -0
  226. package/dist/sdk-Cb-gZnS9.js +1241 -0
  227. package/dist/sdk-DffwmX8b.cjs +1439 -0
  228. package/dist/sdk-init-Bln9rFtn.js +4138 -0
  229. package/dist/sdk-init-CYViTJY_.cjs +3841 -0
  230. package/dist/{seam-cardano-CATqBEyK.js → seam-cardano-B_etH4F4.js} +1 -1
  231. package/dist/{bytes.vo-TgiwogWF.js → secret-box-DUR0ACYz.js} +3 -25
  232. package/dist/{bytes.vo-Ck5u40RA.cjs → secret-box-DrjLZuS1.cjs} +1 -35
  233. package/dist/send-proof-progress-C-ljq1x5.js +30 -0
  234. package/dist/send-proof-progress-vmsaSfbz.cjs +47 -0
  235. package/dist/side-effects-BnqYz7Nl.js +768 -0
  236. package/dist/side-effects-CngaeXi0.cjs +804 -0
  237. package/dist/sign-bitcoin-transaction-with-seed-D4z62-jV.js +147 -0
  238. package/dist/sign-bitcoin-transaction-with-seed-DsLYXnCY.cjs +158 -0
  239. package/dist/signer-3fk8lZtE.cjs +7 -0
  240. package/dist/signer-CsL28DrK.cjs +121 -0
  241. package/dist/signer-DGluibtn.js +92 -0
  242. package/dist/signer-RqB5pu3K.js +2 -0
  243. package/dist/signer-factory-BA7WFJVZ.js +282 -0
  244. package/dist/signer-factory-Cwd6o-lG.cjs +281 -0
  245. package/dist/{signer-factory-9URFliA5.js → signer-factory-DObB55D4.js} +6 -3
  246. package/dist/signer-factory-DhZiE03y.cjs +149 -0
  247. package/dist/{signer-factory-BWGUmnvm.cjs → signer-factory-Ds6G2AZk.cjs} +4 -3
  248. package/dist/signer-factory-hzSRaIw2.js +148 -0
  249. package/dist/{slice-CuHUaPZx.cjs → slice-7G2xxYKJ.cjs} +3 -3
  250. package/dist/{slice-DZmQJNV8.cjs → slice-B4CdYoPu.cjs} +2 -2
  251. package/dist/slice-BPNuHKfw.js +9091 -0
  252. package/dist/{slice-DGcNrbPR.cjs → slice-Bg6HEr3K.cjs} +4 -4
  253. package/dist/{slice-DtaO72qY.cjs → slice-Bs2aMERu.cjs} +3 -3
  254. package/dist/{slice-HeHCv3bl.cjs → slice-C34iOOUH.cjs} +7 -7
  255. package/dist/{slice-Do2R2CYW.cjs → slice-C9TT5KhY.cjs} +6 -6
  256. package/dist/{slice-eIwcwKHI.js → slice-CK07EBCo.js} +4 -4
  257. package/dist/{slice-CnyWevM9.js → slice-CU80pbiu.js} +3 -3
  258. package/dist/{slice-CobanYgn.js → slice-CwyYrh1H.js} +2 -2
  259. package/dist/slice-Czfp6t84.cjs +436 -0
  260. package/dist/{slice-d0p6-xj5.js → slice-D-9aPKG-.js} +6 -6
  261. package/dist/{slice-maaskdUn.js → slice-DBpJ2QGf.js} +6 -6
  262. package/dist/{slice-mxLQ_FeY.cjs → slice-DTZTiJle.cjs} +352 -39
  263. package/dist/{slice-zJ9XVYjZ.js → slice-Da426sf9.js} +1 -1
  264. package/dist/{slice-D11m2EKl.cjs → slice-DayJvMRD.cjs} +1 -1
  265. package/dist/slice-DnBWfA-k.cjs +9109 -0
  266. package/dist/{slice-oqm_r1cS.cjs → slice-DnG-yvpI.cjs} +2 -2
  267. package/dist/{slice-BNu73oBa.js → slice-DyNs7oWp.js} +2 -2
  268. package/dist/{slice-CB4SnzMm.js → slice-GwiiJRoq.js} +3 -3
  269. package/dist/slice-oWnc7YVD.js +412 -0
  270. package/dist/{slice-B2PhoWAg.js → slice-qt0uBExh.js} +325 -37
  271. package/dist/slice-t8Gzj55G2.cjs +106 -0
  272. package/dist/slice-t8Q1cHm-.js +88 -0
  273. package/dist/src-BDzYIksE.cjs +20637 -0
  274. package/dist/src-BFoefPv_.js +20755 -0
  275. package/dist/store-B1Lq3cEf.cjs +66 -0
  276. package/dist/store-DuBG8qh5.js +37 -0
  277. package/dist/submit-Bs77dPn_.cjs +413 -0
  278. package/dist/submit-DOv8Z0Vf.js +336 -0
  279. package/dist/submit-bitcoin-tx-D6oYgH5S.js +983 -0
  280. package/dist/submit-bitcoin-tx-goFuRL7K.cjs +1049 -0
  281. package/dist/{sync-operation-utils-BYXLO80m.js → sync-operation-utils-31iFLExW.js} +2 -38
  282. package/dist/{sync-operation-utils-SdPbwFoD.cjs → sync-operation-utils-COIZ66-I.cjs} +1 -67
  283. package/dist/token-id-mapper-Bnds3xKH.cjs +18 -0
  284. package/dist/{token-id-mapper-DsPAL6Nh.cjs → token-id-mapper-CVyQJUKY.cjs} +2 -2
  285. package/dist/token-id-mapper-CnKHQ8DV.js +16 -0
  286. package/dist/{token-id-mapper-B2ivlLv3.js → token-id-mapper-D29Ggv8h.js} +2 -2
  287. package/dist/tokens-Cevp7rdU.cjs +62 -0
  288. package/dist/tokens-Diw4MLRM.js +44 -0
  289. package/dist/types-B8uiJn-X.js +12 -0
  290. package/dist/types-BHC12eSa.js +33 -0
  291. package/dist/types-CJT6XF2c.js +10 -0
  292. package/dist/types-CLRUYpfe.cjs +23 -0
  293. package/dist/types-Cc3mC8u0.cjs +50 -0
  294. package/dist/types-DWbVZpnF.cjs +15 -0
  295. package/dist/unwrap-provider-result-BZSiwabU.js +32 -0
  296. package/dist/unwrap-provider-result-ZqfBsTkk.cjs +39 -0
  297. package/dist/{util-CGzqQ8IV.cjs → util-Bu4W5lF4.cjs} +1 -1
  298. package/dist/{util-BaLzwa32.js → util-Cp5cZkfK.js} +1 -1
  299. package/dist/{utils-o8aMjfln.js → utils-BfBEUvWA.js} +2 -2
  300. package/dist/utils-DFwzEvbv.js +65 -0
  301. package/dist/{utils-5JvjbqH3.cjs → utils-DsElZgCI.cjs} +7 -1
  302. package/dist/utils-IXxR-Djh.cjs +112 -0
  303. package/dist/v8Signatures-CO_Uloy7.cjs +71 -0
  304. package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-BsBSDmcX.js} +5 -5
  305. package/dist/{vote-delegation-tx-builder-BpEMSti4.cjs → vote-delegation-tx-builder-DSs8nybk.cjs} +6 -6
  306. package/dist/watch-CUEvcP-V.js +21997 -0
  307. package/dist/watch-DMF2s-II.cjs +52281 -0
  308. package/package.json +96 -4
  309. package/dist/account-guards.stable-B1DSSh9D.cjs +0 -10
  310. package/dist/account-guards.stable-JRQ5qx2V.js +0 -5
  311. package/dist/codecs-B7X9pAsK.cjs +0 -1945
  312. package/dist/codecs-CC1Xjntz.js +0 -1882
  313. package/dist/init-Bv53hpLM.js +0 -19
  314. package/dist/init-CRbjI7p1.js +0 -3494
  315. package/dist/init-DAna1KCg.cjs +0 -3495
  316. package/dist/init-DGe47B22.cjs +0 -364
  317. package/dist/init-DMtyvYfC.cjs +0 -21
  318. package/dist/init-TkPDD750.js +0 -363
  319. package/dist/modules-cardano-BDvuL4Xx.js +0 -5248
  320. package/dist/modules-cardano-D2G3De2P.cjs +0 -5432
  321. package/dist/slice-CGVHXHDt.cjs +0 -125
  322. package/dist/slice-DhvF7L6X.js +0 -107
  323. /package/dist/{account-id.vo-LvCBVn5r.cjs → account-id.vo-DwqFjK5u.cjs} +0 -0
  324. /package/dist/{account-id.vo-MYSI7YFm.js → account-id.vo-OPz2v-JZ.js} +0 -0
  325. /package/dist/{actions-DdGbj7c7.cjs → actions-B2BJ4RTy.cjs} +0 -0
  326. /package/dist/{actions-9QSQR-GB.js → actions-iLXdgL5Y.js} +0 -0
  327. /package/dist/{apply-vkey-witnesses-ClZbpk5w.js → apply-vkey-witnesses-BKx3lcs0.js} +0 -0
  328. /package/dist/{apply-vkey-witnesses-CLzVSWxl.cjs → apply-vkey-witnesses-ZnFS0jnJ.cjs} +0 -0
  329. /package/dist/{asyncoption-Cw07zPH7.js → asyncoption-CruEYOBI.js} +0 -0
  330. /package/dist/{asyncoption-DYoGuQfP.cjs → asyncoption-i0VbqVTq.cjs} +0 -0
  331. /package/dist/{bignum.vo-B0rK_PQ1.js → bignum.vo-CEXOIew0.js} +0 -0
  332. /package/dist/{bignum.vo-DsG3kNiZ.cjs → bignum.vo-hx2kuqlA.cjs} +0 -0
  333. /package/dist/{bip32ed25519-1ApqeAZk.cjs → bip32ed25519-B7Yat217.cjs} +0 -0
  334. /package/dist/{bip32ed25519-DetAdGwD.js → bip32ed25519-FQ8qvdcq.js} +0 -0
  335. /package/dist/{blake2b-DOEVc57D.js → blake2b-BiQTw3GC.js} +0 -0
  336. /package/dist/{blake2b-B9tftbvG.cjs → blake2b-DEeVUdKR.cjs} +0 -0
  337. /package/dist/{blockchain-network-id.vo-BXpZhvvQ.cjs → blockchain-network-id.vo-BAKEwGjG.cjs} +0 -0
  338. /package/dist/{blockchain-network-id.vo-DNRkuT5B.js → blockchain-network-id.vo-CiVykuqG.js} +0 -0
  339. /package/dist/{blockingWithLatestFrom-C5wp_uA-.js → blockingWithLatestFrom-Cd8c8EPG.js} +0 -0
  340. /package/dist/{blockingWithLatestFrom-DY8OPg0w.cjs → blockingWithLatestFrom-D8kBPBMX.cjs} +0 -0
  341. /package/dist/{cardano-network-id-to-network-type-CrZfUcyP.js → cardano-network-id-to-network-type-BWwzeEtM.js} +0 -0
  342. /package/dist/{cardano-network-id-to-network-type-BDTF-HmK.cjs → cardano-network-id-to-network-type-C0ufJOyE.cjs} +0 -0
  343. /package/dist/{cardano-tx-id.vo-BPhV-AmZ.cjs → cardano-tx-id.vo-TLjJZHCI.cjs} +0 -0
  344. /package/dist/{cardano-tx-id.vo-DF9NzZXk.js → cardano-tx-id.vo-eVnKuzlm.js} +0 -0
  345. /package/dist/{composite-signer-factory-_46QsNBz.js → composite-signer-factory-CR8YHA1y.js} +0 -0
  346. /package/dist/{composite-signer-factory-BpF1mIYA.cjs → composite-signer-factory-m5cVs9h_.cjs} +0 -0
  347. /package/dist/{error-CNIquqT5.cjs → error-Cb3EnD0u.cjs} +0 -0
  348. /package/dist/{error-BCp9NkPi.js → error-DIZOY2Lw.js} +0 -0
  349. /package/dist/{esm-browser-C93Q-EOI.js → esm-browser-MG97cre9.js} +0 -0
  350. /package/dist/{esm-browser-DTc9IK3D.cjs → esm-browser-bweqfBlL.cjs} +0 -0
  351. /package/dist/{feature-flag-key.vo-ofrB6ZVQ.js → feature-flag-key.vo-DN_-4-sG.js} +0 -0
  352. /package/dist/{feature-flag-key.vo-BPz-ZAp6.cjs → feature-flag-key.vo-RlfHL3hq.cjs} +0 -0
  353. /package/dist/{first-state-of-status-OROkXcRv.cjs → first-state-of-status-CbT7hPa4.cjs} +0 -0
  354. /package/dist/{first-state-of-status-DQnMT3ya.js → first-state-of-status-unPynOuM.js} +0 -0
  355. /package/dist/{init-Es3wHW7D.js → init-829HRYcz.js} +0 -0
  356. /package/dist/{init-CKipPE_c.js → init-A-VyGSNW2.js} +0 -0
  357. /package/dist/{init-DFQQ9dTW.cjs → init-Atisw4x2.cjs} +0 -0
  358. /package/dist/{init-C5CEZ1m0.cjs → init-BFcvPHL-.cjs} +0 -0
  359. /package/dist/{init-IAk_CkGa.cjs → init-BgNobbNq.cjs} +0 -0
  360. /package/dist/{init-cqN3uX2j.js → init-atCFur0v.js} +0 -0
  361. /package/dist/{is-redux-persist-state-CTn3WZVh.cjs → is-redux-persist-state-BCFnSm36.cjs} +0 -0
  362. /package/dist/{is-redux-persist-state-Cxcd0_bM.js → is-redux-persist-state-yBfq0h_E.js} +0 -0
  363. /package/dist/{key-value-store-8cMzeNyG.js → key-value-store--W3SrMaw.js} +0 -0
  364. /package/dist/{key-value-store-DUAepXQf.cjs → key-value-store-C2Xt5Emp.cjs} +0 -0
  365. /package/dist/{repo-slice-WxetRhMY.cjs → repo-slice-7X4AYYVm.cjs} +0 -0
  366. /package/dist/{repo-slice-DwyMhCR1.js → repo-slice-RxFm0zDZ.js} +0 -0
  367. /package/dist/{reselect-CRDqmQY9.cjs → reselect-Bd94u0K-.cjs} +0 -0
  368. /package/dist/{reselect-C06X06oX.js → reselect-CGoLzEPv.js} +0 -0
  369. /package/dist/{serializable-B8GahgE1.js → serializable-BHdKIgk3.js} +0 -0
  370. /package/dist/{serializable-CRdnFaLZ.cjs → serializable-BxHkoPdk.cjs} +0 -0
  371. /package/dist/{slice-D11FHQuQ.cjs → slice-BiRsDKOK.cjs} +0 -0
  372. /package/dist/{slice-Be7hj4Iy.js → slice-Bk0Sv05J.js} +0 -0
  373. /package/dist/{slice-FioKeHtA.cjs → slice-Dqw1ecum.cjs} +0 -0
  374. /package/dist/{slice-B87b52iM.js → slice-obCSLm1x.js} +0 -0
  375. /package/dist/{src-vq1wS9sZ.js → src-BlxEp6Mm.js} +0 -0
  376. /package/dist/{src-BTPIvlDI.cjs → src-Cqp0B2M_.cjs} +0 -0
  377. /package/dist/{time.vo-CQ8pSXz2.cjs → time.vo-D3wWRw9L.cjs} +0 -0
  378. /package/dist/{time.vo-DkYYGYp6.js → time.vo-tNheinXm.js} +0 -0
  379. /package/dist/{toEmpty-CgAl3097.js → toEmpty-8Zax1MPd.js} +0 -0
  380. /package/dist/{toEmpty-DAMmNB5r.cjs → toEmpty-CYAbupM4.cjs} +0 -0
  381. /package/dist/{token-id.vo-ClsroxHO.js → token-id.vo-Bvwhr3ZE.js} +0 -0
  382. /package/dist/{token-id.vo-BxG9TG0O.cjs → token-id.vo-DXv5uS9n.cjs} +0 -0
  383. /package/dist/{util-DxzlYNS5.js → util-C8a4fA9p.js} +0 -0
  384. /package/dist/{util-CmdAhheh.cjs → util-CzeB3hfa.cjs} +0 -0
  385. /package/dist/{util-selector-CcK-GAdE.js → util-selector-BSTsxgne.js} +0 -0
  386. /package/dist/{util-selector-BcAncU4L.cjs → util-selector-BWPH68_l.cjs} +0 -0
  387. /package/dist/{while-active-BpppWuCs.js → while-active-B0lWy_6l.js} +0 -0
  388. /package/dist/{while-active-Dhc2LwOm.cjs → while-active-Dsowp0Fi.cjs} +0 -0
@@ -0,0 +1,5 @@
1
+ import "./_polyfill-buffer-patch-yNxN4d5E.js";
2
+ import "./codecs-Dc1Krpbt.js";
3
+ import { i as granteePoint, n as assertIssueRules, r as circuitScope } from "./grant-rules-By07_eDi.js";
4
+ import { a as originHash, c as prepareRevokeGrant, i as issueGrantBinding, l as scopeArgs, n as deriveGrantId, o as prepareIssueGrant, r as grantObjectCommit, s as prepareRevokeAllGrants, t as K256_GRANT_ENVELOPE, u as scopeDigest } from "./grants-CtofFu-e.js";
5
+ export { K256_GRANT_ENVELOPE, assertIssueRules, circuitScope, deriveGrantId, grantObjectCommit, granteePoint, issueGrantBinding, originHash, prepareIssueGrant, prepareRevokeAllGrants, prepareRevokeGrant, scopeArgs, scopeDigest };
@@ -0,0 +1,18 @@
1
+ require("./rolldown-runtime-Br2OG8yv.cjs");
2
+ require("./_polyfill-buffer-patch-CM8X7JiY.cjs");
3
+ require("./codecs-Cswkg7Tm.cjs");
4
+ const require_grant_rules = require("./grant-rules-BzVTWXS7.cjs");
5
+ const require_grants = require("./grants-BoI5uwSF.cjs");
6
+ exports.K256_GRANT_ENVELOPE = require_grants.K256_GRANT_ENVELOPE;
7
+ exports.assertIssueRules = require_grant_rules.assertIssueRules;
8
+ exports.circuitScope = require_grant_rules.circuitScope;
9
+ exports.deriveGrantId = require_grants.deriveGrantId;
10
+ exports.grantObjectCommit = require_grants.grantObjectCommit;
11
+ exports.granteePoint = require_grant_rules.granteePoint;
12
+ exports.issueGrantBinding = require_grants.issueGrantBinding;
13
+ exports.originHash = require_grants.originHash;
14
+ exports.prepareIssueGrant = require_grants.prepareIssueGrant;
15
+ exports.prepareRevokeAllGrants = require_grants.prepareRevokeAllGrants;
16
+ exports.prepareRevokeGrant = require_grants.prepareRevokeGrant;
17
+ exports.scopeArgs = require_grants.scopeArgs;
18
+ exports.scopeDigest = require_grants.scopeDigest;
@@ -0,0 +1,272 @@
1
+ const require_bytes_vo = require("./bytes.vo-BNRquqaO.cjs");
2
+ const require_errors = require("./errors-BIftM8ZN.cjs");
3
+ const require_grant_rules = require("./grant-rules-BzVTWXS7.cjs");
4
+ const require_grant_circuits = require("./grant-circuits-DswmW3nI.cjs");
5
+ const require_acc_module = require("./acc-module-4iIUv6My.cjs");
6
+ //#region ../../packages/module/passport-account/src/acc/grants.ts
7
+ /** Domain tag of the origin hash; it fills its 32-byte pad exactly. */
8
+ const GRANT_ORIGIN_TAG = "midnight:account:grant:origin:v1";
9
+ const ORIGIN_TAG_LENGTH = 32;
10
+ const SCOPE_SALT_LENGTH = 32;
11
+ const GRANT_SLOT_COUNT = 256;
12
+ const SCOPE_ARG_COUNT = 16;
13
+ /**
14
+ * The signature envelope a secp256k1 grant is bound to: plain ECDSA over
15
+ * the SHA-256 digest of the challenge, the only envelope the contract
16
+ * admits for a spend grant.
17
+ */
18
+ const K256_GRANT_ENVELOPE = 0n;
19
+ /** Lays the scope out in the circuit's declaration order. */
20
+ const scopeArgs = (scope) => [
21
+ scope.opWithdrawUnshielded,
22
+ scope.opWithdrawShielded,
23
+ scope.opWithdrawShieldedToContract,
24
+ scope.read,
25
+ scope.color,
26
+ scope.recipientKind,
27
+ scope.recipient,
28
+ scope.maxCoinValue,
29
+ scope.perCallCap,
30
+ scope.cap,
31
+ scope.expiresAt,
32
+ scope.rpIdHash,
33
+ scope.readPkHash,
34
+ scope.windowLen,
35
+ scope.windowCap,
36
+ {
37
+ is_some: scope.caller !== void 0,
38
+ value: { bytes: scope.caller ?? require_grant_rules.zero32() }
39
+ }
40
+ ];
41
+ /**
42
+ * The salted digest of the plaintext scope, the single element through
43
+ * which the issue challenge binds the whole scope, produced by the
44
+ * contract's own pure circuit.
45
+ */
46
+ const scopeDigest = (scopeSalt, args) => require_acc_module.pureCircuits.derive_grant_scope_digest(scopeSalt, ...args);
47
+ /**
48
+ * The commitment the contract stores for a grant's object: the colour,
49
+ * recipient kind and value, and coin bound of its circuit scope, hidden
50
+ * under the scope salt, as lowercase hex, produced by the contract's own
51
+ * pure circuit.
52
+ */
53
+ const grantObjectCommit = (scopeSalt, scope) => require_bytes_vo.HexBytes.fromByteArray(require_acc_module.pureCircuits.derive_grant_object_commit(scopeSalt, scope.color, scope.recipientKind, scope.recipient, scope.maxCoinValue));
54
+ /**
55
+ * The origin hash that enters a grant id: SHA-256 of the origin tag padded
56
+ * to 32 bytes followed by the raw UTF-8 bytes of the client id. Computed
57
+ * off chain only, so no circuit exports it. For this module the client id
58
+ * is the relying party id of the consumer issuing the grant.
59
+ */
60
+ const originHash = async (clientId) => {
61
+ const encoder = new TextEncoder();
62
+ const tag = new Uint8Array(ORIGIN_TAG_LENGTH);
63
+ tag.set(encoder.encode(GRANT_ORIGIN_TAG));
64
+ const client = encoder.encode(clientId);
65
+ const preimage = new Uint8Array(tag.length + client.length);
66
+ preimage.set(tag);
67
+ preimage.set(client, tag.length);
68
+ return new Uint8Array(await crypto.subtle.digest("SHA-256", preimage));
69
+ };
70
+ /** A grant id from the bytes a derivation circuit returns. */
71
+ const grantIdOf = (id) => require_grant_rules.GrantId(require_bytes_vo.HexBytes.fromByteArray(id));
72
+ /**
73
+ * The identity of a grant: the contract's own commitment to the account,
74
+ * the grantee key, the origin hash and the slot, which keys the record in
75
+ * the grants map. Each grantee scheme has its own derivation, and a
76
+ * secp256k1 grant also binds its signature envelope, so the same key
77
+ * bytes never name the same grant under two schemes or two envelopes.
78
+ */
79
+ const deriveGrantId = ({ contractAddress, granteePublicKey, originHash: origin, slot }) => {
80
+ const self = { bytes: contractAddress };
81
+ switch (granteePublicKey.scheme) {
82
+ case "jubjub-schnorr": return grantIdOf(require_acc_module.pureCircuits.derive_grant_id_with_jubjub(self, granteePublicKey.point, origin, BigInt(slot)));
83
+ case "secp256k1-ecdsa": return grantIdOf(require_acc_module.pureCircuits.derive_grant_id_with_k256(self, granteePublicKey.point, K256_GRANT_ENVELOPE, origin, BigInt(slot)));
84
+ default: {
85
+ const unhandled = granteePublicKey;
86
+ throw new require_errors.GrantScopeInvalidError(`unsupported grantee scheme "${String(unhandled.scheme)}"`);
87
+ }
88
+ }
89
+ };
90
+ /**
91
+ * The first slot under which this grantee and origin have no active grant,
92
+ * with the id derived for it. The contract stores neither grantee nor
93
+ * slot, so the slot is found by deriving the id of each candidate and
94
+ * checking it against the roster. A revoked grant leaves a tombstone the
95
+ * contract lets a new grant overwrite, so its slot counts as free.
96
+ *
97
+ * @throws {@link GrantLimitReachedError} when every slot is taken.
98
+ */
99
+ const findFreeSlot = ({ contractAddress, grantee, originHash: origin, roster }) => {
100
+ const taken = new Set(roster.filter((record) => record.active).map((record) => record.id));
101
+ const granteePublicKey = require_grant_rules.granteePoint(grantee);
102
+ for (let candidate = 0; candidate < GRANT_SLOT_COUNT; candidate++) {
103
+ const slot = require_grant_rules.GrantSlot(candidate);
104
+ const grantId = deriveGrantId({
105
+ contractAddress,
106
+ granteePublicKey,
107
+ originHash: origin,
108
+ slot
109
+ });
110
+ if (!taken.has(grantId)) return {
111
+ slot,
112
+ grantId
113
+ };
114
+ }
115
+ throw new require_errors.GrantLimitReachedError("Every grant slot of this grantee under this origin is taken.");
116
+ };
117
+ /**
118
+ * Prepares `issue_grant_with_jubjub`: encodes and checks the scope,
119
+ * allocates the grantee's slot, derives the grant id and draws the scope
120
+ * salt. The call's arguments are the grant id, the scope in declaration
121
+ * order and the salt; the authoriser derives the scope digest it signs
122
+ * from those same arguments, and the preparation carries that digest for
123
+ * an authoriser that presents it ahead of the ceremony.
124
+ *
125
+ * @throws {@link GrantScopeInvalidError} when the scope is malformed or
126
+ * breaks an issue rule.
127
+ * @throws {@link GrantLimitReachedError} when the grantee has no free slot.
128
+ */
129
+ const prepareIssueGrant = ({ contractAddress, scope, originHash: origin, roster, randomBytes = (length) => crypto.getRandomValues(new Uint8Array(length)) }) => {
130
+ const encoded = require_grant_rules.circuitScope(scope);
131
+ require_grant_rules.assertIssueRules(encoded);
132
+ const { slot, grantId } = findFreeSlot({
133
+ contractAddress,
134
+ grantee: scope.grantee,
135
+ originHash: origin,
136
+ roster
137
+ });
138
+ const salt = randomBytes(SCOPE_SALT_LENGTH);
139
+ const args = scopeArgs(encoded);
140
+ return {
141
+ grantId,
142
+ slot,
143
+ scopeSalt: require_grant_rules.GrantScopeSalt(require_bytes_vo.HexBytes.fromByteArray(salt)),
144
+ scopeDigest: require_bytes_vo.HexBytes.fromByteArray(scopeDigest(salt, args)),
145
+ call: {
146
+ circuit: require_grant_circuits.ISSUE_GRANT_CIRCUIT,
147
+ args: [
148
+ require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(grantId)),
149
+ ...args,
150
+ salt
151
+ ]
152
+ }
153
+ };
154
+ };
155
+ /** Prepares `revoke_grant_with_jubjub` over one grant id. */
156
+ const prepareRevokeGrant = (grantId) => ({
157
+ circuit: require_grant_circuits.REVOKE_GRANT_CIRCUIT,
158
+ args: [require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(grantId))]
159
+ });
160
+ /** Prepares `revoke_all_grants_with_jubjub`, which takes no argument. */
161
+ const prepareRevokeAllGrants = () => ({
162
+ circuit: require_grant_circuits.REVOKE_ALL_GRANTS_CIRCUIT,
163
+ args: []
164
+ });
165
+ const SCOPE_ARG_KINDS = [
166
+ "boolean",
167
+ "boolean",
168
+ "boolean",
169
+ "boolean",
170
+ "bytes",
171
+ "bigint",
172
+ "bytes",
173
+ "bigint",
174
+ "bigint",
175
+ "bigint",
176
+ "bigint",
177
+ "bytes",
178
+ "bytes",
179
+ "bigint",
180
+ "bigint",
181
+ "caller"
182
+ ];
183
+ const isCaller = (value) => typeof value === "object" && value !== null && typeof value.is_some === "boolean" && value.value?.bytes instanceof Uint8Array;
184
+ const isScopeArgument = (value, kind) => {
185
+ switch (kind) {
186
+ case "boolean": return typeof value === "boolean";
187
+ case "bigint": return typeof value === "bigint";
188
+ case "bytes": return value instanceof Uint8Array;
189
+ case "caller": return isCaller(value);
190
+ }
191
+ };
192
+ const isScopeArgs = (values) => values.length === SCOPE_ARG_COUNT && values.every((value, index) => isScopeArgument(value, SCOPE_ARG_KINDS[index]));
193
+ /**
194
+ * Reads what the issue challenge binds out of the circuit's argument list
195
+ * as it reaches an authoriser: the grant id and the digest of the scope,
196
+ * derived here from the plaintext arguments and the salt so the signer
197
+ * binds the scope it was shown and nothing else.
198
+ *
199
+ * @throws an Error when the arguments are not a grant id, sixteen scope
200
+ * arguments and a scope salt.
201
+ */
202
+ const issueGrantBinding = (args) => {
203
+ const [grantId, ...rest] = args;
204
+ const scopeSalt = rest.at(-1);
205
+ const scope = rest.slice(0, -1);
206
+ if (!(grantId instanceof Uint8Array) || !(scopeSalt instanceof Uint8Array) || !isScopeArgs(scope)) throw new Error(`Circuit ${require_grant_circuits.ISSUE_GRANT_CIRCUIT} expects a grant id, ${SCOPE_ARG_COUNT} scope arguments and a scope salt`);
207
+ return {
208
+ grantId,
209
+ scopeDigest: scopeDigest(scopeSalt, scope)
210
+ };
211
+ };
212
+ //#endregion
213
+ Object.defineProperty(exports, "K256_GRANT_ENVELOPE", {
214
+ enumerable: true,
215
+ get: function() {
216
+ return K256_GRANT_ENVELOPE;
217
+ }
218
+ });
219
+ Object.defineProperty(exports, "deriveGrantId", {
220
+ enumerable: true,
221
+ get: function() {
222
+ return deriveGrantId;
223
+ }
224
+ });
225
+ Object.defineProperty(exports, "grantObjectCommit", {
226
+ enumerable: true,
227
+ get: function() {
228
+ return grantObjectCommit;
229
+ }
230
+ });
231
+ Object.defineProperty(exports, "issueGrantBinding", {
232
+ enumerable: true,
233
+ get: function() {
234
+ return issueGrantBinding;
235
+ }
236
+ });
237
+ Object.defineProperty(exports, "originHash", {
238
+ enumerable: true,
239
+ get: function() {
240
+ return originHash;
241
+ }
242
+ });
243
+ Object.defineProperty(exports, "prepareIssueGrant", {
244
+ enumerable: true,
245
+ get: function() {
246
+ return prepareIssueGrant;
247
+ }
248
+ });
249
+ Object.defineProperty(exports, "prepareRevokeAllGrants", {
250
+ enumerable: true,
251
+ get: function() {
252
+ return prepareRevokeAllGrants;
253
+ }
254
+ });
255
+ Object.defineProperty(exports, "prepareRevokeGrant", {
256
+ enumerable: true,
257
+ get: function() {
258
+ return prepareRevokeGrant;
259
+ }
260
+ });
261
+ Object.defineProperty(exports, "scopeArgs", {
262
+ enumerable: true,
263
+ get: function() {
264
+ return scopeArgs;
265
+ }
266
+ });
267
+ Object.defineProperty(exports, "scopeDigest", {
268
+ enumerable: true,
269
+ get: function() {
270
+ return scopeDigest;
271
+ }
272
+ });
@@ -0,0 +1,213 @@
1
+ import { n as HexBytes, t as ByteArray } from "./bytes.vo-BB7_4JK6.js";
2
+ import { C as GrantScopeInvalidError, g as GrantLimitReachedError } from "./errors-DSq5wUwt.js";
3
+ import { G as GrantScopeSalt, K as GrantId, W as GrantSlot, a as zero32, i as granteePoint, n as assertIssueRules, r as circuitScope } from "./grant-rules-By07_eDi.js";
4
+ import { i as REVOKE_GRANT_CIRCUIT, n as ISSUE_GRANT_CIRCUIT, r as REVOKE_ALL_GRANTS_CIRCUIT } from "./grant-circuits-Jxb5y1HW.js";
5
+ import { a as pureCircuits } from "./acc-module-Cmj8EsIb.js";
6
+ //#region ../../packages/module/passport-account/src/acc/grants.ts
7
+ /** Domain tag of the origin hash; it fills its 32-byte pad exactly. */
8
+ const GRANT_ORIGIN_TAG = "midnight:account:grant:origin:v1";
9
+ const ORIGIN_TAG_LENGTH = 32;
10
+ const SCOPE_SALT_LENGTH = 32;
11
+ const GRANT_SLOT_COUNT = 256;
12
+ const SCOPE_ARG_COUNT = 16;
13
+ /**
14
+ * The signature envelope a secp256k1 grant is bound to: plain ECDSA over
15
+ * the SHA-256 digest of the challenge, the only envelope the contract
16
+ * admits for a spend grant.
17
+ */
18
+ const K256_GRANT_ENVELOPE = 0n;
19
+ /** Lays the scope out in the circuit's declaration order. */
20
+ const scopeArgs = (scope) => [
21
+ scope.opWithdrawUnshielded,
22
+ scope.opWithdrawShielded,
23
+ scope.opWithdrawShieldedToContract,
24
+ scope.read,
25
+ scope.color,
26
+ scope.recipientKind,
27
+ scope.recipient,
28
+ scope.maxCoinValue,
29
+ scope.perCallCap,
30
+ scope.cap,
31
+ scope.expiresAt,
32
+ scope.rpIdHash,
33
+ scope.readPkHash,
34
+ scope.windowLen,
35
+ scope.windowCap,
36
+ {
37
+ is_some: scope.caller !== void 0,
38
+ value: { bytes: scope.caller ?? zero32() }
39
+ }
40
+ ];
41
+ /**
42
+ * The salted digest of the plaintext scope, the single element through
43
+ * which the issue challenge binds the whole scope, produced by the
44
+ * contract's own pure circuit.
45
+ */
46
+ const scopeDigest = (scopeSalt, args) => pureCircuits.derive_grant_scope_digest(scopeSalt, ...args);
47
+ /**
48
+ * The commitment the contract stores for a grant's object: the colour,
49
+ * recipient kind and value, and coin bound of its circuit scope, hidden
50
+ * under the scope salt, as lowercase hex, produced by the contract's own
51
+ * pure circuit.
52
+ */
53
+ const grantObjectCommit = (scopeSalt, scope) => HexBytes.fromByteArray(pureCircuits.derive_grant_object_commit(scopeSalt, scope.color, scope.recipientKind, scope.recipient, scope.maxCoinValue));
54
+ /**
55
+ * The origin hash that enters a grant id: SHA-256 of the origin tag padded
56
+ * to 32 bytes followed by the raw UTF-8 bytes of the client id. Computed
57
+ * off chain only, so no circuit exports it. For this module the client id
58
+ * is the relying party id of the consumer issuing the grant.
59
+ */
60
+ const originHash = async (clientId) => {
61
+ const encoder = new TextEncoder();
62
+ const tag = new Uint8Array(ORIGIN_TAG_LENGTH);
63
+ tag.set(encoder.encode(GRANT_ORIGIN_TAG));
64
+ const client = encoder.encode(clientId);
65
+ const preimage = new Uint8Array(tag.length + client.length);
66
+ preimage.set(tag);
67
+ preimage.set(client, tag.length);
68
+ return new Uint8Array(await crypto.subtle.digest("SHA-256", preimage));
69
+ };
70
+ /** A grant id from the bytes a derivation circuit returns. */
71
+ const grantIdOf = (id) => GrantId(HexBytes.fromByteArray(id));
72
+ /**
73
+ * The identity of a grant: the contract's own commitment to the account,
74
+ * the grantee key, the origin hash and the slot, which keys the record in
75
+ * the grants map. Each grantee scheme has its own derivation, and a
76
+ * secp256k1 grant also binds its signature envelope, so the same key
77
+ * bytes never name the same grant under two schemes or two envelopes.
78
+ */
79
+ const deriveGrantId = ({ contractAddress, granteePublicKey, originHash: origin, slot }) => {
80
+ const self = { bytes: contractAddress };
81
+ switch (granteePublicKey.scheme) {
82
+ case "jubjub-schnorr": return grantIdOf(pureCircuits.derive_grant_id_with_jubjub(self, granteePublicKey.point, origin, BigInt(slot)));
83
+ case "secp256k1-ecdsa": return grantIdOf(pureCircuits.derive_grant_id_with_k256(self, granteePublicKey.point, K256_GRANT_ENVELOPE, origin, BigInt(slot)));
84
+ default: {
85
+ const unhandled = granteePublicKey;
86
+ throw new GrantScopeInvalidError(`unsupported grantee scheme "${String(unhandled.scheme)}"`);
87
+ }
88
+ }
89
+ };
90
+ /**
91
+ * The first slot under which this grantee and origin have no active grant,
92
+ * with the id derived for it. The contract stores neither grantee nor
93
+ * slot, so the slot is found by deriving the id of each candidate and
94
+ * checking it against the roster. A revoked grant leaves a tombstone the
95
+ * contract lets a new grant overwrite, so its slot counts as free.
96
+ *
97
+ * @throws {@link GrantLimitReachedError} when every slot is taken.
98
+ */
99
+ const findFreeSlot = ({ contractAddress, grantee, originHash: origin, roster }) => {
100
+ const taken = new Set(roster.filter((record) => record.active).map((record) => record.id));
101
+ const granteePublicKey = granteePoint(grantee);
102
+ for (let candidate = 0; candidate < GRANT_SLOT_COUNT; candidate++) {
103
+ const slot = GrantSlot(candidate);
104
+ const grantId = deriveGrantId({
105
+ contractAddress,
106
+ granteePublicKey,
107
+ originHash: origin,
108
+ slot
109
+ });
110
+ if (!taken.has(grantId)) return {
111
+ slot,
112
+ grantId
113
+ };
114
+ }
115
+ throw new GrantLimitReachedError("Every grant slot of this grantee under this origin is taken.");
116
+ };
117
+ /**
118
+ * Prepares `issue_grant_with_jubjub`: encodes and checks the scope,
119
+ * allocates the grantee's slot, derives the grant id and draws the scope
120
+ * salt. The call's arguments are the grant id, the scope in declaration
121
+ * order and the salt; the authoriser derives the scope digest it signs
122
+ * from those same arguments, and the preparation carries that digest for
123
+ * an authoriser that presents it ahead of the ceremony.
124
+ *
125
+ * @throws {@link GrantScopeInvalidError} when the scope is malformed or
126
+ * breaks an issue rule.
127
+ * @throws {@link GrantLimitReachedError} when the grantee has no free slot.
128
+ */
129
+ const prepareIssueGrant = ({ contractAddress, scope, originHash: origin, roster, randomBytes = (length) => crypto.getRandomValues(new Uint8Array(length)) }) => {
130
+ const encoded = circuitScope(scope);
131
+ assertIssueRules(encoded);
132
+ const { slot, grantId } = findFreeSlot({
133
+ contractAddress,
134
+ grantee: scope.grantee,
135
+ originHash: origin,
136
+ roster
137
+ });
138
+ const salt = randomBytes(SCOPE_SALT_LENGTH);
139
+ const args = scopeArgs(encoded);
140
+ return {
141
+ grantId,
142
+ slot,
143
+ scopeSalt: GrantScopeSalt(HexBytes.fromByteArray(salt)),
144
+ scopeDigest: HexBytes.fromByteArray(scopeDigest(salt, args)),
145
+ call: {
146
+ circuit: ISSUE_GRANT_CIRCUIT,
147
+ args: [
148
+ ByteArray.fromHex(HexBytes(grantId)),
149
+ ...args,
150
+ salt
151
+ ]
152
+ }
153
+ };
154
+ };
155
+ /** Prepares `revoke_grant_with_jubjub` over one grant id. */
156
+ const prepareRevokeGrant = (grantId) => ({
157
+ circuit: REVOKE_GRANT_CIRCUIT,
158
+ args: [ByteArray.fromHex(HexBytes(grantId))]
159
+ });
160
+ /** Prepares `revoke_all_grants_with_jubjub`, which takes no argument. */
161
+ const prepareRevokeAllGrants = () => ({
162
+ circuit: REVOKE_ALL_GRANTS_CIRCUIT,
163
+ args: []
164
+ });
165
+ const SCOPE_ARG_KINDS = [
166
+ "boolean",
167
+ "boolean",
168
+ "boolean",
169
+ "boolean",
170
+ "bytes",
171
+ "bigint",
172
+ "bytes",
173
+ "bigint",
174
+ "bigint",
175
+ "bigint",
176
+ "bigint",
177
+ "bytes",
178
+ "bytes",
179
+ "bigint",
180
+ "bigint",
181
+ "caller"
182
+ ];
183
+ const isCaller = (value) => typeof value === "object" && value !== null && typeof value.is_some === "boolean" && value.value?.bytes instanceof Uint8Array;
184
+ const isScopeArgument = (value, kind) => {
185
+ switch (kind) {
186
+ case "boolean": return typeof value === "boolean";
187
+ case "bigint": return typeof value === "bigint";
188
+ case "bytes": return value instanceof Uint8Array;
189
+ case "caller": return isCaller(value);
190
+ }
191
+ };
192
+ const isScopeArgs = (values) => values.length === SCOPE_ARG_COUNT && values.every((value, index) => isScopeArgument(value, SCOPE_ARG_KINDS[index]));
193
+ /**
194
+ * Reads what the issue challenge binds out of the circuit's argument list
195
+ * as it reaches an authoriser: the grant id and the digest of the scope,
196
+ * derived here from the plaintext arguments and the salt so the signer
197
+ * binds the scope it was shown and nothing else.
198
+ *
199
+ * @throws an Error when the arguments are not a grant id, sixteen scope
200
+ * arguments and a scope salt.
201
+ */
202
+ const issueGrantBinding = (args) => {
203
+ const [grantId, ...rest] = args;
204
+ const scopeSalt = rest.at(-1);
205
+ const scope = rest.slice(0, -1);
206
+ if (!(grantId instanceof Uint8Array) || !(scopeSalt instanceof Uint8Array) || !isScopeArgs(scope)) throw new Error(`Circuit ${ISSUE_GRANT_CIRCUIT} expects a grant id, ${SCOPE_ARG_COUNT} scope arguments and a scope salt`);
207
+ return {
208
+ grantId,
209
+ scopeDigest: scopeDigest(scopeSalt, scope)
210
+ };
211
+ };
212
+ //#endregion
213
+ export { originHash as a, prepareRevokeGrant as c, issueGrantBinding as i, scopeArgs as l, deriveGrantId as n, prepareIssueGrant as o, grantObjectCommit as r, prepareRevokeAllGrants as s, K256_GRANT_ENVELOPE as t, scopeDigest as u };
@@ -1,38 +1,8 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-Br2OG8yv.cjs");
2
- const require_util = require("./util-CGzqQ8IV.cjs");
3
- const require_slice = require("./slice-DZmQJNV8.cjs");
4
- const require_activity_type_stable = require("./activity-type.stable-BJEfeLxL.cjs");
5
- let rxjs = require("rxjs");
2
+ const require_util = require("./util-Bu4W5lF4.cjs");
3
+ const require_activity_type = require("./activity-type-Ch6ljxBy.cjs");
6
4
  let lodash_groupBy = require("lodash/groupBy.js");
7
5
  lodash_groupBy = require_rolldown_runtime.__toESM(lodash_groupBy);
8
- //#region ../../packages/contract/failures/src/utils/auto-dismiss-failure-on-success.ts
9
- /**
10
- * RxJS operator that auto-dismisses a failure when an operation succeeds.
11
- *
12
- * This operator:
13
- * 1. Takes a failureId observable
14
- * 2. Checks if the failure exists in the store
15
- * 3. Only emits dismissFailure action if the failure actually exists
16
- *
17
- * This prevents unnecessary action dispatches when a failure has already been dismissed.
18
- *
19
- * @param selectFailureById$ - Observable of the selector function to check failure existence
20
- * @returns RxJS operator that emits dismissFailure actions only when failures exist
21
- *
22
- * @example
23
- * ```typescript
24
- * // In a side effect:
25
- * return operation$.pipe(
26
- * // ... operation logic ...
27
- * map(() => CardanoSyncFailureId('account-123')),
28
- * autoDismissFailureOnSuccess(selectFailureById$),
29
- * );
30
- * ```
31
- */
32
- const autoDismissFailureOnSuccess = (selectFailureById$) => (source) => source.pipe((0, rxjs.withLatestFrom)(selectFailureById$), (0, rxjs.filter)(([failureId, selectFailureById]) => {
33
- return selectFailureById(failureId) !== void 0;
34
- }), (0, rxjs.map)(([failureId]) => require_slice.failuresActions.failures.dismissFailure(failureId)));
35
- //#endregion
36
6
  //#region ../../packages/contract/cardano-context/src/value-objects/utxo-cache-key.vo.ts
37
7
  const compareRewardAccounts = (a, b) => a < b ? -1 : a > b ? 1 : 0;
38
8
  const UtxoCacheKey = (params) => `${params.topOnChainActivityId}:${[...params.stakeKeys].sort(compareRewardAccounts).join(",")}:n${params.accountAddressCount}`;
@@ -79,7 +49,7 @@ UtxoCacheKey.topOnChainActivityId = (key) => key?.split(":")[0];
79
49
  * for consumers that need to refresh on reward arrival (e.g. `rewardsSum`).
80
50
  */
81
51
  const getTopOnChainActivity = (activitiesByAccount, accountId, includeRewardActivities = false) => {
82
- const top = activitiesByAccount[accountId]?.find((activity) => activity.type !== require_activity_type_stable.ActivityType.Pending && (includeRewardActivities || activity.type !== require_activity_type_stable.ActivityType.Rewards));
52
+ const top = activitiesByAccount[accountId]?.find((activity) => activity.type !== require_activity_type.ActivityType.Pending && (includeRewardActivities || activity.type !== require_activity_type.ActivityType.Rewards));
83
53
  if (!top) return void 0;
84
54
  const cardano = top.blockchainSpecific?.Cardano;
85
55
  return {
@@ -133,12 +103,6 @@ Object.defineProperty(exports, "UtxoCacheKey", {
133
103
  return UtxoCacheKey;
134
104
  }
135
105
  });
136
- Object.defineProperty(exports, "autoDismissFailureOnSuccess", {
137
- enumerable: true,
138
- get: function() {
139
- return autoDismissFailureOnSuccess;
140
- }
141
- });
142
106
  Object.defineProperty(exports, "filterCardanoAddressesForNetwork", {
143
107
  enumerable: true,
144
108
  get: function() {
@@ -1,36 +1,6 @@
1
- import { s as isCardanoAddressOfSupportedNetwork } from "./util-BaLzwa32.js";
2
- import { t as failuresActions } from "./slice-CobanYgn.js";
3
- import { t as ActivityType } from "./activity-type.stable-C76_hWd7.js";
4
- import { filter, map, withLatestFrom } from "rxjs";
5
- import groupBy$1 from "lodash/groupBy.js";
6
- //#region ../../packages/contract/failures/src/utils/auto-dismiss-failure-on-success.ts
7
- /**
8
- * RxJS operator that auto-dismisses a failure when an operation succeeds.
9
- *
10
- * This operator:
11
- * 1. Takes a failureId observable
12
- * 2. Checks if the failure exists in the store
13
- * 3. Only emits dismissFailure action if the failure actually exists
14
- *
15
- * This prevents unnecessary action dispatches when a failure has already been dismissed.
16
- *
17
- * @param selectFailureById$ - Observable of the selector function to check failure existence
18
- * @returns RxJS operator that emits dismissFailure actions only when failures exist
19
- *
20
- * @example
21
- * ```typescript
22
- * // In a side effect:
23
- * return operation$.pipe(
24
- * // ... operation logic ...
25
- * map(() => CardanoSyncFailureId('account-123')),
26
- * autoDismissFailureOnSuccess(selectFailureById$),
27
- * );
28
- * ```
29
- */
30
- const autoDismissFailureOnSuccess = (selectFailureById$) => (source) => source.pipe(withLatestFrom(selectFailureById$), filter(([failureId, selectFailureById]) => {
31
- return selectFailureById(failureId) !== void 0;
32
- }), map(([failureId]) => failuresActions.failures.dismissFailure(failureId)));
33
- //#endregion
1
+ import { s as isCardanoAddressOfSupportedNetwork } from "./util-Cp5cZkfK.js";
2
+ import { t as ActivityType } from "./activity-type-GsJGWs-3.js";
3
+ import groupBy from "lodash/groupBy.js";
34
4
  //#region ../../packages/contract/cardano-context/src/value-objects/utxo-cache-key.vo.ts
35
5
  const compareRewardAccounts = (a, b) => a < b ? -1 : a > b ? 1 : 0;
36
6
  const UtxoCacheKey = (params) => `${params.topOnChainActivityId}:${[...params.stakeKeys].sort(compareRewardAccounts).join(",")}:n${params.accountAddressCount}`;
@@ -122,7 +92,7 @@ const getAccountAddresses = (addresses, accountId, chainId) => filterCardanoAddr
122
92
  * associated with those accounts.
123
93
  */
124
94
  const groupCardanoAddressesByAccount = (addresses, chainId) => {
125
- return groupBy$1(filterCardanoAddressesForNetwork(addresses, chainId), (addr) => addr.accountId);
95
+ return groupBy(filterCardanoAddressesForNetwork(addresses, chainId), (addr) => addr.accountId);
126
96
  };
127
97
  //#endregion
128
- export { UtxoCacheKey as a, getTopOnChainActivity as i, getAccountAddresses as n, autoDismissFailureOnSuccess as o, groupCardanoAddressesByAccount as r, filterCardanoAddressesForNetwork as t };
98
+ export { UtxoCacheKey as a, getTopOnChainActivity as i, getAccountAddresses as n, groupCardanoAddressesByAccount as r, filterCardanoAddressesForNetwork as t };