@seams/wallet 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/SeamsWeb.js +1 -0
- package/dist/esm/SeamsWeb/operations/registration/registration.js +170 -33
- package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +33 -2
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
- package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
- package/dist/esm/core/rpcClients/relayer/walletRegistration.js +88 -4
- package/dist/esm/core/signingEngine/session/passkey/prfCache.js +24 -4
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
- package/dist/esm/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
- package/dist/esm/react/SeamsWeb/SeamsWeb.js +1 -0
- package/dist/esm/react/SeamsWeb/operations/registration/registration.js +170 -33
- package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +33 -2
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +3 -0
- package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +63 -10
- package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +88 -4
- package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +24 -4
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +5 -3
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +40 -3
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +31 -35
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +64 -10
- package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
- package/dist/esm/sdk/{adapters-Dgy69gf0.js → adapters-LgE4nnos.js} +95 -45
- package/dist/esm/sdk/{defaultConfigs-DJCLCrg9.js → defaultConfigs-CyNOW4Sy.js} +1 -1
- package/dist/{public/sdk/ecdsaCapabilityManifest-DA_fklIs.js → esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
- package/dist/{public/sdk/ecdsaPresignLifecycle-D_KCktCj.js → esm/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
- package/dist/esm/sdk/{ed25519SeedMaterial-0VmS6K9P.js → ed25519SeedMaterial-Cghz8-XB.js} +2 -2
- package/dist/esm/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
- package/dist/esm/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-B3K81QGA.js} +1 -1
- package/dist/esm/sdk/{host-DACTruOj.js → host-Y_xmIzPO.js} +2 -2
- package/dist/esm/sdk/{localOnly-DTNq69fJ.js → localOnly-B5TYHJiq.js} +2 -2
- package/dist/{public/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → esm/sdk/nearEd25519YaoMaterialActivation-BLxVE6E5.js} +89 -5
- package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
- package/dist/esm/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
- package/dist/{public/sdk/recovery-entrypoint-CFTX6PFZ.js → esm/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
- package/dist/{public/sdk/registration-CuP1WmQu.js → esm/sdk/registration-BtPLgKHk.js} +1 -1
- package/dist/esm/sdk/{registration-D8nYJKec.js → registration-D-istkMZ.js} +253 -38
- package/dist/esm/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-CvnlDCVn.js} +2 -2
- package/dist/{public/sdk/router-DeX_cJ2f.js → esm/sdk/router-CeFS9SgT.js} +3 -3
- package/dist/{public/sdk/routerAbNormalSigning-BGpRKRAj.js → esm/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
- package/dist/{public/sdk/runtime-auth-Ch00YcH5.js → esm/sdk/runtime-auth-B7z1ANNp.js} +8 -8
- package/dist/esm/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-B8HGDakg.js} +4 -4
- package/dist/esm/sdk/{runtime-ecdsa-tempo-B-qMRrmx.js → runtime-ecdsa-tempo-DKdS5-us.js} +5 -5
- package/dist/{public/sdk/runtime-email-otp-giyMPib8.js → esm/sdk/runtime-email-otp-D5bxhdyG.js} +4 -4
- package/dist/{public/sdk/runtime-export-CV-6G1Oy.js → esm/sdk/runtime-export--hvNrx8l.js} +4 -4
- package/dist/{public/sdk/runtime-near-DoDcS88O.js → esm/sdk/runtime-near-CEexHoug.js} +4 -4
- package/dist/{public/sdk/runtime-preferences-Canyenle.js → esm/sdk/runtime-preferences-BiqPp1lV.js} +4 -4
- package/dist/esm/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BYu1gDq_.js} +4 -4
- package/dist/esm/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CH97jPZ0.js} +80 -37
- package/dist/{public/sdk/runtimeLoader-Dxn8UA8B.js → esm/sdk/runtimeLoader-BFAmJAbu.js} +9 -9
- package/dist/esm/sdk/{secp256k1-CQFsI3qQ.js → secp256k1-Cr1jBW1n.js} +3 -3
- package/dist/esm/sdk/{signEvmFamily-CZLET02E.js → signEvmFamily-Dxk4sBPY.js} +7 -7
- package/dist/esm/sdk/{signNear-BeUWiWm_.js → signNear-B0OCVKoH.js} +6 -6
- package/dist/esm/sdk/{signerLoader-C_w8vuhm.js → signerLoader-D0WU1jq_.js} +1 -1
- package/dist/{public/sdk/transactionState-Dd13hMoY.js → esm/sdk/transactionState-Bpm4GamO.js} +2 -2
- package/dist/esm/sdk/tx-confirm-ui.js +134 -93
- 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/sdk/wallet-ui.css +85 -31
- package/dist/{public/sdk/walletRecoveryCommit-DNvzgeIX.js → esm/sdk/walletRecoveryCommit-G6w6N5RV.js} +3 -3
- package/dist/esm/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +13 -1
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/{adapters-Dgy69gf0.js → adapters-LgE4nnos.js} +95 -45
- package/dist/public/sdk/{defaultConfigs-DJCLCrg9.js → defaultConfigs-CyNOW4Sy.js} +1 -1
- package/dist/{esm/sdk/ecdsaCapabilityManifest-DA_fklIs.js → public/sdk/ecdsaCapabilityManifest-C8itxV9S.js} +1 -1
- package/dist/{esm/sdk/ecdsaPresignLifecycle-D_KCktCj.js → public/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js} +13 -1
- package/dist/public/sdk/{ed25519SeedMaterial-0VmS6K9P.js → ed25519SeedMaterial-Cghz8-XB.js} +2 -2
- package/dist/public/sdk/{exactSessionState-C2aAv_ED.js → exactSessionState-Bt0HforB.js} +64 -11
- package/dist/public/sdk/{export-viewer-host-NhjFdpm-.js → export-viewer-host-B3K81QGA.js} +1 -1
- package/dist/public/sdk/{host-DACTruOj.js → host-Y_xmIzPO.js} +2 -2
- package/dist/public/sdk/{localOnly-DTNq69fJ.js → localOnly-B5TYHJiq.js} +2 -2
- package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-4AuGG2DG.js → public/sdk/nearEd25519YaoMaterialActivation-BLxVE6E5.js} +89 -5
- package/dist/public/sdk/{nearEd25519YaoSigningPreparation-jiGcQylO.js → nearEd25519YaoSigningPreparation-DX6xG-IW.js} +1 -1
- package/dist/public/sdk/{prfCache-Dwwauj4v.js → prfCache-CgAr-VEU.js} +24 -4
- package/dist/{esm/sdk/recovery-entrypoint-CFTX6PFZ.js → public/sdk/recovery-entrypoint-D39R1avB.js} +3 -3
- package/dist/{esm/sdk/registration-CuP1WmQu.js → public/sdk/registration-BtPLgKHk.js} +1 -1
- package/dist/public/sdk/{registration-D8nYJKec.js → registration-D-istkMZ.js} +253 -38
- package/dist/public/sdk/{registrationPreparationPreload-DDe0sbZi.js → registrationPreparationPreload-CvnlDCVn.js} +2 -2
- package/dist/{esm/sdk/router-DeX_cJ2f.js → public/sdk/router-CeFS9SgT.js} +3 -3
- package/dist/{esm/sdk/routerAbNormalSigning-BGpRKRAj.js → public/sdk/routerAbNormalSigning-DktZKnf1.js} +1 -1
- package/dist/{esm/sdk/runtime-auth-Ch00YcH5.js → public/sdk/runtime-auth-B7z1ANNp.js} +8 -8
- package/dist/public/sdk/{runtime-device-link-CEhVZYAw.js → runtime-device-link-B8HGDakg.js} +4 -4
- package/dist/public/sdk/{runtime-ecdsa-tempo-B-qMRrmx.js → runtime-ecdsa-tempo-DKdS5-us.js} +5 -5
- package/dist/{esm/sdk/runtime-email-otp-giyMPib8.js → public/sdk/runtime-email-otp-D5bxhdyG.js} +4 -4
- package/dist/{esm/sdk/runtime-export-CV-6G1Oy.js → public/sdk/runtime-export--hvNrx8l.js} +4 -4
- package/dist/{esm/sdk/runtime-near-DoDcS88O.js → public/sdk/runtime-near-CEexHoug.js} +4 -4
- package/dist/{esm/sdk/runtime-preferences-Canyenle.js → public/sdk/runtime-preferences-BiqPp1lV.js} +4 -4
- package/dist/public/sdk/{runtime-recovery-lWyILD1g.js → runtime-recovery-BYu1gDq_.js} +4 -4
- package/dist/public/sdk/{runtimeContext-BdTaYxJD.js → runtimeContext-CH97jPZ0.js} +80 -37
- package/dist/{esm/sdk/runtimeLoader-Dxn8UA8B.js → public/sdk/runtimeLoader-BFAmJAbu.js} +9 -9
- package/dist/public/sdk/{secp256k1-CQFsI3qQ.js → secp256k1-Cr1jBW1n.js} +3 -3
- package/dist/public/sdk/{signEvmFamily-CZLET02E.js → signEvmFamily-Dxk4sBPY.js} +7 -7
- package/dist/public/sdk/{signNear-BeUWiWm_.js → signNear-B0OCVKoH.js} +6 -6
- package/dist/public/sdk/{signerLoader-C_w8vuhm.js → signerLoader-D0WU1jq_.js} +1 -1
- package/dist/{esm/sdk/transactionState-Dd13hMoY.js → public/sdk/transactionState-Bpm4GamO.js} +2 -2
- package/dist/public/sdk/tx-confirm-ui.js +134 -93
- 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/wallet-ui.css +85 -31
- package/dist/{esm/sdk/walletRecoveryCommit-DNvzgeIX.js → public/sdk/walletRecoveryCommit-G6w6N5RV.js} +3 -3
- package/dist/public/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js} +1 -1
- package/dist/public/sdk/workers/passkey-mpc-session.worker.js +92 -8
- package/dist/public/wallet-assets.manifest.json +74 -74
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +15 -0
- package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +11 -1
- package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +6 -0
- package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +8 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +49 -10
- package/dist/types/wallet/src/core/signingEngine/session/passkey/prfCache.d.ts +7 -9
- package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionHydration.d.ts +7 -8
- package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionMaterialWriter.d.ts +9 -9
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +7 -8
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.d.ts +3 -0
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +6 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/clientSealPreparation.d.ts +2 -0
- package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +15 -1
- package/dist/workers/passkey-mpc-session.worker.js +92 -8
- package/package.json +1 -1
|
@@ -3205,6 +3205,7 @@ body.seams-transparent {
|
|
|
3205
3205
|
}
|
|
3206
3206
|
|
|
3207
3207
|
:where(.seams-wallet-ui) .email-otp-confirm__error {
|
|
3208
|
+
text-align: center;
|
|
3208
3209
|
color: var(--seams-colors-error, var(--seams-red400));
|
|
3209
3210
|
font-size: 0.8rem;
|
|
3210
3211
|
font-weight: 600;
|
|
@@ -3212,6 +3213,7 @@ body.seams-transparent {
|
|
|
3212
3213
|
|
|
3213
3214
|
:where(.seams-wallet-ui) .email-otp-confirm__resend {
|
|
3214
3215
|
justify-self: center;
|
|
3216
|
+
margin-bottom: 0.75rem;
|
|
3215
3217
|
border: 0;
|
|
3216
3218
|
background: transparent;
|
|
3217
3219
|
color: var(--seams-colors-buttonBackground);
|
|
@@ -4145,6 +4147,7 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
4145
4147
|
}
|
|
4146
4148
|
|
|
4147
4149
|
:where(.seams-wallet-ui) .seams-confirmation-modal--hosted {
|
|
4150
|
+
outline: none;
|
|
4148
4151
|
inline-size: var(--seams-modal__container-max-width, 26rem);
|
|
4149
4152
|
max-inline-size: 100%;
|
|
4150
4153
|
max-block-size: none;
|
|
@@ -4915,14 +4918,14 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
4915
4918
|
height: var(--seams-review-disclosure-height);
|
|
4916
4919
|
overflow: hidden;
|
|
4917
4920
|
}
|
|
4918
|
-
:where(.seams-wallet-ui) .seams-transaction-review > .seams-review-technical > div {
|
|
4921
|
+
:where(.seams-wallet-ui) :is(.seams-transaction-review, .seams-transaction-receipt) > .seams-review-technical > div {
|
|
4919
4922
|
margin-inline: calc(-1 * var(--seams-review-inset));
|
|
4920
4923
|
background: var(--seams-colors-surface2);
|
|
4921
4924
|
box-shadow: inset 0 1px 0 var(--seams-colors-borderPrimary),
|
|
4922
4925
|
inset 0 -1px 0 var(--seams-colors-borderPrimary),
|
|
4923
4926
|
inset 0 5px 8px -7px rgb(0 0 0 / 0.16);
|
|
4924
4927
|
}
|
|
4925
|
-
:where(.seams-wallet-ui) .seams-transaction-review > .seams-review-technical > div > .seams-review-detail {
|
|
4928
|
+
:where(.seams-wallet-ui) :is(.seams-transaction-review, .seams-transaction-receipt) > .seams-review-technical > div > :is(.seams-review-detail, .seams-review-fields) {
|
|
4926
4929
|
margin: 0;
|
|
4927
4930
|
padding: 0.75rem var(--seams-review-inset);
|
|
4928
4931
|
}
|
|
@@ -5116,7 +5119,7 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5116
5119
|
justify-content: center;
|
|
5117
5120
|
gap: 0.25rem;
|
|
5118
5121
|
width: fit-content;
|
|
5119
|
-
margin:
|
|
5122
|
+
margin: 0.75rem auto;
|
|
5120
5123
|
color: var(--seams-colors-textSecondary);
|
|
5121
5124
|
font-size: 0.75rem;
|
|
5122
5125
|
text-decoration: none;
|
|
@@ -5173,34 +5176,54 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5173
5176
|
}
|
|
5174
5177
|
:where(.seams-wallet-ui) .seams-transaction-toast {
|
|
5175
5178
|
position: relative;
|
|
5179
|
+
border-radius: inherit;
|
|
5176
5180
|
background: var(--seams-colors-colorBackground);
|
|
5177
5181
|
display: flex;
|
|
5178
5182
|
align-items: center;
|
|
5179
5183
|
gap: 0.75rem;
|
|
5180
|
-
padding:
|
|
5184
|
+
padding: 0.625rem 0.75rem;
|
|
5181
5185
|
}
|
|
5182
5186
|
:where(.seams-wallet-ui) .seams-toast-progress {
|
|
5183
5187
|
position: absolute;
|
|
5184
|
-
inset: 0
|
|
5185
|
-
|
|
5186
|
-
background: var(--seams-colors-colorBackground);
|
|
5188
|
+
inset: 0;
|
|
5189
|
+
border-radius: inherit;
|
|
5187
5190
|
overflow: hidden;
|
|
5191
|
+
pointer-events: none;
|
|
5188
5192
|
}
|
|
5189
|
-
:where(.seams-wallet-ui) .seams-toast-progress
|
|
5193
|
+
:where(.seams-wallet-ui) .seams-toast-progress-fill {
|
|
5194
|
+
position: relative;
|
|
5190
5195
|
display: block;
|
|
5191
|
-
height:
|
|
5196
|
+
height: 2px;
|
|
5192
5197
|
width: 0;
|
|
5193
5198
|
background: var(--seams-colors-buttonBackground);
|
|
5199
|
+
transform-origin: left;
|
|
5194
5200
|
transition: width 300ms ease-out;
|
|
5195
5201
|
}
|
|
5196
|
-
:where(.seams-wallet-ui) [data-completed-stages='1'] .seams-toast-progress
|
|
5202
|
+
:where(.seams-wallet-ui) [data-completed-stages='1'] .seams-toast-progress-fill,
|
|
5203
|
+
:where(.seams-wallet-ui) [data-stage='signing'] .seams-toast-progress-fill {
|
|
5197
5204
|
width: calc(100% / 3);
|
|
5198
5205
|
}
|
|
5199
|
-
:where(.seams-wallet-ui) [data-completed-stages='2'] .seams-toast-progress
|
|
5206
|
+
:where(.seams-wallet-ui) [data-completed-stages='2'] .seams-toast-progress-fill,
|
|
5207
|
+
:where(.seams-wallet-ui) [data-stage='broadcasting'] .seams-toast-progress-fill {
|
|
5200
5208
|
width: calc(200% / 3);
|
|
5201
5209
|
}
|
|
5202
|
-
:where(.seams-wallet-ui) [data-completed-stages='3'] .seams-toast-progress
|
|
5210
|
+
:where(.seams-wallet-ui) [data-completed-stages='3'] .seams-toast-progress-fill {
|
|
5211
|
+
width: 100%;
|
|
5212
|
+
}
|
|
5213
|
+
:where(.seams-wallet-ui) .seams-toast-progress-active {
|
|
5214
|
+
position: absolute;
|
|
5215
|
+
top: 0;
|
|
5216
|
+
left: 0;
|
|
5203
5217
|
width: 100%;
|
|
5218
|
+
height: 2px;
|
|
5219
|
+
overflow: hidden;
|
|
5220
|
+
background: var(--seams-colors-borderPrimary);
|
|
5221
|
+
}
|
|
5222
|
+
:where(.seams-wallet-ui) .seams-toast-progress-active::after {
|
|
5223
|
+
content: '';
|
|
5224
|
+
position: absolute;
|
|
5225
|
+
inset: 0;
|
|
5226
|
+
background: linear-gradient(90deg, transparent, var(--seams-colors-buttonBackground), transparent);
|
|
5204
5227
|
}
|
|
5205
5228
|
:where(.seams-wallet-ui) .seams-transaction-toast-text {
|
|
5206
5229
|
display: grid;
|
|
@@ -5225,7 +5248,7 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5225
5248
|
cursor: pointer;
|
|
5226
5249
|
}
|
|
5227
5250
|
:where(.seams-wallet-ui[data-receipt-view='toast']) .seams-confirmation-modal--hosted {
|
|
5228
|
-
inline-size:
|
|
5251
|
+
inline-size: 20rem;
|
|
5229
5252
|
}
|
|
5230
5253
|
:where(.seams-wallet-ui[data-confirmation-kind='transaction'])
|
|
5231
5254
|
.seams-confirmation-modal
|
|
@@ -5355,16 +5378,10 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5355
5378
|
background: var(--seams-colors-surface2);
|
|
5356
5379
|
box-shadow: 0 0 6px 3px var(--seams-colors-surface2);
|
|
5357
5380
|
}
|
|
5358
|
-
:where(.seams-wallet-ui) .seams-receipt-box {
|
|
5359
|
-
background: var(--seams-colors-surface2);
|
|
5360
|
-
padding: 0.25rem 0.875rem;
|
|
5361
|
-
border-radius: var(--seams-shape-box, 12px);
|
|
5362
|
-
margin-block: 0.75rem;
|
|
5363
|
-
}
|
|
5364
5381
|
:where(.seams-wallet-ui) .seams-receipt-morph-shell {
|
|
5365
5382
|
position: fixed;
|
|
5366
5383
|
pointer-events: none;
|
|
5367
|
-
z-index:
|
|
5384
|
+
z-index: 0;
|
|
5368
5385
|
box-sizing: border-box;
|
|
5369
5386
|
background: var(--seams-colors-colorBackground);
|
|
5370
5387
|
border: 1px solid var(--seams-colors-borderPrimary);
|
|
@@ -5409,18 +5426,11 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5409
5426
|
:where(.seams-wallet-ui) .seams-drawer-controls:has(.seams-drawer-origin) .seams-drawer-close {
|
|
5410
5427
|
top: 0.5rem;
|
|
5411
5428
|
}
|
|
5412
|
-
:where(.seams-wallet-ui) .seams-receipt
|
|
5413
|
-
border-top: 0;
|
|
5414
|
-
margin: 0;
|
|
5415
|
-
}
|
|
5416
|
-
:where(.seams-wallet-ui) .seams-receipt-box .seams-review-fields {
|
|
5417
|
-
margin-bottom: 6px;
|
|
5418
|
-
}
|
|
5419
|
-
:where(.seams-wallet-ui) .seams-receipt-box .seams-review-fields dd .seams-review-copy:not(.seams-review-copy-address) > .copy-icon {
|
|
5429
|
+
:where(.seams-wallet-ui) .seams-transaction-receipt > .seams-review-technical .seams-review-fields dd .seams-review-copy:not(.seams-review-copy-address) > .copy-icon {
|
|
5420
5430
|
opacity: 0;
|
|
5421
5431
|
}
|
|
5422
|
-
:where(.seams-wallet-ui) .seams-receipt-
|
|
5423
|
-
:where(.seams-wallet-ui) .seams-receipt-
|
|
5432
|
+
:where(.seams-wallet-ui) .seams-transaction-receipt > .seams-review-technical .seams-review-fields dd:is(:hover, :focus-within) .seams-review-copy:not(.seams-review-copy-address) > .copy-icon,
|
|
5433
|
+
:where(.seams-wallet-ui) .seams-transaction-receipt > .seams-review-technical .seams-review-fields .seams-review-copy.copied > .copy-icon {
|
|
5424
5434
|
opacity: 1;
|
|
5425
5435
|
}
|
|
5426
5436
|
:where(.seams-wallet-ui) .seams-receipt-step[data-state='complete'] {
|
|
@@ -5440,9 +5450,17 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5440
5450
|
}
|
|
5441
5451
|
}
|
|
5442
5452
|
@media (prefers-reduced-motion: no-preference) {
|
|
5453
|
+
:where(.seams-wallet-ui) .seams-toast-progress {
|
|
5454
|
+
animation: seams-toast-progress-reveal 1ms step-end 200ms backwards;
|
|
5455
|
+
}
|
|
5456
|
+
:where(.seams-wallet-ui) .seams-toast-progress-fill {
|
|
5457
|
+
animation: seams-toast-progress-draw 180ms ease-out 200ms backwards;
|
|
5458
|
+
}
|
|
5459
|
+
:where(.seams-wallet-ui) .seams-toast-progress-active::after,
|
|
5443
5460
|
:where(.seams-wallet-ui) .seams-receipt-step[data-state='active'] .seams-receipt-track::after {
|
|
5444
5461
|
animation: seams-receipt-sweep 1.2s ease-in-out infinite;
|
|
5445
5462
|
}
|
|
5463
|
+
:where(.seams-wallet-ui) [data-completed-stages='2'] .seams-toast-progress-active::after,
|
|
5446
5464
|
:where(.seams-wallet-ui)
|
|
5447
5465
|
.seams-receipt-step[data-stage='confirming'][data-state='active']
|
|
5448
5466
|
.seams-receipt-track::after {
|
|
@@ -5452,6 +5470,22 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5452
5470
|
animation: seams-receipt-spin 1.2s linear infinite;
|
|
5453
5471
|
}
|
|
5454
5472
|
}
|
|
5473
|
+
@keyframes seams-toast-progress-reveal {
|
|
5474
|
+
from {
|
|
5475
|
+
visibility: hidden;
|
|
5476
|
+
}
|
|
5477
|
+
to {
|
|
5478
|
+
visibility: visible;
|
|
5479
|
+
}
|
|
5480
|
+
}
|
|
5481
|
+
@keyframes seams-toast-progress-draw {
|
|
5482
|
+
from {
|
|
5483
|
+
transform: scaleX(0);
|
|
5484
|
+
}
|
|
5485
|
+
to {
|
|
5486
|
+
transform: scaleX(1);
|
|
5487
|
+
}
|
|
5488
|
+
}
|
|
5455
5489
|
@keyframes seams-receipt-sweep {
|
|
5456
5490
|
from {
|
|
5457
5491
|
transform: translateX(-100%);
|
|
@@ -5466,8 +5500,14 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5466
5500
|
}
|
|
5467
5501
|
}
|
|
5468
5502
|
@media (prefers-reduced-motion: reduce) {
|
|
5503
|
+
:where(.seams-wallet-ui) .seams-toast-progress,
|
|
5504
|
+
:where(.seams-wallet-ui) .seams-toast-progress-fill {
|
|
5505
|
+
animation: none;
|
|
5506
|
+
visibility: visible;
|
|
5507
|
+
transform: none;
|
|
5508
|
+
}
|
|
5469
5509
|
:where(.seams-wallet-ui) .seams-review-caret,
|
|
5470
|
-
:where(.seams-wallet-ui) .seams-toast-progress
|
|
5510
|
+
:where(.seams-wallet-ui) .seams-toast-progress-fill,
|
|
5471
5511
|
:where(.seams-wallet-ui) .seams-receipt-track::after {
|
|
5472
5512
|
transition: none;
|
|
5473
5513
|
}
|
|
@@ -5479,6 +5519,20 @@ html:has([data-seams-confirm-surface='wallet-iframe'][data-seams-confirm-variant
|
|
|
5479
5519
|
}
|
|
5480
5520
|
}
|
|
5481
5521
|
|
|
5522
|
+
/* Shared receipt content stays visible above the moving surface. */
|
|
5523
|
+
.seams-wallet-ui[data-receipt-morphing] .seams-confirmation-modal,
|
|
5524
|
+
.seams-wallet-ui[data-receipt-morphing] .seams-confirmation-modal .modal-container-root {
|
|
5525
|
+
overflow: visible;
|
|
5526
|
+
}
|
|
5527
|
+
.seams-wallet-ui[data-receipt-morphing] .seams-confirmation-modal .modal-container-root {
|
|
5528
|
+
z-index: 1;
|
|
5529
|
+
background: transparent;
|
|
5530
|
+
box-shadow: none;
|
|
5531
|
+
}
|
|
5532
|
+
.seams-wallet-ui[data-receipt-morphing] .seams-transaction-toast {
|
|
5533
|
+
background: transparent;
|
|
5534
|
+
}
|
|
5535
|
+
|
|
5482
5536
|
|
|
5483
5537
|
/* recovery-backup-surface */
|
|
5484
5538
|
/*
|
|
@@ -7,15 +7,15 @@ import { _ as parseUnixMs, d as parseEd25519PublicKeyB64u, f as parseEnvelopeCip
|
|
|
7
7
|
import { M as WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND, h as prepareWalletRecoveryPasskeyPublication, m as prepareWalletRecoveryEmailOtpPublication } from "./accountLifecycle-Ddavc_FC.js";
|
|
8
8
|
import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
|
|
9
9
|
import { o as normalizeThresholdRuntimePolicyScope, x as walletAuthorityDigestsMatchV1 } from "./sessionPolicy-B4FsPuk2.js";
|
|
10
|
-
import { At as buildEmailOtpWalletAuthAuthority,
|
|
10
|
+
import { At as buildEmailOtpWalletAuthAuthority, Cn as routerAbMpcMaterialActivationRefToWire, Ht as walletAuthAuthorityRef, Sn as routerAbMpcMaterialActivationRefFromWire, bn as parseRouterAbMpcMaterialActivationRef, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1 } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
|
|
11
11
|
import { l as parseDeviceId } from "./capabilityKinds-jwCEaqBU.js";
|
|
12
12
|
import { St as parseSdkEcdsaDerivationThresholdKeyId, bt as parseSdkEcdsaDerivationSigningRootId, gt as parseEcdsaServerGeneration, vt as computeEcdsaDerivationRoleLocalRelayerKeyId, xt as parseSdkEcdsaDerivationSigningRootVersion, yt as ecdsaClientRootPublicKey33B64uFromString } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
|
|
13
13
|
import { d as parsePasskeyCustodyEnvelopeRecord } from "./passkey-custody-BaHyYMhj.js";
|
|
14
|
-
import { g as prepareWalletCustodyEcdsaContinuity, s as IndexedDBManager, y as pendingWalletRecoveryCommitIdentityMatches } from "./ed25519SeedMaterial-
|
|
14
|
+
import { g as prepareWalletCustodyEcdsaContinuity, s as IndexedDBManager, y as pendingWalletRecoveryCommitIdentityMatches } from "./ed25519SeedMaterial-Cghz8-XB.js";
|
|
15
15
|
import { n as PASSKEY_PRF_SECOND_SALT_V1, t as PASSKEY_PRF_FIRST_SALT_V1 } from "./signingSessionSeal-CdtgXHSL.js";
|
|
16
16
|
import { n as parseEmailOtpChallengeDelivery } from "./challengeDelivery-BjLKoou3.js";
|
|
17
17
|
import { o as redactedPasskeyRegistrationCredential } from "./helpers-DpRjHMBx.js";
|
|
18
|
-
import { S as buildEcdsaRoleLocalPublicFacts } from "./ecdsaCapabilityManifest-
|
|
18
|
+
import { S as buildEcdsaRoleLocalPublicFacts } from "./ecdsaCapabilityManifest-C8itxV9S.js";
|
|
19
19
|
import { n as buildRelayerJsonPostRequestInit, r as normalizeRelayerBaseUrl } from "./relayerHttp-LsVTZCxA.js";
|
|
20
20
|
//#region ../shared-ts/src/wallet-recovery/walletRecoveryTarget.ts
|
|
21
21
|
function parseWalletRecoveryTargetV1(raw) {
|
package/dist/public/sdk/{warmSessionHydration-CCKeEIIy.js → warmSessionHydration-DDNYdTCz.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-
|
|
1
|
+
import { t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-CgAr-VEU.js";
|
|
2
2
|
//#region src/core/signingEngine/session/passkey/warmSessionHydration.ts
|
|
3
3
|
function createWarmSessionHydrationService(deps) {
|
|
4
4
|
return { hydrateSigningSession: (input) => cacheCredentialBoundarySetupExportPrfFirst(deps.getWarmSessionMaterialWriter(), input) };
|
|
@@ -767,6 +767,26 @@ class ClientSealPreparations {
|
|
|
767
767
|
throw result.error;
|
|
768
768
|
return result.seal;
|
|
769
769
|
}
|
|
770
|
+
async readCiphertext(sessionId, preparationId) {
|
|
771
|
+
const entry = this.entries.get(sessionId);
|
|
772
|
+
if (!entry || entry.id !== preparationId) {
|
|
773
|
+
throw new Error("Client seal preparation is unavailable");
|
|
774
|
+
}
|
|
775
|
+
const result = await entry.result;
|
|
776
|
+
if (this.entries.get(sessionId) !== entry) {
|
|
777
|
+
throw new Error("Client seal preparation was discarded");
|
|
778
|
+
}
|
|
779
|
+
if (result.kind === "failed")
|
|
780
|
+
throw result.error;
|
|
781
|
+
return result.seal.ciphertext;
|
|
782
|
+
}
|
|
783
|
+
async takeExact(sessionId, preparationId, secret) {
|
|
784
|
+
const entry = this.entries.get(sessionId);
|
|
785
|
+
if (!entry || entry.id !== preparationId) {
|
|
786
|
+
throw new Error("Client seal preparation is unavailable");
|
|
787
|
+
}
|
|
788
|
+
return await this.take(sessionId, secret);
|
|
789
|
+
}
|
|
770
790
|
async discard(sessionId, preparationId) {
|
|
771
791
|
const entry = this.entries.get(sessionId);
|
|
772
792
|
if (!entry || entry.id !== preparationId)
|
|
@@ -849,6 +869,21 @@ function parseClientSealDiscard(value) {
|
|
|
849
869
|
const thresholdSessionId = parseSessionString(Reflect.get(value, "thresholdSessionId"));
|
|
850
870
|
return preparationId && thresholdSessionId ? { preparationId, thresholdSessionId } : null;
|
|
851
871
|
}
|
|
872
|
+
function parseClientSealCompletion(value) {
|
|
873
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
874
|
+
return null;
|
|
875
|
+
const fields = Object.keys(value);
|
|
876
|
+
if (fields.length !== 4 || !fields.includes("preparationId") || !fields.includes("thresholdSessionId") || !fields.includes("transport") || !fields.includes("serverSeal")) {
|
|
877
|
+
return null;
|
|
878
|
+
}
|
|
879
|
+
const preparationId = parseSessionString(Reflect.get(value, "preparationId"));
|
|
880
|
+
const thresholdSessionId = parseSessionString(Reflect.get(value, "thresholdSessionId"));
|
|
881
|
+
const transport = parseSigningSessionSealTransport(Reflect.get(value, "transport"));
|
|
882
|
+
const serverSeal = parseSigningSessionSealRouteResult(Reflect.get(value, "serverSeal"));
|
|
883
|
+
if (!preparationId || !thresholdSessionId || !transport || !serverSeal.ok)
|
|
884
|
+
return null;
|
|
885
|
+
return { preparationId, thresholdSessionId, transport, serverSeal };
|
|
886
|
+
}
|
|
852
887
|
function parseWarmSessionMaterialPutPayload(value) {
|
|
853
888
|
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
854
889
|
return null;
|
|
@@ -1013,6 +1048,10 @@ function parsePasskeyMpcSessionWorkerMessage(value) {
|
|
|
1013
1048
|
return { kind: "prewarm", ...id ? { id } : {} };
|
|
1014
1049
|
case "PREPARE_SESSION_CLIENT_SEAL":
|
|
1015
1050
|
return { kind: "prepare_client_seal", id, payload: parseClientSealPreparation(payload) };
|
|
1051
|
+
case "READ_SESSION_CLIENT_SEAL":
|
|
1052
|
+
return { kind: "read_client_seal", id, payload: parseClientSealDiscard(payload) };
|
|
1053
|
+
case "COMPLETE_SESSION_CLIENT_SEAL":
|
|
1054
|
+
return { kind: "complete_client_seal", id, payload: parseClientSealCompletion(payload) };
|
|
1016
1055
|
case "DISCARD_SESSION_CLIENT_SEAL":
|
|
1017
1056
|
return { kind: "discard_client_seal", id, payload: parseClientSealDiscard(payload) };
|
|
1018
1057
|
case "WARM_SESSION_MATERIAL_PUT":
|
|
@@ -1523,24 +1562,26 @@ async function runSigningSessionSealAndPersist(args) {
|
|
|
1523
1562
|
const task = (async () => {
|
|
1524
1563
|
const diagnostics = createWarmSessionSealAndPersistDiagnostics();
|
|
1525
1564
|
try {
|
|
1526
|
-
const prepared = await clientSealPreparations.take(thresholdSessionId, activeEntry.secret.prfFirstB64u);
|
|
1565
|
+
const prepared = args.kind === "prepared_response" ? await clientSealPreparations.takeExact(thresholdSessionId, args.preparationId, activeEntry.secret.prfFirstB64u) : await clientSealPreparations.take(thresholdSessionId, activeEntry.secret.prfFirstB64u);
|
|
1527
1566
|
const { runtime, keyHandle, ciphertext: clientEncryptedCiphertext } = prepared;
|
|
1528
1567
|
diagnostics.runtimeSetupMs = prepared.runtimeSetupMs;
|
|
1529
1568
|
diagnostics.clientSealMs = prepared.clientSealMs;
|
|
1530
1569
|
try {
|
|
1531
1570
|
const serverSealRouteStartedAt = performance.now();
|
|
1532
|
-
const applied = await callSigningSessionSealRoute({
|
|
1571
|
+
const applied = args.kind === "prepared_response" ? args.serverSeal : await callSigningSessionSealRoute({
|
|
1533
1572
|
operation: "apply-server-seal",
|
|
1534
1573
|
transport: args.transport,
|
|
1535
1574
|
thresholdSessionId,
|
|
1536
1575
|
ciphertext: clientEncryptedCiphertext,
|
|
1537
1576
|
keyVersion: args.transport.keyVersion
|
|
1538
1577
|
});
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1578
|
+
if (args.kind === "server_route") {
|
|
1579
|
+
recordWarmSessionSealAndPersistDiagnosticDuration({
|
|
1580
|
+
diagnostics,
|
|
1581
|
+
bucket: "serverSealRouteMs",
|
|
1582
|
+
startedAt: serverSealRouteStartedAt
|
|
1583
|
+
});
|
|
1584
|
+
}
|
|
1544
1585
|
if (!applied.ok)
|
|
1545
1586
|
return applied;
|
|
1546
1587
|
const policyUpdateStartedAt = performance.now();
|
|
@@ -1740,6 +1781,40 @@ async function handleClientSealPreparation(incoming) {
|
|
|
1740
1781
|
});
|
|
1741
1782
|
}
|
|
1742
1783
|
}
|
|
1784
|
+
async function handleClientSealRead(incoming) {
|
|
1785
|
+
try {
|
|
1786
|
+
if (!incoming.payload)
|
|
1787
|
+
throw new Error("Invalid client seal read request");
|
|
1788
|
+
const ciphertext = await clientSealPreparations.readCiphertext(incoming.payload.thresholdSessionId, incoming.payload.preparationId);
|
|
1789
|
+
postPasskeyMpcSessionWorkerResponse(incoming.id, {
|
|
1790
|
+
success: true,
|
|
1791
|
+
data: { ok: true, ciphertext }
|
|
1792
|
+
});
|
|
1793
|
+
} catch (error) {
|
|
1794
|
+
postPasskeyMpcSessionWorkerResponse(incoming.id, {
|
|
1795
|
+
success: false,
|
|
1796
|
+
error: error instanceof Error ? error.message : "Client seal read failed"
|
|
1797
|
+
});
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
async function handleClientSealCompletion(incoming) {
|
|
1801
|
+
const payload = incoming.payload;
|
|
1802
|
+
if (!payload) {
|
|
1803
|
+
postPasskeyMpcSessionWorkerResponse(incoming.id, {
|
|
1804
|
+
success: false,
|
|
1805
|
+
error: "Invalid client seal completion request"
|
|
1806
|
+
});
|
|
1807
|
+
return;
|
|
1808
|
+
}
|
|
1809
|
+
const result = await runSigningSessionSealAndPersist({
|
|
1810
|
+
kind: "prepared_response",
|
|
1811
|
+
thresholdSessionId: payload.thresholdSessionId,
|
|
1812
|
+
preparationId: payload.preparationId,
|
|
1813
|
+
transport: payload.transport,
|
|
1814
|
+
serverSeal: payload.serverSeal
|
|
1815
|
+
});
|
|
1816
|
+
postPasskeyMpcSessionWorkerResponse(incoming.id, { success: true, data: result });
|
|
1817
|
+
}
|
|
1743
1818
|
self.onmessage = (event) => {
|
|
1744
1819
|
const incoming = parsePasskeyMpcSessionWorkerMessage(event.data);
|
|
1745
1820
|
switch (incoming.kind) {
|
|
@@ -1747,6 +1822,12 @@ self.onmessage = (event) => {
|
|
|
1747
1822
|
case "discard_client_seal":
|
|
1748
1823
|
handleClientSealPreparation(incoming);
|
|
1749
1824
|
return;
|
|
1825
|
+
case "read_client_seal":
|
|
1826
|
+
handleClientSealRead(incoming);
|
|
1827
|
+
return;
|
|
1828
|
+
case "complete_client_seal":
|
|
1829
|
+
handleClientSealCompletion(incoming);
|
|
1830
|
+
return;
|
|
1750
1831
|
case "ping":
|
|
1751
1832
|
postPasskeyMpcSessionWorkerResponse(incoming.id, { success: true, data: { ok: true } });
|
|
1752
1833
|
return;
|
|
@@ -1877,7 +1958,10 @@ self.onmessage = (event) => {
|
|
|
1877
1958
|
});
|
|
1878
1959
|
return;
|
|
1879
1960
|
}
|
|
1880
|
-
const result = await runSigningSessionSealAndPersist(
|
|
1961
|
+
const result = await runSigningSessionSealAndPersist({
|
|
1962
|
+
kind: "server_route",
|
|
1963
|
+
...payload
|
|
1964
|
+
});
|
|
1881
1965
|
postPasskeyMpcSessionWorkerResponse(incoming.id, { success: true, data: result });
|
|
1882
1966
|
})();
|
|
1883
1967
|
return;
|