@seams/wallet 0.7.1 → 0.7.3
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/THIRD_PARTY_NOTICES.md +1 -105
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/SeamsWeb.js +10 -1
- package/dist/esm/SeamsWeb/operations/auth/login.js +16 -6
- package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
- package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
- package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
- package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
- package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
- package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
- package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
- package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
- package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +88 -222
- package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
- package/dist/esm/build-paths.js +0 -2
- package/dist/esm/components/AccountMenuButton/MenuItem.css +17 -0
- package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -5
- package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
- package/dist/esm/components/QRCodeScanner.css +0 -15
- package/dist/esm/components/ShowQRCode.css +0 -14
- package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
- package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
- package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
- package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +69 -121
- package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
- package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
- package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
- package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
- package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
- package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
- package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
- package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
- package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
- package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
- package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
- package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
- package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
- package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
- package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
- package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
- package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
- package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
- package/dist/esm/core/signingEngine/workerManager/workerTransport.js +1 -5
- package/dist/esm/react/SeamsWeb/SeamsWeb.js +10 -1
- package/dist/esm/react/SeamsWeb/operations/auth/login.js +16 -6
- package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
- package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +2 -3
- package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
- package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
- package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
- package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
- package/dist/esm/react/SeamsWeb/publicApi/auth.js +2 -1
- package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
- package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
- package/dist/esm/react/build-paths.js +0 -2
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +2 -2
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +4 -4
- package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +7 -7
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
- package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
- package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
- package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
- package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
- package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
- package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
- package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
- package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
- package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
- package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
- package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
- package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
- package/dist/esm/react/components/AccountMenuButton/index.js +6 -6
- package/dist/esm/react/components/QRCodeScanner.css +0 -15
- package/dist/esm/react/components/ShowQRCode.css +0 -14
- package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
- package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
- package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
- package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
- package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +4 -4
- package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
- package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
- package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
- package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +2 -2
- package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
- package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
- package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
- package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
- package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
- package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
- package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
- package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
- package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
- package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
- package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
- package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +1 -5
- package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
- package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
- package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
- package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
- package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
- package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +5 -8
- package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +5 -1
- package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
- package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +12 -16
- package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
- package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +2 -8
- package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +2 -5
- package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
- package/dist/esm/react/styles/styles.css +17 -86
- package/dist/esm/react/utils/menuItemBlink.js +24 -0
- package/dist/esm/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
- package/dist/esm/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
- package/dist/{public/sdk/canonicalSignerErrorCode-CRoJMVpp.js → esm/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
- package/dist/esm/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
- package/dist/{public/sdk/configHelpers-vAQCzUD0.js → esm/sdk/configHelpers-D1EqxVxg.js} +1 -1
- package/dist/{public/sdk/defaultConfigs-B3c16M_8.js → esm/sdk/defaultConfigs-D_33pPT9.js} +3 -3
- package/dist/esm/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
- package/dist/esm/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
- package/dist/{public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
- package/dist/esm/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
- package/dist/{public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
- package/dist/esm/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
- package/dist/esm/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
- package/dist/{public/sdk/host-BWBbCAMu.js → esm/sdk/host-CnV8nAUe.js} +3 -3
- package/dist/{public/sdk/keyMaterialBrands-CX41hur6.js → esm/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
- package/dist/{public/sdk/localOnly-Bg8UuLZ5.js → esm/sdk/localOnly-DTpa2jD5.js} +2 -2
- package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
- package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
- package/dist/esm/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
- package/dist/esm/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
- package/dist/esm/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
- package/dist/esm/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
- package/dist/esm/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
- package/dist/esm/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
- package/dist/esm/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/esm/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
- package/dist/{public/sdk/router-C5lF_J_u.js → esm/sdk/router-B4ZWFy9E.js} +7 -7
- package/dist/{public/sdk/routerAbNormalSigning-fhvpDtmY.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/esm/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
- package/dist/esm/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
- package/dist/esm/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
- package/dist/{public/sdk/runtime-email-otp-vuUG5LYl.js → esm/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
- package/dist/{public/sdk/runtime-export-FZWj0HxJ.js → esm/sdk/runtime-export-DIVY473L.js} +13 -13
- package/dist/esm/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
- package/dist/esm/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
- package/dist/esm/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
- package/dist/{public/sdk/runtime-recovery-C-vfFKF3.js → esm/sdk/runtime-recovery-i08vCJST.js} +12 -12
- package/dist/esm/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
- package/dist/esm/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
- package/dist/{public/sdk/secp256k1-el9aE4Sv.js → esm/sdk/secp256k1-D-I6Gh4D.js} +36 -25
- package/dist/esm/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
- package/dist/{public/sdk/signEvmFamily-e4IWWsZs.js → esm/sdk/signEvmFamily-C3C97Th-.js} +43 -102
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
- package/dist/{public/sdk/signEvmWithUiConfirm-C61TCBnh.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
- package/dist/esm/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
- package/dist/{public/sdk/signerLoader-D7Aey0FD.js → esm/sdk/signerLoader-B7orgq5Z.js} +3 -3
- package/dist/{public/sdk/signingFlow-rZfPegH9.js → esm/sdk/signingFlow-SZ8t_lxv.js} +9 -10
- package/dist/esm/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
- package/dist/esm/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
- package/dist/esm/sdk/tx-confirm-ui.js +11 -46
- 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/{public/sdk/wallet-recovery-Bz9qKgaL.js → esm/sdk/wallet-recovery-BX61-79p.js} +3 -6
- package/dist/esm/sdk/wallet-ui.css +41 -301
- package/dist/{public/sdk/walletAuthority-BQBxgUBn.js → esm/sdk/walletAuthority-DD9T25F6.js} +1 -5
- package/dist/esm/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
- package/dist/esm/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
- package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +12 -16
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -8
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -5
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
- package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
- package/dist/esm/utils/menuItemBlink.js +24 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
- 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/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
- package/dist/public/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
- package/dist/{esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js → public/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
- package/dist/public/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
- package/dist/{esm/sdk/configHelpers-vAQCzUD0.js → public/sdk/configHelpers-D1EqxVxg.js} +1 -1
- package/dist/{esm/sdk/defaultConfigs-B3c16M_8.js → public/sdk/defaultConfigs-D_33pPT9.js} +3 -3
- package/dist/public/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
- package/dist/public/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
- package/dist/{esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
- package/dist/public/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
- package/dist/{esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
- package/dist/public/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
- package/dist/public/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
- package/dist/{esm/sdk/host-BWBbCAMu.js → public/sdk/host-CnV8nAUe.js} +3 -3
- package/dist/{esm/sdk/keyMaterialBrands-CX41hur6.js → public/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
- package/dist/{esm/sdk/localOnly-Bg8UuLZ5.js → public/sdk/localOnly-DTpa2jD5.js} +2 -2
- package/dist/public/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
- package/dist/public/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
- package/dist/public/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
- package/dist/public/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
- package/dist/public/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
- package/dist/public/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
- package/dist/public/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
- package/dist/public/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
- package/dist/public/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/public/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
- package/dist/{esm/sdk/router-C5lF_J_u.js → public/sdk/router-B4ZWFy9E.js} +7 -7
- package/dist/{esm/sdk/routerAbNormalSigning-fhvpDtmY.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
- package/dist/public/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
- package/dist/public/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
- package/dist/{esm/sdk/runtime-email-otp-vuUG5LYl.js → public/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
- package/dist/{esm/sdk/runtime-export-FZWj0HxJ.js → public/sdk/runtime-export-DIVY473L.js} +13 -13
- package/dist/public/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
- package/dist/public/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
- package/dist/public/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
- package/dist/{esm/sdk/runtime-recovery-C-vfFKF3.js → public/sdk/runtime-recovery-i08vCJST.js} +12 -12
- package/dist/public/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
- package/dist/public/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
- package/dist/{esm/sdk/secp256k1-el9aE4Sv.js → public/sdk/secp256k1-D-I6Gh4D.js} +36 -25
- package/dist/public/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
- package/dist/{esm/sdk/signEvmFamily-e4IWWsZs.js → public/sdk/signEvmFamily-C3C97Th-.js} +43 -102
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
- package/dist/{esm/sdk/signEvmWithUiConfirm-C61TCBnh.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
- package/dist/public/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
- package/dist/{esm/sdk/signerLoader-D7Aey0FD.js → public/sdk/signerLoader-B7orgq5Z.js} +3 -3
- package/dist/{esm/sdk/signingFlow-rZfPegH9.js → public/sdk/signingFlow-SZ8t_lxv.js} +9 -10
- package/dist/public/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
- package/dist/public/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
- package/dist/public/sdk/tx-confirm-ui.js +11 -46
- 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/{esm/sdk/wallet-recovery-Bz9qKgaL.js → public/sdk/wallet-recovery-BX61-79p.js} +3 -6
- package/dist/public/sdk/wallet-ui.css +41 -301
- package/dist/{esm/sdk/walletAuthority-BQBxgUBn.js → public/sdk/walletAuthority-DD9T25F6.js} +1 -5
- package/dist/public/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
- package/dist/public/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
- package/dist/public/sdk/workers/device-linking-key.worker.js +106 -105
- package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +15 -24
- package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +58 -73
- package/dist/public/sdk/workers/email-otp.worker.js +13 -16
- package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
- package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
- package/dist/public/sdk/workers/near_signer.wasm +0 -0
- package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
- package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
- package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +7 -7
- package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
- package/dist/public/wallet-assets.manifest.json +112 -112
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
- package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +5 -63
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -1
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +3 -5
- package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
- package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
- package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
- package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
- package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
- package/dist/types/wallet/build-paths.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
- package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -17
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
- package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
- package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
- package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -8
- package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +3 -6
- package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +9 -38
- package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
- package/dist/types/wallet/src/core/platform/ports.d.ts +3 -7
- package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
- package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -8
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
- package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
- package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +1 -10
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +3 -10
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
- package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
- package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -6
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
- package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
- package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +3 -8
- package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
- package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -22
- package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
- package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
- package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +3 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -11
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -2
- package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
- package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
- package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +4 -21
- package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
- package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
- package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
- package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
- package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
- package/dist/workers/device-linking-key.worker.js +106 -105
- package/dist/workers/ecdsa-derivation-client.worker.js +15 -24
- package/dist/workers/ecdsa-presign-client.worker.js +58 -73
- package/dist/workers/email-otp.worker.js +13 -16
- package/dist/workers/evm_crypto.wasm +0 -0
- package/dist/workers/evm_crypto_bg.wasm +0 -0
- package/dist/workers/near_signer.wasm +0 -0
- package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
- package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/workers/tempo_signer.wasm +0 -0
- package/dist/workers/tempo_signer_bg.wasm +0 -0
- package/dist/workers/wallet-custody-ceremony.worker.js +7 -7
- package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
- package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
- package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
- package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
|
@@ -42,11 +42,12 @@ import { parseWalletIframeExactSessionIdentity } from "./walletIframe/shared/exa
|
|
|
42
42
|
import { resolveBrowserWorkerWarmupPolicy } from "./assembly/browserWorkerWarmupPolicy.js";
|
|
43
43
|
import { configureBrowserIndexedDB } from "./assembly/configureBrowserIndexedDB.js";
|
|
44
44
|
import { createBrowserHostPlatformRuntime, createBrowserSigningRuntime } from "./assembly/createBrowserSigningRuntime.js";
|
|
45
|
+
import { scheduleRestoredSessionPresignaturePrefills } from "./walletIframe/host/restoredSessionPresignaturePrefill.js";
|
|
45
46
|
import { createBrowserSigningStores } from "./assembly/createBrowserSigningStores.js";
|
|
46
47
|
import { initializeBrowserSigningRuntime } from "./assembly/initializeBrowserSigningRuntime.js";
|
|
47
48
|
import { assertWalletRuntimePostconditions } from "../core/signingEngine/session/postconditions/runtimePostconditions.js";
|
|
48
49
|
import { resolveExactLinkedEmailOtpAuthority, resolveLinkedDeviceEmailOtpAuthoritySelection, unlockLinkedDeviceEmailOtpWallet } from "./operations/auth/login.js";
|
|
49
|
-
import { getWalletSessionDomain } from "./operations/auth/walletAuth.js";
|
|
50
|
+
import { getWalletSessionDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain } from "./operations/auth/walletAuth.js";
|
|
50
51
|
import { LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1 } from "./operations/devices/deviceLinkingHttpTransport.js";
|
|
51
52
|
import { createWalletIframeLinkedDeviceManagementPortV1 } from "./publicApi/devices.js";
|
|
52
53
|
import { resolveConfiguredChainTarget } from "./publicApi/chainTargets.js";
|
|
@@ -620,6 +621,14 @@ var SeamsWeb = class {
|
|
|
620
621
|
async getWalletIframeExactSessionState() {
|
|
621
622
|
return await this.walletIframe.getExactSessionState();
|
|
622
623
|
}
|
|
624
|
+
/** @internal One wallet-host restore owns all configured-chain prefills. */
|
|
625
|
+
async prefillRestoredWalletSession(state) {
|
|
626
|
+
await scheduleRestoredSessionPresignaturePrefills({
|
|
627
|
+
state,
|
|
628
|
+
chainTargets: this.configuredChainTargets(),
|
|
629
|
+
prefill: prefillRouterAbEcdsaDerivationPresignaturePoolDomain.bind(null, this.getWalletAuthDeps())
|
|
630
|
+
});
|
|
631
|
+
}
|
|
623
632
|
async openHostedAuthMenu(request, anchorElement) {
|
|
624
633
|
return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
|
|
625
634
|
}
|
|
@@ -61,6 +61,7 @@ import { passkeyCredentialIdB64uFromAuthentication, passkeyPrfFirstB64uFromCrede
|
|
|
61
61
|
import { scheduleEcdsaSessionPresignaturePrefill } from "./scheduleEcdsaSessionPresignaturePrefill.js";
|
|
62
62
|
import { resolveManagedRuntimeScopeBootstrap } from "../../../core/config/managedRuntimeScope.js";
|
|
63
63
|
import { exactPasskeyWalletAuthAuthorityRefForCredential, exactPasskeyWalletAuthMethodForCredential } from "../authMethods/passkey/exactPasskeyAuthority.js";
|
|
64
|
+
import { scheduleLinkedDevicePresignaturePrefill } from "./scheduleLinkedDevicePresignaturePrefill.js";
|
|
64
65
|
import { createRouterAbNormalSigningPolicy } from "../session/thresholdWarmSessionBootstrap.js";
|
|
65
66
|
import { assertWalletRuntimePostconditions } from "../../../core/signingEngine/session/postconditions/runtimePostconditions.js";
|
|
66
67
|
import { buildConfiguredTargetKeyCompletion, collectConfiguredTargetThresholdEcdsaWarmKeys, configuredTargetThresholdEcdsaWarmKey, mergeCanonicalThresholdEcdsaWarmSessionContexts, parseActiveEcdsaSignerRecordForUnlock, planUnlockEcdsaWarmup, requireCompleteConfiguredTargetKeyContext } from "../../../core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js";
|
|
@@ -1324,12 +1325,21 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
|
|
|
1324
1325
|
...providerIdentity ? { providerIdentity } : {}
|
|
1325
1326
|
});
|
|
1326
1327
|
const ecdsaMaterial = linkedDeviceEcdsaMaterial(openedMaterials);
|
|
1327
|
-
if (ecdsaMaterial)
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1328
|
+
if (ecdsaMaterial) {
|
|
1329
|
+
const { runtime } = await activateLinkedDeviceEcdsaHolderRuntime({
|
|
1330
|
+
context: args.context,
|
|
1331
|
+
selection,
|
|
1332
|
+
factorAuthority,
|
|
1333
|
+
material: ecdsaMaterial
|
|
1334
|
+
});
|
|
1335
|
+
scheduleLinkedDevicePresignaturePrefill({
|
|
1336
|
+
runtime,
|
|
1337
|
+
operationCredential: args.operationCredential,
|
|
1338
|
+
expiresAtMs: args.walletSession.expiresAtMs,
|
|
1339
|
+
relayerUrl,
|
|
1340
|
+
workerCtx: args.context.signingEngine.getSignerWorkerContext()
|
|
1341
|
+
});
|
|
1342
|
+
}
|
|
1333
1343
|
const ed25519Material = linkedDeviceEd25519Material(openedMaterials);
|
|
1334
1344
|
if (ed25519Material) {
|
|
1335
1345
|
const session = await linkedDeviceEd25519SessionAfterLink({
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS } from "../../../core/signingEngine/workerManager/ecdsaPresignLifecycle.js";
|
|
2
|
+
import { routerAbMpcMaterialActivationRefToWire } from "../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
|
|
3
|
+
import { deriveEvmFamilyEcdsaKeyHandle } from "../../../core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js";
|
|
4
|
+
import { parseEcdsaKeyHandle } from "../../../shared-ts/src/threshold/keyMaterialBrands.js";
|
|
5
|
+
import { resolveLinkedEcdsaHolderRuntimeV1 } from "../../../core/signingEngine/session/material/linkedEcdsaHolderRuntime.js";
|
|
6
|
+
import { emitSigningSessionFlowTrace } from "../../../core/signingEngine/session/operationState/trace.js";
|
|
7
|
+
import { buildRouterAbEcdsaDerivationSigningMaterialRef } from "../../../core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js";
|
|
8
|
+
import { scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill } from "../../../core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js";
|
|
9
|
+
import { createLinkedHolderClientSigningMaterialSource } from "../../../core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js";
|
|
10
|
+
//#region src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.ts
|
|
11
|
+
async function scheduleLinkedDevicePresignaturePrefill(args) {
|
|
12
|
+
try {
|
|
13
|
+
const scope = args.runtime.activationReceipt.normalSigning.scope;
|
|
14
|
+
const material = buildRouterAbEcdsaDerivationSigningMaterialRef({ routerAbState: args.runtime.activationReceipt.normalSigning });
|
|
15
|
+
const keyHandle = await deriveEvmFamilyEcdsaKeyHandle({
|
|
16
|
+
ecdsaThresholdKeyId: scope.ecdsa_threshold_key_id,
|
|
17
|
+
signingRootId: scope.signing_root_id,
|
|
18
|
+
signingRootVersion: scope.signing_root_version
|
|
19
|
+
});
|
|
20
|
+
if (resolveLinkedEcdsaHolderRuntimeV1(args.runtime) !== args.runtime) return;
|
|
21
|
+
const result = scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill({
|
|
22
|
+
relayerUrl: args.relayerUrl,
|
|
23
|
+
keyHandle: parseEcdsaKeyHandle(keyHandle),
|
|
24
|
+
ecdsaThresholdKeyId: material.ecdsaThresholdKeyId,
|
|
25
|
+
clientVerifyingShareB64u: material.clientVerifier33B64u,
|
|
26
|
+
clientSigningMaterial: createLinkedHolderClientSigningMaterialSource(args.runtime.holderHandleId),
|
|
27
|
+
thresholdEcdsaPublicKeyB64u: material.thresholdVerifier33B64u,
|
|
28
|
+
relayerVerifyingShareB64u: material.serverVerifier33B64u,
|
|
29
|
+
credential: {
|
|
30
|
+
kind: "wallet_session_opaque",
|
|
31
|
+
walletSessionToken: args.operationCredential.token
|
|
32
|
+
},
|
|
33
|
+
authorization: {
|
|
34
|
+
kind: "reusable_wallet_session",
|
|
35
|
+
wallet_session_id: args.operationCredential.walletSessionId
|
|
36
|
+
},
|
|
37
|
+
materialActivation: routerAbMpcMaterialActivationRefToWire(args.runtime.materialActivation),
|
|
38
|
+
routerAbEcdsaDerivationPoolFill: {
|
|
39
|
+
kind: "router_ab_ecdsa_derivation_signing_worker_pool",
|
|
40
|
+
scope,
|
|
41
|
+
ceremonyExpiresAtMs: args.expiresAtMs,
|
|
42
|
+
materialExpiresAtMs: Date.now() + MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS
|
|
43
|
+
},
|
|
44
|
+
workerCtx: args.workerCtx
|
|
45
|
+
});
|
|
46
|
+
emitSigningSessionFlowTrace("evm-family", {
|
|
47
|
+
event: "ecdsa_linked_device_prefill",
|
|
48
|
+
scheduled: result.scheduled,
|
|
49
|
+
reason: result.reason,
|
|
50
|
+
depth: result.depth,
|
|
51
|
+
targetDepth: result.targetDepth
|
|
52
|
+
});
|
|
53
|
+
} catch {
|
|
54
|
+
emitSigningSessionFlowTrace("evm-family", {
|
|
55
|
+
event: "ecdsa_linked_device_prefill",
|
|
56
|
+
scheduled: false,
|
|
57
|
+
reason: "unexpected_error"
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { scheduleLinkedDevicePresignaturePrefill };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=scheduleLinkedDevicePresignaturePrefill.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { toError } from "../../../shared-ts/src/utils/errors.js";
|
|
2
2
|
import { SIGNER_AUTH_METHODS } from "../../../shared-ts/src/utils/signerDomain.js";
|
|
3
3
|
import { toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
|
|
4
|
-
import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
|
|
5
4
|
import { IndexedDBManager } from "../../../core/indexedDB/index.js";
|
|
6
5
|
import { resolveWalletUnlockSubjectSet } from "./walletUnlockSubject.js";
|
|
7
6
|
import { getRecentUnlocks, getWalletSession, lock, logout, unlockResolvedWalletSubjectSet } from "./login.js";
|
|
@@ -122,7 +121,7 @@ async function getRecentUnlocksDomain(deps) {
|
|
|
122
121
|
}
|
|
123
122
|
return await getRecentUnlocks(deps.getContext());
|
|
124
123
|
}
|
|
125
|
-
async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args) {
|
|
124
|
+
async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args, statusReads) {
|
|
126
125
|
if (deps.walletIframe.shouldUseWalletIframe()) return await (await deps.walletIframe.requireRouter(args.walletSession.walletId)).prefillRouterAbEcdsaDerivationPresignaturePool({
|
|
127
126
|
walletSession: args.walletSession,
|
|
128
127
|
options: {
|
|
@@ -135,7 +134,7 @@ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args)
|
|
|
135
134
|
walletId,
|
|
136
135
|
chainTarget: args.chainTarget,
|
|
137
136
|
...typeof args.waitForPoolReady === "boolean" ? { waitForPoolReady: args.waitForPoolReady } : {}
|
|
138
|
-
},
|
|
137
|
+
}, statusReads);
|
|
139
138
|
}
|
|
140
139
|
//#endregion
|
|
141
140
|
export { getRecentUnlocksDomain, getWalletSessionDomain, hasPasskeyCredentialDomain, lockDomain, logoutDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain, unlockDomain };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IndexedDbEcdsaCapabilityManifestStore } from "../../../core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js";
|
|
2
2
|
//#region src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.ts
|
|
3
3
|
const ecdsaCapabilityManifestStore = new IndexedDbEcdsaCapabilityManifestStore();
|
|
4
|
-
async function
|
|
4
|
+
async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
5
5
|
const resolved = await ecdsaCapabilityManifestStore.listActiveWalletCapabilitySubjects(walletId);
|
|
6
6
|
if (resolved.kind === "persistence_unavailable") return {
|
|
7
7
|
kind: "failed",
|
|
@@ -24,9 +24,6 @@ async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
|
24
24
|
subjects
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
28
|
-
return await listEvmFamilyEcdsaWalletUnlockSubjects(walletId);
|
|
29
|
-
}
|
|
30
27
|
async function resolveEcdsaActivationJournalSelectors(walletId) {
|
|
31
28
|
return await ecdsaCapabilityManifestStore.listWalletActivationJournalSelectors(walletId);
|
|
32
29
|
}
|
|
@@ -9,6 +9,7 @@ import { parseLinkSessionProjectionV1, parseLinkSessionTransportEventV1, parseLi
|
|
|
9
9
|
import { parseActivateInstalledAuthorityResultV1, parseLocalAuthorityActivationFinalAckV1, parseLocalAuthorityInstallationReceiptV1 } from "../../../shared-ts/src/device-linking/authorityActivation.js";
|
|
10
10
|
import { LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, computeLinkedDevicePublicKeyDigestV1 } from "../../../shared-ts/src/device-linking/requestProof.js";
|
|
11
11
|
import "../../../shared-ts/src/device-linking/index.js";
|
|
12
|
+
import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
|
|
12
13
|
//#region src/SeamsWeb/operations/devices/deviceLinkingHttpTransport.ts
|
|
13
14
|
const LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/sessions";
|
|
14
15
|
const LINKED_DEVICE_POLL_MAX_DELAY_MS = 4e3;
|
|
@@ -425,7 +426,7 @@ async function createPollingSubscriptionV1(input) {
|
|
|
425
426
|
function parseSessionMutationEnvelopeV1(raw) {
|
|
426
427
|
const record = asPlainDeviceLinkingResponse(raw);
|
|
427
428
|
if (record === null) throw new Error("linked-device response must be an object");
|
|
428
|
-
if (!
|
|
429
|
+
if (!hasExactResponseKeys(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
|
|
429
430
|
if (record.ok !== true) throw new Error("linked-device response outcome is invalid");
|
|
430
431
|
switch (record.outcome) {
|
|
431
432
|
case "applied": return {
|
|
@@ -444,7 +445,7 @@ function parseSessionMutationEnvelopeV1(raw) {
|
|
|
444
445
|
function parseTargetCredentialRegistrationResponseV1(raw) {
|
|
445
446
|
const record = asPlainDeviceLinkingResponse(raw);
|
|
446
447
|
if (record === null) throw new Error("linked-device target credential response must be an object");
|
|
447
|
-
if (!
|
|
448
|
+
if (!hasExactResponseKeys(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
|
|
448
449
|
if (record.ok !== true) throw new Error("linked-device target credential response outcome is invalid");
|
|
449
450
|
switch (record.outcome) {
|
|
450
451
|
case "applied": return parseTargetCredentialRegistrationResponseBranch(record, "applied");
|
|
@@ -462,20 +463,20 @@ function parseTargetCredentialRegistrationResponseBranch(record, outcome) {
|
|
|
462
463
|
function parseHttpFailureMessageV1(response) {
|
|
463
464
|
const record = asPlainDeviceLinkingResponse(response.body);
|
|
464
465
|
if (record === null || record.ok !== false) return `linked-device request failed with HTTP ${response.status}`;
|
|
465
|
-
if (
|
|
466
|
-
if (
|
|
466
|
+
if (hasExactResponseKeys(record, CODED_FAILURE_RESPONSE_FIELDS) && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
|
|
467
|
+
if (hasExactResponseKeys(record, OUTCOME_FAILURE_RESPONSE_FIELDS) && typeof record.outcome === "string" && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
|
|
467
468
|
switch (record.outcome) {
|
|
468
469
|
case "conflict":
|
|
469
|
-
if (
|
|
470
|
+
if (hasExactResponseKeys(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
|
|
470
471
|
break;
|
|
471
472
|
case "expired":
|
|
472
|
-
if (
|
|
473
|
+
if (hasExactResponseKeys(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
|
|
473
474
|
break;
|
|
474
475
|
case "invalid_state":
|
|
475
|
-
if (
|
|
476
|
+
if (hasExactResponseKeys(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
|
|
476
477
|
break;
|
|
477
478
|
case "integrity_error":
|
|
478
|
-
if (
|
|
479
|
+
if (hasExactResponseKeys(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
|
|
479
480
|
break;
|
|
480
481
|
default: break;
|
|
481
482
|
}
|
|
@@ -493,11 +494,9 @@ function isPlainDeviceLinkingResponse(value) {
|
|
|
493
494
|
return false;
|
|
494
495
|
}
|
|
495
496
|
}
|
|
496
|
-
function
|
|
497
|
+
function hasExactResponseKeys(record, expectedKeys) {
|
|
497
498
|
try {
|
|
498
|
-
|
|
499
|
-
const expected = [...expectedKeys].sort();
|
|
500
|
-
return actualKeys.length === expected.length && actualKeys.every((key, index) => key === expected[index]);
|
|
499
|
+
return hasExactKeys(record, expectedKeys);
|
|
501
500
|
} catch {
|
|
502
501
|
return false;
|
|
503
502
|
}
|
|
@@ -3,6 +3,7 @@ import { parseDigestB64u } from "../../../shared-ts/src/utils/canonicalPrimitive
|
|
|
3
3
|
import { parseDeviceId } from "../../../shared-ts/src/authorization/capabilityKinds.js";
|
|
4
4
|
import { encodeWalletSignerActivationSetV1, parseWalletSignerActivationSetV1 } from "../../../shared-ts/src/authorization/walletAuthority.js";
|
|
5
5
|
import { parseLocalAuthorityActivationFinalAckV1 } from "../../../shared-ts/src/device-linking/authorityActivation.js";
|
|
6
|
+
import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
|
|
6
7
|
//#region src/SeamsWeb/operations/devices/deviceLinkingResume.ts
|
|
7
8
|
const LINKED_DEVICE_COMMITTED_RESUME_KIND_V1 = "linked_device_committed_resume_v1";
|
|
8
9
|
const LINKED_DEVICE_PENDING_ACK_KIND_V1 = "linked_device_pending_ack_v1";
|
|
@@ -203,11 +204,6 @@ function isPlainDeviceLinkingResumeRecord(value) {
|
|
|
203
204
|
return false;
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
|
-
function hasExactKeys(record, expectedKeys) {
|
|
207
|
-
const actual = Object.keys(record).sort();
|
|
208
|
-
const expected = [...expectedKeys].sort();
|
|
209
|
-
return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
|
|
210
|
-
}
|
|
211
207
|
function sameSignerActivations(left, right) {
|
|
212
208
|
const leftBytes = encodeWalletSignerActivationSetV1(left);
|
|
213
209
|
const rightBytes = encodeWalletSignerActivationSetV1(right);
|
|
@@ -5,27 +5,10 @@ import { parseWalletSessionOperationCredentialV1 } from "../../../shared-ts/src/
|
|
|
5
5
|
import { parseLinkDevicePublicKeyB64u, parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, parseLinkedDeviceEmailOtpVerificationGrantV1 } from "../../../shared-ts/src/device-linking/parsers.js";
|
|
6
6
|
import { parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, parseLinkedDeviceWalletSessionCredentialDeliveryV1 } from "../../../shared-ts/src/device-linking/walletSessionCredentialDelivery.js";
|
|
7
7
|
import "../../../shared-ts/src/device-linking/index.js";
|
|
8
|
+
import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
|
|
8
9
|
import { resolveWorkerUrl } from "../../../core/walletRuntimePaths/workers.js";
|
|
9
10
|
import { createDeviceLinkingOrdinaryMaterialWorkerPortV1 } from "../../../core/signingEngine/workerManager/deviceLinkingPorts.js";
|
|
10
11
|
//#region src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.ts
|
|
11
|
-
function isDeviceLinkingKeyHandleRecordV1(value) {
|
|
12
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "handleId|kind";
|
|
13
|
-
}
|
|
14
|
-
function isDeviceLinkingKeyCreateResultRecordV1(value) {
|
|
15
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "deliveryRecipientPublicKey65B64u|devicePublicKeyB64u|handleId|linkPublicKeyB64u";
|
|
16
|
-
}
|
|
17
|
-
function isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value) {
|
|
18
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "factorSecret|kind|verificationGrant";
|
|
19
|
-
}
|
|
20
|
-
function isDeviceLinkingRequestSignatureResultRecordV1(value) {
|
|
21
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "signatureB64u";
|
|
22
|
-
}
|
|
23
|
-
function isDeviceLinkingWorkerSuccessFrameRecordV1(value) {
|
|
24
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "id|ok|result" && "ok" in value && value.ok === true;
|
|
25
|
-
}
|
|
26
|
-
function isDeviceLinkingWorkerFailureFrameRecordV1(value) {
|
|
27
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "error|id|ok" && "ok" in value && value.ok === false;
|
|
28
|
-
}
|
|
29
12
|
function nonEmpty(value, label) {
|
|
30
13
|
if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
|
|
31
14
|
return value;
|
|
@@ -51,7 +34,7 @@ function parseFixedB64u(value, length, label) {
|
|
|
51
34
|
return encoded;
|
|
52
35
|
}
|
|
53
36
|
function parseHandle(value) {
|
|
54
|
-
if (!
|
|
37
|
+
if (!hasExactKeys(value, ["kind", "handleId"])) throw new Error("device-linking key handle has invalid fields");
|
|
55
38
|
const record = value;
|
|
56
39
|
if (record.kind !== "device_linking_key_material_handle_v1") throw new Error("device-linking key handle kind is invalid");
|
|
57
40
|
return {
|
|
@@ -60,7 +43,12 @@ function parseHandle(value) {
|
|
|
60
43
|
};
|
|
61
44
|
}
|
|
62
45
|
function parseCreateResult(value) {
|
|
63
|
-
if (!
|
|
46
|
+
if (!hasExactKeys(value, [
|
|
47
|
+
"handleId",
|
|
48
|
+
"linkPublicKeyB64u",
|
|
49
|
+
"devicePublicKeyB64u",
|
|
50
|
+
"deliveryRecipientPublicKey65B64u"
|
|
51
|
+
])) throw new Error("device-linking key create response has invalid fields");
|
|
64
52
|
const record = value;
|
|
65
53
|
return {
|
|
66
54
|
handle: {
|
|
@@ -73,7 +61,11 @@ function parseCreateResult(value) {
|
|
|
73
61
|
};
|
|
74
62
|
}
|
|
75
63
|
function parseEmailOtpFactorReleaseResult(value) {
|
|
76
|
-
if (!
|
|
64
|
+
if (!hasExactKeys(value, [
|
|
65
|
+
"kind",
|
|
66
|
+
"verificationGrant",
|
|
67
|
+
"factorSecret"
|
|
68
|
+
])) throw new Error("device-linking Email OTP factor release response has invalid fields");
|
|
77
69
|
const record = value;
|
|
78
70
|
if (record.kind !== "device_linking_email_otp_factor_release_result_v1") throw new Error("device-linking Email OTP factor release response kind is invalid");
|
|
79
71
|
if (!(record.factorSecret instanceof ArrayBuffer) || record.factorSecret.byteLength !== 32) throw new Error("device-linking Email OTP factor release secret is invalid");
|
|
@@ -87,11 +79,15 @@ function parseWalletSessionCredentialDeliveryResult(value) {
|
|
|
87
79
|
return parseWalletSessionOperationCredentialV1(value);
|
|
88
80
|
}
|
|
89
81
|
function parseSignatureResult(value) {
|
|
90
|
-
if (!
|
|
82
|
+
if (!hasExactKeys(value, ["signatureB64u"])) throw new Error("device-linking request signature response has invalid fields");
|
|
91
83
|
return { signatureB64u: parseFixedB64u(value.signatureB64u, 64, "signatureB64u") };
|
|
92
84
|
}
|
|
93
85
|
function parseResponseFrame(value) {
|
|
94
|
-
if (
|
|
86
|
+
if (hasExactKeys(value, [
|
|
87
|
+
"id",
|
|
88
|
+
"ok",
|
|
89
|
+
"result"
|
|
90
|
+
]) && value.ok === true) {
|
|
95
91
|
const id = value.id;
|
|
96
92
|
if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
|
|
97
93
|
return {
|
|
@@ -100,7 +96,11 @@ function parseResponseFrame(value) {
|
|
|
100
96
|
result: value.result
|
|
101
97
|
};
|
|
102
98
|
}
|
|
103
|
-
if (
|
|
99
|
+
if (hasExactKeys(value, [
|
|
100
|
+
"id",
|
|
101
|
+
"ok",
|
|
102
|
+
"error"
|
|
103
|
+
]) && value.ok === false) {
|
|
104
104
|
const id = value.id;
|
|
105
105
|
if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
|
|
106
106
|
if (typeof value.error !== "string" || !value.error.trim()) return null;
|
|
@@ -81,9 +81,6 @@ function durableBase64Url(value, label, byteLength) {
|
|
|
81
81
|
if (byteLength !== void 0 && bytes.byteLength !== byteLength) throw new Error(label + " must decode to " + byteLength + " bytes");
|
|
82
82
|
return normalized;
|
|
83
83
|
}
|
|
84
|
-
function durableCompressedPublicKey(value, label) {
|
|
85
|
-
return parseSecp256k1CompressedPublicKeyB64u(value, label);
|
|
86
|
-
}
|
|
87
84
|
function durableSafeInteger(value, label) {
|
|
88
85
|
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new Error(label + " must be a non-negative safe integer");
|
|
89
86
|
return value;
|
|
@@ -154,10 +151,10 @@ function parseWalletRecoveryDurableEcdsaPublicFacts(raw) {
|
|
|
154
151
|
if (!/^0x[0-9a-f]{40}$/.test(ethereumAddress)) throw new Error("recovery durable ECDSA ethereumAddress is invalid");
|
|
155
152
|
return {
|
|
156
153
|
contextBinding32B64u: parseDigestField(record.contextBinding32B64u, "recovery durable ECDSA context binding"),
|
|
157
|
-
derivationClientSharePublicKey33B64u:
|
|
158
|
-
clientVerifyingShare33B64u:
|
|
159
|
-
relayerPublicKey33B64u:
|
|
160
|
-
groupPublicKey33B64u:
|
|
154
|
+
derivationClientSharePublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.derivationClientSharePublicKey33B64u, "recovery durable ECDSA client share"),
|
|
155
|
+
clientVerifyingShare33B64u: parseSecp256k1CompressedPublicKeyB64u(record.clientVerifyingShare33B64u, "recovery durable ECDSA client verifying share"),
|
|
156
|
+
relayerPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.relayerPublicKey33B64u, "recovery durable ECDSA relayer public key"),
|
|
157
|
+
groupPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.groupPublicKey33B64u, "recovery durable ECDSA group public key"),
|
|
161
158
|
ethereumAddress,
|
|
162
159
|
clientShareRetryCounter: durableSafeInteger(record.clientShareRetryCounter, "recovery durable ECDSA client-share retry counter"),
|
|
163
160
|
relayerShareRetryCounter: durableSafeInteger(record.relayerShareRetryCounter, "recovery durable ECDSA relayer-share retry counter")
|
|
@@ -18,19 +18,13 @@ import { unlockPendingEcdsaRegistration } from "./pendingEcdsaRegistrationRecove
|
|
|
18
18
|
//#region src/SeamsWeb/operations/registration/pendingRegistrationRecovery.ts
|
|
19
19
|
const defaultPendingRegistrationRecoveryPorts = {
|
|
20
20
|
listPendingWalletRegistrationCommits,
|
|
21
|
-
completeWalletRegistrationNearProvisioning
|
|
21
|
+
completeWalletRegistrationNearProvisioning,
|
|
22
22
|
publishPendingWalletRegistrationCommit
|
|
23
23
|
};
|
|
24
24
|
async function listPendingWalletRegistrationCommits() {
|
|
25
25
|
await IndexedDBManager.initialize();
|
|
26
26
|
return await IndexedDBManager.listPendingWalletRegistrationCommits();
|
|
27
27
|
}
|
|
28
|
-
async function completePendingWalletRegistrationNearProvisioning(input) {
|
|
29
|
-
return await completeWalletRegistrationNearProvisioning(input);
|
|
30
|
-
}
|
|
31
|
-
async function activatePendingWalletRegistration(input) {
|
|
32
|
-
return await activateWalletRegistration(input);
|
|
33
|
-
}
|
|
34
28
|
async function publishPendingWalletRegistrationCommit(input) {
|
|
35
29
|
return await IndexedDBManager.publishPendingWalletRegistrationCommit(input);
|
|
36
30
|
}
|
|
@@ -325,7 +319,7 @@ async function resumePendingNearRegistrations(args) {
|
|
|
325
319
|
return results;
|
|
326
320
|
}
|
|
327
321
|
const defaultPendingEcdsaRegistrationRecoveryPorts = {
|
|
328
|
-
activateWalletRegistration
|
|
322
|
+
activateWalletRegistration,
|
|
329
323
|
publishPendingWalletRegistrationCommit,
|
|
330
324
|
unlockPendingEcdsaRegistration
|
|
331
325
|
};
|
|
@@ -369,7 +369,10 @@ async function executeEvmFamilyTransactionLifecycle(args) {
|
|
|
369
369
|
}
|
|
370
370
|
});
|
|
371
371
|
const rawTxHex = assertRawTxHexOrThrow(signedResult.rawTxHex);
|
|
372
|
-
args.lifecycle.onBroadcastStarted
|
|
372
|
+
args.lifecycle.onBroadcastStarted({
|
|
373
|
+
walletSession: args.input.walletSession,
|
|
374
|
+
signedResult
|
|
375
|
+
});
|
|
373
376
|
txHash = normalizeTxHashOrThrow(await client.request({
|
|
374
377
|
method: "eth_sendRawTransaction",
|
|
375
378
|
params: [rawTxHex]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { WalletSessionStatusReadScope } from "../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
|
|
1
2
|
import { getRecentUnlocksDomain, getWalletSessionDomain, hasPasskeyCredentialDomain, lockDomain, logoutDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain, unlockDomain } from "../operations/auth/walletAuth.js";
|
|
2
3
|
//#region src/SeamsWeb/publicApi/auth.ts
|
|
3
4
|
function createAuthCapability(deps) {
|
|
@@ -8,7 +9,7 @@ function createAuthCapability(deps) {
|
|
|
8
9
|
getWalletSession: async (walletId) => await getWalletSessionDomain(deps.getWalletAuthDeps(), walletId),
|
|
9
10
|
getRecentUnlocks: async () => await getRecentUnlocksDomain(deps.getWalletAuthDeps()),
|
|
10
11
|
hasPasskeyCredential: async (walletId) => await hasPasskeyCredentialDomain(deps.getWalletAuthDeps(), walletId),
|
|
11
|
-
prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args),
|
|
12
|
+
prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args, new WalletSessionStatusReadScope()),
|
|
12
13
|
requestEmailOtpChallenge: deps.domain.requestEmailOtpChallenge,
|
|
13
14
|
requestEmailOtpSigningSessionChallenge: deps.domain.requestEmailOtpSigningSessionChallenge,
|
|
14
15
|
refreshEmailOtpSigningSession: deps.domain.refreshEmailOtpSigningSession,
|
|
@@ -63,6 +63,11 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
|
|
|
63
63
|
...args,
|
|
64
64
|
chainTarget: resolveTempoChainTarget(deps.configs.network.chains, args.chainTarget)
|
|
65
65
|
}));
|
|
66
|
+
const onBroadcastStarted = (args) => {
|
|
67
|
+
const walletIframe = deps.getWalletIframe();
|
|
68
|
+
if (!walletIframe.shouldUseWalletIframe()) return;
|
|
69
|
+
walletIframe.requireRouter(toWalletId(args.walletSession.walletId)).then((router) => router.notifyTransactionBroadcastStarted(args.signedResult)).catch(() => {});
|
|
70
|
+
};
|
|
66
71
|
const reportBroadcastAccepted = async (args) => {
|
|
67
72
|
const walletIframe = deps.getWalletIframe();
|
|
68
73
|
const walletId = toWalletId(args.walletSession.walletId);
|
|
@@ -178,6 +183,7 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
|
|
|
178
183
|
}
|
|
179
184
|
};
|
|
180
185
|
const lifecycle = {
|
|
186
|
+
onBroadcastStarted,
|
|
181
187
|
signEvmFamily,
|
|
182
188
|
reportBroadcastAccepted,
|
|
183
189
|
reportBroadcastRejected,
|
|
@@ -54,10 +54,11 @@ import { fullWalletLoginRequired, invalidWalletSigningMaterial, isWalletSigningS
|
|
|
54
54
|
import { buildBlockedMpcCapabilityHydrationPlan, buildRehydrateMaterialActivationHydrationPlan, buildUseLiveRuntimeHydrationPlan } from "../../core/signingEngine/session/material/mpcCapabilityHydration.js";
|
|
55
55
|
import { nearEd25519YaoMaterialActivationFromMetadata, nearEd25519YaoRuntimeRef, resolveNearEd25519YaoCapabilityHydrationV1 } from "../../core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js";
|
|
56
56
|
import { buildThresholdEd25519WebAuthnPrfSecretSource } from "../../core/signingEngine/threshold/ed25519/walletSession.js";
|
|
57
|
-
import {
|
|
57
|
+
import { clearThresholdCommitQueue, resolveThresholdCommitQueueKey } from "../../core/signingEngine/threshold/commitQueueShared.js";
|
|
58
|
+
import { withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
|
|
59
|
+
import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
|
|
58
60
|
import { isConcreteAvailableSigningLane } from "../../core/signingEngine/session/availability/availableSigningLanes.js";
|
|
59
61
|
import { signNear } from "../../core/signingEngine/flows/signNear/signNear.js";
|
|
60
|
-
import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
|
|
61
62
|
import { resolvePasskeyEd25519YaoExportContextV1 } from "../../core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js";
|
|
62
63
|
import { ed25519YaoLocalMaterialIdentityFromWalletSession, hydratePasskeyEd25519YaoLocalMaterialV1, preparePasskeyEd25519YaoLocalMaterialRehydrationV1, readPasskeyEd25519YaoLocalMaterialLocatorV1 } from "../../core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js";
|
|
63
64
|
import { buildPasskeyEd25519RestoreMetadata, persistPasskeyEd25519YaoSessionForRefresh } from "../../core/signingEngine/session/passkey/ed25519YaoSealedSession.js";
|
|
@@ -69,7 +70,7 @@ import { persistVerifiedEmailOtpAuthorityAfterUnlock, walletAuthAuthorityRefForV
|
|
|
69
70
|
import { isRetryableSealedRefreshCapabilityFetchError } from "../../core/signingEngine/session/warmCapabilities/sealedRefreshParity.js";
|
|
70
71
|
import { buildExactEcdsaPasskeyOwnerLaneScope, buildExactLinkedEmailOtpOwnerLaneScope, buildExactPasskeyOwnerLaneScope, resolveExactOwnerLaneScope, resolveExactWalletAuthAuthority } from "../../core/signingEngine/session/identity/ownerLaneScope.js";
|
|
71
72
|
import { buildFreshEmailOtpRoutePlan } from "../../core/signingEngine/session/emailOtp/routePlan.js";
|
|
72
|
-
import {
|
|
73
|
+
import { withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
|
|
73
74
|
import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroadcastRejected, reportTempoDroppedOrReplaced, reportTempoFinalized, signEvmFamily } from "../../core/signingEngine/flows/signEvmFamily/signEvmFamily.js";
|
|
74
75
|
import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
|
|
75
76
|
import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
|
|
@@ -1844,18 +1845,15 @@ var BrowserSigningSurface = class {
|
|
|
1844
1845
|
const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
|
|
1845
1846
|
const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
|
|
1846
1847
|
if (existingRehydration) {
|
|
1847
|
-
const
|
|
1848
|
-
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(
|
|
1848
|
+
const rebound = await existingRehydration;
|
|
1849
|
+
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
|
|
1849
1850
|
if (rehydrated) return rehydrated;
|
|
1850
1851
|
throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
|
|
1851
1852
|
}
|
|
1852
1853
|
const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
|
|
1853
1854
|
this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
|
|
1854
1855
|
try {
|
|
1855
|
-
|
|
1856
|
-
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
|
|
1857
|
-
if (rehydrated) return rehydrated;
|
|
1858
|
-
throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
|
|
1856
|
+
return (await rehydration).material;
|
|
1859
1857
|
} finally {
|
|
1860
1858
|
if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
|
|
1861
1859
|
}
|
|
@@ -3181,7 +3179,14 @@ var BrowserSigningSurface = class {
|
|
|
3181
3179
|
passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
|
|
3182
3180
|
} : { kind: "unavailable" }
|
|
3183
3181
|
});
|
|
3184
|
-
if (liveHydration.kind === "live")
|
|
3182
|
+
if (liveHydration.kind === "live") {
|
|
3183
|
+
const material = await this.resolveActiveNearEd25519YaoSigningLane(subject);
|
|
3184
|
+
if (!material) throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
|
|
3185
|
+
return {
|
|
3186
|
+
subject,
|
|
3187
|
+
material
|
|
3188
|
+
};
|
|
3189
|
+
}
|
|
3185
3190
|
if (liveHydration.kind === "rehydrated") {
|
|
3186
3191
|
if (!warmSessionClaim.ok) {
|
|
3187
3192
|
liveHydration.activeClient.dispose();
|
|
@@ -3214,8 +3219,12 @@ var BrowserSigningSurface = class {
|
|
|
3214
3219
|
subject,
|
|
3215
3220
|
walletSessionState
|
|
3216
3221
|
});
|
|
3217
|
-
|
|
3218
|
-
|
|
3222
|
+
const published = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
|
|
3223
|
+
if (!published) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
|
|
3224
|
+
return {
|
|
3225
|
+
subject: reboundSubject,
|
|
3226
|
+
material: published
|
|
3227
|
+
};
|
|
3219
3228
|
} catch (error) {
|
|
3220
3229
|
liveHydration.activeClient.dispose();
|
|
3221
3230
|
throw error;
|
|
@@ -3362,7 +3371,7 @@ var BrowserSigningSurface = class {
|
|
|
3362
3371
|
async withExactEd25519MaterialOwner(args) {
|
|
3363
3372
|
return await withThresholdEd25519CommitQueue({
|
|
3364
3373
|
queueByKey: this.thresholdEd25519CommitQueueByKey,
|
|
3365
|
-
queueKey:
|
|
3374
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
|
|
3366
3375
|
nearAccountId: args.nearAccountId,
|
|
3367
3376
|
enabled: true,
|
|
3368
3377
|
task: args.task
|
|
@@ -3661,7 +3670,7 @@ var BrowserSigningSurface = class {
|
|
|
3661
3670
|
if (args.credentialExpectation.kind === "expect_exact_operation_credential" && (args.credentialExpectation.operationCredential.walletSessionId !== exactAuthorization.operationCredential.walletSessionId || args.credentialExpectation.operationCredential.token !== exactAuthorization.operationCredential.token)) throw new Error("[SigningEngine][near] expected Email OTP operation credential changed");
|
|
3662
3671
|
return await withThresholdEd25519CommitQueue({
|
|
3663
3672
|
queueByKey: this.thresholdEd25519CommitQueueByKey,
|
|
3664
|
-
queueKey:
|
|
3673
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
|
|
3665
3674
|
nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
|
|
3666
3675
|
enabled: args.commitQueue === "acquire",
|
|
3667
3676
|
task: async () => {
|
|
@@ -3881,7 +3890,7 @@ var BrowserSigningSurface = class {
|
|
|
3881
3890
|
this.ed25519YaoPageLifecycleOwner.dispose();
|
|
3882
3891
|
}
|
|
3883
3892
|
clearThresholdEcdsaSigningQueue() {
|
|
3884
|
-
|
|
3893
|
+
clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
|
|
3885
3894
|
}
|
|
3886
3895
|
async clearLinkedEcdsaHolderMaterials() {
|
|
3887
3896
|
await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { walletSessionRefFromSession } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
|
|
2
|
+
import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
|
|
3
|
+
//#region src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.ts
|
|
4
|
+
async function scheduleRestoredSessionPresignaturePrefills(args) {
|
|
5
|
+
switch (args.state.kind) {
|
|
6
|
+
case "active_session": break;
|
|
7
|
+
case "wallet_unlocked_without_signing_session":
|
|
8
|
+
if (args.state.reason !== "exhausted") return;
|
|
9
|
+
break;
|
|
10
|
+
case "wallet_locked":
|
|
11
|
+
case "wallet_authenticated_identity_unresolvable":
|
|
12
|
+
case "expired_session": return;
|
|
13
|
+
default:
|
|
14
|
+
args.state;
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const walletSession = walletSessionRefFromSession({ walletId: args.state.walletId });
|
|
18
|
+
const statusReads = new WalletSessionStatusReadScope();
|
|
19
|
+
const prefills = [];
|
|
20
|
+
for (const chainTarget of args.chainTargets) prefills.push(args.prefill({
|
|
21
|
+
walletSession,
|
|
22
|
+
chainTarget
|
|
23
|
+
}, statusReads));
|
|
24
|
+
await Promise.all(prefills);
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { scheduleRestoredSessionPresignaturePrefills };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=restoredSessionPresignaturePrefill.js.map
|