@laceio/sdk 0.1.0 → 0.1.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/{Ed25519PublicKey-lvu1s54U.cjs → Address-AMKTo-dA.cjs} +17150 -61
  2. package/dist/{Ed25519PublicKey-CjnuAYRR.js → Address-_c_-9hLC.js} +16955 -264
  3. package/dist/{Bip32Account-r3KAhCgU.js → Bip32Account-CaW1zC9Y.js} +4 -5
  4. package/dist/{Bip32Account-Cz3h0ZUa.cjs → Bip32Account-DOaGmKpv.cjs} +4 -5
  5. package/dist/Cardano-B-gyqBBD.js +311 -0
  6. package/dist/Cardano-BQ_af0Y3.cjs +322 -0
  7. package/dist/Ed25519PublicKey-B3QcR0J2.cjs +88 -0
  8. package/dist/Ed25519PublicKey-DIE19xHg.js +83 -0
  9. package/dist/InMemoryKeyAgent-Bc_xZY-v.cjs +652 -0
  10. package/dist/InMemoryKeyAgent-D8T3vtXy.js +631 -0
  11. package/dist/{PaymentAddress-DhbtuYb7.cjs → PaymentAddress-B4n1KZMx.cjs} +1 -2
  12. package/dist/{PaymentAddress-xSmGUQ-8.js → PaymentAddress-Cml3EA1n.js} +1 -2
  13. package/dist/Percent-Cfuw5YyL.cjs +11 -0
  14. package/dist/Percent-DpvyJ_93.js +5 -0
  15. package/dist/SodiumBip32Ed25519-BaD-kjyx.cjs +380 -0
  16. package/dist/SodiumBip32Ed25519-DCikAMsl.js +363 -0
  17. package/dist/{TransactionBuilder-CeJTNzm-.cjs → TransactionBuilder-BakTJvsJ.cjs} +59 -89
  18. package/dist/{TransactionBuilder-DGNDM4kt.js → TransactionBuilder-D2ErwVWv.js} +5 -71
  19. package/dist/_md-6zV2Cme0.cjs +684 -0
  20. package/dist/_md-gbUqlhqd.js +399 -0
  21. package/dist/_web-crypto-random-bytes-BvzwTYPG.js +197 -0
  22. package/dist/acc-module-NL_8mEHH.cjs +27654 -0
  23. package/dist/acc-module-ur8CkBd1.js +27624 -0
  24. package/dist/account-call-B7cF8ly4.cjs +293 -0
  25. package/dist/account-call-BF4rBcNw.js +3 -0
  26. package/dist/account-call-CoCq3V55.js +252 -0
  27. package/dist/account-call-DFcD257E.cjs +4 -0
  28. package/dist/account-guards-BeKbV9D1.cjs +41 -0
  29. package/dist/account-guards-qnFXuXSE.js +36 -0
  30. package/dist/{activity-type.stable-ClO9j_PH.cjs → activity-type-BPXxdHBP.cjs} +2 -1
  31. package/dist/{activity-type.stable-Ml0SOYv9.js → activity-type-C1geyPsH.js} +2 -1
  32. package/dist/address-OxwXIwbF.js +15502 -0
  33. package/dist/address-book-address-validator-BqYM0Uyp.cjs +41 -0
  34. package/dist/{address-book-address-validator-BhqRfmlL.cjs → address-book-address-validator-CGIcqn5W.cjs} +5 -4
  35. package/dist/{address-book-address-validator-VqIOB8PY.js → address-book-address-validator-FkkYim3z.js} +6 -4
  36. package/dist/address-book-address-validator-RSx2Jozy.js +39 -0
  37. package/dist/address-lECYBd9-.cjs +13043 -0
  38. package/dist/{apply-vkey-witnesses-Ctzk7eye.cjs → apply-vkey-witnesses-1jyczTkw.cjs} +1 -1
  39. package/dist/{apply-vkey-witnesses-Dfo7XfhL.js → apply-vkey-witnesses-Byb40-yJ.js} +1 -1
  40. package/dist/artefact-loader-Cqc9eSkL.cjs +182 -0
  41. package/dist/artefact-loader-D0T2f6F7.js +159 -0
  42. package/dist/auto-dismiss-failure-on-success-BWJceNXd.cjs +37 -0
  43. package/dist/auto-dismiss-failure-on-success-Bpod-v4r.js +31 -0
  44. package/dist/bip32-EPpcFrpH.cjs +3851 -0
  45. package/dist/{bip32ed25519-D2In8WzR.cjs → bip32ed25519-CRiG-Kjg.cjs} +5 -4
  46. package/dist/{bip32ed25519-qsLH_eWO.js → bip32ed25519-E-fCUZNv.js} +6 -4
  47. package/dist/bip39-DZomfqeY.js +9 -0
  48. package/dist/bip39-MAck9iod.cjs +26 -0
  49. package/dist/bitcoin-data-provider-D0OT_Uiu.cjs +26 -0
  50. package/dist/bitcoin-data-provider-LN_8oamW.js +21 -0
  51. package/dist/bitcoin.cjs +48 -0
  52. package/dist/bitcoin.d.ts +29805 -1
  53. package/dist/bitcoin.js +22 -0
  54. package/dist/{blake2b-BGHUWMsV.js → blake2b-BL-eR5G2.js} +6 -4
  55. package/dist/{blake2b-DspUqw68.cjs → blake2b-Iy324FwH.cjs} +5 -4
  56. package/dist/{blockfrost-tx-submit-provider-BUEOmdvc.js → blockfrost-tx-submit-provider-BHDLgOIE.js} +9 -162
  57. package/dist/{blockfrost-tx-submit-provider-B5dWbdrZ.cjs → blockfrost-tx-submit-provider-BxC19smv.cjs} +7 -171
  58. package/dist/{blockingWithLatestFrom-BhaE7pnA.js → blockingWithLatestFrom-FUfZFEUG.js} +1 -1
  59. package/dist/{blockingWithLatestFrom-DkuT3G2a.cjs → blockingWithLatestFrom-bmCPgA3c.cjs} +1 -1
  60. package/dist/bn-BFq5a4dk.cjs +2553 -0
  61. package/dist/{SodiumBip32Ed25519-BEfo1Q9m.js → browser-D5jRKv_L.js} +4 -401
  62. package/dist/bytes.vo-CziaOsba.js +24 -0
  63. package/dist/bytes.vo-hecRu3YZ.cjs +35 -0
  64. package/dist/{cardano-network-id-to-network-type-PXvn1ycQ.cjs → cardano-network-id-to-network-type-BwG_d6QP.cjs} +1 -1
  65. package/dist/{cardano-network-id-to-network-type-DHgKhDAK.js → cardano-network-id-to-network-type-CYJheetp.js} +1 -1
  66. package/dist/{cardano-network-id.vo-CbNNKd-k.cjs → cardano-network-id.vo-C5VuBXT3.cjs} +2 -2
  67. package/dist/{cardano-network-id.vo-CTYe-Oix.js → cardano-network-id.vo-CeLJqmb_.js} +2 -2
  68. package/dist/{cardano-tx-id.vo-BMwemq5x.js → cardano-tx-id.vo-DJ70NC0-.js} +1 -1
  69. package/dist/{cardano-tx-id.vo-NY-gCOWJ.cjs → cardano-tx-id.vo-lnyO9XaW.cjs} +1 -1
  70. package/dist/cardano.cjs +31 -24
  71. package/dist/cardano.d.ts +27602 -8121
  72. package/dist/cardano.js +21 -13
  73. package/dist/client-Bw2foG5E.cjs +808 -0
  74. package/dist/const-BB3MccLt.js +153 -0
  75. package/dist/{const-BErUlcZw.cjs → const-BWBAzOmN.cjs} +1 -1
  76. package/dist/const-CSWmOyzn.cjs +42 -0
  77. package/dist/{const-Dy8Ctnpd.cjs → const-D3mCkwrM.cjs} +5 -5
  78. package/dist/const-DW7z3R5k.js +13 -0
  79. package/dist/{const-DeUA7zYl.js → const-DbuUHSzR.js} +5 -5
  80. package/dist/const-DgBzKfz6.cjs +31995 -0
  81. package/dist/{const-DVW6DGkZ.js → const-xGSNCtwQ.js} +1 -1
  82. package/dist/contract-BsIGhsYa.js +171 -0
  83. package/dist/contract-DD6CGnpB.cjs +189 -0
  84. package/dist/create-add-accounts-2mQA0ST2.js +102 -0
  85. package/dist/create-add-accounts-B6mR2NMn.cjs +114 -0
  86. package/dist/{delegation-tx-builder-CF0VunDW.cjs → delegation-tx-builder-Cp30jtj9.cjs} +9 -8
  87. package/dist/{delegation-tx-builder-C8LQxU2R.js → delegation-tx-builder-DUMikSTg.js} +9 -7
  88. package/dist/{deregistration-tx-builder-DcUXA3Ls.cjs → deregistration-tx-builder-B-ZeY-dR.cjs} +10 -9
  89. package/dist/{deregistration-tx-builder-BOBPP8m_.js → deregistration-tx-builder-CRLrK99U.js} +10 -8
  90. package/dist/device-commitment-hex.vo-BIUYUNz1.cjs +31 -0
  91. package/dist/device-commitment-hex.vo-D9FsYLn7.js +26 -0
  92. package/dist/device-key-BToCoS4D.js +2394 -0
  93. package/dist/device-key-D6euvxFi.cjs +2489 -0
  94. package/dist/device-readers-BHJeNR8I.js +3 -0
  95. package/dist/device-readers-Dw7uTNM5.cjs +167 -0
  96. package/dist/device-readers-b4g2j3QL.js +144 -0
  97. package/dist/device-readers-cxcJcWq5.cjs +7 -0
  98. package/dist/dist-B00GN41m.js +141 -0
  99. package/dist/dist-BA1xnF9O.cjs +4413 -0
  100. package/dist/dist-BmHOXLe8.cjs +3814 -0
  101. package/dist/dist-Br0OVXKt.cjs +535 -0
  102. package/dist/dist-C1JK9C1I.cjs +3452 -0
  103. package/dist/dist-DKEViNEI.cjs +1306 -0
  104. package/dist/dist-Dwqx184a.cjs +43175 -0
  105. package/dist/dist-MJof_Ky1.cjs +145 -0
  106. package/dist/dist-p84sVVJ9.cjs +1394 -0
  107. package/dist/{earn-rewards-tx-builder-BRlTueHS.js → earn-rewards-tx-builder-8G_rouIk.js} +9 -7
  108. package/dist/{earn-rewards-tx-builder-RgO0QUY8.cjs → earn-rewards-tx-builder-cOUNV58E.cjs} +9 -8
  109. package/dist/enc-key-circuits-0Dud78IB.js +13 -0
  110. package/dist/enc-key-circuits-yjPHbuo_.cjs +24 -0
  111. package/dist/english-BZ_ebp2-.cjs +2057 -0
  112. package/dist/envelopes-B3QCzo5p.js +2658 -0
  113. package/dist/envelopes-BdE1xlgz.cjs +2777 -0
  114. package/dist/errors-BA3b8aVu.cjs +584 -0
  115. package/dist/errors-pkQdxW-7.js +392 -0
  116. package/dist/experimental.cjs +6820 -0
  117. package/dist/experimental.d.ts +63552 -0
  118. package/dist/experimental.js +6670 -0
  119. package/dist/fees-6C2uEWFK.js +653 -0
  120. package/dist/fees-DtC71fOx.cjs +820 -0
  121. package/dist/gated-call-BrPjKolT.js +3 -0
  122. package/dist/gated-call-CcsuW9L5.js +691 -0
  123. package/dist/gated-call-DdDrxEq5.cjs +732 -0
  124. package/dist/gated-call-Dk7PazhG.cjs +4 -0
  125. package/dist/grant-rules-B7eDuD5G.cjs +5468 -0
  126. package/dist/grant-rules-qLrKUIR3.js +5217 -0
  127. package/dist/grant-status-CDmZpx32.js +296 -0
  128. package/dist/grant-status-CQtwjLsA.cjs +337 -0
  129. package/dist/grants-Bnb-3Hkv.cjs +16 -0
  130. package/dist/grants-CIb6nOV7.cjs +273 -0
  131. package/dist/grants-CYY0AquW.js +202 -0
  132. package/dist/grants-DOsFSotP.js +4 -0
  133. package/dist/{group-cardano-addresses-by-account-C-1GHUu8.cjs → group-cardano-addresses-by-account-BGOtPV-Y.cjs} +4 -40
  134. package/dist/{group-cardano-addresses-by-account-p4dXmCoj.js → group-cardano-addresses-by-account-TqvESg9x.js} +6 -37
  135. package/dist/{guarded-transaction-signer-DZSGHp1K.js → guarded-transaction-signer-BbVDE9Nn.js} +12 -18
  136. package/dist/{guarded-transaction-signer-BLSezbfV.cjs → guarded-transaction-signer-DTLjAkif.cjs} +26 -26
  137. package/dist/hex-BVtOKJki.cjs +263 -0
  138. package/dist/hex-CGYJPK_Z.js +192 -0
  139. package/dist/http-client-B7_kBTYn.js +155 -0
  140. package/dist/http-client-DYQ_7Rdf.cjs +167 -0
  141. package/dist/identity-DxPhxkZs.js +239 -0
  142. package/dist/identity-y41Yle03.cjs +274 -0
  143. package/dist/in-memory-wallet-integration-5BKiAvPT.js +20861 -0
  144. package/dist/{in-memory-wallet-integration-CUTa68ET.js → in-memory-wallet-integration-BCOqDgbt.js} +10 -107
  145. package/dist/in-memory-wallet-integration-Bi8I9Dso.js +128 -0
  146. package/dist/in-memory-wallet-integration-Bsl2ONua.cjs +239 -0
  147. package/dist/in-memory-wallet-integration-DZ0CAyvY.cjs +20865 -0
  148. package/dist/{in-memory-wallet-integration-Dw_S7amX.cjs → in-memory-wallet-integration-DsFm8gLk.cjs} +21 -112
  149. package/dist/{in-memory-wallet-integration-Z4Bp_DTv.cjs → in-memory-wallet-integration-aW_SF-go.cjs} +8 -5
  150. package/dist/{in-memory-wallet-integration-B6cbAlvD.js → in-memory-wallet-integration-mIEc8EfR.js} +9 -5
  151. package/dist/index.cjs +95 -58
  152. package/dist/index.d.ts +45152 -13448
  153. package/dist/index.js +55 -28
  154. package/dist/{init-CVi8J0zk.cjs → init-5SfWgCYD.cjs} +3 -3
  155. package/dist/{init-Ci7aqWCf2.cjs → init-8NVWbo302.cjs} +2 -2
  156. package/dist/init-B-C7n6u6.js +5 -0
  157. package/dist/{init-BFMWRf-L.js → init-B-ppfGO-.js} +1 -1
  158. package/dist/{init-IiR093Jw.cjs → init-B2OUhY5T.cjs} +2 -2
  159. package/dist/{init-DXnus199.cjs → init-B6Eg_o6G.cjs} +5 -5
  160. package/dist/{init-4hDl5bpr.js → init-BAWMHL1k.js} +2 -2
  161. package/dist/init-BC2CZZOu2.cjs +2002 -0
  162. package/dist/{init-a228hXnS.cjs → init-BF-a2p6E.cjs} +65 -73
  163. package/dist/{init-fFirX8OY.cjs → init-BFxlQAD8.cjs} +1 -1
  164. package/dist/init-BJE1ry0O.js +17 -0
  165. package/dist/{init-BVnI4z2J.js → init-BPKBVOHU.js} +2 -2
  166. package/dist/{init-bdqZBd-o.js → init-BSP_xcpB.js} +2 -2
  167. package/dist/{init-CFNOn3lo.js → init-BSd7mznK.js} +3 -3
  168. package/dist/{init-MjR4swi6.js → init-BUJTT0MN.js} +36 -43
  169. package/dist/init-BUpFzYsD.cjs +143 -0
  170. package/dist/{init-BvpYHyLH.cjs → init-BZ-WyAIL.cjs} +3 -3
  171. package/dist/init-BZdfdLX7.js +422 -0
  172. package/dist/{init-CJeOys1w.cjs → init-B_HWNXMD.cjs} +2 -2
  173. package/dist/init-BbIMt6xU.cjs +6 -0
  174. package/dist/{init-BYdN1aqE.cjs → init-BewG6swt.cjs} +2 -2
  175. package/dist/{init-BX0AZAVH2.js → init-Bilqsbng.js} +2 -2
  176. package/dist/{init-Tpn9VkFu.cjs → init-BpwlQ6wF.cjs} +1 -1
  177. package/dist/{init-D5-P0HXK.js → init-BtQOzUjX.js} +1 -1
  178. package/dist/{init-BvGz3qUd2.js → init-CCTscPaY2.js} +2 -2
  179. package/dist/{init-D4hPipCD.cjs → init-CH0yyBof.cjs} +1 -1
  180. package/dist/init-CaIkrXal.cjs +121 -0
  181. package/dist/init-CkZy4IMf.cjs +107 -0
  182. package/dist/{init-Drr2f_Pr.js → init-CmfcY7SV.js} +1 -1
  183. package/dist/{init-Kf3_OLv6.js → init-CnJAlks_.js} +1 -1
  184. package/dist/{init-Cdjt_z-b.cjs → init-CqqmtAIK.cjs} +4 -4
  185. package/dist/{init-Bb0avZeZ.js → init-Cu2znmIc.js} +5 -5
  186. package/dist/init-Cz5LAizN.js +2001 -0
  187. package/dist/init-D4WM3-Mn.cjs +18 -0
  188. package/dist/init-DMi2FGpf.cjs +424 -0
  189. package/dist/{init-lcaUSOOG.js → init-DPTJohPd.js} +1 -1
  190. package/dist/{init-BTYLMF9F2.cjs → init-DexLSprL2.cjs} +258 -61
  191. package/dist/init-DfKPgD21.js +106 -0
  192. package/dist/init-DgzRsI-C.js +141 -0
  193. package/dist/init-Dj4Cn7-P.js +4789 -0
  194. package/dist/init-DktAnYI0.cjs +2354 -0
  195. package/dist/{init-DFwhgert.cjs → init-DmyuM9Lo.cjs} +1 -1
  196. package/dist/{init-CX_zLXc6.js → init-IBnizp1U.js} +5 -5
  197. package/dist/init-MDKB6tGI2.cjs +4790 -0
  198. package/dist/{init-DbZ5byj42.js → init-TbB38KNt2.js} +258 -60
  199. package/dist/init-X6m_cqDy.js +2353 -0
  200. package/dist/{init-DvVgKCaP2.cjs → init-bzvl1JhF.cjs} +2 -2
  201. package/dist/{init-BgrY29gW.js → init-dsYkC_0B.js} +4 -4
  202. package/dist/{init-B5BsI3DR.cjs → init-kvn5FlPS.cjs} +7 -7
  203. package/dist/init-vfy9DW_E.js +119 -0
  204. package/dist/{init-BE_6Jyc4.js → init-w7xl6LsP.js} +3 -3
  205. package/dist/{init-DEsWVyn5.cjs → init-wgiBUmyW.cjs} +1 -1
  206. package/dist/{is-retriable-error-DWv_ob-f.js → is-retriable-error-CmFR20pe.js} +1 -1
  207. package/dist/{is-retriable-error-Dtb4JGjd.cjs → is-retriable-error-D2yo0_lS.cjs} +1 -1
  208. package/dist/jubjub-authoriser-A2c8vmkN.js +84 -0
  209. package/dist/jubjub-authoriser-D3ZDgzcF.cjs +85 -0
  210. package/dist/key-source-CcLTx8HK.js +2761 -0
  211. package/dist/key-source-D2tTAag-.cjs +806 -0
  212. package/dist/{key-value-store-DTX1quRS.js → key-value-store-DZcNDB3n.js} +1 -1
  213. package/dist/{key-value-store-B-XRIwaM.cjs → key-value-store-Htj4RgMe.cjs} +1 -1
  214. package/dist/keyDerivation-DcKRUCVh.cjs +274 -0
  215. package/dist/keyDerivation-QGesIMbS.js +4077 -0
  216. package/dist/{lace-context-FpU3iG3f.cjs → lace-context-BN0b_ury.cjs} +4 -4
  217. package/dist/{lace-context-BQvvxVLm.js → lace-context-DMRJ87Vg.js} +4 -4
  218. package/dist/lib-BC-62Byh.cjs +2359 -0
  219. package/dist/lib-JYqcAX0c.js +2354 -0
  220. package/dist/midnight-account-id.vo--Vcx34Xk.cjs +10 -0
  221. package/dist/midnight-account-id.vo-BuB8fiVO.js +5 -0
  222. package/dist/midnight-engine-B7D2hbHo.js +5 -0
  223. package/dist/midnight-engine-D5ikN_5F.cjs +6 -0
  224. package/dist/midnight-wallet-BOdFD6SX.cjs +24 -0
  225. package/dist/midnight-wallet-CAqZrNVe.js +18 -0
  226. package/dist/midnight.cjs +1412 -0
  227. package/dist/midnight.d.ts +28609 -0
  228. package/dist/midnight.js +1355 -0
  229. package/dist/modules-cardano-BiL9hoM3.js +996 -0
  230. package/dist/modules-cardano-UeXks3sd.cjs +1109 -0
  231. package/dist/node-relay-BOuvdZvC.cjs +49 -0
  232. package/dist/node-relay-CLtc5n1v.js +48 -0
  233. package/dist/outputs-5qdW8s-f.js +196 -0
  234. package/dist/outputs-BEM1GPMf.cjs +339 -0
  235. package/dist/{SodiumBip32Ed25519-BQUcrQWX.cjs → pbkdf2-B1veireP.cjs} +6 -411
  236. package/dist/pending-operation-CfTUNQVD.cjs +26 -0
  237. package/dist/pending-operation-Ljijb1Uh.js +21 -0
  238. package/dist/providers-1on_fwJO.cjs +364 -0
  239. package/dist/providers-C1MsxfMA.js +341 -0
  240. package/dist/redacted-4SJPqt-G.js +81 -0
  241. package/dist/redacted-DwxIDdIF.cjs +86 -0
  242. package/dist/{reselect-DPML1uFN.cjs → reselect-kP4DaAII.cjs} +1 -1
  243. package/dist/{retry-config-oNtfdyrG.cjs → retry-config-BGv5q5QM.cjs} +1 -1
  244. package/dist/{retry-config-VdbuqBsI.js → retry-config-Bu5Yn5ua.js} +1 -1
  245. package/dist/safe-buffer-CqGpSFCQ.js +43 -0
  246. package/dist/safe-buffer-DbXbwhUQ.cjs +48 -0
  247. package/dist/sdk-1SRu8Ype.cjs +1445 -0
  248. package/dist/sdk-BneJm7ey.js +1249 -0
  249. package/dist/sdk-init-9TG1ZvHF.cjs +3795 -0
  250. package/dist/sdk-init-Ce3mD-8F.js +1047 -0
  251. package/dist/secret-box-CSmRp6Tt.js +3777 -0
  252. package/dist/secret-box-ZfbYwBgS.cjs +6970 -0
  253. package/dist/send-proof-progress-DtAcrMP6.cjs +33 -0
  254. package/dist/send-proof-progress-Dx2cUz1B.js +22 -0
  255. package/dist/sha2-DaRJZOjk.cjs +390 -0
  256. package/dist/sha2-c4sB6peD.js +378 -0
  257. package/dist/side-effects-C3BhLrdP.js +768 -0
  258. package/dist/side-effects-DG0R-KFc.cjs +804 -0
  259. package/dist/sign-bitcoin-transaction-with-seed-C7vq9om8.js +147 -0
  260. package/dist/sign-bitcoin-transaction-with-seed-Ds1dwzan.cjs +158 -0
  261. package/dist/signer--2I6poMD.js +2 -0
  262. package/dist/signer-CX21Ups_.cjs +121 -0
  263. package/dist/signer-Cnn9q9oY.js +92 -0
  264. package/dist/signer-DbSxjk0F.cjs +7 -0
  265. package/dist/signer-factory-B5oFuUZ-.cjs +130 -0
  266. package/dist/signer-factory-BAt8FPNc.cjs +281 -0
  267. package/dist/signer-factory-BGE4nL4k.js +129 -0
  268. package/dist/signer-factory-C4pgsiJi.js +281 -0
  269. package/dist/{signer-factory-DySc1wRX.cjs → signer-factory-D95jQIPV.cjs} +9 -6
  270. package/dist/{signer-factory-D4HrwFPl.js → signer-factory-PrpsGX-8.js} +10 -6
  271. package/dist/{slice-BZTQgYSs.js → slice-B-xJcuT1.js} +4 -4
  272. package/dist/slice-B4QOYaOG.cjs +105 -0
  273. package/dist/{slice-CtIMw2YT.cjs → slice-B9QKuhi0.cjs} +3 -3
  274. package/dist/slice-BKnGkAkd.cjs +9031 -0
  275. package/dist/{slice-Bhwmqn1p.cjs → slice-Bf4enJKZ.cjs} +8 -8
  276. package/dist/{slice-DaNVz7_l.js → slice-ByNWnxKS.js} +8 -8
  277. package/dist/{slice-C2UDQrdt.js → slice-C1zOeseG.js} +449 -355
  278. package/dist/{slice-DFLyKRm5.cjs → slice-C4toRM6A.cjs} +2 -2
  279. package/dist/{slice-Cx4dULDA.cjs → slice-C8YVv4Qn.cjs} +1 -1
  280. package/dist/{slice-jnpOgiSZ.cjs → slice-CaMfviYu.cjs} +3 -3
  281. package/dist/{slice-DFvrwUur.js → slice-CgeRsYRg.js} +6 -6
  282. package/dist/slice-Cwt8jShq.js +9013 -0
  283. package/dist/{slice-zNEspZND.js → slice-D0VzpMbY.js} +2 -2
  284. package/dist/slice-D14F78Ca.js +87 -0
  285. package/dist/{slice-F6A1YKOF.cjs → slice-DLflttAu.cjs} +479 -366
  286. package/dist/{slice-C96EdeY1.js → slice-DcO-iNz2.js} +1 -1
  287. package/dist/{slice-C19quNWM.cjs → slice-DimtxfAT.cjs} +2 -2
  288. package/dist/{slice-KiNoGwD9.js → slice-DlTEqIoI.js} +1 -1
  289. package/dist/{slice-ws8PccRX.js → slice-Dn0WojD7.js} +3 -3
  290. package/dist/{slice-BLSxLmie.cjs → slice-Dongunf7.cjs} +4 -4
  291. package/dist/{slice-B6vPum19.js → slice-DpufJAjJ.js} +2 -2
  292. package/dist/{slice-exhhmucR.cjs → slice-DtitVc9L.cjs} +7 -7
  293. package/dist/{slice-Bjj2t2ut.cjs → slice-WMMMc1Xv.cjs} +2 -2
  294. package/dist/slice-a8VuIqzS.cjs +378 -0
  295. package/dist/slice-bRASyM-m.js +354 -0
  296. package/dist/{slice-CBFrgHSH.js → slice-hNyKbDry.js} +3 -3
  297. package/dist/{InMemoryKeyAgent-pyB2gA-N.cjs → src-BayYMIjw.cjs} +20 -8228
  298. package/dist/{InMemoryKeyAgent-D-3HejxN.js → src-CgINPlSx.js} +29 -4811
  299. package/dist/store-AUlTfcI_.js +37 -0
  300. package/dist/store-C7AneHEY.cjs +66 -0
  301. package/dist/submit-BuBCVi-l.cjs +87 -0
  302. package/dist/submit-D37lxFrK.js +70 -0
  303. package/dist/submit-bitcoin-tx-DFLnhidO.js +983 -0
  304. package/dist/submit-bitcoin-tx-sih2hSfb.cjs +1049 -0
  305. package/dist/{subtractValueQuantities-DfZg6oiG.js → subtractValueQuantities-BuDJVxq6.js} +3 -22
  306. package/dist/{subtractValueQuantities-C8qDTtgH.cjs → subtractValueQuantities-CqR606HV.cjs} +2 -32
  307. package/dist/{sync-operation-utils-BrQyWFS_.cjs → sync-operation-utils--Z_IQfyW.cjs} +0 -66
  308. package/dist/{sync-operation-utils-CAaCGvEN.js → sync-operation-utils-BimBpvI3.js} +1 -37
  309. package/dist/token-color.vo-CItgoOjw.js +26 -0
  310. package/dist/token-color.vo-Ca4hUXfh.cjs +37 -0
  311. package/dist/token-id-mapper-BVau2RXa.js +16 -0
  312. package/dist/token-id-mapper-CSeLzM4o.cjs +18 -0
  313. package/dist/{token-id-mapper-pDaTxpw2.js → token-id-mapper-ClBeIdJR.js} +2 -2
  314. package/dist/{token-id-mapper-DYcd8hhQ.cjs → token-id-mapper-D0wFdbOy.cjs} +2 -2
  315. package/dist/types-BhzypKMS.cjs +15 -0
  316. package/dist/types-DTE1ctDB.js +10 -0
  317. package/dist/types-DXSxXGz0.js +12 -0
  318. package/dist/types-Dls6Z5gV.cjs +23 -0
  319. package/dist/{util-P4PX2muj.cjs → util-D1YlKzrc.cjs} +2 -2
  320. package/dist/{util-CQSJU0wT.js → util-DHxtzUzY.js} +2 -2
  321. package/dist/{utils-Bv4OHT4S.cjs → utils-DYf4iZKX.cjs} +7 -1
  322. package/dist/{utils-DrtzChYN.js → utils-DcnoETEP.js} +2 -2
  323. package/dist/utils-Du0YXRcU.cjs +112 -0
  324. package/dist/utils-fF_rnZe3.js +65 -0
  325. package/dist/v8Signatures-ClGpA8mS.cjs +71 -0
  326. package/dist/{vote-delegation-tx-builder-69gOEkCB.cjs → vote-delegation-tx-builder-BjZxCOd3.cjs} +9 -8
  327. package/dist/{vote-delegation-tx-builder-BRJ_pf-c.js → vote-delegation-tx-builder-DRJwPXkD.js} +9 -7
  328. package/dist/watch-FGE4B_Ge.js +13056 -0
  329. package/dist/watch-imlsRZDp.cjs +52207 -0
  330. package/package.json +95 -3
  331. package/dist/Address-4KjeDt_x.cjs +0 -17269
  332. package/dist/Address-_VPkf7Xh.js +0 -17101
  333. package/dist/account-guards.stable-BKyYPj4z.cjs +0 -10
  334. package/dist/account-guards.stable-BdmQ43vC.js +0 -5
  335. package/dist/init-BR9ZIbED.cjs +0 -378
  336. package/dist/init-B_k1RUN_.cjs +0 -21
  337. package/dist/init-Bs3b5ZQH.js +0 -378
  338. package/dist/init-ChfcrHgG2.cjs +0 -4354
  339. package/dist/init-D1uUMMpG.js +0 -19
  340. package/dist/init-DV1OSZiK.js +0 -4352
  341. package/dist/modules-cardano-BINzpXpk.js +0 -5454
  342. package/dist/modules-cardano-Dt8OwoQb.cjs +0 -5640
  343. package/dist/slice-Caf98m0d2.js +0 -107
  344. package/dist/slice-PM6llajQ2.cjs +0 -125
  345. /package/dist/{BigIntMath-CoJWXt1h.cjs → BigIntMath-CBciEQn2.cjs} +0 -0
  346. /package/dist/{BigIntMath-BWUJOsOW.js → BigIntMath-X3EniYDo.js} +0 -0
  347. /package/dist/{ChainId-sdLmlIRk.cjs → ChainId-CNPSU9nn.cjs} +0 -0
  348. /package/dist/{ChainId-CKbm87yQ.js → ChainId-CeoG8Sov.js} +0 -0
  349. /package/dist/{_polyfill-node.process-4fnlkbBi.cjs → _polyfill-node.process-5UxyjoHG.cjs} +0 -0
  350. /package/dist/{account-id.vo-Xpgnu-av.cjs → account-id.vo-DYZBZQsz.cjs} +0 -0
  351. /package/dist/{account-id.vo-DP0BtOoF.js → account-id.vo-KDTWJ-W5.js} +0 -0
  352. /package/dist/{actions-BNagEO6m.cjs → actions-BnHFVSr_.cjs} +0 -0
  353. /package/dist/{actions-BWTyAr7B.js → actions-Cwj0ApZf.js} +0 -0
  354. /package/dist/{asyncoption-po7-RiA5.cjs → asyncoption-CYcZNBRM.cjs} +0 -0
  355. /package/dist/{asyncoption-CzIVH5Y1.js → asyncoption-DZQGfznq.js} +0 -0
  356. /package/dist/{bignum.vo-DhhZ9HP1.js → bignum.vo-Co6tMH2q.js} +0 -0
  357. /package/dist/{bignum.vo-CpkrIXjH.cjs → bignum.vo-Du-bpvar.cjs} +0 -0
  358. /package/dist/{blockchain-network-id.vo-CbgrAY_K.js → blockchain-network-id.vo-C6Jowh8t.js} +0 -0
  359. /package/dist/{blockchain-network-id.vo-5iC6Kffo.cjs → blockchain-network-id.vo-DEQ14dYj.cjs} +0 -0
  360. /package/dist/{composite-signer-factory-DABpCe1_.js → composite-signer-factory-D9RWY-1V.js} +0 -0
  361. /package/dist/{composite-signer-factory-BizuNPP7.cjs → composite-signer-factory-v4Pxn8bA.cjs} +0 -0
  362. /package/dist/{error-ggOihIfv.cjs → error-B6wj9nPv.cjs} +0 -0
  363. /package/dist/{error-DHKO2iS4.js → error-CvEYL98P.js} +0 -0
  364. /package/dist/{esm-browser-DnXNvpcn.cjs → esm-browser-CZbMeVod.cjs} +0 -0
  365. /package/dist/{esm-browser-BBVQuyQv.js → esm-browser-DpAD_RKv.js} +0 -0
  366. /package/dist/{feature-flag-key.vo-DoGK5Bfh.js → feature-flag-key.vo-9reURsOQ.js} +0 -0
  367. /package/dist/{feature-flag-key.vo-CP1Z9s8e.cjs → feature-flag-key.vo-KTIdnzYX.cjs} +0 -0
  368. /package/dist/{first-state-of-status-Bx4-QQ5m.cjs → first-state-of-status-9ICeDNSa.cjs} +0 -0
  369. /package/dist/{first-state-of-status-D7XzEuSa.js → first-state-of-status-BscbKj_t.js} +0 -0
  370. /package/dist/{init-4319psUJ.cjs → init-BT67pd9x.cjs} +0 -0
  371. /package/dist/{init-AFUM1TSg.js → init-CHk1fvJ2.js} +0 -0
  372. /package/dist/{init-ZX90nEJe2.js → init-DIyNx6DZ.js} +0 -0
  373. /package/dist/{init-CTQ2g6Xt.js → init-DtxxFaCx.js} +0 -0
  374. /package/dist/{init-Dt1Xifg_2.cjs → init-J8QobR93.cjs} +0 -0
  375. /package/dist/{init-BNewLCqw.cjs → init-xzZPlQwB.cjs} +0 -0
  376. /package/dist/{is-redux-persist-state-DxJSsvxB.cjs → is-redux-persist-state-C5luvPEH.cjs} +0 -0
  377. /package/dist/{is-redux-persist-state-Bl2n4VMr.js → is-redux-persist-state-CjcqyCoh.js} +0 -0
  378. /package/dist/{isNotNil-CZxBMfL5.js → isNotNil-Be7gCY0m.js} +0 -0
  379. /package/dist/{isNotNil-C_SO1tcC.cjs → isNotNil-CrYIUFry.cjs} +0 -0
  380. /package/dist/{logging-BvMDKgl0.js → logging-BAMMfn5j.js} +0 -0
  381. /package/dist/{logging-Bh9ikph3.cjs → logging-CbxgIX9V.cjs} +0 -0
  382. /package/dist/{metadatum-B-sxBnSY.cjs → metadatum-BGvFqGPt.cjs} +0 -0
  383. /package/dist/{metadatum-Ego4jVas.js → metadatum-BVocMYy_.js} +0 -0
  384. /package/dist/{repo-slice-BzZQUTj8.cjs → repo-slice-BB_W-6OL.cjs} +0 -0
  385. /package/dist/{repo-slice-vCcQJotS.js → repo-slice-BQlssw9M.js} +0 -0
  386. /package/dist/{reselect-BPkMzw3k.js → reselect-JIgawvPe.js} +0 -0
  387. /package/dist/{serializable-BxFUShKY.js → serializable-F7OtYl8d.js} +0 -0
  388. /package/dist/{serializable-DWgkHhv_.cjs → serializable-n3UoxbZc.cjs} +0 -0
  389. /package/dist/{slice-DY-DNtSi.js → slice-5dGBAz6w.js} +0 -0
  390. /package/dist/{slice-BEFoeqgr.cjs → slice-BzJgg9FS.cjs} +0 -0
  391. /package/dist/{src-CPmX4KUh.cjs → src-CeBNkonz.cjs} +0 -0
  392. /package/dist/{src-XOZXPKxe.js → src-Cv1ifqbe.js} +0 -0
  393. /package/dist/{time-CQPt4FdU.js → time-ByoKevdZ.js} +0 -0
  394. /package/dist/{time-Blvoyh9G.cjs → time-qD7edGU0.cjs} +0 -0
  395. /package/dist/{time.vo-Xln4yGBU.js → time.vo-C17-tYq3.js} +0 -0
  396. /package/dist/{time.vo-rwWwJzmP.cjs → time.vo-TmYE-_Y2.cjs} +0 -0
  397. /package/dist/{toEmpty-CzmoZVLN.cjs → toEmpty-Db6V94Mf.cjs} +0 -0
  398. /package/dist/{toEmpty-DzLd-ZCi.js → toEmpty-Djj-QbpI.js} +0 -0
  399. /package/dist/{token-id.vo-l8fuSpem.cjs → token-id.vo-CZ622zcZ.cjs} +0 -0
  400. /package/dist/{token-id.vo-DMKSaMlc.js → token-id.vo-IDI9C_Qm.js} +0 -0
  401. /package/dist/{types-B61DQoFW.js → types-By-XeXWg.js} +0 -0
  402. /package/dist/{types-CUC-Kcqh.cjs → types-Cn6WlQV6.cjs} +0 -0
  403. /package/dist/{util-BV3iGOrz.cjs → util-Cp1h58uD.cjs} +0 -0
  404. /package/dist/{util-BsQKLorV.js → util-DHppXj7U.js} +0 -0
  405. /package/dist/{util-selector-CKIyoAOz.js → util-selector-BWmHpo92.js} +0 -0
  406. /package/dist/{util-selector-C9H5RsNw.cjs → util-selector-glXkO-jR.cjs} +0 -0
  407. /package/dist/{while-active-CNXeLxre.js → while-active-CDBnUlQA.js} +0 -0
  408. /package/dist/{while-active-BsDWSNrO.cjs → while-active-I2TlHtm7.cjs} +0 -0
