@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/cloudflare/d1/wallet/d1WalletAuthorizationSnapshot.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type D1TenantScope } from '../../../../core/d1TenantStore';
|
|
2
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
|
|
4
|
+
export declare const AUTHORIZATION_SNAPSHOT_MAX_BYTES = 524288;
|
|
5
|
+
export declare const AUTHORIZATION_SNAPSHOT_MAX_CHUNKS = 80;
|
|
6
|
+
type Manifest = {
|
|
7
|
+
readonly schemaJson: string;
|
|
8
|
+
readonly chunkCount: number;
|
|
9
|
+
readonly recordCount: number;
|
|
10
|
+
readonly digestHex: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class D1WalletAuthorizationSnapshot {
|
|
13
|
+
private readonly database;
|
|
14
|
+
private readonly scope;
|
|
15
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
16
|
+
seal(source: WalletRelocationSessionSource): Promise<Manifest>;
|
|
17
|
+
exportSnapshot(source: WalletRelocationSessionSource): Promise<readonly {
|
|
18
|
+
readonly index: number;
|
|
19
|
+
readonly chunkJson: string;
|
|
20
|
+
readonly digestHex: string;
|
|
21
|
+
}[]>;
|
|
22
|
+
assertCapacity(walletId: string): Promise<void>;
|
|
23
|
+
private prepare;
|
|
24
|
+
private read;
|
|
25
|
+
private readProgress;
|
|
26
|
+
private nextRecord;
|
|
27
|
+
private readSegment;
|
|
28
|
+
private storeChunk;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=d1WalletAuthorizationSnapshot.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationApprovals.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import { type DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
3
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
5
|
+
import { WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
6
|
+
import type { CloudflareD1EmailOtpChallengeVerifier } from '../emailOtp/d1EmailOtpChallengeVerifier';
|
|
7
|
+
import type { CloudflareD1EmailOtpChallengeStore } from '../emailOtp/d1EmailOtpChallengeStore';
|
|
8
|
+
import type { WalletRelocationOwnerRequest } from './d1WalletRelocationOwnerRequest';
|
|
9
|
+
type StoredApproval = {
|
|
10
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
11
|
+
readonly authorityDigestB64u: DigestB64u;
|
|
12
|
+
readonly authorityRevocationEpoch: number;
|
|
13
|
+
readonly approvedAtMs: number;
|
|
14
|
+
readonly expiresAtMs: number;
|
|
15
|
+
};
|
|
16
|
+
type ApprovalResult = {
|
|
17
|
+
readonly kind: 'approved';
|
|
18
|
+
readonly approval: StoredApproval;
|
|
19
|
+
} | {
|
|
20
|
+
readonly kind: 'denied';
|
|
21
|
+
readonly approval?: never;
|
|
22
|
+
};
|
|
23
|
+
export declare class D1WalletRelocationApprovals {
|
|
24
|
+
private readonly database;
|
|
25
|
+
private readonly scope;
|
|
26
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
27
|
+
approvePasskey(input: {
|
|
28
|
+
readonly owner: WalletRelocationOwnerRequest;
|
|
29
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
30
|
+
readonly credential: unknown;
|
|
31
|
+
readonly nowMs: number;
|
|
32
|
+
}): Promise<ApprovalResult>;
|
|
33
|
+
approveEmailOtp(input: {
|
|
34
|
+
readonly owner: WalletRelocationOwnerRequest;
|
|
35
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
36
|
+
readonly challengeId: string;
|
|
37
|
+
readonly otpCode: string;
|
|
38
|
+
readonly nowMs: number;
|
|
39
|
+
readonly verifier: CloudflareD1EmailOtpChallengeVerifier;
|
|
40
|
+
readonly emailOtpChallenges: CloudflareD1EmailOtpChallengeStore;
|
|
41
|
+
}): Promise<ApprovalResult>;
|
|
42
|
+
private commit;
|
|
43
|
+
find(walletId: WalletId, moveId: string): Promise<StoredApproval | null>;
|
|
44
|
+
readForAdmission(binding: WalletRelocationChallengeBinding, nowMs: number): Promise<StoredApproval | null>;
|
|
45
|
+
read(binding: WalletRelocationChallengeBinding): Promise<StoredApproval | null>;
|
|
46
|
+
private key;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=d1WalletRelocationApprovals.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationChallenges.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type WalletId, type WalletAuthorityId, type WalletAuthMethodId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import { type SessionOrigin } from '../../../../authorization/domain';
|
|
3
|
+
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
5
|
+
export declare class WalletRelocationChallengeBinding {
|
|
6
|
+
#private;
|
|
7
|
+
readonly walletId: WalletId;
|
|
8
|
+
readonly moveId: string;
|
|
9
|
+
readonly requestDigestHex: string;
|
|
10
|
+
readonly sourceGeneration: number;
|
|
11
|
+
readonly destinationRegion: 'US' | 'WEUR' | 'APAC' | 'OC';
|
|
12
|
+
readonly authorityId: WalletAuthorityId;
|
|
13
|
+
readonly walletAuthMethodId: WalletAuthMethodId;
|
|
14
|
+
readonly credentialDigestHex: string;
|
|
15
|
+
readonly credentialExpiresAtMs: number;
|
|
16
|
+
readonly origin: SessionOrigin;
|
|
17
|
+
private constructor();
|
|
18
|
+
static parse(raw: unknown): WalletRelocationChallengeBinding;
|
|
19
|
+
static decode(encoded: string): WalletRelocationChallengeBinding;
|
|
20
|
+
encoded(): string;
|
|
21
|
+
}
|
|
22
|
+
type ChallengeFields = {
|
|
23
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
24
|
+
readonly challengeB64u: string;
|
|
25
|
+
readonly createdAtMs: number;
|
|
26
|
+
readonly expiresAtMs: number;
|
|
27
|
+
};
|
|
28
|
+
type IssuedChallenge = ChallengeFields & {
|
|
29
|
+
readonly state: 'issued';
|
|
30
|
+
readonly consumedAtMs?: never;
|
|
31
|
+
};
|
|
32
|
+
type StoredChallenge = IssuedChallenge | (ChallengeFields & {
|
|
33
|
+
readonly state: 'consumed';
|
|
34
|
+
readonly consumedAtMs: number;
|
|
35
|
+
});
|
|
36
|
+
export declare class D1WalletRelocationChallenges {
|
|
37
|
+
private readonly database;
|
|
38
|
+
private readonly scope;
|
|
39
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
40
|
+
issue(binding: WalletRelocationChallengeBinding, nowMs: number, factorExpiresAtMs: number): Promise<StoredChallenge>;
|
|
41
|
+
find(walletId: WalletId, moveId: string): Promise<StoredChallenge | null>;
|
|
42
|
+
read(binding: WalletRelocationChallengeBinding): Promise<StoredChallenge | null>;
|
|
43
|
+
prepareConsume(challenge: IssuedChallenge, nowMs: number): readonly D1PreparedStatementLike[];
|
|
44
|
+
private key;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=d1WalletRelocationChallenges.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationEmailOtp.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CloudflareD1EmailOtpChallengeIssuer } from '../emailOtp/d1EmailOtpChallengeIssuer';
|
|
2
|
+
import { type DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
3
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
5
|
+
import type { CloudflareD1EmailOtpChallengeVerifier } from '../emailOtp/d1EmailOtpChallengeVerifier';
|
|
6
|
+
import type { CloudflareD1EmailOtpChallengeStore } from '../emailOtp/d1EmailOtpChallengeStore';
|
|
7
|
+
import { type WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
8
|
+
import { type WalletRelocationFactorVerification } from './d1WalletRelocationOwner';
|
|
9
|
+
export type WalletRelocationEmailOtpServices = {
|
|
10
|
+
readonly issuer: CloudflareD1EmailOtpChallengeIssuer;
|
|
11
|
+
readonly verifier: CloudflareD1EmailOtpChallengeVerifier;
|
|
12
|
+
readonly emailOtpChallenges: CloudflareD1EmailOtpChallengeStore;
|
|
13
|
+
};
|
|
14
|
+
export declare function walletRelocationEmailOtpBinding(scope: D1TenantScope, binding: WalletRelocationChallengeBinding, challengeB64u: string): Promise<DigestB64u>;
|
|
15
|
+
export declare function verifyWalletRelocationEmailOtp(input: {
|
|
16
|
+
readonly database: D1DatabaseLike;
|
|
17
|
+
readonly scope: D1TenantScope;
|
|
18
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
19
|
+
readonly challengeId: string;
|
|
20
|
+
readonly otpCode: string;
|
|
21
|
+
readonly nowMs: number;
|
|
22
|
+
readonly verifier: CloudflareD1EmailOtpChallengeVerifier;
|
|
23
|
+
readonly emailOtpChallenges: CloudflareD1EmailOtpChallengeStore;
|
|
24
|
+
}): Promise<WalletRelocationFactorVerification>;
|
|
25
|
+
//# sourceMappingURL=d1WalletRelocationEmailOtp.d.ts.map
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { DigestB64u } from '../../../../../../shared-ts/src/utils/canonicalPrimitives';
|
|
2
|
+
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
4
|
+
import type { WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
5
|
+
export type WalletRelocationFactorVerification = {
|
|
6
|
+
readonly kind: 'verified';
|
|
7
|
+
readonly authorityDigestB64u: DigestB64u;
|
|
8
|
+
readonly authorityRevocationEpoch: number;
|
|
9
|
+
readonly commitPrerequisites: readonly D1PreparedStatementLike[];
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: 'denied';
|
|
12
|
+
readonly authorityDigestB64u?: never;
|
|
13
|
+
readonly authorityRevocationEpoch?: never;
|
|
14
|
+
readonly commitPrerequisites?: never;
|
|
15
|
+
};
|
|
16
|
+
export declare function readWalletRelocationOwner(database: D1DatabaseLike, scope: D1TenantScope, binding: WalletRelocationChallengeBinding): Promise<{
|
|
17
|
+
method: ({
|
|
18
|
+
readonly version: "wallet_auth_method_v2";
|
|
19
|
+
readonly walletAuthMethodId: import("../../../../../../shared-ts/src/utils").WalletAuthMethodId;
|
|
20
|
+
readonly walletId: import("../../../../../../shared-ts/src/utils").WalletId;
|
|
21
|
+
readonly walletAuthorityId: import("../../../../../../shared-ts/src/utils").WalletAuthorityId;
|
|
22
|
+
readonly createdAtMs: number;
|
|
23
|
+
readonly updatedAtMs: number;
|
|
24
|
+
} & {
|
|
25
|
+
readonly walletAuthMethodId: import("../../../../../../shared-ts/src/utils").WalletAuthMethodId;
|
|
26
|
+
readonly walletId: import("../../../../../../shared-ts/src/utils").WalletId;
|
|
27
|
+
readonly createdAtMs: number;
|
|
28
|
+
} & {
|
|
29
|
+
readonly kind: "passkey";
|
|
30
|
+
readonly rpId: import("../../../../../../shared-ts/src/utils").WebAuthnRpId;
|
|
31
|
+
readonly credentialIdB64u: import("../../../../../../shared-ts/src/utils").WebAuthnCredentialIdB64u;
|
|
32
|
+
readonly credentialPublicKeyB64u: string;
|
|
33
|
+
readonly counter: number;
|
|
34
|
+
readonly emailHashHex?: never;
|
|
35
|
+
readonly registrationAuthorityId?: never;
|
|
36
|
+
} & {
|
|
37
|
+
readonly status: "active";
|
|
38
|
+
readonly activatedAtMs: number;
|
|
39
|
+
readonly revokedAtMs?: undefined;
|
|
40
|
+
}) | ({
|
|
41
|
+
readonly version: "wallet_auth_method_v2";
|
|
42
|
+
readonly walletAuthMethodId: import("../../../../../../shared-ts/src/utils").WalletAuthMethodId;
|
|
43
|
+
readonly walletId: import("../../../../../../shared-ts/src/utils").WalletId;
|
|
44
|
+
readonly walletAuthorityId: import("../../../../../../shared-ts/src/utils").WalletAuthorityId;
|
|
45
|
+
readonly createdAtMs: number;
|
|
46
|
+
readonly updatedAtMs: number;
|
|
47
|
+
} & {
|
|
48
|
+
readonly walletAuthMethodId: import("../../../../../../shared-ts/src/utils").WalletAuthMethodId;
|
|
49
|
+
readonly walletId: import("../../../../../../shared-ts/src/utils").WalletId;
|
|
50
|
+
readonly createdAtMs: number;
|
|
51
|
+
} & {
|
|
52
|
+
readonly kind: "email_otp";
|
|
53
|
+
readonly emailHashHex: string;
|
|
54
|
+
readonly registrationAuthorityId: string;
|
|
55
|
+
readonly rpId?: never;
|
|
56
|
+
readonly credentialIdB64u?: never;
|
|
57
|
+
readonly credentialPublicKeyB64u?: never;
|
|
58
|
+
readonly counter?: never;
|
|
59
|
+
} & {
|
|
60
|
+
readonly status: "active";
|
|
61
|
+
readonly activatedAtMs: number;
|
|
62
|
+
readonly revokedAtMs?: undefined;
|
|
63
|
+
});
|
|
64
|
+
authority: {
|
|
65
|
+
readonly kind: "wallet_authority_v1";
|
|
66
|
+
readonly authorityId: import("../../../../../../shared-ts/src/utils").WalletAuthorityId;
|
|
67
|
+
readonly walletId: import("../../../../../../shared-ts/src/utils").WalletId;
|
|
68
|
+
readonly principal: {
|
|
69
|
+
readonly kind: "owner_device";
|
|
70
|
+
readonly deviceId: import("../../../../../../shared-ts/src/authorization").DeviceId;
|
|
71
|
+
};
|
|
72
|
+
readonly provenance: import("../../../../../../shared-ts/src/authorization").WalletAuthorityProvenanceV1;
|
|
73
|
+
readonly permissions: import("../../../../../../shared-ts/src/authorization/delegatedAuthority").CanonicalDelegatedWalletPermissionSetV1;
|
|
74
|
+
readonly signerActivations: import("../../../../../../shared-ts/src/authorization").WalletSignerActivationSetV1;
|
|
75
|
+
readonly signerActivationSetDigestB64u: DigestB64u;
|
|
76
|
+
readonly authorityDigestB64u: DigestB64u;
|
|
77
|
+
readonly revocationEpoch: number;
|
|
78
|
+
readonly createdAtMs: number;
|
|
79
|
+
readonly updatedAtMs: number;
|
|
80
|
+
} & {
|
|
81
|
+
readonly state: "active";
|
|
82
|
+
readonly localInstallPackageSetDigestB64u?: never;
|
|
83
|
+
readonly activatedAtMs: number;
|
|
84
|
+
readonly revokedAtMs?: never;
|
|
85
|
+
};
|
|
86
|
+
commitPrerequisites: readonly D1PreparedStatementLike[];
|
|
87
|
+
} | null>;
|
|
88
|
+
//# sourceMappingURL=d1WalletRelocationOwner.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationOwnerRequest.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { TenantId } from '../../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
2
|
+
import type { WalletId, WalletAuthorityId, WalletAuthMethodId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
3
|
+
import { type SessionOrigin } from '../../../../authorization/domain';
|
|
4
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
5
|
+
import { type AuthorizationService } from '../../../../authorization/service';
|
|
6
|
+
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
7
|
+
import { WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
8
|
+
export declare class WalletRelocationOwnerRequest {
|
|
9
|
+
#private;
|
|
10
|
+
readonly walletId: WalletId;
|
|
11
|
+
readonly authorityId: WalletAuthorityId;
|
|
12
|
+
readonly walletAuthMethodId: WalletAuthMethodId;
|
|
13
|
+
readonly credentialExpiresAtMs: number;
|
|
14
|
+
readonly origin: SessionOrigin;
|
|
15
|
+
private readonly scope;
|
|
16
|
+
private readonly tenantId;
|
|
17
|
+
private readonly authorizationId;
|
|
18
|
+
private readonly credentialHash;
|
|
19
|
+
private constructor();
|
|
20
|
+
static authenticate(input: {
|
|
21
|
+
readonly request: Request;
|
|
22
|
+
readonly walletId: WalletId;
|
|
23
|
+
readonly tenantId: TenantId;
|
|
24
|
+
readonly scope: D1TenantScope;
|
|
25
|
+
readonly allowedOrigins: readonly SessionOrigin[];
|
|
26
|
+
readonly authorizationSessions: Pick<AuthorizationService, 'readWalletSessionExactOperationContextByCredential'>;
|
|
27
|
+
readonly nowMs: number;
|
|
28
|
+
}): Promise<WalletRelocationOwnerRequest | null>;
|
|
29
|
+
prepareApprovalGuard(database: D1DatabaseLike, scope: D1TenantScope, binding: WalletRelocationChallengeBinding, nowMs: number): readonly D1PreparedStatementLike[];
|
|
30
|
+
bindMove(input: {
|
|
31
|
+
readonly moveId: string;
|
|
32
|
+
readonly requestDigestHex: string;
|
|
33
|
+
readonly sourceGeneration: number;
|
|
34
|
+
readonly destinationRegion: WalletRelocationChallengeBinding['destinationRegion'];
|
|
35
|
+
}): WalletRelocationChallengeBinding;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=d1WalletRelocationOwnerRequest.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationPasskey.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
2
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
3
|
+
import { type WalletRelocationFactorVerification } from './d1WalletRelocationOwner';
|
|
4
|
+
import { type WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
5
|
+
export declare function verifyWalletRelocationPasskey(input: {
|
|
6
|
+
readonly database: D1DatabaseLike;
|
|
7
|
+
readonly scope: D1TenantScope;
|
|
8
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
9
|
+
readonly credential: unknown;
|
|
10
|
+
readonly nowMs: number;
|
|
11
|
+
}): Promise<WalletRelocationFactorVerification>;
|
|
12
|
+
//# sourceMappingURL=d1WalletRelocationPasskey.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationReadAccess.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type SessionOrigin } from '../../../../authorization/domain';
|
|
2
|
+
import type { D1TenantScope } from '../../../../core/d1TenantStore';
|
|
3
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
import type { WalletRelocationChallengeBinding } from './d1WalletRelocationChallenges';
|
|
5
|
+
export declare class WalletRelocationReadAccess {
|
|
6
|
+
#private;
|
|
7
|
+
private constructor();
|
|
8
|
+
static authenticate(input: {
|
|
9
|
+
readonly database: D1DatabaseLike;
|
|
10
|
+
readonly scope: D1TenantScope;
|
|
11
|
+
readonly binding: WalletRelocationChallengeBinding;
|
|
12
|
+
readonly request: Request;
|
|
13
|
+
readonly allowedOrigins: readonly SessionOrigin[];
|
|
14
|
+
readonly nowMs: number;
|
|
15
|
+
}): Promise<WalletRelocationReadAccess | null>;
|
|
16
|
+
get binding(): WalletRelocationChallengeBinding;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=d1WalletRelocationReadAccess.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationSessions.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type WalletId } from '../../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
import { type D1TenantScope } from '../../../../core/d1TenantStore';
|
|
3
|
+
import type { D1DatabaseLike, D1PreparedStatementLike } from '../../../../storage/tenantRoute';
|
|
4
|
+
export declare class WalletRelocationSessionSource {
|
|
5
|
+
#private;
|
|
6
|
+
readonly walletId: WalletId;
|
|
7
|
+
readonly moveId: string;
|
|
8
|
+
readonly requestDigestHex: string;
|
|
9
|
+
readonly sourceGeneration: number;
|
|
10
|
+
private constructor();
|
|
11
|
+
static parse(raw: unknown): WalletRelocationSessionSource;
|
|
12
|
+
matches(row: Record<string, unknown>): boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class D1WalletRelocationSessions {
|
|
15
|
+
private readonly database;
|
|
16
|
+
private readonly scope;
|
|
17
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
18
|
+
hasPendingOperations(walletId: WalletId): Promise<boolean>;
|
|
19
|
+
retire(source: WalletRelocationSessionSource, nowMs: number): Promise<number>;
|
|
20
|
+
retirementStatements(source: WalletRelocationSessionSource, nowMs: number): readonly D1PreparedStatementLike[];
|
|
21
|
+
private read;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=d1WalletRelocationSessions.d.ts.map
|
package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletRelocationWriteBlock.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type D1TenantScope } from '../../../../core/d1TenantStore';
|
|
2
|
+
import type { D1DatabaseLike } from '../../../../storage/tenantRoute';
|
|
3
|
+
import { WalletRelocationSessionSource } from './d1WalletRelocationSessions';
|
|
4
|
+
export declare class D1WalletRelocationWriteBlock {
|
|
5
|
+
private readonly database;
|
|
6
|
+
private readonly scope;
|
|
7
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
8
|
+
check(source: WalletRelocationSessionSource, nowMs: number): Promise<'ready' | 'draining'>;
|
|
9
|
+
release(source: WalletRelocationSessionSource, nowMs: number): Promise<void>;
|
|
10
|
+
freeze(source: WalletRelocationSessionSource, nowMs: number): Promise<{
|
|
11
|
+
readonly retiredAtMs: number;
|
|
12
|
+
readonly frozenAtMs: number;
|
|
13
|
+
}>;
|
|
14
|
+
private read;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=d1WalletRelocationWriteBlock.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CloudflareServiceBindingFetcher } from '../runtime/routerAbServiceBindings';
|
|
2
|
+
import { type D1TenantScope } from '../../../core/d1TenantStore';
|
|
3
|
+
import type { D1DatabaseLike } from '../../../storage/tenantRoute';
|
|
4
|
+
import { WalletObjectAddresses, type WalletObjectIdentity } from '../runtime/walletObjectAddresses';
|
|
5
|
+
export declare class D1WalletObjectAddresses {
|
|
6
|
+
private readonly database;
|
|
7
|
+
private readonly scope;
|
|
8
|
+
constructor(database: D1DatabaseLike, scope: D1TenantScope);
|
|
9
|
+
initialize(identity: WalletObjectIdentity, router: CloudflareServiceBindingFetcher, credential: string): Promise<WalletObjectAddresses>;
|
|
10
|
+
read(identity: WalletObjectIdentity): Promise<WalletObjectAddresses | null>;
|
|
11
|
+
/** Competing allocations return the same persisted winner before either starts work. */
|
|
12
|
+
insert(identity: WalletObjectIdentity, addresses: WalletObjectAddresses): Promise<WalletObjectAddresses>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=walletObjectAddresses.d.ts.map
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { D1DatabaseLike } from '../../../storage/tenantRoute';
|
|
2
|
+
import { type WalletObjectAddressSnapshot } from './walletObjectAddresses';
|
|
1
3
|
export interface CloudflareServiceBindingFetcher {
|
|
2
4
|
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
3
5
|
}
|
|
@@ -5,6 +7,17 @@ export interface RouterAbServiceBindingEnv {
|
|
|
5
7
|
readonly MPC_ROUTER: CloudflareServiceBindingFetcher;
|
|
6
8
|
readonly SIGNING_WORKER: CloudflareServiceBindingFetcher;
|
|
7
9
|
}
|
|
10
|
+
export type WalletHomeRegion = 'US' | 'WEUR' | 'APAC' | 'OC';
|
|
11
|
+
/** Apply only after the host admits this request to the wallet's fixed home. */
|
|
12
|
+
export declare class WalletHomeCustodyBinding implements CloudflareServiceBindingFetcher {
|
|
13
|
+
private readonly binding;
|
|
14
|
+
private readonly home;
|
|
15
|
+
private readonly database;
|
|
16
|
+
private readonly namespace;
|
|
17
|
+
private readonly initialAddresses;
|
|
18
|
+
constructor(binding: CloudflareServiceBindingFetcher, home: WalletHomeRegion, database: D1DatabaseLike, namespace: string, initialAddresses: WalletObjectAddressSnapshot | null);
|
|
19
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
20
|
+
}
|
|
8
21
|
export declare const ROUTER_AB_MPC_ROUTER_ORIGIN = "https://mpc-router.router-ab.internal";
|
|
9
22
|
export declare const ROUTER_AB_SIGNING_WORKER_ORIGIN = "https://signing-worker.router-ab.internal";
|
|
10
23
|
export declare function createRouterAbServiceBindingFetch(env: RouterAbServiceBindingEnv): typeof globalThis.fetch;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { D1TenantScope } from '../../../core/d1TenantStore';
|
|
2
|
+
import type { D1DatabaseLike } from '../../../storage/tenantRoute';
|
|
3
|
+
import type { RouterApiRouteExtension, RouterApiFetchRouteExtensionInput } from '../../framework/routeExtensions';
|
|
4
|
+
import type { WalletConsoleServiceBinding } from './walletConsoleOpsClient';
|
|
5
|
+
export declare class WalletAuthorizationRelocationRoutes implements RouterApiRouteExtension {
|
|
6
|
+
private readonly options;
|
|
7
|
+
readonly kind = "fetch_route_extension";
|
|
8
|
+
readonly id = "wallet_authorization_relocation";
|
|
9
|
+
readonly routes: RouterApiRouteExtension['routes'];
|
|
10
|
+
constructor(options: {
|
|
11
|
+
readonly database: D1DatabaseLike;
|
|
12
|
+
readonly scope: D1TenantScope;
|
|
13
|
+
readonly directory: WalletConsoleServiceBinding;
|
|
14
|
+
});
|
|
15
|
+
private ownerApproval;
|
|
16
|
+
private prepareDestination;
|
|
17
|
+
handleFetchRoute(input: RouterApiFetchRouteExtensionInput): Promise<Response>;
|
|
18
|
+
private capacityBlock;
|
|
19
|
+
handle(request: Request): Promise<Response>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=walletAuthorizationRelocationRoutes.d.ts.map
|
|
@@ -6,8 +6,8 @@ export declare const WALLET_CONSOLE_SERVICE_ORIGIN_V1 = "https://wallet-console.
|
|
|
6
6
|
export declare const WALLET_CONSOLE_OP_PATHS_V1: {
|
|
7
7
|
readonly secretKeyAuth: "/internal/wallet-console/v1/secret-key-auth";
|
|
8
8
|
readonly publishableKeyAuth: "/internal/wallet-console/v1/publishable-key-auth";
|
|
9
|
+
readonly registrationContext: "/internal/wallet-console/v1/registration-context";
|
|
9
10
|
readonly usageEvents: "/internal/wallet-console/v1/usage-events";
|
|
10
|
-
readonly walletProjection: "/internal/wallet-console/v1/wallet-projections";
|
|
11
11
|
readonly projectEnvironments: "/internal/wallet-console/v1/project-environments";
|
|
12
12
|
readonly tenantRootActiveLineage: "/internal/wallet-console/v1/tenant-root/active-lineage";
|
|
13
13
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { RouterApiKeyAuthAdapter, RouterApiPublishableKeyAuthAdapter, RouterApiProjectEnvironmentResolver, RouterApiUsageMeterAdapter } from '../../framework/apiCredentialPorts';
|
|
1
|
+
import type { RouterApiKeyAuthAdapter, RouterApiPublishableKeyAuthAdapter, RouterApiProjectEnvironmentResolver, RouterApiUsageMeterAdapter, RouterApiPublishableKeyAuthRequest, WalletRegistrationContextResolver, WalletRegistrationContextResult } from '../../framework/apiCredentialPorts';
|
|
3
2
|
import { type WalletConsoleTenantRootActiveLineageResolverV1 } from './walletConsoleOps';
|
|
4
3
|
/** The shape of a Cloudflare service binding (`Fetcher`). */
|
|
5
4
|
export interface WalletConsoleServiceBinding {
|
|
@@ -8,11 +7,12 @@ export interface WalletConsoleServiceBinding {
|
|
|
8
7
|
export interface WalletConsoleOpsClient {
|
|
9
8
|
readonly apiKeyAuth: RouterApiKeyAuthAdapter;
|
|
10
9
|
readonly publishableKeyAuth: RouterApiPublishableKeyAuthAdapter;
|
|
10
|
+
readonly registrationContext: WalletRegistrationContextResolver;
|
|
11
11
|
readonly usageMeter: RouterApiUsageMeterAdapter;
|
|
12
|
-
readonly walletProjection: RouterApiWalletProjectionAdapter;
|
|
13
12
|
readonly projectEnvironments: RouterApiProjectEnvironmentResolver;
|
|
14
13
|
readonly tenantRootActiveLineage: WalletConsoleTenantRootActiveLineageResolverV1;
|
|
15
14
|
}
|
|
15
|
+
export declare function parseWalletRegistrationContextResponse(input: RouterApiPublishableKeyAuthRequest, status: number, body: unknown): WalletRegistrationContextResult;
|
|
16
16
|
/**
|
|
17
17
|
* Gateway-side client for the private Wallet Console service binding. The
|
|
18
18
|
* Wallet Gateway composes its Router API key auth and usage metering through
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { type WalletRelocationRuntimeBindings } from './walletRelocationOps';
|
|
1
2
|
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
2
3
|
import type { WalletRuntimeServiceBinding } from './walletRuntimeOps';
|
|
3
4
|
export declare const WALLET_CONTROL_SERVICE_ORIGIN_V1 = "https://wallet-runtime.internal";
|
|
4
5
|
export declare const WALLET_CONTROL_BASE_PATH_V1 = "/internal/wallet-runtime/v1/tenant-root-control";
|
|
5
6
|
export declare const WALLET_CONTROL_AUTH_MARKER_V1 = "wallet-control-private-binding-v1";
|
|
6
|
-
export interface WalletControlRuntimeBindings {
|
|
7
|
+
export interface WalletControlRuntimeBindings extends WalletRelocationRuntimeBindings {
|
|
7
8
|
readonly MPC_ROUTER: CloudflareServiceBindingFetcher;
|
|
8
9
|
readonly TENANT_ROOT_CONTROL_PLANE: CloudflareServiceBindingFetcher;
|
|
9
10
|
readonly DERIVER_A: CloudflareServiceBindingFetcher;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { WalletRegistrationContextResolver } from '../../framework/apiCredentialPorts';
|
|
1
2
|
import { type CloudflareD1RouterAbNormalSigningAdmissionStoreOptions } from '../d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore';
|
|
2
3
|
import type { RouterApiOptions } from '../../framework/routerApi';
|
|
3
4
|
import type { RouteDefinition } from '../../framework/routeDefinitions';
|
|
@@ -17,10 +18,11 @@ export declare function walletConsoleSignedDelegateRouteDefinitionV1(routePath:
|
|
|
17
18
|
export declare function walletConsoleSponsoredEvmCallRouteDefinitionV1(routePath?: string): RouteDefinition;
|
|
18
19
|
export declare function walletConsoleRelayRouteDefinitionsV1(): readonly RouteDefinition[];
|
|
19
20
|
export declare function createWalletConsoleRelayProxyExtensionV1(binding: WalletConsoleServiceBinding): RouterApiRouteExtension;
|
|
20
|
-
type WalletGatewayManagedRouterOption = 'apiKeyAuth' | 'publishableKeyAuth' | '
|
|
21
|
+
type WalletGatewayManagedRouterOption = 'apiKeyAuth' | 'publishableKeyAuth' | 'registrationContext' | 'apiKeyUsageMeter' | 'orgProjectEnv' | 'routerAbNormalSigningAdmission' | 'routeExtensions';
|
|
21
22
|
export interface CloudflareWalletGatewayRouterOptionsV1 {
|
|
22
23
|
readonly service: Parameters<typeof createCloudflareRouter>[0];
|
|
23
24
|
readonly walletConsole: WalletConsoleServiceBinding;
|
|
25
|
+
readonly registrationContext?: WalletRegistrationContextResolver;
|
|
24
26
|
readonly signerDatabase: CloudflareD1RouterAbNormalSigningAdmissionStoreOptions['database'];
|
|
25
27
|
readonly signerStorageNamespace: string;
|
|
26
28
|
readonly routeExtensions?: readonly RouterApiRouteExtension[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { WalletId } from '../../../../../shared-ts/src/utils/domainIds';
|
|
2
|
+
export declare const WALLET_OBJECT_IDENTITY_HEADER = "x-seams-wallet-object-identity";
|
|
3
|
+
export declare const WALLET_OBJECT_ADDRESSES_HEADER = "x-seams-wallet-object-addresses";
|
|
4
|
+
/** Opaque addresses select custody objects. They confer no execution authority. */
|
|
5
|
+
export declare class WalletObjectAddresses {
|
|
6
|
+
private readonly values;
|
|
7
|
+
private constructor();
|
|
8
|
+
get router(): string;
|
|
9
|
+
get deriver_a(): string;
|
|
10
|
+
get deriver_b(): string;
|
|
11
|
+
get signing_worker(): string;
|
|
12
|
+
toJSON(): {
|
|
13
|
+
readonly router: string;
|
|
14
|
+
readonly deriver_a: string;
|
|
15
|
+
readonly deriver_b: string;
|
|
16
|
+
readonly signing_worker: string;
|
|
17
|
+
};
|
|
18
|
+
static parse(raw: unknown): WalletObjectAddresses;
|
|
19
|
+
}
|
|
20
|
+
export type WalletObjectTenant = {
|
|
21
|
+
readonly orgId: string;
|
|
22
|
+
readonly projectId: string;
|
|
23
|
+
readonly envId: string;
|
|
24
|
+
};
|
|
25
|
+
export type WalletObjectIdentity = WalletObjectTenant & {
|
|
26
|
+
readonly walletId: WalletId;
|
|
27
|
+
readonly ownershipGeneration: number;
|
|
28
|
+
};
|
|
29
|
+
/** A request-local read of immutable addresses for one wallet generation. */
|
|
30
|
+
export declare class WalletObjectAddressSnapshot {
|
|
31
|
+
private readonly namespace;
|
|
32
|
+
private readonly identity;
|
|
33
|
+
private readonly addresses;
|
|
34
|
+
private constructor();
|
|
35
|
+
static parse(raw: unknown, namespace: string, tenant: WalletObjectTenant): WalletObjectAddressSnapshot;
|
|
36
|
+
resolve(namespace: string, identity: WalletObjectIdentity): WalletObjectAddresses | null;
|
|
37
|
+
}
|
|
38
|
+
export declare function walletObjectIdentity(wallet: unknown, generation: unknown, tenant: {
|
|
39
|
+
readonly [Key in keyof WalletObjectTenant]: unknown;
|
|
40
|
+
}): WalletObjectIdentity;
|
|
41
|
+
export declare function walletObjectIdentityHeaders(identity: WalletObjectIdentity): Record<string, string>;
|
|
42
|
+
export declare function readWalletObjectIdentityHeader(headers: Headers): WalletObjectIdentity | null;
|
|
43
|
+
export declare function walletObjectIdentityFromWireScope(scope: unknown, generation: unknown): WalletObjectIdentity;
|
|
44
|
+
export declare function walletRelocationObjectIdentity(wallet: Record<string, unknown>, generation: unknown): WalletObjectIdentity;
|
|
45
|
+
//# sourceMappingURL=walletObjectAddresses.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { WalletRelocationEmailOtpServices } from '../d1/wallet/d1WalletRelocationEmailOtp';
|
|
2
|
+
import type { TenantId } from '../../../../../shared-ts/src/authorization/capabilityKinds';
|
|
3
|
+
import type { SessionOrigin } from '../../../authorization/domain';
|
|
4
|
+
import type { AuthorizationService } from '../../../authorization/service';
|
|
5
|
+
import type { D1TenantScope } from '../../../core/d1TenantStore';
|
|
6
|
+
import type { D1DatabaseLike } from '../../../storage/tenantRoute';
|
|
7
|
+
import type { RouterApiRouteExtension, RouterApiFetchRouteExtensionInput } from '../../framework/routeExtensions';
|
|
8
|
+
import type { WalletConsoleServiceBinding } from './walletConsoleOpsClient';
|
|
9
|
+
export declare class WalletPlacementRoutes implements RouterApiRouteExtension {
|
|
10
|
+
private readonly options;
|
|
11
|
+
readonly kind = "fetch_route_extension";
|
|
12
|
+
readonly id = "wallet_placement";
|
|
13
|
+
readonly routes: RouterApiRouteExtension['routes'];
|
|
14
|
+
constructor(options: {
|
|
15
|
+
readonly emailOtp: WalletRelocationEmailOtpServices;
|
|
16
|
+
readonly database: D1DatabaseLike;
|
|
17
|
+
readonly scope: D1TenantScope;
|
|
18
|
+
readonly tenantId: TenantId;
|
|
19
|
+
readonly allowedOrigins: readonly SessionOrigin[];
|
|
20
|
+
readonly authorizationSessions: Pick<AuthorizationService, 'readWalletSessionExactOperationContextByCredential'>;
|
|
21
|
+
readonly directory: WalletConsoleServiceBinding;
|
|
22
|
+
});
|
|
23
|
+
handleFetchRoute(input: RouterApiFetchRouteExtensionInput): Promise<Response>;
|
|
24
|
+
handle(request: Request): Promise<Response>;
|
|
25
|
+
private challenge;
|
|
26
|
+
private relocate;
|
|
27
|
+
private walletKey;
|
|
28
|
+
private dispatch;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=walletPlacementRoutes.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
2
|
+
import type { RuntimeSourceDirectory } from './walletRelocationSource';
|
|
3
|
+
type Role = 'deriver-a' | 'deriver-b';
|
|
4
|
+
type Operation = 'fence' | 'capture' | 'export' | 'import' | 'status' | 'verify' | 'activate' | 'cleanup';
|
|
5
|
+
export declare function deriverRuntimeOperation(value: string): {
|
|
6
|
+
role: Role;
|
|
7
|
+
operation: Operation;
|
|
8
|
+
} | null;
|
|
9
|
+
export declare function forwardDeriverRelocation(input: unknown, role: Role, operation: Operation, binding: CloudflareServiceBindingFetcher, credential: string, directory: RuntimeSourceDirectory): Promise<Response>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=walletRelocationDeriver.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
2
|
+
import { type RuntimeSourceDirectory } from './walletRelocationSource';
|
|
3
|
+
type Operation = 'freeze' | 'export' | 'import' | 'status' | 'verify' | 'activate' | 'cleanup';
|
|
4
|
+
export declare function ecdsaRuntimeOperation(operation: string): Operation | null;
|
|
5
|
+
export declare function forwardEcdsaRelocation(input: unknown, operation: Operation, router: CloudflareServiceBindingFetcher, credential: string, directory: RuntimeSourceDirectory): Promise<Response>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=walletRelocationEcdsa.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
2
|
+
import { type RuntimeSourceDirectory } from './walletRelocationSource';
|
|
3
|
+
type Operation = 'capture' | 'export' | 'import' | 'status' | 'verify' | 'activate' | 'cleanup';
|
|
4
|
+
export declare function ed25519RuntimeOperation(operation: string): Operation | null;
|
|
5
|
+
export declare function forwardEd25519Snapshot(input: unknown, operation: Operation, router: CloudflareServiceBindingFetcher, credential: string, directory: RuntimeSourceDirectory): Promise<Response>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=walletRelocationEd25519.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type RuntimeSourceDirectory } from './walletRelocationSource';
|
|
2
|
+
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
3
|
+
export type WalletRelocationRuntimeBindings = RuntimeSourceDirectory & {
|
|
4
|
+
readonly MPC_ROUTER: CloudflareServiceBindingFetcher;
|
|
5
|
+
readonly DERIVER_A: CloudflareServiceBindingFetcher;
|
|
6
|
+
readonly DERIVER_B: CloudflareServiceBindingFetcher;
|
|
7
|
+
readonly ROUTER_AB_INTERNAL_SERVICE_AUTH_SECRET?: string;
|
|
8
|
+
readonly ROUTER_AB_GATEWAY_TO_ROUTER_AUTH_SECRET?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function handleWalletRelocationRequest(request: Request, env: WalletRelocationRuntimeBindings): Promise<Response | null>;
|
|
11
|
+
//# sourceMappingURL=walletRelocationOps.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CloudflareServiceBindingFetcher } from './routerAbServiceBindings';
|
|
2
|
+
import type { RuntimeSourceDirectory } from './walletRelocationSource';
|
|
3
|
+
type Operation = 'inventory' | 'fence' | 'freeze' | 'export' | 'import' | 'verify' | 'status' | 'cleanup';
|
|
4
|
+
export declare function presignSourceOperation(operation: string): Operation | null;
|
|
5
|
+
export declare function forwardPresignSource(input: unknown, operation: Operation, router: CloudflareServiceBindingFetcher, credential: string, directory: RuntimeSourceDirectory): Promise<Response>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=walletRelocationPresign.d.ts.map
|