@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,147 @@
|
|
|
1
|
+
import { a as __toESM } from "./rolldown-runtime-OvD0k9op.js";
|
|
2
|
+
import { n as import_buffer, r as init__polyfill_buffer_patch } from "./_polyfill-buffer-patch-yNxN4d5E.js";
|
|
3
|
+
import { c as require_dist, l as require_src, o as tweakTaprootPrivateKey, t as AddressType } from "./address-B9ntKL8K.js";
|
|
4
|
+
import { n as deriveAccountRootKeyPair, r as deriveChildKeyPair } from "./keyDerivation-D3k9XyHg.js";
|
|
5
|
+
import { n as HexBytes } from "./bytes.vo-BB7_4JK6.js";
|
|
6
|
+
//#region ../../packages/module/blockchain-bitcoin/src/common/transaction.ts
|
|
7
|
+
var import_src = /* @__PURE__ */ __toESM(require_src());
|
|
8
|
+
/**
|
|
9
|
+
* Converts the transaction into a hex-encoded string.
|
|
10
|
+
*/
|
|
11
|
+
const encodeUnsignedTxToString = (tx) => {
|
|
12
|
+
const dto = {
|
|
13
|
+
...tx,
|
|
14
|
+
context: tx.context.toHex()
|
|
15
|
+
};
|
|
16
|
+
return HexBytes.fromUTF8(JSON.stringify(dto));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Converts the hex-encoded string back into the usable UnsignedTransaction object.
|
|
20
|
+
*/
|
|
21
|
+
const decodeUnsignedTxFromString = (encodedString) => {
|
|
22
|
+
const jsonString = HexBytes.toUTF8(encodedString);
|
|
23
|
+
const dto = JSON.parse(jsonString);
|
|
24
|
+
return {
|
|
25
|
+
...dto,
|
|
26
|
+
context: import_src.Psbt.fromHex(dto.context)
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region ../../packages/module/blockchain-bitcoin/src/wallet/BitcoinSigner.ts
|
|
31
|
+
init__polyfill_buffer_patch();
|
|
32
|
+
var import_dist = /* @__PURE__ */ __toESM(require_dist());
|
|
33
|
+
var BitcoinSigner = class {
|
|
34
|
+
publicKey;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new CustomSigner instance.
|
|
37
|
+
* @param keyPair - The key pair to use for signing.
|
|
38
|
+
*/
|
|
39
|
+
constructor(keyPair) {
|
|
40
|
+
this.keyPair = keyPair;
|
|
41
|
+
if (!keyPair.privateKey) throw new Error("Private key is required to sign transactions.");
|
|
42
|
+
this.publicKey = keyPair.publicKey;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Signs a hash using tiny-secp256k1's sign function.
|
|
46
|
+
* @param hash - The hash to sign (must be 32 bytes).
|
|
47
|
+
* @param _lowR - Optional flag for lowR signatures (ignored here).
|
|
48
|
+
* @returns The signature as a buffer.
|
|
49
|
+
*/
|
|
50
|
+
sign(hash, _lowR = false) {
|
|
51
|
+
if (hash.length !== 32) throw new Error("Hash must be 32 bytes.");
|
|
52
|
+
const signature = import_dist.sign(new Uint8Array(hash), new Uint8Array(this.keyPair.privateKey));
|
|
53
|
+
return import_buffer.Buffer.from(signature);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Returns the public key.
|
|
57
|
+
* @returns The public key as a buffer.
|
|
58
|
+
*/
|
|
59
|
+
getPublicKey() {
|
|
60
|
+
return this.publicKey;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Clears the private key from memory.
|
|
64
|
+
*
|
|
65
|
+
* This is a security measure to prevent the private key from being exposed in memory.
|
|
66
|
+
*/
|
|
67
|
+
clearSecrets() {
|
|
68
|
+
this.keyPair.privateKey.fill(0);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Signs a PSBT transaction with multiple Bitcoin signers, each corresponding to a specific input.
|
|
73
|
+
*
|
|
74
|
+
* @param unsignedTx - The PSBT transaction to sign.
|
|
75
|
+
* @param signers - An array of BitcoinSigner instances, where each signer is used for the respective input.
|
|
76
|
+
* @returns The signed transaction containing the signed PSBT and its hexadecimal representation.
|
|
77
|
+
*/
|
|
78
|
+
const signTx = (unsignedTx, signers) => {
|
|
79
|
+
const psbt = unsignedTx.context;
|
|
80
|
+
signers.forEach((signer, index) => {
|
|
81
|
+
psbt.signInput(index, signer);
|
|
82
|
+
});
|
|
83
|
+
psbt.finalizeAllInputs();
|
|
84
|
+
return {
|
|
85
|
+
context: psbt,
|
|
86
|
+
hex: psbt.extractTransaction().toHex()
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region ../../packages/module/blockchain-bitcoin/src/signing/sign-bitcoin-transaction-with-seed.ts
|
|
91
|
+
init__polyfill_buffer_patch();
|
|
92
|
+
/**
|
|
93
|
+
* Signs a serialized unsigned Bitcoin transaction with keys derived from a
|
|
94
|
+
* BIP-39 seed, one key per entry in the transaction's signers list. Taproot
|
|
95
|
+
* signers use the tweaked private key.
|
|
96
|
+
*
|
|
97
|
+
* The signer private keys and the Taproot tweak buffers are zeroed whether
|
|
98
|
+
* signing succeeds or throws. The caller owns the seed: it is read but never
|
|
99
|
+
* mutated or wiped, so the caller must wipe it once signing is done.
|
|
100
|
+
*
|
|
101
|
+
* @param serializedTx - The unsigned transaction as produced by the transaction builder.
|
|
102
|
+
* @param seed - The 64-byte BIP-39 seed of the wallet that owns the inputs.
|
|
103
|
+
* @returns The signed transaction, serialized with its network.
|
|
104
|
+
*/
|
|
105
|
+
const signBitcoinTransactionWithSeed = (serializedTx, seed) => {
|
|
106
|
+
const seedView = import_buffer.Buffer.from(seed.buffer, seed.byteOffset, seed.byteLength);
|
|
107
|
+
const tx = decodeUnsignedTxFromString(serializedTx);
|
|
108
|
+
const signers = [];
|
|
109
|
+
try {
|
|
110
|
+
for (const signingKey of tx.signers) {
|
|
111
|
+
const keyPair = deriveChildKeyPair(deriveAccountRootKeyPair({
|
|
112
|
+
seed: seedView,
|
|
113
|
+
addressType: signingKey.addressType,
|
|
114
|
+
network: signingKey.network,
|
|
115
|
+
account: signingKey.account
|
|
116
|
+
}).pair.privateKey, signingKey.chain, signingKey.index);
|
|
117
|
+
let finalKeyPair = keyPair.pair;
|
|
118
|
+
if (signingKey.addressType === AddressType.Taproot) {
|
|
119
|
+
const internalXOnlyPubKey = keyPair.pair.publicKey.slice(1);
|
|
120
|
+
const childPrivateKey = import_buffer.Buffer.from(keyPair.pair.privateKey, "hex");
|
|
121
|
+
try {
|
|
122
|
+
const tweakedPrivateKey = tweakTaprootPrivateKey(childPrivateKey, import_buffer.Buffer.from(internalXOnlyPubKey, "hex"));
|
|
123
|
+
finalKeyPair = {
|
|
124
|
+
publicKey: keyPair.pair.publicKey,
|
|
125
|
+
privateKey: tweakedPrivateKey.toString("hex")
|
|
126
|
+
};
|
|
127
|
+
tweakedPrivateKey.fill(0);
|
|
128
|
+
} finally {
|
|
129
|
+
childPrivateKey.fill(0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
signers.push(new BitcoinSigner({
|
|
133
|
+
publicKey: import_buffer.Buffer.from(finalKeyPair.publicKey, "hex"),
|
|
134
|
+
privateKey: import_buffer.Buffer.from(finalKeyPair.privateKey, "hex")
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
const signedTx = signTx(tx, signers);
|
|
138
|
+
return { serializedTx: HexBytes.fromUTF8(JSON.stringify({
|
|
139
|
+
network: tx.network,
|
|
140
|
+
hex: signedTx.hex
|
|
141
|
+
})) };
|
|
142
|
+
} finally {
|
|
143
|
+
for (const signer of signers) signer.clearSecrets();
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
//#endregion
|
|
147
|
+
export { encodeUnsignedTxToString as n, signBitcoinTransactionWithSeed as t };
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-Br2OG8yv.cjs");
|
|
2
|
+
const require__polyfill_buffer_patch = require("./_polyfill-buffer-patch-CM8X7JiY.cjs");
|
|
3
|
+
const require_address = require("./address-BXp-mY8H.cjs");
|
|
4
|
+
const require_bytes_vo = require("./bytes.vo-BNRquqaO.cjs");
|
|
5
|
+
const require_keyDerivation = require("./keyDerivation-u0nBA93T.cjs");
|
|
6
|
+
//#region ../../packages/module/blockchain-bitcoin/src/common/transaction.ts
|
|
7
|
+
var import_src = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_address.require_src());
|
|
8
|
+
/**
|
|
9
|
+
* Converts the transaction into a hex-encoded string.
|
|
10
|
+
*/
|
|
11
|
+
const encodeUnsignedTxToString = (tx) => {
|
|
12
|
+
const dto = {
|
|
13
|
+
...tx,
|
|
14
|
+
context: tx.context.toHex()
|
|
15
|
+
};
|
|
16
|
+
return require_bytes_vo.HexBytes.fromUTF8(JSON.stringify(dto));
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Converts the hex-encoded string back into the usable UnsignedTransaction object.
|
|
20
|
+
*/
|
|
21
|
+
const decodeUnsignedTxFromString = (encodedString) => {
|
|
22
|
+
const jsonString = require_bytes_vo.HexBytes.toUTF8(encodedString);
|
|
23
|
+
const dto = JSON.parse(jsonString);
|
|
24
|
+
return {
|
|
25
|
+
...dto,
|
|
26
|
+
context: import_src.Psbt.fromHex(dto.context)
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region ../../packages/module/blockchain-bitcoin/src/wallet/BitcoinSigner.ts
|
|
31
|
+
require__polyfill_buffer_patch.init__polyfill_buffer_patch();
|
|
32
|
+
var import_dist = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_address.require_dist());
|
|
33
|
+
var BitcoinSigner = class {
|
|
34
|
+
publicKey;
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new CustomSigner instance.
|
|
37
|
+
* @param keyPair - The key pair to use for signing.
|
|
38
|
+
*/
|
|
39
|
+
constructor(keyPair) {
|
|
40
|
+
this.keyPair = keyPair;
|
|
41
|
+
if (!keyPair.privateKey) throw new Error("Private key is required to sign transactions.");
|
|
42
|
+
this.publicKey = keyPair.publicKey;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Signs a hash using tiny-secp256k1's sign function.
|
|
46
|
+
* @param hash - The hash to sign (must be 32 bytes).
|
|
47
|
+
* @param _lowR - Optional flag for lowR signatures (ignored here).
|
|
48
|
+
* @returns The signature as a buffer.
|
|
49
|
+
*/
|
|
50
|
+
sign(hash, _lowR = false) {
|
|
51
|
+
if (hash.length !== 32) throw new Error("Hash must be 32 bytes.");
|
|
52
|
+
const signature = import_dist.sign(new Uint8Array(hash), new Uint8Array(this.keyPair.privateKey));
|
|
53
|
+
return require__polyfill_buffer_patch.import_buffer.Buffer.from(signature);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Returns the public key.
|
|
57
|
+
* @returns The public key as a buffer.
|
|
58
|
+
*/
|
|
59
|
+
getPublicKey() {
|
|
60
|
+
return this.publicKey;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Clears the private key from memory.
|
|
64
|
+
*
|
|
65
|
+
* This is a security measure to prevent the private key from being exposed in memory.
|
|
66
|
+
*/
|
|
67
|
+
clearSecrets() {
|
|
68
|
+
this.keyPair.privateKey.fill(0);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Signs a PSBT transaction with multiple Bitcoin signers, each corresponding to a specific input.
|
|
73
|
+
*
|
|
74
|
+
* @param unsignedTx - The PSBT transaction to sign.
|
|
75
|
+
* @param signers - An array of BitcoinSigner instances, where each signer is used for the respective input.
|
|
76
|
+
* @returns The signed transaction containing the signed PSBT and its hexadecimal representation.
|
|
77
|
+
*/
|
|
78
|
+
const signTx = (unsignedTx, signers) => {
|
|
79
|
+
const psbt = unsignedTx.context;
|
|
80
|
+
signers.forEach((signer, index) => {
|
|
81
|
+
psbt.signInput(index, signer);
|
|
82
|
+
});
|
|
83
|
+
psbt.finalizeAllInputs();
|
|
84
|
+
return {
|
|
85
|
+
context: psbt,
|
|
86
|
+
hex: psbt.extractTransaction().toHex()
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region ../../packages/module/blockchain-bitcoin/src/signing/sign-bitcoin-transaction-with-seed.ts
|
|
91
|
+
require__polyfill_buffer_patch.init__polyfill_buffer_patch();
|
|
92
|
+
/**
|
|
93
|
+
* Signs a serialized unsigned Bitcoin transaction with keys derived from a
|
|
94
|
+
* BIP-39 seed, one key per entry in the transaction's signers list. Taproot
|
|
95
|
+
* signers use the tweaked private key.
|
|
96
|
+
*
|
|
97
|
+
* The signer private keys and the Taproot tweak buffers are zeroed whether
|
|
98
|
+
* signing succeeds or throws. The caller owns the seed: it is read but never
|
|
99
|
+
* mutated or wiped, so the caller must wipe it once signing is done.
|
|
100
|
+
*
|
|
101
|
+
* @param serializedTx - The unsigned transaction as produced by the transaction builder.
|
|
102
|
+
* @param seed - The 64-byte BIP-39 seed of the wallet that owns the inputs.
|
|
103
|
+
* @returns The signed transaction, serialized with its network.
|
|
104
|
+
*/
|
|
105
|
+
const signBitcoinTransactionWithSeed = (serializedTx, seed) => {
|
|
106
|
+
const seedView = require__polyfill_buffer_patch.import_buffer.Buffer.from(seed.buffer, seed.byteOffset, seed.byteLength);
|
|
107
|
+
const tx = decodeUnsignedTxFromString(serializedTx);
|
|
108
|
+
const signers = [];
|
|
109
|
+
try {
|
|
110
|
+
for (const signingKey of tx.signers) {
|
|
111
|
+
const keyPair = require_keyDerivation.deriveChildKeyPair(require_keyDerivation.deriveAccountRootKeyPair({
|
|
112
|
+
seed: seedView,
|
|
113
|
+
addressType: signingKey.addressType,
|
|
114
|
+
network: signingKey.network,
|
|
115
|
+
account: signingKey.account
|
|
116
|
+
}).pair.privateKey, signingKey.chain, signingKey.index);
|
|
117
|
+
let finalKeyPair = keyPair.pair;
|
|
118
|
+
if (signingKey.addressType === require_address.AddressType.Taproot) {
|
|
119
|
+
const internalXOnlyPubKey = keyPair.pair.publicKey.slice(1);
|
|
120
|
+
const childPrivateKey = require__polyfill_buffer_patch.import_buffer.Buffer.from(keyPair.pair.privateKey, "hex");
|
|
121
|
+
try {
|
|
122
|
+
const tweakedPrivateKey = require_address.tweakTaprootPrivateKey(childPrivateKey, require__polyfill_buffer_patch.import_buffer.Buffer.from(internalXOnlyPubKey, "hex"));
|
|
123
|
+
finalKeyPair = {
|
|
124
|
+
publicKey: keyPair.pair.publicKey,
|
|
125
|
+
privateKey: tweakedPrivateKey.toString("hex")
|
|
126
|
+
};
|
|
127
|
+
tweakedPrivateKey.fill(0);
|
|
128
|
+
} finally {
|
|
129
|
+
childPrivateKey.fill(0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
signers.push(new BitcoinSigner({
|
|
133
|
+
publicKey: require__polyfill_buffer_patch.import_buffer.Buffer.from(finalKeyPair.publicKey, "hex"),
|
|
134
|
+
privateKey: require__polyfill_buffer_patch.import_buffer.Buffer.from(finalKeyPair.privateKey, "hex")
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
const signedTx = signTx(tx, signers);
|
|
138
|
+
return { serializedTx: require_bytes_vo.HexBytes.fromUTF8(JSON.stringify({
|
|
139
|
+
network: tx.network,
|
|
140
|
+
hex: signedTx.hex
|
|
141
|
+
})) };
|
|
142
|
+
} finally {
|
|
143
|
+
for (const signer of signers) signer.clearSecrets();
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
//#endregion
|
|
147
|
+
Object.defineProperty(exports, "encodeUnsignedTxToString", {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: function() {
|
|
150
|
+
return encodeUnsignedTxToString;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
Object.defineProperty(exports, "signBitcoinTransactionWithSeed", {
|
|
154
|
+
enumerable: true,
|
|
155
|
+
get: function() {
|
|
156
|
+
return signBitcoinTransactionWithSeed;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
require("./rolldown-runtime-Br2OG8yv.cjs");
|
|
2
|
+
const require_signer = require("./signer-CsL28DrK.cjs");
|
|
3
|
+
exports.JUBJUB_R = require_signer.JUBJUB_R;
|
|
4
|
+
exports.JubjubDevice = require_signer.JubjubDevice;
|
|
5
|
+
exports.authArgs = require_signer.authArgs;
|
|
6
|
+
exports.bytesToBigIntLE = require_signer.bytesToBigIntLE;
|
|
7
|
+
exports.randomJubjubScalar = require_signer.randomJubjubScalar;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
const require_acc_module = require("./acc-module-4iIUv6My.cjs");
|
|
2
|
+
//#region ../../packages/module/passport-account/src/acc/signer.ts
|
|
3
|
+
/** Order of the JubJub prime-order subgroup, the Schnorr scalar field. */
|
|
4
|
+
const JUBJUB_R = BigInt("0x0e7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7");
|
|
5
|
+
/** Uniform scalar in [1, JUBJUB_R), by rejection sampling. */
|
|
6
|
+
const randomJubjubScalar = () => {
|
|
7
|
+
for (;;) {
|
|
8
|
+
const candidate = [...crypto.getRandomValues(new Uint8Array(32))].reduce((value, byte) => value << 8n | BigInt(byte), 0n);
|
|
9
|
+
if (candidate > 0n && candidate < JUBJUB_R) return candidate;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Little-endian integer interpretation of a hash, the reading the Account
|
|
14
|
+
* Custody Contract applies when it compares a ground challenge against
|
|
15
|
+
* JUBJUB_R.
|
|
16
|
+
*/
|
|
17
|
+
const bytesToBigIntLE = (bytes) => {
|
|
18
|
+
let result = 0n;
|
|
19
|
+
for (let index = bytes.length - 1; index >= 0; index--) result = result << 8n | BigInt(bytes[index]);
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A JubJub Schnorr device key for the Account Custody Contract's jubjub
|
|
24
|
+
* authorisation arm. The key is an independent scalar, never derived from
|
|
25
|
+
* a seed shared with any other device. All curve and hash operations go
|
|
26
|
+
* through the contract's own exported pure circuits, so the device
|
|
27
|
+
* inherits the compiler's field-aligned encoding bit-exactly.
|
|
28
|
+
*/
|
|
29
|
+
var JubjubDevice = class JubjubDevice {
|
|
30
|
+
pk;
|
|
31
|
+
constructor(sk) {
|
|
32
|
+
this.sk = sk;
|
|
33
|
+
this.pk = require_acc_module.pureCircuits.compute_public_point_with_jubjub(sk);
|
|
34
|
+
}
|
|
35
|
+
static generate() {
|
|
36
|
+
return new JubjubDevice(randomJubjubScalar());
|
|
37
|
+
}
|
|
38
|
+
/** The device's rolling entry at a given account, epoch, and counter. */
|
|
39
|
+
entryAt(contractAddress, epoch, counter) {
|
|
40
|
+
return require_acc_module.pureCircuits.derive_device_entry_with_jubjub({ bytes: contractAddress }, this.pk, epoch, counter);
|
|
41
|
+
}
|
|
42
|
+
/** The boot commitment binding this device's key to a boot salt. */
|
|
43
|
+
bootCommitment(salt) {
|
|
44
|
+
return require_acc_module.pureCircuits.derive_boot_commitment_with_jubjub(salt, this.pk);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Schnorr-signs the call the builder describes. Computes the
|
|
48
|
+
* announcement R = nonce * G, grinds the challenge hash by incrementing
|
|
49
|
+
* the grind nonce until its little-endian value falls below JUBJUB_R,
|
|
50
|
+
* then closes with s = nonce + challenge * sk mod JUBJUB_R.
|
|
51
|
+
*
|
|
52
|
+
* `useCounter` is carried alongside for the contract's anti-replay entry
|
|
53
|
+
* consumption; it is bound by the consumed entry, not the challenge.
|
|
54
|
+
* `nonce` defaults to a fresh uniform scalar and must never repeat
|
|
55
|
+
* across signatures, or the secret key leaks.
|
|
56
|
+
*/
|
|
57
|
+
sign(challenge, useCounter, nonce = randomJubjubScalar()) {
|
|
58
|
+
const sigR = require_acc_module.pureCircuits.compute_public_point_with_jubjub(nonce);
|
|
59
|
+
let grindNonce = 0n;
|
|
60
|
+
let challengeScalar;
|
|
61
|
+
for (;;) {
|
|
62
|
+
const hash = bytesToBigIntLE(challenge(sigR, grindNonce));
|
|
63
|
+
if (hash < JUBJUB_R) {
|
|
64
|
+
challengeScalar = hash;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
grindNonce++;
|
|
68
|
+
}
|
|
69
|
+
const sigS = (nonce + challengeScalar % JUBJUB_R * (this.sk % JUBJUB_R) % JUBJUB_R) % JUBJUB_R;
|
|
70
|
+
return {
|
|
71
|
+
scheme: "jubjub-schnorr",
|
|
72
|
+
pk: this.pk,
|
|
73
|
+
useCounter,
|
|
74
|
+
sigR,
|
|
75
|
+
sigS,
|
|
76
|
+
grindNonce
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* The trailing circuit arguments an Authorisation expands to, in the order
|
|
82
|
+
* the jubjub-gated circuits declare them after their own arguments.
|
|
83
|
+
*/
|
|
84
|
+
const authArgs = (authorisation) => [
|
|
85
|
+
authorisation.pk,
|
|
86
|
+
authorisation.useCounter,
|
|
87
|
+
authorisation.sigR,
|
|
88
|
+
authorisation.sigS,
|
|
89
|
+
authorisation.grindNonce
|
|
90
|
+
];
|
|
91
|
+
//#endregion
|
|
92
|
+
Object.defineProperty(exports, "JUBJUB_R", {
|
|
93
|
+
enumerable: true,
|
|
94
|
+
get: function() {
|
|
95
|
+
return JUBJUB_R;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
Object.defineProperty(exports, "JubjubDevice", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function() {
|
|
101
|
+
return JubjubDevice;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
Object.defineProperty(exports, "authArgs", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function() {
|
|
107
|
+
return authArgs;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(exports, "bytesToBigIntLE", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function() {
|
|
113
|
+
return bytesToBigIntLE;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
Object.defineProperty(exports, "randomJubjubScalar", {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function() {
|
|
119
|
+
return randomJubjubScalar;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { a as pureCircuits } from "./acc-module-Cmj8EsIb.js";
|
|
2
|
+
//#region ../../packages/module/passport-account/src/acc/signer.ts
|
|
3
|
+
/** Order of the JubJub prime-order subgroup, the Schnorr scalar field. */
|
|
4
|
+
const JUBJUB_R = BigInt("0x0e7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7");
|
|
5
|
+
/** Uniform scalar in [1, JUBJUB_R), by rejection sampling. */
|
|
6
|
+
const randomJubjubScalar = () => {
|
|
7
|
+
for (;;) {
|
|
8
|
+
const candidate = [...crypto.getRandomValues(new Uint8Array(32))].reduce((value, byte) => value << 8n | BigInt(byte), 0n);
|
|
9
|
+
if (candidate > 0n && candidate < JUBJUB_R) return candidate;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Little-endian integer interpretation of a hash, the reading the Account
|
|
14
|
+
* Custody Contract applies when it compares a ground challenge against
|
|
15
|
+
* JUBJUB_R.
|
|
16
|
+
*/
|
|
17
|
+
const bytesToBigIntLE = (bytes) => {
|
|
18
|
+
let result = 0n;
|
|
19
|
+
for (let index = bytes.length - 1; index >= 0; index--) result = result << 8n | BigInt(bytes[index]);
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A JubJub Schnorr device key for the Account Custody Contract's jubjub
|
|
24
|
+
* authorisation arm. The key is an independent scalar, never derived from
|
|
25
|
+
* a seed shared with any other device. All curve and hash operations go
|
|
26
|
+
* through the contract's own exported pure circuits, so the device
|
|
27
|
+
* inherits the compiler's field-aligned encoding bit-exactly.
|
|
28
|
+
*/
|
|
29
|
+
var JubjubDevice = class JubjubDevice {
|
|
30
|
+
pk;
|
|
31
|
+
constructor(sk) {
|
|
32
|
+
this.sk = sk;
|
|
33
|
+
this.pk = pureCircuits.compute_public_point_with_jubjub(sk);
|
|
34
|
+
}
|
|
35
|
+
static generate() {
|
|
36
|
+
return new JubjubDevice(randomJubjubScalar());
|
|
37
|
+
}
|
|
38
|
+
/** The device's rolling entry at a given account, epoch, and counter. */
|
|
39
|
+
entryAt(contractAddress, epoch, counter) {
|
|
40
|
+
return pureCircuits.derive_device_entry_with_jubjub({ bytes: contractAddress }, this.pk, epoch, counter);
|
|
41
|
+
}
|
|
42
|
+
/** The boot commitment binding this device's key to a boot salt. */
|
|
43
|
+
bootCommitment(salt) {
|
|
44
|
+
return pureCircuits.derive_boot_commitment_with_jubjub(salt, this.pk);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Schnorr-signs the call the builder describes. Computes the
|
|
48
|
+
* announcement R = nonce * G, grinds the challenge hash by incrementing
|
|
49
|
+
* the grind nonce until its little-endian value falls below JUBJUB_R,
|
|
50
|
+
* then closes with s = nonce + challenge * sk mod JUBJUB_R.
|
|
51
|
+
*
|
|
52
|
+
* `useCounter` is carried alongside for the contract's anti-replay entry
|
|
53
|
+
* consumption; it is bound by the consumed entry, not the challenge.
|
|
54
|
+
* `nonce` defaults to a fresh uniform scalar and must never repeat
|
|
55
|
+
* across signatures, or the secret key leaks.
|
|
56
|
+
*/
|
|
57
|
+
sign(challenge, useCounter, nonce = randomJubjubScalar()) {
|
|
58
|
+
const sigR = pureCircuits.compute_public_point_with_jubjub(nonce);
|
|
59
|
+
let grindNonce = 0n;
|
|
60
|
+
let challengeScalar;
|
|
61
|
+
for (;;) {
|
|
62
|
+
const hash = bytesToBigIntLE(challenge(sigR, grindNonce));
|
|
63
|
+
if (hash < JUBJUB_R) {
|
|
64
|
+
challengeScalar = hash;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
grindNonce++;
|
|
68
|
+
}
|
|
69
|
+
const sigS = (nonce + challengeScalar % JUBJUB_R * (this.sk % JUBJUB_R) % JUBJUB_R) % JUBJUB_R;
|
|
70
|
+
return {
|
|
71
|
+
scheme: "jubjub-schnorr",
|
|
72
|
+
pk: this.pk,
|
|
73
|
+
useCounter,
|
|
74
|
+
sigR,
|
|
75
|
+
sigS,
|
|
76
|
+
grindNonce
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* The trailing circuit arguments an Authorisation expands to, in the order
|
|
82
|
+
* the jubjub-gated circuits declare them after their own arguments.
|
|
83
|
+
*/
|
|
84
|
+
const authArgs = (authorisation) => [
|
|
85
|
+
authorisation.pk,
|
|
86
|
+
authorisation.useCounter,
|
|
87
|
+
authorisation.sigR,
|
|
88
|
+
authorisation.sigS,
|
|
89
|
+
authorisation.grindNonce
|
|
90
|
+
];
|
|
91
|
+
//#endregion
|
|
92
|
+
export { randomJubjubScalar as a, bytesToBigIntLE as i, JubjubDevice as n, authArgs as r, JUBJUB_R as t };
|