@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
@@ -8,71 +8,71 @@ import { b as parsePMRedeemHostedWalletSeamsSessionPayload } from "./messages-C7
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 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$1, 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-BZDzDv91.js";
12
- import { C as parseEnvelopeRevision, D as buildFullOwnerDelegatedWalletAuthorityV1, E as parseUnixMs, P as rejectUnknownFields, S as parseEnvelopeNonceB64u, T as parseSecp256k1CompressedPublicKeyB64u, _ as deriveEvmFamilySigningKeySlotId, a as clampThresholdSessionPolicy, b as parseEd25519PublicKeyB64u, c as resolveWalletUnlockSessionUsesFromRequestedUses, d as normalizeThresholdEd25519ParticipantIds, f as parseThresholdEd25519ParticipantsV1, g as signingRootScopeFromRuntimePolicyScope, h as normalizeRuntimePolicyScope, i as buildEd25519SessionPolicy, k as hasDelegatedWalletPermissionV1, 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 requireEvmFamilySigningKeySlotId, w as parseKeyCreationSignerSlot, x as parseEnvelopeCiphertextB64u, y as parseDigestField } from "./sessionPolicy-CHiilOAB.js";
13
- import { B as sameRouterAbEcdsaDerivationPublicIdentityV1, Ct as routerAbMpcMaterialActivationRefFromWire, Dt as activeWalletSessionV1RecordsEqual, E as parseRouterAbEcdsaRegistrationActivationReceiptV1, G as buildPasskeyWalletAuthAuthority, M as routerAbEcdsaDerivationActiveStateId, R as sameRouterAbEcdsaDerivationNormalSigningStateV1, S as parseRouterAbEcdsaOperationStepUpPreparationV1, Tt as sameRouterAbMpcMaterialActivationRef, U as sameRouterAbServerIdentityV1, V as sameRouterAbEcdsaRegistrationActivationReceiptV1, W as buildEmailOtpWalletAuthAuthority, X as isPasskeyWalletAuthAuthority, Y as isEmailOtpWalletAuthAuthority, Z as parseEmailOtpWalletAuthAuthority, _ as parseRouterAbEcdsaDerivationNormalSigningStateV1, _t as parseSdkEcdsaDerivationSigningRootId, et as parseWalletAuthAuthorityRef, ht as computeEcdsaDerivationRoleLocalRelayerKeyId, i as ROUTER_AB_ECDSA_DERIVATION_EXPORT_PATH, kt as parseWalletSessionOperationCredentialV1, nt as walletAuthAuthorityRef, p as parseRouterAbEcdsaCredentialFreeSessionActivationResponseV1, r as cloneAuthenticatorOptions, t as MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS, tt as walletAuthAuthoritiesMatch, v as parseRouterAbEcdsaDerivationPublicCapabilityV1, vt as parseSdkEcdsaDerivationSigningRootVersion, w as parseRouterAbEcdsaPostRegistrationSessionActivationRequestV1, wt as routerAbMpcMaterialActivationRefToWire, y as parseRouterAbEcdsaExplicitExportForwardedResponseV1, yt as parseSdkEcdsaDerivationThresholdKeyId, z as sameRouterAbEcdsaDerivationPublicCapabilityV1 } from "./ecdsaPresignLifecycle-BFOTNYCK.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
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
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
16
  import { a as sha256DigestB64u, o as sha256Utf8DigestB64u, r as parseDigestB64u } from "./canonicalPrimitives-BTHWz80v.js";
17
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
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
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-Bz9qKgaL.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-BAGG_rbk.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
22
  import { t as toAccountId } from "./accountIds-DhIPGOSN.js";
23
- import { $ as parseLinkedDeviceListRequestV1, $t as parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1, At as serializeQrLinkedDeviceSessionPayloadV5, Bt as ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1, Ct as parseLinkedDeviceOwnerAuthorizationRequestV1, D as parseSigningWorkerParticipantRecordV1, Dt as parseLinkedDeviceTargetPreparationRequestV1, E as parseLaneParticipantBindingDigestB64u, Et as parseLinkedDeviceTargetCredentialRegistrationResultV1, F as buildWalletIdentity, Ft as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1, G as computeWalletSessionInstallationReceiptDigestB64u, Gt as ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1, H as LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1, Ht as ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1, I as nearAccountBindingFromRaw, It as ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, J as parseLocalAuthorityActivationFinalAckV1, K as computeWalletSessionOperationCredentialDigestB64u, N as buildPasskeyAuthScope, Nt as parseLinkedDeviceEd25519SourcePreservingReservationV1, Ot as parseLinkedDeviceTargetPreparationV1, P as buildPasskeyWalletAuthMethodBinding, Pt as parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1, Q as parseLinkedDeviceWalletSessionCredentialDeliveryV1, R as parseRpId, St as parseLinkedDeviceEmailOtpVerificationResultV1, T as parseLaneHolderParticipantRecordV1, Tt as parseLinkedDeviceSessionClaimV1, U as computeLinkedDevicePublicKeyDigestV1, V as LINKED_DEVICE_REQUEST_PROOF_HEADER_V1, W as computeLinkedDeviceTargetPreparationDigestV1, Wt as ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1, X as assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1, Y as parseLocalAuthorityInstallationReceiptV1, Z as parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1, _ as resolveThresholdSigningRootBindingFromRecord, _n as parseLinkedDeviceEd25519ExportRootRecipientV1, _t as parseLinkedDeviceEmailOtpChallengeResultV1, a as buildEvmFamilyEcdsaWalletKey, at as buildLinkedDeviceSessionCancelClaimedRequestV1, bt as parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1, c as buildResolvedEvmFamilyEcdsaKey, cn as parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1, ct as buildLinkedDeviceTargetCredentialRegistrationV1, d as deriveEvmFamilyKeyFingerprint, dn as deriveRouterAbEd25519YaoApplicationBindingDigestV1, dt as parseLinkSessionProjectionV1, en as parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1, et as parseLinkedDeviceListResultV1, f as deriveEvmFamilyKeyFingerprintFromPublicFacts, ft as parseLinkSessionTransportEventV1, gn as parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u, gt as parseLinkedDeviceEmailOtpChallengeResendRequestV1, hn as parseLinkedDeviceEd25519ExportRootPackageV1, ht as parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1, i as buildEvmFamilyEcdsaSessionLanePolicy, it as buildLinkedDeviceApprovalV1, jt as parseCommittedAuthorityPackagesV1, k as buildEmailOtpWalletAuthMethodBinding, kt as parseQrLinkedDeviceSessionPayloadV5, lt as buildQrLinkedDeviceSessionPayloadV5, m as evmFamilyEcdsaWalletKeyToIdentity, mn as buildLinkedDeviceEd25519ExportRootTransferBindingV1, mt as parseLinkedDeviceApprovalResultV1, n as buildBaseEvmFamilyEcdsaKeyIdentity, nn as parseRouterAbEd25519YaoRecoveryActivationResultV1, nt as parseLinkedDeviceRevokeResultV1, on as parseRouterAbEd25519YaoRegistrationActivationResultV1, ot as buildLinkedDeviceSessionCancelUnclaimedRequestV1, p as deriveEvmFamilySigningKeySlotId$1, pn as LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1, pt as parseLinkedDeviceApprovalDeliveryV1, q as parseActivateInstalledAuthorityResultV1, r as buildEvmFamilyEcdsaRecoveredMaterialLanePolicy, rn as parseRouterAbEd25519YaoRecoveryAdmissionRequestV1, s as buildPasskeyEcdsaAuthBinding, st as buildLinkedDeviceSessionClaimRequestV1, t as assertMatchingVerifiedEcdsaPublicFacts, tn as parseRouterAbEd25519YaoRecoveryActivationReceiptV1, tt as parseLinkedDeviceRevokeRequestV1, ut as parseLinkDevicePublicKeyB64u, v as resolveThresholdSigningRootBindingFromRuntimePolicyScope, vn as serializeLinkedDeviceEd25519ExportRootTransferBindingV1, vt as parseLinkedDeviceEmailOtpChallengeStartRequestV1, w as parseOwnerLaneParticipantContinuityV1, wt as parseLinkedDeviceOwnerAuthorizationSourceV1, x as toRpId, xt as parseLinkedDeviceEmailOtpVerificationGrantV1, y as toEvmFamilyEcdsaKeyHandle, yn as assertNeverLinkSessionStateV1, yt as parseLinkedDeviceEmailOtpChallengeVerifyRequestV1, zt as ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1 } from "./evmFamilyEcdsaIdentity-Co5XDcEA.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-BQBxgUBn.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
25
  import "./encoders-D8d07vpx.js";
