@laceio/sdk 0.1.0 → 0.1.1-canary.1
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/README.md +1 -1
- 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-BDdWqMAY.js +267 -0
- package/dist/account-call-BExOpZoo.js +3 -0
- package/dist/account-call-CYYoAS1E.cjs +314 -0
- package/dist/account-call-Cvj7viaq.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-De9WJH1J.cjs +183 -0
- package/dist/artefact-loader-nlsYFjxU.js +160 -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 +27612 -8128
- 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-2KVxlHyu.cjs +189 -0
- package/dist/contract-DjQqqZLo.js +171 -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-BPDz2oqa.js +3 -0
- package/dist/device-readers-CVqmvmLZ.js +145 -0
- package/dist/device-readers-DzkDMjPn.cjs +7 -0
- package/dist/device-readers-XMZMfFvZ.cjs +168 -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-BmL7onAK.cjs +1721 -0
- package/dist/envelopes-CfWTR2uy.js +1620 -0
- package/dist/errors-BA3b8aVu.cjs +584 -0
- package/dist/errors-pkQdxW-7.js +392 -0
- package/dist/experimental.cjs +6875 -0
- package/dist/experimental.d.ts +63670 -0
- package/dist/experimental.js +6725 -0
- package/dist/fees-6C2uEWFK.js +653 -0
- package/dist/fees-DtC71fOx.cjs +820 -0
- package/dist/gated-call-DLC5PBlN.cjs +736 -0
- package/dist/gated-call-DQhT7v2J.js +695 -0
- package/dist/gated-call-DdNOQh_Z.js +3 -0
- package/dist/gated-call-wAB15GtN.cjs +4 -0
- package/dist/grant-circuits-BKJrMSNo.cjs +49 -0
- package/dist/grant-circuits-D53wmGyr.js +26 -0
- package/dist/grant-rules-fYt80KB1.cjs +7114 -0
- package/dist/grant-rules-rG1kJq6l.js +6833 -0
- package/dist/grant-status-CDmZpx32.js +296 -0
- package/dist/grant-status-CQtwjLsA.cjs +337 -0
- package/dist/grants-C5wpNvZJ.cjs +266 -0
- package/dist/grants-DY3sN9We.cjs +16 -0
- package/dist/grants-ngFtS52g.js +213 -0
- package/dist/grants-qpXC94Rk.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 +45146 -13439
- 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-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-BX0AZAVH2.js → init-CS98M3iD.js} +2 -2
- 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-lcaUSOOG.js → init-CwLZXfTl.js} +1 -1
- package/dist/init-Cz5LAizN.js +2001 -0
- package/dist/init-D4WM3-Mn.cjs +18 -0
- package/dist/init-DJzEpODO.js +2373 -0
- package/dist/init-DMi2FGpf.cjs +424 -0
- 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-DFwhgert.cjs → init-DnELgrhn.cjs} +1 -1
- package/dist/init-DypZuehC.cjs +2374 -0
- 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-BgrY29gW.js → init-dsYkC_0B.js} +4 -4
- package/dist/{init-DvVgKCaP2.cjs → init-kVOOiU0-.cjs} +2 -2
- 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-BBJcD2uC.js +85 -0
- package/dist/jubjub-authoriser-BlXt4Z-D.cjs +86 -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-4IgYsKeN.js +999 -0
- package/dist/modules-cardano-Baqj2GZH.cjs +1112 -0
- package/dist/node-relay-BEtqi_vU.cjs +49 -0
- package/dist/node-relay-CkgpDObu.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--Hg9iF5v.cjs +366 -0
- package/dist/providers-DQ5_3h2l.js +343 -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-Bm9-P0L-.cjs +1445 -0
- package/dist/sdk-Cf__6dDe.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-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-zNEspZND.js → slice-D0VzpMbY.js} +2 -2
- package/dist/slice-D14F78Ca.js +87 -0
- package/dist/slice-DJelVt0i.js +9013 -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-RQRLciQc.cjs +9031 -0
- 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-CE0AD-xH.js +983 -0
- package/dist/submit-bitcoin-tx-CK10OTfQ.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-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-46lh8O9r.js +33 -0
- package/dist/types-BhhNR1_B.cjs +50 -0
- 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-ZX90nEJe2.js → init-B0hAl9w6.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-Dt1Xifg_2.cjs → init-CSURGyW_.cjs} +0 -0
- /package/dist/{init-CTQ2g6Xt.js → init-DtxxFaCx.js} +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
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import "./chunk-D6g4UhsZ.js";
|
|
2
2
|
import "./_polyfill-buffer-patch-JcrfT1gU.js";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { a as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { t as
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import {
|
|
3
|
+
import "./dist-B00GN41m.js";
|
|
4
|
+
import { Ft as BaseAddress, I as RewardAddress, r as CredentialType, t as Address } from "./Address-_c_-9hLC.js";
|
|
5
|
+
import "./_web-crypto-random-bytes-BvzwTYPG.js";
|
|
6
|
+
import { a as extractUniqueStakeKeys, i as getTopOnChainActivity, o as UtxoCacheKey, r as groupCardanoAddressesByAccount, s as nativeScriptPolicyId } from "./group-cardano-addresses-by-account-TqvESg9x.js";
|
|
7
|
+
import { t as AddressType } from "./types-By-XeXWg.js";
|
|
8
|
+
import { a as isCardanoAccount, g as CardanoPaymentAddress, o as isCardanoAddress, u as toContractAddress } from "./util-DHxtzUzY.js";
|
|
9
|
+
import { s as Timestamp } from "./time.vo-C17-tYq3.js";
|
|
10
|
+
import { t as Err } from "./asyncoption-DZQGfznq.js";
|
|
11
|
+
import { t as autoDismissFailureOnSuccess } from "./auto-dismiss-failure-on-success-Bpod-v4r.js";
|
|
12
|
+
import { t as AccountId } from "./account-id.vo-KDTWJ-W5.js";
|
|
13
|
+
import { t as toEmpty } from "./toEmpty-Djj-QbpI.js";
|
|
14
|
+
import { n as retryBackoff, t as PROVIDER_REQUEST_RETRY_CONFIG } from "./retry-config-Bu5Yn5ua.js";
|
|
15
|
+
import { t as CardanoNetworkId } from "./cardano-network-id.vo-CeLJqmb_.js";
|
|
16
|
+
import { t as CardanoTxId } from "./cardano-tx-id.vo-DJ70NC0-.js";
|
|
17
|
+
import { i as isThoroughAddressDiscoveryOperation, n as createSyncOperationId, o as parseTipHashFromOperationId, r as isAddressDiscoveryOperation, s as CardanoSyncFailureId, t as CardanoSyncOperationType } from "./sync-operation-utils-BimBpvI3.js";
|
|
18
|
+
import { o as isCardanoCustodyAccount, t as verifyCardanoCustodyAccountIdentity } from "./identity-DxPhxkZs.js";
|
|
19
|
+
import { t as whileActive } from "./while-active-CDBnUlQA.js";
|
|
20
|
+
import { t as cardanoCustodyActivityMetadataOf } from "./pending-operation-Ljijb1Uh.js";
|
|
21
|
+
import { EMPTY, catchError, combineLatest, concat, distinctUntilChanged, exhaustMap, filter, forkJoin, from, ignoreElements, interval, map, merge, mergeMap, of, race, scan, switchMap, take, takeUntil, tap, throwError, timer, toArray, withLatestFrom } from "rxjs";
|
|
16
22
|
//#region ../../packages/lib/core/src/address.ts
|
|
17
23
|
/**
|
|
18
24
|
* CIP-19 Cardano address encoding — credentials → bech32, via `@cardano-sdk/core`'s
|
|
@@ -173,46 +179,6 @@ const filterFrankenUtxos = (utxos, ownedCredentials) => {
|
|
|
173
179
|
};
|
|
174
180
|
};
|
|
175
181
|
//#endregion
|
|
176
|
-
//#region ../../packages/module/cardano-sync/src/store/side-effects/account-extensions.stable.ts
|
|
177
|
-
/** Whether the account is of a kind a feature adds: never. */
|
|
178
|
-
const isExtensionAccount = (_account) => false;
|
|
179
|
-
/** Address discovery for an account of a kind a feature adds: none exists. */
|
|
180
|
-
const extensionAccountAddressDiscovery = (_params) => EMPTY;
|
|
181
|
-
/** The UTxO fetch of an account of a kind a feature adds: none exists. */
|
|
182
|
-
const extensionAccountUtxos = (_params) => EMPTY;
|
|
183
|
-
/** The sync side effects the features add: none. */
|
|
184
|
-
const extensionSyncSideEffects = [];
|
|
185
|
-
//#endregion
|
|
186
|
-
//#region ../../packages/module/cardano-sync/src/store/get-script-address.ts
|
|
187
|
-
/**
|
|
188
|
-
* Method to derive the wallet's grouped address from the script and network ID.
|
|
189
|
-
*
|
|
190
|
-
* @param paymentScript - The native script to be used for the payment credential.
|
|
191
|
-
* @param stakingScript - The native script to be used for the staking credential.
|
|
192
|
-
* @param networkId - The network identifier.
|
|
193
|
-
* @returns The derived grouped address.
|
|
194
|
-
*/
|
|
195
|
-
const getScriptAddress = (paymentScript, stakingScript, networkId) => {
|
|
196
|
-
const paymentScriptHash = nativeScriptPolicyId(paymentScript);
|
|
197
|
-
const stakingScriptHash = nativeScriptPolicyId(stakingScript);
|
|
198
|
-
const paymentScriptCredential = {
|
|
199
|
-
hash: paymentScriptHash,
|
|
200
|
-
type: CredentialType.ScriptHash
|
|
201
|
-
};
|
|
202
|
-
const stakeScriptCredential = {
|
|
203
|
-
hash: stakingScriptHash,
|
|
204
|
-
type: CredentialType.ScriptHash
|
|
205
|
-
};
|
|
206
|
-
return {
|
|
207
|
-
accountIndex: 0,
|
|
208
|
-
address: encodeBaseAddress(networkId, paymentScriptCredential, stakeScriptCredential),
|
|
209
|
-
index: 0,
|
|
210
|
-
networkId,
|
|
211
|
-
rewardAccount: encodeRewardAddress(networkId, stakeScriptCredential),
|
|
212
|
-
type: AddressType.External
|
|
213
|
-
};
|
|
214
|
-
};
|
|
215
|
-
//#endregion
|
|
216
182
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/chain-account-state-operations.ts
|
|
217
183
|
/**
|
|
218
184
|
* Builds the `addSyncOperation` actions that chain account-state operations
|
|
@@ -256,6 +222,245 @@ const chainAccountStateOperations = (params) => {
|
|
|
256
222
|
}));
|
|
257
223
|
};
|
|
258
224
|
//#endregion
|
|
225
|
+
//#region ../../packages/module/cardano-sync/src/store/side-effects/throw-on-error.ts
|
|
226
|
+
/** The value of a provider result, or its error thrown. */
|
|
227
|
+
const throwOnError = (result) => {
|
|
228
|
+
if (result.isErr()) throw result.unwrapErr();
|
|
229
|
+
return result.unwrap();
|
|
230
|
+
};
|
|
231
|
+
//#endregion
|
|
232
|
+
//#region ../../packages/module/cardano-sync/src/store/side-effects/custody-accounts.ts
|
|
233
|
+
/**
|
|
234
|
+
* Discovers the one address of a Cardano custody account: its base address,
|
|
235
|
+
* re-derived from the stored identity. The sync fails when the stored
|
|
236
|
+
* address, reward account or stake script hash differs from the derived one,
|
|
237
|
+
* so funds are never shown at an address the custody contract does not
|
|
238
|
+
* govern for this account.
|
|
239
|
+
*
|
|
240
|
+
* The entry carries the `type`, `index` and `accountIndex` every address
|
|
241
|
+
* entry needs, but no key derives it. It must never reach a signer as a
|
|
242
|
+
* known address: a key agent would sign every custody input with the key at
|
|
243
|
+
* that path. No signer factory accepts a custody account, so signing never
|
|
244
|
+
* reads its addresses.
|
|
245
|
+
*/
|
|
246
|
+
const handleCustodyAccount = (params) => {
|
|
247
|
+
const { account, accountId, operationId, actions, logger } = params;
|
|
248
|
+
const { chainId } = account.blockchainSpecific;
|
|
249
|
+
const identity = verifyCardanoCustodyAccountIdentity(account.blockchainSpecific);
|
|
250
|
+
if (!identity.ok) {
|
|
251
|
+
logger.error(`Address discovery refused custody account ${accountId}: ${identity.error.code}`, identity.error);
|
|
252
|
+
return of(actions.sync.failSyncOperation({
|
|
253
|
+
accountId,
|
|
254
|
+
operationId,
|
|
255
|
+
error: "sync.error.address-discovery-failed"
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
return of(actions.sync.updateSyncOperation({
|
|
259
|
+
accountId,
|
|
260
|
+
operationId,
|
|
261
|
+
update: {
|
|
262
|
+
status: "InProgress",
|
|
263
|
+
type: "Indeterminate"
|
|
264
|
+
}
|
|
265
|
+
}), actions.addresses.upsertAddresses({
|
|
266
|
+
blockchainName: "Cardano",
|
|
267
|
+
accountId,
|
|
268
|
+
addresses: [toContractAddress({
|
|
269
|
+
accountIndex: 0,
|
|
270
|
+
address: identity.value.address,
|
|
271
|
+
index: 0,
|
|
272
|
+
networkId: chainId.networkId,
|
|
273
|
+
rewardAccount: identity.value.rewardAccount,
|
|
274
|
+
type: AddressType.External
|
|
275
|
+
}, chainId.networkMagic)]
|
|
276
|
+
}), ...chainAccountStateOperations({
|
|
277
|
+
accountId,
|
|
278
|
+
discoveryOperationId: operationId,
|
|
279
|
+
actions
|
|
280
|
+
}), actions.sync.completeSyncOperation({
|
|
281
|
+
accountId,
|
|
282
|
+
operationId
|
|
283
|
+
}));
|
|
284
|
+
};
|
|
285
|
+
/**
|
|
286
|
+
* A custody account's UTxOs are not fetched: the account no longer matches
|
|
287
|
+
* the identity its contract derives.
|
|
288
|
+
*/
|
|
289
|
+
var CardanoCustodyUtxoSyncRefusedError = class extends Error {
|
|
290
|
+
constructor(accountId, reason) {
|
|
291
|
+
super(`Refused the UTxO sync of custody account ${accountId}: ${reason.code}`);
|
|
292
|
+
this.accountId = accountId;
|
|
293
|
+
this.reason = reason;
|
|
294
|
+
this.name = "CardanoCustodyUtxoSyncRefusedError";
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* A custody account's UTxOs: exactly those whose full address is the
|
|
299
|
+
* account's base address, the only outputs the custody contract lets the
|
|
300
|
+
* account spend.
|
|
301
|
+
*
|
|
302
|
+
* Discovery verifies the identity only once, when it stores the address
|
|
303
|
+
* entry, so every fetch verifies it again: an identity changed since then,
|
|
304
|
+
* or an entry that no longer matches it, fails the fetch.
|
|
305
|
+
*
|
|
306
|
+
* Fetched by address rather than by stake key. The stake credential also
|
|
307
|
+
* gathers outputs under any other payment credential, which anyone can
|
|
308
|
+
* create at no cost to inflate the fetch, and none of which belong to the
|
|
309
|
+
* account. The key-hash franken filter does not apply: every custody output
|
|
310
|
+
* has the script's payment credential.
|
|
311
|
+
*
|
|
312
|
+
* Reference scripts are read too: classification counts a reserve that
|
|
313
|
+
* carries one as foreign.
|
|
314
|
+
*/
|
|
315
|
+
const fetchCustodyAccountUtxos = (params) => {
|
|
316
|
+
const { accountId, blockchainSpecific } = params.account;
|
|
317
|
+
const identity = verifyCardanoCustodyAccountIdentity(blockchainSpecific);
|
|
318
|
+
if (!identity.ok) return throwError(() => new CardanoCustodyUtxoSyncRefusedError(accountId, identity.error));
|
|
319
|
+
const { address } = identity.value;
|
|
320
|
+
const strayEntry = params.accountAddresses.find((entry) => entry.address !== CardanoPaymentAddress(address));
|
|
321
|
+
if (strayEntry) return throwError(() => new CardanoCustodyUtxoSyncRefusedError(accountId, {
|
|
322
|
+
code: "address-entry-mismatch",
|
|
323
|
+
entry: strayEntry.address,
|
|
324
|
+
derived: address
|
|
325
|
+
}));
|
|
326
|
+
return params.getUtxosAtAddress({
|
|
327
|
+
address: CardanoPaymentAddress(address),
|
|
328
|
+
withReferenceScripts: true
|
|
329
|
+
}, { chainId: blockchainSpecific.chainId }).pipe(map(throwOnError), retryBackoff(PROVIDER_REQUEST_RETRY_CONFIG), map((utxos) => {
|
|
330
|
+
const own = utxos.filter(([, output]) => output.address === address);
|
|
331
|
+
if (own.length < utxos.length) params.logger.warn(`Dropped ${utxos.length - own.length} UTxOs not at the address of custody account ${accountId}`);
|
|
332
|
+
return own;
|
|
333
|
+
}));
|
|
334
|
+
};
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region ../../packages/module/cardano-sync/src/store/side-effects/expire-custody-pending-activities.ts
|
|
337
|
+
/**
|
|
338
|
+
* Advances one account's round record. A round starts when `startedAt`
|
|
339
|
+
* changes and completes when it clears with a newer `lastSuccessfulSync`.
|
|
340
|
+
*/
|
|
341
|
+
const advanceRounds = (previous, status, tipSlot) => {
|
|
342
|
+
const roundStartedAt = status.pendingSync?.startedAt;
|
|
343
|
+
const isSameRound = previous !== void 0 && roundStartedAt === previous.roundStartedAt;
|
|
344
|
+
const roundTipSlot = roundStartedAt === void 0 || previous === void 0 ? void 0 : isSameRound ? previous.roundTipSlot : tipSlot;
|
|
345
|
+
const hasCompleted = previous?.roundStartedAt !== void 0 && !isSameRound && status.lastSuccessfulSync !== previous.lastSuccessfulSync;
|
|
346
|
+
return {
|
|
347
|
+
roundStartedAt,
|
|
348
|
+
roundTipSlot,
|
|
349
|
+
lastSuccessfulSync: status.lastSuccessfulSync,
|
|
350
|
+
syncedFromSlot: hasCompleted ? previous.roundTipSlot ?? previous.syncedFromSlot : previous?.syncedFromSlot
|
|
351
|
+
};
|
|
352
|
+
};
|
|
353
|
+
const trackRounds = ({ hasSeenState, accounts }, [tip, statuses]) => ({
|
|
354
|
+
hasSeenState: true,
|
|
355
|
+
accounts: Object.fromEntries(Object.entries(statuses).map(([id, status]) => {
|
|
356
|
+
const accountId = AccountId(id);
|
|
357
|
+
return [accountId, advanceRounds(accounts[accountId] ?? (hasSeenState ? {} : void 0), status, tip?.slot)];
|
|
358
|
+
}))
|
|
359
|
+
});
|
|
360
|
+
/**
|
|
361
|
+
* Whether a custody operation's pending activity can no longer settle: a
|
|
362
|
+
* round that started once the tip was past its upper validity bound, by
|
|
363
|
+
* the depth the wallet allows its provider to lag, synced the account's
|
|
364
|
+
* history, and neither that history nor the synced UTxOs show the
|
|
365
|
+
* transaction.
|
|
366
|
+
*/
|
|
367
|
+
const isExpired = (activity, { syncedFromSlot, utxos, history }) => {
|
|
368
|
+
const invalidHereafter = cardanoCustodyActivityMetadataOf(activity)?.invalidHereafter;
|
|
369
|
+
if (invalidHereafter === void 0 || syncedFromSlot === void 0) return false;
|
|
370
|
+
if (syncedFromSlot <= invalidHereafter + 60) return false;
|
|
371
|
+
const txId = activity.activityId;
|
|
372
|
+
return !history.some((item) => item.txId === txId) && !utxos.some(([input]) => input.txId === txId);
|
|
373
|
+
};
|
|
374
|
+
const findExpired = ({ rounds, pendingByAccount, utxosByAccount, historyByAccount }) => Object.entries(pendingByAccount).flatMap(([id, pending]) => {
|
|
375
|
+
const accountId = AccountId(id);
|
|
376
|
+
const context = {
|
|
377
|
+
syncedFromSlot: rounds.accounts[accountId]?.syncedFromSlot,
|
|
378
|
+
utxos: utxosByAccount[accountId] ?? [],
|
|
379
|
+
history: historyByAccount[accountId] ?? []
|
|
380
|
+
};
|
|
381
|
+
const activityIds = pending.filter((activity) => isExpired(activity, context)).map(({ activityId }) => activityId);
|
|
382
|
+
return activityIds.length > 0 ? [{
|
|
383
|
+
accountId,
|
|
384
|
+
activityIds
|
|
385
|
+
}] : [];
|
|
386
|
+
});
|
|
387
|
+
/**
|
|
388
|
+
* Drops the pending activity of a custody operation that can no longer
|
|
389
|
+
* settle, so an account does not stay blocked as operation-in-progress when
|
|
390
|
+
* no one waits for the operation (R5.3: state reconciles with the network).
|
|
391
|
+
*
|
|
392
|
+
* A custody submission records its upper validity bound on the pending
|
|
393
|
+
* activity (`blockchainSpecific.Cardano.custody`). Past that bound the
|
|
394
|
+
* transaction can never apply. The chain tip alone does not prove that the
|
|
395
|
+
* wallet saw the outcome: the tip poll updates the tip before the next sync
|
|
396
|
+
* round fetches the history. So the activity is dropped only once a sync
|
|
397
|
+
* round that started with the tip past the bound by
|
|
398
|
+
* `UTXO_SYNC_CONFIRMATION_DEPTH` completed successfully, and neither the
|
|
399
|
+
* account's history nor its synced UTxOs show the transaction. Other
|
|
400
|
+
* pending activities carry no bound and are left alone.
|
|
401
|
+
*
|
|
402
|
+
* It reads state only and makes no provider call. `whileActive` (ADR 29)
|
|
403
|
+
* keeps it off while the wallet is locked. Each activation starts with no
|
|
404
|
+
* completed round, so a round that ran before unlock never counts.
|
|
405
|
+
*/
|
|
406
|
+
const expireCustodyPendingActivities = (_, { cardanoContext: { selectTip$, selectAccountUtxos$, selectTransactionHistoryGroupedByAccount$ }, activities: { selectPendingActivitiesByAccount$ }, sync: { selectSyncStatusByAccount$ } }, { actions, isWalletActive$ }) => combineLatest([
|
|
407
|
+
combineLatest([selectTip$, selectSyncStatusByAccount$]).pipe(scan(trackRounds, {
|
|
408
|
+
hasSeenState: false,
|
|
409
|
+
accounts: {}
|
|
410
|
+
})),
|
|
411
|
+
selectPendingActivitiesByAccount$,
|
|
412
|
+
selectAccountUtxos$,
|
|
413
|
+
selectTransactionHistoryGroupedByAccount$
|
|
414
|
+
]).pipe(map(([rounds, pendingByAccount, utxosByAccount, historyByAccount]) => findExpired({
|
|
415
|
+
rounds,
|
|
416
|
+
pendingByAccount,
|
|
417
|
+
utxosByAccount,
|
|
418
|
+
historyByAccount
|
|
419
|
+
})), mergeMap((expired) => from(expired.map(({ accountId, activityIds }) => actions.activities.removeActivities({
|
|
420
|
+
accountId,
|
|
421
|
+
activityIds
|
|
422
|
+
})))), whileActive(isWalletActive$));
|
|
423
|
+
//#endregion
|
|
424
|
+
//#region ../../packages/module/cardano-sync/src/store/side-effects/account-extensions.ts
|
|
425
|
+
/** Whether the account is of a kind a feature adds: a custody account. */
|
|
426
|
+
const isExtensionAccount = isCardanoCustodyAccount;
|
|
427
|
+
/** Address discovery for an account of a kind a feature adds. */
|
|
428
|
+
const extensionAccountAddressDiscovery = handleCustodyAccount;
|
|
429
|
+
/** The UTxO fetch of an account of a kind a feature adds. */
|
|
430
|
+
const extensionAccountUtxos = fetchCustodyAccountUtxos;
|
|
431
|
+
/** The sync side effects the features add. */
|
|
432
|
+
const extensionSyncSideEffects = [expireCustodyPendingActivities];
|
|
433
|
+
//#endregion
|
|
434
|
+
//#region ../../packages/module/cardano-sync/src/store/get-script-address.ts
|
|
435
|
+
/**
|
|
436
|
+
* Method to derive the wallet's grouped address from the script and network ID.
|
|
437
|
+
*
|
|
438
|
+
* @param paymentScript - The native script to be used for the payment credential.
|
|
439
|
+
* @param stakingScript - The native script to be used for the staking credential.
|
|
440
|
+
* @param networkId - The network identifier.
|
|
441
|
+
* @returns The derived grouped address.
|
|
442
|
+
*/
|
|
443
|
+
const getScriptAddress = (paymentScript, stakingScript, networkId) => {
|
|
444
|
+
const paymentScriptHash = nativeScriptPolicyId(paymentScript);
|
|
445
|
+
const stakingScriptHash = nativeScriptPolicyId(stakingScript);
|
|
446
|
+
const paymentScriptCredential = {
|
|
447
|
+
hash: paymentScriptHash,
|
|
448
|
+
type: CredentialType.ScriptHash
|
|
449
|
+
};
|
|
450
|
+
const stakeScriptCredential = {
|
|
451
|
+
hash: stakingScriptHash,
|
|
452
|
+
type: CredentialType.ScriptHash
|
|
453
|
+
};
|
|
454
|
+
return {
|
|
455
|
+
accountIndex: 0,
|
|
456
|
+
address: encodeBaseAddress(networkId, paymentScriptCredential, stakeScriptCredential),
|
|
457
|
+
index: 0,
|
|
458
|
+
networkId,
|
|
459
|
+
rewardAccount: encodeRewardAddress(networkId, stakeScriptCredential),
|
|
460
|
+
type: AddressType.External
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
//#endregion
|
|
259
464
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/address-discovery-sync.ts
|
|
260
465
|
/**
|
|
261
466
|
* Handles MultiSig account address discovery by generating script address.
|
|
@@ -458,13 +663,6 @@ const submitTxSideEffect = ({ cardanoContext: { submitTx$ } }, { cardanoContext:
|
|
|
458
663
|
})));
|
|
459
664
|
}));
|
|
460
665
|
//#endregion
|
|
461
|
-
//#region ../../packages/module/cardano-sync/src/store/side-effects/throw-on-error.ts
|
|
462
|
-
/** The value of a provider result, or its error thrown. */
|
|
463
|
-
const throwOnError = (result) => {
|
|
464
|
-
if (result.isErr()) throw result.unwrapErr();
|
|
465
|
-
return result.unwrap();
|
|
466
|
-
};
|
|
467
|
-
//#endregion
|
|
468
666
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/track-account-utxos.ts
|
|
469
667
|
/**
|
|
470
668
|
* Sentinel `topOnChainActivityId` for the cache key when an account has no
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as retryBackoff, t as PROVIDER_REQUEST_RETRY_CONFIG } from "./retry-config-
|
|
2
|
-
import { t as whileActive } from "./while-active-
|
|
3
|
-
import {
|
|
4
|
-
import { r as tokenPricingReducers } from "./slice-
|
|
1
|
+
import { n as retryBackoff, t as PROVIDER_REQUEST_RETRY_CONFIG } from "./retry-config-Bu5Yn5ua.js";
|
|
2
|
+
import { t as whileActive } from "./while-active-CDBnUlQA.js";
|
|
3
|
+
import { d as TOKEN_PRICING_NETWORK_TYPE, i as shouldFetchPriceHistory, l as POLLING_INTERVAL_MS, r as shouldFetchPrice, s as DEFAULT_CURRENCY_PREFERENCE, u as SUPPORTED_CURRENCIES_FEATURE_FLAG } from "./utils-DcnoETEP.js";
|
|
4
|
+
import { r as tokenPricingReducers } from "./slice-DlTEqIoI.js";
|
|
5
5
|
import { EMPTY, catchError, concat, distinctUntilChanged, exhaustMap, filter, interval, map, merge, of, startWith, switchMap, withLatestFrom } from "rxjs";
|
|
6
6
|
import { createMigrate } from "redux-persist";
|
|
7
7
|
//#region ../../packages/lib/util-store/src/by-blockchain-name.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
2
|
require("./_polyfill-buffer-patch-BycQkEkK.cjs");
|
|
3
|
-
const require_serializable = require("./serializable-
|
|
4
|
-
const require_key_value_store = require("./key-value-store-
|
|
3
|
+
const require_serializable = require("./serializable-n3UoxbZc.cjs");
|
|
4
|
+
const require_key_value_store = require("./key-value-store-Htj4RgMe.cjs");
|
|
5
5
|
//#region ../../packages/module/storage-web-indexeddb/src/storage-api-adapter.ts
|
|
6
6
|
const DB_NAME = "lace-storage";
|
|
7
7
|
const OBJECT_STORE_NAME = "key-value";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
2
|
require("./_polyfill-buffer-patch-BycQkEkK.cjs");
|
|
3
|
-
require("./serializable-
|
|
4
|
-
const require_is_redux_persist_state = require("./is-redux-persist-state-
|
|
5
|
-
const require_account_id_vo = require("./account-id.vo-
|
|
6
|
-
const
|
|
7
|
-
const require_slice = require("./slice-
|
|
3
|
+
require("./serializable-n3UoxbZc.cjs");
|
|
4
|
+
const require_is_redux_persist_state = require("./is-redux-persist-state-C5luvPEH.cjs");
|
|
5
|
+
const require_account_id_vo = require("./account-id.vo-DYZBZQsz.cjs");
|
|
6
|
+
const require_activity_type = require("./activity-type-BPXxdHBP.cjs");
|
|
7
|
+
const require_slice = require("./slice-DtitVc9L.cjs");
|
|
8
8
|
let redux_persist = require("redux-persist");
|
|
9
9
|
//#region ../../packages/contract/activities/src/store/migrations/reset-reward-activity-dates.ts
|
|
10
10
|
/**
|
|
@@ -29,7 +29,7 @@ const resetRewardActivities = (state) => {
|
|
|
29
29
|
const list = activitiesMap[key];
|
|
30
30
|
if (!Array.isArray(list)) continue;
|
|
31
31
|
desiredLoadedActivitiesCountPerAccount[accountId] = list.length;
|
|
32
|
-
activitiesMap[key] = list.filter((activity) => activity.type !==
|
|
32
|
+
activitiesMap[key] = list.filter((activity) => activity.type !== require_activity_type.ActivityType.Rewards);
|
|
33
33
|
}
|
|
34
34
|
return {
|
|
35
35
|
...typedState,
|
|
@@ -49,7 +49,7 @@ const rewardEpochDisplay = (state) => {
|
|
|
49
49
|
const activitiesMap = typedState.activities ?? {};
|
|
50
50
|
for (const list of Object.values(activitiesMap)) {
|
|
51
51
|
if (!Array.isArray(list)) continue;
|
|
52
|
-
for (const activity of list) if (activity.type ===
|
|
52
|
+
for (const activity of list) if (activity.type === require_activity_type.ActivityType.Rewards && activity.blockchainSpecific && typeof activity.blockchainSpecific.epoch === "number") {
|
|
53
53
|
const meta = activity.blockchainSpecific;
|
|
54
54
|
meta.epoch = meta.epoch + REWARD_EPOCH_DISPLAY_OFFSET;
|
|
55
55
|
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { t as contextLogger } from "./logging-BAMMfn5j.js";
|
|
2
|
+
import { n as Ok, t as Err } from "./asyncoption-DZQGfznq.js";
|
|
3
|
+
import { i as toProviderError } from "./error-CvEYL98P.js";
|
|
4
|
+
import { t as HttpClient } from "./http-client-B7_kBTYn.js";
|
|
5
|
+
import { n as BitcoinNetwork } from "./types-DXSxXGz0.js";
|
|
6
|
+
import { from } from "rxjs";
|
|
7
|
+
import memoize from "lodash/memoize.js";
|
|
8
|
+
//#region ../../packages/module/bitcoin-mempool-fee-market/src/mempool/mempool-fee-market-provider.ts
|
|
9
|
+
const MIN_FEE_RATE = 11e-6;
|
|
10
|
+
const DEFAULT_MARKETS = {
|
|
11
|
+
fast: {
|
|
12
|
+
feeRate: 25e-6,
|
|
13
|
+
targetConfirmationTime: 1
|
|
14
|
+
},
|
|
15
|
+
standard: {
|
|
16
|
+
feeRate: 15e-6,
|
|
17
|
+
targetConfirmationTime: 3
|
|
18
|
+
},
|
|
19
|
+
slow: {
|
|
20
|
+
feeRate: 11e-6,
|
|
21
|
+
targetConfirmationTime: 6
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Converts a fee rate in satoshis per vbyte to BTC per kilobyte.
|
|
26
|
+
* @param satsPerVByte - The fee rate in satoshis per vbyte.
|
|
27
|
+
*/
|
|
28
|
+
const satsPerVByteToBtcPerKB = (satsPerVByte) => satsPerVByte * 1e3 / 1e8;
|
|
29
|
+
/**
|
|
30
|
+
* High-level REST wrapper around Mempool.space's Bitcoin feemarket API API.
|
|
31
|
+
*/
|
|
32
|
+
var MempoolFeeMarketProvider = class {
|
|
33
|
+
logger;
|
|
34
|
+
#client;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new instance of the Mempool FeeMarket provider.
|
|
37
|
+
*
|
|
38
|
+
* @param client - Pre-configured HTTP client.
|
|
39
|
+
* @param logger - Any ts-log compatible logger implementation.
|
|
40
|
+
*/
|
|
41
|
+
constructor(client, logger) {
|
|
42
|
+
this.#client = client;
|
|
43
|
+
this.logger = contextLogger(logger, this.constructor.name);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Estimates the transaction fee in BTC per kilobyte based on the desired confirmation time and fee estimation mode.
|
|
47
|
+
*
|
|
48
|
+
* This method queries a blockchain fee estimation service to determine the appropriate fee
|
|
49
|
+
* rate required for a transaction to be confirmed within the specified number of blocks.
|
|
50
|
+
*
|
|
51
|
+
* @returns A promise that resolves to the estimated fee in satoshis per byte.
|
|
52
|
+
* This value can be used to calculate the total transaction fee
|
|
53
|
+
* based on the size of the transaction in bytes.
|
|
54
|
+
*/
|
|
55
|
+
async getFeeMarket(network) {
|
|
56
|
+
try {
|
|
57
|
+
if (network === BitcoinNetwork.Testnet) return DEFAULT_MARKETS;
|
|
58
|
+
const feeData = await this.request("/api/v1/fees/recommended");
|
|
59
|
+
const fastEstimate = feeData.fastestFee;
|
|
60
|
+
const standardEstimate = feeData.halfHourFee;
|
|
61
|
+
const slowEstimate = feeData.hourFee;
|
|
62
|
+
return {
|
|
63
|
+
fast: {
|
|
64
|
+
feeRate: Math.max(satsPerVByteToBtcPerKB(fastEstimate), MIN_FEE_RATE),
|
|
65
|
+
targetConfirmationTime: 600
|
|
66
|
+
},
|
|
67
|
+
standard: {
|
|
68
|
+
feeRate: Math.max(satsPerVByteToBtcPerKB(standardEstimate), MIN_FEE_RATE),
|
|
69
|
+
targetConfirmationTime: 1800
|
|
70
|
+
},
|
|
71
|
+
slow: {
|
|
72
|
+
feeRate: Math.max(satsPerVByteToBtcPerKB(slowEstimate), MIN_FEE_RATE),
|
|
73
|
+
targetConfirmationTime: 3600
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
} catch (error) {
|
|
77
|
+
this.logger.error("Failed to fetch fee market:", error);
|
|
78
|
+
}
|
|
79
|
+
return DEFAULT_MARKETS;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Performs a generic HTTP request to the Mempool.space API.
|
|
83
|
+
*/
|
|
84
|
+
async request(endpoint, options) {
|
|
85
|
+
try {
|
|
86
|
+
this.logger.debug("request", endpoint);
|
|
87
|
+
const response = await this.#client.request(endpoint, options);
|
|
88
|
+
this.logger.debug("response", JSON.stringify(response));
|
|
89
|
+
return response.data;
|
|
90
|
+
} catch (error) {
|
|
91
|
+
this.logger.debug("error", error);
|
|
92
|
+
throw toProviderError(error);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region ../../packages/module/bitcoin-mempool-fee-market/src/store/dependencies.ts
|
|
98
|
+
const computeMaestroConfigIdentifier = ({ url }) => `${url}`;
|
|
99
|
+
const getMempoolSpaceClient = memoize(({ url }) => {
|
|
100
|
+
return new HttpClient({ baseUrl: url });
|
|
101
|
+
}, computeMaestroConfigIdentifier);
|
|
102
|
+
const getMempoolSpaceApiProvider = memoize((config, logger) => {
|
|
103
|
+
return new MempoolFeeMarketProvider(getMempoolSpaceClient(config), logger);
|
|
104
|
+
}, computeMaestroConfigIdentifier);
|
|
105
|
+
const getMempoolSpaceConfig = (context, configs) => {
|
|
106
|
+
const config = configs[context.network];
|
|
107
|
+
if (!config) throw new Error(`Assertion failed: no blockfrost config found (${context.network}`);
|
|
108
|
+
return config;
|
|
109
|
+
};
|
|
110
|
+
const initializeDependencies = async ({ runtime: { config: { bitcoinFeeMarketProvider: { mempoolSpaceConfig } } } }, { logger }) => {
|
|
111
|
+
return { bitcoinFeeMarketProvider: { getFeeMarket: (context) => {
|
|
112
|
+
return from(getMempoolSpaceApiProvider(getMempoolSpaceConfig(context, mempoolSpaceConfig), logger).getFeeMarket(context.network).then(Ok).catch(Err));
|
|
113
|
+
} } };
|
|
114
|
+
};
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region ../../packages/module/bitcoin-mempool-fee-market/src/store/init.ts
|
|
117
|
+
const redux = async (props, dependencies) => ({ sideEffectDependencies: await initializeDependencies(props, dependencies) });
|
|
118
|
+
//#endregion
|
|
119
|
+
export { redux as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as v4, t as init_esm_browser } from "./esm-browser-
|
|
2
|
-
import { a as FolderId, t as reducers } from "./slice-
|
|
3
|
-
import { t as firstStateOfStatus } from "./first-state-of-status-
|
|
1
|
+
import { n as v4, t as init_esm_browser } from "./esm-browser-DpAD_RKv.js";
|
|
2
|
+
import { a as FolderId, t as reducers } from "./slice-ByNWnxKS.js";
|
|
3
|
+
import { t as firstStateOfStatus } from "./first-state-of-status-BscbKj_t.js";
|
|
4
4
|
import { switchMap, withLatestFrom } from "rxjs";
|
|
5
5
|
import { createMigrate } from "redux-persist";
|
|
6
6
|
//#region ../../packages/contract/tokens/src/store/side-effects.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
|
-
const require_composite_signer_factory = require("./composite-signer-factory-
|
|
2
|
+
const require_composite_signer_factory = require("./composite-signer-factory-v4Pxn8bA.cjs");
|
|
3
3
|
//#region ../../packages/contract/signer/src/store/dependencies.ts
|
|
4
4
|
const initializeSignerSideEffectDependencies = async ({ loadModules }) => {
|
|
5
5
|
return { signerFactory: new require_composite_signer_factory.CompositeSignerFactory(await loadModules("addons.loadSignerFactory")) };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as ProviderFailure } from "./errors-CAOTqN4_.js";
|
|
2
|
-
import { n as errorHasReason } from "./error-
|
|
2
|
+
import { n as errorHasReason } from "./error-CvEYL98P.js";
|
|
3
3
|
//#region ../../packages/lib/util-provider/src/is-retriable-error.ts
|
|
4
4
|
/**
|
|
5
5
|
* Determines if a ProviderError should be retried based on its failure type.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_errors = require("./errors-lg3enbYs.cjs");
|
|
2
|
-
const require_error = require("./error-
|
|
2
|
+
const require_error = require("./error-B6wj9nPv.cjs");
|
|
3
3
|
//#region ../../packages/lib/util-provider/src/is-retriable-error.ts
|
|
4
4
|
/**
|
|
5
5
|
* Determines if a ProviderError should be retried based on its failure type.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import "./_polyfill-buffer-patch-JcrfT1gU.js";
|
|
2
|
+
import { n as HexBytes, t as ByteArray } from "./bytes.vo-CziaOsba.js";
|
|
3
|
+
import { t as DeviceCommitmentHex } from "./device-commitment-hex.vo-D9FsYLn7.js";
|
|
4
|
+
import { t as UnknownCircuitError } from "./artefact-loader-nlsYFjxU.js";
|
|
5
|
+
import { n as ROTATE_ENC_KEY_CIRCUIT, t as APPEND_INBOX_CIRCUIT } from "./enc-key-circuits-0Dud78IB.js";
|
|
6
|
+
import { i as REVOKE_GRANT_CIRCUIT, n as ISSUE_GRANT_CIRCUIT, r as REVOKE_ALL_GRANTS_CIRCUIT } from "./grant-circuits-D53wmGyr.js";
|
|
7
|
+
import { a as pureCircuits } from "./acc-module-ur8CkBd1.js";
|
|
8
|
+
import { r as issueGrantBinding } from "./grants-ngFtS52g.js";
|
|
9
|
+
//#region ../../packages/module/passport-account/src/acc/challenges.ts
|
|
10
|
+
const address = (context) => ({ bytes: context.contractAddress });
|
|
11
|
+
/**
|
|
12
|
+
* Per-circuit challenge builders for the jubjub-gated circuits this module
|
|
13
|
+
* calls. The preimage layout is produced by the contract's own exported
|
|
14
|
+
* pure circuits: a per-circuit domain separation tag, the account address,
|
|
15
|
+
* the signature announcement, the device public key, the circuit's
|
|
16
|
+
* arguments in declaration order, the auth nonce, and the grind nonce.
|
|
17
|
+
* The grant lifecycle circuits sit in the same tag family as the device
|
|
18
|
+
* circuits; the issue challenge carries the grant id and the scope digest
|
|
19
|
+
* rather than the scope's fields. The encryption key circuits bind the
|
|
20
|
+
* key `enc_key` is replaced with and the entry appended to the inbox.
|
|
21
|
+
* `activate_initial_device_with_jubjub` is permissionless and has no
|
|
22
|
+
* challenge.
|
|
23
|
+
*/
|
|
24
|
+
const jubjubChallenges = {
|
|
25
|
+
addDevice: (context, pk, newEntry) => (sigR, grindNonce) => pureCircuits.challenge_add_device_with_jubjub(address(context), sigR, pk, newEntry, context.authNonce, grindNonce),
|
|
26
|
+
removeDevice: (context, pk, entry) => (sigR, grindNonce) => pureCircuits.challenge_remove_device_with_jubjub(address(context), sigR, pk, entry, context.authNonce, grindNonce),
|
|
27
|
+
issueGrant: (context, pk, binding) => (sigR, grindNonce) => pureCircuits.challenge_issue_grant_with_jubjub(address(context), sigR, pk, binding.grantId, binding.scopeDigest, context.authNonce, grindNonce),
|
|
28
|
+
revokeGrant: (context, pk, grantId) => (sigR, grindNonce) => pureCircuits.challenge_revoke_grant_with_jubjub(address(context), sigR, pk, grantId, context.authNonce, grindNonce),
|
|
29
|
+
rotateEncKey: (context, pk, newKey) => (sigR, grindNonce) => pureCircuits.challenge_rotate_enc_key_with_jubjub(address(context), sigR, pk, newKey, context.authNonce, grindNonce),
|
|
30
|
+
appendInbox: (context, pk, entry) => (sigR, grindNonce) => pureCircuits.challenge_append_inbox_with_jubjub(address(context), sigR, pk, entry, context.authNonce, grindNonce),
|
|
31
|
+
revokeAllGrants: (context, pk) => (sigR, grindNonce) => pureCircuits.challenge_revoke_all_grants_with_jubjub(address(context), sigR, pk, context.authNonce, grindNonce)
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region ../../packages/module/passport-account/src/acc/jubjub-authoriser.ts
|
|
35
|
+
const HEX_BYTE_PATTERN = /^(?:[0-9a-f]{2})*$/;
|
|
36
|
+
const accountToBytes = (account) => {
|
|
37
|
+
if (!HEX_BYTE_PATTERN.test(account)) throw new Error(`AccAddress is not lowercase hex of whole bytes: "${account}"`);
|
|
38
|
+
return ByteArray.fromHex(HexBytes(account));
|
|
39
|
+
};
|
|
40
|
+
const bytesArgument = (request) => {
|
|
41
|
+
const [entry] = request.args;
|
|
42
|
+
if (!(entry instanceof Uint8Array)) throw new Error(`Circuit ${request.circuit} expects a byte-array entry as its first argument`);
|
|
43
|
+
return entry;
|
|
44
|
+
};
|
|
45
|
+
const noArguments = (request) => {
|
|
46
|
+
if (request.args.length > 0) throw new Error(`Circuit ${request.circuit} takes no argument`);
|
|
47
|
+
};
|
|
48
|
+
const challengeBuilders = {
|
|
49
|
+
add_device_with_jubjub: (context, pk, request) => jubjubChallenges.addDevice(context, pk, bytesArgument(request)),
|
|
50
|
+
remove_device_with_jubjub: (context, pk, request) => jubjubChallenges.removeDevice(context, pk, bytesArgument(request)),
|
|
51
|
+
[ISSUE_GRANT_CIRCUIT]: (context, pk, request) => jubjubChallenges.issueGrant(context, pk, issueGrantBinding(request.args)),
|
|
52
|
+
[REVOKE_GRANT_CIRCUIT]: (context, pk, request) => jubjubChallenges.revokeGrant(context, pk, bytesArgument(request)),
|
|
53
|
+
[REVOKE_ALL_GRANTS_CIRCUIT]: (context, pk, request) => {
|
|
54
|
+
noArguments(request);
|
|
55
|
+
return jubjubChallenges.revokeAllGrants(context, pk);
|
|
56
|
+
},
|
|
57
|
+
[ROTATE_ENC_KEY_CIRCUIT]: (context, pk, request) => jubjubChallenges.rotateEncKey(context, pk, bytesArgument(request)),
|
|
58
|
+
[APPEND_INBOX_CIRCUIT]: (context, pk, request) => jubjubChallenges.appendInbox(context, pk, bytesArgument(request))
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* A PassportAuthoriser over any JubJub device key source. Authorises the
|
|
62
|
+
* device-management, grant lifecycle and encryption key circuits this
|
|
63
|
+
* module calls and rejects everything else, including the permissionless
|
|
64
|
+
* `activate_initial_device_with_jubjub`, which needs no authorisation.
|
|
65
|
+
*/
|
|
66
|
+
const createJubjubAuthoriser = (runWithDevice) => ({
|
|
67
|
+
scheme: "jubjub-schnorr",
|
|
68
|
+
deviceCommitment: async (account, epoch, counter) => runWithDevice((device) => DeviceCommitmentHex(HexBytes.fromByteArray(device.entryAt(accountToBytes(account), epoch, counter)))),
|
|
69
|
+
deviceCommitments: async (account, epoch, counters) => runWithDevice((device) => {
|
|
70
|
+
const accountBytes = accountToBytes(account);
|
|
71
|
+
return counters.map((counter) => DeviceCommitmentHex(HexBytes.fromByteArray(device.entryAt(accountBytes, epoch, counter))));
|
|
72
|
+
}),
|
|
73
|
+
devicePublicKey: async () => runWithDevice((device) => device.pk),
|
|
74
|
+
authorise: async (request) => runWithDevice((device) => {
|
|
75
|
+
const toBuilder = challengeBuilders[request.circuit];
|
|
76
|
+
if (!toBuilder) throw new UnknownCircuitError(request.circuit);
|
|
77
|
+
const context = {
|
|
78
|
+
contractAddress: accountToBytes(request.account),
|
|
79
|
+
authNonce: request.authNonce
|
|
80
|
+
};
|
|
81
|
+
return device.sign(toBuilder(context, device.pk, request), request.useCounter);
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
//#endregion
|
|
85
|
+
export { createJubjubAuthoriser };
|