@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.
- package/dist/{Ed25519PublicKey-lvu1s54U.cjs → Address-AMKTo-dA.cjs} +17150 -61
- package/dist/{Ed25519PublicKey-CjnuAYRR.js → Address-_c_-9hLC.js} +16955 -264
- package/dist/{Bip32Account-r3KAhCgU.js → Bip32Account-CaW1zC9Y.js} +4 -5
- package/dist/{Bip32Account-Cz3h0ZUa.cjs → Bip32Account-DOaGmKpv.cjs} +4 -5
- package/dist/Cardano-B-gyqBBD.js +311 -0
- package/dist/Cardano-BQ_af0Y3.cjs +322 -0
- package/dist/Ed25519PublicKey-B3QcR0J2.cjs +88 -0
- package/dist/Ed25519PublicKey-DIE19xHg.js +83 -0
- package/dist/InMemoryKeyAgent-Bc_xZY-v.cjs +652 -0
- package/dist/InMemoryKeyAgent-D8T3vtXy.js +631 -0
- package/dist/{PaymentAddress-DhbtuYb7.cjs → PaymentAddress-B4n1KZMx.cjs} +1 -2
- package/dist/{PaymentAddress-xSmGUQ-8.js → PaymentAddress-Cml3EA1n.js} +1 -2
- package/dist/Percent-Cfuw5YyL.cjs +11 -0
- package/dist/Percent-DpvyJ_93.js +5 -0
- package/dist/SodiumBip32Ed25519-BaD-kjyx.cjs +380 -0
- package/dist/SodiumBip32Ed25519-DCikAMsl.js +363 -0
- package/dist/{TransactionBuilder-CeJTNzm-.cjs → TransactionBuilder-BakTJvsJ.cjs} +59 -89
- package/dist/{TransactionBuilder-DGNDM4kt.js → TransactionBuilder-D2ErwVWv.js} +5 -71
- package/dist/_md-6zV2Cme0.cjs +684 -0
- package/dist/_md-gbUqlhqd.js +399 -0
- package/dist/_web-crypto-random-bytes-BvzwTYPG.js +197 -0
- package/dist/acc-module-NL_8mEHH.cjs +27654 -0
- package/dist/acc-module-ur8CkBd1.js +27624 -0
- package/dist/account-call-B7cF8ly4.cjs +293 -0
- package/dist/account-call-BF4rBcNw.js +3 -0
- package/dist/account-call-CoCq3V55.js +252 -0
- package/dist/account-call-DFcD257E.cjs +4 -0
- package/dist/account-guards-BeKbV9D1.cjs +41 -0
- package/dist/account-guards-qnFXuXSE.js +36 -0
- package/dist/{activity-type.stable-ClO9j_PH.cjs → activity-type-BPXxdHBP.cjs} +2 -1
- package/dist/{activity-type.stable-Ml0SOYv9.js → activity-type-C1geyPsH.js} +2 -1
- package/dist/address-OxwXIwbF.js +15502 -0
- package/dist/address-book-address-validator-BqYM0Uyp.cjs +41 -0
- package/dist/{address-book-address-validator-BhqRfmlL.cjs → address-book-address-validator-CGIcqn5W.cjs} +5 -4
- package/dist/{address-book-address-validator-VqIOB8PY.js → address-book-address-validator-FkkYim3z.js} +6 -4
- package/dist/address-book-address-validator-RSx2Jozy.js +39 -0
- package/dist/address-lECYBd9-.cjs +13043 -0
- package/dist/{apply-vkey-witnesses-Ctzk7eye.cjs → apply-vkey-witnesses-1jyczTkw.cjs} +1 -1
- package/dist/{apply-vkey-witnesses-Dfo7XfhL.js → apply-vkey-witnesses-Byb40-yJ.js} +1 -1
- package/dist/artefact-loader-Cqc9eSkL.cjs +182 -0
- package/dist/artefact-loader-D0T2f6F7.js +159 -0
- package/dist/auto-dismiss-failure-on-success-BWJceNXd.cjs +37 -0
- package/dist/auto-dismiss-failure-on-success-Bpod-v4r.js +31 -0
- package/dist/bip32-EPpcFrpH.cjs +3851 -0
- package/dist/{bip32ed25519-D2In8WzR.cjs → bip32ed25519-CRiG-Kjg.cjs} +5 -4
- package/dist/{bip32ed25519-qsLH_eWO.js → bip32ed25519-E-fCUZNv.js} +6 -4
- package/dist/bip39-DZomfqeY.js +9 -0
- package/dist/bip39-MAck9iod.cjs +26 -0
- package/dist/bitcoin-data-provider-D0OT_Uiu.cjs +26 -0
- package/dist/bitcoin-data-provider-LN_8oamW.js +21 -0
- package/dist/bitcoin.cjs +48 -0
- package/dist/bitcoin.d.ts +29805 -1
- package/dist/bitcoin.js +22 -0
- package/dist/{blake2b-BGHUWMsV.js → blake2b-BL-eR5G2.js} +6 -4
- package/dist/{blake2b-DspUqw68.cjs → blake2b-Iy324FwH.cjs} +5 -4
- package/dist/{blockfrost-tx-submit-provider-BUEOmdvc.js → blockfrost-tx-submit-provider-BHDLgOIE.js} +9 -162
- package/dist/{blockfrost-tx-submit-provider-B5dWbdrZ.cjs → blockfrost-tx-submit-provider-BxC19smv.cjs} +7 -171
- package/dist/{blockingWithLatestFrom-BhaE7pnA.js → blockingWithLatestFrom-FUfZFEUG.js} +1 -1
- package/dist/{blockingWithLatestFrom-DkuT3G2a.cjs → blockingWithLatestFrom-bmCPgA3c.cjs} +1 -1
- package/dist/bn-BFq5a4dk.cjs +2553 -0
- package/dist/{SodiumBip32Ed25519-BEfo1Q9m.js → browser-D5jRKv_L.js} +4 -401
- package/dist/bytes.vo-CziaOsba.js +24 -0
- package/dist/bytes.vo-hecRu3YZ.cjs +35 -0
- package/dist/{cardano-network-id-to-network-type-PXvn1ycQ.cjs → cardano-network-id-to-network-type-BwG_d6QP.cjs} +1 -1
- package/dist/{cardano-network-id-to-network-type-DHgKhDAK.js → cardano-network-id-to-network-type-CYJheetp.js} +1 -1
- package/dist/{cardano-network-id.vo-CbNNKd-k.cjs → cardano-network-id.vo-C5VuBXT3.cjs} +2 -2
- package/dist/{cardano-network-id.vo-CTYe-Oix.js → cardano-network-id.vo-CeLJqmb_.js} +2 -2
- package/dist/{cardano-tx-id.vo-BMwemq5x.js → cardano-tx-id.vo-DJ70NC0-.js} +1 -1
- package/dist/{cardano-tx-id.vo-NY-gCOWJ.cjs → cardano-tx-id.vo-lnyO9XaW.cjs} +1 -1
- package/dist/cardano.cjs +31 -24
- package/dist/cardano.d.ts +27602 -8121
- package/dist/cardano.js +21 -13
- package/dist/client-Bw2foG5E.cjs +808 -0
- package/dist/const-BB3MccLt.js +153 -0
- package/dist/{const-BErUlcZw.cjs → const-BWBAzOmN.cjs} +1 -1
- package/dist/const-CSWmOyzn.cjs +42 -0
- package/dist/{const-Dy8Ctnpd.cjs → const-D3mCkwrM.cjs} +5 -5
- package/dist/const-DW7z3R5k.js +13 -0
- package/dist/{const-DeUA7zYl.js → const-DbuUHSzR.js} +5 -5
- package/dist/const-DgBzKfz6.cjs +31995 -0
- package/dist/{const-DVW6DGkZ.js → const-xGSNCtwQ.js} +1 -1
- package/dist/contract-BsIGhsYa.js +171 -0
- package/dist/contract-DD6CGnpB.cjs +189 -0
- package/dist/create-add-accounts-2mQA0ST2.js +102 -0
- package/dist/create-add-accounts-B6mR2NMn.cjs +114 -0
- package/dist/{delegation-tx-builder-CF0VunDW.cjs → delegation-tx-builder-Cp30jtj9.cjs} +9 -8
- package/dist/{delegation-tx-builder-C8LQxU2R.js → delegation-tx-builder-DUMikSTg.js} +9 -7
- package/dist/{deregistration-tx-builder-DcUXA3Ls.cjs → deregistration-tx-builder-B-ZeY-dR.cjs} +10 -9
- package/dist/{deregistration-tx-builder-BOBPP8m_.js → deregistration-tx-builder-CRLrK99U.js} +10 -8
- package/dist/device-commitment-hex.vo-BIUYUNz1.cjs +31 -0
- package/dist/device-commitment-hex.vo-D9FsYLn7.js +26 -0
- package/dist/device-key-BToCoS4D.js +2394 -0
- package/dist/device-key-D6euvxFi.cjs +2489 -0
- package/dist/device-readers-BHJeNR8I.js +3 -0
- package/dist/device-readers-Dw7uTNM5.cjs +167 -0
- package/dist/device-readers-b4g2j3QL.js +144 -0
- package/dist/device-readers-cxcJcWq5.cjs +7 -0
- package/dist/dist-B00GN41m.js +141 -0
- package/dist/dist-BA1xnF9O.cjs +4413 -0
- package/dist/dist-BmHOXLe8.cjs +3814 -0
- package/dist/dist-Br0OVXKt.cjs +535 -0
- package/dist/dist-C1JK9C1I.cjs +3452 -0
- package/dist/dist-DKEViNEI.cjs +1306 -0
- package/dist/dist-Dwqx184a.cjs +43175 -0
- package/dist/dist-MJof_Ky1.cjs +145 -0
- package/dist/dist-p84sVVJ9.cjs +1394 -0
- package/dist/{earn-rewards-tx-builder-BRlTueHS.js → earn-rewards-tx-builder-8G_rouIk.js} +9 -7
- package/dist/{earn-rewards-tx-builder-RgO0QUY8.cjs → earn-rewards-tx-builder-cOUNV58E.cjs} +9 -8
- package/dist/enc-key-circuits-0Dud78IB.js +13 -0
- package/dist/enc-key-circuits-yjPHbuo_.cjs +24 -0
- package/dist/english-BZ_ebp2-.cjs +2057 -0
- package/dist/envelopes-B3QCzo5p.js +2658 -0
- package/dist/envelopes-BdE1xlgz.cjs +2777 -0
- package/dist/errors-BA3b8aVu.cjs +584 -0
- package/dist/errors-pkQdxW-7.js +392 -0
- package/dist/experimental.cjs +6820 -0
- package/dist/experimental.d.ts +63552 -0
- package/dist/experimental.js +6670 -0
- package/dist/fees-6C2uEWFK.js +653 -0
- package/dist/fees-DtC71fOx.cjs +820 -0
- package/dist/gated-call-BrPjKolT.js +3 -0
- package/dist/gated-call-CcsuW9L5.js +691 -0
- package/dist/gated-call-DdDrxEq5.cjs +732 -0
- package/dist/gated-call-Dk7PazhG.cjs +4 -0
- package/dist/grant-rules-B7eDuD5G.cjs +5468 -0
- package/dist/grant-rules-qLrKUIR3.js +5217 -0
- package/dist/grant-status-CDmZpx32.js +296 -0
- package/dist/grant-status-CQtwjLsA.cjs +337 -0
- package/dist/grants-Bnb-3Hkv.cjs +16 -0
- package/dist/grants-CIb6nOV7.cjs +273 -0
- package/dist/grants-CYY0AquW.js +202 -0
- package/dist/grants-DOsFSotP.js +4 -0
- package/dist/{group-cardano-addresses-by-account-C-1GHUu8.cjs → group-cardano-addresses-by-account-BGOtPV-Y.cjs} +4 -40
- package/dist/{group-cardano-addresses-by-account-p4dXmCoj.js → group-cardano-addresses-by-account-TqvESg9x.js} +6 -37
- package/dist/{guarded-transaction-signer-DZSGHp1K.js → guarded-transaction-signer-BbVDE9Nn.js} +12 -18
- package/dist/{guarded-transaction-signer-BLSezbfV.cjs → guarded-transaction-signer-DTLjAkif.cjs} +26 -26
- package/dist/hex-BVtOKJki.cjs +263 -0
- package/dist/hex-CGYJPK_Z.js +192 -0
- package/dist/http-client-B7_kBTYn.js +155 -0
- package/dist/http-client-DYQ_7Rdf.cjs +167 -0
- package/dist/identity-DxPhxkZs.js +239 -0
- package/dist/identity-y41Yle03.cjs +274 -0
- package/dist/in-memory-wallet-integration-5BKiAvPT.js +20861 -0
- package/dist/{in-memory-wallet-integration-CUTa68ET.js → in-memory-wallet-integration-BCOqDgbt.js} +10 -107
- package/dist/in-memory-wallet-integration-Bi8I9Dso.js +128 -0
- package/dist/in-memory-wallet-integration-Bsl2ONua.cjs +239 -0
- package/dist/in-memory-wallet-integration-DZ0CAyvY.cjs +20865 -0
- package/dist/{in-memory-wallet-integration-Dw_S7amX.cjs → in-memory-wallet-integration-DsFm8gLk.cjs} +21 -112
- package/dist/{in-memory-wallet-integration-Z4Bp_DTv.cjs → in-memory-wallet-integration-aW_SF-go.cjs} +8 -5
- package/dist/{in-memory-wallet-integration-B6cbAlvD.js → in-memory-wallet-integration-mIEc8EfR.js} +9 -5
- package/dist/index.cjs +95 -58
- package/dist/index.d.ts +45152 -13448
- package/dist/index.js +55 -28
- package/dist/{init-CVi8J0zk.cjs → init-5SfWgCYD.cjs} +3 -3
- package/dist/{init-Ci7aqWCf2.cjs → init-8NVWbo302.cjs} +2 -2
- package/dist/init-B-C7n6u6.js +5 -0
- package/dist/{init-BFMWRf-L.js → init-B-ppfGO-.js} +1 -1
- package/dist/{init-IiR093Jw.cjs → init-B2OUhY5T.cjs} +2 -2
- package/dist/{init-DXnus199.cjs → init-B6Eg_o6G.cjs} +5 -5
- package/dist/{init-4hDl5bpr.js → init-BAWMHL1k.js} +2 -2
- package/dist/init-BC2CZZOu2.cjs +2002 -0
- package/dist/{init-a228hXnS.cjs → init-BF-a2p6E.cjs} +65 -73
- package/dist/{init-fFirX8OY.cjs → init-BFxlQAD8.cjs} +1 -1
- package/dist/init-BJE1ry0O.js +17 -0
- package/dist/{init-BVnI4z2J.js → init-BPKBVOHU.js} +2 -2
- package/dist/{init-bdqZBd-o.js → init-BSP_xcpB.js} +2 -2
- package/dist/{init-CFNOn3lo.js → init-BSd7mznK.js} +3 -3
- package/dist/{init-MjR4swi6.js → init-BUJTT0MN.js} +36 -43
- package/dist/init-BUpFzYsD.cjs +143 -0
- package/dist/{init-BvpYHyLH.cjs → init-BZ-WyAIL.cjs} +3 -3
- package/dist/init-BZdfdLX7.js +422 -0
- package/dist/{init-CJeOys1w.cjs → init-B_HWNXMD.cjs} +2 -2
- package/dist/init-BbIMt6xU.cjs +6 -0
- package/dist/{init-BYdN1aqE.cjs → init-BewG6swt.cjs} +2 -2
- package/dist/{init-BX0AZAVH2.js → init-Bilqsbng.js} +2 -2
- package/dist/{init-Tpn9VkFu.cjs → init-BpwlQ6wF.cjs} +1 -1
- package/dist/{init-D5-P0HXK.js → init-BtQOzUjX.js} +1 -1
- package/dist/{init-BvGz3qUd2.js → init-CCTscPaY2.js} +2 -2
- package/dist/{init-D4hPipCD.cjs → init-CH0yyBof.cjs} +1 -1
- package/dist/init-CaIkrXal.cjs +121 -0
- package/dist/init-CkZy4IMf.cjs +107 -0
- package/dist/{init-Drr2f_Pr.js → init-CmfcY7SV.js} +1 -1
- package/dist/{init-Kf3_OLv6.js → init-CnJAlks_.js} +1 -1
- package/dist/{init-Cdjt_z-b.cjs → init-CqqmtAIK.cjs} +4 -4
- package/dist/{init-Bb0avZeZ.js → init-Cu2znmIc.js} +5 -5
- package/dist/init-Cz5LAizN.js +2001 -0
- package/dist/init-D4WM3-Mn.cjs +18 -0
- package/dist/init-DMi2FGpf.cjs +424 -0
- package/dist/{init-lcaUSOOG.js → init-DPTJohPd.js} +1 -1
- package/dist/{init-BTYLMF9F2.cjs → init-DexLSprL2.cjs} +258 -61
- package/dist/init-DfKPgD21.js +106 -0
- package/dist/init-DgzRsI-C.js +141 -0
- package/dist/init-Dj4Cn7-P.js +4789 -0
- package/dist/init-DktAnYI0.cjs +2354 -0
- package/dist/{init-DFwhgert.cjs → init-DmyuM9Lo.cjs} +1 -1
- package/dist/{init-CX_zLXc6.js → init-IBnizp1U.js} +5 -5
- package/dist/init-MDKB6tGI2.cjs +4790 -0
- package/dist/{init-DbZ5byj42.js → init-TbB38KNt2.js} +258 -60
- package/dist/init-X6m_cqDy.js +2353 -0
- package/dist/{init-DvVgKCaP2.cjs → init-bzvl1JhF.cjs} +2 -2
- package/dist/{init-BgrY29gW.js → init-dsYkC_0B.js} +4 -4
- package/dist/{init-B5BsI3DR.cjs → init-kvn5FlPS.cjs} +7 -7
- package/dist/init-vfy9DW_E.js +119 -0
- package/dist/{init-BE_6Jyc4.js → init-w7xl6LsP.js} +3 -3
- package/dist/{init-DEsWVyn5.cjs → init-wgiBUmyW.cjs} +1 -1
- package/dist/{is-retriable-error-DWv_ob-f.js → is-retriable-error-CmFR20pe.js} +1 -1
- package/dist/{is-retriable-error-Dtb4JGjd.cjs → is-retriable-error-D2yo0_lS.cjs} +1 -1
- package/dist/jubjub-authoriser-A2c8vmkN.js +84 -0
- package/dist/jubjub-authoriser-D3ZDgzcF.cjs +85 -0
- package/dist/key-source-CcLTx8HK.js +2761 -0
- package/dist/key-source-D2tTAag-.cjs +806 -0
- package/dist/{key-value-store-DTX1quRS.js → key-value-store-DZcNDB3n.js} +1 -1
- package/dist/{key-value-store-B-XRIwaM.cjs → key-value-store-Htj4RgMe.cjs} +1 -1
- package/dist/keyDerivation-DcKRUCVh.cjs +274 -0
- package/dist/keyDerivation-QGesIMbS.js +4077 -0
- package/dist/{lace-context-FpU3iG3f.cjs → lace-context-BN0b_ury.cjs} +4 -4
- package/dist/{lace-context-BQvvxVLm.js → lace-context-DMRJ87Vg.js} +4 -4
- package/dist/lib-BC-62Byh.cjs +2359 -0
- package/dist/lib-JYqcAX0c.js +2354 -0
- package/dist/midnight-account-id.vo--Vcx34Xk.cjs +10 -0
- package/dist/midnight-account-id.vo-BuB8fiVO.js +5 -0
- package/dist/midnight-engine-B7D2hbHo.js +5 -0
- package/dist/midnight-engine-D5ikN_5F.cjs +6 -0
- package/dist/midnight-wallet-BOdFD6SX.cjs +24 -0
- package/dist/midnight-wallet-CAqZrNVe.js +18 -0
- package/dist/midnight.cjs +1412 -0
- package/dist/midnight.d.ts +28609 -0
- package/dist/midnight.js +1355 -0
- package/dist/modules-cardano-BiL9hoM3.js +996 -0
- package/dist/modules-cardano-UeXks3sd.cjs +1109 -0
- package/dist/node-relay-BOuvdZvC.cjs +49 -0
- package/dist/node-relay-CLtc5n1v.js +48 -0
- package/dist/outputs-5qdW8s-f.js +196 -0
- package/dist/outputs-BEM1GPMf.cjs +339 -0
- package/dist/{SodiumBip32Ed25519-BQUcrQWX.cjs → pbkdf2-B1veireP.cjs} +6 -411
- package/dist/pending-operation-CfTUNQVD.cjs +26 -0
- package/dist/pending-operation-Ljijb1Uh.js +21 -0
- package/dist/providers-1on_fwJO.cjs +364 -0
- package/dist/providers-C1MsxfMA.js +341 -0
- package/dist/redacted-4SJPqt-G.js +81 -0
- package/dist/redacted-DwxIDdIF.cjs +86 -0
- package/dist/{reselect-DPML1uFN.cjs → reselect-kP4DaAII.cjs} +1 -1
- package/dist/{retry-config-oNtfdyrG.cjs → retry-config-BGv5q5QM.cjs} +1 -1
- package/dist/{retry-config-VdbuqBsI.js → retry-config-Bu5Yn5ua.js} +1 -1
- package/dist/safe-buffer-CqGpSFCQ.js +43 -0
- package/dist/safe-buffer-DbXbwhUQ.cjs +48 -0
- package/dist/sdk-1SRu8Ype.cjs +1445 -0
- package/dist/sdk-BneJm7ey.js +1249 -0
- package/dist/sdk-init-9TG1ZvHF.cjs +3795 -0
- package/dist/sdk-init-Ce3mD-8F.js +1047 -0
- package/dist/secret-box-CSmRp6Tt.js +3777 -0
- package/dist/secret-box-ZfbYwBgS.cjs +6970 -0
- package/dist/send-proof-progress-DtAcrMP6.cjs +33 -0
- package/dist/send-proof-progress-Dx2cUz1B.js +22 -0
- package/dist/sha2-DaRJZOjk.cjs +390 -0
- package/dist/sha2-c4sB6peD.js +378 -0
- package/dist/side-effects-C3BhLrdP.js +768 -0
- package/dist/side-effects-DG0R-KFc.cjs +804 -0
- package/dist/sign-bitcoin-transaction-with-seed-C7vq9om8.js +147 -0
- package/dist/sign-bitcoin-transaction-with-seed-Ds1dwzan.cjs +158 -0
- package/dist/signer--2I6poMD.js +2 -0
- package/dist/signer-CX21Ups_.cjs +121 -0
- package/dist/signer-Cnn9q9oY.js +92 -0
- package/dist/signer-DbSxjk0F.cjs +7 -0
- package/dist/signer-factory-B5oFuUZ-.cjs +130 -0
- package/dist/signer-factory-BAt8FPNc.cjs +281 -0
- package/dist/signer-factory-BGE4nL4k.js +129 -0
- package/dist/signer-factory-C4pgsiJi.js +281 -0
- package/dist/{signer-factory-DySc1wRX.cjs → signer-factory-D95jQIPV.cjs} +9 -6
- package/dist/{signer-factory-D4HrwFPl.js → signer-factory-PrpsGX-8.js} +10 -6
- package/dist/{slice-BZTQgYSs.js → slice-B-xJcuT1.js} +4 -4
- package/dist/slice-B4QOYaOG.cjs +105 -0
- package/dist/{slice-CtIMw2YT.cjs → slice-B9QKuhi0.cjs} +3 -3
- package/dist/slice-BKnGkAkd.cjs +9031 -0
- package/dist/{slice-Bhwmqn1p.cjs → slice-Bf4enJKZ.cjs} +8 -8
- package/dist/{slice-DaNVz7_l.js → slice-ByNWnxKS.js} +8 -8
- package/dist/{slice-C2UDQrdt.js → slice-C1zOeseG.js} +449 -355
- package/dist/{slice-DFLyKRm5.cjs → slice-C4toRM6A.cjs} +2 -2
- package/dist/{slice-Cx4dULDA.cjs → slice-C8YVv4Qn.cjs} +1 -1
- package/dist/{slice-jnpOgiSZ.cjs → slice-CaMfviYu.cjs} +3 -3
- package/dist/{slice-DFvrwUur.js → slice-CgeRsYRg.js} +6 -6
- package/dist/slice-Cwt8jShq.js +9013 -0
- package/dist/{slice-zNEspZND.js → slice-D0VzpMbY.js} +2 -2
- package/dist/slice-D14F78Ca.js +87 -0
- package/dist/{slice-F6A1YKOF.cjs → slice-DLflttAu.cjs} +479 -366
- package/dist/{slice-C96EdeY1.js → slice-DcO-iNz2.js} +1 -1
- package/dist/{slice-C19quNWM.cjs → slice-DimtxfAT.cjs} +2 -2
- package/dist/{slice-KiNoGwD9.js → slice-DlTEqIoI.js} +1 -1
- package/dist/{slice-ws8PccRX.js → slice-Dn0WojD7.js} +3 -3
- package/dist/{slice-BLSxLmie.cjs → slice-Dongunf7.cjs} +4 -4
- package/dist/{slice-B6vPum19.js → slice-DpufJAjJ.js} +2 -2
- package/dist/{slice-exhhmucR.cjs → slice-DtitVc9L.cjs} +7 -7
- package/dist/{slice-Bjj2t2ut.cjs → slice-WMMMc1Xv.cjs} +2 -2
- package/dist/slice-a8VuIqzS.cjs +378 -0
- package/dist/slice-bRASyM-m.js +354 -0
- package/dist/{slice-CBFrgHSH.js → slice-hNyKbDry.js} +3 -3
- package/dist/{InMemoryKeyAgent-pyB2gA-N.cjs → src-BayYMIjw.cjs} +20 -8228
- package/dist/{InMemoryKeyAgent-D-3HejxN.js → src-CgINPlSx.js} +29 -4811
- package/dist/store-AUlTfcI_.js +37 -0
- package/dist/store-C7AneHEY.cjs +66 -0
- package/dist/submit-BuBCVi-l.cjs +87 -0
- package/dist/submit-D37lxFrK.js +70 -0
- package/dist/submit-bitcoin-tx-DFLnhidO.js +983 -0
- package/dist/submit-bitcoin-tx-sih2hSfb.cjs +1049 -0
- package/dist/{subtractValueQuantities-DfZg6oiG.js → subtractValueQuantities-BuDJVxq6.js} +3 -22
- package/dist/{subtractValueQuantities-C8qDTtgH.cjs → subtractValueQuantities-CqR606HV.cjs} +2 -32
- package/dist/{sync-operation-utils-BrQyWFS_.cjs → sync-operation-utils--Z_IQfyW.cjs} +0 -66
- package/dist/{sync-operation-utils-CAaCGvEN.js → sync-operation-utils-BimBpvI3.js} +1 -37
- package/dist/token-color.vo-CItgoOjw.js +26 -0
- package/dist/token-color.vo-Ca4hUXfh.cjs +37 -0
- package/dist/token-id-mapper-BVau2RXa.js +16 -0
- package/dist/token-id-mapper-CSeLzM4o.cjs +18 -0
- package/dist/{token-id-mapper-pDaTxpw2.js → token-id-mapper-ClBeIdJR.js} +2 -2
- package/dist/{token-id-mapper-DYcd8hhQ.cjs → token-id-mapper-D0wFdbOy.cjs} +2 -2
- package/dist/types-BhzypKMS.cjs +15 -0
- package/dist/types-DTE1ctDB.js +10 -0
- package/dist/types-DXSxXGz0.js +12 -0
- package/dist/types-Dls6Z5gV.cjs +23 -0
- package/dist/{util-P4PX2muj.cjs → util-D1YlKzrc.cjs} +2 -2
- package/dist/{util-CQSJU0wT.js → util-DHxtzUzY.js} +2 -2
- package/dist/{utils-Bv4OHT4S.cjs → utils-DYf4iZKX.cjs} +7 -1
- package/dist/{utils-DrtzChYN.js → utils-DcnoETEP.js} +2 -2
- package/dist/utils-Du0YXRcU.cjs +112 -0
- package/dist/utils-fF_rnZe3.js +65 -0
- package/dist/v8Signatures-ClGpA8mS.cjs +71 -0
- package/dist/{vote-delegation-tx-builder-69gOEkCB.cjs → vote-delegation-tx-builder-BjZxCOd3.cjs} +9 -8
- package/dist/{vote-delegation-tx-builder-BRJ_pf-c.js → vote-delegation-tx-builder-DRJwPXkD.js} +9 -7
- package/dist/watch-FGE4B_Ge.js +13056 -0
- package/dist/watch-imlsRZDp.cjs +52207 -0
- package/package.json +95 -3
- package/dist/Address-4KjeDt_x.cjs +0 -17269
- package/dist/Address-_VPkf7Xh.js +0 -17101
- package/dist/account-guards.stable-BKyYPj4z.cjs +0 -10
- package/dist/account-guards.stable-BdmQ43vC.js +0 -5
- package/dist/init-BR9ZIbED.cjs +0 -378
- package/dist/init-B_k1RUN_.cjs +0 -21
- package/dist/init-Bs3b5ZQH.js +0 -378
- package/dist/init-ChfcrHgG2.cjs +0 -4354
- package/dist/init-D1uUMMpG.js +0 -19
- package/dist/init-DV1OSZiK.js +0 -4352
- package/dist/modules-cardano-BINzpXpk.js +0 -5454
- package/dist/modules-cardano-Dt8OwoQb.cjs +0 -5640
- package/dist/slice-Caf98m0d2.js +0 -107
- package/dist/slice-PM6llajQ2.cjs +0 -125
- /package/dist/{BigIntMath-CoJWXt1h.cjs → BigIntMath-CBciEQn2.cjs} +0 -0
- /package/dist/{BigIntMath-BWUJOsOW.js → BigIntMath-X3EniYDo.js} +0 -0
- /package/dist/{ChainId-sdLmlIRk.cjs → ChainId-CNPSU9nn.cjs} +0 -0
- /package/dist/{ChainId-CKbm87yQ.js → ChainId-CeoG8Sov.js} +0 -0
- /package/dist/{_polyfill-node.process-4fnlkbBi.cjs → _polyfill-node.process-5UxyjoHG.cjs} +0 -0
- /package/dist/{account-id.vo-Xpgnu-av.cjs → account-id.vo-DYZBZQsz.cjs} +0 -0
- /package/dist/{account-id.vo-DP0BtOoF.js → account-id.vo-KDTWJ-W5.js} +0 -0
- /package/dist/{actions-BNagEO6m.cjs → actions-BnHFVSr_.cjs} +0 -0
- /package/dist/{actions-BWTyAr7B.js → actions-Cwj0ApZf.js} +0 -0
- /package/dist/{asyncoption-po7-RiA5.cjs → asyncoption-CYcZNBRM.cjs} +0 -0
- /package/dist/{asyncoption-CzIVH5Y1.js → asyncoption-DZQGfznq.js} +0 -0
- /package/dist/{bignum.vo-DhhZ9HP1.js → bignum.vo-Co6tMH2q.js} +0 -0
- /package/dist/{bignum.vo-CpkrIXjH.cjs → bignum.vo-Du-bpvar.cjs} +0 -0
- /package/dist/{blockchain-network-id.vo-CbgrAY_K.js → blockchain-network-id.vo-C6Jowh8t.js} +0 -0
- /package/dist/{blockchain-network-id.vo-5iC6Kffo.cjs → blockchain-network-id.vo-DEQ14dYj.cjs} +0 -0
- /package/dist/{composite-signer-factory-DABpCe1_.js → composite-signer-factory-D9RWY-1V.js} +0 -0
- /package/dist/{composite-signer-factory-BizuNPP7.cjs → composite-signer-factory-v4Pxn8bA.cjs} +0 -0
- /package/dist/{error-ggOihIfv.cjs → error-B6wj9nPv.cjs} +0 -0
- /package/dist/{error-DHKO2iS4.js → error-CvEYL98P.js} +0 -0
- /package/dist/{esm-browser-DnXNvpcn.cjs → esm-browser-CZbMeVod.cjs} +0 -0
- /package/dist/{esm-browser-BBVQuyQv.js → esm-browser-DpAD_RKv.js} +0 -0
- /package/dist/{feature-flag-key.vo-DoGK5Bfh.js → feature-flag-key.vo-9reURsOQ.js} +0 -0
- /package/dist/{feature-flag-key.vo-CP1Z9s8e.cjs → feature-flag-key.vo-KTIdnzYX.cjs} +0 -0
- /package/dist/{first-state-of-status-Bx4-QQ5m.cjs → first-state-of-status-9ICeDNSa.cjs} +0 -0
- /package/dist/{first-state-of-status-D7XzEuSa.js → first-state-of-status-BscbKj_t.js} +0 -0
- /package/dist/{init-4319psUJ.cjs → init-BT67pd9x.cjs} +0 -0
- /package/dist/{init-AFUM1TSg.js → init-CHk1fvJ2.js} +0 -0
- /package/dist/{init-ZX90nEJe2.js → init-DIyNx6DZ.js} +0 -0
- /package/dist/{init-CTQ2g6Xt.js → init-DtxxFaCx.js} +0 -0
- /package/dist/{init-Dt1Xifg_2.cjs → init-J8QobR93.cjs} +0 -0
- /package/dist/{init-BNewLCqw.cjs → init-xzZPlQwB.cjs} +0 -0
- /package/dist/{is-redux-persist-state-DxJSsvxB.cjs → is-redux-persist-state-C5luvPEH.cjs} +0 -0
- /package/dist/{is-redux-persist-state-Bl2n4VMr.js → is-redux-persist-state-CjcqyCoh.js} +0 -0
- /package/dist/{isNotNil-CZxBMfL5.js → isNotNil-Be7gCY0m.js} +0 -0
- /package/dist/{isNotNil-C_SO1tcC.cjs → isNotNil-CrYIUFry.cjs} +0 -0
- /package/dist/{logging-BvMDKgl0.js → logging-BAMMfn5j.js} +0 -0
- /package/dist/{logging-Bh9ikph3.cjs → logging-CbxgIX9V.cjs} +0 -0
- /package/dist/{metadatum-B-sxBnSY.cjs → metadatum-BGvFqGPt.cjs} +0 -0
- /package/dist/{metadatum-Ego4jVas.js → metadatum-BVocMYy_.js} +0 -0
- /package/dist/{repo-slice-BzZQUTj8.cjs → repo-slice-BB_W-6OL.cjs} +0 -0
- /package/dist/{repo-slice-vCcQJotS.js → repo-slice-BQlssw9M.js} +0 -0
- /package/dist/{reselect-BPkMzw3k.js → reselect-JIgawvPe.js} +0 -0
- /package/dist/{serializable-BxFUShKY.js → serializable-F7OtYl8d.js} +0 -0
- /package/dist/{serializable-DWgkHhv_.cjs → serializable-n3UoxbZc.cjs} +0 -0
- /package/dist/{slice-DY-DNtSi.js → slice-5dGBAz6w.js} +0 -0
- /package/dist/{slice-BEFoeqgr.cjs → slice-BzJgg9FS.cjs} +0 -0
- /package/dist/{src-CPmX4KUh.cjs → src-CeBNkonz.cjs} +0 -0
- /package/dist/{src-XOZXPKxe.js → src-Cv1ifqbe.js} +0 -0
- /package/dist/{time-CQPt4FdU.js → time-ByoKevdZ.js} +0 -0
- /package/dist/{time-Blvoyh9G.cjs → time-qD7edGU0.cjs} +0 -0
- /package/dist/{time.vo-Xln4yGBU.js → time.vo-C17-tYq3.js} +0 -0
- /package/dist/{time.vo-rwWwJzmP.cjs → time.vo-TmYE-_Y2.cjs} +0 -0
- /package/dist/{toEmpty-CzmoZVLN.cjs → toEmpty-Db6V94Mf.cjs} +0 -0
- /package/dist/{toEmpty-DzLd-ZCi.js → toEmpty-Djj-QbpI.js} +0 -0
- /package/dist/{token-id.vo-l8fuSpem.cjs → token-id.vo-CZ622zcZ.cjs} +0 -0
- /package/dist/{token-id.vo-DMKSaMlc.js → token-id.vo-IDI9C_Qm.js} +0 -0
- /package/dist/{types-B61DQoFW.js → types-By-XeXWg.js} +0 -0
- /package/dist/{types-CUC-Kcqh.cjs → types-Cn6WlQV6.cjs} +0 -0
- /package/dist/{util-BV3iGOrz.cjs → util-Cp1h58uD.cjs} +0 -0
- /package/dist/{util-BsQKLorV.js → util-DHppXj7U.js} +0 -0
- /package/dist/{util-selector-CKIyoAOz.js → util-selector-BWmHpo92.js} +0 -0
- /package/dist/{util-selector-C9H5RsNw.cjs → util-selector-glXkO-jR.cjs} +0 -0
- /package/dist/{while-active-CNXeLxre.js → while-active-CDBnUlQA.js} +0 -0
- /package/dist/{while-active-BsDWSNrO.cjs → while-active-I2TlHtm7.cjs} +0 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
const require_bytes_vo = require("./bytes.vo-hecRu3YZ.cjs");
|
|
2
|
+
const require_grant_rules = require("./grant-rules-B7eDuD5G.cjs");
|
|
3
|
+
const require_errors = require("./errors-BA3b8aVu.cjs");
|
|
4
|
+
const require_acc_module = require("./acc-module-NL_8mEHH.cjs");
|
|
5
|
+
//#region ../../packages/module/passport-account/src/acc/grant-circuits.ts
|
|
6
|
+
/**
|
|
7
|
+
* The gated circuits the grant flows authorise, named once so the flow
|
|
8
|
+
* that submits a call, the authoriser that builds its challenge and the
|
|
9
|
+
* signer that scopes a key session to it agree on the circuit.
|
|
10
|
+
*/
|
|
11
|
+
const ISSUE_GRANT_CIRCUIT = "issue_grant_with_jubjub";
|
|
12
|
+
const REVOKE_GRANT_CIRCUIT = "revoke_grant_with_jubjub";
|
|
13
|
+
const REVOKE_ALL_GRANTS_CIRCUIT = "revoke_all_grants_with_jubjub";
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region ../../packages/module/passport-account/src/acc/grants.ts
|
|
16
|
+
/** Domain tag of the origin hash; it fills its 32-byte pad exactly. */
|
|
17
|
+
const GRANT_ORIGIN_TAG = "midnight:account:grant:origin:v1";
|
|
18
|
+
const ORIGIN_TAG_LENGTH = 32;
|
|
19
|
+
const SCOPE_SALT_LENGTH = 32;
|
|
20
|
+
const GRANT_SLOT_COUNT = 256;
|
|
21
|
+
const SCOPE_ARG_COUNT = 16;
|
|
22
|
+
/** Lays the scope out in the circuit's declaration order. */
|
|
23
|
+
const scopeArgs = (scope) => [
|
|
24
|
+
scope.opWithdrawUnshielded,
|
|
25
|
+
scope.opWithdrawShielded,
|
|
26
|
+
scope.opWithdrawShieldedToContract,
|
|
27
|
+
scope.read,
|
|
28
|
+
scope.color,
|
|
29
|
+
scope.recipientKind,
|
|
30
|
+
scope.recipient,
|
|
31
|
+
scope.maxCoinValue,
|
|
32
|
+
scope.perCallCap,
|
|
33
|
+
scope.cap,
|
|
34
|
+
scope.expiresAt,
|
|
35
|
+
scope.rpIdHash,
|
|
36
|
+
scope.readPkHash,
|
|
37
|
+
scope.windowLen,
|
|
38
|
+
scope.windowCap,
|
|
39
|
+
{
|
|
40
|
+
is_some: scope.caller !== void 0,
|
|
41
|
+
value: { bytes: scope.caller ?? require_grant_rules.zero32() }
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* The salted digest of the plaintext scope, the single element through
|
|
46
|
+
* which the issue challenge binds the whole scope, produced by the
|
|
47
|
+
* contract's own pure circuit.
|
|
48
|
+
*/
|
|
49
|
+
const scopeDigest = (scopeSalt, args) => require_acc_module.pureCircuits.derive_grant_scope_digest(scopeSalt, ...args);
|
|
50
|
+
/**
|
|
51
|
+
* The commitment the contract stores for a grant's object: the colour,
|
|
52
|
+
* recipient kind and value, and coin bound of its circuit scope, hidden
|
|
53
|
+
* under the scope salt, as lowercase hex, produced by the contract's own
|
|
54
|
+
* pure circuit.
|
|
55
|
+
*/
|
|
56
|
+
const grantObjectCommit = (scopeSalt, scope) => require_bytes_vo.HexBytes.fromByteArray(require_acc_module.pureCircuits.derive_grant_object_commit(scopeSalt, scope.color, scope.recipientKind, scope.recipient, scope.maxCoinValue));
|
|
57
|
+
/**
|
|
58
|
+
* The origin hash that enters a grant id: SHA-256 of the origin tag padded
|
|
59
|
+
* to 32 bytes followed by the raw UTF-8 bytes of the client id. Computed
|
|
60
|
+
* off chain only, so no circuit exports it. For this module the client id
|
|
61
|
+
* is the relying party id of the consumer issuing the grant.
|
|
62
|
+
*/
|
|
63
|
+
const originHash = async (clientId) => {
|
|
64
|
+
const encoder = new TextEncoder();
|
|
65
|
+
const tag = new Uint8Array(ORIGIN_TAG_LENGTH);
|
|
66
|
+
tag.set(encoder.encode(GRANT_ORIGIN_TAG));
|
|
67
|
+
const client = encoder.encode(clientId);
|
|
68
|
+
const preimage = new Uint8Array(tag.length + client.length);
|
|
69
|
+
preimage.set(tag);
|
|
70
|
+
preimage.set(client, tag.length);
|
|
71
|
+
return new Uint8Array(await crypto.subtle.digest("SHA-256", preimage));
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* The identity of a grant: the contract's own commitment to the account,
|
|
75
|
+
* the grantee key, the origin hash and the slot, which keys the record in
|
|
76
|
+
* the grants map.
|
|
77
|
+
*/
|
|
78
|
+
const deriveGrantId = ({ contractAddress, granteePublicKey, originHash: origin, slot }) => require_grant_rules.GrantId(require_bytes_vo.HexBytes.fromByteArray(require_acc_module.pureCircuits.derive_grant_id_with_jubjub({ bytes: contractAddress }, granteePublicKey, origin, BigInt(slot))));
|
|
79
|
+
/**
|
|
80
|
+
* The first slot under which this grantee and origin have no active grant,
|
|
81
|
+
* with the id derived for it. The contract stores neither grantee nor
|
|
82
|
+
* slot, so the slot is found by deriving the id of each candidate and
|
|
83
|
+
* checking it against the roster. A revoked grant leaves a tombstone the
|
|
84
|
+
* contract lets a new grant overwrite, so its slot counts as free.
|
|
85
|
+
*
|
|
86
|
+
* @throws {@link GrantLimitReachedError} when every slot is taken.
|
|
87
|
+
*/
|
|
88
|
+
const findFreeSlot = ({ contractAddress, grantee, originHash: origin, roster }) => {
|
|
89
|
+
const taken = new Set(roster.filter((record) => record.active).map((record) => record.id));
|
|
90
|
+
const granteePublicKey = require_grant_rules.granteePoint(grantee);
|
|
91
|
+
for (let candidate = 0; candidate < GRANT_SLOT_COUNT; candidate++) {
|
|
92
|
+
const slot = require_grant_rules.GrantSlot(candidate);
|
|
93
|
+
const grantId = deriveGrantId({
|
|
94
|
+
contractAddress,
|
|
95
|
+
granteePublicKey,
|
|
96
|
+
originHash: origin,
|
|
97
|
+
slot
|
|
98
|
+
});
|
|
99
|
+
if (!taken.has(grantId)) return {
|
|
100
|
+
slot,
|
|
101
|
+
grantId
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
throw new require_errors.GrantLimitReachedError("Every grant slot of this grantee under this origin is taken.");
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Prepares `issue_grant_with_jubjub`: encodes and checks the scope,
|
|
108
|
+
* allocates the grantee's slot, derives the grant id and draws the scope
|
|
109
|
+
* salt. The call's arguments are the grant id, the scope in declaration
|
|
110
|
+
* order and the salt; the authoriser derives the scope digest it signs
|
|
111
|
+
* from those same arguments, and the preparation carries that digest for
|
|
112
|
+
* an authoriser that presents it ahead of the ceremony.
|
|
113
|
+
*
|
|
114
|
+
* @throws {@link GrantScopeInvalidError} when the scope is malformed or
|
|
115
|
+
* breaks an issue rule.
|
|
116
|
+
* @throws {@link GrantLimitReachedError} when the grantee has no free slot.
|
|
117
|
+
*/
|
|
118
|
+
const prepareIssueGrant = ({ contractAddress, scope, originHash: origin, roster, randomBytes = (length) => crypto.getRandomValues(new Uint8Array(length)) }) => {
|
|
119
|
+
const encoded = require_grant_rules.circuitScope(scope);
|
|
120
|
+
require_grant_rules.assertIssueRules(encoded);
|
|
121
|
+
const { slot, grantId } = findFreeSlot({
|
|
122
|
+
contractAddress,
|
|
123
|
+
grantee: scope.grantee,
|
|
124
|
+
originHash: origin,
|
|
125
|
+
roster
|
|
126
|
+
});
|
|
127
|
+
const salt = randomBytes(SCOPE_SALT_LENGTH);
|
|
128
|
+
const args = scopeArgs(encoded);
|
|
129
|
+
return {
|
|
130
|
+
grantId,
|
|
131
|
+
slot,
|
|
132
|
+
scopeSalt: require_grant_rules.GrantScopeSalt(require_bytes_vo.HexBytes.fromByteArray(salt)),
|
|
133
|
+
scopeDigest: require_bytes_vo.HexBytes.fromByteArray(scopeDigest(salt, args)),
|
|
134
|
+
call: {
|
|
135
|
+
circuit: ISSUE_GRANT_CIRCUIT,
|
|
136
|
+
args: [
|
|
137
|
+
require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(grantId)),
|
|
138
|
+
...args,
|
|
139
|
+
salt
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
/** Prepares `revoke_grant_with_jubjub` over one grant id. */
|
|
145
|
+
const prepareRevokeGrant = (grantId) => ({
|
|
146
|
+
circuit: REVOKE_GRANT_CIRCUIT,
|
|
147
|
+
args: [require_bytes_vo.ByteArray.fromHex(require_bytes_vo.HexBytes(grantId))]
|
|
148
|
+
});
|
|
149
|
+
/** Prepares `revoke_all_grants_with_jubjub`, which takes no argument. */
|
|
150
|
+
const prepareRevokeAllGrants = () => ({
|
|
151
|
+
circuit: REVOKE_ALL_GRANTS_CIRCUIT,
|
|
152
|
+
args: []
|
|
153
|
+
});
|
|
154
|
+
const SCOPE_ARG_KINDS = [
|
|
155
|
+
"boolean",
|
|
156
|
+
"boolean",
|
|
157
|
+
"boolean",
|
|
158
|
+
"boolean",
|
|
159
|
+
"bytes",
|
|
160
|
+
"bigint",
|
|
161
|
+
"bytes",
|
|
162
|
+
"bigint",
|
|
163
|
+
"bigint",
|
|
164
|
+
"bigint",
|
|
165
|
+
"bigint",
|
|
166
|
+
"bytes",
|
|
167
|
+
"bytes",
|
|
168
|
+
"bigint",
|
|
169
|
+
"bigint",
|
|
170
|
+
"caller"
|
|
171
|
+
];
|
|
172
|
+
const isCaller = (value) => typeof value === "object" && value !== null && typeof value.is_some === "boolean" && value.value?.bytes instanceof Uint8Array;
|
|
173
|
+
const isScopeArgument = (value, kind) => {
|
|
174
|
+
switch (kind) {
|
|
175
|
+
case "boolean": return typeof value === "boolean";
|
|
176
|
+
case "bigint": return typeof value === "bigint";
|
|
177
|
+
case "bytes": return value instanceof Uint8Array;
|
|
178
|
+
case "caller": return isCaller(value);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const isScopeArgs = (values) => values.length === SCOPE_ARG_COUNT && values.every((value, index) => isScopeArgument(value, SCOPE_ARG_KINDS[index]));
|
|
182
|
+
/**
|
|
183
|
+
* Reads what the issue challenge binds out of the circuit's argument list
|
|
184
|
+
* as it reaches an authoriser: the grant id and the digest of the scope,
|
|
185
|
+
* derived here from the plaintext arguments and the salt so the signer
|
|
186
|
+
* binds the scope it was shown and nothing else.
|
|
187
|
+
*
|
|
188
|
+
* @throws an Error when the arguments are not a grant id, sixteen scope
|
|
189
|
+
* arguments and a scope salt.
|
|
190
|
+
*/
|
|
191
|
+
const issueGrantBinding = (args) => {
|
|
192
|
+
const [grantId, ...rest] = args;
|
|
193
|
+
const scopeSalt = rest.at(-1);
|
|
194
|
+
const scope = rest.slice(0, -1);
|
|
195
|
+
if (!(grantId instanceof Uint8Array) || !(scopeSalt instanceof Uint8Array) || !isScopeArgs(scope)) throw new Error(`Circuit ${ISSUE_GRANT_CIRCUIT} expects a grant id, ${SCOPE_ARG_COUNT} scope arguments and a scope salt`);
|
|
196
|
+
return {
|
|
197
|
+
grantId,
|
|
198
|
+
scopeDigest: scopeDigest(scopeSalt, scope)
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
//#endregion
|
|
202
|
+
Object.defineProperty(exports, "ISSUE_GRANT_CIRCUIT", {
|
|
203
|
+
enumerable: true,
|
|
204
|
+
get: function() {
|
|
205
|
+
return ISSUE_GRANT_CIRCUIT;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
Object.defineProperty(exports, "REVOKE_ALL_GRANTS_CIRCUIT", {
|
|
209
|
+
enumerable: true,
|
|
210
|
+
get: function() {
|
|
211
|
+
return REVOKE_ALL_GRANTS_CIRCUIT;
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
Object.defineProperty(exports, "REVOKE_GRANT_CIRCUIT", {
|
|
215
|
+
enumerable: true,
|
|
216
|
+
get: function() {
|
|
217
|
+
return REVOKE_GRANT_CIRCUIT;
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
Object.defineProperty(exports, "deriveGrantId", {
|
|
221
|
+
enumerable: true,
|
|
222
|
+
get: function() {
|
|
223
|
+
return deriveGrantId;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
Object.defineProperty(exports, "grantObjectCommit", {
|
|
227
|
+
enumerable: true,
|
|
228
|
+
get: function() {
|
|
229
|
+
return grantObjectCommit;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
Object.defineProperty(exports, "issueGrantBinding", {
|
|
233
|
+
enumerable: true,
|
|
234
|
+
get: function() {
|
|
235
|
+
return issueGrantBinding;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
Object.defineProperty(exports, "originHash", {
|
|
239
|
+
enumerable: true,
|
|
240
|
+
get: function() {
|
|
241
|
+
return originHash;
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
Object.defineProperty(exports, "prepareIssueGrant", {
|
|
245
|
+
enumerable: true,
|
|
246
|
+
get: function() {
|
|
247
|
+
return prepareIssueGrant;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
Object.defineProperty(exports, "prepareRevokeAllGrants", {
|
|
251
|
+
enumerable: true,
|
|
252
|
+
get: function() {
|
|
253
|
+
return prepareRevokeAllGrants;
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
Object.defineProperty(exports, "prepareRevokeGrant", {
|
|
257
|
+
enumerable: true,
|
|
258
|
+
get: function() {
|
|
259
|
+
return prepareRevokeGrant;
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
Object.defineProperty(exports, "scopeArgs", {
|
|
263
|
+
enumerable: true,
|
|
264
|
+
get: function() {
|
|
265
|
+
return scopeArgs;
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
Object.defineProperty(exports, "scopeDigest", {
|
|
269
|
+
enumerable: true,
|
|
270
|
+
get: function() {
|
|
271
|
+
return scopeDigest;
|
|
272
|
+
}
|
|
273
|
+
});
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { n as HexBytes, t as ByteArray } from "./bytes.vo-CziaOsba.js";
|
|
2
|
+
import { B as GrantScopeSalt, V as GrantId, a as zero32, i as granteePoint, n as assertIssueRules, r as circuitScope, z as GrantSlot } from "./grant-rules-qLrKUIR3.js";
|
|
3
|
+
import { g as GrantLimitReachedError } from "./errors-pkQdxW-7.js";
|
|
4
|
+
import { a as pureCircuits } from "./acc-module-ur8CkBd1.js";
|
|
5
|
+
//#region ../../packages/module/passport-account/src/acc/grant-circuits.ts
|
|
6
|
+
/**
|
|
7
|
+
* The gated circuits the grant flows authorise, named once so the flow
|
|
8
|
+
* that submits a call, the authoriser that builds its challenge and the
|
|
9
|
+
* signer that scopes a key session to it agree on the circuit.
|
|
10
|
+
*/
|
|
11
|
+
const ISSUE_GRANT_CIRCUIT = "issue_grant_with_jubjub";
|
|
12
|
+
const REVOKE_GRANT_CIRCUIT = "revoke_grant_with_jubjub";
|
|
13
|
+
const REVOKE_ALL_GRANTS_CIRCUIT = "revoke_all_grants_with_jubjub";
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region ../../packages/module/passport-account/src/acc/grants.ts
|
|
16
|
+
/** Domain tag of the origin hash; it fills its 32-byte pad exactly. */
|
|
17
|
+
const GRANT_ORIGIN_TAG = "midnight:account:grant:origin:v1";
|
|
18
|
+
const ORIGIN_TAG_LENGTH = 32;
|
|
19
|
+
const SCOPE_SALT_LENGTH = 32;
|
|
20
|
+
const GRANT_SLOT_COUNT = 256;
|
|
21
|
+
const SCOPE_ARG_COUNT = 16;
|
|
22
|
+
/** Lays the scope out in the circuit's declaration order. */
|
|
23
|
+
const scopeArgs = (scope) => [
|
|
24
|
+
scope.opWithdrawUnshielded,
|
|
25
|
+
scope.opWithdrawShielded,
|
|
26
|
+
scope.opWithdrawShieldedToContract,
|
|
27
|
+
scope.read,
|
|
28
|
+
scope.color,
|
|
29
|
+
scope.recipientKind,
|
|
30
|
+
scope.recipient,
|
|
31
|
+
scope.maxCoinValue,
|
|
32
|
+
scope.perCallCap,
|
|
33
|
+
scope.cap,
|
|
34
|
+
scope.expiresAt,
|
|
35
|
+
scope.rpIdHash,
|
|
36
|
+
scope.readPkHash,
|
|
37
|
+
scope.windowLen,
|
|
38
|
+
scope.windowCap,
|
|
39
|
+
{
|
|
40
|
+
is_some: scope.caller !== void 0,
|
|
41
|
+
value: { bytes: scope.caller ?? zero32() }
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* The salted digest of the plaintext scope, the single element through
|
|
46
|
+
* which the issue challenge binds the whole scope, produced by the
|
|
47
|
+
* contract's own pure circuit.
|
|
48
|
+
*/
|
|
49
|
+
const scopeDigest = (scopeSalt, args) => pureCircuits.derive_grant_scope_digest(scopeSalt, ...args);
|
|
50
|
+
/**
|
|
51
|
+
* The commitment the contract stores for a grant's object: the colour,
|
|
52
|
+
* recipient kind and value, and coin bound of its circuit scope, hidden
|
|
53
|
+
* under the scope salt, as lowercase hex, produced by the contract's own
|
|
54
|
+
* pure circuit.
|
|
55
|
+
*/
|
|
56
|
+
const grantObjectCommit = (scopeSalt, scope) => HexBytes.fromByteArray(pureCircuits.derive_grant_object_commit(scopeSalt, scope.color, scope.recipientKind, scope.recipient, scope.maxCoinValue));
|
|
57
|
+
/**
|
|
58
|
+
* The origin hash that enters a grant id: SHA-256 of the origin tag padded
|
|
59
|
+
* to 32 bytes followed by the raw UTF-8 bytes of the client id. Computed
|
|
60
|
+
* off chain only, so no circuit exports it. For this module the client id
|
|
61
|
+
* is the relying party id of the consumer issuing the grant.
|
|
62
|
+
*/
|
|
63
|
+
const originHash = async (clientId) => {
|
|
64
|
+
const encoder = new TextEncoder();
|
|
65
|
+
const tag = new Uint8Array(ORIGIN_TAG_LENGTH);
|
|
66
|
+
tag.set(encoder.encode(GRANT_ORIGIN_TAG));
|
|
67
|
+
const client = encoder.encode(clientId);
|
|
68
|
+
const preimage = new Uint8Array(tag.length + client.length);
|
|
69
|
+
preimage.set(tag);
|
|
70
|
+
preimage.set(client, tag.length);
|
|
71
|
+
return new Uint8Array(await crypto.subtle.digest("SHA-256", preimage));
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* The identity of a grant: the contract's own commitment to the account,
|
|
75
|
+
* the grantee key, the origin hash and the slot, which keys the record in
|
|
76
|
+
* the grants map.
|
|
77
|
+
*/
|
|
78
|
+
const deriveGrantId = ({ contractAddress, granteePublicKey, originHash: origin, slot }) => GrantId(HexBytes.fromByteArray(pureCircuits.derive_grant_id_with_jubjub({ bytes: contractAddress }, granteePublicKey, origin, BigInt(slot))));
|
|
79
|
+
/**
|
|
80
|
+
* The first slot under which this grantee and origin have no active grant,
|
|
81
|
+
* with the id derived for it. The contract stores neither grantee nor
|
|
82
|
+
* slot, so the slot is found by deriving the id of each candidate and
|
|
83
|
+
* checking it against the roster. A revoked grant leaves a tombstone the
|
|
84
|
+
* contract lets a new grant overwrite, so its slot counts as free.
|
|
85
|
+
*
|
|
86
|
+
* @throws {@link GrantLimitReachedError} when every slot is taken.
|
|
87
|
+
*/
|
|
88
|
+
const findFreeSlot = ({ contractAddress, grantee, originHash: origin, roster }) => {
|
|
89
|
+
const taken = new Set(roster.filter((record) => record.active).map((record) => record.id));
|
|
90
|
+
const granteePublicKey = granteePoint(grantee);
|
|
91
|
+
for (let candidate = 0; candidate < GRANT_SLOT_COUNT; candidate++) {
|
|
92
|
+
const slot = GrantSlot(candidate);
|
|
93
|
+
const grantId = deriveGrantId({
|
|
94
|
+
contractAddress,
|
|
95
|
+
granteePublicKey,
|
|
96
|
+
originHash: origin,
|
|
97
|
+
slot
|
|
98
|
+
});
|
|
99
|
+
if (!taken.has(grantId)) return {
|
|
100
|
+
slot,
|
|
101
|
+
grantId
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
throw new GrantLimitReachedError("Every grant slot of this grantee under this origin is taken.");
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Prepares `issue_grant_with_jubjub`: encodes and checks the scope,
|
|
108
|
+
* allocates the grantee's slot, derives the grant id and draws the scope
|
|
109
|
+
* salt. The call's arguments are the grant id, the scope in declaration
|
|
110
|
+
* order and the salt; the authoriser derives the scope digest it signs
|
|
111
|
+
* from those same arguments, and the preparation carries that digest for
|
|
112
|
+
* an authoriser that presents it ahead of the ceremony.
|
|
113
|
+
*
|
|
114
|
+
* @throws {@link GrantScopeInvalidError} when the scope is malformed or
|
|
115
|
+
* breaks an issue rule.
|
|
116
|
+
* @throws {@link GrantLimitReachedError} when the grantee has no free slot.
|
|
117
|
+
*/
|
|
118
|
+
const prepareIssueGrant = ({ contractAddress, scope, originHash: origin, roster, randomBytes = (length) => crypto.getRandomValues(new Uint8Array(length)) }) => {
|
|
119
|
+
const encoded = circuitScope(scope);
|
|
120
|
+
assertIssueRules(encoded);
|
|
121
|
+
const { slot, grantId } = findFreeSlot({
|
|
122
|
+
contractAddress,
|
|
123
|
+
grantee: scope.grantee,
|
|
124
|
+
originHash: origin,
|
|
125
|
+
roster
|
|
126
|
+
});
|
|
127
|
+
const salt = randomBytes(SCOPE_SALT_LENGTH);
|
|
128
|
+
const args = scopeArgs(encoded);
|
|
129
|
+
return {
|
|
130
|
+
grantId,
|
|
131
|
+
slot,
|
|
132
|
+
scopeSalt: GrantScopeSalt(HexBytes.fromByteArray(salt)),
|
|
133
|
+
scopeDigest: HexBytes.fromByteArray(scopeDigest(salt, args)),
|
|
134
|
+
call: {
|
|
135
|
+
circuit: ISSUE_GRANT_CIRCUIT,
|
|
136
|
+
args: [
|
|
137
|
+
ByteArray.fromHex(HexBytes(grantId)),
|
|
138
|
+
...args,
|
|
139
|
+
salt
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
/** Prepares `revoke_grant_with_jubjub` over one grant id. */
|
|
145
|
+
const prepareRevokeGrant = (grantId) => ({
|
|
146
|
+
circuit: REVOKE_GRANT_CIRCUIT,
|
|
147
|
+
args: [ByteArray.fromHex(HexBytes(grantId))]
|
|
148
|
+
});
|
|
149
|
+
/** Prepares `revoke_all_grants_with_jubjub`, which takes no argument. */
|
|
150
|
+
const prepareRevokeAllGrants = () => ({
|
|
151
|
+
circuit: REVOKE_ALL_GRANTS_CIRCUIT,
|
|
152
|
+
args: []
|
|
153
|
+
});
|
|
154
|
+
const SCOPE_ARG_KINDS = [
|
|
155
|
+
"boolean",
|
|
156
|
+
"boolean",
|
|
157
|
+
"boolean",
|
|
158
|
+
"boolean",
|
|
159
|
+
"bytes",
|
|
160
|
+
"bigint",
|
|
161
|
+
"bytes",
|
|
162
|
+
"bigint",
|
|
163
|
+
"bigint",
|
|
164
|
+
"bigint",
|
|
165
|
+
"bigint",
|
|
166
|
+
"bytes",
|
|
167
|
+
"bytes",
|
|
168
|
+
"bigint",
|
|
169
|
+
"bigint",
|
|
170
|
+
"caller"
|
|
171
|
+
];
|
|
172
|
+
const isCaller = (value) => typeof value === "object" && value !== null && typeof value.is_some === "boolean" && value.value?.bytes instanceof Uint8Array;
|
|
173
|
+
const isScopeArgument = (value, kind) => {
|
|
174
|
+
switch (kind) {
|
|
175
|
+
case "boolean": return typeof value === "boolean";
|
|
176
|
+
case "bigint": return typeof value === "bigint";
|
|
177
|
+
case "bytes": return value instanceof Uint8Array;
|
|
178
|
+
case "caller": return isCaller(value);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const isScopeArgs = (values) => values.length === SCOPE_ARG_COUNT && values.every((value, index) => isScopeArgument(value, SCOPE_ARG_KINDS[index]));
|
|
182
|
+
/**
|
|
183
|
+
* Reads what the issue challenge binds out of the circuit's argument list
|
|
184
|
+
* as it reaches an authoriser: the grant id and the digest of the scope,
|
|
185
|
+
* derived here from the plaintext arguments and the salt so the signer
|
|
186
|
+
* binds the scope it was shown and nothing else.
|
|
187
|
+
*
|
|
188
|
+
* @throws an Error when the arguments are not a grant id, sixteen scope
|
|
189
|
+
* arguments and a scope salt.
|
|
190
|
+
*/
|
|
191
|
+
const issueGrantBinding = (args) => {
|
|
192
|
+
const [grantId, ...rest] = args;
|
|
193
|
+
const scopeSalt = rest.at(-1);
|
|
194
|
+
const scope = rest.slice(0, -1);
|
|
195
|
+
if (!(grantId instanceof Uint8Array) || !(scopeSalt instanceof Uint8Array) || !isScopeArgs(scope)) throw new Error(`Circuit ${ISSUE_GRANT_CIRCUIT} expects a grant id, ${SCOPE_ARG_COUNT} scope arguments and a scope salt`);
|
|
196
|
+
return {
|
|
197
|
+
grantId,
|
|
198
|
+
scopeDigest: scopeDigest(scopeSalt, scope)
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
//#endregion
|
|
202
|
+
export { prepareIssueGrant as a, scopeArgs as c, REVOKE_ALL_GRANTS_CIRCUIT as d, REVOKE_GRANT_CIRCUIT as f, originHash as i, scopeDigest as l, grantObjectCommit as n, prepareRevokeAllGrants as o, issueGrantBinding as r, prepareRevokeGrant as s, deriveGrantId as t, ISSUE_GRANT_CIRCUIT as u };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import "./_polyfill-buffer-patch-JcrfT1gU.js";
|
|
2
|
+
import { i as granteePoint, n as assertIssueRules, r as circuitScope } from "./grant-rules-qLrKUIR3.js";
|
|
3
|
+
import { a as prepareIssueGrant, c as scopeArgs, i as originHash, l as scopeDigest, n as grantObjectCommit, o as prepareRevokeAllGrants, r as issueGrantBinding, s as prepareRevokeGrant, t as deriveGrantId } from "./grants-CYY0AquW.js";
|
|
4
|
+
export { assertIssueRules, circuitScope, deriveGrantId, grantObjectCommit, granteePoint, issueGrantBinding, originHash, prepareIssueGrant, prepareRevokeAllGrants, prepareRevokeGrant, scopeArgs, scopeDigest };
|
|
@@ -1,42 +1,12 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-9hOWP6kD.cjs");
|
|
2
|
-
const require_Address = require("./Address-
|
|
3
|
-
const require_util = require("./util-
|
|
4
|
-
const
|
|
5
|
-
const require_activity_type_stable = require("./activity-type.stable-ClO9j_PH.cjs");
|
|
6
|
-
let rxjs = require("rxjs");
|
|
2
|
+
const require_Address = require("./Address-AMKTo-dA.cjs");
|
|
3
|
+
const require_util = require("./util-D1YlKzrc.cjs");
|
|
4
|
+
const require_activity_type = require("./activity-type-BPXxdHBP.cjs");
|
|
7
5
|
let lodash_groupBy = require("lodash/groupBy.js");
|
|
8
6
|
lodash_groupBy = require_chunk.__toESM(lodash_groupBy);
|
|
9
7
|
//#region ../../node_modules/@cardano-sdk/core/dist/esm/util/nativeScript.js
|
|
10
8
|
const nativeScriptPolicyId = (script) => require_Address.PolicyId(require_Address.NativeScript.fromCore(script).hash());
|
|
11
9
|
//#endregion
|
|
12
|
-
//#region ../../packages/contract/failures/src/utils/auto-dismiss-failure-on-success.ts
|
|
13
|
-
/**
|
|
14
|
-
* RxJS operator that auto-dismisses a failure when an operation succeeds.
|
|
15
|
-
*
|
|
16
|
-
* This operator:
|
|
17
|
-
* 1. Takes a failureId observable
|
|
18
|
-
* 2. Checks if the failure exists in the store
|
|
19
|
-
* 3. Only emits dismissFailure action if the failure actually exists
|
|
20
|
-
*
|
|
21
|
-
* This prevents unnecessary action dispatches when a failure has already been dismissed.
|
|
22
|
-
*
|
|
23
|
-
* @param selectFailureById$ - Observable of the selector function to check failure existence
|
|
24
|
-
* @returns RxJS operator that emits dismissFailure actions only when failures exist
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* // In a side effect:
|
|
29
|
-
* return operation$.pipe(
|
|
30
|
-
* // ... operation logic ...
|
|
31
|
-
* map(() => CardanoSyncFailureId('account-123')),
|
|
32
|
-
* autoDismissFailureOnSuccess(selectFailureById$),
|
|
33
|
-
* );
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
const autoDismissFailureOnSuccess = (selectFailureById$) => (source) => source.pipe((0, rxjs.withLatestFrom)(selectFailureById$), (0, rxjs.filter)(([failureId, selectFailureById]) => {
|
|
37
|
-
return selectFailureById(failureId) !== void 0;
|
|
38
|
-
}), (0, rxjs.map)(([failureId]) => require_slice.failuresActions.failures.dismissFailure(failureId)));
|
|
39
|
-
//#endregion
|
|
40
10
|
//#region ../../packages/contract/cardano-context/src/value-objects/utxo-cache-key.vo.ts
|
|
41
11
|
const compareRewardAccounts = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
42
12
|
const UtxoCacheKey = (params) => `${params.topOnChainActivityId}:${[...params.stakeKeys].sort(compareRewardAccounts).join(",")}:n${params.accountAddressCount}`;
|
|
@@ -97,7 +67,7 @@ const extractUniqueStakeKeys = (accountAddresses) => {
|
|
|
97
67
|
* for consumers that need to refresh on reward arrival (e.g. `rewardsSum`).
|
|
98
68
|
*/
|
|
99
69
|
const getTopOnChainActivity = (activitiesByAccount, accountId, includeRewardActivities = false) => {
|
|
100
|
-
const top = activitiesByAccount[accountId]?.find((activity) => activity.type !==
|
|
70
|
+
const top = activitiesByAccount[accountId]?.find((activity) => activity.type !== require_activity_type.ActivityType.Pending && (includeRewardActivities || activity.type !== require_activity_type.ActivityType.Rewards));
|
|
101
71
|
if (!top) return void 0;
|
|
102
72
|
const cardano = top.blockchainSpecific?.Cardano;
|
|
103
73
|
return {
|
|
@@ -151,12 +121,6 @@ Object.defineProperty(exports, "UtxoCacheKey", {
|
|
|
151
121
|
return UtxoCacheKey;
|
|
152
122
|
}
|
|
153
123
|
});
|
|
154
|
-
Object.defineProperty(exports, "autoDismissFailureOnSuccess", {
|
|
155
|
-
enumerable: true,
|
|
156
|
-
get: function() {
|
|
157
|
-
return autoDismissFailureOnSuccess;
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
124
|
Object.defineProperty(exports, "extractUniqueStakeKeys", {
|
|
161
125
|
enumerable: true,
|
|
162
126
|
get: function() {
|
|
@@ -1,41 +1,10 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { t as ActivityType } from "./activity-type.stable-Ml0SOYv9.js";
|
|
6
|
-
import { filter, map, withLatestFrom } from "rxjs";
|
|
7
|
-
import groupBy$1 from "lodash/groupBy.js";
|
|
1
|
+
import { Vt as PolicyId, mt as NativeScript } from "./Address-_c_-9hLC.js";
|
|
2
|
+
import { _ as CardanoRewardAccount, s as isCardanoAddressOfSupportedNetwork } from "./util-DHxtzUzY.js";
|
|
3
|
+
import { t as ActivityType } from "./activity-type-C1geyPsH.js";
|
|
4
|
+
import groupBy from "lodash/groupBy.js";
|
|
8
5
|
//#region ../../node_modules/@cardano-sdk/core/dist/esm/util/nativeScript.js
|
|
9
6
|
const nativeScriptPolicyId = (script) => PolicyId(NativeScript.fromCore(script).hash());
|
|
10
7
|
//#endregion
|
|
11
|
-
//#region ../../packages/contract/failures/src/utils/auto-dismiss-failure-on-success.ts
|
|
12
|
-
/**
|
|
13
|
-
* RxJS operator that auto-dismisses a failure when an operation succeeds.
|
|
14
|
-
*
|
|
15
|
-
* This operator:
|
|
16
|
-
* 1. Takes a failureId observable
|
|
17
|
-
* 2. Checks if the failure exists in the store
|
|
18
|
-
* 3. Only emits dismissFailure action if the failure actually exists
|
|
19
|
-
*
|
|
20
|
-
* This prevents unnecessary action dispatches when a failure has already been dismissed.
|
|
21
|
-
*
|
|
22
|
-
* @param selectFailureById$ - Observable of the selector function to check failure existence
|
|
23
|
-
* @returns RxJS operator that emits dismissFailure actions only when failures exist
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* // In a side effect:
|
|
28
|
-
* return operation$.pipe(
|
|
29
|
-
* // ... operation logic ...
|
|
30
|
-
* map(() => CardanoSyncFailureId('account-123')),
|
|
31
|
-
* autoDismissFailureOnSuccess(selectFailureById$),
|
|
32
|
-
* );
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
const autoDismissFailureOnSuccess = (selectFailureById$) => (source) => source.pipe(withLatestFrom(selectFailureById$), filter(([failureId, selectFailureById]) => {
|
|
36
|
-
return selectFailureById(failureId) !== void 0;
|
|
37
|
-
}), map(([failureId]) => failuresActions.failures.dismissFailure(failureId)));
|
|
38
|
-
//#endregion
|
|
39
8
|
//#region ../../packages/contract/cardano-context/src/value-objects/utxo-cache-key.vo.ts
|
|
40
9
|
const compareRewardAccounts = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
41
10
|
const UtxoCacheKey = (params) => `${params.topOnChainActivityId}:${[...params.stakeKeys].sort(compareRewardAccounts).join(",")}:n${params.accountAddressCount}`;
|
|
@@ -141,7 +110,7 @@ const getAccountAddresses = (addresses, accountId, chainId) => filterCardanoAddr
|
|
|
141
110
|
* associated with those accounts.
|
|
142
111
|
*/
|
|
143
112
|
const groupCardanoAddressesByAccount = (addresses, chainId) => {
|
|
144
|
-
return groupBy
|
|
113
|
+
return groupBy(filterCardanoAddressesForNetwork(addresses, chainId), (addr) => addr.accountId);
|
|
145
114
|
};
|
|
146
115
|
//#endregion
|
|
147
|
-
export { extractUniqueStakeKeys as a,
|
|
116
|
+
export { extractUniqueStakeKeys as a, getTopOnChainActivity as i, getAccountAddresses as n, UtxoCacheKey as o, groupCardanoAddressesByAccount as r, nativeScriptPolicyId as s, filterCardanoAddressesForNetwork as t };
|
package/dist/{guarded-transaction-signer-DZSGHp1K.js → guarded-transaction-signer-BbVDE9Nn.js}
RENAMED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import "./chunk-D6g4UhsZ.js";
|
|
2
2
|
import { n as import_buffer, r as init__polyfill_buffer_patch } from "./_polyfill-buffer-patch-JcrfT1gU.js";
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
import { t as
|
|
6
|
-
import { a as isRewardAccount } from "./PaymentAddress-
|
|
7
|
-
import { a as KeyRole, i as KeyPurpose } from "./types-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { t as
|
|
3
|
+
import { Mt as CborWriter, m as TxCBOR, n as AddressType, p as Transaction, r as CredentialType, t as Address, tn as HexBlob } from "./Address-_c_-9hLC.js";
|
|
4
|
+
import { t as SodiumBip32Ed25519 } from "./SodiumBip32Ed25519-DCikAMsl.js";
|
|
5
|
+
import { t as Ed25519PublicKey } from "./Ed25519PublicKey-DIE19xHg.js";
|
|
6
|
+
import { a as isRewardAccount } from "./PaymentAddress-Cml3EA1n.js";
|
|
7
|
+
import { a as KeyRole, i as KeyPurpose } from "./types-By-XeXWg.js";
|
|
8
|
+
import { n as createTxInKeyPathMap, t as InMemoryKeyAgent } from "./InMemoryKeyAgent-D8T3vtXy.js";
|
|
9
|
+
import { t as SecretBox } from "./secret-box-CSmRp6Tt.js";
|
|
10
|
+
import { i as getPaymentCredential, l as outpointKey, t as createInputResolver } from "./util-DHxtzUzY.js";
|
|
11
|
+
import { n as HexBytes, t as ByteArray } from "./bytes.vo-CziaOsba.js";
|
|
12
|
+
import { t as applyVkeyWitnesses } from "./apply-vkey-witnesses-Byb40-yJ.js";
|
|
13
|
+
import { t as AuthenticationCancelledError } from "./types-DTE1ctDB.js";
|
|
11
14
|
import { catchError, from, switchMap, throwError } from "rxjs";
|
|
12
15
|
import { dummyLogger } from "ts-log";
|
|
13
16
|
//#region ../../packages/lib/core/src/key-hash.ts
|
|
@@ -64,15 +67,6 @@ var CollateralOwnershipError = class extends Error {
|
|
|
64
67
|
}
|
|
65
68
|
};
|
|
66
69
|
//#endregion
|
|
67
|
-
//#region ../../packages/contract/signer/src/types.ts
|
|
68
|
-
/** Thrown when the user cancels the authentication prompt during signing. */
|
|
69
|
-
var AuthenticationCancelledError = class extends Error {
|
|
70
|
-
constructor() {
|
|
71
|
-
super("Authentication cancelled by user");
|
|
72
|
-
this.name = "AuthenticationCancelledError";
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
//#endregion
|
|
76
70
|
//#region ../../packages/contract/cardano-context/src/signing/cip8-sign-data.ts
|
|
77
71
|
init__polyfill_buffer_patch();
|
|
78
72
|
/**
|
|
@@ -431,4 +425,4 @@ const withCollateralOwnershipGuard = (signer, context) => ({ sign: (request) =>
|
|
|
431
425
|
})()).pipe(catchError(() => throwError(() => new CollateralOwnershipError(REFUSE_ON_FAILURE)))).pipe(switchMap((refusal) => refusal ? throwError(() => new CollateralOwnershipError(refusal)) : signer.sign(request)));
|
|
432
426
|
} });
|
|
433
427
|
//#endregion
|
|
434
|
-
export { CardanoInMemoryTransactionSigner as a, deriveDRepKeyHash as i, createCardanoKeyAgentFromEncryptedRoot as n, CardanoInMemoryDataSigner as o, createCardanoKeyAgentFromMnemonic as r, withCollateralOwnershipGuard as t };
|
|
428
|
+
export { CardanoInMemoryTransactionSigner as a, deriveDRepKeyHash as i, createCardanoKeyAgentFromEncryptedRoot as n, CardanoInMemoryDataSigner as o, createCardanoKeyAgentFromMnemonic as r, hashEd25519PublicKey as s, withCollateralOwnershipGuard as t };
|