@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
|
@@ -1,52 +1,16 @@
|
|
|
1
1
|
import { withThresholdCommitQueue } from "../commitQueueShared.js";
|
|
2
2
|
//#region src/core/signingEngine/threshold/ed25519/commitQueue.ts
|
|
3
|
-
function createThresholdEd25519CommitQueueOverflowError(nearAccountId, queueKey, maxQueueLength) {
|
|
4
|
-
const accountId = String(nearAccountId);
|
|
5
|
-
const err = /* @__PURE__ */ new Error(`[SigningEngine] threshold Ed25519 commit queue overflow for ${accountId} (queueKey=${queueKey}, max=${maxQueueLength})`);
|
|
6
|
-
err.code = "commit_queue_overflow";
|
|
7
|
-
return err;
|
|
8
|
-
}
|
|
9
|
-
function createThresholdEd25519CommitQueueTimeoutError(nearAccountId, queueKey, timeoutMs) {
|
|
10
|
-
const accountId = String(nearAccountId);
|
|
11
|
-
const err = /* @__PURE__ */ new Error(`[SigningEngine] threshold Ed25519 commit queue timeout for ${accountId} (queueKey=${queueKey}, waited>${timeoutMs}ms before start)`);
|
|
12
|
-
err.code = "commit_queue_timeout";
|
|
13
|
-
return err;
|
|
14
|
-
}
|
|
15
|
-
function createThresholdEd25519CommitQueueCancelledError(nearAccountId, queueKey, reason = "cancelled") {
|
|
16
|
-
const accountId = String(nearAccountId);
|
|
17
|
-
const message = reason === "queue_cleared" ? `[SigningEngine] threshold Ed25519 queued commit cancelled for ${accountId} (queueKey=${queueKey}, queue_cleared)` : `[SigningEngine] threshold Ed25519 queued commit cancelled for ${accountId} (queueKey=${queueKey})`;
|
|
18
|
-
const err = new Error(message);
|
|
19
|
-
err.code = "cancelled";
|
|
20
|
-
return err;
|
|
21
|
-
}
|
|
22
|
-
function resolveThresholdEd25519CommitQueueKey(args) {
|
|
23
|
-
return [
|
|
24
|
-
"material",
|
|
25
|
-
encodeURIComponent(String(args.materialActivation.materialOwner)),
|
|
26
|
-
encodeURIComponent(String(args.materialActivation.capability)),
|
|
27
|
-
encodeURIComponent(String(args.materialActivation.activationId))
|
|
28
|
-
].join(":");
|
|
29
|
-
}
|
|
30
3
|
async function withThresholdEd25519CommitQueue(args) {
|
|
31
|
-
const queueKey = String(args.queueKey || "").trim();
|
|
32
|
-
if (!queueKey) throw new Error("[SigningEngine] threshold Ed25519 commit queue requires non-empty queueKey");
|
|
33
|
-
const accountKey = String(args.nearAccountId);
|
|
34
4
|
return await withThresholdCommitQueue({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
task: args.task,
|
|
42
|
-
errors: {
|
|
43
|
-
makeOverflowError: (queueKey, maxQueueLength) => createThresholdEd25519CommitQueueOverflowError(accountKey, queueKey, maxQueueLength),
|
|
44
|
-
makeTimeoutError: (queueKey, timeoutMs) => createThresholdEd25519CommitQueueTimeoutError(accountKey, queueKey, timeoutMs),
|
|
45
|
-
makeCancelledError: (queueKey, reason) => createThresholdEd25519CommitQueueCancelledError(accountKey, queueKey, reason)
|
|
46
|
-
}
|
|
5
|
+
...args,
|
|
6
|
+
labels: {
|
|
7
|
+
queue: "threshold Ed25519 commit queue",
|
|
8
|
+
queuedOperation: "threshold Ed25519 queued commit"
|
|
9
|
+
},
|
|
10
|
+
owner: String(args.nearAccountId)
|
|
47
11
|
});
|
|
48
12
|
}
|
|
49
13
|
//#endregion
|
|
50
|
-
export {
|
|
14
|
+
export { withThresholdEd25519CommitQueue };
|
|
51
15
|
|
|
52
16
|
//# sourceMappingURL=commitQueue.js.map
|
|
@@ -6,8 +6,9 @@ import { parseSigningSessionSealKeyVersion } from "../../../shared-ts/src/thresh
|
|
|
6
6
|
import { acquireSigningSessionRestoreLease, deleteDurableSealedSessionRecord, listExactSealedSessionsForWallet, releaseSigningSessionRestoreLease } from "../session/persistence/sealedSessionStore.js";
|
|
7
7
|
import { walletSessionAuthorizations } from "../../indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
|
|
8
8
|
import { IndexedDBManager } from "../../indexedDB/index.js";
|
|
9
|
+
import { resolveThresholdCommitQueueKey } from "../threshold/commitQueueShared.js";
|
|
9
10
|
import { materialActivationKey } from "../session/sealedRecovery/materialActivationKey.js";
|
|
10
|
-
import {
|
|
11
|
+
import { withThresholdEcdsaSigningQueue } from "../threshold/ecdsa/signingQueue.js";
|
|
11
12
|
import { parseUserConfirmWorkerResponse } from "../../types/secure-confirm-worker.js";
|
|
12
13
|
import BUILD_PATHS from "../../../build-paths.js";
|
|
13
14
|
import { resolveWorkerUrl } from "../../walletRuntimePaths/workers.js";
|
|
@@ -369,7 +370,7 @@ var PasskeyMpcSessionManagerImpl = class {
|
|
|
369
370
|
if (inFlight) return requirePasskeyEcdsaRestoreOutcome(await inFlight, "ready");
|
|
370
371
|
const task = withThresholdEcdsaSigningQueue({
|
|
371
372
|
queueByKey: this.deps.thresholdEcdsaSigningQueueByKey,
|
|
372
|
-
queueKey:
|
|
373
|
+
queueKey: resolveThresholdCommitQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
|
|
373
374
|
walletId: toWalletId(args.walletId),
|
|
374
375
|
enabled: true,
|
|
375
376
|
task: async () => await this.restorePasskeyEcdsaRecord({
|
|
@@ -51,6 +51,21 @@ var TransactionReceipt = class extends Component {
|
|
|
51
51
|
if (row.ownerDocument.defaultView?.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
52
52
|
const height = row.getBoundingClientRect().height;
|
|
53
53
|
row.dataset.opening = "";
|
|
54
|
+
const showLink = () => {
|
|
55
|
+
this.releaseExplorerRow();
|
|
56
|
+
link.animate([{
|
|
57
|
+
opacity: 0,
|
|
58
|
+
filter: "blur(4px)",
|
|
59
|
+
transform: "translateY(6px)"
|
|
60
|
+
}, {
|
|
61
|
+
opacity: 1,
|
|
62
|
+
filter: "blur(0)",
|
|
63
|
+
transform: "translateY(0)"
|
|
64
|
+
}], {
|
|
65
|
+
duration: EXPLORER_REVEAL_MS,
|
|
66
|
+
easing: EXPLORER_REVEAL_EASING
|
|
67
|
+
});
|
|
68
|
+
};
|
|
54
69
|
if (!announceClampedSurfaceResize({
|
|
55
70
|
reason: "receipt-explorer",
|
|
56
71
|
element: row,
|
|
@@ -58,28 +73,15 @@ var TransactionReceipt = class extends Component {
|
|
|
58
73
|
toCssPx: height,
|
|
59
74
|
drivenClasses: ["seams-receipt-explorer-driven"],
|
|
60
75
|
setHeightCssPx: this.setExplorerRowHeight,
|
|
61
|
-
onSettled:
|
|
76
|
+
onSettled: showLink
|
|
62
77
|
})) {
|
|
63
78
|
const opening = row.animate([{ height: "0px" }, { height: `${height}px` }], {
|
|
64
79
|
duration: EXPLORER_REVEAL_MS,
|
|
65
80
|
easing: EXPLORER_REVEAL_EASING
|
|
66
81
|
});
|
|
67
|
-
opening.onfinish =
|
|
82
|
+
opening.onfinish = showLink;
|
|
83
|
+
opening.oncancel = this.releaseExplorerRow;
|
|
68
84
|
}
|
|
69
|
-
link.animate([{
|
|
70
|
-
opacity: 0,
|
|
71
|
-
filter: "blur(4px)",
|
|
72
|
-
transform: "translateY(6px)"
|
|
73
|
-
}, {
|
|
74
|
-
opacity: 1,
|
|
75
|
-
filter: "blur(0)",
|
|
76
|
-
transform: "translateY(0)"
|
|
77
|
-
}], {
|
|
78
|
-
duration: EXPLORER_REVEAL_MS,
|
|
79
|
-
delay: 60,
|
|
80
|
-
easing: EXPLORER_REVEAL_EASING,
|
|
81
|
-
fill: "backwards"
|
|
82
|
-
});
|
|
83
85
|
}
|
|
84
86
|
render() {
|
|
85
87
|
const { receipt, data } = this.props;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { isString } from "../../../../../shared-ts/src/utils/validation.js";
|
|
2
2
|
import { formatArgs, formatCodeSize, shortenPubkey } from "./formatters.js";
|
|
3
3
|
import { renderFallbackDisplayOperation } from "./renderers/fallback.js";
|
|
4
|
-
import { isNearDisplayOperation, renderNearDisplayOperation } from "./renderers/near.js";
|
|
5
|
-
import { isEvmDisplayOperation, renderEvmDisplayOperation } from "./renderers/evm.js";
|
|
6
|
-
import { isTempoDisplayOperation, renderTempoDisplayOperation } from "./renderers/tempo.js";
|
|
7
4
|
//#region src/core/signingEngine/uiConfirm/ui/transaction-display/tree.ts
|
|
8
5
|
function toChainLabel(chain) {
|
|
9
6
|
switch (chain) {
|
|
@@ -28,14 +25,8 @@ function buildWarningNodes(warnings) {
|
|
|
28
25
|
}))
|
|
29
26
|
}];
|
|
30
27
|
}
|
|
31
|
-
function selectOperationRenderer(operation) {
|
|
32
|
-
if (isNearDisplayOperation(operation)) return renderNearDisplayOperation;
|
|
33
|
-
if (isEvmDisplayOperation(operation)) return renderEvmDisplayOperation;
|
|
34
|
-
if (isTempoDisplayOperation(operation)) return renderTempoDisplayOperation;
|
|
35
|
-
return renderFallbackDisplayOperation;
|
|
36
|
-
}
|
|
37
28
|
function renderOperationNode(operation, depth, path) {
|
|
38
|
-
return
|
|
29
|
+
return renderFallbackDisplayOperation({
|
|
39
30
|
operation,
|
|
40
31
|
depth,
|
|
41
32
|
path,
|
|
@@ -6,6 +6,7 @@ import { parsePasskeyCustodyEnvelopeRecord } from "../../../shared-ts/src/passke
|
|
|
6
6
|
import "../../../shared-ts/src/passkey-custody/index.js";
|
|
7
7
|
import { parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1 } from "../../../shared-ts/src/device-linking/sourceContribution.js";
|
|
8
8
|
import { parseCommittedAuthorityPackagesV1 } from "../../../shared-ts/src/device-linking/committedSignerPackages.js";
|
|
9
|
+
import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
|
|
9
10
|
import { parseWalletAuthorityLinkedSignerMaterialRecordV1 } from "../../indexedDB/linkedAuthoritySignerMaterial.js";
|
|
10
11
|
//#region src/core/signingEngine/workerManager/deviceLinkingPorts.ts
|
|
11
12
|
function targetFactorBindingV1(targetFactor) {
|
|
@@ -67,11 +68,15 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
|
|
|
67
68
|
}
|
|
68
69
|
function parseOrdinaryResealedExportRootRecordV1(value) {
|
|
69
70
|
if (value === null) return null;
|
|
70
|
-
if (!
|
|
71
|
+
if (!hasExactKeys(value, ["envelope"])) throw new Error("ordinary material resealed export root has unsupported fields");
|
|
71
72
|
return { envelope: parsePasskeyCustodyEnvelopeRecord(value.envelope) };
|
|
72
73
|
}
|
|
73
74
|
function parsePreparationResult(value) {
|
|
74
|
-
if (!
|
|
75
|
+
if (!hasExactKeys(value, [
|
|
76
|
+
"kind",
|
|
77
|
+
"targetFactor",
|
|
78
|
+
"preparations"
|
|
79
|
+
])) throw new Error("ordinary material preparation result has invalid fields");
|
|
75
80
|
if (value.kind !== "device_linking_ordinary_signer_material_preparation_v1") throw new Error("ordinary material preparation result kind is invalid");
|
|
76
81
|
return {
|
|
77
82
|
kind: "device_linking_ordinary_signer_material_preparation_v1",
|
|
@@ -93,7 +98,11 @@ function parsePreparationTuple(value) {
|
|
|
93
98
|
function parseRecipientRequirementTuple(value) {
|
|
94
99
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requirements must contain one or two entries");
|
|
95
100
|
const requirements = value.map((entry, index) => {
|
|
96
|
-
if (!
|
|
101
|
+
if (!hasExactKeys(entry, [
|
|
102
|
+
"kind",
|
|
103
|
+
"keyFamily",
|
|
104
|
+
"walletKeyId"
|
|
105
|
+
])) throw new Error(`ordinary recipient requirement ${index} has invalid fields`);
|
|
97
106
|
if (entry.kind !== "ordinary_signer_material_recipient_requirement_v1") throw new Error("ordinary recipient requirement kind is invalid");
|
|
98
107
|
if (entry.keyFamily !== "ed25519" && entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary recipient requirement key family is invalid");
|
|
99
108
|
const walletKeyId = parseWalletKey(entry.walletKeyId);
|
|
@@ -111,7 +120,12 @@ function parseRecipientRequirementTuple(value) {
|
|
|
111
120
|
function parseRecipientRequestTuple(value) {
|
|
112
121
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requests must contain one or two entries");
|
|
113
122
|
const requests = value.map((entry) => {
|
|
114
|
-
if (
|
|
123
|
+
if (hasExactKeys(entry, [
|
|
124
|
+
"kind",
|
|
125
|
+
"keyFamily",
|
|
126
|
+
"walletKeyId",
|
|
127
|
+
"recipientPublicKeyB64u"
|
|
128
|
+
])) {
|
|
115
129
|
if (entry.kind !== "ordinary_ed25519_signer_material_recipient_request_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient request kind is invalid");
|
|
116
130
|
return {
|
|
117
131
|
kind: "ordinary_ed25519_signer_material_recipient_request_v1",
|
|
@@ -120,7 +134,12 @@ function parseRecipientRequestTuple(value) {
|
|
|
120
134
|
recipientPublicKeyB64u: parseB64u(entry.recipientPublicKeyB64u, "Ed25519 recipient public key")
|
|
121
135
|
};
|
|
122
136
|
}
|
|
123
|
-
if (
|
|
137
|
+
if (hasExactKeys(entry, [
|
|
138
|
+
"kind",
|
|
139
|
+
"keyFamily",
|
|
140
|
+
"walletKeyId",
|
|
141
|
+
"clientEphemeralPublicKey"
|
|
142
|
+
])) {
|
|
124
143
|
if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_request_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient request kind is invalid");
|
|
125
144
|
return {
|
|
126
145
|
kind: "ordinary_ecdsa_signer_material_recipient_request_v1",
|
|
@@ -137,7 +156,11 @@ function parseRecipientRequestTuple(value) {
|
|
|
137
156
|
return [first, ...requests.slice(1)];
|
|
138
157
|
}
|
|
139
158
|
function parseRecipientPreparationResult(value) {
|
|
140
|
-
if (!
|
|
159
|
+
if (!hasExactKeys(value, [
|
|
160
|
+
"kind",
|
|
161
|
+
"recipientRequests",
|
|
162
|
+
"recipientInputs"
|
|
163
|
+
])) throw new Error("ordinary recipient preparation result has invalid fields");
|
|
141
164
|
if (value.kind !== "device_linking_ordinary_signer_material_recipient_preparation_v1") throw new Error("ordinary recipient preparation result kind is invalid");
|
|
142
165
|
const recipientRequests = parseRecipientRequestTuple(value.recipientRequests);
|
|
143
166
|
const recipientInputs = parseRecipientInputTuple(value.recipientInputs);
|
|
@@ -150,7 +173,12 @@ function parseRecipientPreparationResult(value) {
|
|
|
150
173
|
function parseRecipientInputTuple(value) {
|
|
151
174
|
if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient inputs must contain one or two entries");
|
|
152
175
|
const inputs = value.map((entry) => {
|
|
153
|
-
if (
|
|
176
|
+
if (hasExactKeys(entry, [
|
|
177
|
+
"kind",
|
|
178
|
+
"keyFamily",
|
|
179
|
+
"walletKeyId",
|
|
180
|
+
"recipientPrivateKey"
|
|
181
|
+
])) {
|
|
154
182
|
if (entry.kind !== "ordinary_ed25519_signer_material_recipient_input_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient input kind is invalid");
|
|
155
183
|
return {
|
|
156
184
|
kind: "ordinary_ed25519_signer_material_recipient_input_v1",
|
|
@@ -159,7 +187,12 @@ function parseRecipientInputTuple(value) {
|
|
|
159
187
|
recipientPrivateKey: parsePrivateKeyBuffer(entry.recipientPrivateKey, "Ed25519 recipient private key")
|
|
160
188
|
};
|
|
161
189
|
}
|
|
162
|
-
if (
|
|
190
|
+
if (hasExactKeys(entry, [
|
|
191
|
+
"kind",
|
|
192
|
+
"keyFamily",
|
|
193
|
+
"walletKeyId",
|
|
194
|
+
"clientEphemeralPrivateKey"
|
|
195
|
+
])) {
|
|
163
196
|
if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_input_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient input kind is invalid");
|
|
164
197
|
return {
|
|
165
198
|
kind: "ordinary_ecdsa_signer_material_recipient_input_v1",
|
|
@@ -207,7 +240,13 @@ function parsePreparation(value) {
|
|
|
207
240
|
return parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1(value);
|
|
208
241
|
}
|
|
209
242
|
function parseTargetFactorBindingV1(value) {
|
|
210
|
-
if (
|
|
243
|
+
if (hasExactKeys(value, [
|
|
244
|
+
"kind",
|
|
245
|
+
"walletAuthMethodId",
|
|
246
|
+
"verificationDigestB64u",
|
|
247
|
+
"rpId",
|
|
248
|
+
"credentialIdB64u"
|
|
249
|
+
])) {
|
|
211
250
|
if (value.kind !== "passkey") throw new Error("ordinary material target factor kind is unsupported");
|
|
212
251
|
const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
|
|
213
252
|
if (!authMethod.ok) throw new Error(authMethod.error.message);
|
|
@@ -220,7 +259,13 @@ function parseTargetFactorBindingV1(value) {
|
|
|
220
259
|
credentialIdB64u: parseB64u(value.credentialIdB64u, "ordinary target factor credentialIdB64u")
|
|
221
260
|
};
|
|
222
261
|
}
|
|
223
|
-
if (
|
|
262
|
+
if (hasExactKeys(value, [
|
|
263
|
+
"kind",
|
|
264
|
+
"walletAuthMethodId",
|
|
265
|
+
"verificationDigestB64u",
|
|
266
|
+
"emailHashHex",
|
|
267
|
+
"registrationAuthorityId"
|
|
268
|
+
])) {
|
|
224
269
|
if (value.kind !== "email_otp") throw new Error("ordinary material target factor kind is unsupported");
|
|
225
270
|
const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
|
|
226
271
|
if (!authMethod.ok) throw new Error(authMethod.error.message);
|
|
@@ -238,7 +283,13 @@ function parseTargetFactorBindingV1(value) {
|
|
|
238
283
|
throw new Error("ordinary material target factor kind is unsupported");
|
|
239
284
|
}
|
|
240
285
|
function parseWalletAuthorityExportRootRecordV1(value) {
|
|
241
|
-
if (!
|
|
286
|
+
if (!hasExactKeys(value, [
|
|
287
|
+
"kind",
|
|
288
|
+
"authorityId",
|
|
289
|
+
"walletAuthMethodId",
|
|
290
|
+
"walletKeyId",
|
|
291
|
+
"envelope"
|
|
292
|
+
])) throw new Error("ordinary material export-root record has invalid fields");
|
|
242
293
|
if (value.kind !== "wallet_authority_export_root_v1") throw new Error("ordinary material export-root record kind is invalid");
|
|
243
294
|
const authorityId = parseWalletAuthorityId(value.authorityId);
|
|
244
295
|
if (!authorityId.ok) throw new Error(authorityId.error.message);
|
|
@@ -255,7 +306,11 @@ function parseWalletAuthorityExportRootRecordV1(value) {
|
|
|
255
306
|
};
|
|
256
307
|
}
|
|
257
308
|
function parseSealedLocalAuthorityMaterialSetV1(value) {
|
|
258
|
-
if (!
|
|
309
|
+
if (!hasExactKeys(value, [
|
|
310
|
+
"signerMaterials",
|
|
311
|
+
"exportRoot",
|
|
312
|
+
"installedRecordSetDigestB64u"
|
|
313
|
+
])) throw new Error("ordinary material worker returned an invalid sealed record set");
|
|
259
314
|
if (!Array.isArray(value.signerMaterials) || value.signerMaterials.length === 0) throw new Error("ordinary material worker returned an invalid sealed record set");
|
|
260
315
|
const signerMaterials = value.signerMaterials.map((entry) => parseWalletAuthorityLinkedSignerMaterialRecordV1(entry));
|
|
261
316
|
const firstSignerMaterial = signerMaterials[0];
|
|
@@ -281,42 +336,6 @@ function parseB64u(value, label) {
|
|
|
281
336
|
decoded.fill(0);
|
|
282
337
|
return encoded;
|
|
283
338
|
}
|
|
284
|
-
function isOrdinaryResealedExportRootRecordV1(value) {
|
|
285
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "envelope";
|
|
286
|
-
}
|
|
287
|
-
function isOrdinaryMaterialPreparationResultRecordV1(value) {
|
|
288
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|preparations|targetFactor";
|
|
289
|
-
}
|
|
290
|
-
function isOrdinaryRecipientRequirementRecordV1(value) {
|
|
291
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|walletKeyId";
|
|
292
|
-
}
|
|
293
|
-
function isOrdinaryEd25519RecipientRequestRecordV1(value) {
|
|
294
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPublicKeyB64u|walletKeyId";
|
|
295
|
-
}
|
|
296
|
-
function isOrdinaryEcdsaRecipientRequestRecordV1(value) {
|
|
297
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPublicKey|keyFamily|kind|walletKeyId";
|
|
298
|
-
}
|
|
299
|
-
function isOrdinaryRecipientPreparationResultRecordV1(value) {
|
|
300
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|recipientInputs|recipientRequests";
|
|
301
|
-
}
|
|
302
|
-
function isOrdinaryEd25519RecipientInputRecordV1(value) {
|
|
303
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPrivateKey|walletKeyId";
|
|
304
|
-
}
|
|
305
|
-
function isOrdinaryEcdsaRecipientInputRecordV1(value) {
|
|
306
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPrivateKey|keyFamily|kind|walletKeyId";
|
|
307
|
-
}
|
|
308
|
-
function isOrdinaryPasskeyTargetFactorRecordV1(value) {
|
|
309
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "credentialIdB64u|kind|rpId|verificationDigestB64u|walletAuthMethodId";
|
|
310
|
-
}
|
|
311
|
-
function isOrdinaryEmailOtpTargetFactorRecordV1(value) {
|
|
312
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "emailHashHex|kind|registrationAuthorityId|verificationDigestB64u|walletAuthMethodId";
|
|
313
|
-
}
|
|
314
|
-
function isWalletAuthorityExportRootRecordV1(value) {
|
|
315
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "authorityId|envelope|kind|walletAuthMethodId|walletKeyId";
|
|
316
|
-
}
|
|
317
|
-
function isSealedLocalAuthorityMaterialSetRecordV1(value) {
|
|
318
|
-
return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "exportRoot|installedRecordSetDigestB64u|signerMaterials";
|
|
319
|
-
}
|
|
320
339
|
//#endregion
|
|
321
340
|
export { createDeviceLinkingOrdinaryMaterialWorkerPortV1 };
|
|
322
341
|
|
|
@@ -384,11 +384,7 @@ var WorkerTransport = class {
|
|
|
384
384
|
return worker;
|
|
385
385
|
}
|
|
386
386
|
connectPresignAuthorityChannel(request) {
|
|
387
|
-
if (request.type
|
|
388
|
-
this.connectDerivationPresignChannel(this.getOrCreateWorker("ecdsaPresignClient"), "role_local_derivation_handle");
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
391
|
-
if (request.type !== EcdsaPresignClientRequestType.SessionInit) return;
|
|
387
|
+
if (request.type !== EcdsaPresignClientRequestType.ListAvailable && request.type !== EcdsaPresignClientRequestType.SessionInit) return;
|
|
392
388
|
const presignWorker = this.getOrCreateWorker("ecdsaPresignClient");
|
|
393
389
|
const authorityKind = this.parsePresignAuthorityKind(request.payload);
|
|
394
390
|
switch (authorityKind) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isPlainObject } from "../utils/validation.js";
|
|
2
2
|
import { parseWalletAuthMethodId, parseWalletAuthorityId, parseWalletId } from "../utils/domainIds.js";
|
|
3
3
|
import { parseMpcWalletSigningQuotaId, parseWalletSessionAuthorizationId, parseWalletSessionId, parseWalletSessionMintId } from "./capabilityKinds.js";
|
|
4
|
+
import { hasExactKeys } from "../utils/exactKeys.js";
|
|
4
5
|
//#region ../shared-ts/src/authorization/walletSessionIssuance.ts
|
|
5
6
|
const COMMITTED_IDENTITY_FIELDS = [
|
|
6
7
|
"kind",
|
|
@@ -38,12 +39,8 @@ const UNLOCK_FLAT_RESPONSE_FIELDS = [
|
|
|
38
39
|
"unlocked",
|
|
39
40
|
"unlockBackend"
|
|
40
41
|
];
|
|
41
|
-
function hasOnlyFields(record, fields) {
|
|
42
|
-
const actual = Object.keys(record);
|
|
43
|
-
return actual.length === new Set(fields).size && actual.every((field) => fields.includes(field));
|
|
44
|
-
}
|
|
45
42
|
function parseCommittedIdentity(value) {
|
|
46
|
-
if (!isPlainObject(value) || !
|
|
43
|
+
if (!isPlainObject(value) || !hasExactKeys(value, COMMITTED_IDENTITY_FIELDS)) return null;
|
|
47
44
|
if (value.kind !== "already_committed_wallet_session_v1") return null;
|
|
48
45
|
const walletId = parseWalletId(value.walletId);
|
|
49
46
|
const authorityId = parseWalletAuthorityId(value.authorityId);
|
|
@@ -74,8 +71,8 @@ function parseResponseEnvelope(value) {
|
|
|
74
71
|
};
|
|
75
72
|
}
|
|
76
73
|
function parseFlatCommittedIdentity(value) {
|
|
77
|
-
if (!
|
|
78
|
-
if (
|
|
74
|
+
if (!hasExactKeys(value, FLAT_RESPONSE_FIELDS) && !hasExactKeys(value, UNLOCK_FLAT_RESPONSE_FIELDS)) return null;
|
|
75
|
+
if (hasExactKeys(value, UNLOCK_FLAT_RESPONSE_FIELDS) && (value.unlocked !== false || value.unlockBackend !== "passkey" && value.unlockBackend !== "email_otp")) return null;
|
|
79
76
|
if (value.kind !== "already_committed") return null;
|
|
80
77
|
return parseCommittedIdentity({
|
|
81
78
|
kind: "already_committed_wallet_session_v1",
|
|
@@ -101,7 +98,7 @@ function parseWalletSessionAlreadyCommittedResponseV1(value) {
|
|
|
101
98
|
if (!isPlainObject(value)) return null;
|
|
102
99
|
const envelope = parseResponseEnvelope(value);
|
|
103
100
|
if (!envelope) return null;
|
|
104
|
-
if (!
|
|
101
|
+
if (!hasExactKeys(value, NESTED_RESPONSE_FIELDS)) return null;
|
|
105
102
|
const committed = parseCommittedIdentity(value.committed);
|
|
106
103
|
return committed ? buildAlreadyCommittedResponse(envelope, committed) : null;
|
|
107
104
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { mpcMaterialActivationRefsEqual } from "../utils/domainIds.js";
|
|
2
|
+
//#region ../shared-ts/src/authorization/walletSignerActivationEquality.ts
|
|
3
|
+
function sameWalletEd25519SignerActivationV1(left, right) {
|
|
4
|
+
return left.kind === right.kind && left.signer.kind === right.signer.kind && left.signer.keyFamily === right.signer.keyFamily && left.signer.walletId === right.signer.walletId && left.signer.walletKeyId === right.signer.walletKeyId && left.signer.registeredPublicKeyB64u === right.signer.registeredPublicKeyB64u && mpcMaterialActivationRefsEqual(left.materialActivation, right.materialActivation);
|
|
5
|
+
}
|
|
6
|
+
function sameWalletEcdsaSignerActivationV1(left, right) {
|
|
7
|
+
return left.kind === right.kind && left.signer.kind === right.signer.kind && left.signer.keyFamily === right.signer.keyFamily && left.signer.walletId === right.signer.walletId && left.signer.walletKeyId === right.signer.walletKeyId && left.signer.thresholdPublicKey33B64u === right.signer.thresholdPublicKey33B64u && left.signer.evmAddress === right.signer.evmAddress && mpcMaterialActivationRefsEqual(left.materialActivation, right.materialActivation);
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { sameWalletEcdsaSignerActivationV1, sameWalletEd25519SignerActivationV1 };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=walletSignerActivationEquality.js.map
|
|
@@ -3,7 +3,7 @@ import { parseDigestB64u } from "../utils/canonicalPrimitives.js";
|
|
|
3
3
|
import { routerAbMpcMaterialActivationRefFromWire } from "../utils/routerAbNormalSigningIdentity.js";
|
|
4
4
|
import { parseWalletAuthMethodRecordV2 } from "../utils/walletAuthMethodRecord.js";
|
|
5
5
|
import { parseLinkedDeviceEd25519ExportRootPackageV1 } from "./ed25519ExportRoot.js";
|
|
6
|
-
import { parseRouterAbEd25519YaoActivationPublicReceiptV1, parseRouterAbEd25519YaoApplicationBindingFactsV1, parseRouterAbEd25519YaoCeremonyBindingV1, parseRouterAbEd25519YaoEncryptedPackageV1, parseRouterAbEd25519YaoParticipantIdsV1 } from "../utils/routerAbEd25519Yao.js";
|
|
6
|
+
import { parseRouterAbEd25519YaoActivationPublicReceiptV1, parseRouterAbEd25519YaoApplicationBindingFactsV1, parseRouterAbEd25519YaoCeremonyBindingV1, parseRouterAbEd25519YaoEncryptedPackageV1, parseRouterAbEd25519YaoParticipantIdsV1, sameRouterAbEd25519YaoByteSequence } from "../utils/routerAbEd25519Yao.js";
|
|
7
7
|
import { parseLinkedDeviceEcdsaEncryptedSourceContributionV1, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1 } from "./sourceContribution.js";
|
|
8
8
|
import { parseWalletAuthorityV1 } from "../authorization/walletAuthority.js";
|
|
9
9
|
//#region ../shared-ts/src/device-linking/committedSignerPackages.ts
|
|
@@ -91,7 +91,7 @@ function parseEd25519Package(raw) {
|
|
|
91
91
|
if (!mpcMaterialActivationRefsEqual(materialActivation, routerAbMpcMaterialActivationRefFromWire(targetBinding.material_activation))) throw new Error("CommittedEd25519SignerPackageV1 target binding does not match material");
|
|
92
92
|
const deriverA = parseEd25519ClientPackage(record.deriver_a_client_package, "deriver_a_client_package", "deriver_a");
|
|
93
93
|
const deriverB = parseEd25519ClientPackage(record.deriver_b_client_package, "deriver_b_client_package", "deriver_b");
|
|
94
|
-
if (!
|
|
94
|
+
if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("CommittedEd25519SignerPackageV1 receipt transcript does not match packages");
|
|
95
95
|
return {
|
|
96
96
|
kind: "committed_ed25519_signer_package_v1",
|
|
97
97
|
materialActivation,
|
|
@@ -257,9 +257,6 @@ function parseCommittedEcdsaSignerPackageWireV1(raw) {
|
|
|
257
257
|
function inspectRawObject(raw) {
|
|
258
258
|
return raw !== null && typeof raw === "object" && !Array.isArray(raw) ? raw : null;
|
|
259
259
|
}
|
|
260
|
-
function sameBytes(left, right) {
|
|
261
|
-
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
262
|
-
}
|
|
263
260
|
function requireExactWireFields(record, keys, label) {
|
|
264
261
|
const expected = new Set(keys);
|
|
265
262
|
const actual = Object.keys(record);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { requireRecord } from "../utils/validation.js";
|
|
2
2
|
import { parseWalletId, parseWalletKeyId } from "../utils/domainIds.js";
|
|
3
3
|
import { rejectUnknownFields } from "../utils/exactRecord.js";
|
|
4
|
-
import { parseEd25519PublicKeyB64u, parseSecp256k1CompressedPublicKeyB64u } from "../passkey-custody/primitives.js";
|
|
4
|
+
import { parseEd25519PublicKeyB64u, parseSecp256k1CompressedPublicKeyB64u, requireParsed } from "../passkey-custody/primitives.js";
|
|
5
5
|
//#region ../shared-ts/src/device-linking/delegatedActivationPlan.ts
|
|
6
6
|
const MANIFEST_FIELDS = [
|
|
7
7
|
"kind",
|
|
@@ -124,10 +124,6 @@ function exactRecord(raw, fields, label) {
|
|
|
124
124
|
for (const field of fields) if (!(field in record)) throw new Error(`${label}.${field} is required`);
|
|
125
125
|
return record;
|
|
126
126
|
}
|
|
127
|
-
function requireParsed(parsed, label) {
|
|
128
|
-
if (!parsed.ok) throw new Error(`${label} ${parsed.error.message}`);
|
|
129
|
-
return parsed.value;
|
|
130
|
-
}
|
|
131
127
|
//#endregion
|
|
132
128
|
export { buildExactAdministeredSignerManifestV1, parseExactAdministeredSignerManifestV1 };
|
|
133
129
|
|
|
@@ -2,7 +2,7 @@ import { base64UrlDecode, base64UrlEncode } from "../utils/base64.js";
|
|
|
2
2
|
import { requireRecord } from "../utils/validation.js";
|
|
3
3
|
import { parseLinkDeviceSessionId, parseLinkedDeviceEnrollmentId, parseLinkedDeviceId, parseWalletId, parseWalletKeyId } from "../utils/domainIds.js";
|
|
4
4
|
import { rejectUnknownFields } from "../utils/exactRecord.js";
|
|
5
|
-
import { parseDigestField, parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseEnvelopeNonceB64u } from "../passkey-custody/primitives.js";
|
|
5
|
+
import { parseDigestField, parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseEnvelopeNonceB64u, requireParsed } from "../passkey-custody/primitives.js";
|
|
6
6
|
//#region ../shared-ts/src/device-linking/ed25519ExportRoot.ts
|
|
7
7
|
/**
|
|
8
8
|
* Authenticated relay records for the cross-device Ed25519 Yao Client export
|
|
@@ -95,11 +95,11 @@ function parseLinkedDeviceEd25519ExportRootRecipientV1(raw) {
|
|
|
95
95
|
requireTransferAlg(record.transferAlg, "LinkedDeviceEd25519ExportRootRecipientV1.transferAlg");
|
|
96
96
|
return {
|
|
97
97
|
kind: "linked_device_ed25519_export_root_recipient_v1",
|
|
98
|
-
linkSessionId:
|
|
99
|
-
walletId:
|
|
100
|
-
walletKeyId:
|
|
101
|
-
enrollmentId:
|
|
102
|
-
deviceId:
|
|
98
|
+
linkSessionId: requireParsed(parseLinkDeviceSessionId(record.linkSessionId), "LinkedDeviceEd25519ExportRootRecipientV1.linkSessionId"),
|
|
99
|
+
walletId: requireParsed(parseWalletId(record.walletId), "walletId"),
|
|
100
|
+
walletKeyId: requireParsed(parseWalletKeyId(record.walletKeyId), "walletKeyId"),
|
|
101
|
+
enrollmentId: requireParsed(parseLinkedDeviceEnrollmentId(record.enrollmentId), "enrollmentId"),
|
|
102
|
+
deviceId: requireParsed(parseLinkedDeviceId(record.deviceId), "deviceId"),
|
|
103
103
|
transferAlg: LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1,
|
|
104
104
|
applicationBindingDigestB64u: parseDigestField(record.applicationBindingDigestB64u, "applicationBindingDigestB64u"),
|
|
105
105
|
registeredPublicKeyB64u: parseEd25519PublicKeyB64u(record.registeredPublicKeyB64u, "registeredPublicKeyB64u"),
|
|
@@ -118,11 +118,11 @@ function parseLinkedDeviceEd25519ExportRootPackageV1(raw) {
|
|
|
118
118
|
if (recipientPublicKeyB64u === ephemeralPublicKeyB64u) throw new Error("ephemeralPublicKeyB64u repeats the recipient key");
|
|
119
119
|
return {
|
|
120
120
|
kind: "linked_device_ed25519_export_root_package_v1",
|
|
121
|
-
linkSessionId:
|
|
122
|
-
walletId:
|
|
123
|
-
walletKeyId:
|
|
124
|
-
enrollmentId:
|
|
125
|
-
deviceId:
|
|
121
|
+
linkSessionId: requireParsed(parseLinkDeviceSessionId(record.linkSessionId), "linkSessionId"),
|
|
122
|
+
walletId: requireParsed(parseWalletId(record.walletId), "walletId"),
|
|
123
|
+
walletKeyId: requireParsed(parseWalletKeyId(record.walletKeyId), "walletKeyId"),
|
|
124
|
+
enrollmentId: requireParsed(parseLinkedDeviceEnrollmentId(record.enrollmentId), "enrollmentId"),
|
|
125
|
+
deviceId: requireParsed(parseLinkedDeviceId(record.deviceId), "deviceId"),
|
|
126
126
|
transferAlg: LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1,
|
|
127
127
|
applicationBindingDigestB64u: parseDigestField(record.applicationBindingDigestB64u, "applicationBindingDigestB64u"),
|
|
128
128
|
registeredPublicKeyB64u: parseEd25519PublicKeyB64u(record.registeredPublicKeyB64u, "registeredPublicKeyB64u"),
|
|
@@ -161,10 +161,6 @@ function parseUnixMs(value, label) {
|
|
|
161
161
|
if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} must be a positive unix-millisecond timestamp`);
|
|
162
162
|
return value;
|
|
163
163
|
}
|
|
164
|
-
function parseRequired(parsed, label) {
|
|
165
|
-
if (!parsed.ok) throw new Error(`${label} ${parsed.error.message}`);
|
|
166
|
-
return parsed.value;
|
|
167
|
-
}
|
|
168
164
|
//#endregion
|
|
169
165
|
export { LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1, buildLinkedDeviceEd25519ExportRootTransferBindingV1, parseLinkedDeviceEd25519ExportRootPackageV1, parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u, parseLinkedDeviceEd25519ExportRootRecipientV1, serializeLinkedDeviceEd25519ExportRootTransferBindingV1 };
|
|
170
166
|
|
|
@@ -7,7 +7,7 @@ import { parseDeviceId } from "../authorization/capabilityKinds.js";
|
|
|
7
7
|
import { parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseSecp256k1CompressedPublicKeyB64u } from "../passkey-custody/primitives.js";
|
|
8
8
|
import { requireRouterAbEcdsaDerivationNormalSigningStateV1 } from "../utils/routerAbEcdsaDerivation.js";
|
|
9
9
|
import { parseSdkEcdsaDerivationThresholdKeyId } from "../threshold/ecdsaDerivationRoleLocalBootstrap.js";
|
|
10
|
-
import { parseRouterAbEd25519YaoActivationPublicReceiptV1, parseRouterAbEd25519YaoApplicationBindingFactsV1, parseRouterAbEd25519YaoCeremonyBindingV1, parseRouterAbEd25519YaoEncryptedPackageV1, parseRouterAbEd25519YaoParticipantIdsV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1 } from "../utils/routerAbEd25519Yao.js";
|
|
10
|
+
import { parseRouterAbEd25519YaoActivationPublicReceiptV1, parseRouterAbEd25519YaoApplicationBindingFactsV1, parseRouterAbEd25519YaoCeremonyBindingV1, parseRouterAbEd25519YaoEncryptedPackageV1, parseRouterAbEd25519YaoParticipantIdsV1, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1, sameRouterAbEd25519YaoByteSequence } from "../utils/routerAbEd25519Yao.js";
|
|
11
11
|
//#region ../shared-ts/src/device-linking/sourceContribution.ts
|
|
12
12
|
/** Exact discriminator accepted by the ECDSA source-contribution core. */
|
|
13
13
|
const LINKED_DEVICE_ECDSA_SOURCE_CONTRIBUTION_ENVELOPE_KIND_V1 = "seams/linked-device/ecdsa-source-contribution-envelope/v1";
|
|
@@ -33,7 +33,7 @@ function parseLinkedDeviceEd25519SourcePreservingReservationV1(raw) {
|
|
|
33
33
|
const participantIds = parseRouterAbEd25519YaoParticipantIdsV1(record.participant_ids);
|
|
34
34
|
const deriverA = parseEd25519ClientPackage(record.deriver_a_client_package, "deriver_a");
|
|
35
35
|
const deriverB = parseEd25519ClientPackage(record.deriver_b_client_package, "deriver_b");
|
|
36
|
-
if (!
|
|
36
|
+
if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("linked-device Ed25519 reservation packages have mismatched transcripts");
|
|
37
37
|
return {
|
|
38
38
|
state: "inactive",
|
|
39
39
|
reservationId: requireText(record.reservation_id, "reservation_id"),
|
|
@@ -192,10 +192,10 @@ function parseEd25519Contribution(record) {
|
|
|
192
192
|
if (!sameEdStableIdentity(sourceBinding, targetBinding)) throw new Error("linked-device Ed25519 source contribution stable identity differs");
|
|
193
193
|
if (!mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(activationReceipt.material_activation), targetMaterialActivation)) throw new Error("linked-device Ed25519 source contribution receipt activation differs");
|
|
194
194
|
const sourceRegisteredPublicKeyB64u = parseEd25519PublicKeyB64u(record.sourceRegisteredPublicKeyB64u, "sourceRegisteredPublicKeyB64u");
|
|
195
|
-
if (!
|
|
195
|
+
if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.registered_public_key, Array.from(base64UrlDecode(sourceRegisteredPublicKeyB64u)))) throw new Error("linked-device Ed25519 source contribution receipt public key differs");
|
|
196
196
|
const deriverA = parseEd25519ClientPackage(record.deriver_a_client_package, "deriver_a");
|
|
197
197
|
const deriverB = parseEd25519ClientPackage(record.deriver_b_client_package, "deriver_b");
|
|
198
|
-
if (!
|
|
198
|
+
if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("linked-device Ed25519 source contribution package transcript differs");
|
|
199
199
|
if (sourceBinding.material_activation.activation_id === targetMaterialActivation.activationId) throw new Error("linked-device Ed25519 source contribution reuses the source activation");
|
|
200
200
|
return {
|
|
201
201
|
kind: "linked_device_ed25519_source_contribution_v1",
|
|
@@ -522,9 +522,6 @@ function parseFixedBase64(raw, byteLength, label) {
|
|
|
522
522
|
if (decoded.length !== byteLength || base64UrlEncode(decoded) !== raw) throw new Error(`${label} must decode to ${byteLength} bytes`);
|
|
523
523
|
return raw;
|
|
524
524
|
}
|
|
525
|
-
function sameBytes(left, right) {
|
|
526
|
-
return left.length === right.length && left.every((value, index) => value === right[index]);
|
|
527
|
-
}
|
|
528
525
|
function requireText(raw, label) {
|
|
529
526
|
if (typeof raw !== "string" || raw.length === 0 || raw.trim() !== raw || [...raw].some((character) => {
|
|
530
527
|
const code = character.charCodeAt(0);
|
|
@@ -540,6 +537,6 @@ function exactRecord(raw, keys, label) {
|
|
|
540
537
|
return record;
|
|
541
538
|
}
|
|
542
539
|
//#endregion
|
|
543
|
-
export { parseLinkedDeviceEcdsaEncryptedSourceContributionV1, parseLinkedDeviceEcdsaSourceContributionBindingV1, parseLinkedDeviceEcdsaSourceContributionPackageV1, parseLinkedDeviceEcdsaSourceContributionPreparationV1, parseLinkedDeviceEcdsaSourceDerivationV1, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1, parseLinkedDeviceEd25519SourcePreservingReservationV1, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, parseLinkedDeviceOrdinaryMaterialSourceContributionTupleV1, parseLinkedDeviceOrdinaryMaterialSourceContributionV1 };
|
|
540
|
+
export { parseLinkedDeviceEcdsaEncryptedSourceContributionV1, parseLinkedDeviceEcdsaSourceContributionBindingV1, parseLinkedDeviceEcdsaSourceContributionPackageV1, parseLinkedDeviceEcdsaSourceContributionPreparationV1, parseLinkedDeviceEcdsaSourceDerivationV1, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1, parseLinkedDeviceEd25519SourcePreservingReservationV1, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, parseLinkedDeviceOrdinaryMaterialSourceContributionTupleV1, parseLinkedDeviceOrdinaryMaterialSourceContributionV1, sameEcdsaSourceSigner, sameEcdsaTarget };
|
|
544
541
|
|
|
545
542
|
//# sourceMappingURL=sourceContribution.js.map
|
|
@@ -13,6 +13,10 @@ function requireCanonicalBase64Url(value, label) {
|
|
|
13
13
|
if (base64UrlEncode(decoded) !== value) throw new Error(`${label} must be canonical base64url`);
|
|
14
14
|
return decoded;
|
|
15
15
|
}
|
|
16
|
+
function requireParsed(result, label) {
|
|
17
|
+
if (result.ok) return result.value;
|
|
18
|
+
throw new Error(`${label} ${result.error.message}`);
|
|
19
|
+
}
|
|
16
20
|
function parseDigestField(value, label) {
|
|
17
21
|
try {
|
|
18
22
|
return parseDigestB64u(value);
|
|
@@ -53,6 +57,6 @@ function parseUnixMs(value, label) {
|
|
|
53
57
|
return value;
|
|
54
58
|
}
|
|
55
59
|
//#endregion
|
|
56
|
-
export { parseDigestField, parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseEnvelopeNonceB64u, parseEnvelopeRevision, parseKeyCreationSignerSlot, parseSecp256k1CompressedPublicKeyB64u, parseUnixMs };
|
|
60
|
+
export { parseDigestField, parseEd25519PublicKeyB64u, parseEnvelopeCiphertextB64u, parseEnvelopeNonceB64u, parseEnvelopeRevision, parseKeyCreationSignerSlot, parseSecp256k1CompressedPublicKeyB64u, parseUnixMs, requireParsed };
|
|
57
61
|
|
|
58
62
|
//# sourceMappingURL=primitives.js.map
|