@laceio/sdk 0.1.1 → 0.1.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-CCjOn7NA.cjs} +42 -0
  2. package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-CIzdw18M.js} +1 -1
  3. package/dist/{_polyfill-buffer-patch-BnPVerlG.cjs → _polyfill-buffer-patch-CM8X7JiY.cjs} +21 -2
  4. package/dist/_polyfill-buffer-patch-yNxN4d5E.js +1467 -0
  5. package/dist/_web-crypto-random-bytes-Bo-GTcRS.js +197 -0
  6. package/dist/acc-module-4iIUv6My.cjs +27654 -0
  7. package/dist/acc-module-Cmj8EsIb.js +27624 -0
  8. package/dist/account-BOQruszJ.js +6 -0
  9. package/dist/account-BUOj4pYJ.cjs +11 -0
  10. package/dist/account-call-7wnopBq0.cjs +5 -0
  11. package/dist/account-call-B9d_2Xwi.js +4 -0
  12. package/dist/account-call-Bd4Rpbvt.cjs +323 -0
  13. package/dist/account-call-C3CkDqEC.js +276 -0
  14. package/dist/account-guards-BtjTGxDZ.cjs +42 -0
  15. package/dist/account-guards-D9Lu5T3W.js +36 -0
  16. package/dist/account-tokens-DvkOFVON.js +16 -0
  17. package/dist/account-tokens-nwcvwLu4.cjs +21 -0
  18. package/dist/{activity-type.stable-BJEfeLxL.cjs → activity-type-Ch6ljxBy.cjs} +2 -1
  19. package/dist/{activity-type.stable-C76_hWd7.js → activity-type-GsJGWs-3.js} +2 -1
  20. package/dist/address-B9ntKL8K.js +13761 -0
  21. package/dist/address-BXp-mY8H.cjs +11270 -0
  22. package/dist/{address-book-address-validator-DIUolI-s.js → address-book-address-validator-0J9XAADH.js} +2 -2
  23. package/dist/address-book-address-validator-DK0dnsRS.cjs +41 -0
  24. package/dist/address-book-address-validator-Di_ywo8M.js +39 -0
  25. package/dist/{address-book-address-validator-DNwQGlOB.cjs → address-book-address-validator-Dte_YQ2L.cjs} +2 -2
  26. package/dist/artefact-loader-BWWYAD7E.cjs +183 -0
  27. package/dist/artefact-loader-Dik4HIfv.js +160 -0
  28. package/dist/auto-dismiss-failure-on-success-C-qoJuid.cjs +37 -0
  29. package/dist/auto-dismiss-failure-on-success-s8MGDEIu.js +31 -0
  30. package/dist/bip32-D6wd_QMn.cjs +3851 -0
  31. package/dist/bitcoin-data-provider-BYPSmuZS.js +21 -0
  32. package/dist/bitcoin-data-provider-w1oEDSU3.cjs +26 -0
  33. package/dist/bitcoin.cjs +45 -0
  34. package/dist/bitcoin.d.ts +29906 -1
  35. package/dist/bitcoin.js +20 -0
  36. package/dist/{blockfrost-tx-submit-provider-DPTrapz-.js → blockfrost-tx-submit-provider-CBWQ0wK9.js} +5 -157
  37. package/dist/{blockfrost-tx-submit-provider-BAIzV5o3.cjs → blockfrost-tx-submit-provider-CLNQ5ycR.cjs} +3 -167
  38. package/dist/bn-d3nSOIf7.cjs +2553 -0
  39. package/dist/browser-B1eMbDwh.js +7468 -0
  40. package/dist/bytes.vo-BB7_4JK6.js +23 -0
  41. package/dist/bytes.vo-BNRquqaO.cjs +34 -0
  42. package/dist/cardano-DfPwhwm-.js +3 -0
  43. package/dist/{cardano-network-id.vo-DSxrFk9S.cjs → cardano-network-id.vo-BEDPn6Li.cjs} +1 -1
  44. package/dist/{cardano-network-id.vo-CK1tNQDg.js → cardano-network-id.vo-Cfpvbod9.js} +1 -1
  45. package/dist/cardano.cjs +22 -18
  46. package/dist/cardano.d.ts +16956 -1716
  47. package/dist/cardano.js +16 -11
  48. package/dist/client-DXBLHk7K.cjs +808 -0
  49. package/dist/codecs-Cswkg7Tm.cjs +4051 -0
  50. package/dist/codecs-Dc1Krpbt.js +3903 -0
  51. package/dist/{const-C84qHkjp.js → const-BJfIK_G-.js} +4 -4
  52. package/dist/const-BhYOdznB.cjs +42 -0
  53. package/dist/const-BsnjG2_Q.cjs +32071 -0
  54. package/dist/const-CUnCl5U0.js +13 -0
  55. package/dist/{const-DXk2tFyv.js → const-CjmfjBP3.js} +1 -1
  56. package/dist/{const-BDEg2Trq.cjs → const-D-eZIS4n.cjs} +4 -4
  57. package/dist/const-D0CbQlo4.js +154 -0
  58. package/dist/{const-BY8B3_0_.cjs → const-iwzZEE_w.cjs} +1 -1
  59. package/dist/contract-1R86jhSw.js +171 -0
  60. package/dist/contract-MKLzYVkW.cjs +189 -0
  61. package/dist/create-add-accounts-Brqk84vF.js +102 -0
  62. package/dist/create-add-accounts-DzXIh7Ot.cjs +114 -0
  63. package/dist/{delegation-tx-builder-CRpLP6jH.cjs → delegation-tx-builder-CCjiakoy.cjs} +6 -6
  64. package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-DZFjHDS8.js} +5 -5
  65. package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-Bf6xAYp4.js} +5 -5
  66. package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CQP35yex.cjs} +6 -6
  67. package/dist/device-commitment-hex.vo-5wFtQvDS.js +26 -0
  68. package/dist/device-commitment-hex.vo-CT3RmAug.cjs +31 -0
  69. package/dist/device-readers-CUHYoYOH.js +145 -0
  70. package/dist/device-readers-CdxS2btd.cjs +168 -0
  71. package/dist/device-readers-D_JZeNL2.cjs +8 -0
  72. package/dist/device-readers-DwSNCGPP.js +4 -0
  73. package/dist/dist-BMi5ZjEq.cjs +43175 -0
  74. package/dist/dist-BtIq4XFn.cjs +535 -0
  75. package/dist/dist-C3SHC_Ho.cjs +1394 -0
  76. package/dist/dist-CykEjYEX.cjs +3814 -0
  77. package/dist/dist-Dcsxh3be.cjs +3452 -0
  78. package/dist/dist-DqJfSlTd.cjs +4413 -0
  79. package/dist/dist-nTZ70qj7.cjs +1306 -0
  80. package/dist/{earn-rewards-tx-builder-BDbTDZmD.js → earn-rewards-tx-builder-Bsga3yFb.js} +5 -5
  81. package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-GuxofYns.cjs} +6 -6
  82. package/dist/enc-key-circuits-B7BjgUL9.js +13 -0
  83. package/dist/enc-key-circuits-BLrZrBVI.cjs +24 -0
  84. package/dist/english-Byb9M0E_.cjs +2057 -0
  85. package/dist/envelopes-BGoO_v8m.js +1621 -0
  86. package/dist/envelopes-CH25R-DN.cjs +1722 -0
  87. package/dist/errors-BIftM8ZN.cjs +688 -0
  88. package/dist/errors-DSq5wUwt.js +466 -0
  89. package/dist/esm-HBSUQw3w.js +384 -0
  90. package/dist/esm-LZuaZjMf.cjs +389 -0
  91. package/dist/experimental.cjs +7349 -0
  92. package/dist/experimental.d.ts +86273 -0
  93. package/dist/experimental.js +7184 -0
  94. package/dist/gated-call-CDCVZIK-.cjs +5 -0
  95. package/dist/gated-call-D-tT7P_t.js +722 -0
  96. package/dist/gated-call-D_VT2quk.js +4 -0
  97. package/dist/gated-call-DgJm1Mi_.cjs +787 -0
  98. package/dist/grant-circuits-DswmW3nI.cjs +71 -0
  99. package/dist/grant-circuits-Jxb5y1HW.js +42 -0
  100. package/dist/grant-rules-By07_eDi.js +6824 -0
  101. package/dist/grant-rules-BzVTWXS7.cjs +7099 -0
  102. package/dist/grant-spend-B3Md9L0n.js +215 -0
  103. package/dist/grant-spend-oWmzRsjH.cjs +217 -0
  104. package/dist/grant-status-B2y49iIu.js +2688 -0
  105. package/dist/grant-status-DOr3t_u8.cjs +2820 -0
  106. package/dist/grants-2BZ-qEVQ.js +5 -0
  107. package/dist/grants-BPoLSiMt.cjs +18 -0
  108. package/dist/grants-BoI5uwSF.cjs +272 -0
  109. package/dist/grants-CtofFu-e.js +213 -0
  110. package/dist/{group-cardano-addresses-by-account-B533oVXR.cjs → group-cardano-addresses-by-account-Bp0g4wEY.cjs} +3 -39
  111. package/dist/{group-cardano-addresses-by-account-RHKoEskR.js → group-cardano-addresses-by-account-SR8MMrZf.js} +5 -35
  112. package/dist/{guarded-transaction-signer-Bxl6_XNd.cjs → guarded-transaction-signer-MFpPg98D.cjs} +17 -18
  113. package/dist/{guarded-transaction-signer-CpKLj8Kp.js → guarded-transaction-signer-P6Rp1faj.js} +8 -15
  114. package/dist/hex-D9ITYbwt.cjs +263 -0
  115. package/dist/hex-mkXcV3pN.js +191 -0
  116. package/dist/http-client-B3N-TMxu.cjs +167 -0
  117. package/dist/http-client-TRlhDZGh.js +155 -0
  118. package/dist/identity-BMLuufva.cjs +263 -0
  119. package/dist/identity-DII6f-h7.js +233 -0
  120. package/dist/in-memory-wallet-integration-B2xzxORj.cjs +20741 -0
  121. package/dist/in-memory-wallet-integration-CBRiPjLO.js +130 -0
  122. package/dist/in-memory-wallet-integration-CULUB5Tf.cjs +240 -0
  123. package/dist/{in-memory-wallet-integration-D-qn65Kx.js → in-memory-wallet-integration-ChIOirMW.js} +5 -2
  124. package/dist/{in-memory-wallet-integration-Croiuopx.js → in-memory-wallet-integration-CljprQQV.js} +7 -104
  125. package/dist/{in-memory-wallet-integration-DVh9sRXa.cjs → in-memory-wallet-integration-Cm6P8sk6.cjs} +3 -2
  126. package/dist/in-memory-wallet-integration-TM9bBphA.js +20738 -0
  127. package/dist/{in-memory-wallet-integration-CnLYeX4-.cjs → in-memory-wallet-integration-t9I00R_V.cjs} +17 -108
  128. package/dist/index.cjs +84 -47
  129. package/dist/index.d.ts +37496 -10033
  130. package/dist/index.js +52 -24
  131. package/dist/{init-CLHuAMB-.js → init-0zzs9aqU.js} +4 -4
  132. package/dist/{init-U8c9yHYx.cjs → init-5KcGcBb5.cjs} +1 -1
  133. package/dist/init-8v_n8boO.js +1177 -0
  134. package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
  135. package/dist/init-B8U3ABhS.cjs +107 -0
  136. package/dist/init-BJn-8_hf.js +141 -0
  137. package/dist/init-BPU3j8sT.cjs +6 -0
  138. package/dist/init-BRzH6xu-2.cjs +2797 -0
  139. package/dist/init-BmzfDaKL.js +1142 -0
  140. package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
  141. package/dist/init-BpHTq2R5.js +105 -0
  142. package/dist/init-BpSITBfF.js +39 -0
  143. package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
  144. package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
  145. package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
  146. package/dist/init-C00gw1zi.js +422 -0
  147. package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
  148. package/dist/{init-DcYY6zMD.js → init-C8URA2OX.js} +1 -1
  149. package/dist/init-CDkRynJa.js +2796 -0
  150. package/dist/{init-Cg9XdAru.js → init-CNM5m7M2.js} +4 -4
  151. package/dist/init-CR7BfztQ.cjs +18 -0
  152. package/dist/{init-CSHwHnfg.cjs → init-CSDpdu0Q.cjs} +2 -2
  153. package/dist/{init-aJHl-7AO.js → init-CX0AMQUn.js} +2 -2
  154. package/dist/{init-FMGDET-9.js → init-CfTbSEKy.js} +259 -60
  155. package/dist/{init-CR6tpw1B.js → init-Cigr_tKx.js} +47 -43
  156. package/dist/init-CuW7rHNA.js +3584 -0
  157. package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
  158. package/dist/init-Cz0rz5fU.cjs +3585 -0
  159. package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
  160. package/dist/init-D8OeObDF.cjs +1141 -0
  161. package/dist/init-D9g1HXYf.cjs +40 -0
  162. package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
  163. package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
  164. package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
  165. package/dist/init-DGjXwWs2.cjs +143 -0
  166. package/dist/init-DHrCbpkW.cjs +121 -0
  167. package/dist/{init-B64zCLxG.cjs → init-DUF4ar8P.cjs} +4 -4
  168. package/dist/init-DlqJuHhl.js +119 -0
  169. package/dist/{init-y2Ra0vZP.js → init-Dnsv155v.js} +3 -3
  170. package/dist/init-DrRdf5sZ.cjs +1176 -0
  171. package/dist/init-DuYENxci.js +17 -0
  172. package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
  173. package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
  174. package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
  175. package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
  176. package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
  177. package/dist/init-GsT2AEa4.cjs +424 -0
  178. package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
  179. package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
  180. package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
  181. package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
  182. package/dist/init-c4l6r-o-.js +5 -0
  183. package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
  184. package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
  185. package/dist/{init-anYu6XB7.cjs → init-rmt7-fQE.cjs} +2 -2
  186. package/dist/{init-C4Bkib9u.cjs → init-zU-_9Gsp.cjs} +67 -65
  187. package/dist/{is-retriable-error-BU0e3hVI.js → is-retriable-error-BUiVJDwH.js} +1 -1
  188. package/dist/{is-retriable-error-CeeuHqDa.cjs → is-retriable-error-Dpt860if.cjs} +1 -1
  189. package/dist/jubjub-authoriser-D7zDXu3V.js +86 -0
  190. package/dist/jubjub-authoriser-Dgu6o3Sv.cjs +87 -0
  191. package/dist/key-source-5oUBFiC7.cjs +583 -0
  192. package/dist/key-source-B08HukZg.js +2550 -0
  193. package/dist/keyDerivation-D3k9XyHg.js +4077 -0
  194. package/dist/keyDerivation-u0nBA93T.cjs +274 -0
  195. package/dist/{lace-context-CZcNHr4M.js → lace-context-BZciB9c7.js} +4 -4
  196. package/dist/{lace-context-fJTDghdp.cjs → lace-context-DgR6vLli.cjs} +4 -4
  197. package/dist/lib--iqvW4O_.js +2354 -0
  198. package/dist/lib-Yk6Upl5D.cjs +2359 -0
  199. package/dist/{libsodium-wrappers-UH0LaOUE.js → libsodium-wrappers-BhbOA8dQ.js} +3 -1647
  200. package/dist/midnight-account-id.vo-0x9X-r3l.cjs +10 -0
  201. package/dist/midnight-account-id.vo-DjCAGcqc.js +5 -0
  202. package/dist/midnight-engine-DpemplKO.js +5 -0
  203. package/dist/midnight-engine-xU1wotne.cjs +6 -0
  204. package/dist/midnight-wallet-DIsAlSn6.js +18 -0
  205. package/dist/midnight-wallet-XTZc2li7.cjs +24 -0
  206. package/dist/midnight.cjs +1408 -0
  207. package/dist/midnight.d.ts +28934 -0
  208. package/dist/midnight.js +1352 -0
  209. package/dist/modules-cardano-B1nDUWqy.js +995 -0
  210. package/dist/modules-cardano-BYeYHrRm.cjs +1108 -0
  211. package/dist/node-relay-DWe1U0w2.cjs +49 -0
  212. package/dist/node-relay-h4i5IlAQ.js +48 -0
  213. package/dist/outputs-Bd2yZVjx.js +720 -0
  214. package/dist/outputs-CJoQBIA2.cjs +990 -0
  215. package/dist/pbkdf2-CIW-oWrm.cjs +1337 -0
  216. package/dist/pending-operation-B0_P78Jo.cjs +26 -0
  217. package/dist/pending-operation-BIS6mpjB.js +21 -0
  218. package/dist/providers-FjhM47BH.cjs +388 -0
  219. package/dist/providers-WtiSuxFu.js +365 -0
  220. package/dist/redacted-BmE2aXqr.js +81 -0
  221. package/dist/redacted-CRZJLS3w.cjs +86 -0
  222. package/dist/{retry-config-DC5IMaH7.cjs → retry-config-BaCfVC1H.cjs} +1 -1
  223. package/dist/{retry-config-BcUmMS--.js → retry-config-Dmgt28wM.js} +1 -1
  224. package/dist/safe-buffer-B_vMqJWU.js +43 -0
  225. package/dist/safe-buffer-DYOwEfHB.cjs +48 -0
  226. package/dist/sdk-Cb-gZnS9.js +1241 -0
  227. package/dist/sdk-DffwmX8b.cjs +1439 -0
  228. package/dist/sdk-init-Bln9rFtn.js +4138 -0
  229. package/dist/sdk-init-CYViTJY_.cjs +3841 -0
  230. package/dist/{seam-cardano-CATqBEyK.js → seam-cardano-B_etH4F4.js} +1 -1
  231. package/dist/{bytes.vo-TgiwogWF.js → secret-box-DUR0ACYz.js} +3 -25
  232. package/dist/{bytes.vo-Ck5u40RA.cjs → secret-box-DrjLZuS1.cjs} +1 -35
  233. package/dist/send-proof-progress-C-ljq1x5.js +30 -0
  234. package/dist/send-proof-progress-vmsaSfbz.cjs +47 -0
  235. package/dist/side-effects-BnqYz7Nl.js +768 -0
  236. package/dist/side-effects-CngaeXi0.cjs +804 -0
  237. package/dist/sign-bitcoin-transaction-with-seed-D4z62-jV.js +147 -0
  238. package/dist/sign-bitcoin-transaction-with-seed-DsLYXnCY.cjs +158 -0
  239. package/dist/signer-3fk8lZtE.cjs +7 -0
  240. package/dist/signer-CsL28DrK.cjs +121 -0
  241. package/dist/signer-DGluibtn.js +92 -0
  242. package/dist/signer-RqB5pu3K.js +2 -0
  243. package/dist/signer-factory-BA7WFJVZ.js +282 -0
  244. package/dist/signer-factory-Cwd6o-lG.cjs +281 -0
  245. package/dist/{signer-factory-9URFliA5.js → signer-factory-DObB55D4.js} +6 -3
  246. package/dist/signer-factory-DhZiE03y.cjs +149 -0
  247. package/dist/{signer-factory-BWGUmnvm.cjs → signer-factory-Ds6G2AZk.cjs} +4 -3
  248. package/dist/signer-factory-hzSRaIw2.js +148 -0
  249. package/dist/{slice-CuHUaPZx.cjs → slice-7G2xxYKJ.cjs} +3 -3
  250. package/dist/{slice-DZmQJNV8.cjs → slice-B4CdYoPu.cjs} +2 -2
  251. package/dist/slice-BPNuHKfw.js +9091 -0
  252. package/dist/{slice-DGcNrbPR.cjs → slice-Bg6HEr3K.cjs} +4 -4
  253. package/dist/{slice-DtaO72qY.cjs → slice-Bs2aMERu.cjs} +3 -3
  254. package/dist/{slice-HeHCv3bl.cjs → slice-C34iOOUH.cjs} +7 -7
  255. package/dist/{slice-Do2R2CYW.cjs → slice-C9TT5KhY.cjs} +6 -6
  256. package/dist/{slice-eIwcwKHI.js → slice-CK07EBCo.js} +4 -4
  257. package/dist/{slice-CnyWevM9.js → slice-CU80pbiu.js} +3 -3
  258. package/dist/{slice-CobanYgn.js → slice-CwyYrh1H.js} +2 -2
  259. package/dist/slice-Czfp6t84.cjs +436 -0
  260. package/dist/{slice-d0p6-xj5.js → slice-D-9aPKG-.js} +6 -6
  261. package/dist/{slice-maaskdUn.js → slice-DBpJ2QGf.js} +6 -6
  262. package/dist/{slice-mxLQ_FeY.cjs → slice-DTZTiJle.cjs} +352 -39
  263. package/dist/{slice-zJ9XVYjZ.js → slice-Da426sf9.js} +1 -1
  264. package/dist/{slice-D11m2EKl.cjs → slice-DayJvMRD.cjs} +1 -1
  265. package/dist/slice-DnBWfA-k.cjs +9109 -0
  266. package/dist/{slice-oqm_r1cS.cjs → slice-DnG-yvpI.cjs} +2 -2
  267. package/dist/{slice-BNu73oBa.js → slice-DyNs7oWp.js} +2 -2
  268. package/dist/{slice-CB4SnzMm.js → slice-GwiiJRoq.js} +3 -3
  269. package/dist/slice-oWnc7YVD.js +412 -0
  270. package/dist/{slice-B2PhoWAg.js → slice-qt0uBExh.js} +325 -37
  271. package/dist/slice-t8Gzj55G2.cjs +106 -0
  272. package/dist/slice-t8Q1cHm-.js +88 -0
  273. package/dist/src-BDzYIksE.cjs +20637 -0
  274. package/dist/src-BFoefPv_.js +20755 -0
  275. package/dist/store-B1Lq3cEf.cjs +66 -0
  276. package/dist/store-DuBG8qh5.js +37 -0
  277. package/dist/submit-Bs77dPn_.cjs +413 -0
  278. package/dist/submit-DOv8Z0Vf.js +336 -0
  279. package/dist/submit-bitcoin-tx-D6oYgH5S.js +983 -0
  280. package/dist/submit-bitcoin-tx-goFuRL7K.cjs +1049 -0
  281. package/dist/{sync-operation-utils-BYXLO80m.js → sync-operation-utils-31iFLExW.js} +2 -38
  282. package/dist/{sync-operation-utils-SdPbwFoD.cjs → sync-operation-utils-COIZ66-I.cjs} +1 -67
  283. package/dist/token-id-mapper-Bnds3xKH.cjs +18 -0
  284. package/dist/{token-id-mapper-DsPAL6Nh.cjs → token-id-mapper-CVyQJUKY.cjs} +2 -2
  285. package/dist/token-id-mapper-CnKHQ8DV.js +16 -0
  286. package/dist/{token-id-mapper-B2ivlLv3.js → token-id-mapper-D29Ggv8h.js} +2 -2
  287. package/dist/tokens-Cevp7rdU.cjs +62 -0
  288. package/dist/tokens-Diw4MLRM.js +44 -0
  289. package/dist/types-B8uiJn-X.js +12 -0
  290. package/dist/types-BHC12eSa.js +33 -0
  291. package/dist/types-CJT6XF2c.js +10 -0
  292. package/dist/types-CLRUYpfe.cjs +23 -0
  293. package/dist/types-Cc3mC8u0.cjs +50 -0
  294. package/dist/types-DWbVZpnF.cjs +15 -0
  295. package/dist/unwrap-provider-result-BZSiwabU.js +32 -0
  296. package/dist/unwrap-provider-result-ZqfBsTkk.cjs +39 -0
  297. package/dist/{util-CGzqQ8IV.cjs → util-Bu4W5lF4.cjs} +1 -1
  298. package/dist/{util-BaLzwa32.js → util-Cp5cZkfK.js} +1 -1
  299. package/dist/{utils-o8aMjfln.js → utils-BfBEUvWA.js} +2 -2
  300. package/dist/utils-DFwzEvbv.js +65 -0
  301. package/dist/{utils-5JvjbqH3.cjs → utils-DsElZgCI.cjs} +7 -1
  302. package/dist/utils-IXxR-Djh.cjs +112 -0
  303. package/dist/v8Signatures-CO_Uloy7.cjs +71 -0
  304. package/dist/{vote-delegation-tx-builder-BpEMSti4.cjs → vote-delegation-tx-builder-BUg1S2Ep.cjs} +6 -6
  305. package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-C6FiS7zI.js} +5 -5
  306. package/dist/watch-CUEvcP-V.js +21997 -0
  307. package/dist/watch-DMF2s-II.cjs +52281 -0
  308. package/package.json +96 -4
  309. package/dist/account-guards.stable-B1DSSh9D.cjs +0 -10
  310. package/dist/account-guards.stable-JRQ5qx2V.js +0 -5
  311. package/dist/codecs-B7X9pAsK.cjs +0 -1945
  312. package/dist/codecs-CC1Xjntz.js +0 -1882
  313. package/dist/init-Bv53hpLM.js +0 -19
  314. package/dist/init-CRbjI7p1.js +0 -3494
  315. package/dist/init-DAna1KCg.cjs +0 -3495
  316. package/dist/init-DGe47B22.cjs +0 -364
  317. package/dist/init-DMtyvYfC.cjs +0 -21
  318. package/dist/init-TkPDD750.js +0 -363
  319. package/dist/modules-cardano-BDvuL4Xx.js +0 -5248
  320. package/dist/modules-cardano-D2G3De2P.cjs +0 -5432
  321. package/dist/slice-CGVHXHDt.cjs +0 -125
  322. package/dist/slice-DhvF7L6X.js +0 -107
  323. /package/dist/{account-id.vo-LvCBVn5r.cjs → account-id.vo-DwqFjK5u.cjs} +0 -0
  324. /package/dist/{account-id.vo-MYSI7YFm.js → account-id.vo-OPz2v-JZ.js} +0 -0
  325. /package/dist/{actions-DdGbj7c7.cjs → actions-B2BJ4RTy.cjs} +0 -0
  326. /package/dist/{actions-9QSQR-GB.js → actions-iLXdgL5Y.js} +0 -0
  327. /package/dist/{apply-vkey-witnesses-ClZbpk5w.js → apply-vkey-witnesses-BKx3lcs0.js} +0 -0
  328. /package/dist/{apply-vkey-witnesses-CLzVSWxl.cjs → apply-vkey-witnesses-ZnFS0jnJ.cjs} +0 -0
  329. /package/dist/{asyncoption-Cw07zPH7.js → asyncoption-CruEYOBI.js} +0 -0
  330. /package/dist/{asyncoption-DYoGuQfP.cjs → asyncoption-i0VbqVTq.cjs} +0 -0
  331. /package/dist/{bignum.vo-B0rK_PQ1.js → bignum.vo-CEXOIew0.js} +0 -0
  332. /package/dist/{bignum.vo-DsG3kNiZ.cjs → bignum.vo-hx2kuqlA.cjs} +0 -0
  333. /package/dist/{bip32ed25519-1ApqeAZk.cjs → bip32ed25519-B7Yat217.cjs} +0 -0
  334. /package/dist/{bip32ed25519-DetAdGwD.js → bip32ed25519-FQ8qvdcq.js} +0 -0
  335. /package/dist/{blake2b-DOEVc57D.js → blake2b-BiQTw3GC.js} +0 -0
  336. /package/dist/{blake2b-B9tftbvG.cjs → blake2b-DEeVUdKR.cjs} +0 -0
  337. /package/dist/{blockchain-network-id.vo-BXpZhvvQ.cjs → blockchain-network-id.vo-BAKEwGjG.cjs} +0 -0
  338. /package/dist/{blockchain-network-id.vo-DNRkuT5B.js → blockchain-network-id.vo-CiVykuqG.js} +0 -0
  339. /package/dist/{blockingWithLatestFrom-C5wp_uA-.js → blockingWithLatestFrom-Cd8c8EPG.js} +0 -0
  340. /package/dist/{blockingWithLatestFrom-DY8OPg0w.cjs → blockingWithLatestFrom-D8kBPBMX.cjs} +0 -0
  341. /package/dist/{cardano-network-id-to-network-type-CrZfUcyP.js → cardano-network-id-to-network-type-BWwzeEtM.js} +0 -0
  342. /package/dist/{cardano-network-id-to-network-type-BDTF-HmK.cjs → cardano-network-id-to-network-type-C0ufJOyE.cjs} +0 -0
  343. /package/dist/{cardano-tx-id.vo-BPhV-AmZ.cjs → cardano-tx-id.vo-TLjJZHCI.cjs} +0 -0
  344. /package/dist/{cardano-tx-id.vo-DF9NzZXk.js → cardano-tx-id.vo-eVnKuzlm.js} +0 -0
  345. /package/dist/{composite-signer-factory-_46QsNBz.js → composite-signer-factory-CR8YHA1y.js} +0 -0
  346. /package/dist/{composite-signer-factory-BpF1mIYA.cjs → composite-signer-factory-m5cVs9h_.cjs} +0 -0
  347. /package/dist/{error-CNIquqT5.cjs → error-Cb3EnD0u.cjs} +0 -0
  348. /package/dist/{error-BCp9NkPi.js → error-DIZOY2Lw.js} +0 -0
  349. /package/dist/{esm-browser-C93Q-EOI.js → esm-browser-MG97cre9.js} +0 -0
  350. /package/dist/{esm-browser-DTc9IK3D.cjs → esm-browser-bweqfBlL.cjs} +0 -0
  351. /package/dist/{feature-flag-key.vo-ofrB6ZVQ.js → feature-flag-key.vo-DN_-4-sG.js} +0 -0
  352. /package/dist/{feature-flag-key.vo-BPz-ZAp6.cjs → feature-flag-key.vo-RlfHL3hq.cjs} +0 -0
  353. /package/dist/{first-state-of-status-OROkXcRv.cjs → first-state-of-status-CbT7hPa4.cjs} +0 -0
  354. /package/dist/{first-state-of-status-DQnMT3ya.js → first-state-of-status-unPynOuM.js} +0 -0
  355. /package/dist/{init-Es3wHW7D.js → init-829HRYcz.js} +0 -0
  356. /package/dist/{init-CKipPE_c.js → init-A-VyGSNW2.js} +0 -0
  357. /package/dist/{init-DFQQ9dTW.cjs → init-Atisw4x2.cjs} +0 -0
  358. /package/dist/{init-C5CEZ1m0.cjs → init-BFcvPHL-.cjs} +0 -0
  359. /package/dist/{init-IAk_CkGa.cjs → init-BgNobbNq.cjs} +0 -0
  360. /package/dist/{init-cqN3uX2j.js → init-atCFur0v.js} +0 -0
  361. /package/dist/{is-redux-persist-state-CTn3WZVh.cjs → is-redux-persist-state-BCFnSm36.cjs} +0 -0
  362. /package/dist/{is-redux-persist-state-Cxcd0_bM.js → is-redux-persist-state-yBfq0h_E.js} +0 -0
  363. /package/dist/{key-value-store-8cMzeNyG.js → key-value-store--W3SrMaw.js} +0 -0
  364. /package/dist/{key-value-store-DUAepXQf.cjs → key-value-store-C2Xt5Emp.cjs} +0 -0
  365. /package/dist/{repo-slice-WxetRhMY.cjs → repo-slice-7X4AYYVm.cjs} +0 -0
  366. /package/dist/{repo-slice-DwyMhCR1.js → repo-slice-RxFm0zDZ.js} +0 -0
  367. /package/dist/{reselect-CRDqmQY9.cjs → reselect-Bd94u0K-.cjs} +0 -0
  368. /package/dist/{reselect-C06X06oX.js → reselect-CGoLzEPv.js} +0 -0
  369. /package/dist/{serializable-B8GahgE1.js → serializable-BHdKIgk3.js} +0 -0
  370. /package/dist/{serializable-CRdnFaLZ.cjs → serializable-BxHkoPdk.cjs} +0 -0
  371. /package/dist/{slice-D11FHQuQ.cjs → slice-BiRsDKOK.cjs} +0 -0
  372. /package/dist/{slice-Be7hj4Iy.js → slice-Bk0Sv05J.js} +0 -0
  373. /package/dist/{slice-FioKeHtA.cjs → slice-Dqw1ecum.cjs} +0 -0
  374. /package/dist/{slice-B87b52iM.js → slice-obCSLm1x.js} +0 -0
  375. /package/dist/{src-vq1wS9sZ.js → src-BlxEp6Mm.js} +0 -0
  376. /package/dist/{src-BTPIvlDI.cjs → src-Cqp0B2M_.cjs} +0 -0
  377. /package/dist/{time.vo-CQ8pSXz2.cjs → time.vo-D3wWRw9L.cjs} +0 -0
  378. /package/dist/{time.vo-DkYYGYp6.js → time.vo-tNheinXm.js} +0 -0
  379. /package/dist/{toEmpty-CgAl3097.js → toEmpty-8Zax1MPd.js} +0 -0
  380. /package/dist/{toEmpty-DAMmNB5r.cjs → toEmpty-CYAbupM4.cjs} +0 -0
  381. /package/dist/{token-id.vo-ClsroxHO.js → token-id.vo-Bvwhr3ZE.js} +0 -0
  382. /package/dist/{token-id.vo-BxG9TG0O.cjs → token-id.vo-DXv5uS9n.cjs} +0 -0
  383. /package/dist/{util-DxzlYNS5.js → util-C8a4fA9p.js} +0 -0
  384. /package/dist/{util-CmdAhheh.cjs → util-CzeB3hfa.cjs} +0 -0
  385. /package/dist/{util-selector-CcK-GAdE.js → util-selector-BSTsxgne.js} +0 -0
  386. /package/dist/{util-selector-BcAncU4L.cjs → util-selector-BWPH68_l.cjs} +0 -0
  387. /package/dist/{while-active-BpppWuCs.js → while-active-B0lWy_6l.js} +0 -0
  388. /package/dist/{while-active-Dhc2LwOm.cjs → while-active-Dsowp0Fi.cjs} +0 -0