@@ -0,0 +1,239 @@
1
+ import { Bt as AssetName, Dt as PlutusLanguageVersion, Ft as BaseAddress, Mt as CborWriter, Nt as CborReader, Ot as ScriptType, P as RewardAccount, Vt as PolicyId, ft as Script, nt as PlutusData, r as CredentialType, zt as AssetId } from "./Address-_c_-9hLC.js";
2
+ import { n as NetworkId, r as NetworkMagics } from "./ChainId-CeoG8Sov.js";
3
+ import { a as isCardanoAccount } from "./util-DHxtzUzY.js";
4
+ import { d as fail, f as ok, l as findCustodyContractVersion, n as hexToBytes, r as isHash28Hex, t as bytesToHex } from "./hex-CGYJPK_Z.js";
5
+ //#region ../../packages/contract/cardano-context/src/custody/account.ts
6
+ /** Whether `account` is a Cardano custody account. */
7
+ const isCardanoCustodyAccount = (account) => isCardanoAccount(account) && account.accountType === "CardanoCustody";
8
+ //#endregion
9
+ //#region ../../packages/lib/cardano-custody/src/stake-script.ts
10
+ /** Flat-encoded program version 1.1.0: three one-byte naturals. */
11
+ const PROGRAM_VERSION = [
12
+ 1,
13
+ 1,
14
+ 0
15
+ ];
16
+ const PROGRAM_VERSION_BITS = PROGRAM_VERSION.length * 8;
17
+ const APPLY_TERM_TAG = 3;
18
+ const CONSTANT_TERM_TAG = 4;
19
+ const DATA_TYPE_TAG = 8;
20
+ const TERM_TAG_BITS = 4;
21
+ /** Writes the flat encoding: bits fill each byte from the most significant end. */
22
+ var FlatWriter = class {
23
+ bytes = [];
24
+ pending = 0;
25
+ pendingBits = 0;
26
+ get byteLength() {
27
+ return this.bytes.length;
28
+ }
29
+ writeBits(value, count) {
30
+ for (let shift = count - 1; shift >= 0; shift--) this.writeBit(value >> shift & 1);
31
+ }
32
+ writeBit(bit) {
33
+ this.pending = this.pending << 1 | bit;
34
+ this.pendingBits++;
35
+ if (this.pendingBits === 8) {
36
+ this.bytes.push(this.pending);
37
+ this.pending = 0;
38
+ this.pendingBits = 0;
39
+ }
40
+ }
41
+ /** Zero or more 0 bits and a closing 1 bit, ending on a byte boundary. */
42
+ writeFiller() {
43
+ while (this.pendingBits !== 7) this.writeBit(0);
44
+ this.writeBit(1);
45
+ }
46
+ /** Callers write whole bytes only after a filler or other whole bytes. */
47
+ writeAlignedBytes(bytes) {
48
+ this.bytes.push(...bytes);
49
+ }
50
+ toBytes() {
51
+ return Uint8Array.from(this.bytes);
52
+ }
53
+ };
54
+ const bitAt = (bytes, position) => bytes[position >> 3] >> 7 - (position & 7) & 1;
55
+ /**
56
+ * Applies one Plutus Data byte-string parameter: a constant term of type
57
+ * `[data]` whose value is the CBOR of the data, as a flat byte string.
58
+ * Returns the offset, in the flat output, of the parameter's raw bytes.
59
+ */
60
+ const writeDataBytesConstant = (writer, parameter) => {
61
+ writer.writeBits(CONSTANT_TERM_TAG, TERM_TAG_BITS);
62
+ writer.writeBit(1);
63
+ writer.writeBits(DATA_TYPE_TAG, TERM_TAG_BITS);
64
+ writer.writeBit(0);
65
+ const cbor = hexToBytes(PlutusData.newBytes(parameter).toCbor());
66
+ writer.writeFiller();
67
+ writer.writeAlignedBytes([cbor.length]);
68
+ const parameterOffset = writer.byteLength + cbor.length - parameter.length;
69
+ writer.writeAlignedBytes(cbor);
70
+ writer.writeAlignedBytes([0]);
71
+ return parameterOffset;
72
+ };
73
+ /** The flat program a blueprint's compiled code wraps in one CBOR byte string. */
74
+ const unwrapCompiledCode = (compiledCode) => new CborReader(compiledCode).readByteString();
75
+ const assertUnappliedProgramShape = (program, bodyBitLength) => {
76
+ if (PROGRAM_VERSION.some((byte, index) => program[index] !== byte)) throw new Error("The stake validator is not a version 1.1.0 program");
77
+ const bodyEnd = PROGRAM_VERSION_BITS + bodyBitLength;
78
+ const fillerBits = program.length * 8 - bodyEnd;
79
+ 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`);
80
+ };
81
+ /**
82
+ * Builds what `aiken blueprint apply` produces for the owner, then the
83
+ * account validator hash: the unapplied body under two Apply terms, followed
84
+ * by one Data byte-string constant per parameter. The two Apply tags take
85
+ * exactly one byte, so the body bits keep their position within each byte
86
+ * and the owner always lands at the same offset.
87
+ */
88
+ const buildStakeScriptTemplate = (version) => {
89
+ const { compiledCode, bodyBitLength } = version.unappliedStakeValidator;
90
+ const program = unwrapCompiledCode(compiledCode);
91
+ assertUnappliedProgramShape(program, bodyBitLength);
92
+ const writer = new FlatWriter();
93
+ writer.writeAlignedBytes(PROGRAM_VERSION);
94
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
95
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
96
+ for (let index = 0; index < bodyBitLength; index++) writer.writeBit(bitAt(program, PROGRAM_VERSION_BITS + index));
97
+ const ownerFlatOffset = writeDataBytesConstant(writer, new Uint8Array(28));
98
+ writeDataBytesConstant(writer, hexToBytes(version.accountValidatorHash));
99
+ writer.writeFiller();
100
+ const flat = writer.toBytes();
101
+ const wrapped = new CborWriter().writeByteString(flat).encode();
102
+ return {
103
+ compiledCode: wrapped,
104
+ ownerOffset: wrapped.length - flat.length + ownerFlatOffset
105
+ };
106
+ };
107
+ const templates = /* @__PURE__ */ new Map();
108
+ const templateFor = (version) => {
109
+ let template = templates.get(version.accountValidatorHash);
110
+ if (!template) {
111
+ template = buildStakeScriptTemplate(version);
112
+ templates.set(version.accountValidatorHash, template);
113
+ }
114
+ return template;
115
+ };
116
+ /**
117
+ * The compiled code of an account's stake script: the version's stake
118
+ * validator applied to the owner (creator) key hash and then to the
119
+ * version's account validator hash. Byte for byte what the Aiken CLI emits.
120
+ *
121
+ * @param ownerKeyHash - lower-case hex of exactly 28 bytes, checked by the caller
122
+ */
123
+ const applyStakeValidatorToOwner = (version, ownerKeyHash) => {
124
+ const { compiledCode, ownerOffset } = templateFor(version);
125
+ const applied = compiledCode.slice();
126
+ applied.set(hexToBytes(ownerKeyHash), ownerOffset);
127
+ return bytesToHex(applied);
128
+ };
129
+ //#endregion
130
+ //#region ../../packages/lib/cardano-custody/src/identity.ts
131
+ /**
132
+ * Derives the identity of a creator key hash and chain id the caller has
133
+ * already validated.
134
+ */
135
+ const identityOfValidatedCreator = ({ contractVersion, creatorKeyHash, chainId }) => {
136
+ const stakeScript = {
137
+ __type: ScriptType.Plutus,
138
+ bytes: applyStakeValidatorToOwner(contractVersion, creatorKeyHash),
139
+ version: PlutusLanguageVersion.V3
140
+ };
141
+ const stakeScriptHash = Script.fromCore(stakeScript).hash();
142
+ const stakeCredential = {
143
+ type: CredentialType.ScriptHash,
144
+ hash: stakeScriptHash
145
+ };
146
+ return {
147
+ contractVersion,
148
+ chainId,
149
+ creatorKeyHash,
150
+ stakeScript,
151
+ stakeScriptHash,
152
+ address: BaseAddress.fromCredentials(chainId.networkId, {
153
+ type: CredentialType.ScriptHash,
154
+ hash: contractVersion.accountValidatorHash
155
+ }, stakeCredential).toAddress().toBech32(),
156
+ rewardAccount: RewardAccount.fromCredential(stakeCredential, chainId.networkId),
157
+ stateNftAssetId: AssetId.fromParts(PolicyId(contractVersion.accountValidatorHash), AssetName(stakeScriptHash))
158
+ };
159
+ };
160
+ const MAINNET_NETWORK_MAGIC = NetworkMagics.Mainnet;
161
+ /**
162
+ * The chain a network magic names. Records carry only the magic; every
163
+ * Cardano network except mainnet uses network id 0.
164
+ */
165
+ const chainIdFromNetworkMagic = (networkMagic) => ({
166
+ networkId: networkMagic === MAINNET_NETWORK_MAGIC ? NetworkId.Mainnet : NetworkId.Testnet,
167
+ networkMagic
168
+ });
169
+ /** Whether a value is a network magic: a 32-bit unsigned integer. */
170
+ const isNetworkMagic = (value) => typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 4294967295;
171
+ /**
172
+ * Whether a chain id is one a record can name: the record keeps only the
173
+ * magic, so the network id must be the one the magic implies.
174
+ */
175
+ const isConsistentChainId = ({ networkId, networkMagic }) => isNetworkMagic(networkMagic) && networkId === chainIdFromNetworkMagic(networkMagic).networkId;
176
+ /**
177
+ * The identity of the account a creator key hash creates on a chain. Refuses
178
+ * a key hash that is not lower-case hex of exactly 28 bytes, and a chain id
179
+ * whose network id contradicts its network magic, such as network id 0 with
180
+ * the mainnet magic.
181
+ */
182
+ const deriveCustodyAccountIdentity = (params) => {
183
+ if (!isConsistentChainId(params.chainId)) return fail({
184
+ code: "invalid-chain-id",
185
+ chainId: params.chainId
186
+ });
187
+ return isHash28Hex(params.creatorKeyHash) ? ok(identityOfValidatedCreator(params)) : fail({
188
+ code: "invalid-key-hash",
189
+ keyHash: params.creatorKeyHash
190
+ });
191
+ };
192
+ //#endregion
193
+ //#region ../../packages/contract/cardano-context/src/custody/identity.ts
194
+ /**
195
+ * Re-derives a persisted custody account's identity from its contract
196
+ * version, creator key hash and chain, and refuses it unless the stored
197
+ * stake script hash, address and reward account are exactly the derived
198
+ * ones. Persisted props are only as trustworthy as storage, and an address
199
+ * the contract does not govern for this creator must never be synced or
200
+ * shown as the account.
201
+ */
202
+ const verifyCardanoCustodyAccountIdentity = (stored) => {
203
+ const contractVersion = findCustodyContractVersion(stored.accountValidatorHash);
204
+ if (!contractVersion.ok) return contractVersion;
205
+ const derived = deriveCustodyAccountIdentity({
206
+ contractVersion: contractVersion.value,
207
+ creatorKeyHash: stored.creatorKeyHash,
208
+ chainId: stored.chainId
209
+ });
210
+ if (!derived.ok) return derived;
211
+ const mismatch = [
212
+ [
213
+ "stakeScriptHash",
214
+ stored.stakeScriptHash,
215
+ derived.value.stakeScriptHash
216
+ ],
217
+ [
218
+ "address",
219
+ stored.address,
220
+ derived.value.address
221
+ ],
222
+ [
223
+ "rewardAccount",
224
+ stored.rewardAccount,
225
+ derived.value.rewardAccount
226
+ ]
227
+ ].find(([, storedValue, derivedValue]) => storedValue !== derivedValue);
228
+ return mismatch ? {
229
+ ok: false,
230
+ error: {
231
+ code: "identity-mismatch",
232
+ field: mismatch[0],
233
+ stored: mismatch[1],
234
+ derived: mismatch[2]
235
+ }
236
+ } : derived;
237
+ };
238
+ //#endregion
239
+ export { isNetworkMagic as a, identityOfValidatedCreator as i, chainIdFromNetworkMagic as n, isCardanoCustodyAccount as o, deriveCustodyAccountIdentity as r, verifyCardanoCustodyAccountIdentity as t };
@@ -0,0 +1,274 @@
1
+ const require_Address = require("./Address-AMKTo-dA.cjs");
2
+ const require_ChainId = require("./ChainId-CNPSU9nn.cjs");
3
+ const require_util = require("./util-D1YlKzrc.cjs");
4
+ const require_hex = require("./hex-BVtOKJki.cjs");
5
+ //#region ../../packages/contract/cardano-context/src/custody/account.ts
6
+ /** Whether `account` is a Cardano custody account. */
7
+ const isCardanoCustodyAccount = (account) => require_util.isCardanoAccount(account) && account.accountType === "CardanoCustody";
8
+ //#endregion
9
+ //#region ../../packages/lib/cardano-custody/src/stake-script.ts
10
+ /** Flat-encoded program version 1.1.0: three one-byte naturals. */
11
+ const PROGRAM_VERSION = [
12
+ 1,
13
+ 1,
14
+ 0
15
+ ];
16
+ const PROGRAM_VERSION_BITS = PROGRAM_VERSION.length * 8;
17
+ const APPLY_TERM_TAG = 3;
18
+ const CONSTANT_TERM_TAG = 4;
19
+ const DATA_TYPE_TAG = 8;
20
+ const TERM_TAG_BITS = 4;
21
+ /** Writes the flat encoding: bits fill each byte from the most significant end. */
22
+ var FlatWriter = class {
23
+ bytes = [];
24
+ pending = 0;
25
+ pendingBits = 0;
26
+ get byteLength() {
27
+ return this.bytes.length;
28
+ }
29
+ writeBits(value, count) {
30
+ for (let shift = count - 1; shift >= 0; shift--) this.writeBit(value >> shift & 1);
31
+ }
32
+ writeBit(bit) {
33
+ this.pending = this.pending << 1 | bit;
34
+ this.pendingBits++;
35
+ if (this.pendingBits === 8) {
36
+ this.bytes.push(this.pending);
37
+ this.pending = 0;
38
+ this.pendingBits = 0;
39
+ }
40
+ }
41
+ /** Zero or more 0 bits and a closing 1 bit, ending on a byte boundary. */
42
+ writeFiller() {
43
+ while (this.pendingBits !== 7) this.writeBit(0);
44
+ this.writeBit(1);
45
+ }
46
+ /** Callers write whole bytes only after a filler or other whole bytes. */
47
+ writeAlignedBytes(bytes) {
48
+ this.bytes.push(...bytes);
49
+ }
50
+ toBytes() {
51
+ return Uint8Array.from(this.bytes);
52
+ }
53
+ };
54
+ const bitAt = (bytes, position) => bytes[position >> 3] >> 7 - (position & 7) & 1;
55
+ /**
56
+ * Applies one Plutus Data byte-string parameter: a constant term of type
57
+ * `[data]` whose value is the CBOR of the data, as a flat byte string.
58
+ * Returns the offset, in the flat output, of the parameter's raw bytes.
59
+ */
60
+ const writeDataBytesConstant = (writer, parameter) => {
61
+ writer.writeBits(CONSTANT_TERM_TAG, TERM_TAG_BITS);
62
+ writer.writeBit(1);
63
+ writer.writeBits(DATA_TYPE_TAG, TERM_TAG_BITS);
64
+ writer.writeBit(0);
65
+ const cbor = require_hex.hexToBytes(require_Address.PlutusData.newBytes(parameter).toCbor());
66
+ writer.writeFiller();
67
+ writer.writeAlignedBytes([cbor.length]);
68
+ const parameterOffset = writer.byteLength + cbor.length - parameter.length;
69
+ writer.writeAlignedBytes(cbor);
70
+ writer.writeAlignedBytes([0]);
71
+ return parameterOffset;
72
+ };
73
+ /** The flat program a blueprint's compiled code wraps in one CBOR byte string. */
74
+ const unwrapCompiledCode = (compiledCode) => new require_Address.CborReader(compiledCode).readByteString();
75
+ const assertUnappliedProgramShape = (program, bodyBitLength) => {
76
+ if (PROGRAM_VERSION.some((byte, index) => program[index] !== byte)) throw new Error("The stake validator is not a version 1.1.0 program");
77
+ const bodyEnd = PROGRAM_VERSION_BITS + bodyBitLength;
78
+ const fillerBits = program.length * 8 - bodyEnd;
79
+ 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`);
80
+ };
81
+ /**
82
+ * Builds what `aiken blueprint apply` produces for the owner, then the
83
+ * account validator hash: the unapplied body under two Apply terms, followed
84
+ * by one Data byte-string constant per parameter. The two Apply tags take
85
+ * exactly one byte, so the body bits keep their position within each byte
86
+ * and the owner always lands at the same offset.
87
+ */
88
+ const buildStakeScriptTemplate = (version) => {
89
+ const { compiledCode, bodyBitLength } = version.unappliedStakeValidator;
90
+ const program = unwrapCompiledCode(compiledCode);
91
+ assertUnappliedProgramShape(program, bodyBitLength);
92
+ const writer = new FlatWriter();
93
+ writer.writeAlignedBytes(PROGRAM_VERSION);
94
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
95
+ writer.writeBits(APPLY_TERM_TAG, TERM_TAG_BITS);
96
+ for (let index = 0; index < bodyBitLength; index++) writer.writeBit(bitAt(program, PROGRAM_VERSION_BITS + index));
97
+ const ownerFlatOffset = writeDataBytesConstant(writer, new Uint8Array(28));
98
+ writeDataBytesConstant(writer, require_hex.hexToBytes(version.accountValidatorHash));
99
+ writer.writeFiller();
100
+ const flat = writer.toBytes();
101
+ const wrapped = new require_Address.CborWriter().writeByteString(flat).encode();
102
+ return {
103
+ compiledCode: wrapped,
104
+ ownerOffset: wrapped.length - flat.length + ownerFlatOffset
105
+ };
106
+ };
107
+ const templates = /* @__PURE__ */ new Map();
108
+ const templateFor = (version) => {
109
+ let template = templates.get(version.accountValidatorHash);
110
+ if (!template) {
111
+ template = buildStakeScriptTemplate(version);
112
+ templates.set(version.accountValidatorHash, template);
113
+ }
114
+ return template;
115
+ };
116
+ /**
117
+ * The compiled code of an account's stake script: the version's stake
118
+ * validator applied to the owner (creator) key hash and then to the
119
+ * version's account validator hash. Byte for byte what the Aiken CLI emits.
120
+ *
121
+ * @param ownerKeyHash - lower-case hex of exactly 28 bytes, checked by the caller
122
+ */
123
+ const applyStakeValidatorToOwner = (version, ownerKeyHash) => {
124
+ const { compiledCode, ownerOffset } = templateFor(version);
125
+ const applied = compiledCode.slice();
126
+ applied.set(require_hex.hexToBytes(ownerKeyHash), ownerOffset);
127
+ return require_hex.bytesToHex(applied);
128
+ };
129
+ //#endregion
130
+ //#region ../../packages/lib/cardano-custody/src/identity.ts
131
+ /**
132
+ * Derives the identity of a creator key hash and chain id the caller has
133
+ * already validated.
134
+ */
135
+ const identityOfValidatedCreator = ({ contractVersion, creatorKeyHash, chainId }) => {
136
+ const stakeScript = {
137
+ __type: require_Address.ScriptType.Plutus,
138
+ bytes: applyStakeValidatorToOwner(contractVersion, creatorKeyHash),
139
+ version: require_Address.PlutusLanguageVersion.V3
140
+ };
141
+ const stakeScriptHash = require_Address.Script.fromCore(stakeScript).hash();
142
+ const stakeCredential = {
143
+ type: require_Address.CredentialType.ScriptHash,
144
+ hash: stakeScriptHash
145
+ };
146
+ return {
147
+ contractVersion,
148
+ chainId,
149
+ creatorKeyHash,
150
+ stakeScript,
151
+ stakeScriptHash,
152
+ address: require_Address.BaseAddress.fromCredentials(chainId.networkId, {
153
+ type: require_Address.CredentialType.ScriptHash,
154
+ hash: contractVersion.accountValidatorHash
155
+ }, stakeCredential).toAddress().toBech32(),
156
+ rewardAccount: require_Address.RewardAccount.fromCredential(stakeCredential, chainId.networkId),
157
+ stateNftAssetId: require_Address.AssetId.fromParts(require_Address.PolicyId(contractVersion.accountValidatorHash), require_Address.AssetName(stakeScriptHash))
158
+ };
159
+ };
160
+ const MAINNET_NETWORK_MAGIC = require_ChainId.NetworkMagics.Mainnet;
161
+ /**
162
+ * The chain a network magic names. Records carry only the magic; every
163
+ * Cardano network except mainnet uses network id 0.
164
+ */
165
+ const chainIdFromNetworkMagic = (networkMagic) => ({
166
+ networkId: networkMagic === MAINNET_NETWORK_MAGIC ? require_ChainId.NetworkId.Mainnet : require_ChainId.NetworkId.Testnet,
167
+ networkMagic
168
+ });
169
+ /** Whether a value is a network magic: a 32-bit unsigned integer. */
170
+ const isNetworkMagic = (value) => typeof value === "number" && Number.isInteger(value) && value >= 0 && value <= 4294967295;
171
+ /**
172
+ * Whether a chain id is one a record can name: the record keeps only the
173
+ * magic, so the network id must be the one the magic implies.
174
+ */
175
+ const isConsistentChainId = ({ networkId, networkMagic }) => isNetworkMagic(networkMagic) && networkId === chainIdFromNetworkMagic(networkMagic).networkId;
176
+ /**
177
+ * The identity of the account a creator key hash creates on a chain. Refuses
178
+ * a key hash that is not lower-case hex of exactly 28 bytes, and a chain id
179
+ * whose network id contradicts its network magic, such as network id 0 with
180
+ * the mainnet magic.
181
+ */
182
+ const deriveCustodyAccountIdentity = (params) => {
183
+ if (!isConsistentChainId(params.chainId)) return require_hex.fail({
184
+ code: "invalid-chain-id",
185
+ chainId: params.chainId
186
+ });
187
+ return require_hex.isHash28Hex(params.creatorKeyHash) ? require_hex.ok(identityOfValidatedCreator(params)) : require_hex.fail({
188
+ code: "invalid-key-hash",
189
+ keyHash: params.creatorKeyHash
190
+ });
191
+ };
192
+ //#endregion
193
+ //#region ../../packages/contract/cardano-context/src/custody/identity.ts
194
+ /**
195
+ * Re-derives a persisted custody account's identity from its contract
196
+ * version, creator key hash and chain, and refuses it unless the stored
197
+ * stake script hash, address and reward account are exactly the derived
198
+ * ones. Persisted props are only as trustworthy as storage, and an address
199
+ * the contract does not govern for this creator must never be synced or
200
+ * shown as the account.
201
+ */
202
+ const verifyCardanoCustodyAccountIdentity = (stored) => {
203
+ const contractVersion = require_hex.findCustodyContractVersion(stored.accountValidatorHash);
204
+ if (!contractVersion.ok) return contractVersion;
205
+ const derived = deriveCustodyAccountIdentity({
206
+ contractVersion: contractVersion.value,
207
+ creatorKeyHash: stored.creatorKeyHash,
208
+ chainId: stored.chainId
209
+ });
210
+ if (!derived.ok) return derived;
211
+ const mismatch = [
212
+ [
213
+ "stakeScriptHash",
214
+ stored.stakeScriptHash,
215
+ derived.value.stakeScriptHash
216
+ ],
217
+ [
218
+ "address",
219
+ stored.address,
220
+ derived.value.address
221
+ ],
222
+ [
223
+ "rewardAccount",
224
+ stored.rewardAccount,
225
+ derived.value.rewardAccount
226
+ ]
227
+ ].find(([, storedValue, derivedValue]) => storedValue !== derivedValue);
228
+ return mismatch ? {
229
+ ok: false,
230
+ error: {
231
+ code: "identity-mismatch",
232
+ field: mismatch[0],
233
+ stored: mismatch[1],
234
+ derived: mismatch[2]
235
+ }
236
+ } : derived;
237
+ };
238
+ //#endregion
239
+ Object.defineProperty(exports, "chainIdFromNetworkMagic", {
240
+ enumerable: true,
241
+ get: function() {
242
+ return chainIdFromNetworkMagic;
243
+ }
244
+ });
245
+ Object.defineProperty(exports, "deriveCustodyAccountIdentity", {
246
+ enumerable: true,
247
+ get: function() {
248
+ return deriveCustodyAccountIdentity;
249
+ }
250
+ });
251
+ Object.defineProperty(exports, "identityOfValidatedCreator", {
252
+ enumerable: true,
253
+ get: function() {
254
+ return identityOfValidatedCreator;
255
+ }
256
+ });
257
+ Object.defineProperty(exports, "isCardanoCustodyAccount", {
258
+ enumerable: true,
259
+ get: function() {
260
+ return isCardanoCustodyAccount;
261
+ }
262
+ });
263
+ Object.defineProperty(exports, "isNetworkMagic", {
264
+ enumerable: true,
265
+ get: function() {
266
+ return isNetworkMagic;
267
+ }
268
+ });
269
+ Object.defineProperty(exports, "verifyCardanoCustodyAccountIdentity", {
270
+ enumerable: true,
271
+ get: function() {
272
+ return verifyCardanoCustodyAccountIdentity;
273
+ }
274
+ });