@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
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
require("./chunk-9hOWP6kD.cjs");
|
|
2
2
|
require("./_polyfill-buffer-patch-BycQkEkK.cjs");
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
3
|
+
require("./dist-MJof_Ky1.cjs");
|
|
4
|
+
const require_Address = require("./Address-AMKTo-dA.cjs");
|
|
5
|
+
const require_group_cardano_addresses_by_account = require("./group-cardano-addresses-by-account-BGOtPV-Y.cjs");
|
|
6
|
+
const require_types = require("./types-Cn6WlQV6.cjs");
|
|
7
|
+
const require_util = require("./util-D1YlKzrc.cjs");
|
|
8
|
+
const require_time_vo = require("./time.vo-TmYE-_Y2.cjs");
|
|
9
|
+
const require_asyncoption = require("./asyncoption-CYcZNBRM.cjs");
|
|
10
|
+
const require_auto_dismiss_failure_on_success = require("./auto-dismiss-failure-on-success-BWJceNXd.cjs");
|
|
11
|
+
const require_account_id_vo = require("./account-id.vo-DYZBZQsz.cjs");
|
|
12
|
+
const require_toEmpty = require("./toEmpty-Db6V94Mf.cjs");
|
|
13
|
+
const require_retry_config = require("./retry-config-BGv5q5QM.cjs");
|
|
14
|
+
const require_cardano_network_id_vo = require("./cardano-network-id.vo-C5VuBXT3.cjs");
|
|
15
|
+
const require_cardano_tx_id_vo = require("./cardano-tx-id.vo-lnyO9XaW.cjs");
|
|
16
|
+
const require_sync_operation_utils = require("./sync-operation-utils--Z_IQfyW.cjs");
|
|
17
|
+
const require_identity = require("./identity-y41Yle03.cjs");
|
|
18
|
+
const require_while_active = require("./while-active-I2TlHtm7.cjs");
|
|
19
|
+
const require_pending_operation = require("./pending-operation-CfTUNQVD.cjs");
|
|
15
20
|
let rxjs = require("rxjs");
|
|
16
21
|
//#region ../../packages/lib/core/src/address.ts
|
|
17
22
|
/**
|
|
@@ -173,48 +178,8 @@ const filterFrankenUtxos = (utxos, ownedCredentials) => {
|
|
|
173
178
|
};
|
|
174
179
|
};
|
|
175
180
|
//#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) => rxjs.EMPTY;
|
|
181
|
-
/** The UTxO fetch of an account of a kind a feature adds: none exists. */
|
|
182
|
-
const extensionAccountUtxos = (_params) => rxjs.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
|
-
var import_dist = require_retry_config.require_dist();
|
|
188
|
-
/**
|
|
189
|
-
* Method to derive the wallet's grouped address from the script and network ID.
|
|
190
|
-
*
|
|
191
|
-
* @param paymentScript - The native script to be used for the payment credential.
|
|
192
|
-
* @param stakingScript - The native script to be used for the staking credential.
|
|
193
|
-
* @param networkId - The network identifier.
|
|
194
|
-
* @returns The derived grouped address.
|
|
195
|
-
*/
|
|
196
|
-
const getScriptAddress = (paymentScript, stakingScript, networkId) => {
|
|
197
|
-
const paymentScriptHash = require_group_cardano_addresses_by_account.nativeScriptPolicyId(paymentScript);
|
|
198
|
-
const stakingScriptHash = require_group_cardano_addresses_by_account.nativeScriptPolicyId(stakingScript);
|
|
199
|
-
const paymentScriptCredential = {
|
|
200
|
-
hash: paymentScriptHash,
|
|
201
|
-
type: require_Address.CredentialType.ScriptHash
|
|
202
|
-
};
|
|
203
|
-
const stakeScriptCredential = {
|
|
204
|
-
hash: stakingScriptHash,
|
|
205
|
-
type: require_Address.CredentialType.ScriptHash
|
|
206
|
-
};
|
|
207
|
-
return {
|
|
208
|
-
accountIndex: 0,
|
|
209
|
-
address: encodeBaseAddress(networkId, paymentScriptCredential, stakeScriptCredential),
|
|
210
|
-
index: 0,
|
|
211
|
-
networkId,
|
|
212
|
-
rewardAccount: encodeRewardAddress(networkId, stakeScriptCredential),
|
|
213
|
-
type: require_types.AddressType.External
|
|
214
|
-
};
|
|
215
|
-
};
|
|
216
|
-
//#endregion
|
|
217
181
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/chain-account-state-operations.ts
|
|
182
|
+
var import_dist = require_retry_config.require_dist();
|
|
218
183
|
/**
|
|
219
184
|
* Builds the `addSyncOperation` actions that chain account-state operations
|
|
220
185
|
* (currently transaction-polling) after a successful address discovery. The
|
|
@@ -257,6 +222,245 @@ const chainAccountStateOperations = (params) => {
|
|
|
257
222
|
}));
|
|
258
223
|
};
|
|
259
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 = require_identity.verifyCardanoCustodyAccountIdentity(account.blockchainSpecific);
|
|
250
|
+
if (!identity.ok) {
|
|
251
|
+
logger.error(`Address discovery refused custody account ${accountId}: ${identity.error.code}`, identity.error);
|
|
252
|
+
return (0, rxjs.of)(actions.sync.failSyncOperation({
|
|
253
|
+
accountId,
|
|
254
|
+
operationId,
|
|
255
|
+
error: "sync.error.address-discovery-failed"
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
return (0, rxjs.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: [require_util.toContractAddress({
|
|
269
|
+
accountIndex: 0,
|
|
270
|
+
address: identity.value.address,
|
|
271
|
+
index: 0,
|
|
272
|
+
networkId: chainId.networkId,
|
|
273
|
+
rewardAccount: identity.value.rewardAccount,
|
|
274
|
+
type: require_types.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 = require_identity.verifyCardanoCustodyAccountIdentity(blockchainSpecific);
|
|
318
|
+
if (!identity.ok) return (0, rxjs.throwError)(() => new CardanoCustodyUtxoSyncRefusedError(accountId, identity.error));
|
|
319
|
+
const { address } = identity.value;
|
|
320
|
+
const strayEntry = params.accountAddresses.find((entry) => entry.address !== require_util.CardanoPaymentAddress(address));
|
|
321
|
+
if (strayEntry) return (0, rxjs.throwError)(() => new CardanoCustodyUtxoSyncRefusedError(accountId, {
|
|
322
|
+
code: "address-entry-mismatch",
|
|
323
|
+
entry: strayEntry.address,
|
|
324
|
+
derived: address
|
|
325
|
+
}));
|
|
326
|
+
return params.getUtxosAtAddress({
|
|
327
|
+
address: require_util.CardanoPaymentAddress(address),
|
|
328
|
+
withReferenceScripts: true
|
|
329
|
+
}, { chainId: blockchainSpecific.chainId }).pipe((0, rxjs.map)(throwOnError), (0, import_dist.retryBackoff)(require_retry_config.PROVIDER_REQUEST_RETRY_CONFIG), (0, rxjs.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 = require_account_id_vo.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 = require_pending_operation.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 = require_account_id_vo.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$ }) => (0, rxjs.combineLatest)([
|
|
407
|
+
(0, rxjs.combineLatest)([selectTip$, selectSyncStatusByAccount$]).pipe((0, rxjs.scan)(trackRounds, {
|
|
408
|
+
hasSeenState: false,
|
|
409
|
+
accounts: {}
|
|
410
|
+
})),
|
|
411
|
+
selectPendingActivitiesByAccount$,
|
|
412
|
+
selectAccountUtxos$,
|
|
413
|
+
selectTransactionHistoryGroupedByAccount$
|
|
414
|
+
]).pipe((0, rxjs.map)(([rounds, pendingByAccount, utxosByAccount, historyByAccount]) => findExpired({
|
|
415
|
+
rounds,
|
|
416
|
+
pendingByAccount,
|
|
417
|
+
utxosByAccount,
|
|
418
|
+
historyByAccount
|
|
419
|
+
})), (0, rxjs.mergeMap)((expired) => (0, rxjs.from)(expired.map(({ accountId, activityIds }) => actions.activities.removeActivities({
|
|
420
|
+
accountId,
|
|
421
|
+
activityIds
|
|
422
|
+
})))), require_while_active.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 = require_identity.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 = require_group_cardano_addresses_by_account.nativeScriptPolicyId(paymentScript);
|
|
445
|
+
const stakingScriptHash = require_group_cardano_addresses_by_account.nativeScriptPolicyId(stakingScript);
|
|
446
|
+
const paymentScriptCredential = {
|
|
447
|
+
hash: paymentScriptHash,
|
|
448
|
+
type: require_Address.CredentialType.ScriptHash
|
|
449
|
+
};
|
|
450
|
+
const stakeScriptCredential = {
|
|
451
|
+
hash: stakingScriptHash,
|
|
452
|
+
type: require_Address.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: require_types.AddressType.External
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
//#endregion
|
|
260
464
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/address-discovery-sync.ts
|
|
261
465
|
/**
|
|
262
466
|
* Handles MultiSig account address discovery by generating script address.
|
|
@@ -459,13 +663,6 @@ const submitTxSideEffect = ({ cardanoContext: { submitTx$ } }, { cardanoContext:
|
|
|
459
663
|
})));
|
|
460
664
|
}));
|
|
461
665
|
//#endregion
|
|
462
|
-
//#region ../../packages/module/cardano-sync/src/store/side-effects/throw-on-error.ts
|
|
463
|
-
/** The value of a provider result, or its error thrown. */
|
|
464
|
-
const throwOnError = (result) => {
|
|
465
|
-
if (result.isErr()) throw result.unwrapErr();
|
|
466
|
-
return result.unwrap();
|
|
467
|
-
};
|
|
468
|
-
//#endregion
|
|
469
666
|
//#region ../../packages/module/cardano-sync/src/store/side-effects/track-account-utxos.ts
|
|
470
667
|
/**
|
|
471
668
|
* Sentinel `topOnChainActivityId` for the cache key when an account has no
|
|
@@ -675,7 +872,7 @@ const trackAccountUtxos = ({ cardanoContext: { retrySyncRound$ } }, { wallets: {
|
|
|
675
872
|
accountId,
|
|
676
873
|
cacheKey
|
|
677
874
|
})));
|
|
678
|
-
emissions.push((0, rxjs.of)(CardanoUtxoFetchFailureId(accountId)).pipe(
|
|
875
|
+
emissions.push((0, rxjs.of)(CardanoUtxoFetchFailureId(accountId)).pipe(require_auto_dismiss_failure_on_success.autoDismissFailureOnSuccess(selectFailureById$)));
|
|
679
876
|
return (0, rxjs.merge)(...emissions);
|
|
680
877
|
}), (0, rxjs.catchError)((error) => {
|
|
681
878
|
logger.error(`Utxo fetch failed for account ${accountId}`, error);
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import "./_polyfill-buffer-patch-JcrfT1gU.js";
|
|
2
|
+
import "./serializable-F7OtYl8d.js";
|
|
3
|
+
import { v as TEMENOS_PROOF_SERVER_MODES } from "./const-BB3MccLt.js";
|
|
4
|
+
import { r as midnightContextReducers, t as initialState } from "./slice-bRASyM-m.js";
|
|
5
|
+
import { createMigrate } from "redux-persist";
|
|
6
|
+
//#region ../../packages/contract/midnight-context/src/store/side-effects.ts
|
|
7
|
+
const initializeSideEffects = () => [];
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region ../../packages/contract/midnight-context/src/store/init.ts
|
|
10
|
+
const store = async (props) => ({
|
|
11
|
+
sideEffects: initializeSideEffects(),
|
|
12
|
+
reducers: midnightContextReducers,
|
|
13
|
+
preloadedState: { midnightContext: {
|
|
14
|
+
...initialState,
|
|
15
|
+
defaultTestNetNetworkId: props.runtime.config.defaultMidnightTestnetNetworkId
|
|
16
|
+
} },
|
|
17
|
+
persistConfig: { midnightContext: {
|
|
18
|
+
version: 14,
|
|
19
|
+
whitelist: [
|
|
20
|
+
"userNetworksConfigOverrides",
|
|
21
|
+
"proofServerDisclosureAcknowledgements",
|
|
22
|
+
"isActivityPageHeaderBannerDismissed",
|
|
23
|
+
"isPortfolioBannerDismissed",
|
|
24
|
+
"dustBalanceByAccount",
|
|
25
|
+
"dustGenerationDetailsByAccount"
|
|
26
|
+
],
|
|
27
|
+
migrate: createMigrate({
|
|
28
|
+
3: (state) => {
|
|
29
|
+
const typedState = state;
|
|
30
|
+
delete typedState.networkId;
|
|
31
|
+
return typedState;
|
|
32
|
+
},
|
|
33
|
+
4: (state) => {
|
|
34
|
+
return state;
|
|
35
|
+
},
|
|
36
|
+
5: (state) => {
|
|
37
|
+
const typedState = state;
|
|
38
|
+
delete typedState.dustParameters;
|
|
39
|
+
return typedState;
|
|
40
|
+
},
|
|
41
|
+
6: (state) => {
|
|
42
|
+
return state;
|
|
43
|
+
},
|
|
44
|
+
7: (state) => {
|
|
45
|
+
const typedState = state;
|
|
46
|
+
delete typedState.dustBalance;
|
|
47
|
+
delete typedState.dustGenerationDetails;
|
|
48
|
+
typedState.dustBalanceByAccount = {};
|
|
49
|
+
typedState.dustGenerationDetailsByAccount = {};
|
|
50
|
+
return typedState;
|
|
51
|
+
},
|
|
52
|
+
8: (state) => {
|
|
53
|
+
const typedState = state;
|
|
54
|
+
delete typedState.featureFlagsNetworksConfigOverrides;
|
|
55
|
+
return typedState;
|
|
56
|
+
},
|
|
57
|
+
9: (state) => {
|
|
58
|
+
const typedState = state;
|
|
59
|
+
typedState.publicKeysByAccount = {};
|
|
60
|
+
return typedState;
|
|
61
|
+
},
|
|
62
|
+
10: (state) => {
|
|
63
|
+
const typedState = state;
|
|
64
|
+
const overrides = typedState.userNetworksConfigOverrides;
|
|
65
|
+
for (const networkId in overrides) {
|
|
66
|
+
const networkOverrides = overrides[networkId];
|
|
67
|
+
if (!networkOverrides) continue;
|
|
68
|
+
delete networkOverrides.nodeAddress;
|
|
69
|
+
delete networkOverrides.indexerAddress;
|
|
70
|
+
}
|
|
71
|
+
return typedState;
|
|
72
|
+
},
|
|
73
|
+
11: (state) => {
|
|
74
|
+
const typedState = state;
|
|
75
|
+
delete typedState.shouldAcknowledgeMidnightDisclaimer;
|
|
76
|
+
return typedState;
|
|
77
|
+
},
|
|
78
|
+
12: (state) => {
|
|
79
|
+
const typedState = state;
|
|
80
|
+
const userOverrides = typedState.userNetworksConfigOverrides;
|
|
81
|
+
if (userOverrides) for (const networkId in userOverrides) {
|
|
82
|
+
const override = userOverrides[networkId];
|
|
83
|
+
if (override) delete override.proofServerAddress;
|
|
84
|
+
}
|
|
85
|
+
return typedState;
|
|
86
|
+
},
|
|
87
|
+
13: (state) => {
|
|
88
|
+
const typedState = state;
|
|
89
|
+
for (const override of Object.values(typedState.userNetworksConfigOverrides ?? {})) if (override) delete override.proofServerAddress;
|
|
90
|
+
return typedState;
|
|
91
|
+
},
|
|
92
|
+
14: (state) => {
|
|
93
|
+
const typedState = state;
|
|
94
|
+
for (const networkId of ["mainnet", "preview"]) {
|
|
95
|
+
const override = typedState.userNetworksConfigOverrides?.[networkId];
|
|
96
|
+
const previousMode = override?.proofServer;
|
|
97
|
+
const mode = TEMENOS_PROOF_SERVER_MODES[networkId];
|
|
98
|
+
if (override && mode && previousMode?.kind === "tee-delegated" && previousMode.url === "https://api.proofserver.wastedp.io") override.proofServer = { ...mode };
|
|
99
|
+
}
|
|
100
|
+
return typedState;
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
} }
|
|
104
|
+
});
|
|
105
|
+
//#endregion
|
|
106
|
+
export { store as default };
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { t as BlockchainNetworkId } from "./blockchain-network-id.vo-C6Jowh8t.js";
|
|
2
|
+
import { n as repositorySlice } from "./repo-slice-BQlssw9M.js";
|
|
3
|
+
import { t as AccountId } from "./account-id.vo-KDTWJ-W5.js";
|
|
4
|
+
import { createMigrate } from "redux-persist";
|
|
5
|
+
//#region ../../packages/lib/util-hw/src/device-identity.ts
|
|
6
|
+
const LEDGER_USB_VENDOR_ID = 11415;
|
|
7
|
+
/**
|
|
8
|
+
* Stable USB product identity. Ledger encodes the model in the high byte and
|
|
9
|
+
* app/firmware-dependent interface flags in the low byte, so the same device
|
|
10
|
+
* can report different productIds across firmware updates or open apps.
|
|
11
|
+
* Masks the flag bits for Ledger (mirrors `@ledgerhq/devices`, which resolves
|
|
12
|
+
* models via `productId >> 8`); other vendors keep the full productId.
|
|
13
|
+
*/
|
|
14
|
+
const canonicalUsbProductId = (vendorId, productId) => vendorId === LEDGER_USB_VENDOR_ID ? productId & 65280 : productId;
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region ../../packages/contract/wallet-repo/src/value-objects/hardware-wallet-id.vo.ts
|
|
17
|
+
const USB_HW_PATTERN = /^usb-hw-(\d+)-(\d+)-(.+)$/;
|
|
18
|
+
const BLE_HW_PATTERN = /^ble-(ledger|trezor)-(.+)$/;
|
|
19
|
+
const USB_NO_SERIAL_SENTINEL = "no-serial";
|
|
20
|
+
/**
|
|
21
|
+
* The wallet ID of the hardware device a descriptor describes.
|
|
22
|
+
* `HardwareWalletId.parse` reads the descriptor back from a wallet ID, or
|
|
23
|
+
* returns `null` for an ID of another form.
|
|
24
|
+
*/
|
|
25
|
+
const HardwareWalletId = (descriptor) => {
|
|
26
|
+
switch (descriptor.kind) {
|
|
27
|
+
case "usb": return `usb-hw-${descriptor.vendorId}-${canonicalUsbProductId(descriptor.vendorId, descriptor.productId)}-${descriptor.serialNumber ?? USB_NO_SERIAL_SENTINEL}`;
|
|
28
|
+
case "ble": return `ble-${descriptor.vendorName}-${descriptor.id}`;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
HardwareWalletId.parse = (walletId) => {
|
|
32
|
+
const usbMatch = USB_HW_PATTERN.exec(walletId);
|
|
33
|
+
if (usbMatch) {
|
|
34
|
+
const serialSegment = usbMatch[3];
|
|
35
|
+
return {
|
|
36
|
+
kind: "usb",
|
|
37
|
+
vendorId: Number(usbMatch[1]),
|
|
38
|
+
productId: Number(usbMatch[2]),
|
|
39
|
+
serialNumber: serialSegment === USB_NO_SERIAL_SENTINEL ? null : serialSegment
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const bleMatch = BLE_HW_PATTERN.exec(walletId);
|
|
43
|
+
if (bleMatch) return {
|
|
44
|
+
kind: "ble",
|
|
45
|
+
vendorName: bleMatch[1],
|
|
46
|
+
id: bleMatch[2],
|
|
47
|
+
name: null
|
|
48
|
+
};
|
|
49
|
+
return null;
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region ../../packages/contract/wallet-repo/src/migrations/3-set-blockchain-network-id.ts
|
|
53
|
+
const migrateBlockchainNetworkId = (blockchainName) => {
|
|
54
|
+
switch (blockchainName) {
|
|
55
|
+
case "Cardano": return BlockchainNetworkId("cardano-1");
|
|
56
|
+
case "Midnight": return BlockchainNetworkId("midnight-preview");
|
|
57
|
+
case "Bitcoin": return BlockchainNetworkId("bitcoin-testnet4");
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const setBlockchainNetworkId = (state) => {
|
|
61
|
+
const typedState = state;
|
|
62
|
+
if (!typedState.entities) return typedState;
|
|
63
|
+
for (const wallet of Object.values(typedState.entities)) for (const account of wallet.accounts) account.blockchainNetworkId = migrateBlockchainNetworkId(account.blockchainName);
|
|
64
|
+
return typedState;
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region ../../packages/contract/wallet-repo/src/migrations/4-update-midnight-account-ids.ts
|
|
68
|
+
const updateMidnightAccountIds = (state) => {
|
|
69
|
+
const typedState = state;
|
|
70
|
+
if (!typedState.entities) return typedState;
|
|
71
|
+
for (const wallet of Object.values(typedState.entities)) for (const account of wallet.accounts) if (account.blockchainName === "Midnight") {
|
|
72
|
+
const networkId = account.blockchainSpecific.networkId;
|
|
73
|
+
account.accountId = AccountId(`${wallet.walletId}-mn-0-${networkId}`);
|
|
74
|
+
}
|
|
75
|
+
if (typedState.activeAccountContext?.accountId.endsWith("-mn")) typedState.activeAccountContext = null;
|
|
76
|
+
return typedState;
|
|
77
|
+
};
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region ../../packages/contract/wallet-repo/src/migrations/5-normalize-hardware-wallet-ids.ts
|
|
80
|
+
/**
|
|
81
|
+
* Rewrites hardware wallet ids to the canonical descriptor encoding (Ledger
|
|
82
|
+
* USB productIds carry app/firmware-dependent interface bits that are now
|
|
83
|
+
* masked at id construction) and merges wallet entities that collapse into
|
|
84
|
+
* the same id, so devices that were duplicated by a productId drift become a
|
|
85
|
+
* single wallet again. Account ids embed the wallet id as their prefix, so
|
|
86
|
+
* they are rewritten along with the walletId fields.
|
|
87
|
+
*/
|
|
88
|
+
const normalizeHardwareWalletIds = (state) => {
|
|
89
|
+
const typedState = state;
|
|
90
|
+
if (!typedState.entities) return typedState;
|
|
91
|
+
const renames = /* @__PURE__ */ new Map();
|
|
92
|
+
for (const oldId of Object.keys(typedState.entities)) {
|
|
93
|
+
const descriptor = HardwareWalletId.parse(oldId);
|
|
94
|
+
if (!descriptor) continue;
|
|
95
|
+
const newId = HardwareWalletId(descriptor);
|
|
96
|
+
if (newId === oldId) continue;
|
|
97
|
+
renames.set(oldId, newId);
|
|
98
|
+
const wallet = typedState.entities[oldId];
|
|
99
|
+
for (const account of wallet.accounts) {
|
|
100
|
+
account.walletId = newId;
|
|
101
|
+
account.accountId = AccountId(account.accountId.replace(oldId, newId));
|
|
102
|
+
}
|
|
103
|
+
const target = typedState.entities[newId];
|
|
104
|
+
typedState.entities[newId] = target ? {
|
|
105
|
+
...target,
|
|
106
|
+
accounts: [...target.accounts, ...wallet.accounts.filter((account) => target.accounts.every((existing) => existing.accountId !== account.accountId))]
|
|
107
|
+
} : {
|
|
108
|
+
...wallet,
|
|
109
|
+
walletId: newId
|
|
110
|
+
};
|
|
111
|
+
delete typedState.entities[oldId];
|
|
112
|
+
if (typedState.activeAccountContext?.walletId === oldId) typedState.activeAccountContext = {
|
|
113
|
+
walletId: newId,
|
|
114
|
+
accountId: AccountId(typedState.activeAccountContext.accountId.replace(oldId, newId))
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (renames.size > 0) typedState.ids = [...new Set(typedState.ids.map((id) => renames.get(id) ?? id))];
|
|
118
|
+
return typedState;
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region ../../packages/contract/wallet-repo/src/store/persisted-migrations.ts
|
|
122
|
+
/** The migrations of the persisted `wallets` state, by the version they reach. */
|
|
123
|
+
const walletsMigrations = {
|
|
124
|
+
3: setBlockchainNetworkId,
|
|
125
|
+
4: updateMidnightAccountIds,
|
|
126
|
+
5: normalizeHardwareWalletIds
|
|
127
|
+
};
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region ../../packages/contract/wallet-repo/src/store/init.ts
|
|
130
|
+
const walletsReducers = { wallets: repositorySlice.reducer };
|
|
131
|
+
const storeExports = async () => {
|
|
132
|
+
return {
|
|
133
|
+
reducers: walletsReducers,
|
|
134
|
+
persistConfig: { wallets: {
|
|
135
|
+
version: 5,
|
|
136
|
+
migrate: createMigrate(walletsMigrations)
|
|
137
|
+
} }
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
//#endregion
|
|
141
|
+
export { storeExports as default, walletsReducers };
|