@seams/wallet 0.6.2 → 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 +43 -94
- package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +25 -5
- package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +1 -2
- package/dist/esm/SeamsWeb/operations/auth/login.js +29 -43
- 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/auth/walletUnlockSubject.js +1 -1
- package/dist/esm/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +1 -1
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +4 -3
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/challenge.js +1 -1
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +1 -1
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +1 -1
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +6 -15
- package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +2 -2
- package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +5 -4
- package/dist/esm/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +34 -0
- package/dist/esm/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +4 -42
- package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +3 -2
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +2 -2
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +1 -1
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +17 -17
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +4 -8
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +26 -25
- package/dist/esm/SeamsWeb/operations/devices/linkDevice.js +1 -1671
- package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +1358 -0
- package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +143 -0
- package/dist/esm/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +119 -0
- package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +1 -1
- package/dist/esm/SeamsWeb/operations/devices/walletHostComposition.js +13 -3
- package/dist/esm/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +12 -4
- package/dist/esm/SeamsWeb/operations/near/index.js +1 -1
- package/dist/esm/SeamsWeb/operations/near/signNEP413.js +1 -1
- package/dist/esm/SeamsWeb/operations/recovery/accountSync.js +1 -1
- package/dist/esm/SeamsWeb/operations/recovery/recoveryWalletBinding.js +1 -1
- package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +7 -7
- package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +6 -10
- package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +8 -9
- package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +2 -2
- package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +39 -5
- package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +21 -42
- package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +3 -3
- package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +4 -10
- package/dist/esm/SeamsWeb/operations/registration/registration.js +101 -58
- package/dist/esm/SeamsWeb/operations/registration/registrationEd25519Yao.js +37 -6
- package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +1 -1
- package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +4 -3
- package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +1 -1
- package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +194 -539
- package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
- package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
- package/dist/esm/SeamsWeb/publicApi/awaitNearReady.js +3 -1
- package/dist/esm/SeamsWeb/publicApi/devices.js +1 -1
- package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +46 -39
- package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -4
- package/dist/esm/SeamsWeb/walletIframe/client/router.js +4 -3
- package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +6 -88
- package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +89 -223
- package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +32 -62
- package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +3 -1
- package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +2 -4
- package/dist/esm/advanced.js +3 -2
- 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/accountData/near/keyMaterial.js +2 -2
- package/dist/esm/core/config/chains.js +1 -0
- package/dist/esm/core/indexedDB/index.js +1 -7
- package/dist/esm/core/indexedDB/keyMaterialEnvelope.js +1 -5
- package/dist/esm/core/indexedDB/linkedAuthoritySignerMaterial.js +7 -14
- package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +7 -12
- package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +140 -274
- package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +209 -0
- package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +848 -0
- package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +122 -1721
- package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +235 -0
- package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
- package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +60 -11
- package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +198 -0
- package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +1 -1
- package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +6 -0
- package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
- package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +0 -43
- package/dist/esm/core/rpcClients/near/NearClient.js +20 -215
- package/dist/esm/core/rpcClients/near/rpcCalls.js +4 -4
- package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +57 -86
- package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +1 -1
- package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +75 -127
- package/dist/esm/core/rpcClients/relayer/walletRecoveryRotate.js +0 -1
- package/dist/esm/core/rpcClients/relayer/walletRegistration.js +42 -18
- package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +6 -12
- package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
- package/dist/esm/core/signingEngine/assembly/ports/evmFamily.js +1 -1
- package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -1
- package/dist/esm/core/signingEngine/chains/evm/display/evmTx.js +1 -6
- package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/core/signingEngine/chains/evm/evmCryptoWasm.js +1 -36
- package/dist/esm/core/signingEngine/chains/near/display.js +14 -1
- package/dist/esm/core/signingEngine/chains/tempo/display.js +1 -6
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +4 -4
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +9 -10
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +37 -30
- package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +4 -4
- package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
- package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +18 -29
- package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +245 -503
- package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +8 -11
- package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +1 -1
- package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +1 -1
- package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +3 -3
- package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
- package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +2 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +7 -11
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +1 -1
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +1 -1
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +1 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +10 -8
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +52 -21
- package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +2 -2
- package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +343 -0
- package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +66 -312
- package/dist/esm/core/signingEngine/flows/signNear/signNear.js +46 -50
- package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +58 -305
- package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +33 -16
- package/dist/esm/core/signingEngine/interfaces/accountAuthMetadata.js +0 -1
- package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +16 -148
- package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +2 -1
- package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +5 -14
- package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +9 -8
- package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +5 -10
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaPublication.js +3 -3
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +5 -5
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +1 -1
- package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +9 -16
- package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +2 -2
- package/dist/esm/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -9
- package/dist/esm/core/signingEngine/session/emailOtp/publicTypes.js +1 -2
- package/dist/esm/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -28
- package/dist/esm/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +1 -1
- package/dist/esm/core/signingEngine/session/emailOtp/walletUnlock.js +1 -1
- package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +2 -2
- package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
- package/dist/esm/core/signingEngine/session/identity/laneIdentity.js +5 -4
- package/dist/esm/core/signingEngine/session/identity/ownerLaneScope.js +1 -1
- package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/core/signingEngine/session/keyMaterialBrands.js +2 -21
- package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +43 -69
- package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +9 -17
- package/dist/esm/core/signingEngine/session/material/ecdsaSealedRuntime.js +3 -3
- package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +2 -2
- package/dist/esm/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +1 -1
- package/dist/esm/core/signingEngine/session/operationState/authorizationAdmission.js +4 -4
- package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +1 -1
- package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -1
- package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +39 -59
- package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +13 -22
- package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +11 -23
- package/dist/esm/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +1 -1
- package/dist/esm/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +1 -1
- package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +761 -0
- package/dist/esm/core/signingEngine/session/persistence/sealedSessionStore.js +42 -862
- package/dist/esm/core/signingEngine/session/public.js +1 -1
- package/dist/esm/core/signingEngine/session/sealedRecovery/recoveryRecord.js +3 -3
- package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +1 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +2 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +3 -3
- package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +1 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/types.js +0 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +3 -5
- package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +2 -3
- package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +10 -6
- package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +2 -2
- package/dist/esm/core/signingEngine/threshold/ecdsa/activation.js +3 -2
- 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/threshold/ed25519/connectSession.js +1 -1
- package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +2 -2
- package/dist/esm/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +1 -1
- package/dist/esm/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +12 -19
- package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +1 -1
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +4 -3
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +5 -4
- package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +7 -0
- package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/signing.js +9 -16
- package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +5 -5
- package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +1 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +1 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +1 -1
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +81 -9
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +31 -78
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +1 -0
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +2 -1
- package/dist/esm/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +3 -4
- package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +2 -2
- package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +1 -1
- package/dist/esm/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +2 -1
- package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +56 -9
- package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +1 -1
- package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +2 -2
- package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +52 -81
- package/dist/esm/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +2 -4
- package/dist/esm/core/signingEngine/webauthnAuth/credentials/helpers.js +1 -1
- package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +80 -64
- package/dist/esm/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +28 -3
- package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +3 -1
- package/dist/esm/core/signingEngine/workerManager/workerTransport.js +21 -10
- package/dist/esm/core/signingEngine/workerManager/workerTypes.js +2 -1
- package/dist/esm/core/types/linkDevice.js +2 -3
- package/dist/esm/core/types/sdkSentEvents.js +7 -5
- package/dist/esm/core/types/signer-worker.js +1 -58
- package/dist/esm/index.js +1 -1
- package/dist/esm/plugins/vite.js +1 -1
- package/dist/esm/react/SeamsWeb/SeamsWeb.js +42 -93
- package/dist/esm/react/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +25 -5
- package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningStores.js +1 -2
- package/dist/esm/react/SeamsWeb/operations/auth/login.js +26 -40
- package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
- package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +3 -4
- package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
- package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockSubject.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +4 -3
- package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +6 -15
- package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/addPasskey.js +5 -4
- package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +34 -0
- package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +3 -3
- package/dist/esm/react/SeamsWeb/operations/authMethods/revokeAuthMethod.js +3 -2
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +2 -2
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +16 -16
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +4 -8
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +26 -25
- package/dist/esm/react/SeamsWeb/operations/devices/linkDevice.js +1 -1671
- package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlow.js +1358 -0
- package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +143 -0
- package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +119 -0
- package/dist/esm/react/SeamsWeb/operations/devices/walletHostComposition.js +13 -3
- package/dist/esm/react/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +11 -3
- package/dist/esm/react/SeamsWeb/operations/near/index.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/recovery/accountSync.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/recovery/recoveryWalletBinding.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/recovery/syncAccount.js +5 -5
- package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCommit.js +5 -9
- package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +7 -8
- package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +38 -4
- package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +20 -41
- package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +3 -3
- package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +4 -10
- package/dist/esm/react/SeamsWeb/operations/registration/registration.js +96 -53
- package/dist/esm/react/SeamsWeb/operations/registration/registrationEd25519Yao.js +35 -4
- package/dist/esm/react/SeamsWeb/operations/registration/registrationSignerSet.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/registration/registrationStrictEcdsa.js +5 -4
- package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +194 -539
- 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/awaitNearReady.js +3 -1
- package/dist/esm/react/SeamsWeb/publicApi/devices.js +1 -1
- package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +45 -38
- package/dist/esm/react/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -4
- package/dist/esm/react/SeamsWeb/walletIframe/client/router.js +4 -3
- package/dist/esm/react/SeamsWeb/walletIframe/client/surface/geometry.js +8 -5
- package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +33 -63
- package/dist/esm/react/SeamsWeb/walletIframe/shared/messages.js +3 -1
- package/dist/esm/react/SeamsWeb/walletIframe/shared/transactionReview.js +3 -5
- package/dist/esm/react/build-paths.js +0 -2
- package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +93 -0
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +189 -251
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +199 -261
- 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/ProfileDropdown.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +1 -1
- 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/MoonIcon.js +6 -41
- 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/SunIcon.js +43 -78
- package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
- package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +33 -0
- package/dist/esm/react/components/AccountMenuButton/index.js +7 -7
- package/dist/esm/react/components/QRCodeScanner.css +0 -15
- package/dist/esm/react/components/ShowQRCode.css +0 -14
- package/dist/esm/react/components/theme/design-tokens.js +0 -1
- package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
- package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
- package/dist/esm/react/core/config/chains.js +1 -0
- package/dist/esm/react/core/indexedDB/keyMaterialEnvelope.js +1 -5
- package/dist/esm/react/core/indexedDB/linkedAuthoritySignerMaterial.js +7 -14
- package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +6 -11
- package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +140 -274
- package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +209 -0
- package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +848 -0
- package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +122 -1721
- package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +235 -0
- package/dist/esm/react/core/indexedDB/seamsWalletDB/repositories.js +56 -7
- package/dist/esm/react/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +198 -0
- package/dist/esm/react/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +1 -1
- package/dist/esm/react/core/indexedDB/unifiedIndexedDBManager.js +6 -0
- package/dist/esm/react/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
- package/dist/esm/react/core/platform/browser/createBrowserPlatformRuntime.js +1 -44
- package/dist/esm/react/core/rpcClients/near/NearClient.js +19 -214
- package/dist/esm/react/core/rpcClients/near/rpcCalls.js +1 -1
- package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigning.js +56 -85
- package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +6 -6
- package/dist/esm/react/core/rpcClients/relayer/walletRecoveryRotate.js +0 -1
- package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +39 -15
- package/dist/esm/react/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +4 -10
- package/dist/esm/react/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
- package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/react/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -1
- package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +1 -6
- package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/react/core/signingEngine/chains/near/display.js +14 -1
- package/dist/esm/react/core/signingEngine/chains/tempo/display.js +1 -6
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +7 -8
- 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/exportLaneSelection.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +17 -28
- package/dist/esm/react/core/signingEngine/flows/registration/accountLifecycle.js +246 -504
- package/dist/esm/react/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +7 -10
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/authPlanning.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaLanes.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +3 -10
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +9 -13
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +1 -2
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +10 -8
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +51 -20
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +343 -0
- package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signNear/signDelegate.js +66 -312
- package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +47 -51
- package/dist/esm/react/core/signingEngine/flows/signNear/signNep413.js +58 -305
- package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +34 -17
- package/dist/esm/react/core/signingEngine/interfaces/accountAuthMetadata.js +0 -1
- package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +15 -147
- package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +2 -1
- package/dist/esm/react/core/signingEngine/session/SigningSessionCoordinator.js +1 -1
- package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +5 -14
- package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +10 -9
- package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +5 -10
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +1 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +4 -4
- package/dist/esm/react/core/signingEngine/session/emailOtp/ed25519ExportContext.js +7 -14
- package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecovery.js +1 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -9
- package/dist/esm/react/core/signingEngine/session/emailOtp/publicTypes.js +0 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -28
- package/dist/esm/react/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +1 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/walletUnlock.js +1 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/workerEnrollment.js +1 -1
- package/dist/esm/react/core/signingEngine/session/identity/clientSessionPersistenceState.js +1 -1
- package/dist/esm/react/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +3 -3
- package/dist/esm/react/core/signingEngine/session/identity/exactSigningLaneIdentity.js +2 -2
- package/dist/esm/react/core/signingEngine/session/identity/laneIdentity.js +6 -5
- package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/react/core/signingEngine/session/keyMaterialBrands.js +2 -21
- package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +41 -67
- package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +8 -16
- package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +1 -1
- package/dist/esm/react/core/signingEngine/session/operationState/authorizationAdmission.js +4 -4
- package/dist/esm/react/core/signingEngine/session/passkey/ecdsaBootstrap.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519SessionProvision.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +37 -57
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +12 -21
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +11 -23
- package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +761 -0
- package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionStore.js +41 -858
- package/dist/esm/react/core/signingEngine/session/postconditions/runtimePostconditions.js +1 -1
- package/dist/esm/react/core/signingEngine/session/public.js +2 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +1 -1
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +1 -1
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +2 -1
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -1
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +3 -3
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +2 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +1 -1
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/types.js +1 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +3 -5
- package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +2 -3
- package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +9 -5
- package/dist/esm/react/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +2 -2
- package/dist/esm/react/core/signingEngine/threshold/ecdsa/activation.js +2 -1
- package/dist/esm/react/core/signingEngine/threshold/ecdsa/bootstrapSession.js +1 -1
- 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/threshold/ed25519/walletSession.js +1 -1
- package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +12 -19
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +2 -1
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +4 -3
- package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +7 -0
- package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +1 -1
- package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/signing.js +9 -16
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +5 -5
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-model.js +1 -1
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +1 -0
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +1 -1
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +81 -9
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +31 -78
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +1 -0
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/react/core/signingEngine/walletCustody/activateEd25519Capability.js +2 -1
- package/dist/esm/react/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +3 -4
- package/dist/esm/react/core/signingEngine/walletCustody/emailOtpLink.js +2 -2
- package/dist/esm/react/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +2 -1
- package/dist/esm/react/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +55 -8
- package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryRotation.js +52 -81
- package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +2 -4
- package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +80 -64
- package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +29 -4
- package/dist/esm/react/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +4 -2
- package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +21 -10
- package/dist/esm/react/core/signingEngine/workerManager/workerTypes.js +2 -1
- package/dist/esm/react/core/types/linkDevice.js +2 -3
- package/dist/esm/react/core/types/sdkSentEvents.js +7 -5
- package/dist/esm/react/hooks/useQRCamera.js +1 -1
- package/dist/esm/react/shared-ts/src/authorization/delegatedAuthority.js +1 -1
- package/dist/esm/react/shared-ts/src/authorization/operationFingerprint.js +0 -1
- package/dist/esm/react/shared-ts/src/authorization/walletAuthority.js +92 -227
- package/dist/esm/react/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
- 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/activeWalletSession.js +70 -1
- package/dist/esm/react/shared-ts/src/device-linking/authorityActivation.js +142 -0
- package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +5 -8
- package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -5
- package/dist/esm/react/shared-ts/src/device-linking/deviceManagement.js +120 -0
- package/dist/esm/react/shared-ts/src/device-linking/digests.js +8 -63
- package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +13 -15
- package/dist/esm/react/shared-ts/src/device-linking/index.js +6 -4
- package/dist/esm/react/shared-ts/src/device-linking/parsers.js +546 -1308
- package/dist/esm/react/shared-ts/src/device-linking/requestProof.js +3 -3
- package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +11 -17
- package/dist/esm/react/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +7 -7
- package/dist/esm/react/shared-ts/src/device-linking/wireFields.js +59 -0
- package/dist/esm/react/shared-ts/src/near/nearClient.js +252 -0
- package/dist/esm/react/shared-ts/src/passkey-custody/custodyEnvelope.js +6 -4
- package/dist/esm/react/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
- package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +9 -39
- package/dist/esm/react/shared-ts/src/signing-lanes/index.js +4 -3
- package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +8 -7
- package/dist/esm/react/shared-ts/src/signing-lanes/participantDigest.js +2 -0
- package/dist/esm/react/shared-ts/src/signing-lanes/participants.js +2 -5
- package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +18 -22
- package/dist/esm/react/shared-ts/src/signing-lanes/rotationDigests.js +2 -0
- package/dist/esm/react/shared-ts/src/signing-lanes/rotationParsers.js +3 -3
- package/dist/esm/react/shared-ts/src/signing-lanes/rotationProtocolParsers.js +8 -0
- package/dist/esm/react/shared-ts/src/signing-lanes/rotationWireFields.js +3 -0
- package/dist/esm/react/shared-ts/src/threshold/ed25519OperationFingerprint.js +34 -42
- package/dist/esm/react/shared-ts/src/threshold/keyMaterialBrands.js +25 -0
- package/dist/esm/react/shared-ts/src/threshold/secp256k1.js +1 -2
- package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/react/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
- package/dist/esm/react/shared-ts/src/utils/canonicalPrimitives.js +8 -1
- package/dist/esm/react/shared-ts/src/utils/digestEncoding.js +63 -0
- package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +3 -5
- package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/react/shared-ts/src/utils/emailOtpDomain.js +3 -3
- package/dist/esm/react/shared-ts/src/utils/encoders.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/errors.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/react/shared-ts/src/utils/exactRecord.js +44 -0
- package/dist/esm/react/shared-ts/src/utils/index.js +12 -8
- package/dist/esm/react/shared-ts/src/utils/registrationAuthMethodInput.js +84 -0
- package/dist/esm/react/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
- package/dist/esm/react/shared-ts/src/utils/registrationIds.js +226 -0
- package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +6 -1089
- package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +439 -0
- package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +9 -8
- package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +3 -76
- package/dist/esm/react/shared-ts/src/utils/routerAbEd25519YaoDigests.js +76 -0
- package/dist/esm/react/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
- package/dist/esm/react/shared-ts/src/utils/routerAbPublicKeyset.js +2 -6
- package/dist/esm/react/shared-ts/src/utils/secureRandomId.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/signerDomain.js +1 -16
- package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/react/shared-ts/src/utils/validation.js +36 -2
- package/dist/esm/react/shared-ts/src/utils/walletAuthAuthority.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/walletAuthMethodRecord.js +357 -0
- package/dist/esm/react/shared-ts/src/utils/walletCapabilityBindings.js +2 -2
- package/dist/esm/react/shared-ts/src/utils/wireSchema.js +66 -0
- package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +11 -17
- package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
- package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
- package/dist/esm/react/styles/styles.css +17 -86
- package/dist/esm/react/utils/menuItemBlink.js +24 -0
- package/dist/esm/react/utils/qrScanner.js +2 -19
- package/dist/esm/sdk/{ConfirmationDrawer-G0bT0Dbu.js → ConfirmationDrawer-MgFTBwwK.js} +2 -1
- package/dist/esm/sdk/{EvmClient-CHw6txjt.js → EvmClient-f3gUhS2L.js} +1 -1
- package/dist/esm/sdk/{NearClient-BQgcqAzG.js → NearClient-DY4NfHeD.js} +194 -147
- package/dist/esm/sdk/{NonceCoordinator-C7mqpJiU.js → NonceCoordinator-4XWPhYww.js} +4 -4
- package/dist/esm/sdk/{accountIds-Ck4GAQfm.js → accountIds-DhIPGOSN.js} +1 -1
- package/dist/{public/sdk/accountLifecycle-Ddavc_FC.js → esm/sdk/accountLifecycle-zthG08aC.js} +253 -514
- package/dist/esm/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
- package/dist/esm/sdk/{adapters-m94YFj70.js → adapters-Dli9XAZp.js} +137 -136
- package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
- package/dist/esm/sdk/{canonicalSignerErrorCode-DAzYzisf.js → canonicalSignerErrorCode-BBIk365e.js} +3 -17
- package/dist/{public/sdk/capabilityKinds-jwCEaqBU.js → esm/sdk/capabilityKinds-hvYqa6S_.js} +1 -1
- package/dist/esm/sdk/chains-BMh3btVo.js +124 -0
- package/dist/{public/sdk/challengeDelivery-BjLKoou3.js → esm/sdk/challengeDelivery-DZtopOAG.js} +2 -2
- package/dist/esm/sdk/{configHelpers-DB73zYvO.js → configHelpers-D1EqxVxg.js} +3 -3
- package/dist/esm/sdk/{defaultConfigs-CyNOW4Sy.js → defaultConfigs-D_33pPT9.js} +5 -5
- package/dist/{public/sdk/display-DHdC2yXU.js → esm/sdk/display-P4nQF-yc.js} +3 -8
- package/dist/{public/sdk/normalize-BephcEIF.js → esm/sdk/domainIds-lcrFg6Sa.js} +84 -84
- package/dist/{public/sdk/ecdsaCapabilityManifest-C8itxV9S.js → esm/sdk/ecdsaCapabilityManifest-DuMs0VtU.js} +14 -22
- package/dist/esm/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
- package/dist/esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +1983 -0
- package/dist/{public/sdk/ecdsaPresignPoolIdentity-Yopr4jvS.js → esm/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
- package/dist/{public/sdk/ecdsaWalletRecords-CAbbVhEY.js → esm/sdk/ecdsaWalletRecords-D42rtA9z.js} +6 -4
- package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
- package/dist/{public/sdk/enrichDisplayModelWithAbi-DnjR1CqT.js → esm/sdk/enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
- package/dist/{public/sdk/evmCryptoWasm-BVj135bZ.js → esm/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
- package/dist/esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +4274 -0
- package/dist/{public/sdk/exactSessionState-Bt0HforB.js → esm/sdk/exactSessionState-LWDUXydN.js} +51 -80
- package/dist/esm/sdk/exactSigningLaneIdentity-m6uTXV_A.js +335 -0
- package/dist/{public/sdk/export-viewer-host-CbqG8ZQV.js → esm/sdk/export-viewer-host-rWMSQQMP.js} +3 -3
- package/dist/esm/sdk/{helpers-DpRjHMBx.js → helpers-ZrowMnev.js} +3 -6
- package/dist/{public/sdk/host-BPC1zSVg.js → esm/sdk/host-CnV8nAUe.js} +12 -12
- package/dist/{public/sdk/intentDigest-A1MbbJPu.js → esm/sdk/intentDigest-CvOSNlCH.js} +2 -2
- package/dist/esm/sdk/{jsxRuntime.module-FAP0NE9p.js → jsxRuntime.module-CuH5ZEIA.js} +1 -1
- package/dist/esm/sdk/{keyMaterialBrands-BbjCfzXv.js → keyMaterialBrands-CogGAAZn.js} +15 -13
- package/dist/esm/sdk/{localOnly-CbLYTVbo.js → localOnly-DTpa2jD5.js} +8 -10
- package/dist/{public/sdk/messages-B3UbNZYc.js → esm/sdk/messages-C7Dbx9iN.js} +6 -4
- package/dist/{public/sdk/mountExportPrivateKeySurface-CNc6Mch4.js → esm/sdk/mountExportPrivateKeySurface-DgX-IBG_.js} +4 -4
- package/dist/{public/sdk/mountRecoveryCodeBackupSurface-ChwzwnYG.js → esm/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js} +2 -2
- package/dist/{public/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js → esm/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js} +82 -55
- package/dist/{public/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → esm/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js} +10 -8
- package/dist/{public/sdk/nonceLaneKeys-B_RcSS6M.js → esm/sdk/nonceLaneKeys-C3c9lG6u.js} +1 -1
- package/dist/{public/sdk/normalization-oJyXl3Vn.js → esm/sdk/normalization-CBt413-z.js} +2 -2
- package/dist/esm/sdk/{operationFingerprint-DEPg9A3h.js → operationFingerprint-C8Trar4R.js} +4 -4
- package/dist/esm/sdk/{operationFingerprint-CsYO6b0a.js → operationFingerprint-CGZui5dR.js} +2 -1
- package/dist/esm/sdk/{passkey-custody-BaHyYMhj.js → passkey-custody-UUHbC0pk.js} +7 -6
- package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → esm/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js} +3 -3
- package/dist/esm/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-C3fydnRC.js} +19 -16
- package/dist/esm/sdk/{registration-PIBMSsQR.js → registration-Ct_7LdGf.js} +2871 -3182
- package/dist/esm/sdk/{registration-DtDICj-o.js → registration-DHERU8R_.js} +4 -4
- package/dist/{public/sdk/registrationAccounts-AO3QHjas.js → esm/sdk/registrationAccounts-DmWPzf3T.js} +6 -4
- package/dist/esm/sdk/registrationIds-DLSdEKSv.js +310 -0
- package/dist/esm/sdk/registrationIntent-4zwk16zQ.js +387 -0
- package/dist/esm/sdk/{registrationPreparationPreload-BZfAC_ba.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/esm/sdk/registrationSignerPlan-DhV8VAob.js +437 -0
- package/dist/{public/sdk/relayerHttp-LsVTZCxA.js → esm/sdk/relayerHttp-VC8Holz1.js} +1 -1
- package/dist/{public/sdk/routePlan-nLpPFHB-.js → esm/sdk/routePlan-D59x5xzQ.js} +1 -1
- package/dist/{public/sdk/router-CeFS9SgT.js → esm/sdk/router-B4ZWFy9E.js} +23 -25
- package/dist/{public/sdk/routerAbNormalSigning-DktZKnf1.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +63 -92
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/{public/sdk/runtime-auth-D_lUQQlc.js → esm/sdk/runtime-auth-DdfynDKt.js} +144 -301
- package/dist/{public/sdk/runtime-device-link-CEph1iM0.js → esm/sdk/runtime-device-link-HJ2ptFux.js} +25 -22
- package/dist/{public/sdk/runtime-ecdsa-tempo-tUWnafRo.js → esm/sdk/runtime-ecdsa-tempo-BGLsTAWR.js} +24 -21
- package/dist/esm/sdk/{runtime-email-otp-1wIPTDim.js → runtime-email-otp-CpX88VZJ.js} +23 -20
- package/dist/{public/sdk/runtime-export-Du2d4_Vu.js → esm/sdk/runtime-export-DIVY473L.js} +26 -22
- package/dist/{public/sdk/runtime-near-CGoWxu7u.js → esm/sdk/runtime-near-CxtQi4b2.js} +24 -22
- package/dist/{public/sdk/runtime-preferences-JwJK_xP3.js → esm/sdk/runtime-preferences-vnJc5Svg.js} +24 -21
- package/dist/esm/sdk/{runtime-recovery-codes-DW7bB2tO.js → runtime-recovery-codes-BSCLVHQj.js} +15 -19
- package/dist/{public/sdk/runtime-recovery-BEqBdpyo.js → esm/sdk/runtime-recovery-i08vCJST.js} +23 -20
- package/dist/esm/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-D3TBExQ6.js} +915 -1109
- package/dist/{public/sdk/runtimeLoader-ZXsvx9zX.js → esm/sdk/runtimeLoader-DQVEFVaW.js} +12 -12
- package/dist/{public/sdk/sdkSentEvents-5Pi-hjHB.js → esm/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
- package/dist/esm/sdk/{secp256k1-CWDid9WH.js → secp256k1-D-I6Gh4D.js} +53 -176
- package/dist/esm/sdk/sessionPolicy-DO-MkL65.js +460 -0
- package/dist/{public/sdk/signEvmFamily-pbMepepQ.js → esm/sdk/signEvmFamily-C3C97Th-.js} +135 -185
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +11 -15
- package/dist/{public/sdk/signEvmWithUiConfirm-nk-r3Rff.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +6 -10
- package/dist/{public/sdk/signNear-DVD9-IO5.js → esm/sdk/signNear-Bmb2fj_a.js} +729 -846
- package/dist/esm/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
- package/dist/esm/sdk/{signerDomain-DDLiwuYS.js → signerDomain-IEAVrOrc.js} +3 -18
- package/dist/{public/sdk/signerLoader-D_w-SfR9.js → esm/sdk/signerLoader-B7orgq5Z.js} +4 -4
- package/dist/esm/sdk/{signatureUses-BY1IY7uz.js → signingFlow-SZ8t_lxv.js} +24 -38
- package/dist/esm/sdk/{trace-08ayoiNp.js → trace-DKLQZvec.js} +1 -2
- package/dist/esm/sdk/{transaction-activity-DKgIGpKG.js → transaction-activity-CSMCveBn.js} +1 -1
- package/dist/{public/sdk/transactionReview-UoZQ2opj.js → esm/sdk/transactionReview-DpHLTznU.js} +4 -6
- package/dist/esm/sdk/{transactionReviewAdmission-Cv9kTr4c.js → transactionReviewAdmission-BCPvl8OZ.js} +2 -2
- package/dist/esm/sdk/{transactionState-Bpm4GamO.js → transactionState-CJ4U8pcl.js} +58 -47
- package/dist/esm/sdk/tx-confirm-ui.js +182 -189
- package/dist/esm/sdk/types-Dx9fczU7.js +111 -0
- package/dist/{public/sdk/validation-BphUDXs7.js → esm/sdk/validation-gat4LEKm.js} +36 -2
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +2 -2
- package/dist/esm/sdk/wallet-iframe-host-full.js +2 -2
- package/dist/esm/sdk/wallet-iframe-host-near.js +2 -2
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +2 -2
- package/dist/esm/sdk/{wallet-recovery-CKqoHbxT.js → wallet-recovery-BX61-79p.js} +20 -29
- package/dist/esm/sdk/wallet-service.css +21 -0
- package/dist/esm/sdk/wallet-ui.css +129 -345
- package/dist/{public/sdk/sessionPolicy-B4FsPuk2.js → esm/sdk/walletAuthority-DD9T25F6.js} +504 -447
- package/dist/{public/sdk/ed25519SeedMaterial-Cghz8-XB.js → esm/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js} +1951 -2216
- package/dist/esm/sdk/{walletRecoveryCommit-G6w6N5RV.js → walletRecoveryCommit-AI1AtIRP.js} +88 -151
- package/dist/{public/sdk/walletRecoveryRotate-BYOYJAyb.js → esm/sdk/walletRecoveryRotate-BgLlW5ih.js} +1 -1
- package/dist/esm/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
- package/dist/{public/sdk/webauthnP256-CHqprSh1.js → esm/sdk/webauthnP256-DC5EIbKN.js} +1 -1
- package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
- package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +93 -228
- package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
- 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/activeWalletSession.js +70 -1
- package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +142 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +5 -8
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -5
- package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +120 -0
- package/dist/esm/shared-ts/src/device-linking/digests.js +8 -63
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +13 -15
- package/dist/esm/shared-ts/src/device-linking/index.js +6 -4
- package/dist/esm/shared-ts/src/device-linking/parsers.js +550 -1311
- package/dist/esm/shared-ts/src/device-linking/requestProof.js +3 -3
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +11 -17
- package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +7 -7
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
- package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
- package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +6 -4
- package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +9 -39
- package/dist/esm/shared-ts/src/signing-lanes/index.js +4 -3
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +8 -7
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -0
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +18 -22
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +2 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +3 -3
- package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +8 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +3 -0
- package/dist/esm/shared-ts/src/threshold/ed25519OperationFingerprint.js +34 -42
- package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +25 -0
- package/dist/esm/shared-ts/src/threshold/secp256k1.js +1 -2
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
- package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +3 -5
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +3 -3
- package/dist/esm/shared-ts/src/utils/encoders.js +1 -1
- package/dist/esm/shared-ts/src/utils/errors.js +1 -1
- package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
- package/dist/esm/shared-ts/src/utils/index.js +18 -14
- package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +84 -0
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +5 -5
- package/dist/esm/shared-ts/src/utils/registrationIds.js +226 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +6 -1089
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +439 -0
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -10
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -76
- package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +76 -0
- package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +2 -6
- package/dist/esm/shared-ts/src/utils/secureRandomId.js +1 -1
- package/dist/esm/shared-ts/src/utils/signerDomain.js +1 -16
- package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/shared-ts/src/utils/validation.js +36 -2
- package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +1 -1
- package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +357 -0
- package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +2 -2
- package/dist/esm/shared-ts/src/utils/wireSchema.js +66 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +1 -1
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +11 -17
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
- package/dist/esm/utils/menuItemBlink.js +24 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +19 -6
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +44 -9
- 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.d.ts +10 -1
- package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.js +31 -1
- 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.d.ts +1 -1
- package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.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-G0bT0Dbu.js → ConfirmationDrawer-MgFTBwwK.js} +2 -1
- package/dist/public/sdk/{EvmClient-CHw6txjt.js → EvmClient-f3gUhS2L.js} +1 -1
- package/dist/public/sdk/{NearClient-BQgcqAzG.js → NearClient-DY4NfHeD.js} +194 -147
- package/dist/public/sdk/{NonceCoordinator-C7mqpJiU.js → NonceCoordinator-4XWPhYww.js} +4 -4
- package/dist/public/sdk/{accountIds-Ck4GAQfm.js → accountIds-DhIPGOSN.js} +1 -1
- package/dist/{esm/sdk/accountLifecycle-Ddavc_FC.js → public/sdk/accountLifecycle-zthG08aC.js} +253 -514
- package/dist/public/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
- package/dist/public/sdk/{adapters-m94YFj70.js → adapters-Dli9XAZp.js} +137 -136
- package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
- package/dist/public/sdk/{canonicalSignerErrorCode-DAzYzisf.js → canonicalSignerErrorCode-BBIk365e.js} +3 -17
- package/dist/{esm/sdk/capabilityKinds-jwCEaqBU.js → public/sdk/capabilityKinds-hvYqa6S_.js} +1 -1
- package/dist/public/sdk/chains-BMh3btVo.js +124 -0
- package/dist/{esm/sdk/challengeDelivery-BjLKoou3.js → public/sdk/challengeDelivery-DZtopOAG.js} +2 -2
- package/dist/public/sdk/{configHelpers-DB73zYvO.js → configHelpers-D1EqxVxg.js} +3 -3
- package/dist/public/sdk/{defaultConfigs-CyNOW4Sy.js → defaultConfigs-D_33pPT9.js} +5 -5
- package/dist/{esm/sdk/display-DHdC2yXU.js → public/sdk/display-P4nQF-yc.js} +3 -8
- package/dist/{esm/sdk/normalize-BephcEIF.js → public/sdk/domainIds-lcrFg6Sa.js} +84 -84
- package/dist/{esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js → public/sdk/ecdsaCapabilityManifest-DuMs0VtU.js} +14 -22
- package/dist/public/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
- package/dist/public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +1983 -0
- package/dist/{esm/sdk/ecdsaPresignPoolIdentity-Yopr4jvS.js → public/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
- package/dist/{esm/sdk/ecdsaWalletRecords-CAbbVhEY.js → public/sdk/ecdsaWalletRecords-D42rtA9z.js} +6 -4
- package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
- package/dist/{esm/sdk/enrichDisplayModelWithAbi-DnjR1CqT.js → public/sdk/enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
- package/dist/{esm/sdk/evmCryptoWasm-BVj135bZ.js → public/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
- package/dist/public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +4274 -0
- package/dist/{esm/sdk/exactSessionState-Bt0HforB.js → public/sdk/exactSessionState-LWDUXydN.js} +51 -80
- package/dist/public/sdk/exactSigningLaneIdentity-m6uTXV_A.js +335 -0
- package/dist/{esm/sdk/export-viewer-host-CbqG8ZQV.js → public/sdk/export-viewer-host-rWMSQQMP.js} +3 -3
- package/dist/public/sdk/{helpers-DpRjHMBx.js → helpers-ZrowMnev.js} +3 -6
- package/dist/{esm/sdk/host-BPC1zSVg.js → public/sdk/host-CnV8nAUe.js} +12 -12
- package/dist/{esm/sdk/intentDigest-A1MbbJPu.js → public/sdk/intentDigest-CvOSNlCH.js} +2 -2
- package/dist/public/sdk/{jsxRuntime.module-FAP0NE9p.js → jsxRuntime.module-CuH5ZEIA.js} +1 -1
- package/dist/public/sdk/{keyMaterialBrands-BbjCfzXv.js → keyMaterialBrands-CogGAAZn.js} +15 -13
- package/dist/public/sdk/{localOnly-CbLYTVbo.js → localOnly-DTpa2jD5.js} +8 -10
- package/dist/{esm/sdk/messages-B3UbNZYc.js → public/sdk/messages-C7Dbx9iN.js} +6 -4
- package/dist/{esm/sdk/mountExportPrivateKeySurface-CNc6Mch4.js → public/sdk/mountExportPrivateKeySurface-DgX-IBG_.js} +4 -4
- package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-ChwzwnYG.js → public/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js} +2 -2
- package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js → public/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js} +82 -55
- package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → public/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js} +10 -8
- package/dist/{esm/sdk/nonceLaneKeys-B_RcSS6M.js → public/sdk/nonceLaneKeys-C3c9lG6u.js} +1 -1
- package/dist/{esm/sdk/normalization-oJyXl3Vn.js → public/sdk/normalization-CBt413-z.js} +2 -2
- package/dist/public/sdk/{operationFingerprint-DEPg9A3h.js → operationFingerprint-C8Trar4R.js} +4 -4
- package/dist/public/sdk/{operationFingerprint-CsYO6b0a.js → operationFingerprint-CGZui5dR.js} +2 -1
- package/dist/public/sdk/{passkey-custody-BaHyYMhj.js → passkey-custody-UUHbC0pk.js} +7 -6
- package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → public/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js} +3 -3
- package/dist/public/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-C3fydnRC.js} +19 -16
- package/dist/public/sdk/{registration-PIBMSsQR.js → registration-Ct_7LdGf.js} +2871 -3182
- package/dist/public/sdk/{registration-DtDICj-o.js → registration-DHERU8R_.js} +4 -4
- package/dist/{esm/sdk/registrationAccounts-AO3QHjas.js → public/sdk/registrationAccounts-DmWPzf3T.js} +6 -4
- package/dist/public/sdk/registrationIds-DLSdEKSv.js +310 -0
- package/dist/public/sdk/registrationIntent-4zwk16zQ.js +387 -0
- package/dist/public/sdk/{registrationPreparationPreload-BZfAC_ba.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/public/sdk/registrationSignerPlan-DhV8VAob.js +437 -0
- package/dist/{esm/sdk/relayerHttp-LsVTZCxA.js → public/sdk/relayerHttp-VC8Holz1.js} +1 -1
- package/dist/{esm/sdk/routePlan-nLpPFHB-.js → public/sdk/routePlan-D59x5xzQ.js} +1 -1
- package/dist/{esm/sdk/router-CeFS9SgT.js → public/sdk/router-B4ZWFy9E.js} +23 -25
- package/dist/{esm/sdk/routerAbNormalSigning-DktZKnf1.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +63 -92
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/{esm/sdk/runtime-auth-D_lUQQlc.js → public/sdk/runtime-auth-DdfynDKt.js} +144 -301
- package/dist/{esm/sdk/runtime-device-link-CEph1iM0.js → public/sdk/runtime-device-link-HJ2ptFux.js} +25 -22
- package/dist/{esm/sdk/runtime-ecdsa-tempo-tUWnafRo.js → public/sdk/runtime-ecdsa-tempo-BGLsTAWR.js} +24 -21
- package/dist/public/sdk/{runtime-email-otp-1wIPTDim.js → runtime-email-otp-CpX88VZJ.js} +23 -20
- package/dist/{esm/sdk/runtime-export-Du2d4_Vu.js → public/sdk/runtime-export-DIVY473L.js} +26 -22
- package/dist/{esm/sdk/runtime-near-CGoWxu7u.js → public/sdk/runtime-near-CxtQi4b2.js} +24 -22
- package/dist/{esm/sdk/runtime-preferences-JwJK_xP3.js → public/sdk/runtime-preferences-vnJc5Svg.js} +24 -21
- package/dist/public/sdk/{runtime-recovery-codes-DW7bB2tO.js → runtime-recovery-codes-BSCLVHQj.js} +15 -19
- package/dist/{esm/sdk/runtime-recovery-BEqBdpyo.js → public/sdk/runtime-recovery-i08vCJST.js} +23 -20
- package/dist/public/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-D3TBExQ6.js} +915 -1109
- package/dist/{esm/sdk/runtimeLoader-ZXsvx9zX.js → public/sdk/runtimeLoader-DQVEFVaW.js} +12 -12
- package/dist/{esm/sdk/sdkSentEvents-5Pi-hjHB.js → public/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
- package/dist/public/sdk/{secp256k1-CWDid9WH.js → secp256k1-D-I6Gh4D.js} +53 -176
- package/dist/public/sdk/sessionPolicy-DO-MkL65.js +460 -0
- package/dist/{esm/sdk/signEvmFamily-pbMepepQ.js → public/sdk/signEvmFamily-C3C97Th-.js} +135 -185
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +11 -15
- package/dist/{esm/sdk/signEvmWithUiConfirm-nk-r3Rff.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +6 -10
- package/dist/{esm/sdk/signNear-DVD9-IO5.js → public/sdk/signNear-Bmb2fj_a.js} +729 -846
- package/dist/public/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
- package/dist/public/sdk/{signerDomain-DDLiwuYS.js → signerDomain-IEAVrOrc.js} +3 -18
- package/dist/{esm/sdk/signerLoader-D_w-SfR9.js → public/sdk/signerLoader-B7orgq5Z.js} +4 -4
- package/dist/public/sdk/{signatureUses-BY1IY7uz.js → signingFlow-SZ8t_lxv.js} +24 -38
- package/dist/public/sdk/{trace-08ayoiNp.js → trace-DKLQZvec.js} +1 -2
- package/dist/public/sdk/{transaction-activity-DKgIGpKG.js → transaction-activity-CSMCveBn.js} +1 -1
- package/dist/{esm/sdk/transactionReview-UoZQ2opj.js → public/sdk/transactionReview-DpHLTznU.js} +4 -6
- package/dist/public/sdk/{transactionReviewAdmission-Cv9kTr4c.js → transactionReviewAdmission-BCPvl8OZ.js} +2 -2
- package/dist/public/sdk/{transactionState-Bpm4GamO.js → transactionState-CJ4U8pcl.js} +58 -47
- package/dist/public/sdk/tx-confirm-ui.js +182 -189
- package/dist/public/sdk/types-Dx9fczU7.js +111 -0
- package/dist/{esm/sdk/validation-BphUDXs7.js → public/sdk/validation-gat4LEKm.js} +36 -2
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +2 -2
- package/dist/public/sdk/wallet-iframe-host-full.js +2 -2
- package/dist/public/sdk/wallet-iframe-host-near.js +2 -2
- package/dist/public/sdk/wallet-iframe-host-runtime.js +2 -2
- package/dist/public/sdk/{wallet-recovery-CKqoHbxT.js → wallet-recovery-BX61-79p.js} +20 -29
- package/dist/public/sdk/wallet-service.css +21 -0
- package/dist/public/sdk/wallet-ui.css +129 -345
- package/dist/{esm/sdk/sessionPolicy-B4FsPuk2.js → public/sdk/walletAuthority-DD9T25F6.js} +504 -447
- package/dist/{esm/sdk/ed25519SeedMaterial-Cghz8-XB.js → public/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js} +1951 -2216
- package/dist/public/sdk/{walletRecoveryCommit-G6w6N5RV.js → walletRecoveryCommit-AI1AtIRP.js} +88 -151
- package/dist/{esm/sdk/walletRecoveryRotate-BYOYJAyb.js → public/sdk/walletRecoveryRotate-BgLlW5ih.js} +1 -1
- package/dist/public/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
- package/dist/{esm/sdk/webauthnP256-CHqprSh1.js → public/sdk/webauthnP256-DC5EIbKN.js} +1 -1
- package/dist/public/sdk/workers/device-linking-key.worker.js +5638 -5817
- package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1663 -2128
- package/dist/public/sdk/workers/ecdsa-online-client.worker.js +9 -117
- package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +102 -220
- package/dist/public/sdk/workers/email-otp.worker.js +8966 -9300
- package/dist/public/sdk/workers/evm-crypto.worker.js +8 -6
- 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.worker.js +4 -4
- package/dist/public/sdk/workers/near_signer.wasm +0 -0
- package/dist/public/sdk/workers/passkey-confirm.worker.js +6 -3
- package/dist/public/sdk/workers/passkey-mpc-export.worker.js +95 -101
- package/dist/public/sdk/workers/passkey-mpc-session.worker.js +205 -202
- 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.worker.js +8 -6
- 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 +230 -222
- 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 +334 -214
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -9
- package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
- package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +8 -0
- package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +4 -8
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +13 -74
- package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
- package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
- package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
- package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
- package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -2
- package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
- package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
- package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
- package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
- package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
- package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +14 -30
- package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
- package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -14
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -50
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
- package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
- package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +18 -42
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
- package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
- 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 +8 -35
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
- package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
- package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
- package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
- package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +3 -5
- package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
- package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +3 -13
- package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +7 -5
- package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
- package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +6 -6
- package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +8 -7
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +179 -0
- package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
- package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
- package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +130 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +24 -93
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +15 -99
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +38 -0
- package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
- package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
- package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
- package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -17
- package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
- package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
- package/dist/types/shared-ts/src/utils/variant.d.ts +29 -0
- package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
- package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +101 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +5 -4
- package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
- package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
- package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
- 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 -12
- package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfaceAssembly.d.ts +3 -13
- package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfacePorts.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/assembly/browserWorkerWarmupPolicy.d.ts +1 -3
- package/dist/types/wallet/src/SeamsWeb/assembly/createBrowserSigningStores.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/assembly/initializeBrowserSigningRuntime.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/assembly/preconnectWalletAssets.d.ts +2 -3
- package/dist/types/wallet/src/SeamsWeb/operations/auth/login.d.ts +13 -88
- package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +4 -3
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +2 -18
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +7 -24
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +5 -6
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +0 -13
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +0 -1
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.d.ts +20 -0
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.d.ts +4 -42
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/registrationAuthority.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/revokeAuthMethod.d.ts +1 -9
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/sourcePasskeyProof.d.ts +2 -7
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -23
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingComposition.d.ts +2 -21
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingHttpTransport.d.ts +4 -17
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingPorts.d.ts +10 -16
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +4 -3
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.d.ts +2 -14
- package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDevice.d.ts +3 -91
- package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlow.d.ts +88 -0
- package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlowSupport.d.ts +53 -0
- package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceTargetActivation.d.ts +149 -0
- package/dist/types/wallet/src/SeamsWeb/operations/devices/scanDevice.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostComposition.d.ts +4 -9
- package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +9 -5
- package/dist/types/wallet/src/SeamsWeb/operations/near/actions.d.ts +0 -46
- package/dist/types/wallet/src/SeamsWeb/operations/near/delegateAction.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/near/signingEventHelpers.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/accountSync.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/recoveryWalletBinding.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/syncAccount.d.ts +1 -77
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecovery.d.ts +8 -7
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCommit.d.ts +0 -2
- package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +0 -8
- package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +8 -10
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +10 -233
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +18 -5
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +2 -6
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationStrictEcdsa.d.ts +1 -7
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTerminalCommit.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +49 -275
- package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdEcdsaProvisioning.d.ts +3 -2
- package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/publicApi/awaitNearReady.d.ts +0 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/capabilitySelection.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/currentWallet.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/devices.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/keyExport.d.ts +1 -4
- package/dist/types/wallet/src/SeamsWeb/publicApi/near.d.ts +0 -8
- package/dist/types/wallet/src/SeamsWeb/publicApi/transactionReview.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +29 -36
- package/dist/types/wallet/src/SeamsWeb/registrationIntent.typecheck.d.ts +8 -0
- package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +14 -61
- package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/overlay/overlay-controller.d.ts +3 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/overlay/overlay-styles.d.ts +3 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.d.ts +0 -13
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +3 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/domain.d.ts +8 -39
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +3 -7
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/renderer.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/IframeTransport.d.ts +3 -7
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.d.ts +2 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.d.ts +1 -11
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/webauthn-bridge.d.ts +0 -6
- package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +2 -8
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/passkey.d.ts +3 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +2 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/bootstrap.d.ts +0 -4
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/canonicalSignerErrorCode.d.ts +2 -7
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/context.d.ts +0 -5
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/authMenu.d.ts +0 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/walletIframeHandler.types.d.ts +0 -13
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +10 -10
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeLoader.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +3 -3
- package/dist/types/wallet/src/SeamsWeb/walletIframe/sanitization.d.ts +0 -7
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionReconciliation.d.ts +3 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +57 -72
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/transactionReview.d.ts +3 -2
- package/dist/types/wallet/src/core/accountData/near/accountProjection.d.ts +4 -49
- package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +4 -21
- package/dist/types/wallet/src/core/accountData/near/profileId.d.ts +2 -2
- package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +0 -1
- package/dist/types/wallet/src/core/config/chains.d.ts +0 -2
- package/dist/types/wallet/src/core/config/configBuilder.d.ts +0 -4
- package/dist/types/wallet/src/core/config/configHelpers.d.ts +1 -21
- package/dist/types/wallet/src/core/config/defaultConfigs.d.ts +1 -4
- package/dist/types/wallet/src/core/config/registrationConfig.typecheck.d.ts +1 -2
- package/dist/types/wallet/src/core/indexedDB/accountKeyMaterial.d.ts +5 -4
- package/dist/types/wallet/src/core/indexedDB/accountSignerLifecycle.d.ts +1 -1
- package/dist/types/wallet/src/core/indexedDB/index.d.ts +1 -5
- package/dist/types/wallet/src/core/indexedDB/keyMaterialEnvelope.d.ts +1 -2
- package/dist/types/wallet/src/core/indexedDB/linkedAuthoritySignerMaterial.d.ts +3 -3
- package/dist/types/wallet/src/core/indexedDB/normalization.d.ts +0 -3
- package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +7 -26
- package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +5 -8
- package/dist/types/wallet/src/core/indexedDB/profileAccountProjection.d.ts +3 -14
- package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +2 -1
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +172 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +155 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +15 -256
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +101 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.d.ts +0 -1
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/manager.d.ts +2 -1
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +3 -2
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +49 -44
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signingSessionSeals.d.ts +2 -1
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.d.ts +47 -0
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +5 -8
- package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +7 -4
- package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +10 -78
- 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/platform/secretSources.d.ts +1 -1
- package/dist/types/wallet/src/core/platform/signerCoreCommandAdapters.typecheck.d.ts +25 -0
- package/dist/types/wallet/src/core/rpcClients/evm/EvmClient.d.ts +1 -2
- package/dist/types/wallet/src/core/rpcClients/evm/nonceBackend.d.ts +6 -22
- package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -133
- package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
- package/dist/types/wallet/src/core/rpcClients/near/rpcCalls.d.ts +5 -31
- package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -12
- package/dist/types/wallet/src/core/rpcClients/relayer/passkeyCustodyEnvelope.d.ts +4 -3
- package/dist/types/wallet/src/core/rpcClients/relayer/registrationSignerSetRequest.d.ts +3 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/relayerHttp.d.ts +2 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/routerAbNormalSigning.d.ts +10 -39
- package/dist/types/wallet/src/core/rpcClients/relayer/sealedRefreshCapabilities.d.ts +0 -14
- package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +4 -72
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryFinalize.d.ts +2 -5
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.d.ts +4 -7
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +5 -17
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +3 -19
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +32 -106
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistrationTerminalResponse.d.ts +2 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +2 -10
- package/dist/types/wallet/src/core/runtime/runtime.types.d.ts +7 -6
- package/dist/types/wallet/src/core/signingEngine/assembly/createManagers.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/chains/evm/bytes.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/chains/evm/display/evmTx.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/chains/evm/display/functionSelectors.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/chains/evm/evmAdapter.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/chains/evm/evmCryptoWasm.d.ts +0 -9
- package/dist/types/wallet/src/core/signingEngine/chains/evm/evmSigning.types.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/chains/near/display.d.ts +4 -2
- package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +5 -12
- package/dist/types/wallet/src/core/signingEngine/chains/tempo/display.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoAdapter.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoSigning.types.d.ts +4 -7
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +6 -104
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +1 -17
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ed25519YaoExportFlow.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/exportKeypairOperation.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportConfirmation.d.ts +2 -5
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +8 -7
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/stepUpAuthorization.d.ts +3 -3
- package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +10 -30
- package/dist/types/wallet/src/core/signingEngine/flows/registration/nearProvisioningRegistry.d.ts +2 -20
- package/dist/types/wallet/src/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/flows/shared/signingConfirmation.d.ts +0 -15
- package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +7 -50
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/authPlanning.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +2 -6
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/errors.d.ts +3 -15
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/executorThresholdState.d.ts +0 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +5 -6
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/preparedSigning.d.ts +5 -14
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -13
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.d.ts +7 -7
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signatureUses.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signerLoader.d.ts +5 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +2 -3
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlow.d.ts +12 -12
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +11 -46
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/stepUpAuthorization.d.ts +4 -22
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/thresholdAdmission.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/types.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/implicitAccountFunding.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/requireNearStepUpAuth.d.ts +3 -3
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +4 -11
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signatureOnlySigning.d.ts +126 -0
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingMaterials.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.d.ts +3 -3
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNear.d.ts +6 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/stepUpAuthorization.d.ts +1 -6
- package/dist/types/wallet/src/core/signingEngine/interfaces/accountAuthMetadata.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/interfaces/display.d.ts +7 -6
- package/dist/types/wallet/src/core/signingEngine/interfaces/ecdsaChainTarget.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +8 -48
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +5 -19
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +4 -6
- package/dist/types/wallet/src/core/signingEngine/interfaces/signing.d.ts +8 -17
- package/dist/types/wallet/src/core/signingEngine/nonce/evmNonceLane.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLane.d.ts +3 -28
- package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLaneIdentity.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +5 -6
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceCoordinationRecordBoundary.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceDiagnostics.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceLaneKeys.d.ts +1 -3
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceLeaseState.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +15 -15
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +6 -23
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +7 -17
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.d.ts +1 -7
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/registrationPendingFinalization.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/SigningSessionCoordinator.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/session/authority/authorityOperationResolver.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +14 -37
- package/dist/types/wallet/src/core/signingEngine/session/availability/clientSessionExpiryInvalidator.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +4 -3
- package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +6 -31
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/challengeDelivery.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.d.ts +1 -21
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaLogin.d.ts +6 -61
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +7 -26
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaRecovery.d.ts +3 -19
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +6 -12
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/exportRecoveryRuntime.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ports.d.ts +2 -3
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/publicTypes.d.ts +4 -6
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/routePlan.d.ts +4 -15
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/runtimeConfig.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedRefreshPolicy.d.ts +4 -17
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedSessionRegistry.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/secretEscrow.d.ts +4 -11
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/warmSessionRuntime.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/workerRequests.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareHandle.d.ts +0 -13
- package/dist/types/wallet/src/core/signingEngine/session/identity/clientSessionPersistenceState.d.ts +6 -7
- package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.d.ts +0 -3
- package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +19 -35
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +10 -27
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +11 -11
- 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 +13 -20
- package/dist/types/wallet/src/core/signingEngine/session/identity/ownerLaneScope.d.ts +9 -17
- package/dist/types/wallet/src/core/signingEngine/session/identity/selectLane.d.ts +12 -28
- package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +7 -8
- package/dist/types/wallet/src/core/signingEngine/session/identity/walletUnlockSubject.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/keyMaterialBrands.d.ts +3 -27
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/activationCoordinator.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/laneMaterialInvalidation.d.ts +2 -37
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/recipientPreparation.d.ts +4 -16
- package/dist/types/wallet/src/core/signingEngine/session/lanes/walletExecutionLaneHydration.d.ts +5 -42
- package/dist/types/wallet/src/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/lifecycle/walletSessionStatus.d.ts +2 -6
- package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +8 -12
- package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +7 -10
- 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 +4 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityManifest.d.ts +5 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +6 -35
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +10 -9
- package/dist/types/wallet/src/core/signingEngine/session/material/mpcCapabilityHydration.d.ts +4 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +9 -13
- package/dist/types/wallet/src/core/signingEngine/session/material/walletSigningStateFailure.d.ts +9 -8
- package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +7 -16
- package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +13 -16
- package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/operationState/trace.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/session/operationState/transactionState.d.ts +5 -26
- package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +18 -36
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +7 -8
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +6 -23
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.d.ts +4 -15
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519Provisioner.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519SessionProvision.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519SessionProvision.typecheck.d.ts +7 -1
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +10 -94
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoSealedSession.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.d.ts +3 -13
- package/dist/types/wallet/src/core/signingEngine/session/passkey/passkeyCustodySessionCache.d.ts +0 -40
- package/dist/types/wallet/src/core/signingEngine/session/passkey/prfCache.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +12 -30
- package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionMaterialWriter.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/persistence/durableSealedSessionCommands.d.ts +5 -7
- package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaSealedRecordKey.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +212 -0
- package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionStore.d.ts +4 -199
- package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +6 -35
- package/dist/types/wallet/src/core/signingEngine/session/public.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +4 -3
- package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/recoveryRecord.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/userPreferences.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReader.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +7 -19
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.d.ts +6 -40
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.typecheck.d.ts +4 -0
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +8 -61
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +4 -73
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/readModel.d.ts +4 -12
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +4 -3
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/transitions.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.d.ts +5 -36
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.typecheck.d.ts +10 -1
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.d.ts +1 -2
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmCommon.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +17 -53
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/confirmOperation.d.ts +4 -5
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodRunners.d.ts +4 -3
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.d.ts +7 -6
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/signingPrompt.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +6 -15
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +13 -28
- 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 +5 -17
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.d.ts +0 -9
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.d.ts +5 -31
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/webauthn.d.ts +1 -46
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/activation.d.ts +2 -9
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/operationStepUp.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.d.ts +5 -4
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +2 -11
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +2 -10
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/connectSession.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +7 -37
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +17 -49
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +5 -19
- package/dist/types/wallet/src/core/signingEngine/threshold/sessionPolicy.d.ts +2 -53
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/request.d.ts +1 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/signing.d.ts +1 -7
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/nearFundingNotice.d.ts +2 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-surface-resize.d.ts +3 -32
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/export-private-key-reveal.d.ts +0 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +1 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +11 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +4 -21
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/email-otp-session.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/surface-resize-events.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/tree.d.ts +3 -3
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +9 -9
- package/dist/types/wallet/src/core/signingEngine/walletCustody/activateEd25519Capability.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyDriver.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyStepRunner.d.ts +4 -3
- package/dist/types/wallet/src/core/signingEngine/walletCustody/ed25519SeedMaterial.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/emailOtpLink.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/joinCustodyWire.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/openCustodyCache.d.ts +6 -5
- package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +1 -52
- package/dist/types/wallet/src/core/signingEngine/walletCustody/recoveryReplacementEnvelope.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +16 -26
- package/dist/types/wallet/src/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.d.ts +22 -12
- package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryEd25519.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +3 -2
- package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.d.ts +1 -2
- package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/credentialExtensions.d.ts +2 -5
- package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/helpers.d.ts +0 -9
- package/dist/types/wallet/src/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.d.ts +4 -9
- package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingPorts.d.ts +3 -12
- package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingSourceContribution.d.ts +17 -9
- package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +7 -7
- package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
- package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +5 -5
- package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +78 -81
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ecdsaTargetShareHpke.d.ts +7 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ordinaryMaterialState.d.ts +50 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/requests.d.ts +89 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key.worker.d.ts +1 -10
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/ecdsaLaneHolderWorkerRuntime.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +57 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +89 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/dispatch.d.ts +4 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/ed25519YaoExport.d.ts +45 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/enrollment.d.ts +47 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/fetch.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/materialParsing.d.ts +45 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/operationRequestParsing.d.ts +7 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/otpVerification.d.ts +53 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/passkeyCustodyLink.d.ts +18 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +48 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/recovery.d.ts +9 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/requestEnvelope.d.ts +11 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/sessionState.d.ts +74 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +133 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/opaqueEcdsaPresignAuthority.d.ts +6 -6
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/clientSealPreparation.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/runtime.d.ts +2 -1
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/workerErrorPayload.d.ts +16 -0
- package/dist/types/wallet/src/core/types/accountIds.d.ts +2 -1
- package/dist/types/wallet/src/core/types/authenticatorOptions.d.ts +0 -2
- package/dist/types/wallet/src/core/types/confirmationConfig.d.ts +4 -4
- package/dist/types/wallet/src/core/types/ecdsaSignerProvisioningDefaults.d.ts +2 -1
- package/dist/types/wallet/src/core/types/errors.d.ts +2 -1
- package/dist/types/wallet/src/core/types/linkDevice.d.ts +5 -21
- package/dist/types/wallet/src/core/types/rpc.d.ts +0 -30
- package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
- package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +15 -32
- package/dist/types/wallet/src/core/types/seams.d.ts +50 -124
- package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +3 -5
- package/dist/types/wallet/src/core/types/signer-worker.d.ts +13 -70
- package/dist/types/wallet/src/core/types/webauthn.d.ts +3 -12
- package/dist/types/wallet/src/core/walletRuntimePaths/base.d.ts +0 -28
- package/dist/types/wallet/src/core/walletRuntimePaths/wasm-loader.d.ts +2 -1
- package/dist/types/wallet/src/core/walletRuntimePaths/workers.d.ts +0 -11
- package/dist/types/wallet/src/externalEvm/boundary.d.ts +2 -2
- package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
- package/dist/types/wallet/src/index.d.ts +3 -1
- package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -3
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuDialog.d.ts +21 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/AccountsSection.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/ExportKeysSection.d.ts +2 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +2 -2
- package/dist/types/wallet/src/react/components/AccountMenuButton/UserAccountButton.d.ts +0 -7
- 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/MoonIcon.d.ts +1 -5
- 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/SunIcon.d.ts +1 -5
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/strokeIcon.d.ts +10 -0
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +1 -1
- package/dist/types/wallet/src/react/components/QRCodeIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/theme/ThemeProvider.d.ts +0 -9
- package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -205
- package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +2 -9
- package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +3 -24
- package/dist/types/wallet/src/react/index.d.ts +3 -1
- package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +108 -8
- package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -47
- package/dist/types/wallet/src/react/types.d.ts +2 -2
- package/dist/types/wallet/src/utils/deviceDetection.d.ts +2 -58
- package/dist/types/wallet/src/utils/intentDigest.d.ts +1 -6
- package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
- package/dist/types/wallet/src/utils/qrScanner.d.ts +4 -38
- package/dist/workers/device-linking-key.worker.js +5638 -5817
- package/dist/workers/ecdsa-derivation-client.worker.js +1663 -2128
- package/dist/workers/ecdsa-online-client.worker.js +9 -117
- package/dist/workers/ecdsa-presign-client.worker.js +102 -220
- package/dist/workers/email-otp.worker.js +8966 -9300
- package/dist/workers/evm-crypto.worker.js +8 -6
- package/dist/workers/evm_crypto.wasm +0 -0
- package/dist/workers/evm_crypto_bg.wasm +0 -0
- package/dist/workers/near-signer.worker.js +4 -4
- package/dist/workers/near_signer.wasm +0 -0
- package/dist/workers/passkey-confirm.worker.js +6 -3
- package/dist/workers/passkey-mpc-export.worker.js +95 -101
- package/dist/workers/passkey-mpc-session.worker.js +205 -202
- 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.worker.js +8 -6
- 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 +230 -222
- 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 -133
- 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 -133
- 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/esm/react/core/types/rpc.js +0 -9
- package/dist/esm/react/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
- package/dist/esm/react/shared-ts/src/utils/paillier.js +0 -3
- package/dist/esm/sdk/device-linking-DpVGjSeq.js +0 -221
- package/dist/esm/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js +0 -5511
- package/dist/esm/sdk/evmFamilyEcdsaIdentity-_kuKSW35.js +0 -1385
- package/dist/esm/sdk/participants-Bcnsa_ip.js +0 -232
- package/dist/esm/sdk/registrationIntent-DwAIMQYh.js +0 -1623
- package/dist/esm/sdk/signer-worker-DYRteieu.js +0 -48
- package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
- package/dist/esm/shared-ts/src/utils/paillier.js +0 -3
- package/dist/public/sdk/device-linking-DpVGjSeq.js +0 -221
- package/dist/public/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js +0 -5511
- package/dist/public/sdk/evmFamilyEcdsaIdentity-_kuKSW35.js +0 -1385
- package/dist/public/sdk/participants-Bcnsa_ip.js +0 -232
- package/dist/public/sdk/registrationIntent-DwAIMQYh.js +0 -1623
- package/dist/public/sdk/signer-worker-DYRteieu.js +0 -48
- package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
- package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
- package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
- package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
- package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
- package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
- package/dist/types/wallet/src/SeamsWeb/operations/devices/qrLinkSession.d.ts +0 -7
- package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdWarmSessionDefaults.d.ts +0 -11
- package/dist/types/wallet/src/SeamsWeb/walletIframe/SeamsWebIframe.d.ts +0 -113
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/env.d.ts +0 -7
- package/dist/types/wallet/src/SeamsWeb/walletIframe/client/index.d.ts +0 -12
- package/dist/types/wallet/src/SeamsWeb/walletIframe/index.d.ts +0 -21
- package/dist/types/wallet/src/core/platform/webCryptoHkdf.d.ts +0 -7
- package/dist/types/wallet/src/core/rpcClients/relayer/routerAbPublicKeyset.d.ts +0 -5
- package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.typecheck.d.ts +0 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/walletCredentialActivity.d.ts +0 -48
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/recoveryStorePorts.d.ts +0 -7
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -44
- package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareEnvelopeAad.d.ts +0 -14
- package/dist/types/wallet/src/core/signingEngine/session/identity/ecdsaDerivationSigningMaterialHandle.d.ts +0 -19
- package/dist/types/wallet/src/core/signingEngine/session/identity/ecdsaDerivationSigningMaterialHandle.typecheck.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/session/lanes/laneRecords.d.ts +0 -3
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/holderDeliveryCoordinator.d.ts +0 -29
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/ports.d.ts +0 -53
- package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/sourceLaneOperationCoordinator.d.ts +0 -24
- package/dist/types/wallet/src/core/signingEngine/session/operationState/stepUpFreshness.d.ts +0 -135
- package/dist/types/wallet/src/core/signingEngine/session/operationState/stepUpFreshness.typecheck.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/session/passkey/envelopes/index.d.ts +0 -19
- package/dist/types/wallet/src/core/signingEngine/session/passkey/runtime.d.ts +0 -23
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/walletAuthPolicyError.d.ts +0 -17
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519WrapKeySalt.d.ts +0 -2
- 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
- package/dist/types/wallet/src/core/signingEngine/useCases/lifecycle.d.ts +0 -758
- package/dist/types/wallet/src/core/signingEngine/useCases/lifecycle.typecheck.d.ts +0 -2
- package/dist/types/wallet/src/core/signingEngine/useCases/registerWallet.d.ts +0 -71
- package/dist/types/wallet/src/core/signingEngine/useCases/restorePersistedSessions.d.ts +0 -51
- package/dist/types/wallet/src/core/signingEngine/useCases/signEvmFamily.d.ts +0 -47
- package/dist/types/wallet/src/core/signingEngine/useCases/signNear.d.ts +0 -60
- package/dist/types/wallet/src/core/signingEngine/useCases/unlockWallet.d.ts +0 -69
- package/dist/types/wallet/src/core/signingEngine/walletCustody/coldUnlock.d.ts +0 -57
- package/dist/types/wallet/src/core/signingEngine/workerManager/laneWorkerChannels.d.ts +0 -81
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/laneHolderWorkerBackend.d.ts +0 -54
- package/dist/types/wallet/src/react/components/AccountMenuButton/HaloBorder/index.d.ts +0 -33
- package/dist/types/wallet/src/react/components/AccountMenuButton/PasskeyHaloLoading.d.ts +0 -10
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/EclipseIcon.d.ts +0 -8
- package/dist/types/wallet/src/react/components/ArrowRightAnim.d.ts +0 -19
- package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/index.d.ts +0 -5
- package/dist/types/wallet/src/theme/base-styles.runtime.d.ts +0 -15
- /package/dist/esm/sdk/{base-CMsoJcVv.js → base-D1B5mGin.js} +0 -0
- /package/dist/esm/sdk/{bytes-CwytAKz8.js → bytes-qKxKn4gg.js} +0 -0
- /package/dist/esm/sdk/{csp-stylesheet-DLj_a6t_.js → csp-stylesheet-btENhsNp.js} +0 -0
- /package/dist/esm/sdk/{events-Z_Rmy0Hn.js → events-DYoBL2HO.js} +0 -0
- /package/dist/esm/sdk/{executeWorkerOperation-Bn8GEuT_.js → executeWorkerOperation-Cl9whMK7.js} +0 -0
- /package/dist/esm/sdk/{jsonRpc-MUsR5-C6.js → jsonRpc-VVkaQkFD.js} +0 -0
- /package/dist/esm/sdk/{keccak-DY5wDsym.js → keccak-DUL3d8SF.js} +0 -0
- /package/dist/esm/sdk/{nearRpcResults-DwvW43FL.js → nearRpcResults-DoUgDATm.js} +0 -0
- /package/dist/esm/sdk/{prfCache-CgAr-VEU.js → prfCache-wqQSjYLn.js} +0 -0
- /package/dist/esm/sdk/{profileAccountProjection-C9rVhbeJ.js → profileAccountProjection-uZVJuBvS.js} +0 -0
- /package/dist/esm/sdk/{promptText-BEgOkGxB.js → promptText-CuRa_ivd.js} +0 -0
- /package/dist/esm/sdk/{shared-Qy1DGMqH.js → shared-DkbeLCI3.js} +0 -0
- /package/dist/esm/sdk/{signerSlot-DbNAs-kc.js → signerSlot-_ovonwVX.js} +0 -0
- /package/dist/esm/sdk/{signingSessionSeal-CdtgXHSL.js → signingSessionSeal-Cu-GHm6y.js} +0 -0
- /package/dist/esm/sdk/{surface-measurement-reporter-D7BNehf4.js → surface-measurement-reporter-CSTyRsMa.js} +0 -0
- /package/dist/esm/sdk/{walletIframeIdentity-UmQTJsHc.js → walletIframeIdentity-DB6Z2EC9.js} +0 -0
- /package/dist/esm/sdk/{webauthnPromptCoordinator-CLeba8ru.js → webauthnPromptCoordinator-L96oVvLz.js} +0 -0
- /package/dist/public/sdk/{base-CMsoJcVv.js → base-D1B5mGin.js} +0 -0
- /package/dist/public/sdk/{bytes-CwytAKz8.js → bytes-qKxKn4gg.js} +0 -0
- /package/dist/public/sdk/{csp-stylesheet-DLj_a6t_.js → csp-stylesheet-btENhsNp.js} +0 -0
- /package/dist/public/sdk/{events-Z_Rmy0Hn.js → events-DYoBL2HO.js} +0 -0
- /package/dist/public/sdk/{executeWorkerOperation-Bn8GEuT_.js → executeWorkerOperation-Cl9whMK7.js} +0 -0
- /package/dist/public/sdk/{jsonRpc-MUsR5-C6.js → jsonRpc-VVkaQkFD.js} +0 -0
- /package/dist/public/sdk/{keccak-DY5wDsym.js → keccak-DUL3d8SF.js} +0 -0
- /package/dist/public/sdk/{nearRpcResults-DwvW43FL.js → nearRpcResults-DoUgDATm.js} +0 -0
- /package/dist/public/sdk/{prfCache-CgAr-VEU.js → prfCache-wqQSjYLn.js} +0 -0
- /package/dist/public/sdk/{profileAccountProjection-C9rVhbeJ.js → profileAccountProjection-uZVJuBvS.js} +0 -0
- /package/dist/public/sdk/{promptText-BEgOkGxB.js → promptText-CuRa_ivd.js} +0 -0
- /package/dist/public/sdk/{shared-Qy1DGMqH.js → shared-DkbeLCI3.js} +0 -0
- /package/dist/public/sdk/{signerSlot-DbNAs-kc.js → signerSlot-_ovonwVX.js} +0 -0
- /package/dist/public/sdk/{signingSessionSeal-CdtgXHSL.js → signingSessionSeal-Cu-GHm6y.js} +0 -0
- /package/dist/public/sdk/{surface-measurement-reporter-D7BNehf4.js → surface-measurement-reporter-CSTyRsMa.js} +0 -0
- /package/dist/public/sdk/{walletIframeIdentity-UmQTJsHc.js → walletIframeIdentity-DB6Z2EC9.js} +0 -0
- /package/dist/public/sdk/{webauthnPromptCoordinator-CLeba8ru.js → webauthnPromptCoordinator-L96oVvLz.js} +0 -0
|
@@ -1,75 +1,79 @@
|
|
|
1
1
|
import { r as __toESM } from "./chunk-BtrIJ4_z.js";
|
|
2
|
-
import { r as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { t as
|
|
6
|
-
import {
|
|
7
|
-
import { b as parsePMRedeemHostedWalletSeamsSessionPayload } from "./messages-
|
|
2
|
+
import { B as normalizeTrimmedString, C as parseThresholdSessionId, D as parseWalletAuthorityId, M as parseWebAuthnRpId, N as joinNormalizedUrl, O as parseWalletId, S as parseThresholdEd25519SessionId, T as parseWalletAuthMethodId, V as stripTrailingSlashes, b as parseSigningLaneId, c as parseLaneShareEpoch, d as parseLinkedDeviceId, h as parseMpcMaterialActivationRef, j as parseWebAuthnCredentialIdB64u, k as parseWalletKeyId, l as parseLinkDeviceSessionId, m as parseMpcMaterialActivationId, n as hasWhitespaceOrControlCharacters, p as parseMpcLifecycleBindingRef, r as mpcMaterialActivationRefsEqual, t as buildMpcMaterialActivationRef, u as parseLinkedDeviceEnrollmentId, v as parsePasskeyEnvelopeId, w as parseVerifiedEmailAddress, x as parseThresholdEcdsaSessionId } from "./domainIds-lcrFg6Sa.js";
|
|
3
|
+
import { C as deriveImplicitNearAccountIdFromEd25519PublicKey, M as base58Encode, O as parseNamedNearAccountId, T as getNearShortErrorMessage, _ as requireRecord$1, c as isBoolean, d as isPlainObject, h as requireCanonicalString, n as asRecordOrArray, p as isString, u as isObject, w as ensureEd25519Prefix, x as toOptionalTrimmedNonEmptyString, y as requireTrimmedString } from "./validation-gat4LEKm.js";
|
|
4
|
+
import { r as reviewAdmissionForBinding } from "./transactionReviewAdmission-BCPvl8OZ.js";
|
|
5
|
+
import { a as setEmbeddedBase, n as getEmbeddedBase, r as onEmbeddedBaseChange, t as getEmbeddedAssetVersion } from "./base-D1B5mGin.js";
|
|
6
|
+
import { t as walletIframeRequestIdFromBoundary } from "./walletIframeIdentity-DB6Z2EC9.js";
|
|
7
|
+
import { b as parsePMRedeemHostedWalletSeamsSessionPayload } from "./messages-C7Dbx9iN.js";
|
|
8
8
|
import { i as isUserCancellationError, n as getUserFriendlyErrorMessage, o as toError, t as errorMessage } from "./errors-93h9uAW9.js";
|
|
9
9
|
import { i as base64UrlEncode, n as base64Encode, r as base64UrlDecode } from "./base64-Clm8C-e9.js";
|
|
10
10
|
import { n as secureRandomBase64Url, r as secureRandomId, t as secureRandomBase36 } from "./secureRandomId-BORsmdS4.js";
|
|
11
|
-
import { $ as
|
|
12
|
-
import { a as
|
|
13
|
-
import {
|
|
14
|
-
import { a as
|
|
15
|
-
import {
|
|
16
|
-
import { a as
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { t as
|
|
21
|
-
import { C as
|
|
22
|
-
import {
|
|
23
|
-
import { a as
|
|
24
|
-
import {
|
|
25
|
-
import
|
|
26
|
-
import { a as
|
|
27
|
-
import { a as
|
|
28
|
-
import {
|
|
29
|
-
import { t as
|
|
30
|
-
import "./
|
|
31
|
-
import {
|
|
32
|
-
import
|
|
33
|
-
import {
|
|
34
|
-
import { t as
|
|
35
|
-
import {
|
|
36
|
-
import { c as
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import { a as
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import "./
|
|
46
|
-
import { n as
|
|
47
|
-
import { l as
|
|
48
|
-
import { t as
|
|
49
|
-
import { a as
|
|
50
|
-
import { t as
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import { t as
|
|
55
|
-
import { n as
|
|
56
|
-
import {
|
|
57
|
-
import {
|
|
58
|
-
import { t as
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import { _ as
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import "./
|
|
71
|
-
import { t as
|
|
72
|
-
import {
|
|
11
|
+
import { $ as unlockEmailOtpAuthorityWallet, $t as listThresholdEcdsaProvisionTargets, A as resolveGoogleEmailOtpProvider, At as readExactEd25519SealedSession, B as subscribeToNearProvisioning, Bt as resolveExactWalletSessionOperationCredential, C as persistPasskeyEd25519YaoSignerMaterialV1, Ct as resolveExactEd25519SealedSessionRuntimeForLane, D as collectEmailOtpRegistrationAuthority, Dt as deleteDurableSealedSessionRecord, E as buildRestorableMpcMaterialRefInternal, Et as acquireSigningSessionRestoreLease, F as exactPasskeyWalletAuthAuthorityRefForCredential, Ft as writeExactSealedSession, G as passkeyPrfFirstB64uFromCredential, Gt as openWalletCustodyEd25519ActiveClientV1, H as resumePendingEcdsaRegistrationFromStoredCommit, Ht as buildPasskeyEd25519RestoreMetadata, I as exactPasskeyWalletAuthMethodForCredential, It as buildCurrentSealedSessionRecord, J as verifyPasskeyWalletUnlock, Jt as ROUTER_AB_ED25519_YAO_ACTIVE_CLIENT_KIND_V1, K as requirePasskeyPrfFirstB64u, Kt as walletCustodyActivationFactsFromActiveClientMetadataV1, L as resolveManagedRuntimeScopeBootstrap, Lt as createDeleteDurableSealedSessionCommand, M as readPasskeyCustodySessionEnvelope, Mt as releaseSigningSessionRestoreLease, N as rememberPasskeyCustodySessionEnvelope, Nt as updateExactEd25519SealedSessionPolicy, O as requestEmailOtpChallenge, Ot as listEcdsaSealedSessionsForWallet, P as buildRecoveredCustodyEnvelopeRecord, Pt as updateExactSealedSessionPolicy, Q as passkeyEd25519YaoLaneReferenceFromRecovery, Qt as listConfiguredThresholdEcdsaPublicationTargets, R as awaitNearProvisioningInFlight, Rt as buildRouterAbEd25519SigningWalletSession, S as hydratePasskeyEd25519YaoLocalMaterialV1, St as parseExactEd25519SealedSessionRuntime, T as readPasskeyEd25519YaoLocalMaterialLocatorV1, Tt as resolveExactEd25519SealedSessionRuntimeForWalletSubject, U as resumePendingNearRegistrations, Ut as persistPasskeyEd25519YaoSessionForRefresh, V as scheduleEcdsaSessionPresignaturePrefill, Vt as WALLET_IFRAME_TRANSPORT_TIMING_LABEL, W as passkeyCredentialIdB64uFromAuthentication, Wt as openOrRejoinWalletCustodyEd25519V1, X as buildRecoveredWalletSessionState, Xt as RouterAbEd25519YaoHttpActivationTransportV1, Y as assertEd25519YaoWarmRecoveryDescriptorStableMaterialContinuity, Yt as RouterAbEd25519YaoClientV1, Z as parsePasskeyEd25519YaoSyncResponseV1, Zt as parseEd25519YaoRecoveryCapabilityV1, _ as setUnlockedCustodyEnvelopeUpgradeSinkV1, _t as nearEd25519YaoOperationMaterialFacts, a as registerWallet, at as joinEvmFamilyCustodyV1, b as walletCustodyCeremonyStepRunner, bt as ed25519AuthorizationIdentityMatchesRuntime, c as exactWalletSessionAuthorityIdentity, ct as recoverNearEd25519CustodyV1, d as validateExactWalletSessionAuthorization, dt as WalletSessionStatusReadScope, en as isRegistrationBenchmarkDiagnosticsEnabled, et as unlockEmailOtpEd25519YaoCapability, f as destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, ft as createRelayerExactWalletSessionStatusPort, g as readUnlockedWalletEd25519ExportRootCapabilityV1, gt as buildPasskeyRouterAbEd25519WalletSessionState, h as readUnlockedEd25519ExportRootLinkingCapabilityV1, ht as buildEmailOtpRouterAbEd25519WalletSessionState, it as establishNearEd25519CustodyV1, j as configurePasskeyCustodySessionCachePersistence, jt as readExactSealedSession, k as requestEmailOtpEnrollmentChallenge, kt as listExactSealedSessionsForWallet, l as persistExactWalletSessionAuthorizationFromEcdsaBootstrap, lt as rejoinEvmFamilyCustodyV1, m as establishUnlockedWalletEd25519ExportRootCapabilityV1, mt as joinCustodyWireFromEnvelopeRecord, nt as unlockEmailOtpWalletCapabilities, ot as joinNearEd25519CustodyV1, p as dropUnlockedWalletEd25519ExportRootCapabilityReferenceV1, pt as sameRuntimePolicyScope, q as verifyLinkedDevicePasskeyWalletSession, qt as walletCustodyCacheEnvelopeFromRecordV1, rt as establishEvmFamilyCustodyV1, st as recoverEvmFamilyCustodyV1, t as addWalletSigner, tt as unlockEmailOtpWallet, u as validateExactWalletSessionAuthorityIdentity, ut as rejoinNearEd25519CustodyV1, v as walletCustodyCeremonyTransportFromWorkerContextV1, vt as rebindRouterAbEd25519WalletSessionStateFromExactRuntime, w as preparePasskeyEd25519YaoLocalMaterialRehydrationV1, wt as resolveExactEd25519SealedSessionRuntimeForWallet, x as ed25519YaoLocalMaterialIdentityFromWalletSession, xt as ed25519SealedRuntimeAuthorityRef, y as requestWalletCustodyCeremonyOperation, yt as resolveActiveAuthorizedRouterAbEd25519WalletSessionState, z as readNearProvisioningState, zt as requiredSigningSubjectForExactSigningLane } from "./registration-Ct_7LdGf.js";
|
|
12
|
+
import { C as parseEnvelopeNonceB64u, D as parseUnixMs, E as parseSecp256k1CompressedPublicKeyB64u, I as rejectUnknownFields, O as requireParsed$1, S as parseEnvelopeCiphertextB64u, T as parseKeyCreationSignerSlot, _ as signingRootScopeFromRuntimePolicyScope, a as clampThresholdSessionPolicy, b as parseDigestField, c as resolveWalletUnlockSessionUsesFromRequestedUses, d as normalizeThresholdEd25519ParticipantIds, f as parseThresholdEd25519ParticipantsV1, g as sameRuntimePolicyScope$1, h as normalizeRuntimePolicyScope, i as buildEd25519SessionPolicy, j as hasDelegatedWalletPermissionV1, k as buildFullOwnerDelegatedWalletAuthorityV1, l as THRESHOLD_ED25519_2P_PARTICIPANT_IDS, o as normalizeThresholdRuntimePolicyScope, p as coerceThemeMode$1, r as DEFAULT_UNLOCK_REMAINING_USES, t as DEFAULT_THRESHOLD_SESSION_POLICY, u as buildThresholdEd25519Participants2pV1, v as deriveEvmFamilySigningKeySlotId, w as parseEnvelopeRevision, x as parseEd25519PublicKeyB64u, y as requireEvmFamilySigningKeySlotId } from "./sessionPolicy-DO-MkL65.js";
|
|
13
|
+
import { $ as parseEmailOtpWalletAuthAuthority, B as sameRouterAbEcdsaDerivationNormalSigningStateV1, Dt as sameRouterAbMpcMaterialActivationRef, E as parseRouterAbEcdsaRegistrationActivationReceiptV1, Et as routerAbMpcMaterialActivationRefToWire, G as sameRouterAbServerIdentityV1, H as sameRouterAbEcdsaDerivationPublicIdentityV1, K as buildEmailOtpWalletAuthAuthority, M as routerAbEcdsaDerivationActiveStateId, Q as isPasskeyWalletAuthAuthority, S as parseRouterAbEcdsaOperationStepUpPreparationV1, Tt as routerAbMpcMaterialActivationRefFromWire, U as sameRouterAbEcdsaRegistrationActivationReceiptV1, V as sameRouterAbEcdsaDerivationPublicCapabilityV1, Z as isEmailOtpWalletAuthAuthority, _ as parseRouterAbEcdsaDerivationNormalSigningStateV1, _t as computeEcdsaDerivationRoleLocalRelayerKeyId, bt as parseSdkEcdsaDerivationSigningRootVersion, i as ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH, it as walletAuthAuthorityRef, jt as parseWalletSessionOperationCredentialV1, kt as activeWalletSessionV1RecordsEqual, nt as parseWalletAuthAuthorityRef, p as parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1, q as buildPasskeyWalletAuthAuthority, r as cloneAuthenticatorOptions, rt as walletAuthAuthoritiesMatch, t as MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS, v as parseRouterAbEcdsaDerivationPublicCapabilityV1, w as parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1, xt as parseSdkEcdsaDerivationThresholdKeyId, y as parseRouterAbEcdsaExplicitExportForwardedResponseV1, yt as parseSdkEcdsaDerivationSigningRootId } from "./ecdsaPresignLifecycle-Bfx2AQKb.js";
|
|
14
|
+
import { a as buildNearEd25519MpcOperationRef, d as parseMpcWalletSigningQuotaId, g as parseWalletSessionMintId, h as parseWalletSessionId, i as buildEvmEcdsaMpcOperationRef, l as parseDeviceId, m as parseWalletSessionAuthorizationId, n as EVM_ECDSA_MPC_OPERATION_KINDS, o as buildVaultOperationRef, r as NEAR_ED25519_MPC_OPERATION_KINDS, t as CAPABILITY_KINDS } from "./capabilityKinds-hvYqa6S_.js";
|
|
15
|
+
import { d as resolvePrimaryNearRpcUrl, f as alphabetizeStringify, h as sha256HexUtf8, m as sha256BytesUtf8, n as cloneChainConfig, t as chainFamilyFromNetwork, u as resolvePrimaryExplorerUrl } from "./chains-BMh3btVo.js";
|
|
16
|
+
import { a as sha256DigestB64u, o as sha256Utf8DigestB64u, r as parseDigestB64u } from "./canonicalPrimitives-BTHWz80v.js";
|
|
17
|
+
import { a as thresholdEcdsaChainTargetFromRequest, c as toWalletId, i as thresholdEcdsaChainTargetFromConfig, n as nearAccountRefFromAccountId, o as thresholdEcdsaChainTargetKey, s as thresholdEcdsaChainTargetsEqual, t as configuredThresholdEcdsaChainTargets, u as walletSessionRefFromSession } from "./ecdsaChainTarget-Bl-JWyuw.js";
|
|
18
|
+
import { a as WALLET_AUTH_METHODS, d as WALLET_EMAIL_OTP_REGISTRATION_OPERATION, f as WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, i as SIGNER_SOURCES, l as WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, n as SIGNER_AUTH_METHODS, p as WALLET_EMAIL_OTP_UNLOCK_OPERATION, r as SIGNER_KINDS, s as EMAIL_OTP_CHANNEL, u as WALLET_EMAIL_OTP_EXPORT_OPERATION } from "./signerDomain-IEAVrOrc.js";
|
|
19
|
+
import { a as toIndexedDbChainTargetKey, t as normalizeIndexedDbAccountAddress } from "./normalization-CBt413-z.js";
|
|
20
|
+
import { c as zeroizeIssuedWalletRecoveryCodes, d as deriveWalletRecoveryKeyLifecycleId, f as parseRecoveryCodeReservationId, i as walletRecoverySetRotationWireFromWorkerResultV1, o as deriveRecoveryCodeLocatorV1FromBytes, r as walletRecoveryEcdsaPossessionChallengeDigestB64uV1, s as issueWalletRecoveryCodes, t as parseWalletRecoveryEcdsaPossessionChallengeV1 } from "./wallet-recovery-BX61-79p.js";
|
|
21
|
+
import { A as storeWalletMixedRegistrationData$1, C as storeWalletEcdsaSignerRecords$1, D as storeWalletEmailOtpEcdsaSignerRecords$1, E as storeWalletEmailOtpEcdsaRegistrationData$1, F as getLastSelectedNearAccount, I as getNearAccountProjection, M as WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND, O as storeWalletEmailOtpEd25519RegistrationData$1, S as storeWalletEcdsaRecoverySignerRecords$1, T as storeWalletEd25519RegistrationData$1, _ as rollbackWalletEd25519SignerRegistration$1, a as getLastUser$1, b as storeAuthenticator$1, c as hasPasskeyCredential$1, g as rollbackUserRegistration$1, i as getAllUsers$1, k as storeWalletEmailOtpMixedRegistrationData$1, l as nearAuthenticatorsByAccount$1, n as finalizeWalletEcdsaRegistration$1, o as getUserBySignerSlot$1, r as finalizeWalletEd25519SignerRegistration$1, s as getWalletNearProvisioningState$1, t as activateAuthenticatedWalletState$1, v as setLastUser$1, w as storeWalletEd25519RecoveryRegistrationData$1, x as storeUserData$1, y as setWalletNearProvisioningState$1 } from "./accountLifecycle-zthG08aC.js";
|
|
22
|
+
import { t as toAccountId } from "./accountIds-DhIPGOSN.js";
|
|
23
|
+
import { $ as parseLinkedDeviceListRequestV1, At as serializeQrLinkedDeviceSessionPayloadV5, Ct as parseLinkedDeviceOwnerAuthorizationRequestV1, D as parseSigningWorkerParticipantRecordV1, Dt as parseLinkedDeviceTargetPreparationRequestV1, E as parseLaneParticipantBindingDigestB64u, Et as parseLinkedDeviceTargetCredentialRegistrationResultV1, F as buildWalletIdentity, Ft as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, G as computeWalletSessionInstallationReceiptDigestB64u, H as LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, Ht as ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1, I as nearAccountBindingFromRaw, J as parseLocalAuthorityActivationFinalAckV1, K as computeWalletSessionOperationCredentialDigestB64u, Kt as ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1, N as buildPasskeyAuthScope, Nt as parseLinkedDeviceEd25519SourcePreservingReservationV1, Ot as parseLinkedDeviceTargetPreparationV1, P as buildPasskeyWalletAuthMethodBinding, Pt as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, Q as parseLinkedDeviceWalletSessionCredentialDeliveryV1, R as parseRpId, Rt as ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, St as parseLinkedDeviceEmailOtpVerificationResultV1, T as parseLaneHolderParticipantRecordV1, Tt as parseLinkedDeviceSessionClaimV1, U as computeLinkedDevicePublicKeyDigestV1, V as LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, Vt as ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1, W as computeLinkedDeviceTargetPreparationDigestV1, Wt as ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1, X as assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1, Y as parseLocalAuthorityInstallationReceiptV1, Z as parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, _ as resolveThresholdSigningRootBindingFromRecord, _n as parseLinkedDeviceEd25519ExportRootPackageV1, _t as parseLinkedDeviceEmailOtpChallengeResultV1, a as buildEvmFamilyEcdsaWalletKey, an as parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, at as buildLinkedDeviceSessionCancelClaimedRequestV1, bn as serializeLinkedDeviceEd25519ExportRootTransferBindingV1, bt as parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, c as buildResolvedEvmFamilyEcdsaKey, cn as parseRouterAbEd25519YaoRegistrationActivationResultV1, ct as buildLinkedDeviceTargetCredentialRegistrationV1, d as deriveEvmFamilyKeyFingerprint, dt as parseLinkSessionProjectionV1, et as parseLinkedDeviceListResultV1, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, ft as parseLinkSessionTransportEventV1, gn as buildLinkedDeviceEd25519ExportRootTransferBindingV1, gt as parseLinkedDeviceEmailOtpChallengeResendRequestV1, hn as LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1, ht as parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1, i as buildEvmFamilyEcdsaSessionLanePolicy, in as parseRouterAbEd25519YaoRecoveryActivationResultV1, it as buildLinkedDeviceApprovalV1, jt as parseCommittedAuthorityPackagesV1, k as buildEmailOtpWalletAuthMethodBinding, kt as parseQrLinkedDeviceSessionPayloadV5, lt as buildQrLinkedDeviceSessionPayloadV5, m as evmFamilyEcdsaWalletKeyToIdentity, mt as parseLinkedDeviceApprovalResultV1, n as buildBaseEvmFamilyEcdsaKeyIdentity, nn as parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1, nt as parseLinkedDeviceRevokeResultV1, ot as buildLinkedDeviceSessionCancelUnclaimedRequestV1, p as deriveEvmFamilySigningKeySlotId$1, pn as deriveRouterAbEd25519YaoApplicationBindingDigestV1, pt as parseLinkedDeviceApprovalDeliveryV1, q as parseActivateInstalledAuthorityResultV1, qt as ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1, r as buildEvmFamilyEcdsaRecoveredMaterialLanePolicy, rn as parseRouterAbEd25519YaoRecoveryActivationReceiptV1, s as buildPasskeyEcdsaAuthBinding, st as buildLinkedDeviceSessionClaimRequestV1, t as assertMatchingVerifiedEcdsaPublicFacts, tn as parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1, tt as parseLinkedDeviceRevokeRequestV1, u as deriveEvmFamilyEcdsaKeyHandle, un as parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1, ut as parseLinkDevicePublicKeyB64u, v as resolveThresholdSigningRootBindingFromRuntimePolicyScope, vn as parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u, vt as parseLinkedDeviceEmailOtpChallengeStartRequestV1, w as parseOwnerLaneParticipantContinuityV1, wt as parseLinkedDeviceOwnerAuthorizationSourceV1, x as toRpId, xn as assertNeverLinkSessionStateV1, xt as parseLinkedDeviceEmailOtpVerificationGrantV1, y as toEvmFamilyEcdsaKeyHandle, yn as parseLinkedDeviceEd25519ExportRootRecipientV1, yt as parseLinkedDeviceEmailOtpChallengeVerifyRequestV1 } from "./evmFamilyEcdsaIdentity-CqGafQsI.js";
|
|
24
|
+
import { C as computeWalletAuthMethodRevokeOperationFingerprintV1, E as parseExactAdministeredSignerManifestV1, S as buildWalletAuthMethodRecordV2, T as sameWalletAuthMethodRecordV2, d as parseWalletSignerActivationSetV1, f as replaceActiveWalletAuthorityEd25519MaterialActivationV1, n as computeWalletSignerActivationSetDigestB64u, o as isActiveRecoveredWalletAuthorityV1, r as encodeWalletSignerActivationSetV1, t as computeWalletAuthorityDigestB64u, w as parseWalletAuthMethodRecordV2 } from "./walletAuthority-DD9T25F6.js";
|
|
25
|
+
import "./encoders-D8d07vpx.js";
|
|
26
|
+
import { a as parseNearEd25519SigningKeyId, i as nearEd25519SigningKeyIdFromString, o as walletIdFromString, r as createServerAllocatedWalletId } from "./registrationIds-DLSdEKSv.js";
|
|
27
|
+
import { a as buildEmailOtpEnvelopeFactor, c as buildPasskeyEnvelopeFactor, d as parsePasskeyCustodyEnvelopeRecord, h as isWalletCustodySeedBinding, i as buildActiveEnvelopeLifecycle, l as custodyEnvelopeBindingJsonV1, m as buildEd25519YaoClientRootBinding, o as buildMethodBoundEnvelopeOwnership, s as buildPasskeyCustodyEnvelopeRecord } from "./passkey-custody-UUHbC0pk.js";
|
|
28
|
+
import { a as parseEcdsaRoleLocalPersistedMaterialRef, d as parseEcdsaRelayerKeyId, f as parseSigningSessionSealKeyVersion, i as parseEcdsaRoleLocalMaterialHandle, l as parseEcdsaClientVerifyingShareB64u, n as parseEcdsaRoleLocalBindingDigest, r as parseEcdsaRoleLocalDurableMaterialRef, s as parseEcdsaThresholdKeyId, u as parseEcdsaKeyHandle } from "./keyMaterialBrands-CogGAAZn.js";
|
|
29
|
+
import { a as SIGNING_SESSION_EXPIRY_DETECTION_SOURCES, d as createLinkDeviceFlowEvent, f as createNearProvisioningStateChangedEvent, g as createUnlockFlowEvent, h as createSigningSessionExpiredEvent, i as RegistrationEventPhase, l as createAccountSyncFlowEvent, m as createSigningFlowEvent, n as KeyExportEventPhase, o as SigningEventPhase, p as createRegistrationFlowEvent, r as LinkDeviceEventPhase, s as UnlockEventPhase, t as AccountSyncEventPhase, u as createKeyExportFlowEvent } from "./sdkSentEvents-MqDkbQg1.js";
|
|
30
|
+
import { M as parseWalletAuthorityLinkedSignerMaterialRecordV1, a as loadWalletCustodyEd25519MaterialV1, b as walletSessionAuthorizations, d as configureIndexedDB, f as createIndexedDBNonceLaneCoordinationStore, g as IndexedDbEcdsaCapabilityManifestStore, h as readEmailOtpProviderSubjectForWalletV1, i as deleteWalletCustodyEd25519MaterialV1, j as openWalletAuthorityLinkedSignerMaterialV1, k as computeWalletEcdsaKeyFactsInventoryChallengeDigestB64u, l as storeAccountKeyMaterial, m as publishEd25519YaoPublicCapabilityReferenceAndLane, n as importWalletCustodyEcdsaContinuity, o as persistWalletCustodyEd25519MaterialV1, p as IndexedDbEd25519YaoPublicCapabilityReferenceStore, s as getAccountKeyMaterial, t as copyWalletCustodyEcdsaContinuityToAuthMethod, u as IndexedDBManager, y as WalletSessionAuthorizationUpgradeRequiredError } from "./walletCustodyEcdsaContinuity-CF4bv9OI.js";
|
|
31
|
+
import { t as parseSignerSlot } from "./signerSlot-_ovonwVX.js";
|
|
32
|
+
import "./keccak-DUL3d8SF.js";
|
|
33
|
+
import { a as SIGNING_SESSION_SEAL_ALG, l as parseRouterAbEd25519NormalSigningState, n as PASSKEY_PRF_SECOND_SALT_V1, o as SIGNING_SESSION_SEAL_GROUP_ID, r as ROUTER_AB_ED25519_NORMAL_SIGNING_STATE_KIND, t as PASSKEY_PRF_FIRST_SALT_V1 } from "./signingSessionSeal-Cu-GHm6y.js";
|
|
34
|
+
import { c as registrationNearEd25519BranchKey, d as sponsoredNamedNearAccountProvisioning, i as implicitNearAccountProvisioning, t as NEAR_ED25519_YAO_KEY_VERSION_V1 } from "./registrationSignerPlan-DhV8VAob.js";
|
|
35
|
+
import { r as computeAddAuthMethodIntentDigestB64u } from "./registrationIntent-4zwk16zQ.js";
|
|
36
|
+
import { c as signingLaneAuthMethod, n as SigningOperationIntent, r as SigningSessionIds, s as signingLaneAuthBindingKey } from "./types-Dx9fczU7.js";
|
|
37
|
+
import { t as demoEmailOtpCodeFromDelivery } from "./challengeDelivery-DZtopOAG.js";
|
|
38
|
+
import { _ as isWorkerError, a as planSigningSession, b as parseEmailOtpEcdsaExportWorkerIssuedSessionHandle, c as buildThresholdEd25519WebAuthnPrfSecretSource, d as nearOperationStepUpPreparationPort, f as deriveThresholdEd25519ClientVerifyingShareWasm, g as DEFAULT_CONFIRMATION_CONFIG, h as buildNearMessageDisplayModel, i as createSigningPlannerDecisionTraceEvent, l as localPrfFirstForEd25519WalletSessionMintAuthorization, m as buildNearDisplayModel, o as parseAndValidateRegistrationCredentialConfirmationPayload, p as getLastLoggedInSignerSlot, r as withThresholdEd25519CommitQueue, s as nearImplicitAccountFundingPort, t as signNear, u as mintEd25519WalletSession, v as isWorkerProgress, x as parseEmailOtpWorkerIssuedSessionHandle, y as isWorkerSuccess } from "./signNear-Bmb2fj_a.js";
|
|
39
|
+
import { t as executeWorkerOperation } from "./executeWorkerOperation-Cl9whMK7.js";
|
|
40
|
+
import { A as thresholdEcdsaRoleLocalAdmitPresignatureWasm, B as EcdsaPresignClientRequestType, C as prepareEcdsaClientBootstrapCommandWasm, D as storeEcdsaRoleLocalSigningMaterialWasm, E as signWalletRecoveryEcdsaMaterialPossessionProofWasm, F as thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, H as WorkerControlMessage, I as thresholdEcdsaRoleLocalPresignSessionStepWasm, L as thresholdEcdsaRoleLocalReservePresignatureWasm, M as thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, N as thresholdEcdsaRoleLocalDestroyPresignatureWasm, O as storeLinkedDeviceEcdsaHolderMaterialWasm, P as thresholdEcdsaRoleLocalPresignSessionAbortWasm, R as verifyRouterAbEcdsaRegistrationClientProofsWasm, S as persistInitialCanonicalEcdsaActivationWasm, T as reconcileCanonicalEcdsaActivationWasm, U as getSignerWorkerOperationCoreCode, V as SignerWorkerOperationError, W as getSignerWorkerOperationErrorCode, _ as finalizeEcdsaClientBootstrapCommandWasm, a as clearRouterAbEcdsaDerivationClientPresignaturesForWallet, b as finalizeRouterAbEcdsaRegistrationActivationWasm, c as waitForRouterAbEcdsaDerivationClientPresignaturePoolReady, d as closeRouterAbEcdsaRegistrationCeremonyWasm, f as createEcdsaHolderOrdinaryExportRequestWasm, g as destroyLinkedDeviceEcdsaHolderMaterialsWasm, h as destroyLinkedDeviceEcdsaHolderMaterialWasm, i as clearAllRouterAbEcdsaDerivationClientPresignatures, j as thresholdEcdsaRoleLocalCommitPresignatureWasm, k as thresholdEcdsaListAvailablePresignaturesWasm, l as clearLinkedDeviceEcdsaHolderMaterialsWasm, m as createRouterAbEcdsaRegistrationCeremonyWasm, o as resolveRouterAbEcdsaDerivationPresignaturePoolPolicy, p as createRouterAbEcdsaPostRegistrationCeremonyWasm, r as createLinkedHolderClientSigningMaterialSource, s as scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill, u as closeRouterAbEcdsaPostRegistrationCeremonyWasm, v as finalizeEcdsaHolderOrdinaryExportWasm, w as prepareLinkedDeviceEcdsaSourceContributionWasm, x as openEcdsaRoleLocalSigningMaterialWasm, y as finalizeRouterAbEcdsaExplicitExportWasm, z as EcdsaDerivationClientCustomRequestType } from "./secp256k1-D-I6Gh4D.js";
|
|
41
|
+
import { c as serializeRegistrationCredentialWithPRF, i as normalizeAuthenticationCredential, l as getPrfFirstB64uFromCredential, n as getPrfSecondSaltV1, o as redactedPasskeyRegistrationCredential, r as isSerializedRegistrationCredential, s as serializeAuthenticationCredentialWithPRF, t as getPrfFirstSaltV1, u as redactCredentialExtensionOutputs } from "./helpers-ZrowMnev.js";
|
|
42
|
+
import { C as validateTempoFeeToken, D as requestParentDomainWebAuthn, E as executeWebAuthnWithParentFallbacksSafari, S as requireTempoFeeTokenPreferenceSigningRequest, T as WindowParentDomainWebAuthnClient, b as parseTempoEvmAddress, d as walletIframeUnlockRequestFromLoginHooks, f as needsExplicitActivation, p as OverlayController, r as parseWalletIframeExactSessionIdentity, x as readTempoFeeTokenPreference, y as buildTempoSetUserTokenRequest } from "./exactSessionState-LWDUXydN.js";
|
|
43
|
+
import { C as buildEcdsaRoleLocalPublicFacts, D as parseEcdsaRoleLocalReadyRecord, E as ecdsaRoleLocalReadyRecordStorageKeyFacts, S as buildEcdsaRoleLocalPasskeyAuthMethod, T as ecdsaRoleLocalReadyRecordStorageKey, k as serializeEcdsaRoleLocalReadyRecord, w as ecdsaRoleLocalReadyRecordMatchesInput, x as buildEcdsaRoleLocalEmailOtpAuthMethod, y as routerAbEcdsaDerivationPublicCapabilitiesEqual } from "./ecdsaCapabilityManifest-DuMs0VtU.js";
|
|
44
|
+
import { i as buildNearAccountRefs } from "./profileAccountProjection-uZVJuBvS.js";
|
|
45
|
+
import { A as activateRouterAbEcdsaPostRegistrationSession, C as requestAddAuthMethodEmailOtpChallenge, E as revokeWalletAuthMethod, O as startWalletAddAuthMethod, _ as fetchWalletEcdsaKeyFactsInventoryWithWebAuthn, a as buildRehydrateMaterialActivationHydrationPlan, b as fundImplicitNearAccountForTesting, g as fetchWalletEcdsaKeyFactsInventoryWithOperationCredential, i as buildBlockedMpcCapabilityHydrationPlan, j as parseProfileContinuityEcdsaWarmKey, l as hasExactKeys, m as createWalletAddAuthMethodIntent, n as nearEd25519YaoRuntimeRef, o as buildUseLiveRuntimeHydrationPlan, r as resolveNearEd25519YaoCapabilityHydrationV1, t as nearEd25519YaoMaterialActivationFromMetadata, u as computeWalletCustodyAdminChallengeDigest, v as finalizeWalletAddAuthMethod } from "./nearEd25519YaoMaterialActivation-B5GecIvq.js";
|
|
46
|
+
import { n as buildRelayerJsonPostRequestInit, r as normalizeRelayerBaseUrl, t as buildBearerAuthorizationHeader } from "./relayerHttp-VC8Holz1.js";
|
|
47
|
+
import { a as exactEd25519SigningLaneIdentity, c as exactSigningLaneIdentityKey, f as nearEd25519SignerBindingFromBoundaryFields, h as parseExactEd25519ExportMaterialIdentity, i as exactEd25519ExportMaterialIdentity, l as exactSigningLaneIdentityMatches, m as parseExactEcdsaSigningLaneIdentity, n as exactEcdsaSigningLaneIdentity, p as nearProtocolProjectionFromExactLane, t as buildEvmFamilyEcdsaSignerBinding, u as exactSigningLaneWalletId } from "./exactSigningLaneIdentity-m6uTXV_A.js";
|
|
48
|
+
import { _ as isEmailOtpPendingSingleUseAuthContext, a as nearEd25519SessionMatchesMaterialActivation, b as laneCandidateStateFromRuntimePolicy, d as buildEmailOtpAuthContextForWalletAuthMethod, f as emailOtpAuthContextConsumedAtMs, g as emailOtpAuthContextRetention, h as emailOtpAuthContextProviderUserId, i as classifyNearEd25519WalletSessionAuthorization, m as emailOtpAuthContextProvider, n as buildAuthorizationRequiredNearEd25519YaoSigningPreparation, p as emailOtpAuthContextEmailHashHex, r as buildAuthorizedNearEd25519YaoSigningPreparation, t as buildActiveNearEd25519WalletSessionAuthorization, u as buildEmailOtpAuthContextForCanonicalWallet, v as isEmailOtpSessionAuthContext, x as selectedEcdsaLane } from "./nearEd25519YaoSigningPreparation-CdOT5RuC.js";
|
|
49
|
+
import { a as throwEmailOtpSigningSessionAuthStateError, i as emailOtpEcdsaBootstrapRouteAuthFromRoutePlan, n as buildEmailOtpSigningSessionRoutePlan, o as buildEmailOtpRoutePlan, r as buildFreshEmailOtpRoutePlan, t as assertEmailOtpSigningSessionAuthLane } from "./routePlan-D59x5xzQ.js";
|
|
50
|
+
import { n as generateSessionId, t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-wqQSjYLn.js";
|
|
51
|
+
import { l as emitSigningSessionFlowFailure, u as emitSigningSessionFlowTrace } from "./trace-DKLQZvec.js";
|
|
52
|
+
import { t as webAuthnPromptCoordinator } from "./webauthnPromptCoordinator-L96oVvLz.js";
|
|
53
|
+
import { a as toActionArgsWasm, t as ActionType } from "./actions-CCvThiKe.js";
|
|
54
|
+
import { A as UserConfirmMessageType, C as getSignIntentDigestSubject, E as getTxCount, M as normalizeConfirmationConfig, S as getNearAccountId, T as getSigningAuthMode, _ as sendConfirmProgress, a as formatNearAccountFundingProgressNotice, b as assertSigningRequestContext, c as collectAuthenticationCredentialForChallengeB64u, d as collectAuthenticationCredentialForWalletChallengeB64u, f as ERROR_MESSAGES, g as sanitizeForPostMessage, h as parseTransactionSummary, i as formatNearAccountFundingNotice, j as UserConfirmationType, m as isUserCancelledUserConfirm, n as createConfirmTxFlowAdapters, o as __isWalletIframeHostMode, p as createUserConfirmScopedWorker, r as mountConfirmUI, s as __setWalletIframeHostMode, t as createConfirmSession, v as sendConfirmResponse, w as getSignTransactionPayload, x as getIntentDigest, y as assertNoForbiddenMainThreadSigningSecrets } from "./adapters-Dli9XAZp.js";
|
|
55
|
+
import { i as orderActionForDigest, n as computeUiIntentDigestFromNep413, r as computeUiIntentDigestFromTxs } from "./intentDigest-CvOSNlCH.js";
|
|
56
|
+
import { r as showWalletRecoveryCodesUi, t as pendingWalletRecoveryCodeBackupRepository } from "./pendingWalletRecoveryCodeBackup-BWluQMbt.js";
|
|
57
|
+
import { t as MinimalNearClient } from "./NearClient-DY4NfHeD.js";
|
|
58
|
+
import { t as createEvmClient } from "./EvmClient-f3gUhS2L.js";
|
|
59
|
+
import { n as resolveAppearanceTheme, o as resolveThemePalette } from "./configHelpers-D1EqxVxg.js";
|
|
60
|
+
import { n as getDefaultCspNonce, t as createCspStylesheetManager } from "./csp-stylesheet-btENhsNp.js";
|
|
61
|
+
import { r as buildConfigsFromEnv } from "./defaultConfigs-D_33pPT9.js";
|
|
62
|
+
import { t as createNonceCoordinator } from "./NonceCoordinator-4XWPhYww.js";
|
|
63
|
+
import { i as resumePendingWalletRecoveries } from "./walletRecoveryCommit-AI1AtIRP.js";
|
|
64
|
+
import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-B7orgq5Z.js";
|
|
65
|
+
import { A as buildCanonicalEvmFamilyEcdsaSigningCapability, B as removeLinkedEcdsaHolderRuntimeV1, C as isOwnerRelinkRequiredError, D as ecdsaRoleLocalPersistedMaterialSource, E as buildPersistedEcdsaRoleLocalMaterial, F as ensureSealedRefreshStartupParityForThresholdEcdsaBootstrap, I as isRetryableSealedRefreshCapabilityFetchError, L as clearLinkedEcdsaHolderRuntimesV1, M as buildExactEcdsaDirectCapabilityRuntime, N as buildExactEvmFamilyWalletSessionAuthorization, O as resolveEcdsaRoleLocalMaterial, P as signingAuthorizationFromPreprocessing, R as installLinkedEcdsaHolderRuntimeV1, S as buildExactPasskeyOwnerLaneScope, T as resolveExactWalletAuthAuthority$1, V as resolveLinkedEcdsaHolderRuntimeV1, _ as requestEmailOtpSigningSessionChallenge$1, a as reportTempoFinalized, b as buildExactEcdsaPasskeyOwnerLaneScope, c as resolveActiveWalletAuthorityEcdsaRuntimeV1, d as createActiveEcdsaCapabilityRuntimeForChainResolver, f as createActiveEcdsaCapabilityRuntimeResolver, g as refreshEmailOtpSigningSession$1, h as buildRouterAbEcdsaDerivationSigningMaterialRef, i as reportTempoDroppedOrReplaced, j as buildEcdsaPreprocessingCapability, k as authorizeEvmFamilyEcdsaSigningCapability, l as issueEcdsaOperationStepUpAuthorization, m as resolveExactEcdsaSealedRuntime, n as reportTempoBroadcastAccepted, o as signEvmFamily, p as resolveExactEcdsaCapabilityRuntime, r as reportTempoBroadcastRejected, t as reconcileTempoNonceLane, u as prepareEcdsaOperationStepUp, v as resolveEmailOtpEcdsaSigningSessionAuth, w as resolveExactOwnerLaneScope, x as buildExactLinkedEmailOtpOwnerLaneScope, y as withThresholdEcdsaSigningQueue, z as listLinkedEcdsaHolderRuntimesV1 } from "./signEvmFamily-C3C97Th-.js";
|
|
66
|
+
import { n as SigningAuthPlanKind } from "./promptText-CuRa_ivd.js";
|
|
67
|
+
import { C as isSigningOperationReviewApprovedStateKind, d as fullWalletLoginRequired, f as invalidWalletSigningMaterial, m as walletSigningMaterialBlockError, p as isWalletSigningStateFailure, v as SigningOperationInteractionEventKind } from "./operationFingerprint-C8Trar4R.js";
|
|
68
|
+
import { f as WalletSessionFailureError, g as WALLET_SESSION_FAILURE_CODES, h as walletSessionFailureFromError, m as walletSessionFailureFromCode } from "./routerAbNormalSigning-CVFEOZ2m.js";
|
|
69
|
+
import { S as resolveThresholdCommitQueueKey, _ as ed25519DurableMaterialLocator, b as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary, d as availableEd25519SigningLaneAuthMethod, f as ecdsaAvailableLaneCandidatesForTarget, g as readAvailableSigningLanes, h as isConcreteAvailableSigningLane, l as activeWalletAuthorityAvailableLaneFromProjection, m as ecdsaAvailableLaneIdentityKey, p as ecdsaAvailableLaneForTarget, u as availableEcdsaSigningLaneAuthMethod, v as materialActivationKey, x as clearThresholdCommitQueue, y as parseWalletSessionAuthorizationBoundary } from "./transactionState-CJ4U8pcl.js";
|
|
70
|
+
import { t as bytesToHex } from "./bytes-qKxKn4gg.js";
|
|
71
|
+
import { c as createEvmNonceBackend, i as PENDING_CHALLENGE_B64U, o as clearIntentDigestPreparation, s as consumeIntentDigestPreparation, t as EvmFamilyEcdsaMaterialSupersededError } from "./signingFlow-SZ8t_lxv.js";
|
|
72
|
+
import { n as removeExportViewerHostIfPresent, t as isExportViewerSessionOpen } from "./export-viewer-host-rWMSQQMP.js";
|
|
73
|
+
import { i as observeTransactionLifecycleReport, n as failTransactionActivity, r as observeTransactionActivity, t as beginTransactionActivity } from "./transaction-activity-CSMCveBn.js";
|
|
74
|
+
import "./jsxRuntime.module-CuH5ZEIA.js";
|
|
75
|
+
import { t as handleRegistrationFlow } from "./registration-DHERU8R_.js";
|
|
76
|
+
import { i as rotateWalletRecoverySet, n as readWalletRecoveryCodeStatus, r as requestWalletCustodyEmailOtpChallenge, t as acknowledgeWalletRecoveryBackup } from "./walletRecoveryRotate-BgLlW5ih.js";
|
|
73
77
|
//#region src/core/walletRuntimePaths/workers.ts
|
|
74
78
|
/**
|
|
75
79
|
* Resolve the base origin for worker scripts.
|
|
@@ -160,7 +164,7 @@ function defaultWorkerPath$1(worker) {
|
|
|
160
164
|
}
|
|
161
165
|
//#endregion
|
|
162
166
|
//#region src/core/platform/signerCoreCommandAdapters.ts
|
|
163
|
-
function requireBase64UrlBytes
|
|
167
|
+
function requireBase64UrlBytes(value, field, byteLength) {
|
|
164
168
|
const normalized = String(value || "").trim();
|
|
165
169
|
if (!normalized) throw new Error(`[signer-core-command] ${field} is required`);
|
|
166
170
|
if (base64UrlDecode(normalized).length !== byteLength) throw new Error(`[signer-core-command] ${field} must decode to ${byteLength} bytes`);
|
|
@@ -182,15 +186,15 @@ function requireSignerCoreCommandString(value, field) {
|
|
|
182
186
|
return normalized;
|
|
183
187
|
}
|
|
184
188
|
function parseDerivationClientSharePublicKey33B64u(value) {
|
|
185
|
-
return requireBase64UrlBytes
|
|
189
|
+
return requireBase64UrlBytes(value, "derivationClientSharePublicKey33B64u", 33);
|
|
186
190
|
}
|
|
187
|
-
function parseRelayerEcdsaDerivationPublicKey33B64u
|
|
188
|
-
return requireBase64UrlBytes
|
|
191
|
+
function parseRelayerEcdsaDerivationPublicKey33B64u(value) {
|
|
192
|
+
return requireBase64UrlBytes(value, "relayerPublicKey33B64u", 33);
|
|
189
193
|
}
|
|
190
|
-
function parsePublicKey33B64u
|
|
191
|
-
return requireBase64UrlBytes
|
|
194
|
+
function parsePublicKey33B64u(value, field) {
|
|
195
|
+
return requireBase64UrlBytes(value, field, 33);
|
|
192
196
|
}
|
|
193
|
-
function parseEthereumAddress
|
|
197
|
+
function parseEthereumAddress(value) {
|
|
194
198
|
const normalized = String(value || "").trim();
|
|
195
199
|
if (!/^0x[0-9a-fA-F]{40}$/.test(normalized)) throw new Error("[signer-core-command] ethereumAddress must be 0x-prefixed 20-byte hex");
|
|
196
200
|
return normalized;
|
|
@@ -229,7 +233,7 @@ function toGeneratedPrepareEcdsaClientBootstrapCommand(input) {
|
|
|
229
233
|
},
|
|
230
234
|
secretSource: {
|
|
231
235
|
kind: "threshold_prf_x_client_base",
|
|
232
|
-
xClientBaseB64u: requireBase64UrlBytes
|
|
236
|
+
xClientBaseB64u: requireBase64UrlBytes(input.secretSource.xClientBaseB64u, "secretSource.xClientBaseB64u", 32)
|
|
233
237
|
}
|
|
234
238
|
};
|
|
235
239
|
}
|
|
@@ -239,14 +243,14 @@ function parseGeneratedPrepareEcdsaClientBootstrapOutput(input) {
|
|
|
239
243
|
return {
|
|
240
244
|
pendingStateBlob: parsePendingStateBlob(input.pendingStateBlob),
|
|
241
245
|
clientBootstrap: {
|
|
242
|
-
contextBinding32B64u: requireBase64UrlBytes
|
|
246
|
+
contextBinding32B64u: requireBase64UrlBytes(input.clientBootstrap.contextBinding32B64u, "contextBinding32B64u", 32),
|
|
243
247
|
derivationClientSharePublicKey33B64u,
|
|
244
248
|
clientShareRetryCounter: input.clientBootstrap.clientShareRetryCounter,
|
|
245
249
|
participantId: 1
|
|
246
250
|
},
|
|
247
251
|
publicFacts: {
|
|
248
252
|
derivationClientSharePublicKey33B64u: parseDerivationClientSharePublicKey33B64u(input.publicFacts.derivationClientSharePublicKey33B64u),
|
|
249
|
-
clientVerifyingShareB64u: parsePublicKey33B64u
|
|
253
|
+
clientVerifyingShareB64u: parsePublicKey33B64u(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u")
|
|
250
254
|
}
|
|
251
255
|
};
|
|
252
256
|
}
|
|
@@ -267,12 +271,12 @@ function parseGeneratedFinalizeEcdsaClientBootstrapOutput(input) {
|
|
|
267
271
|
return {
|
|
268
272
|
stateBlob: parseReadyStateBlob(input.stateBlob),
|
|
269
273
|
publicFacts: {
|
|
270
|
-
contextBinding32B64u: requireBase64UrlBytes
|
|
274
|
+
contextBinding32B64u: requireBase64UrlBytes(input.publicFacts.contextBinding32B64u, "contextBinding32B64u", 32),
|
|
271
275
|
derivationClientSharePublicKey33B64u: parseDerivationClientSharePublicKey33B64u(input.publicFacts.derivationClientSharePublicKey33B64u),
|
|
272
|
-
clientVerifyingShareB64u: parsePublicKey33B64u
|
|
273
|
-
relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u
|
|
274
|
-
groupPublicKey33B64u: parsePublicKey33B64u
|
|
275
|
-
ethereumAddress: parseEthereumAddress
|
|
276
|
+
clientVerifyingShareB64u: parsePublicKey33B64u(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u"),
|
|
277
|
+
relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u(input.publicFacts.relayerPublicKey33B64u),
|
|
278
|
+
groupPublicKey33B64u: parsePublicKey33B64u(input.publicFacts.groupPublicKey33B64u, "groupPublicKey33B64u"),
|
|
279
|
+
ethereumAddress: parseEthereumAddress(input.publicFacts.ethereumAddress)
|
|
276
280
|
}
|
|
277
281
|
};
|
|
278
282
|
}
|
|
@@ -301,22 +305,6 @@ function signerCryptoCommandFailure(code, message) {
|
|
|
301
305
|
message
|
|
302
306
|
};
|
|
303
307
|
}
|
|
304
|
-
function requiredString$1(value, field) {
|
|
305
|
-
if (typeof value !== "string") throw new Error(`ECDSA client bootstrap state is missing ${field}`);
|
|
306
|
-
const normalized = value.trim();
|
|
307
|
-
if (!normalized) throw new Error(`ECDSA client bootstrap state is missing ${field}`);
|
|
308
|
-
return normalized;
|
|
309
|
-
}
|
|
310
|
-
function requiredNonNegativeInteger(value, field) {
|
|
311
|
-
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new Error(`${field} must be a non-negative safe integer`);
|
|
312
|
-
return value;
|
|
313
|
-
}
|
|
314
|
-
function requireBase64UrlBytes(value, field, byteLength) {
|
|
315
|
-
const normalized = String(value || "").trim();
|
|
316
|
-
if (!normalized) throw new Error(`${field} is required`);
|
|
317
|
-
if (base64UrlDecode(normalized).length !== byteLength) throw new Error(`${field} must decode to ${byteLength} bytes`);
|
|
318
|
-
return normalized;
|
|
319
|
-
}
|
|
320
308
|
function decodeBase64UrlArrayBuffer(value) {
|
|
321
309
|
const decoded = base64UrlDecode(value);
|
|
322
310
|
const out = new ArrayBuffer(decoded.byteLength);
|
|
@@ -352,17 +340,6 @@ function browserPasskeyCreationOptions(options) {
|
|
|
352
340
|
} } }
|
|
353
341
|
};
|
|
354
342
|
}
|
|
355
|
-
function parsePublicKey33B64u(value, field) {
|
|
356
|
-
return requireBase64UrlBytes(value, field, 33);
|
|
357
|
-
}
|
|
358
|
-
function parseRelayerEcdsaDerivationPublicKey33B64u(value) {
|
|
359
|
-
return parsePublicKey33B64u(value, "ECDSA relayer DERIVATION public key");
|
|
360
|
-
}
|
|
361
|
-
function parseEthereumAddress(value) {
|
|
362
|
-
const normalized = String(value || "").trim();
|
|
363
|
-
if (!/^0x[0-9a-fA-F]{40}$/.test(normalized)) throw new Error("ECDSA relayer public identity has invalid ethereumAddress");
|
|
364
|
-
return normalized;
|
|
365
|
-
}
|
|
366
343
|
function isNativeBindingFailureMessage(message) {
|
|
367
344
|
return /wasm (initialization|initialize|instantiation)|webassembly|module_or_path|failed to (load|compile|instantiate) wasm|derivation client wasm initialization failed/i.test(message);
|
|
368
345
|
}
|
|
@@ -388,17 +365,6 @@ function mapFinalizeEcdsaCommandError(error) {
|
|
|
388
365
|
if (/relayer|public identity|group public key|ethereum address|threshold public key/i.test(message)) return signerCryptoCommandFailure("public_identity_mismatch", message);
|
|
389
366
|
return signerCryptoCommandFailure("invalid_pending_state", message);
|
|
390
367
|
}
|
|
391
|
-
function parseRelayerPublicIdentity(input) {
|
|
392
|
-
if (input === null || typeof input !== "object" || Array.isArray(input)) throw new Error("ECDSA relayer public identity must be an object");
|
|
393
|
-
if (Object.keys(input).sort().join(",") !== "ethereumAddress,groupPublicKey33B64u,relayerKeyId,relayerPublicKey33B64u,relayerShareRetryCounter") throw new Error("ECDSA relayer public identity fields are invalid");
|
|
394
|
-
return {
|
|
395
|
-
relayerKeyId: requiredString$1(Reflect.get(input, "relayerKeyId"), "relayerKeyId"),
|
|
396
|
-
relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u(requiredString$1(Reflect.get(input, "relayerPublicKey33B64u"), "relayerPublicKey33B64u")),
|
|
397
|
-
groupPublicKey33B64u: parsePublicKey33B64u(requiredString$1(Reflect.get(input, "groupPublicKey33B64u"), "groupPublicKey33B64u"), "groupPublicKey33B64u"),
|
|
398
|
-
ethereumAddress: parseEthereumAddress(Reflect.get(input, "ethereumAddress")),
|
|
399
|
-
relayerShareRetryCounter: requiredNonNegativeInteger(Reflect.get(input, "relayerShareRetryCounter"), "relayerShareRetryCounter")
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
368
|
function createBrowserDurableRecordStore(indexedDB) {
|
|
403
369
|
return {
|
|
404
370
|
kind: "durable_record_store",
|
|
@@ -745,11 +711,6 @@ function createBrowserSignerCryptoPort(workerCtx) {
|
|
|
745
711
|
},
|
|
746
712
|
async finalizeEcdsaClientBootstrap(input) {
|
|
747
713
|
if (input.pendingStateBlob.kind !== "ecdsa_role_local_pending_state_blob_v1" || input.pendingStateBlob.curve !== "secp256k1" || input.pendingStateBlob.encoding !== "base64url" || input.pendingStateBlob.producer !== "signer_core") return signerCryptoCommandFailure("invalid_pending_state", "ECDSA client bootstrap pending blob envelope is invalid");
|
|
748
|
-
try {
|
|
749
|
-
parseRelayerPublicIdentity(input.relayerPublicIdentity);
|
|
750
|
-
} catch (error) {
|
|
751
|
-
return signerCryptoCommandFailure("invalid_relayer_public_identity", errorMessage(error));
|
|
752
|
-
}
|
|
753
714
|
if (!workerCtx) return signerCryptoInvocationFailure("unavailable", "ECDSA client bootstrap worker context is unavailable");
|
|
754
715
|
try {
|
|
755
716
|
return {
|
|
@@ -891,9 +852,8 @@ let DeviceLinkingErrorCode = /* @__PURE__ */ function(DeviceLinkingErrorCode) {
|
|
|
891
852
|
DeviceLinkingErrorCode["INSUFFICIENT_BALANCE"] = "INSUFFICIENT_BALANCE";
|
|
892
853
|
DeviceLinkingErrorCode["REGISTRATION_FAILED"] = "REGISTRATION_FAILED";
|
|
893
854
|
/**
|
|
894
|
-
*
|
|
895
|
-
*
|
|
896
|
-
* wallet and scans again.
|
|
855
|
+
* Device 1 is not unlocked with the custody capability linking needs. The
|
|
856
|
+
* QR flow never prompts; the user unlocks the wallet and scans again.
|
|
897
857
|
*/
|
|
898
858
|
DeviceLinkingErrorCode["WALLET_UNLOCK_REQUIRED"] = "WALLET_UNLOCK_REQUIRED";
|
|
899
859
|
/**
|
|
@@ -950,10 +910,9 @@ var Ed25519YaoPageLifecycleOwner = class {
|
|
|
950
910
|
* this run registered under, and the Router's activation result.
|
|
951
911
|
*
|
|
952
912
|
* **Every identity here comes from the Router's receipt, not from this side.**
|
|
953
|
-
* That matters most for `materialActivation`:
|
|
954
|
-
*
|
|
955
|
-
*
|
|
956
|
-
* for state Refactor 90 owns.
|
|
913
|
+
* That matters most for `materialActivation`: the boundary that mints it is the
|
|
914
|
+
* Router, exactly as on the PRF path. Nothing here invents one — a locally
|
|
915
|
+
* minted activation ref would give that state a second owner.
|
|
957
916
|
*/
|
|
958
917
|
function walletCustodyEd25519ActiveClientMetadataV1(input) {
|
|
959
918
|
let raw;
|
|
@@ -1385,35 +1344,7 @@ async function recoverWalletCustodyManifestV1(input) {
|
|
|
1385
1344
|
};
|
|
1386
1345
|
}
|
|
1387
1346
|
//#endregion
|
|
1388
|
-
//#region src/core/signingEngine/session/sealedRecovery/materialActivationKey.ts
|
|
1389
|
-
function ed25519DurableMaterialLocator(args) {
|
|
1390
|
-
return {
|
|
1391
|
-
kind: "ed25519_durable_material",
|
|
1392
|
-
authMethod: args.authMethod,
|
|
1393
|
-
materialActivation: args.materialActivation
|
|
1394
|
-
};
|
|
1395
|
-
}
|
|
1396
|
-
function materialActivationKey(activation) {
|
|
1397
|
-
return [
|
|
1398
|
-
activation.activationId,
|
|
1399
|
-
activation.capability,
|
|
1400
|
-
activation.materialOwner,
|
|
1401
|
-
activation.keyBinding,
|
|
1402
|
-
activation.lifecycleBinding,
|
|
1403
|
-
activation.signingWorker
|
|
1404
|
-
].map((part) => encodeURIComponent(String(part))).join(":");
|
|
1405
|
-
}
|
|
1406
|
-
//#endregion
|
|
1407
1347
|
//#region src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.ts
|
|
1408
|
-
function requireRecord$3(value, label) {
|
|
1409
|
-
if (!isPlainObject(value)) throw new Error(`${label} must be an object`);
|
|
1410
|
-
return value;
|
|
1411
|
-
}
|
|
1412
|
-
function requireString$3(value, label) {
|
|
1413
|
-
const parsed = typeof value === "string" ? value.trim() : "";
|
|
1414
|
-
if (!parsed) throw new Error(`${label} is required`);
|
|
1415
|
-
return parsed;
|
|
1416
|
-
}
|
|
1417
1348
|
function requirePositiveInteger$2(value, label) {
|
|
1418
1349
|
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} must be a positive integer`);
|
|
1419
1350
|
return value;
|
|
@@ -1565,31 +1496,28 @@ async function parseJsonResponseOrNull(response) {
|
|
|
1565
1496
|
return null;
|
|
1566
1497
|
}
|
|
1567
1498
|
}
|
|
1568
|
-
function sameRuntimePolicyScope(left, right) {
|
|
1569
|
-
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
1570
|
-
}
|
|
1571
1499
|
async function parseWarmRecoveryDescriptor(args) {
|
|
1572
1500
|
const record = args.record;
|
|
1573
1501
|
const response = args.response;
|
|
1574
1502
|
exactResponseKeys(response, WARM_RECOVERY_RESPONSE_KEYS);
|
|
1575
1503
|
if (response.kind !== "router_ab_ed25519_yao_v2_session_bootstrap_v1") throw new Error("warm recovery bootstrap response kind is invalid");
|
|
1576
1504
|
const restore = record.ed25519Restore;
|
|
1577
|
-
const walletId =
|
|
1578
|
-
const nearAccountId =
|
|
1579
|
-
const nearEd25519SigningKeyId =
|
|
1505
|
+
const walletId = requireTrimmedString(response.walletId, "response.walletId");
|
|
1506
|
+
const nearAccountId = requireTrimmedString(response.nearAccountId, "response.nearAccountId");
|
|
1507
|
+
const nearEd25519SigningKeyId = requireTrimmedString(response.nearEd25519SigningKeyId, "response.nearEd25519SigningKeyId");
|
|
1580
1508
|
const signerSlot = requirePositiveInteger$2(response.signerSlot, "response.signerSlot");
|
|
1581
|
-
const thresholdSessionId =
|
|
1582
|
-
const signingWorkerId =
|
|
1509
|
+
const thresholdSessionId = requireTrimmedString(response.thresholdSessionId, "response.thresholdSessionId");
|
|
1510
|
+
const signingWorkerId = requireTrimmedString(response.signingWorkerId, "response.signingWorkerId");
|
|
1583
1511
|
const thresholdExpiresAtMs = requirePositiveInteger$2(response.thresholdExpiresAtMs, "response.thresholdExpiresAtMs");
|
|
1584
1512
|
const participantIds = requireParticipantIds$1(response.participantIds);
|
|
1585
|
-
const responseRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$
|
|
1586
|
-
const sealedRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$
|
|
1513
|
+
const responseRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$1(response.runtimePolicyScope, "response.runtimePolicyScope"));
|
|
1514
|
+
const sealedRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$1(restore.runtimePolicyScope, "ed25519Restore.runtimePolicyScope"));
|
|
1587
1515
|
const routerAbNormalSigning = parseRouterAbEd25519NormalSigningState(response.routerAbNormalSigning);
|
|
1588
1516
|
const walletSessionId = parseWalletSessionId(response.walletSessionId);
|
|
1589
1517
|
const quotaId = parseMpcWalletSigningQuotaId(response.quotaId);
|
|
1590
1518
|
const capability = parseEd25519YaoRecoveryCapabilityV1(response.capability);
|
|
1591
1519
|
const walletSessionToken = args.authorization.operationCredential.token;
|
|
1592
|
-
if (!walletSessionId.ok || !quotaId.ok || args.expectedAuthorityRef.walletId !== record.walletId || String(walletSessionId.value) !== String(args.authorization.operationCredential.walletSessionId) || String(quotaId.value) !== String(args.authorization.record.quotaId) || !routerAbNormalSigning || walletId !== record.walletId || nearAccountId !== restore.nearAccountId || nearEd25519SigningKeyId !== restore.nearEd25519SigningKeyId || signerSlot !== restore.signerSlot || thresholdSessionId !== String(args.expectedThresholdSessionId) || !walletSessionToken || signingWorkerId !== restore.relayerKeyId || signingWorkerId !== restore.routerAbNormalSigning.signingWorkerId || routerAbNormalSigning.signingWorkerId !== signingWorkerId || record.expiresAtMs > thresholdExpiresAtMs || participantIds[0] !== restore.participantIds[0] || participantIds[1] !== restore.participantIds[1] || !sameRuntimePolicyScope(responseRuntimePolicyScope, sealedRuntimePolicyScope)) throw new Error("warm recovery bootstrap does not match the exact sealed Ed25519 lane");
|
|
1520
|
+
if (!walletSessionId.ok || !quotaId.ok || args.expectedAuthorityRef.walletId !== record.walletId || String(walletSessionId.value) !== String(args.authorization.operationCredential.walletSessionId) || String(quotaId.value) !== String(args.authorization.record.quotaId) || !routerAbNormalSigning || walletId !== record.walletId || nearAccountId !== restore.nearAccountId || nearEd25519SigningKeyId !== restore.nearEd25519SigningKeyId || signerSlot !== restore.signerSlot || thresholdSessionId !== String(args.expectedThresholdSessionId) || !walletSessionToken || signingWorkerId !== restore.relayerKeyId || signingWorkerId !== restore.routerAbNormalSigning.signingWorkerId || routerAbNormalSigning.signingWorkerId !== signingWorkerId || record.expiresAtMs > thresholdExpiresAtMs || participantIds[0] !== restore.participantIds[0] || participantIds[1] !== restore.participantIds[1] || !sameRuntimePolicyScope$1(responseRuntimePolicyScope, sealedRuntimePolicyScope)) throw new Error("warm recovery bootstrap does not match the exact sealed Ed25519 lane");
|
|
1593
1521
|
if (!signingRootScopeFromRuntimePolicyScope(responseRuntimePolicyScope)) throw new Error("warm recovery bootstrap signing-root scope is invalid");
|
|
1594
1522
|
if (!walletSessionToken) throw new Error("[SigningEngine][near] active Wallet Session authorization is unavailable");
|
|
1595
1523
|
const descriptor = {
|
|
@@ -1600,7 +1528,7 @@ async function parseWarmRecoveryDescriptor(args) {
|
|
|
1600
1528
|
signerSlot,
|
|
1601
1529
|
operationalPublicKey: `ed25519:${base58Encode(Uint8Array.from(capability.registeredPublicKey))}`,
|
|
1602
1530
|
relayerKeyId: signingWorkerId,
|
|
1603
|
-
credentialIdB64u:
|
|
1531
|
+
credentialIdB64u: requireTrimmedString(restore.credentialIdB64u, "ed25519Restore.credentialIdB64u"),
|
|
1604
1532
|
session: {
|
|
1605
1533
|
sessionKind: "opaque",
|
|
1606
1534
|
walletSessionToken,
|
|
@@ -1627,7 +1555,7 @@ async function resolvePasskeyEd25519YaoExportContextV1(input, runtime) {
|
|
|
1627
1555
|
};
|
|
1628
1556
|
const walletId = parseWalletId(exactRecord.record.walletId);
|
|
1629
1557
|
if (!walletId.ok) throw new Error("[SigningEngine][near] sealed Ed25519 wallet identity is invalid");
|
|
1630
|
-
const credentialIdB64u =
|
|
1558
|
+
const credentialIdB64u = requireTrimmedString(exactRecord.record.ed25519Restore.credentialIdB64u, "ed25519Restore.credentialIdB64u");
|
|
1631
1559
|
let expectedAuthorityRef;
|
|
1632
1560
|
try {
|
|
1633
1561
|
expectedAuthorityRef = await runtime.resolveExactPasskeyWalletAuthAuthorityRef({
|
|
@@ -1812,7 +1740,7 @@ const WALLET_KEY_LIFECYCLE_FIELDS = [
|
|
|
1812
1740
|
"retiredAtMs",
|
|
1813
1741
|
"compromisedAtMs"
|
|
1814
1742
|
];
|
|
1815
|
-
const
|
|
1743
|
+
const SIGNING_LANE_RECORD_BASE_FIELDS = [...[
|
|
1816
1744
|
"kind",
|
|
1817
1745
|
"walletId",
|
|
1818
1746
|
"walletKeyId",
|
|
@@ -1820,9 +1748,7 @@ const SIGNING_LANE_REFERENCE_FIELDS = [
|
|
|
1820
1748
|
"laneKind",
|
|
1821
1749
|
"laneShareEpoch",
|
|
1822
1750
|
"participantBindingDigestB64u"
|
|
1823
|
-
];
|
|
1824
|
-
[...SIGNING_LANE_REFERENCE_FIELDS];
|
|
1825
|
-
const SIGNING_LANE_RECORD_BASE_FIELDS = [...SIGNING_LANE_REFERENCE_FIELDS, "lifecycle"];
|
|
1751
|
+
], "lifecycle"];
|
|
1826
1752
|
const OWNER_AUTH_SIGNING_LANE_FIELDS = [
|
|
1827
1753
|
...SIGNING_LANE_RECORD_BASE_FIELDS,
|
|
1828
1754
|
"walletAuthMethodId",
|
|
@@ -1868,10 +1794,6 @@ function signingLaneRecordFields(laneKind) {
|
|
|
1868
1794
|
case "delegated_execution": return DELEGATED_SIGNING_LANE_FIELDS;
|
|
1869
1795
|
}
|
|
1870
1796
|
}
|
|
1871
|
-
function requireResult(result, label) {
|
|
1872
|
-
if (result.ok) return result.value;
|
|
1873
|
-
throw new Error(`${label} ${result.error.message}`);
|
|
1874
|
-
}
|
|
1875
1797
|
function parseRequiredDomainId(raw, label) {
|
|
1876
1798
|
if (raw === void 0 || raw === null) throw new Error(`${label} is required`);
|
|
1877
1799
|
if (typeof raw !== "string") throw new Error(`${label} must be a string`);
|
|
@@ -1915,7 +1837,7 @@ function parseSigningLaneKind(raw, label) {
|
|
|
1915
1837
|
}
|
|
1916
1838
|
}
|
|
1917
1839
|
function parseWalletKeyLifecycleState(raw, label) {
|
|
1918
|
-
const record = requireRecord$
|
|
1840
|
+
const record = requireRecord$1(raw, label);
|
|
1919
1841
|
rejectUnknownFields(record, WALLET_KEY_LIFECYCLE_FIELDS, label, WALLET_KEY_LIFECYCLE_FIELDS);
|
|
1920
1842
|
switch (record.state) {
|
|
1921
1843
|
case "active":
|
|
@@ -1931,7 +1853,7 @@ function parseWalletKeyLifecycleState(raw, label) {
|
|
|
1931
1853
|
}
|
|
1932
1854
|
}
|
|
1933
1855
|
function parseSigningLaneLifecycleState(raw, label) {
|
|
1934
|
-
const record = requireRecord$
|
|
1856
|
+
const record = requireRecord$1(raw, label);
|
|
1935
1857
|
rejectUnknownFields(record, ALL_SIGNING_LANE_LIFECYCLE_FIELDS, label);
|
|
1936
1858
|
const revocationEpoch = parseNonNegativeSafeInteger(record.revocationEpoch, `${label}.revocationEpoch`);
|
|
1937
1859
|
switch (record.state) {
|
|
@@ -1971,12 +1893,12 @@ function parseSigningLaneLifecycleState(raw, label) {
|
|
|
1971
1893
|
function parseSigningLaneReferenceFields(record, label) {
|
|
1972
1894
|
if (record.kind !== "signing_lane_reference_v1") throw new Error(`${label}.kind must be signing_lane_reference_v1`);
|
|
1973
1895
|
return buildSigningLaneReference({
|
|
1974
|
-
walletId:
|
|
1975
|
-
walletKeyId:
|
|
1976
|
-
laneId:
|
|
1977
|
-
laneShareEpoch:
|
|
1896
|
+
walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
|
|
1897
|
+
walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
|
|
1898
|
+
laneId: requireParsed$1(parseSigningLaneId(record.laneId), `${label}.laneId`),
|
|
1899
|
+
laneShareEpoch: requireParsed$1(parseLaneShareEpoch(record.laneShareEpoch), `${label}.laneShareEpoch`),
|
|
1978
1900
|
laneKind: parseSigningLaneKind(record.laneKind, `${label}.laneKind`),
|
|
1979
|
-
participantBindingDigestB64u:
|
|
1901
|
+
participantBindingDigestB64u: requireParsed$1(parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u), `${label}.participantBindingDigestB64u`)
|
|
1980
1902
|
});
|
|
1981
1903
|
}
|
|
1982
1904
|
function parseSigningLaneRecordCommon(record, label) {
|
|
@@ -1995,7 +1917,7 @@ function parseOwnerAuthSigningLaneRecordBase(record, label) {
|
|
|
1995
1917
|
const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
|
|
1996
1918
|
return {
|
|
1997
1919
|
...common,
|
|
1998
|
-
walletAuthMethodId:
|
|
1920
|
+
walletAuthMethodId: requireParsed$1(walletAuthMethodId, `${label}.walletAuthMethodId`),
|
|
1999
1921
|
ownerParticipantContinuity: parseOwnerLaneParticipantContinuityV1(record.ownerParticipantContinuity, `${label}.ownerParticipantContinuity`)
|
|
2000
1922
|
};
|
|
2001
1923
|
}
|
|
@@ -2186,13 +2108,13 @@ function buildBreakGlassSigningLaneRecord(args) {
|
|
|
2186
2108
|
};
|
|
2187
2109
|
}
|
|
2188
2110
|
function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
|
|
2189
|
-
const record = requireRecord$
|
|
2111
|
+
const record = requireRecord$1(raw, label);
|
|
2190
2112
|
if (record.kind !== "wallet_key_record_v1") throw new Error(`${label}.kind must be wallet_key_record_v1`);
|
|
2191
2113
|
if (record.keyFamily === "ed25519") {
|
|
2192
2114
|
rejectUnknownFields(record, ED25519_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
|
|
2193
2115
|
return buildEd25519WalletKeyRecord({
|
|
2194
|
-
walletId:
|
|
2195
|
-
walletKeyId:
|
|
2116
|
+
walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
|
|
2117
|
+
walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
|
|
2196
2118
|
walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
|
|
2197
2119
|
nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(record.nearEd25519SigningKeyId),
|
|
2198
2120
|
keyCreationSignerSlot: parseKeyCreationSignerSlot(record.keyCreationSignerSlot, `${label}.keyCreationSignerSlot`),
|
|
@@ -2203,8 +2125,8 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
|
|
|
2203
2125
|
if (record.keyFamily === "ecdsa_secp256k1") {
|
|
2204
2126
|
rejectUnknownFields(record, EVM_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
|
|
2205
2127
|
return buildEvmFamilyWalletKeyRecord({
|
|
2206
|
-
walletId:
|
|
2207
|
-
walletKeyId:
|
|
2128
|
+
walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
|
|
2129
|
+
walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
|
|
2208
2130
|
walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
|
|
2209
2131
|
evmFamilySigningKeySlotId: requireEvmFamilySigningKeySlotId(record.evmFamilySigningKeySlotId, `${label}.evmFamilySigningKeySlotId`),
|
|
2210
2132
|
thresholdPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.thresholdPublicKey33B64u, `${label}.thresholdPublicKey33B64u`),
|
|
@@ -2215,7 +2137,7 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
|
|
|
2215
2137
|
throw new Error(`${label}.keyFamily must be ed25519 or ecdsa_secp256k1`);
|
|
2216
2138
|
}
|
|
2217
2139
|
function parseSigningLaneRecord(raw, label = "signingLaneRecord") {
|
|
2218
|
-
const record = requireRecord$
|
|
2140
|
+
const record = requireRecord$1(raw, label);
|
|
2219
2141
|
if (record.kind !== "signing_lane_reference_v1") throw new Error(`${label}.kind must be signing_lane_reference_v1`);
|
|
2220
2142
|
const laneKind = parseSigningLaneKind(record.laneKind, `${label}.laneKind`);
|
|
2221
2143
|
rejectUnknownFields(record, signingLaneRecordFields(laneKind), label, ALL_SIGNING_LANE_RECORD_FIELDS);
|
|
@@ -2233,7 +2155,7 @@ function parseSigningLaneRecord(raw, label = "signingLaneRecord") {
|
|
|
2233
2155
|
holderParticipant: base.holderParticipant,
|
|
2234
2156
|
serverParticipant: base.serverParticipant,
|
|
2235
2157
|
lifecycle: base.lifecycle,
|
|
2236
|
-
linkedDeviceId:
|
|
2158
|
+
linkedDeviceId: requireParsed$1(parseLinkedDeviceId(record.linkedDeviceId), `${label}.linkedDeviceId`)
|
|
2237
2159
|
});
|
|
2238
2160
|
}
|
|
2239
2161
|
case "delegated_execution": {
|
|
@@ -2773,26 +2695,42 @@ function exactEcdsaParticipantIds(value) {
|
|
|
2773
2695
|
if (!Number.isSafeInteger(first) || !Number.isSafeInteger(second) || first <= 0 || second <= 0 || first === second) throw new Error("[SigningEngine][ecdsa-export] ECDSA participant set is invalid");
|
|
2774
2696
|
return [first, second];
|
|
2775
2697
|
}
|
|
2776
|
-
function
|
|
2777
|
-
const { exportLane } = args;
|
|
2698
|
+
function requireCanonicalEcdsaExportLane(args) {
|
|
2699
|
+
const { exportLane, label } = args;
|
|
2778
2700
|
const capability = exportLane.capability;
|
|
2779
|
-
if (!isEmailOtpWalletAuthAuthority(capability.authority)) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability authority mismatch");
|
|
2780
2701
|
const signer = capability.manifest.signer;
|
|
2781
|
-
if (signer.walletId !== exportLane.key.walletId || !signer.scope.targetMemberships.some((target) => thresholdEcdsaChainTargetsEqual(target, exportLane.chainTarget))) throw new Error(
|
|
2782
|
-
if (
|
|
2783
|
-
if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error(
|
|
2702
|
+
if (signer.walletId !== exportLane.key.walletId || !signer.scope.targetMemberships.some((target) => thresholdEcdsaChainTargetsEqual(target, exportLane.chainTarget))) throw new Error(`[SigningEngine][ecdsa-export] ${label} capability target mismatch`);
|
|
2703
|
+
if (!args.authMatches()) throw new Error(`[SigningEngine][ecdsa-export] ${label} capability auth mismatch`);
|
|
2704
|
+
if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error(`[SigningEngine][ecdsa-export] ${label} material activation mismatch`);
|
|
2784
2705
|
assertMatchingVerifiedEcdsaPublicFacts({
|
|
2785
2706
|
expected: exportLane.publicFacts,
|
|
2786
|
-
actual:
|
|
2787
|
-
context:
|
|
2707
|
+
actual: signer.registeredPublicFacts,
|
|
2708
|
+
context: `canonical ${label} export lane`
|
|
2788
2709
|
});
|
|
2789
2710
|
const materialFacts = capability.material.publicFacts;
|
|
2790
|
-
if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error(
|
|
2711
|
+
if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error(`[SigningEngine][ecdsa-export] canonical ${label} export material mismatch`);
|
|
2791
2712
|
const durable = capability.manifest.durableMaterial;
|
|
2792
2713
|
const runtimePolicyScope = durable.runtimePolicyScope;
|
|
2793
2714
|
const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
|
|
2794
|
-
if (!runtimePolicyScope) throw new Error(
|
|
2795
|
-
if (!relayerUrl) throw new Error(
|
|
2715
|
+
if (!runtimePolicyScope) throw new Error(`[SigningEngine][ecdsa-export] ${label} runtime policy scope is missing`);
|
|
2716
|
+
if (!relayerUrl) throw new Error(`[SigningEngine][ecdsa-export] ${label} export relayer URL is missing`);
|
|
2717
|
+
return {
|
|
2718
|
+
durable,
|
|
2719
|
+
runtimePolicyScope,
|
|
2720
|
+
relayerUrl
|
|
2721
|
+
};
|
|
2722
|
+
}
|
|
2723
|
+
function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
|
|
2724
|
+
const { exportLane } = args;
|
|
2725
|
+
const capability = exportLane.capability;
|
|
2726
|
+
const authority = capability.authority;
|
|
2727
|
+
if (!isEmailOtpWalletAuthAuthority(authority)) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability authority mismatch");
|
|
2728
|
+
const { durable, runtimePolicyScope, relayerUrl } = requireCanonicalEcdsaExportLane({
|
|
2729
|
+
deps: args.deps,
|
|
2730
|
+
exportLane,
|
|
2731
|
+
label: "Email OTP",
|
|
2732
|
+
authMatches: () => exportLane.laneIdentity.auth.kind === "email_otp" && exportLane.laneIdentity.auth.providerSubjectId === authority.factor.providerUserId
|
|
2733
|
+
});
|
|
2796
2734
|
return {
|
|
2797
2735
|
source: "canonical_capability",
|
|
2798
2736
|
kind: "fresh_email_otp_route_auth_ready",
|
|
@@ -2806,30 +2744,21 @@ function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
|
|
|
2806
2744
|
relayerUrl,
|
|
2807
2745
|
authorization: {
|
|
2808
2746
|
kind: "fresh_operation_authorization_required",
|
|
2809
|
-
authority
|
|
2747
|
+
authority
|
|
2810
2748
|
}
|
|
2811
2749
|
};
|
|
2812
2750
|
}
|
|
2813
2751
|
function resolveCanonicalPasskeyEcdsaExportMaterialForLane(args) {
|
|
2814
2752
|
const { exportLane } = args;
|
|
2815
2753
|
const capability = exportLane.capability;
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
actual: signer.registeredPublicFacts,
|
|
2824
|
-
context: "canonical passkey export lane"
|
|
2754
|
+
const authority = capability.authority;
|
|
2755
|
+
if (!isPasskeyWalletAuthAuthority(authority)) throw new Error("[SigningEngine][ecdsa-export] passkey capability authority mismatch");
|
|
2756
|
+
const { durable, runtimePolicyScope, relayerUrl } = requireCanonicalEcdsaExportLane({
|
|
2757
|
+
deps: args.deps,
|
|
2758
|
+
exportLane,
|
|
2759
|
+
label: "passkey",
|
|
2760
|
+
authMatches: () => exportLane.laneIdentity.auth.kind === "passkey" && exportLane.laneIdentity.auth.credentialIdB64u === authority.factor.credentialIdB64u
|
|
2825
2761
|
});
|
|
2826
|
-
const materialFacts = capability.material.publicFacts;
|
|
2827
|
-
if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error("[SigningEngine][ecdsa-export] canonical passkey export material mismatch");
|
|
2828
|
-
const durable = capability.manifest.durableMaterial;
|
|
2829
|
-
const runtimePolicyScope = durable.runtimePolicyScope;
|
|
2830
|
-
const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
|
|
2831
|
-
if (!runtimePolicyScope) throw new Error("[SigningEngine][ecdsa-export] passkey runtime policy scope is missing");
|
|
2832
|
-
if (!relayerUrl) throw new Error("[SigningEngine][ecdsa-export] passkey export relayer URL is missing");
|
|
2833
2762
|
return {
|
|
2834
2763
|
source: "canonical_capability",
|
|
2835
2764
|
kind: "fresh_passkey_needs_authorization",
|
|
@@ -2990,7 +2919,7 @@ async function resolveEcdsaExportMaterialForLane(deps, exportLane) {
|
|
|
2990
2919
|
const ECDSA_DERIVATION_EXPORT_CONFIRMATION_DIGEST_VERSION = "ecdsa-derivation:role-local:product-export-confirmation:v5";
|
|
2991
2920
|
const ECDSA_DERIVATION_EXPORT_AUTHORIZATION_DIGEST_VERSION = "ecdsa-derivation:role-local:product-export-authorization:v5";
|
|
2992
2921
|
const ECDSA_DERIVATION_EXPORT_AUTH_TTL_MS = 6e4;
|
|
2993
|
-
function exportAuthorizationWire(
|
|
2922
|
+
function exportAuthorizationWire(_authorization) {
|
|
2994
2923
|
return { kind: "operation_step_up" };
|
|
2995
2924
|
}
|
|
2996
2925
|
function exportAuthorizationDigestFields(authorization) {
|
|
@@ -5010,7 +4939,7 @@ async function prepareAndShowEcdsaExportArtifact(deps, args) {
|
|
|
5010
4939
|
});
|
|
5011
4940
|
const materialActivation = args.exportLane.laneIdentity.signer.materialActivation;
|
|
5012
4941
|
const artifact = await deps.withThresholdEcdsaSigningQueue({
|
|
5013
|
-
queueKey:
|
|
4942
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
|
|
5014
4943
|
walletId: args.exportLane.key.walletId,
|
|
5015
4944
|
enabled: true,
|
|
5016
4945
|
task: async () => {
|
|
@@ -5065,7 +4994,7 @@ function requirePasskeyEcdsaExportAuth(exportLane) {
|
|
|
5065
4994
|
return auth;
|
|
5066
4995
|
}
|
|
5067
4996
|
async function exportOperationDigest(value) {
|
|
5068
|
-
return
|
|
4997
|
+
return sha256Utf8DigestB64u(alphabetizeStringify(value));
|
|
5069
4998
|
}
|
|
5070
4999
|
async function prepareExplicitEcdsaExportOperationWithRuntime(args) {
|
|
5071
5000
|
const chainTargetKey = thresholdEcdsaChainTargetKey(args.chainTarget);
|
|
@@ -6027,7 +5956,7 @@ async function exportEd25519YaoKeyWithFreshAuthorization(deps, args) {
|
|
|
6027
5956
|
}
|
|
6028
5957
|
});
|
|
6029
5958
|
const result = await deps.withThresholdEd25519CommitQueue({
|
|
6030
|
-
queueKey:
|
|
5959
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: passkeyEd25519ExportMaterialActivation(resolved) }),
|
|
6031
5960
|
nearAccountId: args.nearAccountId,
|
|
6032
5961
|
enabled: true,
|
|
6033
5962
|
task: () => deps.passkeyMpcExport.exportPrivateKeysWithUi(buildWorkerPayload({
|
|
@@ -6123,7 +6052,7 @@ async function exportEd25519YaoKeyWithFreshEmailOtp(deps, args) {
|
|
|
6123
6052
|
onEvent: args.onEvent
|
|
6124
6053
|
});
|
|
6125
6054
|
const artifact = await deps.withThresholdEd25519CommitQueue({
|
|
6126
|
-
queueKey:
|
|
6055
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: emailOtpEd25519ExportMaterialActivation(resolved.context) }),
|
|
6127
6056
|
nearAccountId: args.nearAccountId,
|
|
6128
6057
|
enabled: resolved.context.material.kind === "active_capability",
|
|
6129
6058
|
task: () => deps.emailOtp.exportSeedWithFreshAuthorization({
|
|
@@ -6359,14 +6288,11 @@ async function exportEd25519KeypairWithFlowId(deps, args) {
|
|
|
6359
6288
|
onEvent: args.options.onEvent
|
|
6360
6289
|
});
|
|
6361
6290
|
}
|
|
6362
|
-
async function exportEd25519KeypairWithSessionLifecycle(deps, args) {
|
|
6363
|
-
return await exportEd25519KeypairWithFlowId(deps, args);
|
|
6364
|
-
}
|
|
6365
6291
|
async function exportKeypairWithUI$1(deps, input) {
|
|
6366
6292
|
return await runKeyExportWithFlowEvents(input, async (args) => {
|
|
6367
6293
|
switch (args.kind) {
|
|
6368
6294
|
case "ecdsa": return await exportEcdsaKeypairWithSessionLifecycle(deps, args, { kind: "initial" });
|
|
6369
|
-
case "ed25519": return await
|
|
6295
|
+
case "ed25519": return await exportEd25519KeypairWithFlowId(deps, args);
|
|
6370
6296
|
}
|
|
6371
6297
|
});
|
|
6372
6298
|
}
|
|
@@ -6836,7 +6762,6 @@ const BUILD_PATHS = {
|
|
|
6836
6762
|
WASM_SIGNER: "../../wasm/near_signer",
|
|
6837
6763
|
ED25519_YAO_CLIENT: "../../crates/router-ab-ed25519-yao-client",
|
|
6838
6764
|
WASM_ECDSA_CLIENT: "../../wasm/router_ab_ecdsa_client",
|
|
6839
|
-
WASM_ECDSA_SIGNING_WORKER: "../../wasm/router_ab_ecdsa_signing_worker",
|
|
6840
6765
|
WASM_EVM_CRYPTO: "../../wasm/evm_crypto",
|
|
6841
6766
|
WASM_TEMPO_SIGNER: "../../wasm/tempo_signer",
|
|
6842
6767
|
WASM_SHAMIR3PASS_RUNTIME: "../../wasm/shamir3pass_runtime",
|
|
@@ -6852,7 +6777,6 @@ const BUILD_PATHS = {
|
|
|
6852
6777
|
"../../crates/router-ab-ed25519-yao-client",
|
|
6853
6778
|
"../../wasm/near_signer",
|
|
6854
6779
|
"../../wasm/router_ab_ecdsa_client",
|
|
6855
|
-
"../../wasm/router_ab_ecdsa_signing_worker",
|
|
6856
6780
|
"../../wasm/evm_crypto",
|
|
6857
6781
|
"../../wasm/tempo_signer",
|
|
6858
6782
|
"../../wasm/shamir3pass_runtime",
|
|
@@ -7208,9 +7132,6 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
|
|
|
7208
7132
|
let nearContextFailed = false;
|
|
7209
7133
|
const confirmationReadiness = consumeConfirmationReadiness(request.requestId);
|
|
7210
7134
|
let confirmationReadinessPending = !!confirmationReadiness;
|
|
7211
|
-
const originalBody = String(transactionSummary.body || "").trim();
|
|
7212
|
-
const confirmationReadinessBody = String(confirmationReadiness?.body || "").trim();
|
|
7213
|
-
const restoreOriginalBody = () => ({ body: originalBody });
|
|
7214
7135
|
const confirmationReadinessPromise = confirmationReadiness ? Promise.resolve(confirmationReadiness.promise) : void 0;
|
|
7215
7136
|
const walletSessionExpiryPromise = confirmationReadinessPromise ? waitForWalletSessionExpiry(confirmationReadinessPromise) : void 0;
|
|
7216
7137
|
const markPromptReady = () => {
|
|
@@ -7223,10 +7144,7 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
|
|
|
7223
7144
|
loading: false,
|
|
7224
7145
|
onMounted: () => {
|
|
7225
7146
|
markPromptReady();
|
|
7226
|
-
if (confirmationReadinessPending
|
|
7227
|
-
loading: false,
|
|
7228
|
-
body: confirmationReadinessBody
|
|
7229
|
-
});
|
|
7147
|
+
if (confirmationReadinessPending) session.updateUI({ preparing: true });
|
|
7230
7148
|
}
|
|
7231
7149
|
}) : Promise.resolve({ confirmed: true });
|
|
7232
7150
|
if (reviewPromptRequired) promptDecisionPromise.finally(markPromptReady);
|
|
@@ -7267,20 +7185,19 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
|
|
|
7267
7185
|
if (confirmationReadinessPromise) confirmationReadinessPromise.then(async () => {
|
|
7268
7186
|
confirmationReadinessPending = false;
|
|
7269
7187
|
await promptReady;
|
|
7270
|
-
if (decisionResolved
|
|
7271
|
-
session.updateUI({
|
|
7272
|
-
...restoreOriginalBody(),
|
|
7273
|
-
loading: false,
|
|
7274
|
-
errorMessage: ""
|
|
7275
|
-
});
|
|
7188
|
+
if (decisionResolved) return;
|
|
7189
|
+
session.updateUI({ preparing: false });
|
|
7276
7190
|
}).catch(async (error) => {
|
|
7277
7191
|
confirmationReadinessPending = false;
|
|
7278
7192
|
await promptReady;
|
|
7279
|
-
if (decisionResolved
|
|
7193
|
+
if (decisionResolved) return;
|
|
7194
|
+
if (nearContextFailed) {
|
|
7195
|
+
session.updateUI({ preparing: false });
|
|
7196
|
+
return;
|
|
7197
|
+
}
|
|
7280
7198
|
const message = String(toError(error)?.message || "NEAR signing session could not be finalized");
|
|
7281
7199
|
session.updateUI({
|
|
7282
|
-
|
|
7283
|
-
loading: false,
|
|
7200
|
+
preparing: false,
|
|
7284
7201
|
errorMessage: `NEAR signing session could not be finalized: ${message}`
|
|
7285
7202
|
});
|
|
7286
7203
|
});
|
|
@@ -7759,13 +7676,13 @@ async function handlePromptFromWorker(ctx, message, worker, options) {
|
|
|
7759
7676
|
switch (request.type) {
|
|
7760
7677
|
case UserConfirmationType.AUTHORIZE_KEY_EXPORT:
|
|
7761
7678
|
case UserConfirmationType.SHOW_SECURE_PRIVATE_KEY_UI: {
|
|
7762
|
-
const { handleLocalOnlyFlow } = await import("./localOnly-
|
|
7679
|
+
const { handleLocalOnlyFlow } = await import("./localOnly-DTpa2jD5.js");
|
|
7763
7680
|
await handleLocalOnlyFlow(ctx, request, scopedWorker, flowOptions);
|
|
7764
7681
|
break;
|
|
7765
7682
|
}
|
|
7766
7683
|
case UserConfirmationType.REGISTER_ACCOUNT:
|
|
7767
7684
|
case UserConfirmationType.LINK_DEVICE: {
|
|
7768
|
-
const { handleRegistrationFlow } = await import("./registration-
|
|
7685
|
+
const { handleRegistrationFlow } = await import("./registration-DHERU8R_.js").then((n) => n.n);
|
|
7769
7686
|
await handleRegistrationFlow(ctx, request, scopedWorker, flowOptions);
|
|
7770
7687
|
break;
|
|
7771
7688
|
}
|
|
@@ -9280,11 +9197,8 @@ function ecdsaSealedRuntimePurpose(purpose) {
|
|
|
9280
9197
|
}
|
|
9281
9198
|
//#endregion
|
|
9282
9199
|
//#region src/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.ts
|
|
9283
|
-
function asRecord(value) {
|
|
9284
|
-
return typeof value === "object" && value !== null ? value : null;
|
|
9285
|
-
}
|
|
9286
9200
|
function parseVolatileWarmSessionScope(value) {
|
|
9287
|
-
const raw =
|
|
9201
|
+
const raw = asRecordOrArray(value);
|
|
9288
9202
|
if (!raw) return null;
|
|
9289
9203
|
if (raw.kind === "all") return { kind: "all" };
|
|
9290
9204
|
if (raw.kind !== "session") return null;
|
|
@@ -9296,7 +9210,7 @@ function parseVolatileWarmSessionScope(value) {
|
|
|
9296
9210
|
};
|
|
9297
9211
|
}
|
|
9298
9212
|
function parseClearVolatileWarmMaterialCommand(value) {
|
|
9299
|
-
const raw =
|
|
9213
|
+
const raw = asRecordOrArray(value);
|
|
9300
9214
|
if (!raw || raw.kind !== "clear_volatile_warm_material") return null;
|
|
9301
9215
|
if (raw.durableRecord != null || raw.resolvedIdentity != null || raw.deleteReason != null) return null;
|
|
9302
9216
|
const scope = parseVolatileWarmSessionScope(raw.scope);
|
|
@@ -10845,7 +10759,7 @@ var PasskeyMpcSessionManagerImpl = class {
|
|
|
10845
10759
|
if (inFlight) return requirePasskeyEcdsaRestoreOutcome(await inFlight, "ready");
|
|
10846
10760
|
const task = withThresholdEcdsaSigningQueue({
|
|
10847
10761
|
queueByKey: this.deps.thresholdEcdsaSigningQueueByKey,
|
|
10848
|
-
queueKey:
|
|
10762
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
|
|
10849
10763
|
walletId: toWalletId(args.walletId),
|
|
10850
10764
|
enabled: true,
|
|
10851
10765
|
task: async () => await this.restorePasskeyEcdsaRecord({
|
|
@@ -11241,9 +11155,8 @@ function requireExpectedPasskeyRegistrationUser(input) {
|
|
|
11241
11155
|
* and generates credentials, and PRF Outputs
|
|
11242
11156
|
*/
|
|
11243
11157
|
var TouchIdPrompt = class TouchIdPrompt {
|
|
11244
|
-
constructor(rpIdOverride,
|
|
11158
|
+
constructor(rpIdOverride, _safariGetWebauthnRegistrationFallback = false) {
|
|
11245
11159
|
this.rpIdOverride = rpIdOverride;
|
|
11246
|
-
this.safariGetWebauthnRegistrationFallback = safariGetWebauthnRegistrationFallback === true;
|
|
11247
11160
|
}
|
|
11248
11161
|
getRpId() {
|
|
11249
11162
|
try {
|
|
@@ -11701,6 +11614,18 @@ const SIGNER_WORKER_KINDS = [
|
|
|
11701
11614
|
"walletCustodyCeremony"
|
|
11702
11615
|
];
|
|
11703
11616
|
const MULTICHAIN_WORKER_DEFAULT_TIMEOUT_MS = 2e4;
|
|
11617
|
+
/**
|
|
11618
|
+
* A timed-out operation resets its worker, and resetting a presign or
|
|
11619
|
+
* derivation worker discards the state other ceremonies hold in it. Name the
|
|
11620
|
+
* operation that caused the reset.
|
|
11621
|
+
*/
|
|
11622
|
+
function warnWorkerOperationTimedOut(kind, type, timeoutMs) {
|
|
11623
|
+
console.warn("[WorkerTransport] operation timed out; resetting worker", {
|
|
11624
|
+
kind,
|
|
11625
|
+
type: String(type),
|
|
11626
|
+
timeoutMs
|
|
11627
|
+
});
|
|
11628
|
+
}
|
|
11704
11629
|
function makeId(prefix) {
|
|
11705
11630
|
return secureRandomId(prefix, 32, "signer worker request IDs");
|
|
11706
11631
|
}
|
|
@@ -11805,11 +11730,11 @@ var WorkerTransport = class {
|
|
|
11805
11730
|
return readiness.promise;
|
|
11806
11731
|
}
|
|
11807
11732
|
/**
|
|
11808
|
-
*
|
|
11809
|
-
*
|
|
11810
|
-
*
|
|
11811
|
-
*
|
|
11812
|
-
*
|
|
11733
|
+
* Initializes the ECDSA derivation and registration WASM inside the
|
|
11734
|
+
* derivation worker during the authentication prompt, so the first ceremony
|
|
11735
|
+
* call after auth does not pay module init (measured 654 ms cold vs 88 ms
|
|
11736
|
+
* warm on `ecdsaRegistrationClientCreateMs`). Fire-and-forget safe: failure
|
|
11737
|
+
* leaves the lazy init path exactly as it was.
|
|
11813
11738
|
*/
|
|
11814
11739
|
async prewarmEcdsaRegistrationCrypto() {
|
|
11815
11740
|
const existing = this.ecdsaRegistrationCryptoPrewarmPromise;
|
|
@@ -11921,6 +11846,7 @@ var WorkerTransport = class {
|
|
|
11921
11846
|
code: "TIMEOUT",
|
|
11922
11847
|
workerKind: "nearSigner"
|
|
11923
11848
|
}));
|
|
11849
|
+
warnWorkerOperationTimedOut("nearSigner", type, timeoutMs);
|
|
11924
11850
|
this.resetWorker("nearSigner");
|
|
11925
11851
|
try {
|
|
11926
11852
|
const seconds = Math.round(timeoutMs / 1e3);
|
|
@@ -11962,6 +11888,7 @@ var WorkerTransport = class {
|
|
|
11962
11888
|
code: "TIMEOUT",
|
|
11963
11889
|
workerKind: "ecdsaDerivationClient"
|
|
11964
11890
|
}));
|
|
11891
|
+
warnWorkerOperationTimedOut("ecdsaDerivationClient", type, timeoutMs);
|
|
11965
11892
|
this.resetWorker("ecdsaDerivationClient");
|
|
11966
11893
|
}, timeoutMs);
|
|
11967
11894
|
this.getPendingMap("ecdsaDerivationClient").set(requestId, {
|
|
@@ -11996,6 +11923,7 @@ var WorkerTransport = class {
|
|
|
11996
11923
|
code: "TIMEOUT",
|
|
11997
11924
|
workerKind: kind
|
|
11998
11925
|
}));
|
|
11926
|
+
warnWorkerOperationTimedOut(kind, request.type, timeoutMs);
|
|
11999
11927
|
this.resetWorker(kind);
|
|
12000
11928
|
}, timeoutMs);
|
|
12001
11929
|
this.getPendingMap(kind).set(requestId, {
|
|
@@ -12038,11 +11966,7 @@ var WorkerTransport = class {
|
|
|
12038
11966
|
return worker;
|
|
12039
11967
|
}
|
|
12040
11968
|
connectPresignAuthorityChannel(request) {
|
|
12041
|
-
if (request.type
|
|
12042
|
-
this.connectDerivationPresignChannel(this.getOrCreateWorker("ecdsaPresignClient"), "role_local_derivation_handle");
|
|
12043
|
-
return;
|
|
12044
|
-
}
|
|
12045
|
-
if (request.type !== EcdsaPresignClientRequestType.SessionInit) return;
|
|
11969
|
+
if (request.type !== EcdsaPresignClientRequestType.ListAvailable && request.type !== EcdsaPresignClientRequestType.SessionInit) return;
|
|
12046
11970
|
const presignWorker = this.getOrCreateWorker("ecdsaPresignClient");
|
|
12047
11971
|
const authorityKind = this.parsePresignAuthorityKind(request.payload);
|
|
12048
11972
|
switch (authorityKind) {
|
|
@@ -13174,19 +13098,11 @@ function requireEd25519YaoClientRootEnvelopeV1(envelope) {
|
|
|
13174
13098
|
if (!isEd25519YaoClientRootEnvelopeV1(envelope)) throw new Error("[SigningEngine][ed25519-export] export envelope has the wrong secret kind");
|
|
13175
13099
|
return envelope;
|
|
13176
13100
|
}
|
|
13177
|
-
function requireRecord$2(value, label) {
|
|
13178
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${label} must be an object`);
|
|
13179
|
-
return value;
|
|
13180
|
-
}
|
|
13181
13101
|
function requireExactKeys(record, expected, label) {
|
|
13182
13102
|
const actual = Object.keys(record).sort();
|
|
13183
13103
|
const keys = [...expected].sort();
|
|
13184
13104
|
if (actual.length !== keys.length || actual.some((key, index) => key !== keys[index])) throw new Error(`${label} fields are invalid`);
|
|
13185
13105
|
}
|
|
13186
|
-
function requireString$2(value, label) {
|
|
13187
|
-
if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is invalid`);
|
|
13188
|
-
return value;
|
|
13189
|
-
}
|
|
13190
13106
|
function requirePositiveInteger(value, label) {
|
|
13191
13107
|
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} is invalid`);
|
|
13192
13108
|
return value;
|
|
@@ -13226,7 +13142,7 @@ async function readColdExportBootstrap(input) {
|
|
|
13226
13142
|
const failure = raw && typeof raw === "object" ? raw : null;
|
|
13227
13143
|
throw new Error(`[SigningEngine][ed25519-export] capability bootstrap failed (HTTP ${response.status}): ${String(failure?.message || "invalid response")}`);
|
|
13228
13144
|
}
|
|
13229
|
-
const record = requireRecord$
|
|
13145
|
+
const record = requireRecord$1(raw, "Ed25519 export bootstrap");
|
|
13230
13146
|
requireExactKeys(record, [
|
|
13231
13147
|
"kind",
|
|
13232
13148
|
"walletId",
|
|
@@ -13244,9 +13160,9 @@ async function readColdExportBootstrap(input) {
|
|
|
13244
13160
|
"capability"
|
|
13245
13161
|
], "Ed25519 export bootstrap");
|
|
13246
13162
|
if (record.kind !== "router_ab_ed25519_yao_v2_session_bootstrap_v1") throw new Error("Ed25519 export bootstrap kind is invalid");
|
|
13247
|
-
const walletId =
|
|
13248
|
-
const nearAccountId =
|
|
13249
|
-
const nearEd25519SigningKeyId =
|
|
13163
|
+
const walletId = requireCanonicalString(record.walletId, "bootstrap.walletId");
|
|
13164
|
+
const nearAccountId = requireCanonicalString(record.nearAccountId, "bootstrap.nearAccountId");
|
|
13165
|
+
const nearEd25519SigningKeyId = requireCanonicalString(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId");
|
|
13250
13166
|
const thresholdSessionId = parseThresholdEd25519SessionId(record.thresholdSessionId);
|
|
13251
13167
|
const walletSessionId = parseWalletSessionId(record.walletSessionId);
|
|
13252
13168
|
const quotaId = parseMpcWalletSigningQuotaId(record.quotaId);
|
|
@@ -13260,7 +13176,7 @@ async function readColdExportBootstrap(input) {
|
|
|
13260
13176
|
};
|
|
13261
13177
|
const participantIds = requireParticipantIds(record.participantIds);
|
|
13262
13178
|
const registeredPublicKeyB64u = base64UrlEncode(Uint8Array.from(capability.registeredPublicKey));
|
|
13263
|
-
if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !signingRoot || !routerAbNormalSigning || walletId !== String(signer.account.wallet.walletId) || nearAccountId !== String(signer.account.nearAccountId) || nearEd25519SigningKeyId !== String(signer.nearEd25519SigningKeyId) || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot ||
|
|
13179
|
+
if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !signingRoot || !routerAbNormalSigning || walletId !== String(signer.account.wallet.walletId) || nearAccountId !== String(signer.account.nearAccountId) || nearEd25519SigningKeyId !== String(signer.nearEd25519SigningKeyId) || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || requireCanonicalString(record.signingWorkerId, "bootstrap.signingWorkerId") !== binding.signingWorkerId || participantIds[0] !== binding.participantIds[0] || participantIds[1] !== binding.participantIds[1] || authority.factor.providerUserId !== input.subject.auth.providerSubjectId || registeredPublicKeyB64u !== binding.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] capability bootstrap identity mismatch");
|
|
13264
13180
|
return {
|
|
13265
13181
|
emailHashHex: authority.verifier.emailHashHex,
|
|
13266
13182
|
bootstrap: {
|
|
@@ -13333,7 +13249,7 @@ async function readLinkedExportCapability(input) {
|
|
|
13333
13249
|
const failure = raw && typeof raw === "object" ? raw : null;
|
|
13334
13250
|
throw new Error(`[SigningEngine][ed25519-export] linked capability bootstrap failed (HTTP ${response.status}): ${String(failure?.message || "invalid response")}`);
|
|
13335
13251
|
}
|
|
13336
|
-
const record = requireRecord$
|
|
13252
|
+
const record = requireRecord$1(raw, "linked Ed25519 export bootstrap");
|
|
13337
13253
|
requireExactKeys(record, [
|
|
13338
13254
|
"kind",
|
|
13339
13255
|
"walletId",
|
|
@@ -13362,7 +13278,7 @@ async function readLinkedExportCapability(input) {
|
|
|
13362
13278
|
};
|
|
13363
13279
|
const participantIds = requireParticipantIds(record.participantIds);
|
|
13364
13280
|
const registeredPublicKeyB64u = base64UrlEncode(Uint8Array.from(capability.registeredPublicKey));
|
|
13365
|
-
if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !runtimePolicyScope || !routerAbNormalSigning ||
|
|
13281
|
+
if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !runtimePolicyScope || !routerAbNormalSigning || requireCanonicalString(record.walletId, "bootstrap.walletId") !== String(signer.account.wallet.walletId) || requireCanonicalString(record.nearAccountId, "bootstrap.nearAccountId") !== String(signer.account.nearAccountId) || requireCanonicalString(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId") !== String(signer.nearEd25519SigningKeyId) || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requireCanonicalString(record.signingWorkerId, "bootstrap.signingWorkerId") !== input.source.signingWorkerId || participantIds[0] !== input.source.participantIds[0] || participantIds[1] !== input.source.participantIds[1] || registeredPublicKeyB64u !== input.source.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] linked capability identity mismatch");
|
|
13366
13282
|
return capability;
|
|
13367
13283
|
}
|
|
13368
13284
|
function countExactEd25519ExportSubjects(subjects, expectedMaterialActivation) {
|
|
@@ -13694,10 +13610,10 @@ async function readPersistedAvailableSigningLanes$1(deps, args, ecdsaChainTarget
|
|
|
13694
13610
|
...args,
|
|
13695
13611
|
ecdsaChainTargets,
|
|
13696
13612
|
requiredEcdsaCapability: "sign"
|
|
13697
|
-
}, new WalletSessionStatusReadScope());
|
|
13613
|
+
}, new WalletSessionStatusReadScope(), "all");
|
|
13698
13614
|
}
|
|
13699
13615
|
/**
|
|
13700
|
-
*
|
|
13616
|
+
* Human operational read: lanes for one exact owner. The auth-method
|
|
13701
13617
|
* narrowing and the owner filter both derive from the scope — callers supply
|
|
13702
13618
|
* nothing the scope does not already carry.
|
|
13703
13619
|
*/
|
|
@@ -13709,7 +13625,7 @@ async function readOwnerScopedAvailableSigningLanes(deps, args, statusReads) {
|
|
|
13709
13625
|
ecdsaChainTargets: args.ecdsaChainTargets,
|
|
13710
13626
|
requiredEcdsaCapability: args.requiredEcdsaCapability,
|
|
13711
13627
|
...args.nowMs !== void 0 ? { nowMs: args.nowMs } : {}
|
|
13712
|
-
}, statusReads);
|
|
13628
|
+
}, statusReads, "all");
|
|
13713
13629
|
}
|
|
13714
13630
|
async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultEcdsaChainTargets) {
|
|
13715
13631
|
if (args.curve === "ecdsa") {
|
|
@@ -13720,7 +13636,7 @@ async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultE
|
|
|
13720
13636
|
...availableLanesArgs,
|
|
13721
13637
|
ecdsaChainTargets: [...ecdsaChainTargetsByKey.values()],
|
|
13722
13638
|
requiredEcdsaCapability: "sign"
|
|
13723
|
-
}, new WalletSessionStatusReadScope());
|
|
13639
|
+
}, new WalletSessionStatusReadScope(), "ecdsa");
|
|
13724
13640
|
}
|
|
13725
13641
|
const { curve, ...availableLanesArgs } = args;
|
|
13726
13642
|
return await readPersistedAvailableSigningLanes$1(deps, availableLanesArgs, []);
|
|
@@ -13745,17 +13661,18 @@ function filterEmailOtpCompanionEcdsaRecords(records, chainTargets) {
|
|
|
13745
13661
|
}
|
|
13746
13662
|
return matchingRecords;
|
|
13747
13663
|
}
|
|
13748
|
-
async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads) {
|
|
13664
|
+
async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads, curves) {
|
|
13749
13665
|
const walletId = String(toWalletId(args.walletId)).trim();
|
|
13750
13666
|
return await readAvailableSigningLanes({
|
|
13751
13667
|
...args,
|
|
13752
13668
|
walletId,
|
|
13753
13669
|
ecdsaChainTargets: args.ecdsaChainTargets
|
|
13754
13670
|
}, {
|
|
13755
|
-
listPublicCapabilityReferences: deps.ed25519YaoPublicCapabilityLanes ? deps.ed25519YaoPublicCapabilityLanes.listLanes.bind(deps.ed25519YaoPublicCapabilityLanes) : void 0,
|
|
13671
|
+
listPublicCapabilityReferences: curves === "all" && deps.ed25519YaoPublicCapabilityLanes ? deps.ed25519YaoPublicCapabilityLanes.listLanes.bind(deps.ed25519YaoPublicCapabilityLanes) : void 0,
|
|
13756
13672
|
isPublicCapabilityActive: deps.isEd25519YaoPublicCapabilityActive,
|
|
13757
|
-
readActiveWalletSessionAuthorization: deps.readActiveWalletSessionAuthorization?.bind(null, statusReads),
|
|
13673
|
+
readActiveWalletSessionAuthorization: curves === "all" ? deps.readActiveWalletSessionAuthorization?.bind(null, statusReads) : void 0,
|
|
13758
13674
|
listSealedRecordsForWallet: async ({ walletId: recordWalletId, filter }) => {
|
|
13675
|
+
if (curves === "ecdsa") return [];
|
|
13759
13676
|
const listByAuthMethod = async (authMethod) => {
|
|
13760
13677
|
const ed25519Records = await listExactSealedSessionsForWallet({
|
|
13761
13678
|
walletId: recordWalletId,
|
|
@@ -14008,7 +13925,7 @@ async function discoverPersistedSessionsForWallet(deps, args) {
|
|
|
14008
13925
|
async function readPersistedAvailableSigningLanes(deps, args) {
|
|
14009
13926
|
return await readPersistedAvailableSigningLanes$1(deps.availableLanes, args, deps.getConfiguredEcdsaChainTargets());
|
|
14010
13927
|
}
|
|
14011
|
-
/**
|
|
13928
|
+
/** Human operational read: one exact owner, configured ECDSA targets. */
|
|
14012
13929
|
async function readOwnerScopedSigningLanes(deps, args, statusReads) {
|
|
14013
13930
|
return await readOwnerScopedAvailableSigningLanes(deps.availableLanes, {
|
|
14014
13931
|
walletId: args.walletId,
|
|
@@ -14890,7 +14807,7 @@ async function resolveEcdsaAuthorizationForResolution(args) {
|
|
|
14890
14807
|
}
|
|
14891
14808
|
/** The PRF claim for a resolved ECDSA capability. Correlation has already proved
|
|
14892
14809
|
* the material, so the claim is the sealed runtime's own allowance and expiry --
|
|
14893
|
-
* the same facts the shared
|
|
14810
|
+
* the same facts the shared runtime-policy rule classifies. A blocked resolution
|
|
14894
14811
|
* has no runtime and so no claim to report.
|
|
14895
14812
|
*
|
|
14896
14813
|
* The wallet-scoped relayer claim is not consulted here. It is read by lane, and
|
|
@@ -16020,7 +15937,7 @@ function createEcdsaLoginPrefillClientSigningMaterialSource(args) {
|
|
|
16020
15937
|
destroyClientPresignature: thresholdEcdsaRoleLocalDestroyPresignatureWasm,
|
|
16021
15938
|
reserveClientPresignature: thresholdEcdsaRoleLocalReservePresignatureWasm,
|
|
16022
15939
|
commitClientPresignature: thresholdEcdsaRoleLocalCommitPresignatureWasm,
|
|
16023
|
-
listAvailableClientPresignatures:
|
|
15940
|
+
listAvailableClientPresignatures: thresholdEcdsaListAvailablePresignaturesWasm.bind(void 0, "role_local_derivation_handle"),
|
|
16024
15941
|
computeSignatureShareFromPresignatureHandle: thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm
|
|
16025
15942
|
};
|
|
16026
15943
|
}
|
|
@@ -16823,7 +16740,7 @@ function createRecoveryPublicDeps(args) {
|
|
|
16823
16740
|
}, {
|
|
16824
16741
|
...completeConfiguredEcdsaTargets(availableLanesArgs),
|
|
16825
16742
|
requiredEcdsaCapability: "export_keys"
|
|
16826
|
-
}, new WalletSessionStatusReadScope()),
|
|
16743
|
+
}, new WalletSessionStatusReadScope(), "all"),
|
|
16827
16744
|
readOwnerScopedAvailableSigningLanesForTargets: async (availableLanesArgs) => await readOwnerScopedAvailableSigningLanes({
|
|
16828
16745
|
activeWalletAuthorityEcdsaRuntimeReadPorts: browserExactWalletSessionReadPorts,
|
|
16829
16746
|
ed25519YaoPublicCapabilityLanes: args.ed25519YaoPublicCapabilityLanes,
|
|
@@ -17435,7 +17352,7 @@ async function noWalletPasskeyAuthenticator() {
|
|
|
17435
17352
|
return null;
|
|
17436
17353
|
}
|
|
17437
17354
|
/**
|
|
17438
|
-
*
|
|
17355
|
+
* The active wallet auth-method store is the one source that resolves
|
|
17439
17356
|
* an authority reference to its full authority. Sealed-session restores and
|
|
17440
17357
|
* loose authenticator lists are history and hints; matching against them let
|
|
17441
17358
|
* a stale or sibling credential answer for the active authority.
|
|
@@ -17610,14 +17527,22 @@ async function readBrowserExactNearEd25519WalletSessionAuthorization(relayerUrlI
|
|
|
17610
17527
|
const authorizationNowMs = Date.now();
|
|
17611
17528
|
if (status.authorization.expiresAtMs <= authorizationNowMs) return { kind: "expired" };
|
|
17612
17529
|
if (status.walletSessionId !== exactRead.operationCredential.walletSessionId || status.quotaId !== exactRead.record.quotaId || status.expiresAtMs !== status.authorization.expiresAtMs || !walletSessionImmutableIdentityMatches(status.authorization, exactRead.record) || !walletSessionMatchesSelectedAuthority(status.authorization, currentSelected)) return { kind: "corrupt" };
|
|
17530
|
+
let replaced;
|
|
17613
17531
|
try {
|
|
17614
|
-
await
|
|
17532
|
+
replaced = await IndexedDBManager.replaceExactActiveWalletSessionFromStatus({
|
|
17615
17533
|
active: status.authorization,
|
|
17616
17534
|
operationCredential: exactRead.operationCredential
|
|
17617
17535
|
});
|
|
17618
17536
|
} catch {
|
|
17619
17537
|
return { kind: "persistence_unavailable" };
|
|
17620
17538
|
}
|
|
17539
|
+
if (replaced.kind === "superseded") {
|
|
17540
|
+
emitSigningSessionFlowTrace("near", {
|
|
17541
|
+
event: "wallet_session_status_superseded",
|
|
17542
|
+
walletSessionId: exactRead.operationCredential.walletSessionId
|
|
17543
|
+
});
|
|
17544
|
+
return { kind: "unavailable" };
|
|
17545
|
+
}
|
|
17621
17546
|
let selectedFactorAuthority;
|
|
17622
17547
|
try {
|
|
17623
17548
|
selectedFactorAuthority = await resolveBrowserSelectedFactorAuthority(currentSelected);
|
|
@@ -17804,8 +17729,9 @@ async function resolveBrowserEcdsaPreprocessingCapability(args, input, statusRea
|
|
|
17804
17729
|
kind: "inactive",
|
|
17805
17730
|
reason: "Exact Wallet Session authorization is expired"
|
|
17806
17731
|
};
|
|
17732
|
+
let replaced;
|
|
17807
17733
|
try {
|
|
17808
|
-
await
|
|
17734
|
+
replaced = await IndexedDBManager.replaceExactActiveWalletSessionFromStatus({
|
|
17809
17735
|
active: status.authorization,
|
|
17810
17736
|
operationCredential: exactAuthorization.operationCredential
|
|
17811
17737
|
});
|
|
@@ -17815,6 +17741,16 @@ async function resolveBrowserEcdsaPreprocessingCapability(args, input, statusRea
|
|
|
17815
17741
|
reason: "Exact Wallet Session promotion reconciliation could not be persisted"
|
|
17816
17742
|
};
|
|
17817
17743
|
}
|
|
17744
|
+
if (replaced.kind === "superseded") {
|
|
17745
|
+
emitSigningSessionFlowTrace("evm-family", {
|
|
17746
|
+
event: "wallet_session_status_superseded",
|
|
17747
|
+
walletSessionId: exactAuthorization.operationCredential.walletSessionId
|
|
17748
|
+
});
|
|
17749
|
+
return {
|
|
17750
|
+
kind: "inactive",
|
|
17751
|
+
reason: "Exact Wallet Session status was superseded by a newer wallet authority"
|
|
17752
|
+
};
|
|
17753
|
+
}
|
|
17818
17754
|
const authorizationResolution = await buildBrowserEcdsaPreprocessingCapability({
|
|
17819
17755
|
context: args,
|
|
17820
17756
|
walletId,
|
|
@@ -17895,7 +17831,7 @@ async function resolveAmbiguousEcdsaActivationForSelectedAuthMethod(input) {
|
|
|
17895
17831
|
authority: chosen
|
|
17896
17832
|
});
|
|
17897
17833
|
}
|
|
17898
|
-
async function resolveBrowserCanonicalEcdsaSigningCapability(
|
|
17834
|
+
async function resolveBrowserCanonicalEcdsaSigningCapability(_args, input) {
|
|
17899
17835
|
const walletId = toWalletId(input.walletId);
|
|
17900
17836
|
const subjects = await ecdsaCapabilityManifestStore$2.listActiveWalletCapabilitySubjects(walletId);
|
|
17901
17837
|
if (subjects.kind !== "resolved") throw new Error(`ECDSA capability subjects are ${subjects.kind}`);
|
|
@@ -19045,12 +18981,9 @@ function requireEmailOtpEcdsaCustodySigner(continuity, walletId, keyHandle) {
|
|
|
19045
18981
|
const first = continuity.signers[0];
|
|
19046
18982
|
if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
|
|
19047
18983
|
if (first.walletKey.walletId !== walletId || first.walletKey.keyHandle !== keyHandle) throw new Error("Email OTP ECDSA custody continuity changed the requested wallet key");
|
|
19048
|
-
for (const signer of continuity.signers) if (signer.walletKey.walletId !== first.walletKey.walletId || signer.walletKey.keyHandle !== first.walletKey.keyHandle || signer.walletKey.ecdsaThresholdKeyId !== first.walletKey.ecdsaThresholdKeyId || signer.walletKey.signingRootId !== first.walletKey.signingRootId || signer.walletKey.signingRootVersion !== first.walletKey.signingRootVersion || signer.walletKey.relayerKeyId !== first.walletKey.relayerKeyId || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !
|
|
18984
|
+
for (const signer of continuity.signers) if (signer.walletKey.walletId !== first.walletKey.walletId || signer.walletKey.keyHandle !== first.walletKey.keyHandle || signer.walletKey.ecdsaThresholdKeyId !== first.walletKey.ecdsaThresholdKeyId || signer.walletKey.signingRootId !== first.walletKey.signingRootId || signer.walletKey.signingRootVersion !== first.walletKey.signingRootVersion || signer.walletKey.relayerKeyId !== first.walletKey.relayerKeyId || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope$1(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
|
|
19049
18985
|
return first;
|
|
19050
18986
|
}
|
|
19051
|
-
function sameEmailOtpRuntimePolicyScope(left, right) {
|
|
19052
|
-
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
19053
|
-
}
|
|
19054
18987
|
function nonEmptyEmailOtpEcdsaChainTargets(continuity) {
|
|
19055
18988
|
const [first, ...rest] = continuity.signers;
|
|
19056
18989
|
if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
|
|
@@ -19261,7 +19194,7 @@ async function provisionEmailOtpExistingKeySessions(args) {
|
|
|
19261
19194
|
},
|
|
19262
19195
|
authorization: additionalAuthorization
|
|
19263
19196
|
};
|
|
19264
|
-
const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(
|
|
19197
|
+
const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(provisionEmailOtpExistingKeySessionForTarget.bind(null, additionalContext)))];
|
|
19265
19198
|
if (!primaryBootstrap) throw new Error("Email OTP ECDSA activation did not return a primary warm session");
|
|
19266
19199
|
return bootstraps;
|
|
19267
19200
|
}
|
|
@@ -19283,9 +19216,6 @@ async function provisionEmailOtpExistingKeySessionForTarget(context, chainTarget
|
|
|
19283
19216
|
authorization: context.authorization
|
|
19284
19217
|
}));
|
|
19285
19218
|
}
|
|
19286
|
-
async function provisionEmailOtpAdditionalExistingKeySessionForTarget(context, chainTarget) {
|
|
19287
|
-
return await provisionEmailOtpExistingKeySessionForTarget(context, chainTarget);
|
|
19288
|
-
}
|
|
19289
19219
|
async function provisionEmailOtpExplicitExportSession(args) {
|
|
19290
19220
|
return await args.ports.provisionEmailOtpEcdsaExplicitExportSession(buildEmailOtpExplicitExportEcdsaActivation({
|
|
19291
19221
|
relayerUrl: args.relayerUrl,
|
|
@@ -19827,7 +19757,7 @@ async function restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecord(args)
|
|
|
19827
19757
|
if (sealedRecord.authMethod !== "email_otp" || sealedRecord.curve !== "ecdsa") return null;
|
|
19828
19758
|
const materialActivation = sealedRecord.roleLocalMaterialRef.materialActivation;
|
|
19829
19759
|
return await args.withThresholdEcdsaSigningQueue({
|
|
19830
|
-
queueKey:
|
|
19760
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
|
|
19831
19761
|
walletId: toWalletId(sealedRecord.walletId),
|
|
19832
19762
|
enabled: true,
|
|
19833
19763
|
task: async () => await restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecordInQueue(args)
|
|
@@ -20116,7 +20046,7 @@ function buildExportChallengeRoutePlan(ports, args) {
|
|
|
20116
20046
|
});
|
|
20117
20047
|
}
|
|
20118
20048
|
}
|
|
20119
|
-
function buildEcdsaExportVerificationRoutePlan(
|
|
20049
|
+
function buildEcdsaExportVerificationRoutePlan(_authorization) {
|
|
20120
20050
|
return buildEmailOtpRoutePlan({
|
|
20121
20051
|
routeFamily: "login",
|
|
20122
20052
|
operation: WALLET_EMAIL_OTP_EXPORT_OPERATION
|
|
@@ -20309,15 +20239,6 @@ var EmailOtpExportRecoveryRuntime = class {
|
|
|
20309
20239
|
buildSigningSessionRoutePlan: buildEmailOtpSigningSessionRoutePlan
|
|
20310
20240
|
};
|
|
20311
20241
|
}
|
|
20312
|
-
signingSessionWorkerPorts() {
|
|
20313
|
-
return {
|
|
20314
|
-
getSignerWorkerContext: this.ports.getSignerWorkerContext,
|
|
20315
|
-
requireRelayUrl: this.ports.requireRelayUrl,
|
|
20316
|
-
requireSigningSessionSealGroupId: this.ports.requireSigningSessionSealGroupId,
|
|
20317
|
-
resolveSelectedWalletAuthority: this.ports.resolveSelectedWalletAuthority,
|
|
20318
|
-
buildSigningSessionRoutePlan: buildEmailOtpSigningSessionRoutePlan
|
|
20319
|
-
};
|
|
20320
|
-
}
|
|
20321
20242
|
};
|
|
20322
20243
|
//#endregion
|
|
20323
20244
|
//#region src/core/signingEngine/session/emailOtp/runtimeConfig.ts
|
|
@@ -20386,33 +20307,6 @@ var EmailOtpSealedRefreshPolicy = class {
|
|
|
20386
20307
|
chainTarget: purpose.chainTarget
|
|
20387
20308
|
};
|
|
20388
20309
|
}
|
|
20389
|
-
/** Corrupt persisted state or explicit user removal only. Expiry and
|
|
20390
|
-
* exhaustion never reach here. */
|
|
20391
|
-
async deleteEmailOtpDurableSealedSessionRecord(args) {
|
|
20392
|
-
const thresholdSessionId = String(args.purpose.thresholdSessionId || "").trim();
|
|
20393
|
-
if (!thresholdSessionId) {
|
|
20394
|
-
this.ports.clearEcdsaRestoreCaches();
|
|
20395
|
-
return;
|
|
20396
|
-
}
|
|
20397
|
-
const command = createDeleteDurableSealedSessionCommand({
|
|
20398
|
-
durableRecord: {
|
|
20399
|
-
authMethod: "email_otp",
|
|
20400
|
-
curve: "ecdsa",
|
|
20401
|
-
thresholdSessionId,
|
|
20402
|
-
chainTarget: args.purpose.chainTarget
|
|
20403
|
-
},
|
|
20404
|
-
deleteReason: args.deleteReason,
|
|
20405
|
-
preserveResolvedIdentity: false
|
|
20406
|
-
});
|
|
20407
|
-
await this.ports.deleteDurableSealedSessionRecord(command).catch(() => void 0);
|
|
20408
|
-
this.ports.clearEcdsaRestoreCaches();
|
|
20409
|
-
}
|
|
20410
|
-
async recordSessionMaterialClaimed(purpose, result) {
|
|
20411
|
-
await this.recordSessionPolicyResult({
|
|
20412
|
-
purpose,
|
|
20413
|
-
result
|
|
20414
|
-
});
|
|
20415
|
-
}
|
|
20416
20310
|
async recordSessionUseConsumed(purpose, result) {
|
|
20417
20311
|
await this.recordSessionPolicyResult({
|
|
20418
20312
|
purpose,
|
|
@@ -20806,10 +20700,9 @@ function warmSessionMaterialTarget(target) {
|
|
|
20806
20700
|
};
|
|
20807
20701
|
}
|
|
20808
20702
|
//#endregion
|
|
20809
|
-
//#region src/core/signingEngine/session/emailOtp/
|
|
20810
|
-
var
|
|
20703
|
+
//#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
|
|
20704
|
+
var EmailOtpWalletSessionCoordinator = class {
|
|
20811
20705
|
constructor(deps) {
|
|
20812
|
-
this.deps = deps;
|
|
20813
20706
|
this.sealedRefreshDiagnosticLogAtMsByKey = /* @__PURE__ */ new Map();
|
|
20814
20707
|
this.runtimeConfig = new EmailOtpRuntimeConfig({
|
|
20815
20708
|
configs: deps.configs,
|
|
@@ -20856,7 +20749,6 @@ var EmailOtpWalletSessionRuntime = class {
|
|
|
20856
20749
|
});
|
|
20857
20750
|
const warmSessionWorkerClient = createEmailOtpWarmSessionWorkerClient({ worker: deps.signerWorkerManager });
|
|
20858
20751
|
this.sealedRefreshPolicy = new EmailOtpSealedRefreshPolicy({
|
|
20859
|
-
deleteDurableSealedSessionRecord: deps.deleteDurableSealedSessionRecord,
|
|
20860
20752
|
updateExactSealedSessionPolicy: deps.updateExactSealedSessionPolicy,
|
|
20861
20753
|
clearEcdsaRestoreCaches: () => this.clearEcdsaRestoreCaches()
|
|
20862
20754
|
});
|
|
@@ -20928,49 +20820,6 @@ var EmailOtpWalletSessionRuntime = class {
|
|
|
20928
20820
|
}
|
|
20929
20821
|
};
|
|
20930
20822
|
//#endregion
|
|
20931
|
-
//#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
|
|
20932
|
-
var EmailOtpWalletSessionCoordinator = class {
|
|
20933
|
-
constructor(deps) {
|
|
20934
|
-
this.runtime = new EmailOtpWalletSessionRuntime(deps);
|
|
20935
|
-
}
|
|
20936
|
-
persistEcdsaSessionForRefresh(args) {
|
|
20937
|
-
return this.runtime.persistEcdsaSessionForRefresh(args);
|
|
20938
|
-
}
|
|
20939
|
-
discoverPersistedSessionsForWallet(args) {
|
|
20940
|
-
return this.runtime.discoverPersistedSessionsForWallet(args);
|
|
20941
|
-
}
|
|
20942
|
-
restorePersistedSessionForSigning(args) {
|
|
20943
|
-
return this.runtime.restorePersistedSessionForSigning(args);
|
|
20944
|
-
}
|
|
20945
|
-
readWarmSessionStatusOnly(target) {
|
|
20946
|
-
return this.runtime.readWarmSessionStatusOnly(target);
|
|
20947
|
-
}
|
|
20948
|
-
consumeWarmSessionUses(args) {
|
|
20949
|
-
return this.runtime.consumeWarmSessionUses(args);
|
|
20950
|
-
}
|
|
20951
|
-
clearVolatileWarmSessionMaterial(target) {
|
|
20952
|
-
return this.runtime.clearVolatileWarmSessionMaterial(target);
|
|
20953
|
-
}
|
|
20954
|
-
async requestTransactionSigningChallenge(args) {
|
|
20955
|
-
return await this.runtime.requestTransactionSigningChallenge(args);
|
|
20956
|
-
}
|
|
20957
|
-
async requestExportChallenge(args) {
|
|
20958
|
-
return await this.runtime.requestExportChallenge(args);
|
|
20959
|
-
}
|
|
20960
|
-
exportEcdsaKeyWithDurableAuthorization(args) {
|
|
20961
|
-
return this.runtime.exportEcdsaKeyWithDurableAuthorization(args);
|
|
20962
|
-
}
|
|
20963
|
-
exportEd25519YaoSeedWithFreshEmailOtpLane(args) {
|
|
20964
|
-
return this.runtime.exportEd25519YaoSeedWithFreshEmailOtpLane(args);
|
|
20965
|
-
}
|
|
20966
|
-
loginWithEcdsaCapabilityForSigning(args) {
|
|
20967
|
-
return this.runtime.loginWithEcdsaCapabilityForSigning(args);
|
|
20968
|
-
}
|
|
20969
|
-
loginWithEcdsaCapabilityInternal(args) {
|
|
20970
|
-
return this.runtime.loginWithEcdsaCapabilityInternal(args);
|
|
20971
|
-
}
|
|
20972
|
-
};
|
|
20973
|
-
//#endregion
|
|
20974
20823
|
//#region src/core/signingEngine/assembly/ports/stepUpRuntime.ts
|
|
20975
20824
|
function createStepUpRuntime(args) {
|
|
20976
20825
|
const emailOtpSessions = new EmailOtpWalletSessionCoordinator({
|
|
@@ -21006,7 +20855,6 @@ function createStepUpRuntime(args) {
|
|
|
21006
20855
|
listExactSealedSessionsForWallet: args.sealedSessionStore.listExactSealedSessionsForWallet,
|
|
21007
20856
|
acquireSigningSessionRestoreLease: args.sealedSessionStore.acquireSigningSessionRestoreLease,
|
|
21008
20857
|
releaseSigningSessionRestoreLease: args.sealedSessionStore.releaseSigningSessionRestoreLease,
|
|
21009
|
-
deleteDurableSealedSessionRecord: args.sealedSessionStore.deleteDurableSealedSessionRecord,
|
|
21010
20858
|
updateExactSealedSessionPolicy: args.sealedSessionStore.updateExactSealedSessionPolicy
|
|
21011
20859
|
});
|
|
21012
20860
|
const passkeyMpcSession = createWarmSessionAwarePasskeyMpcSession({
|
|
@@ -22403,11 +22251,9 @@ var BrowserSigningSurface = class {
|
|
|
22403
22251
|
getNearSigningDeps: () => this.enginePorts.nearSigningDeps,
|
|
22404
22252
|
getEvmFamilySigningDeps: () => this.enginePorts.tempoSigningDeps
|
|
22405
22253
|
});
|
|
22406
|
-
this.signingRuntime = signingRuntime;
|
|
22407
22254
|
runtimePortsForUiConfirm.current = signingRuntime.runtimePorts;
|
|
22408
22255
|
const ecdsaExportArtifactStore = signingRuntime.state.ecdsaSessions;
|
|
22409
22256
|
this.runtimePorts = signingRuntime.runtimePorts;
|
|
22410
|
-
this.thresholdEcdsaExportArtifactByLane = signingRuntime.state.ecdsaSessions.exportArtifactsByLane;
|
|
22411
22257
|
const stepUpRuntime = createBrowserStepUpRuntime({
|
|
22412
22258
|
seamsWebConfigs: this.seamsWebConfigs,
|
|
22413
22259
|
touchIdPrompt: this.touchIdPrompt,
|
|
@@ -22858,9 +22704,6 @@ var BrowserSigningSurface = class {
|
|
|
22858
22704
|
throw new Error("Unsupported Ed25519 public capability auth method");
|
|
22859
22705
|
}
|
|
22860
22706
|
}
|
|
22861
|
-
hasActiveNearEd25519YaoMaterial(args) {
|
|
22862
|
-
return this.enginePorts.ed25519YaoActiveClients.resolve(args) !== null;
|
|
22863
|
-
}
|
|
22864
22707
|
async readPersistedAvailableSigningLanes(args) {
|
|
22865
22708
|
return await readPersistedAvailableSigningLanes(this.sessionPublicDeps, args);
|
|
22866
22709
|
}
|
|
@@ -22993,15 +22836,16 @@ var BrowserSigningSurface = class {
|
|
|
22993
22836
|
return { requestOperation: requestWalletCustodyCeremonyOperation.bind(void 0, workerContext) };
|
|
22994
22837
|
}
|
|
22995
22838
|
/**
|
|
22996
|
-
*
|
|
22997
|
-
*
|
|
22998
|
-
*
|
|
22999
|
-
*
|
|
23000
|
-
*
|
|
22839
|
+
* Parks the wallet custody seed inside the ceremony worker for the lifetime of
|
|
22840
|
+
* the just-activated owner Wallet Session, reusing the factor secret this
|
|
22841
|
+
* registration or unlock already collected. Failure is absorbed: the wallet
|
|
22842
|
+
* stays usable, and device linking fails closed with `wallet_unlock_required`
|
|
22843
|
+
* until the next unlock.
|
|
23001
22844
|
*/
|
|
23002
22845
|
async establishUnlockedWalletEd25519ExportRootCapabilityV1(input) {
|
|
23003
22846
|
try {
|
|
23004
|
-
|
|
22847
|
+
const binding = input.existingEnvelope.binding;
|
|
22848
|
+
if (!isWalletCustodySeedBinding(binding) && binding.kind !== "ed25519_yao_client_root_v1") return;
|
|
23005
22849
|
if (input.existingEnvelope.factor.kind !== "passkey") throw new Error("unlocked export-root capability requires a passkey envelope factor");
|
|
23006
22850
|
const existingFactorSecret = base64UrlDecode(input.passkeyPrfFirstB64u);
|
|
23007
22851
|
try {
|
|
@@ -23021,7 +22865,7 @@ var BrowserSigningSurface = class {
|
|
|
23021
22865
|
}
|
|
23022
22866
|
}
|
|
23023
22867
|
/**
|
|
23024
|
-
* Stores
|
|
22868
|
+
* Stores the reseal of an unbound envelope under the method that opened it.
|
|
23025
22869
|
*
|
|
23026
22870
|
* Absorbed the same way establishment is, and for the same reason: the V2 row
|
|
23027
22871
|
* still opens the wallet, so a failure here costs a retry at the next unlock
|
|
@@ -23140,18 +22984,15 @@ var BrowserSigningSurface = class {
|
|
|
23140
22984
|
const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
|
|
23141
22985
|
const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
|
|
23142
22986
|
if (existingRehydration) {
|
|
23143
|
-
const
|
|
23144
|
-
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(
|
|
22987
|
+
const rebound = await existingRehydration;
|
|
22988
|
+
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
|
|
23145
22989
|
if (rehydrated) return rehydrated;
|
|
23146
22990
|
throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
|
|
23147
22991
|
}
|
|
23148
22992
|
const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
|
|
23149
22993
|
this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
|
|
23150
22994
|
try {
|
|
23151
|
-
|
|
23152
|
-
const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
|
|
23153
|
-
if (rehydrated) return rehydrated;
|
|
23154
|
-
throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
|
|
22995
|
+
return (await rehydration).material;
|
|
23155
22996
|
} finally {
|
|
23156
22997
|
if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
|
|
23157
22998
|
}
|
|
@@ -24477,7 +24318,14 @@ var BrowserSigningSurface = class {
|
|
|
24477
24318
|
passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
|
|
24478
24319
|
} : { kind: "unavailable" }
|
|
24479
24320
|
});
|
|
24480
|
-
if (liveHydration.kind === "live")
|
|
24321
|
+
if (liveHydration.kind === "live") {
|
|
24322
|
+
const material = await this.resolveActiveNearEd25519YaoSigningLane(subject);
|
|
24323
|
+
if (!material) throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
|
|
24324
|
+
return {
|
|
24325
|
+
subject,
|
|
24326
|
+
material
|
|
24327
|
+
};
|
|
24328
|
+
}
|
|
24481
24329
|
if (liveHydration.kind === "rehydrated") {
|
|
24482
24330
|
if (!warmSessionClaim.ok) {
|
|
24483
24331
|
liveHydration.activeClient.dispose();
|
|
@@ -24510,8 +24358,12 @@ var BrowserSigningSurface = class {
|
|
|
24510
24358
|
subject,
|
|
24511
24359
|
walletSessionState
|
|
24512
24360
|
});
|
|
24513
|
-
|
|
24514
|
-
|
|
24361
|
+
const published = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
|
|
24362
|
+
if (!published) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
|
|
24363
|
+
return {
|
|
24364
|
+
subject: reboundSubject,
|
|
24365
|
+
material: published
|
|
24366
|
+
};
|
|
24515
24367
|
} catch (error) {
|
|
24516
24368
|
liveHydration.activeClient.dispose();
|
|
24517
24369
|
throw error;
|
|
@@ -24658,7 +24510,7 @@ var BrowserSigningSurface = class {
|
|
|
24658
24510
|
async withExactEd25519MaterialOwner(args) {
|
|
24659
24511
|
return await withThresholdEd25519CommitQueue({
|
|
24660
24512
|
queueByKey: this.thresholdEd25519CommitQueueByKey,
|
|
24661
|
-
queueKey:
|
|
24513
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
|
|
24662
24514
|
nearAccountId: args.nearAccountId,
|
|
24663
24515
|
enabled: true,
|
|
24664
24516
|
task: args.task
|
|
@@ -24811,8 +24663,8 @@ var BrowserSigningSurface = class {
|
|
|
24811
24663
|
}, args.walletSession, args.providerSubjectId, activation);
|
|
24812
24664
|
}
|
|
24813
24665
|
/**
|
|
24814
|
-
*
|
|
24815
|
-
*
|
|
24666
|
+
* What an owner authority needs to have its Ed25519 runtime built inside the
|
|
24667
|
+
* unlock that verifies its factor.
|
|
24816
24668
|
*
|
|
24817
24669
|
* Assembled here rather than by the caller because every field is read off
|
|
24818
24670
|
* the exact authority projection - the identity, its runtime policy scope,
|
|
@@ -24854,7 +24706,7 @@ var BrowserSigningSurface = class {
|
|
|
24854
24706
|
};
|
|
24855
24707
|
}
|
|
24856
24708
|
/**
|
|
24857
|
-
*
|
|
24709
|
+
* Activate the runtime an owner authority's unlock built.
|
|
24858
24710
|
*
|
|
24859
24711
|
* The identity it is checked against comes from the same authority projection
|
|
24860
24712
|
* that produced the unlock request, not from the bootstrap being checked -
|
|
@@ -24957,7 +24809,7 @@ var BrowserSigningSurface = class {
|
|
|
24957
24809
|
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");
|
|
24958
24810
|
return await withThresholdEd25519CommitQueue({
|
|
24959
24811
|
queueByKey: this.thresholdEd25519CommitQueueByKey,
|
|
24960
|
-
queueKey:
|
|
24812
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
|
|
24961
24813
|
nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
|
|
24962
24814
|
enabled: args.commitQueue === "acquire",
|
|
24963
24815
|
task: async () => {
|
|
@@ -25177,7 +25029,7 @@ var BrowserSigningSurface = class {
|
|
|
25177
25029
|
this.ed25519YaoPageLifecycleOwner.dispose();
|
|
25178
25030
|
}
|
|
25179
25031
|
clearThresholdEcdsaSigningQueue() {
|
|
25180
|
-
|
|
25032
|
+
clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
|
|
25181
25033
|
}
|
|
25182
25034
|
async clearLinkedEcdsaHolderMaterials() {
|
|
25183
25035
|
await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
|
|
@@ -25240,8 +25092,8 @@ async function persistFinalizedPasskeyAuthMethodV1(args) {
|
|
|
25240
25092
|
await IndexedDBManager.upsertWalletAuthMethod(localPasskeyAuthMethodFromFinalizeV1(args));
|
|
25241
25093
|
}
|
|
25242
25094
|
/**
|
|
25243
|
-
*
|
|
25244
|
-
*
|
|
25095
|
+
* The full local install for a passkey added to a wallet that registered with
|
|
25096
|
+
* another family.
|
|
25245
25097
|
*
|
|
25246
25098
|
* Three records, and unlock needs all of them. It reads the profile, then the
|
|
25247
25099
|
* profile's authenticators, then keeps only those whose credential belongs to
|
|
@@ -25482,7 +25334,7 @@ async function linkWalletPasskeyCustody(input) {
|
|
|
25482
25334
|
//#endregion
|
|
25483
25335
|
//#region src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.ts
|
|
25484
25336
|
/**
|
|
25485
|
-
*
|
|
25337
|
+
* The source claim a same-device addition puts in its intent.
|
|
25486
25338
|
*
|
|
25487
25339
|
* The intent digest is what the fresh source proof signs, so every identity the
|
|
25488
25340
|
* proof is meant to bind has to be inside it. The server resolves the true
|
|
@@ -25675,7 +25527,7 @@ async function addPasskeyWalletAuthMethodInternal(args) {
|
|
|
25675
25527
|
}
|
|
25676
25528
|
}
|
|
25677
25529
|
/**
|
|
25678
|
-
*
|
|
25530
|
+
* The `email_otp_to_passkey` addition branch.
|
|
25679
25531
|
*
|
|
25680
25532
|
* The Email OTP method that already unlocks this wallet authorizes adding a
|
|
25681
25533
|
* passkey. Three things stay exactly as they are in the Passkey-source branch,
|
|
@@ -25797,7 +25649,7 @@ async function addPasskeyWalletAuthMethod(args) {
|
|
|
25797
25649
|
//#endregion
|
|
25798
25650
|
//#region src/SeamsWeb/operations/authMethods/revokeAuthMethod.ts
|
|
25799
25651
|
/**
|
|
25800
|
-
*
|
|
25652
|
+
* Remove one auth method using a different active one.
|
|
25801
25653
|
*
|
|
25802
25654
|
* The inverse of the two addition branches, and the reason they are safe to
|
|
25803
25655
|
* offer: a wallet that can gain a second way in must be able to lose one it no
|
|
@@ -25987,8 +25839,8 @@ async function revokeWalletAuthMethodOperation(args) {
|
|
|
25987
25839
|
//#endregion
|
|
25988
25840
|
//#region src/core/signingEngine/walletCustody/emailOtpLink.ts
|
|
25989
25841
|
/**
|
|
25990
|
-
*
|
|
25991
|
-
*
|
|
25842
|
+
* Sealing the wallet's existing custody seed under a newly verified
|
|
25843
|
+
* Email OTP factor.
|
|
25992
25844
|
*
|
|
25993
25845
|
* The mirror of `passkeyLink`, and deliberately the same shape: open the source
|
|
25994
25846
|
* envelope with the factor secret the caller already collected, reseal the same
|
|
@@ -26361,7 +26213,7 @@ function warnIfSameOriginWallet(walletOrigin) {
|
|
|
26361
26213
|
}
|
|
26362
26214
|
async function createWalletIframeRouter(args) {
|
|
26363
26215
|
warnIfSameOriginWallet(args.walletOrigin);
|
|
26364
|
-
const { WalletIframeRouter } = await import("./router-
|
|
26216
|
+
const { WalletIframeRouter } = await import("./router-B4ZWFy9E.js");
|
|
26365
26217
|
const signingSessionPersistenceMode = args.configs.signing.sessionPersistenceMode;
|
|
26366
26218
|
return new WalletIframeRouter({
|
|
26367
26219
|
walletOrigin: args.walletOrigin,
|
|
@@ -26662,12 +26514,12 @@ function createSigningRuntimeStatePorts() {
|
|
|
26662
26514
|
}
|
|
26663
26515
|
function createSigningRuntime(deps) {
|
|
26664
26516
|
const getWarmSessions = memoizeService(async () => {
|
|
26665
|
-
const { createWarmSessionHydrationService } = await import("./warmSessionHydration-
|
|
26517
|
+
const { createWarmSessionHydrationService } = await import("./warmSessionHydration-Os8niEm7.js");
|
|
26666
26518
|
return createWarmSessionHydrationService({ getWarmSessionMaterialWriter: deps.ui.warmSessions.getWarmSessionMaterialWriter });
|
|
26667
26519
|
});
|
|
26668
26520
|
const warmSessions = { hydrateSigningSession: async (input) => (await getWarmSessions()).hydrateSigningSession(input) };
|
|
26669
26521
|
const getRegistrationAccounts = memoizeService(async () => {
|
|
26670
|
-
const { createRegistrationAccountsService } = await import("./registrationAccounts-
|
|
26522
|
+
const { createRegistrationAccountsService } = await import("./registrationAccounts-DmWPzf3T.js");
|
|
26671
26523
|
return createRegistrationAccountsService(deps.registration.accountLifecycle);
|
|
26672
26524
|
});
|
|
26673
26525
|
const registrationAccounts = {
|
|
@@ -26691,7 +26543,7 @@ function createSigningRuntime(deps) {
|
|
|
26691
26543
|
rollbackWalletEd25519SignerRegistration: async (receipt) => (await getRegistrationAccounts()).rollbackWalletEd25519SignerRegistration(receipt)
|
|
26692
26544
|
};
|
|
26693
26545
|
const getEcdsaWalletRecords = memoizeService(async () => {
|
|
26694
|
-
const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-
|
|
26546
|
+
const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-D42rtA9z.js");
|
|
26695
26547
|
return createEcdsaWalletRecordsService({ accountLifecycle: deps.registration.accountLifecycle });
|
|
26696
26548
|
});
|
|
26697
26549
|
const ecdsaWalletRecords = {
|
|
@@ -26702,32 +26554,32 @@ function createSigningRuntime(deps) {
|
|
|
26702
26554
|
storeWalletEmailOtpEcdsaRegistrationData: async (input) => (await getEcdsaWalletRecords()).storeWalletEmailOtpEcdsaRegistrationData(input)
|
|
26703
26555
|
};
|
|
26704
26556
|
const nearSigning = { signNear: async (request) => {
|
|
26705
|
-
const { signNear } = await import("./signNear-
|
|
26557
|
+
const { signNear } = await import("./signNear-Bmb2fj_a.js").then((n) => n.n);
|
|
26706
26558
|
return signNear(deps.signing.near.getDeps(), request);
|
|
26707
26559
|
} };
|
|
26708
26560
|
const evmFamilySigning = {
|
|
26709
26561
|
signEvmFamily: async (args) => {
|
|
26710
|
-
const { signEvmFamily } = await import("./signEvmFamily-
|
|
26562
|
+
const { signEvmFamily } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26711
26563
|
return signEvmFamily(deps.signing.evmFamily.getDeps(), args);
|
|
26712
26564
|
},
|
|
26713
26565
|
reportTempoBroadcastAccepted: async (args) => {
|
|
26714
|
-
const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-
|
|
26566
|
+
const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26715
26567
|
return reportTempoBroadcastAccepted(deps.signing.evmFamily.getDeps(), args);
|
|
26716
26568
|
},
|
|
26717
26569
|
reportTempoBroadcastRejected: async (args) => {
|
|
26718
|
-
const { reportTempoBroadcastRejected } = await import("./signEvmFamily-
|
|
26570
|
+
const { reportTempoBroadcastRejected } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26719
26571
|
return reportTempoBroadcastRejected(deps.signing.evmFamily.getDeps(), args);
|
|
26720
26572
|
},
|
|
26721
26573
|
reportTempoFinalized: async (args) => {
|
|
26722
|
-
const { reportTempoFinalized } = await import("./signEvmFamily-
|
|
26574
|
+
const { reportTempoFinalized } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26723
26575
|
return reportTempoFinalized(deps.signing.evmFamily.getDeps(), args);
|
|
26724
26576
|
},
|
|
26725
26577
|
reportTempoDroppedOrReplaced: async (args) => {
|
|
26726
|
-
const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-
|
|
26578
|
+
const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26727
26579
|
return reportTempoDroppedOrReplaced(deps.signing.evmFamily.getDeps(), args);
|
|
26728
26580
|
},
|
|
26729
26581
|
reconcileTempoNonceLane: async (args) => {
|
|
26730
|
-
const { reconcileTempoNonceLane } = await import("./signEvmFamily-
|
|
26582
|
+
const { reconcileTempoNonceLane } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
|
|
26731
26583
|
return reconcileTempoNonceLane(deps.signing.evmFamily.getDeps(), args);
|
|
26732
26584
|
}
|
|
26733
26585
|
};
|
|
@@ -26779,6 +26631,30 @@ function createBrowserSigningRuntime(args) {
|
|
|
26779
26631
|
});
|
|
26780
26632
|
}
|
|
26781
26633
|
//#endregion
|
|
26634
|
+
//#region src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.ts
|
|
26635
|
+
async function scheduleRestoredSessionPresignaturePrefills(args) {
|
|
26636
|
+
switch (args.state.kind) {
|
|
26637
|
+
case "active_session": break;
|
|
26638
|
+
case "wallet_unlocked_without_signing_session":
|
|
26639
|
+
if (args.state.reason !== "exhausted") return;
|
|
26640
|
+
break;
|
|
26641
|
+
case "wallet_locked":
|
|
26642
|
+
case "wallet_authenticated_identity_unresolvable":
|
|
26643
|
+
case "expired_session": return;
|
|
26644
|
+
default:
|
|
26645
|
+
args.state;
|
|
26646
|
+
return;
|
|
26647
|
+
}
|
|
26648
|
+
const walletSession = walletSessionRefFromSession({ walletId: args.state.walletId });
|
|
26649
|
+
const statusReads = new WalletSessionStatusReadScope();
|
|
26650
|
+
const prefills = [];
|
|
26651
|
+
for (const chainTarget of args.chainTargets) prefills.push(args.prefill({
|
|
26652
|
+
walletSession,
|
|
26653
|
+
chainTarget
|
|
26654
|
+
}, statusReads));
|
|
26655
|
+
await Promise.all(prefills);
|
|
26656
|
+
}
|
|
26657
|
+
//#endregion
|
|
26782
26658
|
//#region src/SeamsWeb/assembly/createBrowserSigningStores.ts
|
|
26783
26659
|
function createBrowserSigningStores(indexedDB) {
|
|
26784
26660
|
return {
|
|
@@ -26806,7 +26682,6 @@ function createBrowserSigningStores(indexedDB) {
|
|
|
26806
26682
|
listEcdsaSealedSessionsForWallet,
|
|
26807
26683
|
acquireSigningSessionRestoreLease,
|
|
26808
26684
|
releaseSigningSessionRestoreLease,
|
|
26809
|
-
deleteDurableSealedSessionRecord,
|
|
26810
26685
|
updateExactSealedSessionPolicy
|
|
26811
26686
|
},
|
|
26812
26687
|
ed25519YaoPublicCapabilityReferences: new IndexedDbEd25519YaoPublicCapabilityReferenceStore(indexedDB)
|
|
@@ -26826,6 +26701,58 @@ function initializeBrowserSigningRuntime(args) {
|
|
|
26826
26701
|
if (!(args.config.wallet.mode === "iframe" && !__isWalletIframeHostMode())) args.userPreferencesManager.initFromIndexedDB().catch(() => void 0);
|
|
26827
26702
|
}
|
|
26828
26703
|
//#endregion
|
|
26704
|
+
//#region src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.ts
|
|
26705
|
+
async function scheduleLinkedDevicePresignaturePrefill(args) {
|
|
26706
|
+
try {
|
|
26707
|
+
const scope = args.runtime.activationReceipt.normalSigning.scope;
|
|
26708
|
+
const material = buildRouterAbEcdsaDerivationSigningMaterialRef({ routerAbState: args.runtime.activationReceipt.normalSigning });
|
|
26709
|
+
const keyHandle = await deriveEvmFamilyEcdsaKeyHandle({
|
|
26710
|
+
ecdsaThresholdKeyId: scope.ecdsa_threshold_key_id,
|
|
26711
|
+
signingRootId: scope.signing_root_id,
|
|
26712
|
+
signingRootVersion: scope.signing_root_version
|
|
26713
|
+
});
|
|
26714
|
+
if (resolveLinkedEcdsaHolderRuntimeV1(args.runtime) !== args.runtime) return;
|
|
26715
|
+
const result = scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill({
|
|
26716
|
+
relayerUrl: args.relayerUrl,
|
|
26717
|
+
keyHandle: parseEcdsaKeyHandle(keyHandle),
|
|
26718
|
+
ecdsaThresholdKeyId: material.ecdsaThresholdKeyId,
|
|
26719
|
+
clientVerifyingShareB64u: material.clientVerifier33B64u,
|
|
26720
|
+
clientSigningMaterial: createLinkedHolderClientSigningMaterialSource(args.runtime.holderHandleId),
|
|
26721
|
+
thresholdEcdsaPublicKeyB64u: material.thresholdVerifier33B64u,
|
|
26722
|
+
relayerVerifyingShareB64u: material.serverVerifier33B64u,
|
|
26723
|
+
credential: {
|
|
26724
|
+
kind: "wallet_session_opaque",
|
|
26725
|
+
walletSessionToken: args.operationCredential.token
|
|
26726
|
+
},
|
|
26727
|
+
authorization: {
|
|
26728
|
+
kind: "reusable_wallet_session",
|
|
26729
|
+
wallet_session_id: args.operationCredential.walletSessionId
|
|
26730
|
+
},
|
|
26731
|
+
materialActivation: routerAbMpcMaterialActivationRefToWire(args.runtime.materialActivation),
|
|
26732
|
+
routerAbEcdsaDerivationPoolFill: {
|
|
26733
|
+
kind: "router_ab_ecdsa_derivation_signing_worker_pool",
|
|
26734
|
+
scope,
|
|
26735
|
+
ceremonyExpiresAtMs: args.expiresAtMs,
|
|
26736
|
+
materialExpiresAtMs: Date.now() + MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS
|
|
26737
|
+
},
|
|
26738
|
+
workerCtx: args.workerCtx
|
|
26739
|
+
});
|
|
26740
|
+
emitSigningSessionFlowTrace("evm-family", {
|
|
26741
|
+
event: "ecdsa_linked_device_prefill",
|
|
26742
|
+
scheduled: result.scheduled,
|
|
26743
|
+
reason: result.reason,
|
|
26744
|
+
depth: result.depth,
|
|
26745
|
+
targetDepth: result.targetDepth
|
|
26746
|
+
});
|
|
26747
|
+
} catch {
|
|
26748
|
+
emitSigningSessionFlowTrace("evm-family", {
|
|
26749
|
+
event: "ecdsa_linked_device_prefill",
|
|
26750
|
+
scheduled: false,
|
|
26751
|
+
reason: "unexpected_error"
|
|
26752
|
+
});
|
|
26753
|
+
}
|
|
26754
|
+
}
|
|
26755
|
+
//#endregion
|
|
26829
26756
|
//#region src/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.ts
|
|
26830
26757
|
function assertNeverNormalSigning(value) {
|
|
26831
26758
|
throw new Error(`Unexpected Router A/B normal-signing config branch: ${String(value)}`);
|
|
@@ -27276,7 +27203,7 @@ async function collectFreshLocalPasskeyUnlockCredential(args) {
|
|
|
27276
27203
|
//#endregion
|
|
27277
27204
|
//#region src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.ts
|
|
27278
27205
|
const ecdsaCapabilityManifestStore$1 = new IndexedDbEcdsaCapabilityManifestStore();
|
|
27279
|
-
async function
|
|
27206
|
+
async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
27280
27207
|
const resolved = await ecdsaCapabilityManifestStore$1.listActiveWalletCapabilitySubjects(walletId);
|
|
27281
27208
|
if (resolved.kind === "persistence_unavailable") return {
|
|
27282
27209
|
kind: "failed",
|
|
@@ -27299,9 +27226,6 @@ async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
|
27299
27226
|
subjects
|
|
27300
27227
|
};
|
|
27301
27228
|
}
|
|
27302
|
-
async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
|
|
27303
|
-
return await listEvmFamilyEcdsaWalletUnlockSubjects(walletId);
|
|
27304
|
-
}
|
|
27305
27229
|
async function resolveEcdsaActivationJournalSelectors(walletId) {
|
|
27306
27230
|
return await ecdsaCapabilityManifestStore$1.listWalletActivationJournalSelectors(walletId);
|
|
27307
27231
|
}
|
|
@@ -27803,27 +27727,6 @@ function walletAuthMethodBindingFromRecord(record) {
|
|
|
27803
27727
|
default: return null;
|
|
27804
27728
|
}
|
|
27805
27729
|
}
|
|
27806
|
-
async function exactPasskeyWalletAuthMethodForCredential(args) {
|
|
27807
|
-
const matches = (await IndexedDBManager.listWalletAuthMethodsV2ForWallet(String(args.walletId))).filter((record) => record.kind === "passkey" && record.status === "active" && record.walletId === args.walletId && String(record.rpId) === args.rpId && String(record.credentialIdB64u) === args.credentialIdB64u);
|
|
27808
|
-
const [record] = matches;
|
|
27809
|
-
if (matches.length !== 1 || !record) throw new Error("[login] passkey authority requires one exact active V2 auth method");
|
|
27810
|
-
return record;
|
|
27811
|
-
}
|
|
27812
|
-
async function exactPasskeyWalletAuthAuthorityRefForCredential(args) {
|
|
27813
|
-
const record = await exactPasskeyWalletAuthMethodForCredential(args);
|
|
27814
|
-
return await walletAuthAuthorityRef({ authority: {
|
|
27815
|
-
walletId: record.walletId,
|
|
27816
|
-
factor: {
|
|
27817
|
-
kind: "passkey",
|
|
27818
|
-
credentialIdB64u: record.credentialIdB64u
|
|
27819
|
-
},
|
|
27820
|
-
verifier: {
|
|
27821
|
-
kind: "webauthn",
|
|
27822
|
-
rpId: record.rpId
|
|
27823
|
-
},
|
|
27824
|
-
bindingId: record.walletAuthMethodId
|
|
27825
|
-
} });
|
|
27826
|
-
}
|
|
27827
27730
|
function walletAuthAuthorityForSelectedPasskeyMethod(record) {
|
|
27828
27731
|
return {
|
|
27829
27732
|
walletId: record.walletId,
|
|
@@ -28918,12 +28821,21 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
|
|
|
28918
28821
|
...providerIdentity ? { providerIdentity } : {}
|
|
28919
28822
|
});
|
|
28920
28823
|
const ecdsaMaterial = linkedDeviceEcdsaMaterial(openedMaterials);
|
|
28921
|
-
if (ecdsaMaterial)
|
|
28922
|
-
|
|
28923
|
-
|
|
28924
|
-
|
|
28925
|
-
|
|
28926
|
-
|
|
28824
|
+
if (ecdsaMaterial) {
|
|
28825
|
+
const { runtime } = await activateLinkedDeviceEcdsaHolderRuntime({
|
|
28826
|
+
context: args.context,
|
|
28827
|
+
selection,
|
|
28828
|
+
factorAuthority,
|
|
28829
|
+
material: ecdsaMaterial
|
|
28830
|
+
});
|
|
28831
|
+
scheduleLinkedDevicePresignaturePrefill({
|
|
28832
|
+
runtime,
|
|
28833
|
+
operationCredential: args.operationCredential,
|
|
28834
|
+
expiresAtMs: args.walletSession.expiresAtMs,
|
|
28835
|
+
relayerUrl,
|
|
28836
|
+
workerCtx: args.context.signingEngine.getSignerWorkerContext()
|
|
28837
|
+
});
|
|
28838
|
+
}
|
|
28927
28839
|
const ed25519Material = linkedDeviceEd25519Material(openedMaterials);
|
|
28928
28840
|
if (ed25519Material) {
|
|
28929
28841
|
const session = await linkedDeviceEd25519SessionAfterLink({
|
|
@@ -28951,7 +28863,7 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
|
|
|
28951
28863
|
walletSessionId: String(args.operationCredential.walletSessionId),
|
|
28952
28864
|
expiresAtMs: args.walletSession.expiresAtMs
|
|
28953
28865
|
});
|
|
28954
|
-
else if (isWalletCustodySeedBinding(selection.exportRoot.envelope.binding)) await establishUnlockedWalletEd25519ExportRootCapabilityV1(walletCustodyCeremonyTransportFromWorkerContextV1(args.context.signingEngine.getSignerWorkerContext()), {
|
|
28866
|
+
else if (isWalletCustodySeedBinding(selection.exportRoot.envelope.binding) || selection.exportRoot.envelope.binding.kind === "ed25519_yao_client_root_v1") await establishUnlockedWalletEd25519ExportRootCapabilityV1(walletCustodyCeremonyTransportFromWorkerContextV1(args.context.signingEngine.getSignerWorkerContext()), {
|
|
28955
28867
|
existingEnvelope: selection.exportRoot.envelope,
|
|
28956
28868
|
existingFactorSecret: args.factorSecret32,
|
|
28957
28869
|
walletId: String(selection.walletId),
|
|
@@ -29188,7 +29100,7 @@ function pendingNearRegistrationMatchesAuthority(selection, activation, pending)
|
|
|
29188
29100
|
return pending.operation === "near_provisioning" && pending.phase === "joined" && pending.signerPlanKind === "near_ed25519_and_evm_family_ecdsa" && pending.walletId === selection.walletId && pending.walletAuthMethodId === selection.authMethod.walletAuthMethodId && mpcMaterialActivationRefsEqual(pending.localMaterial.ed25519.metadata.materialActivation, activation);
|
|
29189
29101
|
}
|
|
29190
29102
|
/**
|
|
29191
|
-
*
|
|
29103
|
+
* Install the Ed25519 runtime an owner authority's unlock just built.
|
|
29192
29104
|
*
|
|
29193
29105
|
* Everything is checked against the authority and method that were selected,
|
|
29194
29106
|
* before the handle is used: a session naming a different method, or a
|
|
@@ -29574,7 +29486,7 @@ async function unlockLinkedDevicePasskey(context, walletIdInput, options) {
|
|
|
29574
29486
|
});
|
|
29575
29487
|
}
|
|
29576
29488
|
}
|
|
29577
|
-
async function unlockInternal(context, subjectSet, options,
|
|
29489
|
+
async function unlockInternal(context, subjectSet, options, _completion) {
|
|
29578
29490
|
const { onEvent, onError, afterCall } = options || {};
|
|
29579
29491
|
const { signingEngine } = context;
|
|
29580
29492
|
const walletUnlockSelection = resolveLoginWalletUnlockSelectionForSubjectSet({
|
|
@@ -29723,10 +29635,6 @@ async function unlockInternal(context, subjectSet, options, completion) {
|
|
|
29723
29635
|
identity: walletIdentity,
|
|
29724
29636
|
context: storedCanonicalEcdsaContext
|
|
29725
29637
|
});
|
|
29726
|
-
buildConfiguredTargetKeyCompletion({
|
|
29727
|
-
context: storedCanonicalEcdsaContext,
|
|
29728
|
-
configuredTargets: warmupInput.selectedEcdsaTargets
|
|
29729
|
-
});
|
|
29730
29638
|
const canFirstBootstrapThresholdEcdsa = Boolean(managedRuntimeScopeBootstrap);
|
|
29731
29639
|
const warmupPlan = resolveThresholdLoginWarmupPlan({
|
|
29732
29640
|
selection: warmupInput.selection,
|
|
@@ -32217,7 +32125,7 @@ async function logout(context) {
|
|
|
32217
32125
|
}
|
|
32218
32126
|
async function resumeNearAfterSuccessfulUnlock(args) {
|
|
32219
32127
|
try {
|
|
32220
|
-
await (await import("./registration-
|
|
32128
|
+
await (await import("./registration-Ct_7LdGf.js").then((n) => n.o)).resumeNearRegistrationAfterUnlock(args);
|
|
32221
32129
|
} catch (error) {
|
|
32222
32130
|
console.warn("[login] NEAR continuation could not start", error instanceof Error ? error.message : "module unavailable");
|
|
32223
32131
|
} finally {
|
|
@@ -32341,7 +32249,7 @@ async function getRecentUnlocksDomain(deps) {
|
|
|
32341
32249
|
}
|
|
32342
32250
|
return await getRecentUnlocks(deps.getContext());
|
|
32343
32251
|
}
|
|
32344
|
-
async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args) {
|
|
32252
|
+
async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args, statusReads) {
|
|
32345
32253
|
if (deps.walletIframe.shouldUseWalletIframe()) return await (await deps.walletIframe.requireRouter(args.walletSession.walletId)).prefillRouterAbEcdsaDerivationPresignaturePool({
|
|
32346
32254
|
walletSession: args.walletSession,
|
|
32347
32255
|
options: {
|
|
@@ -32354,7 +32262,7 @@ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args)
|
|
|
32354
32262
|
walletId,
|
|
32355
32263
|
chainTarget: args.chainTarget,
|
|
32356
32264
|
...typeof args.waitForPoolReady === "boolean" ? { waitForPoolReady: args.waitForPoolReady } : {}
|
|
32357
|
-
},
|
|
32265
|
+
}, statusReads);
|
|
32358
32266
|
}
|
|
32359
32267
|
//#endregion
|
|
32360
32268
|
//#region src/SeamsWeb/publicApi/transactionReview.ts
|
|
@@ -32372,7 +32280,7 @@ function createAuthCapability(deps) {
|
|
|
32372
32280
|
getWalletSession: async (walletId) => await getWalletSessionDomain(deps.getWalletAuthDeps(), walletId),
|
|
32373
32281
|
getRecentUnlocks: async () => await getRecentUnlocksDomain(deps.getWalletAuthDeps()),
|
|
32374
32282
|
hasPasskeyCredential: async (walletId) => await hasPasskeyCredentialDomain(deps.getWalletAuthDeps(), walletId),
|
|
32375
|
-
prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args),
|
|
32283
|
+
prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args, new WalletSessionStatusReadScope()),
|
|
32376
32284
|
requestEmailOtpChallenge: deps.domain.requestEmailOtpChallenge,
|
|
32377
32285
|
requestEmailOtpSigningSessionChallenge: deps.domain.requestEmailOtpSigningSessionChallenge,
|
|
32378
32286
|
refreshEmailOtpSigningSession: deps.domain.refreshEmailOtpSigningSession,
|
|
@@ -32690,7 +32598,7 @@ async function requestDeviceV1(input) {
|
|
|
32690
32598
|
const publishableKey = input.options.publishableKey.trim();
|
|
32691
32599
|
const projectEnvironmentId = input.options.projectEnvironmentId.trim();
|
|
32692
32600
|
if (!publishableKey || !projectEnvironmentId) throw new Error("linked-device Passkey ceremony requires registration API credentials");
|
|
32693
|
-
const bodyDigestB64u =
|
|
32601
|
+
const bodyDigestB64u = await sha256DigestB64u(encodeRequestBodyV1(input.body));
|
|
32694
32602
|
const issuedAtMs = input.options.nowMs();
|
|
32695
32603
|
if (!Number.isSafeInteger(issuedAtMs) || issuedAtMs <= 0) throw new Error("linked-device request clock is invalid");
|
|
32696
32604
|
const expiresAtMs = issuedAtMs + LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1;
|
|
@@ -32798,7 +32706,7 @@ async function createPollingSubscriptionV1(input) {
|
|
|
32798
32706
|
function parseSessionMutationEnvelopeV1(raw) {
|
|
32799
32707
|
const record = asPlainDeviceLinkingResponse(raw);
|
|
32800
32708
|
if (record === null) throw new Error("linked-device response must be an object");
|
|
32801
|
-
if (!
|
|
32709
|
+
if (!hasExactResponseKeys(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
|
|
32802
32710
|
if (record.ok !== true) throw new Error("linked-device response outcome is invalid");
|
|
32803
32711
|
switch (record.outcome) {
|
|
32804
32712
|
case "applied": return {
|
|
@@ -32817,7 +32725,7 @@ function parseSessionMutationEnvelopeV1(raw) {
|
|
|
32817
32725
|
function parseTargetCredentialRegistrationResponseV1(raw) {
|
|
32818
32726
|
const record = asPlainDeviceLinkingResponse(raw);
|
|
32819
32727
|
if (record === null) throw new Error("linked-device target credential response must be an object");
|
|
32820
|
-
if (!
|
|
32728
|
+
if (!hasExactResponseKeys(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
|
|
32821
32729
|
if (record.ok !== true) throw new Error("linked-device target credential response outcome is invalid");
|
|
32822
32730
|
switch (record.outcome) {
|
|
32823
32731
|
case "applied": return parseTargetCredentialRegistrationResponseBranch(record, "applied");
|
|
@@ -32835,20 +32743,20 @@ function parseTargetCredentialRegistrationResponseBranch(record, outcome) {
|
|
|
32835
32743
|
function parseHttpFailureMessageV1(response) {
|
|
32836
32744
|
const record = asPlainDeviceLinkingResponse(response.body);
|
|
32837
32745
|
if (record === null || record.ok !== false) return `linked-device request failed with HTTP ${response.status}`;
|
|
32838
|
-
if (
|
|
32839
|
-
if (
|
|
32746
|
+
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}`;
|
|
32747
|
+
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}`;
|
|
32840
32748
|
switch (record.outcome) {
|
|
32841
32749
|
case "conflict":
|
|
32842
|
-
if (
|
|
32750
|
+
if (hasExactResponseKeys(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
|
|
32843
32751
|
break;
|
|
32844
32752
|
case "expired":
|
|
32845
|
-
if (
|
|
32753
|
+
if (hasExactResponseKeys(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
|
|
32846
32754
|
break;
|
|
32847
32755
|
case "invalid_state":
|
|
32848
|
-
if (
|
|
32756
|
+
if (hasExactResponseKeys(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
|
|
32849
32757
|
break;
|
|
32850
32758
|
case "integrity_error":
|
|
32851
|
-
if (
|
|
32759
|
+
if (hasExactResponseKeys(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
|
|
32852
32760
|
break;
|
|
32853
32761
|
default: break;
|
|
32854
32762
|
}
|
|
@@ -32866,11 +32774,9 @@ function isPlainDeviceLinkingResponse(value) {
|
|
|
32866
32774
|
return false;
|
|
32867
32775
|
}
|
|
32868
32776
|
}
|
|
32869
|
-
function
|
|
32777
|
+
function hasExactResponseKeys(record, expectedKeys) {
|
|
32870
32778
|
try {
|
|
32871
|
-
|
|
32872
|
-
const expected = [...expectedKeys].sort();
|
|
32873
|
-
return actualKeys.length === expected.length && actualKeys.every((key, index) => key === expected[index]);
|
|
32779
|
+
return hasExactKeys(record, expectedKeys);
|
|
32874
32780
|
} catch {
|
|
32875
32781
|
return false;
|
|
32876
32782
|
}
|
|
@@ -33340,7 +33246,7 @@ function buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1(input) {
|
|
|
33340
33246
|
function createDeviceLinkingEd25519ExportRootPortV1(worker) {
|
|
33341
33247
|
return {
|
|
33342
33248
|
async createRecipientV1(input) {
|
|
33343
|
-
const created = requireRecord
|
|
33249
|
+
const created = requireRecord(await worker.requestOperation({
|
|
33344
33250
|
kind: "walletCustodyCeremony",
|
|
33345
33251
|
request: {
|
|
33346
33252
|
type: "createLinkedDeviceEd25519ExportRootRecipient",
|
|
@@ -33381,7 +33287,7 @@ function createDeviceLinkingEd25519ExportRootPortV1(worker) {
|
|
|
33381
33287
|
registeredPublicKeyB64u: recipient.registeredPublicKeyB64u,
|
|
33382
33288
|
recipientPublicKeyB64u: recipient.recipientPublicKeyB64u
|
|
33383
33289
|
});
|
|
33384
|
-
const sealed = requireRecord
|
|
33290
|
+
const sealed = requireRecord(await worker.requestOperation({
|
|
33385
33291
|
kind: "walletCustodyCeremony",
|
|
33386
33292
|
request: {
|
|
33387
33293
|
type: "sealEd25519ExportRootForLinkedDevice",
|
|
@@ -33440,7 +33346,7 @@ function createDeviceLinkingEd25519ExportRootPortV1(worker) {
|
|
|
33440
33346
|
});
|
|
33441
33347
|
const replacementFactorSecret = input.replacementFactorSecret.slice();
|
|
33442
33348
|
try {
|
|
33443
|
-
const resealed = requireRecord
|
|
33349
|
+
const resealed = requireRecord(await worker.requestOperation({
|
|
33444
33350
|
kind: "walletCustodyCeremony",
|
|
33445
33351
|
request: {
|
|
33446
33352
|
type: "acceptLinkedDeviceEd25519ExportRoot",
|
|
@@ -33501,7 +33407,7 @@ function replacementEnvelopeFactorMatchesTargetFactor(targetFactor, replacementF
|
|
|
33501
33407
|
function assertNeverLinkedDeviceTargetFactor(value) {
|
|
33502
33408
|
throw new Error(`Unsupported linked-device target factor kind: ${String(value)}`);
|
|
33503
33409
|
}
|
|
33504
|
-
function requireRecord
|
|
33410
|
+
function requireRecord(value, label) {
|
|
33505
33411
|
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${label} returned no result`);
|
|
33506
33412
|
return value;
|
|
33507
33413
|
}
|
|
@@ -33546,7 +33452,7 @@ function buildDeviceLinkingPendingAcknowledgementV1(acknowledgement) {
|
|
|
33546
33452
|
}
|
|
33547
33453
|
function parseDeviceLinkingPendingAcknowledgementV1(raw) {
|
|
33548
33454
|
const record = asPlainDeviceLinkingResumeRecord(raw);
|
|
33549
|
-
if (record === null || !hasExactKeys(record, PENDING_ACKNOWLEDGEMENT_FIELDS) || record.kind !==
|
|
33455
|
+
if (record === null || !hasExactKeys(record, PENDING_ACKNOWLEDGEMENT_FIELDS) || record.kind !== LINKED_DEVICE_PENDING_ACK_KIND_V1) return null;
|
|
33550
33456
|
try {
|
|
33551
33457
|
return {
|
|
33552
33458
|
kind: LINKED_DEVICE_PENDING_ACK_KIND_V1,
|
|
@@ -33638,7 +33544,7 @@ function compareDeviceLinkingCommittedResumeV1(input) {
|
|
|
33638
33544
|
}
|
|
33639
33545
|
function parseDeviceLinkingCommittedResumeV1(raw) {
|
|
33640
33546
|
const record = asPlainDeviceLinkingResumeRecord(raw);
|
|
33641
|
-
if (record === null || !hasExactKeys(record, COMMITTED_RESUME_FIELDS) || record.kind !==
|
|
33547
|
+
if (record === null || !hasExactKeys(record, COMMITTED_RESUME_FIELDS) || record.kind !== LINKED_DEVICE_COMMITTED_RESUME_KIND_V1) return null;
|
|
33642
33548
|
const linkSessionId = parseLinkDeviceSessionId(record.linkSessionId);
|
|
33643
33549
|
const walletId = parseWalletId(record.walletId);
|
|
33644
33550
|
const enrollmentId = parseLinkedDeviceEnrollmentId(record.enrollmentId);
|
|
@@ -33710,11 +33616,6 @@ function isPlainDeviceLinkingResumeRecord(value) {
|
|
|
33710
33616
|
return false;
|
|
33711
33617
|
}
|
|
33712
33618
|
}
|
|
33713
|
-
function hasExactKeys(record, expectedKeys) {
|
|
33714
|
-
const actual = Object.keys(record).sort();
|
|
33715
|
-
const expected = [...expectedKeys].sort();
|
|
33716
|
-
return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
|
|
33717
|
-
}
|
|
33718
33619
|
function sameSignerActivations(left, right) {
|
|
33719
33620
|
const leftBytes = encodeWalletSignerActivationSetV1(left);
|
|
33720
33621
|
const rightBytes = encodeWalletSignerActivationSetV1(right);
|
|
@@ -34154,7 +34055,7 @@ function signerMaterialActivations(activations) {
|
|
|
34154
34055
|
throw new Error("committed signer activation families are invalid");
|
|
34155
34056
|
}
|
|
34156
34057
|
//#endregion
|
|
34157
|
-
//#region src/SeamsWeb/operations/devices/
|
|
34058
|
+
//#region src/SeamsWeb/operations/devices/linkDeviceFlowSupport.ts
|
|
34158
34059
|
function linkedDeviceWalletAuthenticationState(walletSession, registration) {
|
|
34159
34060
|
switch (registration.targetFactor.kind) {
|
|
34160
34061
|
case "verified_passkey_target_v1": return {
|
|
@@ -34170,12 +34071,6 @@ function linkedDeviceWalletAuthenticationState(walletSession, registration) {
|
|
|
34170
34071
|
default: return registration.targetFactor;
|
|
34171
34072
|
}
|
|
34172
34073
|
}
|
|
34173
|
-
function isPasskeyTargetPreparation(preparation) {
|
|
34174
|
-
return preparation.targetFactor.kind === "passkey_prf";
|
|
34175
|
-
}
|
|
34176
|
-
function isEmailOtpTargetPreparation(preparation) {
|
|
34177
|
-
return preparation.targetFactor.kind === "email_otp";
|
|
34178
|
-
}
|
|
34179
34074
|
function createLinkSessionId() {
|
|
34180
34075
|
const parsed = parseLinkDeviceSessionId(secureRandomId("link-session", 32));
|
|
34181
34076
|
if (!parsed.ok) throw new Error(parsed.error.message);
|
|
@@ -34266,6 +34161,36 @@ async function generateQrCodeDataUrlV1(payload) {
|
|
|
34266
34161
|
margin: 2
|
|
34267
34162
|
});
|
|
34268
34163
|
}
|
|
34164
|
+
function buildDevice2QrSessionPayloadV1(input) {
|
|
34165
|
+
const requestedPermission = buildFullOwnerDelegatedWalletAuthorityV1();
|
|
34166
|
+
if (input.target.targetFactor.kind === "email_otp") return buildQrLinkedDeviceSessionPayloadV5({
|
|
34167
|
+
linkSessionId: input.linkSessionId,
|
|
34168
|
+
linkPublicKeyB64u: input.linkPublicKeyB64u,
|
|
34169
|
+
devicePublicKeyB64u: input.devicePublicKeyB64u,
|
|
34170
|
+
requestedPermission,
|
|
34171
|
+
targetFactor: { kind: "email_otp" },
|
|
34172
|
+
targetEmail: normalizeLinkedDeviceTargetEmailAddressV1(input.target.targetEmail),
|
|
34173
|
+
issuedAtMs: input.issuedAtMs,
|
|
34174
|
+
expiresAtMs: input.expiresAtMs
|
|
34175
|
+
});
|
|
34176
|
+
return buildQrLinkedDeviceSessionPayloadV5({
|
|
34177
|
+
linkSessionId: input.linkSessionId,
|
|
34178
|
+
linkPublicKeyB64u: input.linkPublicKeyB64u,
|
|
34179
|
+
devicePublicKeyB64u: input.devicePublicKeyB64u,
|
|
34180
|
+
requestedPermission,
|
|
34181
|
+
targetFactor: { kind: "passkey_prf" },
|
|
34182
|
+
issuedAtMs: input.issuedAtMs,
|
|
34183
|
+
expiresAtMs: input.expiresAtMs
|
|
34184
|
+
});
|
|
34185
|
+
}
|
|
34186
|
+
//#endregion
|
|
34187
|
+
//#region src/SeamsWeb/operations/devices/linkDeviceTargetActivation.ts
|
|
34188
|
+
function isPasskeyTargetPreparation(preparation) {
|
|
34189
|
+
return preparation.targetFactor.kind === "passkey_prf";
|
|
34190
|
+
}
|
|
34191
|
+
function isEmailOtpTargetPreparation(preparation) {
|
|
34192
|
+
return preparation.targetFactor.kind === "email_otp";
|
|
34193
|
+
}
|
|
34269
34194
|
function emailOtpTargetActivationBaseContextV1(context) {
|
|
34270
34195
|
return {
|
|
34271
34196
|
event: context.event,
|
|
@@ -34297,7 +34222,7 @@ function resolvePostLinkActivationV1(input) {
|
|
|
34297
34222
|
switch (input.targetFactor.kind) {
|
|
34298
34223
|
case "verified_passkey_target_v1": {
|
|
34299
34224
|
const activation = input.targetCredentialActivationState;
|
|
34300
|
-
if (activation.kind !== "factor_ready"
|
|
34225
|
+
if (activation.kind !== "factor_ready" || activation.runEpoch !== input.runEpoch) throw new Error("linked-device Passkey factor runtime is unavailable");
|
|
34301
34226
|
return {
|
|
34302
34227
|
factor: {
|
|
34303
34228
|
kind: "passkey",
|
|
@@ -34368,32 +34293,12 @@ async function prepareNewEmailOtpEnrollmentMaterialV1(input) {
|
|
|
34368
34293
|
zeroizeLiveBytes$1(disposableSecret);
|
|
34369
34294
|
}
|
|
34370
34295
|
}
|
|
34371
|
-
function buildDevice2QrSessionPayloadV1(input) {
|
|
34372
|
-
const requestedPermission = buildFullOwnerDelegatedWalletAuthorityV1();
|
|
34373
|
-
if (input.target.targetFactor.kind === "email_otp") return buildQrLinkedDeviceSessionPayloadV5({
|
|
34374
|
-
linkSessionId: input.linkSessionId,
|
|
34375
|
-
linkPublicKeyB64u: input.linkPublicKeyB64u,
|
|
34376
|
-
devicePublicKeyB64u: input.devicePublicKeyB64u,
|
|
34377
|
-
requestedPermission,
|
|
34378
|
-
targetFactor: { kind: "email_otp" },
|
|
34379
|
-
targetEmail: normalizeLinkedDeviceTargetEmailAddressV1(input.target.targetEmail),
|
|
34380
|
-
issuedAtMs: input.issuedAtMs,
|
|
34381
|
-
expiresAtMs: input.expiresAtMs
|
|
34382
|
-
});
|
|
34383
|
-
return buildQrLinkedDeviceSessionPayloadV5({
|
|
34384
|
-
linkSessionId: input.linkSessionId,
|
|
34385
|
-
linkPublicKeyB64u: input.linkPublicKeyB64u,
|
|
34386
|
-
devicePublicKeyB64u: input.devicePublicKeyB64u,
|
|
34387
|
-
requestedPermission,
|
|
34388
|
-
targetFactor: { kind: "passkey_prf" },
|
|
34389
|
-
issuedAtMs: input.issuedAtMs,
|
|
34390
|
-
expiresAtMs: input.expiresAtMs
|
|
34391
|
-
});
|
|
34392
|
-
}
|
|
34393
34296
|
function requireNewEmailOtpEnrollmentMaterialV1(value) {
|
|
34394
34297
|
if (!value) throw new Error("new linked-device Email OTP enrollment material is unavailable");
|
|
34395
34298
|
return value;
|
|
34396
34299
|
}
|
|
34300
|
+
//#endregion
|
|
34301
|
+
//#region src/SeamsWeb/operations/devices/linkDeviceFlow.ts
|
|
34397
34302
|
var LinkDeviceFlow = class {
|
|
34398
34303
|
constructor(options, ports, getAuthenticationContext = null) {
|
|
34399
34304
|
this.session = null;
|
|
@@ -34562,15 +34467,8 @@ var LinkDeviceFlow = class {
|
|
|
34562
34467
|
case "claimed":
|
|
34563
34468
|
case "awaiting_target_factor":
|
|
34564
34469
|
case "awaiting_source_contribution":
|
|
34565
|
-
case "provisioning":
|
|
34566
|
-
|
|
34567
|
-
await authenticatedTransport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
|
|
34568
|
-
linkSessionId: session.linkSessionId,
|
|
34569
|
-
enrollmentId: identity.enrollmentId,
|
|
34570
|
-
deviceId: identity.deviceId,
|
|
34571
|
-
reason: "user_cancelled",
|
|
34572
|
-
requestedAtMs: now
|
|
34573
|
-
}) });
|
|
34470
|
+
case "provisioning":
|
|
34471
|
+
await this.cancelClaimedSessionV1(authenticatedTransport, session.linkSessionId, now);
|
|
34574
34472
|
this.session = {
|
|
34575
34473
|
...session,
|
|
34576
34474
|
state: {
|
|
@@ -34579,7 +34477,6 @@ var LinkDeviceFlow = class {
|
|
|
34579
34477
|
}
|
|
34580
34478
|
};
|
|
34581
34479
|
break;
|
|
34582
|
-
}
|
|
34583
34480
|
case "authority_pending_local_install": break;
|
|
34584
34481
|
case "active":
|
|
34585
34482
|
case "expired":
|
|
@@ -34601,16 +34498,6 @@ var LinkDeviceFlow = class {
|
|
|
34601
34498
|
}
|
|
34602
34499
|
});
|
|
34603
34500
|
}
|
|
34604
|
-
async reset() {
|
|
34605
|
-
if (this.hasCommittedDeliveryState()) throw new Error("Device-link authority delivery is committed and must be resumed");
|
|
34606
|
-
this.runEpoch += 1;
|
|
34607
|
-
this.cancelled = true;
|
|
34608
|
-
await this.cleanupLocalResources();
|
|
34609
|
-
this.session = null;
|
|
34610
|
-
this.error = void 0;
|
|
34611
|
-
this.cancelled = false;
|
|
34612
|
-
this.handledStates.clear();
|
|
34613
|
-
}
|
|
34614
34501
|
async resolveLinkIdentityV1(linkSessionId) {
|
|
34615
34502
|
const cached = this.targetCredentialRegistrationResult;
|
|
34616
34503
|
if (cached && cached.linkSessionId === linkSessionId) return {
|
|
@@ -34628,6 +34515,16 @@ var LinkDeviceFlow = class {
|
|
|
34628
34515
|
deviceId: preparation.deviceId
|
|
34629
34516
|
};
|
|
34630
34517
|
}
|
|
34518
|
+
async cancelClaimedSessionV1(transport, linkSessionId, requestedAtMs) {
|
|
34519
|
+
const identity = await this.resolveLinkIdentityV1(linkSessionId);
|
|
34520
|
+
await transport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
|
|
34521
|
+
linkSessionId,
|
|
34522
|
+
enrollmentId: identity.enrollmentId,
|
|
34523
|
+
deviceId: identity.deviceId,
|
|
34524
|
+
reason: "user_cancelled",
|
|
34525
|
+
requestedAtMs
|
|
34526
|
+
}) });
|
|
34527
|
+
}
|
|
34631
34528
|
async handleSessionEvent(event) {
|
|
34632
34529
|
if (this.cancelled || this.deliveryRecoveryReason !== null || !this.session || event.linkSessionId !== this.session.linkSessionId) return;
|
|
34633
34530
|
logDevice2LinkingStageV1({
|
|
@@ -34682,14 +34579,9 @@ var LinkDeviceFlow = class {
|
|
|
34682
34579
|
await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
|
|
34683
34580
|
return;
|
|
34684
34581
|
}
|
|
34685
|
-
case "active":
|
|
34686
|
-
|
|
34687
|
-
if (result.kind === "pending_local_install") return;
|
|
34688
|
-
if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
34689
|
-
if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
34690
|
-
await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
|
|
34582
|
+
case "active":
|
|
34583
|
+
await this.replayCommittedAuthorityV1(event.state, runEpoch);
|
|
34691
34584
|
return;
|
|
34692
|
-
}
|
|
34693
34585
|
case "expired": {
|
|
34694
34586
|
const error = new DeviceLinkingError("Device-link session expired", DeviceLinkingErrorCode.SESSION_EXPIRED, "registration");
|
|
34695
34587
|
this.error = error;
|
|
@@ -34852,25 +34744,7 @@ var LinkDeviceFlow = class {
|
|
|
34852
34744
|
workerEphemeralPublicKey65B64u
|
|
34853
34745
|
} });
|
|
34854
34746
|
this.assertCurrentRun(context.runEpoch);
|
|
34855
|
-
this.
|
|
34856
|
-
kind: "awaiting_code",
|
|
34857
|
-
context: {
|
|
34858
|
-
event: context.event,
|
|
34859
|
-
state: context.state,
|
|
34860
|
-
runEpoch: context.runEpoch,
|
|
34861
|
-
deviceId: context.deviceId,
|
|
34862
|
-
preparation: context.preparation,
|
|
34863
|
-
ordinarySignerMaterialRecipientRequests: context.ordinarySignerMaterialRecipientRequests,
|
|
34864
|
-
exportRoot: context.exportRoot,
|
|
34865
|
-
challenge
|
|
34866
|
-
}
|
|
34867
|
-
};
|
|
34868
|
-
this.notifyEmailOtpActivationV1({
|
|
34869
|
-
kind: "code_input",
|
|
34870
|
-
maskedEmailHint: challenge.maskedEmailHint,
|
|
34871
|
-
expiresAtMs: challenge.expiresAtMs,
|
|
34872
|
-
resendAvailableAtMs: challenge.resendAvailableAtMs
|
|
34873
|
-
});
|
|
34747
|
+
this.awaitTargetEmailOtpCodeV1(context, challenge);
|
|
34874
34748
|
} catch (error) {
|
|
34875
34749
|
if (this.isCurrentRun(context.runEpoch)) {
|
|
34876
34750
|
this.emailOtpTargetActivationState = {
|
|
@@ -34885,6 +34759,21 @@ var LinkDeviceFlow = class {
|
|
|
34885
34759
|
throw error;
|
|
34886
34760
|
}
|
|
34887
34761
|
}
|
|
34762
|
+
awaitTargetEmailOtpCodeV1(context, challenge) {
|
|
34763
|
+
this.emailOtpTargetActivationState = {
|
|
34764
|
+
kind: "awaiting_code",
|
|
34765
|
+
context: {
|
|
34766
|
+
...emailOtpTargetActivationBaseContextV1(context),
|
|
34767
|
+
challenge
|
|
34768
|
+
}
|
|
34769
|
+
};
|
|
34770
|
+
this.notifyEmailOtpActivationV1({
|
|
34771
|
+
kind: "code_input",
|
|
34772
|
+
maskedEmailHint: challenge.maskedEmailHint,
|
|
34773
|
+
expiresAtMs: challenge.expiresAtMs,
|
|
34774
|
+
resendAvailableAtMs: challenge.resendAvailableAtMs
|
|
34775
|
+
});
|
|
34776
|
+
}
|
|
34888
34777
|
resendTargetEmailOtpCodeV1() {
|
|
34889
34778
|
const state = this.emailOtpTargetActivationState;
|
|
34890
34779
|
if (state.kind === "resending") return state.promise;
|
|
@@ -34914,25 +34803,7 @@ var LinkDeviceFlow = class {
|
|
|
34914
34803
|
challengeId: context.challenge.challengeId
|
|
34915
34804
|
} });
|
|
34916
34805
|
this.assertCurrentRun(context.runEpoch);
|
|
34917
|
-
this.
|
|
34918
|
-
kind: "awaiting_code",
|
|
34919
|
-
context: {
|
|
34920
|
-
event: context.event,
|
|
34921
|
-
state: context.state,
|
|
34922
|
-
runEpoch: context.runEpoch,
|
|
34923
|
-
deviceId: context.deviceId,
|
|
34924
|
-
preparation: context.preparation,
|
|
34925
|
-
ordinarySignerMaterialRecipientRequests: context.ordinarySignerMaterialRecipientRequests,
|
|
34926
|
-
exportRoot: context.exportRoot,
|
|
34927
|
-
challenge
|
|
34928
|
-
}
|
|
34929
|
-
};
|
|
34930
|
-
this.notifyEmailOtpActivationV1({
|
|
34931
|
-
kind: "code_input",
|
|
34932
|
-
maskedEmailHint: challenge.maskedEmailHint,
|
|
34933
|
-
expiresAtMs: challenge.expiresAtMs,
|
|
34934
|
-
resendAvailableAtMs: challenge.resendAvailableAtMs
|
|
34935
|
-
});
|
|
34806
|
+
this.awaitTargetEmailOtpCodeV1(context, challenge);
|
|
34936
34807
|
} catch (error) {
|
|
34937
34808
|
if (this.isCurrentRun(context.runEpoch)) {
|
|
34938
34809
|
const message = errorMessage(error) || "Email OTP resend is unavailable";
|
|
@@ -35063,32 +34934,14 @@ var LinkDeviceFlow = class {
|
|
|
35063
34934
|
enrollmentId: emailOtpEnrollmentId,
|
|
35064
34935
|
enrollmentSealKeyVersion: emailOtpEnrollmentSealKeyVersion
|
|
35065
34936
|
});
|
|
35066
|
-
|
|
35067
|
-
|
|
35068
|
-
|
|
35069
|
-
targetFactor: preparation.targetFactor,
|
|
35070
|
-
applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
|
|
35071
|
-
registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
|
|
35072
|
-
enrollmentId: preparation.enrollmentId,
|
|
35073
|
-
deviceId: preparation.deviceId,
|
|
35074
|
-
revocationEpoch: exportRoot.revocationEpoch
|
|
35075
|
-
});
|
|
35076
|
-
this.resealedExportRoot = await acceptLinkedDeviceEd25519ExportRootV1({
|
|
35077
|
-
ed25519ExportRoot: this.ports.ed25519ExportRoot,
|
|
35078
|
-
transport: this.requireAuthenticatedTransport(),
|
|
34937
|
+
this.resealedExportRoot = await this.acceptTargetExportRootV1({
|
|
34938
|
+
preparation,
|
|
34939
|
+
exportRoot,
|
|
35079
34940
|
recipient,
|
|
35080
|
-
|
|
35081
|
-
|
|
35082
|
-
ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
|
|
35083
|
-
envelopeId,
|
|
35084
|
-
factor,
|
|
35085
|
-
binding,
|
|
35086
|
-
createdAtMs: Date.now()
|
|
35087
|
-
}),
|
|
34941
|
+
envelopeId,
|
|
34942
|
+
factor,
|
|
35088
34943
|
replacementFactorSecret: new Uint8Array(factorSecret),
|
|
35089
|
-
|
|
35090
|
-
assertCurrentRun: () => this.assertCurrentRun(context.runEpoch),
|
|
35091
|
-
waitForPollV1: waitForSessionStateRetry
|
|
34944
|
+
runEpoch: context.runEpoch
|
|
35092
34945
|
});
|
|
35093
34946
|
recipient = null;
|
|
35094
34947
|
}
|
|
@@ -35180,9 +35033,6 @@ var LinkDeviceFlow = class {
|
|
|
35180
35033
|
case "factor_ready":
|
|
35181
35034
|
if (this.targetCredentialActivationState.runEpoch === input.runEpoch) return Promise.reject(/* @__PURE__ */ new Error("Device-link target passkey activation has already completed"));
|
|
35182
35035
|
return Promise.reject(new LinkDeviceFlowSupersededError());
|
|
35183
|
-
case "consuming":
|
|
35184
|
-
if (this.targetCredentialActivationState.runEpoch === input.runEpoch) return Promise.reject(/* @__PURE__ */ new Error("Device-link target passkey activation is already being consumed"));
|
|
35185
|
-
return Promise.reject(new LinkDeviceFlowSupersededError());
|
|
35186
35036
|
default: return assertNeverTargetCredentialActivationState(this.targetCredentialActivationState);
|
|
35187
35037
|
}
|
|
35188
35038
|
const activation = this.runTargetCredentialActivation(input);
|
|
@@ -35231,27 +35081,9 @@ var LinkDeviceFlow = class {
|
|
|
35231
35081
|
default: throw new Error("linked-device target factor is unsupported");
|
|
35232
35082
|
}
|
|
35233
35083
|
}
|
|
35234
|
-
claimTargetCredentialFactorSecret(runEpoch) {
|
|
35235
|
-
switch (this.targetCredentialActivationState.kind) {
|
|
35236
|
-
case "idle": return null;
|
|
35237
|
-
case "in_progress": throw new Error("Device-link target passkey activation is still in progress");
|
|
35238
|
-
case "factor_ready": {
|
|
35239
|
-
if (this.targetCredentialActivationState.runEpoch !== runEpoch) throw new LinkDeviceFlowSupersededError();
|
|
35240
|
-
const factorSecret = this.targetCredentialActivationState.factorSecret;
|
|
35241
|
-
this.targetCredentialActivationState = {
|
|
35242
|
-
kind: "consuming",
|
|
35243
|
-
runEpoch,
|
|
35244
|
-
factorSecret
|
|
35245
|
-
};
|
|
35246
|
-
return factorSecret;
|
|
35247
|
-
}
|
|
35248
|
-
case "consuming": throw new Error("Device-link target passkey activation is already being consumed");
|
|
35249
|
-
default: return assertNeverTargetCredentialActivationState(this.targetCredentialActivationState);
|
|
35250
|
-
}
|
|
35251
|
-
}
|
|
35252
35084
|
clearTargetCredentialActivationState() {
|
|
35253
35085
|
const state = this.targetCredentialActivationState;
|
|
35254
|
-
if (state.kind === "factor_ready"
|
|
35086
|
+
if (state.kind === "factor_ready") zeroizeLiveBytes$1(state.factorSecret);
|
|
35255
35087
|
this.targetCredentialActivationState = { kind: "idle" };
|
|
35256
35088
|
}
|
|
35257
35089
|
async createTargetCredential(input) {
|
|
@@ -35318,32 +35150,14 @@ var LinkDeviceFlow = class {
|
|
|
35318
35150
|
rpId: requireTargetRpIdV1(preparation),
|
|
35319
35151
|
credentialIdB64u: credential.webauthnRegistration.credentialIdB64u
|
|
35320
35152
|
});
|
|
35321
|
-
const
|
|
35322
|
-
|
|
35323
|
-
|
|
35324
|
-
targetFactor: preparation.targetFactor,
|
|
35325
|
-
applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
|
|
35326
|
-
registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
|
|
35327
|
-
enrollmentId: preparation.enrollmentId,
|
|
35328
|
-
deviceId: preparation.deviceId,
|
|
35329
|
-
revocationEpoch: exportRoot.revocationEpoch
|
|
35330
|
-
});
|
|
35331
|
-
const resealed = await acceptLinkedDeviceEd25519ExportRootV1({
|
|
35332
|
-
ed25519ExportRoot: this.ports.ed25519ExportRoot,
|
|
35333
|
-
transport: authenticatedTransport,
|
|
35153
|
+
const resealed = await this.acceptTargetExportRootV1({
|
|
35154
|
+
preparation,
|
|
35155
|
+
exportRoot,
|
|
35334
35156
|
recipient,
|
|
35335
|
-
|
|
35336
|
-
|
|
35337
|
-
ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
|
|
35338
|
-
envelopeId,
|
|
35339
|
-
factor,
|
|
35340
|
-
binding,
|
|
35341
|
-
createdAtMs: Date.now()
|
|
35342
|
-
}),
|
|
35157
|
+
envelopeId,
|
|
35158
|
+
factor,
|
|
35343
35159
|
replacementFactorSecret: credential.factorSecret,
|
|
35344
|
-
|
|
35345
|
-
assertCurrentRun: () => this.assertCurrentRun(runEpoch),
|
|
35346
|
-
waitForPollV1: waitForSessionStateRetry
|
|
35160
|
+
runEpoch
|
|
35347
35161
|
});
|
|
35348
35162
|
logDevice2LinkingStageV1({
|
|
35349
35163
|
flowId: this.flowId,
|
|
@@ -35394,6 +35208,36 @@ var LinkDeviceFlow = class {
|
|
|
35394
35208
|
throw error;
|
|
35395
35209
|
}
|
|
35396
35210
|
}
|
|
35211
|
+
async acceptTargetExportRootV1(input) {
|
|
35212
|
+
const { preparation, exportRoot } = input;
|
|
35213
|
+
const binding = buildEd25519YaoClientRootBinding({
|
|
35214
|
+
linkSessionId: preparation.linkSessionId,
|
|
35215
|
+
walletKeyId: exportRoot.walletKeyId,
|
|
35216
|
+
targetFactor: preparation.targetFactor,
|
|
35217
|
+
applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
|
|
35218
|
+
registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
|
|
35219
|
+
enrollmentId: preparation.enrollmentId,
|
|
35220
|
+
deviceId: preparation.deviceId,
|
|
35221
|
+
revocationEpoch: exportRoot.revocationEpoch
|
|
35222
|
+
});
|
|
35223
|
+
return await acceptLinkedDeviceEd25519ExportRootV1({
|
|
35224
|
+
ed25519ExportRoot: this.ports.ed25519ExportRoot,
|
|
35225
|
+
transport: this.requireAuthenticatedTransport(),
|
|
35226
|
+
recipient: input.recipient,
|
|
35227
|
+
replacementEnvelope: buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1({
|
|
35228
|
+
walletId: preparation.walletId,
|
|
35229
|
+
ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
|
|
35230
|
+
envelopeId: input.envelopeId,
|
|
35231
|
+
factor: input.factor,
|
|
35232
|
+
binding,
|
|
35233
|
+
createdAtMs: Date.now()
|
|
35234
|
+
}),
|
|
35235
|
+
replacementFactorSecret: input.replacementFactorSecret,
|
|
35236
|
+
expiresAtMs: Math.min(preparation.expiresAtMs, this.requireSessionV1().qrData.expiresAtMs),
|
|
35237
|
+
assertCurrentRun: () => this.assertCurrentRun(input.runEpoch),
|
|
35238
|
+
waitForPollV1: waitForSessionStateRetry
|
|
35239
|
+
});
|
|
35240
|
+
}
|
|
35397
35241
|
assertTargetPreparationMatchesSession(input) {
|
|
35398
35242
|
const sessionTargetFactor = this.requireSessionTargetFactorV1();
|
|
35399
35243
|
const qrData = this.requireSessionV1().qrData;
|
|
@@ -35493,10 +35337,7 @@ var LinkDeviceFlow = class {
|
|
|
35493
35337
|
acknowledgedAtMs: Date.now()
|
|
35494
35338
|
};
|
|
35495
35339
|
await this.ports.authorityInstallation.persistPendingActivationAcknowledgementV1({ acknowledgement });
|
|
35496
|
-
await this.
|
|
35497
|
-
await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement });
|
|
35498
|
-
await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: acknowledgement.authorityId });
|
|
35499
|
-
await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: acknowledgement.authorityId });
|
|
35340
|
+
await this.sendActivationAcknowledgementV1(acknowledgement);
|
|
35500
35341
|
this.session = activeSession;
|
|
35501
35342
|
authenticationContext.signingEngine.setWalletAuthenticated(linkedDeviceWalletAuthenticationState(walletSession, registration));
|
|
35502
35343
|
await this.cleanupCompletedLocalResources();
|
|
@@ -35546,13 +35387,9 @@ var LinkDeviceFlow = class {
|
|
|
35546
35387
|
return preparation;
|
|
35547
35388
|
}
|
|
35548
35389
|
startRun() {
|
|
35549
|
-
this.
|
|
35550
|
-
this.clearEmailOtpTargetActivationState();
|
|
35551
|
-
this.resealedExportRoot = null;
|
|
35552
|
-
this.targetCredentialRegistrationResult = null;
|
|
35390
|
+
this.clearRunActivationStateV1();
|
|
35553
35391
|
this.committedAuthorityPackages = null;
|
|
35554
35392
|
this.deliveryRecoveryReason = null;
|
|
35555
|
-
this.ordinarySignerMaterialRecipientPreparation = null;
|
|
35556
35393
|
this.runEpoch += 1;
|
|
35557
35394
|
this.generationInProgress = true;
|
|
35558
35395
|
this.cancelled = false;
|
|
@@ -35640,12 +35477,8 @@ var LinkDeviceFlow = class {
|
|
|
35640
35477
|
error: cleanupError
|
|
35641
35478
|
});
|
|
35642
35479
|
}
|
|
35643
|
-
this.
|
|
35644
|
-
this.clearEmailOtpTargetActivationState();
|
|
35645
|
-
this.resealedExportRoot = null;
|
|
35646
|
-
this.targetCredentialRegistrationResult = null;
|
|
35480
|
+
this.clearRunActivationStateV1();
|
|
35647
35481
|
this.committedAuthorityPackages = null;
|
|
35648
|
-
this.ordinarySignerMaterialRecipientPreparation = null;
|
|
35649
35482
|
this.keyMaterialHandle = null;
|
|
35650
35483
|
this.deliveryRecipientPublicKey65B64u = null;
|
|
35651
35484
|
this.authenticatedTransport = null;
|
|
@@ -35658,18 +35491,19 @@ var LinkDeviceFlow = class {
|
|
|
35658
35491
|
switch (event.state.state) {
|
|
35659
35492
|
case "provisioning":
|
|
35660
35493
|
case "authority_pending_local_install":
|
|
35661
|
-
case "active":
|
|
35662
|
-
|
|
35663
|
-
const result = await this.activateAuthorityForStateV1(event.state, runEpoch);
|
|
35664
|
-
if (result.kind === "pending_local_install") return;
|
|
35665
|
-
if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
35666
|
-
if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
35667
|
-
await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
|
|
35494
|
+
case "active":
|
|
35495
|
+
await this.replayCommittedAuthorityV1(event.state, this.runEpoch);
|
|
35668
35496
|
return;
|
|
35669
|
-
}
|
|
35670
35497
|
default: throw new Error(`committed link delivery cannot resume from ${event.state.state}`);
|
|
35671
35498
|
}
|
|
35672
35499
|
}
|
|
35500
|
+
async replayCommittedAuthorityV1(state, runEpoch) {
|
|
35501
|
+
const result = await this.activateAuthorityForStateV1(state, runEpoch);
|
|
35502
|
+
if (result.kind === "pending_local_install") return;
|
|
35503
|
+
if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
35504
|
+
if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
|
|
35505
|
+
await this.finishActiveAuthorityV1(state, result.session, result.operationCredential, runEpoch);
|
|
35506
|
+
}
|
|
35673
35507
|
async replayPendingActivationAcknowledgementV1() {
|
|
35674
35508
|
const committed = this.committedAuthorityPackages;
|
|
35675
35509
|
if (!committed) return false;
|
|
@@ -35677,12 +35511,15 @@ var LinkDeviceFlow = class {
|
|
|
35677
35511
|
if (!pending) return false;
|
|
35678
35512
|
const session = this.requireSessionV1();
|
|
35679
35513
|
if (pending.linkSessionId !== session.qrData.linkSessionId || pending.authorityId !== committed.authority.authorityId || pending.packageSetDigestB64u !== committed.packageSetDigestB64u) throw new Error("pending linked-device acknowledgement identity is inconsistent");
|
|
35680
|
-
await this.
|
|
35681
|
-
await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement: pending });
|
|
35682
|
-
await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: pending.authorityId });
|
|
35683
|
-
await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: pending.authorityId });
|
|
35514
|
+
await this.sendActivationAcknowledgementV1(pending);
|
|
35684
35515
|
return true;
|
|
35685
35516
|
}
|
|
35517
|
+
async sendActivationAcknowledgementV1(acknowledgement) {
|
|
35518
|
+
await this.closeSessionSubscriptionV1();
|
|
35519
|
+
await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement });
|
|
35520
|
+
await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: acknowledgement.authorityId });
|
|
35521
|
+
await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: acknowledgement.authorityId });
|
|
35522
|
+
}
|
|
35686
35523
|
async cancelFailedPrecommitSession(event) {
|
|
35687
35524
|
const transport = this.authenticatedTransport;
|
|
35688
35525
|
if (!transport) return;
|
|
@@ -35692,14 +35529,7 @@ var LinkDeviceFlow = class {
|
|
|
35692
35529
|
case "awaiting_source_contribution":
|
|
35693
35530
|
case "provisioning": {
|
|
35694
35531
|
const cancelledAtMs = Date.now();
|
|
35695
|
-
|
|
35696
|
-
await transport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
|
|
35697
|
-
linkSessionId: event.linkSessionId,
|
|
35698
|
-
enrollmentId: identity.enrollmentId,
|
|
35699
|
-
deviceId: identity.deviceId,
|
|
35700
|
-
reason: "user_cancelled",
|
|
35701
|
-
requestedAtMs: cancelledAtMs
|
|
35702
|
-
}) });
|
|
35532
|
+
await this.cancelClaimedSessionV1(transport, event.linkSessionId, cancelledAtMs);
|
|
35703
35533
|
if (this.session?.linkSessionId === event.linkSessionId) this.session = {
|
|
35704
35534
|
...this.session,
|
|
35705
35535
|
state: {
|
|
@@ -35721,13 +35551,7 @@ var LinkDeviceFlow = class {
|
|
|
35721
35551
|
async cleanupLocalResources(force = false) {
|
|
35722
35552
|
if (!force && this.hasCommittedDeliveryState()) return;
|
|
35723
35553
|
const preserveCommittedState = force && this.hasCommittedDeliveryState();
|
|
35724
|
-
if (!preserveCommittedState)
|
|
35725
|
-
this.clearTargetCredentialActivationState();
|
|
35726
|
-
this.clearEmailOtpTargetActivationState();
|
|
35727
|
-
this.resealedExportRoot = null;
|
|
35728
|
-
this.targetCredentialRegistrationResult = null;
|
|
35729
|
-
this.ordinarySignerMaterialRecipientPreparation = null;
|
|
35730
|
-
}
|
|
35554
|
+
if (!preserveCommittedState) this.clearRunActivationStateV1();
|
|
35731
35555
|
let failure;
|
|
35732
35556
|
const subscription = this.subscription;
|
|
35733
35557
|
if (subscription) try {
|
|
@@ -35743,14 +35567,17 @@ var LinkDeviceFlow = class {
|
|
|
35743
35567
|
}
|
|
35744
35568
|
if (failure) throw failure;
|
|
35745
35569
|
if (preserveCommittedState) {
|
|
35746
|
-
this.
|
|
35747
|
-
this.clearEmailOtpTargetActivationState();
|
|
35748
|
-
this.resealedExportRoot = null;
|
|
35749
|
-
this.targetCredentialRegistrationResult = null;
|
|
35750
|
-
this.ordinarySignerMaterialRecipientPreparation = null;
|
|
35570
|
+
this.clearRunActivationStateV1();
|
|
35751
35571
|
this.committedAuthorityPackages = null;
|
|
35752
35572
|
}
|
|
35753
35573
|
}
|
|
35574
|
+
clearRunActivationStateV1() {
|
|
35575
|
+
this.clearTargetCredentialActivationState();
|
|
35576
|
+
this.clearEmailOtpTargetActivationState();
|
|
35577
|
+
this.resealedExportRoot = null;
|
|
35578
|
+
this.targetCredentialRegistrationResult = null;
|
|
35579
|
+
this.ordinarySignerMaterialRecipientPreparation = null;
|
|
35580
|
+
}
|
|
35754
35581
|
async closeSessionSubscriptionV1() {
|
|
35755
35582
|
const subscription = this.subscription;
|
|
35756
35583
|
if (!subscription) return;
|
|
@@ -35809,6 +35636,8 @@ var LinkDeviceFlow = class {
|
|
|
35809
35636
|
}));
|
|
35810
35637
|
}
|
|
35811
35638
|
};
|
|
35639
|
+
//#endregion
|
|
35640
|
+
//#region src/SeamsWeb/operations/devices/linkDevice.ts
|
|
35812
35641
|
function isFinishedDeviceLinkFlow(flow) {
|
|
35813
35642
|
const state = flow.getState();
|
|
35814
35643
|
if (state.cancelled || state.error || !state.session) return true;
|
|
@@ -37017,7 +36846,8 @@ async function signNEP413Message(args) {
|
|
|
37017
36846
|
};
|
|
37018
36847
|
}
|
|
37019
36848
|
}
|
|
37020
|
-
|
|
36849
|
+
//#endregion
|
|
36850
|
+
//#region ../shared-ts/src/threshold/secp256k1.ts
|
|
37021
36851
|
const THRESHOLD_SECP256K1_ECDSA_2P_PARTICIPANT_IDS_V1 = [1, 2];
|
|
37022
36852
|
//#endregion
|
|
37023
36853
|
//#region src/SeamsWeb/operations/registration/registrationSignerSet.ts
|
|
@@ -38109,7 +37939,7 @@ function assertOneEcdsaCustodyIdentity(continuity) {
|
|
|
38109
37939
|
if (continuity.state === "absent") return null;
|
|
38110
37940
|
const first = continuity.signers[0];
|
|
38111
37941
|
const chainTargets = /* @__PURE__ */ new Set();
|
|
38112
|
-
for (const signer of continuity.signers.slice(1)) if (signer.walletKey.keyHandle !== first.walletKey.keyHandle || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope
|
|
37942
|
+
for (const signer of continuity.signers.slice(1)) if (signer.walletKey.keyHandle !== first.walletKey.keyHandle || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("sync-account returned conflicting ECDSA custody identities");
|
|
38113
37943
|
for (const signer of continuity.signers) {
|
|
38114
37944
|
const key = thresholdEcdsaChainTargetKey(signer.chainTarget);
|
|
38115
37945
|
if (chainTargets.has(key)) throw new Error("sync-account returned duplicate ECDSA custody chain targets");
|
|
@@ -38930,7 +38760,10 @@ async function executeEvmFamilyTransactionLifecycle(args) {
|
|
|
38930
38760
|
}
|
|
38931
38761
|
});
|
|
38932
38762
|
const rawTxHex = assertRawTxHexOrThrow(signedResult.rawTxHex);
|
|
38933
|
-
args.lifecycle.onBroadcastStarted
|
|
38763
|
+
args.lifecycle.onBroadcastStarted({
|
|
38764
|
+
walletSession: args.input.walletSession,
|
|
38765
|
+
signedResult
|
|
38766
|
+
});
|
|
38934
38767
|
txHash = normalizeTxHashOrThrow(await client.request({
|
|
38935
38768
|
method: "eth_sendRawTransaction",
|
|
38936
38769
|
params: [rawTxHex]
|
|
@@ -39276,6 +39109,11 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
|
|
|
39276
39109
|
...args,
|
|
39277
39110
|
chainTarget: resolveTempoChainTarget(deps.configs.network.chains, args.chainTarget)
|
|
39278
39111
|
}));
|
|
39112
|
+
const onBroadcastStarted = (args) => {
|
|
39113
|
+
const walletIframe = deps.getWalletIframe();
|
|
39114
|
+
if (!walletIframe.shouldUseWalletIframe()) return;
|
|
39115
|
+
walletIframe.requireRouter(toWalletId(args.walletSession.walletId)).then((router) => router.notifyTransactionBroadcastStarted(args.signedResult)).catch(() => {});
|
|
39116
|
+
};
|
|
39279
39117
|
const reportBroadcastAccepted = async (args) => {
|
|
39280
39118
|
const walletIframe = deps.getWalletIframe();
|
|
39281
39119
|
const walletId = toWalletId(args.walletSession.walletId);
|
|
@@ -39391,6 +39229,7 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
|
|
|
39391
39229
|
}
|
|
39392
39230
|
};
|
|
39393
39231
|
const lifecycle = {
|
|
39232
|
+
onBroadcastStarted,
|
|
39394
39233
|
signEvmFamily,
|
|
39395
39234
|
reportBroadcastAccepted,
|
|
39396
39235
|
reportBroadcastRejected,
|
|
@@ -39487,6 +39326,9 @@ function createCurrentWalletResolver(deps) {
|
|
|
39487
39326
|
}
|
|
39488
39327
|
};
|
|
39489
39328
|
}
|
|
39329
|
+
//#endregion
|
|
39330
|
+
//#region src/SeamsWeb/publicApi/awaitNearReady.ts
|
|
39331
|
+
const DEFAULT_AWAIT_NEAR_READY_TIMEOUT_MS = 12e4;
|
|
39490
39332
|
function outcomeFor(state) {
|
|
39491
39333
|
if (!state) return null;
|
|
39492
39334
|
if (state.status === "near_ready") return {
|
|
@@ -39510,7 +39352,7 @@ function outcomeFor(state) {
|
|
|
39510
39352
|
async function awaitNearReady(deps, args) {
|
|
39511
39353
|
const walletId = String(args.walletId || "").trim();
|
|
39512
39354
|
if (!walletId) throw new Error("[seams] awaitNearReady requires a walletId");
|
|
39513
|
-
const timeoutMs = Math.max(1, Math.floor(Number(args.timeoutMs) || 0)) ||
|
|
39355
|
+
const timeoutMs = Math.max(1, Math.floor(Number(args.timeoutMs) || 0)) || DEFAULT_AWAIT_NEAR_READY_TIMEOUT_MS;
|
|
39514
39356
|
let unsubscribe = null;
|
|
39515
39357
|
let timer = null;
|
|
39516
39358
|
let onAbort = null;
|
|
@@ -39788,7 +39630,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
|
|
|
39788
39630
|
const transfer = [input.factorSecret, ...recipientInputTransferables(recipientInputs)];
|
|
39789
39631
|
return parsePreparationResult(await send({
|
|
39790
39632
|
kind: "device_linking_ordinary_signer_material_prepare_private_v1",
|
|
39791
|
-
handleId:
|
|
39633
|
+
handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
|
|
39792
39634
|
targetFactor: targetFactorBindingV1(input.targetFactor),
|
|
39793
39635
|
preparations,
|
|
39794
39636
|
recipientRequests,
|
|
@@ -39799,7 +39641,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
|
|
|
39799
39641
|
async createOrdinarySignerMaterialRecipientRequestsV1(input) {
|
|
39800
39642
|
return parseRecipientPreparationResult(await send({
|
|
39801
39643
|
kind: "device_linking_ordinary_signer_material_recipient_prepare_v1",
|
|
39802
|
-
handleId:
|
|
39644
|
+
handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
|
|
39803
39645
|
requirements: parseRecipientRequirementTuple(input.requirements)
|
|
39804
39646
|
}));
|
|
39805
39647
|
},
|
|
@@ -39807,7 +39649,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
|
|
|
39807
39649
|
const committed = parseCommittedAuthorityPackagesV1(input.committed);
|
|
39808
39650
|
return parseSealedLocalAuthorityMaterialSetV1(await send({
|
|
39809
39651
|
kind: "device_linking_ordinary_signer_material_seal_v1",
|
|
39810
|
-
handleId:
|
|
39652
|
+
handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
|
|
39811
39653
|
committed,
|
|
39812
39654
|
targetFactor: targetFactorBindingV1(input.targetFactor),
|
|
39813
39655
|
resealedExportRoot: parseOrdinaryResealedExportRootRecordV1(input.resealedExportRoot)
|
|
@@ -39817,11 +39659,15 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
|
|
|
39817
39659
|
}
|
|
39818
39660
|
function parseOrdinaryResealedExportRootRecordV1(value) {
|
|
39819
39661
|
if (value === null) return null;
|
|
39820
|
-
if (!
|
|
39662
|
+
if (!hasExactKeys(value, ["envelope"])) throw new Error("ordinary material resealed export root has unsupported fields");
|
|
39821
39663
|
return { envelope: parsePasskeyCustodyEnvelopeRecord(value.envelope) };
|
|
39822
39664
|
}
|
|
39823
39665
|
function parsePreparationResult(value) {
|
|
39824
|
-
if (!
|
|
39666
|
+
if (!hasExactKeys(value, [
|
|
39667
|
+
"kind",
|
|
39668
|
+
"targetFactor",
|
|
39669
|
+
"preparations"
|
|
39670
|
+
])) throw new Error("ordinary material preparation result has invalid fields");
|
|
39825
39671
|
if (value.kind !== "device_linking_ordinary_signer_material_preparation_v1") throw new Error("ordinary material preparation result kind is invalid");
|
|
39826
39672
|
return {
|
|
39827
39673
|
kind: "device_linking_ordinary_signer_material_preparation_v1",
|
|
@@ -39843,7 +39689,11 @@ function parsePreparationTuple(value) {
|
|
|
39843
39689
|
function parseRecipientRequirementTuple(value) {
|
|
39844
39690
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requirements must contain one or two entries");
|
|
39845
39691
|
const requirements = value.map((entry, index) => {
|
|
39846
|
-
if (!
|
|
39692
|
+
if (!hasExactKeys(entry, [
|
|
39693
|
+
"kind",
|
|
39694
|
+
"keyFamily",
|
|
39695
|
+
"walletKeyId"
|
|
39696
|
+
])) throw new Error(`ordinary recipient requirement ${index} has invalid fields`);
|
|
39847
39697
|
if (entry.kind !== "ordinary_signer_material_recipient_requirement_v1") throw new Error("ordinary recipient requirement kind is invalid");
|
|
39848
39698
|
if (entry.keyFamily !== "ed25519" && entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary recipient requirement key family is invalid");
|
|
39849
39699
|
const walletKeyId = parseWalletKey(entry.walletKeyId);
|
|
@@ -39860,8 +39710,13 @@ function parseRecipientRequirementTuple(value) {
|
|
|
39860
39710
|
}
|
|
39861
39711
|
function parseRecipientRequestTuple(value) {
|
|
39862
39712
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requests must contain one or two entries");
|
|
39863
|
-
const requests = value.map((entry
|
|
39864
|
-
if (
|
|
39713
|
+
const requests = value.map((entry) => {
|
|
39714
|
+
if (hasExactKeys(entry, [
|
|
39715
|
+
"kind",
|
|
39716
|
+
"keyFamily",
|
|
39717
|
+
"walletKeyId",
|
|
39718
|
+
"recipientPublicKeyB64u"
|
|
39719
|
+
])) {
|
|
39865
39720
|
if (entry.kind !== "ordinary_ed25519_signer_material_recipient_request_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient request kind is invalid");
|
|
39866
39721
|
return {
|
|
39867
39722
|
kind: "ordinary_ed25519_signer_material_recipient_request_v1",
|
|
@@ -39870,13 +39725,18 @@ function parseRecipientRequestTuple(value) {
|
|
|
39870
39725
|
recipientPublicKeyB64u: parseB64u(entry.recipientPublicKeyB64u, "Ed25519 recipient public key")
|
|
39871
39726
|
};
|
|
39872
39727
|
}
|
|
39873
|
-
if (
|
|
39728
|
+
if (hasExactKeys(entry, [
|
|
39729
|
+
"kind",
|
|
39730
|
+
"keyFamily",
|
|
39731
|
+
"walletKeyId",
|
|
39732
|
+
"clientEphemeralPublicKey"
|
|
39733
|
+
])) {
|
|
39874
39734
|
if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_request_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient request kind is invalid");
|
|
39875
39735
|
return {
|
|
39876
39736
|
kind: "ordinary_ecdsa_signer_material_recipient_request_v1",
|
|
39877
39737
|
keyFamily: "ecdsa_secp256k1",
|
|
39878
39738
|
walletKeyId: parseWalletKey(entry.walletKeyId),
|
|
39879
|
-
clientEphemeralPublicKey:
|
|
39739
|
+
clientEphemeralPublicKey: requireCanonicalString(entry.clientEphemeralPublicKey, "ECDSA client ephemeral public key", "is required")
|
|
39880
39740
|
};
|
|
39881
39741
|
}
|
|
39882
39742
|
throw new Error("ordinary recipient request key family is invalid");
|
|
@@ -39887,7 +39747,11 @@ function parseRecipientRequestTuple(value) {
|
|
|
39887
39747
|
return [first, ...requests.slice(1)];
|
|
39888
39748
|
}
|
|
39889
39749
|
function parseRecipientPreparationResult(value) {
|
|
39890
|
-
if (!
|
|
39750
|
+
if (!hasExactKeys(value, [
|
|
39751
|
+
"kind",
|
|
39752
|
+
"recipientRequests",
|
|
39753
|
+
"recipientInputs"
|
|
39754
|
+
])) throw new Error("ordinary recipient preparation result has invalid fields");
|
|
39891
39755
|
if (value.kind !== "device_linking_ordinary_signer_material_recipient_preparation_v1") throw new Error("ordinary recipient preparation result kind is invalid");
|
|
39892
39756
|
const recipientRequests = parseRecipientRequestTuple(value.recipientRequests);
|
|
39893
39757
|
const recipientInputs = parseRecipientInputTuple(value.recipientInputs);
|
|
@@ -39899,8 +39763,13 @@ function parseRecipientPreparationResult(value) {
|
|
|
39899
39763
|
}
|
|
39900
39764
|
function parseRecipientInputTuple(value) {
|
|
39901
39765
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient inputs must contain one or two entries");
|
|
39902
|
-
const inputs = value.map((entry
|
|
39903
|
-
if (
|
|
39766
|
+
const inputs = value.map((entry) => {
|
|
39767
|
+
if (hasExactKeys(entry, [
|
|
39768
|
+
"kind",
|
|
39769
|
+
"keyFamily",
|
|
39770
|
+
"walletKeyId",
|
|
39771
|
+
"recipientPrivateKey"
|
|
39772
|
+
])) {
|
|
39904
39773
|
if (entry.kind !== "ordinary_ed25519_signer_material_recipient_input_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient input kind is invalid");
|
|
39905
39774
|
return {
|
|
39906
39775
|
kind: "ordinary_ed25519_signer_material_recipient_input_v1",
|
|
@@ -39909,7 +39778,12 @@ function parseRecipientInputTuple(value) {
|
|
|
39909
39778
|
recipientPrivateKey: parsePrivateKeyBuffer(entry.recipientPrivateKey, "Ed25519 recipient private key")
|
|
39910
39779
|
};
|
|
39911
39780
|
}
|
|
39912
|
-
if (
|
|
39781
|
+
if (hasExactKeys(entry, [
|
|
39782
|
+
"kind",
|
|
39783
|
+
"keyFamily",
|
|
39784
|
+
"walletKeyId",
|
|
39785
|
+
"clientEphemeralPrivateKey"
|
|
39786
|
+
])) {
|
|
39913
39787
|
if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_input_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient input kind is invalid");
|
|
39914
39788
|
return {
|
|
39915
39789
|
kind: "ordinary_ecdsa_signer_material_recipient_input_v1",
|
|
@@ -39957,7 +39831,13 @@ function parsePreparation(value) {
|
|
|
39957
39831
|
return parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1(value);
|
|
39958
39832
|
}
|
|
39959
39833
|
function parseTargetFactorBindingV1(value) {
|
|
39960
|
-
if (
|
|
39834
|
+
if (hasExactKeys(value, [
|
|
39835
|
+
"kind",
|
|
39836
|
+
"walletAuthMethodId",
|
|
39837
|
+
"verificationDigestB64u",
|
|
39838
|
+
"rpId",
|
|
39839
|
+
"credentialIdB64u"
|
|
39840
|
+
])) {
|
|
39961
39841
|
if (value.kind !== "passkey") throw new Error("ordinary material target factor kind is unsupported");
|
|
39962
39842
|
const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
|
|
39963
39843
|
if (!authMethod.ok) throw new Error(authMethod.error.message);
|
|
@@ -39966,29 +39846,41 @@ function parseTargetFactorBindingV1(value) {
|
|
|
39966
39846
|
kind: "passkey",
|
|
39967
39847
|
walletAuthMethodId: authMethod.value,
|
|
39968
39848
|
verificationDigestB64u,
|
|
39969
|
-
rpId:
|
|
39849
|
+
rpId: requireCanonicalString(value.rpId, "ordinary target factor rpId", "is required"),
|
|
39970
39850
|
credentialIdB64u: parseB64u(value.credentialIdB64u, "ordinary target factor credentialIdB64u")
|
|
39971
39851
|
};
|
|
39972
39852
|
}
|
|
39973
|
-
if (
|
|
39853
|
+
if (hasExactKeys(value, [
|
|
39854
|
+
"kind",
|
|
39855
|
+
"walletAuthMethodId",
|
|
39856
|
+
"verificationDigestB64u",
|
|
39857
|
+
"emailHashHex",
|
|
39858
|
+
"registrationAuthorityId"
|
|
39859
|
+
])) {
|
|
39974
39860
|
if (value.kind !== "email_otp") throw new Error("ordinary material target factor kind is unsupported");
|
|
39975
39861
|
const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
|
|
39976
39862
|
if (!authMethod.ok) throw new Error(authMethod.error.message);
|
|
39977
39863
|
const verificationDigestB64u = parseDigestB64u(value.verificationDigestB64u);
|
|
39978
|
-
const emailHashHex =
|
|
39864
|
+
const emailHashHex = requireCanonicalString(value.emailHashHex, "ordinary target factor emailHashHex", "is required");
|
|
39979
39865
|
if (!/^[0-9a-f]{64}$/.test(emailHashHex)) throw new Error("ordinary target factor emailHashHex is invalid");
|
|
39980
39866
|
return {
|
|
39981
39867
|
kind: "email_otp",
|
|
39982
39868
|
walletAuthMethodId: authMethod.value,
|
|
39983
39869
|
verificationDigestB64u,
|
|
39984
39870
|
emailHashHex,
|
|
39985
|
-
registrationAuthorityId:
|
|
39871
|
+
registrationAuthorityId: requireCanonicalString(value.registrationAuthorityId, "ordinary target factor registrationAuthorityId", "is required")
|
|
39986
39872
|
};
|
|
39987
39873
|
}
|
|
39988
39874
|
throw new Error("ordinary material target factor kind is unsupported");
|
|
39989
39875
|
}
|
|
39990
39876
|
function parseWalletAuthorityExportRootRecordV1(value) {
|
|
39991
|
-
if (!
|
|
39877
|
+
if (!hasExactKeys(value, [
|
|
39878
|
+
"kind",
|
|
39879
|
+
"authorityId",
|
|
39880
|
+
"walletAuthMethodId",
|
|
39881
|
+
"walletKeyId",
|
|
39882
|
+
"envelope"
|
|
39883
|
+
])) throw new Error("ordinary material export-root record has invalid fields");
|
|
39992
39884
|
if (value.kind !== "wallet_authority_export_root_v1") throw new Error("ordinary material export-root record kind is invalid");
|
|
39993
39885
|
const authorityId = parseWalletAuthorityId(value.authorityId);
|
|
39994
39886
|
if (!authorityId.ok) throw new Error(authorityId.error.message);
|
|
@@ -40005,7 +39897,11 @@ function parseWalletAuthorityExportRootRecordV1(value) {
|
|
|
40005
39897
|
};
|
|
40006
39898
|
}
|
|
40007
39899
|
function parseSealedLocalAuthorityMaterialSetV1(value) {
|
|
40008
|
-
if (!
|
|
39900
|
+
if (!hasExactKeys(value, [
|
|
39901
|
+
"signerMaterials",
|
|
39902
|
+
"exportRoot",
|
|
39903
|
+
"installedRecordSetDigestB64u"
|
|
39904
|
+
])) throw new Error("ordinary material worker returned an invalid sealed record set");
|
|
40009
39905
|
if (!Array.isArray(value.signerMaterials) || value.signerMaterials.length === 0) throw new Error("ordinary material worker returned an invalid sealed record set");
|
|
40010
39906
|
const signerMaterials = value.signerMaterials.map((entry) => parseWalletAuthorityLinkedSignerMaterialRecordV1(entry));
|
|
40011
39907
|
const firstSignerMaterial = signerMaterials[0];
|
|
@@ -40017,7 +39913,7 @@ function parseSealedLocalAuthorityMaterialSetV1(value) {
|
|
|
40017
39913
|
};
|
|
40018
39914
|
}
|
|
40019
39915
|
function parseB64u(value, label) {
|
|
40020
|
-
const encoded =
|
|
39916
|
+
const encoded = requireCanonicalString(value, label, "is required");
|
|
40021
39917
|
let decoded;
|
|
40022
39918
|
try {
|
|
40023
39919
|
decoded = base64UrlDecode(encoded);
|
|
@@ -40031,66 +39927,8 @@ function parseB64u(value, label) {
|
|
|
40031
39927
|
decoded.fill(0);
|
|
40032
39928
|
return encoded;
|
|
40033
39929
|
}
|
|
40034
|
-
function isOrdinaryResealedExportRootRecordV1(value) {
|
|
40035
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "envelope";
|
|
40036
|
-
}
|
|
40037
|
-
function isOrdinaryMaterialPreparationResultRecordV1(value) {
|
|
40038
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|preparations|targetFactor";
|
|
40039
|
-
}
|
|
40040
|
-
function isOrdinaryRecipientRequirementRecordV1(value) {
|
|
40041
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|walletKeyId";
|
|
40042
|
-
}
|
|
40043
|
-
function isOrdinaryEd25519RecipientRequestRecordV1(value) {
|
|
40044
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPublicKeyB64u|walletKeyId";
|
|
40045
|
-
}
|
|
40046
|
-
function isOrdinaryEcdsaRecipientRequestRecordV1(value) {
|
|
40047
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPublicKey|keyFamily|kind|walletKeyId";
|
|
40048
|
-
}
|
|
40049
|
-
function isOrdinaryRecipientPreparationResultRecordV1(value) {
|
|
40050
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|recipientInputs|recipientRequests";
|
|
40051
|
-
}
|
|
40052
|
-
function isOrdinaryEd25519RecipientInputRecordV1(value) {
|
|
40053
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPrivateKey|walletKeyId";
|
|
40054
|
-
}
|
|
40055
|
-
function isOrdinaryEcdsaRecipientInputRecordV1(value) {
|
|
40056
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPrivateKey|keyFamily|kind|walletKeyId";
|
|
40057
|
-
}
|
|
40058
|
-
function isOrdinaryPasskeyTargetFactorRecordV1(value) {
|
|
40059
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "credentialIdB64u|kind|rpId|verificationDigestB64u|walletAuthMethodId";
|
|
40060
|
-
}
|
|
40061
|
-
function isOrdinaryEmailOtpTargetFactorRecordV1(value) {
|
|
40062
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "emailHashHex|kind|registrationAuthorityId|verificationDigestB64u|walletAuthMethodId";
|
|
40063
|
-
}
|
|
40064
|
-
function isWalletAuthorityExportRootRecordV1(value) {
|
|
40065
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "authorityId|envelope|kind|walletAuthMethodId|walletKeyId";
|
|
40066
|
-
}
|
|
40067
|
-
function isSealedLocalAuthorityMaterialSetRecordV1(value) {
|
|
40068
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "exportRoot|installedRecordSetDigestB64u|signerMaterials";
|
|
40069
|
-
}
|
|
40070
|
-
function requireString$1(value, label) {
|
|
40071
|
-
if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
|
|
40072
|
-
return value;
|
|
40073
|
-
}
|
|
40074
39930
|
//#endregion
|
|
40075
39931
|
//#region src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.ts
|
|
40076
|
-
function isDeviceLinkingKeyHandleRecordV1(value) {
|
|
40077
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "handleId|kind";
|
|
40078
|
-
}
|
|
40079
|
-
function isDeviceLinkingKeyCreateResultRecordV1(value) {
|
|
40080
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "deliveryRecipientPublicKey65B64u|devicePublicKeyB64u|handleId|linkPublicKeyB64u";
|
|
40081
|
-
}
|
|
40082
|
-
function isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value) {
|
|
40083
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "factorSecret|kind|verificationGrant";
|
|
40084
|
-
}
|
|
40085
|
-
function isDeviceLinkingRequestSignatureResultRecordV1(value) {
|
|
40086
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "signatureB64u";
|
|
40087
|
-
}
|
|
40088
|
-
function isDeviceLinkingWorkerSuccessFrameRecordV1(value) {
|
|
40089
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "id|ok|result" && "ok" in value && value.ok === true;
|
|
40090
|
-
}
|
|
40091
|
-
function isDeviceLinkingWorkerFailureFrameRecordV1(value) {
|
|
40092
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "error|id|ok" && "ok" in value && value.ok === false;
|
|
40093
|
-
}
|
|
40094
39932
|
function nonEmpty(value, label) {
|
|
40095
39933
|
if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
|
|
40096
39934
|
return value;
|
|
@@ -40116,7 +39954,7 @@ function parseFixedB64u(value, length, label) {
|
|
|
40116
39954
|
return encoded;
|
|
40117
39955
|
}
|
|
40118
39956
|
function parseHandle(value) {
|
|
40119
|
-
if (!
|
|
39957
|
+
if (!hasExactKeys(value, ["kind", "handleId"])) throw new Error("device-linking key handle has invalid fields");
|
|
40120
39958
|
const record = value;
|
|
40121
39959
|
if (record.kind !== "device_linking_key_material_handle_v1") throw new Error("device-linking key handle kind is invalid");
|
|
40122
39960
|
return {
|
|
@@ -40125,7 +39963,12 @@ function parseHandle(value) {
|
|
|
40125
39963
|
};
|
|
40126
39964
|
}
|
|
40127
39965
|
function parseCreateResult(value) {
|
|
40128
|
-
if (!
|
|
39966
|
+
if (!hasExactKeys(value, [
|
|
39967
|
+
"handleId",
|
|
39968
|
+
"linkPublicKeyB64u",
|
|
39969
|
+
"devicePublicKeyB64u",
|
|
39970
|
+
"deliveryRecipientPublicKey65B64u"
|
|
39971
|
+
])) throw new Error("device-linking key create response has invalid fields");
|
|
40129
39972
|
const record = value;
|
|
40130
39973
|
return {
|
|
40131
39974
|
handle: {
|
|
@@ -40138,7 +39981,11 @@ function parseCreateResult(value) {
|
|
|
40138
39981
|
};
|
|
40139
39982
|
}
|
|
40140
39983
|
function parseEmailOtpFactorReleaseResult(value) {
|
|
40141
|
-
if (!
|
|
39984
|
+
if (!hasExactKeys(value, [
|
|
39985
|
+
"kind",
|
|
39986
|
+
"verificationGrant",
|
|
39987
|
+
"factorSecret"
|
|
39988
|
+
])) throw new Error("device-linking Email OTP factor release response has invalid fields");
|
|
40142
39989
|
const record = value;
|
|
40143
39990
|
if (record.kind !== "device_linking_email_otp_factor_release_result_v1") throw new Error("device-linking Email OTP factor release response kind is invalid");
|
|
40144
39991
|
if (!(record.factorSecret instanceof ArrayBuffer) || record.factorSecret.byteLength !== 32) throw new Error("device-linking Email OTP factor release secret is invalid");
|
|
@@ -40152,11 +39999,15 @@ function parseWalletSessionCredentialDeliveryResult(value) {
|
|
|
40152
39999
|
return parseWalletSessionOperationCredentialV1(value);
|
|
40153
40000
|
}
|
|
40154
40001
|
function parseSignatureResult(value) {
|
|
40155
|
-
if (!
|
|
40002
|
+
if (!hasExactKeys(value, ["signatureB64u"])) throw new Error("device-linking request signature response has invalid fields");
|
|
40156
40003
|
return { signatureB64u: parseFixedB64u(value.signatureB64u, 64, "signatureB64u") };
|
|
40157
40004
|
}
|
|
40158
40005
|
function parseResponseFrame(value) {
|
|
40159
|
-
if (
|
|
40006
|
+
if (hasExactKeys(value, [
|
|
40007
|
+
"id",
|
|
40008
|
+
"ok",
|
|
40009
|
+
"result"
|
|
40010
|
+
]) && value.ok === true) {
|
|
40160
40011
|
const id = value.id;
|
|
40161
40012
|
if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
|
|
40162
40013
|
return {
|
|
@@ -40165,7 +40016,11 @@ function parseResponseFrame(value) {
|
|
|
40165
40016
|
result: value.result
|
|
40166
40017
|
};
|
|
40167
40018
|
}
|
|
40168
|
-
if (
|
|
40019
|
+
if (hasExactKeys(value, [
|
|
40020
|
+
"id",
|
|
40021
|
+
"ok",
|
|
40022
|
+
"error"
|
|
40023
|
+
]) && value.ok === false) {
|
|
40169
40024
|
const id = value.id;
|
|
40170
40025
|
if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
|
|
40171
40026
|
if (typeof value.error !== "string" || !value.error.trim()) return null;
|
|
@@ -40675,122 +40530,16 @@ function createDeviceLinkingFlowPortsV1(args) {
|
|
|
40675
40530
|
};
|
|
40676
40531
|
}
|
|
40677
40532
|
//#endregion
|
|
40678
|
-
//#region src/SeamsWeb/operations/devices/walletHostComposition.ts
|
|
40679
|
-
const LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/devices";
|
|
40680
|
-
const OWNER_WALLET_SESSION_REAUTH_REQUIRED = "owner_wallet_session_reauth_required";
|
|
40681
|
-
var OwnerWalletSessionReauthRequiredError = class extends Error {
|
|
40682
|
-
constructor() {
|
|
40683
|
-
super("The owner Wallet Session must be renewed");
|
|
40684
|
-
this.code = OWNER_WALLET_SESSION_REAUTH_REQUIRED;
|
|
40685
|
-
this.name = "OwnerWalletSessionReauthRequiredError";
|
|
40686
|
-
}
|
|
40687
|
-
};
|
|
40688
|
-
function createWalletHostCompositionV1(args) {
|
|
40689
|
-
const deviceLinkingPorts = createDeviceLinkingFlowPortsV1(args);
|
|
40690
|
-
return {
|
|
40691
|
-
linkedDeviceManagement: createWalletHostLinkedDeviceManagementPortV1({ request: args.managementRequest }),
|
|
40692
|
-
deviceLinkingPorts,
|
|
40693
|
-
dispose: deviceLinkingPorts.dispose
|
|
40694
|
-
};
|
|
40695
|
-
}
|
|
40696
|
-
function createWalletHostLinkedDeviceManagementPortV1(args) {
|
|
40697
|
-
return {
|
|
40698
|
-
listLinkedDevices: async ({ walletId, limit, cursor }) => {
|
|
40699
|
-
const request = parseLinkedDeviceListRequestV1({
|
|
40700
|
-
kind: "linked_device_list_request_v1",
|
|
40701
|
-
walletId,
|
|
40702
|
-
limit,
|
|
40703
|
-
cursor
|
|
40704
|
-
});
|
|
40705
|
-
const path = `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}?walletId=${encodeURIComponent(String(request.walletId))}&limit=${encodeURIComponent(String(request.limit))}&cursor=${encodeURIComponent(request.cursor ?? "")}`;
|
|
40706
|
-
const response = await args.request.request({
|
|
40707
|
-
method: "GET",
|
|
40708
|
-
canonicalPath: path,
|
|
40709
|
-
walletId: request.walletId
|
|
40710
|
-
});
|
|
40711
|
-
assertManagementSuccess(response, "list linked devices");
|
|
40712
|
-
return parseLinkedDeviceListResponseV1(response.body);
|
|
40713
|
-
},
|
|
40714
|
-
revokeLinkedDevice: async ({ walletId, walletAuthMethodId, requestedAtMs, sourceProof }) => {
|
|
40715
|
-
const request = parseLinkedDeviceRevokeRequestV1({
|
|
40716
|
-
kind: "linked_device_revoke_request_v1",
|
|
40717
|
-
walletId,
|
|
40718
|
-
walletAuthMethodId,
|
|
40719
|
-
requestedAtMs
|
|
40720
|
-
});
|
|
40721
|
-
return parseManagementRevokeResult(await args.request.request({
|
|
40722
|
-
method: "POST",
|
|
40723
|
-
canonicalPath: `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}/${encodeURIComponent(String(walletAuthMethodId))}/revoke`,
|
|
40724
|
-
body: {
|
|
40725
|
-
...request,
|
|
40726
|
-
sourceProof
|
|
40727
|
-
},
|
|
40728
|
-
walletId
|
|
40729
|
-
}));
|
|
40730
|
-
}
|
|
40731
|
-
};
|
|
40732
|
-
}
|
|
40733
|
-
function parseManagementRevokeResult(response) {
|
|
40734
|
-
if (response.status === 404) return parseLinkedDeviceRevokeResultV1({ kind: "not_found" });
|
|
40735
|
-
if (response.status === 409) return parseLinkedDeviceRevokeResultV1({ kind: "conflict" });
|
|
40736
|
-
if (response.status === 401 || response.status === 403) return parseLinkedDeviceRevokeResultV1({ kind: "unauthorized" });
|
|
40737
|
-
assertManagementSuccess(response, "revoke linked device");
|
|
40738
|
-
return parseLinkedDeviceRevokeResponseV1(response.body);
|
|
40739
|
-
}
|
|
40740
|
-
function assertManagementSuccess(response, operation) {
|
|
40741
|
-
if (response.status < 200 || response.status >= 300) {
|
|
40742
|
-
if (response.status === 401 && isManagementUnauthorizedFailureRecordV1(response.body)) throw new OwnerWalletSessionReauthRequiredError();
|
|
40743
|
-
const detail = managementFailureDetail(response.body);
|
|
40744
|
-
throw new Error(detail ? `linked-device ${operation} failed with HTTP ${response.status}: ${detail}` : `linked-device ${operation} failed with HTTP ${response.status}`);
|
|
40745
|
-
}
|
|
40746
|
-
}
|
|
40747
|
-
function managementFailureDetail(raw) {
|
|
40748
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
40749
|
-
if (isManagementFailureWithMessageRecordV1(raw)) return raw.message;
|
|
40750
|
-
if (isManagementUnauthorizedFailureRecordV1(raw)) return raw.message;
|
|
40751
|
-
return null;
|
|
40752
|
-
}
|
|
40753
|
-
function parseLinkedDeviceListResponseV1(raw) {
|
|
40754
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device list response must be an object");
|
|
40755
|
-
if (!isLinkedDeviceListResponseRecordV1(raw)) throw new Error("linked-device list response has unexpected fields");
|
|
40756
|
-
if (raw.ok !== true) throw new Error("linked-device list response is not successful");
|
|
40757
|
-
return parseLinkedDeviceListResultV1({
|
|
40758
|
-
devices: raw.devices,
|
|
40759
|
-
ownerDevices: raw.ownerDevices,
|
|
40760
|
-
nextCursor: raw.nextCursor
|
|
40761
|
-
});
|
|
40762
|
-
}
|
|
40763
|
-
function isLinkedDeviceListResponseRecordV1(value) {
|
|
40764
|
-
return Object.keys(value).sort().join("|") === "devices|nextCursor|ok|ownerDevices";
|
|
40765
|
-
}
|
|
40766
|
-
function parseLinkedDeviceRevokeResponseV1(raw) {
|
|
40767
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device revoke response must be an object");
|
|
40768
|
-
if (!isLinkedDeviceRevokeResponseRecordV1(raw)) throw new Error("linked-device revoke response has unexpected fields");
|
|
40769
|
-
if (raw.ok !== true) throw new Error("linked-device revoke response is not successful");
|
|
40770
|
-
return parseLinkedDeviceRevokeResultV1({
|
|
40771
|
-
kind: raw.kind,
|
|
40772
|
-
walletAuthMethodId: raw.walletAuthMethodId,
|
|
40773
|
-
authorityId: raw.authorityId,
|
|
40774
|
-
revocationEpoch: raw.revocationEpoch
|
|
40775
|
-
});
|
|
40776
|
-
}
|
|
40777
|
-
function isLinkedDeviceRevokeResponseRecordV1(value) {
|
|
40778
|
-
return Object.keys(value).sort().join("|") === "authorityId|kind|ok|revocationEpoch|walletAuthMethodId";
|
|
40779
|
-
}
|
|
40780
|
-
function isManagementFailureWithMessageRecordV1(value) {
|
|
40781
|
-
if (Object.keys(value).sort().join("|") !== "kind|message|ok") return false;
|
|
40782
|
-
if (!("ok" in value) || !("kind" in value) || !("message" in value)) return false;
|
|
40783
|
-
return value.ok === false && (value.kind === "invalid_input" || value.kind === "internal") && typeof value.message === "string" && value.message.trim().length > 0;
|
|
40784
|
-
}
|
|
40785
|
-
function isManagementUnauthorizedFailureRecordV1(value) {
|
|
40786
|
-
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
40787
|
-
if (Object.keys(value).sort().join("|") !== "code|kind|message|ok") return false;
|
|
40788
|
-
if (!("ok" in value) || !("kind" in value) || !("code" in value) || !("message" in value)) return false;
|
|
40789
|
-
return value.ok === false && value.kind === "unauthorized" && typeof value.code === "string" && typeof value.message === "string" && value.message.trim().length > 0;
|
|
40790
|
-
}
|
|
40791
|
-
//#endregion
|
|
40792
40533
|
//#region src/SeamsWeb/operations/devices/walletHostOwnerAuthority.ts
|
|
40793
40534
|
const OWNER_AUTHORIZATION_PATH = "/wallet/device-linking/v1/owner-authorization";
|
|
40535
|
+
/** An owner request that received no answer: the network failed, or it timed out. */
|
|
40536
|
+
var WalletHostOwnerRequestTransportError = class extends Error {
|
|
40537
|
+
constructor(code, message) {
|
|
40538
|
+
super(`Owner Router request failed: ${message}`);
|
|
40539
|
+
this.code = code;
|
|
40540
|
+
this.name = "WalletHostOwnerRequestTransportError";
|
|
40541
|
+
}
|
|
40542
|
+
};
|
|
40794
40543
|
function createWalletHostOwnerAuthoritiesV1(input) {
|
|
40795
40544
|
const context = normalizeContext(input);
|
|
40796
40545
|
return {
|
|
@@ -40808,7 +40557,7 @@ function normalizeContext(input) {
|
|
|
40808
40557
|
};
|
|
40809
40558
|
}
|
|
40810
40559
|
/**
|
|
40811
|
-
* The
|
|
40560
|
+
* The fail-closed preflight, exact result `wallet_unlock_required`.
|
|
40812
40561
|
*
|
|
40813
40562
|
* The locked and missing-session arms run before any network I/O. The
|
|
40814
40563
|
* export-root arm runs after the stateless owner-authorization read, because
|
|
@@ -40892,7 +40641,7 @@ async function requestWithCredentialV1(context, walletSessionToken, input) {
|
|
|
40892
40641
|
headers: { authorization: `Bearer ${walletSessionToken}` },
|
|
40893
40642
|
...input.body === void 0 ? {} : { body: input.body }
|
|
40894
40643
|
});
|
|
40895
|
-
if (!response.ok) throw new
|
|
40644
|
+
if (!response.ok) throw new WalletHostOwnerRequestTransportError(response.code, response.message);
|
|
40896
40645
|
return response.value;
|
|
40897
40646
|
}
|
|
40898
40647
|
function parseOwnerAuthorizationResponseV1(raw, session) {
|
|
@@ -40961,6 +40710,129 @@ function positiveSafeInteger(raw, label) {
|
|
|
40961
40710
|
return Number(raw);
|
|
40962
40711
|
}
|
|
40963
40712
|
//#endregion
|
|
40713
|
+
//#region src/SeamsWeb/operations/devices/walletHostComposition.ts
|
|
40714
|
+
const LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/devices";
|
|
40715
|
+
const OWNER_WALLET_SESSION_REAUTH_REQUIRED = "owner_wallet_session_reauth_required";
|
|
40716
|
+
var OwnerWalletSessionReauthRequiredError = class extends Error {
|
|
40717
|
+
constructor() {
|
|
40718
|
+
super("The owner Wallet Session must be renewed");
|
|
40719
|
+
this.code = OWNER_WALLET_SESSION_REAUTH_REQUIRED;
|
|
40720
|
+
this.name = "OwnerWalletSessionReauthRequiredError";
|
|
40721
|
+
}
|
|
40722
|
+
};
|
|
40723
|
+
function createWalletHostCompositionV1(args) {
|
|
40724
|
+
const deviceLinkingPorts = createDeviceLinkingFlowPortsV1(args);
|
|
40725
|
+
return {
|
|
40726
|
+
linkedDeviceManagement: createWalletHostLinkedDeviceManagementPortV1({ request: args.managementRequest }),
|
|
40727
|
+
deviceLinkingPorts,
|
|
40728
|
+
dispose: deviceLinkingPorts.dispose
|
|
40729
|
+
};
|
|
40730
|
+
}
|
|
40731
|
+
function createWalletHostLinkedDeviceManagementPortV1(args) {
|
|
40732
|
+
return {
|
|
40733
|
+
listLinkedDevices: async ({ walletId, limit, cursor }) => {
|
|
40734
|
+
const request = parseLinkedDeviceListRequestV1({
|
|
40735
|
+
kind: "linked_device_list_request_v1",
|
|
40736
|
+
walletId,
|
|
40737
|
+
limit,
|
|
40738
|
+
cursor
|
|
40739
|
+
});
|
|
40740
|
+
const path = `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}?walletId=${encodeURIComponent(String(request.walletId))}&limit=${encodeURIComponent(String(request.limit))}&cursor=${encodeURIComponent(request.cursor ?? "")}`;
|
|
40741
|
+
const response = await args.request.request({
|
|
40742
|
+
method: "GET",
|
|
40743
|
+
canonicalPath: path,
|
|
40744
|
+
walletId: request.walletId
|
|
40745
|
+
});
|
|
40746
|
+
assertManagementSuccess(response, "list linked devices");
|
|
40747
|
+
return parseLinkedDeviceListResponseV1(response.body);
|
|
40748
|
+
},
|
|
40749
|
+
revokeLinkedDevice: async ({ walletId, walletAuthMethodId, requestedAtMs, sourceProof }) => {
|
|
40750
|
+
const request = parseLinkedDeviceRevokeRequestV1({
|
|
40751
|
+
kind: "linked_device_revoke_request_v1",
|
|
40752
|
+
walletId,
|
|
40753
|
+
walletAuthMethodId,
|
|
40754
|
+
requestedAtMs
|
|
40755
|
+
});
|
|
40756
|
+
const send = async () => await args.request.request({
|
|
40757
|
+
method: "POST",
|
|
40758
|
+
canonicalPath: `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}/${encodeURIComponent(String(walletAuthMethodId))}/revoke`,
|
|
40759
|
+
body: {
|
|
40760
|
+
...request,
|
|
40761
|
+
sourceProof
|
|
40762
|
+
},
|
|
40763
|
+
walletId
|
|
40764
|
+
});
|
|
40765
|
+
let response;
|
|
40766
|
+
try {
|
|
40767
|
+
response = await send();
|
|
40768
|
+
} catch (error) {
|
|
40769
|
+
if (!(error instanceof WalletHostOwnerRequestTransportError)) throw error;
|
|
40770
|
+
if (error.code !== "network_error") throw error;
|
|
40771
|
+
response = await send();
|
|
40772
|
+
}
|
|
40773
|
+
return parseManagementRevokeResult(response);
|
|
40774
|
+
}
|
|
40775
|
+
};
|
|
40776
|
+
}
|
|
40777
|
+
function parseManagementRevokeResult(response) {
|
|
40778
|
+
if (response.status === 404) return parseLinkedDeviceRevokeResultV1({ kind: "not_found" });
|
|
40779
|
+
if (response.status === 409) return parseLinkedDeviceRevokeResultV1({ kind: "conflict" });
|
|
40780
|
+
if (response.status === 401 || response.status === 403) return parseLinkedDeviceRevokeResultV1({ kind: "unauthorized" });
|
|
40781
|
+
assertManagementSuccess(response, "revoke linked device");
|
|
40782
|
+
return parseLinkedDeviceRevokeResponseV1(response.body);
|
|
40783
|
+
}
|
|
40784
|
+
function assertManagementSuccess(response, operation) {
|
|
40785
|
+
if (response.status < 200 || response.status >= 300) {
|
|
40786
|
+
if (response.status === 401 && isManagementUnauthorizedFailureRecordV1(response.body)) throw new OwnerWalletSessionReauthRequiredError();
|
|
40787
|
+
const detail = managementFailureDetail(response.body);
|
|
40788
|
+
throw new Error(detail ? `linked-device ${operation} failed with HTTP ${response.status}: ${detail}` : `linked-device ${operation} failed with HTTP ${response.status}`);
|
|
40789
|
+
}
|
|
40790
|
+
}
|
|
40791
|
+
function managementFailureDetail(raw) {
|
|
40792
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
|
|
40793
|
+
if (isManagementFailureWithMessageRecordV1(raw)) return raw.message;
|
|
40794
|
+
if (isManagementUnauthorizedFailureRecordV1(raw)) return raw.message;
|
|
40795
|
+
return null;
|
|
40796
|
+
}
|
|
40797
|
+
function parseLinkedDeviceListResponseV1(raw) {
|
|
40798
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device list response must be an object");
|
|
40799
|
+
if (!isLinkedDeviceListResponseRecordV1(raw)) throw new Error("linked-device list response has unexpected fields");
|
|
40800
|
+
if (raw.ok !== true) throw new Error("linked-device list response is not successful");
|
|
40801
|
+
return parseLinkedDeviceListResultV1({
|
|
40802
|
+
devices: raw.devices,
|
|
40803
|
+
ownerDevices: raw.ownerDevices,
|
|
40804
|
+
nextCursor: raw.nextCursor
|
|
40805
|
+
});
|
|
40806
|
+
}
|
|
40807
|
+
function isLinkedDeviceListResponseRecordV1(value) {
|
|
40808
|
+
return Object.keys(value).sort().join("|") === "devices|nextCursor|ok|ownerDevices";
|
|
40809
|
+
}
|
|
40810
|
+
function parseLinkedDeviceRevokeResponseV1(raw) {
|
|
40811
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device revoke response must be an object");
|
|
40812
|
+
if (!isLinkedDeviceRevokeResponseRecordV1(raw)) throw new Error("linked-device revoke response has unexpected fields");
|
|
40813
|
+
if (raw.ok !== true) throw new Error("linked-device revoke response is not successful");
|
|
40814
|
+
return parseLinkedDeviceRevokeResultV1({
|
|
40815
|
+
kind: raw.kind,
|
|
40816
|
+
walletAuthMethodId: raw.walletAuthMethodId,
|
|
40817
|
+
authorityId: raw.authorityId,
|
|
40818
|
+
revocationEpoch: raw.revocationEpoch
|
|
40819
|
+
});
|
|
40820
|
+
}
|
|
40821
|
+
function isLinkedDeviceRevokeResponseRecordV1(value) {
|
|
40822
|
+
return Object.keys(value).sort().join("|") === "authorityId|kind|ok|revocationEpoch|walletAuthMethodId";
|
|
40823
|
+
}
|
|
40824
|
+
function isManagementFailureWithMessageRecordV1(value) {
|
|
40825
|
+
if (Object.keys(value).sort().join("|") !== "kind|message|ok") return false;
|
|
40826
|
+
if (!("ok" in value) || !("kind" in value) || !("message" in value)) return false;
|
|
40827
|
+
return value.ok === false && (value.kind === "invalid_input" || value.kind === "internal") && typeof value.message === "string" && value.message.trim().length > 0;
|
|
40828
|
+
}
|
|
40829
|
+
function isManagementUnauthorizedFailureRecordV1(value) {
|
|
40830
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
40831
|
+
if (Object.keys(value).sort().join("|") !== "code|kind|message|ok") return false;
|
|
40832
|
+
if (!("ok" in value) || !("kind" in value) || !("code" in value) || !("message" in value)) return false;
|
|
40833
|
+
return value.ok === false && value.kind === "unauthorized" && typeof value.code === "string" && typeof value.message === "string" && value.message.trim().length > 0;
|
|
40834
|
+
}
|
|
40835
|
+
//#endregion
|
|
40964
40836
|
//#region src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.ts
|
|
40965
40837
|
function requestJson(value) {
|
|
40966
40838
|
if (typeof value !== "string" || !value.trim()) throw new Error("Yao lane request JSON is required");
|
|
@@ -41028,6 +40900,8 @@ var Ed25519YaoLaneWorkerSource = class {
|
|
|
41028
40900
|
function createDeviceLinkingEcdsaSourceContributionMetadataReaderV1(context) {
|
|
41029
40901
|
return async ({ preparation }) => {
|
|
41030
40902
|
const sourceActivation = preparation.source.activation;
|
|
40903
|
+
const linked = context.readLinkedEcdsaHolderV1({ materialActivation: sourceActivation });
|
|
40904
|
+
if (linked) return linkedEcdsaSourceMetadataV1(linked, sourceActivation);
|
|
41031
40905
|
const manifest = await context.readActiveEcdsaCapabilityManifestV1({ materialActivation: sourceActivation });
|
|
41032
40906
|
assertExactEcdsaSourceMetadataContextV1({
|
|
41033
40907
|
sourceActivation,
|
|
@@ -41044,6 +40918,28 @@ function createDeviceLinkingEcdsaSourceContributionMetadataReaderV1(context) {
|
|
|
41044
40918
|
};
|
|
41045
40919
|
};
|
|
41046
40920
|
}
|
|
40921
|
+
function linkedEcdsaSourceMetadataV1(holder, sourceActivation) {
|
|
40922
|
+
if (!mpcMaterialActivationRefsEqual(holder.materialActivation, sourceActivation)) throw new Error("linked ECDSA holder activation does not match preparation");
|
|
40923
|
+
const normalSigning = holder.activationReceipt.normalSigning;
|
|
40924
|
+
const scope = normalSigning.scope;
|
|
40925
|
+
const signingKeySlotId = deriveEvmFamilySigningKeySlotId({
|
|
40926
|
+
walletId: holder.walletId,
|
|
40927
|
+
signingRootId: scope.signing_root_id,
|
|
40928
|
+
signingRootVersion: scope.signing_root_version
|
|
40929
|
+
});
|
|
40930
|
+
const walletKeyId = parseWalletKeyId(`wallet-key:ecdsa:${holder.walletId}:${signingKeySlotId}`);
|
|
40931
|
+
if (!walletKeyId.ok) throw new Error(`linked ECDSA source wallet key identity: ${walletKeyId.error.message}`);
|
|
40932
|
+
return {
|
|
40933
|
+
walletKeyId: walletKeyId.value,
|
|
40934
|
+
sourceDerivation: {
|
|
40935
|
+
applicationBindingDigestB64u: parseDigestB64u(scope.context.application_binding_digest_b64u),
|
|
40936
|
+
clientShareRetryCounter: scope.public_identity.client_share_retry_counter,
|
|
40937
|
+
ecdsaThresholdKeyId: parseEcdsaThresholdKeyId(holder.ecdsaThresholdKeyId),
|
|
40938
|
+
sourceNormalSigning: normalSigning
|
|
40939
|
+
},
|
|
40940
|
+
linkedHolderHandleId: holder.holderHandleId
|
|
40941
|
+
};
|
|
40942
|
+
}
|
|
41047
40943
|
function assertExactEcdsaSourceMetadataContextV1(input) {
|
|
41048
40944
|
if (!mpcMaterialActivationRefsEqual(input.manifest.activation.materialActivation, input.sourceActivation)) throw new Error("ECDSA capability manifest activation does not match preparation");
|
|
41049
40945
|
}
|
|
@@ -41123,7 +41019,8 @@ async function produceEcdsaSourceContributionV1(input) {
|
|
|
41123
41019
|
const metadata = await input.readMetadataV1({ preparation: input.preparation });
|
|
41124
41020
|
const prepared = await prepareLinkedDeviceEcdsaSourceContributionWasm({
|
|
41125
41021
|
preparation: input.preparation,
|
|
41126
|
-
workerCtx: input.workerContext
|
|
41022
|
+
workerCtx: input.workerContext,
|
|
41023
|
+
...metadata.linkedHolderHandleId === void 0 ? {} : { linkedHolderHandleId: metadata.linkedHolderHandleId }
|
|
41127
41024
|
});
|
|
41128
41025
|
return {
|
|
41129
41026
|
kind: "linked_device_ecdsa_source_contribution_v1",
|
|
@@ -41165,15 +41062,6 @@ const SECRET_MATERIAL_FIELDS = [
|
|
|
41165
41062
|
"bootstrapMaterial",
|
|
41166
41063
|
"clientSecret32"
|
|
41167
41064
|
];
|
|
41168
|
-
function requireRecord(value, label) {
|
|
41169
|
-
if (!isPlainObject(value)) throw new Error(`${label} must be an object`);
|
|
41170
|
-
return value;
|
|
41171
|
-
}
|
|
41172
|
-
function requireString(value, label) {
|
|
41173
|
-
const normalized = typeof value === "string" ? value.trim() : "";
|
|
41174
|
-
if (!normalized) throw new Error(`${label} is required`);
|
|
41175
|
-
return normalized;
|
|
41176
|
-
}
|
|
41177
41065
|
function requireTimestampMs(value, label) {
|
|
41178
41066
|
if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} must be a positive integer timestamp`);
|
|
41179
41067
|
return value;
|
|
@@ -41183,22 +41071,22 @@ function rejectFields(record, fields, label) {
|
|
|
41183
41071
|
if (forbiddenField) throw new Error(`${label} must not include ${forbiddenField}`);
|
|
41184
41072
|
}
|
|
41185
41073
|
function parseOfferId(value) {
|
|
41186
|
-
return
|
|
41074
|
+
return requireTrimmedString(value, "offerId");
|
|
41187
41075
|
}
|
|
41188
41076
|
function parseCandidateId(value, label = "candidateId") {
|
|
41189
|
-
return
|
|
41077
|
+
return requireTrimmedString(value, label);
|
|
41190
41078
|
}
|
|
41191
41079
|
function parseCandidate(value) {
|
|
41192
|
-
const record = requireRecord(value, "registration candidate");
|
|
41080
|
+
const record = requireRecord$1(value, "registration candidate");
|
|
41193
41081
|
rejectFields(record, OTP_ONLY_FORBIDDEN_FIELDS, "registration candidate");
|
|
41194
41082
|
rejectFields(record, SECRET_MATERIAL_FIELDS, "registration candidate");
|
|
41195
41083
|
return {
|
|
41196
41084
|
candidateId: parseCandidateId(record.candidateId),
|
|
41197
|
-
walletId: walletIdFromString(
|
|
41085
|
+
walletId: walletIdFromString(requireTrimmedString(record.walletId, "candidate.walletId"))
|
|
41198
41086
|
};
|
|
41199
41087
|
}
|
|
41200
41088
|
function parseGoogleEmailOtpRegistrationOffer(value) {
|
|
41201
|
-
const record = requireRecord(value, "Google Email OTP registration offer");
|
|
41089
|
+
const record = requireRecord$1(value, "Google Email OTP registration offer");
|
|
41202
41090
|
rejectFields(record, OTP_ONLY_FORBIDDEN_FIELDS, "Google Email OTP registration offer");
|
|
41203
41091
|
rejectFields(record, SECRET_MATERIAL_FIELDS, "Google Email OTP registration offer");
|
|
41204
41092
|
if (record.kind !== "google_email_otp_registration_offer_v1") throw new Error("registration offer kind must be google_email_otp_registration_offer_v1");
|
|
@@ -41211,7 +41099,7 @@ function parseGoogleEmailOtpRegistrationOffer(value) {
|
|
|
41211
41099
|
kind: "google_email_otp_registration_offer_v1",
|
|
41212
41100
|
offerId: parseOfferId(record.offerId),
|
|
41213
41101
|
expiresAtMs: requireTimestampMs(record.expiresAtMs, "expiresAtMs"),
|
|
41214
|
-
emailHint:
|
|
41102
|
+
emailHint: requireTrimmedString(record.emailHint, "emailHint"),
|
|
41215
41103
|
candidates: [firstCandidate, ...remainingCandidates],
|
|
41216
41104
|
selectedCandidateId
|
|
41217
41105
|
};
|
|
@@ -41791,50 +41679,15 @@ async function rotateWalletRecoverySetWithActiveFactorV1(input) {
|
|
|
41791
41679
|
let issued = issueWalletRecoveryCodes();
|
|
41792
41680
|
const factorSecret = new Uint8Array(input.factorSecret.slice(0));
|
|
41793
41681
|
try {
|
|
41794
|
-
|
|
41795
|
-
|
|
41796
|
-
|
|
41797
|
-
|
|
41798
|
-
|
|
41799
|
-
|
|
41800
|
-
|
|
41801
|
-
|
|
41802
|
-
} : current;
|
|
41803
|
-
const custody = joinCustodyWireFromEnvelopeRecord(input.custodyEnvelope);
|
|
41804
|
-
if (!custody.ok) throw new Error(custody.reason);
|
|
41805
|
-
const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await input.worker.rotateRecoverySet({
|
|
41806
|
-
custodyJson: custody.custodyJson,
|
|
41807
|
-
factorSecret: factorSecret.buffer.slice(0),
|
|
41808
|
-
recoveryCodesJson: JSON.stringify(issued.codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) })))
|
|
41809
|
-
}));
|
|
41810
|
-
if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
|
|
41811
|
-
const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
|
|
41812
|
-
const rotated = await rotateWalletRecoverySet({
|
|
41813
|
-
relayUrl: input.relayUrl,
|
|
41814
|
-
walletId: input.walletId,
|
|
41815
|
-
factorProof: await input.factorProof({
|
|
41816
|
-
operation: "recovery_rotate",
|
|
41817
|
-
payload: {
|
|
41818
|
-
walletId: input.walletId,
|
|
41819
|
-
expectedStoreVersion: current.storeVersion,
|
|
41820
|
-
manifestKekWraps: replacement.manifestKekWraps,
|
|
41821
|
-
entries: [replacement.entry],
|
|
41822
|
-
recoveryCodeLocators
|
|
41823
|
-
}
|
|
41824
|
-
}),
|
|
41825
|
-
expectedStoreVersion: current.storeVersion,
|
|
41826
|
-
replacement,
|
|
41827
|
-
recoveryCodeLocators,
|
|
41828
|
-
...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
|
|
41682
|
+
return await rotateWithIssuedCodes(input, issued, (codeBytes) => {
|
|
41683
|
+
const custody = joinCustodyWireFromEnvelopeRecord(input.custodyEnvelope);
|
|
41684
|
+
if (!custody.ok) throw new Error(custody.reason);
|
|
41685
|
+
return input.worker.rotateRecoverySet({
|
|
41686
|
+
custodyJson: custody.custodyJson,
|
|
41687
|
+
factorSecret: factorSecret.buffer.slice(0),
|
|
41688
|
+
recoveryCodesJson: recoveryCodesJson(codeBytes)
|
|
41689
|
+
});
|
|
41829
41690
|
});
|
|
41830
|
-
if (rotated.kind !== "rotated") return rotated;
|
|
41831
|
-
return {
|
|
41832
|
-
kind: "rotated",
|
|
41833
|
-
walletId: input.walletId,
|
|
41834
|
-
recoveryCodes: issued.codes,
|
|
41835
|
-
issuedAtMs: rotated.issuedAtMs,
|
|
41836
|
-
storeVersion: rotated.storeVersion
|
|
41837
|
-
};
|
|
41838
41691
|
} finally {
|
|
41839
41692
|
factorSecret.fill(0);
|
|
41840
41693
|
if (issued) zeroizeIssuedWalletRecoveryCodes(issued);
|
|
@@ -41844,49 +41697,55 @@ async function rotateWalletRecoverySetWithActiveFactorV1(input) {
|
|
|
41844
41697
|
async function rotateWalletRecoverySetWithEmailOtpV1(input) {
|
|
41845
41698
|
let issued = issueWalletRecoveryCodes();
|
|
41846
41699
|
try {
|
|
41847
|
-
|
|
41848
|
-
relayUrl: input.relayUrl,
|
|
41849
|
-
walletId: input.walletId,
|
|
41850
|
-
...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
|
|
41851
|
-
});
|
|
41852
|
-
if (current.kind !== "ready") return current.kind === "unauthorized" ? {
|
|
41853
|
-
kind: "transport_failed",
|
|
41854
|
-
message: current.message
|
|
41855
|
-
} : current;
|
|
41856
|
-
const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await input.worker.rotateRecoverySet({ recoveryCodesJson: JSON.stringify(issued.codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) }))) }));
|
|
41857
|
-
if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
|
|
41858
|
-
const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
|
|
41859
|
-
const rotated = await rotateWalletRecoverySet({
|
|
41860
|
-
relayUrl: input.relayUrl,
|
|
41861
|
-
walletId: input.walletId,
|
|
41862
|
-
factorProof: await input.factorProof({
|
|
41863
|
-
operation: "recovery_rotate",
|
|
41864
|
-
payload: {
|
|
41865
|
-
walletId: input.walletId,
|
|
41866
|
-
expectedStoreVersion: current.storeVersion,
|
|
41867
|
-
manifestKekWraps: replacement.manifestKekWraps,
|
|
41868
|
-
entries: [replacement.entry],
|
|
41869
|
-
recoveryCodeLocators
|
|
41870
|
-
}
|
|
41871
|
-
}),
|
|
41872
|
-
expectedStoreVersion: current.storeVersion,
|
|
41873
|
-
replacement,
|
|
41874
|
-
recoveryCodeLocators,
|
|
41875
|
-
...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
|
|
41876
|
-
});
|
|
41877
|
-
if (rotated.kind !== "rotated") return rotated;
|
|
41878
|
-
return {
|
|
41879
|
-
kind: "rotated",
|
|
41880
|
-
walletId: input.walletId,
|
|
41881
|
-
recoveryCodes: issued.codes,
|
|
41882
|
-
issuedAtMs: rotated.issuedAtMs,
|
|
41883
|
-
storeVersion: rotated.storeVersion
|
|
41884
|
-
};
|
|
41700
|
+
return await rotateWithIssuedCodes(input, issued, (codeBytes) => input.worker.rotateRecoverySet({ recoveryCodesJson: recoveryCodesJson(codeBytes) }));
|
|
41885
41701
|
} finally {
|
|
41886
41702
|
if (issued) zeroizeIssuedWalletRecoveryCodes(issued);
|
|
41887
41703
|
issued = null;
|
|
41888
41704
|
}
|
|
41889
41705
|
}
|
|
41706
|
+
async function rotateWithIssuedCodes(input, issued, rotateInWorker) {
|
|
41707
|
+
const current = await readWalletRecoveryCodeStatus({
|
|
41708
|
+
relayUrl: input.relayUrl,
|
|
41709
|
+
walletId: input.walletId,
|
|
41710
|
+
...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
|
|
41711
|
+
});
|
|
41712
|
+
if (current.kind !== "ready") return current.kind === "unauthorized" ? {
|
|
41713
|
+
kind: "transport_failed",
|
|
41714
|
+
message: current.message
|
|
41715
|
+
} : current;
|
|
41716
|
+
const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await rotateInWorker(issued.codeBytes));
|
|
41717
|
+
if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
|
|
41718
|
+
const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
|
|
41719
|
+
const rotated = await rotateWalletRecoverySet({
|
|
41720
|
+
relayUrl: input.relayUrl,
|
|
41721
|
+
walletId: input.walletId,
|
|
41722
|
+
factorProof: await input.factorProof({
|
|
41723
|
+
operation: "recovery_rotate",
|
|
41724
|
+
payload: {
|
|
41725
|
+
walletId: input.walletId,
|
|
41726
|
+
expectedStoreVersion: current.storeVersion,
|
|
41727
|
+
manifestKekWraps: replacement.manifestKekWraps,
|
|
41728
|
+
entries: [replacement.entry],
|
|
41729
|
+
recoveryCodeLocators
|
|
41730
|
+
}
|
|
41731
|
+
}),
|
|
41732
|
+
expectedStoreVersion: current.storeVersion,
|
|
41733
|
+
replacement,
|
|
41734
|
+
recoveryCodeLocators,
|
|
41735
|
+
...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
|
|
41736
|
+
});
|
|
41737
|
+
if (rotated.kind !== "rotated") return rotated;
|
|
41738
|
+
return {
|
|
41739
|
+
kind: "rotated",
|
|
41740
|
+
walletId: input.walletId,
|
|
41741
|
+
recoveryCodes: issued.codes,
|
|
41742
|
+
issuedAtMs: rotated.issuedAtMs,
|
|
41743
|
+
storeVersion: rotated.storeVersion
|
|
41744
|
+
};
|
|
41745
|
+
}
|
|
41746
|
+
function recoveryCodesJson(codeBytes) {
|
|
41747
|
+
return JSON.stringify(codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) })));
|
|
41748
|
+
}
|
|
41890
41749
|
async function deriveRecoveryCodeLocators(codeBytes, wraps) {
|
|
41891
41750
|
if (codeBytes.length !== wraps.length) throw new Error("Recovery code locators do not match the replacement wraps");
|
|
41892
41751
|
const recoveryCodeLocators = await Promise.all(codeBytes.map(async (bytes, index) => {
|
|
@@ -42445,21 +42304,31 @@ function createWalletHostOwnerApprovalUpdatesV1(args) {
|
|
|
42445
42304
|
};
|
|
42446
42305
|
}
|
|
42447
42306
|
function createWalletHostEcdsaSourceContributionMetadataReaderV1(args) {
|
|
42448
|
-
return createDeviceLinkingEcdsaSourceContributionMetadataReaderV1({
|
|
42449
|
-
|
|
42450
|
-
|
|
42451
|
-
|
|
42452
|
-
|
|
42453
|
-
|
|
42454
|
-
|
|
42455
|
-
|
|
42456
|
-
|
|
42457
|
-
|
|
42458
|
-
|
|
42459
|
-
|
|
42460
|
-
|
|
42461
|
-
|
|
42462
|
-
|
|
42307
|
+
return createDeviceLinkingEcdsaSourceContributionMetadataReaderV1({
|
|
42308
|
+
readActiveEcdsaCapabilityManifestV1: async ({ materialActivation }) => {
|
|
42309
|
+
const authentication = args.signingEngine.readWalletAuthenticationState();
|
|
42310
|
+
if (authentication.kind !== "authenticated") throw new Error("ECDSA source metadata requires an authenticated wallet");
|
|
42311
|
+
let lookup = await ecdsaCapabilityManifestStore.lookupByMaterialActivation({
|
|
42312
|
+
walletId: authentication.walletId,
|
|
42313
|
+
materialActivation
|
|
42314
|
+
});
|
|
42315
|
+
if (lookup.kind === "ambiguous_authority") lookup = await resolveAmbiguousEcdsaActivationForSelectedAuthMethod({
|
|
42316
|
+
walletId: authentication.walletId,
|
|
42317
|
+
materialActivation,
|
|
42318
|
+
authorities: lookup.authorities
|
|
42319
|
+
});
|
|
42320
|
+
if (lookup.kind !== "active") throw new Error(`ECDSA source metadata manifest is ${lookup.kind}`);
|
|
42321
|
+
return lookup.manifest;
|
|
42322
|
+
},
|
|
42323
|
+
readLinkedEcdsaHolderV1: ({ materialActivation }) => {
|
|
42324
|
+
const authentication = args.signingEngine.readWalletAuthenticationState();
|
|
42325
|
+
if (authentication.kind !== "authenticated") return null;
|
|
42326
|
+
return resolveLinkedEcdsaHolderRuntimeV1({
|
|
42327
|
+
walletId: authentication.walletId,
|
|
42328
|
+
materialActivation
|
|
42329
|
+
});
|
|
42330
|
+
}
|
|
42331
|
+
});
|
|
42463
42332
|
}
|
|
42464
42333
|
function createWalletHostDeviceDomainConstructionV1(args) {
|
|
42465
42334
|
const relayerUrl = String(args.configs.network.relayer?.url || "").trim();
|
|
@@ -42470,7 +42339,7 @@ function createWalletHostDeviceDomainConstructionV1(args) {
|
|
|
42470
42339
|
walletSessions: walletSessionAuthorizations,
|
|
42471
42340
|
resolveSelectedWalletAuthority: IndexedDBManager.resolveSelectedWalletAuthority.bind(IndexedDBManager),
|
|
42472
42341
|
readWalletAuthenticationState: args.signingEngine.readWalletAuthenticationState.bind(args.signingEngine),
|
|
42473
|
-
readUnlockedEd25519ExportRootCapabilityV1:
|
|
42342
|
+
readUnlockedEd25519ExportRootCapabilityV1: readUnlockedEd25519ExportRootLinkingCapabilityV1
|
|
42474
42343
|
});
|
|
42475
42344
|
return {
|
|
42476
42345
|
platform,
|
|
@@ -42650,6 +42519,14 @@ var SeamsWeb = class {
|
|
|
42650
42519
|
async getWalletIframeExactSessionState() {
|
|
42651
42520
|
return await this.walletIframe.getExactSessionState();
|
|
42652
42521
|
}
|
|
42522
|
+
/** @internal One wallet-host restore owns all configured-chain prefills. */
|
|
42523
|
+
async prefillRestoredWalletSession(state) {
|
|
42524
|
+
await scheduleRestoredSessionPresignaturePrefills({
|
|
42525
|
+
state,
|
|
42526
|
+
chainTargets: this.configuredChainTargets(),
|
|
42527
|
+
prefill: prefillRouterAbEcdsaDerivationPresignaturePoolDomain.bind(null, this.getWalletAuthDeps())
|
|
42528
|
+
});
|
|
42529
|
+
}
|
|
42653
42530
|
async openHostedAuthMenu(request, anchorElement) {
|
|
42654
42531
|
return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
|
|
42655
42532
|
}
|
|
@@ -42998,76 +42875,6 @@ var SeamsWeb = class {
|
|
|
42998
42875
|
error: { message: input.error.message }
|
|
42999
42876
|
});
|
|
43000
42877
|
}
|
|
43001
|
-
emitEmailOtpRegistrationWorkerProgress(onEvent, args) {
|
|
43002
|
-
const base = {
|
|
43003
|
-
flowId: args.flowId,
|
|
43004
|
-
walletId: args.walletId,
|
|
43005
|
-
authMethod: "email_otp",
|
|
43006
|
-
...args.challengeId ? { requestId: args.challengeId } : {}
|
|
43007
|
-
};
|
|
43008
|
-
switch (args.progress.code) {
|
|
43009
|
-
case "otp.verify.succeeded":
|
|
43010
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43011
|
-
...base,
|
|
43012
|
-
phase: RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED,
|
|
43013
|
-
status: "succeeded",
|
|
43014
|
-
interaction: {
|
|
43015
|
-
kind: "otp_input",
|
|
43016
|
-
overlay: "hide"
|
|
43017
|
-
}
|
|
43018
|
-
});
|
|
43019
|
-
return RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED;
|
|
43020
|
-
case "signer.email_otp.enroll.started":
|
|
43021
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43022
|
-
...base,
|
|
43023
|
-
phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED,
|
|
43024
|
-
status: "running"
|
|
43025
|
-
});
|
|
43026
|
-
return RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED;
|
|
43027
|
-
case "signer.email_otp.enroll.succeeded":
|
|
43028
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43029
|
-
...base,
|
|
43030
|
-
phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED,
|
|
43031
|
-
status: "succeeded"
|
|
43032
|
-
});
|
|
43033
|
-
return RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED;
|
|
43034
|
-
case "signer.ecdsa.bootstrap.started":
|
|
43035
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43036
|
-
...base,
|
|
43037
|
-
phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
|
|
43038
|
-
status: "running",
|
|
43039
|
-
data: { chainTarget: args.chainTarget }
|
|
43040
|
-
});
|
|
43041
|
-
return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
|
|
43042
|
-
case "signer.ecdsa.bootstrap.prepared":
|
|
43043
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43044
|
-
...base,
|
|
43045
|
-
phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
|
|
43046
|
-
status: "running",
|
|
43047
|
-
message: "Coordinating EVM signing session",
|
|
43048
|
-
data: { chainTarget: args.chainTarget }
|
|
43049
|
-
});
|
|
43050
|
-
return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
|
|
43051
|
-
case "signer.ecdsa.bootstrap.responded":
|
|
43052
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43053
|
-
...base,
|
|
43054
|
-
phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
|
|
43055
|
-
status: "running",
|
|
43056
|
-
message: "Finalizing EVM signing session",
|
|
43057
|
-
data: { chainTarget: args.chainTarget }
|
|
43058
|
-
});
|
|
43059
|
-
return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
|
|
43060
|
-
case "signer.ecdsa.bootstrap.succeeded":
|
|
43061
|
-
this.emitEmailOtpRegistrationEvent(onEvent, {
|
|
43062
|
-
...base,
|
|
43063
|
-
phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_SUCCEEDED,
|
|
43064
|
-
status: "succeeded",
|
|
43065
|
-
data: { chainTarget: args.chainTarget }
|
|
43066
|
-
});
|
|
43067
|
-
return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_SUCCEEDED;
|
|
43068
|
-
default: return null;
|
|
43069
|
-
}
|
|
43070
|
-
}
|
|
43071
42878
|
emitEmailOtpUnlockWorkerProgress(onEvent, args) {
|
|
43072
42879
|
const chainLabel = args.chainTarget.kind === "tempo" ? "Tempo" : "EVM";
|
|
43073
42880
|
const base = {
|
|
@@ -43704,7 +43511,6 @@ var SeamsWeb = class {
|
|
|
43704
43511
|
this.emitEmailOtpUnlockEvent(args.onEvent, input);
|
|
43705
43512
|
};
|
|
43706
43513
|
let timingStartedAtMs = nowMs();
|
|
43707
|
-
String(args.relayUrl || this.configs.network.relayer.url).trim();
|
|
43708
43514
|
const emailHashHex = await this.emailOtpEmailHashHex(args.emailOtpAuthorityEmail || "");
|
|
43709
43515
|
recordEmailOtpUnlockTiming(unlockTiming.timings, "emailHashLookupMs", timingStartedAtMs);
|
|
43710
43516
|
timingStartedAtMs = nowMs();
|