@seams/wallet 0.17.0 → 0.19.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/README.md +4 -5
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/index.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/client/inboundMessages.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/client/router.js +10 -4
- package/dist/esm/SeamsWeb/walletIframe/coordinator.js +23 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +5 -4
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +121 -246
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +37 -1
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +4 -2
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +117 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.js +60 -0
- package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +2 -0
- package/dist/esm/core/browser/walletIframe/events.js +6 -0
- package/dist/esm/core/config/configBuilder.js +2 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +27 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +155 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +209 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +7 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +10 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +9 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +9 -6
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +7 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +4 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +4 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +5 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +319 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +10 -7
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +9 -5
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +28 -22
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +51 -26
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +42 -27
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +25 -18
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +8 -5
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/WalletLocale.js +24 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +6 -4
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +92 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +4 -2
- package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +12 -0
- package/dist/esm/core/ui/locale.js +10 -0
- package/dist/esm/core/ui/messages.js +698 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +7 -3
- package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +7 -4
- package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +5 -2
- package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +31 -27
- package/dist/esm/react/components/AccountMenuButton/AccountMenuScreen.js +6 -3
- package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +6 -3
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -4
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +33 -27
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +5 -2
- package/dist/esm/react/components/AccountMenuButton/ExportKeysScreen.js +5 -3
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +20 -0
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +9 -3
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +50 -41
- package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/MenuItem.js +3 -2
- package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +8 -4
- package/dist/esm/react/components/AccountMenuButton/RecoveryCodeAcknowledgement.js +3 -2
- package/dist/esm/react/components/AccountMenuButton/RecoveryCodeActions.js +4 -3
- package/dist/esm/react/components/AccountMenuButton/SegmentedControl.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +11 -10
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +1 -0
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +8 -4
- package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +22 -15
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +20 -16
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +15 -0
- package/dist/esm/react/components/AccountMenuButton/index.js +18 -15
- package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +30 -26
- package/dist/esm/react/components/QRCodeScanner.js +28 -23
- package/dist/esm/react/components/ShowQRCode.js +39 -31
- package/dist/esm/react/components/theme/ThemeProvider.js +3 -0
- package/dist/esm/react/context/WalletLocale.js +15 -0
- package/dist/esm/react/context/index.js +8 -3
- package/dist/esm/react/styles/styles.css +36 -0
- package/dist/esm/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
- package/dist/{public/sdk/NonceCoordinator-DuDKN-B8.js → esm/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
- package/dist/{public/sdk/accountLifecycle-D61FIpFS.js → esm/sdk/accountLifecycle-fLNUdjct.js} +1 -1
- package/dist/{public/sdk/activeWalletSession-Ba6X4CUN.js → esm/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
- package/dist/esm/sdk/adapters-BNmcyf9K.js +2 -0
- package/dist/esm/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
- package/dist/esm/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
- package/dist/esm/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
- package/dist/{public/sdk/clientSessionPersistenceState-BHRUSWMt.js → esm/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
- package/dist/esm/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
- package/dist/esm/sdk/configBuilder-BMNShuOu.js +1 -0
- package/dist/esm/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
- package/dist/esm/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
- package/dist/esm/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
- package/dist/{public/sdk/ecdsaCapabilityManifest-DzA996y9.js → esm/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → esm/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationExport-DyugdheE.js → esm/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
- package/dist/esm/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
- package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → esm/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
- package/dist/{public/sdk/exportKeypairOperation-SJPysnE1.js → esm/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
- package/dist/esm/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
- package/dist/esm/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
- package/dist/esm/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
- package/dist/esm/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
- package/dist/esm/sdk/localOnly-DO191vDh.js +1 -0
- package/dist/esm/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
- package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
- package/dist/{public/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → esm/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
- package/dist/{public/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → esm/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
- package/dist/esm/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
- package/dist/esm/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
- package/dist/{public/sdk/passkey-custody-CBSal3E9.js → esm/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
- package/dist/{public/sdk/presignaturePool-CQNt13kE.js → esm/sdk/presignaturePool-BHoxnbOA.js} +1 -1
- package/dist/esm/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
- package/dist/esm/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
- package/dist/esm/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
- package/dist/esm/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
- package/dist/esm/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
- package/dist/esm/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
- package/dist/esm/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
- package/dist/{public/sdk/registrationIntent-PqmcTEE3.js → esm/sdk/registrationIntent-D4YDjf2U.js} +1 -1
- package/dist/esm/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
- package/dist/{public/sdk/routerAbNormalSigning-xxATTIh5.js → esm/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/esm/sdk/runtime-auth-BxG-J-BB.js +1 -0
- package/dist/esm/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
- package/dist/esm/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
- package/dist/esm/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
- package/dist/esm/sdk/runtime-export-Brz53_oi.js +1 -0
- package/dist/esm/sdk/runtime-near-Da_xFUXx.js +1 -0
- package/dist/esm/sdk/runtime-preferences-riUZGaTs.js +1 -0
- package/dist/esm/sdk/runtime-recovery-CTj4nDAM.js +1 -0
- package/dist/esm/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
- package/dist/esm/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
- package/dist/esm/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
- package/dist/esm/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
- package/dist/esm/sdk/shared-hx7KVyeq.js +6 -0
- package/dist/esm/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
- package/dist/esm/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
- package/dist/{public/sdk/signNear-Dno7NsP_.js → esm/sdk/signNear-B000QxBd.js} +1 -1
- package/dist/{public/sdk/signingFlow-DtugI_2z.js → esm/sdk/signingFlow-gl85GOW4.js} +1 -1
- package/dist/esm/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
- package/dist/esm/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
- package/dist/{public/sdk/thresholdEcdsa-murTq-xz.js → esm/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
- package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js} +1 -1
- package/dist/esm/sdk/tx-confirm-ui.js +1799 -432
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
- package/dist/esm/sdk/wallet-ui.css +1 -1
- package/dist/{public/sdk/walletAuthMethodRecord-Bv68Vq-g.js → esm/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
- package/dist/{public/sdk/walletAuthority-v5wvv3IB.js → esm/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
- package/dist/{public/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → esm/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
- package/dist/esm/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
- package/dist/{public/sdk/walletOwnershipGeneration-pMmmJ6XA.js → esm/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
- package/dist/esm/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
- package/dist/esm/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
- package/dist/{public/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → esm/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
- package/dist/{public/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → esm/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
- package/dist/esm/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
- package/dist/{public/sdk/webauthnP256-XgYu-Y6E.js → esm/sdk/webauthnP256-_ajaNl90.js} +1 -1
- package/dist/esm/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
- package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/ConfirmationDrawer-DCw0m-Iv.js +1 -0
- package/dist/{esm/sdk/NonceCoordinator-DuDKN-B8.js → public/sdk/NonceCoordinator-Dq-FZpBz.js} +1 -1
- package/dist/{esm/sdk/accountLifecycle-D61FIpFS.js → public/sdk/accountLifecycle-fLNUdjct.js} +1 -1
- package/dist/{esm/sdk/activeWalletSession-Ba6X4CUN.js → public/sdk/activeWalletSession-BpbnpU9s.js} +1 -1
- package/dist/public/sdk/adapters-BNmcyf9K.js +2 -0
- package/dist/public/sdk/appearance-token-vars-DxBm_cKA.js +2 -0
- package/dist/public/sdk/{canonicalPrimitives-BOzRXzfv.js → canonicalPrimitives-BMP5yILS.js} +1 -1
- package/dist/public/sdk/{challengeDelivery-FD9GHK1T.js → challengeDelivery-CG2J5Qxs.js} +1 -1
- package/dist/{esm/sdk/clientSessionPersistenceState-BHRUSWMt.js → public/sdk/clientSessionPersistenceState-BgO4P6CZ.js} +1 -1
- package/dist/public/sdk/{commitQueue-DOIaR0Hr.js → commitQueue-BW7BpYyA.js} +1 -1
- package/dist/public/sdk/configBuilder-BMNShuOu.js +1 -0
- package/dist/public/sdk/{configHelpers-BXdl5Mxs.js → configHelpers-D50F_Txb.js} +1 -1
- package/dist/public/sdk/{digestEncoding-CbEFYvlJ.js → digestEncoding-aC4dSf_x.js} +1 -1
- package/dist/public/sdk/{display-CY_aJEn6.js → display-WtILOPQR.js} +1 -1
- package/dist/{esm/sdk/ecdsaCapabilityManifest-DzA996y9.js → public/sdk/ecdsaCapabilityManifest-DRc423SV.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationClientWasm-DQlajPpE.js → public/sdk/ecdsaDerivationClientWasm-DmwKWUEb.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationExport-DyugdheE.js → public/sdk/ecdsaDerivationExport-DX89rq_u.js} +1 -1
- package/dist/public/sdk/{ecdsaWalletRecords-C_v74n5X.js → ecdsaWalletRecords-CxxUt3fS.js} +1 -1
- package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-BDVjvnmO.js → public/sdk/emailOtpEcdsaDerivationIdentity-CupWCKNg.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-DsRaS0UH.js → export-viewer-host-DsdzagKK.js} +1 -1
- package/dist/{esm/sdk/exportKeypairOperation-SJPysnE1.js → public/sdk/exportKeypairOperation-BwW_E4Lt.js} +1 -1
- package/dist/public/sdk/{helpers-D3CUEdHI.js → helpers-DS0bksx9.js} +1 -1
- package/dist/public/sdk/{host-GPb_mSAQ.js → host-DMR4KDy9.js} +1 -1
- package/dist/public/sdk/{intentDigest-CGLrsMgj.js → intentDigest-Rh5Mg8X7.js} +1 -1
- package/dist/public/sdk/{lanes-DJKIHJBm.js → lanes-BzU7cv2T.js} +1 -1
- package/dist/public/sdk/localOnly-DO191vDh.js +1 -0
- package/dist/public/sdk/mountExportPrivateKeySurface-DQzFzhNu.js +1 -0
- package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1D0ovqx.js +2 -0
- package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-J6EHFScV.js → public/sdk/nearEd25519YaoMaterialActivation-DgWDGRI_.js} +1 -1
- package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-CqBNMG87.js → public/sdk/nearEd25519YaoSigningPreparation-yKDLQXBS.js} +1 -1
- package/dist/public/sdk/{nonceLaneKeys-D18nlLjh.js → nonceLaneKeys-BzMBVxMU.js} +1 -1
- package/dist/public/sdk/{operationFingerprint-Boa9DQ51.js → operationFingerprint-C4VX-0NI.js} +1 -1
- package/dist/{esm/sdk/passkey-custody-CBSal3E9.js → public/sdk/passkey-custody-Ba-NQ_4C.js} +1 -1
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-CvsrXbzn.js → pendingWalletRecoveryCodeBackup-DOeIn_Qj.js} +1 -1
- package/dist/{esm/sdk/presignaturePool-CQNt13kE.js → public/sdk/presignaturePool-BHoxnbOA.js} +1 -1
- package/dist/public/sdk/{prfCache-DJ93rtDv.js → prfCache-BAFh1skJ.js} +1 -1
- package/dist/public/sdk/{primitives-cC0a9GRC.js → primitives-CTmDwMNc.js} +1 -1
- package/dist/public/sdk/{recovery-entrypoint-nj7Zo3CR.js → recovery-entrypoint-DWghFZrZ.js} +1 -1
- package/dist/public/sdk/{registration-49OGU_GZ.js → registration-DknFwoqn.js} +1 -1
- package/dist/public/sdk/{registration-C7tywPXF.js → registration-sQndIWRF.js} +1 -1
- package/dist/public/sdk/{registrationAccounts-9GFI0Ger.js → registrationAccounts-CD1u1ZqZ.js} +1 -1
- package/dist/public/sdk/{registrationIds-Br-zI4_5.js → registrationIds-B1OpqRAt.js} +1 -1
- package/dist/{esm/sdk/registrationIntent-PqmcTEE3.js → public/sdk/registrationIntent-D4YDjf2U.js} +1 -1
- package/dist/public/sdk/{requireStepUpAuth-C4PGTly-.js → requireStepUpAuth-CnSCFSOZ.js} +1 -1
- package/dist/{esm/sdk/routerAbNormalSigning-xxATTIh5.js → public/sdk/routerAbNormalSigning-BV1t27aB.js} +1 -1
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/runtime-auth-BxG-J-BB.js +1 -0
- package/dist/public/sdk/runtime-device-link-Dn_5hPCq.js +1 -0
- package/dist/public/sdk/runtime-ecdsa-tempo-lTFTb9Rh.js +1 -0
- package/dist/public/sdk/runtime-email-otp-CPqTCH8Q.js +1 -0
- package/dist/public/sdk/runtime-export-Brz53_oi.js +1 -0
- package/dist/public/sdk/runtime-near-Da_xFUXx.js +1 -0
- package/dist/public/sdk/runtime-preferences-riUZGaTs.js +1 -0
- package/dist/public/sdk/runtime-recovery-CTj4nDAM.js +1 -0
- package/dist/public/sdk/{runtime-recovery-codes-LR4mg7-k.js → runtime-recovery-codes-D8T9LQ7-.js} +1 -1
- package/dist/public/sdk/{secp256k1-BldUPNQI.js → secp256k1-wOOHtPcK.js} +1 -1
- package/dist/public/sdk/{secureRandomId-LwBFx84B.js → secureRandomId-8LSc91aN.js} +1 -1
- package/dist/public/sdk/sessionObservationRevision-C7v-wN8_.js +1 -0
- package/dist/public/sdk/shared-hx7KVyeq.js +6 -0
- package/dist/public/sdk/{signEvmFamily-C_RvEnDB.js → signEvmFamily-DT34Vtpa.js} +1 -1
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CUKdq5dE.js → signEvmFamilyWithUiConfirmForTempo-NYCFU6Li.js} +1 -1
- package/dist/public/sdk/{signEvmWithUiConfirm-CxXzcvj2.js → signEvmWithUiConfirm-D6nmJr_L.js} +1 -1
- package/dist/{esm/sdk/signNear-Dno7NsP_.js → public/sdk/signNear-B000QxBd.js} +1 -1
- package/dist/{esm/sdk/signingFlow-DtugI_2z.js → public/sdk/signingFlow-gl85GOW4.js} +1 -1
- package/dist/public/sdk/{signingQueue-C1Pb07gm.js → signingQueue-gW7wmOuL.js} +1 -1
- package/dist/public/sdk/{singletons-DxIyVhNb.js → singletons-CAsc9LvA.js} +1 -1
- package/dist/{esm/sdk/thresholdEcdsa-murTq-xz.js → public/sdk/thresholdEcdsa-Ci7yz395.js} +1 -1
- package/dist/{esm/sdk/transactionState-XbZm9Zon.js → public/sdk/transactionState-lB2qpkOm.js} +1 -1
- package/dist/public/sdk/tx-confirm-ui.js +1799 -432
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/{wallet-recovery-CVUalZ3p.js → wallet-recovery-DFaS3geI.js} +1 -1
- package/dist/public/sdk/wallet-ui.css +1 -1
- package/dist/{esm/sdk/walletAuthMethodRecord-Bv68Vq-g.js → public/sdk/walletAuthMethodRecord-CWdqdY_s.js} +1 -1
- package/dist/{esm/sdk/walletAuthority-v5wvv3IB.js → public/sdk/walletAuthority-BY3kyKQ-.js} +1 -1
- package/dist/{esm/sdk/walletCustodyEcdsaContinuity-rRHExT_R.js → public/sdk/walletCustodyEcdsaContinuity-mGh1Ysko.js} +1 -1
- package/dist/public/sdk/{walletDbName-DRzPv5Ir.js → walletDbName-BxWApBQF.js} +1 -1
- package/dist/{esm/sdk/walletOwnershipGeneration-pMmmJ6XA.js → public/sdk/walletOwnershipGeneration-DSGfjuV2.js} +1 -1
- package/dist/public/sdk/{walletRecoveryCommit-DvC6WlGz.js → walletRecoveryCommit-DQA_wveK.js} +1 -1
- package/dist/public/sdk/{walletRecoveryRotate-Dd3prJpr.js → walletRecoveryRotate-zvQThn37.js} +1 -1
- package/dist/public/sdk/walletRegistrationSetupPrewarm-DdVpKccU.js +1 -0
- package/dist/{esm/sdk/walletSessionAuthorizationStatus-DVV3xkAx.js → public/sdk/walletSessionAuthorizationStatus-ONPRiEbK.js} +1 -1
- package/dist/{esm/sdk/walletSessionAuthorizationStore-D-MhJ0PC.js → public/sdk/walletSessionAuthorizationStore-DnUMtkev.js} +1 -1
- package/dist/public/sdk/warmSessionHydration-D8Vdro9n.js +1 -0
- package/dist/{esm/sdk/webauthnP256-XgYu-Y6E.js → public/sdk/webauthnP256-_ajaNl90.js} +1 -1
- package/dist/public/sdk/{webauthnPromptCoordinator-D5sP8Q7e.js → webauthnPromptCoordinator-9bVeHcTZ.js} +1 -1
- package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/public/wallet-assets.manifest.json +192 -192
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +20 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +3 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +0 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +5 -6
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +2 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +35 -0
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/recovery-code-input.d.ts +17 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +3 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/WalletLocale.d.ts +18 -0
- package/dist/types/wallet/src/core/types/seams.d.ts +3 -0
- package/dist/types/wallet/src/core/ui/locale.d.ts +5 -0
- package/dist/types/wallet/src/core/ui/messages.d.ts +8 -0
- package/dist/types/wallet/src/index.d.ts +3 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +1 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +3 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +4 -1
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.d.ts +2 -1
- package/dist/types/wallet/src/react/context/WalletLocale.d.ts +16 -0
- package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/esm/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
- package/dist/esm/sdk/adapters-CTlDBRJy.js +0 -2
- package/dist/esm/sdk/configBuilder-BMawmNpz.js +0 -1
- package/dist/esm/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
- package/dist/esm/sdk/localOnly-CPmpw381.js +0 -1
- package/dist/esm/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
- package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
- package/dist/esm/sdk/runtime-auth-CpjGW90U.js +0 -1
- package/dist/esm/sdk/runtime-device-link-CKgfGi7D.js +0 -1
- package/dist/esm/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
- package/dist/esm/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
- package/dist/esm/sdk/runtime-export-B92wQD25.js +0 -1
- package/dist/esm/sdk/runtime-near-CUuKg38M.js +0 -1
- package/dist/esm/sdk/runtime-preferences-EdL3G_MO.js +0 -1
- package/dist/esm/sdk/runtime-recovery-uyw8sywI.js +0 -1
- package/dist/esm/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
- package/dist/esm/sdk/shared-ha31XIdc.js +0 -6
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
- package/dist/esm/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
- package/dist/public/sdk/ConfirmationDrawer-CXVNmfTy.js +0 -1
- package/dist/public/sdk/adapters-CTlDBRJy.js +0 -2
- package/dist/public/sdk/configBuilder-BMawmNpz.js +0 -1
- package/dist/public/sdk/jsxRuntime.module-DKsgiFjd.js +0 -2
- package/dist/public/sdk/localOnly-CPmpw381.js +0 -1
- package/dist/public/sdk/mountExportPrivateKeySurface-C8_tpDHF.js +0 -1
- package/dist/public/sdk/mountRecoveryCodeBackupSurface-BtNFtmSj.js +0 -2
- package/dist/public/sdk/runtime-auth-CpjGW90U.js +0 -1
- package/dist/public/sdk/runtime-device-link-CKgfGi7D.js +0 -1
- package/dist/public/sdk/runtime-ecdsa-tempo-5VV9xSEh.js +0 -1
- package/dist/public/sdk/runtime-email-otp-D1hYZNn6.js +0 -1
- package/dist/public/sdk/runtime-export-B92wQD25.js +0 -1
- package/dist/public/sdk/runtime-near-CUuKg38M.js +0 -1
- package/dist/public/sdk/runtime-preferences-EdL3G_MO.js +0 -1
- package/dist/public/sdk/runtime-recovery-uyw8sywI.js +0 -1
- package/dist/public/sdk/sessionObservationRevision-DmmNV25w.js +0 -1
- package/dist/public/sdk/shared-ha31XIdc.js +0 -6
- package/dist/public/sdk/walletRegistrationSetupPrewarm-DcbhVNMQ.js +0 -1
- package/dist/public/sdk/warmSessionHydration-CsQpQVuy.js +0 -1
- /package/dist/esm/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
- /package/dist/esm/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
- /package/dist/esm/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
- /package/dist/public/sdk/{base64-DW79QA0h.js → base64-BmKR3UqU.js} +0 -0
- /package/dist/public/sdk/{signingSessionSeal-DX41aXUL.js → signingSessionSeal-DqbjG8c8.js} +0 -0
- /package/dist/public/sdk/{theme-BKaFqCAj.js → theme-os0Salmo.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,t}from"./chains-CPmd4s9f.js";import{i as n}from"./base64-
|
|
1
|
+
import{c as e,t}from"./chains-CPmd4s9f.js";import{i as n}from"./base64-BmKR3UqU.js";import{o as r,r as i}from"./canonicalPrimitives-BMP5yILS.js";import{a,c as o,r as s}from"./ecdsaChainTarget-DkOrgv4y.js";import{m as c,o as l}from"./sdkSentEvents-DujYAPEM.js";import{t as u}from"./jsonRpc-BVDv1wfm.js";import{r as d}from"./types-CQTWmtqu.js";import{i as f}from"./helpers-DS0bksx9.js";import{r as p}from"./operationFingerprint-C4VX-0NI.js";import{i as m}from"./trace-CsRMlSh1.js";import{t as h}from"./bytes-DZRW2UDg.js";import{n as g,r as _,t as v}from"./normalization-C6fQN6mW.js";import{a as y,i as b,n as x,r as S}from"./types-Buoe6179.js";import{T as C,a as w,g as T,i as ee,o as te,r as ne,s as re,t as ie,v as ae,w as oe,y as se}from"./requireStepUpAuth-CnSCFSOZ.js";const ce=/^0x[0-9a-f]{40}$/,E=Object.freeze({"0x06fdde03":`name()`,"0x095ea7b3":`approve(address,uint256)`,"0x18160ddd":`totalSupply()`,"0x23b872dd":`transferFrom(address,address,uint256)`,"0x2e1a7d4d":`withdraw(uint256)`,"0x313ce567":`decimals()`,"0x42842e0e":`safeTransferFrom(address,address,uint256)`,"0x47e1da2a":`executeBatch(address[],uint256[],bytes[])`,"0x6352211e":`ownerOf(uint256)`,"0x70a08231":`balanceOf(address)`,"0x081812fc":`getApproved(uint256)`,"0x95d89b41":`symbol()`,"0xa22cb465":`setApprovalForAll(address,bool)`,"0xa9059cbb":`transfer(address,uint256)`,"0xb61d27f6":`execute(address,uint256,bytes)`,"0xb88d4fde":`safeTransferFrom(address,address,uint256,bytes)`,"0xd0e30db0":`deposit()`,"0xd505accf":`permit(address,address,uint256,uint256,uint8,bytes32,bytes32)`,"0xdd62ed3e":`allowance(address,address)`,"0xe985e9c5":`isApprovedForAll(address,address)`,"0xe7897444":`setUserToken(address)`,"0xf2fde38b":`transferOwnership(address)`}),D=Object.freeze({"0xbb442b54c85efba2d7b81ea52990ad638cdba483":Object.freeze({"0xa4136862":`setGreeting(string)`,"0xef690cc0":`greeting()`,"0x867ae9d4":`dripTo(address,address[])`}),"0xeb7ab5a6f761072c96147a54b8a15f012e836691":Object.freeze({"0xa4136862":`setGreeting(string)`,"0xcfae3217":`greet()`})});function O(e){let t=String(e||``).trim().toLowerCase();if(ce.test(t))return t}function k(e){return v(e)}function A(e,t){let n=_(e);if(!n)return;let r=O(t);if(r){let e=D[r];if(e&&e[n])return e[n]}return E[n]}function j(e,t){let n=A(e,t);if(n){let e=n.indexOf(`(`),t=(e>0?n.slice(0,e):n).trim();if(t)return`${t}()`}let r=_(e);if(r)return`function ${r}`}function le(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function M(e){let t=g(e,{lowercase:!0});if(t===`0x`)return`data: 0x`;let n=t.slice(2);if(!n)return`data: 0x`;if(n.length<=8)return`data: 0x${n}`;let r=n.slice(0,8),i=le(n.slice(8),64);return[`data: 0x${r}`,...i].join(`
|
|
2
2
|
`)}function N(e,t){let n=e/t,r=e%t;if(r===0n)return n.toString();let i=r*100n/t;if(i===0n)return n.toString();let a=i.toString().padStart(2,`0`).replace(/0+$/,``);return a?`${n.toString()}.${a}`:n.toString()}function P(e){return e>=1000000n?`${N(e,1000000n)}mil`:e>=1000n?`${N(e,1000n)}k`:e.toString()}function F(e){try{return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2)}catch{return String(e)}}function I(e,t,n){let r=String(t??``).trim();if(r)return{label:e,value:r,...typeof n==`string`&&n.trim()?{copyValue:n}:{}}}function L(e){let t=g(e.dataHex);if(t!==`0x`&&!(!Array.isArray(e.abi)||e.abi.length===0))return{dataHex:t,abi:e.abi}}function R(e){let t=j(e.selector,e.to),n=!!e.to&&e.dataHex!==`0x`,r=P(e.tx.gasLimit),i=e.to?`Transaction to contract`:`Contract Deployment`,a=I(`Data`,M(e.dataHex),e.dataHex);a&&(a.renderAs=`file-content`,a.hideLabel=!0,a.hideChevron=!0);let o=[a,I(`Value (wei)`,e.valueWei)].filter(Boolean),s;if(n){let n={id:`evm.eip1559.call`,kind:`generic.contractCall`,label:`Calling ${t||`contract function`} using ${r} gas`,to:e.to,value:e.valueWei,selector:e.selector,fields:o},i=L({dataHex:e.dataHex,abi:e.tx.abi});i&&(n.abiDecodeHint=i),s=[n]}return{id:`evm.eip1559`,kind:`generic.contractCall`,label:i,to:e.to,value:e.valueWei,selector:e.selector,...s?{children:s}:{}}}function z(e){let t=e.request;if(t.kind!==`eip1559`)return{chain:`evm`,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`EVM Transaction`,subtitle:e.subtitle,operations:[{id:`evm.raw`,kind:`raw.fallback`,label:`Unsupported EVM Payload`,raw:F(t)}],raw:{format:`json`,value:F(t)}};let n=t.tx,r=n.to==null?void 0:String(n.to).toLowerCase(),i=n.value.toString(),a=g(String(n.data||`0x`)),o=R({to:r,valueWei:i,tx:n,dataHex:a,selector:k(a)}),s=n.value>0n?n.value:void 0;return{chain:`evm`,chainId:n.chainId,intentDigest:e.intentDigest,signerAccount:e.signerAccount,title:e.title||`EVM Transaction`,subtitle:e.subtitle,operations:[o],...s==null?{}:{totals:{nativeValue:s.toString(),nativeSymbol:`wei`}}}}function B(e,t){let n=typeof e==`string`?e.trim():``;if(!/^0x[0-9a-fA-F]+$/.test(n))throw Error(`Invalid ${t} quantity`);return BigInt(n)}function V(e,t,n){let r=e[t];if(r!==void 0){if(r===null)return null;if(typeof r!=`string`)throw Error(`Invalid ${n} result: ${t}`);return r}}function H(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x[0-9a-fA-F]+$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function U(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x[0-9a-fA-F]{40}$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function W(e,t,n){let r=V(e,t,n);if(typeof r==`string`&&!/^0x(?:[0-9a-fA-F]{2})*$/.test(r))throw Error(`Invalid ${n} result: ${t}`);return r}function ue(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getTransactionReceipt result`);let t=e,n=W(t,`transactionHash`,`eth_getTransactionReceipt`),r=U(t,`from`,`eth_getTransactionReceipt`),i=H(t,`blockNumber`,`eth_getTransactionReceipt`),a=H(t,`status`,`eth_getTransactionReceipt`),o=H(t,`gasUsed`,`eth_getTransactionReceipt`),s=H(t,`effectiveGasPrice`,`eth_getTransactionReceipt`),c=H(t,`gasPrice`,`eth_getTransactionReceipt`);return{...n===void 0?{}:{transactionHash:n},...r===void 0?{}:{from:r},...i===void 0?{}:{blockNumber:i},...a===void 0?{}:{status:a},...o===void 0?{}:{gasUsed:o},...s===void 0?{}:{effectiveGasPrice:s},...c===void 0?{}:{gasPrice:c}}}function de(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getBlockByNumber result`);let t=e,n=H(t,`number`,`eth_getBlockByNumber`),r=H(t,`baseFeePerGas`,`eth_getBlockByNumber`);return{...n===void 0?{}:{number:n},...r===void 0?{}:{baseFeePerGas:r}}}function fe(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Invalid eth_getTransactionByHash result: calls`);let t=e,n=U(t,`to`,`eth_getTransactionByHash`),r=W(t,`input`,`eth_getTransactionByHash`),i=W(t,`data`,`eth_getTransactionByHash`),a=H(t,`value`,`eth_getTransactionByHash`);return{...n===void 0?{}:{to:n},...r===void 0?{}:{input:r},...i===void 0?{}:{data:i},...a===void 0?{}:{value:a}}}function pe(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))throw Error(`Invalid eth_getTransactionByHash result`);let t=e,n=H(t,`blockNumber`,`eth_getTransactionByHash`),r=U(t,`from`,`eth_getTransactionByHash`),i=H(t,`nonce`,`eth_getTransactionByHash`),a=U(t,`to`,`eth_getTransactionByHash`),o=W(t,`input`,`eth_getTransactionByHash`),s=H(t,`value`,`eth_getTransactionByHash`),c=t.calls;if(c!=null&&!Array.isArray(c))throw Error(`Invalid eth_getTransactionByHash result: calls`);let l=Array.isArray(c)?c.map(fe):c;return{...n===void 0?{}:{blockNumber:n},...r===void 0?{}:{from:r},...i===void 0?{}:{nonce:i},...a===void 0?{}:{to:a},...o===void 0?{}:{input:o},...s===void 0?{}:{value:s},...l===void 0?{}:{calls:l}}}function me(e){let t=e?.reason;if(t instanceof Error)return t;let n=String(t||``).trim()||`Operation aborted`,r=Error(n);return r.code=`aborted`,r}function G(e){if(e?.aborted)throw me(e)}async function he(e,t){G(t);let n=Math.max(0,Math.floor(Number(e)||0));await new Promise((e,r)=>{let i=null,a=()=>{i&&=(globalThis.clearTimeout(i),null),t?.removeEventListener(`abort`,o)},o=()=>{a(),r(me(t))};i=globalThis.setTimeout(()=>{a(),e()},n),t?.addEventListener(`abort`,o,{once:!0})})}function ge(e){let t=e/1000000000n,n=e%1000000000n;if(n===0n)return t.toString();let r=n.toString().padStart(9,`0`).replace(/0+$/,``);return`${t.toString()}.${r}`}function K(e){let t=String(e||``).trim();return/^0x[0-9a-fA-F]{40}$/.test(t)?t:null}function q(e){let t=String(e||``).trim();return/^0x[0-9a-fA-F]+$/.test(t)?t:null}function _e(e){let t=e.split(/[\s,]+/).map(e=>e.trim()).filter(Boolean).map(e=>new URL(e).toString());if(t.length===0)throw Error(`RPC URL is not configured`);return Array.from(new Set(t))}function J(e){let t=_e(String(e.rpcUrl||``).trim()),n=e.fetchImpl||fetch.bind(globalThis),r=Math.max(1,Math.floor(Number(e.requestTimeoutMs??15e3)||0)),i=async e=>{let i=Math.max(1,Math.floor(Number(e.timeoutMs??r)||0)),a=Date.now(),o=()=>Math.max(1,i-Math.max(0,Date.now()-a)),s=new AbortController,c=async e=>{let t=o(),n=null,r=!1;try{return await new Promise((a,o)=>{n=setTimeout(()=>{if(!r){r=!0;try{e.onTimeout?.()}catch{}o(Error(`${e.label} timed out after ${i}ms`))}},t),e.promise.then(e=>{r||(r=!0,n&&clearTimeout(n),a(e))},e=>{r||(r=!0,n&&clearTimeout(n),o(e))})})}finally{n&&clearTimeout(n)}},l=JSON.stringify({jsonrpc:`2.0`,id:Date.now(),method:e.method,params:e.params}),d=null,f=null;for(let[r,i]of t.entries()){let a=r<t.length-1;s=new AbortController;try{let t=await c({promise:n(i,{method:`POST`,headers:{"content-type":`application/json`},body:l,signal:s.signal}),label:`${e.method} request`,onTimeout:()=>{s.abort()}});if((t.status===429||t.status>=500)&&a){await t.body?.cancel();continue}d=t;break}catch(e){if(f=e,a)continue}}if(!d)throw f?.name===`AbortError`?Error(`${e.method} request timed out after ${i}ms`):f instanceof Error?f:Error(`RPC request failed`);if(d.status===429)throw Error(`RPC throttled; retry shortly`);if(!d.ok)throw Error(`RPC HTTP ${d.status}`);let p=u(await c({promise:d.json(),label:`${e.method} response`,onTimeout:()=>{s.abort();try{d.body?.cancel()}catch{}}}).catch(t=>{throw t?.name===`AbortError`?Error(`${e.method} response timed out after ${i}ms`):t}));if(!p.ok)throw Error(`Invalid ${e.method} response: ${p.error}`);let m=p.value;if(m.kind===`failure`){let t=String(m.error.message||`${e.method} failed`).trim(),n=m.error.code!==void 0&&m.error.code!==null?String(m.error.code).trim():``,r=m.error.data===void 0?``:(()=>{try{return JSON.stringify(m.error.data)}catch{return String(m.error.data)}})(),i=[t];n&&i.push(`code=${n}`),r&&i.push(`data=${r}`);let a=Error(i.join(` | `));throw n&&(a.code=n),m.error.data!==void 0&&(a.data=m.error.data),a.rpcMethod=e.method,a}return m.result},a=async e=>ue(await i({method:`eth_getTransactionReceipt`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),o=async e=>de(await i({method:`eth_getBlockByNumber`,params:[e.blockTag,!1],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),s=async e=>pe(await i({method:`eth_getTransactionByHash`,params:[e.txHash],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}})),c=async e=>B(await i({method:`eth_getTransactionCount`,params:[e.address,e.blockTag??`latest`],...e.timeoutMs==null?{}:{timeoutMs:e.timeoutMs}}),`eth_getTransactionCount`);return{request:i,getTransactionReceipt:a,getBlockByNumber:o,getTransactionByHash:s,getTransactionCount:c,waitForTransactionReceipt:async e=>{let t=Math.max(1,Math.floor(Number(e.timeoutMs??9e4)||0)),n=Math.max(1,Math.floor(Number(e.pollIntervalMs??1250)||0)),i=Math.max(1,Math.floor(Number(e.confirmations??1)||0)),l=Date.now()+t,u=Date.now(),d=Math.min(3e4,Math.max(n*3,Math.floor(t/3))),f=Math.min(15e3,Math.max(n*3,Math.floor(t/6))),p=Math.min(1e4,Math.max(n*3,Math.floor(t/5))),m=null,h=null,g=null,_=null,v=0,y=!1,b=0,x=0,S=0;for(K(e.transactionSenderAddress)&&(g=e.transactionSenderAddress),typeof e.nonceHint==`bigint`&&e.nonceHint>=0n&&(_=e.nonceHint);Date.now()<l;){G(e.signal);let C=null;try{let t=Math.max(1,l-Date.now());C=await a({txHash:e.txHash,timeoutMs:Math.min(r,t)}),m=null}catch(e){m=e instanceof Error?e.message:String(e)}if(C&&typeof C==`object`&&typeof C.blockNumber==`string`){let t=q(C.blockNumber);if(!t)throw Error(`Receipt missing valid blockNumber`);let a=B(t,`receipt.blockNumber`);if(i<=1)return C;let s=Math.max(1,l-Date.now()),c=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,s)}).catch(()=>null))?.number);if(c){let e=B(c,`latest.number`);if(e>=a&&e-a+1n>=BigInt(i))return C}await he(n,e.signal);continue}let w;if(g===null||_===null||!y){let t=Math.max(1,l-Date.now()),n=await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null);w=n;let i=K(n?.from),a=q(n?.nonce);if(i&&a){let e=B(a,`tx.nonce`);g===null&&(g=i),_===null&&(_=e),g.toLowerCase()===i.toLowerCase()&&_===e&&(y=!0,b=0,x=0)}}if(g&&_!==null){let t=g,n=_,m=e=>{let r=K(e?.from),i=q(e?.nonce);if(!r||!i||r.toLowerCase()!==t.toLowerCase())return!1;try{return B(i,`tx.nonce`)===n}catch{return!1}},h=Math.max(1,l-Date.now()),C=await c({address:g,blockTag:`latest`,timeoutMs:Math.min(r,h)}).catch(()=>null);if(C!==null&&C>_){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;w=n;let u=q(n?.blockNumber);if(m(n)&&(y=!0),u)v=0,b=0,x=0;else if(m(n))v=0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?(v=0,x=0):(v+=1,x=0)}if(v>=2){let t=Math.max(1,l-Date.now()),n=await a({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null);if(n&&typeof n.blockNumber==`string`){let e=q(n.blockNumber);if(e){let t=B(e,`receipt.blockNumber`);if(i<=1)return n;let a=Math.max(1,l-Date.now()),s=q((await o({blockTag:`latest`,timeoutMs:Math.min(r,a)}).catch(()=>null))?.number);if(s){let e=B(s,`latest.number`);if(e>=t&&e-t+1n>=BigInt(i))return n}v=0}}if(v>=2){let e=Error(`Transaction dropped or replaced: account nonce advanced past tx nonce (${_.toString()} -> ${C.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_nonce_advanced`,e}}}else if(C!==null&&C<=_){if(v=0,C<_&&!y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))y=!0,S=0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?(S+=1,b=0,x=0):t!==null&&t>_?(S=0,b=0,x+=1):(S=0,b=0,x=0)}let i=Date.now()-u;if(S>=2&&i>=p){let e=Error(`Transaction dropped or queued behind a nonce gap: tx hash never became visible while account nonce stayed behind tx nonce (${C.toString()} < ${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_nonce_gap`,e}if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash never became visible and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}if(y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t<=_?x=0:t!==null&&t>_?x+=1:x=0}let i=Date.now()-u;if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash disappeared and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}if(!y){let t=Math.max(1,l-Date.now()),n=w===void 0?await s({txHash:e.txHash,timeoutMs:Math.min(r,t)}).catch(()=>null):w;if(w=n,m(n))y=!0,b=0,x=0;else{let e=Math.max(1,l-Date.now()),t=await c({address:g,blockTag:`pending`,timeoutMs:Math.min(r,e)}).catch(()=>null);t!==null&&t===_&&C===_?(b+=1,x=0):t!==null&&t>_?(b=0,x+=1):(b=0,x=0)}let i=Date.now()-u;if(b>=3&&i>=d){let e=Error(`Transaction dropped or replaced: tx hash never became visible to RPC pending pool at nonce ${_.toString()}.`);throw e.code=`tx_dropped_or_replaced`,e.reason=`dropped`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}if(x>=2&&i>=f){let e=Error(`Transaction dropped or replaced: tx hash never became visible and pending nonce moved ahead of tx nonce (${_.toString()}).`);throw e.code=`tx_dropped_or_replaced`,e.reason=`replaced`,e.txNonce=_.toString(),e.latestNonce=C.toString(),e.txFrom=g,e.finalizationBranch=`dropped_hash_disappeared`,e}}}}if(typeof e.maxFeePerGasHint==`bigint`){let n=Math.max(1,l-Date.now()),i=await o({blockTag:`latest`,timeoutMs:Math.min(r,n)}).catch(()=>null),a=String(i?.baseFeePerGas||``).trim();if(/^0x[0-9a-fA-F]+$/.test(a)){let n=null;try{n=B(a,`baseFeePerGas`)}catch{n=null}if(n!==null&&n>e.maxFeePerGasHint){h===null&&(h=Date.now());let r=Math.min(3e4,Math.floor(t/3));if(Date.now()-h>=r){let t=Error(`Transaction pending due to underpriced fees: maxFeePerGas=${ge(e.maxFeePerGasHint)} gwei, latest baseFee=${ge(n)} gwei. Retry to re-sign with refreshed fee caps.`);throw t.finalizationBranch=`underpriced_fee`,t}}else h=null}}await he(n,e.signal)}G(e.signal);let C=m?`; last RPC error: ${m}`:``,w=Error(`Timed out waiting for tx receipt after ${t}ms${C}`);throw w.finalizationBranch=`timeout`,w}}}function ve(e){let t=o(e.subjectId),n=X(e.leaseId,`leaseId`),r=X(e.operationId,`operationId`),i=X(e.operationFingerprint,`operationFingerprint`),a={chainTarget:e.chainTarget,subjectId:t,sender:Re(e.sender),nonce:Y(e.nonce,`nonce`).toString(),leaseId:n,operationId:r,operationFingerprint:i};return e.nonceKey!=null&&(a.nonceKey=Y(e.nonceKey,`nonceKey`).toString()),Number.isSafeInteger(e.reservedAtMs)&&(a.reservedAtMs=e.reservedAtMs),Number.isSafeInteger(e.expiresAtMs)&&(a.expiresAtMs=e.expiresAtMs),a}function ye(e){if(!e||typeof e!=`object`)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: object`);let t=Ie(e),n=o(e.subjectId??e.walletId),r=Re(e.sender),i=Y(e.nonce,`nonce`),a=e.nonceKey==null?void 0:Y(e.nonceKey,`nonceKey`),s=X(e.leaseId,`leaseId`),c=X(e.operationId,`operationId`),l=X(e.operationFingerprint,`operationFingerprint`),u=Be(e.reservedAtMs),d=Be(e.expiresAtMs);return{chainTarget:t,subjectId:n,sender:r,...a==null?{}:{nonceKey:a},nonce:i,leaseId:s,operationId:c,operationFingerprint:l,...u==null?{}:{reservedAtMs:u},...d==null?{}:{expiresAtMs:d}}}function be(e){let t={chainTarget:s({chain:e.chain,chainId:e.chainId,networkSlug:e.networkKey}),subjectId:o(e.walletId),sender:Re(e.sender)};return e.nonceKey!=null&&(t.nonceKey=Y(e.nonceKey,`nonceKey`)),t}const xe=15e3;function Se(e){return{async fetchChainNonce(t){let n=Fe(t);return await e.fetchChainNonce(n)},async fetchBroadcastTransactionStatus(t){let n=Fe(t);return await e.fetchBroadcastTransactionStatus({...n,txHash:ze(t.txHash)})}}}function Ce(e){let t=e.fetchImpl||fetch.bind(globalThis);return Se({fetchChainNonce:async n=>await Ee({chains:e.chains,input:n,fetchImpl:t}),fetchBroadcastTransactionStatus:async n=>await we({chains:e.chains,input:n,fetchImpl:t})})}async function we(e){let t=De(e.chains,e.input),n=await Te({rpcUrl:t,method:`eth_getTransactionReceipt`,params:[e.input.txHash],fetchImpl:e.fetchImpl});if(n&&typeof n==`object`)return{kind:`finalized`};let r=await Te({rpcUrl:t,method:`eth_getTransactionByHash`,params:[e.input.txHash],fetchImpl:e.fetchImpl});return r&&typeof r==`object`?{kind:`pending`}:{kind:`missing`}}async function Te(e){return await J({rpcUrl:e.rpcUrl,fetchImpl:e.fetchImpl,requestTimeoutMs:xe}).request({method:e.method,params:e.params})}async function Ee(e){return Ve(await J({rpcUrl:De(e.chains,e.input),fetchImpl:e.fetchImpl,requestTimeoutMs:xe}).request({method:`eth_getTransactionCount`,params:[e.input.sender,`pending`]}),`eth_getTransactionCount`)}function De(e,n){let r=n.chain,i=n.chainId,a=String(n.networkKey||``).trim().toLowerCase(),o=e=>e.filter(e=>{let t=Me(e);return typeof t==`number`&&t===i}),s=e=>e.filter(e=>String(e.network||``).trim().toLowerCase()===a),c=e.filter(e=>Oe(e));if(!c.length)throw Error(`[evmNonceBackend] missing RPC config for nonce-enabled chains`);let l=s(c);if(l.length===1){let e=l[0];return je({chain:e,requestedChain:r,networkKey:n.networkKey,chainId:i}),Ae({chain:e,chainId:i,networkKey:n.networkKey}),Pe(e.rpcUrl,e.network)}if(l.length>1){let e=o(l).filter(e=>ke(e,r));if(e.length===1){let t=e[0];return Pe(t.rpcUrl,t.network)}throw Error(`[evmNonceBackend] ambiguous networkKey mapping for ${n.networkKey} (chainId=${String(i)})`)}let u=o(c),d=u.filter(e=>ke(e,r));if(d.length===1){let e=d[0];return Pe(e.rpcUrl,e.network)}if(d.length>1){let e=d.map(e=>String(e.network||``).trim()).join(`, `);throw Error(`[evmNonceBackend] ambiguous chainId routing for ${r} chainId=${String(i)} across [${e}]`)}if(u.length>0){let e=Array.from(new Set(u.map(e=>t(e.network))));throw Error(`[evmNonceBackend] chainId=${String(i)} is configured for [${e.join(`, `)}] but is incompatible with ${r} routing`)}throw Error(`[evmNonceBackend] unable to resolve RPC URL for ${r} ${n.networkKey} (chainId=${String(i)})`)}function Oe(e){let n=t(e.network);return n===`evm`||n===`tempo`}function ke(e,n){let r=t(e.network);return n===`tempo`?r===`tempo`:r===`evm`||r===`tempo`}function Ae(e){let t=Me(e.chain);if(typeof t!=`number`)throw Error(`[evmNonceBackend] configured network ${e.chain.network} is missing numeric chainId`);if(t!==e.chainId)throw Error(`[evmNonceBackend] chainId mismatch for network ${e.networkKey}: expected ${t}, received ${String(e.chainId)}`)}function je(e){if(ke(e.chain,e.requestedChain))return;let n=t(e.chain.network);throw Error(`[evmNonceBackend] network ${e.networkKey} (family=${n}) is incompatible with ${e.requestedChain} request (chainId=${String(e.chainId)})`)}function Me(e){return Ne(e)?e.chainId:void 0}function Ne(e){return t(e.network)!==`near`}function Pe(e,t){let n=String(e||``).trim();if(!n)throw Error(`[evmNonceBackend] missing rpcUrl for ${t}`);return n}function Fe(e){let t=e.chainTarget.kind;if(t!==`evm`&&t!==`tempo`)throw Error(`[evmNonceBackend] invalid chain '${String(t)}'`);let n=String(e.chainTarget.networkSlug||``).trim().toLowerCase();if(!n)throw Error(`[evmNonceBackend] networkKey is required`);return{chain:t,networkKey:n,chainId:e.chainTarget.chainId,sender:Le(e.sender,`sender`),nonceKey:t===`tempo`?Y(e.nonceKey,`nonceKey`):0n,walletId:String(o(e.subjectId))}}function Ie(e){if(e.chainTarget)return a(e.chainTarget);let t=e.chain;if(t!==`evm`&&t!==`tempo`)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: chain`);let n=String(e.networkKey||``).trim();if(!n)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: networkKey`);let r=e.chainId;if(typeof r!=`number`||!Number.isSafeInteger(r)||r<=0)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: chainId`);return s({chain:t,chainId:r,networkSlug:n})}function Le(e,t){let n=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw Error(`[evmNonceBackend] invalid ${t}: expected 20-byte 0x-prefixed hex`);return n}function Re(e){return Le(e,`sender`)}function ze(e){let t=String(e||``).trim().toLowerCase();if(!/^0x[0-9a-f]{64}$/.test(t))throw Error(`[evmNonceBackend] invalid txHash: expected 32-byte 0x-prefixed hex`);return t}function Y(e,t){try{let n=BigInt(e);if(n<0n)throw Error(`[evmNonceBackend] ${t} must be non-negative`);return n}catch{throw Error(`[evmNonceBackend] invalid ${t}: expected bigint-compatible value`)}}function X(e,t){let n=String(e||``).trim();if(!n)throw Error(`[evmNonceBackend] invalid managed nonce snapshot: ${t}`);return n}function Be(e){if(e==null)return;let t=Math.floor(Number(e));return Number.isSafeInteger(t)?t:void 0}function Ve(e,t){let n=String(e||``).trim();if(!/^0x[0-9a-fA-F]+$/.test(n))throw Error(`[evmNonceBackend] invalid ${t} result: expected hex quantity`);return BigInt(n)}function He(e){return e.kind===`required`?e.authPlan.signingAuthPlan:void 0}async function Ue(e){let t=He(e.thresholdEcdsaStepUp),n=e.thresholdEcdsaStepUp.kind===`required`?e.thresholdEcdsaStepUp.runtime:void 0,r=n?.reusableAuthorization??{kind:`active`},i=We({signingAuthPlan:t,hasEmailOtpSigning:!!n?.emailOtpSigning,hasThresholdEcdsaRequest:e.hasThresholdEcdsaRequest,needsWebAuthn:e.needsWebAuthn,reusableAuthorization:r});if(!i)throw Error(`[chains] ${e.explicitAuthErrorLabel} signing requires explicit auth input`);let a=await ie({operation:{kind:`evm_family_threshold_ecdsa_step_up`,usesNeeded:Math.max(1,Math.floor(Number(e.requiredSignatureUses)||1))},selectedLane:i,policy:Ge(t,r),methods:{...n?.emailOtpSigning?{emailOtp:{method:`email_otp`,prepareChallenge:n.emailOtpSigning.prepare,...n.emailOtpSigning.resend?{resendChallenge:n.emailOtpSigning.resend}:{},complete:async()=>void 0}}:{},passkey:{method:`passkey`,prepare:async()=>({}),complete:async()=>void 0}}});if(a.method===`warm_session`){if(!t||!Ke(t))throw Error(`[chains] warm-session step-up requires an existing warm-session plan`);return{kind:`warm_session`,confirmationAuthPayload:{signingAuthPlan:t}}}if(a.method===`email_otp`){let e=qe({signingAuthPlan:t,prepared:a});if(!S(e))throw Error(`[chains] Email OTP step-up requires an Email OTP signing auth plan`);return{kind:`email_otp`,confirmationAuthPayload:{signingAuthPlan:e},emailOtpPrompt:a.prompt}}let o=qe({signingAuthPlan:t,prepared:a});if(!b(o))throw Error(`[chains] passkey step-up requires a passkey signing auth plan`);return{kind:`passkey`,confirmationAuthPayload:{signingAuthPlan:o}}}function We(e){return e.reusableAuthorization.kind===`absent`?{authMethod:e.reusableAuthorization.requiredFactor}:e.signingAuthPlan?S(e.signingAuthPlan)?{authMethod:`email_otp`}:b(e.signingAuthPlan)?{authMethod:`passkey`}:{authMethod:e.signingAuthPlan.method}:e.hasEmailOtpSigning?{authMethod:`email_otp`}:!e.hasThresholdEcdsaRequest&&e.needsWebAuthn?{authMethod:`passkey`}:null}function Ge(e,t){if(t.kind===`absent`)return{kind:`use_selected_lane`};if(e&&y(e)){if(e.curve!==`ecdsa`)throw Error(`[chains] EVM-family warm-session step-up requires an ECDSA auth plan`);return{kind:`reuse_warm_session`,authorization:{method:e.method,curve:`ecdsa`,materialActivation:e.materialActivation,authorization:e.authorization,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}}return{kind:`use_selected_lane`}}function Ke(e){return y(e)&&e.curve===`ecdsa`}function qe(e){if(e.signingAuthPlan)return e.prepared.method===`email_otp`?{kind:`emailOtpReauth`,method:`email_otp`,emailOtpPrompt:e.prepared.prompt}:e.prepared.method===`passkey`&&!b(e.signingAuthPlan)?{kind:`passkeyReauth`,method:`passkey`}:e.signingAuthPlan;if(e.prepared.method===`email_otp`)return{kind:`emailOtpReauth`,method:`email_otp`,emailOtpPrompt:e.prepared.prompt};if(e.prepared.method===`passkey`)return{kind:`passkeyReauth`,method:`passkey`};throw Error(`[chains] warm-session step-up requires an existing signing auth plan`)}function Je(e){return{kind:`warm_session`,signingAuthPlan:e.signingAuthPlan,materialActivation:e.signingAuthPlan.materialActivation,authorization:e.signingAuthPlan.authorization,expiresAtMs:e.signingAuthPlan.expiresAtMs,remainingUses:e.signingAuthPlan.remainingUses}}function Ye(e){return{kind:`email_otp`,signingAuthPlan:e.signingAuthPlan,challengeId:$e(e.confirmation.emailOtpChallengeId,e.prompt,`EVM-family step-up authorization`),otpCode:Qe(e.confirmation.otpCode),...e.prompt.emailHint?{emailHint:e.prompt.emailHint}:{}}}function Xe(e){if(!e.confirmation.credential)throw Error(`[chains] missing WebAuthn credential for EVM-family step-up authorization`);return{kind:`passkey`,signingAuthPlan:e.signingAuthPlan,credential:f(e.confirmation.credential)}}function Ze(e){if(e.prepared.kind===`active_wallet_authority`)throw Error(`[chains] active Wallet Authority confirmation has no threshold step-up`);return e.prepared.kind===`warm_session`?Je({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan}):e.prepared.kind===`email_otp`?Ye({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,prompt:e.prepared.emailOtpPrompt,confirmation:e.confirmation}):Xe({signingAuthPlan:e.prepared.confirmationAuthPayload.signingAuthPlan,confirmation:e.confirmation})}function Qe(e){let t=String(e||``).trim();if(!/^\d{6}$/.test(t))throw Error(`[chains] missing Email OTP code from touchConfirm`);return t}function $e(e,t,n){let r=String(e||t.challengeId||``).trim();if(!r)throw Error(`[chains] missing Email OTP challenge id for ${n}`);return r}const et=`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`,tt=`pending-intent-digest`,Z=new Map;function nt(e){return String(e||``).trim()}function rt(e){let t=nt(e.requestId);t&&Z.set(t,e.preparation)}function it(e){let t=nt(e);if(!t)return;let n=Z.get(t);if(n)return Z.delete(t),n}function at(e){let t=nt(e);t&&Z.delete(t)}var Q=class extends Error{superseded;constructor(e){super(`[chains] threshold ECDSA material was superseded (${e.supersessionKind}): prepared ${String(e.preparedMaterialActivation.activationId)}, current ${String(e.currentMaterialActivation.activationId)}`),this.name=`EvmFamilyEcdsaMaterialSupersededError`,this.superseded=e}};function ot(e){return e instanceof Q}function st(e){return e.curve===`ed25519`?{curve:e.curve,thresholdSessionId:e.thresholdSessionId,expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}:{curve:e.curve,materialActivationId:String(e.materialActivation.activationId),expiresAtMs:e.expiresAtMs,remainingUses:e.remainingUses}}function ct(e){switch(e.kind){case`material_for_step_up`:return e.material;case`material_from_canonical_capability`:case`material_from_step_up`:return e.material.signerSession}}function lt(e){return typeof e?.signReady==`function`}async function ut(t){let a=String(t.operationFingerprint||``).trim();if(!a)throw Error(`[chains] exact EVM signing operation fingerprint digest is required`);return{laneDigest:p(d.signingOperationFingerprint(a)),intentDigest:i(n(t.signingDigest32)),displayDigest:await r(e(t.displayModel))}}function dt(e){return{intentDigest:e.intentDigestHex,challengeB64u:e.challengeB64u,displayModel:e.displayModel}}function ft(e,t){return String(e.laneDigest)===String(t.laneDigest)&&String(e.intentDigest)===String(t.intentDigest)&&String(e.displayDigest)===String(t.displayDigest)}function pt(e){if(e.prepared.operation!==e.operation)throw Error(`[chains] prepared ECDSA operation step-up does not match the operation being signed`);if(!ft(e.prepared.operationDigests,e.operationDigests))throw Error(`[chains] prepared ECDSA operation step-up digest drift`)}function mt(e){if(!e.prepared)throw Error(`[chains] passkey ECDSA step-up requires an operation prepared before confirmation`);let t=String(e.prepared.prepared.challengeB64u||``).trim();if(!t||t!==String(e.challengeB64u||``).trim())throw Error(`[chains] passkey ECDSA step-up challenge does not match the prepared operation`);return t}function $(e){throw Error(`[chains] unsupported EVM-family signing authorization: ${String(e)}`)}async function ht(e){switch(e.authorization.kind){case`active_wallet_authority`:return{kind:`active_wallet_authority`,confirmationAuthPayload:{signingAuthPlan:e.authorization.confirmationAuthPlan}};case`owner`:return await Ue({thresholdEcdsaStepUp:e.thresholdEcdsaStepUp,hasThresholdEcdsaRequest:e.hasThresholdEcdsaRequest,needsWebAuthn:e.needsWebAuthn,requiredSignatureUses:e.requiredSignatureUses,explicitAuthErrorLabel:e.explicitAuthErrorLabel});default:return $(e.authorization)}}function gt(e){if(e.input.authorization.kind!==`active_wallet_authority`)throw Error(`[chains] pending active Wallet Authority confirmation requires exact authorization`);return{ctx:{touchConfirm:e.input.touchConfirm},sessionId:e.sessionId,chain:e.config.targetKind,kind:`intentDigest`,signingSubject:{kind:`evm_wallet`,walletId:e.input.walletId},signingAuthPlan:e.input.authorization.confirmationAuthPlan,challengeB64u:et,intentDigest:tt,displayModel:e.config.buildDisplayModel({request:e.input.request,signerAccount:e.input.walletId,title:e.config.title,subtitle:e.config.body}),title:e.config.title,body:e.config.body,confirmationConfigOverride:e.input.confirmationConfigOverride}}async function _t(e){let t=String(e.operation.intent.operationId);m(t,`material_queue`,e.queuedAt);let n=performance.now(),r=await e.resolveMaterial(e.request,e.operation,e.operationDigests);return m(t,`material_authorization`,n),await e.engine.signReady(e.request,r.material,e.operation,e.operationDigests)}async function vt(e){let{config:t,input:r}=e,i=w(`intent`),a=`signing:${t.flowName}:${r.walletId}:${i}`,o=r.request.senderSignatureAlgorithm===`secp256k1`,s=r.thresholdEcdsaStepUp,u=s.kind===`not_required`?void 0:s.runtime,d=He(s),p=r.authorization.kind===`owner`&&s.kind===`required`&&(s.runtime.reusableAuthorization.kind===`absent`||!y(s.authPlan.signingAuthPlan));if(o&&!d)switch(r.authorization.kind){case`owner`:throw Error(`[chains] threshold ECDSA transaction signing requires an explicit auth plan`);case`active_wallet_authority`:break;default:$(r.authorization)}let g=d??(r.authorization.kind===`active_wallet_authority`?r.authorization.confirmationAuthPlan:null),_=g?re(g):`passkey`,v=e=>{try{r.onEvent?.(c({...e,flowId:a,walletId:r.walletId,authMethod:_}))}catch{}},b=new Set,S=e=>{if(!b.has(e)){b.add(e);try{u?.onAuthSideEffectStarted?.(e)}catch{}}},ie=e=>{e.phase===`auth.passkey.prompt.started`&&S(`passkey_reauth`);let t=te(e,_);t&&v(t)},ce=async(e,t)=>{let n=async e=>{await t[e]?.()};if(!r.signingSessionPlan){await C({commands:e,execute:n});return}let i=await oe({steps:ae(se({sessionPlan:r.signingSessionPlan,operation:r.signingOperation||null,commands:e})),executor:{execute:async e=>{await n(e.kind)}},onTransition:r.onSigningOperationTransition});if(!i.ok)throw i.error;if(i.finalState.kind===`failed`)throw Error(i.finalState.reason)},E=t.webauthn.kind===`supported`&&t.webauthn.requestNeedsWebAuthn(r.request),D=r.request,O=null,k=!1,A=!1,j=s.kind===`required`?s.operation:null,le=async()=>{if(j)return j;throw Error(`[chains] threshold ECDSA transaction signing requires an operation`)},M=async()=>{if(!(k||!O||!r.releaseNonceReservation)){k=!0;try{await r.releaseNonceReservation(O)}catch{}}},N=async()=>{if(!O)return;let e=String(O.leaseId||``).trim(),n=String(O.operationId||``).trim(),i=String(O.operationFingerprint||``).trim();if(!e||!n||!i)throw Error(`[chains] managed ${t.nonceErrorLabel} nonce reservation is missing lease metadata`);await r.ctx.nonceCoordinator.markSigned({leaseId:e,operationId:n,operationFingerprint:i})},P=null,F=null,I=(async()=>{if(r.prepareRequestWithManagedNonce){let e=await r.prepareRequestWithManagedNonce();D=e.request,O=e.reservation}let e=await t.buildIntent({workerCtx:r.workerCtx,request:D});t.webauthn.kind===`supported`&&t.webauthn.validateIntent(e);let i=e.signRequests[0];if(!i)throw Error(`[chains] signing intent has no sign requests`);let a=ee(i),o=h(a),s=t.buildDisplayModel({request:D,intentDigest:o,signerAccount:r.walletId,title:t.title,subtitle:t.body}),c=n(a);if(p&&i.algorithm===`secp256k1`&&u&&j&&r.resolveEcdsaSigningMaterialPlan){let e=await ut({operationFingerprint:r.signingOperation?.operationFingerprint,signingDigest32:ee(i),displayModel:s}),t=await r.resolveEcdsaSigningMaterialPlan();switch(t.kind){case`ready`:P=t.value;break;case`authorization_required`:P=t.requirement;break;case`superseded`:throw new Q(t.replacement);case`failed`:throw Error(`[chains] threshold ECDSA material is unavailable: ${t.failure.reason}`)}let n=P;if(!n)throw Error(`[chains] ECDSA preparation did not produce signing material`);let a=await u.operationStepUp.prepare({operation:j,operationDigests:e,material:ct(n)});F={prepared:a,operation:j,operationDigests:e},c=a.challengeB64u}return{intent:e,challengeB64u:c,intentDigestHex:o,displayModel:s}})();r.authorization.kind===`active_wallet_authority`&&rt({requestId:i,preparation:I.then(dt)});let L=null,R=null,z=null,B=null,V=!1,H=null,U=async(e,t,n)=>{if(r.resolveEcdsaSigningMaterialPlan){let e=await r.resolveEcdsaSigningMaterialPlan();switch(e.kind){case`ready`:P=e.value;break;case`authorization_required`:P=e.requirement;break;case`superseded`:throw new Q(e.replacement);case`failed`:throw Error(`[chains] threshold ECDSA material is unavailable: ${e.failure.reason}`)}}let i=P;if(!i)throw Error(`[chains] missing ready threshold ECDSA material for secp256k1 signing`);if(!R||R.kind===`warm_session`){if(i.kind===`material_for_step_up`)throw Error(`[chains] auth-neutral ECDSA material reached signing without a same-method step-up`);return i}if(!u)throw Error(`[chains] ECDSA operation step-up runtime is unavailable`);let a=F;if(!a)throw Error(`[chains] ECDSA step-up signing requires an operation prepared before confirmation`);return pt({prepared:a,operation:t,operationDigests:n}),{kind:`material_from_step_up`,material:await u.operationStepUp.authorize({authorization:R,prepared:a.prepared,material:ct(i)})}},W=async()=>{if(r.authorization.kind===`active_wallet_authority`){v({phase:l.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,interaction:{kind:`transaction_confirmation`,overlay:`show`}}),r.onConfirmationDisplayed?.();let e=gt({config:t,input:r,sessionId:i});z=await ne({runtime:r.touchConfirm,request:e})(),B=await I,V=B.intent.signRequests.some(e=>e.algorithm===`secp256k1`);let n=await ht({authorization:r.authorization,thresholdEcdsaStepUp:s,hasThresholdEcdsaRequest:o,needsWebAuthn:E,requiredSignatureUses:t.requiredSignatureUsesForRequest(r.request),explicitAuthErrorLabel:t.explicitAuthErrorLabel});if(!y(n.confirmationAuthPayload.signingAuthPlan)&&!x(n.confirmationAuthPayload.signingAuthPlan))throw Error(`[chains] active Wallet Authority signing requires a session auth plan`);L=n;let a=n.confirmationAuthPayload.signingAuthPlan;v({phase:l.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:x(a)?{walletSessionId:String(a.walletSessionId),expiresAtMs:a.expiresAtMs,authorityId:String(a.authorityId),authMethodId:String(a.authMethodId)}:st(a)}),S(`auth_confirmed`),v({phase:l.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}});return}B=await I,V=B.intent.signRequests.some(e=>e.algorithm===`secp256k1`),v({phase:l.STEP_05_CONFIRMATION_DISPLAYED,status:`waiting_for_user`,interaction:{kind:`transaction_confirmation`,overlay:`show`}}),r.onConfirmationDisplayed?.();let e=await ht({authorization:r.authorization,thresholdEcdsaStepUp:s,hasThresholdEcdsaRequest:o,needsWebAuthn:E,requiredSignatureUses:t.requiredSignatureUsesForRequest(r.request),explicitAuthErrorLabel:t.explicitAuthErrorLabel});L=e;let n=e.confirmationAuthPayload;if(y(n.signingAuthPlan)||x(n.signingAuthPlan)){let e=n.signingAuthPlan;v({phase:l.STEP_06_AUTH_WARM_SESSION_CLAIMED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:x(e)?{walletSessionId:String(e.walletSessionId),expiresAtMs:e.expiresAtMs,authorityId:String(e.authorityId),authMethodId:String(e.authMethodId)}:st(e)})}let a={ctx:{touchConfirm:r.touchConfirm},sessionId:i,chain:t.targetKind,kind:`intentDigest`,signingSubject:{kind:`evm_wallet`,walletId:r.walletId},challengeB64u:B.challengeB64u,intentDigest:B.intentDigestHex,displayModel:B.displayModel,title:t.title,body:t.body,onProgress:ie,confirmationConfigOverride:r.confirmationConfigOverride},c=e.kind===`passkey`?{...a,...e.confirmationAuthPayload,webauthnChallenge:{kind:`intent_digest`,challengeB64u:mt({prepared:F,challengeB64u:B.challengeB64u})}}:e.kind===`email_otp`?{...a,...e.confirmationAuthPayload,emailOtpPrompt:e.emailOtpPrompt}:{...a,...e.confirmationAuthPayload};z=await ne({runtime:r.touchConfirm,request:c})();let u=z;if(!u)throw Error(`[chains] signing confirmation did not produce a decision`);switch(S(`auth_confirmed`),r.authorization.kind){case`owner`:R=Ze({prepared:e,confirmation:u});break;default:$(r.authorization)}v({phase:l.STEP_05_CONFIRMATION_APPROVED,status:`succeeded`,interaction:{kind:`transaction_confirmation`,overlay:`hide`}})},ue=async()=>{if(!B)throw Error(`[chains] signing intent must be prepared before threshold admission`);if(!z)throw Error(`[chains] signing confirmation is required before threshold admission`);if(!L)throw Error(`[chains] signing auth payload is required before threshold admission`);switch(r.authorization.kind){case`owner`:if(!R)throw Error(`[chains] signing step-up authorization is required before threshold admission`);if(V&&!j)throw Error(`[chains] threshold ECDSA operation must be prepared before signing`);break;case`active_wallet_authority`:break;default:$(r.authorization)}},de=async()=>{let e=performance.now();if(!B)throw Error(`[chains] signing intent must be prepared before signing`);if(!z)throw Error(`[chains] signing confirmation must complete before signing`);let n=B.intent;V&&v({phase:l.STEP_10_COMMIT_STARTED,status:`running`,interaction:{kind:`none`,overlay:`none`}});let a=[];for(let e of n.signRequests){let n;if(e.kind===`webauthn`){if(t.webauthn.kind!==`supported`)throw Error(`[chains] WebAuthn signing is not supported for this chain`);if(!z.credential)throw Error(`[chains] missing WebAuthn credential from touchConfirm`);n=(await t.webauthn.resolveKeyRef({ctx:r.ctx,walletId:r.walletId,workerCtx:r.workerCtx,signReq:e,credential:f(z.credential)})).keyRef}else if(e.algorithm===`secp256k1`){let t=await ut({operationFingerprint:r.signingOperation?.operationFingerprint,signingDigest32:e.digest32,displayModel:B.displayModel});switch(r.authorization.kind){case`active_wallet_authority`:{let n=r.signingOperation?.operationId;if(!n)throw Error(`[chains] active Wallet Authority ECDSA signing requires an operation id`);a.push(await r.authorization.sign({requestId:i,operationId:String(n),operationDigests:t,signingDigest32:e.digest32}));continue}case`owner`:break;default:$(r.authorization)}let n=await le(),o=r.engines.secp256k1;if(!o)throw Error(`[chains] missing engine for algorithm: ${e.algorithm}`);if(!lt(o))throw Error(`[chains] secp256k1 signing engine requires ready material support`);if(!r.runEcdsaMaterialUse)throw Error(`[chains] secp256k1 signing requires exact material serialization`);a.push(await r.runEcdsaMaterialUse(_t.bind(void 0,{request:e,engine:o,operation:n,operationDigests:t,queuedAt:performance.now(),resolveMaterial:U})));continue}else throw Error(`[chains] unsupported ${t.explicitAuthErrorLabel} signing algorithm: ${e.algorithm}`);let o=r.engines.webauthnP256;if(!o)throw Error(`[chains] missing engine for algorithm: ${e.algorithm}`);a.push(await o.sign(e,n))}let o=performance.now();H=await n.finalize(a),A=!0,await N();let s=null;j?s=String(j.intent.operationId):r.authorization.kind===`active_wallet_authority`&&r.signingOperation&&(s=String(r.signingOperation.operationId)),s!==null&&(m(s,`transaction_assembly`,o),m(s,`commit_total`,e)),v({phase:l.STEP_11_TRANSACTION_SIGNED,status:`succeeded`,interaction:{kind:`none`,overlay:`hide`}}),v({phase:l.STEP_15_COMPLETED,status:`succeeded`,interaction:{kind:`none`,overlay:`none`},data:{operation:`sign`}})};try{if(await ce([T.ShowConfirmation,T.PreparePayload,T.Sign],{[T.ShowConfirmation]:W,[T.PreparePayload]:ue,[T.Sign]:de}),!H)throw Error(`[chains] signing operation completed without a signed result`);let e=H;return O?{...e,managedNonce:ve(O)}:e}catch(e){throw A||(O?await M():r.releaseNonceReservation&&await I.then(async()=>{await M()}).catch(()=>void 0)),e}}export{tt as a,Ce as c,J as d,z as f,k as g,j as h,et as i,ye as l,M as m,ot as n,at as o,P as p,vt as r,it as s,Q as t,be as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,r as t}from"./domainIds-C3fUa33Q.js";import{k as n}from"./chains-CPmd4s9f.js";import{A as r,D as i,k as a}from"./primitives-cC0a9GRC.js";import{r as o}from"./base64-DW79QA0h.js";import{c as s}from"./ecdsaChainTarget-DkOrgv4y.js";import{a as c,c as l}from"./walletAuthority-v5wvv3IB.js";import{D as u,Dt as d,Et as f,G as p,Kt as m,Nt as h,P as g,T as _,V as v,X as y,Y as b,d as x,en as S,f as C,jt as w,m as T,mt as E,o as ee,p as te,tn as D}from"./emailOtpEcdsaDerivationIdentity-BDVjvnmO.js";import{v as O,y as k}from"./challengeDelivery-FD9GHK1T.js";import{p as A}from"./ecdsaDerivationClientWasm-DQlajPpE.js";import{a as j,n as M}from"./walletSessionFailure-C6TAQTZn.js";import{a as N}from"./clientSessionPersistenceState-BHRUSWMt.js";import{t as P}from"./bytes-DZRW2UDg.js";const F=new Map;function I(e){return`${String(e.walletId)}\0${e.materialActivation.activationId}`}function L(e){let n=I(e),r=F.get(n);if(r&&(r.authorityId!==e.authorityId||r.walletAuthMethodId!==e.walletAuthMethodId||r.factorAuthority.walletId!==e.factorAuthority.walletId||r.factorAuthority.bindingId!==e.factorAuthority.bindingId||r.holderHandleId!==e.holderHandleId||!t(r.materialActivation,e.materialActivation)))throw Error(`linked ECDSA holder runtime conflicts with the active authority`);F.set(n,e)}function R(e){return F.get(I(e))??null}function z(e){return[...F.values()].filter(t=>e===void 0||t.walletId===e)}function B(e){let t=I(e),n=F.get(t);if(n){if(n.holderHandleId!==e.holderHandleId)throw Error(`linked ECDSA holder runtime changed before removal`);F.delete(t)}}function V(e){if(!e){F.clear();return}for(let[t,n]of F)n.walletId===e&&F.delete(t)}function H(e,t){return t?{kind:`blocked`,reason:e,message:t}:{kind:`blocked`,reason:e}}function U(e){return c(e)||l(e.signerActivations)?e.signerActivations:null}function W(e){if(e.kind!==`resolved`)switch(e.kind){case`missing_selection`:return H(`missing_selected_authority`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return H(`invalid_selected_authority`);default:return e}return e.selection.walletId!==e.authMethod.walletId||e.selection.walletAuthMethodId!==e.authMethod.walletAuthMethodId||e.authMethod.walletAuthorityId!==e.authority.authorityId||e.authority.walletId!==e.selection.walletId?H(`authority_identity_mismatch`):e.selection.lockState===`unlocked`?e.authMethod.status===`active`?e.authority.state===`active`?{authMethod:e.authMethod,authority:e.authority,signerMaterials:e.signerMaterials}:H(`authority_inactive`):H(`auth_method_inactive`):H(`wallet_locked`)}function G(e){let n=e.materials.filter(n=>n.kind===`wallet_authority_linked_signer_material_v1`&&n.keyFamily===`ecdsa_secp256k1`&&n.authorityId===e.authority.authorityId&&n.walletAuthMethodId===e.authMethod.walletAuthMethodId&&n.activationId===e.materialActivation.activationId&&t(n.materialActivation,e.materialActivation)),[r]=n;return n.length===1&&r?r:null}function K(e){let t=e.material.targetFactor;return t.walletAuthMethodId===e.authMethod.walletAuthMethodId?e.authMethod.kind===`passkey`?t.kind===`passkey`&&t.rpId===e.authMethod.rpId&&t.credentialIdB64u===e.authMethod.credentialIdB64u:t.kind===`email_otp`&&t.emailHashHex===e.authMethod.emailHashHex&&t.registrationAuthorityId===e.authMethod.registrationAuthorityId:!1}function ne(e){return e.session.capabilitySubjects.filter(n=>n.kind===e.capability&&n.keyFamily===`ecdsa_secp256k1`&&t(n.materialActivation,e.materialActivation)).length===1}function q(e){try{return S(e.scope.material_activation)}catch{return null}}function J(e){try{return P(o(e.scope.public_identity.ethereum_address20_b64u))}catch{return null}}function Y(e,t){return e.linkSessionId===t.linkSessionId&&e.enrollmentId===t.enrollmentId&&e.sourceAuthorityId===t.sourceAuthorityId&&O(e.source,t.source)&&k(e.target,t.target)&&e.targetClientPublicKey33B64u===t.targetClientPublicKey33B64u}function X(e,t){return e.kind===t.kind&&E(e.scope,t.scope)}function Z(e,t){return e.applicationBindingDigestB64u===t.applicationBindingDigestB64u&&e.clientShareRetryCounter===t.clientShareRetryCounter&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&X(e.sourceNormalSigning,t.sourceNormalSigning)}function re(e,t){return e.state===t.state&&Y(e.binding,t.binding)&&Z(e.sourceDerivation,t.sourceDerivation)&&e.targetRelayerPublicKey33B64u===t.targetRelayerPublicKey33B64u&&e.thresholdPublicKey33B64u===t.thresholdPublicKey33B64u&&e.thresholdEthereumAddress20B64u===t.thresholdEthereumAddress20B64u&&X(e.normalSigning,t.normalSigning)}function ie(e){let n=R({walletId:e.walletId,materialActivation:e.materialActivation});return!n||n.walletId!==e.walletId||n.authorityId!==e.authority.authorityId||n.walletAuthMethodId!==e.authMethod.walletAuthMethodId||n.factorAuthority.walletId!==e.walletId||n.factorAuthority.bindingId!==e.authMethod.walletAuthMethodId||n.ecdsaThresholdKeyId!==e.ecdsaThresholdKeyId||!t(n.materialActivation,e.materialActivation)||!K({material:e.material,authMethod:e.authMethod})||!re(n.activationReceipt,e.material.publicFacts.activationReceipt)?null:n}async function ae(e){let n=e.holderRuntime.activationReceipt.normalSigning,r=n.scope,i=q(n),a=J(n);if(!i||!a||!t(i,e.materialActivation)||e.signer.walletId!==e.selected.authority.walletId||r.wallet_id!==String(e.selected.authority.walletId)||r.ecdsa_threshold_key_id!==String(e.holderRuntime.ecdsaThresholdKeyId)||r.public_identity.threshold_public_key33_b64u!==String(e.signer.thresholdPublicKey33B64u)||a.toLowerCase()!==String(e.signer.evmAddress).trim().toLowerCase()||String(e.holderRuntime.activationReceipt.thresholdPublicKey33B64u)!==String(r.public_identity.threshold_public_key33_b64u)||String(e.holderRuntime.activationReceipt.thresholdEthereumAddress20B64u)!==String(r.public_identity.ethereum_address20_b64u))return H(`normal_signing_identity_mismatch`);let o,s,c,l;try{l=await T({ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version});let t=u(e.signer.evmAddress);o=ee({walletId:e.selected.authority.walletId,ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version,participantIds:[1,2],thresholdOwnerAddress:t}),s=te({keyHandle:l,publicKeyB64u:r.public_identity.threshold_public_key33_b64u,participantIds:[1,2],thresholdOwnerAddress:t}),c=await m({walletId:String(o.walletId),signingRootId:String(o.signingRootId),signingRootVersion:String(o.signingRootVersion)})}catch(e){return H(`invalid_public_facts`,e instanceof Error?e.message:String(e))}if(o.ecdsaThresholdKeyId!==e.holderRuntime.ecdsaThresholdKeyId)return H(`normal_signing_identity_mismatch`);let p;try{p=await h({authority:e.factorAuthority})}catch(e){return H(`authority_identity_mismatch`,e instanceof Error?e.message:String(e))}let g={kind:`active_wallet_authority_ecdsa_runtime_v1`,walletId:e.selected.authority.walletId,authorityId:e.selected.authority.authorityId,walletAuthMethodId:e.selected.authMethod.walletAuthMethodId,authorityDigestB64u:e.selected.authority.authorityDigestB64u,factorAuthorityRef:p,authorityRevocationEpoch:e.selected.authority.revocationEpoch,walletSessionId:e.operationCredential.walletSessionId,operationCredential:e.operationCredential,session:e.session,requiredCapability:e.requiredCapability,materialActivation:e.materialActivation,ecdsaThresholdKeyId:o.ecdsaThresholdKeyId,relayerKeyId:c,authority:e.selected.authority,authMethod:e.selected.authMethod,holderRuntime:e.holderRuntime,normalSigning:n,key:o,publicFacts:s};if(e.selected.authMethod.kind===`passkey`){let t={kind:`passkey`,rpId:_(e.selected.authMethod.rpId),credentialIdB64u:e.selected.authMethod.credentialIdB64u};if(!d(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.factor.credentialIdB64u!==t.credentialIdB64u||String(e.factorAuthority.verifier.rpId)!==String(t.rpId))return H(`authority_identity_mismatch`);let n=C({walletId:o.walletId,publicFacts:s,authBinding:x({rpId:t.rpId,credentialIdB64u:t.credentialIdB64u})});return{...g,auth:t,factorAuthority:e.factorAuthority,resolvedKey:n}}if(!f(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.verifier.emailHashHex!==e.selected.authMethod.emailHashHex)return H(`authority_identity_mismatch`);let v={kind:`email_otp`,providerSubjectId:String(e.factorAuthority.factor.providerUserId)};return{...g,auth:v,factorAuthority:e.factorAuthority}}function oe(e){if(!e.chainTarget)return null;let t={kind:`active_wallet_authority_ecdsa_lane_projection_v1`,source:`active_wallet_authority`,chainTarget:e.chainTarget,runtime:e.runtime,key:e.runtime.key,materialActivation:e.runtime.materialActivation,publicFacts:e.runtime.publicFacts,state:`deferred`,authorizationState:`authorization_required`};return e.runtime.auth.kind===`passkey`?e.runtime.resolvedKey?{...t,auth:e.runtime.auth,resolvedKey:e.runtime.resolvedKey}:null:{...t,auth:e.runtime.auth}}async function se(e){let{input:n,ports:r}=e,i=n.requiredCapability||`sign`,a=Math.floor(Number(n.nowMs)||Date.now()),o;try{o=s(n.walletId)}catch(e){return H(`invalid_selected_authority`,e instanceof Error?e.message:String(e))}let c;try{c=await r.resolveSelectedWalletAuthority(String(o))}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}let l=W(c);if(`kind`in l)return l;let u=U(l.authority);if(!u)return H(`missing_ecdsa_signer`);let d=u.ecdsa.signer,f=u.ecdsa.materialActivation;if(n.materialActivation&&!t(n.materialActivation,f))return H(`authority_identity_mismatch`);let p=G({materials:l.signerMaterials,authority:l.authority,authMethod:l.authMethod,materialActivation:f});if(!p||!K({material:p,authMethod:l.authMethod}))return H(`missing_holder_runtime`);if(String(p.publicFacts.ecdsaThresholdKeyId)!==String(p.ecdsaThresholdKeyId))return H(`holder_runtime_identity_mismatch`);let m=ie({walletId:o,authority:l.authority,authMethod:l.authMethod,materialActivation:f,ecdsaThresholdKeyId:String(p.ecdsaThresholdKeyId),material:p});if(!m)return H(`holder_runtime_identity_mismatch`);let h;try{h=await r.readExactWithOperationCredential({walletId:o,authorityId:l.authority.authorityId,authMethodId:l.authMethod.walletAuthMethodId})}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}switch(h.kind){case`found`:break;case`missing`:return H(`missing_wallet_session`);case`upgrade_required`:return H(`upgrade_required`,`Wallet Session authorization requires a newer client`)}let g=h.record,_=h.operationCredential;if(g.expiresAtMs<=a)return H(`wallet_session_expired`);if(g.walletId!==o||g.authorityId!==l.authority.authorityId||g.authMethodId!==l.authMethod.walletAuthMethodId||g.authorityDigestB64u!==l.authority.authorityDigestB64u||g.authorityRevocationEpoch!==l.authority.revocationEpoch||_.walletSessionId.length===0||_.token.trim().length===0)return H(`wallet_session_identity_mismatch`);if(!ne({session:g,capability:i,materialActivation:f}))return H(`wallet_session_capability_mismatch`);let v=m.factorAuthority,y=await ae({selected:l,session:g,operationCredential:_,requiredCapability:i,signer:d,materialActivation:f,holderRuntime:m,factorAuthority:v});return y.kind===`active_wallet_authority_ecdsa_runtime_v1`?{kind:`resolved`,runtime:y,lane:oe({runtime:y,chainTarget:n.chainTarget})}:y}const ce=Symbol(`persisted-ecdsa-role-local-material`);function le(e,t){return e.bindingDigest===t.contextBinding32B64u}function ue(e,t){return e.durableMaterialRef===t.durableMaterialRef&&e.bindingDigest===t.bindingDigest}function de(e){return e instanceof Error?e.message:String(e)}function Q(e){return{kind:`corrupt`,reason:e.reason,message:e.message}}function fe(e){switch(e.failure.reason){case`missing`:return{kind:`device_link_required`,reason:`missing_local_material`};case`expired`:return Q({reason:`expired`,message:`ECDSA role-local persisted material has expired`});case`binding_mismatch`:return Q({reason:`binding_mismatch`,message:`ECDSA role-local persisted material binding does not match its public facts`});case`corrupt`:return Q({reason:`corrupt_persistence`,message:`ECDSA role-local persisted material is corrupt`});default:{let t=e.failure.reason;throw Error(`Unsupported ECDSA role-local restoration failure: ${String(t)}`)}}}function pe(t){let n=w(t.authority);if(!n)throw Error(`ECDSA role-local persisted material authority is invalid`);let r=e(t.materialActivation);if(!r.ok)throw Error(r.error.message);if(n.walletId!==t.publicFacts.walletId)throw Error(`ECDSA role-local persisted material authority does not match its wallet`);return{[ce]:!0,kind:`persisted_ecdsa_role_local_material_v1`,authority:n,materialActivation:r.value,publicFacts:t.publicFacts}}function $(e){return{kind:`persisted`,authority:e.authority,materialActivation:e.materialActivation,publicFacts:e.publicFacts}}async function me(e){switch(e.source.kind){case`unavailable`:return{kind:`device_link_required`,reason:e.source.reason};case`persisted`:try{let n=await A({authority:e.source.authority,materialActivation:e.source.materialActivation,workerCtx:e.workerCtx});return n.ok?!t(n.materialRef.materialActivation,e.source.materialActivation)||!le(n.materialRef,e.source.publicFacts)?Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different material identity`}):ue(n.liveHandle,n.materialRef)?{kind:`rehydrated`,liveHandle:n.liveHandle,materialRef:n.materialRef}:Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different durable material`}):fe({failure:n})}catch(e){return Q({reason:`persistence_unavailable`,message:de(e)})}default:{let t=e.source;throw Error(`Unsupported ECDSA role-local material source: ${String(t)}`)}}}function he(e){try{return y(e)}catch(e){throw Error(e instanceof Error?e.message:`ECDSA operation step-up response is invalid`)}}function ge(e){let t=String(e||``).trim().replace(/\/+$/g,``);if(!t)throw Error(`ECDSA operation step-up relayerUrl is required`);return`${t}${g}`}function _e(e){let t=String(e.walletId||``).trim(),n=String(e.operationId||``).trim(),r=Math.floor(Number(e.expiresAtMs));if(!t||!n)throw Error(`ECDSA operation step-up identity is required`);if(!Number.isSafeInteger(r)||r<=Date.now())throw Error(`ECDSA operation step-up expiry is invalid`);let i=D(e.materialActivation),a=p(e.normalSigningScope),o=String(e.keyHandle||``).trim(),s=String(e.relayerKeyId||``).trim(),c=e.participantIds;if(a.wallet_id!==t||a.signing_worker.server_id!==i.signing_worker||!o||!s||c.length!==2||c.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA operation step-up signing identity is inconsistent`);return{wallet_id:t,operation_kind:e.operationKind,operation_id:n,operation_digests:{lane_digest_b64u:e.operationDigests.laneDigest,intent_digest_b64u:e.operationDigests.intentDigest,display_digest_b64u:e.operationDigests.displayDigest},material_activation:i,normal_signing_scope:a,signing_worker_id:i.signing_worker,key_handle:o,relayer_key_id:s,participant_ids:[c[0],c[1]],expires_at_ms:r}}async function ve(e){let t=_e(e);return{operation:t,challengeB64u:await v(t)}}function ye(e,t){switch(e){case j.expired:case j.missing:return`Signing session expired. Sign in again to continue.`;case j.budgetExhausted:return`Signing session budget is used up. Sign in again to continue.`;default:return`ECDSA operation step-up failed: ${t}`}}async function be(e){let t=b(e.request),o=e.transport.kind===`wallet_session`?a(e.transport.credential):{};if(e.transport.kind===`factor_proof`&&t.operation.operation_kind!==`evm.export_key`)throw Error(`ECDSA signing step-up requires its Wallet Session credential`);let s=new Request(ge(e.relayerUrl),i({headers:o,body:t})),c=e.transport.kind===`wallet_session`?await r(s):await fetch(s),l=await c.json().catch(()=>null);if(!c.ok){let e=n(l,`ECDSA operation step-up response`),t=String(e.message||`HTTP ${c.status}`);throw M({code:e.code,message:ye(e.code,t)})||Error(`ECDSA operation step-up failed: ${t}`)}return he(l)}async function xe(e){return await N({...e,labels:{queue:`threshold ECDSA signing queue`,queuedOperation:`threshold ECDSA queued signing operation`},owner:String(e.walletId).trim()})}export{$ as a,V as c,B as d,R as f,pe as i,L as l,be as n,me as o,ve as r,se as s,xe as t,z as u};
|
|
1
|
+
import{h as e,r as t}from"./domainIds-C3fUa33Q.js";import{k as n}from"./chains-CPmd4s9f.js";import{A as r,D as i,k as a}from"./primitives-CTmDwMNc.js";import{r as o}from"./base64-BmKR3UqU.js";import{c as s}from"./ecdsaChainTarget-DkOrgv4y.js";import{a as c,c as l}from"./walletAuthority-BY3kyKQ-.js";import{D as u,Dt as d,Et as f,G as p,Kt as m,Nt as h,P as g,T as _,V as v,X as y,Y as b,d as x,en as S,f as C,jt as w,m as T,mt as E,o as ee,p as te,tn as D}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";import{v as O,y as k}from"./challengeDelivery-CG2J5Qxs.js";import{p as A}from"./ecdsaDerivationClientWasm-DmwKWUEb.js";import{a as j,n as M}from"./walletSessionFailure-C6TAQTZn.js";import{a as N}from"./clientSessionPersistenceState-BgO4P6CZ.js";import{t as P}from"./bytes-DZRW2UDg.js";const F=new Map;function I(e){return`${String(e.walletId)}\0${e.materialActivation.activationId}`}function L(e){let n=I(e),r=F.get(n);if(r&&(r.authorityId!==e.authorityId||r.walletAuthMethodId!==e.walletAuthMethodId||r.factorAuthority.walletId!==e.factorAuthority.walletId||r.factorAuthority.bindingId!==e.factorAuthority.bindingId||r.holderHandleId!==e.holderHandleId||!t(r.materialActivation,e.materialActivation)))throw Error(`linked ECDSA holder runtime conflicts with the active authority`);F.set(n,e)}function R(e){return F.get(I(e))??null}function z(e){return[...F.values()].filter(t=>e===void 0||t.walletId===e)}function B(e){let t=I(e),n=F.get(t);if(n){if(n.holderHandleId!==e.holderHandleId)throw Error(`linked ECDSA holder runtime changed before removal`);F.delete(t)}}function V(e){if(!e){F.clear();return}for(let[t,n]of F)n.walletId===e&&F.delete(t)}function H(e,t){return t?{kind:`blocked`,reason:e,message:t}:{kind:`blocked`,reason:e}}function U(e){return c(e)||l(e.signerActivations)?e.signerActivations:null}function W(e){if(e.kind!==`resolved`)switch(e.kind){case`missing_selection`:return H(`missing_selected_authority`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return H(`invalid_selected_authority`);default:return e}return e.selection.walletId!==e.authMethod.walletId||e.selection.walletAuthMethodId!==e.authMethod.walletAuthMethodId||e.authMethod.walletAuthorityId!==e.authority.authorityId||e.authority.walletId!==e.selection.walletId?H(`authority_identity_mismatch`):e.selection.lockState===`unlocked`?e.authMethod.status===`active`?e.authority.state===`active`?{authMethod:e.authMethod,authority:e.authority,signerMaterials:e.signerMaterials}:H(`authority_inactive`):H(`auth_method_inactive`):H(`wallet_locked`)}function G(e){let n=e.materials.filter(n=>n.kind===`wallet_authority_linked_signer_material_v1`&&n.keyFamily===`ecdsa_secp256k1`&&n.authorityId===e.authority.authorityId&&n.walletAuthMethodId===e.authMethod.walletAuthMethodId&&n.activationId===e.materialActivation.activationId&&t(n.materialActivation,e.materialActivation)),[r]=n;return n.length===1&&r?r:null}function K(e){let t=e.material.targetFactor;return t.walletAuthMethodId===e.authMethod.walletAuthMethodId?e.authMethod.kind===`passkey`?t.kind===`passkey`&&t.rpId===e.authMethod.rpId&&t.credentialIdB64u===e.authMethod.credentialIdB64u:t.kind===`email_otp`&&t.emailHashHex===e.authMethod.emailHashHex&&t.registrationAuthorityId===e.authMethod.registrationAuthorityId:!1}function ne(e){return e.session.capabilitySubjects.filter(n=>n.kind===e.capability&&n.keyFamily===`ecdsa_secp256k1`&&t(n.materialActivation,e.materialActivation)).length===1}function q(e){try{return S(e.scope.material_activation)}catch{return null}}function J(e){try{return P(o(e.scope.public_identity.ethereum_address20_b64u))}catch{return null}}function Y(e,t){return e.linkSessionId===t.linkSessionId&&e.enrollmentId===t.enrollmentId&&e.sourceAuthorityId===t.sourceAuthorityId&&O(e.source,t.source)&&k(e.target,t.target)&&e.targetClientPublicKey33B64u===t.targetClientPublicKey33B64u}function X(e,t){return e.kind===t.kind&&E(e.scope,t.scope)}function Z(e,t){return e.applicationBindingDigestB64u===t.applicationBindingDigestB64u&&e.clientShareRetryCounter===t.clientShareRetryCounter&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&X(e.sourceNormalSigning,t.sourceNormalSigning)}function re(e,t){return e.state===t.state&&Y(e.binding,t.binding)&&Z(e.sourceDerivation,t.sourceDerivation)&&e.targetRelayerPublicKey33B64u===t.targetRelayerPublicKey33B64u&&e.thresholdPublicKey33B64u===t.thresholdPublicKey33B64u&&e.thresholdEthereumAddress20B64u===t.thresholdEthereumAddress20B64u&&X(e.normalSigning,t.normalSigning)}function ie(e){let n=R({walletId:e.walletId,materialActivation:e.materialActivation});return!n||n.walletId!==e.walletId||n.authorityId!==e.authority.authorityId||n.walletAuthMethodId!==e.authMethod.walletAuthMethodId||n.factorAuthority.walletId!==e.walletId||n.factorAuthority.bindingId!==e.authMethod.walletAuthMethodId||n.ecdsaThresholdKeyId!==e.ecdsaThresholdKeyId||!t(n.materialActivation,e.materialActivation)||!K({material:e.material,authMethod:e.authMethod})||!re(n.activationReceipt,e.material.publicFacts.activationReceipt)?null:n}async function ae(e){let n=e.holderRuntime.activationReceipt.normalSigning,r=n.scope,i=q(n),a=J(n);if(!i||!a||!t(i,e.materialActivation)||e.signer.walletId!==e.selected.authority.walletId||r.wallet_id!==String(e.selected.authority.walletId)||r.ecdsa_threshold_key_id!==String(e.holderRuntime.ecdsaThresholdKeyId)||r.public_identity.threshold_public_key33_b64u!==String(e.signer.thresholdPublicKey33B64u)||a.toLowerCase()!==String(e.signer.evmAddress).trim().toLowerCase()||String(e.holderRuntime.activationReceipt.thresholdPublicKey33B64u)!==String(r.public_identity.threshold_public_key33_b64u)||String(e.holderRuntime.activationReceipt.thresholdEthereumAddress20B64u)!==String(r.public_identity.ethereum_address20_b64u))return H(`normal_signing_identity_mismatch`);let o,s,c,l;try{l=await T({ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version});let t=u(e.signer.evmAddress);o=ee({walletId:e.selected.authority.walletId,ecdsaThresholdKeyId:r.ecdsa_threshold_key_id,signingRootId:r.signing_root_id,signingRootVersion:r.signing_root_version,participantIds:[1,2],thresholdOwnerAddress:t}),s=te({keyHandle:l,publicKeyB64u:r.public_identity.threshold_public_key33_b64u,participantIds:[1,2],thresholdOwnerAddress:t}),c=await m({walletId:String(o.walletId),signingRootId:String(o.signingRootId),signingRootVersion:String(o.signingRootVersion)})}catch(e){return H(`invalid_public_facts`,e instanceof Error?e.message:String(e))}if(o.ecdsaThresholdKeyId!==e.holderRuntime.ecdsaThresholdKeyId)return H(`normal_signing_identity_mismatch`);let p;try{p=await h({authority:e.factorAuthority})}catch(e){return H(`authority_identity_mismatch`,e instanceof Error?e.message:String(e))}let g={kind:`active_wallet_authority_ecdsa_runtime_v1`,walletId:e.selected.authority.walletId,authorityId:e.selected.authority.authorityId,walletAuthMethodId:e.selected.authMethod.walletAuthMethodId,authorityDigestB64u:e.selected.authority.authorityDigestB64u,factorAuthorityRef:p,authorityRevocationEpoch:e.selected.authority.revocationEpoch,walletSessionId:e.operationCredential.walletSessionId,operationCredential:e.operationCredential,session:e.session,requiredCapability:e.requiredCapability,materialActivation:e.materialActivation,ecdsaThresholdKeyId:o.ecdsaThresholdKeyId,relayerKeyId:c,authority:e.selected.authority,authMethod:e.selected.authMethod,holderRuntime:e.holderRuntime,normalSigning:n,key:o,publicFacts:s};if(e.selected.authMethod.kind===`passkey`){let t={kind:`passkey`,rpId:_(e.selected.authMethod.rpId),credentialIdB64u:e.selected.authMethod.credentialIdB64u};if(!d(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.factor.credentialIdB64u!==t.credentialIdB64u||String(e.factorAuthority.verifier.rpId)!==String(t.rpId))return H(`authority_identity_mismatch`);let n=C({walletId:o.walletId,publicFacts:s,authBinding:x({rpId:t.rpId,credentialIdB64u:t.credentialIdB64u})});return{...g,auth:t,factorAuthority:e.factorAuthority,resolvedKey:n}}if(!f(e.factorAuthority)||e.factorAuthority.walletId!==o.walletId||e.factorAuthority.bindingId!==e.selected.authMethod.walletAuthMethodId||e.factorAuthority.verifier.emailHashHex!==e.selected.authMethod.emailHashHex)return H(`authority_identity_mismatch`);let v={kind:`email_otp`,providerSubjectId:String(e.factorAuthority.factor.providerUserId)};return{...g,auth:v,factorAuthority:e.factorAuthority}}function oe(e){if(!e.chainTarget)return null;let t={kind:`active_wallet_authority_ecdsa_lane_projection_v1`,source:`active_wallet_authority`,chainTarget:e.chainTarget,runtime:e.runtime,key:e.runtime.key,materialActivation:e.runtime.materialActivation,publicFacts:e.runtime.publicFacts,state:`deferred`,authorizationState:`authorization_required`};return e.runtime.auth.kind===`passkey`?e.runtime.resolvedKey?{...t,auth:e.runtime.auth,resolvedKey:e.runtime.resolvedKey}:null:{...t,auth:e.runtime.auth}}async function se(e){let{input:n,ports:r}=e,i=n.requiredCapability||`sign`,a=Math.floor(Number(n.nowMs)||Date.now()),o;try{o=s(n.walletId)}catch(e){return H(`invalid_selected_authority`,e instanceof Error?e.message:String(e))}let c;try{c=await r.resolveSelectedWalletAuthority(String(o))}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}let l=W(c);if(`kind`in l)return l;let u=U(l.authority);if(!u)return H(`missing_ecdsa_signer`);let d=u.ecdsa.signer,f=u.ecdsa.materialActivation;if(n.materialActivation&&!t(n.materialActivation,f))return H(`authority_identity_mismatch`);let p=G({materials:l.signerMaterials,authority:l.authority,authMethod:l.authMethod,materialActivation:f});if(!p||!K({material:p,authMethod:l.authMethod}))return H(`missing_holder_runtime`);if(String(p.publicFacts.ecdsaThresholdKeyId)!==String(p.ecdsaThresholdKeyId))return H(`holder_runtime_identity_mismatch`);let m=ie({walletId:o,authority:l.authority,authMethod:l.authMethod,materialActivation:f,ecdsaThresholdKeyId:String(p.ecdsaThresholdKeyId),material:p});if(!m)return H(`holder_runtime_identity_mismatch`);let h;try{h=await r.readExactWithOperationCredential({walletId:o,authorityId:l.authority.authorityId,authMethodId:l.authMethod.walletAuthMethodId})}catch(e){return H(`persistence_unavailable`,e instanceof Error?e.message:String(e))}switch(h.kind){case`found`:break;case`missing`:return H(`missing_wallet_session`);case`upgrade_required`:return H(`upgrade_required`,`Wallet Session authorization requires a newer client`)}let g=h.record,_=h.operationCredential;if(g.expiresAtMs<=a)return H(`wallet_session_expired`);if(g.walletId!==o||g.authorityId!==l.authority.authorityId||g.authMethodId!==l.authMethod.walletAuthMethodId||g.authorityDigestB64u!==l.authority.authorityDigestB64u||g.authorityRevocationEpoch!==l.authority.revocationEpoch||_.walletSessionId.length===0||_.token.trim().length===0)return H(`wallet_session_identity_mismatch`);if(!ne({session:g,capability:i,materialActivation:f}))return H(`wallet_session_capability_mismatch`);let v=m.factorAuthority,y=await ae({selected:l,session:g,operationCredential:_,requiredCapability:i,signer:d,materialActivation:f,holderRuntime:m,factorAuthority:v});return y.kind===`active_wallet_authority_ecdsa_runtime_v1`?{kind:`resolved`,runtime:y,lane:oe({runtime:y,chainTarget:n.chainTarget})}:y}const ce=Symbol(`persisted-ecdsa-role-local-material`);function le(e,t){return e.bindingDigest===t.contextBinding32B64u}function ue(e,t){return e.durableMaterialRef===t.durableMaterialRef&&e.bindingDigest===t.bindingDigest}function de(e){return e instanceof Error?e.message:String(e)}function Q(e){return{kind:`corrupt`,reason:e.reason,message:e.message}}function fe(e){switch(e.failure.reason){case`missing`:return{kind:`device_link_required`,reason:`missing_local_material`};case`expired`:return Q({reason:`expired`,message:`ECDSA role-local persisted material has expired`});case`binding_mismatch`:return Q({reason:`binding_mismatch`,message:`ECDSA role-local persisted material binding does not match its public facts`});case`corrupt`:return Q({reason:`corrupt_persistence`,message:`ECDSA role-local persisted material is corrupt`});default:{let t=e.failure.reason;throw Error(`Unsupported ECDSA role-local restoration failure: ${String(t)}`)}}}function pe(t){let n=w(t.authority);if(!n)throw Error(`ECDSA role-local persisted material authority is invalid`);let r=e(t.materialActivation);if(!r.ok)throw Error(r.error.message);if(n.walletId!==t.publicFacts.walletId)throw Error(`ECDSA role-local persisted material authority does not match its wallet`);return{[ce]:!0,kind:`persisted_ecdsa_role_local_material_v1`,authority:n,materialActivation:r.value,publicFacts:t.publicFacts}}function $(e){return{kind:`persisted`,authority:e.authority,materialActivation:e.materialActivation,publicFacts:e.publicFacts}}async function me(e){switch(e.source.kind){case`unavailable`:return{kind:`device_link_required`,reason:e.source.reason};case`persisted`:try{let n=await A({authority:e.source.authority,materialActivation:e.source.materialActivation,workerCtx:e.workerCtx});return n.ok?!t(n.materialRef.materialActivation,e.source.materialActivation)||!le(n.materialRef,e.source.publicFacts)?Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different material identity`}):ue(n.liveHandle,n.materialRef)?{kind:`rehydrated`,liveHandle:n.liveHandle,materialRef:n.materialRef}:Q({reason:`worker_identity_mismatch`,message:`ECDSA role-local worker restored a different durable material`}):fe({failure:n})}catch(e){return Q({reason:`persistence_unavailable`,message:de(e)})}default:{let t=e.source;throw Error(`Unsupported ECDSA role-local material source: ${String(t)}`)}}}function he(e){try{return y(e)}catch(e){throw Error(e instanceof Error?e.message:`ECDSA operation step-up response is invalid`)}}function ge(e){let t=String(e||``).trim().replace(/\/+$/g,``);if(!t)throw Error(`ECDSA operation step-up relayerUrl is required`);return`${t}${g}`}function _e(e){let t=String(e.walletId||``).trim(),n=String(e.operationId||``).trim(),r=Math.floor(Number(e.expiresAtMs));if(!t||!n)throw Error(`ECDSA operation step-up identity is required`);if(!Number.isSafeInteger(r)||r<=Date.now())throw Error(`ECDSA operation step-up expiry is invalid`);let i=D(e.materialActivation),a=p(e.normalSigningScope),o=String(e.keyHandle||``).trim(),s=String(e.relayerKeyId||``).trim(),c=e.participantIds;if(a.wallet_id!==t||a.signing_worker.server_id!==i.signing_worker||!o||!s||c.length!==2||c.some(e=>!Number.isSafeInteger(e)||e<=0))throw Error(`ECDSA operation step-up signing identity is inconsistent`);return{wallet_id:t,operation_kind:e.operationKind,operation_id:n,operation_digests:{lane_digest_b64u:e.operationDigests.laneDigest,intent_digest_b64u:e.operationDigests.intentDigest,display_digest_b64u:e.operationDigests.displayDigest},material_activation:i,normal_signing_scope:a,signing_worker_id:i.signing_worker,key_handle:o,relayer_key_id:s,participant_ids:[c[0],c[1]],expires_at_ms:r}}async function ve(e){let t=_e(e);return{operation:t,challengeB64u:await v(t)}}function ye(e,t){switch(e){case j.expired:case j.missing:return`Signing session expired. Sign in again to continue.`;case j.budgetExhausted:return`Signing session budget is used up. Sign in again to continue.`;default:return`ECDSA operation step-up failed: ${t}`}}async function be(e){let t=b(e.request),o=e.transport.kind===`wallet_session`?a(e.transport.credential):{};if(e.transport.kind===`factor_proof`&&t.operation.operation_kind!==`evm.export_key`)throw Error(`ECDSA signing step-up requires its Wallet Session credential`);let s=new Request(ge(e.relayerUrl),i({headers:o,body:t})),c=e.transport.kind===`wallet_session`?await r(s):await fetch(s),l=await c.json().catch(()=>null);if(!c.ok){let e=n(l,`ECDSA operation step-up response`),t=String(e.message||`HTTP ${c.status}`);throw M({code:e.code,message:ye(e.code,t)})||Error(`ECDSA operation step-up failed: ${t}`)}return he(l)}async function xe(e){return await N({...e,labels:{queue:`threshold ECDSA signing queue`,queuedOperation:`threshold ECDSA queued signing operation`},owner:String(e.walletId).trim()})}export{$ as a,V as c,B as d,R as f,pe as i,L as l,be as n,me as o,ve as r,se as s,xe as t,z as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./walletDbName-DRzPv5Ir.js";const t={appState:`app_state`,wallets:`wallets`,walletAuthorities:`wallet_authorities`,walletAuthMethods:`wallet_auth_methods`,walletAuthoritySignerMaterials:`wallet_authority_signer_materials`,walletAuthorityExportRoots:`wallet_authority_export_roots`,walletAuthorityInstallationReceipts:`wallet_authority_installation_receipts`,walletSelections:`wallet_selections`,walletSigners:`wallet_signers`,nearAccountProjections:`near_accounts`,signerOpsOutbox:`signer_ops_outbox`,nonceLaneLeases:`nonce_lane_leases`,nonceLaneLocks:`nonce_lane_locks`,keyMaterial:`key_material`,signingSessionSeals:`signing_session_seals`,signingSessionRestoreLeases:`signing_session_restore_leases`,pendingWalletRecoveryCodeBackups:`email_otp_pending_recovery_code_backups`,walletSessionAuthorizations:`wallet_session_authorizations`,ecdsaCapabilityManifests:`ecdsa_capability_manifests`,ecdsaCurrentCapabilityManifests:`ecdsa_current_capability_manifests`,ecdsaRoleLocalMaterial:`ecdsa_role_local_material`,ecdsaActivationCommitJournals:`ecdsa_activation_commit_journals`,ecdsaMaterialSealingKeys:`ecdsa_material_sealing_keys`,ecdsaClientPresignatures:`ecdsa_client_presignatures`},n={profileId:`profile_id`,updatedAt:`updated_at`,walletId:`wallet_id`,walletIdKind:`wallet_id_kind`,walletKindNearSignerSlot:`wallet_kind_near_signer_slot`,walletKindNearEd25519SigningKeyId:`wallet_kind_near_ed25519_signing_key_id`,walletKindChainTargetKeyHandle:`wallet_kind_chain_target_key_handle`,walletKindChainTargetKeyFacts:`wallet_kind_chain_target_key_facts`,walletSignerId:`wallet_signer_id`,nearAccountId:`near_account_id`,rpId:`rp_id`,chainTargetKey:`chain_target_key`,keyHandle:`key_handle`,thresholdOwnerAddress:`threshold_owner_address`,status:`status`,nextAttemptAt:`next_attempt_at`,statusNextAttemptAt:`status_next_attempt_at`,idempotencyKey:`idempotency_key`,laneKey:`lane_key`,state:`state`,expiresAtMs:`expires_at_ms`,recoveryCodesIssuedAtMs:`recovery_codes_issued_at_ms`,laneState:`lane_state`,walletExpiresAt:`wallet_expires_at`,ownerId:`owner_id`,publicKey:`public_key`,authMethod:`auth_method`,curve:`curve`,ed25519ThresholdSessionId:`ed25519_threshold_session_id`,ecdsaThresholdSessionId:`ecdsa_threshold_session_id`,thresholdSessionId:`threshold_session_id`,exactSigningLaneIdentityKey:`exact_signing_lane_identity_key`,enrollmentId:`enrollment_id`,walletIdEnrollmentId:`wallet_id_enrollment_id`,authIdentifierKey:`auth_identifier_key`,kindRpIdAuthIdentifier:`kind_rp_id_auth_identifier`,passkeyRpIdCredentialId:`passkey_rp_id_credential_id`,capabilityWallet:`capability_wallet`,capabilityWalletAuthorityState:`capability_wallet_authority_state`,capabilityWalletAuthority:`capability_wallet_authority`,walletAuthorityId:`wallet_authority_id`,walletAuthMethodId:`wallet_auth_method_id`,walletIdAuthorityId:`wallet_id_authority_id`,walletIdAuthorityStatus:`wallet_id_authority_status`,walletIdAuthMethodId:`wallet_id_auth_method_id`,walletAuthorityAuthMethodId:`wallet_authority_auth_method_id`,activationId:`activation_id`,walletAuthorityActivationId:`wallet_authority_activation_id`,walletIdDeviceId:`wallet_id_device_id`,packageSetDigest:`package_set_digest`,walletKeyId:`wallet_key_id`,walletIdLockGeneration:`wallet_id_lock_generation`,authorityDigest:`authority_digest`,revocationEpoch:`revocation_epoch`,poolIdentityKey:`pool_identity_key`,walletMaterialActivationId:`wallet_material_activation_id`},r=[{store:t.appState,keyPath:`key`,indexes:[]},{store:t.wallets,keyPath:`wallet_id`,indexes:[{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthorities,keyPath:`authority_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletIdAuthorityId,keyPath:[`wallet_id`,`authority_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`state`],unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthMethods,keyPath:`wallet_auth_method_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.authIdentifierKey,keyPath:`auth_identifier_key`,unique:!1},{name:n.kindRpIdAuthIdentifier,keyPath:[`kind`,`rp_id`,`auth_identifier_key`],unique:!1},{name:n.passkeyRpIdCredentialId,keyPath:[`kind`,`rp_id`,`credential_id_b64u`],unique:!0},{name:n.status,keyPath:`status`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletIdAuthMethodId,keyPath:[`wallet_id`,`wallet_auth_method_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`wallet_authority_id`,`status`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthoritySignerMaterials,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`activation_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.activationId,keyPath:`activation_id`,unique:!1},{name:n.walletAuthorityActivationId,keyPath:[`wallet_authority_id`,`activation_id`],unique:!0}]},{store:t.walletAuthorityExportRoots,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`wallet_key_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.walletKeyId,keyPath:`wallet_key_id`,unique:!1}]},{store:t.walletAuthorityInstallationReceipts,keyPath:`authority_id`,indexes:[{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.packageSetDigest,keyPath:`package_set_digest_b64u`,unique:!1},{name:n.updatedAt,keyPath:`installed_at_ms`,unique:!1}]},{store:t.walletSelections,keyPath:`wallet_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!0},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdLockGeneration,keyPath:[`wallet_id`,`lock_generation`],unique:!0}]},{store:t.walletSigners,keyPath:`wallet_signer_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.walletKindNearSignerSlot,keyPath:[`wallet_id`,`kind`,`near_signer_slot`],unique:!1},{name:n.walletKindNearEd25519SigningKeyId,keyPath:[`wallet_id`,`kind`,`near_ed25519_signing_key_id`],unique:!1},{name:n.walletKindChainTargetKeyHandle,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`key_handle`],unique:!0},{name:n.walletKindChainTargetKeyFacts,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`ecdsa_threshold_key_id`],unique:!0},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.thresholdOwnerAddress,keyPath:`threshold_owner_address`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.nearAccountProjections,keyPath:[`wallet_id`,`near_account_id`,`signer_slot`],indexes:[{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.profileId,keyPath:`profile_id`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signerOpsOutbox,keyPath:`op_id`,indexes:[{name:n.status,keyPath:`status`,unique:!1},{name:n.nextAttemptAt,keyPath:`next_attempt_at`,unique:!1},{name:n.statusNextAttemptAt,keyPath:[`status`,`next_attempt_at`],unique:!1},{name:n.idempotencyKey,keyPath:`idempotency_key`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1}]},{store:t.nonceLaneLeases,keyPath:`lease_id`,indexes:[{name:n.laneKey,keyPath:`lane_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.state,keyPath:`state`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.laneState,keyPath:[`lane_key`,`state`],unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]},{store:t.nonceLaneLocks,keyPath:`lock_key`,indexes:[{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1}]},{store:t.keyMaterial,keyPath:`key_material_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletSignerId,keyPath:`wallet_signer_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionSeals,keyPath:`store_key`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.curve,keyPath:`curve`,unique:!1},{name:n.ed25519ThresholdSessionId,keyPath:`ed25519_threshold_session_id`,unique:!1},{name:n.ecdsaThresholdSessionId,keyPath:`ecdsa_threshold_session_id`,unique:!1},{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollmentId`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.exactSigningLaneIdentityKey,keyPath:`exact_signing_lane_identity_key`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionRestoreLeases,keyPath:`lease_key`,indexes:[{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.pendingWalletRecoveryCodeBackups,keyPath:[`wallet_id`,`enrollment_id`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollment_id`,unique:!1},{name:n.walletIdEnrollmentId,keyPath:[`wallet_id`,`enrollment_id`],unique:!0},{name:n.recoveryCodesIssuedAtMs,keyPath:`recovery_codes_issued_at_ms`,unique:!1},{name:n.status,keyPath:`status`,unique:!1}]},{store:t.walletSessionAuthorizations,keyPath:`wallet_session_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.authorityDigest,keyPath:`authority_digest_b64u`,unique:!1},{name:n.revocationEpoch,keyPath:`authority_revocation_epoch`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.ecdsaCapabilityManifests,keyPath:`manifest_id`,indexes:[{name:n.capabilityWallet,keyPath:[`capability_ref`,`wallet_id`],unique:!1},{name:n.capabilityWalletAuthorityState,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`,`manifest_state`],unique:!1}]},{store:t.ecdsaCurrentCapabilityManifests,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1}]},{store:t.ecdsaRoleLocalMaterial,keyPath:`durable_material_ref`,indexes:[]},{store:t.ecdsaActivationCommitJournals,keyPath:`journal_id`,indexes:[{name:n.capabilityWalletAuthority,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],unique:!0}]},{store:t.ecdsaMaterialSealingKeys,keyPath:`key_id`,indexes:[]},{store:t.ecdsaClientPresignatures,keyPath:`record_id`,indexes:[{name:n.poolIdentityKey,keyPath:`pool_identity_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletMaterialActivationId,keyPath:[`wallet_id`,`material_activation_id`],unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]}],i=(e,t)=>t.some(t=>e instanceof t);let a,o;function s(){return a||=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}function c(){return o||=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const l=new WeakMap,u=new WeakMap,d=new WeakMap;function f(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`success`,i),e.removeEventListener(`error`,a)},i=()=>{t(v(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(`success`,i),e.addEventListener(`error`,a)});return d.set(t,e),t}function p(e){if(l.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`complete`,i),e.removeEventListener(`error`,a),e.removeEventListener(`abort`,a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(`AbortError`,`AbortError`)),r()};e.addEventListener(`complete`,i),e.addEventListener(`error`,a),e.addEventListener(`abort`,a)});l.set(e,t)}let m={get(e,t,n){if(e instanceof IDBTransaction){if(t===`done`)return l.get(e);if(t===`store`)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t===`done`||t===`store`)?!0:t in e}};function h(e){m=e(m)}function g(e){return c().includes(e)?function(...t){return e.apply(y(this),t),v(this.request)}:function(...t){return v(e.apply(y(this),t))}}function _(e){return typeof e==`function`?g(e):(e instanceof IDBTransaction&&p(e),i(e,s())?new Proxy(e,m):e)}function v(e){if(e instanceof IDBRequest)return f(e);if(u.has(e))return u.get(e);let t=_(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const y=e=>d.get(e);function b(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){let o=indexedDB.open(e,t),s=v(o);return r&&o.addEventListener(`upgradeneeded`,e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener(`blocked`,e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener(`close`,()=>a()),i&&e.addEventListener(`versionchange`,e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}const x=[`get`,`getKey`,`getAll`,`getAllKeys`,`count`],S=[`put`,`add`,`delete`,`clear`],C=new Map;function w(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t==`string`))return;if(C.get(t))return C.get(t);let n=t.replace(/FromIndex$/,``),r=t!==n,i=S.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||x.includes(n)))return;let a=async function(e,...t){let a=this.transaction(e,i?`readwrite`:`readonly`),o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return C.set(t,a),a}h(e=>({...e,get:(t,n,r)=>w(t,n)||e.get(t,n,r),has:(t,n)=>!!w(t,n)||e.has(t,n)}));const T=[`continue`,`continuePrimaryKey`,`advance`],E={},D=new WeakMap,O=new WeakMap,k={get(e,t){if(!T.includes(t))return e[t];let n=E[t];return n||=E[t]=function(...e){D.set(this,O.get(this)[t](...e))},n}};async function*A(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let n=new Proxy(t,k);for(O.set(n,t),d.set(n,y(t));t;)yield n,t=await(D.get(n)||t.continue()),D.delete(n)}function j(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||t===`iterate`&&i(e,[IDBIndex,IDBObjectStore])}h(e=>({...e,get(t,n,r){return j(t,n)?A:e.get(t,n,r)},has(t,n){return j(t,n)||e.has(t,n)}}));const M={dbName:e,dbVersion:24};function N(e){return typeof e==`string`?e:[...e]}function P(e,t){let n=e.createObjectStore(t.store,{keyPath:N(t.keyPath)});for(let e of t.indexes)n.createIndex(e.name,N(e.keyPath),{unique:e.unique})}function F(e){for(let t of r)e.objectStoreNames.contains(t.store)||P(e,t)}const I=8e3;function L(e){return Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${e}. Close other tabs using this app and retry.`)}function R(e){return Error(e)}async function z(e,t,n,r){let i=!1,a=null,o=new Promise((e,o)=>{a=setTimeout(()=>{i||(r?.(),o(n))},t)});try{return await Promise.race([e,o])}finally{i=!0,a&&clearTimeout(a)}}async function B(e,t){let n=await t(e);return await e.tx.done,n}const V=new Set([t.walletAuthorities,t.walletAuthoritySignerMaterials,t.walletAuthorityExportRoots,t.walletAuthMethods,t.walletSelections,t.walletSessionAuthorizations]);function H(e,t,n,...r){let i=Reflect.apply(n,t,r);return e.changed=!0,i}function U(e,t,n){let r=Reflect.get(t,n);if(typeof r!=`function`)return r;switch(n){case`add`:case`put`:case`delete`:case`clear`:return H.bind(null,e,t,r);default:return r.bind(t)}}function W(e,t,n){let r=e.objectStore(n);return e.mode===`readonly`||!V.has(n)?r:new Proxy(r,{get:U.bind(null,t)})}function G(){}function K(e){if(typeof BroadcastChannel>`u`)return null;try{return new BroadcastChannel(`seams-wallet-authority:${e}`)}catch(e){return console.warn(`[SeamsWalletDBManager] Authority notifications are unavailable:`,e),null}}const q=new class{config;dbPromise=null;disabled=!1;walletAuthorityRevision=0;walletAuthorityChannel=null;walletAuthorityListeners=new Set;onWalletAuthorityChange(e){return this.walletAuthorityListeners.add(e),this.connectWalletAuthorityChannel(),this.removeWalletAuthorityListener.bind(this,e)}removeWalletAuthorityListener(e){this.walletAuthorityListeners.delete(e),this.walletAuthorityListeners.size===0&&this.closeWalletAuthorityChannel()}getWalletAuthorityRevision(){return this.walletAuthorityRevision}publishWalletAuthorityCommit(e,t){if(!e.changed)return;t===this.config.dbName&&this.invalidateWalletAuthority();let n=t===this.config.dbName?this.walletAuthorityChannel:null,r=n??K(t);if(r)try{r.postMessage(`authority_committed`)}catch(e){console.warn(`[SeamsWalletDBManager] Authority notification failed:`,e)}finally{r!==n&&r.close()}}connectWalletAuthorityChannel(){if(this.disabled||this.walletAuthorityChannel||this.walletAuthorityListeners.size===0)return;let e=K(this.config.dbName);e&&(e.onmessage=this.receiveWalletAuthorityCommit.bind(this,e),this.walletAuthorityChannel=e)}closeWalletAuthorityChannel(){this.walletAuthorityChannel?.close(),this.walletAuthorityChannel=null}receiveWalletAuthorityCommit(e,t){e!==this.walletAuthorityChannel||t.data!==`authority_committed`||this.invalidateWalletAuthority()}invalidateWalletAuthority(){this.walletAuthorityRevision+=1;for(let e of Array.from(this.walletAuthorityListeners))try{e()}catch{}}constructor(e=M){this.config=e}getDbName(){return this.config.dbName}setDbName(e){this.config.dbName!==e&&(this.close(),this.closeWalletAuthorityChannel(),this.config={...this.config,dbName:e},this.connectWalletAuthorityChannel(),this.invalidateWalletAuthority())}setDisabled(e){this.disabled=e,e?(this.close(),this.closeWalletAuthorityChannel()):this.connectWalletAuthorityChannel()}isDisabled(){return this.disabled}close(){this.dbPromise&&=(this.dbPromise.then(e=>e.close()).catch(()=>void 0),null)}async getDB(){if(this.disabled)throw Error(`[SeamsWalletDBManager] IndexedDB is disabled in this environment.`);if(!this.dbPromise){let e=this.config.dbName,t=this.config.dbVersion,n=null,r=null,i=new Promise((e,t)=>{r=t}),a=b(e,t,{upgrade(e){F(e)},blocked(){console.warn(`[SeamsWalletDBManager] IndexedDB open is blocked.`,{dbName:e,dbVersion:t}),n=setTimeout(()=>{r?.(L(e))},3e3)},blocking:()=>{console.warn(`[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.`,{dbName:e,dbVersion:t}),this.close()},terminated(){console.warn(`[SeamsWalletDBManager] IndexedDB connection has been terminated.`,{dbName:e,dbVersion:t})}});this.dbPromise=z(Promise.race([a,i]).finally(()=>{n&&clearTimeout(n)}),I,R(`[SeamsWalletDBManager] IndexedDB open timed out for ${e}. Close other tabs using this app and retry.`)).catch(e=>{throw this.dbPromise=null,a.then(e=>e.close()).catch(()=>void 0),e})}return await this.dbPromise}async runTransaction(e,t,n,r){let i=await z(this.getDB(),I,R(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`)),a=i.transaction([...e],t,r),o={changed:!1},s={db:i,tx:a,store:W.bind(null,a,o)};a.done.then(this.publishWalletAuthorityCommit.bind(this,o,i.name)).catch(G);try{return await z(B(s,n),8e3,R(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`),()=>{try{a.abort()}catch{}})}catch(e){try{a.abort()}catch{}throw await a.done.catch(()=>void 0),e}}};export{t as i,y as n,n as r,q as t};
|
|
1
|
+
import{t as e}from"./walletDbName-BxWApBQF.js";const t={appState:`app_state`,wallets:`wallets`,walletAuthorities:`wallet_authorities`,walletAuthMethods:`wallet_auth_methods`,walletAuthoritySignerMaterials:`wallet_authority_signer_materials`,walletAuthorityExportRoots:`wallet_authority_export_roots`,walletAuthorityInstallationReceipts:`wallet_authority_installation_receipts`,walletSelections:`wallet_selections`,walletSigners:`wallet_signers`,nearAccountProjections:`near_accounts`,signerOpsOutbox:`signer_ops_outbox`,nonceLaneLeases:`nonce_lane_leases`,nonceLaneLocks:`nonce_lane_locks`,keyMaterial:`key_material`,signingSessionSeals:`signing_session_seals`,signingSessionRestoreLeases:`signing_session_restore_leases`,pendingWalletRecoveryCodeBackups:`email_otp_pending_recovery_code_backups`,walletSessionAuthorizations:`wallet_session_authorizations`,ecdsaCapabilityManifests:`ecdsa_capability_manifests`,ecdsaCurrentCapabilityManifests:`ecdsa_current_capability_manifests`,ecdsaRoleLocalMaterial:`ecdsa_role_local_material`,ecdsaActivationCommitJournals:`ecdsa_activation_commit_journals`,ecdsaMaterialSealingKeys:`ecdsa_material_sealing_keys`,ecdsaClientPresignatures:`ecdsa_client_presignatures`},n={profileId:`profile_id`,updatedAt:`updated_at`,walletId:`wallet_id`,walletIdKind:`wallet_id_kind`,walletKindNearSignerSlot:`wallet_kind_near_signer_slot`,walletKindNearEd25519SigningKeyId:`wallet_kind_near_ed25519_signing_key_id`,walletKindChainTargetKeyHandle:`wallet_kind_chain_target_key_handle`,walletKindChainTargetKeyFacts:`wallet_kind_chain_target_key_facts`,walletSignerId:`wallet_signer_id`,nearAccountId:`near_account_id`,rpId:`rp_id`,chainTargetKey:`chain_target_key`,keyHandle:`key_handle`,thresholdOwnerAddress:`threshold_owner_address`,status:`status`,nextAttemptAt:`next_attempt_at`,statusNextAttemptAt:`status_next_attempt_at`,idempotencyKey:`idempotency_key`,laneKey:`lane_key`,state:`state`,expiresAtMs:`expires_at_ms`,recoveryCodesIssuedAtMs:`recovery_codes_issued_at_ms`,laneState:`lane_state`,walletExpiresAt:`wallet_expires_at`,ownerId:`owner_id`,publicKey:`public_key`,authMethod:`auth_method`,curve:`curve`,ed25519ThresholdSessionId:`ed25519_threshold_session_id`,ecdsaThresholdSessionId:`ecdsa_threshold_session_id`,thresholdSessionId:`threshold_session_id`,exactSigningLaneIdentityKey:`exact_signing_lane_identity_key`,enrollmentId:`enrollment_id`,walletIdEnrollmentId:`wallet_id_enrollment_id`,authIdentifierKey:`auth_identifier_key`,kindRpIdAuthIdentifier:`kind_rp_id_auth_identifier`,passkeyRpIdCredentialId:`passkey_rp_id_credential_id`,capabilityWallet:`capability_wallet`,capabilityWalletAuthorityState:`capability_wallet_authority_state`,capabilityWalletAuthority:`capability_wallet_authority`,walletAuthorityId:`wallet_authority_id`,walletAuthMethodId:`wallet_auth_method_id`,walletIdAuthorityId:`wallet_id_authority_id`,walletIdAuthorityStatus:`wallet_id_authority_status`,walletIdAuthMethodId:`wallet_id_auth_method_id`,walletAuthorityAuthMethodId:`wallet_authority_auth_method_id`,activationId:`activation_id`,walletAuthorityActivationId:`wallet_authority_activation_id`,walletIdDeviceId:`wallet_id_device_id`,packageSetDigest:`package_set_digest`,walletKeyId:`wallet_key_id`,walletIdLockGeneration:`wallet_id_lock_generation`,authorityDigest:`authority_digest`,revocationEpoch:`revocation_epoch`,poolIdentityKey:`pool_identity_key`,walletMaterialActivationId:`wallet_material_activation_id`},r=[{store:t.appState,keyPath:`key`,indexes:[]},{store:t.wallets,keyPath:`wallet_id`,indexes:[{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthorities,keyPath:`authority_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletIdAuthorityId,keyPath:[`wallet_id`,`authority_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`state`],unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthMethods,keyPath:`wallet_auth_method_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.rpId,keyPath:`rp_id`,unique:!1},{name:n.authIdentifierKey,keyPath:`auth_identifier_key`,unique:!1},{name:n.kindRpIdAuthIdentifier,keyPath:[`kind`,`rp_id`,`auth_identifier_key`],unique:!1},{name:n.passkeyRpIdCredentialId,keyPath:[`kind`,`rp_id`,`credential_id_b64u`],unique:!0},{name:n.status,keyPath:`status`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletIdAuthMethodId,keyPath:[`wallet_id`,`wallet_auth_method_id`],unique:!0},{name:n.walletIdAuthorityStatus,keyPath:[`wallet_id`,`wallet_authority_id`,`status`],unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.walletAuthoritySignerMaterials,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`activation_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.activationId,keyPath:`activation_id`,unique:!1},{name:n.walletAuthorityActivationId,keyPath:[`wallet_authority_id`,`activation_id`],unique:!0}]},{store:t.walletAuthorityExportRoots,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`,`wallet_key_id`],indexes:[{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthorityAuthMethodId,keyPath:[`wallet_authority_id`,`wallet_auth_method_id`],unique:!1},{name:n.walletKeyId,keyPath:`wallet_key_id`,unique:!1}]},{store:t.walletAuthorityInstallationReceipts,keyPath:`authority_id`,indexes:[{name:n.walletAuthorityId,keyPath:`authority_id`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdDeviceId,keyPath:[`wallet_id`,`device_id`],unique:!1},{name:n.packageSetDigest,keyPath:`package_set_digest_b64u`,unique:!1},{name:n.updatedAt,keyPath:`installed_at_ms`,unique:!1}]},{store:t.walletSelections,keyPath:`wallet_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!0},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.walletIdLockGeneration,keyPath:[`wallet_id`,`lock_generation`],unique:!0}]},{store:t.walletSigners,keyPath:`wallet_signer_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletIdKind,keyPath:[`wallet_id`,`kind`],unique:!1},{name:n.walletKindNearSignerSlot,keyPath:[`wallet_id`,`kind`,`near_signer_slot`],unique:!1},{name:n.walletKindNearEd25519SigningKeyId,keyPath:[`wallet_id`,`kind`,`near_ed25519_signing_key_id`],unique:!1},{name:n.walletKindChainTargetKeyHandle,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`key_handle`],unique:!0},{name:n.walletKindChainTargetKeyFacts,keyPath:[`wallet_id`,`kind`,`chain_target_key`,`ecdsa_threshold_key_id`],unique:!0},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.thresholdOwnerAddress,keyPath:`threshold_owner_address`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.nearAccountProjections,keyPath:[`wallet_id`,`near_account_id`,`signer_slot`],indexes:[{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.profileId,keyPath:`profile_id`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signerOpsOutbox,keyPath:`op_id`,indexes:[{name:n.status,keyPath:`status`,unique:!1},{name:n.nextAttemptAt,keyPath:`next_attempt_at`,unique:!1},{name:n.statusNextAttemptAt,keyPath:[`status`,`next_attempt_at`],unique:!1},{name:n.idempotencyKey,keyPath:`idempotency_key`,unique:!0},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1}]},{store:t.nonceLaneLeases,keyPath:`lease_id`,indexes:[{name:n.laneKey,keyPath:`lane_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.nearAccountId,keyPath:`near_account_id`,unique:!1},{name:n.state,keyPath:`state`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.laneState,keyPath:[`lane_key`,`state`],unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]},{store:t.nonceLaneLocks,keyPath:`lock_key`,indexes:[{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1}]},{store:t.keyMaterial,keyPath:`key_material_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletSignerId,keyPath:`wallet_signer_id`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.publicKey,keyPath:`public_key`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionSeals,keyPath:`store_key`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.authMethod,keyPath:`auth_method`,unique:!1},{name:n.curve,keyPath:`curve`,unique:!1},{name:n.ed25519ThresholdSessionId,keyPath:`ed25519_threshold_session_id`,unique:!1},{name:n.ecdsaThresholdSessionId,keyPath:`ecdsa_threshold_session_id`,unique:!1},{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollmentId`,unique:!1},{name:n.keyHandle,keyPath:`key_handle`,unique:!1},{name:n.chainTargetKey,keyPath:`chain_target_key`,unique:!1},{name:n.exactSigningLaneIdentityKey,keyPath:`exact_signing_lane_identity_key`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.updatedAt,keyPath:`updated_at`,unique:!1}]},{store:t.signingSessionRestoreLeases,keyPath:`lease_key`,indexes:[{name:n.thresholdSessionId,keyPath:`threshold_session_id`,unique:!1},{name:n.ownerId,keyPath:`owner_id`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.pendingWalletRecoveryCodeBackups,keyPath:[`wallet_id`,`enrollment_id`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.enrollmentId,keyPath:`enrollment_id`,unique:!1},{name:n.walletIdEnrollmentId,keyPath:[`wallet_id`,`enrollment_id`],unique:!0},{name:n.recoveryCodesIssuedAtMs,keyPath:`recovery_codes_issued_at_ms`,unique:!1},{name:n.status,keyPath:`status`,unique:!1}]},{store:t.walletSessionAuthorizations,keyPath:`wallet_session_id`,indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletAuthorityId,keyPath:`wallet_authority_id`,unique:!1},{name:n.walletAuthMethodId,keyPath:`wallet_auth_method_id`,unique:!1},{name:n.authorityDigest,keyPath:`authority_digest_b64u`,unique:!1},{name:n.revocationEpoch,keyPath:`authority_revocation_epoch`,unique:!1},{name:n.status,keyPath:`status`,unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1}]},{store:t.ecdsaCapabilityManifests,keyPath:`manifest_id`,indexes:[{name:n.capabilityWallet,keyPath:[`capability_ref`,`wallet_id`],unique:!1},{name:n.capabilityWalletAuthorityState,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`,`manifest_state`],unique:!1}]},{store:t.ecdsaCurrentCapabilityManifests,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],indexes:[{name:n.walletId,keyPath:`wallet_id`,unique:!1}]},{store:t.ecdsaRoleLocalMaterial,keyPath:`durable_material_ref`,indexes:[]},{store:t.ecdsaActivationCommitJournals,keyPath:`journal_id`,indexes:[{name:n.capabilityWalletAuthority,keyPath:[`capability_ref`,`wallet_id`,`authority_digest`],unique:!0}]},{store:t.ecdsaMaterialSealingKeys,keyPath:`key_id`,indexes:[]},{store:t.ecdsaClientPresignatures,keyPath:`record_id`,indexes:[{name:n.poolIdentityKey,keyPath:`pool_identity_key`,unique:!1},{name:n.walletId,keyPath:`wallet_id`,unique:!1},{name:n.walletMaterialActivationId,keyPath:[`wallet_id`,`material_activation_id`],unique:!1},{name:n.expiresAtMs,keyPath:`expires_at_ms`,unique:!1},{name:n.walletExpiresAt,keyPath:[`wallet_id`,`expires_at_ms`],unique:!1}]}],i=(e,t)=>t.some(t=>e instanceof t);let a,o;function s(){return a||=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}function c(){return o||=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const l=new WeakMap,u=new WeakMap,d=new WeakMap;function f(e){let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`success`,i),e.removeEventListener(`error`,a)},i=()=>{t(v(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(`success`,i),e.addEventListener(`error`,a)});return d.set(t,e),t}function p(e){if(l.has(e))return;let t=new Promise((t,n)=>{let r=()=>{e.removeEventListener(`complete`,i),e.removeEventListener(`error`,a),e.removeEventListener(`abort`,a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(`AbortError`,`AbortError`)),r()};e.addEventListener(`complete`,i),e.addEventListener(`error`,a),e.addEventListener(`abort`,a)});l.set(e,t)}let m={get(e,t,n){if(e instanceof IDBTransaction){if(t===`done`)return l.get(e);if(t===`store`)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&(t===`done`||t===`store`)?!0:t in e}};function h(e){m=e(m)}function g(e){return c().includes(e)?function(...t){return e.apply(y(this),t),v(this.request)}:function(...t){return v(e.apply(y(this),t))}}function _(e){return typeof e==`function`?g(e):(e instanceof IDBTransaction&&p(e),i(e,s())?new Proxy(e,m):e)}function v(e){if(e instanceof IDBRequest)return f(e);if(u.has(e))return u.get(e);let t=_(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const y=e=>d.get(e);function b(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){let o=indexedDB.open(e,t),s=v(o);return r&&o.addEventListener(`upgradeneeded`,e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener(`blocked`,e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{a&&e.addEventListener(`close`,()=>a()),i&&e.addEventListener(`versionchange`,e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}const x=[`get`,`getKey`,`getAll`,`getAllKeys`,`count`],S=[`put`,`add`,`delete`,`clear`],C=new Map;function w(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t==`string`))return;if(C.get(t))return C.get(t);let n=t.replace(/FromIndex$/,``),r=t!==n,i=S.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||x.includes(n)))return;let a=async function(e,...t){let a=this.transaction(e,i?`readwrite`:`readonly`),o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return C.set(t,a),a}h(e=>({...e,get:(t,n,r)=>w(t,n)||e.get(t,n,r),has:(t,n)=>!!w(t,n)||e.has(t,n)}));const T=[`continue`,`continuePrimaryKey`,`advance`],E={},D=new WeakMap,O=new WeakMap,k={get(e,t){if(!T.includes(t))return e[t];let n=E[t];return n||=E[t]=function(...e){D.set(this,O.get(this)[t](...e))},n}};async function*A(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let n=new Proxy(t,k);for(O.set(n,t),d.set(n,y(t));t;)yield n,t=await(D.get(n)||t.continue()),D.delete(n)}function j(e,t){return t===Symbol.asyncIterator&&i(e,[IDBIndex,IDBObjectStore,IDBCursor])||t===`iterate`&&i(e,[IDBIndex,IDBObjectStore])}h(e=>({...e,get(t,n,r){return j(t,n)?A:e.get(t,n,r)},has(t,n){return j(t,n)||e.has(t,n)}}));const M={dbName:e,dbVersion:24};function N(e){return typeof e==`string`?e:[...e]}function P(e,t){let n=e.createObjectStore(t.store,{keyPath:N(t.keyPath)});for(let e of t.indexes)n.createIndex(e.name,N(e.keyPath),{unique:e.unique})}function F(e){for(let t of r)e.objectStoreNames.contains(t.store)||P(e,t)}const I=8e3;function L(e){return Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${e}. Close other tabs using this app and retry.`)}function R(e){return Error(e)}async function z(e,t,n,r){let i=!1,a=null,o=new Promise((e,o)=>{a=setTimeout(()=>{i||(r?.(),o(n))},t)});try{return await Promise.race([e,o])}finally{i=!0,a&&clearTimeout(a)}}async function B(e,t){let n=await t(e);return await e.tx.done,n}const V=new Set([t.walletAuthorities,t.walletAuthoritySignerMaterials,t.walletAuthorityExportRoots,t.walletAuthMethods,t.walletSelections,t.walletSessionAuthorizations]);function H(e,t,n,...r){let i=Reflect.apply(n,t,r);return e.changed=!0,i}function U(e,t,n){let r=Reflect.get(t,n);if(typeof r!=`function`)return r;switch(n){case`add`:case`put`:case`delete`:case`clear`:return H.bind(null,e,t,r);default:return r.bind(t)}}function W(e,t,n){let r=e.objectStore(n);return e.mode===`readonly`||!V.has(n)?r:new Proxy(r,{get:U.bind(null,t)})}function G(){}function K(e){if(typeof BroadcastChannel>`u`)return null;try{return new BroadcastChannel(`seams-wallet-authority:${e}`)}catch(e){return console.warn(`[SeamsWalletDBManager] Authority notifications are unavailable:`,e),null}}const q=new class{config;dbPromise=null;disabled=!1;walletAuthorityRevision=0;walletAuthorityChannel=null;walletAuthorityListeners=new Set;onWalletAuthorityChange(e){return this.walletAuthorityListeners.add(e),this.connectWalletAuthorityChannel(),this.removeWalletAuthorityListener.bind(this,e)}removeWalletAuthorityListener(e){this.walletAuthorityListeners.delete(e),this.walletAuthorityListeners.size===0&&this.closeWalletAuthorityChannel()}getWalletAuthorityRevision(){return this.walletAuthorityRevision}publishWalletAuthorityCommit(e,t){if(!e.changed)return;t===this.config.dbName&&this.invalidateWalletAuthority();let n=t===this.config.dbName?this.walletAuthorityChannel:null,r=n??K(t);if(r)try{r.postMessage(`authority_committed`)}catch(e){console.warn(`[SeamsWalletDBManager] Authority notification failed:`,e)}finally{r!==n&&r.close()}}connectWalletAuthorityChannel(){if(this.disabled||this.walletAuthorityChannel||this.walletAuthorityListeners.size===0)return;let e=K(this.config.dbName);e&&(e.onmessage=this.receiveWalletAuthorityCommit.bind(this,e),this.walletAuthorityChannel=e)}closeWalletAuthorityChannel(){this.walletAuthorityChannel?.close(),this.walletAuthorityChannel=null}receiveWalletAuthorityCommit(e,t){e!==this.walletAuthorityChannel||t.data!==`authority_committed`||this.invalidateWalletAuthority()}invalidateWalletAuthority(){this.walletAuthorityRevision+=1;for(let e of Array.from(this.walletAuthorityListeners))try{e()}catch{}}constructor(e=M){this.config=e}getDbName(){return this.config.dbName}setDbName(e){this.config.dbName!==e&&(this.close(),this.closeWalletAuthorityChannel(),this.config={...this.config,dbName:e},this.connectWalletAuthorityChannel(),this.invalidateWalletAuthority())}setDisabled(e){this.disabled=e,e?(this.close(),this.closeWalletAuthorityChannel()):this.connectWalletAuthorityChannel()}isDisabled(){return this.disabled}close(){this.dbPromise&&=(this.dbPromise.then(e=>e.close()).catch(()=>void 0),null)}async getDB(){if(this.disabled)throw Error(`[SeamsWalletDBManager] IndexedDB is disabled in this environment.`);if(!this.dbPromise){let e=this.config.dbName,t=this.config.dbVersion,n=null,r=null,i=new Promise((e,t)=>{r=t}),a=b(e,t,{upgrade(e){F(e)},blocked(){console.warn(`[SeamsWalletDBManager] IndexedDB open is blocked.`,{dbName:e,dbVersion:t}),n=setTimeout(()=>{r?.(L(e))},3e3)},blocking:()=>{console.warn(`[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.`,{dbName:e,dbVersion:t}),this.close()},terminated(){console.warn(`[SeamsWalletDBManager] IndexedDB connection has been terminated.`,{dbName:e,dbVersion:t})}});this.dbPromise=z(Promise.race([a,i]).finally(()=>{n&&clearTimeout(n)}),I,R(`[SeamsWalletDBManager] IndexedDB open timed out for ${e}. Close other tabs using this app and retry.`)).catch(e=>{throw this.dbPromise=null,a.then(e=>e.close()).catch(()=>void 0),e})}return await this.dbPromise}async runTransaction(e,t,n,r){let i=await z(this.getDB(),I,R(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`)),a=i.transaction([...e],t,r),o={changed:!1},s={db:i,tx:a,store:W.bind(null,a,o)};a.done.then(this.publishWalletAuthorityCommit.bind(this,o,i.name)).catch(G);try{return await z(B(s,n),8e3,R(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`),()=>{try{a.abort()}catch{}})}catch(e){try{a.abort()}catch{}throw await a.done.catch(()=>void 0),e}}};export{t as i,y as n,n as r,q as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{y as e}from"./domainIds-C3fUa33Q.js";import{D as t,E as n,j as r,k as i}from"./primitives-
|
|
1
|
+
import{y as e}from"./domainIds-C3fUa33Q.js";import{D as t,E as n,j as r,k as i}from"./primitives-CTmDwMNc.js";import{t as a}from"./errors-ADOZT8oV.js";import{c as o}from"./ecdsaChainTarget-DkOrgv4y.js";import{L as s,et as c,ot as l,r as u}from"./emailOtpEcdsaDerivationIdentity-CupWCKNg.js";const d=`Your worker restarted mid-request`;function f(t,n){let r=e(t);if(!r.ok)throw Error(`${n} is invalid`);return r.value}function p(e,t){let n=typeof e==`string`?e.trim():``;if(!n)throw Error(`Missing ${t}`);return n}function m(e,t){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Missing ${t}`);return e}function h(e,t){let n=m(e,t);if(!Number.isSafeInteger(n)||n<0)throw Error(`${t} must be a non-negative integer`);return n}function g(e){if(!Array.isArray(e)||e.length===0)throw Error(`participantIds must be a non-empty array`);return e.map(e=>{let t=Number(e);if(!Number.isSafeInteger(t)||t<=0)throw Error(`participantIds must contain positive integer ids`);return t})}function _(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e)||Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw Error(`Missing ${n}`);let r=new Set(t),i=Object.keys(e);if(i.length!==r.size||i.some(e=>!r.has(e)))throw Error(`${n} contains unexpected fields`);return e}function v(e,t,n){let r=Object.getOwnPropertyDescriptor(e,t);if(!r||!(`value`in r))throw Error(`Missing ${n}`);return r.value}const y=[`formatVersion`,`walletId`,`evmFamilySigningKeySlotId`,`ecdsaThresholdKeyId`,`relayerKeyId`,`applicationBindingDigestB64u`,`contextBinding32B64u`,`publicIdentity`,`clientShareRetryCounter`,`relayerShareRetryCounter`,`keyHandle`,`signingRootId`,`signingRootVersion`,`thresholdEcdsaPublicKeyB64u`,`ethereumAddress`,`relayerVerifyingShareB64u`,`participantIds`,`thresholdSessionId`,`activationEpoch`,`expiresAtMs`,`expiresAt`,`remainingUses`,`routerAbEcdsaDerivationNormalSigning`];function b(e){let t=_(e,[`derivationClientSharePublicKey33B64u`,`relayerPublicKey33B64u`,`groupPublicKey33B64u`,`ethereumAddress`],`publicIdentity`);return{derivationClientSharePublicKey33B64u:p(v(t,`derivationClientSharePublicKey33B64u`,`publicIdentity.derivationClientSharePublicKey33B64u`),`publicIdentity.derivationClientSharePublicKey33B64u`),relayerPublicKey33B64u:p(v(t,`relayerPublicKey33B64u`,`publicIdentity.relayerPublicKey33B64u`),`publicIdentity.relayerPublicKey33B64u`),groupPublicKey33B64u:p(v(t,`groupPublicKey33B64u`,`publicIdentity.groupPublicKey33B64u`),`publicIdentity.groupPublicKey33B64u`),ethereumAddress:p(v(t,`ethereumAddress`,`publicIdentity.ethereumAddress`),`publicIdentity.ethereumAddress`)}}function x(e){let t=_(e,y,`value`);if(v(t,`formatVersion`,`value.formatVersion`)!==`ecdsa-derivation-role-local`)throw Error(`value.formatVersion is invalid`);let n=o(v(t,`walletId`,`value.walletId`)),r=p(v(t,`evmFamilySigningKeySlotId`,`value.evmFamilySigningKeySlotId`),`evmFamilySigningKeySlotId`),i=u(v(t,`ecdsaThresholdKeyId`,`value.ecdsaThresholdKeyId`)),a=p(v(t,`relayerKeyId`,`value.relayerKeyId`),`relayerKeyId`),s=p(v(t,`applicationBindingDigestB64u`,`value.applicationBindingDigestB64u`),`applicationBindingDigestB64u`),c=p(v(t,`contextBinding32B64u`,`value.contextBinding32B64u`),`contextBinding32B64u`),d=b(v(t,`publicIdentity`,`value.publicIdentity`)),x=h(v(t,`clientShareRetryCounter`,`value.clientShareRetryCounter`),`clientShareRetryCounter`),S=h(v(t,`relayerShareRetryCounter`,`value.relayerShareRetryCounter`),`relayerShareRetryCounter`),C=p(v(t,`keyHandle`,`value.keyHandle`),`keyHandle`),w=p(v(t,`signingRootId`,`value.signingRootId`),`signingRootId`),T=p(v(t,`signingRootVersion`,`value.signingRootVersion`),`signingRootVersion`),E=g(v(t,`participantIds`,`value.participantIds`)),D=p(v(t,`thresholdSessionId`,`value.thresholdSessionId`),`thresholdSessionId`),O=f(v(t,`activationEpoch`,`value.activationEpoch`),`activationEpoch`),k=m(v(t,`expiresAtMs`,`value.expiresAtMs`),`expiresAtMs`),A=l(v(t,`routerAbEcdsaDerivationNormalSigning`,`value.routerAbEcdsaDerivationNormalSigning`));return{formatVersion:`ecdsa-derivation-role-local`,walletId:n,evmFamilySigningKeySlotId:r,ecdsaThresholdKeyId:i,relayerKeyId:a,applicationBindingDigestB64u:s,contextBinding32B64u:c,publicIdentity:d,clientShareRetryCounter:x,relayerShareRetryCounter:S,keyHandle:C,signingRootId:w,signingRootVersion:T,thresholdEcdsaPublicKeyB64u:p(v(t,`thresholdEcdsaPublicKeyB64u`,`value.thresholdEcdsaPublicKeyB64u`),`thresholdEcdsaPublicKeyB64u`),ethereumAddress:p(v(t,`ethereumAddress`,`value.ethereumAddress`),`ethereumAddress`),relayerVerifyingShareB64u:p(v(t,`relayerVerifyingShareB64u`,`value.relayerVerifyingShareB64u`),`relayerVerifyingShareB64u`),participantIds:E,thresholdSessionId:D,activationEpoch:O,expiresAtMs:k,expiresAt:p(v(t,`expiresAt`,`value.expiresAt`),`expiresAt`),remainingUses:m(v(t,`remainingUses`,`value.remainingUses`),`remainingUses`),routerAbEcdsaDerivationNormalSigning:A}}function S(e){return e?e.kind===`opaque_wallet_session_operation_credential_v1`?e.token:String(e.token||``).trim():``}function C(e){if(e.auth?.kind===`opaque_wallet_session_operation_credential_v1`)return t({headers:i(e.auth),body:e.body});let r=S(e.auth),a=String(e.publishableKeyAuth||``).trim();return t({headers:r?n({token:r,missingMessage:`bearer token is required`}):a?n({token:a,missingMessage:`publishable key auth is required`}):void 0,body:e.body})}function w(e){return{code:`http_error`,message:`HTTP ${e}`}}function T(e){try{let t=_(e,[`ok`,`code`,`message`],`relayer failure`);if(v(t,`ok`,`relayer failure.ok`)!==!1)throw Error(`invalid ok`);let n=v(t,`code`,`relayer failure.code`),r=v(t,`message`,`relayer failure.message`);if(typeof n!=`string`||!n.trim())throw Error(`invalid code`);if(typeof r!=`string`||!r.trim())throw Error(`invalid message`);return{code:n.trim(),message:r.trim()}}catch{return null}}async function E(e){let t=await O(e);return k(t)?{ok:!1,code:`worker_restarted_mid_request`,message:d}:A(t)}async function D(e,t){try{let n=r(e);if(!n)throw Error(`Missing relayServerUrl`);let i=await fetch(`${n}${s}`,C({auth:t.auth,body:t.request})),a=await E(i);if(!i.ok){let e=T(a)??w(i.status);return{ok:!1,code:e.code,message:e.message}}return{ok:!0,value:c(a)}}catch(e){return{ok:!1,error:a(e)||`Router A/B ECDSA session activation failed`}}}async function O(e){try{return await e.text()}catch{return``}}function k(e){return e.includes(d)}function A(e){try{return JSON.parse(e||`{}`)}catch(e){throw Error(`Failed to parse threshold ECDSA relayer response JSON: ${a(e)}`)}}export{x as n,D as t};
|
package/dist/{public/sdk/transactionState-XbZm9Zon.js → esm/sdk/transactionState-lB2qpkOm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./ecdsaChainTarget-DkOrgv4y.js";import{c as t}from"./types-CQTWmtqu.js";import{g as n,v as r,y as i}from"./nearEd25519YaoSigningPreparation-
|
|
1
|
+
import{s as e}from"./ecdsaChainTarget-DkOrgv4y.js";import{c as t}from"./types-CQTWmtqu.js";import{g as n,v as r,y as i}from"./nearEd25519YaoSigningPreparation-yKDLQXBS.js";import{f as a,h as o,l as s,m as c,p as l}from"./clientSessionPersistenceState-BgO4P6CZ.js";function u(e){return{tag:`IntentReceived`,intent:e}}function d(e,t){return{tag:`AvailableLanesRead`,intent:e.intent,availableLanes:t.availableLanes}}function f(e){return!!e&&e.curve===`ed25519`&&e.chain===`near`&&o(e)}function p(e){return!!e&&e.curve===`ecdsa`&&!!e.chainTarget&&o(e)}function m(e){return l(e)||null}function h(e){return e.state===`ready`?`ready`:e.state===`restorable`?`restorable`:null}function g(e){return e.state===`expired`?`expired`:e.state===`exhausted`?`exhausted`:null}function _(e,t){return{auth:e.auth,curve:`ed25519`,chain:`near`,materialActivation:e.materialActivation,walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,authorizationState:`authorized`,authorization:e.authorization,state:t,thresholdSessionId:e.thresholdSessionId,...e.remainingUses==null?{}:{remainingUses:e.remainingUses},...e.expiresAtMs==null?{}:{expiresAtMs:e.expiresAtMs},...e.policyHint?{policyHint:e.policyHint}:{},...e.updatedAtMs==null?{}:{updatedAtMs:e.updatedAtMs}}}function v(e){let t=h(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-ready`);return _(e,t)}function y(e){let t=g(e);if(!t)throw Error(`[SigningSessionSelectLane] Ed25519 lane is not transaction-reauthable`);return _(e,t)}function b(e){return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}function x(e){return{kind:`near_ed25519_transaction_ready_lane`,candidate:e.candidate,availableLane:v(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function S(e){return{kind:`near_ed25519_transaction_reauth_lane`,candidate:e.candidate,availableLane:y(e.lane),selectedLane:b(e.candidate),authorityKey:e.authorityKey}}function C(e){if(!f(e)||e.authorizationState!==`authorized`)return null;let t=h(e),n=g(e);if(!t&&!n)return null;let r=m(e);if(!r)return null;let i=c({lane:e});return!i||i.authorizationState!==`authorized`?null:t?x({lane:e,candidate:i,authorityKey:r}):S({lane:e,candidate:i,authorityKey:r})}function w(e){if(e.curve===`ed25519`){if(e.authorizationState!==`authorized`||!e.authorization)throw Error(`[SigningSessionSelectLane] Ed25519 lane requires active authorization`);return i({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,auth:e.auth,walletSessionId:e.authorization.operationCredential.walletSessionId,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.thresholdSessionId})}if(e.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] ECDSA lane requires active authorization`);return r({key:e.key,materialActivation:e.materialActivation,keyHandle:e.keyHandle,walletId:e.walletId,auth:e.auth,authorization:e.authorization,chainTarget:e.chainTarget})}function T(e){return[...new Set(e.map(e=>n(e.candidate)))].sort()}function E(e){switch(e.length){case 0:return null;case 1:{let[t]=e;return t||null}default:return null}}function D(e){let t=e.intent;return t.curve===`ed25519`&&t.chain===`near`?O({...e,intent:t}):t.curve===`ecdsa`?j({...e,intent:t}):{ok:!1,failure:{kind:`unsupported_intent`,curve:t.curve||`unknown`,chain:t.chain||`unknown`}}}function O(e){let t=A(e);if(!t.ok)return t;if(t.kind===`authorization_required`)return{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}};let r=C(t.availableLane);if(!r)throw Error(`[SigningSessionSelectLane] authorized Ed25519 lane is not selectable`);return{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:r.availableLane,selectionCandidate:r}}function k(e,t){if(e.candidate.walletId!==t.walletId||e.candidate.nearAccountId!==t.signerSelection.nearAccountId)return!1;switch(t.signerSelection.kind){case`near_account`:return!0;case`signer_slot`:return e.candidate.signerSlot===t.signerSelection.signerSlot}}function A(e){let t=e.intent,n=P(t,(e.availableLanes?.candidates.ed25519.near||[]).filter(f).map(e=>({availableLane:e,candidate:c({lane:e})})).filter(e=>e.candidate!==null).filter(e=>k(e,t)));if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);if(!r)return{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}};if(r.candidate.authorizationState===`authorization_required`){if(r.availableLane.authorizationState!==`authorization_required`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}}if(r.availableLane.authorizationState!==`authorized`)throw Error(`[SigningSessionSelectLane] Ed25519 material authorization mismatch`);return{ok:!0,kind:`authorized`,lane:b(r.candidate),candidate:r.candidate,availableLane:r.availableLane}}function j(e){let t=M(e);return t.ok?t.kind===`authorization_required`?{ok:!1,failure:{kind:`no_candidate`,authMethod:n(t.candidate)}}:{ok:!0,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:{candidate:t.candidate,availableLane:t.availableLane}}:t}function M(e){let t=e.intent,n=P(t,e.availableLanes?s(e.availableLanes,t.chainTarget).filter(p).map(e=>({availableLane:e,candidate:a({walletId:t.walletId,lane:e})})).filter(e=>e.candidate!==null):[]);if(!n.length)return{ok:!1,failure:t.authSelectionPolicy.kind===`any`?{kind:`no_candidate`}:{kind:`no_candidate`,authMethod:t.authSelectionPolicy.authMethod}};let r=E(n);return r?r.candidate.authorizationState===`authorization_required`?{ok:!0,kind:`authorization_required`,candidate:r.candidate,availableLane:r.availableLane}:{ok:!0,kind:`authorized`,lane:N({intent:t,candidate:r.candidate}),candidate:r.candidate,availableLane:r.availableLane}:{ok:!1,failure:{kind:`ambiguous_material`,allowedAuthMethods:T(n)}}}function N(t){if(!e(t.candidate.chainTarget,t.intent.chainTarget))throw Error(`[SigningSessionSelectLane] ECDSA available lane target mismatch`);return w(t.candidate)}function P(e,t){if(e.authSelectionPolicy.kind===`any`)return t;let r=e.authSelectionPolicy.authMethod;return t.filter(e=>n(e.candidate)===r)}function F(e){let t=D({intent:e.intent,availableLanes:e.availableLanes});return t.ok?{tag:`LaneSelected`,intent:e.intent,lane:t.lane,candidate:t.candidate,availableLane:t.availableLane,selectionCandidate:t.selectionCandidate}:{tag:`LaneSelectionFailed`,intent:e.intent,failure:t.failure}}async function I(e){let n=await e.lifecycleAdapter.prepare({...e.operation?{operation:e.operation}:{}});if(n.lane.curve!==n.readiness.readiness.curve)throw Error(`[SigningSession] prepared lane and readiness curves do not match`);let r={lane:n.lane,readiness:n.readiness.readiness,expiresAtMs:n.readiness.expiresAtMs,remainingUses:n.readiness.remainingUses,forceFreshAuth:e.forceFreshAuth||n.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy},i=await e.coordinator.resolveAuthPlanFromReadiness(r,e.onPlannerTrace);return{...e.operation?{operation:e.operation}:{},lane:n.lane,authMethod:t(n.lane.auth),signingSessionPlan:i.signingSessionPlan,readiness:i.readiness,expiresAtMs:i.expiresAtMs,remainingUses:i.remainingUses,availableLanesGeneration:Math.max(0,Math.floor(Number(n.availableLanesGeneration)||0)),metadata:n.metadata||{}}}function L(e,t){return{tag:`ReadinessClassified`,intent:e.intent,lane:e.lane,candidate:e.candidate,availableLane:e.availableLane,readiness:t}}function R(e){return{intent:e.intent,lane:e.lane,readiness:e.readiness}}async function z(e){let t=null,n=null,r=null,i=await I({intent:B(e.intent),lifecycleAdapter:{prepare:async r=>{let i=await e.lifecycleAdapter.prepare({intent:e.intent,...r.operation?{operation:r.operation}:{}});return t=i.transactionLane,n=i.transactionIntent||e.intent,{lane:i.lane,readiness:i.readiness,availableLanesGeneration:i.availableLanesGeneration,forceFreshAuth:i.forceFreshAuth,metadata:{...i.metadata||{},transactionLane:i.transactionLane,transactionOperation:null}}}},coordinator:e.coordinator,...e.operation?{operation:e.operation}:{},forceFreshAuth:e.forceFreshAuth,sensitiveOperationPolicy:e.sensitiveOperationPolicy,onPlannerTrace:e.onPlannerTrace});if(!t)throw Error(`[SigningSession] transaction prepare did not return a transaction lane`);return r={intent:n||e.intent,lane:t,readiness:V(i)},i.metadata.transactionOperation=r,{thresholdOperation:i,transactionOperation:r}}function B(e){return{kind:`transaction_sign`,chain:e.chain,curve:e.curve,walletId:String(e.walletId),reason:`transaction`}}function V(e){let t=e.readiness.status;return t===`ready`?{status:`ready`,remainingUses:Math.max(0,Math.floor(Number(e.remainingUses)||0)),expiresAtMs:Math.max(0,Math.floor(Number(e.expiresAtMs)||0))}:t===`missing_session`?{status:`status_unavailable`,reason:`missing_session`}:t===`expired`?{status:`expired`}:t===`exhausted`?{status:`exhausted`}:t===`auth_unavailable`?{status:`auth_unavailable`,reason:`auth_unavailable`}:t===`status_unavailable`?{status:`status_unavailable`,reason:`status_unavailable`}:t===`status_unknown`?{status:`status_unknown`,reason:`status_unknown`}:{status:`policy_blocked`,reason:t}}export{d as a,F as c,u as i,R as n,M as o,z as r,A as s,L as t};
|