@seams/wallet-server 0.8.0 → 0.9.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/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
package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CorrelationId } from '../../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
2
2
|
import type { RegistrationSignerSetSelection } from '../../../../../shared-ts/src/utils/registrationSignerPlan';
|
|
3
|
+
import type { RegistrationEstablishedSessionProjectionV2 } from '../../../../../shared-ts/src/utils/registrationEstablishedSession';
|
|
3
4
|
import type { RegisterWalletInput, RegistrationAuthMethodInput } from '../../../../../shared-ts/src/utils/registrationAuthMethodInput';
|
|
4
5
|
import type { RouterAbEcdsaRegistrationRequestV1, RouterAbEcdsaVerifiedClientActivationFactsV1 } from '../../../../../shared-ts/src/utils/routerAbEcdsaDerivation';
|
|
5
6
|
import type { WalletRegistrationAuthorityInput, WalletRegistrationFinalizeSignerWork } from '../../../core/registrationContracts';
|
|
@@ -55,9 +56,8 @@ export type WalletRegistrationActivateInput = {
|
|
|
55
56
|
* request, so the client has nothing to cross-check against and asking it
|
|
56
57
|
* to supply one would be theatre.
|
|
57
58
|
*/
|
|
58
|
-
readonly planKind: 'evm_family_ecdsa' | 'near_ed25519_and_evm_family_ecdsa'
|
|
59
|
-
|
|
60
|
-
readonly ecdsa?: {
|
|
59
|
+
readonly planKind: 'evm_family_ecdsa' | 'near_ed25519_and_evm_family_ecdsa';
|
|
60
|
+
readonly ecdsa: {
|
|
61
61
|
readonly activationCorrelationId: CorrelationId;
|
|
62
62
|
readonly activationRequestDigestB64u: string;
|
|
63
63
|
readonly clientActivation: RouterAbEcdsaVerifiedClientActivationFactsV1;
|
|
@@ -82,12 +82,12 @@ export type WalletRegistrationNearProvisioningInput = {
|
|
|
82
82
|
}>['ed25519'];
|
|
83
83
|
readonly emailOtpEnrollment?: unknown;
|
|
84
84
|
/**
|
|
85
|
-
* The custody ceremony's sealed output.
|
|
86
|
-
*
|
|
87
|
-
* `near_pending` with no Yao result yet, so this deferred leg is the first
|
|
88
|
-
* point at which that wallet has a key set to seal against.
|
|
85
|
+
* The custody ceremony's sealed output. NEAR-only registration commits its
|
|
86
|
+
* wallet and custody here after Yao and recovery backup complete.
|
|
89
87
|
*/
|
|
90
88
|
readonly walletCustodyCommit?: unknown;
|
|
91
89
|
readonly verifier: WalletRegistrationSetupVerifier;
|
|
90
|
+
/** Runs after session persistence, beside home publication. It exposes no response. */
|
|
91
|
+
readonly onSessionCommitted?: (session: RegistrationEstablishedSessionProjectionV2) => Promise<void>;
|
|
92
92
|
};
|
|
93
93
|
//# sourceMappingURL=walletRegistrationInputs.d.ts.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { WalletSessionLocatorPublication } from '../../../authorization/sessionRouting';
|
|
2
|
+
import type { CommittedWalletRegistration } from '../../../authorization/domain';
|
|
3
|
+
import type { D1PreparedStatementLike } from '../../../storage/tenantRoute';
|
|
1
4
|
import { type DeviceId } from '../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
2
5
|
import { type WalletAuthorityId, type WalletAuthMethodId, type WalletId } from '../../../../../shared-ts/src/utils/domainIds';
|
|
3
6
|
import type { WalletRegistrationSetupInput } from './walletRegistrationInputs';
|
|
@@ -13,6 +16,8 @@ export type WalletRegistrationSetupReservation = {
|
|
|
13
16
|
export type WalletRegistrationSetupReservationResult = {
|
|
14
17
|
readonly ok: true;
|
|
15
18
|
readonly reservation: WalletRegistrationSetupReservation;
|
|
19
|
+
/** The ownership generation the reserved wallet's custody objects are named by. */
|
|
20
|
+
readonly ownershipGeneration: number;
|
|
16
21
|
readonly lifecycle: 'reserved' | 'established';
|
|
17
22
|
readonly code?: never;
|
|
18
23
|
readonly message?: never;
|
|
@@ -21,8 +26,14 @@ export type WalletRegistrationSetupReservationResult = {
|
|
|
21
26
|
readonly code: string;
|
|
22
27
|
readonly message: string;
|
|
23
28
|
readonly reservation?: never;
|
|
29
|
+
readonly ownershipGeneration?: never;
|
|
24
30
|
readonly lifecycle?: never;
|
|
25
31
|
};
|
|
32
|
+
/** Persist custody addresses before setup completes, then start the reserved wallet objects. */
|
|
33
|
+
export type RegistrationWalletStarter = (registration: {
|
|
34
|
+
readonly walletId: WalletId;
|
|
35
|
+
readonly ownershipGeneration: number;
|
|
36
|
+
}) => Promise<void>;
|
|
26
37
|
type ReservationOutcome = {
|
|
27
38
|
readonly ok: true;
|
|
28
39
|
} | {
|
|
@@ -30,22 +41,85 @@ type ReservationOutcome = {
|
|
|
30
41
|
readonly code: string;
|
|
31
42
|
readonly message: string;
|
|
32
43
|
};
|
|
44
|
+
type RegistrationHomeAdmission<Purpose extends 'registration' | 'ordinary' = 'registration' | 'ordinary'> = {
|
|
45
|
+
readonly ok: true;
|
|
46
|
+
readonly ownershipGeneration: number;
|
|
47
|
+
readonly purpose: Purpose;
|
|
48
|
+
readonly code?: never;
|
|
49
|
+
readonly message?: never;
|
|
50
|
+
} | {
|
|
51
|
+
readonly ok: false;
|
|
52
|
+
readonly code: string;
|
|
53
|
+
readonly message: string;
|
|
54
|
+
readonly ownershipGeneration?: never;
|
|
55
|
+
readonly purpose?: never;
|
|
56
|
+
};
|
|
57
|
+
export interface WalletExecutionAuthority {
|
|
58
|
+
admitEstablishedHome(input: {
|
|
59
|
+
readonly walletId: WalletId;
|
|
60
|
+
}): Promise<RegistrationHomeAdmission<'ordinary'>>;
|
|
61
|
+
}
|
|
33
62
|
export interface WalletRegistrationReservationAuthority {
|
|
34
63
|
reserve(input: WalletRegistrationSetupInput): Promise<WalletRegistrationSetupReservationResult>;
|
|
35
64
|
admitHome(input: {
|
|
36
65
|
readonly ceremonyId: string;
|
|
37
66
|
readonly walletId: WalletId;
|
|
38
|
-
}): Promise<
|
|
67
|
+
}): Promise<RegistrationHomeAdmission>;
|
|
39
68
|
complete(input: {
|
|
40
69
|
readonly ceremonyId: string;
|
|
41
70
|
readonly walletId: WalletId;
|
|
42
|
-
|
|
71
|
+
} & ({
|
|
72
|
+
readonly outcome: 'established';
|
|
73
|
+
readonly session: WalletSessionLocatorPublication & {
|
|
74
|
+
readonly kind: 'credential';
|
|
75
|
+
};
|
|
76
|
+
} | {
|
|
77
|
+
readonly outcome: 'cancelled';
|
|
78
|
+
readonly session?: never;
|
|
79
|
+
})): Promise<ReservationOutcome>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The local write that makes an established registration active. It follows
|
|
83
|
+
* the acknowledged directory write. It commits in the batch of the record
|
|
84
|
+
* that completes the registration operation, or it does not commit.
|
|
85
|
+
*/
|
|
86
|
+
export type RegistrationActivationWrite = {
|
|
87
|
+
readonly statements: readonly D1PreparedStatementLike[];
|
|
88
|
+
};
|
|
89
|
+
export type RegistrationEstablishedPublication = {
|
|
90
|
+
readonly ok: true;
|
|
91
|
+
/** None when an earlier completion already activated the registration. */
|
|
92
|
+
readonly activation: RegistrationActivationWrite | null;
|
|
93
|
+
readonly code?: never;
|
|
94
|
+
readonly message?: never;
|
|
95
|
+
} | {
|
|
96
|
+
readonly ok: false;
|
|
97
|
+
readonly code: string;
|
|
98
|
+
readonly message: string;
|
|
99
|
+
readonly activation?: never;
|
|
100
|
+
};
|
|
101
|
+
/** The registration authority at the wallet's home, which owns the local activation. */
|
|
102
|
+
export interface WalletRegistrationHomeAuthority extends Pick<WalletRegistrationReservationAuthority, 'reserve' | 'admitHome'> {
|
|
103
|
+
/**
|
|
104
|
+
* Publishes the committed registration decision to its directory and prepares the
|
|
105
|
+
* activation. The caller commits the activation with its completion record.
|
|
106
|
+
*/
|
|
107
|
+
publishEstablished(input: {
|
|
108
|
+
readonly registration: CommittedWalletRegistration;
|
|
109
|
+
readonly session: WalletSessionLocatorPublication & {
|
|
110
|
+
readonly kind: 'credential';
|
|
111
|
+
};
|
|
112
|
+
}): Promise<RegistrationEstablishedPublication>;
|
|
113
|
+
/** Fixes a definitive cancellation, publishes it, and retires the local home. */
|
|
114
|
+
cancel(input: {
|
|
115
|
+
readonly ceremonyId: string;
|
|
116
|
+
readonly walletId: WalletId;
|
|
43
117
|
}): Promise<ReservationOutcome>;
|
|
44
118
|
}
|
|
45
119
|
export declare function parseWalletRegistrationSetupReservation(raw: unknown): WalletRegistrationSetupReservation;
|
|
46
|
-
export declare function proposeWalletRegistrationSetup(input: WalletRegistrationSetupInput): WalletRegistrationSetupReservation;
|
|
47
|
-
export declare function walletRegistrationSetupRequestDigest(namespace: string, input: WalletRegistrationSetupInput): Promise<string>;
|
|
48
|
-
export declare function
|
|
49
|
-
export declare function admitRegistrationReservationHome(authority: WalletRegistrationReservationAuthority | null, input: Parameters<WalletRegistrationReservationAuthority['admitHome']>[0]): Promise<
|
|
120
|
+
export declare function proposeWalletRegistrationSetup(input: Pick<WalletRegistrationSetupInput, 'request'>): WalletRegistrationSetupReservation;
|
|
121
|
+
export declare function walletRegistrationSetupRequestDigest(namespace: string, input: Pick<WalletRegistrationSetupInput, 'request' | 'orgId' | 'expectedOrigin' | 'runtimePolicyScope'>): Promise<string>;
|
|
122
|
+
export declare function cancelRegistrationHome(authority: Pick<WalletRegistrationHomeAuthority, 'cancel'> | null, input: Parameters<WalletRegistrationHomeAuthority['cancel']>[0]): Promise<ReservationOutcome>;
|
|
123
|
+
export declare function admitRegistrationReservationHome(authority: Pick<WalletRegistrationReservationAuthority, 'admitHome'> | null, input: Parameters<WalletRegistrationReservationAuthority['admitHome']>[0]): Promise<RegistrationHomeAdmission>;
|
|
50
124
|
export {};
|
|
51
125
|
//# sourceMappingURL=walletRegistrationReservation.d.ts.map
|
package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import type { WalletRegistrationContextResolver } from '../../framework/apiCredentialPorts';
|
|
1
2
|
import type { WalletRegistrationNearProvisioningResponseV2, WalletRegistrationNearAdmissionResponseV2, WalletRegistrationActivateRouteResponseV2, WalletRegistrationRespondResponseV2 } from '../../../core/threeRouteRegistrationContracts';
|
|
2
3
|
import type { RouterApiPublishableKeyAuthAdapter } from '../../framework/routerApi';
|
|
3
4
|
import type { RouterApiAuthorizationSessionService, RouterApiWalletRegistrationRouteService } from '../../framework/authServicePort';
|
|
4
5
|
import type { FundImplicitNearAccountResult } from '../../../core/types';
|
|
5
6
|
import type { CreateAddAuthMethodIntentResponse, CreateAddSignerIntentResponse, WalletAddSignerFinalizeResponse, WalletAddSignerEcdsaActivationResponse, WalletAddSignerEcdsaDerivationRespondResponse, WalletAddSignerStartResponse, WalletAddAuthMethodFinalizeResponse, WalletRevokeAuthMethodResponse, WalletAddAuthMethodStartResponse } from '../../../core/registrationContracts';
|
|
6
7
|
import type { NormalizedRouterLogger } from '../../framework/logger';
|
|
7
|
-
import type { RouterApiKeyAuthAdapter, RouterApiProjectEnvironmentResolver, SessionAdapter
|
|
8
|
+
import type { RouterApiKeyAuthAdapter, RouterApiProjectEnvironmentResolver, SessionAdapter } from '../../framework/routerApi';
|
|
8
9
|
import type { HeaderRecord, RouteResponse } from '../../framework/routeExecutionContext';
|
|
9
10
|
import type { RouteDefinition } from '../../framework/routeDefinitions';
|
|
10
11
|
import type { SigningSessionSealRoutesOptions } from '../../../threshold/session/signingSessionSeal/signingSessionSeal.types';
|
|
11
12
|
import type { RouteErrorBody } from '../../framework/routeResponses';
|
|
12
13
|
import type { RouterAbPublicKeysetV2 } from '../../../../../shared-ts/src/utils/routerAbPublicKeyset';
|
|
14
|
+
import type { WalletRegistrationSetupRequest } from './walletRegistrationInputs';
|
|
13
15
|
type RouterApiWalletRegistrationServices = {
|
|
14
16
|
walletRegistration: RouterApiWalletRegistrationRouteService;
|
|
15
17
|
authorizationSessions: RouterApiAuthorizationSessionService;
|
|
@@ -18,7 +20,7 @@ type RouterApiWalletRegistrationServices = {
|
|
|
18
20
|
routerAbPublicKeyset?: RouterAbPublicKeysetV2 | null;
|
|
19
21
|
session?: SessionAdapter | null;
|
|
20
22
|
publishableKeyAuth?: RouterApiPublishableKeyAuthAdapter | null;
|
|
21
|
-
|
|
23
|
+
registrationContext?: WalletRegistrationContextResolver | null;
|
|
22
24
|
};
|
|
23
25
|
type RouterApiWalletRegistrationInput = {
|
|
24
26
|
body: unknown;
|
|
@@ -31,7 +33,17 @@ type RouterApiWalletRegistrationInput = {
|
|
|
31
33
|
services: RouterApiWalletRegistrationServices;
|
|
32
34
|
sourceIp?: string;
|
|
33
35
|
signingSessionSeal?: SigningSessionSealRoutesOptions | null;
|
|
36
|
+
waitUntil?: (promise: Promise<unknown>) => void;
|
|
34
37
|
};
|
|
38
|
+
type ParseResult<T> = {
|
|
39
|
+
ok: true;
|
|
40
|
+
value: T;
|
|
41
|
+
} | {
|
|
42
|
+
ok: false;
|
|
43
|
+
code: 'invalid_body';
|
|
44
|
+
message: string;
|
|
45
|
+
};
|
|
46
|
+
export declare function parseWalletRegistrationSetupRequest(body: Record<string, unknown>): ParseResult<WalletRegistrationSetupRequest>;
|
|
35
47
|
export declare function handleRouterApiWalletAddSignerIntent(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<CreateAddSignerIntentResponse | RouteErrorBody>>;
|
|
36
48
|
export declare function handleRouterApiWalletRegistrationSetup(input: RouterApiWalletRegistrationInput): Promise<RouteResponse>;
|
|
37
49
|
/**
|
|
@@ -49,9 +61,7 @@ export declare function handleRouterApiWalletRegistrationNearAdmission(input: Ro
|
|
|
49
61
|
*/
|
|
50
62
|
export declare function handleRouterApiWalletRegistrationActivate(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<WalletRegistrationActivateRouteResponseV2 | RouteErrorBody>>;
|
|
51
63
|
/**
|
|
52
|
-
*
|
|
53
|
-
* the client calls after activate, once its already-running Yao computation
|
|
54
|
-
* produces an activation.
|
|
64
|
+
* Commits a NEAR-only wallet or completes a mixed wallet's deferred signer.
|
|
55
65
|
*/
|
|
56
66
|
export declare function handleRouterApiWalletRegistrationNearProvisioning(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<WalletRegistrationNearProvisioningResponseV2 | RouteErrorBody>>;
|
|
57
67
|
export declare function handleRouterApiWalletAddSignerStart(input: RouterApiWalletRegistrationInput): Promise<RouteResponse<WalletAddSignerStartResponse | RouteErrorBody>>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { RouterApiKeyAuthFailureCode } from '../../../../shared-ts/src/utils/routerApiKeyAuth';
|
|
2
|
+
import type { WalletRegistrationSetupRequest } from '../domains/walletRegistration/walletRegistrationInputs';
|
|
3
|
+
import type { ReadonlyExclusiveUnion } from '../../../../shared-ts/src/utils/variant';
|
|
2
4
|
export declare const ROUTER_API_CREDENTIAL_SCOPES: readonly ["accounts.create", "wallets.read", "wallets.auth_methods.create", "wallets.signers.create"];
|
|
3
5
|
export type RouterApiCredentialScope = (typeof ROUTER_API_CREDENTIAL_SCOPES)[number];
|
|
4
6
|
export type { RouterApiKeyAuthFailureCode };
|
|
@@ -47,6 +49,28 @@ export type RouterApiPublishableKeyAuthResult = {
|
|
|
47
49
|
export interface RouterApiPublishableKeyAuthAdapter {
|
|
48
50
|
authenticate(input: RouterApiPublishableKeyAuthRequest): Promise<RouterApiPublishableKeyAuthResult>;
|
|
49
51
|
}
|
|
52
|
+
export type WalletRegistrationContextResult = ReadonlyExclusiveUnion<{
|
|
53
|
+
ok: true;
|
|
54
|
+
principal: RouterApiKeyPrincipal;
|
|
55
|
+
environment: RouterApiProjectEnvironment & {
|
|
56
|
+
readonly status: 'ACTIVE';
|
|
57
|
+
};
|
|
58
|
+
} | {
|
|
59
|
+
ok: false;
|
|
60
|
+
status: 401 | 403;
|
|
61
|
+
code: RouterApiPublishableKeyAuthFailureCode;
|
|
62
|
+
message: string;
|
|
63
|
+
} | {
|
|
64
|
+
ok: false;
|
|
65
|
+
status: 500;
|
|
66
|
+
code: 'registration_environment_unavailable';
|
|
67
|
+
message: string;
|
|
68
|
+
}>;
|
|
69
|
+
export interface WalletRegistrationContextResolver {
|
|
70
|
+
resolve(input: RouterApiPublishableKeyAuthRequest & {
|
|
71
|
+
readonly registration: WalletRegistrationSetupRequest;
|
|
72
|
+
}): Promise<WalletRegistrationContextResult>;
|
|
73
|
+
}
|
|
50
74
|
export type RouterApiUsageMeterAction = 'wallet_created';
|
|
51
75
|
export interface RouterApiUsageMeterEvent {
|
|
52
76
|
orgId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RouteResponse } from './routeExecutionContext';
|
|
2
|
-
import type { D1EcdsaAdmissionPolicyRead } from '../cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
|
|
2
|
+
import type { D1EcdsaAdmissionPolicyRead, D1Ed25519AdmissionPolicyRead } from '../cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
|
|
3
3
|
import type { EcdsaMaterialRead, EcdsaMaterialActivationReadInput } from '../../core/d1EcdsaSignerRead';
|
|
4
|
+
import type { Ed25519SignerRead } from '../../core/d1Ed25519SignerRead';
|
|
4
5
|
import type { EcdsaMaterialReadSnapshot } from '../../core/ecdsaMaterialReadSnapshot';
|
|
5
6
|
import type { DigestB64u } from '../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
6
7
|
import type { TenantRootIdentityV1 } from '../../../../shared-ts/src/tenant-root/tenantRootIdentity';
|
|
@@ -112,6 +113,12 @@ export type RouterApiWalletSessionSigningCandidate = {
|
|
|
112
113
|
readonly candidate: RouterApiWalletSessionAuthorizationV2ExhaustedCandidateContext;
|
|
113
114
|
readonly context?: never;
|
|
114
115
|
};
|
|
116
|
+
/** An active session with the Ed25519 signer and policy rows its statement also read. */
|
|
117
|
+
export type RouterApiEd25519WalletSessionSigningRead = {
|
|
118
|
+
readonly context: RouterApiWalletSessionAuthorizationV2AdmissionContext;
|
|
119
|
+
readonly signerRead: Ed25519SignerRead;
|
|
120
|
+
readonly policyRead: D1Ed25519AdmissionPolicyRead;
|
|
121
|
+
};
|
|
115
122
|
type RouterApiHostedWalletSessionAuthorizationV2AdmissionContext = RouterApiWalletSessionAuthorizationV2AdmissionContext & {
|
|
116
123
|
readonly hostedCredentialId: HostedWalletSessionCredentialId;
|
|
117
124
|
readonly appOrigin: SessionOrigin;
|
|
@@ -964,6 +971,8 @@ export interface RouterApiWalletRegistrationService {
|
|
|
964
971
|
resolveEd25519MaterialActivation(input: {
|
|
965
972
|
readonly walletId: string;
|
|
966
973
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
974
|
+
/** Signer rows the caller's session statement already read for this wallet and activation. */
|
|
975
|
+
readonly signerRead?: Ed25519SignerRead;
|
|
967
976
|
}): Promise<{
|
|
968
977
|
readonly ok: true;
|
|
969
978
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
@@ -1010,6 +1019,7 @@ export interface RouterApiWalletRegistrationService {
|
|
|
1010
1019
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
1011
1020
|
}): Promise<{
|
|
1012
1021
|
readonly ok: true;
|
|
1022
|
+
readonly ownershipGeneration: number;
|
|
1013
1023
|
readonly identityDigestB64u: string;
|
|
1014
1024
|
readonly custodyLineageB64u: string;
|
|
1015
1025
|
readonly projectEnvironmentId: string;
|
|
@@ -1024,7 +1034,7 @@ export interface RouterApiWalletRegistrationService {
|
|
|
1024
1034
|
respondWalletRegistration(input: WalletRegistrationRespondInput, traceContext?: RouterAbTraceContextV1, serverTiming?: Array<readonly [string, number]>): Promise<WalletRegistrationRespondResponseV2>;
|
|
1025
1035
|
authorizeWalletRegistrationNearAdmission(input: WalletRegistrationNearAdmissionInput): Promise<WalletRegistrationNearAdmissionResponseV2>;
|
|
1026
1036
|
activateWalletRegistration(input: WalletRegistrationActivateInput, traceContext?: RouterAbTraceContextV1, serverTiming?: Array<readonly [string, number]>): Promise<WalletRegistrationActivateResponseV2>;
|
|
1027
|
-
completeWalletRegistrationNearProvisioning(input: WalletRegistrationNearProvisioningInput, serverTiming?: Array<readonly [string, number]>): Promise<WalletRegistrationNearProvisioningResponseV2>;
|
|
1037
|
+
completeWalletRegistrationNearProvisioning(input: WalletRegistrationNearProvisioningInput, serverTiming?: Array<readonly [string, number]>, waitUntil?: (promise: Promise<unknown>) => void): Promise<WalletRegistrationNearProvisioningResponseV2>;
|
|
1028
1038
|
refreshEd25519YaoWalletSession(input: RouterAbEd25519YaoBudgetRefreshRequestV1): Promise<RouterAbEd25519YaoBudgetRefreshResponseV1>;
|
|
1029
1039
|
provisionEd25519YaoWalletSession(input: RouterAbEd25519YaoVerifiedWalletUnlockRequestV1): Promise<RouterAbEd25519YaoVerifiedWalletUnlockResponseV1>;
|
|
1030
1040
|
recordEcdsaPostRegistrationProof(input: {
|
|
@@ -1308,15 +1318,13 @@ export interface RouterApiServiceBag {
|
|
|
1308
1318
|
export interface RouterApiAuthorizedOperationService {
|
|
1309
1319
|
resolveEcdsaWalletSessionOperation(input: import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionInput): Promise<import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionResolutionResult>;
|
|
1310
1320
|
admitEcdsaWalletSessionOperation(input: import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionInput): Promise<import('../../authorization/ecdsaWalletSessionAdmission').EcdsaWalletSessionAdmissionResult>;
|
|
1321
|
+
admitEd25519WalletSessionOperation(input: import('../../authorization/ed25519WalletSessionAdmission').Ed25519WalletSessionAdmissionInput): Promise<import('../../authorization/ed25519WalletSessionAdmission').Ed25519WalletSessionAdmissionResult>;
|
|
1322
|
+
resolveEd25519WalletSessionOperation(input: import('../../authorization/ed25519WalletSessionAdmission').Ed25519WalletSessionResolutionInput): Promise<import('../../authorization/ed25519WalletSessionAdmission').Ed25519WalletSessionResolutionResult>;
|
|
1311
1323
|
readonly tenantId: TenantId;
|
|
1312
1324
|
readPinnedOwnerWalletScope(input: {
|
|
1313
1325
|
readonly operation: AuthorizedOperation;
|
|
1314
1326
|
readonly walletId: WalletId;
|
|
1315
|
-
}): Promise<
|
|
1316
|
-
readonly orgId: string;
|
|
1317
|
-
readonly projectId: string;
|
|
1318
|
-
readonly projectEnvironmentId: string;
|
|
1319
|
-
}>;
|
|
1327
|
+
}): Promise<import('../../authorization/ecdsaWalletSessionAdmission').PinnedOwnerWalletScope>;
|
|
1320
1328
|
buildVerifiedOwnerProof(input: VerifiedOwnerProofInput): Promise<VerifiedOwnerProof>;
|
|
1321
1329
|
recordVerifiedWalletOperationFactorEvidenceSet(input: VerifiedWalletOperationFactorEvidenceSetInput): Promise<VerifiedAuthorizationEvidenceSet>;
|
|
1322
1330
|
readAuthorizedOperationById(input: {
|
|
@@ -1370,6 +1378,12 @@ export interface RouterApiAuthorizationSessionService {
|
|
|
1370
1378
|
readonly nowMs: number;
|
|
1371
1379
|
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
1372
1380
|
}) => Promise<RouterApiWalletSessionSigningCandidate | null>;
|
|
1381
|
+
readonly readEd25519WalletSessionSigningReadByOperationCredential: (input: {
|
|
1382
|
+
readonly tenantId: TenantId;
|
|
1383
|
+
readonly token: string;
|
|
1384
|
+
readonly nowMs: number;
|
|
1385
|
+
readonly materialActivation: RouterAbMpcMaterialActivationRefWire;
|
|
1386
|
+
}) => Promise<RouterApiEd25519WalletSessionSigningRead | null>;
|
|
1373
1387
|
readonly readWalletSessionExactOperationContextByCredential: (input: {
|
|
1374
1388
|
readonly tenantId: TenantId;
|
|
1375
1389
|
readonly token: string;
|
|
@@ -9,18 +9,9 @@ import type { RouterAbPublicKeysetV2 } from '../../../../shared-ts/src/utils/rou
|
|
|
9
9
|
import type { RouterAbNormalSigningAdmissionAdapter } from '../domains/signingOperations/routerAbNormalSigningAdmission';
|
|
10
10
|
import type { RouterAbEd25519YaoProductRegistrationRuntimeV1 } from '../domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration';
|
|
11
11
|
import type { RouterAbEcdsaStrictPostRegistrationPort } from '../domains/ecdsa/routerAbEcdsaStrictRegistration';
|
|
12
|
-
import type { RouterApiKeyAuthAdapter, RouterApiProjectEnvironmentResolver, RouterApiPublishableKeyAuthAdapter, RouterApiUsageMeterAdapter } from './apiCredentialPorts';
|
|
12
|
+
import type { RouterApiKeyAuthAdapter, RouterApiProjectEnvironmentResolver, RouterApiPublishableKeyAuthAdapter, RouterApiUsageMeterAdapter, WalletRegistrationContextResolver } from './apiCredentialPorts';
|
|
13
13
|
import type { SessionParseResult } from '../../core/sessionValidation';
|
|
14
14
|
export type { RouterApiCredentialScope, RouterApiKeyAuthAdapter, RouterApiKeyAuthFailureCode, RouterApiKeyAuthRequest, RouterApiKeyAuthResult, RouterApiKeyPrincipal, RouterApiProjectEnvironment, RouterApiProjectEnvironmentResolver, RouterApiPublishableKeyAuthAdapter, RouterApiPublishableKeyAuthFailureCode, RouterApiPublishableKeyAuthRequest, RouterApiPublishableKeyAuthResult, RouterApiUsageMeterAction, RouterApiUsageMeterAdapter, RouterApiUsageMeterEvent, } from './apiCredentialPorts';
|
|
15
|
-
export interface RouterApiWalletProjectionEvent {
|
|
16
|
-
readonly orgId: string;
|
|
17
|
-
readonly runtimePolicyScope: RuntimePolicyScope;
|
|
18
|
-
readonly walletId: string;
|
|
19
|
-
readonly occurredAt: string;
|
|
20
|
-
}
|
|
21
|
-
export interface RouterApiWalletProjectionAdapter {
|
|
22
|
-
recordCreatedWallet(input: RouterApiWalletProjectionEvent): Promise<void>;
|
|
23
|
-
}
|
|
24
15
|
export type SessionClaims = Record<string, unknown>;
|
|
25
16
|
export declare const DEFAULT_SESSION_COOKIE_NAME = "seams-jwt";
|
|
26
17
|
/**
|
|
@@ -164,6 +155,8 @@ export interface RouterApiOptions {
|
|
|
164
155
|
* API credential routes like signed delegate execution.
|
|
165
156
|
*/
|
|
166
157
|
publishableKeyAuth?: RouterApiPublishableKeyAuthAdapter | null;
|
|
158
|
+
/** Fresh credential and active-environment resolution for registration setup. */
|
|
159
|
+
registrationContext?: WalletRegistrationContextResolver | null;
|
|
167
160
|
/**
|
|
168
161
|
* Optional Router API usage-meter adapter used to emit host runtime events.
|
|
169
162
|
*/
|
|
@@ -214,8 +207,6 @@ export interface RouterApiOptions {
|
|
|
214
207
|
* Optional org/project/environment service used to resolve environment -> project scope.
|
|
215
208
|
*/
|
|
216
209
|
orgProjectEnv?: RouterApiProjectEnvironmentResolver | null;
|
|
217
|
-
/** Projects successfully created wallets into the customer Console index. */
|
|
218
|
-
walletProjection?: RouterApiWalletProjectionAdapter | null;
|
|
219
210
|
logger?: RouterLogger | null;
|
|
220
211
|
}
|
|
221
212
|
//# sourceMappingURL=routerApi.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { AuthorizedOperationId, TenantId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
2
|
+
import type { CapabilityOperationFingerprintDigest } from '../../../../../../shared-ts/src/authorization/operationFingerprint';
|
|
3
|
+
import type { WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
4
|
+
import type { AuthorizedOperation } from '../../../../authorization/domain';
|
|
5
|
+
import type { PinnedOwnerWalletScope } from '../../../../authorization/ecdsaWalletSessionAdmission';
|
|
6
|
+
import type { FetchRouterApiContext } from '../createFetchRouter';
|
|
7
|
+
type Revalidated<Result> = Result | {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly response: Response;
|
|
10
|
+
};
|
|
11
|
+
export declare function revalidateEd25519StepUpOperation(input: {
|
|
12
|
+
readonly ctx: FetchRouterApiContext;
|
|
13
|
+
readonly operation: AuthorizedOperation;
|
|
14
|
+
}): Promise<Revalidated<{
|
|
15
|
+
readonly ok: true;
|
|
16
|
+
readonly operation: AuthorizedOperation;
|
|
17
|
+
}>>;
|
|
18
|
+
/**
|
|
19
|
+
* Finds the operation a reusable Wallet Session prepared and checks that its
|
|
20
|
+
* grant is still active. A live operation returns the owner scope its
|
|
21
|
+
* admission row pinned. A completed operation returns none: it replays its
|
|
22
|
+
* stored response. The operation is read by its fingerprint, so a receipt
|
|
23
|
+
* that names another operation ID has no stored operation.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveEd25519WalletSessionOperation(input: {
|
|
26
|
+
readonly ctx: FetchRouterApiContext;
|
|
27
|
+
readonly tenantId: TenantId;
|
|
28
|
+
readonly authorizedOperationId: AuthorizedOperationId;
|
|
29
|
+
readonly operationFingerprintDigest: CapabilityOperationFingerprintDigest;
|
|
30
|
+
readonly walletId: WalletId;
|
|
31
|
+
}): Promise<Revalidated<{
|
|
32
|
+
readonly ok: true;
|
|
33
|
+
readonly operation: AuthorizedOperation;
|
|
34
|
+
readonly ownerScope: PinnedOwnerWalletScope | null;
|
|
35
|
+
}>>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=ed25519AuthorizedOperationRevalidation.d.ts.map
|
|
@@ -1,27 +1,11 @@
|
|
|
1
1
|
import type { FetchRouterApiContext } from '../createFetchRouter';
|
|
2
2
|
import { type RouterAbEcdsaPoolFillInitRouteRequest, type RouterAbEcdsaPoolFillStepRouteRequest } from '../../../domains/ecdsa/thresholdEcdsaRequestValidation';
|
|
3
3
|
import type { RouterAbEcdsaDerivationPoolFillBinding } from '../../../../core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers';
|
|
4
|
-
import type { RouterApiAuthorizedOperationService } from '../../../framework/authServicePort';
|
|
5
4
|
import type { WalletSessionOperationCredentialV1 } from '../../../../../../shared-ts/src/device-linking/contracts';
|
|
6
|
-
import { type
|
|
5
|
+
import { type VerifiedOwnerProof } from '../../../../authorization/domain';
|
|
7
6
|
type VerifiedOwnerWalletSessionProof = Extract<VerifiedOwnerProof, {
|
|
8
7
|
readonly purpose: 'wallet_session';
|
|
9
8
|
}>;
|
|
10
|
-
type EcdsaSigningGatewayTiming = {
|
|
11
|
-
authorize: number | null;
|
|
12
|
-
admit: number | null;
|
|
13
|
-
proxy: number | null;
|
|
14
|
-
complete: number | null;
|
|
15
|
-
total: number | null;
|
|
16
|
-
};
|
|
17
|
-
export declare function finishRouterAbEcdsaSigningResponse(input: {
|
|
18
|
-
readonly phase: 'prepare' | 'finalize';
|
|
19
|
-
readonly upstream: Response;
|
|
20
|
-
readonly operation: AuthorizedOperation;
|
|
21
|
-
readonly authorizedOperations: RouterApiAuthorizedOperationService;
|
|
22
|
-
readonly timing: Pick<EcdsaSigningGatewayTiming, 'proxy' | 'complete'>;
|
|
23
|
-
readonly proxyStartedAt: number;
|
|
24
|
-
}): Promise<Response>;
|
|
25
9
|
type RouterAbEcdsaPoolFillAuthorizationResult = {
|
|
26
10
|
readonly ok: true;
|
|
27
11
|
readonly binding: RouterAbEcdsaDerivationPoolFillBinding;
|
|
@@ -2,7 +2,7 @@ import type { OrgId } from '../../../shared-ts/src/utils/domainIds';
|
|
|
2
2
|
export type { OrgId } from '../../../shared-ts/src/utils/domainIds';
|
|
3
3
|
export type TenantStorageBackendFamily = 'cloudflare_d1_do' | 'postgres';
|
|
4
4
|
export type CloudflareTenantTopology = 'shared' | 'dedicated_tenant';
|
|
5
|
-
export type TenantDataJurisdiction = 'automatic' | 'wnam' | 'enam' | 'weur' | 'eeur' | 'apac';
|
|
5
|
+
export type TenantDataJurisdiction = 'automatic' | 'wnam' | 'enam' | 'weur' | 'eeur' | 'apac' | 'oc';
|
|
6
6
|
export type PostgresMigrationReason = 'd1_size_limit' | 'd1_throughput_limit' | 'logical_database_required';
|
|
7
7
|
export type NamespaceId = string;
|
|
8
8
|
export type RouteVersion = number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
CREATE TABLE wallet_relocation_challenges (
|
|
2
|
+
namespace TEXT NOT NULL,
|
|
3
|
+
org_id TEXT NOT NULL,
|
|
4
|
+
project_id TEXT NOT NULL,
|
|
5
|
+
env_id TEXT NOT NULL,
|
|
6
|
+
wallet_id TEXT NOT NULL,
|
|
7
|
+
move_id TEXT NOT NULL,
|
|
8
|
+
binding_json TEXT NOT NULL CHECK (json_valid(binding_json)),
|
|
9
|
+
challenge_b64u TEXT NOT NULL,
|
|
10
|
+
created_at_ms INTEGER NOT NULL CHECK (created_at_ms > 0),
|
|
11
|
+
expires_at_ms INTEGER NOT NULL,
|
|
12
|
+
consumed_at_ms INTEGER,
|
|
13
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id, move_id),
|
|
14
|
+
CHECK (expires_at_ms > created_at_ms AND expires_at_ms - created_at_ms <= 300000),
|
|
15
|
+
CHECK (consumed_at_ms IS NULL OR (consumed_at_ms >= created_at_ms AND consumed_at_ms < expires_at_ms))
|
|
16
|
+
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
CREATE TABLE wallet_relocation_approvals (
|
|
2
|
+
namespace TEXT NOT NULL,
|
|
3
|
+
org_id TEXT NOT NULL,
|
|
4
|
+
project_id TEXT NOT NULL,
|
|
5
|
+
env_id TEXT NOT NULL,
|
|
6
|
+
wallet_id TEXT NOT NULL,
|
|
7
|
+
move_id TEXT NOT NULL,
|
|
8
|
+
binding_json TEXT NOT NULL CHECK (json_valid(binding_json)),
|
|
9
|
+
authority_digest_b64u TEXT NOT NULL,
|
|
10
|
+
authority_revocation_epoch INTEGER NOT NULL CHECK (authority_revocation_epoch >= 0),
|
|
11
|
+
approved_at_ms INTEGER NOT NULL CHECK (approved_at_ms > 0),
|
|
12
|
+
expires_at_ms INTEGER NOT NULL CHECK (expires_at_ms > approved_at_ms),
|
|
13
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id, move_id)
|
|
14
|
+
);
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
-- Add the relocation-bound Email OTP challenge purpose.
|
|
2
|
+
|
|
3
|
+
PRAGMA defer_foreign_keys = ON;
|
|
4
|
+
|
|
5
|
+
DROP INDEX email_otp_challenges_context_idx;
|
|
6
|
+
DROP INDEX email_otp_challenges_expires_idx;
|
|
7
|
+
|
|
8
|
+
ALTER TABLE email_otp_challenges RENAME TO email_otp_challenges_previous;
|
|
9
|
+
|
|
10
|
+
CREATE TABLE email_otp_challenges (
|
|
11
|
+
namespace TEXT NOT NULL,
|
|
12
|
+
org_id TEXT NOT NULL,
|
|
13
|
+
project_id TEXT NOT NULL,
|
|
14
|
+
env_id TEXT NOT NULL,
|
|
15
|
+
challenge_id TEXT NOT NULL,
|
|
16
|
+
challenge_subject_id TEXT NOT NULL,
|
|
17
|
+
wallet_id TEXT NOT NULL,
|
|
18
|
+
record_org_id TEXT NOT NULL,
|
|
19
|
+
otp_channel TEXT NOT NULL,
|
|
20
|
+
owner_proof_binding_digest TEXT NOT NULL,
|
|
21
|
+
action TEXT NOT NULL,
|
|
22
|
+
operation TEXT NOT NULL,
|
|
23
|
+
otp_code TEXT NOT NULL,
|
|
24
|
+
record_json TEXT NOT NULL,
|
|
25
|
+
created_at_ms INTEGER NOT NULL,
|
|
26
|
+
expires_at_ms INTEGER NOT NULL,
|
|
27
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, challenge_id),
|
|
28
|
+
CHECK (length(namespace) > 0),
|
|
29
|
+
CHECK (length(org_id) > 0),
|
|
30
|
+
CHECK (length(project_id) > 0),
|
|
31
|
+
CHECK (length(env_id) > 0),
|
|
32
|
+
CHECK (length(challenge_id) > 0),
|
|
33
|
+
CHECK (length(challenge_subject_id) > 0),
|
|
34
|
+
CHECK (length(wallet_id) > 0),
|
|
35
|
+
CHECK (length(record_org_id) > 0),
|
|
36
|
+
CHECK (otp_channel = 'email_otp'),
|
|
37
|
+
CHECK (length(owner_proof_binding_digest) > 0),
|
|
38
|
+
CHECK (
|
|
39
|
+
action IN (
|
|
40
|
+
'wallet_email_otp_login',
|
|
41
|
+
'wallet_email_otp_registration',
|
|
42
|
+
'wallet_email_otp_device_recovery',
|
|
43
|
+
'wallet_email_otp_device_link',
|
|
44
|
+
'wallet_email_otp_recovery_bootstrap',
|
|
45
|
+
'wallet_email_otp_relocation'
|
|
46
|
+
)
|
|
47
|
+
),
|
|
48
|
+
CHECK (operation IN ('wallet_unlock', 'transaction_sign', 'export_key', 'registration', 'device_link', 'wallet_relocation')),
|
|
49
|
+
CHECK ((action = 'wallet_email_otp_relocation') = (operation = 'wallet_relocation')),
|
|
50
|
+
CHECK (length(otp_code) > 0),
|
|
51
|
+
CHECK (json_valid(record_json)),
|
|
52
|
+
CHECK (created_at_ms > 0),
|
|
53
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
54
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'email_otp_challenge_v1', 0)),
|
|
55
|
+
CHECK (COALESCE(json_extract(record_json, '$.challengeId') = challenge_id, 0)),
|
|
56
|
+
CHECK (COALESCE(json_extract(record_json, '$.challengeSubjectId') = challenge_subject_id, 0)),
|
|
57
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
58
|
+
CHECK (COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
59
|
+
CHECK (COALESCE(json_extract(record_json, '$.otpChannel') = otp_channel, 0)),
|
|
60
|
+
CHECK (
|
|
61
|
+
COALESCE(json_extract(record_json, '$.ownerProofBindingDigest') = owner_proof_binding_digest, 0)
|
|
62
|
+
),
|
|
63
|
+
CHECK (COALESCE(json_extract(record_json, '$.action') = action, 0)),
|
|
64
|
+
CHECK (COALESCE(json_extract(record_json, '$.operation') = operation, 0)),
|
|
65
|
+
CHECK (COALESCE(json_extract(record_json, '$.otpCode') = otp_code, 0)),
|
|
66
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
67
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
INSERT INTO email_otp_challenges (
|
|
71
|
+
namespace, org_id, project_id, env_id, challenge_id, challenge_subject_id,
|
|
72
|
+
wallet_id, record_org_id, otp_channel, owner_proof_binding_digest, action,
|
|
73
|
+
operation, otp_code, record_json, created_at_ms, expires_at_ms
|
|
74
|
+
)
|
|
75
|
+
SELECT namespace, org_id, project_id, env_id, challenge_id, challenge_subject_id,
|
|
76
|
+
wallet_id, record_org_id, otp_channel, owner_proof_binding_digest, action,
|
|
77
|
+
operation, otp_code, record_json, created_at_ms, expires_at_ms
|
|
78
|
+
FROM email_otp_challenges_previous;
|
|
79
|
+
|
|
80
|
+
DROP TABLE email_otp_challenges_previous;
|
|
81
|
+
|
|
82
|
+
CREATE INDEX email_otp_challenges_context_idx
|
|
83
|
+
ON email_otp_challenges (
|
|
84
|
+
namespace, org_id, project_id, env_id, challenge_subject_id, wallet_id,
|
|
85
|
+
record_org_id, otp_channel, owner_proof_binding_digest, action, operation,
|
|
86
|
+
expires_at_ms, created_at_ms
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
CREATE INDEX email_otp_challenges_expires_idx
|
|
90
|
+
ON email_otp_challenges (namespace, org_id, project_id, env_id, expires_at_ms);
|
|
91
|
+
|
|
92
|
+
PRAGMA defer_foreign_keys = OFF;
|