26
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-Bk1jAknm.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-CX41hur6.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
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 { A as openWalletAuthorityLinkedSignerMaterialV1, a as loadWalletCustodyEd25519MaterialV1, b as walletSessionAuthorizations, d as configureIndexedDB, f as createIndexedDBNonceLaneCoordinationStore, g as IndexedDbEcdsaCapabilityManifestStore, h as readEmailOtpProviderSubjectForWalletV1, i as deleteWalletCustodyEd25519MaterialV1, j as parseWalletAuthorityLinkedSignerMaterialRecordV1, 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-Hn4ORIbf.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
31
  import { t as parseSignerSlot } from "./signerSlot-_ovonwVX.js";
32
32
  import "./keccak-DUL3d8SF.js";
33
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-CAikVZZQ.js";
35
- import { r as computeAddAuthMethodIntentDigestB64u } from "./registrationIntent-D0PxwEY4.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
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-Dd0586fo.js";
38
- import { S as parseEmailOtpWorkerIssuedSessionHandle, _ as DEFAULT_CONFIRMATION_CONFIG, a as createSigningPlannerDecisionTraceEvent, b as isWorkerSuccess, 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 isWorkerError, x as parseEmailOtpEcdsaExportWorkerIssuedSessionHandle, y as isWorkerProgress } from "./signNear-Bblwn2kT.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
39
  import { t as executeWorkerOperation } from "./executeWorkerOperation-Cl9whMK7.js";
40
- 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-el9aE4Sv.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
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-CiD5fBEs.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-kzO_fW09.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
44
  import { i as buildNearAccountRefs } from "./profileAccountProjection-uZVJuBvS.js";
45
- 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-DPb0s3hQ.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
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-DQeqPMST.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-BeD-SmbK.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
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
50
  import { n as generateSessionId, t as cacheCredentialBoundarySetupExportPrfFirst } from "./prfCache-wqQSjYLn.js";
51
- import { l as emitSigningSessionFlowFailure, u as emitSigningSessionFlowTrace } from "./trace-rHe0wz7q.js";
51
+ import { l as emitSigningSessionFlowFailure, u as emitSigningSessionFlowTrace } from "./trace-DKLQZvec.js";
52
52
  import { t as webAuthnPromptCoordinator } from "./webauthnPromptCoordinator-L96oVvLz.js";
53
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-B4JeK1nJ.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
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-DLzBb3WQ.js";
56
+ import { r as showWalletRecoveryCodesUi, t as pendingWalletRecoveryCodeBackupRepository } from "./pendingWalletRecoveryCodeBackup-BWluQMbt.js";
57
57
  import { t as MinimalNearClient } from "./NearClient-DY4NfHeD.js";
58
58
  import { t as createEvmClient } from "./EvmClient-f3gUhS2L.js";
59
- import { n as resolveAppearanceTheme, o as resolveThemePalette } from "./configHelpers-vAQCzUD0.js";
59
+ import { n as resolveAppearanceTheme, o as resolveThemePalette } from "./configHelpers-D1EqxVxg.js";
60
60
  import { n as getDefaultCspNonce, t as createCspStylesheetManager } from "./csp-stylesheet-btENhsNp.js";
61
- import { r as buildConfigsFromEnv } from "./defaultConfigs-B3c16M_8.js";
61
+ import { r as buildConfigsFromEnv } from "./defaultConfigs-D_33pPT9.js";
62
62
  import { t as createNonceCoordinator } from "./NonceCoordinator-4XWPhYww.js";
63
- import { i as resumePendingWalletRecoveries } from "./walletRecoveryCommit-sjGNTHUj.js";
64
- import { i as loadWebAuthnP256EngineCtor, n as loadSignEvmFamilyWithUiConfirmForTempo, r as loadSignEvmWithUiConfirm, t as loadSecp256k1EngineCtor } from "./signerLoader-D7Aey0FD.js";
65
- 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-e4IWWsZs.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
66
  import { n as SigningAuthPlanKind } from "./promptText-CuRa_ivd.js";
67
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-fhvpDtmY.js";
69
- 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-DP9O8F6f.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
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-rZfPegH9.js";
72
- import { n as removeExportViewerHostIfPresent, t as isExportViewerSessionOpen } from "./export-viewer-host-ZqA2Yz3H.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
73
  import { i as observeTransactionLifecycleReport, n as failTransactionActivity, r as observeTransactionActivity, t as beginTransactionActivity } from "./transaction-activity-CSMCveBn.js";
74
74
  import "./jsxRuntime.module-CuH5ZEIA.js";
75
- import { t as handleRegistrationFlow } from "./registration-BzVHODuD.js";
75
+ import { t as handleRegistrationFlow } from "./registration-DHERU8R_.js";
76
76
  import { i as rotateWalletRecoverySet, n as readWalletRecoveryCodeStatus, r as requestWalletCustodyEmailOtpChallenge, t as acknowledgeWalletRecoveryBackup } from "./walletRecoveryRotate-BgLlW5ih.js";
77
77
  //#region src/core/walletRuntimePaths/workers.ts
78
78
  /**
@@ -1344,25 +1344,6 @@ async function recoverWalletCustodyManifestV1(input) {
1344
1344
  };
1345
1345
  }
1346
1346
  //#endregion
1347
- //#region src/core/signingEngine/session/sealedRecovery/materialActivationKey.ts
1348
- function ed25519DurableMaterialLocator(args) {
1349
- return {
1350
- kind: "ed25519_durable_material",
1351
- authMethod: args.authMethod,
1352
- materialActivation: args.materialActivation
1353
- };
1354
- }
1355
- function materialActivationKey(activation) {
1356
- return [
1357
- activation.activationId,
1358
- activation.capability,
1359
- activation.materialOwner,
1360
- activation.keyBinding,
1361
- activation.lifecycleBinding,
1362
- activation.signingWorker
1363
- ].map((part) => encodeURIComponent(String(part))).join(":");
1364
- }
1365
- //#endregion
1366
1347
  //#region src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.ts
1367
1348
  function requirePositiveInteger$2(value, label) {
1368
1349
  if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1) throw new Error(`${label} must be a positive integer`);
@@ -1515,9 +1496,6 @@ async function parseJsonResponseOrNull(response) {
1515
1496
  return null;
1516
1497
  }
1517
1498
  }
1518
- function sameRuntimePolicyScope(left, right) {
1519
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
1520
- }
1521
1499
  async function parseWarmRecoveryDescriptor(args) {
1522
1500
  const record = args.record;
1523
1501
  const response = args.response;
@@ -1539,7 +1517,7 @@ async function parseWarmRecoveryDescriptor(args) {
1539
1517
  const quotaId = parseMpcWalletSigningQuotaId(response.quotaId);
1540
1518
  const capability = parseEd25519YaoRecoveryCapabilityV1(response.capability);
1541
1519
  const walletSessionToken = args.authorization.operationCredential.token;
1542
- 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");
1543
1521
  if (!signingRootScopeFromRuntimePolicyScope(responseRuntimePolicyScope)) throw new Error("warm recovery bootstrap signing-root scope is invalid");
1544
1522
  if (!walletSessionToken) throw new Error("[SigningEngine][near] active Wallet Session authorization is unavailable");
1545
1523
  const descriptor = {
@@ -1816,10 +1794,6 @@ function signingLaneRecordFields(laneKind) {
1816
1794
  case "delegated_execution": return DELEGATED_SIGNING_LANE_FIELDS;
1817
1795
  }
1818
1796
  }
1819
- function requireResult(result, label) {
1820
- if (result.ok) return result.value;
1821
- throw new Error(`${label} ${result.error.message}`);
1822
- }
1823
1797
  function parseRequiredDomainId(raw, label) {
1824
1798
  if (raw === void 0 || raw === null) throw new Error(`${label} is required`);
1825
1799
  if (typeof raw !== "string") throw new Error(`${label} must be a string`);
@@ -1919,12 +1893,12 @@ function parseSigningLaneLifecycleState(raw, label) {
1919
1893
  function parseSigningLaneReferenceFields(record, label) {
1920
1894
  if (record.kind !== "signing_lane_reference_v1") throw new Error(`${label}.kind must be signing_lane_reference_v1`);
1921
1895
  return buildSigningLaneReference({
1922
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
1923
- walletKeyId: requireResult(parseWalletKeyId(record.walletKeyId), `${label}.walletKeyId`),
1924
- laneId: requireResult(parseSigningLaneId(record.laneId), `${label}.laneId`),
1925
- 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`),
1926
1900
  laneKind: parseSigningLaneKind(record.laneKind, `${label}.laneKind`),
1927
- participantBindingDigestB64u: requireResult(parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u), `${label}.participantBindingDigestB64u`)
1901
+ participantBindingDigestB64u: requireParsed$1(parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u), `${label}.participantBindingDigestB64u`)
1928
1902
  });
1929
1903
  }
1930
1904
  function parseSigningLaneRecordCommon(record, label) {
@@ -1943,7 +1917,7 @@ function parseOwnerAuthSigningLaneRecordBase(record, label) {
1943
1917
  const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
1944
1918
  return {
1945
1919
  ...common,
1946
- walletAuthMethodId: requireResult(walletAuthMethodId, `${label}.walletAuthMethodId`),
1920
+ walletAuthMethodId: requireParsed$1(walletAuthMethodId, `${label}.walletAuthMethodId`),
1947
1921
  ownerParticipantContinuity: parseOwnerLaneParticipantContinuityV1(record.ownerParticipantContinuity, `${label}.ownerParticipantContinuity`)
1948
1922
  };
1949
1923
  }
@@ -2139,8 +2113,8 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
2139
2113
  if (record.keyFamily === "ed25519") {
2140
2114
  rejectUnknownFields(record, ED25519_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
2141
2115
  return buildEd25519WalletKeyRecord({
2142
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
2143
- 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`),
2144
2118
  walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
2145
2119
  nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(record.nearEd25519SigningKeyId),
2146
2120
  keyCreationSignerSlot: parseKeyCreationSignerSlot(record.keyCreationSignerSlot, `${label}.keyCreationSignerSlot`),
@@ -2151,8 +2125,8 @@ function parseWalletKeyRecord(raw, label = "walletKeyRecord") {
2151
2125
  if (record.keyFamily === "ecdsa_secp256k1") {
2152
2126
  rejectUnknownFields(record, EVM_WALLET_KEY_FIELDS, label, ALL_WALLET_KEY_FIELDS);
2153
2127
  return buildEvmFamilyWalletKeyRecord({
2154
- walletId: requireResult(parseWalletId(record.walletId), `${label}.walletId`),
2155
- 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`),
2156
2130
  walletKeyVersion: parseWalletKeyVersion(record.walletKeyVersion, `${label}.walletKeyVersion`),
2157
2131
  evmFamilySigningKeySlotId: requireEvmFamilySigningKeySlotId(record.evmFamilySigningKeySlotId, `${label}.evmFamilySigningKeySlotId`),
2158
2132
  thresholdPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.thresholdPublicKey33B64u, `${label}.thresholdPublicKey33B64u`),
@@ -2181,7 +2155,7 @@ function parseSigningLaneRecord(raw, label = "signingLaneRecord") {
2181
2155
  holderParticipant: base.holderParticipant,
2182
2156
  serverParticipant: base.serverParticipant,
2183
2157
  lifecycle: base.lifecycle,
2184
- linkedDeviceId: requireResult(parseLinkedDeviceId(record.linkedDeviceId), `${label}.linkedDeviceId`)
2158
+ linkedDeviceId: requireParsed$1(parseLinkedDeviceId(record.linkedDeviceId), `${label}.linkedDeviceId`)
2185
2159
  });
2186
2160
  }
2187
2161
  case "delegated_execution": {
@@ -2721,26 +2695,42 @@ function exactEcdsaParticipantIds(value) {
2721
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");
2722
2696
  return [first, second];
2723
2697
  }
2724
- function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
2725
- const { exportLane } = args;
2698
+ function requireCanonicalEcdsaExportLane(args) {
2699
+ const { exportLane, label } = args;
2726
2700
  const capability = exportLane.capability;
2727
- if (!isEmailOtpWalletAuthAuthority(capability.authority)) throw new Error("[SigningEngine][ecdsa-export] Email OTP capability authority mismatch");
2728
2701
  const signer = capability.manifest.signer;
2729
- 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");
2730
- 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");
2731
- 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`);
2732
2705
  assertMatchingVerifiedEcdsaPublicFacts({
2733
2706
  expected: exportLane.publicFacts,
2734
- actual: capability.manifest.signer.registeredPublicFacts,
2735
- context: "canonical Email OTP export lane"
2707
+ actual: signer.registeredPublicFacts,
2708
+ context: `canonical ${label} export lane`
2736
2709
  });
2737
2710
  const materialFacts = capability.material.publicFacts;
2738
- 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`);
2739
2712
  const durable = capability.manifest.durableMaterial;
2740
2713
  const runtimePolicyScope = durable.runtimePolicyScope;
2741
2714
  const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
2742
- if (!runtimePolicyScope) throw new Error("[SigningEngine][ecdsa-export] Email OTP runtime policy scope is missing");
2743
- 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
+ });
2744
2734
  return {
2745
2735
  source: "canonical_capability",
2746
2736
  kind: "fresh_email_otp_route_auth_ready",
@@ -2754,30 +2744,21 @@ function resolveCanonicalEmailOtpEcdsaExportMaterialForLane(args) {
2754
2744
  relayerUrl,
2755
2745
  authorization: {
2756
2746
  kind: "fresh_operation_authorization_required",
2757
- authority: capability.authority
2747
+ authority
2758
2748
  }
2759
2749
  };
2760
2750
  }
2761
2751
  function resolveCanonicalPasskeyEcdsaExportMaterialForLane(args) {
2762
2752
  const { exportLane } = args;
2763
2753
  const capability = exportLane.capability;
2764
- if (!isPasskeyWalletAuthAuthority(capability.authority)) throw new Error("[SigningEngine][ecdsa-export] passkey capability authority mismatch");
2765
- const signer = capability.manifest.signer;
2766
- 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");
2767
- if (exportLane.laneIdentity.auth.kind !== "passkey" || exportLane.laneIdentity.auth.credentialIdB64u !== capability.authority.factor.credentialIdB64u) throw new Error("[SigningEngine][ecdsa-export] passkey capability auth mismatch");
2768
- if (!mpcMaterialActivationRefsEqual(capability.manifest.activation.materialActivation, exportLane.laneIdentity.signer.materialActivation)) throw new Error("[SigningEngine][ecdsa-export] passkey material activation mismatch");
2769
- assertMatchingVerifiedEcdsaPublicFacts({
2770
- expected: exportLane.publicFacts,
2771
- actual: signer.registeredPublicFacts,
2772
- 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
2773
2761
  });
2774
- const materialFacts = capability.material.publicFacts;
2775
- 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");
2776
- const durable = capability.manifest.durableMaterial;
2777
- const runtimePolicyScope = durable.runtimePolicyScope;
2778
- const relayerUrl = String(args.deps.relayerUrl).trim().replace(/\/+$/g, "");
2779
- if (!runtimePolicyScope) throw new Error("[SigningEngine][ecdsa-export] passkey runtime policy scope is missing");
2780
- if (!relayerUrl) throw new Error("[SigningEngine][ecdsa-export] passkey export relayer URL is missing");
2781
2762
  return {
2782
2763
  source: "canonical_capability",
2783
2764
  kind: "fresh_passkey_needs_authorization",
@@ -4958,7 +4939,7 @@ async function prepareAndShowEcdsaExportArtifact(deps, args) {
4958
4939
  });
4959
4940
  const materialActivation = args.exportLane.laneIdentity.signer.materialActivation;
4960
4941
  const artifact = await deps.withThresholdEcdsaSigningQueue({
4961
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation }),
4942
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
4962
4943
  walletId: args.exportLane.key.walletId,
4963
4944
  enabled: true,
4964
4945
  task: async () => {
@@ -5975,7 +5956,7 @@ async function exportEd25519YaoKeyWithFreshAuthorization(deps, args) {
5975
5956
  }
5976
5957
  });
5977
5958
  const result = await deps.withThresholdEd25519CommitQueue({
5978
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: passkeyEd25519ExportMaterialActivation(resolved) }),
5959
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: passkeyEd25519ExportMaterialActivation(resolved) }),
5979
5960
  nearAccountId: args.nearAccountId,
5980
5961
  enabled: true,
5981
5962
  task: () => deps.passkeyMpcExport.exportPrivateKeysWithUi(buildWorkerPayload({
@@ -6071,7 +6052,7 @@ async function exportEd25519YaoKeyWithFreshEmailOtp(deps, args) {
6071
6052
  onEvent: args.onEvent
6072
6053
  });
6073
6054
  const artifact = await deps.withThresholdEd25519CommitQueue({
6074
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: emailOtpEd25519ExportMaterialActivation(resolved.context) }),
6055
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: emailOtpEd25519ExportMaterialActivation(resolved.context) }),
6075
6056
  nearAccountId: args.nearAccountId,
6076
6057
  enabled: resolved.context.material.kind === "active_capability",
6077
6058
  task: () => deps.emailOtp.exportSeedWithFreshAuthorization({
@@ -6307,14 +6288,11 @@ async function exportEd25519KeypairWithFlowId(deps, args) {
6307
6288
  onEvent: args.options.onEvent
6308
6289
  });
6309
6290
  }
6310
- async function exportEd25519KeypairWithSessionLifecycle(deps, args) {
6311
- return await exportEd25519KeypairWithFlowId(deps, args);
6312
- }
6313
6291
  async function exportKeypairWithUI$1(deps, input) {
6314
6292
  return await runKeyExportWithFlowEvents(input, async (args) => {
6315
6293
  switch (args.kind) {
6316
6294
  case "ecdsa": return await exportEcdsaKeypairWithSessionLifecycle(deps, args, { kind: "initial" });
6317
- case "ed25519": return await exportEd25519KeypairWithSessionLifecycle(deps, args);
6295
+ case "ed25519": return await exportEd25519KeypairWithFlowId(deps, args);
6318
6296
  }
6319
6297
  });
6320
6298
  }
@@ -6784,7 +6762,6 @@ const BUILD_PATHS = {
6784
6762
  WASM_SIGNER: "../../wasm/near_signer",
6785
6763
  ED25519_YAO_CLIENT: "../../crates/router-ab-ed25519-yao-client",
6786
6764
  WASM_ECDSA_CLIENT: "../../wasm/router_ab_ecdsa_client",
6787
- WASM_ECDSA_SIGNING_WORKER: "../../wasm/router_ab_ecdsa_signing_worker",
6788
6765
  WASM_EVM_CRYPTO: "../../wasm/evm_crypto",
6789
6766
  WASM_TEMPO_SIGNER: "../../wasm/tempo_signer",
6790
6767
  WASM_SHAMIR3PASS_RUNTIME: "../../wasm/shamir3pass_runtime",
@@ -6800,7 +6777,6 @@ const BUILD_PATHS = {
6800
6777
  "../../crates/router-ab-ed25519-yao-client",
6801
6778
  "../../wasm/near_signer",
6802
6779
  "../../wasm/router_ab_ecdsa_client",
6803
- "../../wasm/router_ab_ecdsa_signing_worker",
6804
6780
  "../../wasm/evm_crypto",
6805
6781
  "../../wasm/tempo_signer",
6806
6782
  "../../wasm/shamir3pass_runtime",
@@ -7700,13 +7676,13 @@ async function handlePromptFromWorker(ctx, message, worker, options) {
7700
7676
  switch (request.type) {
7701
7677
  case UserConfirmationType.AUTHORIZE_KEY_EXPORT:
7702
7678
  case UserConfirmationType.SHOW_SECURE_PRIVATE_KEY_UI: {
7703
- const { handleLocalOnlyFlow } = await import("./localOnly-Bg8UuLZ5.js");
7679
+ const { handleLocalOnlyFlow } = await import("./localOnly-DTpa2jD5.js");
7704
7680
  await handleLocalOnlyFlow(ctx, request, scopedWorker, flowOptions);
7705
7681
  break;
7706
7682
  }
7707
7683
  case UserConfirmationType.REGISTER_ACCOUNT:
7708
7684
  case UserConfirmationType.LINK_DEVICE: {
7709
- const { handleRegistrationFlow } = await import("./registration-BzVHODuD.js").then((n) => n.n);
7685
+ const { handleRegistrationFlow } = await import("./registration-DHERU8R_.js").then((n) => n.n);
7710
7686
  await handleRegistrationFlow(ctx, request, scopedWorker, flowOptions);
7711
7687
  break;
7712
7688
  }
@@ -10783,7 +10759,7 @@ var PasskeyMpcSessionManagerImpl = class {
10783
10759
  if (inFlight) return requirePasskeyEcdsaRestoreOutcome(await inFlight, "ready");
10784
10760
  const task = withThresholdEcdsaSigningQueue({
10785
10761
  queueByKey: this.deps.thresholdEcdsaSigningQueueByKey,
10786
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
10762
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: record.roleLocalMaterialRef.materialActivation }),
10787
10763
  walletId: toWalletId(args.walletId),
10788
10764
  enabled: true,
10789
10765
  task: async () => await this.restorePasskeyEcdsaRecord({
@@ -11990,11 +11966,7 @@ var WorkerTransport = class {
11990
11966
  return worker;
11991
11967
  }
11992
11968
  connectPresignAuthorityChannel(request) {
11993
- if (request.type === EcdsaPresignClientRequestType.ListAvailable && this.presignAuthorityKind === null) {
11994
- this.connectDerivationPresignChannel(this.getOrCreateWorker("ecdsaPresignClient"), "role_local_derivation_handle");
11995
- return;
11996
- }
11997
- if (request.type !== EcdsaPresignClientRequestType.SessionInit) return;
11969
+ if (request.type !== EcdsaPresignClientRequestType.ListAvailable && request.type !== EcdsaPresignClientRequestType.SessionInit) return;
11998
11970
  const presignWorker = this.getOrCreateWorker("ecdsaPresignClient");
11999
11971
  const authorityKind = this.parsePresignAuthorityKind(request.payload);
12000
11972
  switch (authorityKind) {
@@ -13638,7 +13610,7 @@ async function readPersistedAvailableSigningLanes$1(deps, args, ecdsaChainTarget
13638
13610
  ...args,
13639
13611
  ecdsaChainTargets,
13640
13612
  requiredEcdsaCapability: "sign"
13641
- }, new WalletSessionStatusReadScope());
13613
+ }, new WalletSessionStatusReadScope(), "all");
13642
13614
  }
13643
13615
  /**
13644
13616
  * Human operational read: lanes for one exact owner. The auth-method
@@ -13653,7 +13625,7 @@ async function readOwnerScopedAvailableSigningLanes(deps, args, statusReads) {
13653
13625
  ecdsaChainTargets: args.ecdsaChainTargets,
13654
13626
  requiredEcdsaCapability: args.requiredEcdsaCapability,
13655
13627
  ...args.nowMs !== void 0 ? { nowMs: args.nowMs } : {}
13656
- }, statusReads);
13628
+ }, statusReads, "all");
13657
13629
  }
13658
13630
  async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultEcdsaChainTargets) {
13659
13631
  if (args.curve === "ecdsa") {
@@ -13664,7 +13636,7 @@ async function readPersistedAvailableSigningLanesForSigning(deps, args, defaultE
13664
13636
  ...availableLanesArgs,
13665
13637
  ecdsaChainTargets: [...ecdsaChainTargetsByKey.values()],
13666
13638
  requiredEcdsaCapability: "sign"
13667
- }, new WalletSessionStatusReadScope());
13639
+ }, new WalletSessionStatusReadScope(), "ecdsa");
13668
13640
  }
13669
13641
  const { curve, ...availableLanesArgs } = args;
13670
13642
  return await readPersistedAvailableSigningLanes$1(deps, availableLanesArgs, []);
@@ -13689,17 +13661,18 @@ function filterEmailOtpCompanionEcdsaRecords(records, chainTargets) {
13689
13661
  }
13690
13662
  return matchingRecords;
13691
13663
  }
13692
- async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads) {
13664
+ async function readPersistedAvailableSigningLanesForTargets(deps, args, statusReads, curves) {
13693
13665
  const walletId = String(toWalletId(args.walletId)).trim();
13694
13666
  return await readAvailableSigningLanes({
13695
13667
  ...args,
13696
13668
  walletId,
13697
13669
  ecdsaChainTargets: args.ecdsaChainTargets
13698
13670
  }, {
13699
- 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,
13700
13672
  isPublicCapabilityActive: deps.isEd25519YaoPublicCapabilityActive,
13701
- readActiveWalletSessionAuthorization: deps.readActiveWalletSessionAuthorization?.bind(null, statusReads),
13673
+ readActiveWalletSessionAuthorization: curves === "all" ? deps.readActiveWalletSessionAuthorization?.bind(null, statusReads) : void 0,
13702
13674
  listSealedRecordsForWallet: async ({ walletId: recordWalletId, filter }) => {
13675
+ if (curves === "ecdsa") return [];
13703
13676
  const listByAuthMethod = async (authMethod) => {
13704
13677
  const ed25519Records = await listExactSealedSessionsForWallet({
13705
13678
  walletId: recordWalletId,
@@ -15964,7 +15937,7 @@ function createEcdsaLoginPrefillClientSigningMaterialSource(args) {
15964
15937
  destroyClientPresignature: thresholdEcdsaRoleLocalDestroyPresignatureWasm,
15965
15938
  reserveClientPresignature: thresholdEcdsaRoleLocalReservePresignatureWasm,
15966
15939
  commitClientPresignature: thresholdEcdsaRoleLocalCommitPresignatureWasm,
15967
- listAvailableClientPresignatures: thresholdEcdsaRoleLocalListAvailablePresignaturesWasm,
15940
+ listAvailableClientPresignatures: thresholdEcdsaListAvailablePresignaturesWasm.bind(void 0, "role_local_derivation_handle"),
15968
15941
  computeSignatureShareFromPresignatureHandle: thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm
15969
15942
  };
15970
15943
  }
@@ -16767,7 +16740,7 @@ function createRecoveryPublicDeps(args) {
16767
16740
  }, {
16768
16741
  ...completeConfiguredEcdsaTargets(availableLanesArgs),
16769
16742
  requiredEcdsaCapability: "export_keys"
16770
- }, new WalletSessionStatusReadScope()),
16743
+ }, new WalletSessionStatusReadScope(), "all"),
16771
16744
  readOwnerScopedAvailableSigningLanesForTargets: async (availableLanesArgs) => await readOwnerScopedAvailableSigningLanes({
16772
16745
  activeWalletAuthorityEcdsaRuntimeReadPorts: browserExactWalletSessionReadPorts,
16773
16746
  ed25519YaoPublicCapabilityLanes: args.ed25519YaoPublicCapabilityLanes,
@@ -19008,12 +18981,9 @@ function requireEmailOtpEcdsaCustodySigner(continuity, walletId, keyHandle) {
19008
18981
  const first = continuity.signers[0];
19009
18982
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
19010
18983
  if (first.walletKey.walletId !== walletId || first.walletKey.keyHandle !== keyHandle) throw new Error("Email OTP ECDSA custody continuity changed the requested wallet key");
19011
- 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");
19012
18985
  return first;
19013
18986
  }
19014
- function sameEmailOtpRuntimePolicyScope(left, right) {
19015
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
19016
- }
19017
18987
  function nonEmptyEmailOtpEcdsaChainTargets(continuity) {
19018
18988
  const [first, ...rest] = continuity.signers;
19019
18989
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
@@ -19224,7 +19194,7 @@ async function provisionEmailOtpExistingKeySessions(args) {
19224
19194
  },
19225
19195
  authorization: additionalAuthorization
19226
19196
  };
19227
- 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)))];
19228
19198
  if (!primaryBootstrap) throw new Error("Email OTP ECDSA activation did not return a primary warm session");
19229
19199
  return bootstraps;
19230
19200
  }
@@ -19246,9 +19216,6 @@ async function provisionEmailOtpExistingKeySessionForTarget(context, chainTarget
19246
19216
  authorization: context.authorization
19247
19217
  }));
19248
19218
  }
19249
- async function provisionEmailOtpAdditionalExistingKeySessionForTarget(context, chainTarget) {
19250
- return await provisionEmailOtpExistingKeySessionForTarget(context, chainTarget);
19251
- }
19252
19219
  async function provisionEmailOtpExplicitExportSession(args) {
19253
19220
  return await args.ports.provisionEmailOtpEcdsaExplicitExportSession(buildEmailOtpExplicitExportEcdsaActivation({
19254
19221
  relayerUrl: args.relayerUrl,
@@ -19790,7 +19757,7 @@ async function restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecord(args)
19790
19757
  if (sealedRecord.authMethod !== "email_otp" || sealedRecord.curve !== "ecdsa") return null;
19791
19758
  const materialActivation = sealedRecord.roleLocalMaterialRef.materialActivation;
19792
19759
  return await args.withThresholdEcdsaSigningQueue({
19793
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation }),
19760
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
19794
19761
  walletId: toWalletId(sealedRecord.walletId),
19795
19762
  enabled: true,
19796
19763
  task: async () => await restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecordInQueue(args)
@@ -20733,8 +20700,8 @@ function warmSessionMaterialTarget(target) {
20733
20700
  };
20734
20701
  }
20735
20702
  //#endregion
20736
- //#region src/core/signingEngine/session/emailOtp/coordinatorRuntime.ts
20737
- var EmailOtpWalletSessionRuntime = class {
20703
+ //#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
20704
+ var EmailOtpWalletSessionCoordinator = class {
20738
20705
  constructor(deps) {
20739
20706
  this.sealedRefreshDiagnosticLogAtMsByKey = /* @__PURE__ */ new Map();
20740
20707
  this.runtimeConfig = new EmailOtpRuntimeConfig({
@@ -20853,49 +20820,6 @@ var EmailOtpWalletSessionRuntime = class {
20853
20820
  }
20854
20821
  };
20855
20822
  //#endregion
20856
- //#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
20857
- var EmailOtpWalletSessionCoordinator = class {
20858
- constructor(deps) {
20859
- this.runtime = new EmailOtpWalletSessionRuntime(deps);
20860
- }
20861
- persistEcdsaSessionForRefresh(args) {
20862
- return this.runtime.persistEcdsaSessionForRefresh(args);
20863
- }
20864
- discoverPersistedSessionsForWallet(args) {
20865
- return this.runtime.discoverPersistedSessionsForWallet(args);
20866
- }
20867
- restorePersistedSessionForSigning(args) {
20868
- return this.runtime.restorePersistedSessionForSigning(args);
20869
- }
20870
- readWarmSessionStatusOnly(target) {
20871
- return this.runtime.readWarmSessionStatusOnly(target);
20872
- }
20873
- consumeWarmSessionUses(args) {
20874
- return this.runtime.consumeWarmSessionUses(args);
20875
- }
20876
- clearVolatileWarmSessionMaterial(target) {
20877
- return this.runtime.clearVolatileWarmSessionMaterial(target);
20878
- }
20879
- async requestTransactionSigningChallenge(args) {
20880
- return await this.runtime.requestTransactionSigningChallenge(args);
20881
- }
20882
- async requestExportChallenge(args) {
20883
- return await this.runtime.requestExportChallenge(args);
20884
- }
20885
- exportEcdsaKeyWithDurableAuthorization(args) {
20886
- return this.runtime.exportEcdsaKeyWithDurableAuthorization(args);
20887
- }
20888
- exportEd25519YaoSeedWithFreshEmailOtpLane(args) {
20889
- return this.runtime.exportEd25519YaoSeedWithFreshEmailOtpLane(args);
20890
- }
20891
- loginWithEcdsaCapabilityForSigning(args) {
20892
- return this.runtime.loginWithEcdsaCapabilityForSigning(args);
20893
- }
20894
- loginWithEcdsaCapabilityInternal(args) {
20895
- return this.runtime.loginWithEcdsaCapabilityInternal(args);
20896
- }
20897
- };
20898
- //#endregion
20899
20823
  //#region src/core/signingEngine/assembly/ports/stepUpRuntime.ts
20900
20824
  function createStepUpRuntime(args) {
20901
20825
  const emailOtpSessions = new EmailOtpWalletSessionCoordinator({
@@ -23060,18 +22984,15 @@ var BrowserSigningSurface = class {
23060
22984
  const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
23061
22985
  const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
23062
22986
  if (existingRehydration) {
23063
- const reboundSubject = await existingRehydration;
23064
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
22987
+ const rebound = await existingRehydration;
22988
+ const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(rebound.subject);
23065
22989
  if (rehydrated) return rehydrated;
23066
22990
  throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
23067
22991
  }
23068
22992
  const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
23069
22993
  this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
23070
22994
  try {
23071
- const reboundSubject = await rehydration;
23072
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
23073
- if (rehydrated) return rehydrated;
23074
- throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
22995
+ return (await rehydration).material;
23075
22996
  } finally {
23076
22997
  if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
23077
22998
  }
@@ -24397,7 +24318,14 @@ var BrowserSigningSurface = class {
24397
24318
  passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
24398
24319
  } : { kind: "unavailable" }
24399
24320
  });
24400
- 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
+ }
24401
24329
  if (liveHydration.kind === "rehydrated") {
24402
24330
  if (!warmSessionClaim.ok) {
24403
24331
  liveHydration.activeClient.dispose();
@@ -24430,8 +24358,12 @@ var BrowserSigningSurface = class {
24430
24358
  subject,
24431
24359
  walletSessionState
24432
24360
  });
24433
- if (!await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject)) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
24434
- 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
+ };
24435
24367
  } catch (error) {
24436
24368
  liveHydration.activeClient.dispose();
24437
24369
  throw error;
@@ -24578,7 +24510,7 @@ var BrowserSigningSurface = class {
24578
24510
  async withExactEd25519MaterialOwner(args) {
24579
24511
  return await withThresholdEd25519CommitQueue({
24580
24512
  queueByKey: this.thresholdEd25519CommitQueueByKey,
24581
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.materialActivation }),
24513
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.materialActivation }),
24582
24514
  nearAccountId: args.nearAccountId,
24583
24515
  enabled: true,
24584
24516
  task: args.task
@@ -24877,7 +24809,7 @@ var BrowserSigningSurface = class {
24877
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");
24878
24810
  return await withThresholdEd25519CommitQueue({
24879
24811
  queueByKey: this.thresholdEd25519CommitQueueByKey,
24880
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.metadata.materialActivation }),
24812
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation: args.metadata.materialActivation }),
24881
24813
  nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
24882
24814
  enabled: args.commitQueue === "acquire",
24883
24815
  task: async () => {
@@ -25097,7 +25029,7 @@ var BrowserSigningSurface = class {
25097
25029
  this.ed25519YaoPageLifecycleOwner.dispose();
25098
25030
  }
25099
25031
  clearThresholdEcdsaSigningQueue() {
25100
- clearThresholdEcdsaSigningQueue(this.thresholdEcdsaSigningQueueByKey);
25032
+ clearThresholdCommitQueue(this.thresholdEcdsaSigningQueueByKey);
25101
25033
  }
25102
25034
  async clearLinkedEcdsaHolderMaterials() {
25103
25035
  await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
@@ -26281,7 +26213,7 @@ function warnIfSameOriginWallet(walletOrigin) {
26281
26213
  }
26282
26214
  async function createWalletIframeRouter(args) {
26283
26215
  warnIfSameOriginWallet(args.walletOrigin);
26284
- const { WalletIframeRouter } = await import("./router-C5lF_J_u.js");
26216
+ const { WalletIframeRouter } = await import("./router-B4ZWFy9E.js");
26285
26217
  const signingSessionPersistenceMode = args.configs.signing.sessionPersistenceMode;
26286
26218
  return new WalletIframeRouter({
26287
26219
  walletOrigin: args.walletOrigin,
@@ -26587,7 +26519,7 @@ function createSigningRuntime(deps) {
26587
26519
  });
26588
26520
  const warmSessions = { hydrateSigningSession: async (input) => (await getWarmSessions()).hydrateSigningSession(input) };
26589
26521
  const getRegistrationAccounts = memoizeService(async () => {
26590
- const { createRegistrationAccountsService } = await import("./registrationAccounts-CKku_Sgy.js");
26522
+ const { createRegistrationAccountsService } = await import("./registrationAccounts-DmWPzf3T.js");
26591
26523
  return createRegistrationAccountsService(deps.registration.accountLifecycle);
26592
26524
  });
26593
26525
  const registrationAccounts = {
@@ -26611,7 +26543,7 @@ function createSigningRuntime(deps) {
26611
26543
  rollbackWalletEd25519SignerRegistration: async (receipt) => (await getRegistrationAccounts()).rollbackWalletEd25519SignerRegistration(receipt)
26612
26544
  };
26613
26545
  const getEcdsaWalletRecords = memoizeService(async () => {
26614
- const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-Cz4m6bIz.js");
26546
+ const { createEcdsaWalletRecordsService } = await import("./ecdsaWalletRecords-D42rtA9z.js");
26615
26547
  return createEcdsaWalletRecordsService({ accountLifecycle: deps.registration.accountLifecycle });
26616
26548
  });
26617
26549
  const ecdsaWalletRecords = {
@@ -26622,32 +26554,32 @@ function createSigningRuntime(deps) {
26622
26554
  storeWalletEmailOtpEcdsaRegistrationData: async (input) => (await getEcdsaWalletRecords()).storeWalletEmailOtpEcdsaRegistrationData(input)
26623
26555
  };
26624
26556
  const nearSigning = { signNear: async (request) => {
26625
- const { signNear } = await import("./signNear-Bblwn2kT.js").then((n) => n.n);
26557
+ const { signNear } = await import("./signNear-Bmb2fj_a.js").then((n) => n.n);
26626
26558
  return signNear(deps.signing.near.getDeps(), request);
26627
26559
  } };
26628
26560
  const evmFamilySigning = {
26629
26561
  signEvmFamily: async (args) => {
26630
- const { signEvmFamily } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26562
+ const { signEvmFamily } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26631
26563
  return signEvmFamily(deps.signing.evmFamily.getDeps(), args);
26632
26564
  },
26633
26565
  reportTempoBroadcastAccepted: async (args) => {
26634
- const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26566
+ const { reportTempoBroadcastAccepted } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26635
26567
  return reportTempoBroadcastAccepted(deps.signing.evmFamily.getDeps(), args);
26636
26568
  },
26637
26569
  reportTempoBroadcastRejected: async (args) => {
26638
- const { reportTempoBroadcastRejected } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26570
+ const { reportTempoBroadcastRejected } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26639
26571
  return reportTempoBroadcastRejected(deps.signing.evmFamily.getDeps(), args);
26640
26572
  },
26641
26573
  reportTempoFinalized: async (args) => {
26642
- const { reportTempoFinalized } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26574
+ const { reportTempoFinalized } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26643
26575
  return reportTempoFinalized(deps.signing.evmFamily.getDeps(), args);
26644
26576
  },
26645
26577
  reportTempoDroppedOrReplaced: async (args) => {
26646
- const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26578
+ const { reportTempoDroppedOrReplaced } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26647
26579
  return reportTempoDroppedOrReplaced(deps.signing.evmFamily.getDeps(), args);
26648
26580
  },
26649
26581
  reconcileTempoNonceLane: async (args) => {
26650
- const { reconcileTempoNonceLane } = await import("./signEvmFamily-e4IWWsZs.js").then((n) => n.s);
26582
+ const { reconcileTempoNonceLane } = await import("./signEvmFamily-C3C97Th-.js").then((n) => n.s);
26651
26583
  return reconcileTempoNonceLane(deps.signing.evmFamily.getDeps(), args);
26652
26584
  }
26653
26585
  };
@@ -26699,6 +26631,30 @@ function createBrowserSigningRuntime(args) {
26699
26631
  });
26700
26632
  }
26701
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
26702
26658
  //#region src/SeamsWeb/assembly/createBrowserSigningStores.ts
26703
26659
  function createBrowserSigningStores(indexedDB) {
26704
26660
  return {
@@ -26745,6 +26701,58 @@ function initializeBrowserSigningRuntime(args) {
26745
26701
  if (!(args.config.wallet.mode === "iframe" && !__isWalletIframeHostMode())) args.userPreferencesManager.initFromIndexedDB().catch(() => void 0);
26746
26702
  }
26747
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
26748
26756
  //#region src/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.ts
26749
26757
  function assertNeverNormalSigning(value) {
26750
26758
  throw new Error(`Unexpected Router A/B normal-signing config branch: ${String(value)}`);
@@ -27195,7 +27203,7 @@ async function collectFreshLocalPasskeyUnlockCredential(args) {
27195
27203
  //#endregion
27196
27204
  //#region src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.ts
27197
27205
  const ecdsaCapabilityManifestStore$1 = new IndexedDbEcdsaCapabilityManifestStore();
27198
- async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27206
+ async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27199
27207
  const resolved = await ecdsaCapabilityManifestStore$1.listActiveWalletCapabilitySubjects(walletId);
27200
27208
  if (resolved.kind === "persistence_unavailable") return {
27201
27209
  kind: "failed",
@@ -27218,9 +27226,6 @@ async function listEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27218
27226
  subjects
27219
27227
  };
27220
27228
  }
27221
- async function resolveEvmFamilyEcdsaWalletUnlockSubjects(walletId) {
27222
- return await listEvmFamilyEcdsaWalletUnlockSubjects(walletId);
27223
- }
27224
27229
  async function resolveEcdsaActivationJournalSelectors(walletId) {
27225
27230
  return await ecdsaCapabilityManifestStore$1.listWalletActivationJournalSelectors(walletId);
27226
27231
  }
@@ -28816,12 +28821,21 @@ async function activateLinkedDeviceSignerRuntimesAfterLink(args) {
28816
28821
  ...providerIdentity ? { providerIdentity } : {}
28817
28822
  });
28818
28823
  const ecdsaMaterial = linkedDeviceEcdsaMaterial(openedMaterials);
28819
- if (ecdsaMaterial) await activateLinkedDeviceEcdsaHolderRuntime({
28820
- context: args.context,
28821
- selection,
28822
- factorAuthority,
28823
- material: ecdsaMaterial
28824
- });
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
+ }
28825
28839
  const ed25519Material = linkedDeviceEd25519Material(openedMaterials);
28826
28840
  if (ed25519Material) {
28827
28841
  const session = await linkedDeviceEd25519SessionAfterLink({
@@ -32111,7 +32125,7 @@ async function logout(context) {
32111
32125
  }
32112
32126
  async function resumeNearAfterSuccessfulUnlock(args) {
32113
32127
  try {
32114
- await (await import("./registration-BZDzDv91.js").then((n) => n.o)).resumeNearRegistrationAfterUnlock(args);
32128
+ await (await import("./registration-Ct_7LdGf.js").then((n) => n.o)).resumeNearRegistrationAfterUnlock(args);
32115
32129
  } catch (error) {
32116
32130
  console.warn("[login] NEAR continuation could not start", error instanceof Error ? error.message : "module unavailable");
32117
32131
  } finally {
@@ -32235,7 +32249,7 @@ async function getRecentUnlocksDomain(deps) {
32235
32249
  }
32236
32250
  return await getRecentUnlocks(deps.getContext());
32237
32251
  }
32238
- async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args) {
32252
+ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args, statusReads) {
32239
32253
  if (deps.walletIframe.shouldUseWalletIframe()) return await (await deps.walletIframe.requireRouter(args.walletSession.walletId)).prefillRouterAbEcdsaDerivationPresignaturePool({
32240
32254
  walletSession: args.walletSession,
32241
32255
  options: {
@@ -32248,7 +32262,7 @@ async function prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps, args)
32248
32262
  walletId,
32249
32263
  chainTarget: args.chainTarget,
32250
32264
  ...typeof args.waitForPoolReady === "boolean" ? { waitForPoolReady: args.waitForPoolReady } : {}
32251
- }, new WalletSessionStatusReadScope());
32265
+ }, statusReads);
32252
32266
  }
32253
32267
  //#endregion
32254
32268
  //#region src/SeamsWeb/publicApi/transactionReview.ts
@@ -32266,7 +32280,7 @@ function createAuthCapability(deps) {
32266
32280
  getWalletSession: async (walletId) => await getWalletSessionDomain(deps.getWalletAuthDeps(), walletId),
32267
32281
  getRecentUnlocks: async () => await getRecentUnlocksDomain(deps.getWalletAuthDeps()),
32268
32282
  hasPasskeyCredential: async (walletId) => await hasPasskeyCredentialDomain(deps.getWalletAuthDeps(), walletId),
32269
- prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args),
32283
+ prefillRouterAbEcdsaDerivationPresignaturePool: async (args) => await prefillRouterAbEcdsaDerivationPresignaturePoolDomain(deps.getWalletAuthDeps(), args, new WalletSessionStatusReadScope()),
32270
32284
  requestEmailOtpChallenge: deps.domain.requestEmailOtpChallenge,
32271
32285
  requestEmailOtpSigningSessionChallenge: deps.domain.requestEmailOtpSigningSessionChallenge,
32272
32286
  refreshEmailOtpSigningSession: deps.domain.refreshEmailOtpSigningSession,
@@ -32692,7 +32706,7 @@ async function createPollingSubscriptionV1(input) {
32692
32706
  function parseSessionMutationEnvelopeV1(raw) {
32693
32707
  const record = asPlainDeviceLinkingResponse(raw);
32694
32708
  if (record === null) throw new Error("linked-device response must be an object");
32695
- 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");
32696
32710
  if (record.ok !== true) throw new Error("linked-device response outcome is invalid");
32697
32711
  switch (record.outcome) {
32698
32712
  case "applied": return {
@@ -32711,7 +32725,7 @@ function parseSessionMutationEnvelopeV1(raw) {
32711
32725
  function parseTargetCredentialRegistrationResponseV1(raw) {
32712
32726
  const record = asPlainDeviceLinkingResponse(raw);
32713
32727
  if (record === null) throw new Error("linked-device target credential response must be an object");
32714
- 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");
32715
32729
  if (record.ok !== true) throw new Error("linked-device target credential response outcome is invalid");
32716
32730
  switch (record.outcome) {
32717
32731
  case "applied": return parseTargetCredentialRegistrationResponseBranch(record, "applied");
@@ -32729,20 +32743,20 @@ function parseTargetCredentialRegistrationResponseBranch(record, outcome) {
32729
32743
  function parseHttpFailureMessageV1(response) {
32730
32744
  const record = asPlainDeviceLinkingResponse(response.body);
32731
32745
  if (record === null || record.ok !== false) return `linked-device request failed with HTTP ${response.status}`;
32732
- 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}`;
32733
- 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}`;
32734
32748
  switch (record.outcome) {
32735
32749
  case "conflict":
32736
- 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";
32737
32751
  break;
32738
32752
  case "expired":
32739
- 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";
32740
32754
  break;
32741
32755
  case "invalid_state":
32742
- 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";
32743
32757
  break;
32744
32758
  case "integrity_error":
32745
- 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";
32746
32760
  break;
32747
32761
  default: break;
32748
32762
  }
@@ -32760,11 +32774,9 @@ function isPlainDeviceLinkingResponse(value) {
32760
32774
  return false;
32761
32775
  }
32762
32776
  }
32763
- function hasExactKeys$1(record, expectedKeys) {
32777
+ function hasExactResponseKeys(record, expectedKeys) {
32764
32778
  try {
32765
- const actualKeys = Object.keys(record).sort();
32766
- const expected = [...expectedKeys].sort();
32767
- return actualKeys.length === expected.length && actualKeys.every((key, index) => key === expected[index]);
32779
+ return hasExactKeys(record, expectedKeys);
32768
32780
  } catch {
32769
32781
  return false;
32770
32782
  }
@@ -33604,11 +33616,6 @@ function isPlainDeviceLinkingResumeRecord(value) {
33604
33616
  return false;
33605
33617
  }
33606
33618
  }
33607
- function hasExactKeys(record, expectedKeys) {
33608
- const actual = Object.keys(record).sort();
33609
- const expected = [...expectedKeys].sort();
33610
- return actual.length === expected.length && actual.every((key, index) => key === expected[index]);
33611
- }
33612
33619
  function sameSignerActivations(left, right) {
33613
33620
  const leftBytes = encodeWalletSignerActivationSetV1(left);
33614
33621
  const rightBytes = encodeWalletSignerActivationSetV1(right);
@@ -37932,7 +37939,7 @@ function assertOneEcdsaCustodyIdentity(continuity) {
37932
37939
  if (continuity.state === "absent") return null;
37933
37940
  const first = continuity.signers[0];
37934
37941
  const chainTargets = /* @__PURE__ */ new Set();
37935
- 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");
37936
37943
  for (const signer of continuity.signers) {
37937
37944
  const key = thresholdEcdsaChainTargetKey(signer.chainTarget);
37938
37945
  if (chainTargets.has(key)) throw new Error("sync-account returned duplicate ECDSA custody chain targets");
@@ -38753,7 +38760,10 @@ async function executeEvmFamilyTransactionLifecycle(args) {
38753
38760
  }
38754
38761
  });
38755
38762
  const rawTxHex = assertRawTxHexOrThrow(signedResult.rawTxHex);
38756
- args.lifecycle.onBroadcastStarted?.(signedResult);
38763
+ args.lifecycle.onBroadcastStarted({
38764
+ walletSession: args.input.walletSession,
38765
+ signedResult
38766
+ });
38757
38767
  txHash = normalizeTxHashOrThrow(await client.request({
38758
38768
  method: "eth_sendRawTransaction",
38759
38769
  params: [rawTxHex]
@@ -39099,6 +39109,11 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
39099
39109
  ...args,
39100
39110
  chainTarget: resolveTempoChainTarget(deps.configs.network.chains, args.chainTarget)
39101
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
+ };
39102
39117
  const reportBroadcastAccepted = async (args) => {
39103
39118
  const walletIframe = deps.getWalletIframe();
39104
39119
  const walletId = toWalletId(args.walletSession.walletId);
@@ -39214,6 +39229,7 @@ function createTempoSignerCapability(deps, transactionDispatch = { kind: "ordina
39214
39229
  }
39215
39230
  };
39216
39231
  const lifecycle = {
39232
+ onBroadcastStarted,
39217
39233
  signEvmFamily,
39218
39234
  reportBroadcastAccepted,
39219
39235
  reportBroadcastRejected,
@@ -39643,11 +39659,15 @@ function createDeviceLinkingOrdinaryMaterialWorkerPortV1(send) {
39643
39659
  }
39644
39660
  function parseOrdinaryResealedExportRootRecordV1(value) {
39645
39661
  if (value === null) return null;
39646
- 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");
39647
39663
  return { envelope: parsePasskeyCustodyEnvelopeRecord(value.envelope) };
39648
39664
  }
39649
39665
  function parsePreparationResult(value) {
39650
- 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");
39651
39671
  if (value.kind !== "device_linking_ordinary_signer_material_preparation_v1") throw new Error("ordinary material preparation result kind is invalid");
39652
39672
  return {
39653
39673
  kind: "device_linking_ordinary_signer_material_preparation_v1",
@@ -39669,7 +39689,11 @@ function parsePreparationTuple(value) {
39669
39689
  function parseRecipientRequirementTuple(value) {
39670
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");
39671
39691
  const requirements = value.map((entry, index) => {
39672
- 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`);
39673
39697
  if (entry.kind !== "ordinary_signer_material_recipient_requirement_v1") throw new Error("ordinary recipient requirement kind is invalid");
39674
39698
  if (entry.keyFamily !== "ed25519" && entry.keyFamily !== "ecdsa_secp256k1") throw new Error("ordinary recipient requirement key family is invalid");
39675
39699
  const walletKeyId = parseWalletKey(entry.walletKeyId);
@@ -39687,7 +39711,12 @@ function parseRecipientRequirementTuple(value) {
39687
39711
  function parseRecipientRequestTuple(value) {
39688
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");
39689
39713
  const requests = value.map((entry) => {
39690
- if (isOrdinaryEd25519RecipientRequestRecordV1(entry)) {
39714
+ if (hasExactKeys(entry, [
39715
+ "kind",
39716
+ "keyFamily",
39717
+ "walletKeyId",
39718
+ "recipientPublicKeyB64u"
39719
+ ])) {
39691
39720
  if (entry.kind !== "ordinary_ed25519_signer_material_recipient_request_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient request kind is invalid");
39692
39721
  return {
39693
39722
  kind: "ordinary_ed25519_signer_material_recipient_request_v1",
@@ -39696,7 +39725,12 @@ function parseRecipientRequestTuple(value) {
39696
39725
  recipientPublicKeyB64u: parseB64u(entry.recipientPublicKeyB64u, "Ed25519 recipient public key")
39697
39726
  };
39698
39727
  }
39699
- if (isOrdinaryEcdsaRecipientRequestRecordV1(entry)) {
39728
+ if (hasExactKeys(entry, [
39729
+ "kind",
39730
+ "keyFamily",
39731
+ "walletKeyId",
39732
+ "clientEphemeralPublicKey"
39733
+ ])) {
39700
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");
39701
39735
  return {
39702
39736
  kind: "ordinary_ecdsa_signer_material_recipient_request_v1",
@@ -39713,7 +39747,11 @@ function parseRecipientRequestTuple(value) {
39713
39747
  return [first, ...requests.slice(1)];
39714
39748
  }
39715
39749
  function parseRecipientPreparationResult(value) {
39716
- 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");
39717
39755
  if (value.kind !== "device_linking_ordinary_signer_material_recipient_preparation_v1") throw new Error("ordinary recipient preparation result kind is invalid");
39718
39756
  const recipientRequests = parseRecipientRequestTuple(value.recipientRequests);
39719
39757
  const recipientInputs = parseRecipientInputTuple(value.recipientInputs);
@@ -39726,7 +39764,12 @@ function parseRecipientPreparationResult(value) {
39726
39764
  function parseRecipientInputTuple(value) {
39727
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");
39728
39766
  const inputs = value.map((entry) => {
39729
- if (isOrdinaryEd25519RecipientInputRecordV1(entry)) {
39767
+ if (hasExactKeys(entry, [
39768
+ "kind",
39769
+ "keyFamily",
39770
+ "walletKeyId",
39771
+ "recipientPrivateKey"
39772
+ ])) {
39730
39773
  if (entry.kind !== "ordinary_ed25519_signer_material_recipient_input_v1" || entry.keyFamily !== "ed25519") throw new Error("ordinary Ed25519 recipient input kind is invalid");
39731
39774
  return {
39732
39775
  kind: "ordinary_ed25519_signer_material_recipient_input_v1",
@@ -39735,7 +39778,12 @@ function parseRecipientInputTuple(value) {
39735
39778
  recipientPrivateKey: parsePrivateKeyBuffer(entry.recipientPrivateKey, "Ed25519 recipient private key")
39736
39779
  };
39737
39780
  }
39738
- if (isOrdinaryEcdsaRecipientInputRecordV1(entry)) {
39781
+ if (hasExactKeys(entry, [
39782
+ "kind",
39783
+ "keyFamily",
39784
+ "walletKeyId",
39785
+ "clientEphemeralPrivateKey"
39786
+ ])) {
39739
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");
39740
39788
  return {
39741
39789
  kind: "ordinary_ecdsa_signer_material_recipient_input_v1",
@@ -39783,7 +39831,13 @@ function parsePreparation(value) {
39783
39831
  return parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1(value);
39784
39832
  }
39785
39833
  function parseTargetFactorBindingV1(value) {
39786
- if (isOrdinaryPasskeyTargetFactorRecordV1(value)) {
39834
+ if (hasExactKeys(value, [
39835
+ "kind",
39836
+ "walletAuthMethodId",
39837
+ "verificationDigestB64u",
39838
+ "rpId",
39839
+ "credentialIdB64u"
39840
+ ])) {
39787
39841
  if (value.kind !== "passkey") throw new Error("ordinary material target factor kind is unsupported");
39788
39842
  const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
39789
39843
  if (!authMethod.ok) throw new Error(authMethod.error.message);
@@ -39796,7 +39850,13 @@ function parseTargetFactorBindingV1(value) {
39796
39850
  credentialIdB64u: parseB64u(value.credentialIdB64u, "ordinary target factor credentialIdB64u")
39797
39851
  };
39798
39852
  }
39799
- if (isOrdinaryEmailOtpTargetFactorRecordV1(value)) {
39853
+ if (hasExactKeys(value, [
39854
+ "kind",
39855
+ "walletAuthMethodId",
39856
+ "verificationDigestB64u",
39857
+ "emailHashHex",
39858
+ "registrationAuthorityId"
39859
+ ])) {
39800
39860
  if (value.kind !== "email_otp") throw new Error("ordinary material target factor kind is unsupported");
39801
39861
  const authMethod = parseWalletAuthMethodId(value.walletAuthMethodId);
39802
39862
  if (!authMethod.ok) throw new Error(authMethod.error.message);
@@ -39814,7 +39874,13 @@ function parseTargetFactorBindingV1(value) {
39814
39874
  throw new Error("ordinary material target factor kind is unsupported");
39815
39875
  }
39816
39876
  function parseWalletAuthorityExportRootRecordV1(value) {
39817
- 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");
39818
39884
  if (value.kind !== "wallet_authority_export_root_v1") throw new Error("ordinary material export-root record kind is invalid");
39819
39885
  const authorityId = parseWalletAuthorityId(value.authorityId);
39820
39886
  if (!authorityId.ok) throw new Error(authorityId.error.message);
@@ -39831,7 +39897,11 @@ function parseWalletAuthorityExportRootRecordV1(value) {
39831
39897
  };
39832
39898
  }
39833
39899
  function parseSealedLocalAuthorityMaterialSetV1(value) {
39834
- 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");
39835
39905
  if (!Array.isArray(value.signerMaterials) || value.signerMaterials.length === 0) throw new Error("ordinary material worker returned an invalid sealed record set");
39836
39906
  const signerMaterials = value.signerMaterials.map((entry) => parseWalletAuthorityLinkedSignerMaterialRecordV1(entry));
39837
39907
  const firstSignerMaterial = signerMaterials[0];
@@ -39857,62 +39927,8 @@ function parseB64u(value, label) {
39857
39927
  decoded.fill(0);
39858
39928
  return encoded;
39859
39929
  }
39860
- function isOrdinaryResealedExportRootRecordV1(value) {
39861
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "envelope";
39862
- }
39863
- function isOrdinaryMaterialPreparationResultRecordV1(value) {
39864
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|preparations|targetFactor";
39865
- }
39866
- function isOrdinaryRecipientRequirementRecordV1(value) {
39867
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|walletKeyId";
39868
- }
39869
- function isOrdinaryEd25519RecipientRequestRecordV1(value) {
39870
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPublicKeyB64u|walletKeyId";
39871
- }
39872
- function isOrdinaryEcdsaRecipientRequestRecordV1(value) {
39873
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPublicKey|keyFamily|kind|walletKeyId";
39874
- }
39875
- function isOrdinaryRecipientPreparationResultRecordV1(value) {
39876
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "kind|recipientInputs|recipientRequests";
39877
- }
39878
- function isOrdinaryEd25519RecipientInputRecordV1(value) {
39879
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "keyFamily|kind|recipientPrivateKey|walletKeyId";
39880
- }
39881
- function isOrdinaryEcdsaRecipientInputRecordV1(value) {
39882
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "clientEphemeralPrivateKey|keyFamily|kind|walletKeyId";
39883
- }
39884
- function isOrdinaryPasskeyTargetFactorRecordV1(value) {
39885
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "credentialIdB64u|kind|rpId|verificationDigestB64u|walletAuthMethodId";
39886
- }
39887
- function isOrdinaryEmailOtpTargetFactorRecordV1(value) {
39888
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "emailHashHex|kind|registrationAuthorityId|verificationDigestB64u|walletAuthMethodId";
39889
- }
39890
- function isWalletAuthorityExportRootRecordV1(value) {
39891
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "authorityId|envelope|kind|walletAuthMethodId|walletKeyId";
39892
- }
39893
- function isSealedLocalAuthorityMaterialSetRecordV1(value) {
39894
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "exportRoot|installedRecordSetDigestB64u|signerMaterials";
39895
- }
39896
39930
  //#endregion
39897
39931
  //#region src/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.ts
39898
- function isDeviceLinkingKeyHandleRecordV1(value) {
39899
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "handleId|kind";
39900
- }
39901
- function isDeviceLinkingKeyCreateResultRecordV1(value) {
39902
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "deliveryRecipientPublicKey65B64u|devicePublicKeyB64u|handleId|linkPublicKeyB64u";
39903
- }
39904
- function isDeviceLinkingEmailOtpFactorReleaseResultRecordV1(value) {
39905
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "factorSecret|kind|verificationGrant";
39906
- }
39907
- function isDeviceLinkingRequestSignatureResultRecordV1(value) {
39908
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "signatureB64u";
39909
- }
39910
- function isDeviceLinkingWorkerSuccessFrameRecordV1(value) {
39911
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "id|ok|result" && "ok" in value && value.ok === true;
39912
- }
39913
- function isDeviceLinkingWorkerFailureFrameRecordV1(value) {
39914
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).sort().join("|") === "error|id|ok" && "ok" in value && value.ok === false;
39915
- }
39916
39932
  function nonEmpty(value, label) {
39917
39933
  if (typeof value !== "string" || value.trim() !== value || value.length === 0) throw new Error(`${label} is required`);
39918
39934
  return value;
@@ -39938,7 +39954,7 @@ function parseFixedB64u(value, length, label) {
39938
39954
  return encoded;
39939
39955
  }
39940
39956
  function parseHandle(value) {
39941
- 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");
39942
39958
  const record = value;
39943
39959
  if (record.kind !== "device_linking_key_material_handle_v1") throw new Error("device-linking key handle kind is invalid");
39944
39960
  return {
@@ -39947,7 +39963,12 @@ function parseHandle(value) {
39947
39963
  };
39948
39964
  }
39949
39965
  function parseCreateResult(value) {
39950
- 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");
39951
39972
  const record = value;
39952
39973
  return {
39953
39974
  handle: {
@@ -39960,7 +39981,11 @@ function parseCreateResult(value) {
39960
39981
  };
39961
39982
  }
39962
39983
  function parseEmailOtpFactorReleaseResult(value) {
39963
- 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");
39964
39989
  const record = value;
39965
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");
39966
39991
  if (!(record.factorSecret instanceof ArrayBuffer) || record.factorSecret.byteLength !== 32) throw new Error("device-linking Email OTP factor release secret is invalid");
@@ -39974,11 +39999,15 @@ function parseWalletSessionCredentialDeliveryResult(value) {
39974
39999
  return parseWalletSessionOperationCredentialV1(value);
39975
40000
  }
39976
40001
  function parseSignatureResult(value) {
39977
- 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");
39978
40003
  return { signatureB64u: parseFixedB64u(value.signatureB64u, 64, "signatureB64u") };
39979
40004
  }
39980
40005
  function parseResponseFrame(value) {
39981
- if (isDeviceLinkingWorkerSuccessFrameRecordV1(value)) {
40006
+ if (hasExactKeys(value, [
40007
+ "id",
40008
+ "ok",
40009
+ "result"
40010
+ ]) && value.ok === true) {
39982
40011
  const id = value.id;
39983
40012
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
39984
40013
  return {
@@ -39987,7 +40016,11 @@ function parseResponseFrame(value) {
39987
40016
  result: value.result
39988
40017
  };
39989
40018
  }
39990
- if (isDeviceLinkingWorkerFailureFrameRecordV1(value)) {
40019
+ if (hasExactKeys(value, [
40020
+ "id",
40021
+ "ok",
40022
+ "error"
40023
+ ]) && value.ok === false) {
39991
40024
  const id = value.id;
39992
40025
  if (typeof id !== "string" || id.trim() !== id || id.length === 0) return null;
39993
40026
  if (typeof value.error !== "string" || !value.error.trim()) return null;
@@ -42486,6 +42519,14 @@ var SeamsWeb = class {
42486
42519
  async getWalletIframeExactSessionState() {
42487
42520
  return await this.walletIframe.getExactSessionState();
42488
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
+ }
42489
42530
  async openHostedAuthMenu(request, anchorElement) {
42490
42531
  return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
42491
42532
  }