@seams/wallet 0.6.2 → 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.
Files changed (1594) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -105
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/SeamsWeb.js +43 -94
  4. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +25 -5
  5. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +1 -2
  6. package/dist/esm/SeamsWeb/operations/auth/login.js +29 -43
  7. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  8. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
  9. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  10. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +1 -1
  11. package/dist/esm/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +1 -1
  12. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +4 -3
  13. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/challenge.js +1 -1
  14. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +1 -1
  15. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +1 -1
  16. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +6 -15
  17. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +2 -2
  18. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +5 -4
  19. package/dist/esm/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +34 -0
  20. package/dist/esm/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +4 -42
  21. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +3 -2
  22. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +2 -2
  23. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +1 -1
  24. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +17 -17
  25. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
  26. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +4 -8
  27. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +26 -25
  28. package/dist/esm/SeamsWeb/operations/devices/linkDevice.js +1 -1671
  29. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +1358 -0
  30. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +143 -0
  31. package/dist/esm/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +119 -0
  32. package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +1 -1
  33. package/dist/esm/SeamsWeb/operations/devices/walletHostComposition.js +13 -3
  34. package/dist/esm/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +12 -4
  35. package/dist/esm/SeamsWeb/operations/near/index.js +1 -1
  36. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +1 -1
  37. package/dist/esm/SeamsWeb/operations/recovery/accountSync.js +1 -1
  38. package/dist/esm/SeamsWeb/operations/recovery/recoveryWalletBinding.js +1 -1
  39. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +7 -7
  40. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +6 -10
  41. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +8 -9
  42. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +2 -2
  43. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +39 -5
  44. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +21 -42
  45. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +3 -3
  46. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +4 -10
  47. package/dist/esm/SeamsWeb/operations/registration/registration.js +101 -58
  48. package/dist/esm/SeamsWeb/operations/registration/registrationEd25519Yao.js +37 -6
  49. package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +1 -1
  50. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +4 -3
  51. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +1 -1
  52. package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +194 -539
  53. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  54. package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
  55. package/dist/esm/SeamsWeb/publicApi/awaitNearReady.js +3 -1
  56. package/dist/esm/SeamsWeb/publicApi/devices.js +1 -1
  57. package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
  58. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +46 -39
  59. package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -4
  60. package/dist/esm/SeamsWeb/walletIframe/client/router.js +4 -3
  61. package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +6 -88
  62. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  63. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +89 -223
  64. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +32 -62
  65. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +3 -1
  66. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +2 -4
  67. package/dist/esm/advanced.js +3 -2
  68. package/dist/esm/build-paths.js +0 -2
  69. package/dist/esm/components/AccountMenuButton/MenuItem.css +17 -0
  70. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -5
  71. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  72. package/dist/esm/components/QRCodeScanner.css +0 -15
  73. package/dist/esm/components/ShowQRCode.css +0 -14
  74. package/dist/esm/core/accountData/near/keyMaterial.js +2 -2
  75. package/dist/esm/core/config/chains.js +1 -0
  76. package/dist/esm/core/indexedDB/index.js +1 -7
  77. package/dist/esm/core/indexedDB/keyMaterialEnvelope.js +1 -5
  78. package/dist/esm/core/indexedDB/linkedAuthoritySignerMaterial.js +7 -14
  79. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +7 -12
  80. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +140 -274
  81. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +209 -0
  82. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +848 -0
  83. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +122 -1721
  84. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +235 -0
  85. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
  86. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +60 -11
  87. package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +198 -0
  88. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +1 -1
  89. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +6 -0
  90. package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  91. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +0 -43
  92. package/dist/esm/core/rpcClients/near/NearClient.js +20 -215
  93. package/dist/esm/core/rpcClients/near/rpcCalls.js +4 -4
  94. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +57 -86
  95. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +1 -1
  96. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +75 -127
  97. package/dist/esm/core/rpcClients/relayer/walletRecoveryRotate.js +0 -1
  98. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +42 -18
  99. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +6 -12
  100. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  101. package/dist/esm/core/signingEngine/assembly/ports/evmFamily.js +1 -1
  102. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
  103. package/dist/esm/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -1
  104. package/dist/esm/core/signingEngine/chains/evm/display/evmTx.js +1 -6
  105. package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  106. package/dist/esm/core/signingEngine/chains/evm/evmCryptoWasm.js +1 -36
  107. package/dist/esm/core/signingEngine/chains/near/display.js +14 -1
  108. package/dist/esm/core/signingEngine/chains/tempo/display.js +1 -6
  109. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +4 -4
  110. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +9 -10
  111. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +37 -30
  112. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +4 -4
  113. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  114. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +18 -29
  115. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +245 -503
  116. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +8 -11
  117. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +1 -1
  118. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +1 -1
  119. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +3 -3
  120. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  121. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +2 -2
  122. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +7 -11
  123. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +1 -1
  124. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +1 -1
  125. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  126. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +1 -2
  127. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +10 -8
  128. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +52 -21
  129. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  130. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +2 -2
  131. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +343 -0
  132. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +66 -312
  133. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +46 -50
  134. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +58 -305
  135. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +33 -16
  136. package/dist/esm/core/signingEngine/interfaces/accountAuthMetadata.js +0 -1
  137. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +16 -148
  138. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +2 -1
  139. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +5 -14
  140. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +9 -8
  141. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  142. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +5 -10
  143. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaPublication.js +3 -3
  144. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +5 -5
  145. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +1 -1
  146. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +9 -16
  147. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +2 -2
  148. package/dist/esm/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -9
  149. package/dist/esm/core/signingEngine/session/emailOtp/publicTypes.js +1 -2
  150. package/dist/esm/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -28
  151. package/dist/esm/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +1 -1
  152. package/dist/esm/core/signingEngine/session/emailOtp/walletUnlock.js +1 -1
  153. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +2 -2
  154. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  155. package/dist/esm/core/signingEngine/session/identity/laneIdentity.js +5 -4
  156. package/dist/esm/core/signingEngine/session/identity/ownerLaneScope.js +1 -1
  157. package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
  158. package/dist/esm/core/signingEngine/session/keyMaterialBrands.js +2 -21
  159. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +43 -69
  160. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +9 -17
  161. package/dist/esm/core/signingEngine/session/material/ecdsaSealedRuntime.js +3 -3
  162. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +2 -2
  163. package/dist/esm/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +1 -1
  164. package/dist/esm/core/signingEngine/session/operationState/authorizationAdmission.js +4 -4
  165. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +1 -1
  166. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -1
  167. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +39 -59
  168. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +13 -22
  169. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +11 -23
  170. package/dist/esm/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +1 -1
  171. package/dist/esm/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +1 -1
  172. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +761 -0
  173. package/dist/esm/core/signingEngine/session/persistence/sealedSessionStore.js +42 -862
  174. package/dist/esm/core/signingEngine/session/public.js +1 -1
  175. package/dist/esm/core/signingEngine/session/sealedRecovery/recoveryRecord.js +3 -3
  176. package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +1 -1
  177. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +2 -1
  178. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  179. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -1
  180. package/dist/esm/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +3 -3
  181. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  182. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +1 -1
  183. package/dist/esm/core/signingEngine/session/warmCapabilities/types.js +0 -1
  184. package/dist/esm/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +3 -5
  185. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +2 -3
  186. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
  187. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +10 -6
  188. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +2 -2
  189. package/dist/esm/core/signingEngine/threshold/ecdsa/activation.js +3 -2
  190. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  191. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  192. package/dist/esm/core/signingEngine/threshold/ed25519/connectSession.js +1 -1
  193. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +2 -2
  194. package/dist/esm/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +1 -1
  195. package/dist/esm/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +12 -19
  196. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +1 -1
  197. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +4 -3
  198. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +5 -4
  199. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +7 -0
  200. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/signing.js +9 -16
  201. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +5 -5
  202. package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +1 -1
  203. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +1 -0
  204. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +1 -1
  205. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +81 -9
  206. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +31 -78
  207. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +1 -0
  208. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  209. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +2 -1
  210. package/dist/esm/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +3 -4
  211. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +2 -2
  212. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +1 -1
  213. package/dist/esm/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +2 -1
  214. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +56 -9
  215. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +1 -1
  216. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +2 -2
  217. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +52 -81
  218. package/dist/esm/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +2 -4
  219. package/dist/esm/core/signingEngine/webauthnAuth/credentials/helpers.js +1 -1
  220. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +80 -64
  221. package/dist/esm/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +28 -3
  222. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +3 -1
  223. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +21 -10
  224. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +2 -1
  225. package/dist/esm/core/types/linkDevice.js +2 -3
  226. package/dist/esm/core/types/sdkSentEvents.js +7 -5
  227. package/dist/esm/core/types/signer-worker.js +1 -58
  228. package/dist/esm/index.js +1 -1
  229. package/dist/esm/plugins/vite.js +1 -1
  230. package/dist/esm/react/SeamsWeb/SeamsWeb.js +42 -93
  231. package/dist/esm/react/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +25 -5
  232. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningStores.js +1 -2
  233. package/dist/esm/react/SeamsWeb/operations/auth/login.js +26 -40
  234. package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  235. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +3 -4
  236. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  237. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockSubject.js +1 -1
  238. package/dist/esm/react/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +1 -1
  239. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +4 -3
  240. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +1 -1
  241. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +1 -1
  242. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +6 -15
  243. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +1 -1
  244. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/addPasskey.js +5 -4
  245. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +34 -0
  246. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +3 -3
  247. package/dist/esm/react/SeamsWeb/operations/authMethods/revokeAuthMethod.js +3 -2
  248. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +2 -2
  249. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +1 -1
  250. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +16 -16
  251. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +1 -1
  252. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +4 -8
  253. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +26 -25
  254. package/dist/esm/react/SeamsWeb/operations/devices/linkDevice.js +1 -1671
  255. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlow.js +1358 -0
  256. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +143 -0
  257. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +119 -0
  258. package/dist/esm/react/SeamsWeb/operations/devices/walletHostComposition.js +13 -3
  259. package/dist/esm/react/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +11 -3
  260. package/dist/esm/react/SeamsWeb/operations/near/index.js +1 -1
  261. package/dist/esm/react/SeamsWeb/operations/recovery/accountSync.js +1 -1
  262. package/dist/esm/react/SeamsWeb/operations/recovery/recoveryWalletBinding.js +1 -1
  263. package/dist/esm/react/SeamsWeb/operations/recovery/syncAccount.js +5 -5
  264. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCommit.js +5 -9
  265. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +7 -8
  266. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +38 -4
  267. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +20 -41
  268. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +3 -3
  269. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +4 -10
  270. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +96 -53
  271. package/dist/esm/react/SeamsWeb/operations/registration/registrationEd25519Yao.js +35 -4
  272. package/dist/esm/react/SeamsWeb/operations/registration/registrationSignerSet.js +1 -1
  273. package/dist/esm/react/SeamsWeb/operations/registration/registrationStrictEcdsa.js +5 -4
  274. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +194 -539
  275. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  276. package/dist/esm/react/SeamsWeb/publicApi/auth.js +2 -1
  277. package/dist/esm/react/SeamsWeb/publicApi/awaitNearReady.js +3 -1
  278. package/dist/esm/react/SeamsWeb/publicApi/devices.js +1 -1
  279. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
  280. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +45 -38
  281. package/dist/esm/react/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -4
  282. package/dist/esm/react/SeamsWeb/walletIframe/client/router.js +4 -3
  283. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/geometry.js +8 -5
  284. package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  285. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +33 -63
  286. package/dist/esm/react/SeamsWeb/walletIframe/shared/messages.js +3 -1
  287. package/dist/esm/react/SeamsWeb/walletIframe/shared/transactionReview.js +3 -5
  288. package/dist/esm/react/build-paths.js +0 -2
  289. package/dist/esm/react/components/AccountMenuButton/AccountMenuDialog.js +93 -0
  290. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +189 -251
  291. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
  292. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +199 -261
  293. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  294. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
  295. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +1 -1
  296. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
  297. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
  298. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.js +1 -1
  299. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +7 -7
  300. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  301. package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
  302. package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
  303. package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
  304. package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
  305. package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
  306. package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
  307. package/dist/esm/react/components/AccountMenuButton/icons/MoonIcon.js +6 -41
  308. package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
  309. package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
  310. package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
  311. package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
  312. package/dist/esm/react/components/AccountMenuButton/icons/SunIcon.js +43 -78
  313. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
  314. package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +33 -0
  315. package/dist/esm/react/components/AccountMenuButton/index.js +7 -7
  316. package/dist/esm/react/components/QRCodeScanner.css +0 -15
  317. package/dist/esm/react/components/ShowQRCode.css +0 -14
  318. package/dist/esm/react/components/theme/design-tokens.js +0 -1
  319. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
  320. package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
  321. package/dist/esm/react/core/config/chains.js +1 -0
  322. package/dist/esm/react/core/indexedDB/keyMaterialEnvelope.js +1 -5
  323. package/dist/esm/react/core/indexedDB/linkedAuthoritySignerMaterial.js +7 -14
  324. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +6 -11
  325. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +140 -274
  326. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +209 -0
  327. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +848 -0
  328. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +122 -1721
  329. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +235 -0
  330. package/dist/esm/react/core/indexedDB/seamsWalletDB/repositories.js +56 -7
  331. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +198 -0
  332. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +1 -1
  333. package/dist/esm/react/core/indexedDB/unifiedIndexedDBManager.js +6 -0
  334. package/dist/esm/react/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  335. package/dist/esm/react/core/platform/browser/createBrowserPlatformRuntime.js +1 -44
  336. package/dist/esm/react/core/rpcClients/near/NearClient.js +19 -214
  337. package/dist/esm/react/core/rpcClients/near/rpcCalls.js +1 -1
  338. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigning.js +56 -85
  339. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +6 -6
  340. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryRotate.js +0 -1
  341. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +39 -15
  342. package/dist/esm/react/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +4 -10
  343. package/dist/esm/react/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  344. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
  345. package/dist/esm/react/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -1
  346. package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +1 -6
  347. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  348. package/dist/esm/react/core/signingEngine/chains/near/display.js +14 -1
  349. package/dist/esm/react/core/signingEngine/chains/tempo/display.js +1 -6
  350. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +1 -1
  351. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +7 -8
  352. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
  353. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  354. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  355. package/dist/esm/react/core/signingEngine/flows/recovery/exportLaneSelection.js +1 -1
  356. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +17 -28
  357. package/dist/esm/react/core/signingEngine/flows/registration/accountLifecycle.js +246 -504
  358. package/dist/esm/react/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +7 -10
  359. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/authPlanning.js +1 -1
  360. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaLanes.js +1 -1
  361. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +1 -1
  362. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  363. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +3 -10
  364. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +9 -13
  365. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +1 -1
  366. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +1 -1
  367. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  368. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +1 -2
  369. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +10 -8
  370. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +51 -20
  371. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  372. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
  373. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +343 -0
  374. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +1 -1
  375. package/dist/esm/react/core/signingEngine/flows/signNear/signDelegate.js +66 -312
  376. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +47 -51
  377. package/dist/esm/react/core/signingEngine/flows/signNear/signNep413.js +58 -305
  378. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +34 -17
  379. package/dist/esm/react/core/signingEngine/interfaces/accountAuthMetadata.js +0 -1
  380. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +15 -147
  381. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +2 -1
  382. package/dist/esm/react/core/signingEngine/session/SigningSessionCoordinator.js +1 -1
  383. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +5 -14
  384. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +10 -9
  385. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  386. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +5 -10
  387. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +1 -1
  388. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +4 -4
  389. package/dist/esm/react/core/signingEngine/session/emailOtp/ed25519ExportContext.js +7 -14
  390. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecovery.js +1 -1
  391. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -9
  392. package/dist/esm/react/core/signingEngine/session/emailOtp/publicTypes.js +0 -1
  393. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -28
  394. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +1 -1
  395. package/dist/esm/react/core/signingEngine/session/emailOtp/walletUnlock.js +1 -1
  396. package/dist/esm/react/core/signingEngine/session/emailOtp/workerEnrollment.js +1 -1
  397. package/dist/esm/react/core/signingEngine/session/identity/clientSessionPersistenceState.js +1 -1
  398. package/dist/esm/react/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +3 -3
  399. package/dist/esm/react/core/signingEngine/session/identity/exactSigningLaneIdentity.js +2 -2
  400. package/dist/esm/react/core/signingEngine/session/identity/laneIdentity.js +6 -5
  401. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
  402. package/dist/esm/react/core/signingEngine/session/keyMaterialBrands.js +2 -21
  403. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +41 -67
  404. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +8 -16
  405. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  406. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +1 -1
  407. package/dist/esm/react/core/signingEngine/session/operationState/authorizationAdmission.js +4 -4
  408. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaBootstrap.js +1 -1
  409. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +1 -1
  410. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -1
  411. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +1 -1
  412. package/dist/esm/react/core/signingEngine/session/passkey/ed25519SessionProvision.js +1 -1
  413. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +37 -57
  414. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +12 -21
  415. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +11 -23
  416. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +761 -0
  417. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionStore.js +41 -858
  418. package/dist/esm/react/core/signingEngine/session/postconditions/runtimePostconditions.js +1 -1
  419. package/dist/esm/react/core/signingEngine/session/public.js +2 -2
  420. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +1 -1
  421. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +1 -1
  422. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +2 -1
  423. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  424. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -1
  425. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +3 -3
  426. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +2 -2
  427. package/dist/esm/react/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +1 -1
  428. package/dist/esm/react/core/signingEngine/session/warmCapabilities/types.js +1 -2
  429. package/dist/esm/react/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +3 -5
  430. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +2 -3
  431. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
  432. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +9 -5
  433. package/dist/esm/react/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +2 -2
  434. package/dist/esm/react/core/signingEngine/threshold/ecdsa/activation.js +2 -1
  435. package/dist/esm/react/core/signingEngine/threshold/ecdsa/bootstrapSession.js +1 -1
  436. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  437. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  438. package/dist/esm/react/core/signingEngine/threshold/ed25519/walletSession.js +1 -1
  439. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +12 -19
  440. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +2 -1
  441. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +4 -3
  442. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +7 -0
  443. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +1 -1
  444. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/signing.js +9 -16
  445. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +5 -5
  446. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-model.js +1 -1
  447. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +1 -0
  448. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +1 -1
  449. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +81 -9
  450. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +31 -78
  451. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +1 -0
  452. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  453. package/dist/esm/react/core/signingEngine/walletCustody/activateEd25519Capability.js +2 -1
  454. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +3 -4
  455. package/dist/esm/react/core/signingEngine/walletCustody/emailOtpLink.js +2 -2
  456. package/dist/esm/react/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +2 -1
  457. package/dist/esm/react/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +55 -8
  458. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryRotation.js +52 -81
  459. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +2 -4
  460. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +80 -64
  461. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +29 -4
  462. package/dist/esm/react/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +4 -2
  463. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +21 -10
  464. package/dist/esm/react/core/signingEngine/workerManager/workerTypes.js +2 -1
  465. package/dist/esm/react/core/types/linkDevice.js +2 -3
  466. package/dist/esm/react/core/types/sdkSentEvents.js +7 -5
  467. package/dist/esm/react/hooks/useQRCamera.js +1 -1
  468. package/dist/esm/react/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  469. package/dist/esm/react/shared-ts/src/authorization/operationFingerprint.js +0 -1
  470. package/dist/esm/react/shared-ts/src/authorization/walletAuthority.js +92 -227
  471. package/dist/esm/react/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
  472. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  473. package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  474. package/dist/esm/react/shared-ts/src/device-linking/activeWalletSession.js +70 -1
  475. package/dist/esm/react/shared-ts/src/device-linking/authorityActivation.js +142 -0
  476. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +5 -8
  477. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -5
  478. package/dist/esm/react/shared-ts/src/device-linking/deviceManagement.js +120 -0
  479. package/dist/esm/react/shared-ts/src/device-linking/digests.js +8 -63
  480. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +13 -15
  481. package/dist/esm/react/shared-ts/src/device-linking/index.js +6 -4
  482. package/dist/esm/react/shared-ts/src/device-linking/parsers.js +546 -1308
  483. package/dist/esm/react/shared-ts/src/device-linking/requestProof.js +3 -3
  484. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +11 -17
  485. package/dist/esm/react/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +7 -7
  486. package/dist/esm/react/shared-ts/src/device-linking/wireFields.js +59 -0
  487. package/dist/esm/react/shared-ts/src/near/nearClient.js +252 -0
  488. package/dist/esm/react/shared-ts/src/passkey-custody/custodyEnvelope.js +6 -4
  489. package/dist/esm/react/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
  490. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +9 -39
  491. package/dist/esm/react/shared-ts/src/signing-lanes/index.js +4 -3
  492. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +8 -7
  493. package/dist/esm/react/shared-ts/src/signing-lanes/participantDigest.js +2 -0
  494. package/dist/esm/react/shared-ts/src/signing-lanes/participants.js +2 -5
  495. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +18 -22
  496. package/dist/esm/react/shared-ts/src/signing-lanes/rotationDigests.js +2 -0
  497. package/dist/esm/react/shared-ts/src/signing-lanes/rotationParsers.js +3 -3
  498. package/dist/esm/react/shared-ts/src/signing-lanes/rotationProtocolParsers.js +8 -0
  499. package/dist/esm/react/shared-ts/src/signing-lanes/rotationWireFields.js +3 -0
  500. package/dist/esm/react/shared-ts/src/threshold/ed25519OperationFingerprint.js +34 -42
  501. package/dist/esm/react/shared-ts/src/threshold/keyMaterialBrands.js +25 -0
  502. package/dist/esm/react/shared-ts/src/threshold/secp256k1.js +1 -2
  503. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
  504. package/dist/esm/react/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
  505. package/dist/esm/react/shared-ts/src/utils/canonicalPrimitives.js +8 -1
  506. package/dist/esm/react/shared-ts/src/utils/digestEncoding.js +63 -0
  507. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +3 -5
  508. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  509. package/dist/esm/react/shared-ts/src/utils/emailOtpDomain.js +3 -3
  510. package/dist/esm/react/shared-ts/src/utils/encoders.js +1 -1
  511. package/dist/esm/react/shared-ts/src/utils/errors.js +1 -1
  512. package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
  513. package/dist/esm/react/shared-ts/src/utils/exactRecord.js +44 -0
  514. package/dist/esm/react/shared-ts/src/utils/index.js +12 -8
  515. package/dist/esm/react/shared-ts/src/utils/registrationAuthMethodInput.js +84 -0
  516. package/dist/esm/react/shared-ts/src/utils/registrationEstablishedSession.js +2 -2
  517. package/dist/esm/react/shared-ts/src/utils/registrationIds.js +226 -0
  518. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +6 -1089
  519. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +439 -0
  520. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +9 -8
  521. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +3 -76
  522. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519YaoDigests.js +76 -0
  523. package/dist/esm/react/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
  524. package/dist/esm/react/shared-ts/src/utils/routerAbPublicKeyset.js +2 -6
  525. package/dist/esm/react/shared-ts/src/utils/secureRandomId.js +1 -1
  526. package/dist/esm/react/shared-ts/src/utils/signerDomain.js +1 -16
  527. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  528. package/dist/esm/react/shared-ts/src/utils/validation.js +36 -2
  529. package/dist/esm/react/shared-ts/src/utils/walletAuthAuthority.js +1 -1
  530. package/dist/esm/react/shared-ts/src/utils/walletAuthMethodRecord.js +357 -0
  531. package/dist/esm/react/shared-ts/src/utils/walletCapabilityBindings.js +2 -2
  532. package/dist/esm/react/shared-ts/src/utils/wireSchema.js +66 -0
  533. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +11 -17
  534. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
  535. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
  536. package/dist/esm/react/styles/styles.css +17 -86
  537. package/dist/esm/react/utils/menuItemBlink.js +24 -0
  538. package/dist/esm/react/utils/qrScanner.js +2 -19
  539. package/dist/esm/sdk/{ConfirmationDrawer-G0bT0Dbu.js → ConfirmationDrawer-MgFTBwwK.js} +2 -1
  540. package/dist/esm/sdk/{EvmClient-CHw6txjt.js → EvmClient-f3gUhS2L.js} +1 -1
  541. package/dist/esm/sdk/{NearClient-BQgcqAzG.js → NearClient-DY4NfHeD.js} +194 -147
  542. package/dist/esm/sdk/{NonceCoordinator-C7mqpJiU.js → NonceCoordinator-4XWPhYww.js} +4 -4
  543. package/dist/esm/sdk/{accountIds-Ck4GAQfm.js → accountIds-DhIPGOSN.js} +1 -1
  544. package/dist/{public/sdk/accountLifecycle-Ddavc_FC.js → esm/sdk/accountLifecycle-zthG08aC.js} +253 -514
  545. package/dist/esm/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
  546. package/dist/esm/sdk/{adapters-m94YFj70.js → adapters-Dli9XAZp.js} +137 -136
  547. package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
  548. package/dist/esm/sdk/{canonicalSignerErrorCode-DAzYzisf.js → canonicalSignerErrorCode-BBIk365e.js} +3 -17
  549. package/dist/{public/sdk/capabilityKinds-jwCEaqBU.js → esm/sdk/capabilityKinds-hvYqa6S_.js} +1 -1
  550. package/dist/esm/sdk/chains-BMh3btVo.js +124 -0
  551. package/dist/{public/sdk/challengeDelivery-BjLKoou3.js → esm/sdk/challengeDelivery-DZtopOAG.js} +2 -2
  552. package/dist/esm/sdk/{configHelpers-DB73zYvO.js → configHelpers-D1EqxVxg.js} +3 -3
  553. package/dist/esm/sdk/{defaultConfigs-CyNOW4Sy.js → defaultConfigs-D_33pPT9.js} +5 -5
  554. package/dist/{public/sdk/display-DHdC2yXU.js → esm/sdk/display-P4nQF-yc.js} +3 -8
  555. package/dist/{public/sdk/normalize-BephcEIF.js → esm/sdk/domainIds-lcrFg6Sa.js} +84 -84
  556. package/dist/{public/sdk/ecdsaCapabilityManifest-C8itxV9S.js → esm/sdk/ecdsaCapabilityManifest-DuMs0VtU.js} +14 -22
  557. package/dist/esm/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
  558. package/dist/esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +1983 -0
  559. package/dist/{public/sdk/ecdsaPresignPoolIdentity-Yopr4jvS.js → esm/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
  560. package/dist/{public/sdk/ecdsaWalletRecords-CAbbVhEY.js → esm/sdk/ecdsaWalletRecords-D42rtA9z.js} +6 -4
  561. package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
  562. package/dist/{public/sdk/enrichDisplayModelWithAbi-DnjR1CqT.js → esm/sdk/enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
  563. package/dist/{public/sdk/evmCryptoWasm-BVj135bZ.js → esm/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
  564. package/dist/esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +4274 -0
  565. package/dist/{public/sdk/exactSessionState-Bt0HforB.js → esm/sdk/exactSessionState-LWDUXydN.js} +51 -80
  566. package/dist/esm/sdk/exactSigningLaneIdentity-m6uTXV_A.js +335 -0
  567. package/dist/{public/sdk/export-viewer-host-CbqG8ZQV.js → esm/sdk/export-viewer-host-rWMSQQMP.js} +3 -3
  568. package/dist/esm/sdk/{helpers-DpRjHMBx.js → helpers-ZrowMnev.js} +3 -6
  569. package/dist/{public/sdk/host-BPC1zSVg.js → esm/sdk/host-CnV8nAUe.js} +12 -12
  570. package/dist/{public/sdk/intentDigest-A1MbbJPu.js → esm/sdk/intentDigest-CvOSNlCH.js} +2 -2
  571. package/dist/esm/sdk/{jsxRuntime.module-FAP0NE9p.js → jsxRuntime.module-CuH5ZEIA.js} +1 -1
  572. package/dist/esm/sdk/{keyMaterialBrands-BbjCfzXv.js → keyMaterialBrands-CogGAAZn.js} +15 -13
  573. package/dist/esm/sdk/{localOnly-CbLYTVbo.js → localOnly-DTpa2jD5.js} +8 -10
  574. package/dist/{public/sdk/messages-B3UbNZYc.js → esm/sdk/messages-C7Dbx9iN.js} +6 -4
  575. package/dist/{public/sdk/mountExportPrivateKeySurface-CNc6Mch4.js → esm/sdk/mountExportPrivateKeySurface-DgX-IBG_.js} +4 -4
  576. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-ChwzwnYG.js → esm/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js} +2 -2
  577. package/dist/{public/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js → esm/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js} +82 -55
  578. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → esm/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js} +10 -8
  579. package/dist/{public/sdk/nonceLaneKeys-B_RcSS6M.js → esm/sdk/nonceLaneKeys-C3c9lG6u.js} +1 -1
  580. package/dist/{public/sdk/normalization-oJyXl3Vn.js → esm/sdk/normalization-CBt413-z.js} +2 -2
  581. package/dist/esm/sdk/{operationFingerprint-DEPg9A3h.js → operationFingerprint-C8Trar4R.js} +4 -4
  582. package/dist/esm/sdk/{operationFingerprint-CsYO6b0a.js → operationFingerprint-CGZui5dR.js} +2 -1
  583. package/dist/esm/sdk/{passkey-custody-BaHyYMhj.js → passkey-custody-UUHbC0pk.js} +7 -6
  584. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → esm/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js} +3 -3
  585. package/dist/esm/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-C3fydnRC.js} +19 -16
  586. package/dist/esm/sdk/{registration-PIBMSsQR.js → registration-Ct_7LdGf.js} +2871 -3182
  587. package/dist/esm/sdk/{registration-DtDICj-o.js → registration-DHERU8R_.js} +4 -4
  588. package/dist/{public/sdk/registrationAccounts-AO3QHjas.js → esm/sdk/registrationAccounts-DmWPzf3T.js} +6 -4
  589. package/dist/esm/sdk/registrationIds-DLSdEKSv.js +310 -0
  590. package/dist/esm/sdk/registrationIntent-4zwk16zQ.js +387 -0
  591. package/dist/esm/sdk/{registrationPreparationPreload-BZfAC_ba.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  592. package/dist/esm/sdk/registrationSignerPlan-DhV8VAob.js +437 -0
  593. package/dist/{public/sdk/relayerHttp-LsVTZCxA.js → esm/sdk/relayerHttp-VC8Holz1.js} +1 -1
  594. package/dist/{public/sdk/routePlan-nLpPFHB-.js → esm/sdk/routePlan-D59x5xzQ.js} +1 -1
  595. package/dist/{public/sdk/router-CeFS9SgT.js → esm/sdk/router-B4ZWFy9E.js} +23 -25
  596. package/dist/{public/sdk/routerAbNormalSigning-DktZKnf1.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +63 -92
  597. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  598. package/dist/{public/sdk/runtime-auth-D_lUQQlc.js → esm/sdk/runtime-auth-DdfynDKt.js} +144 -301
  599. package/dist/{public/sdk/runtime-device-link-CEph1iM0.js → esm/sdk/runtime-device-link-HJ2ptFux.js} +25 -22
  600. package/dist/{public/sdk/runtime-ecdsa-tempo-tUWnafRo.js → esm/sdk/runtime-ecdsa-tempo-BGLsTAWR.js} +24 -21
  601. package/dist/esm/sdk/{runtime-email-otp-1wIPTDim.js → runtime-email-otp-CpX88VZJ.js} +23 -20
  602. package/dist/{public/sdk/runtime-export-Du2d4_Vu.js → esm/sdk/runtime-export-DIVY473L.js} +26 -22
  603. package/dist/{public/sdk/runtime-near-CGoWxu7u.js → esm/sdk/runtime-near-CxtQi4b2.js} +24 -22
  604. package/dist/{public/sdk/runtime-preferences-JwJK_xP3.js → esm/sdk/runtime-preferences-vnJc5Svg.js} +24 -21
  605. package/dist/esm/sdk/{runtime-recovery-codes-DW7bB2tO.js → runtime-recovery-codes-BSCLVHQj.js} +15 -19
  606. package/dist/{public/sdk/runtime-recovery-BEqBdpyo.js → esm/sdk/runtime-recovery-i08vCJST.js} +23 -20
  607. package/dist/esm/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-D3TBExQ6.js} +915 -1109
  608. package/dist/{public/sdk/runtimeLoader-ZXsvx9zX.js → esm/sdk/runtimeLoader-DQVEFVaW.js} +12 -12
  609. package/dist/{public/sdk/sdkSentEvents-5Pi-hjHB.js → esm/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
  610. package/dist/esm/sdk/{secp256k1-CWDid9WH.js → secp256k1-D-I6Gh4D.js} +53 -176
  611. package/dist/esm/sdk/sessionPolicy-DO-MkL65.js +460 -0
  612. package/dist/{public/sdk/signEvmFamily-pbMepepQ.js → esm/sdk/signEvmFamily-C3C97Th-.js} +135 -185
  613. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +11 -15
  614. package/dist/{public/sdk/signEvmWithUiConfirm-nk-r3Rff.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +6 -10
  615. package/dist/{public/sdk/signNear-DVD9-IO5.js → esm/sdk/signNear-Bmb2fj_a.js} +729 -846
  616. package/dist/esm/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
  617. package/dist/esm/sdk/{signerDomain-DDLiwuYS.js → signerDomain-IEAVrOrc.js} +3 -18
  618. package/dist/{public/sdk/signerLoader-D_w-SfR9.js → esm/sdk/signerLoader-B7orgq5Z.js} +4 -4
  619. package/dist/esm/sdk/{signatureUses-BY1IY7uz.js → signingFlow-SZ8t_lxv.js} +24 -38
  620. package/dist/esm/sdk/{trace-08ayoiNp.js → trace-DKLQZvec.js} +1 -2
  621. package/dist/esm/sdk/{transaction-activity-DKgIGpKG.js → transaction-activity-CSMCveBn.js} +1 -1
  622. package/dist/{public/sdk/transactionReview-UoZQ2opj.js → esm/sdk/transactionReview-DpHLTznU.js} +4 -6
  623. package/dist/esm/sdk/{transactionReviewAdmission-Cv9kTr4c.js → transactionReviewAdmission-BCPvl8OZ.js} +2 -2
  624. package/dist/esm/sdk/{transactionState-Bpm4GamO.js → transactionState-CJ4U8pcl.js} +58 -47
  625. package/dist/esm/sdk/tx-confirm-ui.js +182 -189
  626. package/dist/esm/sdk/types-Dx9fczU7.js +111 -0
  627. package/dist/{public/sdk/validation-BphUDXs7.js → esm/sdk/validation-gat4LEKm.js} +36 -2
  628. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +2 -2
  629. package/dist/esm/sdk/wallet-iframe-host-full.js +2 -2
  630. package/dist/esm/sdk/wallet-iframe-host-near.js +2 -2
  631. package/dist/esm/sdk/wallet-iframe-host-runtime.js +2 -2
  632. package/dist/esm/sdk/{wallet-recovery-CKqoHbxT.js → wallet-recovery-BX61-79p.js} +20 -29
  633. package/dist/esm/sdk/wallet-service.css +21 -0
  634. package/dist/esm/sdk/wallet-ui.css +129 -345
  635. package/dist/{public/sdk/sessionPolicy-B4FsPuk2.js → esm/sdk/walletAuthority-DD9T25F6.js} +504 -447
  636. package/dist/{public/sdk/ed25519SeedMaterial-Cghz8-XB.js → esm/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js} +1951 -2216
  637. package/dist/esm/sdk/{walletRecoveryCommit-G6w6N5RV.js → walletRecoveryCommit-AI1AtIRP.js} +88 -151
  638. package/dist/{public/sdk/walletRecoveryRotate-BYOYJAyb.js → esm/sdk/walletRecoveryRotate-BgLlW5ih.js} +1 -1
  639. package/dist/esm/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
  640. package/dist/{public/sdk/webauthnP256-CHqprSh1.js → esm/sdk/webauthnP256-DC5EIbKN.js} +1 -1
  641. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +1 -1
  642. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -2
  643. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +93 -228
  644. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +4 -6
  645. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  646. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  647. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +70 -1
  648. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +142 -0
  649. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +5 -8
  650. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +3 -5
  651. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +120 -0
  652. package/dist/esm/shared-ts/src/device-linking/digests.js +8 -63
  653. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +13 -15
  654. package/dist/esm/shared-ts/src/device-linking/index.js +6 -4
  655. package/dist/esm/shared-ts/src/device-linking/parsers.js +550 -1311
  656. package/dist/esm/shared-ts/src/device-linking/requestProof.js +3 -3
  657. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +11 -17
  658. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +7 -7
  659. package/dist/esm/shared-ts/src/device-linking/wireFields.js +59 -0
  660. package/dist/esm/shared-ts/src/near/nearClient.js +252 -0
  661. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +6 -4
  662. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +6 -4
  663. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +9 -39
  664. package/dist/esm/shared-ts/src/signing-lanes/index.js +4 -3
  665. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +8 -7
  666. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +2 -0
  667. package/dist/esm/shared-ts/src/signing-lanes/participants.js +2 -5
  668. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +18 -22
  669. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +2 -0
  670. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +3 -3
  671. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +8 -0
  672. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +3 -0
  673. package/dist/esm/shared-ts/src/threshold/ed25519OperationFingerprint.js +34 -42
  674. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +25 -0
  675. package/dist/esm/shared-ts/src/threshold/secp256k1.js +1 -2
  676. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
  677. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +3 -4
  678. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +8 -1
  679. package/dist/esm/shared-ts/src/utils/digestEncoding.js +63 -0
  680. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +3 -5
  681. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  682. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +3 -3
  683. package/dist/esm/shared-ts/src/utils/encoders.js +1 -1
  684. package/dist/esm/shared-ts/src/utils/errors.js +1 -1
  685. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  686. package/dist/esm/shared-ts/src/utils/exactRecord.js +44 -0
  687. package/dist/esm/shared-ts/src/utils/index.js +18 -14
  688. package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +84 -0
  689. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +5 -5
  690. package/dist/esm/shared-ts/src/utils/registrationIds.js +226 -0
  691. package/dist/esm/shared-ts/src/utils/registrationIntent.js +6 -1089
  692. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +439 -0
  693. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +11 -10
  694. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +3 -76
  695. package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +76 -0
  696. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -4
  697. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +2 -6
  698. package/dist/esm/shared-ts/src/utils/secureRandomId.js +1 -1
  699. package/dist/esm/shared-ts/src/utils/signerDomain.js +1 -16
  700. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  701. package/dist/esm/shared-ts/src/utils/validation.js +36 -2
  702. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +1 -1
  703. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +357 -0
  704. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +2 -2
  705. package/dist/esm/shared-ts/src/utils/wireSchema.js +66 -0
  706. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +1 -1
  707. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -1
  708. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +1 -1
  709. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +11 -17
  710. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +4 -8
  711. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -1
  712. package/dist/esm/utils/menuItemBlink.js +24 -0
  713. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +19 -6
  714. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +44 -9
  715. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  716. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.d.ts +10 -1
  717. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.js +31 -1
  718. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  719. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.d.ts +1 -1
  720. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.js +1 -1
  721. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  722. package/dist/public/headers.manifest.json +1 -1
  723. package/dist/public/sdk/{ConfirmationDrawer-G0bT0Dbu.js → ConfirmationDrawer-MgFTBwwK.js} +2 -1
  724. package/dist/public/sdk/{EvmClient-CHw6txjt.js → EvmClient-f3gUhS2L.js} +1 -1
  725. package/dist/public/sdk/{NearClient-BQgcqAzG.js → NearClient-DY4NfHeD.js} +194 -147
  726. package/dist/public/sdk/{NonceCoordinator-C7mqpJiU.js → NonceCoordinator-4XWPhYww.js} +4 -4
  727. package/dist/public/sdk/{accountIds-Ck4GAQfm.js → accountIds-DhIPGOSN.js} +1 -1
  728. package/dist/{esm/sdk/accountLifecycle-Ddavc_FC.js → public/sdk/accountLifecycle-zthG08aC.js} +253 -514
  729. package/dist/public/sdk/{actions-DsBQcjBn.js → actions-CCvThiKe.js} +1 -1
  730. package/dist/public/sdk/{adapters-m94YFj70.js → adapters-Dli9XAZp.js} +137 -136
  731. package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +36 -0
  732. package/dist/public/sdk/{canonicalSignerErrorCode-DAzYzisf.js → canonicalSignerErrorCode-BBIk365e.js} +3 -17
  733. package/dist/{esm/sdk/capabilityKinds-jwCEaqBU.js → public/sdk/capabilityKinds-hvYqa6S_.js} +1 -1
  734. package/dist/public/sdk/chains-BMh3btVo.js +124 -0
  735. package/dist/{esm/sdk/challengeDelivery-BjLKoou3.js → public/sdk/challengeDelivery-DZtopOAG.js} +2 -2
  736. package/dist/public/sdk/{configHelpers-DB73zYvO.js → configHelpers-D1EqxVxg.js} +3 -3
  737. package/dist/public/sdk/{defaultConfigs-CyNOW4Sy.js → defaultConfigs-D_33pPT9.js} +5 -5
  738. package/dist/{esm/sdk/display-DHdC2yXU.js → public/sdk/display-P4nQF-yc.js} +3 -8
  739. package/dist/{esm/sdk/normalize-BephcEIF.js → public/sdk/domainIds-lcrFg6Sa.js} +84 -84
  740. package/dist/{esm/sdk/ecdsaCapabilityManifest-C8itxV9S.js → public/sdk/ecdsaCapabilityManifest-DuMs0VtU.js} +14 -22
  741. package/dist/public/sdk/{ecdsaChainTarget-BOTPGIU_.js → ecdsaChainTarget-Bl-JWyuw.js} +2 -2
  742. package/dist/public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +1983 -0
  743. package/dist/{esm/sdk/ecdsaPresignPoolIdentity-Yopr4jvS.js → public/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js} +1 -1
  744. package/dist/{esm/sdk/ecdsaWalletRecords-CAbbVhEY.js → public/sdk/ecdsaWalletRecords-D42rtA9z.js} +6 -4
  745. package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
  746. package/dist/{esm/sdk/enrichDisplayModelWithAbi-DnjR1CqT.js → public/sdk/enrichDisplayModelWithAbi-CWggsykc.js} +2 -2
  747. package/dist/{esm/sdk/evmCryptoWasm-BVj135bZ.js → public/sdk/evmCryptoWasm-DWklhEEb.js} +1 -1
  748. package/dist/public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +4274 -0
  749. package/dist/{esm/sdk/exactSessionState-Bt0HforB.js → public/sdk/exactSessionState-LWDUXydN.js} +51 -80
  750. package/dist/public/sdk/exactSigningLaneIdentity-m6uTXV_A.js +335 -0
  751. package/dist/{esm/sdk/export-viewer-host-CbqG8ZQV.js → public/sdk/export-viewer-host-rWMSQQMP.js} +3 -3
  752. package/dist/public/sdk/{helpers-DpRjHMBx.js → helpers-ZrowMnev.js} +3 -6
  753. package/dist/{esm/sdk/host-BPC1zSVg.js → public/sdk/host-CnV8nAUe.js} +12 -12
  754. package/dist/{esm/sdk/intentDigest-A1MbbJPu.js → public/sdk/intentDigest-CvOSNlCH.js} +2 -2
  755. package/dist/public/sdk/{jsxRuntime.module-FAP0NE9p.js → jsxRuntime.module-CuH5ZEIA.js} +1 -1
  756. package/dist/public/sdk/{keyMaterialBrands-BbjCfzXv.js → keyMaterialBrands-CogGAAZn.js} +15 -13
  757. package/dist/public/sdk/{localOnly-CbLYTVbo.js → localOnly-DTpa2jD5.js} +8 -10
  758. package/dist/{esm/sdk/messages-B3UbNZYc.js → public/sdk/messages-C7Dbx9iN.js} +6 -4
  759. package/dist/{esm/sdk/mountExportPrivateKeySurface-CNc6Mch4.js → public/sdk/mountExportPrivateKeySurface-DgX-IBG_.js} +4 -4
  760. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-ChwzwnYG.js → public/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js} +2 -2
  761. package/dist/{esm/sdk/nearEd25519YaoMaterialActivation-Cz5UJQ_7.js → public/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js} +82 -55
  762. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-DX6xG-IW.js → public/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js} +10 -8
  763. package/dist/{esm/sdk/nonceLaneKeys-B_RcSS6M.js → public/sdk/nonceLaneKeys-C3c9lG6u.js} +1 -1
  764. package/dist/{esm/sdk/normalization-oJyXl3Vn.js → public/sdk/normalization-CBt413-z.js} +2 -2
  765. package/dist/public/sdk/{operationFingerprint-DEPg9A3h.js → operationFingerprint-C8Trar4R.js} +4 -4
  766. package/dist/public/sdk/{operationFingerprint-CsYO6b0a.js → operationFingerprint-CGZui5dR.js} +2 -1
  767. package/dist/public/sdk/{passkey-custody-BaHyYMhj.js → passkey-custody-UUHbC0pk.js} +7 -6
  768. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-DyvRysWg.js → public/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js} +3 -3
  769. package/dist/public/sdk/{recovery-entrypoint-D39R1avB.js → recovery-entrypoint-C3fydnRC.js} +19 -16
  770. package/dist/public/sdk/{registration-PIBMSsQR.js → registration-Ct_7LdGf.js} +2871 -3182
  771. package/dist/public/sdk/{registration-DtDICj-o.js → registration-DHERU8R_.js} +4 -4
  772. package/dist/{esm/sdk/registrationAccounts-AO3QHjas.js → public/sdk/registrationAccounts-DmWPzf3T.js} +6 -4
  773. package/dist/public/sdk/registrationIds-DLSdEKSv.js +310 -0
  774. package/dist/public/sdk/registrationIntent-4zwk16zQ.js +387 -0
  775. package/dist/public/sdk/{registrationPreparationPreload-BZfAC_ba.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  776. package/dist/public/sdk/registrationSignerPlan-DhV8VAob.js +437 -0
  777. package/dist/{esm/sdk/relayerHttp-LsVTZCxA.js → public/sdk/relayerHttp-VC8Holz1.js} +1 -1
  778. package/dist/{esm/sdk/routePlan-nLpPFHB-.js → public/sdk/routePlan-D59x5xzQ.js} +1 -1
  779. package/dist/{esm/sdk/router-CeFS9SgT.js → public/sdk/router-B4ZWFy9E.js} +23 -25
  780. package/dist/{esm/sdk/routerAbNormalSigning-DktZKnf1.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +63 -92
  781. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  782. package/dist/{esm/sdk/runtime-auth-D_lUQQlc.js → public/sdk/runtime-auth-DdfynDKt.js} +144 -301
  783. package/dist/{esm/sdk/runtime-device-link-CEph1iM0.js → public/sdk/runtime-device-link-HJ2ptFux.js} +25 -22
  784. package/dist/{esm/sdk/runtime-ecdsa-tempo-tUWnafRo.js → public/sdk/runtime-ecdsa-tempo-BGLsTAWR.js} +24 -21
  785. package/dist/public/sdk/{runtime-email-otp-1wIPTDim.js → runtime-email-otp-CpX88VZJ.js} +23 -20
  786. package/dist/{esm/sdk/runtime-export-Du2d4_Vu.js → public/sdk/runtime-export-DIVY473L.js} +26 -22
  787. package/dist/{esm/sdk/runtime-near-CGoWxu7u.js → public/sdk/runtime-near-CxtQi4b2.js} +24 -22
  788. package/dist/{esm/sdk/runtime-preferences-JwJK_xP3.js → public/sdk/runtime-preferences-vnJc5Svg.js} +24 -21
  789. package/dist/public/sdk/{runtime-recovery-codes-DW7bB2tO.js → runtime-recovery-codes-BSCLVHQj.js} +15 -19
  790. package/dist/{esm/sdk/runtime-recovery-BEqBdpyo.js → public/sdk/runtime-recovery-i08vCJST.js} +23 -20
  791. package/dist/public/sdk/{runtimeContext-CTt9ON27.js → runtimeContext-D3TBExQ6.js} +915 -1109
  792. package/dist/{esm/sdk/runtimeLoader-ZXsvx9zX.js → public/sdk/runtimeLoader-DQVEFVaW.js} +12 -12
  793. package/dist/{esm/sdk/sdkSentEvents-5Pi-hjHB.js → public/sdk/sdkSentEvents-MqDkbQg1.js} +10 -8
  794. package/dist/public/sdk/{secp256k1-CWDid9WH.js → secp256k1-D-I6Gh4D.js} +53 -176
  795. package/dist/public/sdk/sessionPolicy-DO-MkL65.js +460 -0
  796. package/dist/{esm/sdk/signEvmFamily-pbMepepQ.js → public/sdk/signEvmFamily-C3C97Th-.js} +135 -185
  797. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CxvfCI_o.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +11 -15
  798. package/dist/{esm/sdk/signEvmWithUiConfirm-nk-r3Rff.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +6 -10
  799. package/dist/{esm/sdk/signNear-DVD9-IO5.js → public/sdk/signNear-Bmb2fj_a.js} +729 -846
  800. package/dist/public/sdk/{evmAdapter-C5NR5tiV.js → signatureUses-BkGyYt8F.js} +12 -3
  801. package/dist/public/sdk/{signerDomain-DDLiwuYS.js → signerDomain-IEAVrOrc.js} +3 -18
  802. package/dist/{esm/sdk/signerLoader-D_w-SfR9.js → public/sdk/signerLoader-B7orgq5Z.js} +4 -4
  803. package/dist/public/sdk/{signatureUses-BY1IY7uz.js → signingFlow-SZ8t_lxv.js} +24 -38
  804. package/dist/public/sdk/{trace-08ayoiNp.js → trace-DKLQZvec.js} +1 -2
  805. package/dist/public/sdk/{transaction-activity-DKgIGpKG.js → transaction-activity-CSMCveBn.js} +1 -1
  806. package/dist/{esm/sdk/transactionReview-UoZQ2opj.js → public/sdk/transactionReview-DpHLTznU.js} +4 -6
  807. package/dist/public/sdk/{transactionReviewAdmission-Cv9kTr4c.js → transactionReviewAdmission-BCPvl8OZ.js} +2 -2
  808. package/dist/public/sdk/{transactionState-Bpm4GamO.js → transactionState-CJ4U8pcl.js} +58 -47
  809. package/dist/public/sdk/tx-confirm-ui.js +182 -189
  810. package/dist/public/sdk/types-Dx9fczU7.js +111 -0
  811. package/dist/{esm/sdk/validation-BphUDXs7.js → public/sdk/validation-gat4LEKm.js} +36 -2
  812. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +2 -2
  813. package/dist/public/sdk/wallet-iframe-host-full.js +2 -2
  814. package/dist/public/sdk/wallet-iframe-host-near.js +2 -2
  815. package/dist/public/sdk/wallet-iframe-host-runtime.js +2 -2
  816. package/dist/public/sdk/{wallet-recovery-CKqoHbxT.js → wallet-recovery-BX61-79p.js} +20 -29
  817. package/dist/public/sdk/wallet-service.css +21 -0
  818. package/dist/public/sdk/wallet-ui.css +129 -345
  819. package/dist/{esm/sdk/sessionPolicy-B4FsPuk2.js → public/sdk/walletAuthority-DD9T25F6.js} +504 -447
  820. package/dist/{esm/sdk/ed25519SeedMaterial-Cghz8-XB.js → public/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js} +1951 -2216
  821. package/dist/public/sdk/{walletRecoveryCommit-G6w6N5RV.js → walletRecoveryCommit-AI1AtIRP.js} +88 -151
  822. package/dist/{esm/sdk/walletRecoveryRotate-BYOYJAyb.js → public/sdk/walletRecoveryRotate-BgLlW5ih.js} +1 -1
  823. package/dist/public/sdk/{warmSessionHydration-DDNYdTCz.js → warmSessionHydration-Os8niEm7.js} +1 -1
  824. package/dist/{esm/sdk/webauthnP256-CHqprSh1.js → public/sdk/webauthnP256-DC5EIbKN.js} +1 -1
  825. package/dist/public/sdk/workers/device-linking-key.worker.js +5638 -5817
  826. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1663 -2128
  827. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +9 -117
  828. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +102 -220
  829. package/dist/public/sdk/workers/email-otp.worker.js +8966 -9300
  830. package/dist/public/sdk/workers/evm-crypto.worker.js +8 -6
  831. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  832. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  833. package/dist/public/sdk/workers/near-signer.worker.js +4 -4
  834. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  835. package/dist/public/sdk/workers/passkey-confirm.worker.js +6 -3
  836. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +95 -101
  837. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +205 -202
  838. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  839. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  840. package/dist/public/sdk/workers/tempo-signer.worker.js +8 -6
  841. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  842. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  843. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +230 -222
  844. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  845. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  846. package/dist/public/wallet-assets.manifest.json +334 -214
  847. package/dist/public/wallet-service/index.html +4 -4
  848. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +8 -26
  849. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -9
  850. package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +1 -3
  851. package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +25 -12
  852. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +8 -0
  853. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  854. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -2
  855. package/dist/types/shared-ts/src/device-linking/authorityActivation.d.ts +5 -0
  856. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +4 -8
  857. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +13 -74
  858. package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -1
  859. package/dist/types/shared-ts/src/device-linking/deviceManagement.d.ts +7 -0
  860. package/dist/types/shared-ts/src/device-linking/digests.d.ts +0 -5
  861. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +3 -2
  862. package/dist/types/shared-ts/src/device-linking/index.d.ts +2 -0
  863. package/dist/types/shared-ts/src/device-linking/parsers.d.ts +4 -41
  864. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +0 -1
  865. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +5 -2
  866. package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +2 -1
  867. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +26 -0
  868. package/dist/types/shared-ts/src/near/actions.d.ts +4 -4
  869. package/dist/types/shared-ts/src/near/delegate.d.ts +3 -2
  870. package/dist/types/shared-ts/src/near/nearClient.d.ts +145 -0
  871. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +0 -22
  872. package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +2 -4
  873. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +14 -30
  874. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +8 -24
  875. package/dist/types/shared-ts/src/passkey-custody/index.d.ts +0 -2
  876. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -14
  877. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -15
  878. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -50
  879. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
  880. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +1 -2
  881. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +1 -2
  882. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +5 -27
  883. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +0 -11
  884. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +6 -53
  885. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +1 -2
  886. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +18 -42
  887. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +1 -20
  888. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +4 -25
  889. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +1 -41
  890. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +6 -0
  891. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +20 -0
  892. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  893. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  894. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +8 -35
  895. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +8 -35
  896. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +25 -0
  897. package/dist/types/shared-ts/src/threshold/participants.d.ts +3 -9
  898. package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +0 -37
  899. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +24 -0
  900. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +3 -5
  901. package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +3 -4
  902. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +7 -108
  903. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +16 -3
  904. package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +2 -0
  905. package/dist/types/shared-ts/src/utils/digestEncoding.d.ts +9 -0
  906. package/dist/types/shared-ts/src/utils/domainIds.d.ts +1 -2
  907. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +3 -13
  908. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  909. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +7 -5
  910. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +0 -2
  911. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -7
  912. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  913. package/dist/types/shared-ts/src/utils/exactRecord.d.ts +12 -0
  914. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  915. package/dist/types/shared-ts/src/utils/index.d.ts +5 -2
  916. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +6 -6
  917. package/dist/types/shared-ts/src/utils/near.d.ts +2 -1
  918. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +8 -7
  919. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -4
  920. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +179 -0
  921. package/dist/types/shared-ts/src/utils/registrationContracts.d.ts +76 -0
  922. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +1 -2
  923. package/dist/types/shared-ts/src/utils/registrationIds.d.ts +56 -0
  924. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +9 -514
  925. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +130 -0
  926. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +24 -93
  927. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +15 -99
  928. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +38 -0
  929. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  930. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +10 -15
  931. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +2 -1
  932. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  933. package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +0 -2
  934. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -35
  935. package/dist/types/shared-ts/src/utils/signerSlot.d.ts +0 -4
  936. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -17
  937. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  938. package/dist/types/shared-ts/src/utils/validation.d.ts +10 -10
  939. package/dist/types/shared-ts/src/utils/variant.d.ts +29 -0
  940. package/dist/types/shared-ts/src/utils/variant.typecheck.d.ts +22 -0
  941. package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +2 -2
  942. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +1 -58
  943. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +101 -0
  944. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +3 -7
  945. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +5 -4
  946. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +60 -0
  947. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +2 -1
  948. package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +0 -1
  949. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +0 -16
  950. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +2 -11
  951. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  952. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +6 -18
  953. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +0 -2
  954. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +1 -3
  955. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  956. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  957. package/dist/types/wallet/build-paths.d.ts +1 -2
  958. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -12
  959. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfaceAssembly.d.ts +3 -13
  960. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfacePorts.d.ts +2 -1
  961. package/dist/types/wallet/src/SeamsWeb/assembly/browserWorkerWarmupPolicy.d.ts +1 -3
  962. package/dist/types/wallet/src/SeamsWeb/assembly/createBrowserSigningStores.d.ts +2 -1
  963. package/dist/types/wallet/src/SeamsWeb/assembly/initializeBrowserSigningRuntime.d.ts +2 -1
  964. package/dist/types/wallet/src/SeamsWeb/assembly/preconnectWalletAssets.d.ts +2 -3
  965. package/dist/types/wallet/src/SeamsWeb/operations/auth/login.d.ts +13 -88
  966. package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
  967. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +4 -3
  968. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +2 -18
  969. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +7 -24
  970. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +5 -6
  971. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.d.ts +1 -1
  972. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +0 -13
  973. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +0 -1
  974. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.d.ts +2 -1
  975. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.d.ts +2 -2
  976. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.d.ts +1 -2
  977. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
  978. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.d.ts +20 -0
  979. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.d.ts +4 -42
  980. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/registrationAuthority.d.ts +2 -1
  981. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/revokeAuthMethod.d.ts +1 -9
  982. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/sourcePasskeyProof.d.ts +2 -7
  983. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -23
  984. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingComposition.d.ts +2 -21
  985. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.d.ts +2 -2
  986. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingHttpTransport.d.ts +4 -17
  987. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.d.ts +2 -1
  988. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingPorts.d.ts +10 -16
  989. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +4 -3
  990. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.d.ts +2 -14
  991. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDevice.d.ts +3 -91
  992. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlow.d.ts +88 -0
  993. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlowSupport.d.ts +53 -0
  994. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceTargetActivation.d.ts +149 -0
  995. package/dist/types/wallet/src/SeamsWeb/operations/devices/scanDevice.d.ts +2 -1
  996. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostComposition.d.ts +4 -9
  997. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +9 -5
  998. package/dist/types/wallet/src/SeamsWeb/operations/near/actions.d.ts +0 -46
  999. package/dist/types/wallet/src/SeamsWeb/operations/near/delegateAction.d.ts +2 -1
  1000. package/dist/types/wallet/src/SeamsWeb/operations/near/signingEventHelpers.d.ts +2 -1
  1001. package/dist/types/wallet/src/SeamsWeb/operations/recovery/accountSync.d.ts +2 -1
  1002. package/dist/types/wallet/src/SeamsWeb/operations/recovery/recoveryWalletBinding.d.ts +1 -2
  1003. package/dist/types/wallet/src/SeamsWeb/operations/recovery/syncAccount.d.ts +1 -77
  1004. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecovery.d.ts +8 -7
  1005. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.d.ts +1 -1
  1006. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryCommit.d.ts +0 -2
  1007. package/dist/types/wallet/src/SeamsWeb/operations/recovery/walletRecoveryRotation.d.ts +0 -8
  1008. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.d.ts +1 -1
  1009. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.d.ts +2 -2
  1010. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +8 -10
  1011. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +10 -233
  1012. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +18 -5
  1013. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +2 -6
  1014. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationStrictEcdsa.d.ts +1 -7
  1015. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTerminalCommit.d.ts +2 -2
  1016. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +49 -275
  1017. package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdEcdsaProvisioning.d.ts +3 -2
  1018. package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +2 -2
  1019. package/dist/types/wallet/src/SeamsWeb/publicApi/awaitNearReady.d.ts +0 -1
  1020. package/dist/types/wallet/src/SeamsWeb/publicApi/capabilitySelection.d.ts +1 -1
  1021. package/dist/types/wallet/src/SeamsWeb/publicApi/currentWallet.d.ts +2 -1
  1022. package/dist/types/wallet/src/SeamsWeb/publicApi/devices.d.ts +1 -1
  1023. package/dist/types/wallet/src/SeamsWeb/publicApi/keyExport.d.ts +1 -4
  1024. package/dist/types/wallet/src/SeamsWeb/publicApi/near.d.ts +0 -8
  1025. package/dist/types/wallet/src/SeamsWeb/publicApi/transactionReview.d.ts +2 -1
  1026. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +29 -36
  1027. package/dist/types/wallet/src/SeamsWeb/registrationIntent.typecheck.d.ts +8 -0
  1028. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +14 -61
  1029. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -4
  1030. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/overlay/overlay-controller.d.ts +3 -3
  1031. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/overlay/overlay-styles.d.ts +3 -3
  1032. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.d.ts +0 -13
  1033. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +3 -4
  1034. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/domain.d.ts +8 -39
  1035. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +3 -7
  1036. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/renderer.d.ts +2 -2
  1037. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/IframeTransport.d.ts +3 -7
  1038. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.d.ts +2 -3
  1039. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.d.ts +1 -11
  1040. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/webauthn-bridge.d.ts +0 -6
  1041. package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +2 -1
  1042. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -3
  1043. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +2 -8
  1044. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/passkey.d.ts +3 -3
  1045. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +2 -4
  1046. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/bootstrap.d.ts +0 -4
  1047. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/canonicalSignerErrorCode.d.ts +2 -7
  1048. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/context.d.ts +0 -5
  1049. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/authMenu.d.ts +0 -1
  1050. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/walletIframeHandler.types.d.ts +0 -13
  1051. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +1 -2
  1052. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +10 -10
  1053. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
  1054. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeLoader.d.ts +2 -1
  1055. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +3 -3
  1056. package/dist/types/wallet/src/SeamsWeb/walletIframe/sanitization.d.ts +0 -7
  1057. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionReconciliation.d.ts +3 -2
  1058. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +2 -2
  1059. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +57 -72
  1060. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/transactionReview.d.ts +3 -2
  1061. package/dist/types/wallet/src/core/accountData/near/accountProjection.d.ts +4 -49
  1062. package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +4 -21
  1063. package/dist/types/wallet/src/core/accountData/near/profileId.d.ts +2 -2
  1064. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +0 -1
  1065. package/dist/types/wallet/src/core/config/chains.d.ts +0 -2
  1066. package/dist/types/wallet/src/core/config/configBuilder.d.ts +0 -4
  1067. package/dist/types/wallet/src/core/config/configHelpers.d.ts +1 -21
  1068. package/dist/types/wallet/src/core/config/defaultConfigs.d.ts +1 -4
  1069. package/dist/types/wallet/src/core/config/registrationConfig.typecheck.d.ts +1 -2
  1070. package/dist/types/wallet/src/core/indexedDB/accountKeyMaterial.d.ts +5 -4
  1071. package/dist/types/wallet/src/core/indexedDB/accountSignerLifecycle.d.ts +1 -1
  1072. package/dist/types/wallet/src/core/indexedDB/index.d.ts +1 -5
  1073. package/dist/types/wallet/src/core/indexedDB/keyMaterialEnvelope.d.ts +1 -2
  1074. package/dist/types/wallet/src/core/indexedDB/linkedAuthoritySignerMaterial.d.ts +3 -3
  1075. package/dist/types/wallet/src/core/indexedDB/normalization.d.ts +0 -3
  1076. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +7 -26
  1077. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +5 -8
  1078. package/dist/types/wallet/src/core/indexedDB/profileAccountProjection.d.ts +3 -14
  1079. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +2 -1
  1080. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +172 -0
  1081. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +155 -0
  1082. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +15 -256
  1083. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +101 -0
  1084. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.d.ts +0 -1
  1085. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/manager.d.ts +2 -1
  1086. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +3 -2
  1087. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +49 -44
  1088. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signingSessionSeals.d.ts +2 -1
  1089. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.d.ts +47 -0
  1090. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +5 -8
  1091. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +7 -4
  1092. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +10 -78
  1093. package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
  1094. package/dist/types/wallet/src/core/platform/ports.d.ts +3 -7
  1095. package/dist/types/wallet/src/core/platform/secretSources.d.ts +1 -1
  1096. package/dist/types/wallet/src/core/platform/signerCoreCommandAdapters.typecheck.d.ts +25 -0
  1097. package/dist/types/wallet/src/core/rpcClients/evm/EvmClient.d.ts +1 -2
  1098. package/dist/types/wallet/src/core/rpcClients/evm/nonceBackend.d.ts +6 -22
  1099. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -133
  1100. package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
  1101. package/dist/types/wallet/src/core/rpcClients/near/rpcCalls.d.ts +5 -31
  1102. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -12
  1103. package/dist/types/wallet/src/core/rpcClients/relayer/passkeyCustodyEnvelope.d.ts +4 -3
  1104. package/dist/types/wallet/src/core/rpcClients/relayer/registrationSignerSetRequest.d.ts +3 -2
  1105. package/dist/types/wallet/src/core/rpcClients/relayer/relayerHttp.d.ts +2 -2
  1106. package/dist/types/wallet/src/core/rpcClients/relayer/routerAbNormalSigning.d.ts +10 -39
  1107. package/dist/types/wallet/src/core/rpcClients/relayer/sealedRefreshCapabilities.d.ts +0 -14
  1108. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +4 -72
  1109. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryFinalize.d.ts +2 -5
  1110. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.d.ts +4 -7
  1111. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +5 -17
  1112. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +3 -19
  1113. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +32 -106
  1114. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistrationTerminalResponse.d.ts +2 -2
  1115. package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +2 -10
  1116. package/dist/types/wallet/src/core/runtime/runtime.types.d.ts +7 -6
  1117. package/dist/types/wallet/src/core/signingEngine/assembly/createManagers.d.ts +2 -1
  1118. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +1 -1
  1119. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +2 -1
  1120. package/dist/types/wallet/src/core/signingEngine/chains/evm/bytes.d.ts +0 -2
  1121. package/dist/types/wallet/src/core/signingEngine/chains/evm/display/evmTx.d.ts +2 -1
  1122. package/dist/types/wallet/src/core/signingEngine/chains/evm/display/functionSelectors.d.ts +0 -1
  1123. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmAdapter.d.ts +2 -1
  1124. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmCryptoWasm.d.ts +0 -9
  1125. package/dist/types/wallet/src/core/signingEngine/chains/evm/evmSigning.types.d.ts +2 -2
  1126. package/dist/types/wallet/src/core/signingEngine/chains/near/display.d.ts +4 -2
  1127. package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +5 -12
  1128. package/dist/types/wallet/src/core/signingEngine/chains/tempo/display.d.ts +2 -1
  1129. package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoAdapter.d.ts +2 -1
  1130. package/dist/types/wallet/src/core/signingEngine/chains/tempo/tempoSigning.types.d.ts +4 -7
  1131. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +6 -104
  1132. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
  1133. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +1 -17
  1134. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ed25519YaoExportFlow.d.ts +1 -1
  1135. package/dist/types/wallet/src/core/signingEngine/flows/recovery/exportKeypairOperation.d.ts +1 -1
  1136. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportConfirmation.d.ts +2 -5
  1137. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +8 -7
  1138. package/dist/types/wallet/src/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.d.ts +3 -6
  1139. package/dist/types/wallet/src/core/signingEngine/flows/recovery/stepUpAuthorization.d.ts +3 -3
  1140. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +10 -30
  1141. package/dist/types/wallet/src/core/signingEngine/flows/registration/nearProvisioningRegistry.d.ts +2 -20
  1142. package/dist/types/wallet/src/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.d.ts +2 -1
  1143. package/dist/types/wallet/src/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.d.ts +5 -10
  1144. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingConfirmation.d.ts +0 -15
  1145. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +7 -50
  1146. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/authPlanning.d.ts +1 -1
  1147. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +2 -6
  1148. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +2 -2
  1149. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/errors.d.ts +3 -15
  1150. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/executorThresholdState.d.ts +0 -4
  1151. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +5 -6
  1152. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.d.ts +2 -1
  1153. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -5
  1154. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/preparedSigning.d.ts +5 -14
  1155. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -13
  1156. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.d.ts +7 -7
  1157. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signatureUses.d.ts +0 -2
  1158. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signerLoader.d.ts +5 -4
  1159. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
  1160. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +2 -3
  1161. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlow.d.ts +12 -12
  1162. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +11 -46
  1163. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/stepUpAuthorization.d.ts +4 -22
  1164. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/thresholdAdmission.d.ts +2 -1
  1165. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/types.d.ts +2 -1
  1166. package/dist/types/wallet/src/core/signingEngine/flows/signNear/implicitAccountFunding.d.ts +1 -1
  1167. package/dist/types/wallet/src/core/signingEngine/flows/signNear/requireNearStepUpAuth.d.ts +3 -3
  1168. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +4 -11
  1169. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +2 -2
  1170. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
  1171. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signatureOnlySigning.d.ts +126 -0
  1172. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingMaterials.d.ts +2 -1
  1173. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.d.ts +3 -3
  1174. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNear.d.ts +6 -5
  1175. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
  1176. package/dist/types/wallet/src/core/signingEngine/flows/signNear/stepUpAuthorization.d.ts +1 -6
  1177. package/dist/types/wallet/src/core/signingEngine/interfaces/accountAuthMetadata.d.ts +0 -1
  1178. package/dist/types/wallet/src/core/signingEngine/interfaces/display.d.ts +7 -6
  1179. package/dist/types/wallet/src/core/signingEngine/interfaces/ecdsaChainTarget.d.ts +1 -1
  1180. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +8 -48
  1181. package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +5 -19
  1182. package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +4 -6
  1183. package/dist/types/wallet/src/core/signingEngine/interfaces/signing.d.ts +8 -17
  1184. package/dist/types/wallet/src/core/signingEngine/nonce/evmNonceLane.d.ts +2 -2
  1185. package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLane.d.ts +3 -28
  1186. package/dist/types/wallet/src/core/signingEngine/nonce/nearNonceLaneIdentity.d.ts +0 -1
  1187. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +5 -6
  1188. package/dist/types/wallet/src/core/signingEngine/nonce/nonceCoordinationRecordBoundary.d.ts +0 -1
  1189. package/dist/types/wallet/src/core/signingEngine/nonce/nonceDiagnostics.d.ts +3 -4
  1190. package/dist/types/wallet/src/core/signingEngine/nonce/nonceLaneKeys.d.ts +1 -3
  1191. package/dist/types/wallet/src/core/signingEngine/nonce/nonceLeaseState.d.ts +2 -1
  1192. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +15 -15
  1193. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +6 -23
  1194. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.d.ts +0 -1
  1195. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +7 -17
  1196. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.d.ts +1 -7
  1197. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.d.ts +2 -1
  1198. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/registrationPendingFinalization.d.ts +1 -1
  1199. package/dist/types/wallet/src/core/signingEngine/session/SigningSessionCoordinator.d.ts +5 -8
  1200. package/dist/types/wallet/src/core/signingEngine/session/authority/authorityOperationResolver.d.ts +1 -1
  1201. package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +14 -37
  1202. package/dist/types/wallet/src/core/signingEngine/session/availability/clientSessionExpiryInvalidator.d.ts +3 -2
  1203. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +4 -3
  1204. package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +6 -31
  1205. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
  1206. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/challengeDelivery.d.ts +0 -5
  1207. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.d.ts +1 -21
  1208. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaLogin.d.ts +6 -61
  1209. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +7 -26
  1210. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaRecovery.d.ts +3 -19
  1211. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.d.ts +3 -2
  1212. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +6 -12
  1213. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/exportRecoveryRuntime.d.ts +0 -1
  1214. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ports.d.ts +2 -3
  1215. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/publicTypes.d.ts +4 -6
  1216. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/routePlan.d.ts +4 -15
  1217. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/runtimeConfig.d.ts +2 -1
  1218. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedRefreshPolicy.d.ts +4 -17
  1219. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.d.ts +2 -1
  1220. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/sealedSessionRegistry.d.ts +2 -1
  1221. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/secretEscrow.d.ts +4 -11
  1222. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
  1223. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/warmSessionRuntime.d.ts +2 -1
  1224. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/workerRequests.d.ts +1 -1
  1225. package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareHandle.d.ts +0 -13
  1226. package/dist/types/wallet/src/core/signingEngine/session/identity/clientSessionPersistenceState.d.ts +6 -7
  1227. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.d.ts +0 -3
  1228. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +19 -35
  1229. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +10 -27
  1230. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +11 -11
  1231. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
  1232. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +13 -20
  1233. package/dist/types/wallet/src/core/signingEngine/session/identity/ownerLaneScope.d.ts +9 -17
  1234. package/dist/types/wallet/src/core/signingEngine/session/identity/selectLane.d.ts +12 -28
  1235. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +7 -8
  1236. package/dist/types/wallet/src/core/signingEngine/session/identity/walletUnlockSubject.d.ts +1 -1
  1237. package/dist/types/wallet/src/core/signingEngine/session/keyMaterialBrands.d.ts +3 -27
  1238. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/activationCoordinator.d.ts +0 -1
  1239. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/laneMaterialInvalidation.d.ts +2 -37
  1240. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/recipientPreparation.d.ts +4 -16
  1241. package/dist/types/wallet/src/core/signingEngine/session/lanes/walletExecutionLaneHydration.d.ts +5 -42
  1242. package/dist/types/wallet/src/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.d.ts +2 -1
  1243. package/dist/types/wallet/src/core/signingEngine/session/lifecycle/walletSessionStatus.d.ts +2 -6
  1244. package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +8 -12
  1245. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +7 -10
  1246. package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
  1247. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +4 -5
  1248. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityManifest.d.ts +5 -5
  1249. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.d.ts +2 -2
  1250. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +6 -35
  1251. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +10 -9
  1252. package/dist/types/wallet/src/core/signingEngine/session/material/mpcCapabilityHydration.d.ts +4 -5
  1253. package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +9 -13
  1254. package/dist/types/wallet/src/core/signingEngine/session/material/walletSigningStateFailure.d.ts +9 -8
  1255. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +7 -16
  1256. package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +13 -16
  1257. package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +2 -1
  1258. package/dist/types/wallet/src/core/signingEngine/session/operationState/trace.d.ts +5 -10
  1259. package/dist/types/wallet/src/core/signingEngine/session/operationState/transactionState.d.ts +5 -26
  1260. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +18 -36
  1261. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +7 -8
  1262. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +6 -23
  1263. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.d.ts +4 -15
  1264. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519Provisioner.d.ts +2 -1
  1265. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519SessionProvision.d.ts +1 -1
  1266. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519SessionProvision.typecheck.d.ts +7 -1
  1267. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +10 -94
  1268. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoSealedSession.d.ts +3 -2
  1269. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.d.ts +3 -13
  1270. package/dist/types/wallet/src/core/signingEngine/session/passkey/passkeyCustodySessionCache.d.ts +0 -40
  1271. package/dist/types/wallet/src/core/signingEngine/session/passkey/prfCache.d.ts +2 -1
  1272. package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +12 -30
  1273. package/dist/types/wallet/src/core/signingEngine/session/passkey/warmSessionMaterialWriter.d.ts +1 -1
  1274. package/dist/types/wallet/src/core/signingEngine/session/persistence/durableSealedSessionCommands.d.ts +5 -7
  1275. package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.d.ts +0 -1
  1276. package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaSealedRecordKey.d.ts +2 -1
  1277. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +212 -0
  1278. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionStore.d.ts +4 -199
  1279. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +6 -35
  1280. package/dist/types/wallet/src/core/signingEngine/session/public.d.ts +1 -1
  1281. package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +4 -3
  1282. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/recoveryRecord.d.ts +2 -2
  1283. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
  1284. package/dist/types/wallet/src/core/signingEngine/session/userPreferences.d.ts +2 -1
  1285. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReader.d.ts +3 -6
  1286. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +7 -19
  1287. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.d.ts +2 -1
  1288. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.d.ts +2 -1
  1289. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.d.ts +6 -40
  1290. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.typecheck.d.ts +4 -0
  1291. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +8 -61
  1292. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +4 -73
  1293. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/readModel.d.ts +4 -12
  1294. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +4 -3
  1295. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.d.ts +2 -1
  1296. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/transitions.d.ts +3 -2
  1297. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.d.ts +5 -36
  1298. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.typecheck.d.ts +10 -1
  1299. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.d.ts +1 -2
  1300. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmCommon.d.ts +3 -2
  1301. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +17 -53
  1302. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/confirmOperation.d.ts +4 -5
  1303. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodRunners.d.ts +4 -3
  1304. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +5 -10
  1305. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
  1306. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.d.ts +7 -6
  1307. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/signingPrompt.d.ts +2 -2
  1308. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +5 -8
  1309. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +6 -15
  1310. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +2 -2
  1311. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +13 -28
  1312. package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
  1313. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +5 -17
  1314. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.d.ts +0 -9
  1315. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.d.ts +5 -31
  1316. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/webauthn.d.ts +1 -46
  1317. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/activation.d.ts +2 -9
  1318. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
  1319. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/operationStepUp.d.ts +2 -1
  1320. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.d.ts +5 -4
  1321. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +2 -11
  1322. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +2 -10
  1323. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/connectSession.d.ts +1 -1
  1324. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +7 -37
  1325. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.d.ts +2 -1
  1326. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +17 -49
  1327. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.d.ts +2 -1
  1328. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +5 -19
  1329. package/dist/types/wallet/src/core/signingEngine/threshold/sessionPolicy.d.ts +2 -53
  1330. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.d.ts +1 -1
  1331. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/adapters/request.d.ts +1 -5
  1332. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/signing.d.ts +1 -7
  1333. package/dist/types/wallet/src/core/signingEngine/uiConfirm/nearFundingNotice.d.ts +2 -5
  1334. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-surface-resize.d.ts +3 -32
  1335. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
  1336. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +3 -2
  1337. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/export-private-key-reveal.d.ts +0 -1
  1338. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.d.ts +2 -1
  1339. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.d.ts +2 -1
  1340. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
  1341. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.d.ts +2 -1
  1342. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.d.ts +1 -0
  1343. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.d.ts +11 -2
  1344. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +4 -21
  1345. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionTree.d.ts +1 -1
  1346. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.d.ts +2 -1
  1347. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/email-otp-session.d.ts +2 -1
  1348. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.d.ts +2 -2
  1349. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.d.ts +0 -2
  1350. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/surface-resize-events.d.ts +2 -2
  1351. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.d.ts +0 -2
  1352. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.d.ts +2 -1
  1353. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/tree.d.ts +3 -3
  1354. package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +9 -9
  1355. package/dist/types/wallet/src/core/signingEngine/walletCustody/activateEd25519Capability.d.ts +2 -1
  1356. package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.d.ts +3 -4
  1357. package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyDriver.d.ts +1 -1
  1358. package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyStepRunner.d.ts +4 -3
  1359. package/dist/types/wallet/src/core/signingEngine/walletCustody/ed25519SeedMaterial.d.ts +1 -1
  1360. package/dist/types/wallet/src/core/signingEngine/walletCustody/emailOtpLink.d.ts +2 -1
  1361. package/dist/types/wallet/src/core/signingEngine/walletCustody/joinCustodyWire.d.ts +2 -1
  1362. package/dist/types/wallet/src/core/signingEngine/walletCustody/openCustodyCache.d.ts +6 -5
  1363. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +1 -52
  1364. package/dist/types/wallet/src/core/signingEngine/walletCustody/recoveryReplacementEnvelope.d.ts +0 -5
  1365. package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +16 -26
  1366. package/dist/types/wallet/src/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.d.ts +22 -12
  1367. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryEd25519.d.ts +1 -1
  1368. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRecoveryRotation.d.ts +3 -2
  1369. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.d.ts +1 -2
  1370. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/credentialExtensions.d.ts +2 -5
  1371. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/credentials/helpers.d.ts +0 -9
  1372. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.d.ts +4 -9
  1373. package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingPorts.d.ts +3 -12
  1374. package/dist/types/wallet/src/core/signingEngine/workerManager/deviceLinkingSourceContribution.d.ts +17 -9
  1375. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +7 -7
  1376. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
  1377. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +5 -5
  1378. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +78 -81
  1379. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ecdsaTargetShareHpke.d.ts +7 -0
  1380. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/ordinaryMaterialState.d.ts +50 -0
  1381. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/requests.d.ts +89 -0
  1382. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key.worker.d.ts +1 -10
  1383. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/ecdsaLaneHolderWorkerRuntime.d.ts +2 -2
  1384. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +57 -0
  1385. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +89 -0
  1386. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/dispatch.d.ts +4 -0
  1387. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/ed25519YaoExport.d.ts +45 -0
  1388. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/enrollment.d.ts +47 -0
  1389. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/fetch.d.ts +2 -1
  1390. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/materialParsing.d.ts +45 -0
  1391. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/operationRequestParsing.d.ts +7 -0
  1392. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/otpVerification.d.ts +53 -0
  1393. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/passkeyCustodyLink.d.ts +18 -0
  1394. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +48 -0
  1395. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/recovery.d.ts +9 -0
  1396. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/requestEnvelope.d.ts +11 -0
  1397. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/sessionState.d.ts +74 -0
  1398. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +133 -0
  1399. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/opaqueEcdsaPresignAuthority.d.ts +6 -6
  1400. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/clientSealPreparation.d.ts +2 -2
  1401. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/shamir3pass/runtime.d.ts +2 -1
  1402. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/workerErrorPayload.d.ts +16 -0
  1403. package/dist/types/wallet/src/core/types/accountIds.d.ts +2 -1
  1404. package/dist/types/wallet/src/core/types/authenticatorOptions.d.ts +0 -2
  1405. package/dist/types/wallet/src/core/types/confirmationConfig.d.ts +4 -4
  1406. package/dist/types/wallet/src/core/types/ecdsaSignerProvisioningDefaults.d.ts +2 -1
  1407. package/dist/types/wallet/src/core/types/errors.d.ts +2 -1
  1408. package/dist/types/wallet/src/core/types/linkDevice.d.ts +5 -21
  1409. package/dist/types/wallet/src/core/types/rpc.d.ts +0 -30
  1410. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
  1411. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +15 -32
  1412. package/dist/types/wallet/src/core/types/seams.d.ts +50 -124
  1413. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +3 -5
  1414. package/dist/types/wallet/src/core/types/signer-worker.d.ts +13 -70
  1415. package/dist/types/wallet/src/core/types/webauthn.d.ts +3 -12
  1416. package/dist/types/wallet/src/core/walletRuntimePaths/base.d.ts +0 -28
  1417. package/dist/types/wallet/src/core/walletRuntimePaths/wasm-loader.d.ts +2 -1
  1418. package/dist/types/wallet/src/core/walletRuntimePaths/workers.d.ts +0 -11
  1419. package/dist/types/wallet/src/externalEvm/boundary.d.ts +2 -2
  1420. package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
  1421. package/dist/types/wallet/src/index.d.ts +3 -1
  1422. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -3
  1423. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuDialog.d.ts +21 -0
  1424. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountsSection.d.ts +2 -1
  1425. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -1
  1426. package/dist/types/wallet/src/react/components/AccountMenuButton/ExportKeysSection.d.ts +2 -1
  1427. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -1
  1428. package/dist/types/wallet/src/react/components/AccountMenuButton/SegmentedControl.d.ts +2 -2
  1429. package/dist/types/wallet/src/react/components/AccountMenuButton/UserAccountButton.d.ts +0 -7
  1430. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
  1431. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
  1432. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
  1433. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
  1434. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
  1435. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
  1436. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MoonIcon.d.ts +1 -5
  1437. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
  1438. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
  1439. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
  1440. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
  1441. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SunIcon.d.ts +1 -5
  1442. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
  1443. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/strokeIcon.d.ts +10 -0
  1444. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +1 -1
  1445. package/dist/types/wallet/src/react/components/QRCodeIcon.d.ts +1 -1
  1446. package/dist/types/wallet/src/react/components/theme/ThemeProvider.d.ts +0 -9
  1447. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -205
  1448. package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +2 -9
  1449. package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +3 -24
  1450. package/dist/types/wallet/src/react/index.d.ts +3 -1
  1451. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +108 -8
  1452. package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -47
  1453. package/dist/types/wallet/src/react/types.d.ts +2 -2
  1454. package/dist/types/wallet/src/utils/deviceDetection.d.ts +2 -58
  1455. package/dist/types/wallet/src/utils/intentDigest.d.ts +1 -6
  1456. package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
  1457. package/dist/types/wallet/src/utils/qrScanner.d.ts +4 -38
  1458. package/dist/workers/device-linking-key.worker.js +5638 -5817
  1459. package/dist/workers/ecdsa-derivation-client.worker.js +1663 -2128
  1460. package/dist/workers/ecdsa-online-client.worker.js +9 -117
  1461. package/dist/workers/ecdsa-presign-client.worker.js +102 -220
  1462. package/dist/workers/email-otp.worker.js +8966 -9300
  1463. package/dist/workers/evm-crypto.worker.js +8 -6
  1464. package/dist/workers/evm_crypto.wasm +0 -0
  1465. package/dist/workers/evm_crypto_bg.wasm +0 -0
  1466. package/dist/workers/near-signer.worker.js +4 -4
  1467. package/dist/workers/near_signer.wasm +0 -0
  1468. package/dist/workers/passkey-confirm.worker.js +6 -3
  1469. package/dist/workers/passkey-mpc-export.worker.js +95 -101
  1470. package/dist/workers/passkey-mpc-session.worker.js +205 -202
  1471. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  1472. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  1473. package/dist/workers/tempo-signer.worker.js +8 -6
  1474. package/dist/workers/tempo_signer.wasm +0 -0
  1475. package/dist/workers/tempo_signer_bg.wasm +0 -0
  1476. package/dist/workers/wallet-custody-ceremony.worker.js +230 -222
  1477. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  1478. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  1479. package/package.json +1 -1
  1480. package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  1481. package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -133
  1482. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  1483. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  1484. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  1485. package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  1486. package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -133
  1487. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  1488. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  1489. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  1490. package/dist/esm/react/core/types/rpc.js +0 -9
  1491. package/dist/esm/react/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
  1492. package/dist/esm/react/shared-ts/src/utils/paillier.js +0 -3
  1493. package/dist/esm/sdk/device-linking-DpVGjSeq.js +0 -221
  1494. package/dist/esm/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js +0 -5511
  1495. package/dist/esm/sdk/evmFamilyEcdsaIdentity-_kuKSW35.js +0 -1385
  1496. package/dist/esm/sdk/participants-Bcnsa_ip.js +0 -232
  1497. package/dist/esm/sdk/registrationIntent-DwAIMQYh.js +0 -1623
  1498. package/dist/esm/sdk/signer-worker-DYRteieu.js +0 -48
  1499. package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +0 -1
  1500. package/dist/esm/shared-ts/src/utils/paillier.js +0 -3
  1501. package/dist/public/sdk/device-linking-DpVGjSeq.js +0 -221
  1502. package/dist/public/sdk/ecdsaPresignLifecycle-CnSnzoRJ.js +0 -5511
  1503. package/dist/public/sdk/evmFamilyEcdsaIdentity-_kuKSW35.js +0 -1385
  1504. package/dist/public/sdk/participants-Bcnsa_ip.js +0 -232
  1505. package/dist/public/sdk/registrationIntent-DwAIMQYh.js +0 -1623
  1506. package/dist/public/sdk/signer-worker-DYRteieu.js +0 -48
  1507. package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +0 -74
  1508. package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +0 -34
  1509. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +0 -62
  1510. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +0 -2
  1511. package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +0 -11
  1512. package/dist/types/shared-ts/src/utils/bigint.d.ts +0 -3
  1513. package/dist/types/shared-ts/src/utils/paillier.d.ts +0 -37
  1514. package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +0 -12
  1515. package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +0 -2
  1516. package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +0 -37
  1517. package/dist/types/wallet/src/SeamsWeb/operations/devices/qrLinkSession.d.ts +0 -7
  1518. package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdWarmSessionDefaults.d.ts +0 -11
  1519. package/dist/types/wallet/src/SeamsWeb/walletIframe/SeamsWebIframe.d.ts +0 -113
  1520. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/env.d.ts +0 -7
  1521. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/index.d.ts +0 -12
  1522. package/dist/types/wallet/src/SeamsWeb/walletIframe/index.d.ts +0 -21
  1523. package/dist/types/wallet/src/core/platform/webCryptoHkdf.d.ts +0 -7
  1524. package/dist/types/wallet/src/core/rpcClients/relayer/routerAbPublicKeyset.d.ts +0 -5
  1525. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.typecheck.d.ts +0 -2
  1526. package/dist/types/wallet/src/core/rpcClients/relayer/walletCredentialActivity.d.ts +0 -48
  1527. package/dist/types/wallet/src/core/signingEngine/flows/recovery/recoveryStorePorts.d.ts +0 -7
  1528. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -44
  1529. package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareEnvelopeAad.d.ts +0 -14
  1530. package/dist/types/wallet/src/core/signingEngine/session/identity/ecdsaDerivationSigningMaterialHandle.d.ts +0 -19
  1531. package/dist/types/wallet/src/core/signingEngine/session/identity/ecdsaDerivationSigningMaterialHandle.typecheck.d.ts +0 -2
  1532. package/dist/types/wallet/src/core/signingEngine/session/lanes/laneRecords.d.ts +0 -3
  1533. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/holderDeliveryCoordinator.d.ts +0 -29
  1534. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/ports.d.ts +0 -53
  1535. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/sourceLaneOperationCoordinator.d.ts +0 -24
  1536. package/dist/types/wallet/src/core/signingEngine/session/operationState/stepUpFreshness.d.ts +0 -135
  1537. package/dist/types/wallet/src/core/signingEngine/session/operationState/stepUpFreshness.typecheck.d.ts +0 -2
  1538. package/dist/types/wallet/src/core/signingEngine/session/passkey/envelopes/index.d.ts +0 -19
  1539. package/dist/types/wallet/src/core/signingEngine/session/passkey/runtime.d.ts +0 -23
  1540. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/walletAuthPolicyError.d.ts +0 -17
  1541. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519WrapKeySalt.d.ts +0 -2
  1542. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
  1543. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
  1544. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
  1545. package/dist/types/wallet/src/core/signingEngine/useCases/lifecycle.d.ts +0 -758
  1546. package/dist/types/wallet/src/core/signingEngine/useCases/lifecycle.typecheck.d.ts +0 -2
  1547. package/dist/types/wallet/src/core/signingEngine/useCases/registerWallet.d.ts +0 -71
  1548. package/dist/types/wallet/src/core/signingEngine/useCases/restorePersistedSessions.d.ts +0 -51
  1549. package/dist/types/wallet/src/core/signingEngine/useCases/signEvmFamily.d.ts +0 -47
  1550. package/dist/types/wallet/src/core/signingEngine/useCases/signNear.d.ts +0 -60
  1551. package/dist/types/wallet/src/core/signingEngine/useCases/unlockWallet.d.ts +0 -69
  1552. package/dist/types/wallet/src/core/signingEngine/walletCustody/coldUnlock.d.ts +0 -57
  1553. package/dist/types/wallet/src/core/signingEngine/workerManager/laneWorkerChannels.d.ts +0 -81
  1554. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/laneHolderWorkerBackend.d.ts +0 -54
  1555. package/dist/types/wallet/src/react/components/AccountMenuButton/HaloBorder/index.d.ts +0 -33
  1556. package/dist/types/wallet/src/react/components/AccountMenuButton/PasskeyHaloLoading.d.ts +0 -10
  1557. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/EclipseIcon.d.ts +0 -8
  1558. package/dist/types/wallet/src/react/components/ArrowRightAnim.d.ts +0 -19
  1559. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/index.d.ts +0 -5
  1560. package/dist/types/wallet/src/theme/base-styles.runtime.d.ts +0 -15
  1561. /package/dist/esm/sdk/{base-CMsoJcVv.js → base-D1B5mGin.js} +0 -0
  1562. /package/dist/esm/sdk/{bytes-CwytAKz8.js → bytes-qKxKn4gg.js} +0 -0
  1563. /package/dist/esm/sdk/{csp-stylesheet-DLj_a6t_.js → csp-stylesheet-btENhsNp.js} +0 -0
  1564. /package/dist/esm/sdk/{events-Z_Rmy0Hn.js → events-DYoBL2HO.js} +0 -0
  1565. /package/dist/esm/sdk/{executeWorkerOperation-Bn8GEuT_.js → executeWorkerOperation-Cl9whMK7.js} +0 -0
  1566. /package/dist/esm/sdk/{jsonRpc-MUsR5-C6.js → jsonRpc-VVkaQkFD.js} +0 -0
  1567. /package/dist/esm/sdk/{keccak-DY5wDsym.js → keccak-DUL3d8SF.js} +0 -0
  1568. /package/dist/esm/sdk/{nearRpcResults-DwvW43FL.js → nearRpcResults-DoUgDATm.js} +0 -0
  1569. /package/dist/esm/sdk/{prfCache-CgAr-VEU.js → prfCache-wqQSjYLn.js} +0 -0
  1570. /package/dist/esm/sdk/{profileAccountProjection-C9rVhbeJ.js → profileAccountProjection-uZVJuBvS.js} +0 -0
  1571. /package/dist/esm/sdk/{promptText-BEgOkGxB.js → promptText-CuRa_ivd.js} +0 -0
  1572. /package/dist/esm/sdk/{shared-Qy1DGMqH.js → shared-DkbeLCI3.js} +0 -0
  1573. /package/dist/esm/sdk/{signerSlot-DbNAs-kc.js → signerSlot-_ovonwVX.js} +0 -0
  1574. /package/dist/esm/sdk/{signingSessionSeal-CdtgXHSL.js → signingSessionSeal-Cu-GHm6y.js} +0 -0
  1575. /package/dist/esm/sdk/{surface-measurement-reporter-D7BNehf4.js → surface-measurement-reporter-CSTyRsMa.js} +0 -0
  1576. /package/dist/esm/sdk/{walletIframeIdentity-UmQTJsHc.js → walletIframeIdentity-DB6Z2EC9.js} +0 -0
  1577. /package/dist/esm/sdk/{webauthnPromptCoordinator-CLeba8ru.js → webauthnPromptCoordinator-L96oVvLz.js} +0 -0
  1578. /package/dist/public/sdk/{base-CMsoJcVv.js → base-D1B5mGin.js} +0 -0
  1579. /package/dist/public/sdk/{bytes-CwytAKz8.js → bytes-qKxKn4gg.js} +0 -0
  1580. /package/dist/public/sdk/{csp-stylesheet-DLj_a6t_.js → csp-stylesheet-btENhsNp.js} +0 -0
  1581. /package/dist/public/sdk/{events-Z_Rmy0Hn.js → events-DYoBL2HO.js} +0 -0
  1582. /package/dist/public/sdk/{executeWorkerOperation-Bn8GEuT_.js → executeWorkerOperation-Cl9whMK7.js} +0 -0
  1583. /package/dist/public/sdk/{jsonRpc-MUsR5-C6.js → jsonRpc-VVkaQkFD.js} +0 -0
  1584. /package/dist/public/sdk/{keccak-DY5wDsym.js → keccak-DUL3d8SF.js} +0 -0
  1585. /package/dist/public/sdk/{nearRpcResults-DwvW43FL.js → nearRpcResults-DoUgDATm.js} +0 -0
  1586. /package/dist/public/sdk/{prfCache-CgAr-VEU.js → prfCache-wqQSjYLn.js} +0 -0
  1587. /package/dist/public/sdk/{profileAccountProjection-C9rVhbeJ.js → profileAccountProjection-uZVJuBvS.js} +0 -0
  1588. /package/dist/public/sdk/{promptText-BEgOkGxB.js → promptText-CuRa_ivd.js} +0 -0
  1589. /package/dist/public/sdk/{shared-Qy1DGMqH.js → shared-DkbeLCI3.js} +0 -0
  1590. /package/dist/public/sdk/{signerSlot-DbNAs-kc.js → signerSlot-_ovonwVX.js} +0 -0
  1591. /package/dist/public/sdk/{signingSessionSeal-CdtgXHSL.js → signingSessionSeal-Cu-GHm6y.js} +0 -0
  1592. /package/dist/public/sdk/{surface-measurement-reporter-D7BNehf4.js → surface-measurement-reporter-CSTyRsMa.js} +0 -0
  1593. /package/dist/public/sdk/{walletIframeIdentity-UmQTJsHc.js → walletIframeIdentity-DB6Z2EC9.js} +0 -0
  1594. /package/dist/public/sdk/{webauthnPromptCoordinator-CLeba8ru.js → webauthnPromptCoordinator-L96oVvLz.js} +0 -0
@@ -1,75 +1,79 @@
1
1
  import { r as __toESM } from "./chunk-BtrIJ4_z.js";
2
- import { r as reviewAdmissionForBinding } from "./transactionReviewAdmission-Cv9kTr4c.js";
3
- import { a as setEmbeddedBase, n as getEmbeddedBase, r as onEmbeddedBaseChange, t as getEmbeddedAssetVersion } from "./base-CMsoJcVv.js";
4
- import { A as parseSigningLaneId, C as parseMpcLifecycleBindingRef, F as parseWalletAuthMethodId, H as parseWebAuthnRpId, L as parseWalletAuthorityId, M as parseThresholdEd25519SessionId, N as parseThresholdSessionId, O as parsePasskeyEnvelopeId, P as parseVerifiedEmailAddress, R as parseWalletId, T as parseMpcMaterialActivationRef, V as parseWebAuthnCredentialIdB64u, b as parseLinkedDeviceEnrollmentId, c as normalizeTrimmedString, d as buildMpcMaterialActivationRef, f as hasWhitespaceOrControlCharacters, j as parseThresholdEcdsaSessionId, l as stripTrailingSlashes, p as mpcMaterialActivationRefsEqual, t as joinNormalizedUrl, v as parseLaneShareEpoch, w as parseMpcMaterialActivationId, x as parseLinkedDeviceId, y as parseLinkDeviceSessionId, z as parseWalletKeyId } from "./normalize-BephcEIF.js";
5
- import { t as walletIframeRequestIdFromBoundary } from "./walletIframeIdentity-UmQTJsHc.js";
6
- import { C as base58Encode, f as toOptionalTrimmedNonEmptyString, g as getNearShortErrorMessage, h as ensureEd25519Prefix, i as isBoolean, l as isString, m as deriveImplicitNearAccountIdFromEd25519PublicKey, o as isObject, s as isPlainObject, u as requireTrimmedString, y as parseNamedNearAccountId } from "./validation-BphUDXs7.js";
7
- import { b as parsePMRedeemHostedWalletSeamsSessionPayload } from "./messages-B3UbNZYc.js";
2
+ import { B as normalizeTrimmedString, C as parseThresholdSessionId, D as parseWalletAuthorityId, M as parseWebAuthnRpId, N as joinNormalizedUrl, O as parseWalletId, S as parseThresholdEd25519SessionId, T as parseWalletAuthMethodId, V as stripTrailingSlashes, b as parseSigningLaneId, c as parseLaneShareEpoch, d as parseLinkedDeviceId, h as parseMpcMaterialActivationRef, j as parseWebAuthnCredentialIdB64u, k as parseWalletKeyId, l as parseLinkDeviceSessionId, m as parseMpcMaterialActivationId, n as hasWhitespaceOrControlCharacters, p as parseMpcLifecycleBindingRef, r as mpcMaterialActivationRefsEqual, t as buildMpcMaterialActivationRef, u as parseLinkedDeviceEnrollmentId, v as parsePasskeyEnvelopeId, w as parseVerifiedEmailAddress, x as parseThresholdEcdsaSessionId } from "./domainIds-lcrFg6Sa.js";
3
+ import { C as deriveImplicitNearAccountIdFromEd25519PublicKey, M as base58Encode, O as parseNamedNearAccountId, T as getNearShortErrorMessage, _ as requireRecord$1, c as isBoolean, d as isPlainObject, h as requireCanonicalString, n as asRecordOrArray, p as isString, u as isObject, w as ensureEd25519Prefix, x as toOptionalTrimmedNonEmptyString, y as requireTrimmedString } from "./validation-gat4LEKm.js";
4
+ import { r as reviewAdmissionForBinding } from "./transactionReviewAdmission-BCPvl8OZ.js";
5
+ import { a as setEmbeddedBase, n as getEmbeddedBase, r as onEmbeddedBaseChange, t as getEmbeddedAssetVersion } from "./base-D1B5mGin.js";
6
+ import { t as walletIframeRequestIdFromBoundary } from "./walletIframeIdentity-DB6Z2EC9.js";
7
+ import { b as parsePMRedeemHostedWalletSeamsSessionPayload } from "./messages-C7Dbx9iN.js";
8
8
  import { i as isUserCancellationError, n as getUserFriendlyErrorMessage, o as toError, t as errorMessage } from "./errors-93h9uAW9.js";
9
9
  import { i as base64UrlEncode, n as base64Encode, r as base64UrlDecode } from "./base64-Clm8C-e9.js";
10
10
  import { n as secureRandomBase64Url, r as secureRandomId, t as secureRandomBase36 } from "./secureRandomId-BORsmdS4.js";
11
- import { $ as unlockEmailOtpEd25519YaoCapability, A as requestEmailOtpEnrollmentChallenge, At as listExactSealedSessionsForWallet, B as scheduleEcdsaSessionPresignaturePrefill, Bt as resolveExactWalletSessionOperationCredential, C as preparePasskeyEd25519YaoLocalMaterialRehydrationV1, Ct as resolveExactEd25519SealedSessionRuntimeForLane, D as persistPasskeyEd25519YaoSessionForRefresh, Dt as buildCurrentSealedSessionRecord, E as buildPasskeyEd25519RestoreMetadata, Et as acquireSigningSessionRestoreLease, F as buildRecoveredCustodyEnvelopeRecord, Ft as updateExactSealedSessionPolicy, G as requirePasskeyPrfFirstB64u, Gt as ROUTER_AB_ED25519_YAO_ACTIVE_CLIENT_KIND_V1, H as resumePendingNearRegistrations, Ht as openWalletCustodyEd25519ActiveClientV1, I as resolveManagedRuntimeScopeBootstrap, It as writeExactSealedSession, J as assertEd25519YaoWarmRecoveryDescriptorStableMaterialContinuity, Jt as parseEd25519YaoRecoveryCapabilityV1, K as verifyLinkedDevicePasskeyWalletSession, Kt as RouterAbEd25519YaoClientV1, L as awaitNearProvisioningInFlight, Lt as createDeleteDurableSealedSessionCommand, M as configurePasskeyCustodySessionCachePersistence, Mt as readExactSealedSession, N as readPasskeyCustodySessionEnvelope, Nt as releaseSigningSessionRestoreLease, O as collectEmailOtpRegistrationAuthority, Ot as deleteDurableSealedSessionRecord, P as rememberPasskeyCustodySessionEnvelope, Pt as updateExactEd25519SealedSessionPolicy, Q as unlockEmailOtpAuthorityWallet, R as readNearProvisioningState, Rt as buildRouterAbEd25519SigningWalletSession, S as persistPasskeyEd25519YaoSignerMaterialV1, St as parseExactEd25519SealedSessionRuntime, T as buildRestorableMpcMaterialRefInternal, Tt as resolveExactEd25519SealedSessionRuntimeForWalletSubject, U as passkeyCredentialIdB64uFromAuthentication, Ut as walletCustodyActivationFactsFromActiveClientMetadataV1, V as resumePendingEcdsaRegistrationFromStoredCommit, Vt as openOrRejoinWalletCustodyEd25519V1, W as passkeyPrfFirstB64uFromCredential, Wt as walletCustodyCacheEnvelopeFromRecordV1, X as parsePasskeyEd25519YaoSyncResponseV1, Xt as listThresholdEcdsaProvisionTargets, Y as buildRecoveredWalletSessionState, Yt as listConfiguredThresholdEcdsaPublicationTargets, Z as passkeyEd25519YaoLaneReferenceFromRecovery, Zt as isRegistrationBenchmarkDiagnosticsEnabled, _ as walletCustodyCeremonyTransportFromWorkerContextV1, _t as nearEd25519YaoOperationMaterialFacts, a as registerWallet, at as joinNearEd25519CustodyV1, b as ed25519YaoLocalMaterialIdentityFromWalletSession, bt as ed25519AuthorizationIdentityMatchesRuntime, c as exactWalletSessionAuthorityIdentity, ct as rejoinEvmFamilyCustodyV1, d as validateExactWalletSessionAuthorization, dt as createRelayerExactWalletSessionStatusPort, et as unlockEmailOtpWallet, f as destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, ft as sameRuntimePolicyScope$1, g as setUnlockedCustodyEnvelopeUpgradeSinkV1, gt as buildPasskeyRouterAbEd25519WalletSessionState, h as readUnlockedWalletEd25519ExportRootCapabilityV1, ht as buildEmailOtpRouterAbEd25519WalletSessionState, it as joinEvmFamilyCustodyV1, j as resolveGoogleEmailOtpProvider, jt as readExactEd25519SealedSession, k as requestEmailOtpChallenge, kt as listEcdsaSealedSessionsForWallet, l as persistExactWalletSessionAuthorizationFromEcdsaBootstrap, lt as rejoinNearEd25519CustodyV1, m as establishUnlockedWalletEd25519ExportRootCapabilityV1, mt as WALLET_IFRAME_TRANSPORT_TIMING_LABEL, nt as establishEvmFamilyCustodyV1, ot as recoverEvmFamilyCustodyV1, p as dropUnlockedWalletEd25519ExportRootCapabilityReferenceV1, pt as joinCustodyWireFromEnvelopeRecord, q as verifyPasskeyWalletUnlock, qt as RouterAbEd25519YaoHttpActivationTransportV1, rt as establishNearEd25519CustodyV1, st as recoverNearEd25519CustodyV1, t as addWalletSigner, tt as unlockEmailOtpWalletCapabilities, u as validateExactWalletSessionAuthorityIdentity, ut as WalletSessionStatusReadScope, v as requestWalletCustodyCeremonyOperation, vt as rebindRouterAbEd25519WalletSessionStateFromExactRuntime, w as readPasskeyEd25519YaoLocalMaterialLocatorV1, wt as resolveExactEd25519SealedSessionRuntimeForWallet, x as hydratePasskeyEd25519YaoLocalMaterialV1, xt as ed25519SealedRuntimeAuthorityRef, y as walletCustodyCeremonyStepRunner, yt as resolveActiveAuthorizedRouterAbEd25519WalletSessionState, z as subscribeToNearProvisioning, zt as requiredSigningSubjectForExactSigningLane } from "./registration-PIBMSsQR.js";
12
- import { a as computeLinkedDeviceTargetPreparationDigestV1, c as assertNeverLinkSessionStateV1, i as computeLinkedDevicePublicKeyDigestV1, l as activeWalletSessionV1RecordsEqual, n as LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, o as computeWalletSessionInstallationReceiptDigestB64u, r as LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, s as computeWalletSessionOperationCredentialDigestB64u } from "./device-linking-DpVGjSeq.js";
13
- import { A as alphabetizeStringify, D as sameWalletAuthMethodRecordV2, I as parseDigestB64u, J as resolvePrimaryNearRpcUrl, M as sha256BytesUtf8, N as sha256HexUtf8, O as sponsoredNamedNearAccountProvisioning, R as chainFamilyFromNetwork, S as registrationNearEd25519BranchKey, a as computeAddAuthMethodIntentDigestB64u, b as parseWalletAuthMethodRecordV2, c as computeWalletAuthMethodRevokeOperationFingerprintV1, i as buildWalletAuthMethodRecordV2, j as sha256Bytes, k as walletIdFromString, m as nearEd25519SigningKeyIdFromString, p as implicitNearAccountProvisioning, q as resolvePrimaryExplorerUrl, t as NEAR_ED25519_YAO_KEY_VERSION_V1, u as createServerAllocatedWalletId, y as parseNearEd25519SigningKeyId, z as cloneChainConfig } from "./registrationIntent-DwAIMQYh.js";
14
- import { a as thresholdEcdsaChainTargetFromRequest, c as toWalletId, i as thresholdEcdsaChainTargetFromConfig, n as nearAccountRefFromAccountId, o as thresholdEcdsaChainTargetKey, s as thresholdEcdsaChainTargetsEqual, t as configuredThresholdEcdsaChainTargets, u as walletSessionRefFromSession } from "./ecdsaChainTarget-BOTPGIU_.js";
15
- import { a as WALLET_AUTH_METHODS, d as WALLET_EMAIL_OTP_REGISTRATION_OPERATION, f as WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, i as SIGNER_SOURCES, l as WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, n as SIGNER_AUTH_METHODS, p as WALLET_EMAIL_OTP_UNLOCK_OPERATION, r as SIGNER_KINDS, s as EMAIL_OTP_CHANNEL, u as WALLET_EMAIL_OTP_EXPORT_OPERATION } from "./signerDomain-DDLiwuYS.js";
16
- import { a as toIndexedDbChainTargetKey, t as normalizeIndexedDbAccountAddress } from "./normalization-oJyXl3Vn.js";
17
- import { c as zeroizeIssuedWalletRecoveryCodes, d as deriveWalletRecoveryKeyLifecycleId, f as parseRecoveryCodeReservationId, i as walletRecoverySetRotationWireFromWorkerResultV1, o as deriveRecoveryCodeLocatorV1FromBytes, r as walletRecoveryEcdsaPossessionChallengeDigestB64uV1, s as issueWalletRecoveryCodes, t as parseWalletRecoveryEcdsaPossessionChallengeV1 } from "./wallet-recovery-CKqoHbxT.js";
18
- import { _ as parseUnixMs, c as deriveEvmFamilySigningKeySlotId, d as parseEd25519PublicKeyB64u, f as parseEnvelopeCiphertextB64u, g as parseSecp256k1CompressedPublicKeyB64u, h as parseKeyCreationSignerSlot, i as parseThresholdEd25519ParticipantsV1, l as requireEvmFamilySigningKeySlotId, m as parseEnvelopeRevision, n as buildThresholdEd25519Participants2pV1, o as normalizeRuntimePolicyScope, p as parseEnvelopeNonceB64u, r as normalizeThresholdEd25519ParticipantIds, s as signingRootScopeFromRuntimePolicyScope, t as THRESHOLD_ED25519_2P_PARTICIPANT_IDS, u as parseDigestField, v as rejectUnknownFields, y as requireRecord$4 } from "./participants-Bcnsa_ip.js";
19
- import { A as storeWalletMixedRegistrationData$1, C as storeWalletEcdsaSignerRecords$1, D as storeWalletEmailOtpEcdsaSignerRecords$1, E as storeWalletEmailOtpEcdsaRegistrationData$1, F as getLastSelectedNearAccount, I as getNearAccountProjection, M as WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND, O as storeWalletEmailOtpEd25519RegistrationData$1, S as storeWalletEcdsaRecoverySignerRecords$1, T as storeWalletEd25519RegistrationData$1, _ as rollbackWalletEd25519SignerRegistration$1, a as getLastUser$1, b as storeAuthenticator$1, c as hasPasskeyCredential$1, g as rollbackUserRegistration$1, i as getAllUsers$1, k as storeWalletEmailOtpMixedRegistrationData$1, l as nearAuthenticatorsByAccount$1, n as finalizeWalletEcdsaRegistration$1, o as getUserBySignerSlot$1, r as finalizeWalletEd25519SignerRegistration$1, s as getWalletNearProvisioningState$1, t as activateAuthenticatedWalletState$1, v as setLastUser$1, w as storeWalletEd25519RecoveryRegistrationData$1, x as storeUserData$1, y as setWalletNearProvisioningState$1 } from "./accountLifecycle-Ddavc_FC.js";
20
- import { t as toAccountId } from "./accountIds-Ck4GAQfm.js";
21
- import { C as buildFullOwnerDelegatedWalletAuthorityV1, S as parseExactAdministeredSignerManifestV1, T as hasDelegatedWalletPermissionV1, a as clampThresholdSessionPolicy, b as replaceActiveWalletAuthorityEd25519MaterialActivationV1, c as resolveWalletUnlockSessionUsesFromRequestedUses, d as computeWalletSignerActivationSetDigestB64u, f as encodeWalletSignerActivationSetV1, h as isActiveRecoveredWalletAuthorityV1, i as buildEd25519SessionPolicy, l as coerceThemeMode$1, o as normalizeThresholdRuntimePolicyScope, r as DEFAULT_UNLOCK_REMAINING_USES, t as DEFAULT_THRESHOLD_SESSION_POLICY, u as computeWalletAuthorityDigestB64u, y as parseWalletSignerActivationSetV1 } from "./sessionPolicy-B4FsPuk2.js";
22
- import { $ as parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1, $t as deriveRouterAbEd25519YaoApplicationBindingDigestV1, A as parseLinkedDeviceRevokeResultV1, An as LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1, At as buildEmailOtpWalletAuthAuthority, B as parseCommittedAuthorityPackagesV1, Bt as parseWalletAuthAuthorityRef, C as parseLinkedDeviceEmailOtpVerificationGrantV1, Cn as routerAbMpcMaterialActivationRefToWire, D as parseLinkedDeviceOwnerAuthorizationRequestV1, Dn as parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, Dt as sameRouterAbEcdsaRegistrationActivationReceiptV1, E as parseLinkedDeviceListResultV1, En as assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1, Et as sameRouterAbEcdsaDerivationPublicIdentityV1, F as parseLocalAuthorityActivationFinalAckV1, Fn as serializeLinkedDeviceEd25519ExportRootTransferBindingV1, Ft as isEmailOtpWalletAuthAuthority, G as ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH, H as parseLinkedDeviceEd25519SourcePreservingReservationV1, Ht as walletAuthAuthorityRef, I as parseLocalAuthorityInstallationReceiptV1, It as isPasskeyWalletAuthAuthority, Kt as ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1, L as parseQrLinkedDeviceSessionPayloadV5, Lt as parseEmailOtpWalletAuthAuthority, M as parseLinkedDeviceTargetCredentialRegistrationResultV1, Mn as parseLinkedDeviceEd25519ExportRootPackageV1, N as parseLinkedDeviceTargetPreparationRequestV1, Nn as parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u, O as parseLinkedDeviceOwnerAuthorizationSourceV1, On as parseLinkedDeviceWalletSessionCredentialDeliveryV1, P as parseLinkedDeviceTargetPreparationV1, Pn as parseLinkedDeviceEd25519ExportRootRecipientV1, Qt as ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1, R as parseWalletSessionOperationCredentialV1, S as parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, Sn as routerAbMpcMaterialActivationRefFromWire, T as parseLinkedDeviceListRequestV1, Tt as sameRouterAbEcdsaDerivationPublicCapabilityV1, U as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, Ut as ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, Vt as walletAuthAuthoritiesMatch, W as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, Yt as ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1, Zt as ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1, _ as parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1, a as buildLinkedDeviceSessionCancelClaimedRequestV1, at as parseRouterAbEcdsaExplicitExportForwardedResponseV1, b as parseLinkedDeviceEmailOtpChallengeStartRequestV1, c as buildLinkedDeviceTargetCredentialRegistrationV1, cn as parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1, ct as parseRouterAbEcdsaOperationStepUpPreparationV1, dn as parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, f as parseLinkDevicePublicKeyB64u, ft as parseRouterAbEcdsaRegistrationActivationReceiptV1, g as parseLinkedDeviceApprovalResultV1, gn as parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1, h as parseLinkedDeviceApprovalDeliveryV1, i as buildLinkedDeviceApprovalV1, it as parseRouterAbEcdsaDerivationPublicCapabilityV1, j as parseLinkedDeviceSessionClaimV1, jn as buildLinkedDeviceEd25519ExportRootTransferBindingV1, jt as buildPasskeyWalletAuthAuthority, k as parseLinkedDeviceRevokeRequestV1, kt as sameRouterAbServerIdentityV1, l as buildQrLinkedDeviceSessionPayloadV5, ln as parseRouterAbEd25519YaoRecoveryActivationReceiptV1, m as parseLinkSessionTransportEventV1, mn as parseRouterAbEd25519YaoRegistrationActivationResultV1, o as buildLinkedDeviceSessionCancelUnclaimedRequestV1, p as parseLinkSessionProjectionV1, qt as ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1, r as cloneAuthenticatorOptions, rt as parseRouterAbEcdsaDerivationNormalSigningStateV1, s as buildLinkedDeviceSessionClaimRequestV1, sn as parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1, t as MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS, u as parseActivateInstalledAuthorityResultV1, un as parseRouterAbEd25519YaoRecoveryActivationResultV1, ut as parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1, v as parseLinkedDeviceEmailOtpChallengeResendRequestV1, vt as routerAbEcdsaDerivationActiveStateId, w as parseLinkedDeviceEmailOtpVerificationResultV1, wn as sameRouterAbMpcMaterialActivationRef, wt as sameRouterAbEcdsaDerivationNormalSigningStateV1, x as parseLinkedDeviceEmailOtpChallengeVerifyRequestV1, y as parseLinkedDeviceEmailOtpChallengeResultV1, z as serializeQrLinkedDeviceSessionPayloadV5 } from "./ecdsaPresignLifecycle-CnSnzoRJ.js";
23
- import { a as buildNearEd25519MpcOperationRef, d as parseMpcWalletSigningQuotaId, g as parseWalletSessionMintId, h as parseWalletSessionId, i as buildEvmEcdsaMpcOperationRef, l as parseDeviceId, m as parseWalletSessionAuthorizationId, n as EVM_ECDSA_MPC_OPERATION_KINDS, o as buildVaultOperationRef, r as NEAR_ED25519_MPC_OPERATION_KINDS, t as CAPABILITY_KINDS } from "./capabilityKinds-jwCEaqBU.js";
24
- import { $ as buildEmailOtpWalletAuthMethodBinding, A as signingLaneAuthBindingKey, B as exactSigningLaneIdentityMatches, E as SigningSessionIds, F as exactEd25519ExportMaterialIdentity, G as parseExactEcdsaSigningLaneIdentity, I as exactEd25519SigningLaneIdentity, J as parseOwnerLaneParticipantContinuityV1, K as parseExactEd25519ExportMaterialIdentity, M as buildEvmFamilyEcdsaSignerBinding, N as exactEcdsaSigningLaneIdentity, St as parseSdkEcdsaDerivationThresholdKeyId, T as SigningOperationIntent, U as nearEd25519SignerBindingFromBoundaryFields, V as exactSigningLaneWalletId, W as nearProtocolProjectionFromExactLane, X as parseLaneParticipantBindingDigestB64u, Y as parseLaneHolderParticipantRecordV1, Z as parseSigningWorkerParticipantRecordV1, _ as resolveThresholdSigningRootBindingFromRecord, a as buildEvmFamilyEcdsaWalletKey, bt as parseSdkEcdsaDerivationSigningRootId, c as buildResolvedEvmFamilyEcdsaKey, d as deriveEvmFamilyKeyFingerprint, et as buildPasskeyAuthScope, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, i as buildEvmFamilyEcdsaSessionLanePolicy, it as parseRpId, j as signingLaneAuthMethod, m as evmFamilyEcdsaWalletKeyToIdentity, n as buildBaseEvmFamilyEcdsaKeyIdentity, nt as buildWalletIdentity, p as deriveEvmFamilySigningKeySlotId$1, r as buildEvmFamilyEcdsaRecoveredMaterialLanePolicy, rt as nearAccountBindingFromRaw, s as buildPasskeyEcdsaAuthBinding, t as assertMatchingVerifiedEcdsaPublicFacts, tt as buildPasskeyWalletAuthMethodBinding, v as resolveThresholdSigningRootBindingFromRuntimePolicyScope, vt as computeEcdsaDerivationRoleLocalRelayerKeyId, x as toRpId, xt as parseSdkEcdsaDerivationSigningRootVersion, y as toEvmFamilyEcdsaKeyHandle, z as exactSigningLaneIdentityKey } from "./evmFamilyEcdsaIdentity-_kuKSW35.js";
25
- import { a as buildEmailOtpEnvelopeFactor, c as buildPasskeyEnvelopeFactor, d as parsePasskeyCustodyEnvelopeRecord, h as isWalletCustodySeedBinding, i as buildActiveEnvelopeLifecycle, l as custodyEnvelopeBindingJsonV1, m as buildEd25519YaoClientRootBinding, o as buildMethodBoundEnvelopeOwnership, s as buildPasskeyCustodyEnvelopeRecord } from "./passkey-custody-BaHyYMhj.js";
26
- import { a as parseEcdsaRelayerKeyId, c as parseEcdsaRoleLocalMaterialHandle, d as parseEcdsaThresholdKeyId, f as parseSigningSessionSealKeyVersion, i as parseEcdsaKeyHandle, l as parseEcdsaRoleLocalPersistedMaterialRef, o as parseEcdsaRoleLocalBindingDigest, r as parseEcdsaClientVerifyingShareB64u, s as parseEcdsaRoleLocalDurableMaterialRef } from "./keyMaterialBrands-BbjCfzXv.js";
27
- import { a as SIGNING_SESSION_EXPIRY_DETECTION_SOURCES, d as createLinkDeviceFlowEvent, f as createNearProvisioningStateChangedEvent, g as createUnlockFlowEvent, h as createSigningSessionExpiredEvent, i as RegistrationEventPhase, l as createAccountSyncFlowEvent, m as createSigningFlowEvent, n as KeyExportEventPhase, o as SigningEventPhase, p as createRegistrationFlowEvent, r as LinkDeviceEventPhase, s as UnlockEventPhase, t as AccountSyncEventPhase, u as createKeyExportFlowEvent } from "./sdkSentEvents-5Pi-hjHB.js";
28
- import { D as computeWalletEcdsaKeyFactsInventoryChallengeDigestB64u, O as openWalletAuthorityLinkedSignerMaterialV1, _ as WalletSessionAuthorizationUpgradeRequiredError, c as configureIndexedDB, d as publishEd25519YaoPublicCapabilityReferenceAndLane, f as readEmailOtpProviderSubjectForWalletV1, h as importWalletCustodyEcdsaContinuity, i as getAccountKeyMaterial, k as parseWalletAuthorityLinkedSignerMaterialRecordV1, l as createIndexedDBNonceLaneCoordinationStore, m as copyWalletCustodyEcdsaContinuityToAuthMethod, n as loadWalletCustodyEd25519MaterialV1, o as storeAccountKeyMaterial, p as IndexedDbEcdsaCapabilityManifestStore, r as persistWalletCustodyEd25519MaterialV1, s as IndexedDBManager, t as deleteWalletCustodyEd25519MaterialV1, u as IndexedDbEd25519YaoPublicCapabilityReferenceStore, v as walletSessionAuthorizations } from "./ed25519SeedMaterial-Cghz8-XB.js";
29
- import { t as parseSignerSlot } from "./signerSlot-DbNAs-kc.js";
30
- import "./keccak-DY5wDsym.js";
31
- import { a as SIGNING_SESSION_SEAL_ALG, l as parseRouterAbEd25519NormalSigningState, n as PASSKEY_PRF_SECOND_SALT_V1, o as SIGNING_SESSION_SEAL_GROUP_ID, r as ROUTER_AB_ED25519_NORMAL_SIGNING_STATE_KIND, t as PASSKEY_PRF_FIRST_SALT_V1 } from "./signingSessionSeal-CdtgXHSL.js";
32
- import { t as demoEmailOtpCodeFromDelivery } from "./challengeDelivery-BjLKoou3.js";
33
- import { _ as parseEmailOtpEcdsaExportWorkerIssuedSessionHandle, a as createSigningPlannerDecisionTraceEvent, c as nearImplicitAccountFundingPort, d as mintEd25519WalletSession, f as nearOperationStepUpPreparationPort, g as buildNearMessageDisplayModel, h as buildNearDisplayModel, i as withThresholdEd25519CommitQueue, l as buildThresholdEd25519WebAuthnPrfSecretSource, m as getLastLoggedInSignerSlot, o as planSigningSession, p as deriveThresholdEd25519ClientVerifyingShareWasm, r as resolveThresholdEd25519CommitQueueKey, s as parseAndValidateRegistrationCredentialConfirmationPayload, t as signNear, u as localPrfFirstForEd25519WalletSessionMintAuthorization, v as parseEmailOtpWorkerIssuedSessionHandle } from "./signNear-DVD9-IO5.js";
34
- import { t as executeWorkerOperation } from "./executeWorkerOperation-Bn8GEuT_.js";
35
- import { A as thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, B as SignerWorkerOperationError, C as prepareLinkedDeviceEcdsaSourceContributionWasm, D as storeLinkedDeviceEcdsaHolderMaterialWasm, E as storeEcdsaRoleLocalSigningMaterialWasm, F as thresholdEcdsaRoleLocalPresignSessionStepWasm, H as getSignerWorkerOperationCoreCode, I as thresholdEcdsaRoleLocalReservePresignatureWasm, L as verifyRouterAbEcdsaRegistrationClientProofsWasm, M as thresholdEcdsaRoleLocalListAvailablePresignaturesWasm, N as thresholdEcdsaRoleLocalPresignSessionAbortWasm, O as thresholdEcdsaRoleLocalAdmitPresignatureWasm, P as thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, R as EcdsaDerivationClientCustomRequestType, S as prepareEcdsaClientBootstrapCommandWasm, T as signWalletRecoveryEcdsaMaterialPossessionProofWasm, U as getSignerWorkerOperationErrorCode, V as WorkerControlMessage, _ as finalizeEcdsaHolderOrdinaryExportWasm, a as resolveRouterAbEcdsaDerivationPresignaturePoolPolicy, b as openEcdsaRoleLocalSigningMaterialWasm, c as clearLinkedDeviceEcdsaHolderMaterialsWasm, d as createEcdsaHolderOrdinaryExportRequestWasm, f as createRouterAbEcdsaPostRegistrationCeremonyWasm, g as finalizeEcdsaClientBootstrapCommandWasm, h as destroyLinkedDeviceEcdsaHolderMaterialsWasm, i as clearRouterAbEcdsaDerivationClientPresignaturesForWallet, j as thresholdEcdsaRoleLocalDestroyPresignatureWasm, k as thresholdEcdsaRoleLocalCommitPresignatureWasm, l as closeRouterAbEcdsaPostRegistrationCeremonyWasm, m as destroyLinkedDeviceEcdsaHolderMaterialWasm, o as scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill, p as createRouterAbEcdsaRegistrationCeremonyWasm, r as clearAllRouterAbEcdsaDerivationClientPresignatures, s as waitForRouterAbEcdsaDerivationClientPresignaturePoolReady, u as closeRouterAbEcdsaRegistrationCeremonyWasm, v as finalizeRouterAbEcdsaExplicitExportWasm, w as reconcileCanonicalEcdsaActivationWasm, x as persistInitialCanonicalEcdsaActivationWasm, y as finalizeRouterAbEcdsaRegistrationActivationWasm, z as EcdsaPresignClientRequestType } from "./secp256k1-CWDid9WH.js";
36
- import { c as serializeRegistrationCredentialWithPRF, i as normalizeAuthenticationCredential, l as getPrfFirstB64uFromCredential, n as getPrfSecondSaltV1, o as redactedPasskeyRegistrationCredential, r as isSerializedRegistrationCredential, s as serializeAuthenticationCredentialWithPRF, t as getPrfFirstSaltV1, u as redactCredentialExtensionOutputs } from "./helpers-DpRjHMBx.js";
37
- import { C as validateTempoFeeToken, D as requestParentDomainWebAuthn, E as executeWebAuthnWithParentFallbacksSafari, S as requireTempoFeeTokenPreferenceSigningRequest, T as WindowParentDomainWebAuthnClient, b as parseTempoEvmAddress, d as walletIframeUnlockRequestFromLoginHooks, f as needsExplicitActivation, p as OverlayController, r as parseWalletIframeExactSessionIdentity, x as readTempoFeeTokenPreference, y as buildTempoSetUserTokenRequest } from "./exactSessionState-Bt0HforB.js";
38
- import { C as ecdsaRoleLocalReadyRecordMatchesInput, E as parseEcdsaRoleLocalReadyRecord, O as serializeEcdsaRoleLocalReadyRecord, S as buildEcdsaRoleLocalPublicFacts, T as ecdsaRoleLocalReadyRecordStorageKeyFacts, b as buildEcdsaRoleLocalEmailOtpAuthMethod, w as ecdsaRoleLocalReadyRecordStorageKey, x as buildEcdsaRoleLocalPasskeyAuthMethod, y as routerAbEcdsaDerivationPublicCapabilitiesEqual } from "./ecdsaCapabilityManifest-C8itxV9S.js";
39
- import { i as buildNearAccountRefs } from "./profileAccountProjection-C9rVhbeJ.js";
40
- import { a as isWorkerError, o as isWorkerProgress, s as isWorkerSuccess, t as DEFAULT_CONFIRMATION_CONFIG } from "./signer-worker-DYRteieu.js";
41
- import { A as parseProfileContinuityEcdsaWarmKey, D as startWalletAddAuthMethod, S as requestAddAuthMethodEmailOtpChallenge, T as revokeWalletAuthMethod, _ as finalizeWalletAddAuthMethod, a as buildRehydrateMaterialActivationHydrationPlan, g as fetchWalletEcdsaKeyFactsInventoryWithWebAuthn, h as fetchWalletEcdsaKeyFactsInventoryWithOperationCredential, i as buildBlockedMpcCapabilityHydrationPlan, k as activateRouterAbEcdsaPostRegistrationSession, l as computeWalletCustodyAdminChallengeDigest, n as nearEd25519YaoRuntimeRef, o as buildUseLiveRuntimeHydrationPlan, p as createWalletAddAuthMethodIntent, r as resolveNearEd25519YaoCapabilityHydrationV1, t as nearEd25519YaoMaterialActivationFromMetadata, y as fundImplicitNearAccountForTesting } from "./nearEd25519YaoMaterialActivation-Cz5UJQ_7.js";
42
- import { n as buildRelayerJsonPostRequestInit, r as normalizeRelayerBaseUrl, t as buildBearerAuthorizationHeader } from "./relayerHttp-LsVTZCxA.js";
43
- import { _ as isEmailOtpPendingSingleUseAuthContext, a as nearEd25519SessionMatchesMaterialActivation, b as laneCandidateStateFromRuntimePolicy, d as buildEmailOtpAuthContextForWalletAuthMethod, f as emailOtpAuthContextConsumedAtMs, g as emailOtpAuthContextRetention, h as emailOtpAuthContextProviderUserId, i as classifyNearEd25519WalletSessionAuthorization, m as emailOtpAuthContextProvider, n as buildAuthorizationRequiredNearEd25519YaoSigningPreparation, p as emailOtpAuthContextEmailHashHex, r as buildAuthorizedNearEd25519YaoSigningPreparation, t as buildActiveNearEd25519WalletSessionAuthorization, u as buildEmailOtpAuthContextForCanonicalWallet, v as isEmailOtpSessionAuthContext, x as selectedEcdsaLane } from "./nearEd25519YaoSigningPreparation-DX6xG-IW.js";
44
- import { a as throwEmailOtpSigningSessionAuthStateError, i as emailOtpEcdsaBootstrapRouteAuthFromRoutePlan, n as buildEmailOtpSigningSessionRoutePlan, o as buildEmailOtpRoutePlan, r as buildFreshEmailOtpRoutePlan, t as assertEmailOtpSigningSessionAuthLane } from "./routePlan-nLpPFHB-.js";
45
- import "./operationFingerprint-CsYO6b0a.js";
46
- import { n as generateSessionId, t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-CgAr-VEU.js";
47
- import { l as emitSigningSessionFlowFailure, u as emitSigningSessionFlowTrace } from "./trace-08ayoiNp.js";
48
- import { t as webAuthnPromptCoordinator } from "./webauthnPromptCoordinator-CLeba8ru.js";
49
- import { a as toActionArgsWasm, t as ActionType } from "./actions-DsBQcjBn.js";
50
- import { t as MinimalNearClient } from "./NearClient-BQgcqAzG.js";
51
- import { A as UserConfirmMessageType, C as getSignIntentDigestSubject, E as getTxCount, M as normalizeConfirmationConfig, S as getNearAccountId, T as getSigningAuthMode, _ as sendConfirmProgress, a as formatNearAccountFundingProgressNotice, b as assertSigningRequestContext, c as collectAuthenticationCredentialForChallengeB64u, d as collectAuthenticationCredentialForWalletChallengeB64u, f as ERROR_MESSAGES, g as sanitizeForPostMessage, h as parseTransactionSummary, i as formatNearAccountFundingNotice, j as UserConfirmationType, m as isUserCancelledUserConfirm, n as createConfirmTxFlowAdapters, o as __isWalletIframeHostMode, p as createUserConfirmScopedWorker, r as mountConfirmUI, s as __setWalletIframeHostMode, t as createConfirmSession, v as sendConfirmResponse, w as getSignTransactionPayload, x as getIntentDigest, y as assertNoForbiddenMainThreadSigningSecrets } from "./adapters-m94YFj70.js";
52
- import { i as orderActionForDigest, n as computeUiIntentDigestFromNep413, r as computeUiIntentDigestFromTxs } from "./intentDigest-A1MbbJPu.js";
53
- import { r as showWalletRecoveryCodesUi, t as pendingWalletRecoveryCodeBackupRepository } from "./pendingWalletRecoveryCodeBackup-DyvRysWg.js";
54
- import { t as createEvmClient } from "./EvmClient-CHw6txjt.js";
55
- import { n as resolveAppearanceTheme, o as resolveThemePalette } from "./configHelpers-DB73zYvO.js";
56
- import { n as getDefaultCspNonce, t as createCspStylesheetManager } from "./csp-stylesheet-DLj_a6t_.js";
57
- import { r as buildConfigsFromEnv } from "./defaultConfigs-CyNOW4Sy.js";
58
- import { t as createNonceCoordinator } from "./NonceCoordinator-C7mqpJiU.js";
59
- import { i as resumePendingWalletRecoveries } from "./walletRecoveryCommit-G6w6N5RV.js";
60
- import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-D_w-SfR9.js";
61
- import { A as authorizeEvmFamilyEcdsaSigningCapability, B as listLinkedEcdsaHolderRuntimesV1, C as buildExactPasskeyOwnerLaneScope, D as buildPersistedEcdsaRoleLocalMaterial, E as resolveExactWalletAuthAuthority$1, F as signingAuthorizationFromPreprocessing, H as resolveLinkedEcdsaHolderRuntimeV1, I as ensureSealedRefreshStartupParityForThresholdEcdsaBootstrap, L as isRetryableSealedRefreshCapabilityFetchError, M as buildEcdsaPreprocessingCapability, N as buildExactEcdsaDirectCapabilityRuntime, O as ecdsaRoleLocalPersistedMaterialSource, P as buildExactEvmFamilyWalletSessionAuthorization, R as clearLinkedEcdsaHolderRuntimesV1, S as buildExactLinkedEmailOtpOwnerLaneScope, T as resolveExactOwnerLaneScope, V as removeLinkedEcdsaHolderRuntimeV1, _ as resolveEmailOtpEcdsaSigningSessionAuth, a as reportTempoFinalized, b as withThresholdEcdsaSigningQueue, c as resolveActiveWalletAuthorityEcdsaRuntimeV1, d as createActiveEcdsaCapabilityRuntimeForChainResolver, f as createActiveEcdsaCapabilityRuntimeResolver, g as requestEmailOtpSigningSessionChallenge$1, h as refreshEmailOtpSigningSession$1, i as reportTempoDroppedOrReplaced, j as buildCanonicalEvmFamilyEcdsaSigningCapability, k as resolveEcdsaRoleLocalMaterial, l as issueEcdsaOperationStepUpAuthorization, m as resolveExactEcdsaSealedRuntime, n as reportTempoBroadcastAccepted, o as signEvmFamily, p as resolveExactEcdsaCapabilityRuntime, r as reportTempoBroadcastRejected, t as reconcileTempoNonceLane, u as prepareEcdsaOperationStepUp, v as clearThresholdEcdsaSigningQueue, w as isOwnerRelinkRequiredError, x as buildExactEcdsaPasskeyOwnerLaneScope, y as resolveThresholdEcdsaSigningQueueKey, z as installLinkedEcdsaHolderRuntimeV1 } from "./signEvmFamily-pbMepepQ.js";
62
- import { n as SigningAuthPlanKind } from "./promptText-BEgOkGxB.js";
63
- import { C as isSigningOperationReviewApprovedStateKind, d as fullWalletLoginRequired, f as invalidWalletSigningMaterial, m as walletSigningMaterialBlockError, p as isWalletSigningStateFailure, v as SigningOperationInteractionEventKind } from "./operationFingerprint-DEPg9A3h.js";
64
- import { _ as WALLET_SESSION_FAILURE_CODES, g as walletSessionFailureFromError, h as walletSessionFailureFromCode, p as WalletSessionFailureError } from "./routerAbNormalSigning-DktZKnf1.js";
65
- import { _ as parseWalletSessionAuthorizationBoundary, d as availableEd25519SigningLaneAuthMethod, f as ecdsaAvailableLaneCandidatesForTarget, g as readAvailableSigningLanes, h as isConcreteAvailableSigningLane, l as activeWalletAuthorityAvailableLaneFromProjection, m as ecdsaAvailableLaneIdentityKey, p as ecdsaAvailableLaneForTarget, u as availableEcdsaSigningLaneAuthMethod, v as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary } from "./transactionState-Bpm4GamO.js";
66
- import { t as bytesToHex } from "./bytes-CwytAKz8.js";
67
- import { a as PENDING_CHALLENGE_B64U, c as consumeIntentDigestPreparation, l as createEvmNonceBackend, n as EvmFamilyEcdsaMaterialSupersededError, s as clearIntentDigestPreparation } from "./signatureUses-BY1IY7uz.js";
68
- import { n as removeExportViewerHostIfPresent, t as isExportViewerSessionOpen } from "./export-viewer-host-CbqG8ZQV.js";
69
- import { i as observeTransactionLifecycleReport, n as failTransactionActivity, r as observeTransactionActivity, t as beginTransactionActivity } from "./transaction-activity-DKgIGpKG.js";
70
- import "./jsxRuntime.module-FAP0NE9p.js";
71
- import { t as handleRegistrationFlow } from "./registration-DtDICj-o.js";
72
- import { i as rotateWalletRecoverySet, n as readWalletRecoveryCodeStatus, r as requestWalletCustodyEmailOtpChallenge, t as acknowledgeWalletRecoveryBackup } from "./walletRecoveryRotate-BYOYJAyb.js";
11
+ import { $ as unlockEmailOtpAuthorityWallet, $t as listThresholdEcdsaProvisionTargets, A as resolveGoogleEmailOtpProvider, At as readExactEd25519SealedSession, B as subscribeToNearProvisioning, Bt as resolveExactWalletSessionOperationCredential, C as persistPasskeyEd25519YaoSignerMaterialV1, Ct as resolveExactEd25519SealedSessionRuntimeForLane, D as collectEmailOtpRegistrationAuthority, Dt as deleteDurableSealedSessionRecord, E as buildRestorableMpcMaterialRefInternal, Et as acquireSigningSessionRestoreLease, F as exactPasskeyWalletAuthAuthorityRefForCredential, Ft as writeExactSealedSession, G as passkeyPrfFirstB64uFromCredential, Gt as openWalletCustodyEd25519ActiveClientV1, H as resumePendingEcdsaRegistrationFromStoredCommit, Ht as buildPasskeyEd25519RestoreMetadata, I as exactPasskeyWalletAuthMethodForCredential, It as buildCurrentSealedSessionRecord, J as verifyPasskeyWalletUnlock, Jt as ROUTER_AB_ED25519_YAO_ACTIVE_CLIENT_KIND_V1, K as requirePasskeyPrfFirstB64u, Kt as walletCustodyActivationFactsFromActiveClientMetadataV1, L as resolveManagedRuntimeScopeBootstrap, Lt as createDeleteDurableSealedSessionCommand, M as readPasskeyCustodySessionEnvelope, Mt as releaseSigningSessionRestoreLease, N as rememberPasskeyCustodySessionEnvelope, Nt as updateExactEd25519SealedSessionPolicy, O as requestEmailOtpChallenge, Ot as listEcdsaSealedSessionsForWallet, P as buildRecoveredCustodyEnvelopeRecord, Pt as updateExactSealedSessionPolicy, Q as passkeyEd25519YaoLaneReferenceFromRecovery, Qt as listConfiguredThresholdEcdsaPublicationTargets, R as awaitNearProvisioningInFlight, Rt as buildRouterAbEd25519SigningWalletSession, S as hydratePasskeyEd25519YaoLocalMaterialV1, St as parseExactEd25519SealedSessionRuntime, T as readPasskeyEd25519YaoLocalMaterialLocatorV1, Tt as resolveExactEd25519SealedSessionRuntimeForWalletSubject, U as resumePendingNearRegistrations, Ut as persistPasskeyEd25519YaoSessionForRefresh, V as scheduleEcdsaSessionPresignaturePrefill, Vt as WALLET_IFRAME_TRANSPORT_TIMING_LABEL, W as passkeyCredentialIdB64uFromAuthentication, Wt as openOrRejoinWalletCustodyEd25519V1, X as buildRecoveredWalletSessionState, Xt as RouterAbEd25519YaoHttpActivationTransportV1, Y as assertEd25519YaoWarmRecoveryDescriptorStableMaterialContinuity, Yt as RouterAbEd25519YaoClientV1, Z as parsePasskeyEd25519YaoSyncResponseV1, Zt as parseEd25519YaoRecoveryCapabilityV1, _ as setUnlockedCustodyEnvelopeUpgradeSinkV1, _t as nearEd25519YaoOperationMaterialFacts, a as registerWallet, at as joinEvmFamilyCustodyV1, b as walletCustodyCeremonyStepRunner, bt as ed25519AuthorizationIdentityMatchesRuntime, c as exactWalletSessionAuthorityIdentity, ct as recoverNearEd25519CustodyV1, d as validateExactWalletSessionAuthorization, dt as WalletSessionStatusReadScope, en as isRegistrationBenchmarkDiagnosticsEnabled, et as unlockEmailOtpEd25519YaoCapability, f as destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, ft as createRelayerExactWalletSessionStatusPort, g as readUnlockedWalletEd25519ExportRootCapabilityV1, gt as buildPasskeyRouterAbEd25519WalletSessionState, h as readUnlockedEd25519ExportRootLinkingCapabilityV1, ht as buildEmailOtpRouterAbEd25519WalletSessionState, it as establishNearEd25519CustodyV1, j as configurePasskeyCustodySessionCachePersistence, jt as readExactSealedSession, k as requestEmailOtpEnrollmentChallenge, kt as listExactSealedSessionsForWallet, l as persistExactWalletSessionAuthorizationFromEcdsaBootstrap, lt as rejoinEvmFamilyCustodyV1, m as establishUnlockedWalletEd25519ExportRootCapabilityV1, mt as joinCustodyWireFromEnvelopeRecord, nt as unlockEmailOtpWalletCapabilities, ot as joinNearEd25519CustodyV1, p as dropUnlockedWalletEd25519ExportRootCapabilityReferenceV1, pt as sameRuntimePolicyScope, q as verifyLinkedDevicePasskeyWalletSession, qt as walletCustodyCacheEnvelopeFromRecordV1, rt as establishEvmFamilyCustodyV1, st as recoverEvmFamilyCustodyV1, t as addWalletSigner, tt as unlockEmailOtpWallet, u as validateExactWalletSessionAuthorityIdentity, ut as rejoinNearEd25519CustodyV1, v as walletCustodyCeremonyTransportFromWorkerContextV1, vt as rebindRouterAbEd25519WalletSessionStateFromExactRuntime, w as preparePasskeyEd25519YaoLocalMaterialRehydrationV1, wt as resolveExactEd25519SealedSessionRuntimeForWallet, x as ed25519YaoLocalMaterialIdentityFromWalletSession, xt as ed25519SealedRuntimeAuthorityRef, y as requestWalletCustodyCeremonyOperation, yt as resolveActiveAuthorizedRouterAbEd25519WalletSessionState, z as readNearProvisioningState, zt as requiredSigningSubjectForExactSigningLane } from "./registration-Ct_7LdGf.js";
12
+ import { C as parseEnvelopeNonceB64u, D as parseUnixMs, E as parseSecp256k1CompressedPublicKeyB64u, I as rejectUnknownFields, O as requireParsed$1, S as parseEnvelopeCiphertextB64u, T as parseKeyCreationSignerSlot, _ as signingRootScopeFromRuntimePolicyScope, a as clampThresholdSessionPolicy, b as parseDigestField, c as resolveWalletUnlockSessionUsesFromRequestedUses, d as normalizeThresholdEd25519ParticipantIds, f as parseThresholdEd25519ParticipantsV1, g as sameRuntimePolicyScope$1, h as normalizeRuntimePolicyScope, i as buildEd25519SessionPolicy, j as hasDelegatedWalletPermissionV1, k as buildFullOwnerDelegatedWalletAuthorityV1, l as THRESHOLD_ED25519_2P_PARTICIPANT_IDS, o as normalizeThresholdRuntimePolicyScope, p as coerceThemeMode$1, r as DEFAULT_UNLOCK_REMAINING_USES, t as DEFAULT_THRESHOLD_SESSION_POLICY, u as buildThresholdEd25519Participants2pV1, v as deriveEvmFamilySigningKeySlotId, w as parseEnvelopeRevision, x as parseEd25519PublicKeyB64u, y as requireEvmFamilySigningKeySlotId } from "./sessionPolicy-DO-MkL65.js";
13
+ import { $ as parseEmailOtpWalletAuthAuthority, B as sameRouterAbEcdsaDerivationNormalSigningStateV1, Dt as sameRouterAbMpcMaterialActivationRef, E as parseRouterAbEcdsaRegistrationActivationReceiptV1, Et as routerAbMpcMaterialActivationRefToWire, G as sameRouterAbServerIdentityV1, H as sameRouterAbEcdsaDerivationPublicIdentityV1, K as buildEmailOtpWalletAuthAuthority, M as routerAbEcdsaDerivationActiveStateId, Q as isPasskeyWalletAuthAuthority, S as parseRouterAbEcdsaOperationStepUpPreparationV1, Tt as routerAbMpcMaterialActivationRefFromWire, U as sameRouterAbEcdsaRegistrationActivationReceiptV1, V as sameRouterAbEcdsaDerivationPublicCapabilityV1, Z as isEmailOtpWalletAuthAuthority, _ as parseRouterAbEcdsaDerivationNormalSigningStateV1, _t as computeEcdsaDerivationRoleLocalRelayerKeyId, bt as parseSdkEcdsaDerivationSigningRootVersion, i as ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH, it as walletAuthAuthorityRef, jt as parseWalletSessionOperationCredentialV1, kt as activeWalletSessionV1RecordsEqual, nt as parseWalletAuthAuthorityRef, p as parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1, q as buildPasskeyWalletAuthAuthority, r as cloneAuthenticatorOptions, rt as walletAuthAuthoritiesMatch, t as MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS, v as parseRouterAbEcdsaDerivationPublicCapabilityV1, w as parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1, xt as parseSdkEcdsaDerivationThresholdKeyId, y as parseRouterAbEcdsaExplicitExportForwardedResponseV1, yt as parseSdkEcdsaDerivationSigningRootId } from "./ecdsaPresignLifecycle-Bfx2AQKb.js";
14
+ import { a as buildNearEd25519MpcOperationRef, d as parseMpcWalletSigningQuotaId, g as parseWalletSessionMintId, h as parseWalletSessionId, i as buildEvmEcdsaMpcOperationRef, l as parseDeviceId, m as parseWalletSessionAuthorizationId, n as EVM_ECDSA_MPC_OPERATION_KINDS, o as buildVaultOperationRef, r as NEAR_ED25519_MPC_OPERATION_KINDS, t as CAPABILITY_KINDS } from "./capabilityKinds-hvYqa6S_.js";
15
+ import { d as resolvePrimaryNearRpcUrl, f as alphabetizeStringify, h as sha256HexUtf8, m as sha256BytesUtf8, n as cloneChainConfig, t as chainFamilyFromNetwork, u as resolvePrimaryExplorerUrl } from "./chains-BMh3btVo.js";
16
+ import { a as sha256DigestB64u, o as sha256Utf8DigestB64u, r as parseDigestB64u } from "./canonicalPrimitives-BTHWz80v.js";
17
+ import { a as thresholdEcdsaChainTargetFromRequest, c as toWalletId, i as thresholdEcdsaChainTargetFromConfig, n as nearAccountRefFromAccountId, o as thresholdEcdsaChainTargetKey, s as thresholdEcdsaChainTargetsEqual, t as configuredThresholdEcdsaChainTargets, u as walletSessionRefFromSession } from "./ecdsaChainTarget-Bl-JWyuw.js";
18
+ import { a as WALLET_AUTH_METHODS, d as WALLET_EMAIL_OTP_REGISTRATION_OPERATION, f as WALLET_EMAIL_OTP_TRANSACTION_SIGN_OPERATION, i as SIGNER_SOURCES, l as WALLET_EMAIL_OTP_DEVICE_LINK_OPERATION, n as SIGNER_AUTH_METHODS, p as WALLET_EMAIL_OTP_UNLOCK_OPERATION, r as SIGNER_KINDS, s as EMAIL_OTP_CHANNEL, u as WALLET_EMAIL_OTP_EXPORT_OPERATION } from "./signerDomain-IEAVrOrc.js";
19
+ import { a as toIndexedDbChainTargetKey, t as normalizeIndexedDbAccountAddress } from "./normalization-CBt413-z.js";
20
+ import { c as zeroizeIssuedWalletRecoveryCodes, d as deriveWalletRecoveryKeyLifecycleId, f as parseRecoveryCodeReservationId, i as walletRecoverySetRotationWireFromWorkerResultV1, o as deriveRecoveryCodeLocatorV1FromBytes, r as walletRecoveryEcdsaPossessionChallengeDigestB64uV1, s as issueWalletRecoveryCodes, t as parseWalletRecoveryEcdsaPossessionChallengeV1 } from "./wallet-recovery-BX61-79p.js";
21
+ import { A as storeWalletMixedRegistrationData$1, C as storeWalletEcdsaSignerRecords$1, D as storeWalletEmailOtpEcdsaSignerRecords$1, E as storeWalletEmailOtpEcdsaRegistrationData$1, F as getLastSelectedNearAccount, I as getNearAccountProjection, M as WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND, O as storeWalletEmailOtpEd25519RegistrationData$1, S as storeWalletEcdsaRecoverySignerRecords$1, T as storeWalletEd25519RegistrationData$1, _ as rollbackWalletEd25519SignerRegistration$1, a as getLastUser$1, b as storeAuthenticator$1, c as hasPasskeyCredential$1, g as rollbackUserRegistration$1, i as getAllUsers$1, k as storeWalletEmailOtpMixedRegistrationData$1, l as nearAuthenticatorsByAccount$1, n as finalizeWalletEcdsaRegistration$1, o as getUserBySignerSlot$1, r as finalizeWalletEd25519SignerRegistration$1, s as getWalletNearProvisioningState$1, t as activateAuthenticatedWalletState$1, v as setLastUser$1, w as storeWalletEd25519RecoveryRegistrationData$1, x as storeUserData$1, y as setWalletNearProvisioningState$1 } from "./accountLifecycle-zthG08aC.js";
22
+ import { t as toAccountId } from "./accountIds-DhIPGOSN.js";
23
+ import { $ as parseLinkedDeviceListRequestV1, At as serializeQrLinkedDeviceSessionPayloadV5, Ct as parseLinkedDeviceOwnerAuthorizationRequestV1, D as parseSigningWorkerParticipantRecordV1, Dt as parseLinkedDeviceTargetPreparationRequestV1, E as parseLaneParticipantBindingDigestB64u, Et as parseLinkedDeviceTargetCredentialRegistrationResultV1, F as buildWalletIdentity, Ft as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, G as computeWalletSessionInstallationReceiptDigestB64u, H as LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, Ht as ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1, I as nearAccountBindingFromRaw, J as parseLocalAuthorityActivationFinalAckV1, K as computeWalletSessionOperationCredentialDigestB64u, Kt as ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1, N as buildPasskeyAuthScope, Nt as parseLinkedDeviceEd25519SourcePreservingReservationV1, Ot as parseLinkedDeviceTargetPreparationV1, P as buildPasskeyWalletAuthMethodBinding, Pt as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, Q as parseLinkedDeviceWalletSessionCredentialDeliveryV1, R as parseRpId, Rt as ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, St as parseLinkedDeviceEmailOtpVerificationResultV1, T as parseLaneHolderParticipantRecordV1, Tt as parseLinkedDeviceSessionClaimV1, U as computeLinkedDevicePublicKeyDigestV1, V as LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, Vt as ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1, W as computeLinkedDeviceTargetPreparationDigestV1, Wt as ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1, X as assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1, Y as parseLocalAuthorityInstallationReceiptV1, Z as parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, _ as resolveThresholdSigningRootBindingFromRecord, _n as parseLinkedDeviceEd25519ExportRootPackageV1, _t as parseLinkedDeviceEmailOtpChallengeResultV1, a as buildEvmFamilyEcdsaWalletKey, an as parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, at as buildLinkedDeviceSessionCancelClaimedRequestV1, bn as serializeLinkedDeviceEd25519ExportRootTransferBindingV1, bt as parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, c as buildResolvedEvmFamilyEcdsaKey, cn as parseRouterAbEd25519YaoRegistrationActivationResultV1, ct as buildLinkedDeviceTargetCredentialRegistrationV1, d as deriveEvmFamilyKeyFingerprint, dt as parseLinkSessionProjectionV1, et as parseLinkedDeviceListResultV1, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, ft as parseLinkSessionTransportEventV1, gn as buildLinkedDeviceEd25519ExportRootTransferBindingV1, gt as parseLinkedDeviceEmailOtpChallengeResendRequestV1, hn as LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1, ht as parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1, i as buildEvmFamilyEcdsaSessionLanePolicy, in as parseRouterAbEd25519YaoRecoveryActivationResultV1, it as buildLinkedDeviceApprovalV1, jt as parseCommittedAuthorityPackagesV1, k as buildEmailOtpWalletAuthMethodBinding, kt as parseQrLinkedDeviceSessionPayloadV5, lt as buildQrLinkedDeviceSessionPayloadV5, m as evmFamilyEcdsaWalletKeyToIdentity, mt as parseLinkedDeviceApprovalResultV1, n as buildBaseEvmFamilyEcdsaKeyIdentity, nn as parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1, nt as parseLinkedDeviceRevokeResultV1, ot as buildLinkedDeviceSessionCancelUnclaimedRequestV1, p as deriveEvmFamilySigningKeySlotId$1, pn as deriveRouterAbEd25519YaoApplicationBindingDigestV1, pt as parseLinkedDeviceApprovalDeliveryV1, q as parseActivateInstalledAuthorityResultV1, qt as ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1, r as buildEvmFamilyEcdsaRecoveredMaterialLanePolicy, rn as parseRouterAbEd25519YaoRecoveryActivationReceiptV1, s as buildPasskeyEcdsaAuthBinding, st as buildLinkedDeviceSessionClaimRequestV1, t as assertMatchingVerifiedEcdsaPublicFacts, tn as parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1, tt as parseLinkedDeviceRevokeRequestV1, u as deriveEvmFamilyEcdsaKeyHandle, un as parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1, ut as parseLinkDevicePublicKeyB64u, v as resolveThresholdSigningRootBindingFromRuntimePolicyScope, vn as parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u, vt as parseLinkedDeviceEmailOtpChallengeStartRequestV1, w as parseOwnerLaneParticipantContinuityV1, wt as parseLinkedDeviceOwnerAuthorizationSourceV1, x as toRpId, xn as assertNeverLinkSessionStateV1, xt as parseLinkedDeviceEmailOtpVerificationGrantV1, y as toEvmFamilyEcdsaKeyHandle, yn as parseLinkedDeviceEd25519ExportRootRecipientV1, yt as parseLinkedDeviceEmailOtpChallengeVerifyRequestV1 } from "./evmFamilyEcdsaIdentity-CqGafQsI.js";
24
+ import { C as computeWalletAuthMethodRevokeOperationFingerprintV1, E as parseExactAdministeredSignerManifestV1, S as buildWalletAuthMethodRecordV2, T as sameWalletAuthMethodRecordV2, d as parseWalletSignerActivationSetV1, f as replaceActiveWalletAuthorityEd25519MaterialActivationV1, n as computeWalletSignerActivationSetDigestB64u, o as isActiveRecoveredWalletAuthorityV1, r as encodeWalletSignerActivationSetV1, t as computeWalletAuthorityDigestB64u, w as parseWalletAuthMethodRecordV2 } from "./walletAuthority-DD9T25F6.js";
25
+ import "./encoders-D8d07vpx.js";
26
+ import { a as parseNearEd25519SigningKeyId, i as nearEd25519SigningKeyIdFromString, o as walletIdFromString, r as createServerAllocatedWalletId } from "./registrationIds-DLSdEKSv.js";
27
+ import { a as buildEmailOtpEnvelopeFactor, c as buildPasskeyEnvelopeFactor, d as parsePasskeyCustodyEnvelopeRecord, h as isWalletCustodySeedBinding, i as buildActiveEnvelopeLifecycle, l as custodyEnvelopeBindingJsonV1, m as buildEd25519YaoClientRootBinding, o as buildMethodBoundEnvelopeOwnership, s as buildPasskeyCustodyEnvelopeRecord } from "./passkey-custody-UUHbC0pk.js";
28
+ import { a as parseEcdsaRoleLocalPersistedMaterialRef, d as parseEcdsaRelayerKeyId, f as parseSigningSessionSealKeyVersion, i as parseEcdsaRoleLocalMaterialHandle, l as parseEcdsaClientVerifyingShareB64u, n as parseEcdsaRoleLocalBindingDigest, r as parseEcdsaRoleLocalDurableMaterialRef, s as parseEcdsaThresholdKeyId, u as parseEcdsaKeyHandle } from "./keyMaterialBrands-CogGAAZn.js";
29
+ import { a as SIGNING_SESSION_EXPIRY_DETECTION_SOURCES, d as createLinkDeviceFlowEvent, f as createNearProvisioningStateChangedEvent, g as createUnlockFlowEvent, h as createSigningSessionExpiredEvent, i as RegistrationEventPhase, l as createAccountSyncFlowEvent, m as createSigningFlowEvent, n as KeyExportEventPhase, o as SigningEventPhase, p as createRegistrationFlowEvent, r as LinkDeviceEventPhase, s as UnlockEventPhase, t as AccountSyncEventPhase, u as createKeyExportFlowEvent } from "./sdkSentEvents-MqDkbQg1.js";
30
+ import { M as parseWalletAuthorityLinkedSignerMaterialRecordV1, a as loadWalletCustodyEd25519MaterialV1, b as walletSessionAuthorizations, d as configureIndexedDB, f as createIndexedDBNonceLaneCoordinationStore, g as IndexedDbEcdsaCapabilityManifestStore, h as readEmailOtpProviderSubjectForWalletV1, i as deleteWalletCustodyEd25519MaterialV1, j as openWalletAuthorityLinkedSignerMaterialV1, k as computeWalletEcdsaKeyFactsInventoryChallengeDigestB64u, l as storeAccountKeyMaterial, m as publishEd25519YaoPublicCapabilityReferenceAndLane, n as importWalletCustodyEcdsaContinuity, o as persistWalletCustodyEd25519MaterialV1, p as IndexedDbEd25519YaoPublicCapabilityReferenceStore, s as getAccountKeyMaterial, t as copyWalletCustodyEcdsaContinuityToAuthMethod, u as IndexedDBManager, y as WalletSessionAuthorizationUpgradeRequiredError } from "./walletCustodyEcdsaContinuity-CF4bv9OI.js";
31
+ import { t as parseSignerSlot } from "./signerSlot-_ovonwVX.js";
32
+ import "./keccak-DUL3d8SF.js";
33
+ import { a as SIGNING_SESSION_SEAL_ALG, l as parseRouterAbEd25519NormalSigningState, n as PASSKEY_PRF_SECOND_SALT_V1, o as SIGNING_SESSION_SEAL_GROUP_ID, r as ROUTER_AB_ED25519_NORMAL_SIGNING_STATE_KIND, t as PASSKEY_PRF_FIRST_SALT_V1 } from "./signingSessionSeal-Cu-GHm6y.js";
34
+ import { c as registrationNearEd25519BranchKey, d as sponsoredNamedNearAccountProvisioning, i as implicitNearAccountProvisioning, t as NEAR_ED25519_YAO_KEY_VERSION_V1 } from "./registrationSignerPlan-DhV8VAob.js";
35
+ import { r as computeAddAuthMethodIntentDigestB64u } from "./registrationIntent-4zwk16zQ.js";
36
+ import { c as signingLaneAuthMethod, n as SigningOperationIntent, r as SigningSessionIds, s as signingLaneAuthBindingKey } from "./types-Dx9fczU7.js";
37
+ import { t as demoEmailOtpCodeFromDelivery } from "./challengeDelivery-DZtopOAG.js";
38
+ import { _ as isWorkerError, a as planSigningSession, b as parseEmailOtpEcdsaExportWorkerIssuedSessionHandle, c as buildThresholdEd25519WebAuthnPrfSecretSource, d as nearOperationStepUpPreparationPort, f as deriveThresholdEd25519ClientVerifyingShareWasm, g as DEFAULT_CONFIRMATION_CONFIG, h as buildNearMessageDisplayModel, i as createSigningPlannerDecisionTraceEvent, l as localPrfFirstForEd25519WalletSessionMintAuthorization, m as buildNearDisplayModel, o as parseAndValidateRegistrationCredentialConfirmationPayload, p as getLastLoggedInSignerSlot, r as withThresholdEd25519CommitQueue, s as nearImplicitAccountFundingPort, t as signNear, u as mintEd25519WalletSession, v as isWorkerProgress, x as parseEmailOtpWorkerIssuedSessionHandle, y as isWorkerSuccess } from "./signNear-Bmb2fj_a.js";
39
+ import { t as executeWorkerOperation } from "./executeWorkerOperation-Cl9whMK7.js";
40
+ import { A as thresholdEcdsaRoleLocalAdmitPresignatureWasm, B as EcdsaPresignClientRequestType, C as prepareEcdsaClientBootstrapCommandWasm, D as storeEcdsaRoleLocalSigningMaterialWasm, E as signWalletRecoveryEcdsaMaterialPossessionProofWasm, F as thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, H as WorkerControlMessage, I as thresholdEcdsaRoleLocalPresignSessionStepWasm, L as thresholdEcdsaRoleLocalReservePresignatureWasm, M as thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, N as thresholdEcdsaRoleLocalDestroyPresignatureWasm, O as storeLinkedDeviceEcdsaHolderMaterialWasm, P as thresholdEcdsaRoleLocalPresignSessionAbortWasm, R as verifyRouterAbEcdsaRegistrationClientProofsWasm, S as persistInitialCanonicalEcdsaActivationWasm, T as reconcileCanonicalEcdsaActivationWasm, U as getSignerWorkerOperationCoreCode, V as SignerWorkerOperationError, W as getSignerWorkerOperationErrorCode, _ as finalizeEcdsaClientBootstrapCommandWasm, a as clearRouterAbEcdsaDerivationClientPresignaturesForWallet, b as finalizeRouterAbEcdsaRegistrationActivationWasm, c as waitForRouterAbEcdsaDerivationClientPresignaturePoolReady, d as closeRouterAbEcdsaRegistrationCeremonyWasm, f as createEcdsaHolderOrdinaryExportRequestWasm, g as destroyLinkedDeviceEcdsaHolderMaterialsWasm, h as destroyLinkedDeviceEcdsaHolderMaterialWasm, i as clearAllRouterAbEcdsaDerivationClientPresignatures, j as thresholdEcdsaRoleLocalCommitPresignatureWasm, k as thresholdEcdsaListAvailablePresignaturesWasm, l as clearLinkedDeviceEcdsaHolderMaterialsWasm, m as createRouterAbEcdsaRegistrationCeremonyWasm, o as resolveRouterAbEcdsaDerivationPresignaturePoolPolicy, p as createRouterAbEcdsaPostRegistrationCeremonyWasm, r as createLinkedHolderClientSigningMaterialSource, s as scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill, u as closeRouterAbEcdsaPostRegistrationCeremonyWasm, v as finalizeEcdsaHolderOrdinaryExportWasm, w as prepareLinkedDeviceEcdsaSourceContributionWasm, x as openEcdsaRoleLocalSigningMaterialWasm, y as finalizeRouterAbEcdsaExplicitExportWasm, z as EcdsaDerivationClientCustomRequestType } from "./secp256k1-D-I6Gh4D.js";
41
+ import { c as serializeRegistrationCredentialWithPRF, i as normalizeAuthenticationCredential, l as getPrfFirstB64uFromCredential, n as getPrfSecondSaltV1, o as redactedPasskeyRegistrationCredential, r as isSerializedRegistrationCredential, s as serializeAuthenticationCredentialWithPRF, t as getPrfFirstSaltV1, u as redactCredentialExtensionOutputs } from "./helpers-ZrowMnev.js";
42
+ import { C as validateTempoFeeToken, D as requestParentDomainWebAuthn, E as executeWebAuthnWithParentFallbacksSafari, S as requireTempoFeeTokenPreferenceSigningRequest, T as WindowParentDomainWebAuthnClient, b as parseTempoEvmAddress, d as walletIframeUnlockRequestFromLoginHooks, f as needsExplicitActivation, p as OverlayController, r as parseWalletIframeExactSessionIdentity, x as readTempoFeeTokenPreference, y as buildTempoSetUserTokenRequest } from "./exactSessionState-LWDUXydN.js";
43
+ import { C as buildEcdsaRoleLocalPublicFacts, D as parseEcdsaRoleLocalReadyRecord, E as ecdsaRoleLocalReadyRecordStorageKeyFacts, S as buildEcdsaRoleLocalPasskeyAuthMethod, T as ecdsaRoleLocalReadyRecordStorageKey, k as serializeEcdsaRoleLocalReadyRecord, w as ecdsaRoleLocalReadyRecordMatchesInput, x as buildEcdsaRoleLocalEmailOtpAuthMethod, y as routerAbEcdsaDerivationPublicCapabilitiesEqual } from "./ecdsaCapabilityManifest-DuMs0VtU.js";
44
+ import { i as buildNearAccountRefs } from "./profileAccountProjection-uZVJuBvS.js";
45
+ import { A as activateRouterAbEcdsaPostRegistrationSession, C as requestAddAuthMethodEmailOtpChallenge, E as revokeWalletAuthMethod, O as startWalletAddAuthMethod, _ as fetchWalletEcdsaKeyFactsInventoryWithWebAuthn, a as buildRehydrateMaterialActivationHydrationPlan, b as fundImplicitNearAccountForTesting, g as fetchWalletEcdsaKeyFactsInventoryWithOperationCredential, i as buildBlockedMpcCapabilityHydrationPlan, j as parseProfileContinuityEcdsaWarmKey, l as hasExactKeys, m as createWalletAddAuthMethodIntent, n as nearEd25519YaoRuntimeRef, o as buildUseLiveRuntimeHydrationPlan, r as resolveNearEd25519YaoCapabilityHydrationV1, t as nearEd25519YaoMaterialActivationFromMetadata, u as computeWalletCustodyAdminChallengeDigest, v as finalizeWalletAddAuthMethod } from "./nearEd25519YaoMaterialActivation-B5GecIvq.js";
46
+ import { n as buildRelayerJsonPostRequestInit, r as normalizeRelayerBaseUrl, t as buildBearerAuthorizationHeader } from "./relayerHttp-VC8Holz1.js";
47
+ import { a as exactEd25519SigningLaneIdentity, c as exactSigningLaneIdentityKey, f as nearEd25519SignerBindingFromBoundaryFields, h as parseExactEd25519ExportMaterialIdentity, i as exactEd25519ExportMaterialIdentity, l as exactSigningLaneIdentityMatches, m as parseExactEcdsaSigningLaneIdentity, n as exactEcdsaSigningLaneIdentity, p as nearProtocolProjectionFromExactLane, t as buildEvmFamilyEcdsaSignerBinding, u as exactSigningLaneWalletId } from "./exactSigningLaneIdentity-m6uTXV_A.js";
48
+ import { _ as isEmailOtpPendingSingleUseAuthContext, a as nearEd25519SessionMatchesMaterialActivation, b as laneCandidateStateFromRuntimePolicy, d as buildEmailOtpAuthContextForWalletAuthMethod, f as emailOtpAuthContextConsumedAtMs, g as emailOtpAuthContextRetention, h as emailOtpAuthContextProviderUserId, i as classifyNearEd25519WalletSessionAuthorization, m as emailOtpAuthContextProvider, n as buildAuthorizationRequiredNearEd25519YaoSigningPreparation, p as emailOtpAuthContextEmailHashHex, r as buildAuthorizedNearEd25519YaoSigningPreparation, t as buildActiveNearEd25519WalletSessionAuthorization, u as buildEmailOtpAuthContextForCanonicalWallet, v as isEmailOtpSessionAuthContext, x as selectedEcdsaLane } from "./nearEd25519YaoSigningPreparation-CdOT5RuC.js";
49
+ import { a as throwEmailOtpSigningSessionAuthStateError, i as emailOtpEcdsaBootstrapRouteAuthFromRoutePlan, n as buildEmailOtpSigningSessionRoutePlan, o as buildEmailOtpRoutePlan, r as buildFreshEmailOtpRoutePlan, t as assertEmailOtpSigningSessionAuthLane } from "./routePlan-D59x5xzQ.js";
50
+ import { n as generateSessionId, t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-wqQSjYLn.js";
51
+ import { l as emitSigningSessionFlowFailure, u as emitSigningSessionFlowTrace } from "./trace-DKLQZvec.js";
52
+ import { t as webAuthnPromptCoordinator } from "./webauthnPromptCoordinator-L96oVvLz.js";
53
+ import { a as toActionArgsWasm, t as ActionType } from "./actions-CCvThiKe.js";
54
+ import { A as UserConfirmMessageType, C as getSignIntentDigestSubject, E as getTxCount, M as normalizeConfirmationConfig, S as getNearAccountId, T as getSigningAuthMode, _ as sendConfirmProgress, a as formatNearAccountFundingProgressNotice, b as assertSigningRequestContext, c as collectAuthenticationCredentialForChallengeB64u, d as collectAuthenticationCredentialForWalletChallengeB64u, f as ERROR_MESSAGES, g as sanitizeForPostMessage, h as parseTransactionSummary, i as formatNearAccountFundingNotice, j as UserConfirmationType, m as isUserCancelledUserConfirm, n as createConfirmTxFlowAdapters, o as __isWalletIframeHostMode, p as createUserConfirmScopedWorker, r as mountConfirmUI, s as __setWalletIframeHostMode, t as createConfirmSession, v as sendConfirmResponse, w as getSignTransactionPayload, x as getIntentDigest, y as assertNoForbiddenMainThreadSigningSecrets } from "./adapters-Dli9XAZp.js";
55
+ import { i as orderActionForDigest, n as computeUiIntentDigestFromNep413, r as computeUiIntentDigestFromTxs } from "./intentDigest-CvOSNlCH.js";
56
+ import { r as showWalletRecoveryCodesUi, t as pendingWalletRecoveryCodeBackupRepository } from "./pendingWalletRecoveryCodeBackup-BWluQMbt.js";
57
+ import { t as MinimalNearClient } from "./NearClient-DY4NfHeD.js";
58
+ import { t as createEvmClient } from "./EvmClient-f3gUhS2L.js";
59
+ import { n as resolveAppearanceTheme, o as resolveThemePalette } from "./configHelpers-D1EqxVxg.js";
60
+ import { n as getDefaultCspNonce, t as createCspStylesheetManager } from "./csp-stylesheet-btENhsNp.js";
61
+ import { r as buildConfigsFromEnv } from "./defaultConfigs-D_33pPT9.js";
62
+ import { t as createNonceCoordinator } from "./NonceCoordinator-4XWPhYww.js";
63
+ import { i as resumePendingWalletRecoveries } from "./walletRecoveryCommit-AI1AtIRP.js";
64
+ import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-B7orgq5Z.js";
65
+ import { A as buildCanonicalEvmFamilyEcdsaSigningCapability, B as removeLinkedEcdsaHolderRuntimeV1, C as isOwnerRelinkRequiredError, D as ecdsaRoleLocalPersistedMaterialSource, E as buildPersistedEcdsaRoleLocalMaterial, F as ensureSealedRefreshStartupParityForThresholdEcdsaBootstrap, I as isRetryableSealedRefreshCapabilityFetchError, L as clearLinkedEcdsaHolderRuntimesV1, M as buildExactEcdsaDirectCapabilityRuntime, N as buildExactEvmFamilyWalletSessionAuthorization, O as resolveEcdsaRoleLocalMaterial, P as signingAuthorizationFromPreprocessing, R as installLinkedEcdsaHolderRuntimeV1, S as buildExactPasskeyOwnerLaneScope, T as resolveExactWalletAuthAuthority$1, V as resolveLinkedEcdsaHolderRuntimeV1, _ as requestEmailOtpSigningSessionChallenge$1, a as reportTempoFinalized, b as buildExactEcdsaPasskeyOwnerLaneScope, c as resolveActiveWalletAuthorityEcdsaRuntimeV1, d as createActiveEcdsaCapabilityRuntimeForChainResolver, f as createActiveEcdsaCapabilityRuntimeResolver, g as refreshEmailOtpSigningSession$1, h as buildRouterAbEcdsaDerivationSigningMaterialRef, i as reportTempoDroppedOrReplaced, j as buildEcdsaPreprocessingCapability, k as authorizeEvmFamilyEcdsaSigningCapability, l as issueEcdsaOperationStepUpAuthorization, m as resolveExactEcdsaSealedRuntime, n as reportTempoBroadcastAccepted, o as signEvmFamily, p as resolveExactEcdsaCapabilityRuntime, r as reportTempoBroadcastRejected, t as reconcileTempoNonceLane, u as prepareEcdsaOperationStepUp, v as resolveEmailOtpEcdsaSigningSessionAuth, w as resolveExactOwnerLaneScope, x as buildExactLinkedEmailOtpOwnerLaneScope, y as withThresholdEcdsaSigningQueue, z as listLinkedEcdsaHolderRuntimesV1 } from "./signEvmFamily-C3C97Th-.js";
66
+ import { n as SigningAuthPlanKind } from "./promptText-CuRa_ivd.js";
67
+ import { C as isSigningOperationReviewApprovedStateKind, d as fullWalletLoginRequired, f as invalidWalletSigningMaterial, m as walletSigningMaterialBlockError, p as isWalletSigningStateFailure, v as SigningOperationInteractionEventKind } from "./operationFingerprint-C8Trar4R.js";
68
+ import { f as WalletSessionFailureError, g as WALLET_SESSION_FAILURE_CODES, h as walletSessionFailureFromError, m as walletSessionFailureFromCode } from "./routerAbNormalSigning-CVFEOZ2m.js";
69
+ import { S as resolveThresholdCommitQueueKey, _ as ed25519DurableMaterialLocator, b as requireAuthoritativeExpiredWalletSessionAuthorizationBoundary, d as availableEd25519SigningLaneAuthMethod, f as ecdsaAvailableLaneCandidatesForTarget, g as readAvailableSigningLanes, h as isConcreteAvailableSigningLane, l as activeWalletAuthorityAvailableLaneFromProjection, m as ecdsaAvailableLaneIdentityKey, p as ecdsaAvailableLaneForTarget, u as availableEcdsaSigningLaneAuthMethod, v as materialActivationKey, x as clearThresholdCommitQueue, y as parseWalletSessionAuthorizationBoundary } from "./transactionState-CJ4U8pcl.js";
70
+ import { t as bytesToHex } from "./bytes-qKxKn4gg.js";
71
+ import { c as createEvmNonceBackend, i as PENDING_CHALLENGE_B64U, o as clearIntentDigestPreparation, s as consumeIntentDigestPreparation, t as EvmFamilyEcdsaMaterialSupersededError } from "./signingFlow-SZ8t_lxv.js";
72
+ import { n as removeExportViewerHostIfPresent, t as isExportViewerSessionOpen } from "./export-viewer-host-rWMSQQMP.js";
73
+ import { i as observeTransactionLifecycleReport, n as failTransactionActivity, r as observeTransactionActivity, t as beginTransactionActivity } from "./transaction-activity-CSMCveBn.js";
74
+ import "./jsxRuntime.module-CuH5ZEIA.js";
75
+ import { t as handleRegistrationFlow } from "./registration-DHERU8R_.js";
76
+ import { i as rotateWalletRecoverySet, n as readWalletRecoveryCodeStatus, r as requestWalletCustodyEmailOtpChallenge, t as acknowledgeWalletRecoveryBackup } from "./walletRecoveryRotate-BgLlW5ih.js";
73
77
  //#region src/core/walletRuntimePaths/workers.ts
74
78
  /**
75
79
  * Resolve the base origin for worker scripts.
@@ -160,7 +164,7 @@ function defaultWorkerPath$1(worker) {
160
164
  }
161
165
  //#endregion
162
166
  //#region src/core/platform/signerCoreCommandAdapters.ts
163
- function requireBase64UrlBytes$1(value, field, byteLength) {
167
+ function requireBase64UrlBytes(value, field, byteLength) {
164
168
  const normalized = String(value || "").trim();
165
169
  if (!normalized) throw new Error(`[signer-core-command] ${field} is required`);
166
170
  if (base64UrlDecode(normalized).length !== byteLength) throw new Error(`[signer-core-command] ${field} must decode to ${byteLength} bytes`);
@@ -182,15 +186,15 @@ function requireSignerCoreCommandString(value, field) {
182
186
  return normalized;
183
187
  }
184
188
  function parseDerivationClientSharePublicKey33B64u(value) {
185
- return requireBase64UrlBytes$1(value, "derivationClientSharePublicKey33B64u", 33);
189
+ return requireBase64UrlBytes(value, "derivationClientSharePublicKey33B64u", 33);
186
190
  }
187
- function parseRelayerEcdsaDerivationPublicKey33B64u$1(value) {
188
- return requireBase64UrlBytes$1(value, "relayerPublicKey33B64u", 33);
191
+ function parseRelayerEcdsaDerivationPublicKey33B64u(value) {
192
+ return requireBase64UrlBytes(value, "relayerPublicKey33B64u", 33);
189
193
  }
190
- function parsePublicKey33B64u$1(value, field) {
191
- return requireBase64UrlBytes$1(value, field, 33);
194
+ function parsePublicKey33B64u(value, field) {
195
+ return requireBase64UrlBytes(value, field, 33);
192
196
  }
193
- function parseEthereumAddress$1(value) {
197
+ function parseEthereumAddress(value) {
194
198
  const normalized = String(value || "").trim();
195
199
  if (!/^0x[0-9a-fA-F]{40}$/.test(normalized)) throw new Error("[signer-core-command] ethereumAddress must be 0x-prefixed 20-byte hex");
196
200
  return normalized;
@@ -229,7 +233,7 @@ function toGeneratedPrepareEcdsaClientBootstrapCommand(input) {
229
233
  },
230
234
  secretSource: {
231
235
  kind: "threshold_prf_x_client_base",
232
- xClientBaseB64u: requireBase64UrlBytes$1(input.secretSource.xClientBaseB64u, "secretSource.xClientBaseB64u", 32)
236
+ xClientBaseB64u: requireBase64UrlBytes(input.secretSource.xClientBaseB64u, "secretSource.xClientBaseB64u", 32)
233
237
  }
234
238
  };
235
239
  }
@@ -239,14 +243,14 @@ function parseGeneratedPrepareEcdsaClientBootstrapOutput(input) {
239
243
  return {
240
244
  pendingStateBlob: parsePendingStateBlob(input.pendingStateBlob),
241
245
  clientBootstrap: {
242
- contextBinding32B64u: requireBase64UrlBytes$1(input.clientBootstrap.contextBinding32B64u, "contextBinding32B64u", 32),
246
+ contextBinding32B64u: requireBase64UrlBytes(input.clientBootstrap.contextBinding32B64u, "contextBinding32B64u", 32),
243
247
  derivationClientSharePublicKey33B64u,
244
248
  clientShareRetryCounter: input.clientBootstrap.clientShareRetryCounter,
245
249
  participantId: 1
246
250
  },
247
251
  publicFacts: {
248
252
  derivationClientSharePublicKey33B64u: parseDerivationClientSharePublicKey33B64u(input.publicFacts.derivationClientSharePublicKey33B64u),
249
- clientVerifyingShareB64u: parsePublicKey33B64u$1(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u")
253
+ clientVerifyingShareB64u: parsePublicKey33B64u(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u")
250
254
  }
251
255
  };
252
256
  }
@@ -267,12 +271,12 @@ function parseGeneratedFinalizeEcdsaClientBootstrapOutput(input) {
267
271
  return {
268
272
  stateBlob: parseReadyStateBlob(input.stateBlob),
269
273
  publicFacts: {
270
- contextBinding32B64u: requireBase64UrlBytes$1(input.publicFacts.contextBinding32B64u, "contextBinding32B64u", 32),
274
+ contextBinding32B64u: requireBase64UrlBytes(input.publicFacts.contextBinding32B64u, "contextBinding32B64u", 32),
271
275
  derivationClientSharePublicKey33B64u: parseDerivationClientSharePublicKey33B64u(input.publicFacts.derivationClientSharePublicKey33B64u),
272
- clientVerifyingShareB64u: parsePublicKey33B64u$1(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u"),
273
- relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u$1(input.publicFacts.relayerPublicKey33B64u),
274
- groupPublicKey33B64u: parsePublicKey33B64u$1(input.publicFacts.groupPublicKey33B64u, "groupPublicKey33B64u"),
275
- ethereumAddress: parseEthereumAddress$1(input.publicFacts.ethereumAddress)
276
+ clientVerifyingShareB64u: parsePublicKey33B64u(input.publicFacts.clientVerifyingShareB64u, "clientVerifyingShareB64u"),
277
+ relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u(input.publicFacts.relayerPublicKey33B64u),
278
+ groupPublicKey33B64u: parsePublicKey33B64u(input.publicFacts.groupPublicKey33B64u, "groupPublicKey33B64u"),
279
+ ethereumAddress: parseEthereumAddress(input.publicFacts.ethereumAddress)
276
280
  }
277
281
  };
278
282
  }
@@ -301,22 +305,6 @@ function signerCryptoCommandFailure(code, message) {
301
305
  message
302
306
  };
303
307
  }
304
- function requiredString$1(value, field) {
305
- if (typeof value !== "string") throw new Error(`ECDSA client bootstrap state is missing ${field}`);
306
- const normalized = value.trim();
307
- if (!normalized) throw new Error(`ECDSA client bootstrap state is missing ${field}`);
308
- return normalized;
309
- }
310
- function requiredNonNegativeInteger(value, field) {
311
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new Error(`${field} must be a non-negative safe integer`);
312
- return value;
313
- }
314
- function requireBase64UrlBytes(value, field, byteLength) {
315
- const normalized = String(value || "").trim();
316
- if (!normalized) throw new Error(`${field} is required`);
317
- if (base64UrlDecode(normalized).length !== byteLength) throw new Error(`${field} must decode to ${byteLength} bytes`);
318
- return normalized;
319
- }
320
308
  function decodeBase64UrlArrayBuffer(value) {
321
309
  const decoded = base64UrlDecode(value);
322
310
  const out = new ArrayBuffer(decoded.byteLength);
@@ -352,17 +340,6 @@ function browserPasskeyCreationOptions(options) {
352
340
  } } }
353
341
  };
354
342
  }
355
- function parsePublicKey33B64u(value, field) {
356
- return requireBase64UrlBytes(value, field, 33);
357
- }
358
- function parseRelayerEcdsaDerivationPublicKey33B64u(value) {
359
- return parsePublicKey33B64u(value, "ECDSA relayer DERIVATION public key");
360
- }
361
- function parseEthereumAddress(value) {
362
- const normalized = String(value || "").trim();
363
- if (!/^0x[0-9a-fA-F]{40}$/.test(normalized)) throw new Error("ECDSA relayer public identity has invalid ethereumAddress");
364
- return normalized;
365
- }
366
343
  function isNativeBindingFailureMessage(message) {
367
344
  return /wasm (initialization|initialize|instantiation)|webassembly|module_or_path|failed to (load|compile|instantiate) wasm|derivation client wasm initialization failed/i.test(message);
368
345
  }
@@ -388,17 +365,6 @@ function mapFinalizeEcdsaCommandError(error) {
388
365
  if (/relayer|public identity|group public key|ethereum address|threshold public key/i.test(message)) return signerCryptoCommandFailure("public_identity_mismatch", message);
389
366
  return signerCryptoCommandFailure("invalid_pending_state", message);
390
367
  }
391
- function parseRelayerPublicIdentity(input) {
392
- if (input === null || typeof input !== "object" || Array.isArray(input)) throw new Error("ECDSA relayer public identity must be an object");
393
- if (Object.keys(input).sort().join(",") !== "ethereumAddress,groupPublicKey33B64u,relayerKeyId,relayerPublicKey33B64u,relayerShareRetryCounter") throw new Error("ECDSA relayer public identity fields are invalid");
394
- return {
395
- relayerKeyId: requiredString$1(Reflect.get(input, "relayerKeyId"), "relayerKeyId"),
396
- relayerPublicKey33B64u: parseRelayerEcdsaDerivationPublicKey33B64u(requiredString$1(Reflect.get(input, "relayerPublicKey33B64u"), "relayerPublicKey33B64u")),
397
- groupPublicKey33B64u: parsePublicKey33B64u(requiredString$1(Reflect.get(input, "groupPublicKey33B64u"), "groupPublicKey33B64u"), "groupPublicKey33B64u"),
398
- ethereumAddress: parseEthereumAddress(Reflect.get(input, "ethereumAddress")),
399
- relayerShareRetryCounter: requiredNonNegativeInteger(Reflect.get(input, "relayerShareRetryCounter"), "relayerShareRetryCounter")
400
- };
401
- }
402
368
  function createBrowserDurableRecordStore(indexedDB) {
403
369
  return {
404
370
  kind: "durable_record_store",
@@ -745,11 +711,6 @@ function createBrowserSignerCryptoPort(workerCtx) {
745
711
  },
746
712
  async finalizeEcdsaClientBootstrap(input) {
747
713
  if (input.pendingStateBlob.kind !== "ecdsa_role_local_pending_state_blob_v1" || input.pendingStateBlob.curve !== "secp256k1" || input.pendingStateBlob.encoding !== "base64url" || input.pendingStateBlob.producer !== "signer_core") return signerCryptoCommandFailure("invalid_pending_state", "ECDSA client bootstrap pending blob envelope is invalid");
748
- try {
749
- parseRelayerPublicIdentity(input.relayerPublicIdentity);
750
- } catch (error) {
751
- return signerCryptoCommandFailure("invalid_relayer_public_identity", errorMessage(error));
752
- }
753
714
  if (!workerCtx) return signerCryptoInvocationFailure("unavailable", "ECDSA client bootstrap worker context is unavailable");
754
715
  try {
755
716
  return {
@@ -891,9 +852,8 @@ let DeviceLinkingErrorCode = /* @__PURE__ */ function(DeviceLinkingErrorCode) {
891
852
  DeviceLinkingErrorCode["INSUFFICIENT_BALANCE"] = "INSUFFICIENT_BALANCE";
892
853
  DeviceLinkingErrorCode["REGISTRATION_FAILED"] = "REGISTRATION_FAILED";
893
854
  /**
894
- * R103 zero-prompt handoff: Device 1 is not unlocked with the custody
895
- * capability linking needs. The QR flow never prompts; the user unlocks the
896
- * wallet and scans again.
855
+ * Device 1 is not unlocked with the custody capability linking needs. The
856
+ * QR flow never prompts; the user unlocks the wallet and scans again.
897
857
  */
898
858
  DeviceLinkingErrorCode["WALLET_UNLOCK_REQUIRED"] = "WALLET_UNLOCK_REQUIRED";
899
859
  /**
@@ -950,10 +910,9 @@ var Ed25519YaoPageLifecycleOwner = class {
950
910
  * this run registered under, and the Router's activation result.
951
911
  *
952
912
  * **Every identity here comes from the Router's receipt, not from this side.**
953
- * That matters most for `materialActivation`: it is a Refactor 90 identity, and
954
- * the boundary that mints it is the Router, exactly as on the PRF path. Nothing
955
- * here invents one — a locally minted activation ref would be a second owner
956
- * for state Refactor 90 owns.
913
+ * That matters most for `materialActivation`: the boundary that mints it is the
914
+ * Router, exactly as on the PRF path. Nothing here invents one — a locally
915
+ * minted activation ref would give that state a second owner.
957
916
  */
958
917
  function walletCustodyEd25519ActiveClientMetadataV1(input) {
959
918
  let raw;
@@ -1385,35 +1344,7 @@ async function recoverWalletCustodyManifestV1(input) {
1385
1344
  };
1386
1345
  }
1387
1346
  //#endregion
1388
- //#region src/core/signingEngine/session/sealedRecovery/materialActivationKey.ts
1389
- function ed25519DurableMaterialLocator(args) {
1390
- return {
1391
- kind: "ed25519_durable_material",
1392
- authMethod: args.authMethod,
1393
- materialActivation: args.materialActivation
1394
- };
1395
- }
1396
- function materialActivationKey(activation) {
1397
- return [
1398
- activation.activationId,
1399
- activation.capability,
1400
- activation.materialOwner,
1401
- activation.keyBinding,
1402
- activation.lifecycleBinding,
1403
- activation.signingWorker
1404
- ].map((part) => encodeURIComponent(String(part))).join(":");
1405
- }
1406
- //#endregion
1407
1347
  //#region src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.ts
1408
- function requireRecord$3(value, label) {
1409
- if (!isPlainObject(value)) throw new Error(`${label} must be an object`);
1410
- return value;
1411
- }
1412
- function requireString$3(value, label) {
1413
- const parsed = typeof value === "string" ? value.trim() : "";
1414
- if (!parsed) throw new Error(`${label} is required`);
1415
- return parsed;
1416
- }
1417
1348
  function requirePositiveInteger$2(value, label) {
1418
1349
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} must be a positive integer`);
1419
1350
  return value;
@@ -1565,31 +1496,28 @@ async function parseJsonResponseOrNull(response) {
1565
1496
  return null;
1566
1497
  }
1567
1498
  }
1568
- function sameRuntimePolicyScope(left, right) {
1569
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
1570
- }
1571
1499
  async function parseWarmRecoveryDescriptor(args) {
1572
1500
  const record = args.record;
1573
1501
  const response = args.response;
1574
1502
  exactResponseKeys(response, WARM_RECOVERY_RESPONSE_KEYS);
1575
1503
  if (response.kind !== "router_ab_ed25519_yao_v2_session_bootstrap_v1") throw new Error("warm recovery bootstrap response kind is invalid");
1576
1504
  const restore = record.ed25519Restore;
1577
- const walletId = requireString$3(response.walletId, "response.walletId");
1578
- const nearAccountId = requireString$3(response.nearAccountId, "response.nearAccountId");
1579
- const nearEd25519SigningKeyId = requireString$3(response.nearEd25519SigningKeyId, "response.nearEd25519SigningKeyId");
1505
+ const walletId = requireTrimmedString(response.walletId, "response.walletId");
1506
+ const nearAccountId = requireTrimmedString(response.nearAccountId, "response.nearAccountId");
1507
+ const nearEd25519SigningKeyId = requireTrimmedString(response.nearEd25519SigningKeyId, "response.nearEd25519SigningKeyId");
1580
1508
  const signerSlot = requirePositiveInteger$2(response.signerSlot, "response.signerSlot");
1581
- const thresholdSessionId = requireString$3(response.thresholdSessionId, "response.thresholdSessionId");
1582
- const signingWorkerId = requireString$3(response.signingWorkerId, "response.signingWorkerId");
1509
+ const thresholdSessionId = requireTrimmedString(response.thresholdSessionId, "response.thresholdSessionId");
1510
+ const signingWorkerId = requireTrimmedString(response.signingWorkerId, "response.signingWorkerId");
1583
1511
  const thresholdExpiresAtMs = requirePositiveInteger$2(response.thresholdExpiresAtMs, "response.thresholdExpiresAtMs");
1584
1512
  const participantIds = requireParticipantIds$1(response.participantIds);
1585
- const responseRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$3(response.runtimePolicyScope, "response.runtimePolicyScope"));
1586
- const sealedRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$3(restore.runtimePolicyScope, "ed25519Restore.runtimePolicyScope"));
1513
+ const responseRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$1(response.runtimePolicyScope, "response.runtimePolicyScope"));
1514
+ const sealedRuntimePolicyScope = normalizeRuntimePolicyScope(requireRecord$1(restore.runtimePolicyScope, "ed25519Restore.runtimePolicyScope"));
1587
1515
  const routerAbNormalSigning = parseRouterAbEd25519NormalSigningState(response.routerAbNormalSigning);
1588
1516
  const walletSessionId = parseWalletSessionId(response.walletSessionId);
1589
1517
  const quotaId = parseMpcWalletSigningQuotaId(response.quotaId);
1590
1518
  const capability = parseEd25519YaoRecoveryCapabilityV1(response.capability);
1591
1519
  const walletSessionToken = args.authorization.operationCredential.token;
1592
- if (!walletSessionId.ok || !quotaId.ok || args.expectedAuthorityRef.walletId !== record.walletId || String(walletSessionId.value) !== String(args.authorization.operationCredential.walletSessionId) || String(quotaId.value) !== String(args.authorization.record.quotaId) || !routerAbNormalSigning || walletId !== record.walletId || nearAccountId !== restore.nearAccountId || nearEd25519SigningKeyId !== restore.nearEd25519SigningKeyId || signerSlot !== restore.signerSlot || thresholdSessionId !== String(args.expectedThresholdSessionId) || !walletSessionToken || signingWorkerId !== restore.relayerKeyId || signingWorkerId !== restore.routerAbNormalSigning.signingWorkerId || routerAbNormalSigning.signingWorkerId !== signingWorkerId || record.expiresAtMs > thresholdExpiresAtMs || participantIds[0] !== restore.participantIds[0] || participantIds[1] !== restore.participantIds[1] || !sameRuntimePolicyScope(responseRuntimePolicyScope, sealedRuntimePolicyScope)) throw new Error("warm recovery bootstrap does not match the exact sealed Ed25519 lane");
1520
+ if (!walletSessionId.ok || !quotaId.ok || args.expectedAuthorityRef.walletId !== record.walletId || String(walletSessionId.value) !== String(args.authorization.operationCredential.walletSessionId) || String(quotaId.value) !== String(args.authorization.record.quotaId) || !routerAbNormalSigning || walletId !== record.walletId || nearAccountId !== restore.nearAccountId || nearEd25519SigningKeyId !== restore.nearEd25519SigningKeyId || signerSlot !== restore.signerSlot || thresholdSessionId !== String(args.expectedThresholdSessionId) || !walletSessionToken || signingWorkerId !== restore.relayerKeyId || signingWorkerId !== restore.routerAbNormalSigning.signingWorkerId || routerAbNormalSigning.signingWorkerId !== signingWorkerId || record.expiresAtMs > thresholdExpiresAtMs || participantIds[0] !== restore.participantIds[0] || participantIds[1] !== restore.participantIds[1] || !sameRuntimePolicyScope$1(responseRuntimePolicyScope, sealedRuntimePolicyScope)) throw new Error("warm recovery bootstrap does not match the exact sealed Ed25519 lane");
1593
1521
  if (!signingRootScopeFromRuntimePolicyScope(responseRuntimePolicyScope)) throw new Error("warm recovery bootstrap signing-root scope is invalid");
1594
1522
  if (!walletSessionToken) throw new Error("[SigningEngine][near] active Wallet Session authorization is unavailable");
1595
1523
  const descriptor = {
@@ -1600,7 +1528,7 @@ async function parseWarmRecoveryDescriptor(args) {
1600
1528
  signerSlot,
1601
1529
  operationalPublicKey: `ed25519:${base58Encode(Uint8Array.from(capability.registeredPublicKey))}`,
1602
1530
  relayerKeyId: signingWorkerId,
1603
- credentialIdB64u: requireString$3(restore.credentialIdB64u, "ed25519Restore.credentialIdB64u"),
1531
+ credentialIdB64u: requireTrimmedString(restore.credentialIdB64u, "ed25519Restore.credentialIdB64u"),
1604
1532
  session: {
1605
1533
  sessionKind: "opaque",
1606
1534
  walletSessionToken,
@@ -1627,7 +1555,7 @@ async function resolvePasskeyEd25519YaoExportContextV1(input, runtime) {
1627
1555
  };
1628
1556
  const walletId = parseWalletId(exactRecord.record.walletId);
1629
1557
  if (!walletId.ok) throw new Error("[SigningEngine][near] sealed Ed25519 wallet identity is invalid");
1630
- const credentialIdB64u = requireString$3(exactRecord.record.ed25519Restore.credentialIdB64u, "ed25519Restore.credentialIdB64u");
1558
+ const credentialIdB64u = requireTrimmedString(exactRecord.record.ed25519Restore.credentialIdB64u, "ed25519Restore.credentialIdB64u");
1631
1559
  let expectedAuthorityRef;
1632
1560
  try {
1633
1561
  expectedAuthorityRef = await runtime.resolveExactPasskeyWalletAuthAuthorityRef({
@@ -1812,7 +1740,7 @@ const WALLET_KEY_LIFECYCLE_FIELDS = [
1812
1740
  "retiredAtMs",
1813
1741
  "compromisedAtMs"
1814
1742
  ];
1815
- const SIGNING_LANE_REFERENCE_FIELDS = [
1743
+ const SIGNING_LANE_RECORD_BASE_FIELDS = [...[
1816
1744
  "kind",
1817
1745
  "walletId",
1818
1746
  "walletKeyId",
@@ -1820,9 +1748,7 @@ const SIGNING_LANE_REFERENCE_FIELDS = [
1820
1748
  "laneKind",
1821
1749
  "laneShareEpoch",
1822
1750
  "participantBindingDigestB64u"
1823
- ];
1824
- [...SIGNING_LANE_REFERENCE_FIELDS];
1825
- const SIGNING_LANE_RECORD_BASE_FIELDS = [...SIGNING_LANE_REFERENCE_FIELDS, "lifecycle"];
1751
+ ], "lifecycle"];
1826
1752
  const OWNER_AUTH_SIGNING_LANE_FIELDS = [
1827
1753
  ...SIGNING_LANE_RECORD_BASE_FIELDS,
1828
1754
  "walletAuthMethodId",
@@ -1868,10 +1794,6 @@ function signingLaneRecordFields(laneKind) {
1868
1794
  case "delegated_execution": return DELEGATED_SIGNING_LANE_FIELDS;
1869
1795
  }
1870
1796
  }
1871
- function requireResult(result, label) {
1872
- if (result.ok) return result.value;
1873
- throw new Error(`${label} ${result.error.message}`);
1874
- }
1875
1797
  function parseRequiredDomainId(raw, label) {
1876
1798
  if (raw === void 0 || raw === null) throw new Error(`${label} is required`);
1877
1799
  if (typeof raw !== "string") throw new Error(`${label} must be a string`);
@@ -1915,7 +1837,7 @@ function parseSigningLaneKind(raw, label) {
1915
1837
  }
1916
1838
  }
1917
1839
  function parseWalletKeyLifecycleState(raw, label) {
1918
- const record = requireRecord$4(raw, label);
1840
+ const record = requireRecord$1(raw, label);
1919
1841
  rejectUnknownFields(record, WALLET_KEY_LIFECYCLE_FIELDS, label, WALLET_KEY_LIFECYCLE_FIELDS);
1920
1842
  switch (record.state) {
1921
1843
  case "active":
@@ -1931,7 +1853,7 @@ function parseWalletKeyLifecycleState(raw, label) {
1931
1853
  }
1932
1854
  }
1933
1855
  function parseSigningLaneLifecycleState(raw, label) {
1934
- const record = requireRecord$4(raw, label);
1856
+ const record = requireRecord$1(raw, label);
1935
1857
  rejectUnknownFields(record, ALL_SIGNING_LANE_LIFECYCLE_FIELDS, label);
1936
1858
  const revocationEpoch = parseNonNegativeSafeInteger(record.revocationEpoch, `${label}.revocationEpoch`);
1937
1859
  switch (record.state) {
@@ -1971,12 +1893,12 @@ function parseSigningLaneLifecycleState(raw, label) {
1971
1893
  function parseSigningLaneReferenceFields(record, label) {
1972
1894
  if (record.kind !== "signing_lane_reference_v1") throw new Error(`${label}.kind must be signing_lane_reference_v1`);
1973
1895
  return buildSigningLaneReference({
1974
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
1975
- walletKeyId: requireResult(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
1976
- laneId: requireResult(parseSigningLaneId(record.laneId), `${label}.laneId`),
1977
- laneShareEpoch: requireResult(parseLaneShareEpoch(record.laneShareEpoch), `${label}.laneShareEpoch`),
1896
+ walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
1897
+ walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
1898
+ laneId: requireParsed$1(parseSigningLaneId(record.laneId), `${label}.laneId`),
1899
+ laneShareEpoch: requireParsed$1(parseLaneShareEpoch(record.laneShareEpoch), `${label}.laneShareEpoch`),
1978
1900
  laneKind: parseSigningLaneKind(record.laneKind, `${label}.laneKind`),
1979
- participantBindingDigestB64u: requireResult(parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u), `${label}.participantBindingDigestB64u`)
1901
+ participantBindingDigestB64u: requireParsed$1(parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u), `${label}.participantBindingDigestB64u`)
1980
1902
  });
1981
1903
  }
1982
1904
  function parseSigningLaneRecordCommon(record, label) {
@@ -1995,7 +1917,7 @@ function parseOwnerAuthSigningLaneRecordBase(record, label) {
1995
1917
  const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
1996
1918
  return {
1997
1919
  ...common,
1998
- walletAuthMethodId: requireResult(walletAuthMethodId, `${label}.walletAuthMethodId`),
1920
+ walletAuthMethodId: requireParsed$1(walletAuthMethodId, `${label}.walletAuthMethodId`),
1999
1921
  ownerParticipantContinuity: parseOwnerLaneParticipantContinuityV1(record.ownerParticipantContinuity, `${label}.ownerParticipantContinuity`)
2000
1922
  };
2001
1923
  }
@@ -2186,13 +2108,13 @@ function buildBreakGlassSigningLaneRecord(args) {
2186
2108
  };
2187
2109
  }
2188
2110
  function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
2189
- const record = requireRecord$4(raw, label);
2111
+ const record = requireRecord$1(raw, label);
2190
2112
  if (record.kind !== "wallet_key_record_v1") throw new Error(`${label}.kind must be wallet_key_record_v1`);
2191
2113
  if (record.keyFamily === "ed25519") {
2192
2114
  rejectUnknownFields(record, ED25519_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
2193
2115
  return buildEd25519WalletKeyRecord({
2194
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
2195
- walletKeyId: requireResult(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
2116
+ walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
2117
+ walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
2196
2118
  walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
2197
2119
  nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(record.nearEd25519SigningKeyId),
2198
2120
  keyCreationSignerSlot: parseKeyCreationSignerSlot(record.keyCreationSignerSlot, `${label}.keyCreationSignerSlot`),
@@ -2203,8 +2125,8 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
2203
2125
  if (record.keyFamily === "ecdsa_secp256k1") {
2204
2126
  rejectUnknownFields(record, EVM_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
2205
2127
  return buildEvmFamilyWalletKeyRecord({
2206
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
2207
- walletKeyId: requireResult(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
2128
+ walletId: requireParsed$1(parseWalletId(record.walletId), `${label}.walletId`),
2129
+ walletKeyId: requireParsed$1(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
2208
2130
  walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
2209
2131
  evmFamilySigningKeySlotId: requireEvmFamilySigningKeySlotId(record.evmFamilySigningKeySlotId, `${label}.evmFamilySigningKeySlotId`),
2210
2132
  thresholdPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.thresholdPublicKey33B64u, `${label}.thresholdPublicKey33B64u`),
@@ -2215,7 +2137,7 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
2215
2137
  throw new Error(`${label}.keyFamily must be ed25519 or ecdsa_secp256k1`);
2216
2138
  }
2217
2139
  function parseSigningLaneRecord(raw, label = "signingLaneRecord") {
2218
- const record = requireRecord$4(raw, label);
2140
+ const record = requireRecord$1(raw, label);
2219
2141
  if (record.kind !== "signing_lane_reference_v1") throw new Error(`${label}.kind must be signing_lane_reference_v1`);
2220
2142
  const laneKind = parseSigningLaneKind(record.laneKind, `${label}.laneKind`);
2221
2143
  rejectUnknownFields(record, signingLaneRecordFields(laneKind), label, ALL_SIGNING_LANE_RECORD_FIELDS);
@@ -2233,7 +2155,7 @@ function parseSigningLaneRecord(raw, label = "signingLaneRecord") {
2233
2155
  holderParticipant: base.holderParticipant,
2234
2156
  serverParticipant: base.serverParticipant,
2235
2157
  lifecycle: base.lifecycle,
2236
- linkedDeviceId: requireResult(parseLinkedDeviceId(record.linkedDeviceId), `${label}.linkedDeviceId`)
2158
+ linkedDeviceId: requireParsed$1(parseLinkedDeviceId(record.linkedDeviceId), `${label}.linkedDeviceId`)
2237
2159
  });
2238
2160
  }
2239
2161
  case "delegated_execution": {
@@ -2773,26 +2695,42 @@ function exactEcdsaParticipantIds(value) {
2773
2695
  if (!Number.isSafeInteger(first) || !Number.isSafeInteger(second) || first <= 0 || second <= 0 || first === second) throw new Error("[SigningEngine][ecdsa-export] ECDSA participant set is invalid");
2774
2696
  return [first, second];
2775
2697
  }
2776
- function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
2777
- const { exportLane } = args;
2698
+ function requireCanonicalEcdsaExportLane(args) {
2699
+ const { exportLane, label } = args;
2778
2700
  const capability = exportLane.capability;
2779
- if (!isEmailOtpWalletAuthAuthority(capability.authority)) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability authority mismatch");
2780
2701
  const signer = capability.manifest.signer;
2781
- if (signer.walletId !== exportLane.key.walletId || !signer.scope.targetMemberships.some((target) => thresholdEcdsaChainTargetsEqual(target, exportLane.chainTarget))) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability target mismatch");
2782
- if (exportLane.laneIdentity.auth.kind !== "email_otp" || exportLane.laneIdentity.auth.providerSubjectId !== capability.authority.factor.providerUserId) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability auth mismatch");
2783
- if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error("[SigningEngine][ecdsa-export] Email OTP material activation mismatch");
2702
+ if (signer.walletId !== exportLane.key.walletId || !signer.scope.targetMemberships.some((target) => thresholdEcdsaChainTargetsEqual(target, exportLane.chainTarget))) throw new Error(`[SigningEngine][ecdsa-export] ${label} capability target mismatch`);
2703
+ if (!args.authMatches()) throw new Error(`[SigningEngine][ecdsa-export] ${label} capability auth mismatch`);
2704
+ if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error(`[SigningEngine][ecdsa-export] ${label} material activation mismatch`);
2784
2705
  assertMatchingVerifiedEcdsaPublicFacts({
2785
2706
  expected: exportLane.publicFacts,
2786
- actual: capability.manifest.signer.registeredPublicFacts,
2787
- context: "canonical Email OTP export lane"
2707
+ actual: signer.registeredPublicFacts,
2708
+ context: `canonical ${label} export lane`
2788
2709
  });
2789
2710
  const materialFacts = capability.material.publicFacts;
2790
- if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error("[SigningEngine][ecdsa-export] canonical Email OTP export material mismatch");
2711
+ if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error(`[SigningEngine][ecdsa-export] canonical ${label} export material mismatch`);
2791
2712
  const durable = capability.manifest.durableMaterial;
2792
2713
  const runtimePolicyScope = durable.runtimePolicyScope;
2793
2714
  const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
2794
- if (!runtimePolicyScope) throw new Error("[SigningEngine][ecdsa-export] Email OTP runtime policy scope is missing");
2795
- if (!relayerUrl) throw new Error("[SigningEngine][ecdsa-export] Email OTP export relayer URL is missing");
2715
+ if (!runtimePolicyScope) throw new Error(`[SigningEngine][ecdsa-export] ${label} runtime policy scope is missing`);
2716
+ if (!relayerUrl) throw new Error(`[SigningEngine][ecdsa-export] ${label} export relayer URL is missing`);
2717
+ return {
2718
+ durable,
2719
+ runtimePolicyScope,
2720
+ relayerUrl
2721
+ };
2722
+ }
2723
+ function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
2724
+ const { exportLane } = args;
2725
+ const capability = exportLane.capability;
2726
+ const authority = capability.authority;
2727
+ if (!isEmailOtpWalletAuthAuthority(authority)) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability authority mismatch");
2728
+ const { durable, runtimePolicyScope, relayerUrl } = requireCanonicalEcdsaExportLane({
2729
+ deps: args.deps,
2730
+ exportLane,
2731
+ label: "Email OTP",
2732
+ authMatches: () => exportLane.laneIdentity.auth.kind === "email_otp" && exportLane.laneIdentity.auth.providerSubjectId === authority.factor.providerUserId
2733
+ });
2796
2734
  return {
2797
2735
  source: "canonical_capability",
2798
2736
  kind: "fresh_email_otp_route_auth_ready",
@@ -2806,30 +2744,21 @@ function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
2806
2744
  relayerUrl,
2807
2745
  authorization: {
2808
2746
  kind: "fresh_operation_authorization_required",
2809
- authority: capability.authority
2747
+ authority
2810
2748
  }
2811
2749
  };
2812
2750
  }
2813
2751
  function resolveCanonicalPasskeyEcdsaExportMaterialForLane(args) {
2814
2752
  const { exportLane } = args;
2815
2753
  const capability = exportLane.capability;
2816
- if (!isPasskeyWalletAuthAuthority(capability.authority)) throw new Error("[SigningEngine][ecdsa-export] passkey capability authority mismatch");
2817
- const signer = capability.manifest.signer;
2818
- if (signer.walletId !== exportLane.key.walletId || !signer.scope.targetMemberships.some((target) => thresholdEcdsaChainTargetsEqual(target, exportLane.chainTarget))) throw new Error("[SigningEngine][ecdsa-export] passkey capability target mismatch");
2819
- if (exportLane.laneIdentity.auth.kind !== "passkey" || exportLane.laneIdentity.auth.credentialIdB64u !== capability.authority.factor.credentialIdB64u) throw new Error("[SigningEngine][ecdsa-export] passkey capability auth mismatch");
2820
- if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error("[SigningEngine][ecdsa-export] passkey material activation mismatch");
2821
- assertMatchingVerifiedEcdsaPublicFacts({
2822
- expected: exportLane.publicFacts,
2823
- actual: signer.registeredPublicFacts,
2824
- context: "canonical passkey export lane"
2754
+ const authority = capability.authority;
2755
+ if (!isPasskeyWalletAuthAuthority(authority)) throw new Error("[SigningEngine][ecdsa-export] passkey capability authority mismatch");
2756
+ const { durable, runtimePolicyScope, relayerUrl } = requireCanonicalEcdsaExportLane({
2757
+ deps: args.deps,
2758
+ exportLane,
2759
+ label: "passkey",
2760
+ authMatches: () => exportLane.laneIdentity.auth.kind === "passkey" && exportLane.laneIdentity.auth.credentialIdB64u === authority.factor.credentialIdB64u
2825
2761
  });
2826
- const materialFacts = capability.material.publicFacts;
2827
- if (materialFacts.walletId !== signer.walletId || String(materialFacts.keyHandle) !== String(exportLane.publicFacts.keyHandle) || String(materialFacts.groupPublicKey33B64u) !== String(exportLane.publicFacts.publicKeyB64u) || String(materialFacts.ethereumAddress) !== String(exportLane.publicFacts.thresholdOwnerAddress) || materialFacts.participantIds.length !== exportLane.publicFacts.participantIds.length || materialFacts.participantIds.some((participantId, index) => participantId !== exportLane.publicFacts.participantIds[index])) throw new Error("[SigningEngine][ecdsa-export] canonical passkey export material mismatch");
2828
- const durable = capability.manifest.durableMaterial;
2829
- const runtimePolicyScope = durable.runtimePolicyScope;
2830
- const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
2831
- if (!runtimePolicyScope) throw new Error("[SigningEngine][ecdsa-export] passkey runtime policy scope is missing");
2832
- if (!relayerUrl) throw new Error("[SigningEngine][ecdsa-export] passkey export relayer URL is missing");
2833
2762
  return {
2834
2763
  source: "canonical_capability",
2835
2764
  kind: "fresh_passkey_needs_authorization",
@@ -2990,7 +2919,7 @@ async function resolveEcdsaExportMaterialForLane(deps, exportLane) {
2990
2919
  const ECDSA_DERIVATION_EXPORT_CONFIRMATION_DIGEST_VERSION = "ecdsa-derivation:role-local:product-export-confirmation:v5";
2991
2920
  const ECDSA_DERIVATION_EXPORT_AUTHORIZATION_DIGEST_VERSION = "ecdsa-derivation:role-local:product-export-authorization:v5";
2992
2921
  const ECDSA_DERIVATION_EXPORT_AUTH_TTL_MS = 6e4;
2993
- function exportAuthorizationWire(authorization) {
2922
+ function exportAuthorizationWire(_authorization) {
2994
2923
  return { kind: "operation_step_up" };
2995
2924
  }
2996
2925
  function exportAuthorizationDigestFields(authorization) {
@@ -5010,7 +4939,7 @@ async function prepareAndShowEcdsaExportArtifact(deps, args) {
5010
4939
  });
5011
4940
  const materialActivation = args.exportLane.laneIdentity.signer.materialActivation;
5012
4941
  const artifact = await deps.withThresholdEcdsaSigningQueue({
5013
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation }),
4942
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
5014
4943
  walletId: args.exportLane.key.walletId,
5015
4944
  enabled: true,
5016
4945
  task: async () => {
@@ -5065,7 +4994,7 @@ function requirePasskeyEcdsaExportAuth(exportLane) {
5065
4994
  return auth;
5066
4995
  }
5067
4996
  async function exportOperationDigest(value) {
5068
- return parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify(value))));
4997
+ return sha256Utf8DigestB64u(alphabetizeStringify(value));
5069
4998
  }
5070
4999
  async function prepareExplicitEcdsaExportOperationWithRuntime(args) {
5071
5000
  const chainTargetKey = thresholdEcdsaChainTargetKey(args.chainTarget);
@@ -6027,7 +5956,7 @@ async function exportEd25519YaoKeyWithFreshAuthorization(deps, args) {
6027
5956
  }
6028
5957
  });
6029
5958
  const result = await deps.withThresholdEd25519CommitQueue({
6030
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: passkeyEd25519ExportMaterialActivation(resolved) }),
5959
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: passkeyEd25519ExportMaterialActivation(resolved) }),
6031
5960
  nearAccountId: args.nearAccountId,
6032
5961
  enabled: true,
6033
5962
  task: () => deps.passkeyMpcExport.exportPrivateKeysWithUi(buildWorkerPayload({
@@ -6123,7 +6052,7 @@ async function exportEd25519YaoKeyWithFreshEmailOtp(deps, args) {
6123
6052
  onEvent: args.onEvent
6124
6053
  });
6125
6054
  const artifact = await deps.withThresholdEd25519CommitQueue({
6126
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: emailOtpEd25519ExportMaterialActivation(resolved.context) }),
6055
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: emailOtpEd25519ExportMaterialActivation(resolved.context) }),
6127
6056
  nearAccountId: args.nearAccountId,
6128
6057
  enabled: resolved.context.material.kind === "active_capability",
6129
6058
  task: () => deps.emailOtp.exportSeedWithFreshAuthorization({
@@ -6359,14 +6288,11 @@ async function exportEd25519KeypairWithFlowId(deps, args) {
6359
6288
  onEvent: args.options.onEvent
6360
6289
  });
6361
6290
  }
6362
- async function exportEd25519KeypairWithSessionLifecycle(deps, args) {
6363
- return await exportEd25519KeypairWithFlowId(deps, args);
6364
- }
6365
6291
  async function exportKeypairWithUI$1(deps, input) {
6366
6292
  return await runKeyExportWithFlowEvents(input, async (args) => {
6367
6293
  switch (args.kind) {
6368
6294
  case "ecdsa": return await exportEcdsaKeypairWithSessionLifecycle(deps, args, { kind: "initial" });
6369
- case "ed25519": return await exportEd25519KeypairWithSessionLifecycle(deps, args);
6295
+ case "ed25519": return await exportEd25519KeypairWithFlowId(deps, args);
6370
6296
  }
6371
6297
  });
6372
6298
  }
@@ -6836,7 +6762,6 @@ const BUILD_PATHS = {
6836
6762
  WASM_SIGNER: "../../wasm/near_signer",
6837
6763
  ED25519_YAO_CLIENT: "../../crates/router-ab-ed25519-yao-client",
6838
6764
  WASM_ECDSA_CLIENT: "../../wasm/router_ab_ecdsa_client",
6839
- WASM_ECDSA_SIGNING_WORKER: "../../wasm/router_ab_ecdsa_signing_worker",
6840
6765
  WASM_EVM_CRYPTO: "../../wasm/evm_crypto",
6841
6766
  WASM_TEMPO_SIGNER: "../../wasm/tempo_signer",
6842
6767
  WASM_SHAMIR3PASS_RUNTIME: "../../wasm/shamir3pass_runtime",
@@ -6852,7 +6777,6 @@ const BUILD_PATHS = {
6852
6777
  "../../crates/router-ab-ed25519-yao-client",
6853
6778
  "../../wasm/near_signer",
6854
6779
  "../../wasm/router_ab_ecdsa_client",
6855
- "../../wasm/router_ab_ecdsa_signing_worker",
6856
6780
  "../../wasm/evm_crypto",
6857
6781
  "../../wasm/tempo_signer",
6858
6782
  "../../wasm/shamir3pass_runtime",
@@ -7208,9 +7132,6 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
7208
7132
  let nearContextFailed = false;
7209
7133
  const confirmationReadiness = consumeConfirmationReadiness(request.requestId);
7210
7134
  let confirmationReadinessPending = !!confirmationReadiness;
7211
- const originalBody = String(transactionSummary.body || "").trim();
7212
- const confirmationReadinessBody = String(confirmationReadiness?.body || "").trim();
7213
- const restoreOriginalBody = () => ({ body: originalBody });
7214
7135
  const confirmationReadinessPromise = confirmationReadiness ? Promise.resolve(confirmationReadiness.promise) : void 0;
7215
7136
  const walletSessionExpiryPromise = confirmationReadinessPromise ? waitForWalletSessionExpiry(confirmationReadinessPromise) : void 0;
7216
7137
  const markPromptReady = () => {
@@ -7223,10 +7144,7 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
7223
7144
  loading: false,
7224
7145
  onMounted: () => {
7225
7146
  markPromptReady();
7226
- if (confirmationReadinessPending && confirmationReadinessBody) session.updateUI({
7227
- loading: false,
7228
- body: confirmationReadinessBody
7229
- });
7147
+ if (confirmationReadinessPending) session.updateUI({ preparing: true });
7230
7148
  }
7231
7149
  }) : Promise.resolve({ confirmed: true });
7232
7150
  if (reviewPromptRequired) promptDecisionPromise.finally(markPromptReady);
@@ -7267,20 +7185,19 @@ async function handleTransactionSigningFlow(ctx, request, worker, opts) {
7267
7185
  if (confirmationReadinessPromise) confirmationReadinessPromise.then(async () => {
7268
7186
  confirmationReadinessPending = false;
7269
7187
  await promptReady;
7270
- if (decisionResolved || nearContextFailed) return;
7271
- session.updateUI({
7272
- ...restoreOriginalBody(),
7273
- loading: false,
7274
- errorMessage: ""
7275
- });
7188
+ if (decisionResolved) return;
7189
+ session.updateUI({ preparing: false });
7276
7190
  }).catch(async (error) => {
7277
7191
  confirmationReadinessPending = false;
7278
7192
  await promptReady;
7279
- if (decisionResolved || nearContextFailed) return;
7193
+ if (decisionResolved) return;
7194
+ if (nearContextFailed) {
7195
+ session.updateUI({ preparing: false });
7196
+ return;
7197
+ }
7280
7198
  const message = String(toError(error)?.message || "NEAR signing session could not be finalized");
7281
7199
  session.updateUI({
7282
- ...restoreOriginalBody(),
7283
- loading: false,
7200
+ preparing: false,
7284
7201
  errorMessage: `NEAR signing session could not be finalized: ${message}`
7285
7202
  });
7286
7203
  });
@@ -7759,13 +7676,13 @@ async function handlePromptFromWorker(ctx, message, worker, options) {
7759
7676
  switch (request.type) {
7760
7677
  case UserConfirmationType.AUTHORIZE_KEY_EXPORT:
7761
7678
  case UserConfirmationType.SHOW_SECURE_PRIVATE_KEY_UI: {
7762
- const { handleLocalOnlyFlow } = await import("./localOnly-CbLYTVbo.js");
7679
+ const { handleLocalOnlyFlow } = await import("./localOnly-DTpa2jD5.js");
7763
7680
  await handleLocalOnlyFlow(ctx, request, scopedWorker, flowOptions);
7764
7681
  break;
7765
7682
  }
7766
7683
  case UserConfirmationType.REGISTER_ACCOUNT:
7767
7684
  case UserConfirmationType.LINK_DEVICE: {
7768
- const { handleRegistrationFlow } = await import("./registration-DtDICj-o.js").then((n) => n.n);
7685
+ const { handleRegistrationFlow } = await import("./registration-DHERU8R_.js").then((n) => n.n);
7769
7686
  await handleRegistrationFlow(ctx, request, scopedWorker, flowOptions);
7770
7687
  break;
7771
7688
  }
@@ -9280,11 +9197,8 @@ function ecdsaSealedRuntimePurpose(purpose) {
9280
9197
  }
9281
9198
  //#endregion
9282
9199
  //#region src/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.ts
9283
- function asRecord(value) {
9284
- return typeof value === "object" && value !== null ? value : null;
9285
- }
9286
9200
  function parseVolatileWarmSessionScope(value) {
9287
- const raw = asRecord(value);
9201
+ const raw = asRecordOrArray(value);
9288
9202
  if (!raw) return null;
9289
9203
  if (raw.kind === "all") return { kind: "all" };
9290
9204
  if (raw.kind !== "session") return null;
@@ -9296,7 +9210,7 @@ function parseVolatileWarmSessionScope(value) {
9296
9210
  };
9297
9211
  }
9298
9212
  function parseClearVolatileWarmMaterialCommand(value) {
9299
- const raw = asRecord(value);
9213
+ const raw = asRecordOrArray(value);
9300
9214
  if (!raw || raw.kind !== "clear_volatile_warm_material") return null;
9301
9215
  if (raw.durableRecord != null || raw.resolvedIdentity != null || raw.deleteReason != null) return null;
9302
9216
  const scope = parseVolatileWarmSessionScope(raw.scope);
@@ -10845,7 +10759,7 @@ var PasskeyMpcSessionManagerImpl = class {
10845
10759
  if (inFlight) return requirePasskeyEcdsaRestoreOutcome(await inFlight, "ready");
10846
10760
  const task = withThresholdEcdsaSigningQueue({
10847
10761
  queueByKey: this.deps.thresholdEcdsaSigningQueueByKey,
10848
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
10762
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
10849
10763
  walletId: toWalletId(args.walletId),
10850
10764
  enabled: true,
10851
10765
  task: async () => await this.restorePasskeyEcdsaRecord({
@@ -11241,9 +11155,8 @@ function requireExpectedPasskeyRegistrationUser(input) {
11241
11155
  * and generates credentials, and PRF Outputs
11242
11156
  */
11243
11157
  var TouchIdPrompt = class TouchIdPrompt {
11244
- constructor(rpIdOverride, safariGetWebauthnRegistrationFallback = false) {
11158
+ constructor(rpIdOverride, _safariGetWebauthnRegistrationFallback = false) {
11245
11159
  this.rpIdOverride = rpIdOverride;
11246
- this.safariGetWebauthnRegistrationFallback = safariGetWebauthnRegistrationFallback === true;
11247
11160
  }
11248
11161
  getRpId() {
11249
11162
  try {
@@ -11701,6 +11614,18 @@ const SIGNER_WORKER_KINDS = [
11701
11614
  "walletCustodyCeremony"
11702
11615
  ];
11703
11616
  const MULTICHAIN_WORKER_DEFAULT_TIMEOUT_MS = 2e4;
11617
+ /**
11618
+ * A timed-out operation resets its worker, and resetting a presign or
11619
+ * derivation worker discards the state other ceremonies hold in it. Name the
11620
+ * operation that caused the reset.
11621
+ */
11622
+ function warnWorkerOperationTimedOut(kind, type, timeoutMs) {
11623
+ console.warn("[WorkerTransport] operation timed out; resetting worker", {
11624
+ kind,
11625
+ type: String(type),
11626
+ timeoutMs
11627
+ });
11628
+ }
11704
11629
  function makeId(prefix) {
11705
11630
  return secureRandomId(prefix, 32, "signer worker request IDs");
11706
11631
  }
@@ -11805,11 +11730,11 @@ var WorkerTransport = class {
11805
11730
  return readiness.promise;
11806
11731
  }
11807
11732
  /**
11808
- * Refactor 94C. Initializes the ECDSA derivation and registration WASM
11809
- * inside the derivation worker during the authentication prompt, so the
11810
- * first ceremony call after auth does not pay module init (measured 654 ms
11811
- * cold vs 88 ms warm on `ecdsaRegistrationClientCreateMs`). Fire-and-forget
11812
- * safe: failure leaves the lazy init path exactly as it was.
11733
+ * Initializes the ECDSA derivation and registration WASM inside the
11734
+ * derivation worker during the authentication prompt, so the first ceremony
11735
+ * call after auth does not pay module init (measured 654 ms cold vs 88 ms
11736
+ * warm on `ecdsaRegistrationClientCreateMs`). Fire-and-forget safe: failure
11737
+ * leaves the lazy init path exactly as it was.
11813
11738
  */
11814
11739
  async prewarmEcdsaRegistrationCrypto() {
11815
11740
  const existing = this.ecdsaRegistrationCryptoPrewarmPromise;
@@ -11921,6 +11846,7 @@ var WorkerTransport = class {
11921
11846
  code: "TIMEOUT",
11922
11847
  workerKind: "nearSigner"
11923
11848
  }));
11849
+ warnWorkerOperationTimedOut("nearSigner", type, timeoutMs);
11924
11850
  this.resetWorker("nearSigner");
11925
11851
  try {
11926
11852
  const seconds = Math.round(timeoutMs / 1e3);
@@ -11962,6 +11888,7 @@ var WorkerTransport = class {
11962
11888
  code: "TIMEOUT",
11963
11889
  workerKind: "ecdsaDerivationClient"
11964
11890
  }));
11891
+ warnWorkerOperationTimedOut("ecdsaDerivationClient", type, timeoutMs);
11965
11892
  this.resetWorker("ecdsaDerivationClient");
11966
11893
  }, timeoutMs);
11967
11894
  this.getPendingMap("ecdsaDerivationClient").set(requestId, {
@@ -11996,6 +11923,7 @@ var WorkerTransport = class {
11996
11923
  code: "TIMEOUT",
11997
11924
  workerKind: kind
11998
11925
  }));
11926
+ warnWorkerOperationTimedOut(kind, request.type, timeoutMs);
11999
11927
  this.resetWorker(kind);
12000
11928
  }, timeoutMs);
12001
11929
  this.getPendingMap(kind).set(requestId, {
@@ -12038,11 +11966,7 @@ var WorkerTransport = class {
12038
11966
  return worker;
12039
11967
  }
12040
11968
  connectPresignAuthorityChannel(request) {
12041
- if (request.type === EcdsaPresignClientRequestType.ListAvailable && this.presignAuthorityKind === null) {
12042
- this.connectDerivationPresignChannel(this.getOrCreateWorker("ecdsaPresignClient"), "role_local_derivation_handle");
12043
- return;
12044
- }
12045
- if (request.type !== EcdsaPresignClientRequestType.SessionInit) return;
11969
+ if (request.type !== EcdsaPresignClientRequestType.ListAvailable && request.type !== EcdsaPresignClientRequestType.SessionInit) return;
12046
11970
  const presignWorker = this.getOrCreateWorker("ecdsaPresignClient");
12047
11971
  const authorityKind = this.parsePresignAuthorityKind(request.payload);
12048
11972
  switch (authorityKind) {
@@ -13174,19 +13098,11 @@ function requireEd25519YaoClientRootEnvelopeV1(envelope) {
13174
13098
  if (!isEd25519YaoClientRootEnvelopeV1(envelope)) throw new Error("[SigningEngine][ed25519-export] export envelope has the wrong secret kind");
13175
13099
  return envelope;
13176
13100
  }
13177
- function requireRecord$2(value, label) {
13178
- if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${label} must be an object`);
13179
- return value;
13180
- }
13181
13101
  function requireExactKeys(record, expected, label) {
13182
13102
  const actual = Object.keys(record).sort();
13183
13103
  const keys = [...expected].sort();
13184
13104
  if (actual.length !== keys.length || actual.some((key, index) => key !== keys[index])) throw new Error(`${label} fields are invalid`);
13185
13105
  }
13186
- function requireString$2(value, label) {
13187
- if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is invalid`);
13188
- return value;
13189
- }
13190
13106
  function requirePositiveInteger(value, label) {
13191
13107
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} is invalid`);
13192
13108
  return value;
@@ -13226,7 +13142,7 @@ async function readColdExportBootstrap(input) {
13226
13142
  const failure = raw && typeof raw === "object" ? raw : null;
13227
13143
  throw new Error(`[SigningEngine][ed25519-export] capability bootstrap failed (HTTP ${response.status}): ${String(failure?.message || "invalid response")}`);
13228
13144
  }
13229
- const record = requireRecord$2(raw, "Ed25519 export bootstrap");
13145
+ const record = requireRecord$1(raw, "Ed25519 export bootstrap");
13230
13146
  requireExactKeys(record, [
13231
13147
  "kind",
13232
13148
  "walletId",
@@ -13244,9 +13160,9 @@ async function readColdExportBootstrap(input) {
13244
13160
  "capability"
13245
13161
  ], "Ed25519 export bootstrap");
13246
13162
  if (record.kind !== "router_ab_ed25519_yao_v2_session_bootstrap_v1") throw new Error("Ed25519 export bootstrap kind is invalid");
13247
- const walletId = requireString$2(record.walletId, "bootstrap.walletId");
13248
- const nearAccountId = requireString$2(record.nearAccountId, "bootstrap.nearAccountId");
13249
- const nearEd25519SigningKeyId = requireString$2(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId");
13163
+ const walletId = requireCanonicalString(record.walletId, "bootstrap.walletId");
13164
+ const nearAccountId = requireCanonicalString(record.nearAccountId, "bootstrap.nearAccountId");
13165
+ const nearEd25519SigningKeyId = requireCanonicalString(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId");
13250
13166
  const thresholdSessionId = parseThresholdEd25519SessionId(record.thresholdSessionId);
13251
13167
  const walletSessionId = parseWalletSessionId(record.walletSessionId);
13252
13168
  const quotaId = parseMpcWalletSigningQuotaId(record.quotaId);
@@ -13260,7 +13176,7 @@ async function readColdExportBootstrap(input) {
13260
13176
  };
13261
13177
  const participantIds = requireParticipantIds(record.participantIds);
13262
13178
  const registeredPublicKeyB64u = base64UrlEncode(Uint8Array.from(capability.registeredPublicKey));
13263
- if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !signingRoot || !routerAbNormalSigning || walletId !== String(signer.account.wallet.walletId) || nearAccountId !== String(signer.account.nearAccountId) || nearEd25519SigningKeyId !== String(signer.nearEd25519SigningKeyId) || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || requireString$2(record.signingWorkerId, "bootstrap.signingWorkerId") !== binding.signingWorkerId || participantIds[0] !== binding.participantIds[0] || participantIds[1] !== binding.participantIds[1] || authority.factor.providerUserId !== input.subject.auth.providerSubjectId || registeredPublicKeyB64u !== binding.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] capability bootstrap identity mismatch");
13179
+ if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !signingRoot || !routerAbNormalSigning || walletId !== String(signer.account.wallet.walletId) || nearAccountId !== String(signer.account.nearAccountId) || nearEd25519SigningKeyId !== String(signer.nearEd25519SigningKeyId) || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || requireCanonicalString(record.signingWorkerId, "bootstrap.signingWorkerId") !== binding.signingWorkerId || participantIds[0] !== binding.participantIds[0] || participantIds[1] !== binding.participantIds[1] || authority.factor.providerUserId !== input.subject.auth.providerSubjectId || registeredPublicKeyB64u !== binding.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] capability bootstrap identity mismatch");
13264
13180
  return {
13265
13181
  emailHashHex: authority.verifier.emailHashHex,
13266
13182
  bootstrap: {
@@ -13333,7 +13249,7 @@ async function readLinkedExportCapability(input) {
13333
13249
  const failure = raw && typeof raw === "object" ? raw : null;
13334
13250
  throw new Error(`[SigningEngine][ed25519-export] linked capability bootstrap failed (HTTP ${response.status}): ${String(failure?.message || "invalid response")}`);
13335
13251
  }
13336
- const record = requireRecord$2(raw, "linked Ed25519 export bootstrap");
13252
+ const record = requireRecord$1(raw, "linked Ed25519 export bootstrap");
13337
13253
  requireExactKeys(record, [
13338
13254
  "kind",
13339
13255
  "walletId",
@@ -13362,7 +13278,7 @@ async function readLinkedExportCapability(input) {
13362
13278
  };
13363
13279
  const participantIds = requireParticipantIds(record.participantIds);
13364
13280
  const registeredPublicKeyB64u = base64UrlEncode(Uint8Array.from(capability.registeredPublicKey));
13365
- if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !runtimePolicyScope || !routerAbNormalSigning || requireString$2(record.walletId, "bootstrap.walletId") !== String(signer.account.wallet.walletId) || requireString$2(record.nearAccountId, "bootstrap.nearAccountId") !== String(signer.account.nearAccountId) || requireString$2(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId") !== String(signer.nearEd25519SigningKeyId) || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requireString$2(record.signingWorkerId, "bootstrap.signingWorkerId") !== input.source.signingWorkerId || participantIds[0] !== input.source.participantIds[0] || participantIds[1] !== input.source.participantIds[1] || registeredPublicKeyB64u !== input.source.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] linked capability identity mismatch");
13281
+ if (!thresholdSessionId.ok || !walletSessionId.ok || !quotaId.ok || !runtimePolicyScope || !routerAbNormalSigning || requireCanonicalString(record.walletId, "bootstrap.walletId") !== String(signer.account.wallet.walletId) || requireCanonicalString(record.nearAccountId, "bootstrap.nearAccountId") !== String(signer.account.nearAccountId) || requireCanonicalString(record.nearEd25519SigningKeyId, "bootstrap.nearEd25519SigningKeyId") !== String(signer.nearEd25519SigningKeyId) || requirePositiveInteger(record.signerSlot, "bootstrap.signerSlot") !== signer.signerSlot || thresholdSessionId.value !== capability.lifecycle.thresholdSessionId || walletSessionId.value !== operationCredential.walletSessionId || quotaId.value !== input.authorization.record.quotaId || requireCanonicalString(record.signingWorkerId, "bootstrap.signingWorkerId") !== input.source.signingWorkerId || participantIds[0] !== input.source.participantIds[0] || participantIds[1] !== input.source.participantIds[1] || registeredPublicKeyB64u !== input.source.registeredPublicKeyB64u || !mpcMaterialActivationRefsEqual(capability.materialActivation, input.expectedMaterialActivation)) throw new Error("[SigningEngine][ed25519-export] linked capability identity mismatch");
13366
13282
  return capability;
13367
13283
  }
13368
13284
  function countExactEd25519ExportSubjects(subjects, expectedMaterialActivation) {
@@ -13694,10 +13610,10 @@ async function readPersistedAvailableSigningLanes$1(deps, args, ecdsaChainTarget
13694
13610
  ...args,
13695
13611
  ecdsaChainTargets,
13696
13612
  requiredEcdsaCapability: "sign"
13697
- }, new WalletSessionStatusReadScope());
13613
+ }, new WalletSessionStatusReadScope(), "all");
13698
13614
  }
13699
13615
  /**
13700
- * R103C human operational read: lanes for one exact owner. The auth-method
13616
+ * Human operational read: lanes for one exact owner. The auth-method
13701
13617
  * narrowing and the owner filter both derive from the scope — callers supply
13702
13618
  * nothing the scope does not already carry.
13703
13619
  */
@@ -13709,7 +13625,7 @@ async function readOwnerScopedAvailableSigningLanes(deps, args, statusReads) {
13709
13625
  ecdsaChainTargets: args.ecdsaChainTargets,
13710
13626
  requiredEcdsaCapability: args.requiredEcdsaCapability,
13711
13627
  ...args.nowMs !== void 0 ? { nowMs: args.nowMs } : {}
13712
- }, statusReads);
13628
+ }, statusReads, "all");
13713
13629
  }
13714
13630
  async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultEcdsaChainTargets) {
13715
13631
  if (args.curve === "ecdsa") {
@@ -13720,7 +13636,7 @@ async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultE
13720
13636
  ...availableLanesArgs,
13721
13637
  ecdsaChainTargets: [...ecdsaChainTargetsByKey.values()],
13722
13638
  requiredEcdsaCapability: "sign"
13723
- }, new WalletSessionStatusReadScope());
13639
+ }, new WalletSessionStatusReadScope(), "ecdsa");
13724
13640
  }
13725
13641
  const { curve, ...availableLanesArgs } = args;
13726
13642
  return await readPersistedAvailableSigningLanes$1(deps, availableLanesArgs, []);
@@ -13745,17 +13661,18 @@ function filterEmailOtpCompanionEcdsaRecords(records, chainTargets) {
13745
13661
  }
13746
13662
  return matchingRecords;
13747
13663
  }
13748
- async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads) {
13664
+ async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads, curves) {
13749
13665
  const walletId = String(toWalletId(args.walletId)).trim();
13750
13666
  return await readAvailableSigningLanes({
13751
13667
  ...args,
13752
13668
  walletId,
13753
13669
  ecdsaChainTargets: args.ecdsaChainTargets
13754
13670
  }, {
13755
- listPublicCapabilityReferences: deps.ed25519YaoPublicCapabilityLanes ? deps.ed25519YaoPublicCapabilityLanes.listLanes.bind(deps.ed25519YaoPublicCapabilityLanes) : void 0,
13671
+ listPublicCapabilityReferences: curves === "all" && deps.ed25519YaoPublicCapabilityLanes ? deps.ed25519YaoPublicCapabilityLanes.listLanes.bind(deps.ed25519YaoPublicCapabilityLanes) : void 0,
13756
13672
  isPublicCapabilityActive: deps.isEd25519YaoPublicCapabilityActive,
13757
- readActiveWalletSessionAuthorization: deps.readActiveWalletSessionAuthorization?.bind(null, statusReads),
13673
+ readActiveWalletSessionAuthorization: curves === "all" ? deps.readActiveWalletSessionAuthorization?.bind(null, statusReads) : void 0,
13758
13674
  listSealedRecordsForWallet: async ({ walletId: recordWalletId, filter }) => {
13675
+ if (curves === "ecdsa") return [];
13759
13676
  const listByAuthMethod = async (authMethod) => {
13760
13677
  const ed25519Records = await listExactSealedSessionsForWallet({
13761
13678
  walletId: recordWalletId,
@@ -14008,7 +13925,7 @@ async function discoverPersistedSessionsForWallet(deps, args) {
14008
13925
  async function readPersistedAvailableSigningLanes(deps, args) {
14009
13926
  return await readPersistedAvailableSigningLanes$1(deps.availableLanes, args, deps.getConfiguredEcdsaChainTargets());
14010
13927
  }
14011
- /** R103C human operational read: one exact owner, configured ECDSA targets. */
13928
+ /** Human operational read: one exact owner, configured ECDSA targets. */
14012
13929
  async function readOwnerScopedSigningLanes(deps, args, statusReads) {
14013
13930
  return await readOwnerScopedAvailableSigningLanes(deps.availableLanes, {
14014
13931
  walletId: args.walletId,
@@ -14890,7 +14807,7 @@ async function resolveEcdsaAuthorizationForResolution(args) {
14890
14807
  }
14891
14808
  /** The PRF claim for a resolved ECDSA capability. Correlation has already proved
14892
14809
  * the material, so the claim is the sealed runtime's own allowance and expiry --
14893
- * the same facts the shared Refactor 92 rule classifies. A blocked resolution
14810
+ * the same facts the shared runtime-policy rule classifies. A blocked resolution
14894
14811
  * has no runtime and so no claim to report.
14895
14812
  *
14896
14813
  * The wallet-scoped relayer claim is not consulted here. It is read by lane, and
@@ -16020,7 +15937,7 @@ function createEcdsaLoginPrefillClientSigningMaterialSource(args) {
16020
15937
  destroyClientPresignature: thresholdEcdsaRoleLocalDestroyPresignatureWasm,
16021
15938
  reserveClientPresignature: thresholdEcdsaRoleLocalReservePresignatureWasm,
16022
15939
  commitClientPresignature: thresholdEcdsaRoleLocalCommitPresignatureWasm,
16023
- listAvailableClientPresignatures: thresholdEcdsaRoleLocalListAvailablePresignaturesWasm,
15940
+ listAvailableClientPresignatures: thresholdEcdsaListAvailablePresignaturesWasm.bind(void 0, "role_local_derivation_handle"),
16024
15941
  computeSignatureShareFromPresignatureHandle: thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm
16025
15942
  };
16026
15943
  }
@@ -16823,7 +16740,7 @@ function createRecoveryPublicDeps(args) {
16823
16740
  }, {
16824
16741
  ...completeConfiguredEcdsaTargets(availableLanesArgs),
16825
16742
  requiredEcdsaCapability: "export_keys"
16826
- }, new WalletSessionStatusReadScope()),
16743
+ }, new WalletSessionStatusReadScope(), "all"),
16827
16744
  readOwnerScopedAvailableSigningLanesForTargets: async (availableLanesArgs) => await readOwnerScopedAvailableSigningLanes({
16828
16745
  activeWalletAuthorityEcdsaRuntimeReadPorts: browserExactWalletSessionReadPorts,
16829
16746
  ed25519YaoPublicCapabilityLanes: args.ed25519YaoPublicCapabilityLanes,
@@ -17435,7 +17352,7 @@ async function noWalletPasskeyAuthenticator() {
17435
17352
  return null;
17436
17353
  }
17437
17354
  /**
17438
- * R103C: the active wallet auth-method store is the one source that resolves
17355
+ * The active wallet auth-method store is the one source that resolves
17439
17356
  * an authority reference to its full authority. Sealed-session restores and
17440
17357
  * loose authenticator lists are history and hints; matching against them let
17441
17358
  * a stale or sibling credential answer for the active authority.
@@ -17610,14 +17527,22 @@ async function readBrowserExactNearEd25519WalletSessionAuthorization(relayerUrlI
17610
17527
  const authorizationNowMs = Date.now();
17611
17528
  if (status.authorization.expiresAtMs <= authorizationNowMs) return { kind: "expired" };
17612
17529
  if (status.walletSessionId !== exactRead.operationCredential.walletSessionId || status.quotaId !== exactRead.record.quotaId || status.expiresAtMs !== status.authorization.expiresAtMs || !walletSessionImmutableIdentityMatches(status.authorization, exactRead.record) || !walletSessionMatchesSelectedAuthority(status.authorization, currentSelected)) return { kind: "corrupt" };
17530
+ let replaced;
17613
17531
  try {
17614
- await walletSessionAuthorizations.replaceExactActive({
17532
+ replaced = await IndexedDBManager.replaceExactActiveWalletSessionFromStatus({
17615
17533
  active: status.authorization,
17616
17534
  operationCredential: exactRead.operationCredential
17617
17535
  });
17618
17536
  } catch {
17619
17537
  return { kind: "persistence_unavailable" };
17620
17538
  }
17539
+ if (replaced.kind === "superseded") {
17540
+ emitSigningSessionFlowTrace("near", {
17541
+ event: "wallet_session_status_superseded",
17542
+ walletSessionId: exactRead.operationCredential.walletSessionId
17543
+ });
17544
+ return { kind: "unavailable" };
17545
+ }
17621
17546
  let selectedFactorAuthority;
17622
17547
  try {
17623
17548
  selectedFactorAuthority = await resolveBrowserSelectedFactorAuthority(currentSelected);
@@ -17804,8 +17729,9 @@ async function resolveBrowserEcdsaPreprocessingCapability(args, input, statusRea
17804
17729
  kind: "inactive",
17805
17730
  reason: "Exact Wallet Session authorization is expired"
17806
17731
  };
17732
+ let replaced;
17807
17733
  try {
17808
- await walletSessionAuthorizations.replaceExactActive({
17734
+ replaced = await IndexedDBManager.replaceExactActiveWalletSessionFromStatus({
17809
17735
  active: status.authorization,
17810
17736
  operationCredential: exactAuthorization.operationCredential
17811
17737
  });
@@ -17815,6 +17741,16 @@ async function resolveBrowserEcdsaPreprocessingCapability(args, input, statusRea
17815
17741
  reason: "Exact Wallet Session promotion reconciliation could not be persisted"
17816
17742
  };
17817
17743
  }
17744
+ if (replaced.kind === "superseded") {
17745
+ emitSigningSessionFlowTrace("evm-family", {
17746
+ event: "wallet_session_status_superseded",
17747
+ walletSessionId: exactAuthorization.operationCredential.walletSessionId
17748
+ });
17749
+ return {
17750
+ kind: "inactive",
17751
+ reason: "Exact Wallet Session status was superseded by a newer wallet authority"
17752
+ };
17753
+ }
17818
17754
  const authorizationResolution = await buildBrowserEcdsaPreprocessingCapability({
17819
17755
  context: args,
17820
17756
  walletId,
@@ -17895,7 +17831,7 @@ async function resolveAmbiguousEcdsaActivationForSelectedAuthMethod(input) {
17895
17831
  authority: chosen
17896
17832
  });
17897
17833
  }
17898
- async function resolveBrowserCanonicalEcdsaSigningCapability(args, input) {
17834
+ async function resolveBrowserCanonicalEcdsaSigningCapability(_args, input) {
17899
17835
  const walletId = toWalletId(input.walletId);
17900
17836
  const subjects = await ecdsaCapabilityManifestStore$2.listActiveWalletCapabilitySubjects(walletId);
17901
17837
  if (subjects.kind !== "resolved") throw new Error(`ECDSA capability subjects are ${subjects.kind}`);
@@ -19045,12 +18981,9 @@ function requireEmailOtpEcdsaCustodySigner(continuity, walletId, keyHandle) {
19045
18981
  const first = continuity.signers[0];
19046
18982
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
19047
18983
  if (first.walletKey.walletId !== walletId || first.walletKey.keyHandle !== keyHandle) throw new Error("Email OTP ECDSA custody continuity changed the requested wallet key");
19048
- for (const signer of continuity.signers) if (signer.walletKey.walletId !== first.walletKey.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) || !sameEmailOtpRuntimePolicyScope(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
18984
+ for (const signer of continuity.signers) if (signer.walletKey.walletId !== first.walletKey.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$1(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
19049
18985
  return first;
19050
18986
  }
19051
- function sameEmailOtpRuntimePolicyScope(left, right) {
19052
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
19053
- }
19054
18987
  function nonEmptyEmailOtpEcdsaChainTargets(continuity) {
19055
18988
  const [first, ...rest] = continuity.signers;
19056
18989
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
@@ -19261,7 +19194,7 @@ async function provisionEmailOtpExistingKeySessions(args) {
19261
19194
  },
19262
19195
  authorization: additionalAuthorization
19263
19196
  };
19264
- const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(provisionEmailOtpAdditionalExistingKeySessionForTarget.bind(null, additionalContext)))];
19197
+ const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(provisionEmailOtpExistingKeySessionForTarget.bind(null, additionalContext)))];
19265
19198
  if (!primaryBootstrap) throw new Error("Email OTP ECDSA activation did not return a primary warm session");
19266
19199
  return bootstraps;
19267
19200
  }
@@ -19283,9 +19216,6 @@ async function provisionEmailOtpExistingKeySessionForTarget(context, chainTarget
19283
19216
  authorization: context.authorization
19284
19217
  }));
19285
19218
  }
19286
- async function provisionEmailOtpAdditionalExistingKeySessionForTarget(context, chainTarget) {
19287
- return await provisionEmailOtpExistingKeySessionForTarget(context, chainTarget);
19288
- }
19289
19219
  async function provisionEmailOtpExplicitExportSession(args) {
19290
19220
  return await args.ports.provisionEmailOtpEcdsaExplicitExportSession(buildEmailOtpExplicitExportEcdsaActivation({
19291
19221
  relayerUrl: args.relayerUrl,
@@ -19827,7 +19757,7 @@ async function restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecord(args)
19827
19757
  if (sealedRecord.authMethod !== "email_otp" || sealedRecord.curve !== "ecdsa") return null;
19828
19758
  const materialActivation = sealedRecord.roleLocalMaterialRef.materialActivation;
19829
19759
  return await args.withThresholdEcdsaSigningQueue({
19830
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation }),
19760
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
19831
19761
  walletId: toWalletId(sealedRecord.walletId),
19832
19762
  enabled: true,
19833
19763
  task: async () => await restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecordInQueue(args)
@@ -20116,7 +20046,7 @@ function buildExportChallengeRoutePlan(ports, args) {
20116
20046
  });
20117
20047
  }
20118
20048
  }
20119
- function buildEcdsaExportVerificationRoutePlan(authorization) {
20049
+ function buildEcdsaExportVerificationRoutePlan(_authorization) {
20120
20050
  return buildEmailOtpRoutePlan({
20121
20051
  routeFamily: "login",
20122
20052
  operation: WALLET_EMAIL_OTP_EXPORT_OPERATION
@@ -20309,15 +20239,6 @@ var EmailOtpExportRecoveryRuntime = class {
20309
20239
  buildSigningSessionRoutePlan: buildEmailOtpSigningSessionRoutePlan
20310
20240
  };
20311
20241
  }
20312
- signingSessionWorkerPorts() {
20313
- return {
20314
- getSignerWorkerContext: this.ports.getSignerWorkerContext,
20315
- requireRelayUrl: this.ports.requireRelayUrl,
20316
- requireSigningSessionSealGroupId: this.ports.requireSigningSessionSealGroupId,
20317
- resolveSelectedWalletAuthority: this.ports.resolveSelectedWalletAuthority,
20318
- buildSigningSessionRoutePlan: buildEmailOtpSigningSessionRoutePlan
20319
- };
20320
- }
20321
20242
  };
20322
20243
  //#endregion
20323
20244
  //#region src/core/signingEngine/session/emailOtp/runtimeConfig.ts
@@ -20386,33 +20307,6 @@ var EmailOtpSealedRefreshPolicy = class {
20386
20307
  chainTarget: purpose.chainTarget
20387
20308
  };
20388
20309
  }
20389
- /** Corrupt persisted state or explicit user removal only. Expiry and
20390
- * exhaustion never reach here. */
20391
- async deleteEmailOtpDurableSealedSessionRecord(args) {
20392
- const thresholdSessionId = String(args.purpose.thresholdSessionId || "").trim();
20393
- if (!thresholdSessionId) {
20394
- this.ports.clearEcdsaRestoreCaches();
20395
- return;
20396
- }
20397
- const command = createDeleteDurableSealedSessionCommand({
20398
- durableRecord: {
20399
- authMethod: "email_otp",
20400
- curve: "ecdsa",
20401
- thresholdSessionId,
20402
- chainTarget: args.purpose.chainTarget
20403
- },
20404
- deleteReason: args.deleteReason,
20405
- preserveResolvedIdentity: false
20406
- });
20407
- await this.ports.deleteDurableSealedSessionRecord(command).catch(() => void 0);
20408
- this.ports.clearEcdsaRestoreCaches();
20409
- }
20410
- async recordSessionMaterialClaimed(purpose, result) {
20411
- await this.recordSessionPolicyResult({
20412
- purpose,
20413
- result
20414
- });
20415
- }
20416
20310
  async recordSessionUseConsumed(purpose, result) {
20417
20311
  await this.recordSessionPolicyResult({
20418
20312
  purpose,
@@ -20806,10 +20700,9 @@ function warmSessionMaterialTarget(target) {
20806
20700
  };
20807
20701
  }
20808
20702
  //#endregion
20809
- //#region src/core/signingEngine/session/emailOtp/coordinatorRuntime.ts
20810
- var EmailOtpWalletSessionRuntime = class {
20703
+ //#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
20704
+ var EmailOtpWalletSessionCoordinator = class {
20811
20705
  constructor(deps) {
20812
- this.deps = deps;
20813
20706
  this.sealedRefreshDiagnosticLogAtMsByKey = /* @__PURE__ */ new Map();
20814
20707
  this.runtimeConfig = new EmailOtpRuntimeConfig({
20815
20708
  configs: deps.configs,
@@ -20856,7 +20749,6 @@ var EmailOtpWalletSessionRuntime = class {
20856
20749
  });
20857
20750
  const warmSessionWorkerClient = createEmailOtpWarmSessionWorkerClient({ worker: deps.signerWorkerManager });
20858
20751
  this.sealedRefreshPolicy = new EmailOtpSealedRefreshPolicy({
20859
- deleteDurableSealedSessionRecord: deps.deleteDurableSealedSessionRecord,
20860
20752
  updateExactSealedSessionPolicy: deps.updateExactSealedSessionPolicy,
20861
20753
  clearEcdsaRestoreCaches: () => this.clearEcdsaRestoreCaches()
20862
20754
  });
@@ -20928,49 +20820,6 @@ var EmailOtpWalletSessionRuntime = class {
20928
20820
  }
20929
20821
  };
20930
20822
  //#endregion
20931
- //#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
20932
- var EmailOtpWalletSessionCoordinator = class {
20933
- constructor(deps) {
20934
- this.runtime = new EmailOtpWalletSessionRuntime(deps);
20935
- }
20936
- persistEcdsaSessionForRefresh(args) {
20937
- return this.runtime.persistEcdsaSessionForRefresh(args);
20938
- }
20939
- discoverPersistedSessionsForWallet(args) {
20940
- return this.runtime.discoverPersistedSessionsForWallet(args);
20941
- }
20942
- restorePersistedSessionForSigning(args) {
20943
- return this.runtime.restorePersistedSessionForSigning(args);
20944
- }
20945
- readWarmSessionStatusOnly(target) {
20946
- return this.runtime.readWarmSessionStatusOnly(target);
20947
- }
20948
- consumeWarmSessionUses(args) {
20949
- return this.runtime.consumeWarmSessionUses(args);
20950
- }
20951
- clearVolatileWarmSessionMaterial(target) {
20952
- return this.runtime.clearVolatileWarmSessionMaterial(target);
20953
- }
20954
- async requestTransactionSigningChallenge(args) {
20955
- return await this.runtime.requestTransactionSigningChallenge(args);
20956
- }
20957
- async requestExportChallenge(args) {
20958
- return await this.runtime.requestExportChallenge(args);
20959
- }
20960
- exportEcdsaKeyWithDurableAuthorization(args) {
20961
- return this.runtime.exportEcdsaKeyWithDurableAuthorization(args);
20962
- }
20963
- exportEd25519YaoSeedWithFreshEmailOtpLane(args) {
20964
- return this.runtime.exportEd25519YaoSeedWithFreshEmailOtpLane(args);
20965
- }
20966
- loginWithEcdsaCapabilityForSigning(args) {
20967
- return this.runtime.loginWithEcdsaCapabilityForSigning(args);
20968
- }
20969
- loginWithEcdsaCapabilityInternal(args) {
20970
- return this.runtime.loginWithEcdsaCapabilityInternal(args);
20971
- }
20972
- };
20973
- //#endregion
20974
20823
  //#region src/core/signingEngine/assembly/ports/stepUpRuntime.ts
20975
20824
  function createStepUpRuntime(args) {
20976
20825
  const emailOtpSessions = new EmailOtpWalletSessionCoordinator({
@@ -21006,7 +20855,6 @@ function createStepUpRuntime(args) {
21006
20855
  listExactSealedSessionsForWallet: args.sealedSessionStore.listExactSealedSessionsForWallet,
21007
20856
  acquireSigningSessionRestoreLease: args.sealedSessionStore.acquireSigningSessionRestoreLease,
21008
20857
  releaseSigningSessionRestoreLease: args.sealedSessionStore.releaseSigningSessionRestoreLease,
21009
- deleteDurableSealedSessionRecord: args.sealedSessionStore.deleteDurableSealedSessionRecord,
21010
20858
  updateExactSealedSessionPolicy: args.sealedSessionStore.updateExactSealedSessionPolicy
21011
20859
  });
21012
20860
  const passkeyMpcSession = createWarmSessionAwarePasskeyMpcSession({
@@ -22403,11 +22251,9 @@ var BrowserSigningSurface = class {
22403
22251
  getNearSigningDeps: () => this.enginePorts.nearSigningDeps,
22404
22252
  getEvmFamilySigningDeps: () => this.enginePorts.tempoSigningDeps
22405
22253
  });
22406
- this.signingRuntime = signingRuntime;
22407
22254
  runtimePortsForUiConfirm.current = signingRuntime.runtimePorts;
22408
22255
  const ecdsaExportArtifactStore = signingRuntime.state.ecdsaSessions;
22409
22256
  this.runtimePorts = signingRuntime.runtimePorts;
22410
- this.thresholdEcdsaExportArtifactByLane = signingRuntime.state.ecdsaSessions.exportArtifactsByLane;
22411
22257
  const stepUpRuntime = createBrowserStepUpRuntime({
22412
22258
  seamsWebConfigs: this.seamsWebConfigs,
22413
22259
  touchIdPrompt: this.touchIdPrompt,
@@ -22858,9 +22704,6 @@ var BrowserSigningSurface = class {
22858
22704
  throw new Error("Unsupported Ed25519 public capability auth method");
22859
22705
  }
22860
22706
  }
22861
- hasActiveNearEd25519YaoMaterial(args) {
22862
- return this.enginePorts.ed25519YaoActiveClients.resolve(args) !== null;
22863
- }
22864
22707
  async readPersistedAvailableSigningLanes(args) {
22865
22708
  return await readPersistedAvailableSigningLanes(this.sessionPublicDeps, args);
22866
22709
  }
@@ -22993,15 +22836,16 @@ var BrowserSigningSurface = class {
22993
22836
  return { requestOperation: requestWalletCustodyCeremonyOperation.bind(void 0, workerContext) };
22994
22837
  }
22995
22838
  /**
22996
- * Refactor 103 zero-prompt handoff: parks the wallet custody seed inside the
22997
- * ceremony worker for the lifetime of the just-activated owner Wallet
22998
- * Session, reusing the factor secret this registration or unlock already
22999
- * collected. Failure is absorbed: the wallet stays usable, and device
23000
- * linking fails closed with `wallet_unlock_required` until the next unlock.
22839
+ * Parks the wallet custody seed inside the ceremony worker for the lifetime of
22840
+ * the just-activated owner Wallet Session, reusing the factor secret this
22841
+ * registration or unlock already collected. Failure is absorbed: the wallet
22842
+ * stays usable, and device linking fails closed with `wallet_unlock_required`
22843
+ * until the next unlock.
23001
22844
  */
23002
22845
  async establishUnlockedWalletEd25519ExportRootCapabilityV1(input) {
23003
22846
  try {
23004
- if (!isWalletCustodySeedBinding(input.existingEnvelope.binding)) return;
22847
+ const binding = input.existingEnvelope.binding;
22848
+ if (!isWalletCustodySeedBinding(binding) && binding.kind !== "ed25519_yao_client_root_v1") return;
23005
22849
  if (input.existingEnvelope.factor.kind !== "passkey") throw new Error("unlocked export-root capability requires a passkey envelope factor");
23006
22850
  const existingFactorSecret = base64UrlDecode(input.passkeyPrfFirstB64u);
23007
22851
  try {
@@ -23021,7 +22865,7 @@ var BrowserSigningSurface = class {
23021
22865
  }
23022
22866
  }
23023
22867
  /**
23024
- * Stores a resealed pre-109C envelope under the method that opened it.
22868
+ * Stores the reseal of an unbound envelope under the method that opened it.
23025
22869
  *
23026
22870
  * Absorbed the same way establishment is, and for the same reason: the V2 row
23027
22871
  * still opens the wallet, so a failure here costs a retry at the next unlock
@@ -23140,18 +22984,15 @@ var BrowserSigningSurface = class {
23140
22984
  const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
23141
22985
  const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
23142
22986
  if (existingRehydration) {
23143
- const reboundSubject = await existingRehydration;
23144
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
22987
+ const rebound = await existingRehydration;
22988
+ const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
23145
22989
  if (rehydrated) return rehydrated;
23146
22990
  throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
23147
22991
  }
23148
22992
  const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
23149
22993
  this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
23150
22994
  try {
23151
- const reboundSubject = await rehydration;
23152
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
23153
- if (rehydrated) return rehydrated;
23154
- throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
22995
+ return (await rehydration).material;
23155
22996
  } finally {
23156
22997
  if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
23157
22998
  }
@@ -24477,7 +24318,14 @@ var BrowserSigningSurface = class {
24477
24318
  passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
24478
24319
  } : { kind: "unavailable" }
24479
24320
  });
24480
- if (liveHydration.kind === "live") return subject;
24321
+ if (liveHydration.kind === "live") {
24322
+ const material = await this.resolveActiveNearEd25519YaoSigningLane(subject);
24323
+ if (!material) throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
24324
+ return {
24325
+ subject,
24326
+ material
24327
+ };
24328
+ }
24481
24329
  if (liveHydration.kind === "rehydrated") {
24482
24330
  if (!warmSessionClaim.ok) {
24483
24331
  liveHydration.activeClient.dispose();
@@ -24510,8 +24358,12 @@ var BrowserSigningSurface = class {
24510
24358
  subject,
24511
24359
  walletSessionState
24512
24360
  });
24513
- if (!await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject)) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
24514
- return reboundSubject;
24361
+ const published = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
24362
+ if (!published) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
24363
+ return {
24364
+ subject: reboundSubject,
24365
+ material: published
24366
+ };
24515
24367
  } catch (error) {
24516
24368
  liveHydration.activeClient.dispose();
24517
24369
  throw error;
@@ -24658,7 +24510,7 @@ var BrowserSigningSurface = class {
24658
24510
  async withExactEd25519MaterialOwner(args) {
24659
24511
  return await withThresholdEd25519CommitQueue({
24660
24512
  queueByKey: this.thresholdEd25519CommitQueueByKey,
24661
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.materialActivation }),
24513
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
24662
24514
  nearAccountId: args.nearAccountId,
24663
24515
  enabled: true,
24664
24516
  task: args.task
@@ -24811,8 +24663,8 @@ var BrowserSigningSurface = class {
24811
24663
  }, args.walletSession, args.providerSubjectId, activation);
24812
24664
  }
24813
24665
  /**
24814
- * R109C: what an owner authority needs to have its Ed25519 runtime built
24815
- * inside the unlock that verifies its factor.
24666
+ * What an owner authority needs to have its Ed25519 runtime built inside the
24667
+ * unlock that verifies its factor.
24816
24668
  *
24817
24669
  * Assembled here rather than by the caller because every field is read off
24818
24670
  * the exact authority projection - the identity, its runtime policy scope,
@@ -24854,7 +24706,7 @@ var BrowserSigningSurface = class {
24854
24706
  };
24855
24707
  }
24856
24708
  /**
24857
- * R109C: activate the runtime an owner authority's unlock built.
24709
+ * Activate the runtime an owner authority's unlock built.
24858
24710
  *
24859
24711
  * The identity it is checked against comes from the same authority projection
24860
24712
  * that produced the unlock request, not from the bootstrap being checked -
@@ -24957,7 +24809,7 @@ var BrowserSigningSurface = class {
24957
24809
  if (args.credentialExpectation.kind === "expect_exact_operation_credential" && (args.credentialExpectation.operationCredential.walletSessionId !== exactAuthorization.operationCredential.walletSessionId || args.credentialExpectation.operationCredential.token !== exactAuthorization.operationCredential.token)) throw new Error("[SigningEngine][near] expected Email OTP operation credential changed");
24958
24810
  return await withThresholdEd25519CommitQueue({
24959
24811
  queueByKey: this.thresholdEd25519CommitQueueByKey,
24960
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.metadata.materialActivation }),
24812
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
24961
24813
  nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
24962
24814
  enabled: args.commitQueue === "acquire",
24963
24815
  task: async () => {
@@ -25177,7 +25029,7 @@ var BrowserSigningSurface = class {
25177
25029
  this.ed25519YaoPageLifecycleOwner.dispose();
25178
25030
  }
25179
25031
  clearThresholdEcdsaSigningQueue() {
25180
- clearThresholdEcdsaSigningQueue(this.thresholdEcdsaSigningQueueByKey);
25032
+ clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
25181
25033
  }
25182
25034
  async clearLinkedEcdsaHolderMaterials() {
25183
25035
  await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
@@ -25240,8 +25092,8 @@ async function persistFinalizedPasskeyAuthMethodV1(args) {
25240
25092
  await IndexedDBManager.upsertWalletAuthMethod(localPasskeyAuthMethodFromFinalizeV1(args));
25241
25093
  }
25242
25094
  /**
25243
- * Refactor 109C: the full local install for a passkey added to a wallet that
25244
- * registered with another family.
25095
+ * The full local install for a passkey added to a wallet that registered with
25096
+ * another family.
25245
25097
  *
25246
25098
  * Three records, and unlock needs all of them. It reads the profile, then the
25247
25099
  * profile's authenticators, then keeps only those whose credential belongs to
@@ -25482,7 +25334,7 @@ async function linkWalletPasskeyCustody(input) {
25482
25334
  //#endregion
25483
25335
  //#region src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.ts
25484
25336
  /**
25485
- * Refactor 109C: the source claim a same-device addition puts in its intent.
25337
+ * The source claim a same-device addition puts in its intent.
25486
25338
  *
25487
25339
  * The intent digest is what the fresh source proof signs, so every identity the
25488
25340
  * proof is meant to bind has to be inside it. The server resolves the true
@@ -25675,7 +25527,7 @@ async function addPasskeyWalletAuthMethodInternal(args) {
25675
25527
  }
25676
25528
  }
25677
25529
  /**
25678
- * Refactor 109C's `email_otp_to_passkey` branch.
25530
+ * The `email_otp_to_passkey` addition branch.
25679
25531
  *
25680
25532
  * The Email OTP method that already unlocks this wallet authorizes adding a
25681
25533
  * passkey. Three things stay exactly as they are in the Passkey-source branch,
@@ -25797,7 +25649,7 @@ async function addPasskeyWalletAuthMethod(args) {
25797
25649
  //#endregion
25798
25650
  //#region src/SeamsWeb/operations/authMethods/revokeAuthMethod.ts
25799
25651
  /**
25800
- * Refactor 109C: remove one auth method using a different active one.
25652
+ * Remove one auth method using a different active one.
25801
25653
  *
25802
25654
  * The inverse of the two addition branches, and the reason they are safe to
25803
25655
  * offer: a wallet that can gain a second way in must be able to lose one it no
@@ -25987,8 +25839,8 @@ async function revokeWalletAuthMethodOperation(args) {
25987
25839
  //#endregion
25988
25840
  //#region src/core/signingEngine/walletCustody/emailOtpLink.ts
25989
25841
  /**
25990
- * Refactor 109C: sealing the wallet's existing custody seed under a newly
25991
- * verified Email OTP factor.
25842
+ * Sealing the wallet's existing custody seed under a newly verified
25843
+ * Email OTP factor.
25992
25844
  *
25993
25845
  * The mirror of `passkeyLink`, and deliberately the same shape: open the source
25994
25846
  * envelope with the factor secret the caller already collected, reseal the same
@@ -26361,7 +26213,7 @@ function warnIfSameOriginWallet(walletOrigin) {
26361
26213
  }
26362
26214
  async function createWalletIframeRouter(args) {
26363
26215
  warnIfSameOriginWallet(args.walletOrigin);
26364
- const { WalletIframeRouter } = await import("./router-CeFS9SgT.js");
26216
+ const { WalletIframeRouter } = await import("./router-B4ZWFy9E.js");
26365
26217
  const signingSessionPersistenceMode = args.configs.signing.sessionPersistenceMode;
26366
26218
  return new WalletIframeRouter({
26367
26219
  walletOrigin: args.walletOrigin,
@@ -26662,12 +26514,12 @@ function createSigningRuntimeStatePorts() {
26662
26514
  }
26663
26515
  function createSigningRuntime(deps) {
26664
26516
  const getWarmSessions = memoizeService(async () => {
26665
- const { createWarmSessionHydrationService } = await import("./warmSessionHydration-DDNYdTCz.js");
26517
+ const { createWarmSessionHydrationService } = await import("./warmSessionHydration-Os8niEm7.js");
26666
26518
  return createWarmSessionHydrationService({ getWarmSessionMaterialWriter: deps.ui.warmSessions.getWarmSessionMaterialWriter });
26667
26519
  });
26668
26520
  const warmSessions = { hydrateSigningSession: async (input) => (await getWarmSessions()).hydrateSigningSession(input) };
26669
26521
  const getRegistrationAccounts = memoizeService(async () => {
26670
- const { createRegistrationAccountsService } = await import("./registrationAccounts-AO3QHjas.js");
26522
+ const { createRegistrationAccountsService } = await import("./registrationAccounts-DmWPzf3T.js");
26671
26523
  return createRegistrationAccountsService(deps.registration.accountLifecycle);
26672
26524
  });
26673
26525
  const registrationAccounts = {
@@ -26691,7 +26543,7 @@ function createSigningRuntime(deps) {
26691
26543
  rollbackWalletEd25519SignerRegistration: async (receipt) => (await getRegistrationAccounts()).rollbackWalletEd25519SignerRegistration(receipt)
26692
26544
  };
26693
26545
  const getEcdsaWalletRecords = memoizeService(async () => {
26694
- const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-CAbbVhEY.js");
26546
+ const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-D42rtA9z.js");
26695
26547
  return createEcdsaWalletRecordsService({ accountLifecycle: deps.registration.accountLifecycle });
26696
26548
  });
26697
26549
  const ecdsaWalletRecords = {
@@ -26702,32 +26554,32 @@ function createSigningRuntime(deps) {
26702
26554
  storeWalletEmailOtpEcdsaRegistrationData: async (input) => (await getEcdsaWalletRecords()).storeWalletEmailOtpEcdsaRegistrationData(input)
26703
26555
  };
26704
26556
  const nearSigning = { signNear: async (request) => {
26705
- const { signNear } = await import("./signNear-DVD9-IO5.js").then((n) => n.n);
26557
+ const { signNear } = await import("./signNear-Bmb2fj_a.js").then((n) => n.n);
26706
26558
  return signNear(deps.signing.near.getDeps(), request);
26707
26559
  } };
26708
26560
  const evmFamilySigning = {
26709
26561
  signEvmFamily: async (args) => {
26710
- const { signEvmFamily } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26562
+ const { signEvmFamily } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26711
26563
  return signEvmFamily(deps.signing.evmFamily.getDeps(), args);
26712
26564
  },
26713
26565
  reportTempoBroadcastAccepted: async (args) => {
26714
- const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26566
+ const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26715
26567
  return reportTempoBroadcastAccepted(deps.signing.evmFamily.getDeps(), args);
26716
26568
  },
26717
26569
  reportTempoBroadcastRejected: async (args) => {
26718
- const { reportTempoBroadcastRejected } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26570
+ const { reportTempoBroadcastRejected } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26719
26571
  return reportTempoBroadcastRejected(deps.signing.evmFamily.getDeps(), args);
26720
26572
  },
26721
26573
  reportTempoFinalized: async (args) => {
26722
- const { reportTempoFinalized } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26574
+ const { reportTempoFinalized } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26723
26575
  return reportTempoFinalized(deps.signing.evmFamily.getDeps(), args);
26724
26576
  },
26725
26577
  reportTempoDroppedOrReplaced: async (args) => {
26726
- const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26578
+ const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26727
26579
  return reportTempoDroppedOrReplaced(deps.signing.evmFamily.getDeps(), args);
26728
26580
  },
26729
26581
  reconcileTempoNonceLane: async (args) => {
26730
- const { reconcileTempoNonceLane } = await import("./signEvmFamily-pbMepepQ.js").then((n) => n.s);
26582
+ const { reconcileTempoNonceLane } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26731
26583
  return reconcileTempoNonceLane(deps.signing.evmFamily.getDeps(), args);
26732
26584
  }
26733
26585
  };
@@ -26779,6 +26631,30 @@ function createBrowserSigningRuntime(args) {
26779
26631
  });
26780
26632
  }
26781
26633
  //#endregion
26634
+ //#region src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.ts
26635
+ async function scheduleRestoredSessionPresignaturePrefills(args) {
26636
+ switch (args.state.kind) {
26637
+ case "active_session": break;
26638
+ case "wallet_unlocked_without_signing_session":
26639
+ if (args.state.reason !== "exhausted") return;
26640
+ break;
26641
+ case "wallet_locked":
26642
+ case "wallet_authenticated_identity_unresolvable":
26643
+ case "expired_session": return;
26644
+ default:
26645
+ args.state;
26646
+ return;
26647
+ }
26648
+ const walletSession = walletSessionRefFromSession({ walletId: args.state.walletId });
26649
+ const statusReads = new WalletSessionStatusReadScope();
26650
+ const prefills = [];
26651
+ for (const chainTarget of args.chainTargets) prefills.push(args.prefill({
26652
+ walletSession,
26653
+ chainTarget
26654
+ }, statusReads));
26655
+ await Promise.all(prefills);
26656
+ }
26657
+ //#endregion
26782
26658
  //#region src/SeamsWeb/assembly/createBrowserSigningStores.ts
26783
26659
  function createBrowserSigningStores(indexedDB) {
26784
26660
  return {
@@ -26806,7 +26682,6 @@ function createBrowserSigningStores(indexedDB) {
26806
26682
  listEcdsaSealedSessionsForWallet,
26807
26683
  acquireSigningSessionRestoreLease,
26808
26684
  releaseSigningSessionRestoreLease,
26809
- deleteDurableSealedSessionRecord,
26810
26685
  updateExactSealedSessionPolicy
26811
26686
  },
26812
26687
  ed25519YaoPublicCapabilityReferences: new IndexedDbEd25519YaoPublicCapabilityReferenceStore(indexedDB)
@@ -26826,6 +26701,58 @@ function initializeBrowserSigningRuntime(args) {
26826
26701
  if (!(args.config.wallet.mode === "iframe" && !__isWalletIframeHostMode())) args.userPreferencesManager.initFromIndexedDB().catch(() => void 0);
26827
26702
  }
26828
26703
  //#endregion
26704
+ //#region src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.ts
26705
+ async function scheduleLinkedDevicePresignaturePrefill(args) {
26706
+ try {
26707
+ const scope = args.runtime.activationReceipt.normalSigning.scope;
26708
+ const material = buildRouterAbEcdsaDerivationSigningMaterialRef({ routerAbState: args.runtime.activationReceipt.normalSigning });
26709
+ const keyHandle = await deriveEvmFamilyEcdsaKeyHandle({
26710
+ ecdsaThresholdKeyId: scope.ecdsa_threshold_key_id,
26711
+ signingRootId: scope.signing_root_id,
26712
+ signingRootVersion: scope.signing_root_version
26713
+ });
26714
+ if (resolveLinkedEcdsaHolderRuntimeV1(args.runtime) !== args.runtime) return;
26715
+ const result = scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill({
26716
+ relayerUrl: args.relayerUrl,
26717
+ keyHandle: parseEcdsaKeyHandle(keyHandle),
26718
+ ecdsaThresholdKeyId: material.ecdsaThresholdKeyId,
26719
+ clientVerifyingShareB64u: material.clientVerifier33B64u,
26720
+ clientSigningMaterial: createLinkedHolderClientSigningMaterialSource(args.runtime.holderHandleId),
26721
+ thresholdEcdsaPublicKeyB64u: material.thresholdVerifier33B64u,
26722
+ relayerVerifyingShareB64u: material.serverVerifier33B64u,
26723
+ credential: {
26724
+ kind: "wallet_session_opaque",
26725
+ walletSessionToken: args.operationCredential.token
26726
+ },
26727
+ authorization: {
26728
+ kind: "reusable_wallet_session",
26729
+ wallet_session_id: args.operationCredential.walletSessionId
26730
+ },
26731
+ materialActivation: routerAbMpcMaterialActivationRefToWire(args.runtime.materialActivation),
26732
+ routerAbEcdsaDerivationPoolFill: {
26733
+ kind: "router_ab_ecdsa_derivation_signing_worker_pool",
26734
+ scope,
26735
+ ceremonyExpiresAtMs: args.expiresAtMs,
26736
+ materialExpiresAtMs: Date.now() + MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS
26737
+ },
26738
+ workerCtx: args.workerCtx
26739
+ });
26740
+ emitSigningSessionFlowTrace("evm-family", {
26741
+ event: "ecdsa_linked_device_prefill",
26742
+ scheduled: result.scheduled,
26743
+ reason: result.reason,
26744
+ depth: result.depth,
26745
+ targetDepth: result.targetDepth
26746
+ });
26747
+ } catch {
26748
+ emitSigningSessionFlowTrace("evm-family", {
26749
+ event: "ecdsa_linked_device_prefill",
26750
+ scheduled: false,
26751
+ reason: "unexpected_error"
26752
+ });
26753
+ }
26754
+ }
26755
+ //#endregion
26829
26756
  //#region src/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.ts
26830
26757
  function assertNeverNormalSigning(value) {
26831
26758
  throw new Error(`Unexpected Router A/B normal-signing config branch: ${String(value)}`);
@@ -27276,7 +27203,7 @@ async function collectFreshLocalPasskeyUnlockCredential(args) {
27276
27203
  //#endregion
27277
27204
  //#region src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.ts
27278
27205
  const ecdsaCapabilityManifestStore$1 = new IndexedDbEcdsaCapabilityManifestStore();
27279
- async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27206
+ async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27280
27207
  const resolved = await ecdsaCapabilityManifestStore$1.listActiveWalletCapabilitySubjects(walletId);
27281
27208
  if (resolved.kind === "persistence_unavailable") return {
27282
27209
  kind: "failed",
@@ -27299,9 +27226,6 @@ async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27299
27226
  subjects
27300
27227
  };
27301
27228
  }
27302
- async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27303
- return await listEvmFamilyEcdsaWalletUnlockSubjects(walletId);
27304
- }
27305
27229
  async function resolveEcdsaActivationJournalSelectors(walletId) {
27306
27230
  return await ecdsaCapabilityManifestStore$1.listWalletActivationJournalSelectors(walletId);
27307
27231
  }
@@ -27803,27 +27727,6 @@ function walletAuthMethodBindingFromRecord(record) {
27803
27727
  default: return null;
27804
27728
  }
27805
27729
  }
27806
- async function exactPasskeyWalletAuthMethodForCredential(args) {
27807
- const matches = (await IndexedDBManager.listWalletAuthMethodsV2ForWallet(String(args.walletId))).filter((record) => record.kind === "passkey" && record.status === "active" && record.walletId === args.walletId && String(record.rpId) === args.rpId && String(record.credentialIdB64u) === args.credentialIdB64u);
27808
- const [record] = matches;
27809
- if (matches.length !== 1 || !record) throw new Error("[login] passkey authority requires one exact active V2 auth method");
27810
- return record;
27811
- }
27812
- async function exactPasskeyWalletAuthAuthorityRefForCredential(args) {
27813
- const record = await exactPasskeyWalletAuthMethodForCredential(args);
27814
- return await walletAuthAuthorityRef({ authority: {
27815
- walletId: record.walletId,
27816
- factor: {
27817
- kind: "passkey",
27818
- credentialIdB64u: record.credentialIdB64u
27819
- },
27820
- verifier: {
27821
- kind: "webauthn",
27822
- rpId: record.rpId
27823
- },
27824
- bindingId: record.walletAuthMethodId
27825
- } });
27826
- }
27827
27730
  function walletAuthAuthorityForSelectedPasskeyMethod(record) {
27828
27731
  return {
27829
27732
  walletId: record.walletId,
@@ -28918,12 +28821,21 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
28918
28821
  ...providerIdentity ? { providerIdentity } : {}
28919
28822
  });
28920
28823
  const ecdsaMaterial = linkedDeviceEcdsaMaterial(openedMaterials);
28921
- if (ecdsaMaterial) await activateLinkedDeviceEcdsaHolderRuntime({
28922
- context: args.context,
28923
- selection,
28924
- factorAuthority,
28925
- material: ecdsaMaterial
28926
- });
28824
+ if (ecdsaMaterial) {
28825
+ const { runtime } = await activateLinkedDeviceEcdsaHolderRuntime({
28826
+ context: args.context,
28827
+ selection,
28828
+ factorAuthority,
28829
+ material: ecdsaMaterial
28830
+ });
28831
+ scheduleLinkedDevicePresignaturePrefill({
28832
+ runtime,
28833
+ operationCredential: args.operationCredential,
28834
+ expiresAtMs: args.walletSession.expiresAtMs,
28835
+ relayerUrl,
28836
+ workerCtx: args.context.signingEngine.getSignerWorkerContext()
28837
+ });
28838
+ }
28927
28839
  const ed25519Material = linkedDeviceEd25519Material(openedMaterials);
28928
28840
  if (ed25519Material) {
28929
28841
  const session = await linkedDeviceEd25519SessionAfterLink({
@@ -28951,7 +28863,7 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
28951
28863
  walletSessionId: String(args.operationCredential.walletSessionId),
28952
28864
  expiresAtMs: args.walletSession.expiresAtMs
28953
28865
  });
28954
- else if (isWalletCustodySeedBinding(selection.exportRoot.envelope.binding)) await establishUnlockedWalletEd25519ExportRootCapabilityV1(walletCustodyCeremonyTransportFromWorkerContextV1(args.context.signingEngine.getSignerWorkerContext()), {
28866
+ else if (isWalletCustodySeedBinding(selection.exportRoot.envelope.binding) || selection.exportRoot.envelope.binding.kind === "ed25519_yao_client_root_v1") await establishUnlockedWalletEd25519ExportRootCapabilityV1(walletCustodyCeremonyTransportFromWorkerContextV1(args.context.signingEngine.getSignerWorkerContext()), {
28955
28867
  existingEnvelope: selection.exportRoot.envelope,
28956
28868
  existingFactorSecret: args.factorSecret32,
28957
28869
  walletId: String(selection.walletId),
@@ -29188,7 +29100,7 @@ function pendingNearRegistrationMatchesAuthority(selection, activation, pending)
29188
29100
  return pending.operation === "near_provisioning" && pending.phase === "joined" && pending.signerPlanKind === "near_ed25519_and_evm_family_ecdsa" && pending.walletId === selection.walletId && pending.walletAuthMethodId === selection.authMethod.walletAuthMethodId && mpcMaterialActivationRefsEqual(pending.localMaterial.ed25519.metadata.materialActivation, activation);
29189
29101
  }
29190
29102
  /**
29191
- * R109C: install the Ed25519 runtime an owner authority's unlock just built.
29103
+ * Install the Ed25519 runtime an owner authority's unlock just built.
29192
29104
  *
29193
29105
  * Everything is checked against the authority and method that were selected,
29194
29106
  * before the handle is used: a session naming a different method, or a
@@ -29574,7 +29486,7 @@ async function unlockLinkedDevicePasskey(context, walletIdInput, options) {
29574
29486
  });
29575
29487
  }
29576
29488
  }
29577
- async function unlockInternal(context, subjectSet, options, completion) {
29489
+ async function unlockInternal(context, subjectSet, options, _completion) {
29578
29490
  const { onEvent, onError, afterCall } = options || {};
29579
29491
  const { signingEngine } = context;
29580
29492
  const walletUnlockSelection = resolveLoginWalletUnlockSelectionForSubjectSet({
@@ -29723,10 +29635,6 @@ async function unlockInternal(context, subjectSet, options, completion) {
29723
29635
  identity: walletIdentity,
29724
29636
  context: storedCanonicalEcdsaContext
29725
29637
  });
29726
- buildConfiguredTargetKeyCompletion({
29727
- context: storedCanonicalEcdsaContext,
29728
- configuredTargets: warmupInput.selectedEcdsaTargets
29729
- });
29730
29638
  const canFirstBootstrapThresholdEcdsa = Boolean(managedRuntimeScopeBootstrap);
29731
29639
  const warmupPlan = resolveThresholdLoginWarmupPlan({
29732
29640
  selection: warmupInput.selection,
@@ -32217,7 +32125,7 @@ async function logout(context) {
32217
32125
  }
32218
32126
  async function resumeNearAfterSuccessfulUnlock(args) {
32219
32127
  try {
32220
- await (await import("./registration-PIBMSsQR.js").then((n) => n.o)).resumeNearRegistrationAfterUnlock(args);
32128
+ await (await import("./registration-Ct_7LdGf.js").then((n) => n.o)).resumeNearRegistrationAfterUnlock(args);
32221
32129
  } catch (error) {
32222
32130
  console.warn("[login] NEAR continuation could not start", error instanceof Error ? error.message : "module unavailable");
32223
32131
  } finally {
@@ -32341,7 +32249,7 @@ async function getRecentUnlocksDomain(deps) {
32341
32249
  }
32342
32250
  return await getRecentUnlocks(deps.getContext());
32343
32251
  }
32344
- async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args) {
32252
+ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args, statusReads) {
32345
32253
  if (deps.walletIframe.shouldUseWalletIframe()) return await (await deps.walletIframe.requireRouter(args.walletSession.walletId)).prefillRouterAbEcdsaDerivationPresignaturePool({
32346
32254
  walletSession: args.walletSession,
32347
32255
  options: {
@@ -32354,7 +32262,7 @@ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args)
32354
32262
  walletId,
32355
32263
  chainTarget: args.chainTarget,
32356
32264
  ...typeof args.waitForPoolReady === "boolean" ? { waitForPoolReady: args.waitForPoolReady } : {}
32357
- }, new WalletSessionStatusReadScope());
32265
+ }, statusReads);
32358
32266
  }
32359
32267
  //#endregion
32360
32268
  //#region src/SeamsWeb/publicApi/transactionReview.ts
@@ -32372,7 +32280,7 @@ function createAuthCapability(deps) {
32372
32280
  getWalletSession: async (walletId) => await getWalletSessionDomain(deps.getWalletAuthDeps(), walletId),
32373
32281
  getRecentUnlocks: async () => await getRecentUnlocksDomain(deps.getWalletAuthDeps()),
32374
32282
  hasPasskeyCredential: async (walletId) => await hasPasskeyCredentialDomain(deps.getWalletAuthDeps(), walletId),
32375
- prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args),
32283
+ prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args, new WalletSessionStatusReadScope()),
32376
32284
  requestEmailOtpChallenge: deps.domain.requestEmailOtpChallenge,
32377
32285
  requestEmailOtpSigningSessionChallenge: deps.domain.requestEmailOtpSigningSessionChallenge,
32378
32286
  refreshEmailOtpSigningSession: deps.domain.refreshEmailOtpSigningSession,
@@ -32690,7 +32598,7 @@ async function requestDeviceV1(input) {
32690
32598
  const publishableKey = input.options.publishableKey.trim();
32691
32599
  const projectEnvironmentId = input.options.projectEnvironmentId.trim();
32692
32600
  if (!publishableKey || !projectEnvironmentId) throw new Error("linked-device Passkey ceremony requires registration API credentials");
32693
- const bodyDigestB64u = parseDigestB64u(base64UrlEncode(await sha256Bytes(encodeRequestBodyV1(input.body))));
32601
+ const bodyDigestB64u = await sha256DigestB64u(encodeRequestBodyV1(input.body));
32694
32602
  const issuedAtMs = input.options.nowMs();
32695
32603
  if (!Number.isSafeInteger(issuedAtMs) || issuedAtMs <= 0) throw new Error("linked-device request clock is invalid");
32696
32604
  const expiresAtMs = issuedAtMs + LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1;
@@ -32798,7 +32706,7 @@ async function createPollingSubscriptionV1(input) {
32798
32706
  function parseSessionMutationEnvelopeV1(raw) {
32799
32707
  const record = asPlainDeviceLinkingResponse(raw);
32800
32708
  if (record === null) throw new Error("linked-device response must be an object");
32801
- if (!hasExactKeys$1(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
32709
+ if (!hasExactResponseKeys(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
32802
32710
  if (record.ok !== true) throw new Error("linked-device response outcome is invalid");
32803
32711
  switch (record.outcome) {
32804
32712
  case "applied": return {
@@ -32817,7 +32725,7 @@ function parseSessionMutationEnvelopeV1(raw) {
32817
32725
  function parseTargetCredentialRegistrationResponseV1(raw) {
32818
32726
  const record = asPlainDeviceLinkingResponse(raw);
32819
32727
  if (record === null) throw new Error("linked-device target credential response must be an object");
32820
- if (!hasExactKeys$1(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
32728
+ if (!hasExactResponseKeys(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
32821
32729
  if (record.ok !== true) throw new Error("linked-device target credential response outcome is invalid");
32822
32730
  switch (record.outcome) {
32823
32731
  case "applied": return parseTargetCredentialRegistrationResponseBranch(record, "applied");
@@ -32835,20 +32743,20 @@ function parseTargetCredentialRegistrationResponseBranch(record, outcome) {
32835
32743
  function parseHttpFailureMessageV1(response) {
32836
32744
  const record = asPlainDeviceLinkingResponse(response.body);
32837
32745
  if (record === null || record.ok !== false) return `linked-device request failed with HTTP ${response.status}`;
32838
- if (hasExactKeys$1(record, CODED_FAILURE_RESPONSE_FIELDS) && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
32839
- if (hasExactKeys$1(record, OUTCOME_FAILURE_RESPONSE_FIELDS) && typeof record.outcome === "string" && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
32746
+ if (hasExactResponseKeys(record, CODED_FAILURE_RESPONSE_FIELDS) && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
32747
+ if (hasExactResponseKeys(record, OUTCOME_FAILURE_RESPONSE_FIELDS) && typeof record.outcome === "string" && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
32840
32748
  switch (record.outcome) {
32841
32749
  case "conflict":
32842
- if (hasExactKeys$1(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
32750
+ if (hasExactResponseKeys(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
32843
32751
  break;
32844
32752
  case "expired":
32845
- if (hasExactKeys$1(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
32753
+ if (hasExactResponseKeys(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
32846
32754
  break;
32847
32755
  case "invalid_state":
32848
- if (hasExactKeys$1(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
32756
+ if (hasExactResponseKeys(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
32849
32757
  break;
32850
32758
  case "integrity_error":
32851
- if (hasExactKeys$1(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
32759
+ if (hasExactResponseKeys(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
32852
32760
  break;
32853
32761
  default: break;
32854
32762
  }
@@ -32866,11 +32774,9 @@ function isPlainDeviceLinkingResponse(value) {
32866
32774
  return false;
32867
32775
  }
32868
32776
  }
32869
- function hasExactKeys$1(record, expectedKeys) {
32777
+ function hasExactResponseKeys(record, expectedKeys) {
32870
32778
  try {
32871
- const actualKeys = Object.keys(record).sort();
32872
- const expected = [...expectedKeys].sort();
32873
- return actualKeys.length === expected.length && actualKeys.every((key, index) => key === expected[index]);
32779
+ return hasExactKeys(record, expectedKeys);
32874
32780
  } catch {
32875
32781
  return false;
32876
32782
  }
@@ -33340,7 +33246,7 @@ function buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1(input) {
33340
33246
  function createDeviceLinkingEd25519ExportRootPortV1(worker) {
33341
33247
  return {
33342
33248
  async createRecipientV1(input) {
33343
- const created = requireRecord$1(await worker.requestOperation({
33249
+ const created = requireRecord(await worker.requestOperation({
33344
33250
  kind: "walletCustodyCeremony",
33345
33251
  request: {
33346
33252
  type: "createLinkedDeviceEd25519ExportRootRecipient",
@@ -33381,7 +33287,7 @@ function createDeviceLinkingEd25519ExportRootPortV1(worker) {
33381
33287
  registeredPublicKeyB64u: recipient.registeredPublicKeyB64u,
33382
33288
  recipientPublicKeyB64u: recipient.recipientPublicKeyB64u
33383
33289
  });
33384
- const sealed = requireRecord$1(await worker.requestOperation({
33290
+ const sealed = requireRecord(await worker.requestOperation({
33385
33291
  kind: "walletCustodyCeremony",
33386
33292
  request: {
33387
33293
  type: "sealEd25519ExportRootForLinkedDevice",
@@ -33440,7 +33346,7 @@ function createDeviceLinkingEd25519ExportRootPortV1(worker) {
33440
33346
  });
33441
33347
  const replacementFactorSecret = input.replacementFactorSecret.slice();
33442
33348
  try {
33443
- const resealed = requireRecord$1(await worker.requestOperation({
33349
+ const resealed = requireRecord(await worker.requestOperation({
33444
33350
  kind: "walletCustodyCeremony",
33445
33351
  request: {
33446
33352
  type: "acceptLinkedDeviceEd25519ExportRoot",
@@ -33501,7 +33407,7 @@ function replacementEnvelopeFactorMatchesTargetFactor(targetFactor, replacementF
33501
33407
  function assertNeverLinkedDeviceTargetFactor(value) {
33502
33408
  throw new Error(`Unsupported linked-device target factor kind: ${String(value)}`);
33503
33409
  }
33504
- function requireRecord$1(value, label) {
33410
+ function requireRecord(value, label) {
33505
33411
  if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${label} returned no result`);
33506
33412
  return value;
33507
33413
  }
@@ -33546,7 +33452,7 @@ function buildDeviceLinkingPendingAcknowledgementV1(acknowledgement) {
33546
33452
  }
33547
33453
  function parseDeviceLinkingPendingAcknowledgementV1(raw) {
33548
33454
  const record = asPlainDeviceLinkingResumeRecord(raw);
33549
- if (record === null || !hasExactKeys(record, PENDING_ACKNOWLEDGEMENT_FIELDS) || record.kind !== "linked_device_pending_ack_v1") return null;
33455
+ if (record === null || !hasExactKeys(record, PENDING_ACKNOWLEDGEMENT_FIELDS) || record.kind !== LINKED_DEVICE_PENDING_ACK_KIND_V1) return null;
33550
33456
  try {
33551
33457
  return {
33552
33458
  kind: LINKED_DEVICE_PENDING_ACK_KIND_V1,
@@ -33638,7 +33544,7 @@ function compareDeviceLinkingCommittedResumeV1(input) {
33638
33544
  }
33639
33545
  function parseDeviceLinkingCommittedResumeV1(raw) {
33640
33546
  const record = asPlainDeviceLinkingResumeRecord(raw);
33641
- if (record === null || !hasExactKeys(record, COMMITTED_RESUME_FIELDS) || record.kind !== "linked_device_committed_resume_v1") return null;
33547
+ if (record === null || !hasExactKeys(record, COMMITTED_RESUME_FIELDS) || record.kind !== LINKED_DEVICE_COMMITTED_RESUME_KIND_V1) return null;
33642
33548
  const linkSessionId = parseLinkDeviceSessionId(record.linkSessionId);
33643
33549
  const walletId = parseWalletId(record.walletId);
33644
33550
  const enrollmentId = parseLinkedDeviceEnrollmentId(record.enrollmentId);
@@ -33710,11 +33616,6 @@ function isPlainDeviceLinkingResumeRecord(value) {
33710
33616
  return false;
33711
33617
  }
33712
33618
  }
33713
- function hasExactKeys(record, expectedKeys) {
33714
- const actual = Object.keys(record).sort();
33715
- const expected = [...expectedKeys].sort();
33716
- return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
33717
- }
33718
33619
  function sameSignerActivations(left, right) {
33719
33620
  const leftBytes = encodeWalletSignerActivationSetV1(left);
33720
33621
  const rightBytes = encodeWalletSignerActivationSetV1(right);
@@ -34154,7 +34055,7 @@ function signerMaterialActivations(activations) {
34154
34055
  throw new Error("committed signer activation families are invalid");
34155
34056
  }
34156
34057
  //#endregion
34157
- //#region src/SeamsWeb/operations/devices/linkDevice.ts
34058
+ //#region src/SeamsWeb/operations/devices/linkDeviceFlowSupport.ts
34158
34059
  function linkedDeviceWalletAuthenticationState(walletSession, registration) {
34159
34060
  switch (registration.targetFactor.kind) {
34160
34061
  case "verified_passkey_target_v1": return {
@@ -34170,12 +34071,6 @@ function linkedDeviceWalletAuthenticationState(walletSession, registration) {
34170
34071
  default: return registration.targetFactor;
34171
34072
  }
34172
34073
  }
34173
- function isPasskeyTargetPreparation(preparation) {
34174
- return preparation.targetFactor.kind === "passkey_prf";
34175
- }
34176
- function isEmailOtpTargetPreparation(preparation) {
34177
- return preparation.targetFactor.kind === "email_otp";
34178
- }
34179
34074
  function createLinkSessionId() {
34180
34075
  const parsed = parseLinkDeviceSessionId(secureRandomId("link-session", 32));
34181
34076
  if (!parsed.ok) throw new Error(parsed.error.message);
@@ -34266,6 +34161,36 @@ async function generateQrCodeDataUrlV1(payload) {
34266
34161
  margin: 2
34267
34162
  });
34268
34163
  }
34164
+ function buildDevice2QrSessionPayloadV1(input) {
34165
+ const requestedPermission = buildFullOwnerDelegatedWalletAuthorityV1();
34166
+ if (input.target.targetFactor.kind === "email_otp") return buildQrLinkedDeviceSessionPayloadV5({
34167
+ linkSessionId: input.linkSessionId,
34168
+ linkPublicKeyB64u: input.linkPublicKeyB64u,
34169
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
34170
+ requestedPermission,
34171
+ targetFactor: { kind: "email_otp" },
34172
+ targetEmail: normalizeLinkedDeviceTargetEmailAddressV1(input.target.targetEmail),
34173
+ issuedAtMs: input.issuedAtMs,
34174
+ expiresAtMs: input.expiresAtMs
34175
+ });
34176
+ return buildQrLinkedDeviceSessionPayloadV5({
34177
+ linkSessionId: input.linkSessionId,
34178
+ linkPublicKeyB64u: input.linkPublicKeyB64u,
34179
+ devicePublicKeyB64u: input.devicePublicKeyB64u,
34180
+ requestedPermission,
34181
+ targetFactor: { kind: "passkey_prf" },
34182
+ issuedAtMs: input.issuedAtMs,
34183
+ expiresAtMs: input.expiresAtMs
34184
+ });
34185
+ }
34186
+ //#endregion
34187
+ //#region src/SeamsWeb/operations/devices/linkDeviceTargetActivation.ts
34188
+ function isPasskeyTargetPreparation(preparation) {
34189
+ return preparation.targetFactor.kind === "passkey_prf";
34190
+ }
34191
+ function isEmailOtpTargetPreparation(preparation) {
34192
+ return preparation.targetFactor.kind === "email_otp";
34193
+ }
34269
34194
  function emailOtpTargetActivationBaseContextV1(context) {
34270
34195
  return {
34271
34196
  event: context.event,
@@ -34297,7 +34222,7 @@ function resolvePostLinkActivationV1(input) {
34297
34222
  switch (input.targetFactor.kind) {
34298
34223
  case "verified_passkey_target_v1": {
34299
34224
  const activation = input.targetCredentialActivationState;
34300
- if (activation.kind !== "factor_ready" && activation.kind !== "consuming" || activation.runEpoch !== input.runEpoch) throw new Error("linked-device Passkey factor runtime is unavailable");
34225
+ if (activation.kind !== "factor_ready" || activation.runEpoch !== input.runEpoch) throw new Error("linked-device Passkey factor runtime is unavailable");
34301
34226
  return {
34302
34227
  factor: {
34303
34228
  kind: "passkey",
@@ -34368,32 +34293,12 @@ async function prepareNewEmailOtpEnrollmentMaterialV1(input) {
34368
34293
  zeroizeLiveBytes$1(disposableSecret);
34369
34294
  }
34370
34295
  }
34371
- function buildDevice2QrSessionPayloadV1(input) {
34372
- const requestedPermission = buildFullOwnerDelegatedWalletAuthorityV1();
34373
- if (input.target.targetFactor.kind === "email_otp") return buildQrLinkedDeviceSessionPayloadV5({
34374
- linkSessionId: input.linkSessionId,
34375
- linkPublicKeyB64u: input.linkPublicKeyB64u,
34376
- devicePublicKeyB64u: input.devicePublicKeyB64u,
34377
- requestedPermission,
34378
- targetFactor: { kind: "email_otp" },
34379
- targetEmail: normalizeLinkedDeviceTargetEmailAddressV1(input.target.targetEmail),
34380
- issuedAtMs: input.issuedAtMs,
34381
- expiresAtMs: input.expiresAtMs
34382
- });
34383
- return buildQrLinkedDeviceSessionPayloadV5({
34384
- linkSessionId: input.linkSessionId,
34385
- linkPublicKeyB64u: input.linkPublicKeyB64u,
34386
- devicePublicKeyB64u: input.devicePublicKeyB64u,
34387
- requestedPermission,
34388
- targetFactor: { kind: "passkey_prf" },
34389
- issuedAtMs: input.issuedAtMs,
34390
- expiresAtMs: input.expiresAtMs
34391
- });
34392
- }
34393
34296
  function requireNewEmailOtpEnrollmentMaterialV1(value) {
34394
34297
  if (!value) throw new Error("new linked-device Email OTP enrollment material is unavailable");
34395
34298
  return value;
34396
34299
  }
34300
+ //#endregion
34301
+ //#region src/SeamsWeb/operations/devices/linkDeviceFlow.ts
34397
34302
  var LinkDeviceFlow = class {
34398
34303
  constructor(options, ports, getAuthenticationContext = null) {
34399
34304
  this.session = null;
@@ -34562,15 +34467,8 @@ var LinkDeviceFlow = class {
34562
34467
  case "claimed":
34563
34468
  case "awaiting_target_factor":
34564
34469
  case "awaiting_source_contribution":
34565
- case "provisioning": {
34566
- const identity = await this.resolveLinkIdentityV1(session.linkSessionId);
34567
- await authenticatedTransport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
34568
- linkSessionId: session.linkSessionId,
34569
- enrollmentId: identity.enrollmentId,
34570
- deviceId: identity.deviceId,
34571
- reason: "user_cancelled",
34572
- requestedAtMs: now
34573
- }) });
34470
+ case "provisioning":
34471
+ await this.cancelClaimedSessionV1(authenticatedTransport, session.linkSessionId, now);
34574
34472
  this.session = {
34575
34473
  ...session,
34576
34474
  state: {
@@ -34579,7 +34477,6 @@ var LinkDeviceFlow = class {
34579
34477
  }
34580
34478
  };
34581
34479
  break;
34582
- }
34583
34480
  case "authority_pending_local_install": break;
34584
34481
  case "active":
34585
34482
  case "expired":
@@ -34601,16 +34498,6 @@ var LinkDeviceFlow = class {
34601
34498
  }
34602
34499
  });
34603
34500
  }
34604
- async reset() {
34605
- if (this.hasCommittedDeliveryState()) throw new Error("Device-link authority delivery is committed and must be resumed");
34606
- this.runEpoch += 1;
34607
- this.cancelled = true;
34608
- await this.cleanupLocalResources();
34609
- this.session = null;
34610
- this.error = void 0;
34611
- this.cancelled = false;
34612
- this.handledStates.clear();
34613
- }
34614
34501
  async resolveLinkIdentityV1(linkSessionId) {
34615
34502
  const cached = this.targetCredentialRegistrationResult;
34616
34503
  if (cached && cached.linkSessionId === linkSessionId) return {
@@ -34628,6 +34515,16 @@ var LinkDeviceFlow = class {
34628
34515
  deviceId: preparation.deviceId
34629
34516
  };
34630
34517
  }
34518
+ async cancelClaimedSessionV1(transport, linkSessionId, requestedAtMs) {
34519
+ const identity = await this.resolveLinkIdentityV1(linkSessionId);
34520
+ await transport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
34521
+ linkSessionId,
34522
+ enrollmentId: identity.enrollmentId,
34523
+ deviceId: identity.deviceId,
34524
+ reason: "user_cancelled",
34525
+ requestedAtMs
34526
+ }) });
34527
+ }
34631
34528
  async handleSessionEvent(event) {
34632
34529
  if (this.cancelled || this.deliveryRecoveryReason !== null || !this.session || event.linkSessionId !== this.session.linkSessionId) return;
34633
34530
  logDevice2LinkingStageV1({
@@ -34682,14 +34579,9 @@ var LinkDeviceFlow = class {
34682
34579
  await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
34683
34580
  return;
34684
34581
  }
34685
- case "active": {
34686
- const result = await this.activateAuthorityForStateV1(event.state, runEpoch);
34687
- if (result.kind === "pending_local_install") return;
34688
- if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
34689
- if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
34690
- await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
34582
+ case "active":
34583
+ await this.replayCommittedAuthorityV1(event.state, runEpoch);
34691
34584
  return;
34692
- }
34693
34585
  case "expired": {
34694
34586
  const error = new DeviceLinkingError("Device-link session expired", DeviceLinkingErrorCode.SESSION_EXPIRED, "registration");
34695
34587
  this.error = error;
@@ -34852,25 +34744,7 @@ var LinkDeviceFlow = class {
34852
34744
  workerEphemeralPublicKey65B64u
34853
34745
  } });
34854
34746
  this.assertCurrentRun(context.runEpoch);
34855
- this.emailOtpTargetActivationState = {
34856
- kind: "awaiting_code",
34857
- context: {
34858
- event: context.event,
34859
- state: context.state,
34860
- runEpoch: context.runEpoch,
34861
- deviceId: context.deviceId,
34862
- preparation: context.preparation,
34863
- ordinarySignerMaterialRecipientRequests: context.ordinarySignerMaterialRecipientRequests,
34864
- exportRoot: context.exportRoot,
34865
- challenge
34866
- }
34867
- };
34868
- this.notifyEmailOtpActivationV1({
34869
- kind: "code_input",
34870
- maskedEmailHint: challenge.maskedEmailHint,
34871
- expiresAtMs: challenge.expiresAtMs,
34872
- resendAvailableAtMs: challenge.resendAvailableAtMs
34873
- });
34747
+ this.awaitTargetEmailOtpCodeV1(context, challenge);
34874
34748
  } catch (error) {
34875
34749
  if (this.isCurrentRun(context.runEpoch)) {
34876
34750
  this.emailOtpTargetActivationState = {
@@ -34885,6 +34759,21 @@ var LinkDeviceFlow = class {
34885
34759
  throw error;
34886
34760
  }
34887
34761
  }
34762
+ awaitTargetEmailOtpCodeV1(context, challenge) {
34763
+ this.emailOtpTargetActivationState = {
34764
+ kind: "awaiting_code",
34765
+ context: {
34766
+ ...emailOtpTargetActivationBaseContextV1(context),
34767
+ challenge
34768
+ }
34769
+ };
34770
+ this.notifyEmailOtpActivationV1({
34771
+ kind: "code_input",
34772
+ maskedEmailHint: challenge.maskedEmailHint,
34773
+ expiresAtMs: challenge.expiresAtMs,
34774
+ resendAvailableAtMs: challenge.resendAvailableAtMs
34775
+ });
34776
+ }
34888
34777
  resendTargetEmailOtpCodeV1() {
34889
34778
  const state = this.emailOtpTargetActivationState;
34890
34779
  if (state.kind === "resending") return state.promise;
@@ -34914,25 +34803,7 @@ var LinkDeviceFlow = class {
34914
34803
  challengeId: context.challenge.challengeId
34915
34804
  } });
34916
34805
  this.assertCurrentRun(context.runEpoch);
34917
- this.emailOtpTargetActivationState = {
34918
- kind: "awaiting_code",
34919
- context: {
34920
- event: context.event,
34921
- state: context.state,
34922
- runEpoch: context.runEpoch,
34923
- deviceId: context.deviceId,
34924
- preparation: context.preparation,
34925
- ordinarySignerMaterialRecipientRequests: context.ordinarySignerMaterialRecipientRequests,
34926
- exportRoot: context.exportRoot,
34927
- challenge
34928
- }
34929
- };
34930
- this.notifyEmailOtpActivationV1({
34931
- kind: "code_input",
34932
- maskedEmailHint: challenge.maskedEmailHint,
34933
- expiresAtMs: challenge.expiresAtMs,
34934
- resendAvailableAtMs: challenge.resendAvailableAtMs
34935
- });
34806
+ this.awaitTargetEmailOtpCodeV1(context, challenge);
34936
34807
  } catch (error) {
34937
34808
  if (this.isCurrentRun(context.runEpoch)) {
34938
34809
  const message = errorMessage(error) || "Email OTP resend is unavailable";
@@ -35063,32 +34934,14 @@ var LinkDeviceFlow = class {
35063
34934
  enrollmentId: emailOtpEnrollmentId,
35064
34935
  enrollmentSealKeyVersion: emailOtpEnrollmentSealKeyVersion
35065
34936
  });
35066
- const binding = buildEd25519YaoClientRootBinding({
35067
- linkSessionId: preparation.linkSessionId,
35068
- walletKeyId: exportRoot.walletKeyId,
35069
- targetFactor: preparation.targetFactor,
35070
- applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
35071
- registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
35072
- enrollmentId: preparation.enrollmentId,
35073
- deviceId: preparation.deviceId,
35074
- revocationEpoch: exportRoot.revocationEpoch
35075
- });
35076
- this.resealedExportRoot = await acceptLinkedDeviceEd25519ExportRootV1({
35077
- ed25519ExportRoot: this.ports.ed25519ExportRoot,
35078
- transport: this.requireAuthenticatedTransport(),
34937
+ this.resealedExportRoot = await this.acceptTargetExportRootV1({
34938
+ preparation,
34939
+ exportRoot,
35079
34940
  recipient,
35080
- replacementEnvelope: buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1({
35081
- walletId: preparation.walletId,
35082
- ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
35083
- envelopeId,
35084
- factor,
35085
- binding,
35086
- createdAtMs: Date.now()
35087
- }),
34941
+ envelopeId,
34942
+ factor,
35088
34943
  replacementFactorSecret: new Uint8Array(factorSecret),
35089
- expiresAtMs: Math.min(preparation.expiresAtMs, this.requireSessionV1().qrData.expiresAtMs),
35090
- assertCurrentRun: () => this.assertCurrentRun(context.runEpoch),
35091
- waitForPollV1: waitForSessionStateRetry
34944
+ runEpoch: context.runEpoch
35092
34945
  });
35093
34946
  recipient = null;
35094
34947
  }
@@ -35180,9 +35033,6 @@ var LinkDeviceFlow = class {
35180
35033
  case "factor_ready":
35181
35034
  if (this.targetCredentialActivationState.runEpoch === input.runEpoch) return Promise.reject(/* @__PURE__ */ new Error("Device-link target passkey activation has already completed"));
35182
35035
  return Promise.reject(new LinkDeviceFlowSupersededError());
35183
- case "consuming":
35184
- if (this.targetCredentialActivationState.runEpoch === input.runEpoch) return Promise.reject(/* @__PURE__ */ new Error("Device-link target passkey activation is already being consumed"));
35185
- return Promise.reject(new LinkDeviceFlowSupersededError());
35186
35036
  default: return assertNeverTargetCredentialActivationState(this.targetCredentialActivationState);
35187
35037
  }
35188
35038
  const activation = this.runTargetCredentialActivation(input);
@@ -35231,27 +35081,9 @@ var LinkDeviceFlow = class {
35231
35081
  default: throw new Error("linked-device target factor is unsupported");
35232
35082
  }
35233
35083
  }
35234
- claimTargetCredentialFactorSecret(runEpoch) {
35235
- switch (this.targetCredentialActivationState.kind) {
35236
- case "idle": return null;
35237
- case "in_progress": throw new Error("Device-link target passkey activation is still in progress");
35238
- case "factor_ready": {
35239
- if (this.targetCredentialActivationState.runEpoch !== runEpoch) throw new LinkDeviceFlowSupersededError();
35240
- const factorSecret = this.targetCredentialActivationState.factorSecret;
35241
- this.targetCredentialActivationState = {
35242
- kind: "consuming",
35243
- runEpoch,
35244
- factorSecret
35245
- };
35246
- return factorSecret;
35247
- }
35248
- case "consuming": throw new Error("Device-link target passkey activation is already being consumed");
35249
- default: return assertNeverTargetCredentialActivationState(this.targetCredentialActivationState);
35250
- }
35251
- }
35252
35084
  clearTargetCredentialActivationState() {
35253
35085
  const state = this.targetCredentialActivationState;
35254
- if (state.kind === "factor_ready" || state.kind === "consuming") zeroizeLiveBytes$1(state.factorSecret);
35086
+ if (state.kind === "factor_ready") zeroizeLiveBytes$1(state.factorSecret);
35255
35087
  this.targetCredentialActivationState = { kind: "idle" };
35256
35088
  }
35257
35089
  async createTargetCredential(input) {
@@ -35318,32 +35150,14 @@ var LinkDeviceFlow = class {
35318
35150
  rpId: requireTargetRpIdV1(preparation),
35319
35151
  credentialIdB64u: credential.webauthnRegistration.credentialIdB64u
35320
35152
  });
35321
- const binding = buildEd25519YaoClientRootBinding({
35322
- linkSessionId: preparation.linkSessionId,
35323
- walletKeyId: exportRoot.walletKeyId,
35324
- targetFactor: preparation.targetFactor,
35325
- applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
35326
- registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
35327
- enrollmentId: preparation.enrollmentId,
35328
- deviceId: preparation.deviceId,
35329
- revocationEpoch: exportRoot.revocationEpoch
35330
- });
35331
- const resealed = await acceptLinkedDeviceEd25519ExportRootV1({
35332
- ed25519ExportRoot: this.ports.ed25519ExportRoot,
35333
- transport: authenticatedTransport,
35153
+ const resealed = await this.acceptTargetExportRootV1({
35154
+ preparation,
35155
+ exportRoot,
35334
35156
  recipient,
35335
- replacementEnvelope: buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1({
35336
- walletId: preparation.walletId,
35337
- ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
35338
- envelopeId,
35339
- factor,
35340
- binding,
35341
- createdAtMs: Date.now()
35342
- }),
35157
+ envelopeId,
35158
+ factor,
35343
35159
  replacementFactorSecret: credential.factorSecret,
35344
- expiresAtMs: Math.min(preparation.expiresAtMs, this.session.qrData.expiresAtMs),
35345
- assertCurrentRun: () => this.assertCurrentRun(runEpoch),
35346
- waitForPollV1: waitForSessionStateRetry
35160
+ runEpoch
35347
35161
  });
35348
35162
  logDevice2LinkingStageV1({
35349
35163
  flowId: this.flowId,
@@ -35394,6 +35208,36 @@ var LinkDeviceFlow = class {
35394
35208
  throw error;
35395
35209
  }
35396
35210
  }
35211
+ async acceptTargetExportRootV1(input) {
35212
+ const { preparation, exportRoot } = input;
35213
+ const binding = buildEd25519YaoClientRootBinding({
35214
+ linkSessionId: preparation.linkSessionId,
35215
+ walletKeyId: exportRoot.walletKeyId,
35216
+ targetFactor: preparation.targetFactor,
35217
+ applicationBindingDigestB64u: exportRoot.applicationBindingDigestB64u,
35218
+ registeredPublicKeyB64u: exportRoot.registeredPublicKeyB64u,
35219
+ enrollmentId: preparation.enrollmentId,
35220
+ deviceId: preparation.deviceId,
35221
+ revocationEpoch: exportRoot.revocationEpoch
35222
+ });
35223
+ return await acceptLinkedDeviceEd25519ExportRootV1({
35224
+ ed25519ExportRoot: this.ports.ed25519ExportRoot,
35225
+ transport: this.requireAuthenticatedTransport(),
35226
+ recipient: input.recipient,
35227
+ replacementEnvelope: buildDeviceLinkingEd25519ExportRootReplacementEnvelopeV1({
35228
+ walletId: preparation.walletId,
35229
+ ownership: buildMethodBoundEnvelopeOwnership(preparation.walletAuthMethodId),
35230
+ envelopeId: input.envelopeId,
35231
+ factor: input.factor,
35232
+ binding,
35233
+ createdAtMs: Date.now()
35234
+ }),
35235
+ replacementFactorSecret: input.replacementFactorSecret,
35236
+ expiresAtMs: Math.min(preparation.expiresAtMs, this.requireSessionV1().qrData.expiresAtMs),
35237
+ assertCurrentRun: () => this.assertCurrentRun(input.runEpoch),
35238
+ waitForPollV1: waitForSessionStateRetry
35239
+ });
35240
+ }
35397
35241
  assertTargetPreparationMatchesSession(input) {
35398
35242
  const sessionTargetFactor = this.requireSessionTargetFactorV1();
35399
35243
  const qrData = this.requireSessionV1().qrData;
@@ -35493,10 +35337,7 @@ var LinkDeviceFlow = class {
35493
35337
  acknowledgedAtMs: Date.now()
35494
35338
  };
35495
35339
  await this.ports.authorityInstallation.persistPendingActivationAcknowledgementV1({ acknowledgement });
35496
- await this.closeSessionSubscriptionV1();
35497
- await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement });
35498
- await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: acknowledgement.authorityId });
35499
- await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: acknowledgement.authorityId });
35340
+ await this.sendActivationAcknowledgementV1(acknowledgement);
35500
35341
  this.session = activeSession;
35501
35342
  authenticationContext.signingEngine.setWalletAuthenticated(linkedDeviceWalletAuthenticationState(walletSession, registration));
35502
35343
  await this.cleanupCompletedLocalResources();
@@ -35546,13 +35387,9 @@ var LinkDeviceFlow = class {
35546
35387
  return preparation;
35547
35388
  }
35548
35389
  startRun() {
35549
- this.clearTargetCredentialActivationState();
35550
- this.clearEmailOtpTargetActivationState();
35551
- this.resealedExportRoot = null;
35552
- this.targetCredentialRegistrationResult = null;
35390
+ this.clearRunActivationStateV1();
35553
35391
  this.committedAuthorityPackages = null;
35554
35392
  this.deliveryRecoveryReason = null;
35555
- this.ordinarySignerMaterialRecipientPreparation = null;
35556
35393
  this.runEpoch += 1;
35557
35394
  this.generationInProgress = true;
35558
35395
  this.cancelled = false;
@@ -35640,12 +35477,8 @@ var LinkDeviceFlow = class {
35640
35477
  error: cleanupError
35641
35478
  });
35642
35479
  }
35643
- this.clearTargetCredentialActivationState();
35644
- this.clearEmailOtpTargetActivationState();
35645
- this.resealedExportRoot = null;
35646
- this.targetCredentialRegistrationResult = null;
35480
+ this.clearRunActivationStateV1();
35647
35481
  this.committedAuthorityPackages = null;
35648
- this.ordinarySignerMaterialRecipientPreparation = null;
35649
35482
  this.keyMaterialHandle = null;
35650
35483
  this.deliveryRecipientPublicKey65B64u = null;
35651
35484
  this.authenticatedTransport = null;
@@ -35658,18 +35491,19 @@ var LinkDeviceFlow = class {
35658
35491
  switch (event.state.state) {
35659
35492
  case "provisioning":
35660
35493
  case "authority_pending_local_install":
35661
- case "active": {
35662
- const runEpoch = this.runEpoch;
35663
- const result = await this.activateAuthorityForStateV1(event.state, runEpoch);
35664
- if (result.kind === "pending_local_install") return;
35665
- if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
35666
- if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
35667
- await this.finishActiveAuthorityV1(event.state, result.session, result.operationCredential, runEpoch);
35494
+ case "active":
35495
+ await this.replayCommittedAuthorityV1(event.state, this.runEpoch);
35668
35496
  return;
35669
- }
35670
35497
  default: throw new Error(`committed link delivery cannot resume from ${event.state.state}`);
35671
35498
  }
35672
35499
  }
35500
+ async replayCommittedAuthorityV1(state, runEpoch) {
35501
+ const result = await this.activateAuthorityForStateV1(state, runEpoch);
35502
+ if (result.kind === "pending_local_install") return;
35503
+ if (result.kind === "integrity_error") throw new DeviceLinkingError(`Linked-device authority replay failed: ${result.reason}`, DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
35504
+ if (result.kind === "failed_before_commit" || result.kind === "relink_required") throw new DeviceLinkingError("Linked-device authority replay cannot continue", DeviceLinkingErrorCode.REGISTRATION_FAILED, "registration");
35505
+ await this.finishActiveAuthorityV1(state, result.session, result.operationCredential, runEpoch);
35506
+ }
35673
35507
  async replayPendingActivationAcknowledgementV1() {
35674
35508
  const committed = this.committedAuthorityPackages;
35675
35509
  if (!committed) return false;
@@ -35677,12 +35511,15 @@ var LinkDeviceFlow = class {
35677
35511
  if (!pending) return false;
35678
35512
  const session = this.requireSessionV1();
35679
35513
  if (pending.linkSessionId !== session.qrData.linkSessionId || pending.authorityId !== committed.authority.authorityId || pending.packageSetDigestB64u !== committed.packageSetDigestB64u) throw new Error("pending linked-device acknowledgement identity is inconsistent");
35680
- await this.closeSessionSubscriptionV1();
35681
- await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement: pending });
35682
- await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: pending.authorityId });
35683
- await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: pending.authorityId });
35514
+ await this.sendActivationAcknowledgementV1(pending);
35684
35515
  return true;
35685
35516
  }
35517
+ async sendActivationAcknowledgementV1(acknowledgement) {
35518
+ await this.closeSessionSubscriptionV1();
35519
+ await this.requireAuthenticatedTransport().acknowledgeLocalAuthorityActivationV1({ acknowledgement });
35520
+ await this.ports.authorityInstallation.clearPendingActivationAcknowledgementV1({ authorityId: acknowledgement.authorityId });
35521
+ await this.ports.authorityInstallation.clearCommittedDeliveryResumeV1({ authorityId: acknowledgement.authorityId });
35522
+ }
35686
35523
  async cancelFailedPrecommitSession(event) {
35687
35524
  const transport = this.authenticatedTransport;
35688
35525
  if (!transport) return;
@@ -35692,14 +35529,7 @@ var LinkDeviceFlow = class {
35692
35529
  case "awaiting_source_contribution":
35693
35530
  case "provisioning": {
35694
35531
  const cancelledAtMs = Date.now();
35695
- const identity = await this.resolveLinkIdentityV1(event.linkSessionId);
35696
- await transport.cancelSessionV1({ request: buildLinkedDeviceSessionCancelClaimedRequestV1({
35697
- linkSessionId: event.linkSessionId,
35698
- enrollmentId: identity.enrollmentId,
35699
- deviceId: identity.deviceId,
35700
- reason: "user_cancelled",
35701
- requestedAtMs: cancelledAtMs
35702
- }) });
35532
+ await this.cancelClaimedSessionV1(transport, event.linkSessionId, cancelledAtMs);
35703
35533
  if (this.session?.linkSessionId === event.linkSessionId) this.session = {
35704
35534
  ...this.session,
35705
35535
  state: {
@@ -35721,13 +35551,7 @@ var LinkDeviceFlow = class {
35721
35551
  async cleanupLocalResources(force = false) {
35722
35552
  if (!force && this.hasCommittedDeliveryState()) return;
35723
35553
  const preserveCommittedState = force && this.hasCommittedDeliveryState();
35724
- if (!preserveCommittedState) {
35725
- this.clearTargetCredentialActivationState();
35726
- this.clearEmailOtpTargetActivationState();
35727
- this.resealedExportRoot = null;
35728
- this.targetCredentialRegistrationResult = null;
35729
- this.ordinarySignerMaterialRecipientPreparation = null;
35730
- }
35554
+ if (!preserveCommittedState) this.clearRunActivationStateV1();
35731
35555
  let failure;
35732
35556
  const subscription = this.subscription;
35733
35557
  if (subscription) try {
@@ -35743,14 +35567,17 @@ var LinkDeviceFlow = class {
35743
35567
  }
35744
35568
  if (failure) throw failure;
35745
35569
  if (preserveCommittedState) {
35746
- this.clearTargetCredentialActivationState();
35747
- this.clearEmailOtpTargetActivationState();
35748
- this.resealedExportRoot = null;
35749
- this.targetCredentialRegistrationResult = null;
35750
- this.ordinarySignerMaterialRecipientPreparation = null;
35570
+ this.clearRunActivationStateV1();
35751
35571
  this.committedAuthorityPackages = null;
35752
35572
  }
35753
35573
  }
35574
+ clearRunActivationStateV1() {
35575
+ this.clearTargetCredentialActivationState();
35576
+ this.clearEmailOtpTargetActivationState();
35577
+ this.resealedExportRoot = null;
35578
+ this.targetCredentialRegistrationResult = null;
35579
+ this.ordinarySignerMaterialRecipientPreparation = null;
35580
+ }
35754
35581
  async closeSessionSubscriptionV1() {
35755
35582
  const subscription = this.subscription;
35756
35583
  if (!subscription) return;
@@ -35809,6 +35636,8 @@ var LinkDeviceFlow = class {
35809
35636
  }));
35810
35637
  }
35811
35638
  };
35639
+ //#endregion
35640
+ //#region src/SeamsWeb/operations/devices/linkDevice.ts
35812
35641
  function isFinishedDeviceLinkFlow(flow) {
35813
35642
  const state = flow.getState();
35814
35643
  if (state.cancelled || state.error || !state.session) return true;
@@ -37017,7 +36846,8 @@ async function signNEP413Message(args) {
37017
36846
  };
37018
36847
  }
37019
36848
  }
37020
- Object.freeze({ kind: "threshold_secp256k1_ecdsa_2p_v1" });
36849
+ //#endregion
36850
+ //#region ../shared-ts/src/threshold/secp256k1.ts
37021
36851
  const THRESHOLD_SECP256K1_ECDSA_2P_PARTICIPANT_IDS_V1 = [1, 2];
37022
36852
  //#endregion
37023
36853
  //#region src/SeamsWeb/operations/registration/registrationSignerSet.ts
@@ -38109,7 +37939,7 @@ function assertOneEcdsaCustodyIdentity(continuity) {
38109
37939
  if (continuity.state === "absent") return null;
38110
37940
  const first = continuity.signers[0];
38111
37941
  const chainTargets = /* @__PURE__ */ new Set();
38112
- for (const signer of continuity.signers.slice(1)) if (signer.walletKey.keyHandle !== first.walletKey.keyHandle || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope$1(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("sync-account returned conflicting ECDSA custody identities");
37942
+ for (const signer of continuity.signers.slice(1)) if (signer.walletKey.keyHandle !== first.walletKey.keyHandle || !sameRouterAbEcdsaDerivationPublicCapabilityV1(signer.walletKey.publicCapability, first.walletKey.publicCapability) || !sameRouterAbEcdsaRegistrationActivationReceiptV1(signer.activationReceipt, first.activationReceipt) || !sameRuntimePolicyScope(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("sync-account returned conflicting ECDSA custody identities");
38113
37943
  for (const signer of continuity.signers) {
38114
37944
  const key = thresholdEcdsaChainTargetKey(signer.chainTarget);
38115
37945
  if (chainTargets.has(key)) throw new Error("sync-account returned duplicate ECDSA custody chain targets");
@@ -38930,7 +38760,10 @@ async function executeEvmFamilyTransactionLifecycle(args) {
38930
38760
  }
38931
38761
  });
38932
38762
  const rawTxHex = assertRawTxHexOrThrow(signedResult.rawTxHex);
38933
- args.lifecycle.onBroadcastStarted?.(signedResult);
38763
+ args.lifecycle.onBroadcastStarted({
38764
+ walletSession: args.input.walletSession,
38765
+ signedResult
38766
+ });
38934
38767
  txHash = normalizeTxHashOrThrow(await client.request({
38935
38768
  method: "eth_sendRawTransaction",
38936
38769
  params: [rawTxHex]
@@ -39276,6 +39109,11 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
39276
39109
  ...args,
39277
39110
  chainTarget: resolveTempoChainTarget(deps.configs.network.chains, args.chainTarget)
39278
39111
  }));
39112
+ const onBroadcastStarted = (args) => {
39113
+ const walletIframe = deps.getWalletIframe();
39114
+ if (!walletIframe.shouldUseWalletIframe()) return;
39115
+ walletIframe.requireRouter(toWalletId(args.walletSession.walletId)).then((router) => router.notifyTransactionBroadcastStarted(args.signedResult)).catch(() => {});
39116
+ };
39279
39117
  const reportBroadcastAccepted = async (args) => {
39280
39118
  const walletIframe = deps.getWalletIframe();
39281
39119
  const walletId = toWalletId(args.walletSession.walletId);
@@ -39391,6 +39229,7 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
39391
39229
  }
39392
39230
  };
39393
39231
  const lifecycle = {
39232
+ onBroadcastStarted,
39394
39233
  signEvmFamily,
39395
39234
  reportBroadcastAccepted,
39396
39235
  reportBroadcastRejected,
@@ -39487,6 +39326,9 @@ function createCurrentWalletResolver(deps) {
39487
39326
  }
39488
39327
  };
39489
39328
  }
39329
+ //#endregion
39330
+ //#region src/SeamsWeb/publicApi/awaitNearReady.ts
39331
+ const DEFAULT_AWAIT_NEAR_READY_TIMEOUT_MS = 12e4;
39490
39332
  function outcomeFor(state) {
39491
39333
  if (!state) return null;
39492
39334
  if (state.status === "near_ready") return {
@@ -39510,7 +39352,7 @@ function outcomeFor(state) {
39510
39352
  async function awaitNearReady(deps, args) {
39511
39353
  const walletId = String(args.walletId || "").trim();
39512
39354
  if (!walletId) throw new Error("[seams] awaitNearReady requires a walletId");
39513
- const timeoutMs = Math.max(1, Math.floor(Number(args.timeoutMs) || 0)) || 12e4;
39355
+ const timeoutMs = Math.max(1, Math.floor(Number(args.timeoutMs) || 0)) || DEFAULT_AWAIT_NEAR_READY_TIMEOUT_MS;
39514
39356
  let unsubscribe = null;
39515
39357
  let timer = null;
39516
39358
  let onAbort = null;
@@ -39788,7 +39630,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
39788
39630
  const transfer = [input.factorSecret, ...recipientInputTransferables(recipientInputs)];
39789
39631
  return parsePreparationResult(await send({
39790
39632
  kind: "device_linking_ordinary_signer_material_prepare_private_v1",
39791
- handleId: requireString$1(input.keyMaterial.handleId, "keyMaterial.handleId"),
39633
+ handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
39792
39634
  targetFactor: targetFactorBindingV1(input.targetFactor),
39793
39635
  preparations,
39794
39636
  recipientRequests,
@@ -39799,7 +39641,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
39799
39641
  async createOrdinarySignerMaterialRecipientRequestsV1(input) {
39800
39642
  return parseRecipientPreparationResult(await send({
39801
39643
  kind: "device_linking_ordinary_signer_material_recipient_prepare_v1",
39802
- handleId: requireString$1(input.keyMaterial.handleId, "keyMaterial.handleId"),
39644
+ handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
39803
39645
  requirements: parseRecipientRequirementTuple(input.requirements)
39804
39646
  }));
39805
39647
  },
@@ -39807,7 +39649,7 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
39807
39649
  const committed = parseCommittedAuthorityPackagesV1(input.committed);
39808
39650
  return parseSealedLocalAuthorityMaterialSetV1(await send({
39809
39651
  kind: "device_linking_ordinary_signer_material_seal_v1",
39810
- handleId: requireString$1(input.keyMaterial.handleId, "keyMaterial.handleId"),
39652
+ handleId: requireCanonicalString(input.keyMaterial.handleId, "keyMaterial.handleId", "is required"),
39811
39653
  committed,
39812
39654
  targetFactor: targetFactorBindingV1(input.targetFactor),
39813
39655
  resealedExportRoot: parseOrdinaryResealedExportRootRecordV1(input.resealedExportRoot)
@@ -39817,11 +39659,15 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
39817
39659
  }
39818
39660
  function parseOrdinaryResealedExportRootRecordV1(value) {
39819
39661
  if (value === null) return null;
39820
- if (!isOrdinaryResealedExportRootRecordV1(value)) throw new Error("ordinary material resealed export root has unsupported fields");
39662
+ if (!hasExactKeys(value, ["envelope"])) throw new Error("ordinary material resealed export root has unsupported fields");
39821
39663
  return { envelope: parsePasskeyCustodyEnvelopeRecord(value.envelope) };
39822
39664
  }
39823
39665
  function parsePreparationResult(value) {
39824
- if (!isOrdinaryMaterialPreparationResultRecordV1(value)) throw new Error("ordinary material preparation result has invalid fields");
39666
+ if (!hasExactKeys(value, [
39667
+ "kind",
39668
+ "targetFactor",
39669
+ "preparations"
39670
+ ])) throw new Error("ordinary material preparation result has invalid fields");
39825
39671
  if (value.kind !== "device_linking_ordinary_signer_material_preparation_v1") throw new Error("ordinary material preparation result kind is invalid");
39826
39672
  return {
39827
39673
  kind: "device_linking_ordinary_signer_material_preparation_v1",
@@ -39843,7 +39689,11 @@ function parsePreparationTuple(value) {
39843
39689
  function parseRecipientRequirementTuple(value) {
39844
39690
  if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requirements must contain one or two entries");
39845
39691
  const requirements = value.map((entry, index) => {
39846
- if (!isOrdinaryRecipientRequirementRecordV1(entry)) throw new Error(`ordinary recipient requirement ${index} has invalid fields`);
39692
+ if (!hasExactKeys(entry, [
39693
+ "kind",
39694
+ "keyFamily",
39695
+ "walletKeyId"
39696
+ ])) throw new Error(`ordinary recipient requirement ${index} has invalid fields`);
39847
39697
  if (entry.kind !== "ordinary_signer_material_recipient_requirement_v1") throw new Error("ordinary recipient requirement kind is invalid");
39848
39698
  if (entry.keyFamily !== "ed25519" && entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary recipient requirement key family is invalid");
39849
39699
  const walletKeyId = parseWalletKey(entry.walletKeyId);
@@ -39860,8 +39710,13 @@ function parseRecipientRequirementTuple(value) {
39860
39710
  }
39861
39711
  function parseRecipientRequestTuple(value) {
39862
39712
  if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient requests must contain one or two entries");
39863
- const requests = value.map((entry, index) => {
39864
- if (isOrdinaryEd25519RecipientRequestRecordV1(entry)) {
39713
+ const requests = value.map((entry) => {
39714
+ if (hasExactKeys(entry, [
39715
+ "kind",
39716
+ "keyFamily",
39717
+ "walletKeyId",
39718
+ "recipientPublicKeyB64u"
39719
+ ])) {
39865
39720
  if (entry.kind !== "ordinary_ed25519_signer_material_recipient_request_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient request kind is invalid");
39866
39721
  return {
39867
39722
  kind: "ordinary_ed25519_signer_material_recipient_request_v1",
@@ -39870,13 +39725,18 @@ function parseRecipientRequestTuple(value) {
39870
39725
  recipientPublicKeyB64u: parseB64u(entry.recipientPublicKeyB64u, "Ed25519 recipient public key")
39871
39726
  };
39872
39727
  }
39873
- if (isOrdinaryEcdsaRecipientRequestRecordV1(entry)) {
39728
+ if (hasExactKeys(entry, [
39729
+ "kind",
39730
+ "keyFamily",
39731
+ "walletKeyId",
39732
+ "clientEphemeralPublicKey"
39733
+ ])) {
39874
39734
  if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_request_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient request kind is invalid");
39875
39735
  return {
39876
39736
  kind: "ordinary_ecdsa_signer_material_recipient_request_v1",
39877
39737
  keyFamily: "ecdsa_secp256k1",
39878
39738
  walletKeyId: parseWalletKey(entry.walletKeyId),
39879
- clientEphemeralPublicKey: requireString$1(entry.clientEphemeralPublicKey, "ECDSA client ephemeral public key")
39739
+ clientEphemeralPublicKey: requireCanonicalString(entry.clientEphemeralPublicKey, "ECDSA client ephemeral public key", "is required")
39880
39740
  };
39881
39741
  }
39882
39742
  throw new Error("ordinary recipient request key family is invalid");
@@ -39887,7 +39747,11 @@ function parseRecipientRequestTuple(value) {
39887
39747
  return [first, ...requests.slice(1)];
39888
39748
  }
39889
39749
  function parseRecipientPreparationResult(value) {
39890
- if (!isOrdinaryRecipientPreparationResultRecordV1(value)) throw new Error("ordinary recipient preparation result has invalid fields");
39750
+ if (!hasExactKeys(value, [
39751
+ "kind",
39752
+ "recipientRequests",
39753
+ "recipientInputs"
39754
+ ])) throw new Error("ordinary recipient preparation result has invalid fields");
39891
39755
  if (value.kind !== "device_linking_ordinary_signer_material_recipient_preparation_v1") throw new Error("ordinary recipient preparation result kind is invalid");
39892
39756
  const recipientRequests = parseRecipientRequestTuple(value.recipientRequests);
39893
39757
  const recipientInputs = parseRecipientInputTuple(value.recipientInputs);
@@ -39899,8 +39763,13 @@ function parseRecipientPreparationResult(value) {
39899
39763
  }
39900
39764
  function parseRecipientInputTuple(value) {
39901
39765
  if (!Array.isArray(value) || value.length === 0 || value.length > 2) throw new Error("ordinary signer material recipient inputs must contain one or two entries");
39902
- const inputs = value.map((entry, index) => {
39903
- if (isOrdinaryEd25519RecipientInputRecordV1(entry)) {
39766
+ const inputs = value.map((entry) => {
39767
+ if (hasExactKeys(entry, [
39768
+ "kind",
39769
+ "keyFamily",
39770
+ "walletKeyId",
39771
+ "recipientPrivateKey"
39772
+ ])) {
39904
39773
  if (entry.kind !== "ordinary_ed25519_signer_material_recipient_input_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient input kind is invalid");
39905
39774
  return {
39906
39775
  kind: "ordinary_ed25519_signer_material_recipient_input_v1",
@@ -39909,7 +39778,12 @@ function parseRecipientInputTuple(value) {
39909
39778
  recipientPrivateKey: parsePrivateKeyBuffer(entry.recipientPrivateKey, "Ed25519 recipient private key")
39910
39779
  };
39911
39780
  }
39912
- if (isOrdinaryEcdsaRecipientInputRecordV1(entry)) {
39781
+ if (hasExactKeys(entry, [
39782
+ "kind",
39783
+ "keyFamily",
39784
+ "walletKeyId",
39785
+ "clientEphemeralPrivateKey"
39786
+ ])) {
39913
39787
  if (entry.kind !== "ordinary_ecdsa_signer_material_recipient_input_v1" || entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary ECDSA recipient input kind is invalid");
39914
39788
  return {
39915
39789
  kind: "ordinary_ecdsa_signer_material_recipient_input_v1",
@@ -39957,7 +39831,13 @@ function parsePreparation(value) {
39957
39831
  return parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1(value);
39958
39832
  }
39959
39833
  function parseTargetFactorBindingV1(value) {
39960
- if (isOrdinaryPasskeyTargetFactorRecordV1(value)) {
39834
+ if (hasExactKeys(value, [
39835
+ "kind",
39836
+ "walletAuthMethodId",
39837
+ "verificationDigestB64u",
39838
+ "rpId",
39839
+ "credentialIdB64u"
39840
+ ])) {
39961
39841
  if (value.kind !== "passkey") throw new Error("ordinary material target factor kind is unsupported");
39962
39842
  const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
39963
39843
  if (!authMethod.ok) throw new Error(authMethod.error.message);
@@ -39966,29 +39846,41 @@ function parseTargetFactorBindingV1(value) {
39966
39846
  kind: "passkey",
39967
39847
  walletAuthMethodId: authMethod.value,
39968
39848
  verificationDigestB64u,
39969
- rpId: requireString$1(value.rpId, "ordinary target factor rpId"),
39849
+ rpId: requireCanonicalString(value.rpId, "ordinary target factor rpId", "is required"),
39970
39850
  credentialIdB64u: parseB64u(value.credentialIdB64u, "ordinary target factor credentialIdB64u")
39971
39851
  };
39972
39852
  }
39973
- if (isOrdinaryEmailOtpTargetFactorRecordV1(value)) {
39853
+ if (hasExactKeys(value, [
39854
+ "kind",
39855
+ "walletAuthMethodId",
39856
+ "verificationDigestB64u",
39857
+ "emailHashHex",
39858
+ "registrationAuthorityId"
39859
+ ])) {
39974
39860
  if (value.kind !== "email_otp") throw new Error("ordinary material target factor kind is unsupported");
39975
39861
  const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
39976
39862
  if (!authMethod.ok) throw new Error(authMethod.error.message);
39977
39863
  const verificationDigestB64u = parseDigestB64u(value.verificationDigestB64u);
39978
- const emailHashHex = requireString$1(value.emailHashHex, "ordinary target factor emailHashHex");
39864
+ const emailHashHex = requireCanonicalString(value.emailHashHex, "ordinary target factor emailHashHex", "is required");
39979
39865
  if (!/^[0-9a-f]{64}$/.test(emailHashHex)) throw new Error("ordinary target factor emailHashHex is invalid");
39980
39866
  return {
39981
39867
  kind: "email_otp",
39982
39868
  walletAuthMethodId: authMethod.value,
39983
39869
  verificationDigestB64u,
39984
39870
  emailHashHex,
39985
- registrationAuthorityId: requireString$1(value.registrationAuthorityId, "ordinary target factor registrationAuthorityId")
39871
+ registrationAuthorityId: requireCanonicalString(value.registrationAuthorityId, "ordinary target factor registrationAuthorityId", "is required")
39986
39872
  };
39987
39873
  }
39988
39874
  throw new Error("ordinary material target factor kind is unsupported");
39989
39875
  }
39990
39876
  function parseWalletAuthorityExportRootRecordV1(value) {
39991
- if (!isWalletAuthorityExportRootRecordV1(value)) throw new Error("ordinary material export-root record has invalid fields");
39877
+ if (!hasExactKeys(value, [
39878
+ "kind",
39879
+ "authorityId",
39880
+ "walletAuthMethodId",
39881
+ "walletKeyId",
39882
+ "envelope"
39883
+ ])) throw new Error("ordinary material export-root record has invalid fields");
39992
39884
  if (value.kind !== "wallet_authority_export_root_v1") throw new Error("ordinary material export-root record kind is invalid");
39993
39885
  const authorityId = parseWalletAuthorityId(value.authorityId);
39994
39886
  if (!authorityId.ok) throw new Error(authorityId.error.message);
@@ -40005,7 +39897,11 @@ function parseWalletAuthorityExportRootRecordV1(value) {
40005
39897
  };
40006
39898
  }
40007
39899
  function parseSealedLocalAuthorityMaterialSetV1(value) {
40008
- if (!isSealedLocalAuthorityMaterialSetRecordV1(value)) throw new Error("ordinary material worker returned an invalid sealed record set");
39900
+ if (!hasExactKeys(value, [
39901
+ "signerMaterials",
39902
+ "exportRoot",
39903
+ "installedRecordSetDigestB64u"
39904
+ ])) throw new Error("ordinary material worker returned an invalid sealed record set");
40009
39905
  if (!Array.isArray(value.signerMaterials) || value.signerMaterials.length === 0) throw new Error("ordinary material worker returned an invalid sealed record set");
40010
39906
  const signerMaterials = value.signerMaterials.map((entry) => parseWalletAuthorityLinkedSignerMaterialRecordV1(entry));
40011
39907
  const firstSignerMaterial = signerMaterials[0];
@@ -40017,7 +39913,7 @@ function parseSealedLocalAuthorityMaterialSetV1(value) {
40017
39913
  };
40018
39914
  }
40019
39915
  function parseB64u(value, label) {
40020
- const encoded = requireString$1(value, label);
39916
+ const encoded = requireCanonicalString(value, label, "is required");
40021
39917
  let decoded;
40022
39918
  try {
40023
39919
  decoded = base64UrlDecode(encoded);
@@ -40031,66 +39927,8 @@ function parseB64u(value, label) {
40031
39927
  decoded.fill(0);
40032
39928
  return encoded;
40033
39929
  }
40034
- function isOrdinaryResealedExportRootRecordV1(value) {
40035
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "envelope";
40036
- }
40037
- function isOrdinaryMaterialPreparationResultRecordV1(value) {
40038
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|preparations|targetFactor";
40039
- }
40040
- function isOrdinaryRecipientRequirementRecordV1(value) {
40041
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|walletKeyId";
40042
- }
40043
- function isOrdinaryEd25519RecipientRequestRecordV1(value) {
40044
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPublicKeyB64u|walletKeyId";
40045
- }
40046
- function isOrdinaryEcdsaRecipientRequestRecordV1(value) {
40047
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPublicKey|keyFamily|kind|walletKeyId";
40048
- }
40049
- function isOrdinaryRecipientPreparationResultRecordV1(value) {
40050
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|recipientInputs|recipientRequests";
40051
- }
40052
- function isOrdinaryEd25519RecipientInputRecordV1(value) {
40053
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPrivateKey|walletKeyId";
40054
- }
40055
- function isOrdinaryEcdsaRecipientInputRecordV1(value) {
40056
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPrivateKey|keyFamily|kind|walletKeyId";
40057
- }
40058
- function isOrdinaryPasskeyTargetFactorRecordV1(value) {
40059
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "credentialIdB64u|kind|rpId|verificationDigestB64u|walletAuthMethodId";
40060
- }
40061
- function isOrdinaryEmailOtpTargetFactorRecordV1(value) {
40062
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "emailHashHex|kind|registrationAuthorityId|verificationDigestB64u|walletAuthMethodId";
40063
- }
40064
- function isWalletAuthorityExportRootRecordV1(value) {
40065
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "authorityId|envelope|kind|walletAuthMethodId|walletKeyId";
40066
- }
40067
- function isSealedLocalAuthorityMaterialSetRecordV1(value) {
40068
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "exportRoot|installedRecordSetDigestB64u|signerMaterials";
40069
- }
40070
- function requireString$1(value, label) {
40071
- if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
40072
- return value;
40073
- }
40074
39930
  //#endregion
40075
39931
  //#region src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.ts
40076
- function isDeviceLinkingKeyHandleRecordV1(value) {
40077
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "handleId|kind";
40078
- }
40079
- function isDeviceLinkingKeyCreateResultRecordV1(value) {
40080
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "deliveryRecipientPublicKey65B64u|devicePublicKeyB64u|handleId|linkPublicKeyB64u";
40081
- }
40082
- function isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value) {
40083
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "factorSecret|kind|verificationGrant";
40084
- }
40085
- function isDeviceLinkingRequestSignatureResultRecordV1(value) {
40086
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "signatureB64u";
40087
- }
40088
- function isDeviceLinkingWorkerSuccessFrameRecordV1(value) {
40089
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "id|ok|result" && "ok" in value && value.ok === true;
40090
- }
40091
- function isDeviceLinkingWorkerFailureFrameRecordV1(value) {
40092
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "error|id|ok" && "ok" in value && value.ok === false;
40093
- }
40094
39932
  function nonEmpty(value, label) {
40095
39933
  if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
40096
39934
  return value;
@@ -40116,7 +39954,7 @@ function parseFixedB64u(value, length, label) {
40116
39954
  return encoded;
40117
39955
  }
40118
39956
  function parseHandle(value) {
40119
- if (!isDeviceLinkingKeyHandleRecordV1(value)) throw new Error("device-linking key handle has invalid fields");
39957
+ if (!hasExactKeys(value, ["kind", "handleId"])) throw new Error("device-linking key handle has invalid fields");
40120
39958
  const record = value;
40121
39959
  if (record.kind !== "device_linking_key_material_handle_v1") throw new Error("device-linking key handle kind is invalid");
40122
39960
  return {
@@ -40125,7 +39963,12 @@ function parseHandle(value) {
40125
39963
  };
40126
39964
  }
40127
39965
  function parseCreateResult(value) {
40128
- if (!isDeviceLinkingKeyCreateResultRecordV1(value)) throw new Error("device-linking key create response has invalid fields");
39966
+ if (!hasExactKeys(value, [
39967
+ "handleId",
39968
+ "linkPublicKeyB64u",
39969
+ "devicePublicKeyB64u",
39970
+ "deliveryRecipientPublicKey65B64u"
39971
+ ])) throw new Error("device-linking key create response has invalid fields");
40129
39972
  const record = value;
40130
39973
  return {
40131
39974
  handle: {
@@ -40138,7 +39981,11 @@ function parseCreateResult(value) {
40138
39981
  };
40139
39982
  }
40140
39983
  function parseEmailOtpFactorReleaseResult(value) {
40141
- if (!isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value)) throw new Error("device-linking Email OTP factor release response has invalid fields");
39984
+ if (!hasExactKeys(value, [
39985
+ "kind",
39986
+ "verificationGrant",
39987
+ "factorSecret"
39988
+ ])) throw new Error("device-linking Email OTP factor release response has invalid fields");
40142
39989
  const record = value;
40143
39990
  if (record.kind !== "device_linking_email_otp_factor_release_result_v1") throw new Error("device-linking Email OTP factor release response kind is invalid");
40144
39991
  if (!(record.factorSecret instanceof ArrayBuffer) || record.factorSecret.byteLength !== 32) throw new Error("device-linking Email OTP factor release secret is invalid");
@@ -40152,11 +39999,15 @@ function parseWalletSessionCredentialDeliveryResult(value) {
40152
39999
  return parseWalletSessionOperationCredentialV1(value);
40153
40000
  }
40154
40001
  function parseSignatureResult(value) {
40155
- if (!isDeviceLinkingRequestSignatureResultRecordV1(value)) throw new Error("device-linking request signature response has invalid fields");
40002
+ if (!hasExactKeys(value, ["signatureB64u"])) throw new Error("device-linking request signature response has invalid fields");
40156
40003
  return { signatureB64u: parseFixedB64u(value.signatureB64u, 64, "signatureB64u") };
40157
40004
  }
40158
40005
  function parseResponseFrame(value) {
40159
- if (isDeviceLinkingWorkerSuccessFrameRecordV1(value)) {
40006
+ if (hasExactKeys(value, [
40007
+ "id",
40008
+ "ok",
40009
+ "result"
40010
+ ]) && value.ok === true) {
40160
40011
  const id = value.id;
40161
40012
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
40162
40013
  return {
@@ -40165,7 +40016,11 @@ function parseResponseFrame(value) {
40165
40016
  result: value.result
40166
40017
  };
40167
40018
  }
40168
- if (isDeviceLinkingWorkerFailureFrameRecordV1(value)) {
40019
+ if (hasExactKeys(value, [
40020
+ "id",
40021
+ "ok",
40022
+ "error"
40023
+ ]) && value.ok === false) {
40169
40024
  const id = value.id;
40170
40025
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
40171
40026
  if (typeof value.error !== "string" || !value.error.trim()) return null;
@@ -40675,122 +40530,16 @@ function createDeviceLinkingFlowPortsV1(args) {
40675
40530
  };
40676
40531
  }
40677
40532
  //#endregion
40678
- //#region src/SeamsWeb/operations/devices/walletHostComposition.ts
40679
- const LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/devices";
40680
- const OWNER_WALLET_SESSION_REAUTH_REQUIRED = "owner_wallet_session_reauth_required";
40681
- var OwnerWalletSessionReauthRequiredError = class extends Error {
40682
- constructor() {
40683
- super("The owner Wallet Session must be renewed");
40684
- this.code = OWNER_WALLET_SESSION_REAUTH_REQUIRED;
40685
- this.name = "OwnerWalletSessionReauthRequiredError";
40686
- }
40687
- };
40688
- function createWalletHostCompositionV1(args) {
40689
- const deviceLinkingPorts = createDeviceLinkingFlowPortsV1(args);
40690
- return {
40691
- linkedDeviceManagement: createWalletHostLinkedDeviceManagementPortV1({ request: args.managementRequest }),
40692
- deviceLinkingPorts,
40693
- dispose: deviceLinkingPorts.dispose
40694
- };
40695
- }
40696
- function createWalletHostLinkedDeviceManagementPortV1(args) {
40697
- return {
40698
- listLinkedDevices: async ({ walletId, limit, cursor }) => {
40699
- const request = parseLinkedDeviceListRequestV1({
40700
- kind: "linked_device_list_request_v1",
40701
- walletId,
40702
- limit,
40703
- cursor
40704
- });
40705
- const path = `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}?walletId=${encodeURIComponent(String(request.walletId))}&limit=${encodeURIComponent(String(request.limit))}&cursor=${encodeURIComponent(request.cursor ?? "")}`;
40706
- const response = await args.request.request({
40707
- method: "GET",
40708
- canonicalPath: path,
40709
- walletId: request.walletId
40710
- });
40711
- assertManagementSuccess(response, "list linked devices");
40712
- return parseLinkedDeviceListResponseV1(response.body);
40713
- },
40714
- revokeLinkedDevice: async ({ walletId, walletAuthMethodId, requestedAtMs, sourceProof }) => {
40715
- const request = parseLinkedDeviceRevokeRequestV1({
40716
- kind: "linked_device_revoke_request_v1",
40717
- walletId,
40718
- walletAuthMethodId,
40719
- requestedAtMs
40720
- });
40721
- return parseManagementRevokeResult(await args.request.request({
40722
- method: "POST",
40723
- canonicalPath: `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}/${encodeURIComponent(String(walletAuthMethodId))}/revoke`,
40724
- body: {
40725
- ...request,
40726
- sourceProof
40727
- },
40728
- walletId
40729
- }));
40730
- }
40731
- };
40732
- }
40733
- function parseManagementRevokeResult(response) {
40734
- if (response.status === 404) return parseLinkedDeviceRevokeResultV1({ kind: "not_found" });
40735
- if (response.status === 409) return parseLinkedDeviceRevokeResultV1({ kind: "conflict" });
40736
- if (response.status === 401 || response.status === 403) return parseLinkedDeviceRevokeResultV1({ kind: "unauthorized" });
40737
- assertManagementSuccess(response, "revoke linked device");
40738
- return parseLinkedDeviceRevokeResponseV1(response.body);
40739
- }
40740
- function assertManagementSuccess(response, operation) {
40741
- if (response.status < 200 || response.status >= 300) {
40742
- if (response.status === 401 && isManagementUnauthorizedFailureRecordV1(response.body)) throw new OwnerWalletSessionReauthRequiredError();
40743
- const detail = managementFailureDetail(response.body);
40744
- throw new Error(detail ? `linked-device ${operation} failed with HTTP ${response.status}: ${detail}` : `linked-device ${operation} failed with HTTP ${response.status}`);
40745
- }
40746
- }
40747
- function managementFailureDetail(raw) {
40748
- if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
40749
- if (isManagementFailureWithMessageRecordV1(raw)) return raw.message;
40750
- if (isManagementUnauthorizedFailureRecordV1(raw)) return raw.message;
40751
- return null;
40752
- }
40753
- function parseLinkedDeviceListResponseV1(raw) {
40754
- if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device list response must be an object");
40755
- if (!isLinkedDeviceListResponseRecordV1(raw)) throw new Error("linked-device list response has unexpected fields");
40756
- if (raw.ok !== true) throw new Error("linked-device list response is not successful");
40757
- return parseLinkedDeviceListResultV1({
40758
- devices: raw.devices,
40759
- ownerDevices: raw.ownerDevices,
40760
- nextCursor: raw.nextCursor
40761
- });
40762
- }
40763
- function isLinkedDeviceListResponseRecordV1(value) {
40764
- return Object.keys(value).sort().join("|") === "devices|nextCursor|ok|ownerDevices";
40765
- }
40766
- function parseLinkedDeviceRevokeResponseV1(raw) {
40767
- if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device revoke response must be an object");
40768
- if (!isLinkedDeviceRevokeResponseRecordV1(raw)) throw new Error("linked-device revoke response has unexpected fields");
40769
- if (raw.ok !== true) throw new Error("linked-device revoke response is not successful");
40770
- return parseLinkedDeviceRevokeResultV1({
40771
- kind: raw.kind,
40772
- walletAuthMethodId: raw.walletAuthMethodId,
40773
- authorityId: raw.authorityId,
40774
- revocationEpoch: raw.revocationEpoch
40775
- });
40776
- }
40777
- function isLinkedDeviceRevokeResponseRecordV1(value) {
40778
- return Object.keys(value).sort().join("|") === "authorityId|kind|ok|revocationEpoch|walletAuthMethodId";
40779
- }
40780
- function isManagementFailureWithMessageRecordV1(value) {
40781
- if (Object.keys(value).sort().join("|") !== "kind|message|ok") return false;
40782
- if (!("ok" in value) || !("kind" in value) || !("message" in value)) return false;
40783
- return value.ok === false && (value.kind === "invalid_input" || value.kind === "internal") && typeof value.message === "string" && value.message.trim().length > 0;
40784
- }
40785
- function isManagementUnauthorizedFailureRecordV1(value) {
40786
- if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
40787
- if (Object.keys(value).sort().join("|") !== "code|kind|message|ok") return false;
40788
- if (!("ok" in value) || !("kind" in value) || !("code" in value) || !("message" in value)) return false;
40789
- return value.ok === false && value.kind === "unauthorized" && typeof value.code === "string" && typeof value.message === "string" && value.message.trim().length > 0;
40790
- }
40791
- //#endregion
40792
40533
  //#region src/SeamsWeb/operations/devices/walletHostOwnerAuthority.ts
40793
40534
  const OWNER_AUTHORIZATION_PATH = "/wallet/device-linking/v1/owner-authorization";
40535
+ /** An owner request that received no answer: the network failed, or it timed out. */
40536
+ var WalletHostOwnerRequestTransportError = class extends Error {
40537
+ constructor(code, message) {
40538
+ super(`Owner Router request failed: ${message}`);
40539
+ this.code = code;
40540
+ this.name = "WalletHostOwnerRequestTransportError";
40541
+ }
40542
+ };
40794
40543
  function createWalletHostOwnerAuthoritiesV1(input) {
40795
40544
  const context = normalizeContext(input);
40796
40545
  return {
@@ -40808,7 +40557,7 @@ function normalizeContext(input) {
40808
40557
  };
40809
40558
  }
40810
40559
  /**
40811
- * The R103 fail-closed preflight, exact result `wallet_unlock_required`.
40560
+ * The fail-closed preflight, exact result `wallet_unlock_required`.
40812
40561
  *
40813
40562
  * The locked and missing-session arms run before any network I/O. The
40814
40563
  * export-root arm runs after the stateless owner-authorization read, because
@@ -40892,7 +40641,7 @@ async function requestWithCredentialV1(context, walletSessionToken, input) {
40892
40641
  headers: { authorization: `Bearer ${walletSessionToken}` },
40893
40642
  ...input.body === void 0 ? {} : { body: input.body }
40894
40643
  });
40895
- if (!response.ok) throw new Error(`Owner Router request failed: ${response.message}`);
40644
+ if (!response.ok) throw new WalletHostOwnerRequestTransportError(response.code, response.message);
40896
40645
  return response.value;
40897
40646
  }
40898
40647
  function parseOwnerAuthorizationResponseV1(raw, session) {
@@ -40961,6 +40710,129 @@ function positiveSafeInteger(raw, label) {
40961
40710
  return Number(raw);
40962
40711
  }
40963
40712
  //#endregion
40713
+ //#region src/SeamsWeb/operations/devices/walletHostComposition.ts
40714
+ const LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/devices";
40715
+ const OWNER_WALLET_SESSION_REAUTH_REQUIRED = "owner_wallet_session_reauth_required";
40716
+ var OwnerWalletSessionReauthRequiredError = class extends Error {
40717
+ constructor() {
40718
+ super("The owner Wallet Session must be renewed");
40719
+ this.code = OWNER_WALLET_SESSION_REAUTH_REQUIRED;
40720
+ this.name = "OwnerWalletSessionReauthRequiredError";
40721
+ }
40722
+ };
40723
+ function createWalletHostCompositionV1(args) {
40724
+ const deviceLinkingPorts = createDeviceLinkingFlowPortsV1(args);
40725
+ return {
40726
+ linkedDeviceManagement: createWalletHostLinkedDeviceManagementPortV1({ request: args.managementRequest }),
40727
+ deviceLinkingPorts,
40728
+ dispose: deviceLinkingPorts.dispose
40729
+ };
40730
+ }
40731
+ function createWalletHostLinkedDeviceManagementPortV1(args) {
40732
+ return {
40733
+ listLinkedDevices: async ({ walletId, limit, cursor }) => {
40734
+ const request = parseLinkedDeviceListRequestV1({
40735
+ kind: "linked_device_list_request_v1",
40736
+ walletId,
40737
+ limit,
40738
+ cursor
40739
+ });
40740
+ const path = `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}?walletId=${encodeURIComponent(String(request.walletId))}&limit=${encodeURIComponent(String(request.limit))}&cursor=${encodeURIComponent(request.cursor ?? "")}`;
40741
+ const response = await args.request.request({
40742
+ method: "GET",
40743
+ canonicalPath: path,
40744
+ walletId: request.walletId
40745
+ });
40746
+ assertManagementSuccess(response, "list linked devices");
40747
+ return parseLinkedDeviceListResponseV1(response.body);
40748
+ },
40749
+ revokeLinkedDevice: async ({ walletId, walletAuthMethodId, requestedAtMs, sourceProof }) => {
40750
+ const request = parseLinkedDeviceRevokeRequestV1({
40751
+ kind: "linked_device_revoke_request_v1",
40752
+ walletId,
40753
+ walletAuthMethodId,
40754
+ requestedAtMs
40755
+ });
40756
+ const send = async () => await args.request.request({
40757
+ method: "POST",
40758
+ canonicalPath: `${LINKED_DEVICE_MANAGEMENT_HTTP_BASE_PATH_V1}/${encodeURIComponent(String(walletAuthMethodId))}/revoke`,
40759
+ body: {
40760
+ ...request,
40761
+ sourceProof
40762
+ },
40763
+ walletId
40764
+ });
40765
+ let response;
40766
+ try {
40767
+ response = await send();
40768
+ } catch (error) {
40769
+ if (!(error instanceof WalletHostOwnerRequestTransportError)) throw error;
40770
+ if (error.code !== "network_error") throw error;
40771
+ response = await send();
40772
+ }
40773
+ return parseManagementRevokeResult(response);
40774
+ }
40775
+ };
40776
+ }
40777
+ function parseManagementRevokeResult(response) {
40778
+ if (response.status === 404) return parseLinkedDeviceRevokeResultV1({ kind: "not_found" });
40779
+ if (response.status === 409) return parseLinkedDeviceRevokeResultV1({ kind: "conflict" });
40780
+ if (response.status === 401 || response.status === 403) return parseLinkedDeviceRevokeResultV1({ kind: "unauthorized" });
40781
+ assertManagementSuccess(response, "revoke linked device");
40782
+ return parseLinkedDeviceRevokeResponseV1(response.body);
40783
+ }
40784
+ function assertManagementSuccess(response, operation) {
40785
+ if (response.status < 200 || response.status >= 300) {
40786
+ if (response.status === 401 && isManagementUnauthorizedFailureRecordV1(response.body)) throw new OwnerWalletSessionReauthRequiredError();
40787
+ const detail = managementFailureDetail(response.body);
40788
+ throw new Error(detail ? `linked-device ${operation} failed with HTTP ${response.status}: ${detail}` : `linked-device ${operation} failed with HTTP ${response.status}`);
40789
+ }
40790
+ }
40791
+ function managementFailureDetail(raw) {
40792
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return null;
40793
+ if (isManagementFailureWithMessageRecordV1(raw)) return raw.message;
40794
+ if (isManagementUnauthorizedFailureRecordV1(raw)) return raw.message;
40795
+ return null;
40796
+ }
40797
+ function parseLinkedDeviceListResponseV1(raw) {
40798
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device list response must be an object");
40799
+ if (!isLinkedDeviceListResponseRecordV1(raw)) throw new Error("linked-device list response has unexpected fields");
40800
+ if (raw.ok !== true) throw new Error("linked-device list response is not successful");
40801
+ return parseLinkedDeviceListResultV1({
40802
+ devices: raw.devices,
40803
+ ownerDevices: raw.ownerDevices,
40804
+ nextCursor: raw.nextCursor
40805
+ });
40806
+ }
40807
+ function isLinkedDeviceListResponseRecordV1(value) {
40808
+ return Object.keys(value).sort().join("|") === "devices|nextCursor|ok|ownerDevices";
40809
+ }
40810
+ function parseLinkedDeviceRevokeResponseV1(raw) {
40811
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("linked-device revoke response must be an object");
40812
+ if (!isLinkedDeviceRevokeResponseRecordV1(raw)) throw new Error("linked-device revoke response has unexpected fields");
40813
+ if (raw.ok !== true) throw new Error("linked-device revoke response is not successful");
40814
+ return parseLinkedDeviceRevokeResultV1({
40815
+ kind: raw.kind,
40816
+ walletAuthMethodId: raw.walletAuthMethodId,
40817
+ authorityId: raw.authorityId,
40818
+ revocationEpoch: raw.revocationEpoch
40819
+ });
40820
+ }
40821
+ function isLinkedDeviceRevokeResponseRecordV1(value) {
40822
+ return Object.keys(value).sort().join("|") === "authorityId|kind|ok|revocationEpoch|walletAuthMethodId";
40823
+ }
40824
+ function isManagementFailureWithMessageRecordV1(value) {
40825
+ if (Object.keys(value).sort().join("|") !== "kind|message|ok") return false;
40826
+ if (!("ok" in value) || !("kind" in value) || !("message" in value)) return false;
40827
+ return value.ok === false && (value.kind === "invalid_input" || value.kind === "internal") && typeof value.message === "string" && value.message.trim().length > 0;
40828
+ }
40829
+ function isManagementUnauthorizedFailureRecordV1(value) {
40830
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
40831
+ if (Object.keys(value).sort().join("|") !== "code|kind|message|ok") return false;
40832
+ if (!("ok" in value) || !("kind" in value) || !("code" in value) || !("message" in value)) return false;
40833
+ return value.ok === false && value.kind === "unauthorized" && typeof value.code === "string" && typeof value.message === "string" && value.message.trim().length > 0;
40834
+ }
40835
+ //#endregion
40964
40836
  //#region src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.ts
40965
40837
  function requestJson(value) {
40966
40838
  if (typeof value !== "string" || !value.trim()) throw new Error("Yao lane request JSON is required");
@@ -41028,6 +40900,8 @@ var Ed25519YaoLaneWorkerSource = class {
41028
40900
  function createDeviceLinkingEcdsaSourceContributionMetadataReaderV1(context) {
41029
40901
  return async ({ preparation }) => {
41030
40902
  const sourceActivation = preparation.source.activation;
40903
+ const linked = context.readLinkedEcdsaHolderV1({ materialActivation: sourceActivation });
40904
+ if (linked) return linkedEcdsaSourceMetadataV1(linked, sourceActivation);
41031
40905
  const manifest = await context.readActiveEcdsaCapabilityManifestV1({ materialActivation: sourceActivation });
41032
40906
  assertExactEcdsaSourceMetadataContextV1({
41033
40907
  sourceActivation,
@@ -41044,6 +40918,28 @@ function createDeviceLinkingEcdsaSourceContributionMetadataReaderV1(context) {
41044
40918
  };
41045
40919
  };
41046
40920
  }
40921
+ function linkedEcdsaSourceMetadataV1(holder, sourceActivation) {
40922
+ if (!mpcMaterialActivationRefsEqual(holder.materialActivation, sourceActivation)) throw new Error("linked ECDSA holder activation does not match preparation");
40923
+ const normalSigning = holder.activationReceipt.normalSigning;
40924
+ const scope = normalSigning.scope;
40925
+ const signingKeySlotId = deriveEvmFamilySigningKeySlotId({
40926
+ walletId: holder.walletId,
40927
+ signingRootId: scope.signing_root_id,
40928
+ signingRootVersion: scope.signing_root_version
40929
+ });
40930
+ const walletKeyId = parseWalletKeyId(`wallet-key:ecdsa:${holder.walletId}:${signingKeySlotId}`);
40931
+ if (!walletKeyId.ok) throw new Error(`linked ECDSA source wallet key identity: ${walletKeyId.error.message}`);
40932
+ return {
40933
+ walletKeyId: walletKeyId.value,
40934
+ sourceDerivation: {
40935
+ applicationBindingDigestB64u: parseDigestB64u(scope.context.application_binding_digest_b64u),
40936
+ clientShareRetryCounter: scope.public_identity.client_share_retry_counter,
40937
+ ecdsaThresholdKeyId: parseEcdsaThresholdKeyId(holder.ecdsaThresholdKeyId),
40938
+ sourceNormalSigning: normalSigning
40939
+ },
40940
+ linkedHolderHandleId: holder.holderHandleId
40941
+ };
40942
+ }
41047
40943
  function assertExactEcdsaSourceMetadataContextV1(input) {
41048
40944
  if (!mpcMaterialActivationRefsEqual(input.manifest.activation.materialActivation, input.sourceActivation)) throw new Error("ECDSA capability manifest activation does not match preparation");
41049
40945
  }
@@ -41123,7 +41019,8 @@ async function produceEcdsaSourceContributionV1(input) {
41123
41019
  const metadata = await input.readMetadataV1({ preparation: input.preparation });
41124
41020
  const prepared = await prepareLinkedDeviceEcdsaSourceContributionWasm({
41125
41021
  preparation: input.preparation,
41126
- workerCtx: input.workerContext
41022
+ workerCtx: input.workerContext,
41023
+ ...metadata.linkedHolderHandleId === void 0 ? {} : { linkedHolderHandleId: metadata.linkedHolderHandleId }
41127
41024
  });
41128
41025
  return {
41129
41026
  kind: "linked_device_ecdsa_source_contribution_v1",
@@ -41165,15 +41062,6 @@ const SECRET_MATERIAL_FIELDS = [
41165
41062
  "bootstrapMaterial",
41166
41063
  "clientSecret32"
41167
41064
  ];
41168
- function requireRecord(value, label) {
41169
- if (!isPlainObject(value)) throw new Error(`${label} must be an object`);
41170
- return value;
41171
- }
41172
- function requireString(value, label) {
41173
- const normalized = typeof value === "string" ? value.trim() : "";
41174
- if (!normalized) throw new Error(`${label} is required`);
41175
- return normalized;
41176
- }
41177
41065
  function requireTimestampMs(value, label) {
41178
41066
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} must be a positive integer timestamp`);
41179
41067
  return value;
@@ -41183,22 +41071,22 @@ function rejectFields(record, fields, label) {
41183
41071
  if (forbiddenField) throw new Error(`${label} must not include ${forbiddenField}`);
41184
41072
  }
41185
41073
  function parseOfferId(value) {
41186
- return requireString(value, "offerId");
41074
+ return requireTrimmedString(value, "offerId");
41187
41075
  }
41188
41076
  function parseCandidateId(value, label = "candidateId") {
41189
- return requireString(value, label);
41077
+ return requireTrimmedString(value, label);
41190
41078
  }
41191
41079
  function parseCandidate(value) {
41192
- const record = requireRecord(value, "registration candidate");
41080
+ const record = requireRecord$1(value, "registration candidate");
41193
41081
  rejectFields(record, OTP_ONLY_FORBIDDEN_FIELDS, "registration candidate");
41194
41082
  rejectFields(record, SECRET_MATERIAL_FIELDS, "registration candidate");
41195
41083
  return {
41196
41084
  candidateId: parseCandidateId(record.candidateId),
41197
- walletId: walletIdFromString(requireString(record.walletId, "candidate.walletId"))
41085
+ walletId: walletIdFromString(requireTrimmedString(record.walletId, "candidate.walletId"))
41198
41086
  };
41199
41087
  }
41200
41088
  function parseGoogleEmailOtpRegistrationOffer(value) {
41201
- const record = requireRecord(value, "Google Email OTP registration offer");
41089
+ const record = requireRecord$1(value, "Google Email OTP registration offer");
41202
41090
  rejectFields(record, OTP_ONLY_FORBIDDEN_FIELDS, "Google Email OTP registration offer");
41203
41091
  rejectFields(record, SECRET_MATERIAL_FIELDS, "Google Email OTP registration offer");
41204
41092
  if (record.kind !== "google_email_otp_registration_offer_v1") throw new Error("registration offer kind must be google_email_otp_registration_offer_v1");
@@ -41211,7 +41099,7 @@ function parseGoogleEmailOtpRegistrationOffer(value) {
41211
41099
  kind: "google_email_otp_registration_offer_v1",
41212
41100
  offerId: parseOfferId(record.offerId),
41213
41101
  expiresAtMs: requireTimestampMs(record.expiresAtMs, "expiresAtMs"),
41214
- emailHint: requireString(record.emailHint, "emailHint"),
41102
+ emailHint: requireTrimmedString(record.emailHint, "emailHint"),
41215
41103
  candidates: [firstCandidate, ...remainingCandidates],
41216
41104
  selectedCandidateId
41217
41105
  };
@@ -41791,50 +41679,15 @@ async function rotateWalletRecoverySetWithActiveFactorV1(input) {
41791
41679
  let issued = issueWalletRecoveryCodes();
41792
41680
  const factorSecret = new Uint8Array(input.factorSecret.slice(0));
41793
41681
  try {
41794
- const current = await readWalletRecoveryCodeStatus({
41795
- relayUrl: input.relayUrl,
41796
- walletId: input.walletId,
41797
- ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41798
- });
41799
- if (current.kind !== "ready") return current.kind === "unauthorized" ? {
41800
- kind: "transport_failed",
41801
- message: current.message
41802
- } : current;
41803
- const custody = joinCustodyWireFromEnvelopeRecord(input.custodyEnvelope);
41804
- if (!custody.ok) throw new Error(custody.reason);
41805
- const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await input.worker.rotateRecoverySet({
41806
- custodyJson: custody.custodyJson,
41807
- factorSecret: factorSecret.buffer.slice(0),
41808
- recoveryCodesJson: JSON.stringify(issued.codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) })))
41809
- }));
41810
- if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
41811
- const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
41812
- const rotated = await rotateWalletRecoverySet({
41813
- relayUrl: input.relayUrl,
41814
- walletId: input.walletId,
41815
- factorProof: await input.factorProof({
41816
- operation: "recovery_rotate",
41817
- payload: {
41818
- walletId: input.walletId,
41819
- expectedStoreVersion: current.storeVersion,
41820
- manifestKekWraps: replacement.manifestKekWraps,
41821
- entries: [replacement.entry],
41822
- recoveryCodeLocators
41823
- }
41824
- }),
41825
- expectedStoreVersion: current.storeVersion,
41826
- replacement,
41827
- recoveryCodeLocators,
41828
- ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41682
+ return await rotateWithIssuedCodes(input, issued, (codeBytes) => {
41683
+ const custody = joinCustodyWireFromEnvelopeRecord(input.custodyEnvelope);
41684
+ if (!custody.ok) throw new Error(custody.reason);
41685
+ return input.worker.rotateRecoverySet({
41686
+ custodyJson: custody.custodyJson,
41687
+ factorSecret: factorSecret.buffer.slice(0),
41688
+ recoveryCodesJson: recoveryCodesJson(codeBytes)
41689
+ });
41829
41690
  });
41830
- if (rotated.kind !== "rotated") return rotated;
41831
- return {
41832
- kind: "rotated",
41833
- walletId: input.walletId,
41834
- recoveryCodes: issued.codes,
41835
- issuedAtMs: rotated.issuedAtMs,
41836
- storeVersion: rotated.storeVersion
41837
- };
41838
41691
  } finally {
41839
41692
  factorSecret.fill(0);
41840
41693
  if (issued) zeroizeIssuedWalletRecoveryCodes(issued);
@@ -41844,49 +41697,55 @@ async function rotateWalletRecoverySetWithActiveFactorV1(input) {
41844
41697
  async function rotateWalletRecoverySetWithEmailOtpV1(input) {
41845
41698
  let issued = issueWalletRecoveryCodes();
41846
41699
  try {
41847
- const current = await readWalletRecoveryCodeStatus({
41848
- relayUrl: input.relayUrl,
41849
- walletId: input.walletId,
41850
- ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41851
- });
41852
- if (current.kind !== "ready") return current.kind === "unauthorized" ? {
41853
- kind: "transport_failed",
41854
- message: current.message
41855
- } : current;
41856
- const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await input.worker.rotateRecoverySet({ recoveryCodesJson: JSON.stringify(issued.codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) }))) }));
41857
- if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
41858
- const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
41859
- const rotated = await rotateWalletRecoverySet({
41860
- relayUrl: input.relayUrl,
41861
- walletId: input.walletId,
41862
- factorProof: await input.factorProof({
41863
- operation: "recovery_rotate",
41864
- payload: {
41865
- walletId: input.walletId,
41866
- expectedStoreVersion: current.storeVersion,
41867
- manifestKekWraps: replacement.manifestKekWraps,
41868
- entries: [replacement.entry],
41869
- recoveryCodeLocators
41870
- }
41871
- }),
41872
- expectedStoreVersion: current.storeVersion,
41873
- replacement,
41874
- recoveryCodeLocators,
41875
- ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41876
- });
41877
- if (rotated.kind !== "rotated") return rotated;
41878
- return {
41879
- kind: "rotated",
41880
- walletId: input.walletId,
41881
- recoveryCodes: issued.codes,
41882
- issuedAtMs: rotated.issuedAtMs,
41883
- storeVersion: rotated.storeVersion
41884
- };
41700
+ return await rotateWithIssuedCodes(input, issued, (codeBytes) => input.worker.rotateRecoverySet({ recoveryCodesJson: recoveryCodesJson(codeBytes) }));
41885
41701
  } finally {
41886
41702
  if (issued) zeroizeIssuedWalletRecoveryCodes(issued);
41887
41703
  issued = null;
41888
41704
  }
41889
41705
  }
41706
+ async function rotateWithIssuedCodes(input, issued, rotateInWorker) {
41707
+ const current = await readWalletRecoveryCodeStatus({
41708
+ relayUrl: input.relayUrl,
41709
+ walletId: input.walletId,
41710
+ ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41711
+ });
41712
+ if (current.kind !== "ready") return current.kind === "unauthorized" ? {
41713
+ kind: "transport_failed",
41714
+ message: current.message
41715
+ } : current;
41716
+ const replacement = walletRecoverySetRotationWireFromWorkerResultV1(await rotateInWorker(issued.codeBytes));
41717
+ if (replacement.walletId !== input.walletId) throw new Error("Recovery rotation worker returned a different wallet");
41718
+ const recoveryCodeLocators = await deriveRecoveryCodeLocators(issued.codeBytes, replacement.manifestKekWraps);
41719
+ const rotated = await rotateWalletRecoverySet({
41720
+ relayUrl: input.relayUrl,
41721
+ walletId: input.walletId,
41722
+ factorProof: await input.factorProof({
41723
+ operation: "recovery_rotate",
41724
+ payload: {
41725
+ walletId: input.walletId,
41726
+ expectedStoreVersion: current.storeVersion,
41727
+ manifestKekWraps: replacement.manifestKekWraps,
41728
+ entries: [replacement.entry],
41729
+ recoveryCodeLocators
41730
+ }
41731
+ }),
41732
+ expectedStoreVersion: current.storeVersion,
41733
+ replacement,
41734
+ recoveryCodeLocators,
41735
+ ...input.fetchImpl ? { fetchImpl: input.fetchImpl } : {}
41736
+ });
41737
+ if (rotated.kind !== "rotated") return rotated;
41738
+ return {
41739
+ kind: "rotated",
41740
+ walletId: input.walletId,
41741
+ recoveryCodes: issued.codes,
41742
+ issuedAtMs: rotated.issuedAtMs,
41743
+ storeVersion: rotated.storeVersion
41744
+ };
41745
+ }
41746
+ function recoveryCodesJson(codeBytes) {
41747
+ return JSON.stringify(codeBytes.map((bytes) => ({ codeBytesB64u: base64UrlEncode(bytes) })));
41748
+ }
41890
41749
  async function deriveRecoveryCodeLocators(codeBytes, wraps) {
41891
41750
  if (codeBytes.length !== wraps.length) throw new Error("Recovery code locators do not match the replacement wraps");
41892
41751
  const recoveryCodeLocators = await Promise.all(codeBytes.map(async (bytes, index) => {
@@ -42445,21 +42304,31 @@ function createWalletHostOwnerApprovalUpdatesV1(args) {
42445
42304
  };
42446
42305
  }
42447
42306
  function createWalletHostEcdsaSourceContributionMetadataReaderV1(args) {
42448
- return createDeviceLinkingEcdsaSourceContributionMetadataReaderV1({ readActiveEcdsaCapabilityManifestV1: async ({ materialActivation }) => {
42449
- const authentication = args.signingEngine.readWalletAuthenticationState();
42450
- if (authentication.kind !== "authenticated") throw new Error("ECDSA source metadata requires an authenticated wallet");
42451
- let lookup = await ecdsaCapabilityManifestStore.lookupByMaterialActivation({
42452
- walletId: authentication.walletId,
42453
- materialActivation
42454
- });
42455
- if (lookup.kind === "ambiguous_authority") lookup = await resolveAmbiguousEcdsaActivationForSelectedAuthMethod({
42456
- walletId: authentication.walletId,
42457
- materialActivation,
42458
- authorities: lookup.authorities
42459
- });
42460
- if (lookup.kind !== "active") throw new Error(`ECDSA source metadata manifest is ${lookup.kind}`);
42461
- return lookup.manifest;
42462
- } });
42307
+ return createDeviceLinkingEcdsaSourceContributionMetadataReaderV1({
42308
+ readActiveEcdsaCapabilityManifestV1: async ({ materialActivation }) => {
42309
+ const authentication = args.signingEngine.readWalletAuthenticationState();
42310
+ if (authentication.kind !== "authenticated") throw new Error("ECDSA source metadata requires an authenticated wallet");
42311
+ let lookup = await ecdsaCapabilityManifestStore.lookupByMaterialActivation({
42312
+ walletId: authentication.walletId,
42313
+ materialActivation
42314
+ });
42315
+ if (lookup.kind === "ambiguous_authority") lookup = await resolveAmbiguousEcdsaActivationForSelectedAuthMethod({
42316
+ walletId: authentication.walletId,
42317
+ materialActivation,
42318
+ authorities: lookup.authorities
42319
+ });
42320
+ if (lookup.kind !== "active") throw new Error(`ECDSA source metadata manifest is ${lookup.kind}`);
42321
+ return lookup.manifest;
42322
+ },
42323
+ readLinkedEcdsaHolderV1: ({ materialActivation }) => {
42324
+ const authentication = args.signingEngine.readWalletAuthenticationState();
42325
+ if (authentication.kind !== "authenticated") return null;
42326
+ return resolveLinkedEcdsaHolderRuntimeV1({
42327
+ walletId: authentication.walletId,
42328
+ materialActivation
42329
+ });
42330
+ }
42331
+ });
42463
42332
  }
42464
42333
  function createWalletHostDeviceDomainConstructionV1(args) {
42465
42334
  const relayerUrl = String(args.configs.network.relayer?.url || "").trim();
@@ -42470,7 +42339,7 @@ function createWalletHostDeviceDomainConstructionV1(args) {
42470
42339
  walletSessions: walletSessionAuthorizations,
42471
42340
  resolveSelectedWalletAuthority: IndexedDBManager.resolveSelectedWalletAuthority.bind(IndexedDBManager),
42472
42341
  readWalletAuthenticationState: args.signingEngine.readWalletAuthenticationState.bind(args.signingEngine),
42473
- readUnlockedEd25519ExportRootCapabilityV1: readUnlockedWalletEd25519ExportRootCapabilityV1
42342
+ readUnlockedEd25519ExportRootCapabilityV1: readUnlockedEd25519ExportRootLinkingCapabilityV1
42474
42343
  });
42475
42344
  return {
42476
42345
  platform,
@@ -42650,6 +42519,14 @@ var SeamsWeb = class {
42650
42519
  async getWalletIframeExactSessionState() {
42651
42520
  return await this.walletIframe.getExactSessionState();
42652
42521
  }
42522
+ /** @internal One wallet-host restore owns all configured-chain prefills. */
42523
+ async prefillRestoredWalletSession(state) {
42524
+ await scheduleRestoredSessionPresignaturePrefills({
42525
+ state,
42526
+ chainTargets: this.configuredChainTargets(),
42527
+ prefill: prefillRouterAbEcdsaDerivationPresignaturePoolDomain.bind(null, this.getWalletAuthDeps())
42528
+ });
42529
+ }
42653
42530
  async openHostedAuthMenu(request, anchorElement) {
42654
42531
  return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
42655
42532
  }
@@ -42998,76 +42875,6 @@ var SeamsWeb = class {
42998
42875
  error: { message: input.error.message }
42999
42876
  });
43000
42877
  }
43001
- emitEmailOtpRegistrationWorkerProgress(onEvent, args) {
43002
- const base = {
43003
- flowId: args.flowId,
43004
- walletId: args.walletId,
43005
- authMethod: "email_otp",
43006
- ...args.challengeId ? { requestId: args.challengeId } : {}
43007
- };
43008
- switch (args.progress.code) {
43009
- case "otp.verify.succeeded":
43010
- this.emitEmailOtpRegistrationEvent(onEvent, {
43011
- ...base,
43012
- phase: RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED,
43013
- status: "succeeded",
43014
- interaction: {
43015
- kind: "otp_input",
43016
- overlay: "hide"
43017
- }
43018
- });
43019
- return RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED;
43020
- case "signer.email_otp.enroll.started":
43021
- this.emitEmailOtpRegistrationEvent(onEvent, {
43022
- ...base,
43023
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED,
43024
- status: "running"
43025
- });
43026
- return RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED;
43027
- case "signer.email_otp.enroll.succeeded":
43028
- this.emitEmailOtpRegistrationEvent(onEvent, {
43029
- ...base,
43030
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED,
43031
- status: "succeeded"
43032
- });
43033
- return RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED;
43034
- case "signer.ecdsa.bootstrap.started":
43035
- this.emitEmailOtpRegistrationEvent(onEvent, {
43036
- ...base,
43037
- phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
43038
- status: "running",
43039
- data: { chainTarget: args.chainTarget }
43040
- });
43041
- return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
43042
- case "signer.ecdsa.bootstrap.prepared":
43043
- this.emitEmailOtpRegistrationEvent(onEvent, {
43044
- ...base,
43045
- phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
43046
- status: "running",
43047
- message: "Coordinating EVM signing session",
43048
- data: { chainTarget: args.chainTarget }
43049
- });
43050
- return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
43051
- case "signer.ecdsa.bootstrap.responded":
43052
- this.emitEmailOtpRegistrationEvent(onEvent, {
43053
- ...base,
43054
- phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED,
43055
- status: "running",
43056
- message: "Finalizing EVM signing session",
43057
- data: { chainTarget: args.chainTarget }
43058
- });
43059
- return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_STARTED;
43060
- case "signer.ecdsa.bootstrap.succeeded":
43061
- this.emitEmailOtpRegistrationEvent(onEvent, {
43062
- ...base,
43063
- phase: RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_SUCCEEDED,
43064
- status: "succeeded",
43065
- data: { chainTarget: args.chainTarget }
43066
- });
43067
- return RegistrationEventPhase.STEP_10_ECDSA_SIGNER_PROVISION_SUCCEEDED;
43068
- default: return null;
43069
- }
43070
- }
43071
42878
  emitEmailOtpUnlockWorkerProgress(onEvent, args) {
43072
42879
  const chainLabel = args.chainTarget.kind === "tempo" ? "Tempo" : "EVM";
43073
42880
  const base = {
@@ -43704,7 +43511,6 @@ var SeamsWeb = class {
43704
43511
  this.emitEmailOtpUnlockEvent(args.onEvent, input);
43705
43512
  };
43706
43513
  let timingStartedAtMs = nowMs();
43707
- String(args.relayUrl || this.configs.network.relayer.url).trim();
43708
43514
  const emailHashHex = await this.emailOtpEmailHashHex(args.emailOtpAuthorityEmail || "");
43709
43515
  recordEmailOtpUnlockTiming(unlockTiming.timings, "emailHashLookupMs", timingStartedAtMs);
43710
43516
  timingStartedAtMs = nowMs();