@seams/wallet 0.5.0 → 0.5.2
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/LICENSE.md +201 -0
- package/THIRD_PARTY_NOTICES.md +15095 -0
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +7 -14
- package/dist/esm/core/signingEngine/session/identity/exactWalletSessionReader.js +2 -27
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +7 -14
- package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionReader.js +2 -27
- package/dist/esm/sdk/export-private-key-viewer.js +1420 -1425
- package/dist/esm/sdk/halo-border.js +1424 -1429
- package/dist/esm/sdk/{host-BqwEYhX0.js → host-DNmO0eve.js} +2 -2
- package/dist/esm/sdk/passkey-halo-loading.js +1426 -1431
- package/dist/{public/sdk/registrationPreparationPreload-u3ruCmpF.js → esm/sdk/registrationPreparationPreload-CwUkRwVz.js} +1 -1
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/{public/sdk/runtime-auth-Da9yQyaD.js → esm/sdk/runtime-auth-dpoaCtkK.js} +2 -2
- package/dist/esm/sdk/{runtime-device-link-DNlzlwrr.js → runtime-device-link-C75epnbj.js} +1 -1
- package/dist/{public/sdk/runtime-ecdsa-tempo-B7dBVcCI.js → esm/sdk/runtime-ecdsa-tempo-CV-E-iZG.js} +1 -1
- package/dist/{public/sdk/runtime-email-otp-CckVQZJC.js → esm/sdk/runtime-email-otp-V0mdMD_t.js} +1 -1
- package/dist/{public/sdk/runtime-export-WAiBwZL_.js → esm/sdk/runtime-export-C4HO5ysH.js} +1 -1
- package/dist/esm/sdk/{runtime-near-DBJ4KfFv.js → runtime-near-DlviFQWy.js} +1 -1
- package/dist/{public/sdk/runtime-preferences-DmH7eMHH.js → esm/sdk/runtime-preferences-DyJidFuf.js} +1 -1
- package/dist/esm/sdk/{runtime-recovery-kPgl9nTT.js → runtime-recovery-CHDE5gl0.js} +1 -1
- package/dist/esm/sdk/{runtimeContext-BorCgXo5.js → runtimeContext-D_TkUM6Z.js} +6 -38
- package/dist/esm/sdk/{runtimeLoader-BKQjNgXO.js → runtimeLoader-DxiLgXPm.js} +9 -9
- package/dist/esm/sdk/tx-confirm-ui.js +1400 -1407
- package/dist/esm/sdk/w3a-tx-confirmer.js +1442 -1447
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +4 -4
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/export-private-key-viewer.js +1420 -1425
- package/dist/public/sdk/halo-border.js +1424 -1429
- package/dist/public/sdk/{host-BqwEYhX0.js → host-DNmO0eve.js} +2 -2
- package/dist/public/sdk/passkey-halo-loading.js +1426 -1431
- package/dist/{esm/sdk/registrationPreparationPreload-u3ruCmpF.js → public/sdk/registrationPreparationPreload-CwUkRwVz.js} +1 -1
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/{esm/sdk/runtime-auth-Da9yQyaD.js → public/sdk/runtime-auth-dpoaCtkK.js} +2 -2
- package/dist/public/sdk/{runtime-device-link-DNlzlwrr.js → runtime-device-link-C75epnbj.js} +1 -1
- package/dist/{esm/sdk/runtime-ecdsa-tempo-B7dBVcCI.js → public/sdk/runtime-ecdsa-tempo-CV-E-iZG.js} +1 -1
- package/dist/{esm/sdk/runtime-email-otp-CckVQZJC.js → public/sdk/runtime-email-otp-V0mdMD_t.js} +1 -1
- package/dist/{esm/sdk/runtime-export-WAiBwZL_.js → public/sdk/runtime-export-C4HO5ysH.js} +1 -1
- package/dist/public/sdk/{runtime-near-DBJ4KfFv.js → runtime-near-DlviFQWy.js} +1 -1
- package/dist/{esm/sdk/runtime-preferences-DmH7eMHH.js → public/sdk/runtime-preferences-DyJidFuf.js} +1 -1
- package/dist/public/sdk/{runtime-recovery-kPgl9nTT.js → runtime-recovery-CHDE5gl0.js} +1 -1
- package/dist/public/sdk/{runtimeContext-BorCgXo5.js → runtimeContext-D_TkUM6Z.js} +6 -38
- package/dist/public/sdk/{runtimeLoader-BKQjNgXO.js → runtimeLoader-DxiLgXPm.js} +9 -9
- package/dist/public/sdk/tx-confirm-ui.js +1400 -1407
- package/dist/public/sdk/w3a-tx-confirmer.js +1442 -1447
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/workers/device-linking-key.worker.js +133 -140
- package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +94 -188
- package/dist/public/sdk/workers/ecdsa-online-client.worker.js +6 -7
- package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +6 -7
- package/dist/public/sdk/workers/email-otp.worker.js +39 -52
- package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
- package/dist/public/sdk/workers/evm-crypto.worker.js +3 -3
- package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
- package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
- package/dist/public/sdk/workers/near-signer.worker.js +9 -9
- package/dist/public/sdk/workers/near_signer.wasm +0 -0
- package/dist/public/sdk/workers/passkey-confirm.worker.js +4 -4
- package/dist/public/sdk/workers/passkey-mpc-export.worker.js +9 -19
- package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/workers/shamir3pass.worker.js +3 -3
- package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/public/sdk/workers/tempo-signer.worker.js +3 -3
- package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
- package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
- package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +55 -1244
- package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
- package/dist/public/wallet-assets.manifest.json +32 -32
- package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -4
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +1 -9
- package/dist/workers/device-linking-key.worker.js +133 -140
- package/dist/workers/ecdsa-derivation-client.worker.js +94 -188
- package/dist/workers/ecdsa-online-client.worker.js +6 -7
- package/dist/workers/ecdsa-presign-client.worker.js +6 -7
- package/dist/workers/email-otp.worker.js +39 -52
- package/dist/workers/email_otp_runtime_bg.wasm +0 -0
- package/dist/workers/evm-crypto.worker.js +3 -3
- package/dist/workers/evm_crypto.wasm +0 -0
- package/dist/workers/evm_crypto_bg.wasm +0 -0
- package/dist/workers/near-signer.worker.js +9 -9
- package/dist/workers/near_signer.wasm +0 -0
- package/dist/workers/passkey-confirm.worker.js +4 -4
- package/dist/workers/passkey-mpc-export.worker.js +9 -19
- package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
- package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/workers/shamir3pass.worker.js +3 -3
- package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/workers/tempo-signer.worker.js +3 -3
- package/dist/workers/tempo_signer.wasm +0 -0
- package/dist/workers/tempo_signer_bg.wasm +0 -0
- package/dist/workers/wallet-custody-ceremony.worker.js +55 -1244
- package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
- package/package.json +6 -3
- package/LICENSE +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3453dbe490ad19955c12397ded644b4e67fcdaeefeeba7f3ee9edd4487e13f33
|
|
@@ -71,7 +71,7 @@ import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroad
|
|
|
71
71
|
import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
|
|
72
72
|
import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
|
|
73
73
|
import { activateAuthenticatedWalletState, finalizeWalletEcdsaRegistration, finalizeWalletEd25519SignerRegistration, getAllUsers, getAuthenticationCredentialsSerialized, getLastUser, getUserBySignerSlot, getWalletNearProvisioningState, hasPasskeyCredential, nearAuthenticatorsByAccount, requestRegistrationCredentialConfirmation, rollbackUserRegistration, rollbackWalletEd25519SignerRegistration, setLastUser, setWalletNearProvisioningState, storeAuthenticator, storeUserData, storeWalletEcdsaRecoverySignerRecords, storeWalletEcdsaSignerRecords, storeWalletEd25519RecoveryRegistrationData, storeWalletEd25519RegistrationData, storeWalletEmailOtpEcdsaRegistrationData, storeWalletEmailOtpEcdsaSignerRecords, storeWalletEmailOtpEd25519RegistrationData, storeWalletEmailOtpMixedRegistrationData, storeWalletMixedRegistrationData } from "../../core/signingEngine/flows/registration/public.js";
|
|
74
|
-
import { exactWalletSessionWithOperationCredentialOrThrow
|
|
74
|
+
import { exactWalletSessionWithOperationCredentialOrThrow } from "../../core/signingEngine/session/identity/exactWalletSessionReader.js";
|
|
75
75
|
import { enrollEmailOtpInternal, loginWithEmailOtpEcdsaCapabilityInternal, prepareEmailOtpRegistrationEnrollmentMaterialInternal, refreshEmailOtpSigningSession, requestEmailOtpSigningSessionChallenge } from "../../core/signingEngine/flows/signEvmFamily/emailOtpPublic.js";
|
|
76
76
|
import { __isWalletIframeHostMode } from "../../core/browser/walletIframe/host-mode.js";
|
|
77
77
|
import { destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, establishUnlockedWalletEd25519ExportRootCapabilityV1, setUnlockedCustodyEnvelopeUpgradeSinkV1 } from "../../core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js";
|
|
@@ -1141,7 +1141,7 @@ var BrowserSigningSurface = class {
|
|
|
1141
1141
|
emailOtpSessions: this.emailOtpSessions,
|
|
1142
1142
|
sealedSigningSessionStore: deps.sealedSigningSessionStore
|
|
1143
1143
|
}, input),
|
|
1144
|
-
resolveOwnerLaneScope: (walletId) => this.
|
|
1144
|
+
resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId)
|
|
1145
1145
|
});
|
|
1146
1146
|
this.enginePorts = createBrowserSigningSurfaceEnginePorts({
|
|
1147
1147
|
runtimePorts: this.runtimePorts,
|
|
@@ -1167,7 +1167,7 @@ var BrowserSigningSurface = class {
|
|
|
1167
1167
|
workerWarmupPolicy: deps.workerWarmupPolicy,
|
|
1168
1168
|
getTheme: () => this.appearance.theme.mode,
|
|
1169
1169
|
ensureSealedRefreshStartupParity: () => this.ensureSealedRefreshStartupParity(),
|
|
1170
|
-
resolveOwnerLaneScope: (walletId) => this.
|
|
1170
|
+
resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId),
|
|
1171
1171
|
getEnginePorts: () => this.enginePorts,
|
|
1172
1172
|
getRegistrationPublicDeps: () => this.registrationPublicDeps,
|
|
1173
1173
|
prepareNearEd25519YaoMaterialBoundary: this.prepareExactNearEd25519YaoMaterialBoundary.bind(this)
|
|
@@ -1488,11 +1488,11 @@ var BrowserSigningSurface = class {
|
|
|
1488
1488
|
return await readOwnerScopedSigningLanes(this.sessionPublicDeps, args);
|
|
1489
1489
|
}
|
|
1490
1490
|
/**
|
|
1491
|
-
*
|
|
1492
|
-
* Session
|
|
1493
|
-
*
|
|
1491
|
+
* Resolves the selected active Wallet Authority and auth method to one exact
|
|
1492
|
+
* owner scope. Session availability is resolved by the lane inventory so an
|
|
1493
|
+
* expired session can enter operation step-up.
|
|
1494
1494
|
*/
|
|
1495
|
-
async
|
|
1495
|
+
async resolveSelectedOwnerLaneScope(walletId) {
|
|
1496
1496
|
const parsedWalletId = parseWalletId(walletId);
|
|
1497
1497
|
if (!parsedWalletId.ok) throw new Error(parsedWalletId.error.message);
|
|
1498
1498
|
const stores = {
|
|
@@ -1506,13 +1506,6 @@ var BrowserSigningSurface = class {
|
|
|
1506
1506
|
const { selection, authMethod, authority } = selected;
|
|
1507
1507
|
if (selection.walletId !== parsedWalletId.value || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletId !== parsedWalletId.value || authMethod.walletAuthorityId !== authority.authorityId || authority.walletId !== parsedWalletId.value) throw new Error("[SigningEngine] selected Wallet Authority identity mismatch");
|
|
1508
1508
|
if (selection.lockState !== "unlocked" || authMethod.status !== "active" || authority.state !== "active") throw new Error("[SigningEngine] selected Wallet Authority is inactive or locked");
|
|
1509
|
-
await readExactOwnerLaneWalletSession({
|
|
1510
|
-
walletId: parsedWalletId.value,
|
|
1511
|
-
authorityId: authority.authorityId,
|
|
1512
|
-
authMethodId: authMethod.walletAuthMethodId,
|
|
1513
|
-
authorityDigestB64u: authority.authorityDigestB64u,
|
|
1514
|
-
authorityRevocationEpoch: authority.revocationEpoch
|
|
1515
|
-
});
|
|
1516
1509
|
if (authority.provenance.kind === "device_link" && authMethod.kind === "passkey" && authority.signerActivations.ed25519) return buildExactPasskeyOwnerLaneScope({
|
|
1517
1510
|
authMethod,
|
|
1518
1511
|
signerSlot: await resolveLinkedPasskeyOwnerSignerSlot({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WalletSessionAuthorizationUpgradeRequiredError
|
|
1
|
+
import { WalletSessionAuthorizationUpgradeRequiredError } from "../../../indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
|
|
2
2
|
//#region src/core/signingEngine/session/identity/exactWalletSessionReader.ts
|
|
3
3
|
function exactWalletSessionMatchesAuthorityScope(args) {
|
|
4
4
|
const { record, operationCredential, scope } = args;
|
|
@@ -48,32 +48,7 @@ function exactWalletSessionWithOperationCredentialOrThrow(result, message) {
|
|
|
48
48
|
case "upgrade_required": throw new WalletSessionAuthorizationUpgradeRequiredError(message);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
async function readExactOwnerLaneWalletSession(args) {
|
|
52
|
-
const read = await walletSessionAuthorizations.readExactActiveForWallet({
|
|
53
|
-
walletId: args.walletId,
|
|
54
|
-
authorityId: args.authorityId,
|
|
55
|
-
authMethodId: args.authMethodId
|
|
56
|
-
});
|
|
57
|
-
switch (read.kind) {
|
|
58
|
-
case "found":
|
|
59
|
-
if (!exactWalletSessionMatchesAuthorityScope({
|
|
60
|
-
record: read.record,
|
|
61
|
-
operationCredential: read.operationCredential,
|
|
62
|
-
scope: args
|
|
63
|
-
})) throw new Error("[SigningEngine] selected Wallet Authority session identity mismatch");
|
|
64
|
-
if (read.record.expiresAtMs <= Date.now()) throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: expired");
|
|
65
|
-
return;
|
|
66
|
-
case "missing": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: missing");
|
|
67
|
-
case "upgrade_required": throw new WalletSessionAuthorizationUpgradeRequiredError("[SigningEngine] selected Wallet Authority Wallet Session requires a newer client");
|
|
68
|
-
case "corrupt": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: corrupt");
|
|
69
|
-
case "persistence_unavailable": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: persistence_unavailable");
|
|
70
|
-
default: return assertNeverWalletSessionAuthorizationRead(read);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
function assertNeverWalletSessionAuthorizationRead(value) {
|
|
74
|
-
throw new Error(`Unknown exact Wallet Session authorization read: ${String(value)}`);
|
|
75
|
-
}
|
|
76
51
|
//#endregion
|
|
77
|
-
export { exactWalletSessionWithOperationCredentialOrThrow,
|
|
52
|
+
export { exactWalletSessionWithOperationCredentialOrThrow, readExactWalletSessionAuthentication };
|
|
78
53
|
|
|
79
54
|
//# sourceMappingURL=exactWalletSessionReader.js.map
|
|
@@ -71,7 +71,7 @@ import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroad
|
|
|
71
71
|
import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
|
|
72
72
|
import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
|
|
73
73
|
import { activateAuthenticatedWalletState, finalizeWalletEcdsaRegistration, finalizeWalletEd25519SignerRegistration, getAllUsers, getAuthenticationCredentialsSerialized, getLastUser, getUserBySignerSlot, getWalletNearProvisioningState, hasPasskeyCredential, nearAuthenticatorsByAccount, requestRegistrationCredentialConfirmation, rollbackUserRegistration, rollbackWalletEd25519SignerRegistration, setLastUser, setWalletNearProvisioningState, storeAuthenticator, storeUserData, storeWalletEcdsaRecoverySignerRecords, storeWalletEcdsaSignerRecords, storeWalletEd25519RecoveryRegistrationData, storeWalletEd25519RegistrationData, storeWalletEmailOtpEcdsaRegistrationData, storeWalletEmailOtpEcdsaSignerRecords, storeWalletEmailOtpEd25519RegistrationData, storeWalletEmailOtpMixedRegistrationData, storeWalletMixedRegistrationData } from "../../core/signingEngine/flows/registration/public.js";
|
|
74
|
-
import { exactWalletSessionWithOperationCredentialOrThrow
|
|
74
|
+
import { exactWalletSessionWithOperationCredentialOrThrow } from "../../core/signingEngine/session/identity/exactWalletSessionReader.js";
|
|
75
75
|
import { enrollEmailOtpInternal, loginWithEmailOtpEcdsaCapabilityInternal, prepareEmailOtpRegistrationEnrollmentMaterialInternal, refreshEmailOtpSigningSession, requestEmailOtpSigningSessionChallenge } from "../../core/signingEngine/flows/signEvmFamily/emailOtpPublic.js";
|
|
76
76
|
import { __isWalletIframeHostMode } from "../../core/browser/walletIframe/host-mode.js";
|
|
77
77
|
import { destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, establishUnlockedWalletEd25519ExportRootCapabilityV1, setUnlockedCustodyEnvelopeUpgradeSinkV1 } from "../../core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js";
|
|
@@ -1141,7 +1141,7 @@ var BrowserSigningSurface = class {
|
|
|
1141
1141
|
emailOtpSessions: this.emailOtpSessions,
|
|
1142
1142
|
sealedSigningSessionStore: deps.sealedSigningSessionStore
|
|
1143
1143
|
}, input),
|
|
1144
|
-
resolveOwnerLaneScope: (walletId) => this.
|
|
1144
|
+
resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId)
|
|
1145
1145
|
});
|
|
1146
1146
|
this.enginePorts = createBrowserSigningSurfaceEnginePorts({
|
|
1147
1147
|
runtimePorts: this.runtimePorts,
|
|
@@ -1167,7 +1167,7 @@ var BrowserSigningSurface = class {
|
|
|
1167
1167
|
workerWarmupPolicy: deps.workerWarmupPolicy,
|
|
1168
1168
|
getTheme: () => this.appearance.theme.mode,
|
|
1169
1169
|
ensureSealedRefreshStartupParity: () => this.ensureSealedRefreshStartupParity(),
|
|
1170
|
-
resolveOwnerLaneScope: (walletId) => this.
|
|
1170
|
+
resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId),
|
|
1171
1171
|
getEnginePorts: () => this.enginePorts,
|
|
1172
1172
|
getRegistrationPublicDeps: () => this.registrationPublicDeps,
|
|
1173
1173
|
prepareNearEd25519YaoMaterialBoundary: this.prepareExactNearEd25519YaoMaterialBoundary.bind(this)
|
|
@@ -1488,11 +1488,11 @@ var BrowserSigningSurface = class {
|
|
|
1488
1488
|
return await readOwnerScopedSigningLanes(this.sessionPublicDeps, args);
|
|
1489
1489
|
}
|
|
1490
1490
|
/**
|
|
1491
|
-
*
|
|
1492
|
-
* Session
|
|
1493
|
-
*
|
|
1491
|
+
* Resolves the selected active Wallet Authority and auth method to one exact
|
|
1492
|
+
* owner scope. Session availability is resolved by the lane inventory so an
|
|
1493
|
+
* expired session can enter operation step-up.
|
|
1494
1494
|
*/
|
|
1495
|
-
async
|
|
1495
|
+
async resolveSelectedOwnerLaneScope(walletId) {
|
|
1496
1496
|
const parsedWalletId = parseWalletId(walletId);
|
|
1497
1497
|
if (!parsedWalletId.ok) throw new Error(parsedWalletId.error.message);
|
|
1498
1498
|
const stores = {
|
|
@@ -1506,13 +1506,6 @@ var BrowserSigningSurface = class {
|
|
|
1506
1506
|
const { selection, authMethod, authority } = selected;
|
|
1507
1507
|
if (selection.walletId !== parsedWalletId.value || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletId !== parsedWalletId.value || authMethod.walletAuthorityId !== authority.authorityId || authority.walletId !== parsedWalletId.value) throw new Error("[SigningEngine] selected Wallet Authority identity mismatch");
|
|
1508
1508
|
if (selection.lockState !== "unlocked" || authMethod.status !== "active" || authority.state !== "active") throw new Error("[SigningEngine] selected Wallet Authority is inactive or locked");
|
|
1509
|
-
await readExactOwnerLaneWalletSession({
|
|
1510
|
-
walletId: parsedWalletId.value,
|
|
1511
|
-
authorityId: authority.authorityId,
|
|
1512
|
-
authMethodId: authMethod.walletAuthMethodId,
|
|
1513
|
-
authorityDigestB64u: authority.authorityDigestB64u,
|
|
1514
|
-
authorityRevocationEpoch: authority.revocationEpoch
|
|
1515
|
-
});
|
|
1516
1509
|
if (authority.provenance.kind === "device_link" && authMethod.kind === "passkey" && authority.signerActivations.ed25519) return buildExactPasskeyOwnerLaneScope({
|
|
1517
1510
|
authMethod,
|
|
1518
1511
|
signerSlot: await resolveLinkedPasskeyOwnerSignerSlot({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WalletSessionAuthorizationUpgradeRequiredError
|
|
1
|
+
import { WalletSessionAuthorizationUpgradeRequiredError } from "../../../indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
|
|
2
2
|
//#region src/core/signingEngine/session/identity/exactWalletSessionReader.ts
|
|
3
3
|
function exactWalletSessionMatchesAuthorityScope(args) {
|
|
4
4
|
const { record, operationCredential, scope } = args;
|
|
@@ -48,32 +48,7 @@ function exactWalletSessionWithOperationCredentialOrThrow(result, message) {
|
|
|
48
48
|
case "upgrade_required": throw new WalletSessionAuthorizationUpgradeRequiredError(message);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
async function readExactOwnerLaneWalletSession(args) {
|
|
52
|
-
const read = await walletSessionAuthorizations.readExactActiveForWallet({
|
|
53
|
-
walletId: args.walletId,
|
|
54
|
-
authorityId: args.authorityId,
|
|
55
|
-
authMethodId: args.authMethodId
|
|
56
|
-
});
|
|
57
|
-
switch (read.kind) {
|
|
58
|
-
case "found":
|
|
59
|
-
if (!exactWalletSessionMatchesAuthorityScope({
|
|
60
|
-
record: read.record,
|
|
61
|
-
operationCredential: read.operationCredential,
|
|
62
|
-
scope: args
|
|
63
|
-
})) throw new Error("[SigningEngine] selected Wallet Authority session identity mismatch");
|
|
64
|
-
if (read.record.expiresAtMs <= Date.now()) throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: expired");
|
|
65
|
-
return;
|
|
66
|
-
case "missing": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: missing");
|
|
67
|
-
case "upgrade_required": throw new WalletSessionAuthorizationUpgradeRequiredError("[SigningEngine] selected Wallet Authority Wallet Session requires a newer client");
|
|
68
|
-
case "corrupt": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: corrupt");
|
|
69
|
-
case "persistence_unavailable": throw new Error("[SigningEngine] selected Wallet Authority session is unavailable: persistence_unavailable");
|
|
70
|
-
default: return assertNeverWalletSessionAuthorizationRead(read);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
function assertNeverWalletSessionAuthorizationRead(value) {
|
|
74
|
-
throw new Error(`Unknown exact Wallet Session authorization read: ${String(value)}`);
|
|
75
|
-
}
|
|
76
51
|
//#endregion
|
|
77
|
-
export { exactWalletSessionWithOperationCredentialOrThrow,
|
|
52
|
+
export { exactWalletSessionWithOperationCredentialOrThrow, readExactWalletSessionAuthentication };
|
|
78
53
|
|
|
79
54
|
//# sourceMappingURL=exactWalletSessionReader.js.map
|