@seams/wallet 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/SeamsWeb.js +33 -93
- 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 +13 -37
- 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 +6 -5
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +3 -3
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +2 -1
- 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 +4 -2
- 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 +2 -2
- 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/publicApi/awaitNearReady.js +3 -1
- package/dist/esm/SeamsWeb/publicApi/devices.js +1 -1
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +22 -24
- 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/ui/auth-menu/AuthMenuSurface.js +1 -1
- package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +26 -36
- 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/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 +2 -2
- package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +1 -1
- 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/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 +6 -6
- 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/stepUpRuntime.js +0 -1
- package/dist/esm/core/signingEngine/chains/evm/display/evmTx.js +1 -6
- 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 +7 -8
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +2 -2
- package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +1 -1
- package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +18 -26
- 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 +1 -1
- package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +2 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -3
- 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/secp256k1.js +1 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +4 -4
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +42 -12
- 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 +44 -48
- 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 +14 -148
- package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +2 -1
- package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +4 -4
- package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +2 -2
- package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -2
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +2 -2
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaPublication.js +3 -3
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +3 -3
- 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/keyMaterialBrands.js +2 -21
- package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +41 -62
- package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +6 -2
- package/dist/esm/core/signingEngine/session/material/ecdsaSealedRuntime.js +3 -3
- package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- 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 -20
- 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 +764 -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/ecdsaProvisionPlan.js +0 -1
- package/dist/esm/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +3 -3
- 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/crypto/ecdsaDerivationClientWasm.js +3 -2
- 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/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 +2 -2
- 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 +79 -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/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 +13 -16
- 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 +20 -5
- 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 +32 -92
- 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 +10 -34
- package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +1 -1
- 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 +5 -4
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +3 -3
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +2 -1
- 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 +3 -1
- 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 +2 -2
- 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/publicApi/awaitNearReady.js +3 -1
- package/dist/esm/react/SeamsWeb/publicApi/devices.js +1 -1
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +21 -23
- 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/shared/exactSessionState.js +27 -37
- 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/components/AccountMenuButton/AccountMenuDialog.js +93 -0
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +187 -249
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +195 -257
- 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.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/icons/MoonIcon.js +6 -41
- package/dist/esm/react/components/AccountMenuButton/icons/SunIcon.js +43 -78
- package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +43 -0
- package/dist/esm/react/components/AccountMenuButton/index.js +1 -1
- package/dist/esm/react/components/theme/design-tokens.js +0 -1
- 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 +1 -1
- package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +1 -1
- 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 +2 -2
- 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/stepUpRuntime.js +0 -1
- package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +1 -6
- 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 +5 -6
- package/dist/esm/react/core/signingEngine/flows/recovery/exportLaneSelection.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +16 -24
- 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/preparedSigning.js +1 -1
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +3 -5
- 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/secp256k1.js +1 -2
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +4 -4
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +41 -11
- 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 +45 -49
- 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 +13 -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 +4 -4
- package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +3 -3
- package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -2
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +2 -2
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +1 -1
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
- 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/keyMaterialBrands.js +2 -21
- package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +39 -60
- package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +5 -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 +10 -19
- package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +764 -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/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 +1 -1
- 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/crypto/ecdsaDerivationClientWasm.js +2 -1
- 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/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 +1 -1
- 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 +79 -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/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 +13 -16
- 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 +20 -5
- 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/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 +3 -3
- package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -1
- 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 +3 -1
- 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 +8 -11
- 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 +5 -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 +6 -1
- 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 +7 -7
- 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/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 +1 -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/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 +4 -1081
- package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +442 -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/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 +10 -13
- 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/utils/qrScanner.js +2 -19
- package/dist/{public/sdk/ConfirmationDrawer-G0bT0Dbu.js → esm/sdk/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-BAGG_rbk.js} +253 -514
- package/dist/esm/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
- package/dist/esm/sdk/{adapters-m94YFj70.js → adapters-B4JeK1nJ.js} +134 -105
- package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
- package/dist/{public/sdk/canonicalSignerErrorCode-DAzYzisf.js → esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js} +2 -2
- 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-Dd0586fo.js} +2 -2
- package/dist/esm/sdk/{configHelpers-DB73zYvO.js → configHelpers-vAQCzUD0.js} +3 -3
- package/dist/{public/sdk/defaultConfigs-CyNOW4Sy.js → esm/sdk/defaultConfigs-B3c16M_8.js} +5 -5
- package/dist/esm/sdk/{display-DHdC2yXU.js → display-KdIL0ff7.js} +3 -8
- package/dist/esm/sdk/{normalize-BephcEIF.js → domainIds-lcrFg6Sa.js} +84 -84
- package/dist/{public/sdk/ecdsaCapabilityManifest-C8itxV9S.js → esm/sdk/ecdsaCapabilityManifest-kzO_fW09.js} +12 -8
- package/dist/esm/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
- package/dist/esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +1983 -0
- package/dist/esm/sdk/{ecdsaPresignPoolIdentity-Yopr4jvS.js → ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
- package/dist/{public/sdk/ecdsaWalletRecords-CAbbVhEY.js → esm/sdk/ecdsaWalletRecords-Cz4m6bIz.js} +6 -4
- package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
- package/dist/esm/sdk/{enrichDisplayModelWithAbi-DnjR1CqT.js → enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
- package/dist/{public/sdk/evmCryptoWasm-BVj135bZ.js → esm/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
- package/dist/esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +4288 -0
- package/dist/{public/sdk/exactSessionState-Bt0HforB.js → esm/sdk/exactSessionState-CiD5fBEs.js} +45 -54
- package/dist/esm/sdk/exactSigningLaneIdentity-DQeqPMST.js +335 -0
- package/dist/esm/sdk/{export-viewer-host-CbqG8ZQV.js → export-viewer-host-ZqA2Yz3H.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-BWBbCAMu.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/{public/sdk/keyMaterialBrands-BbjCfzXv.js → esm/sdk/keyMaterialBrands-CX41hur6.js} +15 -13
- package/dist/esm/sdk/{localOnly-CbLYTVbo.js → localOnly-Bg8UuLZ5.js} +8 -10
- package/dist/esm/sdk/{messages-B3UbNZYc.js → 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-DPb0s3hQ.js} +52 -35
- package/dist/{public/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → esm/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js} +10 -8
- package/dist/esm/sdk/{nonceLaneKeys-B_RcSS6M.js → 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/{public/sdk/passkey-custody-BaHyYMhj.js → esm/sdk/passkey-custody-Bk1jAknm.js} +7 -6
- package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → esm/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js} +3 -3
- package/dist/esm/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-DW2tGyMs.js} +19 -16
- package/dist/esm/sdk/{registration-PIBMSsQR.js → registration-BZDzDv91.js} +2827 -3126
- package/dist/esm/sdk/{registration-DtDICj-o.js → registration-BzVHODuD.js} +4 -4
- package/dist/{public/sdk/registrationAccounts-AO3QHjas.js → esm/sdk/registrationAccounts-CKku_Sgy.js} +6 -4
- package/dist/esm/sdk/registrationIds-DLSdEKSv.js +310 -0
- package/dist/esm/sdk/registrationIntent-D0PxwEY4.js +393 -0
- package/dist/{public/sdk/registrationPreparationPreload-BZfAC_ba.js → esm/sdk/registrationPreparationPreload-CIAuRlxI.js} +2 -2
- package/dist/esm/sdk/registrationSignerPlan-CAikVZZQ.js +440 -0
- package/dist/esm/sdk/{relayerHttp-LsVTZCxA.js → 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-C5lF_J_u.js} +23 -25
- package/dist/{public/sdk/routerAbNormalSigning-DktZKnf1.js → esm/sdk/routerAbNormalSigning-fhvpDtmY.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-DFTqwj3u.js} +35 -45
- package/dist/esm/sdk/{runtime-device-link-CEph1iM0.js → runtime-device-link-C1Oub8Lw.js} +25 -22
- package/dist/{public/sdk/runtime-ecdsa-tempo-tUWnafRo.js → esm/sdk/runtime-ecdsa-tempo-rkWwolw1.js} +24 -21
- package/dist/{public/sdk/runtime-email-otp-1wIPTDim.js → esm/sdk/runtime-email-otp-vuUG5LYl.js} +23 -20
- package/dist/esm/sdk/{runtime-export-Du2d4_Vu.js → runtime-export-FZWj0HxJ.js} +26 -22
- package/dist/esm/sdk/{runtime-near-CGoWxu7u.js → runtime-near-B9cjurVD.js} +24 -22
- package/dist/esm/sdk/{runtime-preferences-JwJK_xP3.js → runtime-preferences-Dq0bfyS5.js} +24 -21
- package/dist/{public/sdk/runtime-recovery-BEqBdpyo.js → esm/sdk/runtime-recovery-C-vfFKF3.js} +23 -20
- package/dist/{public/sdk/runtime-recovery-codes-DW7bB2tO.js → esm/sdk/runtime-recovery-codes-bTm3fLV4.js} +15 -19
- package/dist/esm/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-iLXnxVlZ.js} +615 -850
- package/dist/{public/sdk/runtimeLoader-ZXsvx9zX.js → esm/sdk/runtimeLoader-hod6T2-m.js} +12 -12
- package/dist/{public/sdk/sdkSentEvents-5Pi-hjHB.js → esm/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
- package/dist/{public/sdk/secp256k1-CWDid9WH.js → esm/sdk/secp256k1-el9aE4Sv.js} +22 -156
- package/dist/esm/sdk/sessionPolicy-CHiilOAB.js +453 -0
- package/dist/{public/sdk/signEvmFamily-pbMepepQ.js → esm/sdk/signEvmFamily-e4IWWsZs.js} +108 -99
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js} +11 -15
- package/dist/{public/sdk/signEvmWithUiConfirm-nk-r3Rff.js → esm/sdk/signEvmWithUiConfirm-C61TCBnh.js} +6 -10
- package/dist/{public/sdk/signNear-DVD9-IO5.js → esm/sdk/signNear-Bblwn2kT.js} +722 -803
- package/dist/esm/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
- package/dist/{public/sdk/signerDomain-DDLiwuYS.js → esm/sdk/signerDomain-IEAVrOrc.js} +3 -18
- package/dist/{public/sdk/signerLoader-D_w-SfR9.js → esm/sdk/signerLoader-D7Aey0FD.js} +4 -4
- package/dist/esm/sdk/{signatureUses-BY1IY7uz.js → signingFlow-rZfPegH9.js} +16 -29
- package/dist/esm/sdk/{trace-08ayoiNp.js → trace-rHe0wz7q.js} +1 -1
- package/dist/{public/sdk/transaction-activity-DKgIGpKG.js → esm/sdk/transaction-activity-CSMCveBn.js} +1 -1
- package/dist/esm/sdk/{transactionReview-UoZQ2opj.js → transactionReview-DpHLTznU.js} +4 -6
- package/dist/{public/sdk/transactionReviewAdmission-Cv9kTr4c.js → esm/sdk/transactionReviewAdmission-BCPvl8OZ.js} +2 -2
- package/dist/esm/sdk/{transactionState-Bpm4GamO.js → transactionState-DP9O8F6f.js} +12 -10
- package/dist/esm/sdk/tx-confirm-ui.js +182 -154
- 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-Bz9qKgaL.js} +19 -25
- package/dist/esm/sdk/wallet-service.css +21 -0
- package/dist/esm/sdk/wallet-ui.css +88 -44
- package/dist/{public/sdk/sessionPolicy-B4FsPuk2.js → esm/sdk/walletAuthority-BQBxgUBn.js} +506 -445
- package/dist/{public/sdk/ed25519SeedMaterial-Cghz8-XB.js → esm/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js} +1898 -2033
- package/dist/{public/sdk/walletRecoveryCommit-G6w6N5RV.js → esm/sdk/walletRecoveryCommit-sjGNTHUj.js} +17 -22
- package/dist/esm/sdk/{walletRecoveryRotate-BYOYJAyb.js → walletRecoveryRotate-BgLlW5ih.js} +1 -1
- package/dist/esm/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
- package/dist/esm/sdk/{webauthnP256-CHqprSh1.js → 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/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 +3 -3
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -1
- 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 +3 -1
- 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 +7 -10
- 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 +5 -39
- package/dist/esm/shared-ts/src/signing-lanes/index.js +4 -3
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +6 -1
- 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 +7 -7
- 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/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 +1 -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/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 +4 -1081
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +442 -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/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 +10 -13
- 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/wasm/near_signer/pkg/wasm_signer_worker.d.ts +18 -5
- 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/{esm/sdk/ConfirmationDrawer-G0bT0Dbu.js → public/sdk/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-BAGG_rbk.js} +253 -514
- package/dist/public/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
- package/dist/public/sdk/{adapters-m94YFj70.js → adapters-B4JeK1nJ.js} +134 -105
- package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
- package/dist/{esm/sdk/canonicalSignerErrorCode-DAzYzisf.js → public/sdk/canonicalSignerErrorCode-CRoJMVpp.js} +2 -2
- 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-Dd0586fo.js} +2 -2
- package/dist/public/sdk/{configHelpers-DB73zYvO.js → configHelpers-vAQCzUD0.js} +3 -3
- package/dist/{esm/sdk/defaultConfigs-CyNOW4Sy.js → public/sdk/defaultConfigs-B3c16M_8.js} +5 -5
- package/dist/public/sdk/{display-DHdC2yXU.js → display-KdIL0ff7.js} +3 -8
- package/dist/public/sdk/{normalize-BephcEIF.js → domainIds-lcrFg6Sa.js} +84 -84
- package/dist/{esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js → public/sdk/ecdsaCapabilityManifest-kzO_fW09.js} +12 -8
- package/dist/public/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
- package/dist/public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +1983 -0
- package/dist/public/sdk/{ecdsaPresignPoolIdentity-Yopr4jvS.js → ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
- package/dist/{esm/sdk/ecdsaWalletRecords-CAbbVhEY.js → public/sdk/ecdsaWalletRecords-Cz4m6bIz.js} +6 -4
- package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
- package/dist/public/sdk/{enrichDisplayModelWithAbi-DnjR1CqT.js → enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
- package/dist/{esm/sdk/evmCryptoWasm-BVj135bZ.js → public/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
- package/dist/public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +4288 -0
- package/dist/{esm/sdk/exactSessionState-Bt0HforB.js → public/sdk/exactSessionState-CiD5fBEs.js} +45 -54
- package/dist/public/sdk/exactSigningLaneIdentity-DQeqPMST.js +335 -0
- package/dist/public/sdk/{export-viewer-host-CbqG8ZQV.js → export-viewer-host-ZqA2Yz3H.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-BWBbCAMu.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/{esm/sdk/keyMaterialBrands-BbjCfzXv.js → public/sdk/keyMaterialBrands-CX41hur6.js} +15 -13
- package/dist/public/sdk/{localOnly-CbLYTVbo.js → localOnly-Bg8UuLZ5.js} +8 -10
- package/dist/public/sdk/{messages-B3UbNZYc.js → 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-DPb0s3hQ.js} +52 -35
- package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → public/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js} +10 -8
- package/dist/public/sdk/{nonceLaneKeys-B_RcSS6M.js → 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/{esm/sdk/passkey-custody-BaHyYMhj.js → public/sdk/passkey-custody-Bk1jAknm.js} +7 -6
- package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → public/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js} +3 -3
- package/dist/public/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-DW2tGyMs.js} +19 -16
- package/dist/public/sdk/{registration-PIBMSsQR.js → registration-BZDzDv91.js} +2827 -3126
- package/dist/public/sdk/{registration-DtDICj-o.js → registration-BzVHODuD.js} +4 -4
- package/dist/{esm/sdk/registrationAccounts-AO3QHjas.js → public/sdk/registrationAccounts-CKku_Sgy.js} +6 -4
- package/dist/public/sdk/registrationIds-DLSdEKSv.js +310 -0
- package/dist/public/sdk/registrationIntent-D0PxwEY4.js +393 -0
- package/dist/{esm/sdk/registrationPreparationPreload-BZfAC_ba.js → public/sdk/registrationPreparationPreload-CIAuRlxI.js} +2 -2
- package/dist/public/sdk/registrationSignerPlan-CAikVZZQ.js +440 -0
- package/dist/public/sdk/{relayerHttp-LsVTZCxA.js → 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-C5lF_J_u.js} +23 -25
- package/dist/{esm/sdk/routerAbNormalSigning-DktZKnf1.js → public/sdk/routerAbNormalSigning-fhvpDtmY.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-DFTqwj3u.js} +35 -45
- package/dist/public/sdk/{runtime-device-link-CEph1iM0.js → runtime-device-link-C1Oub8Lw.js} +25 -22
- package/dist/{esm/sdk/runtime-ecdsa-tempo-tUWnafRo.js → public/sdk/runtime-ecdsa-tempo-rkWwolw1.js} +24 -21
- package/dist/{esm/sdk/runtime-email-otp-1wIPTDim.js → public/sdk/runtime-email-otp-vuUG5LYl.js} +23 -20
- package/dist/public/sdk/{runtime-export-Du2d4_Vu.js → runtime-export-FZWj0HxJ.js} +26 -22
- package/dist/public/sdk/{runtime-near-CGoWxu7u.js → runtime-near-B9cjurVD.js} +24 -22
- package/dist/public/sdk/{runtime-preferences-JwJK_xP3.js → runtime-preferences-Dq0bfyS5.js} +24 -21
- package/dist/{esm/sdk/runtime-recovery-BEqBdpyo.js → public/sdk/runtime-recovery-C-vfFKF3.js} +23 -20
- package/dist/{esm/sdk/runtime-recovery-codes-DW7bB2tO.js → public/sdk/runtime-recovery-codes-bTm3fLV4.js} +15 -19
- package/dist/public/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-iLXnxVlZ.js} +615 -850
- package/dist/{esm/sdk/runtimeLoader-ZXsvx9zX.js → public/sdk/runtimeLoader-hod6T2-m.js} +12 -12
- package/dist/{esm/sdk/sdkSentEvents-5Pi-hjHB.js → public/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
- package/dist/{esm/sdk/secp256k1-CWDid9WH.js → public/sdk/secp256k1-el9aE4Sv.js} +22 -156
- package/dist/public/sdk/sessionPolicy-CHiilOAB.js +453 -0
- package/dist/{esm/sdk/signEvmFamily-pbMepepQ.js → public/sdk/signEvmFamily-e4IWWsZs.js} +108 -99
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js} +11 -15
- package/dist/{esm/sdk/signEvmWithUiConfirm-nk-r3Rff.js → public/sdk/signEvmWithUiConfirm-C61TCBnh.js} +6 -10
- package/dist/{esm/sdk/signNear-DVD9-IO5.js → public/sdk/signNear-Bblwn2kT.js} +722 -803
- package/dist/public/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
- package/dist/{esm/sdk/signerDomain-DDLiwuYS.js → public/sdk/signerDomain-IEAVrOrc.js} +3 -18
- package/dist/{esm/sdk/signerLoader-D_w-SfR9.js → public/sdk/signerLoader-D7Aey0FD.js} +4 -4
- package/dist/public/sdk/{signatureUses-BY1IY7uz.js → signingFlow-rZfPegH9.js} +16 -29
- package/dist/public/sdk/{trace-08ayoiNp.js → trace-rHe0wz7q.js} +1 -1
- package/dist/{esm/sdk/transaction-activity-DKgIGpKG.js → public/sdk/transaction-activity-CSMCveBn.js} +1 -1
- package/dist/public/sdk/{transactionReview-UoZQ2opj.js → transactionReview-DpHLTznU.js} +4 -6
- package/dist/{esm/sdk/transactionReviewAdmission-Cv9kTr4c.js → public/sdk/transactionReviewAdmission-BCPvl8OZ.js} +2 -2
- package/dist/public/sdk/{transactionState-Bpm4GamO.js → transactionState-DP9O8F6f.js} +12 -10
- package/dist/public/sdk/tx-confirm-ui.js +182 -154
- 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-Bz9qKgaL.js} +19 -25
- package/dist/public/sdk/wallet-service.css +21 -0
- package/dist/public/sdk/wallet-ui.css +88 -44
- package/dist/{esm/sdk/sessionPolicy-B4FsPuk2.js → public/sdk/walletAuthority-BQBxgUBn.js} +506 -445
- package/dist/{esm/sdk/ed25519SeedMaterial-Cghz8-XB.js → public/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js} +1898 -2033
- package/dist/{esm/sdk/walletRecoveryCommit-G6w6N5RV.js → public/sdk/walletRecoveryCommit-sjGNTHUj.js} +17 -22
- package/dist/public/sdk/{walletRecoveryRotate-BYOYJAyb.js → walletRecoveryRotate-BgLlW5ih.js} +1 -1
- package/dist/public/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
- package/dist/public/sdk/{webauthnP256-CHqprSh1.js → webauthnP256-DC5EIbKN.js} +1 -1
- package/dist/public/sdk/workers/device-linking-key.worker.js +2954 -3134
- package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1688 -2144
- package/dist/public/sdk/workers/ecdsa-online-client.worker.js +9 -117
- package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +44 -147
- package/dist/public/sdk/workers/email-otp.worker.js +9265 -9596
- package/dist/public/sdk/workers/evm-crypto.worker.js +8 -6
- 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/wallet-custody-ceremony.worker.js +223 -215
- 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 +0 -8
- 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 +2 -1
- 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 +2 -5
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -11
- 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 +3 -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 +9 -18
- 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 +0 -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 +2 -51
- 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 +15 -37
- 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/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +2 -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 +2 -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 +1 -2
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +5 -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/exactRecord.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 +3 -2
- package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +7 -7
- package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +184 -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 +142 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +21 -92
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +14 -99
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +39 -0
- 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/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 +1 -7
- package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
- package/dist/types/shared-ts/src/utils/variant.d.ts +11 -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 +104 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +3 -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/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/wallet/src/SeamsWeb/SeamsWeb.d.ts +0 -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/walletAuth.d.ts +2 -2
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +2 -18
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +4 -7
- 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/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 +0 -13
- 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 +1 -1
- 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 +22 -20
- 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/runtimeLoader.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +2 -1
- 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 +53 -58
- 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 +1 -16
- 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 +5 -18
- package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +2 -4
- 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 +177 -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 +2 -2
- package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +7 -4
- package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +1 -40
- 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/rpcCalls.d.ts +5 -31
- package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +0 -1
- 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 -66
- 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 +4 -4
- 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 +4 -3
- 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 +4 -101
- 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 +2 -2
- 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 +9 -20
- 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 +1 -1
- 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 +3 -3
- 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 +0 -1
- 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 +0 -5
- 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/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 +1 -41
- 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 +1 -1
- 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 +1 -1
- 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/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 +5 -44
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +2 -14
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +1 -1
- 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 +2 -1
- 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 +13 -13
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +1 -1
- 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 +5 -4
- 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 +3 -2
- package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +6 -31
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/challengeDelivery.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -1
- 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 +4 -21
- 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 +4 -6
- 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 +1 -1
- 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 +17 -31
- 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 +9 -8
- package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +8 -12
- 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 +4 -3
- 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 +4 -3
- package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +5 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +1 -1
- 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 +3 -31
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -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 +5 -4
- 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 +5 -9
- 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 +16 -32
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +4 -4
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -19
- 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 +5 -5
- 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/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 +5 -4
- 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 +3 -36
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +2 -70
- 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 +6 -17
- 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/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 +2 -3
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -7
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +8 -8
- package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +4 -16
- 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/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 +3 -6
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +3 -6
- 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 +6 -6
- 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 +2 -15
- 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/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/workerTransport.d.ts +5 -5
- package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +75 -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 +66 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +91 -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 +2 -3
- package/dist/types/wallet/src/core/types/rpc.d.ts +0 -30
- package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +11 -11
- package/dist/types/wallet/src/core/types/seams.d.ts +35 -55
- 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/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 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -1
- 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 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -1
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SunIcon.d.ts +1 -5
- 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 +2 -2
- 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 +0 -37
- 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/qrScanner.d.ts +4 -38
- package/dist/workers/device-linking-key.worker.js +2954 -3134
- package/dist/workers/ecdsa-derivation-client.worker.js +1688 -2144
- package/dist/workers/ecdsa-online-client.worker.js +9 -117
- package/dist/workers/ecdsa-presign-client.worker.js +44 -147
- package/dist/workers/email-otp.worker.js +9265 -9596
- package/dist/workers/evm-crypto.worker.js +8 -6
- 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/wallet-custody-ceremony.worker.js +223 -215
- 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/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/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/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,45 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { base64UrlEncode } from "../../../shared-ts/src/utils/base64.js";
|
|
2
2
|
import { secureRandomId } from "../../../shared-ts/src/utils/secureRandomId.js";
|
|
3
|
+
import { requireRecord } from "../../../shared-ts/src/utils/validation.js";
|
|
3
4
|
import "../../signingEngine/workerManager/ecdsaPresignLifecycle.js";
|
|
4
|
-
import { alphabetizeStringify, sha256Bytes, sha256BytesUtf8 } from "../../../shared-ts/src/utils/digests.js";
|
|
5
5
|
import { normalizeRuntimePolicyScope } from "../../../shared-ts/src/threshold/signingRootScope.js";
|
|
6
|
-
import { mpcMaterialActivationRefsEqual,
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { parseRouterAbEcdsaDerivationPublicCapabilityV1, parseRouterAbEcdsaRegistrationActivationReceiptV1, requireRouterAbEcdsaDerivationNormalSigningStateV1, routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1, sameRouterAbEcdsaDerivationNormalSigningStateV1, sameRouterAbEcdsaDerivationPublicCapabilityV1, sameRouterAbEcdsaRegistrationActivationReceiptV1 } from "../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
|
|
13
|
-
import { thresholdEcdsaChainTargetFromRequest } from "../../signingEngine/interfaces/ecdsaChainTarget.js";
|
|
14
|
-
import { buildVerifiedEcdsaPublicFacts, toEvmFamilyEcdsaKeyHandle, toParticipantId } from "../../signingEngine/session/identity/evmFamilyEcdsaIdentity.js";
|
|
15
|
-
import { SEAMS_WALLET_INDEXES, SEAMS_WALLET_STORES } from "../schemaNames.js";
|
|
6
|
+
import { mpcMaterialActivationRefsEqual, parseMpcMaterialActivationRef, parseWalletId } from "../../../shared-ts/src/utils/domainIds.js";
|
|
7
|
+
import { parseCorrelationId } from "../../../shared-ts/src/utils/canonicalPrimitives.js";
|
|
8
|
+
import { parseEcdsaCiphertextDigest, parseEcdsaMaterialSealingKeyId, parseEcdsaPendingCiphertextDigest } from "../../../shared-ts/src/utils/ecdsaCapabilityActivation.js";
|
|
9
|
+
import { routerAbMpcMaterialActivationRefFromWire } from "../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
|
|
10
|
+
import { sameRouterAbEcdsaDerivationNormalSigningStateV1 } from "../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
|
|
11
|
+
import { SEAMS_WALLET_INDEXES } from "../schemaNames.js";
|
|
16
12
|
import { seamsWalletDB } from "../singletons.js";
|
|
17
|
-
import { parseEcdsaClientVerifyingPublicKey33B64u,
|
|
18
|
-
import { SeamsWalletRepositories } from "./repositories.js";
|
|
13
|
+
import { parseEcdsaClientVerifyingPublicKey33B64u, parseEcdsaRoleLocalPersistedMaterialRef } from "../../signingEngine/session/keyMaterialBrands.js";
|
|
19
14
|
import { buildEcdsaRoleLocalPublicFacts } from "../../signingEngine/session/persistence/ecdsaRoleLocalRecords.js";
|
|
20
|
-
import { buildActiveEcdsaCapabilityManifest, buildDurableEcdsaMaterialBinding,
|
|
15
|
+
import { buildActiveEcdsaCapabilityManifest, buildDurableEcdsaMaterialBinding, buildEcdsaServerActivationCommit, buildEncryptedEcdsaPendingCandidate, buildServerCommittedEcdsaActivationJournal, buildValidatedEncryptedEcdsaReadyMaterial } from "../../signingEngine/session/material/ecdsaCapabilityManifest.js";
|
|
21
16
|
import { ecdsaClientPresignPoolKey, equalEcdsaClientPresignPoolIdentity, parseEcdsaClientPresignPoolIdentity } from "../../signingEngine/workerManager/ecdsaPresignPoolIdentity.js";
|
|
17
|
+
import { JOURNAL_STORE, MANIFEST_RECORD_VERSION, MANIFEST_STORE, MATERIAL_STORE, POINTER_STORE, PRESIGNATURE_STORE, SEALING_KEY_STORE, assertNever, buildPreparedJournalFromEncryptedCandidate, ciphertextDigestB64u, decryptStateBlob, ecdsaActivationCommitJournalsMatch, ecdsaActiveCapabilityManifestsMatch, ecdsaCapabilityScopesMatch, ecdsaDurableMaterialBindingsMatch, ecdsaRegisteredPublicFactsMatch, ecdsaRoleLocalMaterialBindingsMatch, ecdsaRoleLocalPublicFactsMatch, ecdsaServerActivationCommitsMatch, encryptStateBlob, generateMaterialSealingKey, materialMatchesManifest, normalizeSelector, parseActiveProof, parseCommittedJournal, parseJournalRow, parseManifestRow, parseMaterialLocator, parseMaterialRow, parsePointerRow, parseSealingKeyRow, preparedJournalProjection, runtimePolicyScopesMatch, selectorColumns, selectorFromJournal, selectorFromManifest, selectorFromSigner, selectorKey, selectorsMatch, storedJournalRow, storedMaterialRow, storedPointerRow, storedSealingKeyRow, walletAuthAuthorityRefsMatch } from "./ecdsaCapabilityManifestRecords.js";
|
|
18
|
+
import { activeMaterialMatchesPresignature, decryptPresignatureBytes, deleteCursorRows, encryptPresignatureBytes, materialRefMatchesPoolIdentity, metadataFromPresignatureRow, parseDurableClientPresignatureRecordId, parsePresignatureTimestamp, parseSealedAvailableClientPresignatureRow, rawRecordId, readAvailableClientPresignatureRows, retireClientPresignaturesForActivationInTransaction, supportsStrictIndexedDbDurability } from "./ecdsaClientPresignatures.js";
|
|
19
|
+
import { activeLookupUsesMaterialActivation, ecdsaManifestErrorMessage, isConstraintError, journalConstraintConflict, lookupInTransaction, materialRefOpenFailure, persistenceDigest, readActivationJournalRows, readActiveManifestRows, readPointerRowsForWallet, retryCorrelation } from "./ecdsaCapabilityManifestLookups.js";
|
|
22
20
|
//#region src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.ts
|
|
23
|
-
const MANIFEST_RECORD_VERSION = "ecdsa_capability_manifest_v3";
|
|
24
|
-
const POINTER_RECORD_VERSION = "ecdsa_current_capability_manifest_v2";
|
|
25
|
-
const MATERIAL_RECORD_VERSION = "ecdsa_role_local_material_v2";
|
|
26
|
-
const JOURNAL_RECORD_VERSION = "ecdsa_activation_commit_journal_v1";
|
|
27
|
-
const SEALING_KEY_RECORD_VERSION = "ecdsa_material_sealing_key_v1";
|
|
28
|
-
const MANIFEST_STORE = SEAMS_WALLET_STORES.ecdsaCapabilityManifests;
|
|
29
|
-
const POINTER_STORE = SEAMS_WALLET_STORES.ecdsaCurrentCapabilityManifests;
|
|
30
|
-
const MATERIAL_STORE = SEAMS_WALLET_STORES.ecdsaRoleLocalMaterial;
|
|
31
|
-
const JOURNAL_STORE = SEAMS_WALLET_STORES.ecdsaActivationCommitJournals;
|
|
32
|
-
const SEALING_KEY_STORE = SEAMS_WALLET_STORES.ecdsaMaterialSealingKeys;
|
|
33
|
-
const PRESIGNATURE_STORE = SEAMS_WALLET_STORES.ecdsaClientPresignatures;
|
|
34
|
-
const AES_GCM_IV_BYTES = 12;
|
|
35
21
|
const MATERIAL_AAD_VERSION = 1;
|
|
36
|
-
|
|
37
|
-
const MAX_EXPIRED_CLIENT_PRESIGNATURE_DELETIONS_PER_TRANSACTION = 32;
|
|
38
|
-
const MAX_DURABLE_CLIENT_PRESIGNATURE_FUTURE_SKEW_MS = 5 * 6e4;
|
|
39
|
-
function activeManifestMatchesWalletCustodyImport(input) {
|
|
40
|
-
const manifest = input.manifest;
|
|
22
|
+
function activeManifestMatchesWalletCustodyImport(manifest, input, serverActivation) {
|
|
41
23
|
const binding = input.activationBinding;
|
|
42
|
-
return walletAuthAuthorityRefsMatch(manifest.signer.authority, binding.signer.authority) && ecdsaCapabilityScopesMatch(manifest.signer.scope, binding.signer.scope) && manifest.signer.walletId === binding.signer.walletId && manifest.signer.capability === binding.signer.capability && manifest.signer.materialOwner === binding.signer.materialOwner && manifest.signer.signingRootId === binding.signer.signingRootId && manifest.signer.signingRootVersion === binding.signer.signingRootVersion && ecdsaRegisteredPublicFactsMatch(manifest.signer.registeredPublicFacts, input.registeredPublicFacts) && ecdsaServerActivationCommitsMatch(manifest.activation.serverActivation,
|
|
24
|
+
return walletAuthAuthorityRefsMatch(manifest.signer.authority, binding.signer.authority) && ecdsaCapabilityScopesMatch(manifest.signer.scope, binding.signer.scope) && manifest.signer.walletId === binding.signer.walletId && manifest.signer.capability === binding.signer.capability && manifest.signer.materialOwner === binding.signer.materialOwner && manifest.signer.signingRootId === binding.signer.signingRootId && manifest.signer.signingRootVersion === binding.signer.signingRootVersion && ecdsaRegisteredPublicFactsMatch(manifest.signer.registeredPublicFacts, input.registeredPublicFacts) && ecdsaServerActivationCommitsMatch(manifest.activation.serverActivation, serverActivation) && mpcMaterialActivationRefsEqual(manifest.activation.materialActivation, routerAbMpcMaterialActivationRefFromWire(serverActivation.serverActivationReceipt.protocolReceipt.ecdsa_activation.material_activation)) && manifest.durableMaterial.bindingDigest === binding.bindingDigest && manifest.durableMaterial.durableMaterialRef === binding.durableMaterialRef && ecdsaRoleLocalMaterialBindingsMatch(manifest.durableMaterial.roleLocalBinding, binding.roleLocalBinding) && ecdsaRoleLocalPublicFactsMatch(manifest.durableMaterial.roleLocalPublicFacts, input.roleLocalPublicFacts) && sameRouterAbEcdsaDerivationNormalSigningStateV1(manifest.durableMaterial.routerAbEcdsaDerivationNormalSigning, input.routerAbEcdsaDerivationNormalSigning) && runtimePolicyScopesMatch(manifest.durableMaterial.runtimePolicyScope, normalizeRuntimePolicyScope(input.runtimePolicyScope));
|
|
43
25
|
}
|
|
44
26
|
var FinalizationControlError = class extends Error {
|
|
45
27
|
constructor(kind, message) {
|
|
@@ -48,206 +30,6 @@ var FinalizationControlError = class extends Error {
|
|
|
48
30
|
this.kind = kind;
|
|
49
31
|
}
|
|
50
32
|
};
|
|
51
|
-
function requireRecord(value, label) {
|
|
52
|
-
if (value === null || typeof value !== "object" || Array.isArray(value)) throw new Error(`${label} must be an object`);
|
|
53
|
-
return value;
|
|
54
|
-
}
|
|
55
|
-
function requireExactKeys(record, label, expectedKeys) {
|
|
56
|
-
const actual = Object.keys(record).sort();
|
|
57
|
-
const expected = [...expectedKeys].sort();
|
|
58
|
-
if (actual.length !== expected.length || actual.some((field, index) => field !== expected[index])) throw new Error(`${label} has unexpected fields`);
|
|
59
|
-
}
|
|
60
|
-
function requireArray(value, label) {
|
|
61
|
-
if (!Array.isArray(value)) throw new Error(`${label} must be an array`);
|
|
62
|
-
return value;
|
|
63
|
-
}
|
|
64
|
-
function unwrapDomainId(result) {
|
|
65
|
-
if (!result.ok) throw new Error(result.error.message);
|
|
66
|
-
return result.value;
|
|
67
|
-
}
|
|
68
|
-
function normalizeSelector(selector) {
|
|
69
|
-
const authority = parseWalletAuthAuthorityRef(selector.authority);
|
|
70
|
-
if (!authority) throw new Error("ECDSA capability selector authority is invalid");
|
|
71
|
-
return {
|
|
72
|
-
capability: unwrapDomainId(parseCapabilityInstanceRef(selector.capability)),
|
|
73
|
-
authority
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function selectorFromJournal(journal) {
|
|
77
|
-
return {
|
|
78
|
-
capability: journal.candidate.activationBinding.signer.capability,
|
|
79
|
-
authority: journal.candidate.activationBinding.signer.authority
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
function selectorFromManifest(manifest) {
|
|
83
|
-
return {
|
|
84
|
-
capability: manifest.signer.capability,
|
|
85
|
-
authority: manifest.signer.authority
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
function selectorKey(selector) {
|
|
89
|
-
return [
|
|
90
|
-
String(selector.capability),
|
|
91
|
-
String(selector.authority.walletId),
|
|
92
|
-
String(selector.authority.authorityDigest)
|
|
93
|
-
];
|
|
94
|
-
}
|
|
95
|
-
function walletAuthAuthorityRefsMatch(left, right) {
|
|
96
|
-
return left.kind === right.kind && left.walletId === right.walletId && left.authorityDigest === right.authorityDigest && left.walletAuthMethodId === right.walletAuthMethodId;
|
|
97
|
-
}
|
|
98
|
-
function selectorsMatch(left, right) {
|
|
99
|
-
const leftKey = selectorKey(left);
|
|
100
|
-
const rightKey = selectorKey(right);
|
|
101
|
-
return leftKey[0] === rightKey[0] && leftKey[1] === rightKey[1] && leftKey[2] === rightKey[2];
|
|
102
|
-
}
|
|
103
|
-
function orderedNumberValuesMatch(left, right) {
|
|
104
|
-
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
105
|
-
}
|
|
106
|
-
function runtimePolicyScopesMatch(left, right) {
|
|
107
|
-
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
108
|
-
}
|
|
109
|
-
function ecdsaChainTargetsMatch(left, right) {
|
|
110
|
-
if (left.kind !== right.kind) return false;
|
|
111
|
-
switch (left.kind) {
|
|
112
|
-
case "evm": return right.kind === "evm" && left.namespace === right.namespace && left.chainId === right.chainId && left.networkSlug === right.networkSlug;
|
|
113
|
-
case "tempo": return right.kind === "tempo" && left.chainId === right.chainId && left.networkSlug === right.networkSlug;
|
|
114
|
-
default: return assertNever(left);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
function ecdsaCapabilityScopesMatch(left, right) {
|
|
118
|
-
return left.kind === right.kind && left.targetMemberships.length === right.targetMemberships.length && left.targetMemberships.every((target, index) => ecdsaChainTargetsMatch(target, right.targetMemberships[index]));
|
|
119
|
-
}
|
|
120
|
-
function ecdsaRoleLocalMaterialBindingsMatch(left, right) {
|
|
121
|
-
return left.kind === right.kind && left.keyHandle === right.keyHandle && left.ecdsaThresholdKeyId === right.ecdsaThresholdKeyId && left.clientVerifyingPublicKey33B64u === right.clientVerifyingPublicKey33B64u && orderedNumberValuesMatch(left.participantIds, right.participantIds) && left.relayerKeyId === right.relayerKeyId;
|
|
122
|
-
}
|
|
123
|
-
function ecdsaRoleLocalPublicFactsMatch(left, right) {
|
|
124
|
-
return left.walletId === right.walletId && ecdsaChainTargetsMatch(left.chainTarget, right.chainTarget) && left.keyHandle === right.keyHandle && left.ecdsaThresholdKeyId === right.ecdsaThresholdKeyId && left.signingRootId === right.signingRootId && left.signingRootVersion === right.signingRootVersion && left.applicationBindingDigestB64u === right.applicationBindingDigestB64u && left.clientParticipantId === right.clientParticipantId && left.relayerParticipantId === right.relayerParticipantId && orderedNumberValuesMatch(left.participantIds, right.participantIds) && left.contextBinding32B64u === right.contextBinding32B64u && left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.relayerPublicKey33B64u === right.relayerPublicKey33B64u && left.groupPublicKey33B64u === right.groupPublicKey33B64u && left.ethereumAddress === right.ethereumAddress && sameRouterAbEcdsaDerivationPublicCapabilityV1(left.publicCapability, right.publicCapability);
|
|
125
|
-
}
|
|
126
|
-
function ecdsaRegisteredPublicFactsMatch(left, right) {
|
|
127
|
-
return left.kind === right.kind && left.keyHandle === right.keyHandle && left.publicKeyB64u === right.publicKeyB64u && left.participantIds.length === right.participantIds.length && left.participantIds.every((participantId, index) => participantId === right.participantIds[index]) && left.thresholdOwnerAddress === right.thresholdOwnerAddress;
|
|
128
|
-
}
|
|
129
|
-
function ecdsaManifestIdentitiesMatch(left, right) {
|
|
130
|
-
return left.manifestId === right.manifestId && left.manifestRevision === right.manifestRevision;
|
|
131
|
-
}
|
|
132
|
-
function ecdsaManifestRevisionExpectationsMatch(left, right) {
|
|
133
|
-
if (left.kind !== right.kind) return false;
|
|
134
|
-
switch (left.kind) {
|
|
135
|
-
case "no_current_manifest": return true;
|
|
136
|
-
case "exact_manifest": return right.kind === "exact_manifest" && left.manifestId === right.manifestId && left.manifestRevision === right.manifestRevision;
|
|
137
|
-
default: return assertNever(left);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function ecdsaServerGenerationExpectationsMatch(left, right) {
|
|
141
|
-
if (left.kind !== right.kind) return false;
|
|
142
|
-
switch (left.kind) {
|
|
143
|
-
case "no_current_generation": return true;
|
|
144
|
-
case "exact_generation": return right.kind === "exact_generation" && left.serverGeneration === right.serverGeneration;
|
|
145
|
-
default: return assertNever(left);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function ecdsaPreparedEvmFamilySignersMatch(left, right) {
|
|
149
|
-
return left.kind === right.kind && left.capability === right.capability && left.signerId === right.signerId && left.walletId === right.walletId && walletAuthAuthorityRefsMatch(left.authority, right.authority) && ecdsaCapabilityScopesMatch(left.scope, right.scope) && left.materialOwner === right.materialOwner && left.signingRootId === right.signingRootId && left.signingRootVersion === right.signingRootVersion;
|
|
150
|
-
}
|
|
151
|
-
function ecdsaRegisteredEvmFamilySignersMatch(left, right) {
|
|
152
|
-
return left.kind === right.kind && left.capability === right.capability && left.signerId === right.signerId && left.walletId === right.walletId && walletAuthAuthorityRefsMatch(left.authority, right.authority) && ecdsaCapabilityScopesMatch(left.scope, right.scope) && left.materialOwner === right.materialOwner && left.signingRootId === right.signingRootId && left.signingRootVersion === right.signingRootVersion && ecdsaRegisteredPublicFactsMatch(left.registeredPublicFacts, right.registeredPublicFacts);
|
|
153
|
-
}
|
|
154
|
-
function ecdsaEncryptedPendingCandidatesMatch(left, right) {
|
|
155
|
-
return left.kind === right.kind && left.sealingKeyId === right.sealingKeyId && left.iv12B64u === right.iv12B64u && left.ciphertextB64u === right.ciphertextB64u && left.ciphertextDigest === right.ciphertextDigest;
|
|
156
|
-
}
|
|
157
|
-
function ecdsaActivationBindingsMatch(left, right) {
|
|
158
|
-
return left.kind === right.kind && ecdsaManifestIdentitiesMatch(left.targetManifest, right.targetManifest) && ecdsaPreparedEvmFamilySignersMatch(left.signer, right.signer) && ecdsaRoleLocalMaterialBindingsMatch(left.roleLocalBinding, right.roleLocalBinding) && left.bindingDigest === right.bindingDigest && left.durableMaterialRef === right.durableMaterialRef;
|
|
159
|
-
}
|
|
160
|
-
function ecdsaServerActivationCommitsMatch(left, right) {
|
|
161
|
-
return left.kind === right.kind && left.correlationId === right.correlationId && left.activationRequestDigest === right.activationRequestDigest && left.serverGeneration === right.serverGeneration && ecdsaServerActivationReceiptsMatch(left.serverActivationReceipt, right.serverActivationReceipt);
|
|
162
|
-
}
|
|
163
|
-
function ecdsaServerActivationReceiptsMatch(left, right) {
|
|
164
|
-
return left.kind === right.kind && left.lifecycleId === right.lifecycleId && left.activationDigest === right.activationDigest && left.activatedAt === right.activatedAt && sameRouterAbEcdsaRegistrationActivationReceiptV1(left.protocolReceipt, right.protocolReceipt);
|
|
165
|
-
}
|
|
166
|
-
function ecdsaActivationCommandsMatch(left, right) {
|
|
167
|
-
return left.kind === right.kind && left.correlationId === right.correlationId && ecdsaServerGenerationExpectationsMatch(left.expectedGeneration, right.expectedGeneration) && left.requestDigest === right.requestDigest && left.canonicalRequest === right.canonicalRequest;
|
|
168
|
-
}
|
|
169
|
-
function ecdsaPreparedActivationCandidatesMatch(left, right) {
|
|
170
|
-
return left.kind === right.kind && ecdsaActivationBindingsMatch(left.activationBinding, right.activationBinding) && ecdsaEncryptedPendingCandidatesMatch(left.encryptedPending, right.encryptedPending);
|
|
171
|
-
}
|
|
172
|
-
function ecdsaActivationCommitJournalsMatch(left, right) {
|
|
173
|
-
if (left.kind !== right.kind) return false;
|
|
174
|
-
if (!(left.journalId === right.journalId && ecdsaManifestRevisionExpectationsMatch(left.expectedManifest, right.expectedManifest) && ecdsaActivationCommandsMatch(left.activationCommand, right.activationCommand) && ecdsaPreparedActivationCandidatesMatch(left.candidate, right.candidate) && left.createdAt === right.createdAt)) return false;
|
|
175
|
-
switch (left.kind) {
|
|
176
|
-
case "activation_prepared": return true;
|
|
177
|
-
case "server_activation_committed": return right.kind === "server_activation_committed" && ecdsaServerActivationCommitsMatch(left.serverActivation, right.serverActivation);
|
|
178
|
-
default: return assertNever(left);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
function ecdsaDurableMaterialBindingsMatch(left, right) {
|
|
182
|
-
return left.kind === right.kind && mpcMaterialActivationRefsEqual(left.materialActivation, right.materialActivation) && sameRouterAbEcdsaDerivationNormalSigningStateV1(left.routerAbEcdsaDerivationNormalSigning, right.routerAbEcdsaDerivationNormalSigning) && ecdsaRoleLocalPublicFactsMatch(left.roleLocalPublicFacts, right.roleLocalPublicFacts) && ecdsaRoleLocalMaterialBindingsMatch(left.roleLocalBinding, right.roleLocalBinding) && left.durableMaterialRef === right.durableMaterialRef && left.bindingDigest === right.bindingDigest && left.lifecycleId === right.lifecycleId && left.ciphertextDigest === right.ciphertextDigest && left.activationDigest === right.activationDigest && left.activatedAt === right.activatedAt && runtimePolicyScopesMatch(left.runtimePolicyScope, right.runtimePolicyScope);
|
|
183
|
-
}
|
|
184
|
-
function ecdsaActiveMaterialActivationsMatch(left, right) {
|
|
185
|
-
return left.kind === right.kind && mpcMaterialActivationRefsEqual(left.materialActivation, right.materialActivation) && ecdsaServerActivationCommitsMatch(left.serverActivation, right.serverActivation) && left.retention === right.retention;
|
|
186
|
-
}
|
|
187
|
-
function ecdsaActiveCapabilityManifestsMatch(left, right) {
|
|
188
|
-
return left.kind === right.kind && ecdsaManifestIdentitiesMatch(left.identity, right.identity) && ecdsaRegisteredEvmFamilySignersMatch(left.signer, right.signer) && ecdsaActiveMaterialActivationsMatch(left.activation, right.activation) && ecdsaDurableMaterialBindingsMatch(left.durableMaterial, right.durableMaterial) && left.committedAt === right.committedAt;
|
|
189
|
-
}
|
|
190
|
-
function serverActivationRecordMatches(expected, record) {
|
|
191
|
-
try {
|
|
192
|
-
const receipt = requireRecord(record.serverActivationReceipt, "ECDSA server activation receipt");
|
|
193
|
-
return record.kind === expected.kind && parseCorrelationId(record.correlationId) === expected.correlationId && parseDigestB64u(record.activationRequestDigest) === expected.activationRequestDigest && parseEcdsaServerGeneration(record.serverGeneration) === expected.serverGeneration && receipt.kind === expected.serverActivationReceipt.kind && receipt.lifecycleId === String(expected.serverActivationReceipt.lifecycleId) && receipt.activationDigest === String(expected.serverActivationReceipt.activationDigest) && parseIsoTimestamp(receipt.activatedAt) === expected.serverActivationReceipt.activatedAt && sameRouterAbEcdsaRegistrationActivationReceiptV1(parseRouterAbEcdsaRegistrationActivationReceiptV1(receipt.protocolReceipt), expected.serverActivationReceipt.protocolReceipt);
|
|
194
|
-
} catch {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
async function persistenceDigest(category, selector, detail) {
|
|
199
|
-
return parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
|
|
200
|
-
category,
|
|
201
|
-
capability_ref: selector.capability,
|
|
202
|
-
wallet_id: selector.authority.walletId,
|
|
203
|
-
authority_digest: selector.authority.authorityDigest,
|
|
204
|
-
wallet_auth_method_id: selector.authority.walletAuthMethodId,
|
|
205
|
-
detail
|
|
206
|
-
}))));
|
|
207
|
-
}
|
|
208
|
-
function retryCorrelation() {
|
|
209
|
-
return parseCorrelationId(secureRandomId("ecdsa-persistence-retry", 16, "ECDSA persistence retry correlations"));
|
|
210
|
-
}
|
|
211
|
-
function buildPreparedJournalFromEncryptedCandidate(input) {
|
|
212
|
-
const candidate = buildPreparedEcdsaActivationCandidate({
|
|
213
|
-
activationBinding: input.preparation.activationBinding,
|
|
214
|
-
encryptedPending: input.encryptedPending
|
|
215
|
-
});
|
|
216
|
-
switch (input.preparation.expectedManifest.kind) {
|
|
217
|
-
case "no_current_manifest":
|
|
218
|
-
if (input.preparation.expectedGeneration.kind !== "no_current_generation") throw new Error("Initial ECDSA activation cannot expect a server generation");
|
|
219
|
-
return buildPreparedEcdsaActivationJournal({
|
|
220
|
-
journalId: input.preparation.journalId,
|
|
221
|
-
expectedManifest: input.preparation.expectedManifest,
|
|
222
|
-
expectedGeneration: input.preparation.expectedGeneration,
|
|
223
|
-
candidate,
|
|
224
|
-
requestDigest: input.preparation.requestDigest,
|
|
225
|
-
canonicalRequest: input.preparation.canonicalRequest,
|
|
226
|
-
createdAt: input.preparation.createdAt
|
|
227
|
-
});
|
|
228
|
-
case "exact_manifest":
|
|
229
|
-
if (input.preparation.expectedGeneration.kind !== "exact_generation") throw new Error("Replacement ECDSA activation requires an exact server generation");
|
|
230
|
-
return buildPreparedEcdsaActivationJournal({
|
|
231
|
-
journalId: input.preparation.journalId,
|
|
232
|
-
expectedManifest: input.preparation.expectedManifest,
|
|
233
|
-
expectedGeneration: input.preparation.expectedGeneration,
|
|
234
|
-
candidate,
|
|
235
|
-
requestDigest: input.preparation.requestDigest,
|
|
236
|
-
canonicalRequest: input.preparation.canonicalRequest,
|
|
237
|
-
createdAt: input.preparation.createdAt
|
|
238
|
-
});
|
|
239
|
-
default: return assertNever(input.preparation.expectedManifest);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
function decodeCanonicalStateBlob(value, label) {
|
|
243
|
-
if (typeof value !== "string" || value.length === 0 || !/^[A-Za-z0-9_-]+$/.test(value)) throw new Error(`${label} must be non-empty unpadded base64url`);
|
|
244
|
-
const bytes = base64UrlDecode(value);
|
|
245
|
-
if (bytes.length === 0 || base64UrlEncode(bytes) !== value) {
|
|
246
|
-
bytes.fill(0);
|
|
247
|
-
throw new Error(`${label} must be canonical base64url`);
|
|
248
|
-
}
|
|
249
|
-
return bytes;
|
|
250
|
-
}
|
|
251
33
|
function activationBindingAadProjection(binding) {
|
|
252
34
|
return {
|
|
253
35
|
target_manifest: binding.targetManifest,
|
|
@@ -266,24 +48,6 @@ function activationBindingAadProjection(binding) {
|
|
|
266
48
|
durable_material_ref: binding.durableMaterialRef
|
|
267
49
|
};
|
|
268
50
|
}
|
|
269
|
-
function activeManifestBindingAadProjection(manifest) {
|
|
270
|
-
return {
|
|
271
|
-
target_manifest: manifest.identity,
|
|
272
|
-
signer: {
|
|
273
|
-
capability: manifest.signer.capability,
|
|
274
|
-
signer_id: manifest.signer.signerId,
|
|
275
|
-
wallet_id: manifest.signer.walletId,
|
|
276
|
-
authority: manifest.signer.authority,
|
|
277
|
-
scope: manifest.signer.scope,
|
|
278
|
-
material_owner: manifest.signer.materialOwner,
|
|
279
|
-
signing_root_id: manifest.signer.signingRootId,
|
|
280
|
-
signing_root_version: manifest.signer.signingRootVersion
|
|
281
|
-
},
|
|
282
|
-
role_local_binding: manifest.durableMaterial.roleLocalBinding,
|
|
283
|
-
binding_digest: manifest.durableMaterial.bindingDigest,
|
|
284
|
-
durable_material_ref: manifest.durableMaterial.durableMaterialRef
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
51
|
function pendingAadProjection(input) {
|
|
288
52
|
if ("activationBinding" in input) return {
|
|
289
53
|
version: MATERIAL_AAD_VERSION,
|
|
@@ -311,604 +75,23 @@ function pendingAadProjection(input) {
|
|
|
311
75
|
};
|
|
312
76
|
}
|
|
313
77
|
function readyAadProjection(input) {
|
|
78
|
+
if (input.kind === "server_activation_committed") return readyAadProjectionFor(input.candidate.activationBinding, input.serverActivation);
|
|
79
|
+
return readyAadProjectionFor({
|
|
80
|
+
targetManifest: input.identity,
|
|
81
|
+
signer: input.signer,
|
|
82
|
+
roleLocalBinding: input.durableMaterial.roleLocalBinding,
|
|
83
|
+
bindingDigest: input.durableMaterial.bindingDigest,
|
|
84
|
+
durableMaterialRef: input.durableMaterial.durableMaterialRef
|
|
85
|
+
}, input.activation.serverActivation);
|
|
86
|
+
}
|
|
87
|
+
function readyAadProjectionFor(activationBinding, serverActivation) {
|
|
314
88
|
return {
|
|
315
89
|
version: MATERIAL_AAD_VERSION,
|
|
316
90
|
stage: "activation_ready",
|
|
317
|
-
activation_binding:
|
|
318
|
-
server_activation:
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
function importedReadyAadProjection(input) {
|
|
322
|
-
return {
|
|
323
|
-
version: MATERIAL_AAD_VERSION,
|
|
324
|
-
stage: "activation_ready",
|
|
325
|
-
activation_binding: activationBindingAadProjection(input.activationBinding),
|
|
326
|
-
server_activation: input.serverActivation
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
function additionalData(projection) {
|
|
330
|
-
return new TextEncoder().encode(alphabetizeStringify(projection));
|
|
331
|
-
}
|
|
332
|
-
function activeMaterialMatchesPresignaturePoolIdentity(material, poolIdentity) {
|
|
333
|
-
const scope = material.binding.routerAbEcdsaDerivationNormalSigning.scope;
|
|
334
|
-
const materialActivation = routerAbMpcMaterialActivationRefToWire(material.binding.materialActivation);
|
|
335
|
-
return scope.wallet_id === poolIdentity.walletId && base64UrlEncode(routerAbEcdsaDerivationNormalSigningScopeCanonicalBytesV1(scope)) === poolIdentity.signingScopeB64u && base64UrlEncode(canonicalRouterAbMpcMaterialActivationRefBytes(materialActivation)) === poolIdentity.materialActivationB64u && scope.signing_worker.key_epoch === poolIdentity.keyEpoch && scope.activation_epoch === poolIdentity.activationEpoch && materialActivation.activation_id === poolIdentity.materialActivationId && materialActivation.capability === poolIdentity.capability && materialActivation.key_binding === poolIdentity.keyBinding && materialActivation.material_owner === poolIdentity.walletId;
|
|
336
|
-
}
|
|
337
|
-
function parseDurableClientPresignatureRecordId(value) {
|
|
338
|
-
if (typeof value !== "string" || !/^ecdsa-client-presignature-[A-Za-z0-9_-]+$/.test(value)) throw new Error("ECDSA durable presignature record id is invalid");
|
|
339
|
-
return value;
|
|
340
|
-
}
|
|
341
|
-
function parsePresignatureTimestamp(value, label) {
|
|
342
|
-
if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} is invalid`);
|
|
343
|
-
return value;
|
|
344
|
-
}
|
|
345
|
-
function rawRecordId(value) {
|
|
346
|
-
if (!value || typeof value !== "object" || !("record_id" in value)) return null;
|
|
347
|
-
const recordId = value.record_id;
|
|
348
|
-
return typeof recordId === "string" ? recordId : null;
|
|
349
|
-
}
|
|
350
|
-
function supportsStrictIndexedDbDurability() {
|
|
351
|
-
return typeof IDBTransaction !== "undefined" && "durability" in IDBTransaction.prototype;
|
|
352
|
-
}
|
|
353
|
-
async function deleteExpiredClientPresignatureRows(context, walletId, nowMs) {
|
|
354
|
-
let cursor = await context.store(PRESIGNATURE_STORE).index(SEAMS_WALLET_INDEXES.walletExpiresAt).openCursor(IDBKeyRange.bound([walletId, 0], [walletId, nowMs]));
|
|
355
|
-
let deletedCount = 0;
|
|
356
|
-
while (cursor && deletedCount < MAX_EXPIRED_CLIENT_PRESIGNATURE_DELETIONS_PER_TRANSACTION) {
|
|
357
|
-
await cursor.delete();
|
|
358
|
-
deletedCount += 1;
|
|
359
|
-
cursor = await cursor.continue();
|
|
360
|
-
}
|
|
361
|
-
return deletedCount;
|
|
362
|
-
}
|
|
363
|
-
function presignatureAadProjection(metadata) {
|
|
364
|
-
return {
|
|
365
|
-
domain: CLIENT_PRESIGNATURE_AAD_DOMAIN,
|
|
366
|
-
version: 1,
|
|
367
|
-
pool_identity: metadata.poolIdentity,
|
|
368
|
-
durable_material_ref: metadata.durableMaterialRef,
|
|
369
|
-
presignature_id: metadata.presignatureId,
|
|
370
|
-
group_public_key33_b64u: metadata.groupPublicKey33B64u,
|
|
371
|
-
big_r33_b64u: metadata.bigR33B64u,
|
|
372
|
-
created_at_ms: metadata.createdAtMs,
|
|
373
|
-
expires_at_ms: metadata.expiresAtMs,
|
|
374
|
-
sealing_key_id: metadata.sealingKeyId
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
function parseSealedAvailableClientPresignatureRow(value) {
|
|
378
|
-
const record = requireRecord(value, "ECDSA durable presignature row");
|
|
379
|
-
requireExactKeys(record, "ECDSA durable presignature row", [
|
|
380
|
-
"kind",
|
|
381
|
-
"record_id",
|
|
382
|
-
"pool_identity",
|
|
383
|
-
"pool_identity_key",
|
|
384
|
-
"wallet_id",
|
|
385
|
-
"material_activation_id",
|
|
386
|
-
"durable_material_ref",
|
|
387
|
-
"presignature_id",
|
|
388
|
-
"group_public_key33_b64u",
|
|
389
|
-
"big_r33_b64u",
|
|
390
|
-
"created_at_ms",
|
|
391
|
-
"expires_at_ms",
|
|
392
|
-
"sealed"
|
|
393
|
-
]);
|
|
394
|
-
if (record.kind !== "sealed_available_client_presignature_v1") throw new Error("ECDSA durable presignature row kind is invalid");
|
|
395
|
-
const poolIdentityRecord = requireRecord(record.pool_identity, "ECDSA durable presignature pool identity");
|
|
396
|
-
requireExactKeys(poolIdentityRecord, "ECDSA durable presignature pool identity", [
|
|
397
|
-
"activationEpoch",
|
|
398
|
-
"capability",
|
|
399
|
-
"keyBinding",
|
|
400
|
-
"keyEpoch",
|
|
401
|
-
"materialActivationB64u",
|
|
402
|
-
"materialActivationId",
|
|
403
|
-
"pairRole",
|
|
404
|
-
"protocolId",
|
|
405
|
-
"relayerUrl",
|
|
406
|
-
"signingScopeB64u",
|
|
407
|
-
"walletId"
|
|
408
|
-
]);
|
|
409
|
-
const poolIdentity = parseEcdsaClientPresignPoolIdentity(poolIdentityRecord);
|
|
410
|
-
const recordId = parseDurableClientPresignatureRecordId(record.record_id);
|
|
411
|
-
const poolIdentityKeyValue = String(record.pool_identity_key ?? "");
|
|
412
|
-
if (poolIdentityKeyValue !== ecdsaClientPresignPoolKey(poolIdentity)) throw new Error("ECDSA durable presignature pool identity index is inconsistent");
|
|
413
|
-
const walletId = String(record.wallet_id ?? "").trim();
|
|
414
|
-
const materialActivationId = String(record.material_activation_id ?? "").trim();
|
|
415
|
-
if (!walletId || walletId !== poolIdentity.walletId) throw new Error("ECDSA durable presignature wallet binding is inconsistent");
|
|
416
|
-
if (!materialActivationId || materialActivationId !== poolIdentity.materialActivationId) throw new Error("ECDSA durable presignature activation binding is inconsistent");
|
|
417
|
-
const durableMaterialRef = parseEcdsaRoleLocalPersistedMaterialRef(record.durable_material_ref);
|
|
418
|
-
if (durableMaterialRef.materialActivation.activationId !== poolIdentity.materialActivationId || durableMaterialRef.materialActivation.capability !== poolIdentity.capability || durableMaterialRef.materialActivation.keyBinding !== poolIdentity.keyBinding || durableMaterialRef.materialActivation.materialOwner !== poolIdentity.walletId) throw new Error("ECDSA durable presignature material binding is inconsistent");
|
|
419
|
-
const presignatureId = String(record.presignature_id ?? "").trim();
|
|
420
|
-
if (!presignatureId) throw new Error("ECDSA durable presignature id is invalid");
|
|
421
|
-
const groupPublicKey33B64u = parseEcdsaClientVerifyingPublicKey33B64u(record.group_public_key33_b64u);
|
|
422
|
-
const bigR33B64u = parseEcdsaClientVerifyingPublicKey33B64u(record.big_r33_b64u);
|
|
423
|
-
const createdAtMs = parsePresignatureTimestamp(record.created_at_ms, "created_at_ms");
|
|
424
|
-
const expiresAtMs = parsePresignatureTimestamp(record.expires_at_ms, "expires_at_ms");
|
|
425
|
-
if (createdAtMs > Date.now() + MAX_DURABLE_CLIENT_PRESIGNATURE_FUTURE_SKEW_MS) throw new Error("ECDSA durable presignature creation timestamp is in the future");
|
|
426
|
-
if (expiresAtMs <= createdAtMs) throw new Error("ECDSA durable presignature expiry must follow creation");
|
|
427
|
-
if (expiresAtMs - createdAtMs > 7776e6) throw new Error("ECDSA durable presignature lifetime exceeds the maximum");
|
|
428
|
-
const sealed = requireRecord(record.sealed, "ECDSA durable presignature sealed payload");
|
|
429
|
-
requireExactKeys(sealed, "ECDSA durable presignature sealed payload", [
|
|
430
|
-
"kind",
|
|
431
|
-
"sealing_key_id",
|
|
432
|
-
"iv12_b64u",
|
|
433
|
-
"ciphertext_b64u",
|
|
434
|
-
"ciphertext_digest_b64u"
|
|
435
|
-
]);
|
|
436
|
-
if (sealed.kind !== "ecdsa_activation_aes_gcm_v1") throw new Error("ECDSA durable presignature sealing kind is invalid");
|
|
437
|
-
return {
|
|
438
|
-
kind: "sealed_available_client_presignature_v1",
|
|
439
|
-
record_id: recordId,
|
|
440
|
-
pool_identity: poolIdentity,
|
|
441
|
-
pool_identity_key: poolIdentityKeyValue,
|
|
442
|
-
wallet_id: walletId,
|
|
443
|
-
material_activation_id: materialActivationId,
|
|
444
|
-
durable_material_ref: durableMaterialRef,
|
|
445
|
-
presignature_id: presignatureId,
|
|
446
|
-
group_public_key33_b64u: groupPublicKey33B64u,
|
|
447
|
-
big_r33_b64u: bigR33B64u,
|
|
448
|
-
created_at_ms: createdAtMs,
|
|
449
|
-
expires_at_ms: expiresAtMs,
|
|
450
|
-
sealed: {
|
|
451
|
-
kind: "ecdsa_activation_aes_gcm_v1",
|
|
452
|
-
sealing_key_id: parseEcdsaMaterialSealingKeyId(sealed.sealing_key_id),
|
|
453
|
-
iv12_b64u: parseEcdsaIv12B64u(sealed.iv12_b64u),
|
|
454
|
-
ciphertext_b64u: parseEcdsaCiphertextB64u(sealed.ciphertext_b64u),
|
|
455
|
-
ciphertext_digest_b64u: parseEcdsaCiphertextDigest(sealed.ciphertext_digest_b64u)
|
|
456
|
-
}
|
|
457
|
-
};
|
|
458
|
-
}
|
|
459
|
-
function metadataFromPresignatureRow(row) {
|
|
460
|
-
return {
|
|
461
|
-
kind: "sealed_available_client_presignature_v1",
|
|
462
|
-
recordId: row.record_id,
|
|
463
|
-
poolIdentity: row.pool_identity,
|
|
464
|
-
durableMaterialRef: row.durable_material_ref,
|
|
465
|
-
presignatureId: row.presignature_id,
|
|
466
|
-
groupPublicKey33B64u: row.group_public_key33_b64u,
|
|
467
|
-
bigR33B64u: row.big_r33_b64u,
|
|
468
|
-
createdAtMs: row.created_at_ms,
|
|
469
|
-
expiresAtMs: row.expires_at_ms,
|
|
470
|
-
sealingKeyId: row.sealed.sealing_key_id
|
|
471
|
-
};
|
|
472
|
-
}
|
|
473
|
-
async function encryptPresignatureBytes(input) {
|
|
474
|
-
const iv12 = crypto.getRandomValues(new Uint8Array(AES_GCM_IV_BYTES));
|
|
475
|
-
const aad = additionalData(presignatureAadProjection(input.metadata));
|
|
476
|
-
try {
|
|
477
|
-
const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
|
|
478
|
-
name: "AES-GCM",
|
|
479
|
-
iv: iv12,
|
|
480
|
-
additionalData: aad
|
|
481
|
-
}, input.key, input.plaintext97));
|
|
482
|
-
try {
|
|
483
|
-
const ciphertextB64u = base64UrlEncode(ciphertext);
|
|
484
|
-
return {
|
|
485
|
-
iv12B64u: parseEcdsaIv12B64u(base64UrlEncode(iv12)),
|
|
486
|
-
ciphertextB64u: parseEcdsaCiphertextB64u(ciphertextB64u),
|
|
487
|
-
ciphertextDigestB64u: parseEcdsaCiphertextDigest(base64UrlEncode(await sha256Bytes(ciphertext)))
|
|
488
|
-
};
|
|
489
|
-
} finally {
|
|
490
|
-
ciphertext.fill(0);
|
|
491
|
-
}
|
|
492
|
-
} finally {
|
|
493
|
-
iv12.fill(0);
|
|
494
|
-
aad.fill(0);
|
|
495
|
-
input.plaintext97.fill(0);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
async function decryptPresignatureBytes(input) {
|
|
499
|
-
const iv12 = base64UrlDecode(input.sealed.iv12_b64u);
|
|
500
|
-
const ciphertext = base64UrlDecode(input.sealed.ciphertext_b64u);
|
|
501
|
-
const aad = additionalData(presignatureAadProjection(input.metadata));
|
|
502
|
-
let plaintext = null;
|
|
503
|
-
try {
|
|
504
|
-
if (base64UrlEncode(await sha256Bytes(ciphertext)) !== input.sealed.ciphertext_digest_b64u) throw new Error("ECDSA durable presignature ciphertext digest mismatch");
|
|
505
|
-
plaintext = new Uint8Array(await crypto.subtle.decrypt({
|
|
506
|
-
name: "AES-GCM",
|
|
507
|
-
iv: iv12,
|
|
508
|
-
additionalData: aad
|
|
509
|
-
}, input.key, ciphertext));
|
|
510
|
-
if (plaintext.length !== 97) throw new Error("ECDSA durable presignature plaintext length is invalid");
|
|
511
|
-
return plaintext.slice();
|
|
512
|
-
} finally {
|
|
513
|
-
iv12.fill(0);
|
|
514
|
-
ciphertext.fill(0);
|
|
515
|
-
aad.fill(0);
|
|
516
|
-
plaintext?.fill(0);
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
async function generateMaterialSealingKey() {
|
|
520
|
-
return await crypto.subtle.generateKey({
|
|
521
|
-
name: "AES-GCM",
|
|
522
|
-
length: 256
|
|
523
|
-
}, false, ["encrypt", "decrypt"]);
|
|
524
|
-
}
|
|
525
|
-
async function encryptStateBlob(input) {
|
|
526
|
-
const plaintext = decodeCanonicalStateBlob(input.stateBlobB64u, "ECDSA state blob");
|
|
527
|
-
const iv12 = crypto.getRandomValues(new Uint8Array(AES_GCM_IV_BYTES));
|
|
528
|
-
const aad = additionalData(input.aadProjection);
|
|
529
|
-
try {
|
|
530
|
-
const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
|
|
531
|
-
name: "AES-GCM",
|
|
532
|
-
iv: iv12,
|
|
533
|
-
additionalData: aad
|
|
534
|
-
}, input.key, plaintext));
|
|
535
|
-
try {
|
|
536
|
-
return {
|
|
537
|
-
iv12B64u: parseEcdsaIv12B64u(base64UrlEncode(iv12)),
|
|
538
|
-
ciphertextB64u: parseEcdsaCiphertextB64u(base64UrlEncode(ciphertext)),
|
|
539
|
-
digestB64u: base64UrlEncode(await sha256Bytes(ciphertext))
|
|
540
|
-
};
|
|
541
|
-
} finally {
|
|
542
|
-
ciphertext.fill(0);
|
|
543
|
-
}
|
|
544
|
-
} finally {
|
|
545
|
-
plaintext.fill(0);
|
|
546
|
-
aad.fill(0);
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
async function ciphertextDigestB64u(ciphertextB64u) {
|
|
550
|
-
const ciphertext = base64UrlDecode(ciphertextB64u);
|
|
551
|
-
try {
|
|
552
|
-
return base64UrlEncode(await sha256Bytes(ciphertext));
|
|
553
|
-
} finally {
|
|
554
|
-
ciphertext.fill(0);
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
async function decryptStateBlob(input) {
|
|
558
|
-
const iv12 = base64UrlDecode(input.iv12B64u);
|
|
559
|
-
const ciphertext = base64UrlDecode(input.ciphertextB64u);
|
|
560
|
-
const aad = additionalData(input.aadProjection);
|
|
561
|
-
let plaintext = null;
|
|
562
|
-
try {
|
|
563
|
-
plaintext = new Uint8Array(await crypto.subtle.decrypt({
|
|
564
|
-
name: "AES-GCM",
|
|
565
|
-
iv: iv12,
|
|
566
|
-
additionalData: aad
|
|
567
|
-
}, input.key, ciphertext));
|
|
568
|
-
if (plaintext.length === 0) throw new Error("decrypted ECDSA state blob must not be empty");
|
|
569
|
-
return base64UrlEncode(plaintext);
|
|
570
|
-
} finally {
|
|
571
|
-
iv12.fill(0);
|
|
572
|
-
ciphertext.fill(0);
|
|
573
|
-
aad.fill(0);
|
|
574
|
-
plaintext?.fill(0);
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
function parseManifestIdentity(value) {
|
|
578
|
-
const record = requireRecord(value, "ECDSA manifest identity");
|
|
579
|
-
requireExactKeys(record, "ECDSA manifest identity", ["manifestId", "manifestRevision"]);
|
|
580
|
-
return buildEcdsaManifestIdentity({
|
|
581
|
-
manifestId: parseEcdsaCapabilityManifestId(record.manifestId),
|
|
582
|
-
manifestRevision: parseEcdsaCapabilityManifestRevision(record.manifestRevision)
|
|
583
|
-
});
|
|
584
|
-
}
|
|
585
|
-
function parseManifestExpectation(value) {
|
|
586
|
-
const record = requireRecord(value, "ECDSA manifest expectation");
|
|
587
|
-
switch (record.kind) {
|
|
588
|
-
case "no_current_manifest":
|
|
589
|
-
requireExactKeys(record, "ECDSA no-current manifest expectation", ["kind"]);
|
|
590
|
-
return buildNoCurrentEcdsaManifestExpectation();
|
|
591
|
-
case "exact_manifest":
|
|
592
|
-
requireExactKeys(record, "ECDSA exact manifest expectation", [
|
|
593
|
-
"kind",
|
|
594
|
-
"manifestId",
|
|
595
|
-
"manifestRevision"
|
|
596
|
-
]);
|
|
597
|
-
return buildExactEcdsaManifestExpectation(buildEcdsaManifestIdentity({
|
|
598
|
-
manifestId: parseEcdsaCapabilityManifestId(record.manifestId),
|
|
599
|
-
manifestRevision: parseEcdsaCapabilityManifestRevision(record.manifestRevision)
|
|
600
|
-
}));
|
|
601
|
-
default: throw new Error("ECDSA manifest expectation kind is invalid");
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
function parseChainTarget(value) {
|
|
605
|
-
const record = requireRecord(value, "ECDSA capability target");
|
|
606
|
-
switch (record.kind) {
|
|
607
|
-
case "evm":
|
|
608
|
-
requireExactKeys(record, "ECDSA EVM capability target", [
|
|
609
|
-
"kind",
|
|
610
|
-
"namespace",
|
|
611
|
-
"chainId",
|
|
612
|
-
"networkSlug"
|
|
613
|
-
]);
|
|
614
|
-
return thresholdEcdsaChainTargetFromRequest({
|
|
615
|
-
kind: record.kind,
|
|
616
|
-
namespace: record.namespace,
|
|
617
|
-
chainId: record.chainId,
|
|
618
|
-
networkSlug: record.networkSlug
|
|
619
|
-
});
|
|
620
|
-
case "tempo":
|
|
621
|
-
requireExactKeys(record, "ECDSA Tempo capability target", [
|
|
622
|
-
"kind",
|
|
623
|
-
"chainId",
|
|
624
|
-
"networkSlug"
|
|
625
|
-
]);
|
|
626
|
-
return thresholdEcdsaChainTargetFromRequest({
|
|
627
|
-
kind: record.kind,
|
|
628
|
-
chainId: record.chainId,
|
|
629
|
-
networkSlug: record.networkSlug
|
|
630
|
-
});
|
|
631
|
-
default: throw new Error("ECDSA capability target kind is invalid");
|
|
632
|
-
}
|
|
633
|
-
}
|
|
634
|
-
function parseCapabilityScope(value) {
|
|
635
|
-
const record = requireRecord(value, "ECDSA capability scope");
|
|
636
|
-
requireExactKeys(record, "ECDSA capability scope", ["kind", "targetMemberships"]);
|
|
637
|
-
if (record.kind !== "evm_family") throw new Error("ECDSA capability scope kind is invalid");
|
|
638
|
-
const targetValues = requireArray(record.targetMemberships, "ECDSA capability target memberships");
|
|
639
|
-
const targets = [];
|
|
640
|
-
for (const targetValue of targetValues) targets.push(parseChainTarget(targetValue));
|
|
641
|
-
const [first, ...rest] = targets;
|
|
642
|
-
if (!first) throw new Error("ECDSA capability scope requires at least one target");
|
|
643
|
-
return buildEcdsaCapabilityScope({ targetMemberships: [first, ...rest] });
|
|
644
|
-
}
|
|
645
|
-
function parseRoleLocalBinding(value) {
|
|
646
|
-
const record = requireRecord(value, "ECDSA role-local material binding");
|
|
647
|
-
requireExactKeys(record, "ECDSA role-local material binding", [
|
|
648
|
-
"kind",
|
|
649
|
-
"keyHandle",
|
|
650
|
-
"ecdsaThresholdKeyId",
|
|
651
|
-
"clientVerifyingPublicKey33B64u",
|
|
652
|
-
"participantIds",
|
|
653
|
-
"relayerKeyId"
|
|
654
|
-
]);
|
|
655
|
-
if (record.kind !== "ecdsa_role_local_material_binding") throw new Error("ECDSA role-local material binding kind is invalid");
|
|
656
|
-
const participantValues = requireArray(record.participantIds, "ECDSA role-local participant ids");
|
|
657
|
-
const participantIds = [];
|
|
658
|
-
for (const participantValue of participantValues) participantIds.push(toParticipantId(participantValue));
|
|
659
|
-
const [firstParticipantId, ...remainingParticipantIds] = participantIds;
|
|
660
|
-
if (!firstParticipantId) throw new Error("ECDSA role-local material requires at least one participant");
|
|
661
|
-
return buildEcdsaRoleLocalMaterialBinding({
|
|
662
|
-
keyHandle: parseEcdsaKeyHandle(record.keyHandle),
|
|
663
|
-
ecdsaThresholdKeyId: parseEcdsaThresholdKeyId(record.ecdsaThresholdKeyId),
|
|
664
|
-
clientVerifyingPublicKey33B64u: parseEcdsaClientVerifyingPublicKey33B64u(record.clientVerifyingPublicKey33B64u),
|
|
665
|
-
participantIds: [firstParticipantId, ...remainingParticipantIds],
|
|
666
|
-
relayerKeyId: parseEcdsaRelayerKeyId(record.relayerKeyId)
|
|
667
|
-
});
|
|
668
|
-
}
|
|
669
|
-
function parsePreparedSigner(value) {
|
|
670
|
-
const record = requireRecord(value, "prepared ECDSA signer");
|
|
671
|
-
requireExactKeys(record, "prepared ECDSA signer", [
|
|
672
|
-
"kind",
|
|
673
|
-
"capability",
|
|
674
|
-
"signerId",
|
|
675
|
-
"walletId",
|
|
676
|
-
"authority",
|
|
677
|
-
"scope",
|
|
678
|
-
"materialOwner",
|
|
679
|
-
"signingRootId",
|
|
680
|
-
"signingRootVersion"
|
|
681
|
-
]);
|
|
682
|
-
if (record.kind !== "prepared_evm_family_signer") throw new Error("prepared ECDSA signer kind is invalid");
|
|
683
|
-
const authority = parseWalletAuthAuthorityRef(record.authority);
|
|
684
|
-
if (!authority) throw new Error("prepared ECDSA signer authority is invalid");
|
|
685
|
-
if (String(record.walletId) !== String(authority.walletId)) throw new Error("prepared ECDSA signer wallet does not match its authority");
|
|
686
|
-
return buildPreparedEvmFamilySigner({
|
|
687
|
-
capability: unwrapDomainId(parseCapabilityInstanceRef(record.capability)),
|
|
688
|
-
signerId: parseEvmFamilyEcdsaSignerId(record.signerId),
|
|
689
|
-
authority,
|
|
690
|
-
scope: parseCapabilityScope(record.scope),
|
|
691
|
-
materialOwner: unwrapDomainId(parseMpcMaterialOwnerRef(record.materialOwner)),
|
|
692
|
-
signingRootId: parseSdkEcdsaDerivationSigningRootId(record.signingRootId),
|
|
693
|
-
signingRootVersion: parseSdkEcdsaDerivationSigningRootVersion(record.signingRootVersion)
|
|
694
|
-
});
|
|
695
|
-
}
|
|
696
|
-
function parseEncryptedPendingCandidate(value) {
|
|
697
|
-
const record = requireRecord(value, "encrypted ECDSA pending candidate");
|
|
698
|
-
requireExactKeys(record, "encrypted ECDSA pending candidate", [
|
|
699
|
-
"kind",
|
|
700
|
-
"sealingKeyId",
|
|
701
|
-
"iv12B64u",
|
|
702
|
-
"ciphertextB64u",
|
|
703
|
-
"ciphertextDigest"
|
|
704
|
-
]);
|
|
705
|
-
if (record.kind !== "encrypted_ecdsa_pending_candidate") throw new Error("encrypted ECDSA pending candidate kind is invalid");
|
|
706
|
-
return buildEncryptedEcdsaPendingCandidate({
|
|
707
|
-
sealingKeyId: parseEcdsaMaterialSealingKeyId(record.sealingKeyId),
|
|
708
|
-
iv12B64u: parseEcdsaIv12B64u(record.iv12B64u),
|
|
709
|
-
ciphertextB64u: parseEcdsaCiphertextB64u(record.ciphertextB64u),
|
|
710
|
-
ciphertextDigest: parseEcdsaPendingCiphertextDigest(record.ciphertextDigest)
|
|
711
|
-
});
|
|
712
|
-
}
|
|
713
|
-
function parseActivationBinding(value) {
|
|
714
|
-
const record = requireRecord(value, "ECDSA activation binding");
|
|
715
|
-
requireExactKeys(record, "ECDSA activation binding", [
|
|
716
|
-
"kind",
|
|
717
|
-
"targetManifest",
|
|
718
|
-
"signer",
|
|
719
|
-
"roleLocalBinding",
|
|
720
|
-
"bindingDigest",
|
|
721
|
-
"durableMaterialRef"
|
|
722
|
-
]);
|
|
723
|
-
if (record.kind !== "ecdsa_activation_binding") throw new Error("ECDSA activation binding kind is invalid");
|
|
724
|
-
return buildEcdsaActivationBinding({
|
|
725
|
-
targetManifest: parseManifestIdentity(record.targetManifest),
|
|
726
|
-
signer: parsePreparedSigner(record.signer),
|
|
727
|
-
roleLocalBinding: parseRoleLocalBinding(record.roleLocalBinding),
|
|
728
|
-
bindingDigest: parseEcdsaRoleLocalBindingDigest(record.bindingDigest),
|
|
729
|
-
durableMaterialRef: parseEcdsaRoleLocalDurableMaterialRef(record.durableMaterialRef)
|
|
730
|
-
});
|
|
731
|
-
}
|
|
732
|
-
function parsePreparedCandidate(value) {
|
|
733
|
-
const record = requireRecord(value, "prepared ECDSA activation candidate");
|
|
734
|
-
requireExactKeys(record, "prepared ECDSA activation candidate", [
|
|
735
|
-
"kind",
|
|
736
|
-
"activationBinding",
|
|
737
|
-
"encryptedPending"
|
|
738
|
-
]);
|
|
739
|
-
if (record.kind !== "prepared_ecdsa_activation_candidate") throw new Error("prepared ECDSA activation candidate kind is invalid");
|
|
740
|
-
return buildPreparedEcdsaActivationCandidate({
|
|
741
|
-
activationBinding: parseActivationBinding(record.activationBinding),
|
|
742
|
-
encryptedPending: parseEncryptedPendingCandidate(record.encryptedPending)
|
|
743
|
-
});
|
|
744
|
-
}
|
|
745
|
-
function parseExpectedServerGeneration(value) {
|
|
746
|
-
const record = requireRecord(value, "ECDSA server generation expectation");
|
|
747
|
-
switch (record.kind) {
|
|
748
|
-
case "no_current_generation":
|
|
749
|
-
requireExactKeys(record, "ECDSA no-current server generation expectation", ["kind"]);
|
|
750
|
-
return buildNoCurrentEcdsaServerGenerationExpectation();
|
|
751
|
-
case "exact_generation":
|
|
752
|
-
requireExactKeys(record, "ECDSA exact server generation expectation", ["kind", "serverGeneration"]);
|
|
753
|
-
return buildExactEcdsaServerGenerationExpectation(parseEcdsaServerGeneration(record.serverGeneration));
|
|
754
|
-
default: throw new Error("ECDSA server generation expectation kind is invalid");
|
|
755
|
-
}
|
|
756
|
-
}
|
|
757
|
-
function parsePreparedJournal(value) {
|
|
758
|
-
const record = requireRecord(value, "prepared ECDSA activation journal");
|
|
759
|
-
requireExactKeys(record, "prepared ECDSA activation journal", [
|
|
760
|
-
"kind",
|
|
761
|
-
"journalId",
|
|
762
|
-
"expectedManifest",
|
|
763
|
-
"activationCommand",
|
|
764
|
-
"candidate",
|
|
765
|
-
"createdAt"
|
|
766
|
-
]);
|
|
767
|
-
if (record.kind !== "activation_prepared") throw new Error("prepared ECDSA activation journal kind is invalid");
|
|
768
|
-
const command = requireRecord(record.activationCommand, "ECDSA activation command");
|
|
769
|
-
requireExactKeys(command, "ECDSA activation command", [
|
|
770
|
-
"kind",
|
|
771
|
-
"correlationId",
|
|
772
|
-
"expectedGeneration",
|
|
773
|
-
"requestDigest",
|
|
774
|
-
"canonicalRequest"
|
|
775
|
-
]);
|
|
776
|
-
if (command.kind !== "ecdsa_server_activation_command") throw new Error("ECDSA activation command kind is invalid");
|
|
777
|
-
const journalId = parseCorrelationId(record.journalId);
|
|
778
|
-
if (parseCorrelationId(command.correlationId) !== journalId) throw new Error("ECDSA activation command correlation does not match its journal");
|
|
779
|
-
const expectedManifest = parseManifestExpectation(record.expectedManifest);
|
|
780
|
-
const expectedGeneration = parseExpectedServerGeneration(command.expectedGeneration);
|
|
781
|
-
const common = {
|
|
782
|
-
journalId,
|
|
783
|
-
candidate: parsePreparedCandidate(record.candidate),
|
|
784
|
-
requestDigest: parseDigestB64u(command.requestDigest),
|
|
785
|
-
canonicalRequest: parseCanonicalEcdsaServerActivationRequest(command.canonicalRequest),
|
|
786
|
-
createdAt: parseIsoTimestamp(record.createdAt)
|
|
787
|
-
};
|
|
788
|
-
switch (expectedManifest.kind) {
|
|
789
|
-
case "no_current_manifest":
|
|
790
|
-
if (expectedGeneration.kind !== "no_current_generation") throw new Error("initial ECDSA journal has an exact server generation");
|
|
791
|
-
return buildPreparedEcdsaActivationJournal({
|
|
792
|
-
...common,
|
|
793
|
-
expectedManifest,
|
|
794
|
-
expectedGeneration
|
|
795
|
-
});
|
|
796
|
-
case "exact_manifest":
|
|
797
|
-
if (expectedGeneration.kind !== "exact_generation") throw new Error("replacement ECDSA journal is missing its exact server generation");
|
|
798
|
-
return buildPreparedEcdsaActivationJournal({
|
|
799
|
-
...common,
|
|
800
|
-
expectedManifest,
|
|
801
|
-
expectedGeneration
|
|
802
|
-
});
|
|
803
|
-
}
|
|
804
|
-
return assertNever(expectedManifest);
|
|
805
|
-
}
|
|
806
|
-
function preparedJournalValueFromCommitted(record) {
|
|
807
|
-
return {
|
|
808
|
-
kind: "activation_prepared",
|
|
809
|
-
journalId: record.journalId,
|
|
810
|
-
expectedManifest: record.expectedManifest,
|
|
811
|
-
activationCommand: record.activationCommand,
|
|
812
|
-
candidate: record.candidate,
|
|
813
|
-
createdAt: record.createdAt
|
|
91
|
+
activation_binding: activationBindingAadProjection(activationBinding),
|
|
92
|
+
server_activation: serverActivation
|
|
814
93
|
};
|
|
815
94
|
}
|
|
816
|
-
function preparedJournalProjection(journal) {
|
|
817
|
-
if (journal.kind === "activation_prepared") return journal;
|
|
818
|
-
switch (journal.expectedManifest.kind) {
|
|
819
|
-
case "no_current_manifest":
|
|
820
|
-
if (journal.activationCommand.expectedGeneration.kind !== "no_current_generation") throw new Error("Initial ECDSA activation cannot expect a server generation");
|
|
821
|
-
return buildPreparedEcdsaActivationJournal({
|
|
822
|
-
journalId: journal.journalId,
|
|
823
|
-
expectedManifest: journal.expectedManifest,
|
|
824
|
-
expectedGeneration: journal.activationCommand.expectedGeneration,
|
|
825
|
-
candidate: journal.candidate,
|
|
826
|
-
requestDigest: journal.activationCommand.requestDigest,
|
|
827
|
-
canonicalRequest: journal.activationCommand.canonicalRequest,
|
|
828
|
-
createdAt: journal.createdAt
|
|
829
|
-
});
|
|
830
|
-
case "exact_manifest":
|
|
831
|
-
if (journal.activationCommand.expectedGeneration.kind !== "exact_generation") throw new Error("Replacement ECDSA activation requires an exact server generation");
|
|
832
|
-
return buildPreparedEcdsaActivationJournal({
|
|
833
|
-
journalId: journal.journalId,
|
|
834
|
-
expectedManifest: journal.expectedManifest,
|
|
835
|
-
expectedGeneration: journal.activationCommand.expectedGeneration,
|
|
836
|
-
candidate: journal.candidate,
|
|
837
|
-
requestDigest: journal.activationCommand.requestDigest,
|
|
838
|
-
canonicalRequest: journal.activationCommand.canonicalRequest,
|
|
839
|
-
createdAt: journal.createdAt
|
|
840
|
-
});
|
|
841
|
-
default: return assertNever(journal.expectedManifest);
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
function parseCommittedJournal(value) {
|
|
845
|
-
const record = requireRecord(value, "server-committed ECDSA activation journal");
|
|
846
|
-
requireExactKeys(record, "server-committed ECDSA activation journal", [
|
|
847
|
-
"kind",
|
|
848
|
-
"journalId",
|
|
849
|
-
"expectedManifest",
|
|
850
|
-
"activationCommand",
|
|
851
|
-
"candidate",
|
|
852
|
-
"createdAt",
|
|
853
|
-
"serverActivation"
|
|
854
|
-
]);
|
|
855
|
-
if (record.kind !== "server_activation_committed") throw new Error("server-committed ECDSA activation journal kind is invalid");
|
|
856
|
-
const preparedJournal = parsePreparedJournal(preparedJournalValueFromCommitted(record));
|
|
857
|
-
const serverActivation = requireRecord(record.serverActivation, "ECDSA server activation commit");
|
|
858
|
-
requireExactKeys(serverActivation, "ECDSA server activation commit", [
|
|
859
|
-
"kind",
|
|
860
|
-
"correlationId",
|
|
861
|
-
"activationRequestDigest",
|
|
862
|
-
"serverGeneration",
|
|
863
|
-
"serverActivationReceipt"
|
|
864
|
-
]);
|
|
865
|
-
if (serverActivation.kind !== "ecdsa_server_activation_commit") throw new Error("ECDSA server activation commit kind is invalid");
|
|
866
|
-
const receipt = requireRecord(serverActivation.serverActivationReceipt, "ECDSA server activation receipt");
|
|
867
|
-
requireExactKeys(receipt, "ECDSA server activation receipt", [
|
|
868
|
-
"kind",
|
|
869
|
-
"lifecycleId",
|
|
870
|
-
"activationDigest",
|
|
871
|
-
"activatedAt",
|
|
872
|
-
"protocolReceipt"
|
|
873
|
-
]);
|
|
874
|
-
if (receipt.kind !== "ecdsa_server_activation_receipt") throw new Error("ECDSA server activation receipt kind is invalid");
|
|
875
|
-
const committed = buildServerCommittedEcdsaActivationJournal({
|
|
876
|
-
preparedJournal,
|
|
877
|
-
serverCommit: {
|
|
878
|
-
correlationId: parseCorrelationId(serverActivation.correlationId),
|
|
879
|
-
activationRequestDigest: parseDigestB64u(serverActivation.activationRequestDigest),
|
|
880
|
-
serverGeneration: parseEcdsaServerGeneration(serverActivation.serverGeneration),
|
|
881
|
-
protocolReceipt: receipt.protocolReceipt
|
|
882
|
-
}
|
|
883
|
-
});
|
|
884
|
-
if (!serverActivationRecordMatches(committed.serverActivation, serverActivation)) throw new Error("ECDSA server activation commit fields are inconsistent");
|
|
885
|
-
return committed;
|
|
886
|
-
}
|
|
887
|
-
function parseJournal(value) {
|
|
888
|
-
const record = requireRecord(value, "ECDSA activation journal");
|
|
889
|
-
switch (record.kind) {
|
|
890
|
-
case "activation_prepared": return parsePreparedJournal(record);
|
|
891
|
-
case "server_activation_committed": return parseCommittedJournal(record);
|
|
892
|
-
default: throw new Error("ECDSA activation journal kind is invalid");
|
|
893
|
-
}
|
|
894
|
-
}
|
|
895
|
-
function parseRegisteredPublicFacts(value) {
|
|
896
|
-
const record = requireRecord(value, "registered ECDSA public facts");
|
|
897
|
-
requireExactKeys(record, "registered ECDSA public facts", [
|
|
898
|
-
"kind",
|
|
899
|
-
"keyHandle",
|
|
900
|
-
"publicKeyB64u",
|
|
901
|
-
"participantIds",
|
|
902
|
-
"thresholdOwnerAddress"
|
|
903
|
-
]);
|
|
904
|
-
if (record.kind !== "verified_ecdsa_public_facts") throw new Error("registered ECDSA public facts kind is invalid");
|
|
905
|
-
return buildVerifiedEcdsaPublicFacts({
|
|
906
|
-
keyHandle: toEvmFamilyEcdsaKeyHandle(record.keyHandle),
|
|
907
|
-
publicKeyB64u: record.publicKeyB64u,
|
|
908
|
-
participantIds: requireArray(record.participantIds, "registered ECDSA participant ids"),
|
|
909
|
-
thresholdOwnerAddress: record.thresholdOwnerAddress
|
|
910
|
-
});
|
|
911
|
-
}
|
|
912
95
|
function storedActiveProof(input) {
|
|
913
96
|
return {
|
|
914
97
|
activation_binding: input.activationBinding,
|
|
@@ -921,80 +104,12 @@ function storedActiveProof(input) {
|
|
|
921
104
|
committed_at: input.activeManifest.committedAt
|
|
922
105
|
};
|
|
923
106
|
}
|
|
924
|
-
function parseActiveProof(value) {
|
|
925
|
-
const record = requireRecord(value, "active ECDSA manifest proof");
|
|
926
|
-
requireExactKeys(record, "active ECDSA manifest proof", [
|
|
927
|
-
"activation_binding",
|
|
928
|
-
"server_activation",
|
|
929
|
-
"registered_public_facts",
|
|
930
|
-
"role_local_public_facts",
|
|
931
|
-
"router_ab_ecdsa_derivation_normal_signing",
|
|
932
|
-
"runtime_policy_scope",
|
|
933
|
-
"ciphertext_digest",
|
|
934
|
-
"committed_at"
|
|
935
|
-
]);
|
|
936
|
-
const activationBinding = parseActivationBinding(record.activation_binding);
|
|
937
|
-
const serverActivationRecord = requireRecord(record.server_activation, "ECDSA server activation commit");
|
|
938
|
-
requireExactKeys(serverActivationRecord, "ECDSA server activation commit", [
|
|
939
|
-
"kind",
|
|
940
|
-
"correlationId",
|
|
941
|
-
"activationRequestDigest",
|
|
942
|
-
"serverGeneration",
|
|
943
|
-
"serverActivationReceipt"
|
|
944
|
-
]);
|
|
945
|
-
if (serverActivationRecord.kind !== "ecdsa_server_activation_commit") throw new Error("ECDSA server activation commit kind is invalid");
|
|
946
|
-
const receipt = requireRecord(serverActivationRecord.serverActivationReceipt, "ECDSA server activation receipt");
|
|
947
|
-
requireExactKeys(receipt, "ECDSA server activation receipt", [
|
|
948
|
-
"kind",
|
|
949
|
-
"lifecycleId",
|
|
950
|
-
"activationDigest",
|
|
951
|
-
"activatedAt",
|
|
952
|
-
"protocolReceipt"
|
|
953
|
-
]);
|
|
954
|
-
if (receipt.kind !== "ecdsa_server_activation_receipt") throw new Error("ECDSA server activation receipt kind is invalid");
|
|
955
|
-
const serverActivation = buildEcdsaServerActivationCommit({
|
|
956
|
-
activationBinding,
|
|
957
|
-
serverCommit: {
|
|
958
|
-
correlationId: parseCorrelationId(serverActivationRecord.correlationId),
|
|
959
|
-
activationRequestDigest: parseDigestB64u(serverActivationRecord.activationRequestDigest),
|
|
960
|
-
serverGeneration: parseEcdsaServerGeneration(serverActivationRecord.serverGeneration),
|
|
961
|
-
protocolReceipt: receipt.protocolReceipt
|
|
962
|
-
}
|
|
963
|
-
});
|
|
964
|
-
if (!serverActivationRecordMatches(serverActivation, serverActivationRecord)) throw new Error("ECDSA server activation commit fields are inconsistent");
|
|
965
|
-
const durableMaterial = buildDurableEcdsaMaterialBinding({
|
|
966
|
-
activationBinding,
|
|
967
|
-
serverActivation,
|
|
968
|
-
routerAbEcdsaDerivationNormalSigning: requireRouterAbEcdsaDerivationNormalSigningStateV1(record.router_ab_ecdsa_derivation_normal_signing),
|
|
969
|
-
roleLocalPublicFacts: buildEcdsaRoleLocalPublicFacts(record.role_local_public_facts),
|
|
970
|
-
ciphertextDigest: parseEcdsaCiphertextDigest(record.ciphertext_digest),
|
|
971
|
-
runtimePolicyScope: normalizeRuntimePolicyScope(record.runtime_policy_scope)
|
|
972
|
-
});
|
|
973
|
-
const committedAt = parseIsoTimestamp(record.committed_at);
|
|
974
|
-
return {
|
|
975
|
-
activationBinding,
|
|
976
|
-
serverActivation,
|
|
977
|
-
durableMaterial,
|
|
978
|
-
activeManifest: buildActiveEcdsaCapabilityManifest({
|
|
979
|
-
activationBinding,
|
|
980
|
-
serverActivation,
|
|
981
|
-
registeredPublicFacts: parseRegisteredPublicFacts(record.registered_public_facts),
|
|
982
|
-
durableMaterial,
|
|
983
|
-
committedAt
|
|
984
|
-
}),
|
|
985
|
-
committedAt
|
|
986
|
-
};
|
|
987
|
-
}
|
|
988
107
|
function manifestRowCommon(proof, manifestState) {
|
|
989
|
-
const selector = selectorFromManifest(proof.activeManifest);
|
|
990
108
|
return {
|
|
991
109
|
record_version: MANIFEST_RECORD_VERSION,
|
|
992
110
|
manifest_id: proof.activeManifest.identity.manifestId,
|
|
993
111
|
manifest_revision: proof.activeManifest.identity.manifestRevision,
|
|
994
|
-
|
|
995
|
-
wallet_id: selector.authority.walletId,
|
|
996
|
-
authority_digest: selector.authority.authorityDigest,
|
|
997
|
-
wallet_auth_method_id: selector.authority.walletAuthMethodId,
|
|
112
|
+
...selectorColumns(selectorFromManifest(proof.activeManifest)),
|
|
998
113
|
manifest_state: manifestState
|
|
999
114
|
};
|
|
1000
115
|
}
|
|
@@ -1011,215 +126,6 @@ function storedReplacedManifestRow(previous, replacement) {
|
|
|
1011
126
|
replacement_proof: storedActiveProof(replacement)
|
|
1012
127
|
};
|
|
1013
128
|
}
|
|
1014
|
-
function parseManifestRow(value) {
|
|
1015
|
-
const record = requireRecord(value, "ECDSA capability manifest row");
|
|
1016
|
-
const commonKeys = [
|
|
1017
|
-
"record_version",
|
|
1018
|
-
"manifest_id",
|
|
1019
|
-
"manifest_revision",
|
|
1020
|
-
"capability_ref",
|
|
1021
|
-
"wallet_id",
|
|
1022
|
-
"authority_digest",
|
|
1023
|
-
"wallet_auth_method_id",
|
|
1024
|
-
"manifest_state",
|
|
1025
|
-
"active_proof"
|
|
1026
|
-
];
|
|
1027
|
-
switch (record.manifest_state) {
|
|
1028
|
-
case "active": {
|
|
1029
|
-
requireExactKeys(record, "active ECDSA capability manifest row", commonKeys);
|
|
1030
|
-
const activeProof = parseActiveProof(record.active_proof);
|
|
1031
|
-
const selector = selectorFromManifest(activeProof.activeManifest);
|
|
1032
|
-
assertManifestRowCommon(record, activeProof.activeManifest, selector);
|
|
1033
|
-
return {
|
|
1034
|
-
state: "active",
|
|
1035
|
-
selector,
|
|
1036
|
-
manifest: activeProof.activeManifest,
|
|
1037
|
-
activeProof
|
|
1038
|
-
};
|
|
1039
|
-
}
|
|
1040
|
-
case "replaced": {
|
|
1041
|
-
requireExactKeys(record, "replaced ECDSA capability manifest row", [...commonKeys, "replacement_proof"]);
|
|
1042
|
-
const activeProof = parseActiveProof(record.active_proof);
|
|
1043
|
-
const replacementProof = parseActiveProof(record.replacement_proof);
|
|
1044
|
-
const manifest = buildReplacedEcdsaCapabilityManifest({
|
|
1045
|
-
activeManifest: activeProof.activeManifest,
|
|
1046
|
-
replacementManifest: replacementProof.activeManifest
|
|
1047
|
-
});
|
|
1048
|
-
const selector = selectorFromManifest(activeProof.activeManifest);
|
|
1049
|
-
assertManifestRowCommon(record, activeProof.activeManifest, selector);
|
|
1050
|
-
return {
|
|
1051
|
-
state: "replaced",
|
|
1052
|
-
selector,
|
|
1053
|
-
manifest,
|
|
1054
|
-
activeProof,
|
|
1055
|
-
replacementProof
|
|
1056
|
-
};
|
|
1057
|
-
}
|
|
1058
|
-
default: throw new Error("ECDSA capability manifest row state is invalid");
|
|
1059
|
-
}
|
|
1060
|
-
}
|
|
1061
|
-
function assertManifestRowCommon(record, manifest, selector) {
|
|
1062
|
-
if (record.record_version !== MANIFEST_RECORD_VERSION || parseEcdsaCapabilityManifestId(record.manifest_id) !== manifest.identity.manifestId || parseEcdsaCapabilityManifestRevision(record.manifest_revision) !== manifest.identity.manifestRevision || String(record.capability_ref) !== String(selector.capability) || String(record.wallet_id) !== String(selector.authority.walletId) || String(record.authority_digest) !== String(selector.authority.authorityDigest)) throw new Error("ECDSA capability manifest row identity is inconsistent");
|
|
1063
|
-
}
|
|
1064
|
-
function storedPointerRow(manifest) {
|
|
1065
|
-
const selector = selectorFromManifest(manifest);
|
|
1066
|
-
return {
|
|
1067
|
-
record_version: POINTER_RECORD_VERSION,
|
|
1068
|
-
capability_ref: selector.capability,
|
|
1069
|
-
wallet_id: selector.authority.walletId,
|
|
1070
|
-
authority_digest: selector.authority.authorityDigest,
|
|
1071
|
-
wallet_auth_method_id: selector.authority.walletAuthMethodId,
|
|
1072
|
-
manifest_id: manifest.identity.manifestId,
|
|
1073
|
-
manifest_revision: manifest.identity.manifestRevision
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
1076
|
-
function parsePointerRow(value) {
|
|
1077
|
-
const record = requireRecord(value, "current ECDSA capability pointer");
|
|
1078
|
-
requireExactKeys(record, "current ECDSA capability pointer", [
|
|
1079
|
-
"record_version",
|
|
1080
|
-
"capability_ref",
|
|
1081
|
-
"wallet_id",
|
|
1082
|
-
"authority_digest",
|
|
1083
|
-
"wallet_auth_method_id",
|
|
1084
|
-
"manifest_id",
|
|
1085
|
-
"manifest_revision"
|
|
1086
|
-
]);
|
|
1087
|
-
if (record.record_version !== POINTER_RECORD_VERSION) throw new Error("current ECDSA capability pointer version is invalid");
|
|
1088
|
-
const authority = parseWalletAuthAuthorityRef({
|
|
1089
|
-
kind: "wallet_auth_authority_ref",
|
|
1090
|
-
walletId: record.wallet_id,
|
|
1091
|
-
authorityDigest: record.authority_digest,
|
|
1092
|
-
walletAuthMethodId: record.wallet_auth_method_id
|
|
1093
|
-
});
|
|
1094
|
-
if (!authority) throw new Error("current ECDSA capability pointer authority is invalid");
|
|
1095
|
-
return {
|
|
1096
|
-
selector: {
|
|
1097
|
-
capability: unwrapDomainId(parseCapabilityInstanceRef(record.capability_ref)),
|
|
1098
|
-
authority
|
|
1099
|
-
},
|
|
1100
|
-
manifestId: parseEcdsaCapabilityManifestId(record.manifest_id),
|
|
1101
|
-
manifestRevision: parseEcdsaCapabilityManifestRevision(record.manifest_revision)
|
|
1102
|
-
};
|
|
1103
|
-
}
|
|
1104
|
-
function storedMaterialRow(material, manifest) {
|
|
1105
|
-
const selector = selectorFromManifest(manifest);
|
|
1106
|
-
return {
|
|
1107
|
-
record_version: MATERIAL_RECORD_VERSION,
|
|
1108
|
-
durable_material_ref: material.binding.durableMaterialRef,
|
|
1109
|
-
binding_digest: material.binding.bindingDigest,
|
|
1110
|
-
capability_ref: selector.capability,
|
|
1111
|
-
wallet_id: selector.authority.walletId,
|
|
1112
|
-
authority_digest: selector.authority.authorityDigest,
|
|
1113
|
-
wallet_auth_method_id: selector.authority.walletAuthMethodId,
|
|
1114
|
-
sealing_key_id: material.sealingKeyId,
|
|
1115
|
-
iv: material.iv12B64u,
|
|
1116
|
-
ciphertext: material.ciphertextB64u
|
|
1117
|
-
};
|
|
1118
|
-
}
|
|
1119
|
-
function parseMaterialLocator(value) {
|
|
1120
|
-
const record = requireRecord(value, "ECDSA role-local material row");
|
|
1121
|
-
requireExactKeys(record, "ECDSA role-local material row", [
|
|
1122
|
-
"record_version",
|
|
1123
|
-
"durable_material_ref",
|
|
1124
|
-
"binding_digest",
|
|
1125
|
-
"capability_ref",
|
|
1126
|
-
"wallet_id",
|
|
1127
|
-
"authority_digest",
|
|
1128
|
-
"wallet_auth_method_id",
|
|
1129
|
-
"sealing_key_id",
|
|
1130
|
-
"iv",
|
|
1131
|
-
"ciphertext"
|
|
1132
|
-
]);
|
|
1133
|
-
if (record.record_version !== MATERIAL_RECORD_VERSION) throw new Error("ECDSA role-local material row version is invalid");
|
|
1134
|
-
const authority = parseWalletAuthAuthorityRef({
|
|
1135
|
-
kind: "wallet_auth_authority_ref",
|
|
1136
|
-
walletId: record.wallet_id,
|
|
1137
|
-
authorityDigest: record.authority_digest,
|
|
1138
|
-
walletAuthMethodId: record.wallet_auth_method_id
|
|
1139
|
-
});
|
|
1140
|
-
if (!authority) throw new Error("ECDSA role-local material authority is invalid");
|
|
1141
|
-
return {
|
|
1142
|
-
durableMaterialRef: parseEcdsaRoleLocalDurableMaterialRef(record.durable_material_ref),
|
|
1143
|
-
bindingDigest: parseEcdsaRoleLocalBindingDigest(record.binding_digest),
|
|
1144
|
-
selector: {
|
|
1145
|
-
capability: unwrapDomainId(parseCapabilityInstanceRef(record.capability_ref)),
|
|
1146
|
-
authority
|
|
1147
|
-
}
|
|
1148
|
-
};
|
|
1149
|
-
}
|
|
1150
|
-
function parseMaterialRow(value, activeProof) {
|
|
1151
|
-
const record = requireRecord(value, "ECDSA role-local material row");
|
|
1152
|
-
const locator = parseMaterialLocator(record);
|
|
1153
|
-
const material = buildValidatedEncryptedEcdsaReadyMaterial({
|
|
1154
|
-
binding: activeProof.durableMaterial,
|
|
1155
|
-
sealingKeyId: parseEcdsaMaterialSealingKeyId(record.sealing_key_id),
|
|
1156
|
-
iv12B64u: parseEcdsaIv12B64u(record.iv),
|
|
1157
|
-
ciphertextB64u: parseEcdsaCiphertextB64u(record.ciphertext)
|
|
1158
|
-
});
|
|
1159
|
-
if (locator.durableMaterialRef !== material.binding.durableMaterialRef || locator.bindingDigest !== material.binding.bindingDigest || !selectorsMatch(locator.selector, selectorFromManifest(activeProof.activeManifest))) throw new Error("ECDSA role-local material row binding is inconsistent");
|
|
1160
|
-
return material;
|
|
1161
|
-
}
|
|
1162
|
-
function materialMatchesManifest(material, manifest) {
|
|
1163
|
-
return material.binding.durableMaterialRef === manifest.durableMaterial.durableMaterialRef && material.binding.bindingDigest === manifest.durableMaterial.bindingDigest && material.binding.lifecycleId === manifest.durableMaterial.lifecycleId && material.binding.ciphertextDigest === manifest.durableMaterial.ciphertextDigest && material.binding.activationDigest === manifest.durableMaterial.activationDigest && material.binding.activatedAt === manifest.durableMaterial.activatedAt && mpcMaterialActivationRefsEqual(material.binding.materialActivation, manifest.durableMaterial.materialActivation) && ecdsaRoleLocalMaterialBindingsMatch(material.binding.roleLocalBinding, manifest.durableMaterial.roleLocalBinding);
|
|
1164
|
-
}
|
|
1165
|
-
function storedJournalRow(journal) {
|
|
1166
|
-
const selector = selectorFromJournal(journal);
|
|
1167
|
-
return {
|
|
1168
|
-
record_version: JOURNAL_RECORD_VERSION,
|
|
1169
|
-
journal_id: journal.journalId,
|
|
1170
|
-
capability_ref: selector.capability,
|
|
1171
|
-
wallet_id: selector.authority.walletId,
|
|
1172
|
-
authority_digest: selector.authority.authorityDigest,
|
|
1173
|
-
wallet_auth_method_id: selector.authority.walletAuthMethodId,
|
|
1174
|
-
journal
|
|
1175
|
-
};
|
|
1176
|
-
}
|
|
1177
|
-
function parseJournalRow(value) {
|
|
1178
|
-
const record = requireRecord(value, "ECDSA activation commit journal row");
|
|
1179
|
-
requireExactKeys(record, "ECDSA activation commit journal row", [
|
|
1180
|
-
"record_version",
|
|
1181
|
-
"journal_id",
|
|
1182
|
-
"capability_ref",
|
|
1183
|
-
"wallet_id",
|
|
1184
|
-
"authority_digest",
|
|
1185
|
-
"wallet_auth_method_id",
|
|
1186
|
-
"journal"
|
|
1187
|
-
]);
|
|
1188
|
-
if (record.record_version !== JOURNAL_RECORD_VERSION) throw new Error("ECDSA activation commit journal row version is invalid");
|
|
1189
|
-
const journal = parseJournal(record.journal);
|
|
1190
|
-
const selector = selectorFromJournal(journal);
|
|
1191
|
-
if (parseCorrelationId(record.journal_id) !== journal.journalId || String(record.capability_ref) !== String(selector.capability) || String(record.wallet_id) !== String(selector.authority.walletId) || String(record.authority_digest) !== String(selector.authority.authorityDigest)) throw new Error("ECDSA activation commit journal row identity is inconsistent");
|
|
1192
|
-
return {
|
|
1193
|
-
journal,
|
|
1194
|
-
selector
|
|
1195
|
-
};
|
|
1196
|
-
}
|
|
1197
|
-
function isNonExtractableAesGcmKey(value) {
|
|
1198
|
-
if (typeof CryptoKey === "undefined" || !(value instanceof CryptoKey)) return false;
|
|
1199
|
-
if (value.type !== "secret" || value.extractable || value.algorithm.name !== "AES-GCM") return false;
|
|
1200
|
-
return value.usages.includes("encrypt") && value.usages.includes("decrypt");
|
|
1201
|
-
}
|
|
1202
|
-
function storedSealingKeyRow(keyId, key) {
|
|
1203
|
-
return {
|
|
1204
|
-
record_version: SEALING_KEY_RECORD_VERSION,
|
|
1205
|
-
key_id: keyId,
|
|
1206
|
-
key
|
|
1207
|
-
};
|
|
1208
|
-
}
|
|
1209
|
-
function parseSealingKeyRow(value) {
|
|
1210
|
-
const record = requireRecord(value, "ECDSA material sealing key row");
|
|
1211
|
-
requireExactKeys(record, "ECDSA material sealing key row", [
|
|
1212
|
-
"record_version",
|
|
1213
|
-
"key_id",
|
|
1214
|
-
"key"
|
|
1215
|
-
]);
|
|
1216
|
-
if (record.record_version !== SEALING_KEY_RECORD_VERSION) throw new Error("ECDSA material sealing key row version is invalid");
|
|
1217
|
-
if (!isNonExtractableAesGcmKey(record.key)) throw new Error("ECDSA material sealing key must be a non-extractable AES-GCM key");
|
|
1218
|
-
return {
|
|
1219
|
-
keyId: parseEcdsaMaterialSealingKeyId(record.key_id),
|
|
1220
|
-
key: record.key
|
|
1221
|
-
};
|
|
1222
|
-
}
|
|
1223
129
|
async function prepareImportedWalletCustodyEcdsaContinuity(input) {
|
|
1224
130
|
const serverActivation = buildEcdsaServerActivationCommit({
|
|
1225
131
|
activationBinding: input.activationBinding,
|
|
@@ -1230,10 +136,7 @@ async function prepareImportedWalletCustodyEcdsaContinuity(input) {
|
|
|
1230
136
|
const encrypted = await encryptStateBlob({
|
|
1231
137
|
key: sealingKey,
|
|
1232
138
|
stateBlobB64u: input.readyStateBlobB64u,
|
|
1233
|
-
aadProjection:
|
|
1234
|
-
activationBinding: input.activationBinding,
|
|
1235
|
-
serverActivation
|
|
1236
|
-
})
|
|
139
|
+
aadProjection: readyAadProjectionFor(input.activationBinding, serverActivation)
|
|
1237
140
|
});
|
|
1238
141
|
const durableMaterial = buildDurableEcdsaMaterialBinding({
|
|
1239
142
|
activationBinding: input.activationBinding,
|
|
@@ -1274,7 +177,7 @@ async function persistPreparedImportedWalletCustodyEcdsaContinuityInTransaction(
|
|
|
1274
177
|
const selector = selectorFromManifest(prepared.activeManifest);
|
|
1275
178
|
const pointerStore = context.store(POINTER_STORE);
|
|
1276
179
|
const existingPointer = await pointerStore.get(selectorKey(selector));
|
|
1277
|
-
const activeRows = await context
|
|
180
|
+
const activeRows = await readActiveManifestRows(context, selector);
|
|
1278
181
|
if (existingPointer !== void 0 || activeRows.length !== 0) throw new FinalizationControlError("exact_record_conflict", "ECDSA custody import found an existing active manifest");
|
|
1279
182
|
const activeProof = {
|
|
1280
183
|
activationBinding: prepared.activationBinding,
|
|
@@ -1310,7 +213,7 @@ function assertExpectedPointer(expected, pointerRaw, selector) {
|
|
|
1310
213
|
try {
|
|
1311
214
|
pointer = parsePointerRow(pointerRaw);
|
|
1312
215
|
} catch (error) {
|
|
1313
|
-
throw new FinalizationControlError("corrupt",
|
|
216
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
1314
217
|
}
|
|
1315
218
|
if (!selectorsMatch(pointer.selector, selector) || pointer.manifestId !== expected.manifestId || pointer.manifestRevision !== expected.manifestRevision) throw new FinalizationControlError("exact_record_conflict", "replacement ECDSA activation pointer CAS did not match");
|
|
1316
219
|
return pointer;
|
|
@@ -1318,15 +221,6 @@ function assertExpectedPointer(expected, pointerRaw, selector) {
|
|
|
1318
221
|
}
|
|
1319
222
|
return assertNever(expected);
|
|
1320
223
|
}
|
|
1321
|
-
function errorMessage(error) {
|
|
1322
|
-
return error instanceof Error ? error.message : String(error);
|
|
1323
|
-
}
|
|
1324
|
-
function isConstraintError(error) {
|
|
1325
|
-
return error instanceof DOMException && error.name === "ConstraintError";
|
|
1326
|
-
}
|
|
1327
|
-
function assertNever(value) {
|
|
1328
|
-
throw new Error(`Unexpected ECDSA persistence branch: ${String(value)}`);
|
|
1329
|
-
}
|
|
1330
224
|
async function cancelPreparedActivationInTransaction(preparedJournal, context) {
|
|
1331
225
|
const journalStore = context.store(JOURNAL_STORE);
|
|
1332
226
|
const raw = await journalStore.get(preparedJournal.journalId);
|
|
@@ -1348,11 +242,61 @@ async function cancelPreparedActivationInTransaction(preparedJournal, context) {
|
|
|
1348
242
|
}
|
|
1349
243
|
return assertNever(persisted.journal);
|
|
1350
244
|
}
|
|
1351
|
-
|
|
1352
|
-
return
|
|
245
|
+
function persistPreparedContinuity(manager, prepared) {
|
|
246
|
+
return manager.runTransaction([
|
|
247
|
+
MANIFEST_STORE,
|
|
248
|
+
POINTER_STORE,
|
|
249
|
+
MATERIAL_STORE,
|
|
250
|
+
SEALING_KEY_STORE
|
|
251
|
+
], "readwrite", (context) => persistPreparedImportedWalletCustodyEcdsaContinuityInTransaction(context, prepared));
|
|
1353
252
|
}
|
|
1354
|
-
async function
|
|
1355
|
-
|
|
253
|
+
async function importCommittedActivation(store, input, persist) {
|
|
254
|
+
const serverActivation = buildEcdsaServerActivationCommit({
|
|
255
|
+
activationBinding: input.activationBinding,
|
|
256
|
+
serverCommit: input.serverCommit
|
|
257
|
+
});
|
|
258
|
+
const selector = selectorFromSigner(input.activationBinding.signer);
|
|
259
|
+
const existing = await store.lookup(selector);
|
|
260
|
+
if (existing.kind === "active") {
|
|
261
|
+
if (activeManifestMatchesWalletCustodyImport(existing.manifest, input, serverActivation)) return {
|
|
262
|
+
kind: "committed",
|
|
263
|
+
manifest: existing.manifest,
|
|
264
|
+
material: existing.material
|
|
265
|
+
};
|
|
266
|
+
return {
|
|
267
|
+
kind: "exact_record_conflict",
|
|
268
|
+
selector,
|
|
269
|
+
conflictDigest: await persistenceDigest("custody_import_conflict", selector, "ECDSA custody import conflicts with the active manifest")
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const prepared = await prepareImportedWalletCustodyEcdsaContinuity(input);
|
|
274
|
+
await persist(prepared);
|
|
275
|
+
return {
|
|
276
|
+
kind: "committed",
|
|
277
|
+
manifest: prepared.activeManifest,
|
|
278
|
+
material: prepared.readyMaterial
|
|
279
|
+
};
|
|
280
|
+
} catch (error) {
|
|
281
|
+
if (error instanceof FinalizationControlError || isConstraintError(error)) {
|
|
282
|
+
const replay = await store.lookup(selector);
|
|
283
|
+
if (replay.kind === "active" && activeManifestMatchesWalletCustodyImport(replay.manifest, input, serverActivation)) return {
|
|
284
|
+
kind: "committed",
|
|
285
|
+
manifest: replay.manifest,
|
|
286
|
+
material: replay.material
|
|
287
|
+
};
|
|
288
|
+
return {
|
|
289
|
+
kind: "exact_record_conflict",
|
|
290
|
+
selector,
|
|
291
|
+
conflictDigest: await persistenceDigest("custody_import_conflict", selector, ecdsaManifestErrorMessage(error))
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
kind: "corrupt",
|
|
296
|
+
selector,
|
|
297
|
+
corruptionDigest: await persistenceDigest("custody_import_corrupt", selector, ecdsaManifestErrorMessage(error))
|
|
298
|
+
};
|
|
299
|
+
}
|
|
1356
300
|
}
|
|
1357
301
|
var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
1358
302
|
constructor(manager = seamsWalletDB) {
|
|
@@ -1362,11 +306,11 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1362
306
|
if (!supportsStrictIndexedDbDurability()) return { kind: "persistence_unavailable" };
|
|
1363
307
|
const poolIdentity = parseEcdsaClientPresignPoolIdentity(input.poolIdentity);
|
|
1364
308
|
const durableMaterialRef = parseEcdsaRoleLocalPersistedMaterialRef(input.durableMaterialRef);
|
|
1365
|
-
if (durableMaterialRef
|
|
309
|
+
if (!materialRefMatchesPoolIdentity(durableMaterialRef, poolIdentity)) return { kind: "persistence_unavailable" };
|
|
1366
310
|
if (input.groupPublicKey33.length !== 33 || input.bigR33.length !== 33) return { kind: "persistence_unavailable" };
|
|
1367
311
|
const createdAtMs = parsePresignatureTimestamp(input.createdAtMs, "createdAtMs");
|
|
1368
312
|
const expiresAtMs = parsePresignatureTimestamp(input.expiresAtMs, "expiresAtMs");
|
|
1369
|
-
if (createdAtMs > Date.now() +
|
|
313
|
+
if (createdAtMs > Date.now() + 3e5 || expiresAtMs <= createdAtMs || expiresAtMs > createdAtMs + 7776e6) return { kind: "persistence_unavailable" };
|
|
1370
314
|
const presignatureId = String(input.presignatureId || "").trim();
|
|
1371
315
|
if (!presignatureId || input.plaintext97.length !== 97) return { kind: "persistence_unavailable" };
|
|
1372
316
|
let lookup;
|
|
@@ -1376,7 +320,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1376
320
|
return { kind: "persistence_unavailable" };
|
|
1377
321
|
}
|
|
1378
322
|
if (lookup.kind !== "active") return { kind: "persistence_unavailable" };
|
|
1379
|
-
if (!
|
|
323
|
+
if (!activeMaterialMatchesPresignature(lookup.material, poolIdentity, durableMaterialRef)) return { kind: "persistence_unavailable" };
|
|
1380
324
|
let sealingKey;
|
|
1381
325
|
try {
|
|
1382
326
|
sealingKey = await this.readMaterialSealingKey(lookup.material.sealingKeyId);
|
|
@@ -1433,20 +377,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1433
377
|
};
|
|
1434
378
|
try {
|
|
1435
379
|
const result = await this.manager.runTransaction([PRESIGNATURE_STORE, MATERIAL_STORE], "readwrite", async (context) => {
|
|
1436
|
-
|
|
1437
|
-
await deleteExpiredClientPresignatureRows(context, poolIdentity.walletId, nowMs);
|
|
1438
|
-
const store = context.store(PRESIGNATURE_STORE);
|
|
1439
|
-
const rows = await store.index(SEAMS_WALLET_INDEXES.poolIdentityKey).getAll(row.pool_identity_key);
|
|
1440
|
-
let availableCount = 0;
|
|
1441
|
-
for (const raw of rows) try {
|
|
1442
|
-
const existing = parseSealedAvailableClientPresignatureRow(raw);
|
|
1443
|
-
if (existing.expires_at_ms <= nowMs) await store.delete(existing.record_id);
|
|
1444
|
-
else availableCount += 1;
|
|
1445
|
-
} catch {
|
|
1446
|
-
const malformedRecordId = rawRecordId(raw);
|
|
1447
|
-
if (malformedRecordId) await store.delete(malformedRecordId);
|
|
1448
|
-
}
|
|
1449
|
-
if (availableCount >= 5) return { kind: "capacity_full" };
|
|
380
|
+
if ((await readAvailableClientPresignatureRows(context, poolIdentity, Date.now())).length >= 5) return { kind: "capacity_full" };
|
|
1450
381
|
const materialRow = await context.store(MATERIAL_STORE).get(durableMaterialRef.durableMaterialRef);
|
|
1451
382
|
if (materialRow === void 0) return { kind: "persistence_unavailable" };
|
|
1452
383
|
try {
|
|
@@ -1456,7 +387,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1456
387
|
} catch {
|
|
1457
388
|
return { kind: "persistence_unavailable" };
|
|
1458
389
|
}
|
|
1459
|
-
await store.put(row);
|
|
390
|
+
await context.store(PRESIGNATURE_STORE).put(row);
|
|
1460
391
|
return { kind: "stored" };
|
|
1461
392
|
}, { durability: "strict" });
|
|
1462
393
|
return result.kind === "stored" ? {
|
|
@@ -1473,22 +404,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1473
404
|
const nowMs = Date.now();
|
|
1474
405
|
try {
|
|
1475
406
|
return await this.manager.runTransaction([PRESIGNATURE_STORE], "readwrite", async (context) => {
|
|
1476
|
-
await
|
|
1477
|
-
const store = context.store(PRESIGNATURE_STORE);
|
|
1478
|
-
const rows = await store.index(SEAMS_WALLET_INDEXES.poolIdentityKey).getAll(ecdsaClientPresignPoolKey(poolIdentity));
|
|
1479
|
-
const metadata = [];
|
|
1480
|
-
for (const raw of rows) try {
|
|
1481
|
-
const row = parseSealedAvailableClientPresignatureRow(raw);
|
|
1482
|
-
if (row.expires_at_ms <= nowMs) {
|
|
1483
|
-
await store.delete(row.record_id);
|
|
1484
|
-
continue;
|
|
1485
|
-
}
|
|
1486
|
-
metadata.push(metadataFromPresignatureRow(row));
|
|
1487
|
-
} catch {
|
|
1488
|
-
const malformedRecordId = rawRecordId(raw);
|
|
1489
|
-
if (malformedRecordId) await store.delete(malformedRecordId);
|
|
1490
|
-
}
|
|
1491
|
-
return metadata.sort((left, right) => left.createdAtMs - right.createdAtMs);
|
|
407
|
+
return (await readAvailableClientPresignatureRows(context, poolIdentity, nowMs)).map(metadataFromPresignatureRow).sort((left, right) => left.createdAtMs - right.createdAtMs);
|
|
1492
408
|
});
|
|
1493
409
|
} catch {
|
|
1494
410
|
return [];
|
|
@@ -1537,7 +453,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1537
453
|
} catch {
|
|
1538
454
|
return { kind: "persistence_unavailable" };
|
|
1539
455
|
}
|
|
1540
|
-
if (lookup.kind !== "active" || !
|
|
456
|
+
if (lookup.kind !== "active" || !activeMaterialMatchesPresignature(lookup.material, poolIdentity, row.durable_material_ref) || lookup.material.sealingKeyId !== row.sealed.sealing_key_id) return { kind: "binding_rejected" };
|
|
1541
457
|
let sealingKey;
|
|
1542
458
|
try {
|
|
1543
459
|
sealingKey = await this.readMaterialSealingKey(row.sealed.sealing_key_id);
|
|
@@ -1578,23 +494,12 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1578
494
|
case "wallet": {
|
|
1579
495
|
const walletId = String(target.walletId).trim();
|
|
1580
496
|
if (!walletId) throw new Error("ECDSA durable presignature wallet id is required");
|
|
1581
|
-
|
|
1582
|
-
while (cursor) {
|
|
1583
|
-
await cursor.delete();
|
|
1584
|
-
deletedCount += 1;
|
|
1585
|
-
cursor = await cursor.continue();
|
|
1586
|
-
}
|
|
497
|
+
deletedCount = await deleteCursorRows(await store.index(SEAMS_WALLET_INDEXES.walletId).openCursor(walletId));
|
|
1587
498
|
break;
|
|
1588
499
|
}
|
|
1589
|
-
case "all":
|
|
1590
|
-
|
|
1591
|
-
while (cursor) {
|
|
1592
|
-
await cursor.delete();
|
|
1593
|
-
deletedCount += 1;
|
|
1594
|
-
cursor = await cursor.continue();
|
|
1595
|
-
}
|
|
500
|
+
case "all":
|
|
501
|
+
deletedCount = await deleteCursorRows(await store.openCursor());
|
|
1596
502
|
break;
|
|
1597
|
-
}
|
|
1598
503
|
}
|
|
1599
504
|
return deletedCount;
|
|
1600
505
|
});
|
|
@@ -1647,10 +552,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1647
552
|
for (const row of rows) {
|
|
1648
553
|
const signer = parseJournalRow(row).journal.candidate.activationBinding.signer;
|
|
1649
554
|
if (signer.authority.walletId !== parsedWalletId.value) continue;
|
|
1650
|
-
selectors.push(
|
|
1651
|
-
capability: signer.capability,
|
|
1652
|
-
authority: signer.authority
|
|
1653
|
-
});
|
|
555
|
+
selectors.push(selectorFromSigner(signer));
|
|
1654
556
|
}
|
|
1655
557
|
} catch {
|
|
1656
558
|
return { kind: "invalid_current_state" };
|
|
@@ -1661,10 +563,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1661
563
|
};
|
|
1662
564
|
}
|
|
1663
565
|
async prepareActivation(input) {
|
|
1664
|
-
const selector =
|
|
1665
|
-
capability: input.activationBinding.signer.capability,
|
|
1666
|
-
authority: input.activationBinding.signer.authority
|
|
1667
|
-
};
|
|
566
|
+
const selector = selectorFromSigner(input.activationBinding.signer);
|
|
1668
567
|
try {
|
|
1669
568
|
const keyId = parseEcdsaMaterialSealingKeyId(secureRandomId("ecdsa-material-key", 32, "ECDSA activation material sealing key"));
|
|
1670
569
|
const key = await generateMaterialSealingKey();
|
|
@@ -1691,13 +590,10 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1691
590
|
journal
|
|
1692
591
|
};
|
|
1693
592
|
} catch (error) {
|
|
1694
|
-
if (isConstraintError(error)) return
|
|
1695
|
-
kind: "exact_record_conflict",
|
|
1696
|
-
conflictDigest: await persistenceDigest("journal_constraint_conflict", selector, errorMessage(error))
|
|
1697
|
-
};
|
|
593
|
+
if (isConstraintError(error)) return await journalConstraintConflict(selector, error);
|
|
1698
594
|
if (error instanceof DOMException && error.name === "OperationError") return {
|
|
1699
595
|
kind: "corrupt",
|
|
1700
|
-
corruptionDigest: await persistenceDigest("journal_encryption_failed", selector,
|
|
596
|
+
corruptionDigest: await persistenceDigest("journal_encryption_failed", selector, ecdsaManifestErrorMessage(error))
|
|
1701
597
|
};
|
|
1702
598
|
if (error instanceof Error && !(error instanceof DOMException)) return {
|
|
1703
599
|
kind: "corrupt",
|
|
@@ -1716,7 +612,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1716
612
|
} catch (error) {
|
|
1717
613
|
return {
|
|
1718
614
|
kind: "corrupt",
|
|
1719
|
-
corruptionDigest: await persistenceDigest("server_activation_commit_corrupt", selectorFromJournal(input.preparedJournal),
|
|
615
|
+
corruptionDigest: await persistenceDigest("server_activation_commit_corrupt", selectorFromJournal(input.preparedJournal), ecdsaManifestErrorMessage(error))
|
|
1720
616
|
};
|
|
1721
617
|
}
|
|
1722
618
|
return await this.putActivationJournal(committedJournal);
|
|
@@ -1729,7 +625,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1729
625
|
} catch (error) {
|
|
1730
626
|
return {
|
|
1731
627
|
kind: "corrupt",
|
|
1732
|
-
corruptionDigest: await persistenceDigest("journal_input_corrupt", selectorFromJournal(journalInput),
|
|
628
|
+
corruptionDigest: await persistenceDigest("journal_input_corrupt", selectorFromJournal(journalInput), ecdsaManifestErrorMessage(error))
|
|
1733
629
|
};
|
|
1734
630
|
}
|
|
1735
631
|
const selector = selectorFromJournal(journal);
|
|
@@ -1748,7 +644,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1748
644
|
try {
|
|
1749
645
|
parseSealingKeyRow(sealingKeyRaw);
|
|
1750
646
|
} catch (error) {
|
|
1751
|
-
throw new FinalizationControlError("corrupt",
|
|
647
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
1752
648
|
}
|
|
1753
649
|
const journalStore = context.store(JOURNAL_STORE);
|
|
1754
650
|
const existingRaw = await journalStore.get(journal.journalId);
|
|
@@ -1757,7 +653,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1757
653
|
try {
|
|
1758
654
|
existing = parseJournalRow(existingRaw);
|
|
1759
655
|
} catch (error) {
|
|
1760
|
-
throw new FinalizationControlError("corrupt",
|
|
656
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
1761
657
|
}
|
|
1762
658
|
if (!selectorsMatch(existing.selector, selector) || existing.journal.kind === "activation_prepared" && !ecdsaActivationCommitJournalsMatch(existing.journal, preparedJournalProjection(journal)) || existing.journal.kind === "server_activation_committed" && !ecdsaActivationCommitJournalsMatch(existing.journal, journal)) throw new FinalizationControlError("exact_record_conflict", "ECDSA activation journal conflicts with its existing correlation");
|
|
1763
659
|
await journalStore.put(storedJournalRow(journal));
|
|
@@ -1777,13 +673,10 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1777
673
|
conflictDigest: digest
|
|
1778
674
|
};
|
|
1779
675
|
}
|
|
1780
|
-
if (isConstraintError(error)) return
|
|
1781
|
-
kind: "exact_record_conflict",
|
|
1782
|
-
conflictDigest: await persistenceDigest("journal_constraint_conflict", selector, errorMessage(error))
|
|
1783
|
-
};
|
|
676
|
+
if (isConstraintError(error)) return await journalConstraintConflict(selector, error);
|
|
1784
677
|
if (error instanceof DOMException && error.name === "OperationError") return {
|
|
1785
678
|
kind: "corrupt",
|
|
1786
|
-
corruptionDigest: await persistenceDigest("journal_ciphertext_corrupt", selector,
|
|
679
|
+
corruptionDigest: await persistenceDigest("journal_ciphertext_corrupt", selector, ecdsaManifestErrorMessage(error))
|
|
1787
680
|
};
|
|
1788
681
|
return {
|
|
1789
682
|
kind: "persistence_unavailable",
|
|
@@ -1945,7 +838,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
1945
838
|
const lookup = await this.lookup(selector);
|
|
1946
839
|
switch (lookup.kind) {
|
|
1947
840
|
case "active":
|
|
1948
|
-
if (
|
|
841
|
+
if (activeLookupUsesMaterialActivation(lookup, materialActivation)) exact.push(lookup);
|
|
1949
842
|
break;
|
|
1950
843
|
case "retired": break;
|
|
1951
844
|
case "missing": return {
|
|
@@ -2019,7 +912,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2019
912
|
const lookup = await this.lookup(locator.selector);
|
|
2020
913
|
switch (lookup.kind) {
|
|
2021
914
|
case "active":
|
|
2022
|
-
if (lookup.manifest.durableMaterial.durableMaterialRef !== materialRef.durableMaterialRef || lookup.manifest.durableMaterial.bindingDigest !== materialRef.bindingDigest || !
|
|
915
|
+
if (lookup.manifest.durableMaterial.durableMaterialRef !== materialRef.durableMaterialRef || lookup.manifest.durableMaterial.bindingDigest !== materialRef.bindingDigest || !activeLookupUsesMaterialActivation(lookup, materialRef.materialActivation)) return {
|
|
2023
916
|
kind: "exact_binding_mismatch",
|
|
2024
917
|
capability
|
|
2025
918
|
};
|
|
@@ -2114,7 +1007,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2114
1007
|
return {
|
|
2115
1008
|
kind: "corrupt",
|
|
2116
1009
|
selector,
|
|
2117
|
-
corruptionDigest: await persistenceDigest("active_material_open_corrupt", selector,
|
|
1010
|
+
corruptionDigest: await persistenceDigest("active_material_open_corrupt", selector, ecdsaManifestErrorMessage(error))
|
|
2118
1011
|
};
|
|
2119
1012
|
}
|
|
2120
1013
|
}
|
|
@@ -2125,28 +1018,9 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2125
1018
|
} catch {
|
|
2126
1019
|
return { kind: "corrupt" };
|
|
2127
1020
|
}
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
switch (opened.kind) {
|
|
2132
|
-
case "active": return opened;
|
|
2133
|
-
case "missing":
|
|
2134
|
-
case "retired": return { kind: "missing" };
|
|
2135
|
-
case "exact_binding_mismatch": return { kind: "binding_mismatch" };
|
|
2136
|
-
case "exact_record_conflict":
|
|
2137
|
-
case "corrupt": return { kind: "corrupt" };
|
|
2138
|
-
case "persistence_unavailable": return { kind: "persistence_unavailable" };
|
|
2139
|
-
}
|
|
2140
|
-
return assertNever(opened);
|
|
2141
|
-
}
|
|
2142
|
-
case "missing":
|
|
2143
|
-
case "retired": return { kind: "missing" };
|
|
2144
|
-
case "exact_binding_mismatch": return { kind: "binding_mismatch" };
|
|
2145
|
-
case "exact_record_conflict":
|
|
2146
|
-
case "corrupt": return { kind: "corrupt" };
|
|
2147
|
-
case "persistence_unavailable": return { kind: "persistence_unavailable" };
|
|
2148
|
-
}
|
|
2149
|
-
return assertNever(lookup);
|
|
1021
|
+
if (lookup.kind !== "active") return materialRefOpenFailure(lookup);
|
|
1022
|
+
const opened = await this.openActiveMaterialLookup(lookup);
|
|
1023
|
+
return opened.kind === "active" ? opened : materialRefOpenFailure(opened);
|
|
2150
1024
|
}
|
|
2151
1025
|
async sealAndFinalizeActivation(input) {
|
|
2152
1026
|
const selector = selectorFromJournal(input.committedJournal);
|
|
@@ -2190,89 +1064,15 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2190
1064
|
return {
|
|
2191
1065
|
kind: "corrupt",
|
|
2192
1066
|
selector,
|
|
2193
|
-
corruptionDigest: await persistenceDigest("activation_seal_corrupt", selector,
|
|
1067
|
+
corruptionDigest: await persistenceDigest("activation_seal_corrupt", selector, ecdsaManifestErrorMessage(error))
|
|
2194
1068
|
};
|
|
2195
1069
|
}
|
|
2196
1070
|
}
|
|
2197
1071
|
async importCommittedWalletCustodyActivation(input) {
|
|
2198
|
-
|
|
2199
|
-
activationBinding: input.activationBinding,
|
|
2200
|
-
serverCommit: input.serverCommit
|
|
2201
|
-
});
|
|
2202
|
-
const selector = {
|
|
2203
|
-
capability: input.activationBinding.signer.capability,
|
|
2204
|
-
authority: input.activationBinding.signer.authority
|
|
2205
|
-
};
|
|
2206
|
-
const existing = await this.lookup(selector);
|
|
2207
|
-
if (existing.kind === "active") {
|
|
2208
|
-
if (activeManifestMatchesWalletCustodyImport({
|
|
2209
|
-
manifest: existing.manifest,
|
|
2210
|
-
activationBinding: input.activationBinding,
|
|
2211
|
-
serverActivation,
|
|
2212
|
-
registeredPublicFacts: input.registeredPublicFacts,
|
|
2213
|
-
roleLocalPublicFacts: input.roleLocalPublicFacts,
|
|
2214
|
-
routerAbEcdsaDerivationNormalSigning: input.routerAbEcdsaDerivationNormalSigning,
|
|
2215
|
-
runtimePolicyScope: input.runtimePolicyScope
|
|
2216
|
-
})) return {
|
|
2217
|
-
kind: "committed",
|
|
2218
|
-
manifest: existing.manifest,
|
|
2219
|
-
material: existing.material
|
|
2220
|
-
};
|
|
2221
|
-
return {
|
|
2222
|
-
kind: "exact_record_conflict",
|
|
2223
|
-
selector,
|
|
2224
|
-
conflictDigest: await persistenceDigest("custody_import_conflict", selector, "ECDSA custody import conflicts with the active manifest")
|
|
2225
|
-
};
|
|
2226
|
-
}
|
|
2227
|
-
try {
|
|
2228
|
-
const prepared = await prepareImportedWalletCustodyEcdsaContinuity(input);
|
|
2229
|
-
await this.manager.runTransaction([
|
|
2230
|
-
MANIFEST_STORE,
|
|
2231
|
-
POINTER_STORE,
|
|
2232
|
-
MATERIAL_STORE,
|
|
2233
|
-
SEALING_KEY_STORE
|
|
2234
|
-
], "readwrite", (context) => persistPreparedImportedWalletCustodyEcdsaContinuityInTransaction(context, prepared));
|
|
2235
|
-
return {
|
|
2236
|
-
kind: "committed",
|
|
2237
|
-
manifest: prepared.activeManifest,
|
|
2238
|
-
material: prepared.readyMaterial
|
|
2239
|
-
};
|
|
2240
|
-
} catch (error) {
|
|
2241
|
-
if (error instanceof FinalizationControlError || isConstraintError(error)) {
|
|
2242
|
-
const replay = await this.lookup(selector);
|
|
2243
|
-
if (replay.kind === "active" && activeManifestMatchesWalletCustodyImport({
|
|
2244
|
-
manifest: replay.manifest,
|
|
2245
|
-
activationBinding: input.activationBinding,
|
|
2246
|
-
serverActivation,
|
|
2247
|
-
registeredPublicFacts: input.registeredPublicFacts,
|
|
2248
|
-
roleLocalPublicFacts: input.roleLocalPublicFacts,
|
|
2249
|
-
routerAbEcdsaDerivationNormalSigning: input.routerAbEcdsaDerivationNormalSigning,
|
|
2250
|
-
runtimePolicyScope: input.runtimePolicyScope
|
|
2251
|
-
})) return {
|
|
2252
|
-
kind: "committed",
|
|
2253
|
-
manifest: replay.manifest,
|
|
2254
|
-
material: replay.material
|
|
2255
|
-
};
|
|
2256
|
-
return {
|
|
2257
|
-
kind: "exact_record_conflict",
|
|
2258
|
-
selector,
|
|
2259
|
-
conflictDigest: await persistenceDigest("custody_import_conflict", selector, errorMessage(error))
|
|
2260
|
-
};
|
|
2261
|
-
}
|
|
2262
|
-
return {
|
|
2263
|
-
kind: "corrupt",
|
|
2264
|
-
selector,
|
|
2265
|
-
corruptionDigest: await persistenceDigest("custody_import_corrupt", selector, errorMessage(error))
|
|
2266
|
-
};
|
|
2267
|
-
}
|
|
1072
|
+
return await importCommittedActivation(this, input, (prepared) => persistPreparedContinuity(this.manager, prepared));
|
|
2268
1073
|
}
|
|
2269
1074
|
async persistPreparedWalletCustodyEcdsaContinuity(prepared) {
|
|
2270
|
-
await this.manager
|
|
2271
|
-
MANIFEST_STORE,
|
|
2272
|
-
POINTER_STORE,
|
|
2273
|
-
MATERIAL_STORE,
|
|
2274
|
-
SEALING_KEY_STORE
|
|
2275
|
-
], "readwrite", (context) => persistPreparedImportedWalletCustodyEcdsaContinuityInTransaction(context, prepared));
|
|
1075
|
+
await persistPreparedContinuity(this.manager, prepared);
|
|
2276
1076
|
}
|
|
2277
1077
|
async readMaterialSealingKey(keyIdInput) {
|
|
2278
1078
|
const keyId = parseEcdsaMaterialSealingKeyId(keyIdInput);
|
|
@@ -2291,7 +1091,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2291
1091
|
return {
|
|
2292
1092
|
kind: "corrupt",
|
|
2293
1093
|
selector,
|
|
2294
|
-
corruptionDigest: await persistenceDigest("finalization_input_corrupt", selector,
|
|
1094
|
+
corruptionDigest: await persistenceDigest("finalization_input_corrupt", selector, ecdsaManifestErrorMessage(error))
|
|
2295
1095
|
};
|
|
2296
1096
|
}
|
|
2297
1097
|
const selector = selectorFromManifest(activeProof.activeManifest);
|
|
@@ -2336,7 +1136,7 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2336
1136
|
if (isConstraintError(error)) return {
|
|
2337
1137
|
kind: "exact_record_conflict",
|
|
2338
1138
|
selector,
|
|
2339
|
-
conflictDigest: await persistenceDigest("finalization_constraint_conflict", selector,
|
|
1139
|
+
conflictDigest: await persistenceDigest("finalization_constraint_conflict", selector, ecdsaManifestErrorMessage(error))
|
|
2340
1140
|
};
|
|
2341
1141
|
return {
|
|
2342
1142
|
kind: "persistence_unavailable",
|
|
@@ -2346,405 +1146,6 @@ var IndexedDbEcdsaCapabilityManifestStore = class {
|
|
|
2346
1146
|
}
|
|
2347
1147
|
}
|
|
2348
1148
|
};
|
|
2349
|
-
function buildWalletCustodyEcdsaContinuityImportInput(input) {
|
|
2350
|
-
const authority = parseWalletAuthAuthorityRef(input.authority);
|
|
2351
|
-
if (!authority || String(authority.walletId) !== String(input.walletId)) throw new Error("ECDSA custody import authority is invalid");
|
|
2352
|
-
const publicCapability = parseRouterAbEcdsaDerivationPublicCapabilityV1(input.publicCapability);
|
|
2353
|
-
const receipt = parseRouterAbEcdsaRegistrationActivationReceiptV1(input.activationReceipt);
|
|
2354
|
-
const materialActivation = routerAbMpcMaterialActivationRefFromWire(receipt.ecdsa_activation.material_activation);
|
|
2355
|
-
if (!mpcMaterialActivationRefsEqual(materialActivation, routerAbMpcMaterialActivationRefFromWire(publicCapability.material_activation))) throw new Error("ECDSA custody continuity changed the material activation");
|
|
2356
|
-
const participantIds = [toParticipantId(input.participantIds[0]), toParticipantId(input.participantIds[1])];
|
|
2357
|
-
const roleLocalBinding = buildEcdsaRoleLocalMaterialBinding({
|
|
2358
|
-
keyHandle: parseEcdsaKeyHandle(input.keyHandle),
|
|
2359
|
-
ecdsaThresholdKeyId: parseEcdsaThresholdKeyId(input.ecdsaThresholdKeyId),
|
|
2360
|
-
clientVerifyingPublicKey33B64u: parseEcdsaClientVerifyingPublicKey33B64u(input.publicFacts.derivationClientSharePublicKey33B64u),
|
|
2361
|
-
participantIds,
|
|
2362
|
-
relayerKeyId: parseEcdsaRelayerKeyId(input.relayerKeyId)
|
|
2363
|
-
});
|
|
2364
|
-
const signer = buildPreparedEvmFamilySigner({
|
|
2365
|
-
capability: materialActivation.capability,
|
|
2366
|
-
signerId: parseEvmFamilyEcdsaSignerId(secureRandomId("ecdsa-signer", 32, "ECDSA custody signer identities")),
|
|
2367
|
-
authority,
|
|
2368
|
-
scope: buildEcdsaCapabilityScope({ targetMemberships: input.chainTargets }),
|
|
2369
|
-
materialOwner: materialActivation.materialOwner,
|
|
2370
|
-
signingRootId: parseSdkEcdsaDerivationSigningRootId(input.signingRootId),
|
|
2371
|
-
signingRootVersion: parseSdkEcdsaDerivationSigningRootVersion(input.signingRootVersion)
|
|
2372
|
-
});
|
|
2373
|
-
const activationBinding = buildEcdsaActivationBinding({
|
|
2374
|
-
targetManifest: buildEcdsaManifestIdentity({
|
|
2375
|
-
manifestId: parseEcdsaCapabilityManifestId(secureRandomId("ecdsa-manifest", 32, "ECDSA custody manifest identities")),
|
|
2376
|
-
manifestRevision: parseEcdsaCapabilityManifestRevision(1)
|
|
2377
|
-
}),
|
|
2378
|
-
signer,
|
|
2379
|
-
roleLocalBinding,
|
|
2380
|
-
bindingDigest: parseEcdsaRoleLocalBindingDigest(input.publicFacts.contextBinding32B64u),
|
|
2381
|
-
durableMaterialRef: parseEcdsaRoleLocalDurableMaterialRef(secureRandomId("ecdsa-role-local-material", 32, "ECDSA custody material identities"))
|
|
2382
|
-
});
|
|
2383
|
-
const ethereumAddress = input.publicFacts.ethereumAddress;
|
|
2384
|
-
const registeredPublicFacts = buildVerifiedEcdsaPublicFacts({
|
|
2385
|
-
keyHandle: toEvmFamilyEcdsaKeyHandle(input.keyHandle),
|
|
2386
|
-
publicKeyB64u: input.publicFacts.groupPublicKey33B64u,
|
|
2387
|
-
participantIds,
|
|
2388
|
-
thresholdOwnerAddress: ethereumAddress
|
|
2389
|
-
});
|
|
2390
|
-
const roleLocalPublicFacts = buildEcdsaRoleLocalPublicFacts({
|
|
2391
|
-
walletId: authority.walletId,
|
|
2392
|
-
chainTarget: input.chainTargets[0],
|
|
2393
|
-
keyHandle: roleLocalBinding.keyHandle,
|
|
2394
|
-
ecdsaThresholdKeyId: roleLocalBinding.ecdsaThresholdKeyId,
|
|
2395
|
-
signingRootId: signer.signingRootId,
|
|
2396
|
-
signingRootVersion: signer.signingRootVersion,
|
|
2397
|
-
applicationBindingDigestB64u: publicCapability.context.application_binding_digest_b64u,
|
|
2398
|
-
clientParticipantId: participantIds[0],
|
|
2399
|
-
relayerParticipantId: participantIds[1],
|
|
2400
|
-
participantIds,
|
|
2401
|
-
contextBinding32B64u: input.publicFacts.contextBinding32B64u,
|
|
2402
|
-
derivationClientSharePublicKey33B64u: input.publicFacts.derivationClientSharePublicKey33B64u,
|
|
2403
|
-
relayerPublicKey33B64u: input.publicFacts.relayerPublicKey33B64u,
|
|
2404
|
-
groupPublicKey33B64u: input.publicFacts.groupPublicKey33B64u,
|
|
2405
|
-
ethereumAddress,
|
|
2406
|
-
publicCapability
|
|
2407
|
-
});
|
|
2408
|
-
const normalSigning = {
|
|
2409
|
-
kind: "router_ab_ecdsa_derivation_normal_signing_v1",
|
|
2410
|
-
scope: {
|
|
2411
|
-
wallet_id: String(authority.walletId),
|
|
2412
|
-
ecdsa_threshold_key_id: String(roleLocalBinding.ecdsaThresholdKeyId),
|
|
2413
|
-
signing_root_id: String(signer.signingRootId),
|
|
2414
|
-
signing_root_version: String(signer.signingRootVersion),
|
|
2415
|
-
context: receipt.ecdsa_activation.context,
|
|
2416
|
-
public_identity: receipt.ecdsa_activation.public_identity,
|
|
2417
|
-
material_activation: receipt.ecdsa_activation.material_activation,
|
|
2418
|
-
signing_worker: receipt.ecdsa_activation.signing_worker,
|
|
2419
|
-
activation_epoch: receipt.ecdsa_activation.activation_epoch
|
|
2420
|
-
}
|
|
2421
|
-
};
|
|
2422
|
-
return {
|
|
2423
|
-
activationBinding,
|
|
2424
|
-
serverCommit: {
|
|
2425
|
-
correlationId: receipt.activation_correlation_id,
|
|
2426
|
-
activationRequestDigest: parseDigestB64u(base64UrlEncode(Uint8Array.from(receipt.activation_request_digest.bytes))),
|
|
2427
|
-
serverGeneration: receipt.server_generation,
|
|
2428
|
-
protocolReceipt: receipt
|
|
2429
|
-
},
|
|
2430
|
-
readyStateBlobB64u: input.readyStateBlobB64u,
|
|
2431
|
-
registeredPublicFacts,
|
|
2432
|
-
roleLocalPublicFacts,
|
|
2433
|
-
routerAbEcdsaDerivationNormalSigning: normalSigning,
|
|
2434
|
-
runtimePolicyScope: normalizeRuntimePolicyScope(input.runtimePolicyScope),
|
|
2435
|
-
committedAt: parseIsoTimestamp(new Date(receipt.ecdsa_activation.activated_at_ms).toISOString())
|
|
2436
|
-
};
|
|
2437
|
-
}
|
|
2438
|
-
async function prepareWalletCustodyEcdsaContinuity(input) {
|
|
2439
|
-
return prepareImportedWalletCustodyEcdsaContinuity(buildWalletCustodyEcdsaContinuityImportInput(input));
|
|
2440
|
-
}
|
|
2441
|
-
async function importWalletCustodyEcdsaContinuity(input) {
|
|
2442
|
-
const preparedInput = buildWalletCustodyEcdsaContinuityImportInput(input);
|
|
2443
|
-
const serverActivation = buildEcdsaServerActivationCommit({
|
|
2444
|
-
activationBinding: preparedInput.activationBinding,
|
|
2445
|
-
serverCommit: preparedInput.serverCommit
|
|
2446
|
-
});
|
|
2447
|
-
const selector = {
|
|
2448
|
-
capability: preparedInput.activationBinding.signer.capability,
|
|
2449
|
-
authority: preparedInput.activationBinding.signer.authority
|
|
2450
|
-
};
|
|
2451
|
-
const existing = await input.store.lookup(selector);
|
|
2452
|
-
if (existing.kind === "active") {
|
|
2453
|
-
if (activeManifestMatchesWalletCustodyImport({
|
|
2454
|
-
manifest: existing.manifest,
|
|
2455
|
-
activationBinding: preparedInput.activationBinding,
|
|
2456
|
-
serverActivation,
|
|
2457
|
-
registeredPublicFacts: preparedInput.registeredPublicFacts,
|
|
2458
|
-
roleLocalPublicFacts: preparedInput.roleLocalPublicFacts,
|
|
2459
|
-
routerAbEcdsaDerivationNormalSigning: preparedInput.routerAbEcdsaDerivationNormalSigning,
|
|
2460
|
-
runtimePolicyScope: preparedInput.runtimePolicyScope
|
|
2461
|
-
})) return {
|
|
2462
|
-
kind: "committed",
|
|
2463
|
-
manifest: existing.manifest,
|
|
2464
|
-
material: existing.material
|
|
2465
|
-
};
|
|
2466
|
-
return {
|
|
2467
|
-
kind: "exact_record_conflict",
|
|
2468
|
-
selector,
|
|
2469
|
-
conflictDigest: await persistenceDigest("custody_import_conflict", selector, "ECDSA custody import conflicts with the active manifest")
|
|
2470
|
-
};
|
|
2471
|
-
}
|
|
2472
|
-
try {
|
|
2473
|
-
const prepared = await prepareImportedWalletCustodyEcdsaContinuity(preparedInput);
|
|
2474
|
-
await input.store.persistPreparedWalletCustodyEcdsaContinuity(prepared);
|
|
2475
|
-
return {
|
|
2476
|
-
kind: "committed",
|
|
2477
|
-
manifest: prepared.activeManifest,
|
|
2478
|
-
material: prepared.readyMaterial
|
|
2479
|
-
};
|
|
2480
|
-
} catch (error) {
|
|
2481
|
-
if (error instanceof FinalizationControlError || isConstraintError(error)) {
|
|
2482
|
-
const replay = await input.store.lookup(selector);
|
|
2483
|
-
if (replay.kind === "active" && activeManifestMatchesWalletCustodyImport({
|
|
2484
|
-
manifest: replay.manifest,
|
|
2485
|
-
activationBinding: preparedInput.activationBinding,
|
|
2486
|
-
serverActivation,
|
|
2487
|
-
registeredPublicFacts: preparedInput.registeredPublicFacts,
|
|
2488
|
-
roleLocalPublicFacts: preparedInput.roleLocalPublicFacts,
|
|
2489
|
-
routerAbEcdsaDerivationNormalSigning: preparedInput.routerAbEcdsaDerivationNormalSigning,
|
|
2490
|
-
runtimePolicyScope: preparedInput.runtimePolicyScope
|
|
2491
|
-
})) return {
|
|
2492
|
-
kind: "committed",
|
|
2493
|
-
manifest: replay.manifest,
|
|
2494
|
-
material: replay.material
|
|
2495
|
-
};
|
|
2496
|
-
return {
|
|
2497
|
-
kind: "exact_record_conflict",
|
|
2498
|
-
selector,
|
|
2499
|
-
conflictDigest: await persistenceDigest("custody_import_conflict", selector, errorMessage(error))
|
|
2500
|
-
};
|
|
2501
|
-
}
|
|
2502
|
-
return {
|
|
2503
|
-
kind: "corrupt",
|
|
2504
|
-
selector,
|
|
2505
|
-
corruptionDigest: await persistenceDigest("custody_import_corrupt", selector, errorMessage(error))
|
|
2506
|
-
};
|
|
2507
|
-
}
|
|
2508
|
-
}
|
|
2509
|
-
async function assertSharedWalletAuthorityMembership(input) {
|
|
2510
|
-
const repositories = new SeamsWalletRepositories(seamsWalletDB);
|
|
2511
|
-
for (const walletAuthMethodId of input.walletAuthMethodIds) {
|
|
2512
|
-
const authMethod = await repositories.getWalletAuthMethodV2(String(walletAuthMethodId));
|
|
2513
|
-
if (!authMethod || authMethod.status !== "active" || authMethod.walletId !== input.walletId || authMethod.walletAuthorityId !== input.walletAuthorityId) throw new Error(`ECDSA custody continuity method ${String(walletAuthMethodId)} is not an active member of the wallet authority`);
|
|
2514
|
-
}
|
|
2515
|
-
}
|
|
2516
|
-
/**
|
|
2517
|
-
* R109C: give an added auth method its own encrypted access projection over the
|
|
2518
|
-
* activation the wallet already has. The activation is not re-created and the
|
|
2519
|
-
* source credential's authority is not widened; only a second method-bound
|
|
2520
|
-
* record over the same material appears.
|
|
2521
|
-
*
|
|
2522
|
-
* The membership check is the whole safety argument. Copying access to a method
|
|
2523
|
-
* on another wallet authority would hand that credential custody it was never
|
|
2524
|
-
* granted, so both methods are read back and required to be active members of
|
|
2525
|
-
* the exact same authority before anything is opened.
|
|
2526
|
-
*/
|
|
2527
|
-
async function copyWalletCustodyEcdsaContinuityToAuthMethod(input) {
|
|
2528
|
-
if (input.targetAuthority.walletId !== input.walletId || input.targetAuthority.walletAuthMethodId === input.sourceWalletAuthMethodId) throw new Error("ECDSA custody continuity target is invalid");
|
|
2529
|
-
await assertSharedWalletAuthorityMembership({
|
|
2530
|
-
walletId: input.walletId,
|
|
2531
|
-
walletAuthorityId: input.walletAuthorityId,
|
|
2532
|
-
walletAuthMethodIds: [input.sourceWalletAuthMethodId, input.targetAuthority.walletAuthMethodId]
|
|
2533
|
-
});
|
|
2534
|
-
const store = new IndexedDbEcdsaCapabilityManifestStore();
|
|
2535
|
-
const listed = await store.listActiveWalletCapabilitySubjects(input.walletId);
|
|
2536
|
-
if (listed.kind !== "resolved") throw new Error(`ECDSA custody continuity inventory is ${listed.kind}`);
|
|
2537
|
-
if (listed.subjects.length === 0) return;
|
|
2538
|
-
const sources = listed.subjects.filter((subject) => subject.authority.walletAuthMethodId === input.sourceWalletAuthMethodId);
|
|
2539
|
-
if (sources.length === 0) throw new Error(`ECDSA custody continuity found no active capability for source method ${String(input.sourceWalletAuthMethodId)} among [${listed.subjects.map((subject) => String(subject.authority.walletAuthMethodId)).join(", ")}]`);
|
|
2540
|
-
for (const source of sources) {
|
|
2541
|
-
const sourceLookup = await store.lookup(source);
|
|
2542
|
-
if (sourceLookup.kind !== "active") throw new Error(`ECDSA custody continuity source is ${sourceLookup.kind}`);
|
|
2543
|
-
const targetSelector = {
|
|
2544
|
-
capability: source.capability,
|
|
2545
|
-
authority: input.targetAuthority
|
|
2546
|
-
};
|
|
2547
|
-
const targetLookup = await store.lookup(targetSelector);
|
|
2548
|
-
if (targetLookup.kind === "active") {
|
|
2549
|
-
const targetMaterial = targetLookup.manifest.durableMaterial;
|
|
2550
|
-
const sourceMaterial = sourceLookup.manifest.durableMaterial;
|
|
2551
|
-
if (targetMaterial.activationDigest !== sourceMaterial.activationDigest || targetMaterial.bindingDigest !== sourceMaterial.bindingDigest || targetMaterial.roleLocalBinding.ecdsaThresholdKeyId !== sourceMaterial.roleLocalBinding.ecdsaThresholdKeyId || !ecdsaRoleLocalMaterialBindingsMatch(targetMaterial.roleLocalBinding, sourceMaterial.roleLocalBinding) || !ecdsaRoleLocalPublicFactsMatch(targetMaterial.roleLocalPublicFacts, sourceMaterial.roleLocalPublicFacts) || !ecdsaRegisteredPublicFactsMatch(targetLookup.manifest.signer.registeredPublicFacts, sourceLookup.manifest.signer.registeredPublicFacts)) throw new Error("ECDSA custody continuity target conflicts with source material");
|
|
2552
|
-
continue;
|
|
2553
|
-
}
|
|
2554
|
-
if (targetLookup.kind !== "missing") throw new Error(`ECDSA custody continuity target is ${targetLookup.kind}`);
|
|
2555
|
-
const opened = await store.openActiveMaterialLookup(sourceLookup);
|
|
2556
|
-
if (opened.kind !== "active") throw new Error(`ECDSA custody continuity material is ${opened.kind}`);
|
|
2557
|
-
const manifest = opened.manifest;
|
|
2558
|
-
const publicFacts = manifest.durableMaterial.roleLocalPublicFacts;
|
|
2559
|
-
const imported = await importWalletCustodyEcdsaContinuity({
|
|
2560
|
-
store,
|
|
2561
|
-
authority: input.targetAuthority,
|
|
2562
|
-
chainTargets: manifest.signer.scope.targetMemberships,
|
|
2563
|
-
walletId: String(input.walletId),
|
|
2564
|
-
keyHandle: publicFacts.keyHandle,
|
|
2565
|
-
ecdsaThresholdKeyId: String(publicFacts.ecdsaThresholdKeyId),
|
|
2566
|
-
signingRootId: String(publicFacts.signingRootId),
|
|
2567
|
-
signingRootVersion: String(publicFacts.signingRootVersion),
|
|
2568
|
-
relayerKeyId: String(manifest.durableMaterial.roleLocalBinding.relayerKeyId),
|
|
2569
|
-
participantIds: publicFacts.participantIds,
|
|
2570
|
-
publicCapability: publicFacts.publicCapability,
|
|
2571
|
-
activationReceipt: manifest.activation.serverActivation.serverActivationReceipt.protocolReceipt,
|
|
2572
|
-
runtimePolicyScope: manifest.durableMaterial.runtimePolicyScope,
|
|
2573
|
-
readyStateBlobB64u: opened.readyStateBlobB64u,
|
|
2574
|
-
publicFacts: {
|
|
2575
|
-
contextBinding32B64u: publicFacts.contextBinding32B64u,
|
|
2576
|
-
derivationClientSharePublicKey33B64u: publicFacts.derivationClientSharePublicKey33B64u,
|
|
2577
|
-
clientVerifyingShare33B64u: publicFacts.publicCapability.public_identity.derivation_client_share_public_key33_b64u,
|
|
2578
|
-
relayerPublicKey33B64u: publicFacts.relayerPublicKey33B64u,
|
|
2579
|
-
groupPublicKey33B64u: publicFacts.groupPublicKey33B64u,
|
|
2580
|
-
ethereumAddress: publicFacts.ethereumAddress,
|
|
2581
|
-
clientShareRetryCounter: publicFacts.publicCapability.public_identity.client_share_retry_counter,
|
|
2582
|
-
relayerShareRetryCounter: publicFacts.publicCapability.public_identity.server_share_retry_counter
|
|
2583
|
-
}
|
|
2584
|
-
});
|
|
2585
|
-
if (imported.kind !== "committed") throw new Error(`ECDSA custody continuity import is ${imported.kind}`);
|
|
2586
|
-
}
|
|
2587
|
-
}
|
|
2588
|
-
async function lookupInTransaction(context, selector) {
|
|
2589
|
-
const pointerRaw = await context.store(POINTER_STORE).get(selectorKey(selector));
|
|
2590
|
-
if (pointerRaw === void 0) return await lookupWithoutPointer(context, selector);
|
|
2591
|
-
let pointer;
|
|
2592
|
-
try {
|
|
2593
|
-
pointer = parsePointerRow(pointerRaw);
|
|
2594
|
-
} catch (error) {
|
|
2595
|
-
return {
|
|
2596
|
-
kind: "corrupt",
|
|
2597
|
-
detail: errorMessage(error)
|
|
2598
|
-
};
|
|
2599
|
-
}
|
|
2600
|
-
if (!selectorsMatch(pointer.selector, selector)) return {
|
|
2601
|
-
kind: "exact_binding_mismatch",
|
|
2602
|
-
detail: "current ECDSA pointer belongs to a different exact authority"
|
|
2603
|
-
};
|
|
2604
|
-
const manifestRaw = await context.store(MANIFEST_STORE).get(pointer.manifestId);
|
|
2605
|
-
if (manifestRaw === void 0) return {
|
|
2606
|
-
kind: "exact_record_conflict",
|
|
2607
|
-
detail: "current ECDSA pointer references a missing manifest"
|
|
2608
|
-
};
|
|
2609
|
-
let parsedManifest;
|
|
2610
|
-
try {
|
|
2611
|
-
parsedManifest = parseManifestRow(manifestRaw);
|
|
2612
|
-
} catch (error) {
|
|
2613
|
-
return {
|
|
2614
|
-
kind: "corrupt",
|
|
2615
|
-
detail: errorMessage(error)
|
|
2616
|
-
};
|
|
2617
|
-
}
|
|
2618
|
-
if (!selectorsMatch(parsedManifest.selector, selector)) return {
|
|
2619
|
-
kind: "exact_binding_mismatch",
|
|
2620
|
-
detail: "current ECDSA manifest belongs to a different exact authority"
|
|
2621
|
-
};
|
|
2622
|
-
if (parsedManifest.manifest.identity.manifestId !== pointer.manifestId || parsedManifest.manifest.identity.manifestRevision !== pointer.manifestRevision) return {
|
|
2623
|
-
kind: "exact_record_conflict",
|
|
2624
|
-
detail: "current ECDSA pointer does not match its manifest identity"
|
|
2625
|
-
};
|
|
2626
|
-
if (parsedManifest.state === "replaced") return {
|
|
2627
|
-
kind: "retired",
|
|
2628
|
-
manifest: parsedManifest.manifest
|
|
2629
|
-
};
|
|
2630
|
-
const activeRows = await context.store(MANIFEST_STORE).index(SEAMS_WALLET_INDEXES.capabilityWalletAuthorityState).getAll([...selectorKey(selector), "active"]);
|
|
2631
|
-
if (activeRows.length !== 1) return {
|
|
2632
|
-
kind: "exact_record_conflict",
|
|
2633
|
-
detail: "exact ECDSA authority has multiple current manifests"
|
|
2634
|
-
};
|
|
2635
|
-
let indexedActive;
|
|
2636
|
-
try {
|
|
2637
|
-
indexedActive = parseManifestRow(activeRows[0]);
|
|
2638
|
-
} catch (error) {
|
|
2639
|
-
return {
|
|
2640
|
-
kind: "corrupt",
|
|
2641
|
-
detail: errorMessage(error)
|
|
2642
|
-
};
|
|
2643
|
-
}
|
|
2644
|
-
if (indexedActive.state !== "active" || indexedActive.manifest.identity.manifestId !== pointer.manifestId) return {
|
|
2645
|
-
kind: "exact_record_conflict",
|
|
2646
|
-
detail: "exact ECDSA current index disagrees with its pointer"
|
|
2647
|
-
};
|
|
2648
|
-
const materialRaw = await context.store(MATERIAL_STORE).get(parsedManifest.manifest.durableMaterial.durableMaterialRef);
|
|
2649
|
-
if (materialRaw === void 0) return {
|
|
2650
|
-
kind: "missing",
|
|
2651
|
-
subject: "material",
|
|
2652
|
-
detail: "active ECDSA manifest is missing its ready material"
|
|
2653
|
-
};
|
|
2654
|
-
let material;
|
|
2655
|
-
try {
|
|
2656
|
-
material = parseMaterialRow(materialRaw, parsedManifest.activeProof);
|
|
2657
|
-
} catch (error) {
|
|
2658
|
-
return {
|
|
2659
|
-
kind: "corrupt",
|
|
2660
|
-
detail: errorMessage(error)
|
|
2661
|
-
};
|
|
2662
|
-
}
|
|
2663
|
-
if (!materialMatchesManifest(material, parsedManifest.manifest)) return {
|
|
2664
|
-
kind: "exact_binding_mismatch",
|
|
2665
|
-
detail: "active ECDSA material does not match its manifest"
|
|
2666
|
-
};
|
|
2667
|
-
const sealingKeyRaw = await context.store(SEALING_KEY_STORE).get(material.sealingKeyId);
|
|
2668
|
-
if (sealingKeyRaw === void 0) return {
|
|
2669
|
-
kind: "missing",
|
|
2670
|
-
subject: "material",
|
|
2671
|
-
detail: "active ECDSA material is missing its sealing key"
|
|
2672
|
-
};
|
|
2673
|
-
try {
|
|
2674
|
-
if (parseSealingKeyRow(sealingKeyRaw).keyId !== material.sealingKeyId) return {
|
|
2675
|
-
kind: "exact_binding_mismatch",
|
|
2676
|
-
detail: "active ECDSA material sealing key id does not match"
|
|
2677
|
-
};
|
|
2678
|
-
} catch (error) {
|
|
2679
|
-
return {
|
|
2680
|
-
kind: "corrupt",
|
|
2681
|
-
detail: errorMessage(error)
|
|
2682
|
-
};
|
|
2683
|
-
}
|
|
2684
|
-
if (await ciphertextDigestB64u(material.ciphertextB64u) !== material.binding.ciphertextDigest) return {
|
|
2685
|
-
kind: "corrupt",
|
|
2686
|
-
detail: "active ECDSA material ciphertext digest is invalid"
|
|
2687
|
-
};
|
|
2688
|
-
return {
|
|
2689
|
-
kind: "active",
|
|
2690
|
-
manifest: parsedManifest.manifest,
|
|
2691
|
-
material
|
|
2692
|
-
};
|
|
2693
|
-
}
|
|
2694
|
-
async function lookupWithoutPointer(context, selector) {
|
|
2695
|
-
const rows = await context.store(MANIFEST_STORE).index(SEAMS_WALLET_INDEXES.capabilityWallet).getAll([String(selector.capability), String(selector.authority.walletId)]);
|
|
2696
|
-
if (rows.length === 0) return {
|
|
2697
|
-
kind: "missing",
|
|
2698
|
-
subject: "capability",
|
|
2699
|
-
detail: "no ECDSA capability manifest exists"
|
|
2700
|
-
};
|
|
2701
|
-
let hasDifferentAuthority = false;
|
|
2702
|
-
let hasExactAuthority = false;
|
|
2703
|
-
let hasSameMethodUnderAnotherDigest = false;
|
|
2704
|
-
for (const raw of rows) {
|
|
2705
|
-
let parsed;
|
|
2706
|
-
try {
|
|
2707
|
-
parsed = parseManifestRow(raw);
|
|
2708
|
-
} catch (error) {
|
|
2709
|
-
return {
|
|
2710
|
-
kind: "corrupt",
|
|
2711
|
-
detail: errorMessage(error)
|
|
2712
|
-
};
|
|
2713
|
-
}
|
|
2714
|
-
if (selectorsMatch(parsed.selector, selector)) {
|
|
2715
|
-
hasExactAuthority = true;
|
|
2716
|
-
continue;
|
|
2717
|
-
}
|
|
2718
|
-
hasDifferentAuthority = true;
|
|
2719
|
-
if (parsed.selector.authority.walletAuthMethodId === selector.authority.walletAuthMethodId) hasSameMethodUnderAnotherDigest = true;
|
|
2720
|
-
}
|
|
2721
|
-
if (hasExactAuthority) return {
|
|
2722
|
-
kind: "exact_record_conflict",
|
|
2723
|
-
detail: "exact ECDSA authority has manifest history without a current pointer"
|
|
2724
|
-
};
|
|
2725
|
-
if (hasSameMethodUnderAnotherDigest) return {
|
|
2726
|
-
kind: "exact_binding_mismatch",
|
|
2727
|
-
detail: "ECDSA capability exists for this method under a different authority digest"
|
|
2728
|
-
};
|
|
2729
|
-
if (hasDifferentAuthority) return {
|
|
2730
|
-
kind: "missing",
|
|
2731
|
-
subject: "capability",
|
|
2732
|
-
detail: "no ECDSA capability manifest exists for this exact authority"
|
|
2733
|
-
};
|
|
2734
|
-
return {
|
|
2735
|
-
kind: "missing",
|
|
2736
|
-
subject: "capability",
|
|
2737
|
-
detail: "no exact ECDSA capability manifest exists"
|
|
2738
|
-
};
|
|
2739
|
-
}
|
|
2740
|
-
async function retireClientPresignaturesForActivationInTransaction(context, walletId, materialActivationId) {
|
|
2741
|
-
const store = context.store(PRESIGNATURE_STORE);
|
|
2742
|
-
const rows = await store.index(SEAMS_WALLET_INDEXES.walletMaterialActivationId).getAll([walletId, materialActivationId]);
|
|
2743
|
-
for (const raw of rows) {
|
|
2744
|
-
const recordId = rawRecordId(raw);
|
|
2745
|
-
if (recordId) await store.delete(recordId);
|
|
2746
|
-
}
|
|
2747
|
-
}
|
|
2748
1149
|
async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
2749
1150
|
const journalStore = context.store(JOURNAL_STORE);
|
|
2750
1151
|
const journalRaw = await journalStore.get(input.committedJournal.journalId);
|
|
@@ -2753,7 +1154,7 @@ async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
|
2753
1154
|
try {
|
|
2754
1155
|
persistedJournal = parseJournalRow(journalRaw);
|
|
2755
1156
|
} catch (error) {
|
|
2756
|
-
throw new FinalizationControlError("corrupt",
|
|
1157
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
2757
1158
|
}
|
|
2758
1159
|
if (persistedJournal.journal.kind !== "server_activation_committed" || !selectorsMatch(persistedJournal.selector, selector) || !ecdsaActivationCommitJournalsMatch(persistedJournal.journal, input.committedJournal)) throw new FinalizationControlError("exact_record_conflict", "ECDSA finalization journal does not match its committed activation");
|
|
2759
1160
|
const sealingKeyRaw = await context.store(SEALING_KEY_STORE).get(input.readyMaterial.sealingKeyId);
|
|
@@ -2761,13 +1162,13 @@ async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
|
2761
1162
|
try {
|
|
2762
1163
|
parseSealingKeyRow(sealingKeyRaw);
|
|
2763
1164
|
} catch (error) {
|
|
2764
|
-
throw new FinalizationControlError("corrupt",
|
|
1165
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
2765
1166
|
}
|
|
2766
1167
|
const pointerStore = context.store(POINTER_STORE);
|
|
2767
1168
|
const pointerRaw = await pointerStore.get(selectorKey(selector));
|
|
2768
1169
|
const expected = input.committedJournal.expectedManifest;
|
|
2769
1170
|
const currentPointer = assertExpectedPointer(expected, pointerRaw, selector);
|
|
2770
|
-
const activeRows = await context
|
|
1171
|
+
const activeRows = await readActiveManifestRows(context, selector);
|
|
2771
1172
|
let previousProof = null;
|
|
2772
1173
|
let previousSealingKeyId = null;
|
|
2773
1174
|
if (currentPointer === null) {
|
|
@@ -2778,7 +1179,7 @@ async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
|
2778
1179
|
try {
|
|
2779
1180
|
previousManifest = parseManifestRow(activeRows[0]);
|
|
2780
1181
|
} catch (error) {
|
|
2781
|
-
throw new FinalizationControlError("corrupt",
|
|
1182
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
2782
1183
|
}
|
|
2783
1184
|
if (previousManifest.state !== "active" || previousManifest.manifest.identity.manifestId !== currentPointer.manifestId) throw new FinalizationControlError("exact_record_conflict", "replacement ECDSA activation current manifest does not match its pointer");
|
|
2784
1185
|
if (input.committedJournal.activationCommand.expectedGeneration.kind !== "exact_generation" || previousManifest.activeProof.serverActivation.serverGeneration !== input.committedJournal.activationCommand.expectedGeneration.serverGeneration) throw new FinalizationControlError("exact_record_conflict", "replacement ECDSA activation server generation CAS did not match");
|
|
@@ -2790,7 +1191,7 @@ async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
|
2790
1191
|
if (previousMaterial.sealingKeyId === input.readyMaterial.sealingKeyId) throw new Error("replacement ECDSA activation must use a fresh material sealing key");
|
|
2791
1192
|
previousSealingKeyId = previousMaterial.sealingKeyId;
|
|
2792
1193
|
} catch (error) {
|
|
2793
|
-
throw new FinalizationControlError("corrupt",
|
|
1194
|
+
throw new FinalizationControlError("corrupt", ecdsaManifestErrorMessage(error));
|
|
2794
1195
|
}
|
|
2795
1196
|
previousProof = previousManifest.activeProof;
|
|
2796
1197
|
}
|
|
@@ -2809,6 +1210,6 @@ async function finalizeInTransaction(context, input, activeProof, selector) {
|
|
|
2809
1210
|
await journalStore.delete(input.committedJournal.journalId);
|
|
2810
1211
|
}
|
|
2811
1212
|
//#endregion
|
|
2812
|
-
export { IndexedDbEcdsaCapabilityManifestStore,
|
|
1213
|
+
export { IndexedDbEcdsaCapabilityManifestStore, importCommittedActivation, persistPreparedImportedWalletCustodyEcdsaContinuityInTransaction, prepareImportedWalletCustodyEcdsaContinuity };
|
|
2813
1214
|
|
|
2814
1215
|
//# sourceMappingURL=ecdsaCapabilityManifestStore.js.map
|