@@ -0,0 +1,215 @@
1
+ import "./_polyfill-buffer-patch-yNxN4d5E.js";
2
+ import "./codecs-Dc1Krpbt.js";
3
+ import { n as HexBytes, t as ByteArray } from "./bytes.vo-BB7_4JK6.js";
4
+ import { L as sha256, w as GrantSpendRefusedError } from "./errors-DSq5wUwt.js";
5
+ import { W as GrantSlot, a as zero32, i as granteePoint, t as RECIPIENT_KINDS } from "./grant-rules-By07_eDi.js";
6
+ import { a as grantWithdrawalCircuit } from "./grant-circuits-Jxb5y1HW.js";
7
+ import { a as pureCircuits } from "./acc-module-Cmj8EsIb.js";
8
+ import { a as originHash, n as deriveGrantId, t as K256_GRANT_ENVELOPE } from "./grants-CtofFu-e.js";
9
+ //#region ../../packages/module/passport-account/src/acc/grant-spend-challenges.ts
10
+ /** The grantee's secp256k1 point, read from the key its policy carries. */
11
+ const k256Point = (publicKey) => {
12
+ return granteePoint({
13
+ scheme: "secp256k1-ecdsa",
14
+ publicKey
15
+ }).point;
16
+ };
17
+ /** The grantee's jubjub point, read from the key its policy carries. */
18
+ const jubjubPoint = (publicKey) => {
19
+ return granteePoint({
20
+ scheme: "jubjub-schnorr",
21
+ publicKey
22
+ }).point;
23
+ };
24
+ const address = (context) => ({ bytes: context.contractAddress });
25
+ const coinOf = ({ coin }) => ({
26
+ nonce: coin.nonce,
27
+ color: coin.color,
28
+ value: coin.value,
29
+ mt_index: coin.mtIndex
30
+ });
31
+ /**
32
+ * The challenge builders of the grant withdrawals, for both grantee
33
+ * schemes. The preimage layout is the contract's own: each builder calls
34
+ * the pure circuit the withdrawal recomputes its challenge with, over the
35
+ * account address, the grantee key, the grant id and issue time, the
36
+ * withdrawal's arguments in declaration order and the record's nonce,
37
+ * with the announcement and grind nonce first and last on the jubjub arm.
38
+ * A shielded challenge also binds the change entry, the encryption key
39
+ * and the held coin the withdrawal spends.
40
+ */
41
+ const grantSpendChallenges = {
42
+ "secp256k1-ecdsa": {
43
+ "withdraw-unshielded": (context, withdrawal) => pureCircuits.challenge_withdraw_unshielded_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, withdrawal.color, withdrawal.amount, { bytes: withdrawal.recipient }, context.nonce),
44
+ "withdraw-shielded": (context, withdrawal) => pureCircuits.challenge_withdraw_shielded_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce),
45
+ "withdraw-shielded-to-contract": (context, withdrawal) => pureCircuits.challenge_withdraw_shielded_to_contract_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce)
46
+ },
47
+ "jubjub-schnorr": {
48
+ "withdraw-unshielded": (context, withdrawal) => {
49
+ const pk = jubjubPoint(context.granteePublicKey);
50
+ return (sigR, grindNonce) => pureCircuits.challenge_withdraw_unshielded_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, withdrawal.color, withdrawal.amount, { bytes: withdrawal.recipient }, context.nonce, grindNonce);
51
+ },
52
+ "withdraw-shielded": (context, withdrawal) => {
53
+ const pk = jubjubPoint(context.granteePublicKey);
54
+ return (sigR, grindNonce) => pureCircuits.challenge_withdraw_shielded_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce, grindNonce);
55
+ },
56
+ "withdraw-shielded-to-contract": (context, withdrawal) => {
57
+ const pk = jubjubPoint(context.granteePublicKey);
58
+ return (sigR, grindNonce) => pureCircuits.challenge_withdraw_shielded_to_contract_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce, grindNonce);
59
+ }
60
+ }
61
+ };
62
+ //#endregion
63
+ //#region ../../packages/module/passport-account/src/acc/grant-spend.ts
64
+ /** The recipient kind each withdrawal pays, which a pinned grant must name. */
65
+ const PAID_RECIPIENT_KINDS = {
66
+ "withdraw-unshielded": "user-address",
67
+ "withdraw-shielded": "coin-public-key",
68
+ "withdraw-shielded-to-contract": "contract-address"
69
+ };
70
+ const refuse = (reason) => {
71
+ throw new GrantSpendRefusedError(`The grant does not allow this spend: ${reason}.`);
72
+ };
73
+ const bytesOf = (hex) => ByteArray.fromHex(HexBytes(hex));
74
+ /**
75
+ * Checks a spend against the grant's scope as its policy states it, in
76
+ * the contract's order, so a spend the contract would refuse is caught
77
+ * before it is signed and proved. Expiry is checked against this
78
+ * machine's clock, which the contract checks again against the block's.
79
+ */
80
+ const assertSpendAllowed = (policy, spend) => {
81
+ const { expiresAt } = policy;
82
+ if (expiresAt !== null && Math.floor(Date.now() / 1e3) >= expiresAt) refuse(`it expired at ${expiresAt}`);
83
+ if (!policy.operations.includes(spend.operation)) refuse(`${spend.operation} is not in its scope`);
84
+ if (spend.amount > BigInt(policy.perCallCap)) refuse(`${spend.amount} is above the per-call cap ${policy.perCallCap}`);
85
+ if (spend.spent + spend.amount > BigInt(policy.cap)) refuse(`${spend.amount} after ${spend.spent} spent exceeds the cap ${policy.cap}`);
86
+ const { recipient } = policy;
87
+ if (recipient.kind !== "any") {
88
+ if (recipient.kind !== PAID_RECIPIENT_KINDS[spend.operation]) refuse(`it pins a ${recipient.kind} recipient, which ${spend.operation} does not pay`);
89
+ if (HexBytes.fromByteArray(spend.recipient) !== recipient.value) refuse("the recipient is not the one it pins");
90
+ }
91
+ if (spend.operation !== "withdraw-unshielded") {
92
+ if (HexBytes.fromByteArray(spend.coin.color) !== policy.color) refuse("the coin is not of its colour");
93
+ if (spend.coin.value > BigInt(policy.maxCoinValue)) refuse(`the coin of ${spend.coin.value} is above its coin bound ${policy.maxCoinValue}`);
94
+ if (spend.coin.value < spend.amount) refuse(`the coin of ${spend.coin.value} cannot pay the amount ${spend.amount}`);
95
+ }
96
+ };
97
+ /** The withdrawal's own arguments, in the circuit's declaration order. */
98
+ const withdrawalArgs = (spend, color) => spend.operation === "withdraw-unshielded" ? [
99
+ color,
100
+ spend.amount,
101
+ { bytes: spend.recipient }
102
+ ] : [
103
+ { bytes: spend.recipient },
104
+ color,
105
+ spend.amount,
106
+ spend.changeEntry,
107
+ spend.encPublicKey
108
+ ];
109
+ const k256Challenge = (context, spend, color) => {
110
+ const builders = grantSpendChallenges["secp256k1-ecdsa"];
111
+ switch (spend.operation) {
112
+ case "withdraw-unshielded": return builders[spend.operation](context, {
113
+ ...spend,
114
+ color
115
+ });
116
+ case "withdraw-shielded": return builders[spend.operation](context, {
117
+ ...spend,
118
+ color
119
+ });
120
+ case "withdraw-shielded-to-contract": return builders[spend.operation](context, {
121
+ ...spend,
122
+ color
123
+ });
124
+ }
125
+ };
126
+ const jubjubChallenge = (context, spend, color) => {
127
+ const builders = grantSpendChallenges["jubjub-schnorr"];
128
+ switch (spend.operation) {
129
+ case "withdraw-unshielded": return builders[spend.operation](context, {
130
+ ...spend,
131
+ color
132
+ });
133
+ case "withdraw-shielded": return builders[spend.operation](context, {
134
+ ...spend,
135
+ color
136
+ });
137
+ case "withdraw-shielded-to-contract": return builders[spend.operation](context, {
138
+ ...spend,
139
+ color
140
+ });
141
+ }
142
+ };
143
+ /**
144
+ * Prepares a spend under the grant a policy describes: checks it against
145
+ * the grant's scope, checks that the policy's grant id derives from its
146
+ * account, grantee key, origin and slot, and returns the withdrawal
147
+ * circuit, its arguments up to the signature and the challenge to sign.
148
+ * The arguments carry the grantee key, the origin hash, the slot, the
149
+ * scope salt and the object fields the contract opens its commitments
150
+ * with, and on the secp256k1 arm the plain ECDSA envelope.
151
+ *
152
+ * @throws {@link GrantSpendRefusedError} when the grant does not allow
153
+ * the spend, or the policy's grant id is not its own.
154
+ */
155
+ const prepareGrantSpend = async (policy, spend) => {
156
+ assertSpendAllowed(policy, spend);
157
+ const contractAddress = bytesOf(policy.account);
158
+ const grantee = granteePoint({
159
+ scheme: policy.granteeScheme,
160
+ publicKey: policy.granteePublicKey
161
+ });
162
+ const origin = await originHash(policy.origin);
163
+ const grantId = deriveGrantId({
164
+ contractAddress,
165
+ granteePublicKey: grantee,
166
+ originHash: origin,
167
+ slot: GrantSlot(policy.slot)
168
+ });
169
+ if (grantId !== policy.grantId) refuse(`its id ${policy.grantId} does not derive from the policy's account, grantee, origin and slot`);
170
+ const color = bytesOf(policy.color);
171
+ const context = {
172
+ contractAddress,
173
+ granteePublicKey: policy.granteePublicKey,
174
+ grantId: bytesOf(grantId),
175
+ issuedAt: spend.issuedAt,
176
+ nonce: spend.nonce
177
+ };
178
+ const scopeArgs = [
179
+ origin,
180
+ BigInt(policy.slot),
181
+ bytesOf(policy.scopeSalt),
182
+ RECIPIENT_KINDS[policy.recipient.kind],
183
+ policy.recipient.kind === "any" ? zero32() : bytesOf(policy.recipient.value),
184
+ BigInt(policy.maxCoinValue),
185
+ spend.spent
186
+ ];
187
+ const circuit = grantWithdrawalCircuit(policy.granteeScheme, spend.operation);
188
+ if (grantee.scheme === "secp256k1-ecdsa") {
189
+ const challenge = k256Challenge(context, spend, color);
190
+ return {
191
+ scheme: grantee.scheme,
192
+ circuit,
193
+ args: [
194
+ ...withdrawalArgs(spend, color),
195
+ grantee.point,
196
+ K256_GRANT_ENVELOPE,
197
+ ...scopeArgs
198
+ ],
199
+ challenge,
200
+ digest: sha256(challenge)
201
+ };
202
+ }
203
+ return {
204
+ scheme: grantee.scheme,
205
+ circuit,
206
+ args: [
207
+ ...withdrawalArgs(spend, color),
208
+ grantee.point,
209
+ ...scopeArgs
210
+ ],
211
+ challenge: jubjubChallenge(context, spend, color)
212
+ };
213
+ };
214
+ //#endregion
215
+ export { grantSpendChallenges, prepareGrantSpend };
@@ -0,0 +1,217 @@
1
+ require("./rolldown-runtime-Br2OG8yv.cjs");
2
+ require("./_polyfill-buffer-patch-CM8X7JiY.cjs");
3
+ require("./codecs-Cswkg7Tm.cjs");
4
+ const require_bytes_vo = require("./bytes.vo-BNRquqaO.cjs");
5
+ const require_errors = require("./errors-BIftM8ZN.cjs");
6
+ const require_grant_rules = require("./grant-rules-BzVTWXS7.cjs");
7
+ const require_grant_circuits = require("./grant-circuits-DswmW3nI.cjs");
8
+ const require_acc_module = require("./acc-module-4iIUv6My.cjs");
9
+ const require_grants = require("./grants-BoI5uwSF.cjs");
10
+ //#region ../../packages/module/passport-account/src/acc/grant-spend-challenges.ts
11
+ /** The grantee's secp256k1 point, read from the key its policy carries. */
12
+ const k256Point = (publicKey) => {
13
+ return require_grant_rules.granteePoint({
14
+ scheme: "secp256k1-ecdsa",
15
+ publicKey
16
+ }).point;
17
+ };
18
+ /** The grantee's jubjub point, read from the key its policy carries. */
19
+ const jubjubPoint = (publicKey) => {
20
+ return require_grant_rules.granteePoint({
21
+ scheme: "jubjub-schnorr",
22
+ publicKey
23
+ }).point;
24
+ };
25
+ const address = (context) => ({ bytes: context.contractAddress });
26
+ const coinOf = ({ coin }) => ({
27
+ nonce: coin.nonce,
28
+ color: coin.color,
29
+ value: coin.value,
30
+ mt_index: coin.mtIndex
31
+ });
32
+ /**
33
+ * The challenge builders of the grant withdrawals, for both grantee
34
+ * schemes. The preimage layout is the contract's own: each builder calls
35
+ * the pure circuit the withdrawal recomputes its challenge with, over the
36
+ * account address, the grantee key, the grant id and issue time, the
37
+ * withdrawal's arguments in declaration order and the record's nonce,
38
+ * with the announcement and grind nonce first and last on the jubjub arm.
39
+ * A shielded challenge also binds the change entry, the encryption key
40
+ * and the held coin the withdrawal spends.
41
+ */
42
+ const grantSpendChallenges = {
43
+ "secp256k1-ecdsa": {
44
+ "withdraw-unshielded": (context, withdrawal) => require_acc_module.pureCircuits.challenge_withdraw_unshielded_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, withdrawal.color, withdrawal.amount, { bytes: withdrawal.recipient }, context.nonce),
45
+ "withdraw-shielded": (context, withdrawal) => require_acc_module.pureCircuits.challenge_withdraw_shielded_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce),
46
+ "withdraw-shielded-to-contract": (context, withdrawal) => require_acc_module.pureCircuits.challenge_withdraw_shielded_to_contract_with_grant_k256(address(context), k256Point(context.granteePublicKey), context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce)
47
+ },
48
+ "jubjub-schnorr": {
49
+ "withdraw-unshielded": (context, withdrawal) => {
50
+ const pk = jubjubPoint(context.granteePublicKey);
51
+ return (sigR, grindNonce) => require_acc_module.pureCircuits.challenge_withdraw_unshielded_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, withdrawal.color, withdrawal.amount, { bytes: withdrawal.recipient }, context.nonce, grindNonce);
52
+ },
53
+ "withdraw-shielded": (context, withdrawal) => {
54
+ const pk = jubjubPoint(context.granteePublicKey);
55
+ return (sigR, grindNonce) => require_acc_module.pureCircuits.challenge_withdraw_shielded_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce, grindNonce);
56
+ },
57
+ "withdraw-shielded-to-contract": (context, withdrawal) => {
58
+ const pk = jubjubPoint(context.granteePublicKey);
59
+ return (sigR, grindNonce) => require_acc_module.pureCircuits.challenge_withdraw_shielded_to_contract_with_grant_jubjub(address(context), sigR, pk, context.grantId, context.issuedAt, { bytes: withdrawal.recipient }, withdrawal.color, withdrawal.amount, withdrawal.changeEntry, withdrawal.encPublicKey, coinOf(withdrawal), context.nonce, grindNonce);
60
+ }
61
+ }
62
+ };
63
+ //#endregion
64
+ //#region ../../packages/module/passport-account/src/acc/grant-spend.ts
65
+ /** The recipient kind each withdrawal pays, which a pinned grant must name. */
66
+ const PAID_RECIPIENT_KINDS = {
67
+ "withdraw-unshielded": "user-address",
68
+ "withdraw-shielded": "coin-public-key",
69
+ "withdraw-shielded-to-contract": "contract-address"
70
+ };
71
+ const refuse = (reason) => {
72
+ throw new require_errors.GrantSpendRefusedError(`The grant does not allow this spend: ${reason}.`);
73
+ };
74
+ const bytesOf = (hex) => require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(hex));
75
+ /**
76
+ * Checks a spend against the grant's scope as its policy states it, in
77
+ * the contract's order, so a spend the contract would refuse is caught
78
+ * before it is signed and proved. Expiry is checked against this
79
+ * machine's clock, which the contract checks again against the block's.
80
+ */
81
+ const assertSpendAllowed = (policy, spend) => {
82
+ const { expiresAt } = policy;
83
+ if (expiresAt !== null && Math.floor(Date.now() / 1e3) >= expiresAt) refuse(`it expired at ${expiresAt}`);
84
+ if (!policy.operations.includes(spend.operation)) refuse(`${spend.operation} is not in its scope`);
85
+ if (spend.amount > BigInt(policy.perCallCap)) refuse(`${spend.amount} is above the per-call cap ${policy.perCallCap}`);
86
+ if (spend.spent + spend.amount > BigInt(policy.cap)) refuse(`${spend.amount} after ${spend.spent} spent exceeds the cap ${policy.cap}`);
87
+ const { recipient } = policy;
88
+ if (recipient.kind !== "any") {
89
+ if (recipient.kind !== PAID_RECIPIENT_KINDS[spend.operation]) refuse(`it pins a ${recipient.kind} recipient, which ${spend.operation} does not pay`);
90
+ if (require_bytes_vo.HexBytes.fromByteArray(spend.recipient) !== recipient.value) refuse("the recipient is not the one it pins");
91
+ }
92
+ if (spend.operation !== "withdraw-unshielded") {
93
+ if (require_bytes_vo.HexBytes.fromByteArray(spend.coin.color) !== policy.color) refuse("the coin is not of its colour");
94
+ if (spend.coin.value > BigInt(policy.maxCoinValue)) refuse(`the coin of ${spend.coin.value} is above its coin bound ${policy.maxCoinValue}`);
95
+ if (spend.coin.value < spend.amount) refuse(`the coin of ${spend.coin.value} cannot pay the amount ${spend.amount}`);
96
+ }
97
+ };
98
+ /** The withdrawal's own arguments, in the circuit's declaration order. */
99
+ const withdrawalArgs = (spend, color) => spend.operation === "withdraw-unshielded" ? [
100
+ color,
101
+ spend.amount,
102
+ { bytes: spend.recipient }
103
+ ] : [
104
+ { bytes: spend.recipient },
105
+ color,
106
+ spend.amount,
107
+ spend.changeEntry,
108
+ spend.encPublicKey
109
+ ];
110
+ const k256Challenge = (context, spend, color) => {
111
+ const builders = grantSpendChallenges["secp256k1-ecdsa"];
112
+ switch (spend.operation) {
113
+ case "withdraw-unshielded": return builders[spend.operation](context, {
114
+ ...spend,
115
+ color
116
+ });
117
+ case "withdraw-shielded": return builders[spend.operation](context, {
118
+ ...spend,
119
+ color
120
+ });
121
+ case "withdraw-shielded-to-contract": return builders[spend.operation](context, {
122
+ ...spend,
123
+ color
124
+ });
125
+ }
126
+ };
127
+ const jubjubChallenge = (context, spend, color) => {
128
+ const builders = grantSpendChallenges["jubjub-schnorr"];
129
+ switch (spend.operation) {
130
+ case "withdraw-unshielded": return builders[spend.operation](context, {
131
+ ...spend,
132
+ color
133
+ });
134
+ case "withdraw-shielded": return builders[spend.operation](context, {
135
+ ...spend,
136
+ color
137
+ });
138
+ case "withdraw-shielded-to-contract": return builders[spend.operation](context, {
139
+ ...spend,
140
+ color
141
+ });
142
+ }
143
+ };
144
+ /**
145
+ * Prepares a spend under the grant a policy describes: checks it against
146
+ * the grant's scope, checks that the policy's grant id derives from its
147
+ * account, grantee key, origin and slot, and returns the withdrawal
148
+ * circuit, its arguments up to the signature and the challenge to sign.
149
+ * The arguments carry the grantee key, the origin hash, the slot, the
150
+ * scope salt and the object fields the contract opens its commitments
151
+ * with, and on the secp256k1 arm the plain ECDSA envelope.
152
+ *
153
+ * @throws {@link GrantSpendRefusedError} when the grant does not allow
154
+ * the spend, or the policy's grant id is not its own.
155
+ */
156
+ const prepareGrantSpend = async (policy, spend) => {
157
+ assertSpendAllowed(policy, spend);
158
+ const contractAddress = bytesOf(policy.account);
159
+ const grantee = require_grant_rules.granteePoint({
160
+ scheme: policy.granteeScheme,
161
+ publicKey: policy.granteePublicKey
162
+ });
163
+ const origin = await require_grants.originHash(policy.origin);
164
+ const grantId = require_grants.deriveGrantId({
165
+ contractAddress,
166
+ granteePublicKey: grantee,
167
+ originHash: origin,
168
+ slot: require_grant_rules.GrantSlot(policy.slot)
169
+ });
170
+ if (grantId !== policy.grantId) refuse(`its id ${policy.grantId} does not derive from the policy's account, grantee, origin and slot`);
171
+ const color = bytesOf(policy.color);
172
+ const context = {
173
+ contractAddress,
174
+ granteePublicKey: policy.granteePublicKey,
175
+ grantId: bytesOf(grantId),
176
+ issuedAt: spend.issuedAt,
177
+ nonce: spend.nonce
178
+ };
179
+ const scopeArgs = [
180
+ origin,
181
+ BigInt(policy.slot),
182
+ bytesOf(policy.scopeSalt),
183
+ require_grant_rules.RECIPIENT_KINDS[policy.recipient.kind],
184
+ policy.recipient.kind === "any" ? require_grant_rules.zero32() : bytesOf(policy.recipient.value),
185
+ BigInt(policy.maxCoinValue),
186
+ spend.spent
187
+ ];
188
+ const circuit = require_grant_circuits.grantWithdrawalCircuit(policy.granteeScheme, spend.operation);
189
+ if (grantee.scheme === "secp256k1-ecdsa") {
190
+ const challenge = k256Challenge(context, spend, color);
191
+ return {
192
+ scheme: grantee.scheme,
193
+ circuit,
194
+ args: [
195
+ ...withdrawalArgs(spend, color),
196
+ grantee.point,
197
+ require_grants.K256_GRANT_ENVELOPE,
198
+ ...scopeArgs
199
+ ],
200
+ challenge,
201
+ digest: require_errors.sha256(challenge)
202
+ };
203
+ }
204
+ return {
205
+ scheme: grantee.scheme,
206
+ circuit,
207
+ args: [
208
+ ...withdrawalArgs(spend, color),
209
+ grantee.point,
210
+ ...scopeArgs
211
+ ],
212
+ challenge: jubjubChallenge(context, spend, color)
213
+ };
214
+ };
215
+ //#endregion
216
+ exports.grantSpendChallenges = grantSpendChallenges;
217
+ exports.prepareGrantSpend = prepareGrantSpend;