@seams/wallet-server 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_NOTICES.md +7 -1
- package/artifact-manifest.json +196 -41
- package/cloudflare-router-ab/build/deriver-a/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -2
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/darwin-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/local-tools/linux-x64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/router/index.js +2 -2
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -2
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/build-stamp.json +1 -1
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -2
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/migrations/deriver-a/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/migrations/deriver-b/0019_wallet_object_addresses.sql +10 -0
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +3 -117
- package/cloudflare-router-ab/wrangler.deriver-a.toml +0 -8
- package/cloudflare-router-ab/wrangler.deriver-b.toml +24 -8
- package/cloudflare-router-ab/wrangler.router.toml +0 -2
- package/cloudflare-router-ab/wrangler.signing-worker.toml +29 -0
- package/dist/esm/authorization/domain.js +3 -2
- package/dist/esm/authorization/ed25519WalletSessionAdmission.js +0 -0
- package/dist/esm/authorization/service.js +64 -36
- package/dist/esm/cloud-host.js +24 -19
- package/dist/esm/core/EmailOtpRecords.js +29 -6
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +2 -0
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +10 -0
- package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +1 -0
- package/dist/esm/core/ThresholdService/validation.js +2 -2
- package/dist/esm/core/authService/nearPrivateKeySigning.js +1 -1
- package/dist/esm/core/authService/webauthn.js +1 -1
- package/dist/esm/core/d1Ed25519SignerRead.js +55 -0
- package/dist/esm/core/d1WalletStore.js +14 -11
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +2 -2
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +1 -1
- package/dist/esm/core/deviceLinking/linkedDeviceSessionRecord.js +2 -2
- package/dist/esm/core/emailOtpD1Statements.js +1 -0
- package/dist/esm/core/nearRelayerAccountProvisioning.js +1 -1
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +4 -0
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +1 -1
- package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +1 -0
- package/dist/esm/hosted-wallet-gateway.js +93 -10
- package/dist/esm/localHostedWalletGatewayHandler.js +12 -9
- package/dist/esm/localIntendedYaoSigningFault.js +2 -30
- package/dist/esm/localRegistrationSetupAuthority.js +8 -1
- package/dist/esm/router/auth/commonRouterUtils.js +17 -10
- package/dist/esm/router/auth/routerApiCredentialAuth.js +26 -7
- package/dist/esm/router/auth/walletRegistrationContext.js +49 -0
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +1 -1
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizationAssembly.js +4 -3
- package/dist/esm/router/cloudflare/d1/auth/d1AuthorizedOperationRouteService.js +2 -0
- package/dist/esm/router/cloudflare/d1/auth/d1EmailOtpRouteService.js +25 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +14 -6
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +44 -40
- package/dist/esm/router/cloudflare/d1/auth/walletSessionCredentialReaders.js +17 -1
- package/dist/esm/router/cloudflare/d1/authorization/authorizedOperationStatements.js +35 -5
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +258 -99
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +31 -4
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +1 -1
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +1 -1
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.js +11 -2
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +100 -10
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.js +92 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.js +77 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +14 -8
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +14 -8
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +3 -1
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +58 -38
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +27 -20
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +1 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +1 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +1 -1
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +18 -7
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +75 -14
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +1 -1
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +49 -29
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.js +28 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationSetupSupport.js +11 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletExecutionAuthority.js +168 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletOperationStore.js +53 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +83 -42
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.js +33 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.js +16 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationRead.js +58 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +439 -500
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +1 -1
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.js +104 -90
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +78 -44
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +11 -35
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +98 -39
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +12 -9
- package/dist/esm/router/cloudflare/d1/wallet/authorizationSnapshotLayout.js +168 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerFinalizeRecord.js +1 -1
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +15 -6
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +3 -40
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +54 -1
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.js +157 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.js +56 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.js +238 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.js +287 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.js +295 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.js +140 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.js +170 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.js +60 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwner.js +33 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.js +74 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.js +77 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.js +37 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationSessions.js +97 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.js +133 -0
- package/dist/esm/router/cloudflare/d1/walletObjectAddresses.js +47 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +1 -1
- package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +32 -1
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +20 -8
- package/dist/esm/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.js +488 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +26 -6
- package/dist/esm/router/cloudflare/runtime/walletControlOps.js +3 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +1 -1
- package/dist/esm/router/cloudflare/runtime/walletObjectAddresses.js +105 -0
- package/dist/esm/router/cloudflare/runtime/walletPlacementRoutes.js +339 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationDeriver.js +244 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEcdsa.js +212 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationEd25519.js +172 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationOps.js +183 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationPresign.js +185 -0
- package/dist/esm/router/cloudflare/runtime/walletRelocationSource.js +221 -0
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +30 -8
- package/dist/esm/router/cloudflare-adaptor.js +8 -8
- package/dist/esm/router/cloudflare.js +34115 -32240
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +35 -9
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.js +42 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +32 -6
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +61 -1
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +70 -3
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +59 -87
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +52 -22
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +10 -7
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +108 -78
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +19 -5
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +71 -22
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +37 -25
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +3 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +2 -1
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +24 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +4 -3
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +20 -7
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +7 -1
- package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +1 -1
- package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +34 -18
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +2 -2
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +16 -6
- package/dist/esm/router/domains/signingOperations/authorizedOperationWire.js +73 -0
- package/dist/esm/router/domains/signingOperations/ecdsaSigningResponse.js +31 -0
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +1 -1
- package/dist/esm/router/domains/signingOperations/routerAbEcdsaDerivationNormalSigningRoute.js +2 -1
- package/dist/esm/router/domains/signingOperations/routerAbEd25519NormalSigningRoute.js +31 -121
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmission.js +2 -93
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +1 -1
- package/dist/esm/router/domains/signingOperations/signingPrepareSession.js +33 -0
- package/dist/esm/router/domains/walletRegistration/registrationSessionSeal.js +121 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationReservation.js +4 -4
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +46 -157
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +1 -1
- package/dist/esm/router/express.js +764 -894
- package/dist/esm/router/framework/http.js +2 -1
- package/dist/esm/router/transport/fetch/createFetchRouter.js +2 -2
- package/dist/esm/router/transport/fetch/routes/auth.js +1 -1
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +3 -3
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +2 -2
- package/dist/esm/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.js +65 -0
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +13 -3
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +3 -3
- package/dist/esm/router/transport/fetch/routes/sessions.js +3 -2
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +67 -130
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +76 -212
- package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +18 -41
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +6 -5
- package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +1 -1
- package/dist/esm/shared-ts/src/authorization/index.js +1 -1
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +2 -2
- package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +12 -2
- package/dist/esm/shared-ts/src/device-linking/digests.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/index.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/parsers.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
- package/dist/esm/shared-ts/src/device-linking/wireFields.js +1 -1
- package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +2 -2
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +4 -2
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +0 -27
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +1 -1
- package/dist/esm/threshold/session/signingSessionSeal/options.js +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +10 -0
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
- package/dist/types/wallet-server/src/authorization/domain.d.ts +17 -1
- package/dist/types/wallet-server/src/authorization/ecdsaWalletSessionAdmission.d.ts +1 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.d.ts +35 -0
- package/dist/types/wallet-server/src/authorization/ed25519WalletSessionAdmission.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +43 -5
- package/dist/types/wallet-server/src/authorization/sessionRouting.d.ts +2 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +7 -3
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +2 -1
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +19 -5
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +1 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +6 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +1 -0
- package/dist/types/wallet-server/src/core/d1Ed25519SignerRead.d.ts +17 -0
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +6 -0
- package/dist/types/wallet-server/src/core/emailOtpD1Statements.d.ts +1 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +5 -1
- package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +1 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +14 -48
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +4 -3
- package/dist/types/wallet-server/src/localIntendedYaoSigningFault.d.ts +1 -16
- package/dist/types/wallet-server/src/localRegistrationSetupAuthority.d.ts +1 -1
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +7 -1
- package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +11 -3
- package/dist/types/wallet-server/src/router/auth/walletRegistrationContext.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1AuthorizationAssembly.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1EmailOtpRouteService.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +7 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/walletSessionCredentialReaders.d.ts +7 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +32 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoLifecycleDecisionStore.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoStateWriteFence.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1WalletCeremonyActivity.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +6 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +1 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +4 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpCounters.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +6 -29
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +21 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +17 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +32 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +16 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSessionTransaction.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationSetupSupport.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletExecutionAuthority.d.ts +41 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletOperationStore.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +6 -9
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationInitialSession.d.ts +17 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationPreparation.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationRead.d.ts +43 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +24 -45
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetupExecution.d.ts +9 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +42 -14
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +5 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +24 -1
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +10 -4
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/authorizationSnapshotLayout.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +3 -7
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +8 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationCleanup.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationFreeze.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationHistory.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationIntake.d.ts +29 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts +31 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts +47 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts +25 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwner.d.ts +88 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts +37 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts +18 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/walletObjectAddresses.d.ts +14 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletAuthorizationRelocationRoutes.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +1 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +3 -3
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +2 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +3 -1
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletObjectAddresses.d.ts +45 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletPlacementRoutes.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationDeriver.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEcdsa.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationEd25519.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationOps.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationPresign.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRelocationSource.d.ts +26 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +5 -0
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +3 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoCapabilityCommit.d.ts +7 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +41 -7
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +33 -2
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +12 -6
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +17 -9
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +13 -14
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +7 -3
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +1 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +6 -1
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +11 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +12 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +10 -6
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +10 -3
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +12 -5
- package/dist/types/wallet-server/src/router/domains/signingOperations/authorizedOperationWire.d.ts +97 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/ecdsaSigningResponse.d.ts +13 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmission.d.ts +9 -206
- package/dist/types/wallet-server/src/router/domains/signingOperations/signingPrepareSession.d.ts +23 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/registrationSessionSeal.d.ts +36 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +7 -7
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationReservation.d.ts +80 -6
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +15 -5
- package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +24 -0
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +21 -7
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +3 -12
- package/dist/types/wallet-server/src/router/transport/fetch/routes/ed25519AuthorizedOperationRevalidation.d.ts +37 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +1 -17
- package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +1 -1
- package/migrations/d1-signer/0049_wallet_relocation_challenges.sql +16 -0
- package/migrations/d1-signer/0050_wallet_relocation_approvals.sql +14 -0
- package/migrations/d1-signer/0051_wallet_relocation_email_otp.sql +92 -0
- package/migrations/d1-signer/0052_wallet_relocation_session_fences.sql +91 -0
- package/migrations/d1-signer/0053_wallet_hosted_history_import.sql +164 -0
- package/migrations/d1-signer/0054_wallet_authorization_freeze.sql +318 -0
- package/migrations/d1-signer/0055_wallet_authorization_snapshot.sql +120 -0
- package/migrations/d1-signer/0056_wallet_authorization_history_import.sql +424 -0
- package/migrations/d1-signer/0057_wallet_authorization_intake.sql +44 -0
- package/migrations/d1-signer/0058_wallet_ceremony_activity.sql +59 -0
- package/migrations/d1-signer/0059_wallet_authorization_activation.sql +45 -0
- package/migrations/d1-signer/0060_wallet_authorization_cleanup.sql +153 -0
- package/migrations/d1-signer/0061_wallet_session_operation_settlement.sql +28 -0
- package/migrations/d1-signer/0062_wallet_step_up_operation_settlement.sql +204 -0
- package/migrations/d1-signer/0063_wallet_operation_history_transfer.sql +466 -0
- package/migrations/d1-signer/0064_wallet_execution_generations.sql +93 -0
- package/migrations/d1-signer/0065_wallet_operation_execution_generation.sql +37 -0
- package/migrations/d1-signer/0066_regional_deployment_admission.sql +59 -0
- package/migrations/d1-signer/0067_registration_completion_decision.sql +12 -0
- package/migrations/d1-signer/0068_registration_cancellation_write_fence.sql +24 -0
- package/migrations/d1-signer/0069_cancelled_registration_session_fence.sql +11 -0
- package/migrations/d1-signer/0070_wallet_passkey_relocation.sql +369 -0
- package/migrations/d1-signer/0071_regional_wallet_otp_counters.sql +98 -0
- package/migrations/d1-signer/0072_linked_device_relocation_history.sql +899 -0
- package/migrations/d1-signer/0073_wallet_recovery_relocation.sql +86 -0
- package/migrations/d1-signer/0074_email_otp_relocation.sql +158 -0
- package/migrations/d1-signer/0075_wallet_authorization_return.sql +107 -0
- package/migrations/d1-signer/0076_wallet_relocation_write_block.sql +406 -0
- package/migrations/d1-signer/0077_wallet_object_addresses.sql +24 -0
- package/package.json +1 -1
- package/src/README.md +23 -1
- package/cloudflare-router-ab/scripts/local-key-material.mjs +0 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseLinkedDeviceId, parseWalletId, parseWalletKeyId } from "../utils/domainIds.js";
|
|
2
|
-
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
3
2
|
import { requireRecord } from "../utils/validation.js";
|
|
4
3
|
import { rejectUnknownFields } from "../utils/exactRecord.js";
|
|
4
|
+
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
5
5
|
import { parseDigestField, parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseEnvelopeNonceB64u, requireParsed } from "../passkey-custody/primitives.js";
|
|
6
6
|
//#region ../shared-ts/src/device-linking/ed25519ExportRoot.ts
|
|
7
7
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
2
1
|
import { requireArray, requireRecord } from "../utils/validation.js";
|
|
3
2
|
import { exactRecord } from "../utils/exactRecord.js";
|
|
4
3
|
import { wireLiteral, wireNullable, wireObject, wireUnion } from "../utils/wireSchema.js";
|
|
5
4
|
import "../authorization/delegatedAuthority.js";
|
|
5
|
+
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
6
6
|
import { parseEd25519PublicKeyB64u } from "../passkey-custody/primitives.js";
|
|
7
7
|
import { authorizationDeviceId, credentialId, digest, enrollmentId, linkedDeviceId, parseDelegatedWalletAuthority, parseNonEmptyToken, parseNonNegativeSafeInteger, parseTargetEmail, parseUnixTime, rpId, sessionId, walletAuthMethodId, walletAuthorityId, walletId, walletKeyId, walletSessionAuthorizationId, walletSessionId } from "./wireFields.js";
|
|
8
8
|
import { parseWalletAddAuthMethodRegistrationOptions } from "../utils/addAuthMethodRegistration.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mpcMaterialActivationRefsEqual, parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseMpcMaterialActivationRef, parseWalletAuthorityId, parseWalletKeyId } from "../utils/domainIds.js";
|
|
2
2
|
import { parseDeviceId } from "../authorization/capabilityKinds.js";
|
|
3
|
+
import { requireRecordCopy } from "../utils/validation.js";
|
|
3
4
|
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
4
5
|
import { parseDigestB64u } from "../utils/canonicalPrimitives.js";
|
|
5
|
-
import { requireRecordCopy } from "../utils/validation.js";
|
|
6
6
|
import { parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseSecp256k1CompressedPublicKeyB64u } from "../passkey-custody/primitives.js";
|
|
7
7
|
import { routerAbMpcMaterialActivationRefFromWire } from "../utils/routerAbNormalSigningIdentity.js";
|
|
8
8
|
import { parseRouterAbEd25519YaoActivationPublicReceiptV1, parseRouterAbEd25519YaoApplicationBindingFactsV1, parseRouterAbEd25519YaoCeremonyBindingV1, parseRouterAbEd25519YaoEncryptedPackageV1, parseRouterAbEd25519YaoParticipantIdsV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, sameRouterAbEd25519YaoByteSequence } from "../utils/routerAbEd25519Yao.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseLinkedDeviceId, parseMpcMaterialActivationRef, parseVerifiedEmailAddress, parseWalletAuthMethodId, parseWalletAuthorityId, parseWalletId, parseWalletKeyId, parseWebAuthnCredentialIdB64u, parseWebAuthnRpId } from "../utils/domainIds.js";
|
|
2
2
|
import { parseDeviceId, parseMpcWalletSigningQuotaId, parseWalletSessionAuthorizationId, parseWalletSessionId } from "../authorization/capabilityKinds.js";
|
|
3
|
-
import { parseDigestB64u } from "../utils/canonicalPrimitives.js";
|
|
4
3
|
import { wireLabeled, wireNullable, wireResult } from "../utils/wireSchema.js";
|
|
5
4
|
import { parseDelegatedWalletAuthorityV1 } from "../authorization/delegatedAuthority.js";
|
|
5
|
+
import { parseDigestB64u } from "../utils/canonicalPrimitives.js";
|
|
6
6
|
import { parseUnixMs } from "../passkey-custody/primitives.js";
|
|
7
7
|
//#region ../shared-ts/src/device-linking/wireFields.ts
|
|
8
8
|
const sessionId = /* @__PURE__ */ wireResult(parseLinkDeviceSessionId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { base64Decode, base64Encode } from "../utils/base64.js";
|
|
2
1
|
import { isFunction } from "../utils/validation.js";
|
|
2
|
+
import { base64Decode, base64Encode } from "../utils/base64.js";
|
|
3
3
|
import { secureRandomId } from "../utils/secureRandomId.js";
|
|
4
4
|
import { errorMessage } from "../utils/errors.js";
|
|
5
5
|
import { decodeJsonRpcEnvelope } from "../utils/jsonRpc.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { hasWhitespaceOrControlCharacters, parseMpcSigningWorkerRef } from "../utils/domainIds.js";
|
|
2
|
-
import { base64UrlEncode } from "../utils/base64.js";
|
|
3
|
-
import { sha256Bytes } from "../utils/digests.js";
|
|
4
2
|
import { requireRecord } from "../utils/validation.js";
|
|
5
3
|
import { rejectUnknownFields } from "../utils/exactRecord.js";
|
|
4
|
+
import { base64UrlEncode } from "../utils/base64.js";
|
|
5
|
+
import { sha256Bytes } from "../utils/digests.js";
|
|
6
6
|
import { parseDigestField, requireParsed } from "../passkey-custody/primitives.js";
|
|
7
7
|
import { concat } from "../utils/digestEncoding.js";
|
|
8
8
|
import { parseLaneParticipantBindingDigestB64u } from "./participants.js";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
//#region ../shared-ts/src/utils/ecdsaServerTiming.ts
|
|
2
2
|
const ECDSA_TIMING_METRICS = new Set([
|
|
3
|
+
"wallet_gateway_binding",
|
|
4
|
+
"wallet_gateway_total",
|
|
5
|
+
"wallet_console_binding_d1",
|
|
6
|
+
"wallet_console_binding_sql",
|
|
3
7
|
"ecdsa_sign_authorize",
|
|
4
8
|
"ecdsa_sign_admit",
|
|
5
9
|
"ecdsa_sign_proxy",
|
|
@@ -12,7 +16,8 @@ const ECDSA_TIMING_METRICS = new Set([
|
|
|
12
16
|
"ecdsa_presign_total",
|
|
13
17
|
"ecdsa_presign_sw_material",
|
|
14
18
|
"ecdsa_presign_sw_session",
|
|
15
|
-
"
|
|
19
|
+
"ecdsa_presign_sw_do_response_headers",
|
|
20
|
+
"ecdsa_presign_sw_do_response_body",
|
|
16
21
|
"ecdsa_presign_sw_admit",
|
|
17
22
|
"ecdsa_presign_sw_total"
|
|
18
23
|
]);
|
|
@@ -18,12 +18,14 @@ const WALLET_EMAIL_OTP_REGISTRATION_OPERATION = "registration";
|
|
|
18
18
|
/** Linked-device enrollment: prove control of the wallet's enrolled email
|
|
19
19
|
* destination to complete one device link. */
|
|
20
20
|
const WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION = "device_link";
|
|
21
|
+
const WALLET_EMAIL_OTP_RELOCATION_OPERATION = "wallet_relocation";
|
|
21
22
|
const WALLET_EMAIL_OTP_ACTIONS = {
|
|
22
23
|
login: "wallet_email_otp_login",
|
|
23
24
|
registration: "wallet_email_otp_registration",
|
|
24
25
|
recoveryBootstrap: "wallet_email_otp_recovery_bootstrap",
|
|
25
26
|
unseal: "wallet_email_otp_unseal",
|
|
26
|
-
deviceLink: "wallet_email_otp_device_link"
|
|
27
|
+
deviceLink: "wallet_email_otp_device_link",
|
|
28
|
+
relocation: "wallet_email_otp_relocation"
|
|
27
29
|
};
|
|
28
30
|
const WALLET_EMAIL_OTP_EXPORT_OPERATION = "export_key";
|
|
29
31
|
const WALLET_EMAIL_OTP_UNLOCK_OPERATION = "wallet_unlock";
|
|
@@ -35,6 +37,6 @@ function isWalletEmailOtpLoginOperation(value) {
|
|
|
35
37
|
return WALLET_EMAIL_OTP_LOGIN_OPERATIONS.includes(value);
|
|
36
38
|
}
|
|
37
39
|
//#endregion
|
|
38
|
-
export { EMAIL_OTP_CHANNEL, EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_EXPORT_OPERATION, WALLET_EMAIL_OTP_REGISTRATION_OPERATION, WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION, emailOtpDeviceEnrollmentId, isWalletEmailOtpLoginOperation, isWalletUnlockBackend };
|
|
40
|
+
export { EMAIL_OTP_CHANNEL, EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1, WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_EXPORT_OPERATION, WALLET_EMAIL_OTP_REGISTRATION_OPERATION, WALLET_EMAIL_OTP_RELOCATION_OPERATION, WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION, emailOtpDeviceEnrollmentId, isWalletEmailOtpLoginOperation, isWalletUnlockBackend };
|
|
39
41
|
|
|
40
42
|
//# sourceMappingURL=emailOtpDomain.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { parseEcdsaActiveStateId, parseRootShareEpoch, parseThresholdEcdsaSessionId } from "./domainIds.js";
|
|
2
2
|
import { EVM_ECDSA_MPC_OPERATION_KINDS, parseEcdsaAuthorizationSessionId, parseMpcWalletSigningQuotaId, parseWalletSessionAuthorizationId, parseWalletSessionId, parseWalletSessionMintId } from "../authorization/capabilityKinds.js";
|
|
3
|
+
import { requireRecord } from "./validation.js";
|
|
3
4
|
import { base64UrlDecode, base64UrlEncode } from "./base64.js";
|
|
4
5
|
import { alphabetizeStringify, sha256BytesUtf8 } from "./digests.js";
|
|
5
6
|
import { parseCorrelationId } from "./canonicalPrimitives.js";
|
|
6
|
-
import { requireRecord } from "./validation.js";
|
|
7
7
|
import { parseActiveWalletSessionV1, parseWalletSessionOperationCredentialV1 } from "../device-linking/activeWalletSession.js";
|
|
8
8
|
import { requireRouterAbX25519PublicKey } from "./routerAbPublicKeyset.js";
|
|
9
9
|
import { canonicalRouterAbMpcMaterialActivationRefBytes, canonicalRouterAbNormalSigningAuthorizationBytes, parseRouterAbMpcMaterialActivationRef, parseRouterAbNormalSigningAuthorization, routerAbMpcMaterialActivationRefToWire, sameRouterAbMpcMaterialActivationRef } from "./routerAbNormalSigningIdentity.js";
|
|
@@ -20,11 +20,6 @@ function requireSignerRole(value, label) {
|
|
|
20
20
|
default: throw new Error(`${label} must be signer_a or signer_b`);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
function requireLowerHex(value, label, byteLength) {
|
|
24
|
-
const hex = coerceNonEmptyString(value, label);
|
|
25
|
-
if (!new RegExp(`^[0-9a-f]{${byteLength * 2}}$`).test(hex)) throw new Error(`${label} must be ${byteLength} lowercase-hex bytes`);
|
|
26
|
-
return hex;
|
|
27
|
-
}
|
|
28
23
|
function requireRouterAbX25519PublicKey(value, label) {
|
|
29
24
|
const publicKey = coerceNonEmptyString(value, label);
|
|
30
25
|
if (!/^x25519:[0-9a-f]{64}$/.test(publicKey)) throw new Error(`${label} must use x25519:<64 lowercase hex chars> encoding`);
|
|
@@ -79,26 +74,6 @@ function parseSignerEnvelopeHpkeRotationPublicKeySet(value, label) {
|
|
|
79
74
|
previous_retire_at_ms: requirePositiveInteger(record.previous_retire_at_ms, `${label}.previous_retire_at_ms`)
|
|
80
75
|
};
|
|
81
76
|
}
|
|
82
|
-
function parseSignerPeerVerifyingKey(value, label) {
|
|
83
|
-
const record = requireRecord(value, label);
|
|
84
|
-
requireExactKeys(record, ["role", "verifying_key_hex"], label);
|
|
85
|
-
return {
|
|
86
|
-
role: requireSignerRole(record.role, `${label}.role`),
|
|
87
|
-
verifying_key_hex: requireLowerHex(record.verifying_key_hex, `${label}.verifying_key_hex`, 32)
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
function parseSignerPeerVerifyingKeySet(value, label) {
|
|
91
|
-
const record = requireRecord(value, label);
|
|
92
|
-
requireExactKeys(record, ["deriver_a", "deriver_b"], label);
|
|
93
|
-
const deriverA = parseSignerPeerVerifyingKey(record.deriver_a, `${label}.deriver_a`);
|
|
94
|
-
const deriverB = parseSignerPeerVerifyingKey(record.deriver_b, `${label}.deriver_b`);
|
|
95
|
-
if (deriverA.role !== "signer_a") throw new Error(`${label}.deriver_a.role must be signer_a`);
|
|
96
|
-
if (deriverB.role !== "signer_b") throw new Error(`${label}.deriver_b.role must be signer_b`);
|
|
97
|
-
return {
|
|
98
|
-
deriver_a: deriverA,
|
|
99
|
-
deriver_b: deriverB
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
77
|
function parsePublicHpkeKeyDescriptor(value, label) {
|
|
103
78
|
const record = requireRecord(value, label);
|
|
104
79
|
requireExactKeys(record, ["key_epoch", "public_key"], label);
|
|
@@ -112,7 +87,6 @@ function parseRouterAbPublicKeysetV2(value) {
|
|
|
112
87
|
requireExactKeys(record, [
|
|
113
88
|
"keyset_version",
|
|
114
89
|
"signer_envelope_hpke",
|
|
115
|
-
"signer_peer_verifying_keys",
|
|
116
90
|
"signing_worker_server_output_hpke"
|
|
117
91
|
], "Router A/B public keyset");
|
|
118
92
|
const keysetVersion = coerceNonEmptyString(record.keyset_version, "keyset_version");
|
|
@@ -120,7 +94,6 @@ function parseRouterAbPublicKeysetV2(value) {
|
|
|
120
94
|
return {
|
|
121
95
|
keyset_version: ROUTER_AB_PUBLIC_KEYSET_VERSION_V2,
|
|
122
96
|
signer_envelope_hpke: parseSignerEnvelopeHpkeRotationPublicKeySet(record.signer_envelope_hpke, "signer_envelope_hpke"),
|
|
123
|
-
signer_peer_verifying_keys: parseSignerPeerVerifyingKeySet(record.signer_peer_verifying_keys, "signer_peer_verifying_keys"),
|
|
124
97
|
signing_worker_server_output_hpke: parsePublicHpkeKeyDescriptor(record.signing_worker_server_output_hpke, "signing_worker_server_output_hpke")
|
|
125
98
|
};
|
|
126
99
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { requireRecord } from "../utils/validation.js";
|
|
1
2
|
import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
2
3
|
import { parseDigestB64u, sha256DigestB64u } from "../utils/canonicalPrimitives.js";
|
|
3
|
-
import { requireRecord } from "../utils/validation.js";
|
|
4
4
|
//#region ../shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.ts
|
|
5
5
|
const POSSESSION_CHALLENGE_DOMAIN_V1 = "seams/wallet-recovery/ecdsa-existing-material-possession/v1";
|
|
6
6
|
const POSSESSION_PROOF_SCHEME_V1 = "secp256k1_bip340_sha256_v1";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { normalizeOptionalTrimmedString } from "../../../shared-ts/src/utils/normalize.js";
|
|
1
2
|
import { base64UrlDecode } from "../../../shared-ts/src/utils/base64.js";
|
|
2
3
|
import "../../../shared-ts/src/utils/encoders.js";
|
|
3
|
-
import { normalizeOptionalTrimmedString } from "../../../shared-ts/src/utils/normalize.js";
|
|
4
4
|
import { SIGNING_SESSION_SEAL_ALG, SIGNING_SESSION_SEAL_GROUP_ID } from "../../../shared-ts/src/utils/signingSessionSeal.js";
|
|
5
5
|
import { parseSigningSessionSealKeyVersion } from "../../../shared-ts/src/threshold/keyMaterialBrands.js";
|
|
6
6
|
import { createSigningSessionSealShamir3PassCipherAdapter } from "./crypto/cipher.js";
|
|
Binary file
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { ActiveWalletSessionV1, WalletSessionOperationCredentialV1 } from './contracts';
|
|
1
|
+
import type { ActiveWalletSessionV1, WalletSessionOperationCredentialV1, WalletSessionHome } from './contracts';
|
|
2
2
|
export declare function activeWalletSessionV1RecordsEqual(left: ActiveWalletSessionV1, right: ActiveWalletSessionV1): boolean;
|
|
3
3
|
export declare function walletSessionPreservesCapabilities(previous: ActiveWalletSessionV1, next: ActiveWalletSessionV1): boolean;
|
|
4
|
+
export declare function parseWalletSessionHome(raw: unknown): WalletSessionHome;
|
|
4
5
|
export declare function parseWalletSessionOperationCredentialV1(raw: unknown): WalletSessionOperationCredentialV1;
|
|
5
6
|
export declare function parseActiveWalletSessionV1(raw: unknown): ActiveWalletSessionV1;
|
|
6
7
|
//# sourceMappingURL=activeWalletSession.d.ts.map
|
|
@@ -670,9 +670,19 @@ export type ActiveWalletSessionV1 = {
|
|
|
670
670
|
readonly issuedAtMs: number;
|
|
671
671
|
readonly expiresAtMs: number;
|
|
672
672
|
};
|
|
673
|
+
/** Routing metadata selects an endpoint and grants no execution authority. */
|
|
674
|
+
export type WalletSessionHome = {
|
|
675
|
+
readonly kind: 'direct';
|
|
676
|
+
readonly region?: never;
|
|
677
|
+
} | {
|
|
678
|
+
readonly kind: 'regional';
|
|
679
|
+
readonly region: 'US' | 'WEUR' | 'APAC' | 'OC';
|
|
680
|
+
};
|
|
673
681
|
/** The bearer used to authenticate ordinary operations for an active session. */
|
|
674
682
|
export type WalletSessionOperationCredentialV1 = {
|
|
675
683
|
readonly kind: 'opaque_wallet_session_operation_credential_v1';
|
|
684
|
+
readonly ownershipGeneration: number;
|
|
685
|
+
readonly home: WalletSessionHome;
|
|
676
686
|
readonly token: string;
|
|
677
687
|
readonly walletSessionId: WalletSessionId;
|
|
678
688
|
};
|
|
@@ -81,7 +81,8 @@ type ThresholdEd25519Nep413FingerprintInput = ThresholdEd25519CanonicalScope & {
|
|
|
81
81
|
message: string;
|
|
82
82
|
recipient: string;
|
|
83
83
|
nonce: string;
|
|
84
|
-
|
|
84
|
+
callbackUrl: string | null;
|
|
85
|
+
state?: never;
|
|
85
86
|
};
|
|
86
87
|
type ThresholdEd25519DelegateActionFingerprintInput = ThresholdEd25519CanonicalScope & {
|
|
87
88
|
delegate: {
|
|
@@ -12,13 +12,15 @@ export declare const WALLET_EMAIL_OTP_REGISTRATION_OPERATION: "registration";
|
|
|
12
12
|
/** Linked-device enrollment: prove control of the wallet's enrolled email
|
|
13
13
|
* destination to complete one device link. */
|
|
14
14
|
export declare const WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION: "device_link";
|
|
15
|
-
export
|
|
15
|
+
export declare const WALLET_EMAIL_OTP_RELOCATION_OPERATION: "wallet_relocation";
|
|
16
|
+
export type WalletEmailOtpOperation = WalletEmailOtpLoginOperation | typeof WALLET_EMAIL_OTP_REGISTRATION_OPERATION | typeof WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION | typeof WALLET_EMAIL_OTP_RELOCATION_OPERATION;
|
|
16
17
|
export declare const WALLET_EMAIL_OTP_ACTIONS: {
|
|
17
18
|
readonly login: "wallet_email_otp_login";
|
|
18
19
|
readonly registration: "wallet_email_otp_registration";
|
|
19
20
|
readonly recoveryBootstrap: "wallet_email_otp_recovery_bootstrap";
|
|
20
21
|
readonly unseal: "wallet_email_otp_unseal";
|
|
21
22
|
readonly deviceLink: "wallet_email_otp_device_link";
|
|
23
|
+
readonly relocation: "wallet_email_otp_relocation";
|
|
22
24
|
};
|
|
23
25
|
export type WalletEmailOtpAction = (typeof WALLET_EMAIL_OTP_ACTIONS)[keyof typeof WALLET_EMAIL_OTP_ACTIONS];
|
|
24
26
|
export declare const WALLET_EMAIL_OTP_EXPORT_OPERATION: "export_key";
|
|
@@ -22,14 +22,6 @@ type RouterAbSignerEnvelopeHpkeRotatingPublicKeySetV1 = {
|
|
|
22
22
|
previous_retire_at_ms: number;
|
|
23
23
|
};
|
|
24
24
|
type RouterAbSignerEnvelopeHpkeRotationPublicKeySetV1 = RouterAbSignerEnvelopeHpkeCurrentPublicKeySetV1 | RouterAbSignerEnvelopeHpkeRotatingPublicKeySetV1;
|
|
25
|
-
type RouterAbSignerPeerVerifyingKeyHexV1 = {
|
|
26
|
-
role: RouterAbSignerRoleV1;
|
|
27
|
-
verifying_key_hex: string;
|
|
28
|
-
};
|
|
29
|
-
type RouterAbSignerPeerVerifyingKeyHexSetV1 = {
|
|
30
|
-
deriver_a: RouterAbSignerPeerVerifyingKeyHexV1;
|
|
31
|
-
deriver_b: RouterAbSignerPeerVerifyingKeyHexV1;
|
|
32
|
-
};
|
|
33
25
|
type RouterAbPublicHpkeKeyDescriptorV1 = {
|
|
34
26
|
key_epoch: string;
|
|
35
27
|
public_key: string;
|
|
@@ -37,7 +29,6 @@ type RouterAbPublicHpkeKeyDescriptorV1 = {
|
|
|
37
29
|
export type RouterAbPublicKeysetV2 = {
|
|
38
30
|
keyset_version: typeof ROUTER_AB_PUBLIC_KEYSET_VERSION_V2;
|
|
39
31
|
signer_envelope_hpke: RouterAbSignerEnvelopeHpkeRotationPublicKeySetV1;
|
|
40
|
-
signer_peer_verifying_keys: RouterAbSignerPeerVerifyingKeyHexSetV1;
|
|
41
32
|
signing_worker_server_output_hpke: RouterAbPublicHpkeKeyDescriptorV1;
|
|
42
33
|
};
|
|
43
34
|
export declare function requireRouterAbX25519PublicKey(value: unknown, label: string): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletSessionHome } from '../../../shared-ts/src/device-linking/contracts';
|
|
1
2
|
import type { Variant } from '../../../shared-ts/src/utils/variant';
|
|
2
3
|
import type { ActiveWalletAuthMethodRecordV2, WalletAuthMethodRecordV2 } from '../../../shared-ts/src/utils/walletAuthMethodRecord';
|
|
3
4
|
import { CAPABILITY_KINDS, EVM_ECDSA_MPC_OPERATION_KINDS, NEAR_ED25519_MPC_OPERATION_KINDS } from '../../../shared-ts/src/authorization/capabilityKinds';
|
|
@@ -78,6 +79,7 @@ export type IssuedHostedWalletSeamsSessionExchangeV2 = {
|
|
|
78
79
|
};
|
|
79
80
|
export type HostedWalletSeamsSessionExchangeDeliveryV2 = {
|
|
80
81
|
readonly kind: 'hosted_wallet_session_exchange_delivery_v2';
|
|
82
|
+
readonly home: WalletSessionHome;
|
|
81
83
|
readonly exchangeCode: HostedWalletSeamsSessionExchangeCode;
|
|
82
84
|
readonly nonce: HostedWalletSeamsSessionExchangeNonce;
|
|
83
85
|
readonly appOrigin: SessionOrigin;
|
|
@@ -112,6 +114,7 @@ export type RedeemHostedWalletSeamsSessionExchangeV2Input = {
|
|
|
112
114
|
};
|
|
113
115
|
export type HostedWalletSessionOperationCredentialV1 = {
|
|
114
116
|
readonly kind: 'opaque_hosted_wallet_session_operation_credential_v1';
|
|
117
|
+
readonly home: WalletSessionHome;
|
|
115
118
|
readonly token: HostedWalletSessionOperationCredentialToken;
|
|
116
119
|
readonly walletSessionId: WalletSessionId;
|
|
117
120
|
};
|
|
@@ -213,6 +216,7 @@ export type WalletSessionExactOperationContext = {
|
|
|
213
216
|
readonly authMethod: ActiveWalletAuthMethodRecordV2;
|
|
214
217
|
readonly retiredAtMs: null;
|
|
215
218
|
readonly ownerWalletScope: {
|
|
219
|
+
readonly ownershipGeneration: number;
|
|
216
220
|
readonly orgId: string;
|
|
217
221
|
readonly projectId: string;
|
|
218
222
|
readonly projectEnvironmentId: string;
|
|
@@ -318,12 +322,24 @@ export type WalletSessionAuthorizationV2MintRead = {
|
|
|
318
322
|
readonly primaryOperationCredentialDigestB64u: DigestB64u;
|
|
319
323
|
readonly retiredAtMs: number | null;
|
|
320
324
|
};
|
|
325
|
+
/** The registration decision fixed in the Wallet Session transaction. */
|
|
326
|
+
export type CommittedWalletRegistration = {
|
|
327
|
+
readonly ceremonyId: string;
|
|
328
|
+
readonly walletId: WalletId;
|
|
329
|
+
readonly state: 'registering' | 'active';
|
|
330
|
+
};
|
|
321
331
|
export type DirectV2CommitResult = {
|
|
332
|
+
/** Ordinary session issuance has no registration decision. */
|
|
333
|
+
readonly registration: CommittedWalletRegistration | null;
|
|
334
|
+
} & ({
|
|
322
335
|
readonly kind: 'inserted';
|
|
336
|
+
readonly ownershipGeneration: number;
|
|
337
|
+
readonly committed?: never;
|
|
323
338
|
} | {
|
|
324
339
|
readonly kind: 'already_committed';
|
|
340
|
+
readonly ownershipGeneration?: never;
|
|
325
341
|
readonly committed: WalletSessionAuthorizationV2MintRead;
|
|
326
|
-
};
|
|
342
|
+
});
|
|
327
343
|
export type DirectV2IssueResult = {
|
|
328
344
|
readonly kind: 'issued';
|
|
329
345
|
readonly session: WalletSessionAuthorizationV2;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TenantId } from '../../../shared-ts/src/authorization/capabilityKinds';
|
|
2
|
+
import type { CapabilityOperationEnvelope, CapabilityOperationFingerprintDigest } from '../../../shared-ts/src/authorization/operationFingerprint';
|
|
3
|
+
import type { WalletId } from '../../../shared-ts/src/utils/domainIds';
|
|
4
|
+
import type { AuthorizedOperationInput } from './domain';
|
|
5
|
+
import type { EcdsaWalletSessionAdmissionResult, EcdsaWalletSessionResolutionResult } from './ecdsaWalletSessionAdmission';
|
|
6
|
+
/** An Ed25519 signing operation a reusable Wallet Session admits for the wallet it signs for. */
|
|
7
|
+
export type Ed25519WalletSessionAdmissionInput = {
|
|
8
|
+
readonly operation: AuthorizedOperationInput & {
|
|
9
|
+
readonly operation: CapabilityOperationEnvelope<{
|
|
10
|
+
readonly capabilityKind: 'near_ed25519_mpc_signing';
|
|
11
|
+
readonly operationKind: 'near.sign_transaction' | 'near.sign_delegate_action' | 'near.sign_nep413_message';
|
|
12
|
+
}>;
|
|
13
|
+
readonly authorization: {
|
|
14
|
+
readonly kind: 'authorization_grant';
|
|
15
|
+
};
|
|
16
|
+
readonly quota: {
|
|
17
|
+
readonly kind: 'consume_reusable_wallet_session';
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
readonly walletId: WalletId;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* The outcomes of the ECDSA admission: a live operation carries the owner
|
|
24
|
+
* scope its own admission row pinned, so dispatch needs no second read.
|
|
25
|
+
*/
|
|
26
|
+
export type Ed25519WalletSessionAdmissionResult = EcdsaWalletSessionAdmissionResult;
|
|
27
|
+
/** The operation a finalize request names, found by the fingerprint its prepare claimed. */
|
|
28
|
+
export type Ed25519WalletSessionResolutionInput = {
|
|
29
|
+
readonly tenantId: TenantId;
|
|
30
|
+
readonly operationFingerprintDigest: CapabilityOperationFingerprintDigest;
|
|
31
|
+
readonly walletId: WalletId;
|
|
32
|
+
readonly nowMs: number;
|
|
33
|
+
};
|
|
34
|
+
export type Ed25519WalletSessionResolutionResult = EcdsaWalletSessionResolutionResult;
|
|
35
|
+
//# sourceMappingURL=ed25519WalletSessionAdmission.d.ts.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { WalletSessionRoutingPublisher } from './sessionRouting';
|
|
2
|
-
import type { D1EcdsaAdmissionPolicyRead } from '../router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
|
|
1
|
+
import type { WalletSessionLocatorPublication, WalletSessionRoutingPublisher } from './sessionRouting';
|
|
2
|
+
import type { D1EcdsaAdmissionPolicyRead, D1Ed25519AdmissionPolicyRead } from '../router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
|
|
3
3
|
import type { EcdsaMaterialRead } from '../core/d1EcdsaSignerRead';
|
|
4
|
+
import type { Ed25519SignerRead } from '../core/d1Ed25519SignerRead';
|
|
4
5
|
import type { D1PreparedStatementLike } from '../storage/tenantRoute';
|
|
5
6
|
import type { WalletAuthMethodId, WalletId } from '../../../shared-ts/src/utils/domainIds';
|
|
6
7
|
import type { ActiveWalletAuthorityV1 } from '../../../shared-ts/src/authorization/walletAuthority';
|
|
@@ -18,6 +19,11 @@ export type EcdsaWalletSessionAdmissionRead = {
|
|
|
18
19
|
readonly materialRead: EcdsaMaterialRead;
|
|
19
20
|
readonly policyRead: D1EcdsaAdmissionPolicyRead;
|
|
20
21
|
};
|
|
22
|
+
export type Ed25519WalletSessionAdmissionRead = {
|
|
23
|
+
readonly snapshot: WalletSessionAdmissionSnapshotV2;
|
|
24
|
+
readonly signerRead: Ed25519SignerRead;
|
|
25
|
+
readonly policyRead: D1Ed25519AdmissionPolicyRead;
|
|
26
|
+
};
|
|
21
27
|
export interface AuthorizationSessionPort {
|
|
22
28
|
putIssuedHostedWalletSeamsSessionExchange(exchange: IssuedHostedWalletSeamsSessionExchangeV2): Promise<void>;
|
|
23
29
|
redeemHostedWalletSeamsSessionExchange(input: RedeemHostedWalletSeamsSessionExchangeV2Input, publishCredentialLocator?: () => Promise<void>): Promise<PersistedHostedWalletSeamsSessionExchangeV2Result>;
|
|
@@ -33,6 +39,7 @@ export interface AuthorizationEvidencePort {
|
|
|
33
39
|
consumeVerifiedOwnerProof(proof: VerifiedOwnerProof, consumedAtMs: number, consumptionScopeId: string): Promise<boolean>;
|
|
34
40
|
}
|
|
35
41
|
export interface AuthorizationGrantPort {
|
|
42
|
+
readWalletSessionIssuanceGeneration(walletId: WalletId): Promise<number>;
|
|
36
43
|
retireWalletSessionAuthorizationsForAuthMethod(input: {
|
|
37
44
|
readonly tenantId: TenantId;
|
|
38
45
|
readonly walletId: WalletId;
|
|
@@ -54,6 +61,7 @@ export interface AuthorizationGrantPort {
|
|
|
54
61
|
/** Inserted confirms readback of the exact session identity and primary credential digest. */
|
|
55
62
|
commitDirectReplayableWalletSessionAuthorizationV2(input: {
|
|
56
63
|
readonly persisted: PersistedActiveWalletSessionAuthorizationV2;
|
|
64
|
+
readonly purpose: DirectWalletSessionCommitPurpose;
|
|
57
65
|
}): Promise<DirectV2CommitResult>;
|
|
58
66
|
readWalletSessionAuthorizationV2ByAuthorizationId(input: {
|
|
59
67
|
readonly expected: WalletSessionAuthorizationV2;
|
|
@@ -82,6 +90,12 @@ export interface AuthorizationGrantPort {
|
|
|
82
90
|
readonly nowMs: number;
|
|
83
91
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
84
92
|
}): Promise<EcdsaWalletSessionAdmissionRead | null>;
|
|
93
|
+
readEd25519WalletSessionAdmissionSnapshotByOperationCredential(input: {
|
|
94
|
+
readonly tenantId: TenantId;
|
|
95
|
+
readonly tokenHash: DigestB64u;
|
|
96
|
+
readonly nowMs: number;
|
|
97
|
+
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
98
|
+
}): Promise<Ed25519WalletSessionAdmissionRead | null>;
|
|
85
99
|
readWalletSessionExactOperationContextByCredential(input: {
|
|
86
100
|
readonly tenantId: TenantId;
|
|
87
101
|
readonly tokenHash: DigestB64u;
|
|
@@ -182,6 +196,18 @@ type IssueWalletSessionAuthorizationV2InputBase = {
|
|
|
182
196
|
readonly expiresAtMs: number;
|
|
183
197
|
};
|
|
184
198
|
export type IssueWalletSessionAuthorizationV2Input = IssueWalletSessionAuthorizationV2InputBase;
|
|
199
|
+
export type DirectWalletSessionCommitPurpose = {
|
|
200
|
+
readonly kind: 'ordinary';
|
|
201
|
+
readonly ceremonyId?: never;
|
|
202
|
+
} | {
|
|
203
|
+
readonly kind: 'registration';
|
|
204
|
+
readonly ceremonyId: string;
|
|
205
|
+
};
|
|
206
|
+
type DirectWalletSessionReplayMode = {
|
|
207
|
+
readonly kind: 'strict';
|
|
208
|
+
} | {
|
|
209
|
+
readonly kind: 'validated_registration_authority_projection';
|
|
210
|
+
};
|
|
185
211
|
export type PreparedWalletSessionAuthorizationV2 = {
|
|
186
212
|
readonly session: WalletSessionAuthorizationV2;
|
|
187
213
|
readonly quota: ActiveWalletSessionQuota;
|
|
@@ -239,13 +265,19 @@ export declare class AuthorizationService {
|
|
|
239
265
|
* committed digest cannot reproduce plaintext.
|
|
240
266
|
*/
|
|
241
267
|
issueDirectWalletSessionAuthorizationV2(input: IssueWalletSessionAuthorizationV2Input): Promise<DirectV2IssueResult>;
|
|
242
|
-
/**
|
|
243
|
-
|
|
244
|
-
|
|
268
|
+
/** Commits locally. Registration publishes the locator with home completion. */
|
|
269
|
+
commitDirectWalletSessionAuthorizationV2(input: IssueWalletSessionAuthorizationV2Input, replayMode: DirectWalletSessionReplayMode, purpose: DirectWalletSessionCommitPurpose, commitSession?: AuthorizationGrantPort['commitDirectReplayableWalletSessionAuthorizationV2']): Promise<{
|
|
270
|
+
readonly result: DirectV2IssueResult;
|
|
271
|
+
readonly publication: WalletSessionLocatorPublication & {
|
|
272
|
+
readonly kind: 'credential';
|
|
273
|
+
};
|
|
274
|
+
readonly registration: DirectV2CommitResult['registration'];
|
|
275
|
+
}>;
|
|
245
276
|
prepareDirectWalletSessionCredential(prepared: PreparedWalletSessionAuthorizationV2): Promise<{
|
|
246
277
|
persisted: PersistedActiveWalletSessionAuthorizationV2;
|
|
247
278
|
operationCredential: import("../../../shared-ts/src/device-linking").WalletSessionOperationCredentialV1;
|
|
248
279
|
}>;
|
|
280
|
+
private prepareDirectWalletSessionIssuance;
|
|
249
281
|
refreshWalletSessionAuthorizationV2AuthorityProjection(input: {
|
|
250
282
|
readonly existing: IssuedWalletSessionAuthorizationV2;
|
|
251
283
|
readonly authority: ActiveWalletAuthorityV1;
|
|
@@ -286,6 +318,12 @@ export declare class AuthorizationService {
|
|
|
286
318
|
readonly nowMs: number;
|
|
287
319
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
288
320
|
}): Promise<EcdsaWalletSessionAdmissionRead | null>;
|
|
321
|
+
readEd25519WalletSessionAdmissionSnapshotByOperationCredential(input: {
|
|
322
|
+
readonly tenantId: TenantId;
|
|
323
|
+
readonly token: string;
|
|
324
|
+
readonly nowMs: number;
|
|
325
|
+
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
326
|
+
}): Promise<Ed25519WalletSessionAdmissionRead | null>;
|
|
289
327
|
readLiveWalletSessionAuthorizationProjectionByCredential(input: {
|
|
290
328
|
readonly tenantId: TenantId;
|
|
291
329
|
readonly token: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletSessionHome } from '../../../shared-ts/src/device-linking/contracts';
|
|
1
2
|
import type { WalletId } from '../../../shared-ts/src/utils/domainIds';
|
|
2
3
|
import type { DigestB64u } from '../../../shared-ts/src/utils/canonicalPrimitives';
|
|
3
4
|
export type WalletSessionLocatorPublication = {
|
|
@@ -15,6 +16,7 @@ export type WalletSessionLocatorPublication = {
|
|
|
15
16
|
};
|
|
16
17
|
/** Publishes digest-to-wallet metadata; home-local storage authorizes its use. */
|
|
17
18
|
export interface WalletSessionRoutingPublisher {
|
|
19
|
+
home(): WalletSessionHome;
|
|
18
20
|
publish(input: WalletSessionLocatorPublication): Promise<void>;
|
|
19
21
|
}
|
|
20
22
|
//# sourceMappingURL=sessionRouting.d.ts.map
|
|
@@ -7,6 +7,8 @@ export * from './core/routerAbSigning/RouterAbEcdsaPresignRuntime';
|
|
|
7
7
|
export * from './core/types';
|
|
8
8
|
export * from './delegateAction';
|
|
9
9
|
export * from './router/framework/apiCredentialPorts';
|
|
10
|
+
export { createWalletRegistrationContextResolver, unavailableRegistrationContext, walletRegistrationContext, } from './router/auth/walletRegistrationContext';
|
|
11
|
+
export { parseWalletRegistrationSetupRequest } from './router/domains/walletRegistration/walletRegistrationRoutes';
|
|
10
12
|
export * from './router/framework/applyRouteMetering';
|
|
11
13
|
export * from './router/cloudflare-adaptor';
|
|
12
14
|
export type { CfEnv, CfExecutionContext, CfScheduledEvent, FetchHandler, RouterApiCloudflareSignerWorkerEnv, ScheduledHandler, SeamsD1SignerTenantStorageWorkerEnv, } from './router/cloudflare/runtime/cloudflare.types';
|
|
@@ -29,6 +31,7 @@ export * from './router/cloudflare/runtime/sessionAdapterRuntime';
|
|
|
29
31
|
export * from './router/cloudflare/runtime/walletConsoleOps';
|
|
30
32
|
export * from './router/cloudflare/runtime/walletConsoleOpsClient';
|
|
31
33
|
export * from './router/cloudflare/runtime/walletGateway';
|
|
34
|
+
export { WalletPlacementRoutes } from './router/cloudflare/runtime/walletPlacementRoutes';
|
|
32
35
|
export * from './router/cloudflare/runtime/walletRuntimeOps';
|
|
33
36
|
export * from './router/cloudflare/runtime/walletRuntimeOpsHandler';
|
|
34
37
|
export * from './router/cloudflare/runtime/walletControlOps';
|
|
@@ -57,7 +60,7 @@ export * from './router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRe
|
|
|
57
60
|
export * from './router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization';
|
|
58
61
|
export * from './router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare';
|
|
59
62
|
export * from './router/domains/signingOperations/routerAbNormalSigningAdmissionCore';
|
|
60
|
-
export {
|
|
63
|
+
export { evaluateRouterAbNormalSigningAdmission, type RouterAbEcdsaOperationAdmission, type RouterAbEcdsaOperationAdmissionKind, type RouterAbJsonRouteResult, type RouterAbNormalSigningAdmissionAdapter, type RouterAbNormalSigningAdmissionEvaluationInput, type RouterAbNormalSigningAdmissionFailure, type RouterAbNormalSigningAdmissionFailureCode, type RouterAbNormalSigningAdmissionInput, type RouterAbNormalSigningAdmissionResult, type RouterAbNormalSigningRouteAdmission, type RouterAbNormalSigningRouteRuntime, type RouterAbSigningWorkerJsonResult, } from './router/domains/signingOperations/routerAbNormalSigningAdmission';
|
|
61
64
|
export { authenticateRouterAbWalletOperationStepUpIdentity } from './router/domains/signingOperations/routerAbOperationStepUp';
|
|
62
65
|
export { buildRouterAbEcdsaDerivationPrivateSigningWorkerBody, buildRouterAbEd25519PrivateSigningWorkerBody, computeRouterAbEd25519NormalSigningAdmissionMaterial, parseRouterAbEd25519NormalSigningScopeV2, postRouterAbSigningWorkerJson, ROUTER_AB_ECDSA_DERIVATION_PRIVATE_SIGNING_PATHS, ROUTER_AB_ED25519_PRIVATE_SIGNING_PATHS, type RouterAbEcdsaDerivationPrivateSigningPath, type RouterAbEcdsaDerivationPrivateSigningWorkerBody, type RouterAbEd25519NormalSigningScopeV2, type RouterAbEd25519PrivateSigningPath, type RouterAbEd25519PrivateSigningWorkerBody, type RouterAbNormalSigningMaterialSourceV1, } from './router/domains/signingOperations/routerAbPrivateSigningWorker';
|
|
63
66
|
export * from './router/domains/signingOperations/routerAbEd25519NormalSigningRoute';
|
|
@@ -104,8 +107,6 @@ export { CloudflareD1GoogleEmailOtpRegistrationAttemptStore } from './router/clo
|
|
|
104
107
|
export type { GoogleEmailOtpRegistrationAttemptStore } from './router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore';
|
|
105
108
|
export { parseGoogleEmailOtpRegistrationAttemptRecord, parseGoogleEmailOtpRegistrationOfferCandidates, requireRuntimePolicyScope, } from './router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords';
|
|
106
109
|
export { prepareD1TenantStatement } from './core/d1TenantStore';
|
|
107
|
-
export { D1EmailOtpRateLimitCounter } from './router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore';
|
|
108
|
-
export type { EmailOtpRateLimitCounter } from './router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore';
|
|
109
110
|
export type { PasskeyCredentialClaims } from './core/passkeyCredentialClaims';
|
|
110
111
|
export type { WebAuthnSyncChallengeStore, WebAuthnSyncChallengeRecord, } from './core/WebAuthnSyncChallengeStore';
|
|
111
112
|
export { parseWebAuthnSyncChallengeRecord } from './router/cloudflare/d1/webauthn/d1WebAuthnRecords';
|
|
@@ -117,4 +118,7 @@ export type { LinkedDeviceBootstrapStore, LinkedDeviceBootstrapResult, } from '.
|
|
|
117
118
|
export { parseLinkedDeviceSessionRecordV1 } from './core/deviceLinking/linkedDeviceSessionRecord';
|
|
118
119
|
export type { LinkedDeviceSessionRecordV1 } from './core/deviceLinking/linkedDeviceSessionRecord';
|
|
119
120
|
export { computeLinkedDeviceSessionClaimDigestV1 } from '../../shared-ts/src/device-linking/digests';
|
|
121
|
+
export { admitD1EstablishedWalletHome } from './router/cloudflare/d1/registration/d1WalletExecutionAuthority';
|
|
122
|
+
export { D1WalletObjectAddresses } from './router/cloudflare/d1/walletObjectAddresses';
|
|
123
|
+
export { walletObjectIdentity, WalletObjectAddressSnapshot, type WalletObjectIdentity } from './router/cloudflare/runtime/walletObjectAddresses';
|
|
120
124
|
//# sourceMappingURL=cloud-host.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ThresholdRuntimePolicyScope } from './types';
|
|
2
|
-
import type { EmailOtpChallengeRecord, EmailOtpGrantRecord, EmailOtpUnlockChallengeRecord, GoogleEmailOtpRegistrationAttemptRecord, GoogleEmailOtpRegistrationAttemptScopeInput, PendingGoogleEmailOtpRegistrationAttemptRecord } from './EmailOtpStores';
|
|
2
|
+
import type { EmailOtpChallengeRecord, EmailOtpChallengePurpose, EmailOtpGrantRecord, EmailOtpUnlockChallengeRecord, GoogleEmailOtpRegistrationAttemptRecord, GoogleEmailOtpRegistrationAttemptScopeInput, PendingGoogleEmailOtpRegistrationAttemptRecord } from './EmailOtpStores';
|
|
3
|
+
export declare function parseEmailOtpChallengePurpose(action: unknown, operation: unknown): EmailOtpChallengePurpose | null;
|
|
3
4
|
export declare function parseCurrentEmailOtpChallengeRow(input: {
|
|
4
5
|
recordJson: unknown;
|
|
5
6
|
expiresAtMs: unknown;
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
import type { ThresholdRuntimePolicyScope } from './types';
|
|
2
2
|
import type { WalletEmailOtpChannel, WalletEmailOtpLoginOperation, WalletEmailOtpOperation } from '../../../shared-ts/src/utils/emailOtpDomain';
|
|
3
|
-
import { WALLET_EMAIL_OTP_ACTIONS } from '../../../shared-ts/src/utils/emailOtpDomain';
|
|
3
|
+
import { WALLET_EMAIL_OTP_ACTIONS, WALLET_EMAIL_OTP_REGISTRATION_OPERATION, WALLET_EMAIL_OTP_UNLOCK_OPERATION, WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, WALLET_EMAIL_OTP_RELOCATION_OPERATION } from '../../../shared-ts/src/utils/emailOtpDomain';
|
|
4
4
|
export type EmailOtpChannel = WalletEmailOtpChannel;
|
|
5
5
|
export type EmailOtpGrantAction = typeof WALLET_EMAIL_OTP_ACTIONS.unseal | typeof WALLET_EMAIL_OTP_ACTIONS.recoveryBootstrap;
|
|
6
|
-
export type EmailOtpChallengeAction = typeof WALLET_EMAIL_OTP_ACTIONS.login | typeof WALLET_EMAIL_OTP_ACTIONS.registration | typeof WALLET_EMAIL_OTP_ACTIONS.recoveryBootstrap | typeof WALLET_EMAIL_OTP_ACTIONS.deviceLink;
|
|
6
|
+
export type EmailOtpChallengeAction = typeof WALLET_EMAIL_OTP_ACTIONS.login | typeof WALLET_EMAIL_OTP_ACTIONS.registration | typeof WALLET_EMAIL_OTP_ACTIONS.recoveryBootstrap | typeof WALLET_EMAIL_OTP_ACTIONS.deviceLink | typeof WALLET_EMAIL_OTP_ACTIONS.relocation;
|
|
7
7
|
export type EmailOtpChallengeOperation = WalletEmailOtpOperation;
|
|
8
8
|
export type EmailOtpLoginChallengeOperation = WalletEmailOtpLoginOperation;
|
|
9
|
+
export type EmailOtpChallengePurpose = {
|
|
10
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.login;
|
|
11
|
+
readonly operation: WalletEmailOtpLoginOperation;
|
|
12
|
+
} | {
|
|
13
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.registration;
|
|
14
|
+
readonly operation: typeof WALLET_EMAIL_OTP_REGISTRATION_OPERATION;
|
|
15
|
+
} | {
|
|
16
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.recoveryBootstrap;
|
|
17
|
+
readonly operation: typeof WALLET_EMAIL_OTP_UNLOCK_OPERATION;
|
|
18
|
+
} | {
|
|
19
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.deviceLink;
|
|
20
|
+
readonly operation: typeof WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION;
|
|
21
|
+
} | {
|
|
22
|
+
readonly action: typeof WALLET_EMAIL_OTP_ACTIONS.relocation;
|
|
23
|
+
readonly operation: typeof WALLET_EMAIL_OTP_RELOCATION_OPERATION;
|
|
24
|
+
};
|
|
9
25
|
export type EmailOtpChallengeRecord = {
|
|
10
26
|
version: 'email_otp_challenge_v1';
|
|
11
27
|
challengeId: string;
|
|
@@ -25,13 +41,11 @@ export type EmailOtpChallengeRecord = {
|
|
|
25
41
|
otpCode: string;
|
|
26
42
|
/** Exact wallet, owner, operation, origin, and audience binding digest. */
|
|
27
43
|
ownerProofBindingDigest: string;
|
|
28
|
-
action: EmailOtpChallengeAction;
|
|
29
|
-
operation: EmailOtpChallengeOperation;
|
|
30
44
|
createdAtMs: number;
|
|
31
45
|
expiresAtMs: number;
|
|
32
46
|
attemptCount: number;
|
|
33
47
|
maxAttempts: number;
|
|
34
|
-
};
|
|
48
|
+
} & EmailOtpChallengePurpose;
|
|
35
49
|
export type EmailOtpGrantRecord = {
|
|
36
50
|
version: 'email_otp_grant_v1';
|
|
37
51
|
grantToken: string;
|