@seams/wallet 0.7.1 → 0.7.3
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 +1 -105
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/SeamsWeb/SeamsWeb.js +10 -1
- package/dist/esm/SeamsWeb/operations/auth/login.js +16 -6
- package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
- package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
- package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
- package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
- package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
- package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
- package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
- package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
- package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
- package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +88 -222
- package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
- package/dist/esm/build-paths.js +0 -2
- package/dist/esm/components/AccountMenuButton/MenuItem.css +17 -0
- package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -5
- package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
- package/dist/esm/components/QRCodeScanner.css +0 -15
- package/dist/esm/components/ShowQRCode.css +0 -14
- package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
- package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
- package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
- package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +69 -121
- package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
- package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
- package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
- package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
- package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
- package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
- package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
- package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
- package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
- package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
- package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
- package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
- package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
- package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
- package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
- package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
- package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
- package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
- package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
- package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
- package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
- package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
- package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
- package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
- package/dist/esm/core/signingEngine/workerManager/workerTransport.js +1 -5
- package/dist/esm/react/SeamsWeb/SeamsWeb.js +10 -1
- package/dist/esm/react/SeamsWeb/operations/auth/login.js +16 -6
- package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
- package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +2 -3
- package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
- package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
- package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
- package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
- package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
- package/dist/esm/react/SeamsWeb/publicApi/auth.js +2 -1
- package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
- package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
- package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
- package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
- package/dist/esm/react/build-paths.js +0 -2
- package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +2 -2
- package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
- package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +4 -4
- package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
- package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
- package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
- package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +7 -7
- package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
- package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
- package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
- package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
- package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
- package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
- package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
- package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
- package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
- package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
- package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
- package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
- package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
- package/dist/esm/react/components/AccountMenuButton/index.js +6 -6
- package/dist/esm/react/components/QRCodeScanner.css +0 -15
- package/dist/esm/react/components/ShowQRCode.css +0 -14
- package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
- package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
- package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
- package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
- package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +4 -4
- package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
- package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
- package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
- package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
- package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
- package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
- package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
- package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +2 -2
- package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
- package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
- package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
- package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
- package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
- package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
- package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
- package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
- package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
- package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
- package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
- package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
- package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
- package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
- package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
- package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
- package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
- package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
- package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +1 -5
- package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
- package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
- package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
- package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
- package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
- package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +5 -8
- package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +5 -1
- package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
- package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +12 -16
- package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
- package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +2 -8
- package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +2 -5
- package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
- package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
- package/dist/esm/react/styles/styles.css +17 -86
- package/dist/esm/react/utils/menuItemBlink.js +24 -0
- package/dist/esm/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
- package/dist/esm/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
- package/dist/{public/sdk/canonicalSignerErrorCode-CRoJMVpp.js → esm/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
- package/dist/esm/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
- package/dist/{public/sdk/configHelpers-vAQCzUD0.js → esm/sdk/configHelpers-D1EqxVxg.js} +1 -1
- package/dist/{public/sdk/defaultConfigs-B3c16M_8.js → esm/sdk/defaultConfigs-D_33pPT9.js} +3 -3
- package/dist/esm/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
- package/dist/esm/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
- package/dist/{public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
- package/dist/esm/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
- package/dist/{public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
- package/dist/esm/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
- package/dist/esm/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
- package/dist/esm/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
- package/dist/{public/sdk/host-BWBbCAMu.js → esm/sdk/host-CnV8nAUe.js} +3 -3
- package/dist/{public/sdk/keyMaterialBrands-CX41hur6.js → esm/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
- package/dist/{public/sdk/localOnly-Bg8UuLZ5.js → esm/sdk/localOnly-DTpa2jD5.js} +2 -2
- package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
- package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
- package/dist/esm/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
- package/dist/esm/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
- package/dist/esm/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
- package/dist/esm/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
- package/dist/esm/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
- package/dist/esm/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
- package/dist/esm/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/esm/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
- package/dist/{public/sdk/router-C5lF_J_u.js → esm/sdk/router-B4ZWFy9E.js} +7 -7
- package/dist/{public/sdk/routerAbNormalSigning-fhvpDtmY.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
- package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/esm/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
- package/dist/esm/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
- package/dist/esm/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
- package/dist/{public/sdk/runtime-email-otp-vuUG5LYl.js → esm/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
- package/dist/{public/sdk/runtime-export-FZWj0HxJ.js → esm/sdk/runtime-export-DIVY473L.js} +13 -13
- package/dist/esm/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
- package/dist/esm/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
- package/dist/esm/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
- package/dist/{public/sdk/runtime-recovery-C-vfFKF3.js → esm/sdk/runtime-recovery-i08vCJST.js} +12 -12
- package/dist/esm/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
- package/dist/esm/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
- package/dist/{public/sdk/secp256k1-el9aE4Sv.js → esm/sdk/secp256k1-D-I6Gh4D.js} +36 -25
- package/dist/esm/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
- package/dist/{public/sdk/signEvmFamily-e4IWWsZs.js → esm/sdk/signEvmFamily-C3C97Th-.js} +43 -102
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
- package/dist/{public/sdk/signEvmWithUiConfirm-C61TCBnh.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
- package/dist/esm/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
- package/dist/{public/sdk/signerLoader-D7Aey0FD.js → esm/sdk/signerLoader-B7orgq5Z.js} +3 -3
- package/dist/{public/sdk/signingFlow-rZfPegH9.js → esm/sdk/signingFlow-SZ8t_lxv.js} +9 -10
- package/dist/esm/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
- package/dist/esm/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
- package/dist/esm/sdk/tx-confirm-ui.js +11 -46
- 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/{public/sdk/wallet-recovery-Bz9qKgaL.js → esm/sdk/wallet-recovery-BX61-79p.js} +3 -6
- package/dist/esm/sdk/wallet-ui.css +41 -301
- package/dist/{public/sdk/walletAuthority-BQBxgUBn.js → esm/sdk/walletAuthority-DD9T25F6.js} +1 -5
- package/dist/esm/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
- package/dist/esm/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
- package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +12 -16
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
- package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
- package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -8
- package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -5
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
- package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
- package/dist/esm/utils/menuItemBlink.js +24 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +1 -1
- 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/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
- package/dist/public/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
- package/dist/{esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js → public/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
- package/dist/public/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
- package/dist/{esm/sdk/configHelpers-vAQCzUD0.js → public/sdk/configHelpers-D1EqxVxg.js} +1 -1
- package/dist/{esm/sdk/defaultConfigs-B3c16M_8.js → public/sdk/defaultConfigs-D_33pPT9.js} +3 -3
- package/dist/public/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
- package/dist/public/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
- package/dist/{esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
- package/dist/public/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
- package/dist/{esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
- package/dist/public/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
- package/dist/public/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
- package/dist/public/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
- package/dist/{esm/sdk/host-BWBbCAMu.js → public/sdk/host-CnV8nAUe.js} +3 -3
- package/dist/{esm/sdk/keyMaterialBrands-CX41hur6.js → public/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
- package/dist/{esm/sdk/localOnly-Bg8UuLZ5.js → public/sdk/localOnly-DTpa2jD5.js} +2 -2
- package/dist/public/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
- package/dist/public/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
- package/dist/public/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
- package/dist/public/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
- package/dist/public/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
- package/dist/public/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
- package/dist/public/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
- package/dist/public/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
- package/dist/public/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
- package/dist/public/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
- package/dist/{esm/sdk/router-C5lF_J_u.js → public/sdk/router-B4ZWFy9E.js} +7 -7
- package/dist/{esm/sdk/routerAbNormalSigning-fhvpDtmY.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
- package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
- package/dist/public/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
- package/dist/public/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
- package/dist/public/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
- package/dist/{esm/sdk/runtime-email-otp-vuUG5LYl.js → public/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
- package/dist/{esm/sdk/runtime-export-FZWj0HxJ.js → public/sdk/runtime-export-DIVY473L.js} +13 -13
- package/dist/public/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
- package/dist/public/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
- package/dist/public/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
- package/dist/{esm/sdk/runtime-recovery-C-vfFKF3.js → public/sdk/runtime-recovery-i08vCJST.js} +12 -12
- package/dist/public/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
- package/dist/public/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
- package/dist/{esm/sdk/secp256k1-el9aE4Sv.js → public/sdk/secp256k1-D-I6Gh4D.js} +36 -25
- package/dist/public/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
- package/dist/{esm/sdk/signEvmFamily-e4IWWsZs.js → public/sdk/signEvmFamily-C3C97Th-.js} +43 -102
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
- package/dist/{esm/sdk/signEvmWithUiConfirm-C61TCBnh.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
- package/dist/public/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
- package/dist/{esm/sdk/signerLoader-D7Aey0FD.js → public/sdk/signerLoader-B7orgq5Z.js} +3 -3
- package/dist/{esm/sdk/signingFlow-rZfPegH9.js → public/sdk/signingFlow-SZ8t_lxv.js} +9 -10
- package/dist/public/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
- package/dist/public/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
- package/dist/public/sdk/tx-confirm-ui.js +11 -46
- 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/{esm/sdk/wallet-recovery-Bz9qKgaL.js → public/sdk/wallet-recovery-BX61-79p.js} +3 -6
- package/dist/public/sdk/wallet-ui.css +41 -301
- package/dist/{esm/sdk/walletAuthority-BQBxgUBn.js → public/sdk/walletAuthority-DD9T25F6.js} +1 -5
- package/dist/public/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
- package/dist/public/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
- package/dist/public/sdk/workers/device-linking-key.worker.js +106 -105
- package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +15 -24
- package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +58 -73
- package/dist/public/sdk/workers/email-otp.worker.js +13 -16
- 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.wasm +0 -0
- 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/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 +7 -7
- 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 +112 -112
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
- package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +5 -63
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -1
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +3 -5
- package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
- package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
- package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
- package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
- package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
- package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
- package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
- package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
- package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
- package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
- package/dist/types/wallet/build-paths.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
- package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -17
- package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
- package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
- package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
- package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +1 -2
- package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
- package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
- package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -8
- package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
- package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +3 -6
- package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +9 -38
- package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
- package/dist/types/wallet/src/core/platform/ports.d.ts +3 -7
- package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
- package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
- package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -8
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
- package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
- package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
- package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +1 -10
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
- package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +3 -10
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
- package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -2
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
- package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
- package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -6
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
- package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +3 -6
- package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
- package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
- package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +3 -8
- package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
- package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
- package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +3 -5
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -8
- package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -22
- package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
- package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
- package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
- package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
- package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +3 -0
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -11
- package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -2
- package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
- package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
- package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +4 -21
- package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
- package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
- package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
- package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
- package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
- package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
- package/dist/workers/device-linking-key.worker.js +106 -105
- package/dist/workers/ecdsa-derivation-client.worker.js +15 -24
- package/dist/workers/ecdsa-presign-client.worker.js +58 -73
- package/dist/workers/email-otp.worker.js +13 -16
- package/dist/workers/evm_crypto.wasm +0 -0
- package/dist/workers/evm_crypto_bg.wasm +0 -0
- package/dist/workers/near_signer.wasm +0 -0
- 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/tempo_signer.wasm +0 -0
- package/dist/workers/tempo_signer_bg.wasm +0 -0
- package/dist/workers/wallet-custody-ceremony.worker.js +7 -7
- package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
- package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
- package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
- package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
- package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
- package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
- package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
- package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
- package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
|
@@ -1934,6 +1934,11 @@ function requireCanonicalBase64Url(value, label) {
|
|
|
1934
1934
|
}
|
|
1935
1935
|
return decoded;
|
|
1936
1936
|
}
|
|
1937
|
+
function requireParsed(result, label) {
|
|
1938
|
+
if (result.ok)
|
|
1939
|
+
return result.value;
|
|
1940
|
+
throw new Error(`${label} ${result.error.message}`);
|
|
1941
|
+
}
|
|
1937
1942
|
function parseDigestField(value, label) {
|
|
1938
1943
|
try {
|
|
1939
1944
|
return parseDigestB64u(value);
|
|
@@ -3198,6 +3203,9 @@ function parseRouterAbEcdsaRegistrationActivationReceiptV1(value) {
|
|
|
3198
3203
|
function sameRouterAbServerIdentityV1(left, right) {
|
|
3199
3204
|
return left.server_id === right.server_id && left.key_epoch === right.key_epoch && left.recipient_encryption_key === right.recipient_encryption_key;
|
|
3200
3205
|
}
|
|
3206
|
+
function sameRouterAbEcdsaVerifiedClientActivationFactsV1(left, right) {
|
|
3207
|
+
return left.registrationRequestDigestB64u === right.registrationRequestDigestB64u && left.proofTranscriptDigestB64u === right.proofTranscriptDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.clientShareRetryCounter === right.clientShareRetryCounter && left.participantId === right.participantId;
|
|
3208
|
+
}
|
|
3201
3209
|
function sameRegistrationSignerSet(left, right) {
|
|
3202
3210
|
return left.signer_set_id === right.signer_set_id && left.policy === right.policy && left.signer_a.role === right.signer_a.role && left.signer_a.signer_id === right.signer_a.signer_id && left.signer_a.key_epoch === right.signer_a.key_epoch && left.signer_b.role === right.signer_b.role && left.signer_b.signer_id === right.signer_b.signer_id && left.signer_b.key_epoch === right.signer_b.key_epoch && sameRouterAbServerIdentityV1(left.selected_server, right.selected_server);
|
|
3203
3211
|
}
|
|
@@ -3691,11 +3699,6 @@ var OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS = [
|
|
|
3691
3699
|
"custodyKeyManifestDigestB64u",
|
|
3692
3700
|
"sourceIdentityDigestB64u"
|
|
3693
3701
|
];
|
|
3694
|
-
function requireResult(result, label) {
|
|
3695
|
-
if (result.ok)
|
|
3696
|
-
return result.value;
|
|
3697
|
-
throw new Error(`${label} ${result.error.message}`);
|
|
3698
|
-
}
|
|
3699
3702
|
function parseWalletSignerId(raw, label = "walletSignerId") {
|
|
3700
3703
|
if (typeof raw !== "string")
|
|
3701
3704
|
throw new Error(`${label} must be a string`);
|
|
@@ -3729,7 +3732,7 @@ function buildOwnerLaneParticipantContinuityV1(args) {
|
|
|
3729
3732
|
kind: "owner_lane_participant_continuity_v1",
|
|
3730
3733
|
signerId: parseWalletSignerId(args.signerId),
|
|
3731
3734
|
participantIds,
|
|
3732
|
-
signingWorkerId:
|
|
3735
|
+
signingWorkerId: requireParsed(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
|
|
3733
3736
|
custodyKeyManifestDigestB64u: parseDigestField(args.custodyKeyManifestDigestB64u, "custodyKeyManifestDigestB64u"),
|
|
3734
3737
|
sourceIdentityDigestB64u: parseDigestField(args.sourceIdentityDigestB64u, "sourceIdentityDigestB64u")
|
|
3735
3738
|
};
|
|
@@ -3743,7 +3746,7 @@ function parseOwnerLaneParticipantContinuityV1(raw, label = "ownerParticipantCon
|
|
|
3743
3746
|
return buildOwnerLaneParticipantContinuityV1({
|
|
3744
3747
|
signerId: parseWalletSignerId(record.signerId, `${label}.signerId`),
|
|
3745
3748
|
participantIds: parseParticipantIds(record.participantIds, `${label}.participantIds`),
|
|
3746
|
-
signingWorkerId:
|
|
3749
|
+
signingWorkerId: requireParsed(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
|
|
3747
3750
|
custodyKeyManifestDigestB64u: parseDigestField(record.custodyKeyManifestDigestB64u, `${label}.custodyKeyManifestDigestB64u`),
|
|
3748
3751
|
sourceIdentityDigestB64u: parseDigestField(record.sourceIdentityDigestB64u, `${label}.sourceIdentityDigestB64u`)
|
|
3749
3752
|
});
|
|
@@ -4772,9 +4775,6 @@ function isAttachLinkedHolderToPresignPort(value) {
|
|
|
4772
4775
|
}
|
|
4773
4776
|
|
|
4774
4777
|
// src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.ts
|
|
4775
|
-
function assertEcdsaHolderRound(value) {
|
|
4776
|
-
return parseEcdsaAdditiveLaneHolderRoundV1(value);
|
|
4777
|
-
}
|
|
4778
4778
|
function nonEmpty(value, label) {
|
|
4779
4779
|
if (typeof value !== "string" || !value.trim())
|
|
4780
4780
|
throw new Error(`${label} is required`);
|
|
@@ -4799,7 +4799,7 @@ function parseEcdsaAdditiveLaneHolderPreparationV1(value) {
|
|
|
4799
4799
|
}
|
|
4800
4800
|
return {
|
|
4801
4801
|
kind,
|
|
4802
|
-
holderRound:
|
|
4802
|
+
holderRound: parseEcdsaAdditiveLaneHolderRoundV1(Reflect.get(value, "holderRound")),
|
|
4803
4803
|
holderPackage,
|
|
4804
4804
|
encryptedDeltaPackageJson: nonEmpty(Reflect.get(value, "encryptedDeltaPackageJson"), "encryptedDeltaPackageJson")
|
|
4805
4805
|
};
|
|
@@ -6842,12 +6842,6 @@ function assertDurableMaterialMatchesActivation(durableMaterial, activationBindi
|
|
|
6842
6842
|
receipt: receipt.protocolReceipt
|
|
6843
6843
|
});
|
|
6844
6844
|
}
|
|
6845
|
-
function routerAbEcdsaPublicIdentitiesEqual(left, right) {
|
|
6846
|
-
return left.context_binding_b64u === right.context_binding_b64u && left.derivation_client_share_public_key33_b64u === right.derivation_client_share_public_key33_b64u && left.server_public_key33_b64u === right.server_public_key33_b64u && left.threshold_public_key33_b64u === right.threshold_public_key33_b64u && left.ethereum_address20_b64u === right.ethereum_address20_b64u && left.client_share_retry_counter === right.client_share_retry_counter && left.server_share_retry_counter === right.server_share_retry_counter;
|
|
6847
|
-
}
|
|
6848
|
-
function routerAbServerIdentitiesEqual(left, right) {
|
|
6849
|
-
return left.server_id === right.server_id && left.key_epoch === right.key_epoch && left.recipient_encryption_key === right.recipient_encryption_key;
|
|
6850
|
-
}
|
|
6851
6845
|
function assertNormalSigningMatchesActivation(input) {
|
|
6852
6846
|
const scope = input.normalSigning.scope;
|
|
6853
6847
|
const facts = input.roleLocalPublicFacts;
|
|
@@ -6861,7 +6855,7 @@ function assertNormalSigningMatchesActivation(input) {
|
|
|
6861
6855
|
lifecycleBinding: expectedMaterialActivation.lifecycleBinding,
|
|
6862
6856
|
signingWorker: expectedMaterialActivation.signingWorker
|
|
6863
6857
|
});
|
|
6864
|
-
if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !
|
|
6858
|
+
if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !sameRouterAbEcdsaDerivationPublicIdentityV1(scope.public_identity, input.receipt.ecdsa_activation.public_identity) || !sameRouterAbServerIdentityV1(scope.signing_worker, input.receipt.ecdsa_activation.signing_worker) || scope.activation_epoch !== input.receipt.ecdsa_activation.activation_epoch || scope.public_identity.context_binding_b64u !== facts.contextBinding32B64u || scope.public_identity.derivation_client_share_public_key33_b64u !== facts.derivationClientSharePublicKey33B64u || scope.public_identity.server_public_key33_b64u !== facts.relayerPublicKey33B64u || scope.public_identity.threshold_public_key33_b64u !== facts.groupPublicKey33B64u || !sameRouterAbMpcMaterialActivationRef(scope.material_activation, expectedMaterialActivationWire)) {
|
|
6865
6859
|
throw new Error("ECDSA normal-signing runtime does not match its activation");
|
|
6866
6860
|
}
|
|
6867
6861
|
}
|
|
@@ -9697,9 +9691,6 @@ function requireNonEmptyCanonicalString(value, label) {
|
|
|
9697
9691
|
}
|
|
9698
9692
|
return value;
|
|
9699
9693
|
}
|
|
9700
|
-
function verifiedClientActivationFactsEqual(left, right) {
|
|
9701
|
-
return left.registrationRequestDigestB64u === right.registrationRequestDigestB64u && left.proofTranscriptDigestB64u === right.proofTranscriptDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.clientShareRetryCounter === right.clientShareRetryCounter && left.participantId === right.participantId;
|
|
9702
|
-
}
|
|
9703
9694
|
function requireExactKeys4(record, label, keys) {
|
|
9704
9695
|
const actual = Object.keys(record).sort();
|
|
9705
9696
|
const expected = [...keys].sort();
|
|
@@ -9766,7 +9757,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
|
|
|
9766
9757
|
throw new Error("ECDSA activation operation requires an idempotency key");
|
|
9767
9758
|
}
|
|
9768
9759
|
const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(request.publicFacts);
|
|
9769
|
-
if (!
|
|
9760
|
+
if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
|
|
9770
9761
|
throw new Error("ECDSA activation operation changed the verified client facts");
|
|
9771
9762
|
}
|
|
9772
9763
|
return;
|
|
@@ -9776,7 +9767,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
|
|
|
9776
9767
|
throw new Error("ECDSA activation operation changed the activation correlation");
|
|
9777
9768
|
}
|
|
9778
9769
|
const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(request.publicFacts);
|
|
9779
|
-
if (!
|
|
9770
|
+
if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
|
|
9780
9771
|
throw new Error("ECDSA activation operation changed the verified client facts");
|
|
9781
9772
|
}
|
|
9782
9773
|
return;
|
|
@@ -9798,7 +9789,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
|
|
|
9798
9789
|
throw new Error("ECDSA activation commit request changed the prepared request digest");
|
|
9799
9790
|
}
|
|
9800
9791
|
const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(ecdsa.publicFacts);
|
|
9801
|
-
if (!
|
|
9792
|
+
if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
|
|
9802
9793
|
throw new Error("ECDSA activation commit request changed the verified client facts");
|
|
9803
9794
|
}
|
|
9804
9795
|
}
|
|
@@ -604,8 +604,7 @@ var opaqueMaterials = new Map;
|
|
|
604
604
|
var pendingOpaqueAuthorities = new Map;
|
|
605
605
|
var opaqueSessionPorts = new Map;
|
|
606
606
|
var opaqueSessionBindings = new Map;
|
|
607
|
-
var
|
|
608
|
-
var linkedHolderPort = null;
|
|
607
|
+
var authorityChannel = null;
|
|
609
608
|
var onlinePort = null;
|
|
610
609
|
var messageQueue = Promise.resolve();
|
|
611
610
|
function randomHandle(prefix) {
|
|
@@ -692,14 +691,16 @@ async function initializeSession(payload) {
|
|
|
692
691
|
if (materialExpiresAtMs < ceremonyExpiresAtMs) {
|
|
693
692
|
throw new Error("ECDSA presign material expiry must cover the ceremony");
|
|
694
693
|
}
|
|
694
|
+
const channel = authorityChannel;
|
|
695
|
+
const requestId = randomHandle("ecdsa-presign-init");
|
|
696
|
+
const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
|
|
697
|
+
let request;
|
|
695
698
|
switch (payload.authority.kind) {
|
|
696
|
-
case "role_local_derivation_handle":
|
|
697
|
-
if (
|
|
699
|
+
case "role_local_derivation_handle":
|
|
700
|
+
if (channel?.kind !== "role_local_derivation_handle") {
|
|
698
701
|
throw new Error("ECDSA presign client has no derivation material channel");
|
|
699
702
|
}
|
|
700
|
-
|
|
701
|
-
const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
|
|
702
|
-
const result = await requestOpaqueAuthority(derivationPort, {
|
|
703
|
+
request = {
|
|
703
704
|
kind: "opaque_ecdsa_presign_session_init_v1",
|
|
704
705
|
requestId,
|
|
705
706
|
sessionId,
|
|
@@ -712,33 +713,13 @@ async function initializeSession(payload) {
|
|
|
712
713
|
groupPublicKey33: groupPublicKeyBuffer,
|
|
713
714
|
ceremonyExpiresAtMs,
|
|
714
715
|
materialExpiresAtMs
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
authorityPort: derivationPort,
|
|
720
|
-
poolIdentity,
|
|
721
|
-
groupPublicKey33,
|
|
722
|
-
expiresAtMs: materialExpiresAtMs
|
|
723
|
-
});
|
|
724
|
-
if (progress.event !== "presign_done") {
|
|
725
|
-
opaqueSessionPorts.set(sessionId, derivationPort);
|
|
726
|
-
opaqueSessionBindings.set(sessionId, {
|
|
727
|
-
poolIdentity,
|
|
728
|
-
groupPublicKey33: groupPublicKey33.slice(),
|
|
729
|
-
ceremonyExpiresAtMs,
|
|
730
|
-
materialExpiresAtMs
|
|
731
|
-
});
|
|
732
|
-
}
|
|
733
|
-
return { authority: { kind: "role_local_derivation_handle" }, progress };
|
|
734
|
-
}
|
|
735
|
-
case "linked_holder_signing_material": {
|
|
736
|
-
if (!linkedHolderPort) {
|
|
716
|
+
};
|
|
717
|
+
break;
|
|
718
|
+
case "linked_holder_signing_material":
|
|
719
|
+
if (channel?.kind !== "linked_holder_signing_material") {
|
|
737
720
|
throw new Error("ECDSA presign client has no linked holder material channel");
|
|
738
721
|
}
|
|
739
|
-
|
|
740
|
-
const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
|
|
741
|
-
const result = await requestOpaqueAuthority(linkedHolderPort, {
|
|
722
|
+
request = {
|
|
742
723
|
kind: "opaque_ecdsa_presign_session_init_v1",
|
|
743
724
|
requestId,
|
|
744
725
|
sessionId,
|
|
@@ -750,30 +731,39 @@ async function initializeSession(payload) {
|
|
|
750
731
|
groupPublicKey33: groupPublicKeyBuffer,
|
|
751
732
|
ceremonyExpiresAtMs,
|
|
752
733
|
materialExpiresAtMs
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
retainCompletedMaterial({
|
|
756
|
-
progress,
|
|
757
|
-
authorityPort: linkedHolderPort,
|
|
758
|
-
poolIdentity,
|
|
759
|
-
groupPublicKey33,
|
|
760
|
-
expiresAtMs: materialExpiresAtMs
|
|
761
|
-
});
|
|
762
|
-
if (progress.event !== "presign_done") {
|
|
763
|
-
opaqueSessionPorts.set(sessionId, linkedHolderPort);
|
|
764
|
-
opaqueSessionBindings.set(sessionId, {
|
|
765
|
-
poolIdentity,
|
|
766
|
-
groupPublicKey33: groupPublicKey33.slice(),
|
|
767
|
-
ceremonyExpiresAtMs,
|
|
768
|
-
materialExpiresAtMs
|
|
769
|
-
});
|
|
770
|
-
}
|
|
771
|
-
return { authority: { kind: "linked_holder_signing_material" }, progress };
|
|
772
|
-
}
|
|
734
|
+
};
|
|
735
|
+
break;
|
|
773
736
|
default:
|
|
774
737
|
payload.authority;
|
|
775
738
|
throw new Error("Unsupported ECDSA presign authority");
|
|
776
739
|
}
|
|
740
|
+
const result = await requestOpaqueAuthority(channel.port, request, [groupPublicKeyBuffer]);
|
|
741
|
+
const progress = requireOpaqueProgress(result);
|
|
742
|
+
retainCompletedMaterial({
|
|
743
|
+
progress,
|
|
744
|
+
authorityPort: channel.port,
|
|
745
|
+
poolIdentity,
|
|
746
|
+
groupPublicKey33,
|
|
747
|
+
expiresAtMs: materialExpiresAtMs
|
|
748
|
+
});
|
|
749
|
+
if (progress.event !== "presign_done") {
|
|
750
|
+
opaqueSessionPorts.set(sessionId, channel.port);
|
|
751
|
+
opaqueSessionBindings.set(sessionId, {
|
|
752
|
+
poolIdentity,
|
|
753
|
+
groupPublicKey33: groupPublicKey33.slice(),
|
|
754
|
+
ceremonyExpiresAtMs,
|
|
755
|
+
materialExpiresAtMs
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
switch (request.authority.kind) {
|
|
759
|
+
case "role_local_derivation_handle":
|
|
760
|
+
return { authority: { kind: "role_local_derivation_handle" }, progress };
|
|
761
|
+
case "linked_holder_signing_material":
|
|
762
|
+
return { authority: { kind: "linked_holder_signing_material" }, progress };
|
|
763
|
+
default:
|
|
764
|
+
request.authority;
|
|
765
|
+
throw new Error("Unsupported ECDSA presign authority");
|
|
766
|
+
}
|
|
777
767
|
}
|
|
778
768
|
async function stepSession(payload) {
|
|
779
769
|
const sessionId = coerceNonNullishString(payload.sessionId, "sessionId");
|
|
@@ -1132,8 +1122,9 @@ async function listAvailablePresignatures(payload) {
|
|
|
1132
1122
|
expiresAtMs: entry.expiresAtMs
|
|
1133
1123
|
});
|
|
1134
1124
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1125
|
+
const channel = authorityChannel;
|
|
1126
|
+
if (channel?.kind === "role_local_derivation_handle") {
|
|
1127
|
+
const result = await requestOpaqueAuthority(channel.port, {
|
|
1137
1128
|
kind: "opaque_ecdsa_presign_material_list_v1",
|
|
1138
1129
|
requestId: randomHandle("opaque-ecdsa-presign-list"),
|
|
1139
1130
|
poolIdentity
|
|
@@ -1155,7 +1146,7 @@ async function listAvailablePresignatures(payload) {
|
|
|
1155
1146
|
continue;
|
|
1156
1147
|
}
|
|
1157
1148
|
opaqueMaterials.set(materialHandle, {
|
|
1158
|
-
authorityPort:
|
|
1149
|
+
authorityPort: channel.port,
|
|
1159
1150
|
poolIdentity,
|
|
1160
1151
|
groupPublicKey33,
|
|
1161
1152
|
bigR33: bigR33.buffer,
|
|
@@ -1177,29 +1168,23 @@ async function listAvailablePresignatures(payload) {
|
|
|
1177
1168
|
}
|
|
1178
1169
|
return refs.sort((left, right) => left.createdAtMs - right.createdAtMs);
|
|
1179
1170
|
}
|
|
1171
|
+
function replaceAuthorityChannel(channel) {
|
|
1172
|
+
if (authorityChannel) {
|
|
1173
|
+
purgeAuthorityPort(authorityChannel.port, "ECDSA presign authority channel was replaced");
|
|
1174
|
+
authorityChannel.port.close();
|
|
1175
|
+
}
|
|
1176
|
+
authorityChannel = channel;
|
|
1177
|
+
channel.port.onmessage = handleOpaqueAuthorityResponse.bind(null, channel.port);
|
|
1178
|
+
channel.port.onmessageerror = purgeAuthorityPort.bind(null, channel.port, "ECDSA presign authority channel failed");
|
|
1179
|
+
channel.port.start();
|
|
1180
|
+
}
|
|
1180
1181
|
function attachControlChannel(value) {
|
|
1181
1182
|
if (isAttachEcdsaDerivationToPresignPort(value)) {
|
|
1182
|
-
|
|
1183
|
-
purgeAuthorityPort(derivationPort, "ECDSA derivation presign authority channel was replaced");
|
|
1184
|
-
}
|
|
1185
|
-
derivationPort?.close();
|
|
1186
|
-
derivationPort = value.port;
|
|
1187
|
-
derivationPort.onmessage = (event) => handleOpaqueAuthorityResponse(value.port, event);
|
|
1188
|
-
derivationPort.onmessageerror = () => purgeAuthorityPort(value.port, "ECDSA derivation presign authority channel failed");
|
|
1189
|
-
derivationPort.start();
|
|
1183
|
+
replaceAuthorityChannel({ kind: "role_local_derivation_handle", port: value.port });
|
|
1190
1184
|
return true;
|
|
1191
1185
|
}
|
|
1192
1186
|
if (isAttachLinkedHolderToPresignPort(value)) {
|
|
1193
|
-
|
|
1194
|
-
purgeAuthorityPort(linkedHolderPort, "Linked holder ECDSA presign authority channel was replaced");
|
|
1195
|
-
}
|
|
1196
|
-
linkedHolderPort?.close();
|
|
1197
|
-
linkedHolderPort = value.port;
|
|
1198
|
-
linkedHolderPort.onmessage = (event) => handleOpaqueAuthorityResponse(value.port, event);
|
|
1199
|
-
linkedHolderPort.onmessageerror = () => {
|
|
1200
|
-
purgeAuthorityPort(value.port, "Linked holder ECDSA presign authority channel failed");
|
|
1201
|
-
};
|
|
1202
|
-
linkedHolderPort.start();
|
|
1187
|
+
replaceAuthorityChannel({ kind: "linked_holder_signing_material", port: value.port });
|
|
1203
1188
|
return true;
|
|
1204
1189
|
}
|
|
1205
1190
|
if (isAttachPresignToOnlinePort(value)) {
|
|
@@ -5,6 +5,7 @@ var WorkerControlMessage = {
|
|
|
5
5
|
|
|
6
6
|
// ../shared-ts/src/utils/emailOtpDomain.ts
|
|
7
7
|
var EMAIL_OTP_CHANNEL = "email_otp";
|
|
8
|
+
var EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1 = "seams/email-otp/factor-release/v1";
|
|
8
9
|
var WALLET_EMAIL_OTP_LOGIN_OPERATIONS = [
|
|
9
10
|
"wallet_unlock",
|
|
10
11
|
"transaction_sign",
|
|
@@ -109,6 +110,11 @@ function requireCanonicalBase64Url(value, label) {
|
|
|
109
110
|
}
|
|
110
111
|
return decoded;
|
|
111
112
|
}
|
|
113
|
+
function requireParsed(result, label) {
|
|
114
|
+
if (result.ok)
|
|
115
|
+
return result.value;
|
|
116
|
+
throw new Error(`${label} ${result.error.message}`);
|
|
117
|
+
}
|
|
112
118
|
function parseDigestField(value, label) {
|
|
113
119
|
try {
|
|
114
120
|
return parseDigestB64u(value);
|
|
@@ -5025,11 +5031,6 @@ function exactRecord2(raw, fields, label) {
|
|
|
5025
5031
|
}
|
|
5026
5032
|
return record;
|
|
5027
5033
|
}
|
|
5028
|
-
function requireParsed(parsed, label) {
|
|
5029
|
-
if (!parsed.ok)
|
|
5030
|
-
throw new Error(`${label} ${parsed.error.message}`);
|
|
5031
|
-
return parsed.value;
|
|
5032
|
-
}
|
|
5033
5034
|
// ../shared-ts/src/utils/routerAbPublicKeyset.ts
|
|
5034
5035
|
function requireRouterAbX25519PublicKey(value, label) {
|
|
5035
5036
|
const publicKey = coerceNonEmptyString(value, label);
|
|
@@ -5086,6 +5087,9 @@ function normalizeRuntimePolicyScopeFields(input) {
|
|
|
5086
5087
|
...normalizeOptionalTrimmedString(scope.signingRootVersion) ? { signingRootVersion: normalizeOptionalTrimmedString(scope.signingRootVersion) } : {}
|
|
5087
5088
|
};
|
|
5088
5089
|
}
|
|
5090
|
+
function sameRuntimePolicyScope(left, right) {
|
|
5091
|
+
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
5092
|
+
}
|
|
5089
5093
|
function signingRootScopeFromRuntimePolicyScope(scope) {
|
|
5090
5094
|
return {
|
|
5091
5095
|
signingRootId: deriveSigningRootId(scope),
|
|
@@ -6889,9 +6893,6 @@ function readThresholdEd25519SessionId(value, label) {
|
|
|
6889
6893
|
}
|
|
6890
6894
|
return parsed.value;
|
|
6891
6895
|
}
|
|
6892
|
-
function readEvmFamilySigningKeySlotId(value, label) {
|
|
6893
|
-
return requireEvmFamilySigningKeySlotId(value, label);
|
|
6894
|
-
}
|
|
6895
6896
|
function readNumber(value, label) {
|
|
6896
6897
|
const normalized = Number(value);
|
|
6897
6898
|
if (!Number.isFinite(normalized)) {
|
|
@@ -7097,7 +7098,7 @@ function parseOptionalWorkerEcdsaSessionHandleBinding(value) {
|
|
|
7097
7098
|
throw new Error("Email OTP wallet-registration ECDSA handle binding requires evm-family keyScope");
|
|
7098
7099
|
}
|
|
7099
7100
|
return {
|
|
7100
|
-
evmFamilySigningKeySlotId: String(
|
|
7101
|
+
evmFamilySigningKeySlotId: String(requireEvmFamilySigningKeySlotId(obj.evmFamilySigningKeySlotId, "ecdsaSessionHandleBinding.evmFamilySigningKeySlotId")),
|
|
7101
7102
|
authSubjectId: readString(obj.authSubjectId, "ecdsaSessionHandleBinding.authSubjectId"),
|
|
7102
7103
|
action: "wallet_registration_ecdsa_prepare",
|
|
7103
7104
|
operation: "registration",
|
|
@@ -9731,7 +9732,6 @@ async function addClientSealFromBytes(args) {
|
|
|
9731
9732
|
keyHandle: args.keyHandle
|
|
9732
9733
|
}), "wrappedCiphertext");
|
|
9733
9734
|
}
|
|
9734
|
-
var EMAIL_OTP_FACTOR_RELEASE_AAD_PREFIX = "seams/email-otp/factor-release/v1";
|
|
9735
9735
|
async function generateEmailOtpFactorReleaseKeyPair(label) {
|
|
9736
9736
|
const subtle = globalThis.crypto?.subtle;
|
|
9737
9737
|
if (!subtle)
|
|
@@ -9755,7 +9755,7 @@ async function openEmailOtpFactorReleaseCiphertext(args) {
|
|
|
9755
9755
|
const aesKey = await args.subtle.importKey("raw", sharedSecret, { name: "AES-GCM" }, false, [
|
|
9756
9756
|
"decrypt"
|
|
9757
9757
|
]);
|
|
9758
|
-
aad = new TextEncoder().encode(`${
|
|
9758
|
+
aad = new TextEncoder().encode(`${EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1}\x00${args.walletId}\x00${args.enrollmentId}\x00${args.enrollmentSealKeyVersion}\x00${args.challengeId}`);
|
|
9759
9759
|
factorSecret32 = new Uint8Array(await args.subtle.decrypt({ name: "AES-GCM", iv: args.nonce, additionalData: aad, tagLength: 128 }, aesKey, args.ciphertext));
|
|
9760
9760
|
if (factorSecret32.length !== 32) {
|
|
9761
9761
|
throw new Error("Email OTP factor release plaintext must contain exactly 32 bytes");
|
|
@@ -11746,9 +11746,6 @@ function bytesToLowerHex(bytes) {
|
|
|
11746
11746
|
output += byte.toString(16).padStart(2, "0");
|
|
11747
11747
|
return output;
|
|
11748
11748
|
}
|
|
11749
|
-
function sameEmailOtpRuntimePolicyScope(left, right) {
|
|
11750
|
-
return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
|
|
11751
|
-
}
|
|
11752
11749
|
function walletSessionHasEcdsaActivation(args) {
|
|
11753
11750
|
const materialActivation = routerAbMpcMaterialActivationRefFromWire(args.activation.public_capability.material_activation);
|
|
11754
11751
|
let matchCount = 0;
|
|
@@ -12057,7 +12054,7 @@ async function restoreEmailOtpEcdsaMaterialFromCustody(args) {
|
|
|
12057
12054
|
throw new Error("Email OTP ECDSA custody continuity does not match the requested key set");
|
|
12058
12055
|
}
|
|
12059
12056
|
for (const signer of args.continuity.signers) {
|
|
12060
|
-
if (signer.walletKey.walletId !== args.projection.walletId || signer.walletKey.keyHandle !== first.walletKey.keyHandle || signer.walletKey.ecdsaThresholdKeyId !== first.walletKey.ecdsaThresholdKeyId || signer.walletKey.signingRootId !== first.walletKey.signingRootId || signer.walletKey.signingRootVersion !== first.walletKey.signingRootVersion || signer.walletKey.relayerKeyId !== first.walletKey.relayerKeyId || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !
|
|
12057
|
+
if (signer.walletKey.walletId !== args.projection.walletId || signer.walletKey.keyHandle !== first.walletKey.keyHandle || signer.walletKey.ecdsaThresholdKeyId !== first.walletKey.ecdsaThresholdKeyId || signer.walletKey.signingRootId !== first.walletKey.signingRootId || signer.walletKey.signingRootVersion !== first.walletKey.signingRootVersion || signer.walletKey.relayerKeyId !== first.walletKey.relayerKeyId || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope(signer.runtimePolicyScope, first.runtimePolicyScope)) {
|
|
12061
12058
|
throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
|
|
12062
12059
|
}
|
|
12063
12060
|
}
|
|
@@ -12843,7 +12840,7 @@ function assertEmailOtpEd25519YaoExportCapabilityContinuity(args) {
|
|
|
12843
12840
|
if (!signingRoot) {
|
|
12844
12841
|
throw new Error("Email OTP Ed25519 Yao export runtime policy scope is invalid");
|
|
12845
12842
|
}
|
|
12846
|
-
if (capability.nearAccountId !== args.nearAccountId || capability.applicationBinding.wallet_id !== args.walletId || capability.applicationBinding.near_ed25519_signing_key_id !== args.nearEd25519SigningKeyId || capability.applicationBinding.key_creation_signer_slot !== args.signerSlot || capability.applicationBinding.signing_root_id !== signingRoot.signingRootId || capability.lifecycle.accountId !== args.walletId || capability.lifecycle.rootShareEpoch !== args.runtimePolicyScope.signingRootVersion || !
|
|
12843
|
+
if (capability.nearAccountId !== args.nearAccountId || capability.applicationBinding.wallet_id !== args.walletId || capability.applicationBinding.near_ed25519_signing_key_id !== args.nearEd25519SigningKeyId || capability.applicationBinding.key_creation_signer_slot !== args.signerSlot || capability.applicationBinding.signing_root_id !== signingRoot.signingRootId || capability.lifecycle.accountId !== args.walletId || capability.lifecycle.rootShareEpoch !== args.runtimePolicyScope.signingRootVersion || !sameRuntimePolicyScope(capability.runtimePolicyScope, args.runtimePolicyScope)) {
|
|
12847
12844
|
throw new Error("Email OTP Ed25519 Yao export capability changed the exact durable lane");
|
|
12848
12845
|
}
|
|
12849
12846
|
const nearAccountId = args.nearAccountId.trim().toLowerCase();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -3796,6 +3796,11 @@ function requireCanonicalBase64Url(value, label) {
|
|
|
3796
3796
|
}
|
|
3797
3797
|
return decoded;
|
|
3798
3798
|
}
|
|
3799
|
+
function requireParsed(result, label) {
|
|
3800
|
+
if (result.ok)
|
|
3801
|
+
return result.value;
|
|
3802
|
+
throw new Error(`${label} ${result.error.message}`);
|
|
3803
|
+
}
|
|
3799
3804
|
function parseDigestField(value, label) {
|
|
3800
3805
|
try {
|
|
3801
3806
|
return parseDigestB64u(value);
|
|
@@ -4771,11 +4776,6 @@ var OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS = [
|
|
|
4771
4776
|
"custodyKeyManifestDigestB64u",
|
|
4772
4777
|
"sourceIdentityDigestB64u"
|
|
4773
4778
|
];
|
|
4774
|
-
function requireResult(result, label) {
|
|
4775
|
-
if (result.ok)
|
|
4776
|
-
return result.value;
|
|
4777
|
-
throw new Error(`${label} ${result.error.message}`);
|
|
4778
|
-
}
|
|
4779
4779
|
function parseWalletSignerId(raw, label = "walletSignerId") {
|
|
4780
4780
|
if (typeof raw !== "string")
|
|
4781
4781
|
throw new Error(`${label} must be a string`);
|
|
@@ -4809,7 +4809,7 @@ function buildOwnerLaneParticipantContinuityV1(args) {
|
|
|
4809
4809
|
kind: "owner_lane_participant_continuity_v1",
|
|
4810
4810
|
signerId: parseWalletSignerId(args.signerId),
|
|
4811
4811
|
participantIds,
|
|
4812
|
-
signingWorkerId:
|
|
4812
|
+
signingWorkerId: requireParsed(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
|
|
4813
4813
|
custodyKeyManifestDigestB64u: parseDigestField(args.custodyKeyManifestDigestB64u, "custodyKeyManifestDigestB64u"),
|
|
4814
4814
|
sourceIdentityDigestB64u: parseDigestField(args.sourceIdentityDigestB64u, "sourceIdentityDigestB64u")
|
|
4815
4815
|
};
|
|
@@ -4823,7 +4823,7 @@ function parseOwnerLaneParticipantContinuityV1(raw, label = "ownerParticipantCon
|
|
|
4823
4823
|
return buildOwnerLaneParticipantContinuityV1({
|
|
4824
4824
|
signerId: parseWalletSignerId(record.signerId, `${label}.signerId`),
|
|
4825
4825
|
participantIds: parseParticipantIds(record.participantIds, `${label}.participantIds`),
|
|
4826
|
-
signingWorkerId:
|
|
4826
|
+
signingWorkerId: requireParsed(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
|
|
4827
4827
|
custodyKeyManifestDigestB64u: parseDigestField(record.custodyKeyManifestDigestB64u, `${label}.custodyKeyManifestDigestB64u`),
|
|
4828
4828
|
sourceIdentityDigestB64u: parseDigestField(record.sourceIdentityDigestB64u, `${label}.sourceIdentityDigestB64u`)
|
|
4829
4829
|
});
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/* Translucent outer shell wrapping solid content */
|
|
2
|
-
.seams-halo-border-root {
|
|
3
|
-
background: transparent;
|
|
4
|
-
border-radius: 2rem;
|
|
5
|
-
padding: 0px;
|
|
6
|
-
max-width: 860px;
|
|
7
|
-
box-sizing: border-box;
|
|
8
|
-
box-shadow: var(--seams-halo__border-shadow, none);
|
|
9
|
-
/* width: 100%; */
|
|
10
|
-
width: fit-content;
|
|
11
|
-
height: fit-content;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.seams-halo-border-inner {
|
|
15
|
-
background: transparent;
|
|
16
|
-
border: 1px solid transparent;
|
|
17
|
-
border-radius: 2rem;
|
|
18
|
-
padding: var(--seams-halo__padding, 1rem);
|
|
19
|
-
position: relative;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.seams-halo-border-content {
|
|
23
|
-
background: var(--seams-halo__inner-background, var(--seams-colors-colorBackground));
|
|
24
|
-
/* border: 1px solid var(--seams-colors-borderPrimary); */
|
|
25
|
-
border-radius: var(--seams-halo__ring-border-radius, 2rem);
|
|
26
|
-
padding: var(--seams-halo__inner-padding, 2rem);
|
|
27
|
-
position: relative;
|
|
28
|
-
z-index: 2; /* keep content above the ring */
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/* Rotating border container using pseudo-elements */
|
|
32
|
-
.seams-rotating-border-container {
|
|
33
|
-
position: relative;
|
|
34
|
-
border-radius: 2rem;
|
|
35
|
-
overflow: visible; /* allow the outside ring to show */
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/*
|
|
39
|
-
Rotating floating ring using a conic-gradient + mask.
|
|
40
|
-
- --seams-halo__ring-gap : distance between the content edge and the ring
|
|
41
|
-
- --seams-halo__ring-width : thickness of the ring
|
|
42
|
-
- --seams-halo__ring-border-radius : border radius of the rotating arc
|
|
43
|
-
- --seams-halo__border-shadow : box shadow of the rotating ring
|
|
44
|
-
- --seams-halo__padding : outer padding of the container
|
|
45
|
-
- --seams-halo__inner-padding : inner border padding of the container
|
|
46
|
-
- --seams-halo__inner-background : inner background color of the container
|
|
47
|
-
|
|
48
|
-
Technique:
|
|
49
|
-
The ::before pseudo-element is inset by the gap, then we use a mask with
|
|
50
|
-
content-box/xor to keep only the padding area (i.e. the ring width).
|
|
51
|
-
*/
|
|
52
|
-
.seams-rotating-border-container::before {
|
|
53
|
-
content: '';
|
|
54
|
-
position: absolute;
|
|
55
|
-
/* Extend outside the box so the ring is OUTSIDE */
|
|
56
|
-
inset: calc(-1 * (var(--seams-halo__ring-gap, 8px) + var(--seams-halo__ring-width, 2px)));
|
|
57
|
-
border-radius: calc(
|
|
58
|
-
var(--seams-halo__ring-border-radius) + var(--seams-halo__ring-gap, 8px) +
|
|
59
|
-
var(--seams-halo__ring-width, 2px)
|
|
60
|
-
);
|
|
61
|
-
pointer-events: none;
|
|
62
|
-
z-index: 3; /* sit above content so it's visible */
|
|
63
|
-
|
|
64
|
-
/* Animated conic gradient arc */
|
|
65
|
-
background: conic-gradient(
|
|
66
|
-
from var(--seams-ring-angle, 0deg),
|
|
67
|
-
transparent 0%,
|
|
68
|
-
#4daffe 10%,
|
|
69
|
-
#4daffe 25%,
|
|
70
|
-
transparent 35%
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
/* Keep only the padding area = ring width */
|
|
74
|
-
padding: var(--seams-halo__ring-width, 2px);
|
|
75
|
-
-webkit-mask:
|
|
76
|
-
linear-gradient(#000 0 0) content-box,
|
|
77
|
-
linear-gradient(#000 0 0);
|
|
78
|
-
-webkit-mask-composite: xor;
|
|
79
|
-
mask-composite: exclude;
|
|
80
|
-
|
|
81
|
-
animation: seams-ring-rotate 1.15s linear infinite;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/* Make the custom angle property animatable */
|
|
85
|
-
@property --seams-ring-angle {
|
|
86
|
-
syntax: '<angle>';
|
|
87
|
-
initial-value: 0deg;
|
|
88
|
-
inherits: false;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
@keyframes seams-ring-rotate {
|
|
92
|
-
from {
|
|
93
|
-
--seams-ring-angle: 0deg;
|
|
94
|
-
}
|
|
95
|
-
to {
|
|
96
|
-
--seams-ring-angle: 360deg;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* Legacy styles removed: the new ring implementation supersedes
|
|
101
|
-
the older conic-gradient border approach. */
|