@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,49 @@
1
+ require("./chunk-9hOWP6kD.cjs");
2
+ require("./_polyfill-buffer-patch-BycQkEkK.cjs");
3
+ const require_bytes_vo = require("./bytes.vo-hecRu3YZ.cjs");
4
+ //#region ../../packages/module/passport-account/src/infra/node-relay.ts
5
+ const defaultConnect = async (nodeUrl) => {
6
+ const { ApiPromise, WsProvider } = await import("@polkadot/api");
7
+ return await ApiPromise.create({
8
+ provider: new WsProvider(nodeUrl.replace(/^http/, "ws")),
9
+ noInitWarn: true
10
+ });
11
+ };
12
+ const bytesToHex = (bytes) => `0x${require_bytes_vo.HexBytes.fromByteArray(bytes)}`;
13
+ const submitOverRelay = async (api, tx) => new Promise((resolve, reject) => {
14
+ const stopWatching = () => {
15
+ unsubscribe.then((stop) => {
16
+ stop();
17
+ });
18
+ };
19
+ const onStatus = ({ status }) => {
20
+ if (status.isInBlock) {
21
+ stopWatching();
22
+ resolve();
23
+ } else if (status.isInvalid || status.isDropped || status.isUsurped) {
24
+ stopWatching();
25
+ reject(/* @__PURE__ */ new Error(`Transaction ${status.type}`));
26
+ }
27
+ };
28
+ const unsubscribe = api.tx["midnight"]["sendMnTransaction"](bytesToHex(tx.serialize())).send(onStatus);
29
+ unsubscribe.catch(reject);
30
+ });
31
+ /**
32
+ * Submits serialized Midnight transactions over the node's extrinsic
33
+ * relay (`midnight.sendMnTransaction`) and resolves once the transaction
34
+ * is in a block, mirroring the reference wallet's submission semantics.
35
+ * A mempool rejection surfaces as the node's RPC error (for example
36
+ * `Invalid Transaction`), so the dust-race retry can classify it; an
37
+ * invalid, dropped, or usurped status rejects with the status name.
38
+ */
39
+ const createNodeRelaySubmissionService = async (nodeUrl, connect = defaultConnect) => {
40
+ const api = await connect(nodeUrl);
41
+ return {
42
+ submitTransaction: async (tx) => submitOverRelay(api, tx),
43
+ close: async () => {
44
+ await api.disconnect();
45
+ }
46
+ };
47
+ };
48
+ //#endregion
49
+ exports.createNodeRelaySubmissionService = createNodeRelaySubmissionService;
@@ -0,0 +1,48 @@
1
+ import "./_polyfill-buffer-patch-JcrfT1gU.js";
2
+ import { n as HexBytes } from "./bytes.vo-CziaOsba.js";
3
+ //#region ../../packages/module/passport-account/src/infra/node-relay.ts
4
+ const defaultConnect = async (nodeUrl) => {
5
+ const { ApiPromise, WsProvider } = await import("@polkadot/api");
6
+ return await ApiPromise.create({
7
+ provider: new WsProvider(nodeUrl.replace(/^http/, "ws")),
8
+ noInitWarn: true
9
+ });
10
+ };
11
+ const bytesToHex = (bytes) => `0x${HexBytes.fromByteArray(bytes)}`;
12
+ const submitOverRelay = async (api, tx) => new Promise((resolve, reject) => {
13
+ const stopWatching = () => {
14
+ unsubscribe.then((stop) => {
15
+ stop();
16
+ });
17
+ };
18
+ const onStatus = ({ status }) => {
19
+ if (status.isInBlock) {
20
+ stopWatching();
21
+ resolve();
22
+ } else if (status.isInvalid || status.isDropped || status.isUsurped) {
23
+ stopWatching();
24
+ reject(/* @__PURE__ */ new Error(`Transaction ${status.type}`));
25
+ }
26
+ };
27
+ const unsubscribe = api.tx["midnight"]["sendMnTransaction"](bytesToHex(tx.serialize())).send(onStatus);
28
+ unsubscribe.catch(reject);
29
+ });
30
+ /**
31
+ * Submits serialized Midnight transactions over the node's extrinsic
32
+ * relay (`midnight.sendMnTransaction`) and resolves once the transaction
33
+ * is in a block, mirroring the reference wallet's submission semantics.
34
+ * A mempool rejection surfaces as the node's RPC error (for example
35
+ * `Invalid Transaction`), so the dust-race retry can classify it; an
36
+ * invalid, dropped, or usurped status rejects with the status name.
37
+ */
38
+ const createNodeRelaySubmissionService = async (nodeUrl, connect = defaultConnect) => {
39
+ const api = await connect(nodeUrl);
40
+ return {
41
+ submitTransaction: async (tx) => submitOverRelay(api, tx),
42
+ close: async () => {
43
+ await api.disconnect();
44
+ }
45
+ };
46
+ };
47
+ //#endregion
48
+ export { createNodeRelaySubmissionService };
@@ -0,0 +1,196 @@
1
+ import { Ft as BaseAddress, P as RewardAccount, ft as Script, r as CredentialType, t as Address } from "./Address-_c_-9hLC.js";
2
+ import { c as isCustodyLovelaceAsset, f as decodeCustodyAccountState, l as CUSTODY_SLOT_LIMIT, p as decodeCustodyGrant, u as custodyGrantAssetId, x as recipientKey, y as custodyRecipientFromAddress } from "./fees-6C2uEWFK.js";
3
+ import { o as SUPPORTED_CUSTODY_CONTRACT_VERSIONS, u as findCustodyLogic } from "./hex-CGYJPK_Z.js";
4
+ //#region ../../packages/lib/cardano-custody/src/analysis/value.ts
5
+ /** Hex length of a policy id: every asset class on chain has a 28-byte one. */
6
+ const POLICY_ID_HEX_LENGTH = 56;
7
+ const valueDeltaOf = (value) => addValueDeltas([{
8
+ lovelace: value.coins,
9
+ assets: new Map([...value.assets ?? /* @__PURE__ */ new Map()].map(([assetId, quantity]) => [assetId.toLowerCase(), quantity]))
10
+ }]);
11
+ /** The sum of deltas, with zero token quantities dropped. */
12
+ const addValueDeltas = (deltas) => {
13
+ let lovelace = 0n;
14
+ const assets = /* @__PURE__ */ new Map();
15
+ for (const delta of deltas) {
16
+ lovelace += delta.lovelace;
17
+ for (const [assetId, quantity] of delta.assets) {
18
+ const sum = (assets.get(assetId) ?? 0n) + quantity;
19
+ if (sum === 0n) assets.delete(assetId);
20
+ else assets.set(assetId, sum);
21
+ }
22
+ }
23
+ return {
24
+ lovelace,
25
+ assets
26
+ };
27
+ };
28
+ const negateValueDelta = (delta) => ({
29
+ lovelace: -delta.lovelace,
30
+ assets: new Map([...delta.assets].map(([assetId, quantity]) => [assetId, -quantity]))
31
+ });
32
+ /** The policy id of an asset id. */
33
+ const policyIdOf = (assetId) => assetId.slice(0, POLICY_ID_HEX_LENGTH);
34
+ /** The asset name of an asset id, as hex. */
35
+ const assetNameOf = (assetId) => assetId.slice(POLICY_ID_HEX_LENGTH);
36
+ /**
37
+ * Whether an asset id names an asset class. Compared by parts, so an asset
38
+ * whose policy id is not 28 bytes, which no value can hold, matches nothing.
39
+ */
40
+ const isAssetIdOf = (assetId, asset) => asset.policyId.length === POLICY_ID_HEX_LENGTH && policyIdOf(assetId) === asset.policyId && assetNameOf(assetId) === asset.assetName;
41
+ /** The quantity of one asset class: `assets.quantity_of` of the contract. */
42
+ const quantityOfAsset = (delta, asset) => {
43
+ if (isCustodyLovelaceAsset(asset)) return delta.lovelace;
44
+ for (const [assetId, quantity] of delta.assets) if (isAssetIdOf(assetId, asset)) return quantity;
45
+ return 0n;
46
+ };
47
+ //#endregion
48
+ //#region ../../packages/lib/cardano-custody/src/analysis/outputs.ts
49
+ const OTHER = { kind: "other" };
50
+ /** Hex length of a stake script hash: the state NFT name and the prefix of every grant token name. */
51
+ const STAKE_SCRIPT_HASH_HEX_LENGTH = 56;
52
+ const versionOfPayment = (credential) => credential.type === CredentialType.ScriptHash ? SUPPORTED_CUSTODY_CONTRACT_VERSIONS.find((version) => version.accountValidatorHash === credential.hash) : void 0;
53
+ /**
54
+ * Whether a script hash is a logic in the catalogue of a supported contract
55
+ * version: one whose rules Lace has reviewed.
56
+ */
57
+ const isKnownCustodyLogic = (scriptHash) => SUPPORTED_CUSTODY_CONTRACT_VERSIONS.some((version) => findCustodyLogic(version, scriptHash).ok);
58
+ /**
59
+ * Classifies an address on any network against every supported custody
60
+ * contract version. It reads the address only: `account` does not prove
61
+ * that the stake script is a custody stake script or that the account
62
+ * exists.
63
+ */
64
+ const classifyCustodyAddress = (address) => {
65
+ const base = address.asBase();
66
+ const payment = (base ?? address.asEnterprise() ?? address.asPointer())?.getPaymentCredential();
67
+ const contractVersion = payment && versionOfPayment(payment);
68
+ if (!contractVersion) return OTHER;
69
+ const stake = base?.getStakeCredential();
70
+ return stake?.type === CredentialType.ScriptHash ? {
71
+ kind: "account",
72
+ contractVersion,
73
+ stakeScriptHash: stake.hash
74
+ } : {
75
+ kind: "unspendable",
76
+ contractVersion
77
+ };
78
+ };
79
+ /** A key equal for two addresses exactly when their Plutus data is equal. */
80
+ const plutusAddressKeyOf = (address) => {
81
+ const recipient = custodyRecipientFromAddress(address);
82
+ return recipient.ok ? recipientKey(recipient.value) : void 0;
83
+ };
84
+ const accountPlutusAddressKey = ({ accountValidatorHash, stakeScriptHash }) => recipientKey({
85
+ paymentCredential: {
86
+ type: CredentialType.ScriptHash,
87
+ hash: accountValidatorHash
88
+ },
89
+ stakeCredential: {
90
+ kind: "inline",
91
+ credential: {
92
+ type: CredentialType.ScriptHash,
93
+ hash: stakeScriptHash
94
+ }
95
+ }
96
+ });
97
+ const stakeCredentialOf = ({ stakeScriptHash }) => ({
98
+ type: CredentialType.ScriptHash,
99
+ hash: stakeScriptHash
100
+ });
101
+ const accountAddressOf = (account, networkId) => BaseAddress.fromCredentials(networkId, {
102
+ type: CredentialType.ScriptHash,
103
+ hash: account.accountValidatorHash
104
+ }, stakeCredentialOf(account)).toAddress().toBech32();
105
+ const accountRewardAccountOf = (account, networkId) => RewardAccount.fromCredential(stakeCredentialOf(account), networkId);
106
+ const stateNftAssetIdOf = ({ accountValidatorHash, stakeScriptHash }) => `${accountValidatorHash}${stakeScriptHash}`;
107
+ /**
108
+ * The asset id of the account's grant token for `slot`, or undefined for a
109
+ * slot no grant token name can carry, which the validator cannot name either.
110
+ */
111
+ const grantAssetIdOf = (account, slot) => slot >= 0n && slot < CUSTODY_SLOT_LIMIT ? custodyGrantAssetId(account, slot) : void 0;
112
+ /**
113
+ * The output's datum as the script context sees it. A resolution that
114
+ * carries both an inline datum and its hash, as some providers report an
115
+ * inline datum, keeps the inline datum.
116
+ */
117
+ const datumOf = (txOut) => {
118
+ if (txOut.datum !== void 0) return {
119
+ datumKind: "inline",
120
+ inlineDatum: txOut.datum
121
+ };
122
+ return {
123
+ datumKind: txOut.datumHash === void 0 ? "none" : "hash",
124
+ inlineDatum: void 0
125
+ };
126
+ };
127
+ const viewOfOutput = (txOut) => {
128
+ const address = Address.fromString(txOut.address) ?? void 0;
129
+ return {
130
+ txOut,
131
+ address,
132
+ addressClass: address ? classifyCustodyAddress(address) : OTHER,
133
+ plutusAddressKey: address && plutusAddressKeyOf(address),
134
+ value: valueDeltaOf(txOut.value),
135
+ ...datumOf(txOut),
136
+ hasReferenceScript: txOut.scriptReference !== void 0,
137
+ referenceScriptHash: txOut.scriptReference && Script.fromCore(txOut.scriptReference).hash()
138
+ };
139
+ };
140
+ /** The account state an output carries as its inline datum, if it decodes. */
141
+ const decodedInlineState = (view) => {
142
+ if (view.inlineDatum === void 0) return void 0;
143
+ const decoded = decodeCustodyAccountState(view.inlineDatum);
144
+ return decoded.ok ? decoded.value : void 0;
145
+ };
146
+ /** The grant an output carries as its inline datum, if it decodes. */
147
+ const decodedInlineGrant = (view) => {
148
+ if (view.inlineDatum === void 0) return void 0;
149
+ const decoded = decodeCustodyGrant(view.inlineDatum);
150
+ return decoded.ok ? decoded.value : void 0;
151
+ };
152
+ /** Whether the output sits at the account address, compared as Plutus data. */
153
+ const isAtAccount = (view, account) => view.plutusAddressKey !== void 0 && view.plutusAddressKey === accountPlutusAddressKey(account);
154
+ /** `holds_state_nft`: exactly one of the account's state NFT. */
155
+ const holdsStateNft = (value, account) => value.assets.get(stateNftAssetIdOf(account)) === 1n;
156
+ /** `holds_only_lovelace_and_state_nft`: the state NFT and no other token. */
157
+ const holdsOnlyLovelaceAndStateNft = (value, account) => value.assets.size === 1 && holdsStateNft(value, account);
158
+ /** `holds_only_lovelace_and_grant_token`: one grant token of `slot` and no other token. */
159
+ const holdsOnlyLovelaceAndGrantToken = (value, account, slot) => {
160
+ const assetId = grantAssetIdOf(account, slot);
161
+ return assetId !== void 0 && value.assets.size === 1 && value.assets.get(assetId) === 1n;
162
+ };
163
+ /** `holds_no_account_token`: no token under the account validator policy, of any account. */
164
+ const holdsNoAccountToken = (value, accountValidatorHash) => ![...value.assets.keys()].some((assetId) => policyIdOf(assetId) === accountValidatorHash);
165
+ /** Whether a value holds a token of the account: its state NFT or one of its grant tokens. */
166
+ const holdsOwnAccountToken = (value, { accountValidatorHash, stakeScriptHash }) => [...value.assets.keys()].some((assetId) => policyIdOf(assetId) === accountValidatorHash && assetNameOf(assetId).startsWith(stakeScriptHash));
167
+ /** `holds_account_token`: at the account address, holding one of its account tokens. */
168
+ const holdsAccountToken = (view, account) => isAtAccount(view, account) && holdsOwnAccountToken(view.value, account);
169
+ /** `is_control_output`: at the account address, holding its state NFT. */
170
+ const isControlOutput = (view, account) => isAtAccount(view, account) && holdsStateNft(view.value, account);
171
+ /**
172
+ * Which kind of account UTxO an output at the account address is: the
173
+ * control UTxO holds the state NFT, a grant UTxO another token of the
174
+ * account, a reserve no account token and a datum, a fund neither.
175
+ */
176
+ const accountUtxoKindOf = (view, account) => {
177
+ if (holdsStateNft(view.value, account)) return "control";
178
+ if (holdsOwnAccountToken(view.value, account)) return "grant";
179
+ return view.datumKind === "none" ? "fund" : "reserve";
180
+ };
181
+ /**
182
+ * Whether an output breaks `tokens_sit_at_their_own_addresses` for one of
183
+ * the account validators: every token under an account validator policy
184
+ * must be a single one at the account address its name's first 28 bytes
185
+ * name.
186
+ */
187
+ const holdsMisplacedAccountToken = (view, accountValidatorHashes) => [...view.value.assets].some(([assetId, quantity]) => {
188
+ const accountValidatorHash = policyIdOf(assetId);
189
+ if (!accountValidatorHashes.includes(accountValidatorHash)) return false;
190
+ return quantity !== 1n || !isAtAccount(view, {
191
+ accountValidatorHash,
192
+ stakeScriptHash: assetNameOf(assetId).slice(0, STAKE_SCRIPT_HASH_HEX_LENGTH)
193
+ });
194
+ });
195
+ //#endregion
196
+ export { policyIdOf as C, negateValueDelta as S, stateNftAssetIdOf as _, classifyCustodyAddress as a, assetNameOf as b, grantAssetIdOf as c, holdsNoAccountToken as d, holdsOnlyLovelaceAndGrantToken as f, isKnownCustodyLogic as g, isControlOutput as h, accountUtxoKindOf as i, holdsAccountToken as l, isAtAccount as m, accountPlutusAddressKey as n, decodedInlineGrant as o, holdsOnlyLovelaceAndStateNft as p, accountRewardAccountOf as r, decodedInlineState as s, accountAddressOf as t, holdsMisplacedAccountToken as u, viewOfOutput as v, quantityOfAsset as w, isAssetIdOf as x, addValueDeltas as y };
@@ -0,0 +1,339 @@
1
+ const require_Address = require("./Address-AMKTo-dA.cjs");
2
+ const require_fees = require("./fees-DtC71fOx.cjs");
3
+ const require_hex = require("./hex-BVtOKJki.cjs");
4
+ //#region ../../packages/lib/cardano-custody/src/analysis/value.ts
5
+ /** Hex length of a policy id: every asset class on chain has a 28-byte one. */
6
+ const POLICY_ID_HEX_LENGTH = 56;
7
+ const valueDeltaOf = (value) => addValueDeltas([{
8
+ lovelace: value.coins,
9
+ assets: new Map([...value.assets ?? /* @__PURE__ */ new Map()].map(([assetId, quantity]) => [assetId.toLowerCase(), quantity]))
10
+ }]);
11
+ /** The sum of deltas, with zero token quantities dropped. */
12
+ const addValueDeltas = (deltas) => {
13
+ let lovelace = 0n;
14
+ const assets = /* @__PURE__ */ new Map();
15
+ for (const delta of deltas) {
16
+ lovelace += delta.lovelace;
17
+ for (const [assetId, quantity] of delta.assets) {
18
+ const sum = (assets.get(assetId) ?? 0n) + quantity;
19
+ if (sum === 0n) assets.delete(assetId);
20
+ else assets.set(assetId, sum);
21
+ }
22
+ }
23
+ return {
24
+ lovelace,
25
+ assets
26
+ };
27
+ };
28
+ const negateValueDelta = (delta) => ({
29
+ lovelace: -delta.lovelace,
30
+ assets: new Map([...delta.assets].map(([assetId, quantity]) => [assetId, -quantity]))
31
+ });
32
+ /** The policy id of an asset id. */
33
+ const policyIdOf = (assetId) => assetId.slice(0, POLICY_ID_HEX_LENGTH);
34
+ /** The asset name of an asset id, as hex. */
35
+ const assetNameOf = (assetId) => assetId.slice(POLICY_ID_HEX_LENGTH);
36
+ /**
37
+ * Whether an asset id names an asset class. Compared by parts, so an asset
38
+ * whose policy id is not 28 bytes, which no value can hold, matches nothing.
39
+ */
40
+ const isAssetIdOf = (assetId, asset) => asset.policyId.length === POLICY_ID_HEX_LENGTH && policyIdOf(assetId) === asset.policyId && assetNameOf(assetId) === asset.assetName;
41
+ /** The quantity of one asset class: `assets.quantity_of` of the contract. */
42
+ const quantityOfAsset = (delta, asset) => {
43
+ if (require_fees.isCustodyLovelaceAsset(asset)) return delta.lovelace;
44
+ for (const [assetId, quantity] of delta.assets) if (isAssetIdOf(assetId, asset)) return quantity;
45
+ return 0n;
46
+ };
47
+ //#endregion
48
+ //#region ../../packages/lib/cardano-custody/src/analysis/outputs.ts
49
+ const OTHER = { kind: "other" };
50
+ /** Hex length of a stake script hash: the state NFT name and the prefix of every grant token name. */
51
+ const STAKE_SCRIPT_HASH_HEX_LENGTH = 56;
52
+ const versionOfPayment = (credential) => credential.type === require_Address.CredentialType.ScriptHash ? require_hex.SUPPORTED_CUSTODY_CONTRACT_VERSIONS.find((version) => version.accountValidatorHash === credential.hash) : void 0;
53
+ /**
54
+ * Whether a script hash is a logic in the catalogue of a supported contract
55
+ * version: one whose rules Lace has reviewed.
56
+ */
57
+ const isKnownCustodyLogic = (scriptHash) => require_hex.SUPPORTED_CUSTODY_CONTRACT_VERSIONS.some((version) => require_hex.findCustodyLogic(version, scriptHash).ok);
58
+ /**
59
+ * Classifies an address on any network against every supported custody
60
+ * contract version. It reads the address only: `account` does not prove
61
+ * that the stake script is a custody stake script or that the account
62
+ * exists.
63
+ */
64
+ const classifyCustodyAddress = (address) => {
65
+ const base = address.asBase();
66
+ const payment = (base ?? address.asEnterprise() ?? address.asPointer())?.getPaymentCredential();
67
+ const contractVersion = payment && versionOfPayment(payment);
68
+ if (!contractVersion) return OTHER;
69
+ const stake = base?.getStakeCredential();
70
+ return stake?.type === require_Address.CredentialType.ScriptHash ? {
71
+ kind: "account",
72
+ contractVersion,
73
+ stakeScriptHash: stake.hash
74
+ } : {
75
+ kind: "unspendable",
76
+ contractVersion
77
+ };
78
+ };
79
+ /** A key equal for two addresses exactly when their Plutus data is equal. */
80
+ const plutusAddressKeyOf = (address) => {
81
+ const recipient = require_fees.custodyRecipientFromAddress(address);
82
+ return recipient.ok ? require_fees.recipientKey(recipient.value) : void 0;
83
+ };
84
+ const accountPlutusAddressKey = ({ accountValidatorHash, stakeScriptHash }) => require_fees.recipientKey({
85
+ paymentCredential: {
86
+ type: require_Address.CredentialType.ScriptHash,
87
+ hash: accountValidatorHash
88
+ },
89
+ stakeCredential: {
90
+ kind: "inline",
91
+ credential: {
92
+ type: require_Address.CredentialType.ScriptHash,
93
+ hash: stakeScriptHash
94
+ }
95
+ }
96
+ });
97
+ const stakeCredentialOf = ({ stakeScriptHash }) => ({
98
+ type: require_Address.CredentialType.ScriptHash,
99
+ hash: stakeScriptHash
100
+ });
101
+ const accountAddressOf = (account, networkId) => require_Address.BaseAddress.fromCredentials(networkId, {
102
+ type: require_Address.CredentialType.ScriptHash,
103
+ hash: account.accountValidatorHash
104
+ }, stakeCredentialOf(account)).toAddress().toBech32();
105
+ const accountRewardAccountOf = (account, networkId) => require_Address.RewardAccount.fromCredential(stakeCredentialOf(account), networkId);
106
+ const stateNftAssetIdOf = ({ accountValidatorHash, stakeScriptHash }) => `${accountValidatorHash}${stakeScriptHash}`;
107
+ /**
108
+ * The asset id of the account's grant token for `slot`, or undefined for a
109
+ * slot no grant token name can carry, which the validator cannot name either.
110
+ */
111
+ const grantAssetIdOf = (account, slot) => slot >= 0n && slot < require_fees.CUSTODY_SLOT_LIMIT ? require_fees.custodyGrantAssetId(account, slot) : void 0;
112
+ /**
113
+ * The output's datum as the script context sees it. A resolution that
114
+ * carries both an inline datum and its hash, as some providers report an
115
+ * inline datum, keeps the inline datum.
116
+ */
117
+ const datumOf = (txOut) => {
118
+ if (txOut.datum !== void 0) return {
119
+ datumKind: "inline",
120
+ inlineDatum: txOut.datum
121
+ };
122
+ return {
123
+ datumKind: txOut.datumHash === void 0 ? "none" : "hash",
124
+ inlineDatum: void 0
125
+ };
126
+ };
127
+ const viewOfOutput = (txOut) => {
128
+ const address = require_Address.Address.fromString(txOut.address) ?? void 0;
129
+ return {
130
+ txOut,
131
+ address,
132
+ addressClass: address ? classifyCustodyAddress(address) : OTHER,
133
+ plutusAddressKey: address && plutusAddressKeyOf(address),
134
+ value: valueDeltaOf(txOut.value),
135
+ ...datumOf(txOut),
136
+ hasReferenceScript: txOut.scriptReference !== void 0,
137
+ referenceScriptHash: txOut.scriptReference && require_Address.Script.fromCore(txOut.scriptReference).hash()
138
+ };
139
+ };
140
+ /** The account state an output carries as its inline datum, if it decodes. */
141
+ const decodedInlineState = (view) => {
142
+ if (view.inlineDatum === void 0) return void 0;
143
+ const decoded = require_fees.decodeCustodyAccountState(view.inlineDatum);
144
+ return decoded.ok ? decoded.value : void 0;
145
+ };
146
+ /** The grant an output carries as its inline datum, if it decodes. */
147
+ const decodedInlineGrant = (view) => {
148
+ if (view.inlineDatum === void 0) return void 0;
149
+ const decoded = require_fees.decodeCustodyGrant(view.inlineDatum);
150
+ return decoded.ok ? decoded.value : void 0;
151
+ };
152
+ /** Whether the output sits at the account address, compared as Plutus data. */
153
+ const isAtAccount = (view, account) => view.plutusAddressKey !== void 0 && view.plutusAddressKey === accountPlutusAddressKey(account);
154
+ /** `holds_state_nft`: exactly one of the account's state NFT. */
155
+ const holdsStateNft = (value, account) => value.assets.get(stateNftAssetIdOf(account)) === 1n;
156
+ /** `holds_only_lovelace_and_state_nft`: the state NFT and no other token. */
157
+ const holdsOnlyLovelaceAndStateNft = (value, account) => value.assets.size === 1 && holdsStateNft(value, account);
158
+ /** `holds_only_lovelace_and_grant_token`: one grant token of `slot` and no other token. */
159
+ const holdsOnlyLovelaceAndGrantToken = (value, account, slot) => {
160
+ const assetId = grantAssetIdOf(account, slot);
161
+ return assetId !== void 0 && value.assets.size === 1 && value.assets.get(assetId) === 1n;
162
+ };
163
+ /** `holds_no_account_token`: no token under the account validator policy, of any account. */
164
+ const holdsNoAccountToken = (value, accountValidatorHash) => ![...value.assets.keys()].some((assetId) => policyIdOf(assetId) === accountValidatorHash);
165
+ /** Whether a value holds a token of the account: its state NFT or one of its grant tokens. */
166
+ const holdsOwnAccountToken = (value, { accountValidatorHash, stakeScriptHash }) => [...value.assets.keys()].some((assetId) => policyIdOf(assetId) === accountValidatorHash && assetNameOf(assetId).startsWith(stakeScriptHash));
167
+ /** `holds_account_token`: at the account address, holding one of its account tokens. */
168
+ const holdsAccountToken = (view, account) => isAtAccount(view, account) && holdsOwnAccountToken(view.value, account);
169
+ /** `is_control_output`: at the account address, holding its state NFT. */
170
+ const isControlOutput = (view, account) => isAtAccount(view, account) && holdsStateNft(view.value, account);
171
+ /**
172
+ * Which kind of account UTxO an output at the account address is: the
173
+ * control UTxO holds the state NFT, a grant UTxO another token of the
174
+ * account, a reserve no account token and a datum, a fund neither.
175
+ */
176
+ const accountUtxoKindOf = (view, account) => {
177
+ if (holdsStateNft(view.value, account)) return "control";
178
+ if (holdsOwnAccountToken(view.value, account)) return "grant";
179
+ return view.datumKind === "none" ? "fund" : "reserve";
180
+ };
181
+ /**
182
+ * Whether an output breaks `tokens_sit_at_their_own_addresses` for one of
183
+ * the account validators: every token under an account validator policy
184
+ * must be a single one at the account address its name's first 28 bytes
185
+ * name.
186
+ */
187
+ const holdsMisplacedAccountToken = (view, accountValidatorHashes) => [...view.value.assets].some(([assetId, quantity]) => {
188
+ const accountValidatorHash = policyIdOf(assetId);
189
+ if (!accountValidatorHashes.includes(accountValidatorHash)) return false;
190
+ return quantity !== 1n || !isAtAccount(view, {
191
+ accountValidatorHash,
192
+ stakeScriptHash: assetNameOf(assetId).slice(0, STAKE_SCRIPT_HASH_HEX_LENGTH)
193
+ });
194
+ });
195
+ //#endregion
196
+ Object.defineProperty(exports, "accountAddressOf", {
197
+ enumerable: true,
198
+ get: function() {
199
+ return accountAddressOf;
200
+ }
201
+ });
202
+ Object.defineProperty(exports, "accountPlutusAddressKey", {
203
+ enumerable: true,
204
+ get: function() {
205
+ return accountPlutusAddressKey;
206
+ }
207
+ });
208
+ Object.defineProperty(exports, "accountRewardAccountOf", {
209
+ enumerable: true,
210
+ get: function() {
211
+ return accountRewardAccountOf;
212
+ }
213
+ });
214
+ Object.defineProperty(exports, "accountUtxoKindOf", {
215
+ enumerable: true,
216
+ get: function() {
217
+ return accountUtxoKindOf;
218
+ }
219
+ });
220
+ Object.defineProperty(exports, "addValueDeltas", {
221
+ enumerable: true,
222
+ get: function() {
223
+ return addValueDeltas;
224
+ }
225
+ });
226
+ Object.defineProperty(exports, "assetNameOf", {
227
+ enumerable: true,
228
+ get: function() {
229
+ return assetNameOf;
230
+ }
231
+ });
232
+ Object.defineProperty(exports, "classifyCustodyAddress", {
233
+ enumerable: true,
234
+ get: function() {
235
+ return classifyCustodyAddress;
236
+ }
237
+ });
238
+ Object.defineProperty(exports, "decodedInlineGrant", {
239
+ enumerable: true,
240
+ get: function() {
241
+ return decodedInlineGrant;
242
+ }
243
+ });
244
+ Object.defineProperty(exports, "decodedInlineState", {
245
+ enumerable: true,
246
+ get: function() {
247
+ return decodedInlineState;
248
+ }
249
+ });
250
+ Object.defineProperty(exports, "grantAssetIdOf", {
251
+ enumerable: true,
252
+ get: function() {
253
+ return grantAssetIdOf;
254
+ }
255
+ });
256
+ Object.defineProperty(exports, "holdsAccountToken", {
257
+ enumerable: true,
258
+ get: function() {
259
+ return holdsAccountToken;
260
+ }
261
+ });
262
+ Object.defineProperty(exports, "holdsMisplacedAccountToken", {
263
+ enumerable: true,
264
+ get: function() {
265
+ return holdsMisplacedAccountToken;
266
+ }
267
+ });
268
+ Object.defineProperty(exports, "holdsNoAccountToken", {
269
+ enumerable: true,
270
+ get: function() {
271
+ return holdsNoAccountToken;
272
+ }
273
+ });
274
+ Object.defineProperty(exports, "holdsOnlyLovelaceAndGrantToken", {
275
+ enumerable: true,
276
+ get: function() {
277
+ return holdsOnlyLovelaceAndGrantToken;
278
+ }
279
+ });
280
+ Object.defineProperty(exports, "holdsOnlyLovelaceAndStateNft", {
281
+ enumerable: true,
282
+ get: function() {
283
+ return holdsOnlyLovelaceAndStateNft;
284
+ }
285
+ });
286
+ Object.defineProperty(exports, "isAssetIdOf", {
287
+ enumerable: true,
288
+ get: function() {
289
+ return isAssetIdOf;
290
+ }
291
+ });
292
+ Object.defineProperty(exports, "isAtAccount", {
293
+ enumerable: true,
294
+ get: function() {
295
+ return isAtAccount;
296
+ }
297
+ });
298
+ Object.defineProperty(exports, "isControlOutput", {
299
+ enumerable: true,
300
+ get: function() {
301
+ return isControlOutput;
302
+ }
303
+ });
304
+ Object.defineProperty(exports, "isKnownCustodyLogic", {
305
+ enumerable: true,
306
+ get: function() {
307
+ return isKnownCustodyLogic;
308
+ }
309
+ });
310
+ Object.defineProperty(exports, "negateValueDelta", {
311
+ enumerable: true,
312
+ get: function() {
313
+ return negateValueDelta;
314
+ }
315
+ });
316
+ Object.defineProperty(exports, "policyIdOf", {
317
+ enumerable: true,
318
+ get: function() {
319
+ return policyIdOf;
320
+ }
321
+ });
322
+ Object.defineProperty(exports, "quantityOfAsset", {
323
+ enumerable: true,
324
+ get: function() {
325
+ return quantityOfAsset;
326
+ }
327
+ });
328
+ Object.defineProperty(exports, "stateNftAssetIdOf", {
329
+ enumerable: true,
330
+ get: function() {
331
+ return stateNftAssetIdOf;
332
+ }
333
+ });
334
+ Object.defineProperty(exports, "viewOfOutput", {
335
+ enumerable: true,
336
+ get: function() {
337
+ return viewOfOutput;
338
+ }
339
+ });