@laceio/sdk 0.1.1 → 0.1.2-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{TransactionBuilder-DrB3NVTi.cjs → TransactionBuilder-CCjOn7NA.cjs} +42 -0
- package/dist/{TransactionBuilder-V6aLx4SV.js → TransactionBuilder-CIzdw18M.js} +1 -1
- package/dist/{_polyfill-buffer-patch-BnPVerlG.cjs → _polyfill-buffer-patch-CM8X7JiY.cjs} +21 -2
- package/dist/_polyfill-buffer-patch-yNxN4d5E.js +1467 -0
- package/dist/_web-crypto-random-bytes-Bo-GTcRS.js +197 -0
- package/dist/acc-module-4iIUv6My.cjs +27654 -0
- package/dist/acc-module-Cmj8EsIb.js +27624 -0
- package/dist/account-BOQruszJ.js +6 -0
- package/dist/account-BUOj4pYJ.cjs +11 -0
- package/dist/account-call-7wnopBq0.cjs +5 -0
- package/dist/account-call-B9d_2Xwi.js +4 -0
- package/dist/account-call-Bd4Rpbvt.cjs +323 -0
- package/dist/account-call-C3CkDqEC.js +276 -0
- package/dist/account-guards-BtjTGxDZ.cjs +42 -0
- package/dist/account-guards-D9Lu5T3W.js +36 -0
- package/dist/account-tokens-DvkOFVON.js +16 -0
- package/dist/account-tokens-nwcvwLu4.cjs +21 -0
- package/dist/{activity-type.stable-BJEfeLxL.cjs → activity-type-Ch6ljxBy.cjs} +2 -1
- package/dist/{activity-type.stable-C76_hWd7.js → activity-type-GsJGWs-3.js} +2 -1
- package/dist/address-B9ntKL8K.js +13761 -0
- package/dist/address-BXp-mY8H.cjs +11270 -0
- package/dist/{address-book-address-validator-DIUolI-s.js → address-book-address-validator-0J9XAADH.js} +2 -2
- package/dist/address-book-address-validator-DK0dnsRS.cjs +41 -0
- package/dist/address-book-address-validator-Di_ywo8M.js +39 -0
- package/dist/{address-book-address-validator-DNwQGlOB.cjs → address-book-address-validator-Dte_YQ2L.cjs} +2 -2
- package/dist/artefact-loader-BWWYAD7E.cjs +183 -0
- package/dist/artefact-loader-Dik4HIfv.js +160 -0
- package/dist/auto-dismiss-failure-on-success-C-qoJuid.cjs +37 -0
- package/dist/auto-dismiss-failure-on-success-s8MGDEIu.js +31 -0
- package/dist/bip32-D6wd_QMn.cjs +3851 -0
- package/dist/bitcoin-data-provider-BYPSmuZS.js +21 -0
- package/dist/bitcoin-data-provider-w1oEDSU3.cjs +26 -0
- package/dist/bitcoin.cjs +45 -0
- package/dist/bitcoin.d.ts +29906 -1
- package/dist/bitcoin.js +20 -0
- package/dist/{blockfrost-tx-submit-provider-DPTrapz-.js → blockfrost-tx-submit-provider-CBWQ0wK9.js} +5 -157
- package/dist/{blockfrost-tx-submit-provider-BAIzV5o3.cjs → blockfrost-tx-submit-provider-CLNQ5ycR.cjs} +3 -167
- package/dist/bn-d3nSOIf7.cjs +2553 -0
- package/dist/browser-B1eMbDwh.js +7468 -0
- package/dist/bytes.vo-BB7_4JK6.js +23 -0
- package/dist/bytes.vo-BNRquqaO.cjs +34 -0
- package/dist/cardano-DfPwhwm-.js +3 -0
- package/dist/{cardano-network-id.vo-DSxrFk9S.cjs → cardano-network-id.vo-BEDPn6Li.cjs} +1 -1
- package/dist/{cardano-network-id.vo-CK1tNQDg.js → cardano-network-id.vo-Cfpvbod9.js} +1 -1
- package/dist/cardano.cjs +22 -18
- package/dist/cardano.d.ts +16956 -1716
- package/dist/cardano.js +16 -11
- package/dist/client-DXBLHk7K.cjs +808 -0
- package/dist/codecs-Cswkg7Tm.cjs +4051 -0
- package/dist/codecs-Dc1Krpbt.js +3903 -0
- package/dist/{const-C84qHkjp.js → const-BJfIK_G-.js} +4 -4
- package/dist/const-BhYOdznB.cjs +42 -0
- package/dist/const-BsnjG2_Q.cjs +32071 -0
- package/dist/const-CUnCl5U0.js +13 -0
- package/dist/{const-DXk2tFyv.js → const-CjmfjBP3.js} +1 -1
- package/dist/{const-BDEg2Trq.cjs → const-D-eZIS4n.cjs} +4 -4
- package/dist/const-D0CbQlo4.js +154 -0
- package/dist/{const-BY8B3_0_.cjs → const-iwzZEE_w.cjs} +1 -1
- package/dist/contract-1R86jhSw.js +171 -0
- package/dist/contract-MKLzYVkW.cjs +189 -0
- package/dist/create-add-accounts-Brqk84vF.js +102 -0
- package/dist/create-add-accounts-DzXIh7Ot.cjs +114 -0
- package/dist/{delegation-tx-builder-CRpLP6jH.cjs → delegation-tx-builder-CCjiakoy.cjs} +6 -6
- package/dist/{delegation-tx-builder-CGVqlaFE.js → delegation-tx-builder-DZFjHDS8.js} +5 -5
- package/dist/{deregistration-tx-builder-B-CrUyX6.js → deregistration-tx-builder-Bf6xAYp4.js} +5 -5
- package/dist/{deregistration-tx-builder-DZGwB4cz.cjs → deregistration-tx-builder-CQP35yex.cjs} +6 -6
- package/dist/device-commitment-hex.vo-5wFtQvDS.js +26 -0
- package/dist/device-commitment-hex.vo-CT3RmAug.cjs +31 -0
- package/dist/device-readers-CUHYoYOH.js +145 -0
- package/dist/device-readers-CdxS2btd.cjs +168 -0
- package/dist/device-readers-D_JZeNL2.cjs +8 -0
- package/dist/device-readers-DwSNCGPP.js +4 -0
- package/dist/dist-BMi5ZjEq.cjs +43175 -0
- package/dist/dist-BtIq4XFn.cjs +535 -0
- package/dist/dist-C3SHC_Ho.cjs +1394 -0
- package/dist/dist-CykEjYEX.cjs +3814 -0
- package/dist/dist-Dcsxh3be.cjs +3452 -0
- package/dist/dist-DqJfSlTd.cjs +4413 -0
- package/dist/dist-nTZ70qj7.cjs +1306 -0
- package/dist/{earn-rewards-tx-builder-BDbTDZmD.js → earn-rewards-tx-builder-Bsga3yFb.js} +5 -5
- package/dist/{earn-rewards-tx-builder-D5sUT5v8.cjs → earn-rewards-tx-builder-GuxofYns.cjs} +6 -6
- package/dist/enc-key-circuits-B7BjgUL9.js +13 -0
- package/dist/enc-key-circuits-BLrZrBVI.cjs +24 -0
- package/dist/english-Byb9M0E_.cjs +2057 -0
- package/dist/envelopes-BGoO_v8m.js +1621 -0
- package/dist/envelopes-CH25R-DN.cjs +1722 -0
- package/dist/errors-BIftM8ZN.cjs +688 -0
- package/dist/errors-DSq5wUwt.js +466 -0
- package/dist/esm-HBSUQw3w.js +384 -0
- package/dist/esm-LZuaZjMf.cjs +389 -0
- package/dist/experimental.cjs +7349 -0
- package/dist/experimental.d.ts +86273 -0
- package/dist/experimental.js +7184 -0
- package/dist/gated-call-CDCVZIK-.cjs +5 -0
- package/dist/gated-call-D-tT7P_t.js +722 -0
- package/dist/gated-call-D_VT2quk.js +4 -0
- package/dist/gated-call-DgJm1Mi_.cjs +787 -0
- package/dist/grant-circuits-DswmW3nI.cjs +71 -0
- package/dist/grant-circuits-Jxb5y1HW.js +42 -0
- package/dist/grant-rules-By07_eDi.js +6824 -0
- package/dist/grant-rules-BzVTWXS7.cjs +7099 -0
- package/dist/grant-spend-B3Md9L0n.js +215 -0
- package/dist/grant-spend-oWmzRsjH.cjs +217 -0
- package/dist/grant-status-B2y49iIu.js +2688 -0
- package/dist/grant-status-DOr3t_u8.cjs +2820 -0
- package/dist/grants-2BZ-qEVQ.js +5 -0
- package/dist/grants-BPoLSiMt.cjs +18 -0
- package/dist/grants-BoI5uwSF.cjs +272 -0
- package/dist/grants-CtofFu-e.js +213 -0
- package/dist/{group-cardano-addresses-by-account-B533oVXR.cjs → group-cardano-addresses-by-account-Bp0g4wEY.cjs} +3 -39
- package/dist/{group-cardano-addresses-by-account-RHKoEskR.js → group-cardano-addresses-by-account-SR8MMrZf.js} +5 -35
- package/dist/{guarded-transaction-signer-Bxl6_XNd.cjs → guarded-transaction-signer-MFpPg98D.cjs} +17 -18
- package/dist/{guarded-transaction-signer-CpKLj8Kp.js → guarded-transaction-signer-P6Rp1faj.js} +8 -15
- package/dist/hex-D9ITYbwt.cjs +263 -0
- package/dist/hex-mkXcV3pN.js +191 -0
- package/dist/http-client-B3N-TMxu.cjs +167 -0
- package/dist/http-client-TRlhDZGh.js +155 -0
- package/dist/identity-BMLuufva.cjs +263 -0
- package/dist/identity-DII6f-h7.js +233 -0
- package/dist/in-memory-wallet-integration-B2xzxORj.cjs +20741 -0
- package/dist/in-memory-wallet-integration-CBRiPjLO.js +130 -0
- package/dist/in-memory-wallet-integration-CULUB5Tf.cjs +240 -0
- package/dist/{in-memory-wallet-integration-D-qn65Kx.js → in-memory-wallet-integration-ChIOirMW.js} +5 -2
- package/dist/{in-memory-wallet-integration-Croiuopx.js → in-memory-wallet-integration-CljprQQV.js} +7 -104
- package/dist/{in-memory-wallet-integration-DVh9sRXa.cjs → in-memory-wallet-integration-Cm6P8sk6.cjs} +3 -2
- package/dist/in-memory-wallet-integration-TM9bBphA.js +20738 -0
- package/dist/{in-memory-wallet-integration-CnLYeX4-.cjs → in-memory-wallet-integration-t9I00R_V.cjs} +17 -108
- package/dist/index.cjs +84 -47
- package/dist/index.d.ts +37496 -10033
- package/dist/index.js +52 -24
- package/dist/{init-CLHuAMB-.js → init-0zzs9aqU.js} +4 -4
- package/dist/{init-U8c9yHYx.cjs → init-5KcGcBb5.cjs} +1 -1
- package/dist/init-8v_n8boO.js +1177 -0
- package/dist/{init-CigestoM.js → init-B3-1ghyx.js} +2 -2
- package/dist/init-B8U3ABhS.cjs +107 -0
- package/dist/init-BJn-8_hf.js +141 -0
- package/dist/init-BPU3j8sT.cjs +6 -0
- package/dist/init-BRzH6xu-2.cjs +2797 -0
- package/dist/init-BmzfDaKL.js +1142 -0
- package/dist/{init-C-jErzp5.cjs → init-BopV9ed4.cjs} +2 -2
- package/dist/init-BpHTq2R5.js +105 -0
- package/dist/init-BpSITBfF.js +39 -0
- package/dist/{init-DX4WyB0R.cjs → init-BrdVzxei.cjs} +3 -3
- package/dist/{init-LfyMo-sS.cjs → init-BwkU0ruo.cjs} +2 -2
- package/dist/{init-CB__aLD7.cjs → init-C-G32J12.cjs} +2 -2
- package/dist/init-C00gw1zi.js +422 -0
- package/dist/{init-TkPq_Ny_.js → init-C2RgrfZe.js} +1 -1
- package/dist/{init-DcYY6zMD.js → init-C8URA2OX.js} +1 -1
- package/dist/init-CDkRynJa.js +2796 -0
- package/dist/{init-Cg9XdAru.js → init-CNM5m7M2.js} +4 -4
- package/dist/init-CR7BfztQ.cjs +18 -0
- package/dist/{init-CSHwHnfg.cjs → init-CSDpdu0Q.cjs} +2 -2
- package/dist/{init-aJHl-7AO.js → init-CX0AMQUn.js} +2 -2
- package/dist/{init-FMGDET-9.js → init-CfTbSEKy.js} +259 -60
- package/dist/{init-CR6tpw1B.js → init-Cigr_tKx.js} +47 -43
- package/dist/init-CuW7rHNA.js +3584 -0
- package/dist/{init-CFYsq82V.js → init-CyAY4Lzl.js} +1 -1
- package/dist/init-Cz0rz5fU.cjs +3585 -0
- package/dist/{init-BKhH6mVR.cjs → init-D6BxBs7e.cjs} +1 -1
- package/dist/init-D8OeObDF.cjs +1141 -0
- package/dist/init-D9g1HXYf.cjs +40 -0
- package/dist/{init-CNLGJJRx.js → init-DA7zmptx.js} +1 -1
- package/dist/{init-DkIc5nqF.cjs → init-DFMiP2ZH.cjs} +1 -1
- package/dist/{init-zSzCjoor.js → init-DFjT8YvT.js} +4 -4
- package/dist/init-DGjXwWs2.cjs +143 -0
- package/dist/init-DHrCbpkW.cjs +121 -0
- package/dist/{init-B64zCLxG.cjs → init-DUF4ar8P.cjs} +4 -4
- package/dist/init-DlqJuHhl.js +119 -0
- package/dist/{init-y2Ra0vZP.js → init-Dnsv155v.js} +3 -3
- package/dist/init-DrRdf5sZ.cjs +1176 -0
- package/dist/init-DuYENxci.js +17 -0
- package/dist/{init-D6DBUsD3.cjs → init-Dv3zKj0r.cjs} +4 -4
- package/dist/{init-BtzMZ7Pk.cjs → init-Dy-05ktr.cjs} +1 -1
- package/dist/{init-BsCBAGWf.cjs → init-EP0CUWNK.cjs} +2 -2
- package/dist/{init-BJVU54pI.cjs → init-EhzD7a8i.cjs} +1 -1
- package/dist/{init-w9GEs73W.js → init-Fw89ZmrR.js} +2 -2
- package/dist/init-GsT2AEa4.cjs +424 -0
- package/dist/{init-Rxohwpmu.js → init-NCjgwCZy.js} +2 -2
- package/dist/{init-DxUHsN53.cjs → init-NdhG_VrF.cjs} +6 -6
- package/dist/{init-DDdhguVC.js → init-SZ01tARX2.js} +2 -2
- package/dist/{init-BAJJzBza.js → init-Y3mkB4XS.js} +2 -2
- package/dist/init-c4l6r-o-.js +5 -0
- package/dist/{init-Dku4b2lG.js → init-kEfUTuG2.js} +1 -1
- package/dist/{init-C7IeJwQR.cjs → init-lzHt4Cli.cjs} +256 -59
- package/dist/{init-anYu6XB7.cjs → init-rmt7-fQE.cjs} +2 -2
- package/dist/{init-C4Bkib9u.cjs → init-zU-_9Gsp.cjs} +67 -65
- package/dist/{is-retriable-error-BU0e3hVI.js → is-retriable-error-BUiVJDwH.js} +1 -1
- package/dist/{is-retriable-error-CeeuHqDa.cjs → is-retriable-error-Dpt860if.cjs} +1 -1
- package/dist/jubjub-authoriser-D7zDXu3V.js +86 -0
- package/dist/jubjub-authoriser-Dgu6o3Sv.cjs +87 -0
- package/dist/key-source-5oUBFiC7.cjs +583 -0
- package/dist/key-source-B08HukZg.js +2550 -0
- package/dist/keyDerivation-D3k9XyHg.js +4077 -0
- package/dist/keyDerivation-u0nBA93T.cjs +274 -0
- package/dist/{lace-context-CZcNHr4M.js → lace-context-BZciB9c7.js} +4 -4
- package/dist/{lace-context-fJTDghdp.cjs → lace-context-DgR6vLli.cjs} +4 -4
- package/dist/lib--iqvW4O_.js +2354 -0
- package/dist/lib-Yk6Upl5D.cjs +2359 -0
- package/dist/{libsodium-wrappers-UH0LaOUE.js → libsodium-wrappers-BhbOA8dQ.js} +3 -1647
- package/dist/midnight-account-id.vo-0x9X-r3l.cjs +10 -0
- package/dist/midnight-account-id.vo-DjCAGcqc.js +5 -0
- package/dist/midnight-engine-DpemplKO.js +5 -0
- package/dist/midnight-engine-xU1wotne.cjs +6 -0
- package/dist/midnight-wallet-DIsAlSn6.js +18 -0
- package/dist/midnight-wallet-XTZc2li7.cjs +24 -0
- package/dist/midnight.cjs +1408 -0
- package/dist/midnight.d.ts +28934 -0
- package/dist/midnight.js +1352 -0
- package/dist/modules-cardano-B1nDUWqy.js +995 -0
- package/dist/modules-cardano-BYeYHrRm.cjs +1108 -0
- package/dist/node-relay-DWe1U0w2.cjs +49 -0
- package/dist/node-relay-h4i5IlAQ.js +48 -0
- package/dist/outputs-Bd2yZVjx.js +720 -0
- package/dist/outputs-CJoQBIA2.cjs +990 -0
- package/dist/pbkdf2-CIW-oWrm.cjs +1337 -0
- package/dist/pending-operation-B0_P78Jo.cjs +26 -0
- package/dist/pending-operation-BIS6mpjB.js +21 -0
- package/dist/providers-FjhM47BH.cjs +388 -0
- package/dist/providers-WtiSuxFu.js +365 -0
- package/dist/redacted-BmE2aXqr.js +81 -0
- package/dist/redacted-CRZJLS3w.cjs +86 -0
- package/dist/{retry-config-DC5IMaH7.cjs → retry-config-BaCfVC1H.cjs} +1 -1
- package/dist/{retry-config-BcUmMS--.js → retry-config-Dmgt28wM.js} +1 -1
- package/dist/safe-buffer-B_vMqJWU.js +43 -0
- package/dist/safe-buffer-DYOwEfHB.cjs +48 -0
- package/dist/sdk-Cb-gZnS9.js +1241 -0
- package/dist/sdk-DffwmX8b.cjs +1439 -0
- package/dist/sdk-init-Bln9rFtn.js +4138 -0
- package/dist/sdk-init-CYViTJY_.cjs +3841 -0
- package/dist/{seam-cardano-CATqBEyK.js → seam-cardano-B_etH4F4.js} +1 -1
- package/dist/{bytes.vo-TgiwogWF.js → secret-box-DUR0ACYz.js} +3 -25
- package/dist/{bytes.vo-Ck5u40RA.cjs → secret-box-DrjLZuS1.cjs} +1 -35
- package/dist/send-proof-progress-C-ljq1x5.js +30 -0
- package/dist/send-proof-progress-vmsaSfbz.cjs +47 -0
- package/dist/side-effects-BnqYz7Nl.js +768 -0
- package/dist/side-effects-CngaeXi0.cjs +804 -0
- package/dist/sign-bitcoin-transaction-with-seed-D4z62-jV.js +147 -0
- package/dist/sign-bitcoin-transaction-with-seed-DsLYXnCY.cjs +158 -0
- package/dist/signer-3fk8lZtE.cjs +7 -0
- package/dist/signer-CsL28DrK.cjs +121 -0
- package/dist/signer-DGluibtn.js +92 -0
- package/dist/signer-RqB5pu3K.js +2 -0
- package/dist/signer-factory-BA7WFJVZ.js +282 -0
- package/dist/signer-factory-Cwd6o-lG.cjs +281 -0
- package/dist/{signer-factory-9URFliA5.js → signer-factory-DObB55D4.js} +6 -3
- package/dist/signer-factory-DhZiE03y.cjs +149 -0
- package/dist/{signer-factory-BWGUmnvm.cjs → signer-factory-Ds6G2AZk.cjs} +4 -3
- package/dist/signer-factory-hzSRaIw2.js +148 -0
- package/dist/{slice-CuHUaPZx.cjs → slice-7G2xxYKJ.cjs} +3 -3
- package/dist/{slice-DZmQJNV8.cjs → slice-B4CdYoPu.cjs} +2 -2
- package/dist/slice-BPNuHKfw.js +9091 -0
- package/dist/{slice-DGcNrbPR.cjs → slice-Bg6HEr3K.cjs} +4 -4
- package/dist/{slice-DtaO72qY.cjs → slice-Bs2aMERu.cjs} +3 -3
- package/dist/{slice-HeHCv3bl.cjs → slice-C34iOOUH.cjs} +7 -7
- package/dist/{slice-Do2R2CYW.cjs → slice-C9TT5KhY.cjs} +6 -6
- package/dist/{slice-eIwcwKHI.js → slice-CK07EBCo.js} +4 -4
- package/dist/{slice-CnyWevM9.js → slice-CU80pbiu.js} +3 -3
- package/dist/{slice-CobanYgn.js → slice-CwyYrh1H.js} +2 -2
- package/dist/slice-Czfp6t84.cjs +436 -0
- package/dist/{slice-d0p6-xj5.js → slice-D-9aPKG-.js} +6 -6
- package/dist/{slice-maaskdUn.js → slice-DBpJ2QGf.js} +6 -6
- package/dist/{slice-mxLQ_FeY.cjs → slice-DTZTiJle.cjs} +352 -39
- package/dist/{slice-zJ9XVYjZ.js → slice-Da426sf9.js} +1 -1
- package/dist/{slice-D11m2EKl.cjs → slice-DayJvMRD.cjs} +1 -1
- package/dist/slice-DnBWfA-k.cjs +9109 -0
- package/dist/{slice-oqm_r1cS.cjs → slice-DnG-yvpI.cjs} +2 -2
- package/dist/{slice-BNu73oBa.js → slice-DyNs7oWp.js} +2 -2
- package/dist/{slice-CB4SnzMm.js → slice-GwiiJRoq.js} +3 -3
- package/dist/slice-oWnc7YVD.js +412 -0
- package/dist/{slice-B2PhoWAg.js → slice-qt0uBExh.js} +325 -37
- package/dist/slice-t8Gzj55G2.cjs +106 -0
- package/dist/slice-t8Q1cHm-.js +88 -0
- package/dist/src-BDzYIksE.cjs +20637 -0
- package/dist/src-BFoefPv_.js +20755 -0
- package/dist/store-B1Lq3cEf.cjs +66 -0
- package/dist/store-DuBG8qh5.js +37 -0
- package/dist/submit-Bs77dPn_.cjs +413 -0
- package/dist/submit-DOv8Z0Vf.js +336 -0
- package/dist/submit-bitcoin-tx-D6oYgH5S.js +983 -0
- package/dist/submit-bitcoin-tx-goFuRL7K.cjs +1049 -0
- package/dist/{sync-operation-utils-BYXLO80m.js → sync-operation-utils-31iFLExW.js} +2 -38
- package/dist/{sync-operation-utils-SdPbwFoD.cjs → sync-operation-utils-COIZ66-I.cjs} +1 -67
- package/dist/token-id-mapper-Bnds3xKH.cjs +18 -0
- package/dist/{token-id-mapper-DsPAL6Nh.cjs → token-id-mapper-CVyQJUKY.cjs} +2 -2
- package/dist/token-id-mapper-CnKHQ8DV.js +16 -0
- package/dist/{token-id-mapper-B2ivlLv3.js → token-id-mapper-D29Ggv8h.js} +2 -2
- package/dist/tokens-Cevp7rdU.cjs +62 -0
- package/dist/tokens-Diw4MLRM.js +44 -0
- package/dist/types-B8uiJn-X.js +12 -0
- package/dist/types-BHC12eSa.js +33 -0
- package/dist/types-CJT6XF2c.js +10 -0
- package/dist/types-CLRUYpfe.cjs +23 -0
- package/dist/types-Cc3mC8u0.cjs +50 -0
- package/dist/types-DWbVZpnF.cjs +15 -0
- package/dist/unwrap-provider-result-BZSiwabU.js +32 -0
- package/dist/unwrap-provider-result-ZqfBsTkk.cjs +39 -0
- package/dist/{util-CGzqQ8IV.cjs → util-Bu4W5lF4.cjs} +1 -1
- package/dist/{util-BaLzwa32.js → util-Cp5cZkfK.js} +1 -1
- package/dist/{utils-o8aMjfln.js → utils-BfBEUvWA.js} +2 -2
- package/dist/utils-DFwzEvbv.js +65 -0
- package/dist/{utils-5JvjbqH3.cjs → utils-DsElZgCI.cjs} +7 -1
- package/dist/utils-IXxR-Djh.cjs +112 -0
- package/dist/v8Signatures-CO_Uloy7.cjs +71 -0
- package/dist/{vote-delegation-tx-builder-BpEMSti4.cjs → vote-delegation-tx-builder-BUg1S2Ep.cjs} +6 -6
- package/dist/{vote-delegation-tx-builder-CmKv6GoG.js → vote-delegation-tx-builder-C6FiS7zI.js} +5 -5
- package/dist/watch-CUEvcP-V.js +21997 -0
- package/dist/watch-DMF2s-II.cjs +52281 -0
- package/package.json +96 -4
- package/dist/account-guards.stable-B1DSSh9D.cjs +0 -10
- package/dist/account-guards.stable-JRQ5qx2V.js +0 -5
- package/dist/codecs-B7X9pAsK.cjs +0 -1945
- package/dist/codecs-CC1Xjntz.js +0 -1882
- package/dist/init-Bv53hpLM.js +0 -19
- package/dist/init-CRbjI7p1.js +0 -3494
- package/dist/init-DAna1KCg.cjs +0 -3495
- package/dist/init-DGe47B22.cjs +0 -364
- package/dist/init-DMtyvYfC.cjs +0 -21
- package/dist/init-TkPDD750.js +0 -363
- package/dist/modules-cardano-BDvuL4Xx.js +0 -5248
- package/dist/modules-cardano-D2G3De2P.cjs +0 -5432
- package/dist/slice-CGVHXHDt.cjs +0 -125
- package/dist/slice-DhvF7L6X.js +0 -107
- /package/dist/{account-id.vo-LvCBVn5r.cjs → account-id.vo-DwqFjK5u.cjs} +0 -0
- /package/dist/{account-id.vo-MYSI7YFm.js → account-id.vo-OPz2v-JZ.js} +0 -0
- /package/dist/{actions-DdGbj7c7.cjs → actions-B2BJ4RTy.cjs} +0 -0
- /package/dist/{actions-9QSQR-GB.js → actions-iLXdgL5Y.js} +0 -0
- /package/dist/{apply-vkey-witnesses-ClZbpk5w.js → apply-vkey-witnesses-BKx3lcs0.js} +0 -0
- /package/dist/{apply-vkey-witnesses-CLzVSWxl.cjs → apply-vkey-witnesses-ZnFS0jnJ.cjs} +0 -0
- /package/dist/{asyncoption-Cw07zPH7.js → asyncoption-CruEYOBI.js} +0 -0
- /package/dist/{asyncoption-DYoGuQfP.cjs → asyncoption-i0VbqVTq.cjs} +0 -0
- /package/dist/{bignum.vo-B0rK_PQ1.js → bignum.vo-CEXOIew0.js} +0 -0
- /package/dist/{bignum.vo-DsG3kNiZ.cjs → bignum.vo-hx2kuqlA.cjs} +0 -0
- /package/dist/{bip32ed25519-1ApqeAZk.cjs → bip32ed25519-B7Yat217.cjs} +0 -0
- /package/dist/{bip32ed25519-DetAdGwD.js → bip32ed25519-FQ8qvdcq.js} +0 -0
- /package/dist/{blake2b-DOEVc57D.js → blake2b-BiQTw3GC.js} +0 -0
- /package/dist/{blake2b-B9tftbvG.cjs → blake2b-DEeVUdKR.cjs} +0 -0
- /package/dist/{blockchain-network-id.vo-BXpZhvvQ.cjs → blockchain-network-id.vo-BAKEwGjG.cjs} +0 -0
- /package/dist/{blockchain-network-id.vo-DNRkuT5B.js → blockchain-network-id.vo-CiVykuqG.js} +0 -0
- /package/dist/{blockingWithLatestFrom-C5wp_uA-.js → blockingWithLatestFrom-Cd8c8EPG.js} +0 -0
- /package/dist/{blockingWithLatestFrom-DY8OPg0w.cjs → blockingWithLatestFrom-D8kBPBMX.cjs} +0 -0
- /package/dist/{cardano-network-id-to-network-type-CrZfUcyP.js → cardano-network-id-to-network-type-BWwzeEtM.js} +0 -0
- /package/dist/{cardano-network-id-to-network-type-BDTF-HmK.cjs → cardano-network-id-to-network-type-C0ufJOyE.cjs} +0 -0
- /package/dist/{cardano-tx-id.vo-BPhV-AmZ.cjs → cardano-tx-id.vo-TLjJZHCI.cjs} +0 -0
- /package/dist/{cardano-tx-id.vo-DF9NzZXk.js → cardano-tx-id.vo-eVnKuzlm.js} +0 -0
- /package/dist/{composite-signer-factory-_46QsNBz.js → composite-signer-factory-CR8YHA1y.js} +0 -0
- /package/dist/{composite-signer-factory-BpF1mIYA.cjs → composite-signer-factory-m5cVs9h_.cjs} +0 -0
- /package/dist/{error-CNIquqT5.cjs → error-Cb3EnD0u.cjs} +0 -0
- /package/dist/{error-BCp9NkPi.js → error-DIZOY2Lw.js} +0 -0
- /package/dist/{esm-browser-C93Q-EOI.js → esm-browser-MG97cre9.js} +0 -0
- /package/dist/{esm-browser-DTc9IK3D.cjs → esm-browser-bweqfBlL.cjs} +0 -0
- /package/dist/{feature-flag-key.vo-ofrB6ZVQ.js → feature-flag-key.vo-DN_-4-sG.js} +0 -0
- /package/dist/{feature-flag-key.vo-BPz-ZAp6.cjs → feature-flag-key.vo-RlfHL3hq.cjs} +0 -0
- /package/dist/{first-state-of-status-OROkXcRv.cjs → first-state-of-status-CbT7hPa4.cjs} +0 -0
- /package/dist/{first-state-of-status-DQnMT3ya.js → first-state-of-status-unPynOuM.js} +0 -0
- /package/dist/{init-Es3wHW7D.js → init-829HRYcz.js} +0 -0
- /package/dist/{init-CKipPE_c.js → init-A-VyGSNW2.js} +0 -0
- /package/dist/{init-DFQQ9dTW.cjs → init-Atisw4x2.cjs} +0 -0
- /package/dist/{init-C5CEZ1m0.cjs → init-BFcvPHL-.cjs} +0 -0
- /package/dist/{init-IAk_CkGa.cjs → init-BgNobbNq.cjs} +0 -0
- /package/dist/{init-cqN3uX2j.js → init-atCFur0v.js} +0 -0
- /package/dist/{is-redux-persist-state-CTn3WZVh.cjs → is-redux-persist-state-BCFnSm36.cjs} +0 -0
- /package/dist/{is-redux-persist-state-Cxcd0_bM.js → is-redux-persist-state-yBfq0h_E.js} +0 -0
- /package/dist/{key-value-store-8cMzeNyG.js → key-value-store--W3SrMaw.js} +0 -0
- /package/dist/{key-value-store-DUAepXQf.cjs → key-value-store-C2Xt5Emp.cjs} +0 -0
- /package/dist/{repo-slice-WxetRhMY.cjs → repo-slice-7X4AYYVm.cjs} +0 -0
- /package/dist/{repo-slice-DwyMhCR1.js → repo-slice-RxFm0zDZ.js} +0 -0
- /package/dist/{reselect-CRDqmQY9.cjs → reselect-Bd94u0K-.cjs} +0 -0
- /package/dist/{reselect-C06X06oX.js → reselect-CGoLzEPv.js} +0 -0
- /package/dist/{serializable-B8GahgE1.js → serializable-BHdKIgk3.js} +0 -0
- /package/dist/{serializable-CRdnFaLZ.cjs → serializable-BxHkoPdk.cjs} +0 -0
- /package/dist/{slice-D11FHQuQ.cjs → slice-BiRsDKOK.cjs} +0 -0
- /package/dist/{slice-Be7hj4Iy.js → slice-Bk0Sv05J.js} +0 -0
- /package/dist/{slice-FioKeHtA.cjs → slice-Dqw1ecum.cjs} +0 -0
- /package/dist/{slice-B87b52iM.js → slice-obCSLm1x.js} +0 -0
- /package/dist/{src-vq1wS9sZ.js → src-BlxEp6Mm.js} +0 -0
- /package/dist/{src-BTPIvlDI.cjs → src-Cqp0B2M_.cjs} +0 -0
- /package/dist/{time.vo-CQ8pSXz2.cjs → time.vo-D3wWRw9L.cjs} +0 -0
- /package/dist/{time.vo-DkYYGYp6.js → time.vo-tNheinXm.js} +0 -0
- /package/dist/{toEmpty-CgAl3097.js → toEmpty-8Zax1MPd.js} +0 -0
- /package/dist/{toEmpty-DAMmNB5r.cjs → toEmpty-CYAbupM4.cjs} +0 -0
- /package/dist/{token-id.vo-ClsroxHO.js → token-id.vo-Bvwhr3ZE.js} +0 -0
- /package/dist/{token-id.vo-BxG9TG0O.cjs → token-id.vo-DXv5uS9n.cjs} +0 -0
- /package/dist/{util-DxzlYNS5.js → util-C8a4fA9p.js} +0 -0
- /package/dist/{util-CmdAhheh.cjs → util-CzeB3hfa.cjs} +0 -0
- /package/dist/{util-selector-CcK-GAdE.js → util-selector-BSTsxgne.js} +0 -0
- /package/dist/{util-selector-BcAncU4L.cjs → util-selector-BWPH68_l.cjs} +0 -0
- /package/dist/{while-active-BpppWuCs.js → while-active-B0lWy_6l.js} +0 -0
- /package/dist/{while-active-Dhc2LwOm.cjs → while-active-Dsowp0Fi.cjs} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { s as BitcoinNetworkId } from "./address-B9ntKL8K.js";
|
|
2
|
+
import { t as TokenId } from "./token-id.vo-Bvwhr3ZE.js";
|
|
3
|
+
import { n as BitcoinNetwork } from "./types-B8uiJn-X.js";
|
|
4
|
+
//#region ../../packages/contract/bitcoin-context/src/const.ts
|
|
5
|
+
/** Enables Bitcoin accounts: the Bitcoin chain and provider modules load with it. */
|
|
6
|
+
const BITCOIN_FEATURE_FLAG = "BLOCKCHAIN_BITCOIN";
|
|
7
|
+
/** Enables Bitcoin fee rate estimates from mempool.space. */
|
|
8
|
+
const BITCOIN_MEMPOOL_FEE_MARKET_FEATURE_FLAG = "BITCOIN_MEMPOOL_FEE_MARKET";
|
|
9
|
+
const BITCOIN_TOKEN_ID = TokenId("bitcoin");
|
|
10
|
+
const allSupportedNetworks = [BitcoinNetwork.Mainnet, BitcoinNetwork.Testnet];
|
|
11
|
+
const supportedNetworkIds = new Map(allSupportedNetworks.map((network) => [BitcoinNetworkId(network), network]));
|
|
12
|
+
//#endregion
|
|
13
|
+
export { supportedNetworkIds as a, allSupportedNetworks as i, BITCOIN_MEMPOOL_FEE_MARKET_FEATURE_FLAG as n, BITCOIN_TOKEN_ID as r, BITCOIN_FEATURE_FLAG as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as FeatureFlagKey } from "./feature-flag-key.vo-
|
|
1
|
+
import { t as FeatureFlagKey } from "./feature-flag-key.vo-DN_-4-sG.js";
|
|
2
2
|
//#region ../../packages/contract/network/src/const.ts
|
|
3
3
|
/**
|
|
4
4
|
* Sets the network type a new wallet starts on: its payload is `'mainnet'` or
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require("./rolldown-runtime-Br2OG8yv.cjs");
|
|
2
|
-
const require_time_vo = require("./time.vo-
|
|
3
|
-
const require_feature_flag_key_vo = require("./feature-flag-key.vo-
|
|
4
|
-
const require_token_id_vo = require("./token-id.vo-
|
|
5
|
-
const require_cardano_network_id_vo = require("./cardano-network-id.vo-
|
|
2
|
+
const require_time_vo = require("./time.vo-D3wWRw9L.cjs");
|
|
3
|
+
const require_feature_flag_key_vo = require("./feature-flag-key.vo-RlfHL3hq.cjs");
|
|
4
|
+
const require_token_id_vo = require("./token-id.vo-DXv5uS9n.cjs");
|
|
5
|
+
const require_cardano_network_id_vo = require("./cardano-network-id.vo-BEDPn6Li.cjs");
|
|
6
6
|
let _laceio_cardano_core = require("@laceio/cardano/core");
|
|
7
7
|
//#region ../../packages/contract/cardano-context/src/const.ts
|
|
8
8
|
/**
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { t as FeatureFlagKey } from "./feature-flag-key.vo-DN_-4-sG.js";
|
|
2
|
+
import { t as BlockchainNetworkId } from "./blockchain-network-id.vo-CiVykuqG.js";
|
|
3
|
+
import { NetworkId } from "@midnightntwrk/wallet-sdk-abstractions";
|
|
4
|
+
//#region ../../packages/lib/vendor/src/midnight-proof-servers.ts
|
|
5
|
+
/**
|
|
6
|
+
* Stable identity for a mode — what we compare to decide if two selections
|
|
7
|
+
* refer to the same option (e.g. for radio-button highlighting and for
|
|
8
|
+
* deciding whether the user's pick differs from the default).
|
|
9
|
+
*
|
|
10
|
+
* Labels/descriptions are denormalised metadata; they may drift across
|
|
11
|
+
* application updates, so identity is keyed on `kind` + `url`/`pairingId`.
|
|
12
|
+
*/
|
|
13
|
+
const isSameProofServerMode = (a, b) => {
|
|
14
|
+
if (a.kind !== b.kind) return false;
|
|
15
|
+
switch (a.kind) {
|
|
16
|
+
case "in-process": return true;
|
|
17
|
+
case "local-host": return a.url === b.url;
|
|
18
|
+
case "paired-device": {
|
|
19
|
+
const right = b;
|
|
20
|
+
return a.url === right.url && a.pairingId === right.pairingId;
|
|
21
|
+
}
|
|
22
|
+
case "delegated": return a.url === b.url;
|
|
23
|
+
case "tee-delegated": return a.url === b.url;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
/** Returns the configured HTTP endpoint, or undefined for in-process proving. */
|
|
27
|
+
const getProofServerEndpoint = (mode) => "url" in mode ? mode.url : void 0;
|
|
28
|
+
const TEMENOS_PREPROD_DEPLOYMENT_MODE = {
|
|
29
|
+
kind: "tee-delegated",
|
|
30
|
+
url: "https://api.proofserver.wastedp.io",
|
|
31
|
+
label: "Temenos (remote TEE proof server)",
|
|
32
|
+
descriptionKey: "midnight.proof-server.tee-delegated.description"
|
|
33
|
+
};
|
|
34
|
+
const TEMENOS_MAINNET_DEPLOYMENT_MODE = {
|
|
35
|
+
kind: "tee-delegated",
|
|
36
|
+
url: "https://api.proofserver.mainnet.wastedp.io",
|
|
37
|
+
label: "Temenos (remote TEE proof server)",
|
|
38
|
+
descriptionKey: "midnight.proof-server.tee-delegated.description"
|
|
39
|
+
};
|
|
40
|
+
const TEMENOS_PREVIEW_DEPLOYMENT_MODE = {
|
|
41
|
+
kind: "tee-delegated",
|
|
42
|
+
url: "https://api.proofserver.preview.wastedp.io",
|
|
43
|
+
label: "Temenos (remote TEE proof server)",
|
|
44
|
+
descriptionKey: "midnight.proof-server.tee-delegated.description"
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Contract-visible part of the baked Temenos TEE proof-server config, per
|
|
48
|
+
* network: just enough for `selectAllProofServerModes` to synthesize the
|
|
49
|
+
* settings row without importing module code. The heavyweight attestation
|
|
50
|
+
* config (evidence/Warden endpoints, application id, AMD root certificates)
|
|
51
|
+
* lives in the vendor Temenos driver, keyed by the same network id and
|
|
52
|
+
* cross-checked against this mode's `url` at module load.
|
|
53
|
+
*
|
|
54
|
+
* Values are build-baked and reviewed like code (rotating an endpoint
|
|
55
|
+
* requires a release); the remote feature flag only toggles visibility.
|
|
56
|
+
*/
|
|
57
|
+
const TEMENOS_PROOF_SERVER_MODES = {
|
|
58
|
+
["mainnet"]: TEMENOS_MAINNET_DEPLOYMENT_MODE,
|
|
59
|
+
["preprod"]: TEMENOS_PREPROD_DEPLOYMENT_MODE,
|
|
60
|
+
["preview"]: TEMENOS_PREVIEW_DEPLOYMENT_MODE
|
|
61
|
+
};
|
|
62
|
+
/** Source-controlled ordinary remote providers. Currently empty: the Midnight
|
|
63
|
+
* Foundation service was decommissioned. Keep the selection infrastructure;
|
|
64
|
+
* a feature flag or legacy payload must not resurrect a retired endpoint. */
|
|
65
|
+
const REMOTE_PROOF_SERVER_MODES = {};
|
|
66
|
+
const defaultLocalProofServerMode = {
|
|
67
|
+
kind: "local-host",
|
|
68
|
+
url: "http://localhost:6300"
|
|
69
|
+
};
|
|
70
|
+
/** Refuses unsupported modes and routes recognized TEE hosts only through attestation. */
|
|
71
|
+
const assertProofServerRouting = (mode, hasAttestedProver, hasLocalProver = false) => {
|
|
72
|
+
if (mode.kind === "in-process" && hasLocalProver) return;
|
|
73
|
+
if (mode.kind === "in-process" || mode.kind === "paired-device") throw new Error(`Unsupported Midnight proof server mode "${mode.kind}"`);
|
|
74
|
+
const hostname = new URL(mode.url).hostname.replace(/\.$/, "");
|
|
75
|
+
if (Object.values(TEMENOS_PROOF_SERVER_MODES).some((candidate) => candidate && new URL(candidate.url).hostname.replace(/\.$/, "") === hostname) && mode.kind !== "tee-delegated") throw new Error("Cannot attest a TEE proof server through ordinary HTTP; select tee-delegated");
|
|
76
|
+
if (mode.kind === "tee-delegated" && !hasAttestedProver) throw new Error("Cannot attest Midnight proof server: proof server mode \"tee-delegated\" needs an attested prover");
|
|
77
|
+
};
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region ../../packages/contract/midnight-context/src/value-objects/midnight-network-id.vo.ts
|
|
80
|
+
const MIDNIGHT_NETWORK_PREFIX = "midnight-";
|
|
81
|
+
/** Converts a Midnight network name to its blockchain-qualified identity and back. */
|
|
82
|
+
const MidnightNetworkId = Object.assign((networkId) => BlockchainNetworkId(`${MIDNIGHT_NETWORK_PREFIX}${networkId}`), { getNetworkNameId: (networkId) => networkId?.startsWith(MIDNIGHT_NETWORK_PREFIX) ? networkId.slice(9) : void 0 });
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region ../../packages/contract/midnight-context/src/const.ts
|
|
85
|
+
const FEATURE_FLAG_MIDNIGHT_REMOTE_PROOF_SERVER = FeatureFlagKey("BLOCKCHAIN_MIDNIGHT_REMOTE_PROOF_SERVER");
|
|
86
|
+
const FEATURE_FLAG_MIDNIGHT_INDEXER_URLS = FeatureFlagKey("BLOCKCHAIN_MIDNIGHT_INDEXER_URLS");
|
|
87
|
+
const FEATURE_FLAG_MIDNIGHT_NODE_URLS = FeatureFlagKey("BLOCKCHAIN_MIDNIGHT_NODE_URLS");
|
|
88
|
+
/**
|
|
89
|
+
* Gates the Temenos TEE proof-server option (LW-15081). Boolean gate with
|
|
90
|
+
* no payload by design: all Temenos configuration (endpoints, trust
|
|
91
|
+
* anchors) is baked into the build, so the remote flag system controls
|
|
92
|
+
* visibility only and can never inject or alter a TEE entry.
|
|
93
|
+
*/
|
|
94
|
+
const FEATURE_FLAG_MIDNIGHT_TEE_TEMENOS_PROOF_SERVER = FeatureFlagKey("BLOCKCHAIN_MIDNIGHT_TEE_TEMENOS_PROOF_SERVER");
|
|
95
|
+
const defaultTxTtlLength = 3600 * 1e3;
|
|
96
|
+
/** The Midnight networks, keyed by name. */
|
|
97
|
+
const MidnightSDKNetworkIds = NetworkId.NetworkId;
|
|
98
|
+
/** Every Midnight network id. */
|
|
99
|
+
const MidnightSDKNetworkId = Object.values(MidnightSDKNetworkIds);
|
|
100
|
+
const supportedNetworkIds = new Map(MidnightSDKNetworkId.map((id) => [MidnightNetworkId(id), id]));
|
|
101
|
+
const MidnightSDKTestNetworkId = MidnightSDKNetworkId.filter((id) => id !== "mainnet");
|
|
102
|
+
const DEFAULT_NETWORKS_CONFIG = {
|
|
103
|
+
[NetworkId.NetworkId.Undeployed]: {
|
|
104
|
+
nodeAddress: "http://localhost:9944",
|
|
105
|
+
proofServer: defaultLocalProofServerMode,
|
|
106
|
+
indexerAddress: "http://localhost:8088/api/v4/graphql"
|
|
107
|
+
},
|
|
108
|
+
[NetworkId.NetworkId.MainNet]: {
|
|
109
|
+
nodeAddress: "https://blockfrost.lw.iog.io/midnight-mainnet-rpc/",
|
|
110
|
+
proofServer: defaultLocalProofServerMode,
|
|
111
|
+
indexerAddress: "https://blockfrost.lw.iog.io/midnight-mainnet/"
|
|
112
|
+
},
|
|
113
|
+
[NetworkId.NetworkId.PreProd]: {
|
|
114
|
+
nodeAddress: "https://blockfrost.lw.iog.io/midnight-preprod-rpc/",
|
|
115
|
+
proofServer: defaultLocalProofServerMode,
|
|
116
|
+
indexerAddress: "https://blockfrost.lw.iog.io/midnight-preprod/"
|
|
117
|
+
},
|
|
118
|
+
[NetworkId.NetworkId.Preview]: {
|
|
119
|
+
nodeAddress: "https://blockfrost.lw.iog.io/midnight-preview-rpc/",
|
|
120
|
+
proofServer: defaultLocalProofServerMode,
|
|
121
|
+
indexerAddress: "https://blockfrost.lw.iog.io/midnight-preview/"
|
|
122
|
+
},
|
|
123
|
+
[NetworkId.NetworkId.QaNet]: {
|
|
124
|
+
nodeAddress: "https://rpc.qanet.midnight.network",
|
|
125
|
+
proofServer: defaultLocalProofServerMode,
|
|
126
|
+
indexerAddress: "https://indexer.qanet.midnight.network/api/v4/graphql"
|
|
127
|
+
},
|
|
128
|
+
[NetworkId.NetworkId.DevNet]: {
|
|
129
|
+
nodeAddress: "http://localhost:9944",
|
|
130
|
+
proofServer: defaultLocalProofServerMode,
|
|
131
|
+
indexerAddress: "http://localhost:8088/api/v4/graphql"
|
|
132
|
+
},
|
|
133
|
+
[NetworkId.NetworkId.TestNet]: {
|
|
134
|
+
nodeAddress: "http://localhost:9944",
|
|
135
|
+
proofServer: defaultLocalProofServerMode,
|
|
136
|
+
indexerAddress: "http://localhost:8088/api/v4/graphql"
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const EMPTY_PARTIAL_NETWORKS_CONFIG = {
|
|
140
|
+
[NetworkId.NetworkId.Undeployed]: {},
|
|
141
|
+
[NetworkId.NetworkId.MainNet]: {},
|
|
142
|
+
[NetworkId.NetworkId.PreProd]: {},
|
|
143
|
+
[NetworkId.NetworkId.Preview]: {},
|
|
144
|
+
[NetworkId.NetworkId.QaNet]: {},
|
|
145
|
+
[NetworkId.NetworkId.DevNet]: {},
|
|
146
|
+
[NetworkId.NetworkId.TestNet]: {}
|
|
147
|
+
};
|
|
148
|
+
/** The token type of NIGHT, Midnight's native token. */
|
|
149
|
+
const NIGHT_TOKEN_ID = "0000000000000000000000000000000000000000000000000000000000000000";
|
|
150
|
+
const NIGHT_TOKEN_TICKER = "NIGHT";
|
|
151
|
+
const TNIGHT_TOKEN_TICKER = "tNIGHT";
|
|
152
|
+
const NIGHT_ICON = "data:image/png;base64,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";
|
|
153
|
+
//#endregion
|
|
154
|
+
export { isSameProofServerMode as S, REMOTE_PROOF_SERVER_MODES as _, FEATURE_FLAG_MIDNIGHT_REMOTE_PROOF_SERVER as a, defaultLocalProofServerMode as b, MidnightSDKNetworkIds as c, NIGHT_TOKEN_ID as d, NIGHT_TOKEN_TICKER as f, MidnightNetworkId as g, supportedNetworkIds as h, FEATURE_FLAG_MIDNIGHT_NODE_URLS as i, MidnightSDKTestNetworkId as l, defaultTxTtlLength as m, EMPTY_PARTIAL_NETWORKS_CONFIG as n, FEATURE_FLAG_MIDNIGHT_TEE_TEMENOS_PROOF_SERVER as o, TNIGHT_TOKEN_TICKER as p, FEATURE_FLAG_MIDNIGHT_INDEXER_URLS as r, MidnightSDKNetworkId as s, DEFAULT_NETWORKS_CONFIG as t, NIGHT_ICON as u, TEMENOS_PROOF_SERVER_MODES as v, getProofServerEndpoint as x, assertProofServerRouting as y };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* `'testnet'`, or `{ networkType }` with either. The default is `'mainnet'`;
|
|
5
5
|
* once the wallet persists a network type, that one applies.
|
|
6
6
|
*/
|
|
7
|
-
const FEATURE_FLAG_NETWORK_TYPE = require("./feature-flag-key.vo-
|
|
7
|
+
const FEATURE_FLAG_NETWORK_TYPE = require("./feature-flag-key.vo-RlfHL3hq.cjs").FeatureFlagKey("INITIAL_NETWORK_TYPE");
|
|
8
8
|
//#endregion
|
|
9
9
|
Object.defineProperty(exports, "FEATURE_FLAG_NETWORK_TYPE", {
|
|
10
10
|
enumerable: true,
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { A as ContractName, D as storageDependencyContract, O as combineStore, _ as walletActiveStateDependencyContract, k as createMixin, v as tokensStoreContract, w as networkStoreContract, y as syncStoreContract } from "./sdk-Cb-gZnS9.js";
|
|
2
|
+
import { a as inferStoreContext, n as combineContracts, r as inferContractContext } from "./store-DuBG8qh5.js";
|
|
3
|
+
import { t as createSelector } from "./reselect-CGoLzEPv.js";
|
|
4
|
+
import { r as tokensSelectors } from "./slice-DBpJ2QGf.js";
|
|
5
|
+
import { r as addressBookSelectors, t as addressBookActions } from "./slice-obCSLm1x.js";
|
|
6
|
+
import { c as FIAT_CURRENCIES, s as DEFAULT_CURRENCY_PREFERENCE, t as calculatePortfolioValueOverTime } from "./utils-BfBEUvWA.js";
|
|
7
|
+
import { n as tokenPricingActions, t as slice } from "./slice-Da426sf9.js";
|
|
8
|
+
//#region src/lazy-wallet-mismatch-error.ts
|
|
9
|
+
/**
|
|
10
|
+
* The recovery words a lazy vault supplied derive another account key than
|
|
11
|
+
* the one the signing account stores, so nothing was signed.
|
|
12
|
+
*/
|
|
13
|
+
var LazyWalletMismatchError = class extends Error {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("Mnemonic does not match the selected lazy wallet account.");
|
|
16
|
+
this.name = "LazyWalletMismatchError";
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region ../../packages/contract/address-book/src/store/index.ts
|
|
21
|
+
var store_default$1 = inferStoreContext({
|
|
22
|
+
load: async () => import("./init-Y3mkB4XS.js"),
|
|
23
|
+
context: {
|
|
24
|
+
actions: addressBookActions,
|
|
25
|
+
selectors: addressBookSelectors
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region ../../packages/contract/address-book/src/contract.ts
|
|
30
|
+
const addressBookAddressValidatorAddonContract = inferContractContext({
|
|
31
|
+
name: ContractName("address-book-address-validator-addon"),
|
|
32
|
+
instance: "zero-or-more",
|
|
33
|
+
contractType: "addon",
|
|
34
|
+
provides: { addons: ["loadAddressBookAddressValidators"] }
|
|
35
|
+
});
|
|
36
|
+
inferContractContext({
|
|
37
|
+
name: ContractName("address-book-store"),
|
|
38
|
+
contractType: "store",
|
|
39
|
+
instance: "exactly-one",
|
|
40
|
+
mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default$1) }))
|
|
41
|
+
});
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region ../../packages/contract/token-pricing/src/store/selectors.ts
|
|
44
|
+
const EMPTY_PRICE_DATA_POINTS = [];
|
|
45
|
+
const selectHasActivePricingError = createSelector([slice.selectors.selectError, slice.selectors.selectIsPricingStale], (error, isPricingStale) => !!error && isPricingStale);
|
|
46
|
+
const selectTokenPriceHistoryForRange = createSelector(slice.selectors.selectPriceHistory, (_, params) => params, (priceHistory, { priceId, timeRange }) => {
|
|
47
|
+
if (!priceId) return EMPTY_PRICE_DATA_POINTS;
|
|
48
|
+
const points = priceHistory[priceId]?.[timeRange];
|
|
49
|
+
if (!points || points.length === 0) return EMPTY_PRICE_DATA_POINTS;
|
|
50
|
+
return points;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Select portfolio value history for a given time range
|
|
54
|
+
* This is a cross-slice selector that combines price history with token data
|
|
55
|
+
*/
|
|
56
|
+
const selectPortfolioValueHistory = createSelector([
|
|
57
|
+
slice.selectors.selectPriceHistory,
|
|
58
|
+
slice.selectors.selectPrices,
|
|
59
|
+
tokensSelectors.tokens.selectAggregatedFungibleTokensForVisibleAccounts,
|
|
60
|
+
(_, timeRange) => timeRange
|
|
61
|
+
], (priceHistory, prices, tokens, timeRange) => {
|
|
62
|
+
if (!tokens || tokens.length === 0) return EMPTY_PRICE_DATA_POINTS;
|
|
63
|
+
const priceHistoryMap = /* @__PURE__ */ new Map();
|
|
64
|
+
let hasAnyData = false;
|
|
65
|
+
for (const [priceId, history] of Object.entries(priceHistory)) {
|
|
66
|
+
const data = history[timeRange];
|
|
67
|
+
if (data && data.length > 0) {
|
|
68
|
+
priceHistoryMap.set(priceId, data);
|
|
69
|
+
hasAnyData = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!hasAnyData) return EMPTY_PRICE_DATA_POINTS;
|
|
73
|
+
return calculatePortfolioValueOverTime(priceHistoryMap, tokens, prices);
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* The currencies the user can actually pick, in allowlist display order.
|
|
77
|
+
*
|
|
78
|
+
* While the supported-currencies list is unavailable (not yet fetched,
|
|
79
|
+
* testnet, or offline) the full allowlist is shown.
|
|
80
|
+
*
|
|
81
|
+
* Never empty: the default currency always stays selectable (even when excluded
|
|
82
|
+
* or dropped by CoinGecko), so a corrected user is never left on a currency
|
|
83
|
+
* that is missing from the sheet.
|
|
84
|
+
*
|
|
85
|
+
* Inputs are raw slice fields (stable references); the intersection/filter and
|
|
86
|
+
* allocation happen in the result function, per reselect input-stability rules.
|
|
87
|
+
*/
|
|
88
|
+
const selectSupportedCurrencyPreferences = createSelector([slice.selectors.selectSupportedVsCurrencies, slice.selectors.selectCurrencyChoiceExclusions], (supportedVsCurrencies, exclusions) => {
|
|
89
|
+
const exclusionSet = new Set(exclusions.map((code) => code.toLowerCase()));
|
|
90
|
+
const supportedSet = supportedVsCurrencies?.length ? new Set(supportedVsCurrencies.map((code) => code.toLowerCase())) : null;
|
|
91
|
+
const defaultCode = DEFAULT_CURRENCY_PREFERENCE.name.toLowerCase();
|
|
92
|
+
return FIAT_CURRENCIES.filter((currency) => {
|
|
93
|
+
const code = currency.name.toLowerCase();
|
|
94
|
+
if (code === defaultCode) return true;
|
|
95
|
+
if (exclusionSet.has(code)) return false;
|
|
96
|
+
if (supportedSet && !supportedSet.has(code)) return false;
|
|
97
|
+
return true;
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
const NO_CURRENCY_FALLBACK = { fallback: false };
|
|
101
|
+
const CURRENCY_FALLBACK = { fallback: true };
|
|
102
|
+
const selectCurrencyFallback = createSelector([slice.selectors.selectCurrencyPreference, selectSupportedCurrencyPreferences], (preference, selectableCurrencies) => {
|
|
103
|
+
if (preference.name === DEFAULT_CURRENCY_PREFERENCE.name) return NO_CURRENCY_FALLBACK;
|
|
104
|
+
if (selectableCurrencies.some((c) => c.name === preference.name)) return NO_CURRENCY_FALLBACK;
|
|
105
|
+
return CURRENCY_FALLBACK;
|
|
106
|
+
});
|
|
107
|
+
/**
|
|
108
|
+
* USD → selected-currency conversion rate, for values that are inherently
|
|
109
|
+
* USD-denominated (e.g. USD-pegged stablecoin positions). Every cached price
|
|
110
|
+
* carries both `price` (in the user's currency) and `priceInUsd`, so their
|
|
111
|
+
* ratio is the live exchange rate. Undefined while no fresh price in the
|
|
112
|
+
* selected currency is cached — callers should then fall back to displaying
|
|
113
|
+
* USD rather than mislabeling an unconverted value.
|
|
114
|
+
*/
|
|
115
|
+
const selectUsdToCurrencyRate = createSelector([slice.selectors.selectPrices, slice.selectors.selectCurrencyPreference], (prices, preference) => {
|
|
116
|
+
const preferred = preference.name.toLowerCase();
|
|
117
|
+
if (preferred === "usd") return 1;
|
|
118
|
+
for (const price of Object.values(prices)) if (!price.isStale && price.fiatCurrency.toLowerCase() === preferred && price.priceInUsd > 0 && price.price > 0) return price.price / price.priceInUsd;
|
|
119
|
+
});
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region ../../packages/contract/token-pricing/src/store/index.ts
|
|
122
|
+
var store_default = inferStoreContext({
|
|
123
|
+
load: async () => import("./init-DFjT8YvT.js"),
|
|
124
|
+
context: {
|
|
125
|
+
actions: tokenPricingActions,
|
|
126
|
+
selectors: { tokenPricing: {
|
|
127
|
+
...slice.selectors,
|
|
128
|
+
selectHasActivePricingError,
|
|
129
|
+
selectTokenPriceHistoryForRange,
|
|
130
|
+
selectPortfolioValueHistory,
|
|
131
|
+
selectSupportedCurrencyPreferences,
|
|
132
|
+
selectCurrencyFallback,
|
|
133
|
+
selectUsdToCurrencyRate
|
|
134
|
+
} }
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region ../../packages/contract/token-pricing/src/contract.ts
|
|
139
|
+
const tokenPricingProviderDependencyContract = inferContractContext({
|
|
140
|
+
contractType: "sideEffectDependency",
|
|
141
|
+
name: ContractName("token-pricing-provider-dependency"),
|
|
142
|
+
instance: "zero-or-more"
|
|
143
|
+
});
|
|
144
|
+
/**
|
|
145
|
+
* Addon contract for blockchain-specific token ID mappers.
|
|
146
|
+
* Each blockchain module implements this to provide its own token-to-price-id mapping.
|
|
147
|
+
*/
|
|
148
|
+
const tokenIdMapperAddonContract = inferContractContext({
|
|
149
|
+
name: ContractName("token-id-mapper-addon"),
|
|
150
|
+
instance: "zero-or-more",
|
|
151
|
+
contractType: "addon",
|
|
152
|
+
preloadInServiceWorker: true,
|
|
153
|
+
provides: { addons: ["loadTokenIdMapper"] }
|
|
154
|
+
});
|
|
155
|
+
inferContractContext({
|
|
156
|
+
name: ContractName("token-pricing-store"),
|
|
157
|
+
contractType: "store",
|
|
158
|
+
dependsOn: combineContracts([
|
|
159
|
+
storageDependencyContract,
|
|
160
|
+
networkStoreContract,
|
|
161
|
+
tokensStoreContract,
|
|
162
|
+
syncStoreContract,
|
|
163
|
+
tokenPricingProviderDependencyContract,
|
|
164
|
+
tokenIdMapperAddonContract,
|
|
165
|
+
walletActiveStateDependencyContract
|
|
166
|
+
]),
|
|
167
|
+
mixin: createMixin((laceModule) => ({ store: combineStore(laceModule, store_default) })),
|
|
168
|
+
instance: "zero-or-more"
|
|
169
|
+
});
|
|
170
|
+
//#endregion
|
|
171
|
+
export { addressBookAddressValidatorAddonContract as n, LazyWalletMismatchError as r, tokenIdMapperAddonContract as t };
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
const require_sdk = require("./sdk-DffwmX8b.cjs");
|
|
2
|
+
const require_store = require("./store-B1Lq3cEf.cjs");
|
|
3
|
+
const require_reselect = require("./reselect-Bd94u0K-.cjs");
|
|
4
|
+
const require_slice = require("./slice-C9TT5KhY.cjs");
|
|
5
|
+
const require_slice$1 = require("./slice-Dqw1ecum.cjs");
|
|
6
|
+
const require_utils = require("./utils-DsElZgCI.cjs");
|
|
7
|
+
const require_slice$2 = require("./slice-DayJvMRD.cjs");
|
|
8
|
+
//#region src/lazy-wallet-mismatch-error.ts
|
|
9
|
+
/**
|
|
10
|
+
* The recovery words a lazy vault supplied derive another account key than
|
|
11
|
+
* the one the signing account stores, so nothing was signed.
|
|
12
|
+
*/
|
|
13
|
+
var LazyWalletMismatchError = class extends Error {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("Mnemonic does not match the selected lazy wallet account.");
|
|
16
|
+
this.name = "LazyWalletMismatchError";
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region ../../packages/contract/address-book/src/store/index.ts
|
|
21
|
+
var store_default$1 = require_store.inferStoreContext({
|
|
22
|
+
load: async () => Promise.resolve().then(() => require("./init-rmt7-fQE.cjs")),
|
|
23
|
+
context: {
|
|
24
|
+
actions: require_slice$1.addressBookActions,
|
|
25
|
+
selectors: require_slice$1.addressBookSelectors
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region ../../packages/contract/address-book/src/contract.ts
|
|
30
|
+
const addressBookAddressValidatorAddonContract = require_store.inferContractContext({
|
|
31
|
+
name: require_sdk.ContractName("address-book-address-validator-addon"),
|
|
32
|
+
instance: "zero-or-more",
|
|
33
|
+
contractType: "addon",
|
|
34
|
+
provides: { addons: ["loadAddressBookAddressValidators"] }
|
|
35
|
+
});
|
|
36
|
+
require_store.inferContractContext({
|
|
37
|
+
name: require_sdk.ContractName("address-book-store"),
|
|
38
|
+
contractType: "store",
|
|
39
|
+
instance: "exactly-one",
|
|
40
|
+
mixin: require_sdk.createMixin((laceModule) => ({ store: require_sdk.combineStore(laceModule, store_default$1) }))
|
|
41
|
+
});
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region ../../packages/contract/token-pricing/src/store/selectors.ts
|
|
44
|
+
const EMPTY_PRICE_DATA_POINTS = [];
|
|
45
|
+
const selectHasActivePricingError = require_reselect.createSelector([require_slice$2.slice.selectors.selectError, require_slice$2.slice.selectors.selectIsPricingStale], (error, isPricingStale) => !!error && isPricingStale);
|
|
46
|
+
const selectTokenPriceHistoryForRange = require_reselect.createSelector(require_slice$2.slice.selectors.selectPriceHistory, (_, params) => params, (priceHistory, { priceId, timeRange }) => {
|
|
47
|
+
if (!priceId) return EMPTY_PRICE_DATA_POINTS;
|
|
48
|
+
const points = priceHistory[priceId]?.[timeRange];
|
|
49
|
+
if (!points || points.length === 0) return EMPTY_PRICE_DATA_POINTS;
|
|
50
|
+
return points;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Select portfolio value history for a given time range
|
|
54
|
+
* This is a cross-slice selector that combines price history with token data
|
|
55
|
+
*/
|
|
56
|
+
const selectPortfolioValueHistory = require_reselect.createSelector([
|
|
57
|
+
require_slice$2.slice.selectors.selectPriceHistory,
|
|
58
|
+
require_slice$2.slice.selectors.selectPrices,
|
|
59
|
+
require_slice.tokensSelectors.tokens.selectAggregatedFungibleTokensForVisibleAccounts,
|
|
60
|
+
(_, timeRange) => timeRange
|
|
61
|
+
], (priceHistory, prices, tokens, timeRange) => {
|
|
62
|
+
if (!tokens || tokens.length === 0) return EMPTY_PRICE_DATA_POINTS;
|
|
63
|
+
const priceHistoryMap = /* @__PURE__ */ new Map();
|
|
64
|
+
let hasAnyData = false;
|
|
65
|
+
for (const [priceId, history] of Object.entries(priceHistory)) {
|
|
66
|
+
const data = history[timeRange];
|
|
67
|
+
if (data && data.length > 0) {
|
|
68
|
+
priceHistoryMap.set(priceId, data);
|
|
69
|
+
hasAnyData = true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (!hasAnyData) return EMPTY_PRICE_DATA_POINTS;
|
|
73
|
+
return require_utils.calculatePortfolioValueOverTime(priceHistoryMap, tokens, prices);
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* The currencies the user can actually pick, in allowlist display order.
|
|
77
|
+
*
|
|
78
|
+
* While the supported-currencies list is unavailable (not yet fetched,
|
|
79
|
+
* testnet, or offline) the full allowlist is shown.
|
|
80
|
+
*
|
|
81
|
+
* Never empty: the default currency always stays selectable (even when excluded
|
|
82
|
+
* or dropped by CoinGecko), so a corrected user is never left on a currency
|
|
83
|
+
* that is missing from the sheet.
|
|
84
|
+
*
|
|
85
|
+
* Inputs are raw slice fields (stable references); the intersection/filter and
|
|
86
|
+
* allocation happen in the result function, per reselect input-stability rules.
|
|
87
|
+
*/
|
|
88
|
+
const selectSupportedCurrencyPreferences = require_reselect.createSelector([require_slice$2.slice.selectors.selectSupportedVsCurrencies, require_slice$2.slice.selectors.selectCurrencyChoiceExclusions], (supportedVsCurrencies, exclusions) => {
|
|
89
|
+
const exclusionSet = new Set(exclusions.map((code) => code.toLowerCase()));
|
|
90
|
+
const supportedSet = supportedVsCurrencies?.length ? new Set(supportedVsCurrencies.map((code) => code.toLowerCase())) : null;
|
|
91
|
+
const defaultCode = require_utils.DEFAULT_CURRENCY_PREFERENCE.name.toLowerCase();
|
|
92
|
+
return require_utils.FIAT_CURRENCIES.filter((currency) => {
|
|
93
|
+
const code = currency.name.toLowerCase();
|
|
94
|
+
if (code === defaultCode) return true;
|
|
95
|
+
if (exclusionSet.has(code)) return false;
|
|
96
|
+
if (supportedSet && !supportedSet.has(code)) return false;
|
|
97
|
+
return true;
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
const NO_CURRENCY_FALLBACK = { fallback: false };
|
|
101
|
+
const CURRENCY_FALLBACK = { fallback: true };
|
|
102
|
+
const selectCurrencyFallback = require_reselect.createSelector([require_slice$2.slice.selectors.selectCurrencyPreference, selectSupportedCurrencyPreferences], (preference, selectableCurrencies) => {
|
|
103
|
+
if (preference.name === require_utils.DEFAULT_CURRENCY_PREFERENCE.name) return NO_CURRENCY_FALLBACK;
|
|
104
|
+
if (selectableCurrencies.some((c) => c.name === preference.name)) return NO_CURRENCY_FALLBACK;
|
|
105
|
+
return CURRENCY_FALLBACK;
|
|
106
|
+
});
|
|
107
|
+
/**
|
|
108
|
+
* USD → selected-currency conversion rate, for values that are inherently
|
|
109
|
+
* USD-denominated (e.g. USD-pegged stablecoin positions). Every cached price
|
|
110
|
+
* carries both `price` (in the user's currency) and `priceInUsd`, so their
|
|
111
|
+
* ratio is the live exchange rate. Undefined while no fresh price in the
|
|
112
|
+
* selected currency is cached — callers should then fall back to displaying
|
|
113
|
+
* USD rather than mislabeling an unconverted value.
|
|
114
|
+
*/
|
|
115
|
+
const selectUsdToCurrencyRate = require_reselect.createSelector([require_slice$2.slice.selectors.selectPrices, require_slice$2.slice.selectors.selectCurrencyPreference], (prices, preference) => {
|
|
116
|
+
const preferred = preference.name.toLowerCase();
|
|
117
|
+
if (preferred === "usd") return 1;
|
|
118
|
+
for (const price of Object.values(prices)) if (!price.isStale && price.fiatCurrency.toLowerCase() === preferred && price.priceInUsd > 0 && price.price > 0) return price.price / price.priceInUsd;
|
|
119
|
+
});
|
|
120
|
+
const tokenPricingSliceSelectors = { tokenPricing: {
|
|
121
|
+
...require_slice$2.slice.selectors,
|
|
122
|
+
selectHasActivePricingError,
|
|
123
|
+
selectTokenPriceHistoryForRange,
|
|
124
|
+
selectPortfolioValueHistory,
|
|
125
|
+
selectSupportedCurrencyPreferences,
|
|
126
|
+
selectCurrencyFallback,
|
|
127
|
+
selectUsdToCurrencyRate
|
|
128
|
+
} };
|
|
129
|
+
//#endregion
|
|
130
|
+
//#region ../../packages/contract/token-pricing/src/store/index.ts
|
|
131
|
+
var store_default = require_store.inferStoreContext({
|
|
132
|
+
load: async () => Promise.resolve().then(() => require("./init-Dv3zKj0r.cjs")),
|
|
133
|
+
context: {
|
|
134
|
+
actions: require_slice$2.tokenPricingActions,
|
|
135
|
+
selectors: tokenPricingSliceSelectors
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region ../../packages/contract/token-pricing/src/contract.ts
|
|
140
|
+
const tokenPricingProviderDependencyContract = require_store.inferContractContext({
|
|
141
|
+
contractType: "sideEffectDependency",
|
|
142
|
+
name: require_sdk.ContractName("token-pricing-provider-dependency"),
|
|
143
|
+
instance: "zero-or-more"
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* Addon contract for blockchain-specific token ID mappers.
|
|
147
|
+
* Each blockchain module implements this to provide its own token-to-price-id mapping.
|
|
148
|
+
*/
|
|
149
|
+
const tokenIdMapperAddonContract = require_store.inferContractContext({
|
|
150
|
+
name: require_sdk.ContractName("token-id-mapper-addon"),
|
|
151
|
+
instance: "zero-or-more",
|
|
152
|
+
contractType: "addon",
|
|
153
|
+
preloadInServiceWorker: true,
|
|
154
|
+
provides: { addons: ["loadTokenIdMapper"] }
|
|
155
|
+
});
|
|
156
|
+
require_store.inferContractContext({
|
|
157
|
+
name: require_sdk.ContractName("token-pricing-store"),
|
|
158
|
+
contractType: "store",
|
|
159
|
+
dependsOn: require_store.combineContracts([
|
|
160
|
+
require_sdk.storageDependencyContract,
|
|
161
|
+
require_sdk.networkStoreContract,
|
|
162
|
+
require_sdk.tokensStoreContract,
|
|
163
|
+
require_sdk.syncStoreContract,
|
|
164
|
+
tokenPricingProviderDependencyContract,
|
|
165
|
+
tokenIdMapperAddonContract,
|
|
166
|
+
require_sdk.walletActiveStateDependencyContract
|
|
167
|
+
]),
|
|
168
|
+
mixin: require_sdk.createMixin((laceModule) => ({ store: require_sdk.combineStore(laceModule, store_default) })),
|
|
169
|
+
instance: "zero-or-more"
|
|
170
|
+
});
|
|
171
|
+
//#endregion
|
|
172
|
+
Object.defineProperty(exports, "LazyWalletMismatchError", {
|
|
173
|
+
enumerable: true,
|
|
174
|
+
get: function() {
|
|
175
|
+
return LazyWalletMismatchError;
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
Object.defineProperty(exports, "addressBookAddressValidatorAddonContract", {
|
|
179
|
+
enumerable: true,
|
|
180
|
+
get: function() {
|
|
181
|
+
return addressBookAddressValidatorAddonContract;
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
Object.defineProperty(exports, "tokenIdMapperAddonContract", {
|
|
185
|
+
enumerable: true,
|
|
186
|
+
get: function() {
|
|
187
|
+
return tokenIdMapperAddonContract;
|
|
188
|
+
}
|
|
189
|
+
});
|