@laceio/sdk 0.1.1 → 0.1.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-CCjOn7NA.cjs} +42 -0
  2. package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-CIzdw18M.js} +1 -1
  3. package/dist/{_polyfill-buffer-patch-BnPVerlG.cjs → _polyfill-buffer-patch-CM8X7JiY.cjs} +21 -2
  4. package/dist/_polyfill-buffer-patch-yNxN4d5E.js +1467 -0
  5. package/dist/_web-crypto-random-bytes-Bo-GTcRS.js +197 -0
  6. package/dist/acc-module-4iIUv6My.cjs +27654 -0
  7. package/dist/acc-module-Cmj8EsIb.js +27624 -0
  8. package/dist/account-BOQruszJ.js +6 -0
  9. package/dist/account-BUOj4pYJ.cjs +11 -0
  10. package/dist/account-call-7wnopBq0.cjs +5 -0
  11. package/dist/account-call-B9d_2Xwi.js +4 -0
  12. package/dist/account-call-Bd4Rpbvt.cjs +323 -0
  13. package/dist/account-call-C3CkDqEC.js +276 -0
  14. package/dist/account-guards-BtjTGxDZ.cjs +42 -0
  15. package/dist/account-guards-D9Lu5T3W.js +36 -0
  16. package/dist/account-tokens-DvkOFVON.js +16 -0
  17. package/dist/account-tokens-nwcvwLu4.cjs +21 -0
  18. package/dist/{activity-type.stable-BJEfeLxL.cjs → activity-type-Ch6ljxBy.cjs} +2 -1
  19. package/dist/{activity-type.stable-C76_hWd7.js → activity-type-GsJGWs-3.js} +2 -1
  20. package/dist/address-B9ntKL8K.js +13761 -0
  21. package/dist/address-BXp-mY8H.cjs +11270 -0
  22. package/dist/{address-book-address-validator-DIUolI-s.js → address-book-address-validator-0J9XAADH.js} +2 -2
  23. package/dist/address-book-address-validator-DK0dnsRS.cjs +41 -0
  24. package/dist/address-book-address-validator-Di_ywo8M.js +39 -0
  25. package/dist/{address-book-address-validator-DNwQGlOB.cjs → address-book-address-validator-Dte_YQ2L.cjs} +2 -2
  26. package/dist/artefact-loader-BWWYAD7E.cjs +183 -0
  27. package/dist/artefact-loader-Dik4HIfv.js +160 -0
  28. package/dist/auto-dismiss-failure-on-success-C-qoJuid.cjs +37 -0
  29. package/dist/auto-dismiss-failure-on-success-s8MGDEIu.js +31 -0
  30. package/dist/bip32-D6wd_QMn.cjs +3851 -0
  31. package/dist/bitcoin-data-provider-BYPSmuZS.js +21 -0
  32. package/dist/bitcoin-data-provider-w1oEDSU3.cjs +26 -0
  33. package/dist/bitcoin.cjs +45 -0
  34. package/dist/bitcoin.d.ts +29906 -1
  35. package/dist/bitcoin.js +20 -0
  36. package/dist/{blockfrost-tx-submit-provider-DPTrapz-.js → blockfrost-tx-submit-provider-CBWQ0wK9.js} +5 -157
  37. package/dist/{blockfrost-tx-submit-provider-BAIzV5o3.cjs → blockfrost-tx-submit-provider-CLNQ5ycR.cjs} +3 -167
  38. package/dist/bn-d3nSOIf7.cjs +2553 -0
  39. package/dist/browser-B1eMbDwh.js +7468 -0
  40. package/dist/bytes.vo-BB7_4JK6.js +23 -0
  41. package/dist/bytes.vo-BNRquqaO.cjs +34 -0
  42. package/dist/cardano-DfPwhwm-.js +3 -0
  43. package/dist/{cardano-network-id.vo-DSxrFk9S.cjs → cardano-network-id.vo-BEDPn6Li.cjs} +1 -1
  44. package/dist/{cardano-network-id.vo-CK1tNQDg.js → cardano-network-id.vo-Cfpvbod9.js} +1 -1
  45. package/dist/cardano.cjs +22 -18
  46. package/dist/cardano.d.ts +16956 -1716
  47. package/dist/cardano.js +16 -11
  48. package/dist/client-DXBLHk7K.cjs +808 -0
  49. package/dist/codecs-Cswkg7Tm.cjs +4051 -0
  50. package/dist/codecs-Dc1Krpbt.js +3903 -0
  51. package/dist/{const-C84qHkjp.js → const-BJfIK_G-.js} +4 -4
  52. package/dist/const-BhYOdznB.cjs +42 -0
  53. package/dist/const-BsnjG2_Q.cjs +32071 -0
  54. package/dist/const-CUnCl5U0.js +13 -0
  55. package/dist/{const-DXk2tFyv.js → const-CjmfjBP3.js} +1 -1
  56. package/dist/{const-BDEg2Trq.cjs → const-D-eZIS4n.cjs} +4 -4
  57. package/dist/const-D0CbQlo4.js +154 -0
  58. package/dist/{const-BY8B3_0_.cjs → const-iwzZEE_w.cjs} +1 -1
  59. package/dist/contract-1R86jhSw.js +171 -0
  60. package/dist/contract-MKLzYVkW.cjs +189 -0
  61. package/dist/create-add-accounts-Brqk84vF.js +102 -0
  62. package/dist/create-add-accounts-DzXIh7Ot.cjs +114 -0
  63. package/dist/{delegation-tx-builder-CRpLP6jH.cjs → delegation-tx-builder-CCjiakoy.cjs} +6 -6
  64. package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-DZFjHDS8.js} +5 -5
  65. package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-Bf6xAYp4.js} +5 -5
  66. package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CQP35yex.cjs} +6 -6
  67. package/dist/device-commitment-hex.vo-5wFtQvDS.js +26 -0
  68. package/dist/device-commitment-hex.vo-CT3RmAug.cjs +31 -0
  69. package/dist/device-readers-CUHYoYOH.js +145 -0
  70. package/dist/device-readers-CdxS2btd.cjs +168 -0
  71. package/dist/device-readers-D_JZeNL2.cjs +8 -0
  72. package/dist/device-readers-DwSNCGPP.js +4 -0
  73. package/dist/dist-BMi5ZjEq.cjs +43175 -0
  74. package/dist/dist-BtIq4XFn.cjs +535 -0
  75. package/dist/dist-C3SHC_Ho.cjs +1394 -0
  76. package/dist/dist-CykEjYEX.cjs +3814 -0
  77. package/dist/dist-Dcsxh3be.cjs +3452 -0
  78. package/dist/dist-DqJfSlTd.cjs +4413 -0
  79. package/dist/dist-nTZ70qj7.cjs +1306 -0
  80. package/dist/{earn-rewards-tx-builder-BDbTDZmD.js → earn-rewards-tx-builder-Bsga3yFb.js} +5 -5
  81. package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-GuxofYns.cjs} +6 -6
  82. package/dist/enc-key-circuits-B7BjgUL9.js +13 -0
  83. package/dist/enc-key-circuits-BLrZrBVI.cjs +24 -0
  84. package/dist/english-Byb9M0E_.cjs +2057 -0
  85. package/dist/envelopes-BGoO_v8m.js +1621 -0
  86. package/dist/envelopes-CH25R-DN.cjs +1722 -0
  87. package/dist/errors-BIftM8ZN.cjs +688 -0
  88. package/dist/errors-DSq5wUwt.js +466 -0
  89. package/dist/esm-HBSUQw3w.js +384 -0
  90. package/dist/esm-LZuaZjMf.cjs +389 -0
  91. package/dist/experimental.cjs +7349 -0
  92. package/dist/experimental.d.ts +86273 -0
  93. package/dist/experimental.js +7184 -0
  94. package/dist/gated-call-CDCVZIK-.cjs +5 -0
  95. package/dist/gated-call-D-tT7P_t.js +722 -0
  96. package/dist/gated-call-D_VT2quk.js +4 -0
  97. package/dist/gated-call-DgJm1Mi_.cjs +787 -0
  98. package/dist/grant-circuits-DswmW3nI.cjs +71 -0
  99. package/dist/grant-circuits-Jxb5y1HW.js +42 -0
  100. package/dist/grant-rules-By07_eDi.js +6824 -0
  101. package/dist/grant-rules-BzVTWXS7.cjs +7099 -0
  102. package/dist/grant-spend-B3Md9L0n.js +215 -0
  103. package/dist/grant-spend-oWmzRsjH.cjs +217 -0
  104. package/dist/grant-status-B2y49iIu.js +2688 -0
  105. package/dist/grant-status-DOr3t_u8.cjs +2820 -0
  106. package/dist/grants-2BZ-qEVQ.js +5 -0
  107. package/dist/grants-BPoLSiMt.cjs +18 -0
  108. package/dist/grants-BoI5uwSF.cjs +272 -0
  109. package/dist/grants-CtofFu-e.js +213 -0
  110. package/dist/{group-cardano-addresses-by-account-B533oVXR.cjs → group-cardano-addresses-by-account-Bp0g4wEY.cjs} +3 -39
  111. package/dist/{group-cardano-addresses-by-account-RHKoEskR.js → group-cardano-addresses-by-account-SR8MMrZf.js} +5 -35
  112. package/dist/{guarded-transaction-signer-Bxl6_XNd.cjs → guarded-transaction-signer-MFpPg98D.cjs} +17 -18
  113. package/dist/{guarded-transaction-signer-CpKLj8Kp.js → guarded-transaction-signer-P6Rp1faj.js} +8 -15
  114. package/dist/hex-D9ITYbwt.cjs +263 -0
  115. package/dist/hex-mkXcV3pN.js +191 -0
  116. package/dist/http-client-B3N-TMxu.cjs +167 -0
  117. package/dist/http-client-TRlhDZGh.js +155 -0
  118. package/dist/identity-BMLuufva.cjs +263 -0
  119. package/dist/identity-DII6f-h7.js +233 -0
  120. package/dist/in-memory-wallet-integration-B2xzxORj.cjs +20741 -0
  121. package/dist/in-memory-wallet-integration-CBRiPjLO.js +130 -0
  122. package/dist/in-memory-wallet-integration-CULUB5Tf.cjs +240 -0
  123. package/dist/{in-memory-wallet-integration-D-qn65Kx.js → in-memory-wallet-integration-ChIOirMW.js} +5 -2
  124. package/dist/{in-memory-wallet-integration-Croiuopx.js → in-memory-wallet-integration-CljprQQV.js} +7 -104
  125. package/dist/{in-memory-wallet-integration-DVh9sRXa.cjs → in-memory-wallet-integration-Cm6P8sk6.cjs} +3 -2
  126. package/dist/in-memory-wallet-integration-TM9bBphA.js +20738 -0
  127. package/dist/{in-memory-wallet-integration-CnLYeX4-.cjs → in-memory-wallet-integration-t9I00R_V.cjs} +17 -108
  128. package/dist/index.cjs +84 -47
  129. package/dist/index.d.ts +37496 -10033
  130. package/dist/index.js +52 -24
  131. package/dist/{init-CLHuAMB-.js → init-0zzs9aqU.js} +4 -4
  132. package/dist/{init-U8c9yHYx.cjs → init-5KcGcBb5.cjs} +1 -1
  133. package/dist/init-8v_n8boO.js +1177 -0
  134. package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
  135. package/dist/init-B8U3ABhS.cjs +107 -0
  136. package/dist/init-BJn-8_hf.js +141 -0
  137. package/dist/init-BPU3j8sT.cjs +6 -0
  138. package/dist/init-BRzH6xu-2.cjs +2797 -0
  139. package/dist/init-BmzfDaKL.js +1142 -0
  140. package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
  141. package/dist/init-BpHTq2R5.js +105 -0
  142. package/dist/init-BpSITBfF.js +39 -0
  143. package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
  144. package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
  145. package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
  146. package/dist/init-C00gw1zi.js +422 -0
  147. package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
  148. package/dist/{init-DcYY6zMD.js → init-C8URA2OX.js} +1 -1
  149. package/dist/init-CDkRynJa.js +2796 -0
  150. package/dist/{init-Cg9XdAru.js → init-CNM5m7M2.js} +4 -4
  151. package/dist/init-CR7BfztQ.cjs +18 -0
  152. package/dist/{init-CSHwHnfg.cjs → init-CSDpdu0Q.cjs} +2 -2
  153. package/dist/{init-aJHl-7AO.js → init-CX0AMQUn.js} +2 -2
  154. package/dist/{init-FMGDET-9.js → init-CfTbSEKy.js} +259 -60
  155. package/dist/{init-CR6tpw1B.js → init-Cigr_tKx.js} +47 -43
  156. package/dist/init-CuW7rHNA.js +3584 -0
  157. package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
  158. package/dist/init-Cz0rz5fU.cjs +3585 -0
  159. package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
  160. package/dist/init-D8OeObDF.cjs +1141 -0
  161. package/dist/init-D9g1HXYf.cjs +40 -0
  162. package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
  163. package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
  164. package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
  165. package/dist/init-DGjXwWs2.cjs +143 -0
  166. package/dist/init-DHrCbpkW.cjs +121 -0
  167. package/dist/{init-B64zCLxG.cjs → init-DUF4ar8P.cjs} +4 -4
  168. package/dist/init-DlqJuHhl.js +119 -0
  169. package/dist/{init-y2Ra0vZP.js → init-Dnsv155v.js} +3 -3
  170. package/dist/init-DrRdf5sZ.cjs +1176 -0
  171. package/dist/init-DuYENxci.js +17 -0
  172. package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
  173. package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
  174. package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
  175. package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
  176. package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
  177. package/dist/init-GsT2AEa4.cjs +424 -0
  178. package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
  179. package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
  180. package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
  181. package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
  182. package/dist/init-c4l6r-o-.js +5 -0
  183. package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
  184. package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
  185. package/dist/{init-anYu6XB7.cjs → init-rmt7-fQE.cjs} +2 -2
  186. package/dist/{init-C4Bkib9u.cjs → init-zU-_9Gsp.cjs} +67 -65
  187. package/dist/{is-retriable-error-BU0e3hVI.js → is-retriable-error-BUiVJDwH.js} +1 -1
  188. package/dist/{is-retriable-error-CeeuHqDa.cjs → is-retriable-error-Dpt860if.cjs} +1 -1
  189. package/dist/jubjub-authoriser-D7zDXu3V.js +86 -0
  190. package/dist/jubjub-authoriser-Dgu6o3Sv.cjs +87 -0
  191. package/dist/key-source-5oUBFiC7.cjs +583 -0
  192. package/dist/key-source-B08HukZg.js +2550 -0
  193. package/dist/keyDerivation-D3k9XyHg.js +4077 -0
  194. package/dist/keyDerivation-u0nBA93T.cjs +274 -0
  195. package/dist/{lace-context-CZcNHr4M.js → lace-context-BZciB9c7.js} +4 -4
  196. package/dist/{lace-context-fJTDghdp.cjs → lace-context-DgR6vLli.cjs} +4 -4
  197. package/dist/lib--iqvW4O_.js +2354 -0
  198. package/dist/lib-Yk6Upl5D.cjs +2359 -0
  199. package/dist/{libsodium-wrappers-UH0LaOUE.js → libsodium-wrappers-BhbOA8dQ.js} +3 -1647
  200. package/dist/midnight-account-id.vo-0x9X-r3l.cjs +10 -0
  201. package/dist/midnight-account-id.vo-DjCAGcqc.js +5 -0
  202. package/dist/midnight-engine-DpemplKO.js +5 -0
  203. package/dist/midnight-engine-xU1wotne.cjs +6 -0
  204. package/dist/midnight-wallet-DIsAlSn6.js +18 -0
  205. package/dist/midnight-wallet-XTZc2li7.cjs +24 -0
  206. package/dist/midnight.cjs +1408 -0
  207. package/dist/midnight.d.ts +28934 -0
  208. package/dist/midnight.js +1352 -0
  209. package/dist/modules-cardano-B1nDUWqy.js +995 -0
  210. package/dist/modules-cardano-BYeYHrRm.cjs +1108 -0
  211. package/dist/node-relay-DWe1U0w2.cjs +49 -0
  212. package/dist/node-relay-h4i5IlAQ.js +48 -0
  213. package/dist/outputs-Bd2yZVjx.js +720 -0
  214. package/dist/outputs-CJoQBIA2.cjs +990 -0
  215. package/dist/pbkdf2-CIW-oWrm.cjs +1337 -0
  216. package/dist/pending-operation-B0_P78Jo.cjs +26 -0
  217. package/dist/pending-operation-BIS6mpjB.js +21 -0
  218. package/dist/providers-FjhM47BH.cjs +388 -0
  219. package/dist/providers-WtiSuxFu.js +365 -0
  220. package/dist/redacted-BmE2aXqr.js +81 -0
  221. package/dist/redacted-CRZJLS3w.cjs +86 -0
  222. package/dist/{retry-config-DC5IMaH7.cjs → retry-config-BaCfVC1H.cjs} +1 -1
  223. package/dist/{retry-config-BcUmMS--.js → retry-config-Dmgt28wM.js} +1 -1
  224. package/dist/safe-buffer-B_vMqJWU.js +43 -0
  225. package/dist/safe-buffer-DYOwEfHB.cjs +48 -0
  226. package/dist/sdk-Cb-gZnS9.js +1241 -0
  227. package/dist/sdk-DffwmX8b.cjs +1439 -0
  228. package/dist/sdk-init-Bln9rFtn.js +4138 -0
  229. package/dist/sdk-init-CYViTJY_.cjs +3841 -0
  230. package/dist/{seam-cardano-CATqBEyK.js → seam-cardano-B_etH4F4.js} +1 -1
  231. package/dist/{bytes.vo-TgiwogWF.js → secret-box-DUR0ACYz.js} +3 -25
  232. package/dist/{bytes.vo-Ck5u40RA.cjs → secret-box-DrjLZuS1.cjs} +1 -35
  233. package/dist/send-proof-progress-C-ljq1x5.js +30 -0
  234. package/dist/send-proof-progress-vmsaSfbz.cjs +47 -0
  235. package/dist/side-effects-BnqYz7Nl.js +768 -0
  236. package/dist/side-effects-CngaeXi0.cjs +804 -0
  237. package/dist/sign-bitcoin-transaction-with-seed-D4z62-jV.js +147 -0
  238. package/dist/sign-bitcoin-transaction-with-seed-DsLYXnCY.cjs +158 -0
  239. package/dist/signer-3fk8lZtE.cjs +7 -0
  240. package/dist/signer-CsL28DrK.cjs +121 -0
  241. package/dist/signer-DGluibtn.js +92 -0
  242. package/dist/signer-RqB5pu3K.js +2 -0
  243. package/dist/signer-factory-BA7WFJVZ.js +282 -0
  244. package/dist/signer-factory-Cwd6o-lG.cjs +281 -0
  245. package/dist/{signer-factory-9URFliA5.js → signer-factory-DObB55D4.js} +6 -3
  246. package/dist/signer-factory-DhZiE03y.cjs +149 -0
  247. package/dist/{signer-factory-BWGUmnvm.cjs → signer-factory-Ds6G2AZk.cjs} +4 -3
  248. package/dist/signer-factory-hzSRaIw2.js +148 -0
  249. package/dist/{slice-CuHUaPZx.cjs → slice-7G2xxYKJ.cjs} +3 -3
  250. package/dist/{slice-DZmQJNV8.cjs → slice-B4CdYoPu.cjs} +2 -2
  251. package/dist/slice-BPNuHKfw.js +9091 -0
  252. package/dist/{slice-DGcNrbPR.cjs → slice-Bg6HEr3K.cjs} +4 -4
  253. package/dist/{slice-DtaO72qY.cjs → slice-Bs2aMERu.cjs} +3 -3
  254. package/dist/{slice-HeHCv3bl.cjs → slice-C34iOOUH.cjs} +7 -7
  255. package/dist/{slice-Do2R2CYW.cjs → slice-C9TT5KhY.cjs} +6 -6
  256. package/dist/{slice-eIwcwKHI.js → slice-CK07EBCo.js} +4 -4
  257. package/dist/{slice-CnyWevM9.js → slice-CU80pbiu.js} +3 -3
  258. package/dist/{slice-CobanYgn.js → slice-CwyYrh1H.js} +2 -2
  259. package/dist/slice-Czfp6t84.cjs +436 -0
  260. package/dist/{slice-d0p6-xj5.js → slice-D-9aPKG-.js} +6 -6
  261. package/dist/{slice-maaskdUn.js → slice-DBpJ2QGf.js} +6 -6
  262. package/dist/{slice-mxLQ_FeY.cjs → slice-DTZTiJle.cjs} +352 -39
  263. package/dist/{slice-zJ9XVYjZ.js → slice-Da426sf9.js} +1 -1
  264. package/dist/{slice-D11m2EKl.cjs → slice-DayJvMRD.cjs} +1 -1
  265. package/dist/slice-DnBWfA-k.cjs +9109 -0
  266. package/dist/{slice-oqm_r1cS.cjs → slice-DnG-yvpI.cjs} +2 -2
  267. package/dist/{slice-BNu73oBa.js → slice-DyNs7oWp.js} +2 -2
  268. package/dist/{slice-CB4SnzMm.js → slice-GwiiJRoq.js} +3 -3
  269. package/dist/slice-oWnc7YVD.js +412 -0
  270. package/dist/{slice-B2PhoWAg.js → slice-qt0uBExh.js} +325 -37
  271. package/dist/slice-t8Gzj55G2.cjs +106 -0
  272. package/dist/slice-t8Q1cHm-.js +88 -0
  273. package/dist/src-BDzYIksE.cjs +20637 -0
  274. package/dist/src-BFoefPv_.js +20755 -0
  275. package/dist/store-B1Lq3cEf.cjs +66 -0
  276. package/dist/store-DuBG8qh5.js +37 -0
  277. package/dist/submit-Bs77dPn_.cjs +413 -0
  278. package/dist/submit-DOv8Z0Vf.js +336 -0
  279. package/dist/submit-bitcoin-tx-D6oYgH5S.js +983 -0
  280. package/dist/submit-bitcoin-tx-goFuRL7K.cjs +1049 -0
  281. package/dist/{sync-operation-utils-BYXLO80m.js → sync-operation-utils-31iFLExW.js} +2 -38
  282. package/dist/{sync-operation-utils-SdPbwFoD.cjs → sync-operation-utils-COIZ66-I.cjs} +1 -67
  283. package/dist/token-id-mapper-Bnds3xKH.cjs +18 -0
  284. package/dist/{token-id-mapper-DsPAL6Nh.cjs → token-id-mapper-CVyQJUKY.cjs} +2 -2
  285. package/dist/token-id-mapper-CnKHQ8DV.js +16 -0
  286. package/dist/{token-id-mapper-B2ivlLv3.js → token-id-mapper-D29Ggv8h.js} +2 -2
  287. package/dist/tokens-Cevp7rdU.cjs +62 -0
  288. package/dist/tokens-Diw4MLRM.js +44 -0
  289. package/dist/types-B8uiJn-X.js +12 -0
  290. package/dist/types-BHC12eSa.js +33 -0
  291. package/dist/types-CJT6XF2c.js +10 -0
  292. package/dist/types-CLRUYpfe.cjs +23 -0
  293. package/dist/types-Cc3mC8u0.cjs +50 -0
  294. package/dist/types-DWbVZpnF.cjs +15 -0
  295. package/dist/unwrap-provider-result-BZSiwabU.js +32 -0
  296. package/dist/unwrap-provider-result-ZqfBsTkk.cjs +39 -0
  297. package/dist/{util-CGzqQ8IV.cjs → util-Bu4W5lF4.cjs} +1 -1
  298. package/dist/{util-BaLzwa32.js → util-Cp5cZkfK.js} +1 -1
  299. package/dist/{utils-o8aMjfln.js → utils-BfBEUvWA.js} +2 -2
  300. package/dist/utils-DFwzEvbv.js +65 -0
  301. package/dist/{utils-5JvjbqH3.cjs → utils-DsElZgCI.cjs} +7 -1
  302. package/dist/utils-IXxR-Djh.cjs +112 -0
  303. package/dist/v8Signatures-CO_Uloy7.cjs +71 -0
  304. package/dist/{vote-delegation-tx-builder-BpEMSti4.cjs → vote-delegation-tx-builder-BUg1S2Ep.cjs} +6 -6
  305. package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-C6FiS7zI.js} +5 -5
  306. package/dist/watch-CUEvcP-V.js +21997 -0
  307. package/dist/watch-DMF2s-II.cjs +52281 -0
  308. package/package.json +96 -4
  309. package/dist/account-guards.stable-B1DSSh9D.cjs +0 -10
  310. package/dist/account-guards.stable-JRQ5qx2V.js +0 -5
  311. package/dist/codecs-B7X9pAsK.cjs +0 -1945
  312. package/dist/codecs-CC1Xjntz.js +0 -1882
  313. package/dist/init-Bv53hpLM.js +0 -19
  314. package/dist/init-CRbjI7p1.js +0 -3494
  315. package/dist/init-DAna1KCg.cjs +0 -3495
  316. package/dist/init-DGe47B22.cjs +0 -364
  317. package/dist/init-DMtyvYfC.cjs +0 -21
  318. package/dist/init-TkPDD750.js +0 -363
  319. package/dist/modules-cardano-BDvuL4Xx.js +0 -5248
  320. package/dist/modules-cardano-D2G3De2P.cjs +0 -5432
  321. package/dist/slice-CGVHXHDt.cjs +0 -125
  322. package/dist/slice-DhvF7L6X.js +0 -107
  323. /package/dist/{account-id.vo-LvCBVn5r.cjs → account-id.vo-DwqFjK5u.cjs} +0 -0
  324. /package/dist/{account-id.vo-MYSI7YFm.js → account-id.vo-OPz2v-JZ.js} +0 -0
  325. /package/dist/{actions-DdGbj7c7.cjs → actions-B2BJ4RTy.cjs} +0 -0
  326. /package/dist/{actions-9QSQR-GB.js → actions-iLXdgL5Y.js} +0 -0
  327. /package/dist/{apply-vkey-witnesses-ClZbpk5w.js → apply-vkey-witnesses-BKx3lcs0.js} +0 -0
  328. /package/dist/{apply-vkey-witnesses-CLzVSWxl.cjs → apply-vkey-witnesses-ZnFS0jnJ.cjs} +0 -0
  329. /package/dist/{asyncoption-Cw07zPH7.js → asyncoption-CruEYOBI.js} +0 -0
  330. /package/dist/{asyncoption-DYoGuQfP.cjs → asyncoption-i0VbqVTq.cjs} +0 -0
  331. /package/dist/{bignum.vo-B0rK_PQ1.js → bignum.vo-CEXOIew0.js} +0 -0
  332. /package/dist/{bignum.vo-DsG3kNiZ.cjs → bignum.vo-hx2kuqlA.cjs} +0 -0
  333. /package/dist/{bip32ed25519-1ApqeAZk.cjs → bip32ed25519-B7Yat217.cjs} +0 -0
  334. /package/dist/{bip32ed25519-DetAdGwD.js → bip32ed25519-FQ8qvdcq.js} +0 -0
  335. /package/dist/{blake2b-DOEVc57D.js → blake2b-BiQTw3GC.js} +0 -0
  336. /package/dist/{blake2b-B9tftbvG.cjs → blake2b-DEeVUdKR.cjs} +0 -0
  337. /package/dist/{blockchain-network-id.vo-BXpZhvvQ.cjs → blockchain-network-id.vo-BAKEwGjG.cjs} +0 -0
  338. /package/dist/{blockchain-network-id.vo-DNRkuT5B.js → blockchain-network-id.vo-CiVykuqG.js} +0 -0
  339. /package/dist/{blockingWithLatestFrom-C5wp_uA-.js → blockingWithLatestFrom-Cd8c8EPG.js} +0 -0
  340. /package/dist/{blockingWithLatestFrom-DY8OPg0w.cjs → blockingWithLatestFrom-D8kBPBMX.cjs} +0 -0
  341. /package/dist/{cardano-network-id-to-network-type-CrZfUcyP.js → cardano-network-id-to-network-type-BWwzeEtM.js} +0 -0
  342. /package/dist/{cardano-network-id-to-network-type-BDTF-HmK.cjs → cardano-network-id-to-network-type-C0ufJOyE.cjs} +0 -0
  343. /package/dist/{cardano-tx-id.vo-BPhV-AmZ.cjs → cardano-tx-id.vo-TLjJZHCI.cjs} +0 -0
  344. /package/dist/{cardano-tx-id.vo-DF9NzZXk.js → cardano-tx-id.vo-eVnKuzlm.js} +0 -0
  345. /package/dist/{composite-signer-factory-_46QsNBz.js → composite-signer-factory-CR8YHA1y.js} +0 -0
  346. /package/dist/{composite-signer-factory-BpF1mIYA.cjs → composite-signer-factory-m5cVs9h_.cjs} +0 -0
  347. /package/dist/{error-CNIquqT5.cjs → error-Cb3EnD0u.cjs} +0 -0
  348. /package/dist/{error-BCp9NkPi.js → error-DIZOY2Lw.js} +0 -0
  349. /package/dist/{esm-browser-C93Q-EOI.js → esm-browser-MG97cre9.js} +0 -0
  350. /package/dist/{esm-browser-DTc9IK3D.cjs → esm-browser-bweqfBlL.cjs} +0 -0
  351. /package/dist/{feature-flag-key.vo-ofrB6ZVQ.js → feature-flag-key.vo-DN_-4-sG.js} +0 -0
  352. /package/dist/{feature-flag-key.vo-BPz-ZAp6.cjs → feature-flag-key.vo-RlfHL3hq.cjs} +0 -0
  353. /package/dist/{first-state-of-status-OROkXcRv.cjs → first-state-of-status-CbT7hPa4.cjs} +0 -0
  354. /package/dist/{first-state-of-status-DQnMT3ya.js → first-state-of-status-unPynOuM.js} +0 -0
  355. /package/dist/{init-Es3wHW7D.js → init-829HRYcz.js} +0 -0
  356. /package/dist/{init-CKipPE_c.js → init-A-VyGSNW2.js} +0 -0
  357. /package/dist/{init-DFQQ9dTW.cjs → init-Atisw4x2.cjs} +0 -0
  358. /package/dist/{init-C5CEZ1m0.cjs → init-BFcvPHL-.cjs} +0 -0
  359. /package/dist/{init-IAk_CkGa.cjs → init-BgNobbNq.cjs} +0 -0
  360. /package/dist/{init-cqN3uX2j.js → init-atCFur0v.js} +0 -0
  361. /package/dist/{is-redux-persist-state-CTn3WZVh.cjs → is-redux-persist-state-BCFnSm36.cjs} +0 -0
  362. /package/dist/{is-redux-persist-state-Cxcd0_bM.js → is-redux-persist-state-yBfq0h_E.js} +0 -0
  363. /package/dist/{key-value-store-8cMzeNyG.js → key-value-store--W3SrMaw.js} +0 -0
  364. /package/dist/{key-value-store-DUAepXQf.cjs → key-value-store-C2Xt5Emp.cjs} +0 -0
  365. /package/dist/{repo-slice-WxetRhMY.cjs → repo-slice-7X4AYYVm.cjs} +0 -0
  366. /package/dist/{repo-slice-DwyMhCR1.js → repo-slice-RxFm0zDZ.js} +0 -0
  367. /package/dist/{reselect-CRDqmQY9.cjs → reselect-Bd94u0K-.cjs} +0 -0
  368. /package/dist/{reselect-C06X06oX.js → reselect-CGoLzEPv.js} +0 -0
  369. /package/dist/{serializable-B8GahgE1.js → serializable-BHdKIgk3.js} +0 -0
  370. /package/dist/{serializable-CRdnFaLZ.cjs → serializable-BxHkoPdk.cjs} +0 -0
  371. /package/dist/{slice-D11FHQuQ.cjs → slice-BiRsDKOK.cjs} +0 -0
  372. /package/dist/{slice-Be7hj4Iy.js → slice-Bk0Sv05J.js} +0 -0
  373. /package/dist/{slice-FioKeHtA.cjs → slice-Dqw1ecum.cjs} +0 -0
  374. /package/dist/{slice-B87b52iM.js → slice-obCSLm1x.js} +0 -0
  375. /package/dist/{src-vq1wS9sZ.js → src-BlxEp6Mm.js} +0 -0
  376. /package/dist/{src-BTPIvlDI.cjs → src-Cqp0B2M_.cjs} +0 -0
  377. /package/dist/{time.vo-CQ8pSXz2.cjs → time.vo-D3wWRw9L.cjs} +0 -0
  378. /package/dist/{time.vo-DkYYGYp6.js → time.vo-tNheinXm.js} +0 -0
  379. /package/dist/{toEmpty-CgAl3097.js → toEmpty-8Zax1MPd.js} +0 -0
  380. /package/dist/{toEmpty-DAMmNB5r.cjs → toEmpty-CYAbupM4.cjs} +0 -0
  381. /package/dist/{token-id.vo-ClsroxHO.js → token-id.vo-Bvwhr3ZE.js} +0 -0
  382. /package/dist/{token-id.vo-BxG9TG0O.cjs → token-id.vo-DXv5uS9n.cjs} +0 -0
  383. /package/dist/{util-DxzlYNS5.js → util-C8a4fA9p.js} +0 -0
  384. /package/dist/{util-CmdAhheh.cjs → util-CzeB3hfa.cjs} +0 -0
  385. /package/dist/{util-selector-CcK-GAdE.js → util-selector-BSTsxgne.js} +0 -0
  386. /package/dist/{util-selector-BcAncU4L.cjs → util-selector-BWPH68_l.cjs} +0 -0
  387. /package/dist/{while-active-BpppWuCs.js → while-active-B0lWy_6l.js} +0 -0
  388. /package/dist/{while-active-Dhc2LwOm.cjs → while-active-Dsowp0Fi.cjs} +0 -0
