@seams/wallet 0.7.1 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) 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 +10 -1
  4. package/dist/esm/SeamsWeb/operations/auth/login.js +16 -6
  5. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  6. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
  7. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  8. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  9. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
  10. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  11. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
  12. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
  13. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  14. package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
  15. package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
  16. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
  17. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +88 -222
  19. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  20. package/dist/esm/build-paths.js +0 -2
  21. package/dist/esm/components/AccountMenuButton/MenuItem.css +17 -0
  22. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -5
  23. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  24. package/dist/esm/components/QRCodeScanner.css +0 -15
  25. package/dist/esm/components/ShowQRCode.css +0 -14
  26. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
  27. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  28. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +10 -13
  29. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +69 -121
  30. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
  31. package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  32. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  33. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
  34. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  35. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  36. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
  37. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  38. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  39. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  40. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  41. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
  42. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  43. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  44. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
  45. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
  46. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  47. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  48. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  49. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
  50. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
  51. package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
  52. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
  53. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
  54. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  55. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
  56. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
  57. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  58. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  59. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
  60. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  61. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  62. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  63. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
  64. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
  65. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  66. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  67. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +1 -5
  68. package/dist/esm/react/SeamsWeb/SeamsWeb.js +10 -1
  69. package/dist/esm/react/SeamsWeb/operations/auth/login.js +16 -6
  70. package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  71. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +2 -3
  72. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  73. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  74. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -5
  75. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  76. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +4 -7
  77. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +2 -8
  78. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  79. package/dist/esm/react/SeamsWeb/publicApi/auth.js +2 -1
  80. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +6 -0
  81. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +24 -15
  82. package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  83. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  84. package/dist/esm/react/build-paths.js +0 -2
  85. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +2 -2
  86. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
  87. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +4 -4
  88. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  89. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
  90. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
  91. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +7 -7
  92. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  93. package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
  94. package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
  95. package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
  96. package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
  97. package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
  98. package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
  99. package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
  100. package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
  101. package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
  102. package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
  103. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
  104. package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
  105. package/dist/esm/react/components/AccountMenuButton/index.js +6 -6
  106. package/dist/esm/react/components/QRCodeScanner.css +0 -15
  107. package/dist/esm/react/components/ShowQRCode.css +0 -14
  108. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -2
  109. package/dist/esm/react/context/useWalletIframeLifecycle.js +0 -14
  110. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +5 -10
  111. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  112. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +4 -4
  113. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +1 -1
  114. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  115. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  116. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -28
  117. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  118. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  119. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -4
  120. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  121. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  122. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  123. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  124. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +6 -4
  125. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  126. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +2 -5
  127. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +2 -2
  128. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -0
  129. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  130. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  131. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +108 -24
  132. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +3 -8
  133. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +2 -2
  134. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +7 -21
  135. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -7
  136. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +3 -15
  137. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  138. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +1 -4
  139. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -8
  140. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  141. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  142. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +20 -6
  143. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  144. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  145. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  146. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +3 -2
  147. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +18 -16
  148. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  149. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  150. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +1 -5
  151. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  152. package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  153. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  154. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  155. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  156. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +5 -8
  157. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +5 -1
  158. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
  159. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +12 -16
  160. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +4 -1
  161. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
  162. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  163. package/dist/esm/react/shared-ts/src/utils/exactKeys.js +17 -0
  164. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +2 -8
  165. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +2 -5
  166. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  167. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  168. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  169. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  170. package/dist/esm/react/styles/styles.css +17 -86
  171. package/dist/esm/react/utils/menuItemBlink.js +24 -0
  172. package/dist/esm/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
  173. package/dist/esm/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
  174. package/dist/{public/sdk/canonicalSignerErrorCode-CRoJMVpp.js → esm/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
  175. package/dist/esm/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
  176. package/dist/{public/sdk/configHelpers-vAQCzUD0.js → esm/sdk/configHelpers-D1EqxVxg.js} +1 -1
  177. package/dist/{public/sdk/defaultConfigs-B3c16M_8.js → esm/sdk/defaultConfigs-D_33pPT9.js} +3 -3
  178. package/dist/esm/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
  179. package/dist/esm/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
  180. package/dist/{public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
  181. package/dist/esm/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
  182. package/dist/{public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
  183. package/dist/esm/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
  184. package/dist/esm/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
  185. package/dist/esm/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
  186. package/dist/{public/sdk/host-BWBbCAMu.js → esm/sdk/host-CnV8nAUe.js} +3 -3
  187. package/dist/{public/sdk/keyMaterialBrands-CX41hur6.js → esm/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
  188. package/dist/{public/sdk/localOnly-Bg8UuLZ5.js → esm/sdk/localOnly-DTpa2jD5.js} +2 -2
  189. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
  190. package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
  191. package/dist/esm/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
  192. package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
  193. package/dist/esm/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
  194. package/dist/esm/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
  195. package/dist/esm/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
  196. package/dist/esm/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
  197. package/dist/esm/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
  198. package/dist/esm/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  199. package/dist/esm/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
  200. package/dist/{public/sdk/router-C5lF_J_u.js → esm/sdk/router-B4ZWFy9E.js} +7 -7
  201. package/dist/{public/sdk/routerAbNormalSigning-fhvpDtmY.js → esm/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
  202. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  203. package/dist/esm/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
  204. package/dist/esm/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
  205. package/dist/esm/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
  206. package/dist/{public/sdk/runtime-email-otp-vuUG5LYl.js → esm/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
  207. package/dist/{public/sdk/runtime-export-FZWj0HxJ.js → esm/sdk/runtime-export-DIVY473L.js} +13 -13
  208. package/dist/esm/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
  209. package/dist/esm/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
  210. package/dist/esm/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
  211. package/dist/{public/sdk/runtime-recovery-C-vfFKF3.js → esm/sdk/runtime-recovery-i08vCJST.js} +12 -12
  212. package/dist/esm/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
  213. package/dist/esm/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
  214. package/dist/{public/sdk/secp256k1-el9aE4Sv.js → esm/sdk/secp256k1-D-I6Gh4D.js} +36 -25
  215. package/dist/esm/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
  216. package/dist/{public/sdk/signEvmFamily-e4IWWsZs.js → esm/sdk/signEvmFamily-C3C97Th-.js} +43 -102
  217. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
  218. package/dist/{public/sdk/signEvmWithUiConfirm-C61TCBnh.js → esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
  219. package/dist/esm/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
  220. package/dist/{public/sdk/signerLoader-D7Aey0FD.js → esm/sdk/signerLoader-B7orgq5Z.js} +3 -3
  221. package/dist/{public/sdk/signingFlow-rZfPegH9.js → esm/sdk/signingFlow-SZ8t_lxv.js} +9 -10
  222. package/dist/esm/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
  223. package/dist/esm/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
  224. package/dist/esm/sdk/tx-confirm-ui.js +11 -46
  225. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  226. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  227. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  228. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  229. package/dist/{public/sdk/wallet-recovery-Bz9qKgaL.js → esm/sdk/wallet-recovery-BX61-79p.js} +3 -6
  230. package/dist/esm/sdk/wallet-ui.css +41 -301
  231. package/dist/{public/sdk/walletAuthority-BQBxgUBn.js → esm/sdk/walletAuthority-DD9T25F6.js} +1 -5
  232. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
  233. package/dist/esm/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
  234. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  235. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  236. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  237. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  238. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  239. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -8
  240. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  241. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -7
  242. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +12 -16
  243. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -1
  244. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -4
  245. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  246. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  247. package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -8
  248. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -5
  249. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -1
  250. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  251. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  252. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  253. package/dist/esm/utils/menuItemBlink.js +24 -0
  254. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +1 -1
  255. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  256. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  257. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  258. package/dist/public/headers.manifest.json +1 -1
  259. package/dist/public/sdk/{accountLifecycle-BAGG_rbk.js → accountLifecycle-zthG08aC.js} +1 -1
  260. package/dist/public/sdk/{adapters-B4JeK1nJ.js → adapters-Dli9XAZp.js} +20 -48
  261. package/dist/{esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js → public/sdk/canonicalSignerErrorCode-BBIk365e.js} +1 -15
  262. package/dist/public/sdk/{challengeDelivery-Dd0586fo.js → challengeDelivery-DZtopOAG.js} +1 -1
  263. package/dist/{esm/sdk/configHelpers-vAQCzUD0.js → public/sdk/configHelpers-D1EqxVxg.js} +1 -1
  264. package/dist/{esm/sdk/defaultConfigs-B3c16M_8.js → public/sdk/defaultConfigs-D_33pPT9.js} +3 -3
  265. package/dist/public/sdk/{display-KdIL0ff7.js → display-P4nQF-yc.js} +1 -1
  266. package/dist/public/sdk/{ecdsaCapabilityManifest-kzO_fW09.js → ecdsaCapabilityManifest-DuMs0VtU.js} +6 -18
  267. package/dist/{esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js → public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js} +2 -2
  268. package/dist/public/sdk/{ecdsaWalletRecords-Cz4m6bIz.js → ecdsaWalletRecords-D42rtA9z.js} +2 -2
  269. package/dist/{esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js → public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js} +20 -34
  270. package/dist/public/sdk/{exactSessionState-CiD5fBEs.js → exactSessionState-LWDUXydN.js} +10 -30
  271. package/dist/public/sdk/{exactSigningLaneIdentity-DQeqPMST.js → exactSigningLaneIdentity-m6uTXV_A.js} +1 -1
  272. package/dist/public/sdk/{export-viewer-host-ZqA2Yz3H.js → export-viewer-host-rWMSQQMP.js} +1 -1
  273. package/dist/{esm/sdk/host-BWBbCAMu.js → public/sdk/host-CnV8nAUe.js} +3 -3
  274. package/dist/{esm/sdk/keyMaterialBrands-CX41hur6.js → public/sdk/keyMaterialBrands-CogGAAZn.js} +1 -1
  275. package/dist/{esm/sdk/localOnly-Bg8UuLZ5.js → public/sdk/localOnly-DTpa2jD5.js} +2 -2
  276. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-DPb0s3hQ.js → nearEd25519YaoMaterialActivation-B5GecIvq.js} +38 -28
  277. package/dist/public/sdk/{nearEd25519YaoSigningPreparation-BeD-SmbK.js → nearEd25519YaoSigningPreparation-CdOT5RuC.js} +3 -3
  278. package/dist/public/sdk/{passkey-custody-Bk1jAknm.js → passkey-custody-UUHbC0pk.js} +1 -1
  279. package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-DLzBb3WQ.js → pendingWalletRecoveryCodeBackup-BWluQMbt.js} +1 -1
  280. package/dist/public/sdk/{recovery-entrypoint-DW2tGyMs.js → recovery-entrypoint-C3fydnRC.js} +10 -10
  281. package/dist/public/sdk/{registration-BZDzDv91.js → registration-Ct_7LdGf.js} +30 -42
  282. package/dist/public/sdk/{registration-BzVHODuD.js → registration-DHERU8R_.js} +1 -1
  283. package/dist/public/sdk/{registrationAccounts-CKku_Sgy.js → registrationAccounts-DmWPzf3T.js} +2 -2
  284. package/dist/public/sdk/{registrationIntent-D0PxwEY4.js → registrationIntent-4zwk16zQ.js} +3 -9
  285. package/dist/public/sdk/{registrationPreparationPreload-CIAuRlxI.js → registrationPreparationPreload-D6zpWp4O.js} +2 -2
  286. package/dist/public/sdk/{registrationSignerPlan-CAikVZZQ.js → registrationSignerPlan-DhV8VAob.js} +2 -5
  287. package/dist/{esm/sdk/router-C5lF_J_u.js → public/sdk/router-B4ZWFy9E.js} +7 -7
  288. package/dist/{esm/sdk/routerAbNormalSigning-fhvpDtmY.js → public/sdk/routerAbNormalSigning-CVFEOZ2m.js} +1 -1
  289. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  290. package/dist/public/sdk/{runtime-auth-DFTqwj3u.js → runtime-auth-DdfynDKt.js} +126 -273
  291. package/dist/public/sdk/{runtime-device-link-C1Oub8Lw.js → runtime-device-link-HJ2ptFux.js} +12 -12
  292. package/dist/public/sdk/{runtime-ecdsa-tempo-rkWwolw1.js → runtime-ecdsa-tempo-BGLsTAWR.js} +13 -13
  293. package/dist/{esm/sdk/runtime-email-otp-vuUG5LYl.js → public/sdk/runtime-email-otp-CpX88VZJ.js} +12 -12
  294. package/dist/{esm/sdk/runtime-export-FZWj0HxJ.js → public/sdk/runtime-export-DIVY473L.js} +13 -13
  295. package/dist/public/sdk/{runtime-near-B9cjurVD.js → runtime-near-CxtQi4b2.js} +12 -12
  296. package/dist/public/sdk/{runtime-preferences-Dq0bfyS5.js → runtime-preferences-vnJc5Svg.js} +12 -12
  297. package/dist/public/sdk/{runtime-recovery-codes-bTm3fLV4.js → runtime-recovery-codes-BSCLVHQj.js} +6 -6
  298. package/dist/{esm/sdk/runtime-recovery-C-vfFKF3.js → public/sdk/runtime-recovery-i08vCJST.js} +12 -12
  299. package/dist/public/sdk/{runtimeContext-iLXnxVlZ.js → runtimeContext-D3TBExQ6.js} +346 -305
  300. package/dist/public/sdk/{runtimeLoader-hod6T2-m.js → runtimeLoader-DQVEFVaW.js} +11 -11
  301. package/dist/{esm/sdk/secp256k1-el9aE4Sv.js → public/sdk/secp256k1-D-I6Gh4D.js} +36 -25
  302. package/dist/public/sdk/{sessionPolicy-CHiilOAB.js → sessionPolicy-DO-MkL65.js} +8 -1
  303. package/dist/{esm/sdk/signEvmFamily-e4IWWsZs.js → public/sdk/signEvmFamily-C3C97Th-.js} +43 -102
  304. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js → signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js} +2 -2
  305. package/dist/{esm/sdk/signEvmWithUiConfirm-C61TCBnh.js → public/sdk/signEvmWithUiConfirm-Bmcim5-g.js} +1 -1
  306. package/dist/public/sdk/{signNear-Bblwn2kT.js → signNear-Bmb2fj_a.js} +19 -55
  307. package/dist/{esm/sdk/signerLoader-D7Aey0FD.js → public/sdk/signerLoader-B7orgq5Z.js} +3 -3
  308. package/dist/{esm/sdk/signingFlow-rZfPegH9.js → public/sdk/signingFlow-SZ8t_lxv.js} +9 -10
  309. package/dist/public/sdk/{trace-rHe0wz7q.js → trace-DKLQZvec.js} +0 -1
  310. package/dist/public/sdk/{transactionState-DP9O8F6f.js → transactionState-CJ4U8pcl.js} +50 -41
  311. package/dist/public/sdk/tx-confirm-ui.js +11 -46
  312. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  313. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  314. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  315. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  316. package/dist/{esm/sdk/wallet-recovery-Bz9qKgaL.js → public/sdk/wallet-recovery-BX61-79p.js} +3 -6
  317. package/dist/public/sdk/wallet-ui.css +41 -301
  318. package/dist/{esm/sdk/walletAuthority-BQBxgUBn.js → public/sdk/walletAuthority-DD9T25F6.js} +1 -5
  319. package/dist/public/sdk/{walletCustodyEcdsaContinuity-Hn4ORIbf.js → walletCustodyEcdsaContinuity-CF4bv9OI.js} +166 -296
  320. package/dist/public/sdk/{walletRecoveryCommit-sjGNTHUj.js → walletRecoveryCommit-AI1AtIRP.js} +81 -139
  321. package/dist/public/sdk/workers/device-linking-key.worker.js +106 -105
  322. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +15 -24
  323. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +58 -73
  324. package/dist/public/sdk/workers/email-otp.worker.js +13 -16
  325. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  326. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  327. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  328. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  329. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  330. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  331. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  332. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +7 -7
  333. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  334. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  335. package/dist/public/wallet-assets.manifest.json +112 -112
  336. package/dist/public/wallet-service/index.html +4 -4
  337. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  338. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  339. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  340. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  341. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +5 -63
  342. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  343. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  344. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  345. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -1
  346. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +1 -10
  347. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +3 -5
  348. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  349. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  350. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  351. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  352. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  353. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  354. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  355. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  356. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  357. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  358. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  359. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  360. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  361. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  362. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  363. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  364. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  365. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  366. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  367. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  368. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  369. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  370. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  371. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  372. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  373. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  374. package/dist/types/wallet/build-paths.d.ts +1 -2
  375. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
  376. package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
  377. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
  378. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -17
  379. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
  380. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
  381. package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
  382. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
  383. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
  384. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +1 -2
  385. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
  386. package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
  387. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -8
  388. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
  389. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
  390. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +3 -6
  391. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +9 -38
  392. package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
  393. package/dist/types/wallet/src/core/platform/ports.d.ts +3 -7
  394. package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
  395. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
  396. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -8
  397. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
  398. package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
  399. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
  400. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
  401. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
  402. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +1 -10
  403. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
  404. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
  405. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
  406. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +5 -8
  407. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
  408. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
  409. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +3 -10
  410. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
  411. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
  412. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
  413. package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
  414. package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
  415. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
  416. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -2
  417. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
  418. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
  419. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
  420. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
  421. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
  422. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -6
  423. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
  424. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -5
  425. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -4
  426. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
  427. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -8
  428. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
  429. package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
  430. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +3 -6
  431. package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
  432. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
  433. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
  434. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
  435. package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
  436. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +3 -8
  437. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
  438. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
  439. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
  440. package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
  441. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
  442. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
  443. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
  444. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
  445. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
  446. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
  447. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +3 -5
  448. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -8
  449. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -22
  450. package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
  451. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
  452. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -4
  453. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
  454. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
  455. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
  456. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
  457. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
  458. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
  459. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +3 -0
  460. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -11
  461. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -2
  462. package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
  463. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
  464. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +4 -21
  465. package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
  466. package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
  467. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
  468. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
  469. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
  470. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
  471. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
  472. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
  473. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
  474. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
  475. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
  476. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
  477. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
  478. package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
  479. package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
  480. package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
  481. package/dist/workers/device-linking-key.worker.js +106 -105
  482. package/dist/workers/ecdsa-derivation-client.worker.js +15 -24
  483. package/dist/workers/ecdsa-presign-client.worker.js +58 -73
  484. package/dist/workers/email-otp.worker.js +13 -16
  485. package/dist/workers/evm_crypto.wasm +0 -0
  486. package/dist/workers/evm_crypto_bg.wasm +0 -0
  487. package/dist/workers/near_signer.wasm +0 -0
  488. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  489. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  490. package/dist/workers/tempo_signer.wasm +0 -0
  491. package/dist/workers/tempo_signer_bg.wasm +0 -0
  492. package/dist/workers/wallet-custody-ceremony.worker.js +7 -7
  493. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  494. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  495. package/package.json +1 -1
  496. package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  497. package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  498. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  499. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  500. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  501. package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  502. package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  503. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  504. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  505. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  506. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
  507. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
  508. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
  509. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
@@ -42,11 +42,12 @@ import { parseWalletIframeExactSessionIdentity } from "./walletIframe/shared/exa
42
42
  import { resolveBrowserWorkerWarmupPolicy } from "./assembly/browserWorkerWarmupPolicy.js";
43
43
  import { configureBrowserIndexedDB } from "./assembly/configureBrowserIndexedDB.js";
44
44
  import { createBrowserHostPlatformRuntime, createBrowserSigningRuntime } from "./assembly/createBrowserSigningRuntime.js";
45
+ import { scheduleRestoredSessionPresignaturePrefills } from "./walletIframe/host/restoredSessionPresignaturePrefill.js";
45
46
  import { createBrowserSigningStores } from "./assembly/createBrowserSigningStores.js";
46
47
  import { initializeBrowserSigningRuntime } from "./assembly/initializeBrowserSigningRuntime.js";
47
48
  import { assertWalletRuntimePostconditions } from "../core/signingEngine/session/postconditions/runtimePostconditions.js";
48
49
  import { resolveExactLinkedEmailOtpAuthority, resolveLinkedDeviceEmailOtpAuthoritySelection, unlockLinkedDeviceEmailOtpWallet } from "./operations/auth/login.js";
49
- import { getWalletSessionDomain } from "./operations/auth/walletAuth.js";
50
+ import { getWalletSessionDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain } from "./operations/auth/walletAuth.js";
50
51
  import { LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1 } from "./operations/devices/deviceLinkingHttpTransport.js";
51
52
  import { createWalletIframeLinkedDeviceManagementPortV1 } from "./publicApi/devices.js";
52
53
  import { resolveConfiguredChainTarget } from "./publicApi/chainTargets.js";
@@ -620,6 +621,14 @@ var SeamsWeb = class {
620
621
  async getWalletIframeExactSessionState() {
621
622
  return await this.walletIframe.getExactSessionState();
622
623
  }
624
+ /** @internal One wallet-host restore owns all configured-chain prefills. */
625
+ async prefillRestoredWalletSession(state) {
626
+ await scheduleRestoredSessionPresignaturePrefills({
627
+ state,
628
+ chainTargets: this.configuredChainTargets(),
629
+ prefill: prefillRouterAbEcdsaDerivationPresignaturePoolDomain.bind(null, this.getWalletAuthDeps())
630
+ });
631
+ }
623
632
  async openHostedAuthMenu(request, anchorElement) {
624
633
  return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
625
634
  }
@@ -61,6 +61,7 @@ import { passkeyCredentialIdB64uFromAuthentication, passkeyPrfFirstB64uFromCrede
61
61
  import { scheduleEcdsaSessionPresignaturePrefill } from "./scheduleEcdsaSessionPresignaturePrefill.js";
62
62
  import { resolveManagedRuntimeScopeBootstrap } from "../../../core/config/managedRuntimeScope.js";
63
63
  import { exactPasskeyWalletAuthAuthorityRefForCredential, exactPasskeyWalletAuthMethodForCredential } from "../authMethods/passkey/exactPasskeyAuthority.js";
64
+ import { scheduleLinkedDevicePresignaturePrefill } from "./scheduleLinkedDevicePresignaturePrefill.js";
64
65
  import { createRouterAbNormalSigningPolicy } from "../session/thresholdWarmSessionBootstrap.js";
65
66
  import { assertWalletRuntimePostconditions } from "../../../core/signingEngine/session/postconditions/runtimePostconditions.js";
66
67
  import { buildConfiguredTargetKeyCompletion, collectConfiguredTargetThresholdEcdsaWarmKeys, configuredTargetThresholdEcdsaWarmKey, mergeCanonicalThresholdEcdsaWarmSessionContexts, parseActiveEcdsaSignerRecordForUnlock, planUnlockEcdsaWarmup, requireCompleteConfiguredTargetKeyContext } from "../../../core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js";
@@ -1324,12 +1325,21 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
1324
1325
  ...providerIdentity ? { providerIdentity } : {}
1325
1326
  });
1326
1327
  const ecdsaMaterial = linkedDeviceEcdsaMaterial(openedMaterials);
1327
- if (ecdsaMaterial) await activateLinkedDeviceEcdsaHolderRuntime({
1328
- context: args.context,
1329
- selection,
1330
- factorAuthority,
1331
- material: ecdsaMaterial
1332
- });
1328
+ if (ecdsaMaterial) {
1329
+ const { runtime } = await activateLinkedDeviceEcdsaHolderRuntime({
1330
+ context: args.context,
1331
+ selection,
1332
+ factorAuthority,
1333
+ material: ecdsaMaterial
1334
+ });
1335
+ scheduleLinkedDevicePresignaturePrefill({
1336
+ runtime,
1337
+ operationCredential: args.operationCredential,
1338
+ expiresAtMs: args.walletSession.expiresAtMs,
1339
+ relayerUrl,
1340
+ workerCtx: args.context.signingEngine.getSignerWorkerContext()
1341
+ });
1342
+ }
1333
1343
  const ed25519Material = linkedDeviceEd25519Material(openedMaterials);
1334
1344
  if (ed25519Material) {
1335
1345
  const session = await linkedDeviceEd25519SessionAfterLink({
@@ -0,0 +1,64 @@
1
+ import { MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS } from "../../../core/signingEngine/workerManager/ecdsaPresignLifecycle.js";
2
+ import { routerAbMpcMaterialActivationRefToWire } from "../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
3
+ import { deriveEvmFamilyEcdsaKeyHandle } from "../../../core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js";
4
+ import { parseEcdsaKeyHandle } from "../../../shared-ts/src/threshold/keyMaterialBrands.js";
5
+ import { resolveLinkedEcdsaHolderRuntimeV1 } from "../../../core/signingEngine/session/material/linkedEcdsaHolderRuntime.js";
6
+ import { emitSigningSessionFlowTrace } from "../../../core/signingEngine/session/operationState/trace.js";
7
+ import { buildRouterAbEcdsaDerivationSigningMaterialRef } from "../../../core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js";
8
+ import { scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill } from "../../../core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js";
9
+ import { createLinkedHolderClientSigningMaterialSource } from "../../../core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js";
10
+ //#region src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.ts
11
+ async function scheduleLinkedDevicePresignaturePrefill(args) {
12
+ try {
13
+ const scope = args.runtime.activationReceipt.normalSigning.scope;
14
+ const material = buildRouterAbEcdsaDerivationSigningMaterialRef({ routerAbState: args.runtime.activationReceipt.normalSigning });
15
+ const keyHandle = await deriveEvmFamilyEcdsaKeyHandle({
16
+ ecdsaThresholdKeyId: scope.ecdsa_threshold_key_id,
17
+ signingRootId: scope.signing_root_id,
18
+ signingRootVersion: scope.signing_root_version
19
+ });
20
+ if (resolveLinkedEcdsaHolderRuntimeV1(args.runtime) !== args.runtime) return;
21
+ const result = scheduleRouterAbEcdsaDerivationClientPresignaturePoolRefill({
22
+ relayerUrl: args.relayerUrl,
23
+ keyHandle: parseEcdsaKeyHandle(keyHandle),
24
+ ecdsaThresholdKeyId: material.ecdsaThresholdKeyId,
25
+ clientVerifyingShareB64u: material.clientVerifier33B64u,
26
+ clientSigningMaterial: createLinkedHolderClientSigningMaterialSource(args.runtime.holderHandleId),
27
+ thresholdEcdsaPublicKeyB64u: material.thresholdVerifier33B64u,
28
+ relayerVerifyingShareB64u: material.serverVerifier33B64u,
29
+ credential: {
30
+ kind: "wallet_session_opaque",
31
+ walletSessionToken: args.operationCredential.token
32
+ },
33
+ authorization: {
34
+ kind: "reusable_wallet_session",
35
+ wallet_session_id: args.operationCredential.walletSessionId
36
+ },
37
+ materialActivation: routerAbMpcMaterialActivationRefToWire(args.runtime.materialActivation),
38
+ routerAbEcdsaDerivationPoolFill: {
39
+ kind: "router_ab_ecdsa_derivation_signing_worker_pool",
40
+ scope,
41
+ ceremonyExpiresAtMs: args.expiresAtMs,
42
+ materialExpiresAtMs: Date.now() + MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS
43
+ },
44
+ workerCtx: args.workerCtx
45
+ });
46
+ emitSigningSessionFlowTrace("evm-family", {
47
+ event: "ecdsa_linked_device_prefill",
48
+ scheduled: result.scheduled,
49
+ reason: result.reason,
50
+ depth: result.depth,
51
+ targetDepth: result.targetDepth
52
+ });
53
+ } catch {
54
+ emitSigningSessionFlowTrace("evm-family", {
55
+ event: "ecdsa_linked_device_prefill",
56
+ scheduled: false,
57
+ reason: "unexpected_error"
58
+ });
59
+ }
60
+ }
61
+ //#endregion
62
+ export { scheduleLinkedDevicePresignaturePrefill };
63
+
64
+ //# sourceMappingURL=scheduleLinkedDevicePresignaturePrefill.js.map
@@ -1,7 +1,6 @@
1
1
  import { toError } from "../../../shared-ts/src/utils/errors.js";
2
2
  import { SIGNER_AUTH_METHODS } from "../../../shared-ts/src/utils/signerDomain.js";
3
3
  import { toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
4
- import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
5
4
  import { IndexedDBManager } from "../../../core/indexedDB/index.js";
6
5
  import { resolveWalletUnlockSubjectSet } from "./walletUnlockSubject.js";
7
6
  import { getRecentUnlocks, getWalletSession, lock, logout, unlockResolvedWalletSubjectSet } from "./login.js";
@@ -122,7 +121,7 @@ async function getRecentUnlocksDomain(deps) {
122
121
  }
123
122
  return await getRecentUnlocks(deps.getContext());
124
123
  }
125
- async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args) {
124
+ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args, statusReads) {
126
125
  if (deps.walletIframe.shouldUseWalletIframe()) return await (await deps.walletIframe.requireRouter(args.walletSession.walletId)).prefillRouterAbEcdsaDerivationPresignaturePool({
127
126
  walletSession: args.walletSession,
128
127
  options: {
@@ -135,7 +134,7 @@ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args)
135
134
  walletId,
136
135
  chainTarget: args.chainTarget,
137
136
  ...typeof args.waitForPoolReady === "boolean" ? { waitForPoolReady: args.waitForPoolReady } : {}
138
- }, new WalletSessionStatusReadScope());
137
+ }, statusReads);
139
138
  }
140
139
  //#endregion
141
140
  export { getRecentUnlocksDomain, getWalletSessionDomain, hasPasskeyCredentialDomain, lockDomain, logoutDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain, unlockDomain };
@@ -1,7 +1,7 @@
1
1
  import { IndexedDbEcdsaCapabilityManifestStore } from "../../../core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js";
2
2
  //#region src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.ts
3
3
  const ecdsaCapabilityManifestStore = new IndexedDbEcdsaCapabilityManifestStore();
4
- async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
4
+ async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
5
5
  const resolved = await ecdsaCapabilityManifestStore.listActiveWalletCapabilitySubjects(walletId);
6
6
  if (resolved.kind === "persistence_unavailable") return {
7
7
  kind: "failed",
@@ -24,9 +24,6 @@ async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
24
24
  subjects
25
25
  };
26
26
  }
27
- async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
28
- return await listEvmFamilyEcdsaWalletUnlockSubjects(walletId);
29
- }
30
27
  async function resolveEcdsaActivationJournalSelectors(walletId) {
31
28
  return await ecdsaCapabilityManifestStore.listWalletActivationJournalSelectors(walletId);
32
29
  }
@@ -9,6 +9,7 @@ import { parseLinkSessionProjectionV1, parseLinkSessionTransportEventV1, parseLi
9
9
  import { parseActivateInstalledAuthorityResultV1, parseLocalAuthorityActivationFinalAckV1, parseLocalAuthorityInstallationReceiptV1 } from "../../../shared-ts/src/device-linking/authorityActivation.js";
10
10
  import { LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, computeLinkedDevicePublicKeyDigestV1 } from "../../../shared-ts/src/device-linking/requestProof.js";
11
11
  import "../../../shared-ts/src/device-linking/index.js";
12
+ import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
12
13
  //#region src/SeamsWeb/operations/devices/deviceLinkingHttpTransport.ts
13
14
  const LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1 = "/wallet/device-linking/v1/sessions";
14
15
  const LINKED_DEVICE_POLL_MAX_DELAY_MS = 4e3;
@@ -425,7 +426,7 @@ async function createPollingSubscriptionV1(input) {
425
426
  function parseSessionMutationEnvelopeV1(raw) {
426
427
  const record = asPlainDeviceLinkingResponse(raw);
427
428
  if (record === null) throw new Error("linked-device response must be an object");
428
- if (!hasExactKeys(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
429
+ if (!hasExactResponseKeys(record, SESSION_MUTATION_RESPONSE_FIELDS)) throw new Error("linked-device response contains invalid fields");
429
430
  if (record.ok !== true) throw new Error("linked-device response outcome is invalid");
430
431
  switch (record.outcome) {
431
432
  case "applied": return {
@@ -444,7 +445,7 @@ function parseSessionMutationEnvelopeV1(raw) {
444
445
  function parseTargetCredentialRegistrationResponseV1(raw) {
445
446
  const record = asPlainDeviceLinkingResponse(raw);
446
447
  if (record === null) throw new Error("linked-device target credential response must be an object");
447
- if (!hasExactKeys(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
448
+ if (!hasExactResponseKeys(record, TARGET_CREDENTIAL_RESPONSE_FIELDS)) throw new Error("linked-device target credential response contains invalid fields");
448
449
  if (record.ok !== true) throw new Error("linked-device target credential response outcome is invalid");
449
450
  switch (record.outcome) {
450
451
  case "applied": return parseTargetCredentialRegistrationResponseBranch(record, "applied");
@@ -462,20 +463,20 @@ function parseTargetCredentialRegistrationResponseBranch(record, outcome) {
462
463
  function parseHttpFailureMessageV1(response) {
463
464
  const record = asPlainDeviceLinkingResponse(response.body);
464
465
  if (record === null || record.ok !== false) return `linked-device request failed with HTTP ${response.status}`;
465
- if (hasExactKeys(record, CODED_FAILURE_RESPONSE_FIELDS) && typeof record.code === "string" && typeof record.message === "string" && record.message.trim()) return `linked-device request failed: ${record.message}`;
466
- if (hasExactKeys(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}`;
466
+ 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}`;
467
+ 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}`;
467
468
  switch (record.outcome) {
468
469
  case "conflict":
469
- if (hasExactKeys(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
470
+ if (hasExactResponseKeys(record, SESSION_CONFLICT_FAILURE_FIELDS)) return "linked-device request failed: conflict";
470
471
  break;
471
472
  case "expired":
472
- if (hasExactKeys(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
473
+ if (hasExactResponseKeys(record, SESSION_EXPIRED_FAILURE_FIELDS)) return "linked-device request failed: expired";
473
474
  break;
474
475
  case "invalid_state":
475
- if (hasExactKeys(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
476
+ if (hasExactResponseKeys(record, SESSION_INVALID_STATE_FAILURE_FIELDS)) return "linked-device request failed: invalid_state";
476
477
  break;
477
478
  case "integrity_error":
478
- if (hasExactKeys(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
479
+ if (hasExactResponseKeys(record, SESSION_INTEGRITY_FAILURE_FIELDS)) return "linked-device request failed: integrity_error";
479
480
  break;
480
481
  default: break;
481
482
  }
@@ -493,11 +494,9 @@ function isPlainDeviceLinkingResponse(value) {
493
494
  return false;
494
495
  }
495
496
  }
496
- function hasExactKeys(record, expectedKeys) {
497
+ function hasExactResponseKeys(record, expectedKeys) {
497
498
  try {
498
- const actualKeys = Object.keys(record).sort();
499
- const expected = [...expectedKeys].sort();
500
- return actualKeys.length === expected.length && actualKeys.every((key, index) => key === expected[index]);
499
+ return hasExactKeys(record, expectedKeys);
501
500
  } catch {
502
501
  return false;
503
502
  }
@@ -3,6 +3,7 @@ import { parseDigestB64u } from "../../../shared-ts/src/utils/canonicalPrimitive
3
3
  import { parseDeviceId } from "../../../shared-ts/src/authorization/capabilityKinds.js";
4
4
  import { encodeWalletSignerActivationSetV1, parseWalletSignerActivationSetV1 } from "../../../shared-ts/src/authorization/walletAuthority.js";
5
5
  import { parseLocalAuthorityActivationFinalAckV1 } from "../../../shared-ts/src/device-linking/authorityActivation.js";
6
+ import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
6
7
  //#region src/SeamsWeb/operations/devices/deviceLinkingResume.ts
7
8
  const LINKED_DEVICE_COMMITTED_RESUME_KIND_V1 = "linked_device_committed_resume_v1";
8
9
  const LINKED_DEVICE_PENDING_ACK_KIND_V1 = "linked_device_pending_ack_v1";
@@ -203,11 +204,6 @@ function isPlainDeviceLinkingResumeRecord(value) {
203
204
  return false;
204
205
  }
205
206
  }
206
- function hasExactKeys(record, expectedKeys) {
207
- const actual = Object.keys(record).sort();
208
- const expected = [...expectedKeys].sort();
209
- return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
210
- }
211
207
  function sameSignerActivations(left, right) {
212
208
  const leftBytes = encodeWalletSignerActivationSetV1(left);
213
209
  const rightBytes = encodeWalletSignerActivationSetV1(right);
@@ -5,27 +5,10 @@ import { parseWalletSessionOperationCredentialV1 } from "../../../shared-ts/src/
5
5
  import { parseLinkDevicePublicKeyB64u, parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, parseLinkedDeviceEmailOtpVerificationGrantV1 } from "../../../shared-ts/src/device-linking/parsers.js";
6
6
  import { parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, parseLinkedDeviceWalletSessionCredentialDeliveryV1 } from "../../../shared-ts/src/device-linking/walletSessionCredentialDelivery.js";
7
7
  import "../../../shared-ts/src/device-linking/index.js";
8
+ import { hasExactKeys } from "../../../shared-ts/src/utils/exactKeys.js";
8
9
  import { resolveWorkerUrl } from "../../../core/walletRuntimePaths/workers.js";
9
10
  import { createDeviceLinkingOrdinaryMaterialWorkerPortV1 } from "../../../core/signingEngine/workerManager/deviceLinkingPorts.js";
10
11
  //#region src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.ts
11
- function isDeviceLinkingKeyHandleRecordV1(value) {
12
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "handleId|kind";
13
- }
14
- function isDeviceLinkingKeyCreateResultRecordV1(value) {
15
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "deliveryRecipientPublicKey65B64u|devicePublicKeyB64u|handleId|linkPublicKeyB64u";
16
- }
17
- function isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value) {
18
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "factorSecret|kind|verificationGrant";
19
- }
20
- function isDeviceLinkingRequestSignatureResultRecordV1(value) {
21
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "signatureB64u";
22
- }
23
- function isDeviceLinkingWorkerSuccessFrameRecordV1(value) {
24
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "id|ok|result" && "ok" in value && value.ok === true;
25
- }
26
- function isDeviceLinkingWorkerFailureFrameRecordV1(value) {
27
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "error|id|ok" && "ok" in value && value.ok === false;
28
- }
29
12
  function nonEmpty(value, label) {
30
13
  if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
31
14
  return value;
@@ -51,7 +34,7 @@ function parseFixedB64u(value, length, label) {
51
34
  return encoded;
52
35
  }
53
36
  function parseHandle(value) {
54
- if (!isDeviceLinkingKeyHandleRecordV1(value)) throw new Error("device-linking key handle has invalid fields");
37
+ if (!hasExactKeys(value, ["kind", "handleId"])) throw new Error("device-linking key handle has invalid fields");
55
38
  const record = value;
56
39
  if (record.kind !== "device_linking_key_material_handle_v1") throw new Error("device-linking key handle kind is invalid");
57
40
  return {
@@ -60,7 +43,12 @@ function parseHandle(value) {
60
43
  };
61
44
  }
62
45
  function parseCreateResult(value) {
63
- if (!isDeviceLinkingKeyCreateResultRecordV1(value)) throw new Error("device-linking key create response has invalid fields");
46
+ if (!hasExactKeys(value, [
47
+ "handleId",
48
+ "linkPublicKeyB64u",
49
+ "devicePublicKeyB64u",
50
+ "deliveryRecipientPublicKey65B64u"
51
+ ])) throw new Error("device-linking key create response has invalid fields");
64
52
  const record = value;
65
53
  return {
66
54
  handle: {
@@ -73,7 +61,11 @@ function parseCreateResult(value) {
73
61
  };
74
62
  }
75
63
  function parseEmailOtpFactorReleaseResult(value) {
76
- if (!isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value)) throw new Error("device-linking Email OTP factor release response has invalid fields");
64
+ if (!hasExactKeys(value, [
65
+ "kind",
66
+ "verificationGrant",
67
+ "factorSecret"
68
+ ])) throw new Error("device-linking Email OTP factor release response has invalid fields");
77
69
  const record = value;
78
70
  if (record.kind !== "device_linking_email_otp_factor_release_result_v1") throw new Error("device-linking Email OTP factor release response kind is invalid");
79
71
  if (!(record.factorSecret instanceof ArrayBuffer) || record.factorSecret.byteLength !== 32) throw new Error("device-linking Email OTP factor release secret is invalid");
@@ -87,11 +79,15 @@ function parseWalletSessionCredentialDeliveryResult(value) {
87
79
  return parseWalletSessionOperationCredentialV1(value);
88
80
  }
89
81
  function parseSignatureResult(value) {
90
- if (!isDeviceLinkingRequestSignatureResultRecordV1(value)) throw new Error("device-linking request signature response has invalid fields");
82
+ if (!hasExactKeys(value, ["signatureB64u"])) throw new Error("device-linking request signature response has invalid fields");
91
83
  return { signatureB64u: parseFixedB64u(value.signatureB64u, 64, "signatureB64u") };
92
84
  }
93
85
  function parseResponseFrame(value) {
94
- if (isDeviceLinkingWorkerSuccessFrameRecordV1(value)) {
86
+ if (hasExactKeys(value, [
87
+ "id",
88
+ "ok",
89
+ "result"
90
+ ]) && value.ok === true) {
95
91
  const id = value.id;
96
92
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
97
93
  return {
@@ -100,7 +96,11 @@ function parseResponseFrame(value) {
100
96
  result: value.result
101
97
  };
102
98
  }
103
- if (isDeviceLinkingWorkerFailureFrameRecordV1(value)) {
99
+ if (hasExactKeys(value, [
100
+ "id",
101
+ "ok",
102
+ "error"
103
+ ]) && value.ok === false) {
104
104
  const id = value.id;
105
105
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
106
106
  if (typeof value.error !== "string" || !value.error.trim()) return null;
@@ -81,9 +81,6 @@ function durableBase64Url(value, label, byteLength) {
81
81
  if (byteLength !== void 0 && bytes.byteLength !== byteLength) throw new Error(label + " must decode to " + byteLength + " bytes");
82
82
  return normalized;
83
83
  }
84
- function durableCompressedPublicKey(value, label) {
85
- return parseSecp256k1CompressedPublicKeyB64u(value, label);
86
- }
87
84
  function durableSafeInteger(value, label) {
88
85
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new Error(label + " must be a non-negative safe integer");
89
86
  return value;
@@ -154,10 +151,10 @@ function parseWalletRecoveryDurableEcdsaPublicFacts(raw) {
154
151
  if (!/^0x[0-9a-f]{40}$/.test(ethereumAddress)) throw new Error("recovery durable ECDSA ethereumAddress is invalid");
155
152
  return {
156
153
  contextBinding32B64u: parseDigestField(record.contextBinding32B64u, "recovery durable ECDSA context binding"),
157
- derivationClientSharePublicKey33B64u: durableCompressedPublicKey(record.derivationClientSharePublicKey33B64u, "recovery durable ECDSA client share"),
158
- clientVerifyingShare33B64u: durableCompressedPublicKey(record.clientVerifyingShare33B64u, "recovery durable ECDSA client verifying share"),
159
- relayerPublicKey33B64u: durableCompressedPublicKey(record.relayerPublicKey33B64u, "recovery durable ECDSA relayer public key"),
160
- groupPublicKey33B64u: durableCompressedPublicKey(record.groupPublicKey33B64u, "recovery durable ECDSA group public key"),
154
+ derivationClientSharePublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.derivationClientSharePublicKey33B64u, "recovery durable ECDSA client share"),
155
+ clientVerifyingShare33B64u: parseSecp256k1CompressedPublicKeyB64u(record.clientVerifyingShare33B64u, "recovery durable ECDSA client verifying share"),
156
+ relayerPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.relayerPublicKey33B64u, "recovery durable ECDSA relayer public key"),
157
+ groupPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.groupPublicKey33B64u, "recovery durable ECDSA group public key"),
161
158
  ethereumAddress,
162
159
  clientShareRetryCounter: durableSafeInteger(record.clientShareRetryCounter, "recovery durable ECDSA client-share retry counter"),
163
160
  relayerShareRetryCounter: durableSafeInteger(record.relayerShareRetryCounter, "recovery durable ECDSA relayer-share retry counter")
@@ -18,19 +18,13 @@ import { unlockPendingEcdsaRegistration } from "./pendingEcdsaRegistrationRecove
18
18
  //#region src/SeamsWeb/operations/registration/pendingRegistrationRecovery.ts
19
19
  const defaultPendingRegistrationRecoveryPorts = {
20
20
  listPendingWalletRegistrationCommits,
21
- completeWalletRegistrationNearProvisioning: completePendingWalletRegistrationNearProvisioning,
21
+ completeWalletRegistrationNearProvisioning,
22
22
  publishPendingWalletRegistrationCommit
23
23
  };
24
24
  async function listPendingWalletRegistrationCommits() {
25
25
  await IndexedDBManager.initialize();
26
26
  return await IndexedDBManager.listPendingWalletRegistrationCommits();
27
27
  }
28
- async function completePendingWalletRegistrationNearProvisioning(input) {
29
- return await completeWalletRegistrationNearProvisioning(input);
30
- }
31
- async function activatePendingWalletRegistration(input) {
32
- return await activateWalletRegistration(input);
33
- }
34
28
  async function publishPendingWalletRegistrationCommit(input) {
35
29
  return await IndexedDBManager.publishPendingWalletRegistrationCommit(input);
36
30
  }
@@ -325,7 +319,7 @@ async function resumePendingNearRegistrations(args) {
325
319
  return results;
326
320
  }
327
321
  const defaultPendingEcdsaRegistrationRecoveryPorts = {
328
- activateWalletRegistration: activatePendingWalletRegistration,
322
+ activateWalletRegistration,
329
323
  publishPendingWalletRegistrationCommit,
330
324
  unlockPendingEcdsaRegistration
331
325
  };
@@ -369,7 +369,10 @@ async function executeEvmFamilyTransactionLifecycle(args) {
369
369
  }
370
370
  });
371
371
  const rawTxHex = assertRawTxHexOrThrow(signedResult.rawTxHex);
372
- args.lifecycle.onBroadcastStarted?.(signedResult);
372
+ args.lifecycle.onBroadcastStarted({
373
+ walletSession: args.input.walletSession,
374
+ signedResult
375
+ });
373
376
  txHash = normalizeTxHashOrThrow(await client.request({
374
377
  method: "eth_sendRawTransaction",
375
378
  params: [rawTxHex]
@@ -1,3 +1,4 @@
1
+ import { WalletSessionStatusReadScope } from "../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
1
2
  import { getRecentUnlocksDomain, getWalletSessionDomain, hasPasskeyCredentialDomain, lockDomain, logoutDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain, unlockDomain } from "../operations/auth/walletAuth.js";
2
3
  //#region src/SeamsWeb/publicApi/auth.ts
3
4
  function createAuthCapability(deps) {
@@ -8,7 +9,7 @@ function createAuthCapability(deps) {
8
9
  getWalletSession: async (walletId) => await getWalletSessionDomain(deps.getWalletAuthDeps(), walletId),
9
10
  getRecentUnlocks: async () => await getRecentUnlocksDomain(deps.getWalletAuthDeps()),
10
11
  hasPasskeyCredential: async (walletId) => await hasPasskeyCredentialDomain(deps.getWalletAuthDeps(), walletId),
11
- prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args),
12
+ prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args, new WalletSessionStatusReadScope()),
12
13
  requestEmailOtpChallenge: deps.domain.requestEmailOtpChallenge,
13
14
  requestEmailOtpSigningSessionChallenge: deps.domain.requestEmailOtpSigningSessionChallenge,
14
15
  refreshEmailOtpSigningSession: deps.domain.refreshEmailOtpSigningSession,
@@ -63,6 +63,11 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
63
63
  ...args,
64
64
  chainTarget: resolveTempoChainTarget(deps.configs.network.chains, args.chainTarget)
65
65
  }));
66
+ const onBroadcastStarted = (args) => {
67
+ const walletIframe = deps.getWalletIframe();
68
+ if (!walletIframe.shouldUseWalletIframe()) return;
69
+ walletIframe.requireRouter(toWalletId(args.walletSession.walletId)).then((router) => router.notifyTransactionBroadcastStarted(args.signedResult)).catch(() => {});
70
+ };
66
71
  const reportBroadcastAccepted = async (args) => {
67
72
  const walletIframe = deps.getWalletIframe();
68
73
  const walletId = toWalletId(args.walletSession.walletId);
@@ -178,6 +183,7 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
178
183
  }
179
184
  };
180
185
  const lifecycle = {
186
+ onBroadcastStarted,
181
187
  signEvmFamily,
182
188
  reportBroadcastAccepted,
183
189
  reportBroadcastRejected,
@@ -54,10 +54,11 @@ import { fullWalletLoginRequired, invalidWalletSigningMaterial, isWalletSigningS
54
54
  import { buildBlockedMpcCapabilityHydrationPlan, buildRehydrateMaterialActivationHydrationPlan, buildUseLiveRuntimeHydrationPlan } from "../../core/signingEngine/session/material/mpcCapabilityHydration.js";
55
55
  import { nearEd25519YaoMaterialActivationFromMetadata, nearEd25519YaoRuntimeRef, resolveNearEd25519YaoCapabilityHydrationV1 } from "../../core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js";
56
56
  import { buildThresholdEd25519WebAuthnPrfSecretSource } from "../../core/signingEngine/threshold/ed25519/walletSession.js";
57
- import { resolveThresholdEd25519CommitQueueKey, withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
57
+ import { clearThresholdCommitQueue, resolveThresholdCommitQueueKey } from "../../core/signingEngine/threshold/commitQueueShared.js";
58
+ import { withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
59
+ import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
58
60
  import { isConcreteAvailableSigningLane } from "../../core/signingEngine/session/availability/availableSigningLanes.js";
59
61
  import { signNear } from "../../core/signingEngine/flows/signNear/signNear.js";
60
- import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
61
62
  import { resolvePasskeyEd25519YaoExportContextV1 } from "../../core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js";
62
63
  import { ed25519YaoLocalMaterialIdentityFromWalletSession, hydratePasskeyEd25519YaoLocalMaterialV1, preparePasskeyEd25519YaoLocalMaterialRehydrationV1, readPasskeyEd25519YaoLocalMaterialLocatorV1 } from "../../core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js";
63
64
  import { buildPasskeyEd25519RestoreMetadata, persistPasskeyEd25519YaoSessionForRefresh } from "../../core/signingEngine/session/passkey/ed25519YaoSealedSession.js";
@@ -69,7 +70,7 @@ import { persistVerifiedEmailOtpAuthorityAfterUnlock, walletAuthAuthorityRefForV
69
70
  import { isRetryableSealedRefreshCapabilityFetchError } from "../../core/signingEngine/session/warmCapabilities/sealedRefreshParity.js";
70
71
  import { buildExactEcdsaPasskeyOwnerLaneScope, buildExactLinkedEmailOtpOwnerLaneScope, buildExactPasskeyOwnerLaneScope, resolveExactOwnerLaneScope, resolveExactWalletAuthAuthority } from "../../core/signingEngine/session/identity/ownerLaneScope.js";
71
72
  import { buildFreshEmailOtpRoutePlan } from "../../core/signingEngine/session/emailOtp/routePlan.js";
72
- import { clearThresholdEcdsaSigningQueue, withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
73
+ import { withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
73
74
  import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroadcastRejected, reportTempoDroppedOrReplaced, reportTempoFinalized, signEvmFamily } from "../../core/signingEngine/flows/signEvmFamily/signEvmFamily.js";
74
75
  import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
75
76
  import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
@@ -1844,18 +1845,15 @@ var BrowserSigningSurface = class {
1844
1845
  const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
1845
1846
  const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
1846
1847
  if (existingRehydration) {
1847
- const reboundSubject = await existingRehydration;
1848
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1848
+ const rebound = await existingRehydration;
1849
+ const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
1849
1850
  if (rehydrated) return rehydrated;
1850
1851
  throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
1851
1852
  }
1852
1853
  const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
1853
1854
  this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
1854
1855
  try {
1855
- const reboundSubject = await rehydration;
1856
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1857
- if (rehydrated) return rehydrated;
1858
- throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
1856
+ return (await rehydration).material;
1859
1857
  } finally {
1860
1858
  if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
1861
1859
  }
@@ -3181,7 +3179,14 @@ var BrowserSigningSurface = class {
3181
3179
  passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
3182
3180
  } : { kind: "unavailable" }
3183
3181
  });
3184
- if (liveHydration.kind === "live") return subject;
3182
+ if (liveHydration.kind === "live") {
3183
+ const material = await this.resolveActiveNearEd25519YaoSigningLane(subject);
3184
+ if (!material) throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
3185
+ return {
3186
+ subject,
3187
+ material
3188
+ };
3189
+ }
3185
3190
  if (liveHydration.kind === "rehydrated") {
3186
3191
  if (!warmSessionClaim.ok) {
3187
3192
  liveHydration.activeClient.dispose();
@@ -3214,8 +3219,12 @@ var BrowserSigningSurface = class {
3214
3219
  subject,
3215
3220
  walletSessionState
3216
3221
  });
3217
- if (!await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject)) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
3218
- return reboundSubject;
3222
+ const published = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
3223
+ if (!published) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
3224
+ return {
3225
+ subject: reboundSubject,
3226
+ material: published
3227
+ };
3219
3228
  } catch (error) {
3220
3229
  liveHydration.activeClient.dispose();
3221
3230
  throw error;
@@ -3362,7 +3371,7 @@ var BrowserSigningSurface = class {
3362
3371
  async withExactEd25519MaterialOwner(args) {
3363
3372
  return await withThresholdEd25519CommitQueue({
3364
3373
  queueByKey: this.thresholdEd25519CommitQueueByKey,
3365
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.materialActivation }),
3374
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
3366
3375
  nearAccountId: args.nearAccountId,
3367
3376
  enabled: true,
3368
3377
  task: args.task
@@ -3661,7 +3670,7 @@ var BrowserSigningSurface = class {
3661
3670
  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");
3662
3671
  return await withThresholdEd25519CommitQueue({
3663
3672
  queueByKey: this.thresholdEd25519CommitQueueByKey,
3664
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.metadata.materialActivation }),
3673
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
3665
3674
  nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
3666
3675
  enabled: args.commitQueue === "acquire",
3667
3676
  task: async () => {
@@ -3881,7 +3890,7 @@ var BrowserSigningSurface = class {
3881
3890
  this.ed25519YaoPageLifecycleOwner.dispose();
3882
3891
  }
3883
3892
  clearThresholdEcdsaSigningQueue() {
3884
- clearThresholdEcdsaSigningQueue(this.thresholdEcdsaSigningQueueByKey);
3893
+ clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
3885
3894
  }
3886
3895
  async clearLinkedEcdsaHolderMaterials() {
3887
3896
  await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
@@ -0,0 +1,29 @@
1
+ import { walletSessionRefFromSession } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
2
+ import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
3
+ //#region src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.ts
4
+ async function scheduleRestoredSessionPresignaturePrefills(args) {
5
+ switch (args.state.kind) {
6
+ case "active_session": break;
7
+ case "wallet_unlocked_without_signing_session":
8
+ if (args.state.reason !== "exhausted") return;
9
+ break;
10
+ case "wallet_locked":
11
+ case "wallet_authenticated_identity_unresolvable":
12
+ case "expired_session": return;
13
+ default:
14
+ args.state;
15
+ return;
16
+ }
17
+ const walletSession = walletSessionRefFromSession({ walletId: args.state.walletId });
18
+ const statusReads = new WalletSessionStatusReadScope();
19
+ const prefills = [];
20
+ for (const chainTarget of args.chainTargets) prefills.push(args.prefill({
21
+ walletSession,
22
+ chainTarget
23
+ }, statusReads));
24
+ await Promise.all(prefills);
25
+ }
26
+ //#endregion
27
+ export { scheduleRestoredSessionPresignaturePrefills };
28
+
29
+ //# sourceMappingURL=restoredSessionPresignaturePrefill.js.map