@@ -0,0 +1,263 @@
1
+ require("./rolldown-runtime-Br2OG8yv.cjs");
2
+ const require_hex = require("./hex-D9ITYbwt.cjs");
3
+ let _laceio_cardano_core = require("@laceio/cardano/core");
4
+ //#region ../../packages/lib/cardano-custody/src/stake-script.ts
5
+ /** Flat-encoded program version 1.1.0: three one-byte naturals. */
6
+ const PROGRAM_VERSION = [
7
+ 1,
8
+ 1,
9
+ 0
10
+ ];
11
+ const PROGRAM_VERSION_BITS = PROGRAM_VERSION.length * 8;
12
+ const APPLY_TERM_TAG = 3;
13
+ const CONSTANT_TERM_TAG = 4;
14
+ const DATA_TYPE_TAG = 8;
15
+ const TERM_TAG_BITS = 4;
16
+ /** Writes the flat encoding: bits fill each byte from the most significant end. */
17
+ var FlatWriter = class {
18
+ bytes = [];
19
+ pending = 0;
20
+ pendingBits = 0;
21
+ get byteLength() {
22
+ return this.bytes.length;
23
+ }
24
+ writeBits(value, count) {
25
+ for (let shift = count - 1; shift >= 0; shift--) this.writeBit(value >> shift & 1);
26
+ }
27
+ writeBit(bit) {
28
+ this.pending = this.pending << 1 | bit;
29
+ this.pendingBits++;
30
+ if (this.pendingBits === 8) {
31
+ this.bytes.push(this.pending);
32
+ this.pending = 0;
33
+ this.pendingBits = 0;
34
+ }
35
+ }
36
+ /** Zero or more 0 bits and a closing 1 bit, ending on a byte boundary. */
37
+ writeFiller() {
38
+ while (this.pendingBits !== 7) this.writeBit(0);
39
+ this.writeBit(1);
40
+ }
41
+ /** Callers write whole bytes only after a filler or other whole bytes. */
42
+ writeAlignedBytes(bytes) {
43
+ this.bytes.push(...bytes);
44
+ }
45
+ toBytes() {
46
+ return Uint8Array.from(this.bytes);
47
+ }
48
+ };
49
+ const bitAt = (bytes, position) => bytes[position >> 3] >> 7 - (position & 7) & 1;
50
+ /**
51
+ * Applies one Plutus Data byte-string parameter: a constant term of type
52
+ * `[data]` whose value is the CBOR of the data, as a flat byte string.
53
+ * Returns the offset, in the flat output, of the parameter's raw bytes.
54
+ */
55
+ const writeDataBytesConstant = (writer, parameter) => {
56
+ writer.writeBits(CONSTANT_TERM_TAG, TERM_TAG_BITS);
57
+ writer.writeBit(1);
58
+ writer.writeBits(DATA_TYPE_TAG, TERM_TAG_BITS);
59
+ writer.writeBit(0);
60
+ const cbor = require_hex.hexToBytes(_laceio_cardano_core.Serialization.PlutusData.newBytes(parameter).toCbor());
61
+ writer.writeFiller();
62
+ writer.writeAlignedBytes([cbor.length]);
63
+ const parameterOffset = writer.byteLength + cbor.length - parameter.length;
64
+ writer.writeAlignedBytes(cbor);
65
+ writer.writeAlignedBytes([0]);
66
+ return parameterOffset;
67
+ };
68
+ /** The flat program a blueprint's compiled code wraps in one CBOR byte string. */
69
+ const unwrapCompiledCode = (compiledCode) => new _laceio_cardano_core.Serialization.CborReader(compiledCode).readByteString();
70
+ const assertUnappliedProgramShape = (program, bodyBitLength) => {
71
+ if (PROGRAM_VERSION.some((byte, index) => program[index] !== byte)) throw new Error("The stake validator is not a version 1.1.0 program");
72
+ const bodyEnd = PROGRAM_VERSION_BITS + bodyBitLength;
73
+ const fillerBits = program.length * 8 - bodyEnd;
74
+ if (!(fillerBits >= 1 && fillerBits <= 8 && Array.from({ length: fillerBits }, (_, index) => bitAt(program, bodyEnd + index)).every((bit, index) => bit === (index === fillerBits - 1 ? 1 : 0)))) throw new Error(`The stake validator body is not ${bodyBitLength} bits followed by a filler`);
75
+ };
76
+ /**
77
+ * Builds what `aiken blueprint apply` produces for the owner, then the
78
+ * account validator hash: the unapplied body under two Apply terms, followed
79
+ * by one Data byte-string constant per parameter. The two Apply tags take
80
+ * exactly one byte, so the body bits keep their position within each byte
81
+ * and the owner always lands at the same offset.
82
+ */
83
+ const buildStakeScriptTemplate = (version) => {
84
+ const { compiledCode, bodyBitLength } = version.unappliedStakeValidator;
85
+ const program = unwrapCompiledCode(compiledCode);
86
+ assertUnappliedProgramShape(program, bodyBitLength);
87
+ const writer = new FlatWriter();
88
+ writer.writeAlignedBytes(PROGRAM_VERSION);
89
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
90
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
91
+ for (let index = 0; index < bodyBitLength; index++) writer.writeBit(bitAt(program, PROGRAM_VERSION_BITS + index));
92
+ const ownerFlatOffset = writeDataBytesConstant(writer, new Uint8Array(28));
93
+ writeDataBytesConstant(writer, require_hex.hexToBytes(version.accountValidatorHash));
94
+ writer.writeFiller();
95
+ const flat = writer.toBytes();
96
+ const wrapped = new _laceio_cardano_core.Serialization.CborWriter().writeByteString(flat).encode();
97
+ return {
98
+ compiledCode: wrapped,
99
+ ownerOffset: wrapped.length - flat.length + ownerFlatOffset
100
+ };
101
+ };
102
+ const templates = /* @__PURE__ */ new Map();
103
+ const templateFor = (version) => {
104
+ let template = templates.get(version.accountValidatorHash);
105
+ if (!template) {
106
+ template = buildStakeScriptTemplate(version);
107
+ templates.set(version.accountValidatorHash, template);
108
+ }
109
+ return template;
110
+ };
111
+ /**
112
+ * The compiled code of an account's stake script: the version's stake
113
+ * validator applied to the owner (creator) key hash and then to the
114
+ * version's account validator hash. Byte for byte what the Aiken CLI emits.
115
+ *
116
+ * @param ownerKeyHash - lower-case hex of exactly 28 bytes, checked by the caller
117
+ */
118
+ const applyStakeValidatorToOwner = (version, ownerKeyHash) => {
119
+ const { compiledCode, ownerOffset } = templateFor(version);
120
+ const applied = compiledCode.slice();
121
+ applied.set(require_hex.hexToBytes(ownerKeyHash), ownerOffset);
122
+ return require_hex.bytesToHex(applied);
123
+ };
124
+ //#endregion
125
+ //#region ../../packages/lib/cardano-custody/src/identity.ts
126
+ /**
127
+ * Derives the identity of a creator key hash and chain id the caller has
128
+ * already validated.
129
+ */
130
+ const identityOfValidatedCreator = ({ contractVersion, creatorKeyHash, chainId }) => {
131
+ const stakeScript = {
132
+ __type: _laceio_cardano_core.Cardano.ScriptType.Plutus,
133
+ bytes: applyStakeValidatorToOwner(contractVersion, creatorKeyHash),
134
+ version: _laceio_cardano_core.Cardano.PlutusLanguageVersion.V3
135
+ };
136
+ const stakeScriptHash = _laceio_cardano_core.Serialization.Script.fromCore(stakeScript).hash();
137
+ const stakeCredential = {
138
+ type: _laceio_cardano_core.Cardano.CredentialType.ScriptHash,
139
+ hash: stakeScriptHash
140
+ };
141
+ return {
142
+ contractVersion,
143
+ chainId,
144
+ creatorKeyHash,
145
+ stakeScript,
146
+ stakeScriptHash,
147
+ address: _laceio_cardano_core.Cardano.BaseAddress.fromCredentials(chainId.networkId, {
148
+ type: _laceio_cardano_core.Cardano.CredentialType.ScriptHash,
149
+ hash: contractVersion.accountValidatorHash
150
+ }, stakeCredential).toAddress().toBech32(),
151
+ rewardAccount: _laceio_cardano_core.Cardano.RewardAccount.fromCredential(stakeCredential, chainId.networkId),
152
+ stateNftAssetId: _laceio_cardano_core.Cardano.AssetId.fromParts(_laceio_cardano_core.Cardano.PolicyId(contractVersion.accountValidatorHash), _laceio_cardano_core.Cardano.AssetName(stakeScriptHash))
153
+ };
154
+ };
155
+ const MAINNET_NETWORK_MAGIC = _laceio_cardano_core.Cardano.NetworkMagics.Mainnet;
156
+ /**
157
+ * The chain a network magic names. Records carry only the magic; every
158
+ * Cardano network except mainnet uses network id 0.
159
+ */
160
+ const chainIdFromNetworkMagic = (networkMagic) => ({
161
+ networkId: networkMagic === MAINNET_NETWORK_MAGIC ? _laceio_cardano_core.Cardano.NetworkId.Mainnet : _laceio_cardano_core.Cardano.NetworkId.Testnet,
162
+ networkMagic
163
+ });
164
+ /** Whether a value is a network magic: a 32-bit unsigned integer. */
165
+ const isNetworkMagic = (value) => typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 4294967295;
166
+ /**
167
+ * Whether a chain id is one a record can name: the record keeps only the
168
+ * magic, so the network id must be the one the magic implies.
169
+ */
170
+ const isConsistentChainId = ({ networkId, networkMagic }) => isNetworkMagic(networkMagic) && networkId === chainIdFromNetworkMagic(networkMagic).networkId;
171
+ /**
172
+ * The identity of the account a creator key hash creates on a chain. Refuses
173
+ * a key hash that is not lower-case hex of exactly 28 bytes, and a chain id
174
+ * whose network id contradicts its network magic, such as network id 0 with
175
+ * the mainnet magic.
176
+ */
177
+ const deriveCustodyAccountIdentity = (params) => {
178
+ if (!isConsistentChainId(params.chainId)) return require_hex.fail({
179
+ code: "invalid-chain-id",
180
+ chainId: params.chainId
181
+ });
182
+ return require_hex.isHash28Hex(params.creatorKeyHash) ? require_hex.ok(identityOfValidatedCreator(params)) : require_hex.fail({
183
+ code: "invalid-key-hash",
184
+ keyHash: params.creatorKeyHash
185
+ });
186
+ };
187
+ //#endregion
188
+ //#region ../../packages/contract/cardano-context/src/custody/identity.ts
189
+ /**
190
+ * Re-derives a persisted custody account's identity from its contract
191
+ * version, creator key hash and chain, and refuses it unless the stored
192
+ * stake script hash, address and reward account are exactly the derived
193
+ * ones. Persisted props are only as trustworthy as storage, and an address
194
+ * the contract does not govern for this creator must never be synced or
195
+ * shown as the account.
196
+ */
197
+ const verifyCardanoCustodyAccountIdentity = (stored) => {
198
+ const contractVersion = require_hex.findCustodyContractVersion(stored.accountValidatorHash);
199
+ if (!contractVersion.ok) return contractVersion;
200
+ const derived = deriveCustodyAccountIdentity({
201
+ contractVersion: contractVersion.value,
202
+ creatorKeyHash: stored.creatorKeyHash,
203
+ chainId: stored.chainId
204
+ });
205
+ if (!derived.ok) return derived;
206
+ const mismatch = [
207
+ [
208
+ "stakeScriptHash",
209
+ stored.stakeScriptHash,
210
+ derived.value.stakeScriptHash
211
+ ],
212
+ [
213
+ "address",
214
+ stored.address,
215
+ derived.value.address
216
+ ],
217
+ [
218
+ "rewardAccount",
219
+ stored.rewardAccount,
220
+ derived.value.rewardAccount
221
+ ]
222
+ ].find(([, storedValue, derivedValue]) => storedValue !== derivedValue);
223
+ return mismatch ? {
224
+ ok: false,
225
+ error: {
226
+ code: "identity-mismatch",
227
+ field: mismatch[0],
228
+ stored: mismatch[1],
229
+ derived: mismatch[2]
230
+ }
231
+ } : derived;
232
+ };
233
+ //#endregion
234
+ Object.defineProperty(exports, "chainIdFromNetworkMagic", {
235
+ enumerable: true,
236
+ get: function() {
237
+ return chainIdFromNetworkMagic;
238
+ }
239
+ });
240
+ Object.defineProperty(exports, "deriveCustodyAccountIdentity", {
241
+ enumerable: true,
242
+ get: function() {
243
+ return deriveCustodyAccountIdentity;
244
+ }
245
+ });
246
+ Object.defineProperty(exports, "identityOfValidatedCreator", {
247
+ enumerable: true,
248
+ get: function() {
249
+ return identityOfValidatedCreator;
250
+ }
251
+ });
252
+ Object.defineProperty(exports, "isNetworkMagic", {
253
+ enumerable: true,
254
+ get: function() {
255
+ return isNetworkMagic;
256
+ }
257
+ });
258
+ Object.defineProperty(exports, "verifyCardanoCustodyAccountIdentity", {
259
+ enumerable: true,
260
+ get: function() {
261
+ return verifyCardanoCustodyAccountIdentity;
262
+ }
263
+ });
@@ -0,0 +1,233 @@
1
+ import { d as fail, f as ok, l as findCustodyContractVersion, n as hexToBytes, r as isHash28Hex, t as bytesToHex } from "./hex-mkXcV3pN.js";
2
+ import { Cardano, Serialization } from "@laceio/cardano/core";
3
+ //#region ../../packages/lib/cardano-custody/src/stake-script.ts
4
+ /** Flat-encoded program version 1.1.0: three one-byte naturals. */
5
+ const PROGRAM_VERSION = [
6
+ 1,
7
+ 1,
8
+ 0
9
+ ];
10
+ const PROGRAM_VERSION_BITS = PROGRAM_VERSION.length * 8;
11
+ const APPLY_TERM_TAG = 3;
12
+ const CONSTANT_TERM_TAG = 4;
13
+ const DATA_TYPE_TAG = 8;
14
+ const TERM_TAG_BITS = 4;
15
+ /** Writes the flat encoding: bits fill each byte from the most significant end. */
16
+ var FlatWriter = class {
17
+ bytes = [];
18
+ pending = 0;
19
+ pendingBits = 0;
20
+ get byteLength() {
21
+ return this.bytes.length;
22
+ }
23
+ writeBits(value, count) {
24
+ for (let shift = count - 1; shift >= 0; shift--) this.writeBit(value >> shift & 1);
25
+ }
26
+ writeBit(bit) {
27
+ this.pending = this.pending << 1 | bit;
28
+ this.pendingBits++;
29
+ if (this.pendingBits === 8) {
30
+ this.bytes.push(this.pending);
31
+ this.pending = 0;
32
+ this.pendingBits = 0;
33
+ }
34
+ }
35
+ /** Zero or more 0 bits and a closing 1 bit, ending on a byte boundary. */
36
+ writeFiller() {
37
+ while (this.pendingBits !== 7) this.writeBit(0);
38
+ this.writeBit(1);
39
+ }
40
+ /** Callers write whole bytes only after a filler or other whole bytes. */
41
+ writeAlignedBytes(bytes) {
42
+ this.bytes.push(...bytes);
43
+ }
44
+ toBytes() {
45
+ return Uint8Array.from(this.bytes);
46
+ }
47
+ };
48
+ const bitAt = (bytes, position) => bytes[position >> 3] >> 7 - (position & 7) & 1;
49
+ /**
50
+ * Applies one Plutus Data byte-string parameter: a constant term of type
51
+ * `[data]` whose value is the CBOR of the data, as a flat byte string.
52
+ * Returns the offset, in the flat output, of the parameter's raw bytes.
53
+ */
54
+ const writeDataBytesConstant = (writer, parameter) => {
55
+ writer.writeBits(CONSTANT_TERM_TAG, TERM_TAG_BITS);
56
+ writer.writeBit(1);
57
+ writer.writeBits(DATA_TYPE_TAG, TERM_TAG_BITS);
58
+ writer.writeBit(0);
59
+ const cbor = hexToBytes(Serialization.PlutusData.newBytes(parameter).toCbor());
60
+ writer.writeFiller();
61
+ writer.writeAlignedBytes([cbor.length]);
62
+ const parameterOffset = writer.byteLength + cbor.length - parameter.length;
63
+ writer.writeAlignedBytes(cbor);
64
+ writer.writeAlignedBytes([0]);
65
+ return parameterOffset;
66
+ };
67
+ /** The flat program a blueprint's compiled code wraps in one CBOR byte string. */
68
+ const unwrapCompiledCode = (compiledCode) => new Serialization.CborReader(compiledCode).readByteString();
69
+ const assertUnappliedProgramShape = (program, bodyBitLength) => {
70
+ if (PROGRAM_VERSION.some((byte, index) => program[index] !== byte)) throw new Error("The stake validator is not a version 1.1.0 program");
71
+ const bodyEnd = PROGRAM_VERSION_BITS + bodyBitLength;
72
+ const fillerBits = program.length * 8 - bodyEnd;
73
+ if (!(fillerBits >= 1 && fillerBits <= 8 && Array.from({ length: fillerBits }, (_, index) => bitAt(program, bodyEnd + index)).every((bit, index) => bit === (index === fillerBits - 1 ? 1 : 0)))) throw new Error(`The stake validator body is not ${bodyBitLength} bits followed by a filler`);
74
+ };
75
+ /**
76
+ * Builds what `aiken blueprint apply` produces for the owner, then the
77
+ * account validator hash: the unapplied body under two Apply terms, followed
78
+ * by one Data byte-string constant per parameter. The two Apply tags take
79
+ * exactly one byte, so the body bits keep their position within each byte
80
+ * and the owner always lands at the same offset.
81
+ */
82
+ const buildStakeScriptTemplate = (version) => {
83
+ const { compiledCode, bodyBitLength } = version.unappliedStakeValidator;
84
+ const program = unwrapCompiledCode(compiledCode);
85
+ assertUnappliedProgramShape(program, bodyBitLength);
86
+ const writer = new FlatWriter();
87
+ writer.writeAlignedBytes(PROGRAM_VERSION);
88
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
89
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
90
+ for (let index = 0; index < bodyBitLength; index++) writer.writeBit(bitAt(program, PROGRAM_VERSION_BITS + index));
91
+ const ownerFlatOffset = writeDataBytesConstant(writer, new Uint8Array(28));
92
+ writeDataBytesConstant(writer, hexToBytes(version.accountValidatorHash));
93
+ writer.writeFiller();
94
+ const flat = writer.toBytes();
95
+ const wrapped = new Serialization.CborWriter().writeByteString(flat).encode();
96
+ return {
97
+ compiledCode: wrapped,
98
+ ownerOffset: wrapped.length - flat.length + ownerFlatOffset
99
+ };
100
+ };
101
+ const templates = /* @__PURE__ */ new Map();
102
+ const templateFor = (version) => {
103
+ let template = templates.get(version.accountValidatorHash);
104
+ if (!template) {
105
+ template = buildStakeScriptTemplate(version);
106
+ templates.set(version.accountValidatorHash, template);
107
+ }
108
+ return template;
109
+ };
110
+ /**
111
+ * The compiled code of an account's stake script: the version's stake
112
+ * validator applied to the owner (creator) key hash and then to the
113
+ * version's account validator hash. Byte for byte what the Aiken CLI emits.
114
+ *
115
+ * @param ownerKeyHash - lower-case hex of exactly 28 bytes, checked by the caller
116
+ */
117
+ const applyStakeValidatorToOwner = (version, ownerKeyHash) => {
118
+ const { compiledCode, ownerOffset } = templateFor(version);
119
+ const applied = compiledCode.slice();
120
+ applied.set(hexToBytes(ownerKeyHash), ownerOffset);
121
+ return bytesToHex(applied);
122
+ };
123
+ //#endregion
124
+ //#region ../../packages/lib/cardano-custody/src/identity.ts
125
+ /**
126
+ * Derives the identity of a creator key hash and chain id the caller has
127
+ * already validated.
128
+ */
129
+ const identityOfValidatedCreator = ({ contractVersion, creatorKeyHash, chainId }) => {
130
+ const stakeScript = {
131
+ __type: Cardano.ScriptType.Plutus,
132
+ bytes: applyStakeValidatorToOwner(contractVersion, creatorKeyHash),
133
+ version: Cardano.PlutusLanguageVersion.V3
134
+ };
135
+ const stakeScriptHash = Serialization.Script.fromCore(stakeScript).hash();
136
+ const stakeCredential = {
137
+ type: Cardano.CredentialType.ScriptHash,
138
+ hash: stakeScriptHash
139
+ };
140
+ return {
141
+ contractVersion,
142
+ chainId,
143
+ creatorKeyHash,
144
+ stakeScript,
145
+ stakeScriptHash,
146
+ address: Cardano.BaseAddress.fromCredentials(chainId.networkId, {
147
+ type: Cardano.CredentialType.ScriptHash,
148
+ hash: contractVersion.accountValidatorHash
149
+ }, stakeCredential).toAddress().toBech32(),
150
+ rewardAccount: Cardano.RewardAccount.fromCredential(stakeCredential, chainId.networkId),
151
+ stateNftAssetId: Cardano.AssetId.fromParts(Cardano.PolicyId(contractVersion.accountValidatorHash), Cardano.AssetName(stakeScriptHash))
152
+ };
153
+ };
154
+ const MAINNET_NETWORK_MAGIC = Cardano.NetworkMagics.Mainnet;
155
+ /**
156
+ * The chain a network magic names. Records carry only the magic; every
157
+ * Cardano network except mainnet uses network id 0.
158
+ */
159
+ const chainIdFromNetworkMagic = (networkMagic) => ({
160
+ networkId: networkMagic === MAINNET_NETWORK_MAGIC ? Cardano.NetworkId.Mainnet : Cardano.NetworkId.Testnet,
161
+ networkMagic
162
+ });
163
+ /** Whether a value is a network magic: a 32-bit unsigned integer. */
164
+ const isNetworkMagic = (value) => typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 4294967295;
165
+ /**
166
+ * Whether a chain id is one a record can name: the record keeps only the
167
+ * magic, so the network id must be the one the magic implies.
168
+ */
169
+ const isConsistentChainId = ({ networkId, networkMagic }) => isNetworkMagic(networkMagic) && networkId === chainIdFromNetworkMagic(networkMagic).networkId;
170
+ /**
171
+ * The identity of the account a creator key hash creates on a chain. Refuses
172
+ * a key hash that is not lower-case hex of exactly 28 bytes, and a chain id
173
+ * whose network id contradicts its network magic, such as network id 0 with
174
+ * the mainnet magic.
175
+ */
176
+ const deriveCustodyAccountIdentity = (params) => {
177
+ if (!isConsistentChainId(params.chainId)) return fail({
178
+ code: "invalid-chain-id",
179
+ chainId: params.chainId
180
+ });
181
+ return isHash28Hex(params.creatorKeyHash) ? ok(identityOfValidatedCreator(params)) : fail({
182
+ code: "invalid-key-hash",
183
+ keyHash: params.creatorKeyHash
184
+ });
185
+ };
186
+ //#endregion
187
+ //#region ../../packages/contract/cardano-context/src/custody/identity.ts
188
+ /**
189
+ * Re-derives a persisted custody account's identity from its contract
190
+ * version, creator key hash and chain, and refuses it unless the stored
191
+ * stake script hash, address and reward account are exactly the derived
192
+ * ones. Persisted props are only as trustworthy as storage, and an address
193
+ * the contract does not govern for this creator must never be synced or
194
+ * shown as the account.
195
+ */
196
+ const verifyCardanoCustodyAccountIdentity = (stored) => {
197
+ const contractVersion = findCustodyContractVersion(stored.accountValidatorHash);
198
+ if (!contractVersion.ok) return contractVersion;
199
+ const derived = deriveCustodyAccountIdentity({
200
+ contractVersion: contractVersion.value,
201
+ creatorKeyHash: stored.creatorKeyHash,
202
+ chainId: stored.chainId
203
+ });
204
+ if (!derived.ok) return derived;
205
+ const mismatch = [
206
+ [
207
+ "stakeScriptHash",
208
+ stored.stakeScriptHash,
209
+ derived.value.stakeScriptHash
210
+ ],
211
+ [
212
+ "address",
213
+ stored.address,
214
+ derived.value.address
215
+ ],
216
+ [
217
+ "rewardAccount",
218
+ stored.rewardAccount,
219
+ derived.value.rewardAccount
220
+ ]
221
+ ].find(([, storedValue, derivedValue]) => storedValue !== derivedValue);
222
+ return mismatch ? {
223
+ ok: false,
224
+ error: {
225
+ code: "identity-mismatch",
226
+ field: mismatch[0],
227
+ stored: mismatch[1],
228
+ derived: mismatch[2]
229
+ }
230
+ } : derived;
231
+ };
232
+ //#endregion
233
+ export { isNetworkMagic as a, identityOfValidatedCreator as i, chainIdFromNetworkMagic as n, deriveCustodyAccountIdentity as r, verifyCardanoCustodyAccountIdentity as t };