@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
@@ -1,44 +1,128 @@
1
- import { EmailOtpWalletSessionRuntime } from "./coordinatorRuntime.js";
1
+ import { createEmailOtpEcdsaSigningSessionMaterialRestorer } from "./ecdsaRecovery.js";
2
+ import { EmailOtpEcdsaLifecycleRuntime } from "./ecdsaLifecycleRuntime.js";
3
+ import { EmailOtpExportRecoveryRuntime } from "./exportRecoveryRuntime.js";
4
+ import { EmailOtpRuntimeConfig } from "./runtimeConfig.js";
5
+ import { EmailOtpSealedSessionRegistry } from "./sealedSessionRegistry.js";
6
+ import { EmailOtpSealedRefreshPolicy } from "./sealedRefreshPolicy.js";
7
+ import { EmailOtpSealedRestoreOrchestrator } from "./sealedRestoreOrchestrator.js";
8
+ import { EmailOtpWarmSessionRuntime, createEmailOtpWarmSessionWorkerClient } from "./warmSessionRuntime.js";
2
9
  //#region src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.ts
3
10
  var EmailOtpWalletSessionCoordinator = class {
4
11
  constructor(deps) {
5
- this.runtime = new EmailOtpWalletSessionRuntime(deps);
12
+ this.sealedRefreshDiagnosticLogAtMsByKey = /* @__PURE__ */ new Map();
13
+ this.runtimeConfig = new EmailOtpRuntimeConfig({
14
+ configs: deps.configs,
15
+ getRpId: deps.getRpId
16
+ });
17
+ this.sealedSessionRegistry = new EmailOtpSealedSessionRegistry({
18
+ configs: deps.configs,
19
+ getSignerWorkerContext: deps.getSignerWorkerContext,
20
+ commitEvmFamilyThresholdEcdsaSessions: deps.commitEvmFamilyThresholdEcdsaSessions,
21
+ listActiveEcdsaCapabilityManifestsForWallet: deps.listActiveEcdsaCapabilityManifestsForWallet,
22
+ writeExactSealedSession: deps.writeExactSealedSession,
23
+ readExactSealedSession: deps.readExactSealedSession,
24
+ clearEcdsaRestoreCaches: () => this.clearEcdsaRestoreCaches()
25
+ });
26
+ this.ecdsaLifecycleRuntime = new EmailOtpEcdsaLifecycleRuntime({
27
+ configs: deps.configs,
28
+ getSignerWorkerContext: deps.getSignerWorkerContext,
29
+ loadWalletCustodyEd25519Material: deps.loadWalletCustodyEd25519Material,
30
+ restoreWalletCustodyEcdsaContinuity: deps.restoreWalletCustodyEcdsaContinuity,
31
+ provisionThresholdEcdsaSession: deps.provisionThresholdEcdsaSession,
32
+ provisionEmailOtpEcdsaExplicitExportSession: deps.provisionEmailOtpEcdsaExplicitExportSession,
33
+ runtimeConfig: this.runtimeConfig,
34
+ ownerLaneScopeStores: deps.ownerLaneScopeStores,
35
+ resolveSelectedWalletAuthority: deps.resolveSelectedWalletAuthority,
36
+ resolveCurrentEcdsaCapabilityRuntime: deps.resolveCurrentEcdsaCapabilityRuntime,
37
+ publicationPorts: () => this.sealedSessionRegistry.ecdsaPublicationPorts()
38
+ });
39
+ this.exportRecoveryRuntime = new EmailOtpExportRecoveryRuntime({
40
+ getSignerWorkerContext: deps.getSignerWorkerContext,
41
+ requireRelayUrl: () => this.runtimeConfig.requireRelayUrl(),
42
+ requireSigningSessionSealGroupId: () => this.runtimeConfig.requireSigningSessionSealGroupId(),
43
+ resolveSelectedWalletAuthority: deps.resolveSelectedWalletAuthority,
44
+ prepareEcdsaExportCapability: (request) => this.ecdsaLifecycleRuntime.prepareEcdsaExportCapability(request)
45
+ });
46
+ const restoreEcdsaSigningSessionMaterialFromSealedRecord = createEmailOtpEcdsaSigningSessionMaterialRestorer({
47
+ configs: deps.configs,
48
+ withThresholdEcdsaSigningQueue: deps.withThresholdEcdsaSigningQueue,
49
+ getSignerWorkerContext: deps.getSignerWorkerContext,
50
+ resolveSelectedWalletAuthority: deps.resolveSelectedWalletAuthority,
51
+ readExactWalletSessionAuthorization: deps.readExactWalletSessionAuthorization,
52
+ provisionThresholdEcdsaSession: deps.provisionThresholdEcdsaSession,
53
+ commitEvmFamilyThresholdEcdsaSessions: deps.commitEvmFamilyThresholdEcdsaSessions,
54
+ resolveCurrentEcdsaCapabilityRuntime: deps.resolveCurrentEcdsaCapabilityRuntime
55
+ });
56
+ const warmSessionWorkerClient = createEmailOtpWarmSessionWorkerClient({ worker: deps.signerWorkerManager });
57
+ this.sealedRefreshPolicy = new EmailOtpSealedRefreshPolicy({
58
+ updateExactSealedSessionPolicy: deps.updateExactSealedSessionPolicy,
59
+ clearEcdsaRestoreCaches: () => this.clearEcdsaRestoreCaches()
60
+ });
61
+ this.sealedRestoreOrchestrator = new EmailOtpSealedRestoreOrchestrator({
62
+ sessionPersistenceMode: deps.configs.signing.sessionPersistenceMode,
63
+ listExactSealedSessionsForWallet: deps.listExactSealedSessionsForWallet,
64
+ readExactSealedSession: deps.readExactSealedSession,
65
+ acquireSigningSessionRestoreLease: deps.acquireSigningSessionRestoreLease,
66
+ releaseSigningSessionRestoreLease: deps.releaseSigningSessionRestoreLease,
67
+ readWarmSessionStatusFromWorker: (thresholdSessionId) => warmSessionWorkerClient.readStatus({
68
+ kind: "ecdsa",
69
+ thresholdSessionId
70
+ }),
71
+ restoreEcdsaSigningSessionMaterialFromSealedRecord: (restoreArgs) => restoreEcdsaSigningSessionMaterialFromSealedRecord(restoreArgs),
72
+ recordSessionMaterialRestored: (purpose, status) => this.sealedRefreshPolicy.recordSessionMaterialRestored(purpose, status),
73
+ shouldLogDiagnostic: (key) => this.shouldLogSealedRefreshDiagnostic(key)
74
+ });
75
+ this.warmSessionRuntime = new EmailOtpWarmSessionRuntime({
76
+ workerClient: warmSessionWorkerClient,
77
+ sealedRefreshPolicy: this.sealedRefreshPolicy,
78
+ sealedRestoreOrchestrator: this.sealedRestoreOrchestrator
79
+ });
6
80
  }
7
- persistEcdsaSessionForRefresh(args) {
8
- return this.runtime.persistEcdsaSessionForRefresh(args);
81
+ async persistEcdsaSessionForRefresh(args) {
82
+ await this.sealedSessionRegistry.persistEcdsaSessionForRefresh(args);
9
83
  }
10
- discoverPersistedSessionsForWallet(args) {
11
- return this.runtime.discoverPersistedSessionsForWallet(args);
84
+ clearEcdsaRestoreCaches() {
85
+ this.sealedRestoreOrchestrator.clearCache();
12
86
  }
13
- restorePersistedSessionForSigning(args) {
14
- return this.runtime.restorePersistedSessionForSigning(args);
87
+ shouldLogSealedRefreshDiagnostic(key, nowMs = Date.now()) {
88
+ const normalizedKey = String(key || "").trim();
89
+ if (!normalizedKey) return false;
90
+ if (nowMs - (this.sealedRefreshDiagnosticLogAtMsByKey.get(normalizedKey) || 0) < 6e4) return false;
91
+ this.sealedRefreshDiagnosticLogAtMsByKey.set(normalizedKey, nowMs);
92
+ return true;
15
93
  }
16
- readWarmSessionStatusOnly(target) {
17
- return this.runtime.readWarmSessionStatusOnly(target);
94
+ async discoverPersistedSessionsForWallet(args) {
95
+ return await this.sealedRestoreOrchestrator.discoverPersistedSessionsForWallet(args);
18
96
  }
19
- consumeWarmSessionUses(args) {
20
- return this.runtime.consumeWarmSessionUses(args);
97
+ async restorePersistedSessionForSigning(args) {
98
+ return await this.sealedRestoreOrchestrator.restorePersistedSessionForSigning(args);
21
99
  }
22
- clearVolatileWarmSessionMaterial(target) {
23
- return this.runtime.clearVolatileWarmSessionMaterial(target);
100
+ async readWarmSessionStatusOnly(target) {
101
+ return await this.warmSessionRuntime.readWarmSessionStatusOnly(target);
102
+ }
103
+ async consumeWarmSessionUses(args) {
104
+ return await this.warmSessionRuntime.consumeWarmSessionUses(args);
105
+ }
106
+ async clearVolatileWarmSessionMaterial(target) {
107
+ await this.warmSessionRuntime.clearVolatileWarmSessionMaterial(target);
24
108
  }
25
109
  async requestTransactionSigningChallenge(args) {
26
- return await this.runtime.requestTransactionSigningChallenge(args);
110
+ return await this.exportRecoveryRuntime.requestTransactionSigningChallenge(args);
27
111
  }
28
112
  async requestExportChallenge(args) {
29
- return await this.runtime.requestExportChallenge(args);
113
+ return await this.exportRecoveryRuntime.requestExportChallenge(args);
30
114
  }
31
- exportEcdsaKeyWithDurableAuthorization(args) {
32
- return this.runtime.exportEcdsaKeyWithDurableAuthorization(args);
115
+ async exportEcdsaKeyWithDurableAuthorization(args) {
116
+ return await this.exportRecoveryRuntime.exportEcdsaKeyWithDurableAuthorization(args);
33
117
  }
34
- exportEd25519YaoSeedWithFreshEmailOtpLane(args) {
35
- return this.runtime.exportEd25519YaoSeedWithFreshEmailOtpLane(args);
118
+ async exportEd25519YaoSeedWithFreshEmailOtpLane(args) {
119
+ return await this.exportRecoveryRuntime.exportEd25519YaoSeedWithFreshEmailOtpLane(args);
36
120
  }
37
- loginWithEcdsaCapabilityForSigning(args) {
38
- return this.runtime.loginWithEcdsaCapabilityForSigning(args);
121
+ async loginWithEcdsaCapabilityForSigning(args) {
122
+ return await this.ecdsaLifecycleRuntime.loginWithEcdsaCapabilityForSigning(args);
39
123
  }
40
- loginWithEcdsaCapabilityInternal(args) {
41
- return this.runtime.loginWithEcdsaCapabilityInternal(args);
124
+ async loginWithEcdsaCapabilityInternal(args) {
125
+ return await this.ecdsaLifecycleRuntime.loginWithEcdsaCapabilityInternal(args);
42
126
  }
43
127
  };
44
128
  //#endregion
@@ -1,3 +1,4 @@
1
+ import { sameRuntimePolicyScope } from "../../../../shared-ts/src/threshold/signingRootScope.js";
1
2
  import { DEFAULT_THRESHOLD_SESSION_POLICY, DEFAULT_UNLOCK_REMAINING_USES, clampThresholdSessionPolicy, resolveWalletUnlockSessionUsesFromRequestedUses } from "../../threshold/sessionPolicy.js";
2
3
  import { mpcMaterialActivationRefsEqual, parseThresholdEcdsaSessionId, parseWalletAuthMethodId } from "../../../../shared-ts/src/utils/domainIds.js";
3
4
  import { parseWalletSessionMintId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
@@ -288,12 +289,9 @@ function requireEmailOtpEcdsaCustodySigner(continuity, walletId, keyHandle) {
288
289
  const first = continuity.signers[0];
289
290
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
290
291
  if (first.walletKey.walletId !== walletId || first.walletKey.keyHandle !== keyHandle) throw new Error("Email OTP ECDSA custody continuity changed the requested wallet key");
291
- 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");
292
+ 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(signer.runtimePolicyScope, first.runtimePolicyScope)) throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
292
293
  return first;
293
294
  }
294
- function sameEmailOtpRuntimePolicyScope(left, right) {
295
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
296
- }
297
295
  function nonEmptyEmailOtpEcdsaChainTargets(continuity) {
298
296
  const [first, ...rest] = continuity.signers;
299
297
  if (!first) throw new Error("Email OTP ECDSA custody continuity is empty");
@@ -504,7 +502,7 @@ async function provisionEmailOtpExistingKeySessions(args) {
504
502
  },
505
503
  authorization: additionalAuthorization
506
504
  };
507
- const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(provisionEmailOtpAdditionalExistingKeySessionForTarget.bind(null, additionalContext)))];
505
+ const bootstraps = [primaryBootstrap, ...await Promise.all(args.publicationChainTargets.slice(1).map(provisionEmailOtpExistingKeySessionForTarget.bind(null, additionalContext)))];
508
506
  if (!primaryBootstrap) throw new Error("Email OTP ECDSA activation did not return a primary warm session");
509
507
  return bootstraps;
510
508
  }
@@ -526,9 +524,6 @@ async function provisionEmailOtpExistingKeySessionForTarget(context, chainTarget
526
524
  authorization: context.authorization
527
525
  }));
528
526
  }
529
- async function provisionEmailOtpAdditionalExistingKeySessionForTarget(context, chainTarget) {
530
- return await provisionEmailOtpExistingKeySessionForTarget(context, chainTarget);
531
- }
532
527
  async function provisionEmailOtpExplicitExportSession(args) {
533
528
  return await args.ports.provisionEmailOtpEcdsaExplicitExportSession(buildEmailOtpExplicitExportEcdsaActivation({
534
529
  relayerUrl: args.relayerUrl,
@@ -7,9 +7,9 @@ import { buildEmailOtpAuthContextForWalletAuthMethod, emailOtpAuthContextProvide
7
7
  import { parseSigningSessionSealKeyVersion } from "../../../../shared-ts/src/threshold/keyMaterialBrands.js";
8
8
  import { parseEmailOtpWorkerIssuedSessionHandle } from "../../../platform/secretSources.js";
9
9
  import { buildEcdsaRoleLocalPublicFacts } from "../persistence/ecdsaRoleLocalRecords.js";
10
+ import { resolveThresholdCommitQueueKey } from "../../threshold/commitQueueShared.js";
10
11
  import { buildCanonicalEvmFamilyEcdsaSigningCapability, buildExactEvmFamilyWalletSessionAuthorization } from "../material/ecdsaSigningCapability.js";
11
12
  import { buildPersistedEcdsaRoleLocalMaterial } from "../material/ecdsaRoleLocalMaterialResolver.js";
12
- import { resolveThresholdEcdsaSigningQueueKey } from "../../threshold/ecdsa/signingQueue.js";
13
13
  import { requestRehydrateEmailOtpEcdsaWarmSessionMaterial } from "./workerRequests.js";
14
14
  import { emailOtpEcdsaSealAuthorizationThresholdSessionId } from "./ecdsaPublication.js";
15
15
  import { buildEmailOtpRecoveredKeyActivation } from "./ecdsaLogin.js";
@@ -147,7 +147,7 @@ async function restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecord(args)
147
147
  if (sealedRecord.authMethod !== "email_otp" || sealedRecord.curve !== "ecdsa") return null;
148
148
  const materialActivation = sealedRecord.roleLocalMaterialRef.materialActivation;
149
149
  return await args.withThresholdEcdsaSigningQueue({
150
- queueKey: resolveThresholdEcdsaSigningQueueKey({ materialActivation }),
150
+ queueKey: resolveThresholdCommitQueueKey({ materialActivation }),
151
151
  walletId: toWalletId(sealedRecord.walletId),
152
152
  enabled: true,
153
153
  task: async () => await restoreEmailOtpEcdsaSigningSessionMaterialFromSealedRecordInQueue(args)
@@ -35,9 +35,7 @@ function nearEd25519TransactionReauthState(lane) {
35
35
  if (lane.state === "exhausted") return "exhausted";
36
36
  return null;
37
37
  }
38
- function nearEd25519TransactionReadyAvailableLaneProjection(lane) {
39
- const state = nearEd25519TransactionReadyState(lane);
40
- if (!state) throw new Error("[SigningSessionSelectLane] Ed25519 lane is not transaction-ready");
38
+ function nearEd25519TransactionAvailableLaneProjection(lane, state) {
41
39
  return {
42
40
  auth: lane.auth,
43
41
  curve: "ed25519",
@@ -57,27 +55,15 @@ function nearEd25519TransactionReadyAvailableLaneProjection(lane) {
57
55
  ...lane.updatedAtMs == null ? {} : { updatedAtMs: lane.updatedAtMs }
58
56
  };
59
57
  }
58
+ function nearEd25519TransactionReadyAvailableLaneProjection(lane) {
59
+ const state = nearEd25519TransactionReadyState(lane);
60
+ if (!state) throw new Error("[SigningSessionSelectLane] Ed25519 lane is not transaction-ready");
61
+ return nearEd25519TransactionAvailableLaneProjection(lane, state);
62
+ }
60
63
  function nearEd25519TransactionReauthAvailableLaneProjection(lane) {
61
64
  const state = nearEd25519TransactionReauthState(lane);
62
65
  if (!state) throw new Error("[SigningSessionSelectLane] Ed25519 lane is not transaction-reauthable");
63
- return {
64
- auth: lane.auth,
65
- curve: "ed25519",
66
- chain: "near",
67
- materialActivation: lane.materialActivation,
68
- walletId: lane.walletId,
69
- nearAccountId: lane.nearAccountId,
70
- nearEd25519SigningKeyId: lane.nearEd25519SigningKeyId,
71
- signerSlot: lane.signerSlot,
72
- authorizationState: "authorized",
73
- authorization: lane.authorization,
74
- state,
75
- thresholdSessionId: lane.thresholdSessionId,
76
- ...lane.remainingUses == null ? {} : { remainingUses: lane.remainingUses },
77
- ...lane.expiresAtMs == null ? {} : { expiresAtMs: lane.expiresAtMs },
78
- ...lane.policyHint ? { policyHint: lane.policyHint } : {},
79
- ...lane.updatedAtMs == null ? {} : { updatedAtMs: lane.updatedAtMs }
80
- };
66
+ return nearEd25519TransactionAvailableLaneProjection(lane, state);
81
67
  }
82
68
  function selectedEd25519LaneForTransactionCandidate(candidate) {
83
69
  return selectedEd25519Lane({
@@ -6,6 +6,7 @@ import { sameRouterAbEcdsaDerivationNormalSigningScopeV1 } from "../../../../sha
6
6
  import { computeEcdsaDerivationRoleLocalRelayerKeyId } from "../../../../shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js";
7
7
  import { toWalletId } from "../../interfaces/ecdsaChainTarget.js";
8
8
  import { buildBaseEvmFamilyEcdsaKeyIdentity, buildPasskeyEcdsaAuthBinding, buildResolvedEvmFamilyEcdsaKey, buildVerifiedEcdsaPublicFacts, deriveEvmFamilyEcdsaKeyHandle, toRpId, toThresholdOwnerAddress } from "../identity/evmFamilyEcdsaIdentity.js";
9
+ import { sameEcdsaSourceSigner, sameEcdsaTarget } from "../../../../shared-ts/src/device-linking/sourceContribution.js";
9
10
  import { isActiveEcdsaWalletAuthorityV1, isCombinedWalletSignerActivationSetV1 } from "../../../../shared-ts/src/authorization/walletAuthority.js";
10
11
  import { resolveLinkedEcdsaHolderRuntimeV1 } from "./linkedEcdsaHolderRuntime.js";
11
12
  import { bytesToHex } from "../../chains/evm/bytes.js";
@@ -72,14 +73,8 @@ function normalSigningAddress(normalSigning) {
72
73
  return null;
73
74
  }
74
75
  }
75
- function linkedEcdsaSourceSignerIdentitiesEqual(left, right) {
76
- return mpcMaterialActivationRefsEqual(left.activation, right.activation) && left.clientPublicKey33B64u === right.clientPublicKey33B64u && left.relayerPublicKey33B64u === right.relayerPublicKey33B64u && left.thresholdPublicKey33B64u === right.thresholdPublicKey33B64u && left.thresholdEthereumAddress20B64u === right.thresholdEthereumAddress20B64u;
77
- }
78
- function linkedEcdsaTargetRecipientPreparationsEqual(left, right) {
79
- return mpcMaterialActivationRefsEqual(left.activation, right.activation) && left.targetDeviceId === right.targetDeviceId && left.targetFactorVerificationDigestB64u === right.targetFactorVerificationDigestB64u && left.clientRecipientPublicKeyB64u === right.clientRecipientPublicKeyB64u && left.signingWorkerRecipientPublicKeyB64u === right.signingWorkerRecipientPublicKeyB64u;
80
- }
81
76
  function linkedEcdsaSourceContributionBindingsEqual(left, right) {
82
- return left.linkSessionId === right.linkSessionId && left.enrollmentId === right.enrollmentId && left.sourceAuthorityId === right.sourceAuthorityId && linkedEcdsaSourceSignerIdentitiesEqual(left.source, right.source) && linkedEcdsaTargetRecipientPreparationsEqual(left.target, right.target) && left.targetClientPublicKey33B64u === right.targetClientPublicKey33B64u;
77
+ return left.linkSessionId === right.linkSessionId && left.enrollmentId === right.enrollmentId && left.sourceAuthorityId === right.sourceAuthorityId && sameEcdsaSourceSigner(left.source, right.source) && sameEcdsaTarget(left.target, right.target) && left.targetClientPublicKey33B64u === right.targetClientPublicKey33B64u;
83
78
  }
84
79
  function linkedEcdsaNormalSigningStatesEqual(left, right) {
85
80
  return left.kind === right.kind && sameRouterAbEcdsaDerivationNormalSigningScopeV1(left.scope, right.scope);
@@ -4,7 +4,7 @@ import { mpcMaterialActivationRefsEqual } from "../../../../shared-ts/src/utils/
4
4
  import { isoTimestampFromUnixMs } from "../../../../shared-ts/src/utils/canonicalPrimitives.js";
5
5
  import { parseEcdsaActivationDigest, parseEcdsaLifecycleId } from "../../../../shared-ts/src/utils/ecdsaCapabilityActivation.js";
6
6
  import { routerAbMpcMaterialActivationRefFromWire, routerAbMpcMaterialActivationRefToWire, sameRouterAbMpcMaterialActivationRef } from "../../../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
7
- import { parseRouterAbEcdsaRegistrationActivationReceiptV1 } from "../../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
7
+ import { parseRouterAbEcdsaRegistrationActivationReceiptV1, sameRegistrationRecipientKeys, sameRegistrationSignerSet, sameRouterAbEcdsaDerivationPublicIdentityV1, sameRouterAbServerIdentityV1 } from "../../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
8
8
  //#region src/core/signingEngine/session/material/ecdsaCapabilityManifest.ts
9
9
  var EcdsaCapabilityManifestProof = class {
10
10
  retainProof() {
@@ -468,20 +468,8 @@ function assertDurableMaterialMatchesActivation(durableMaterial, activationBindi
468
468
  receipt: receipt.protocolReceipt
469
469
  });
470
470
  }
471
- function routerAbEcdsaPublicIdentitiesEqual(left, right) {
472
- return left.context_binding_b64u === right.context_binding_b64u && left.derivation_client_share_public_key33_b64u === right.derivation_client_share_public_key33_b64u && left.server_public_key33_b64u === right.server_public_key33_b64u && left.threshold_public_key33_b64u === right.threshold_public_key33_b64u && left.ethereum_address20_b64u === right.ethereum_address20_b64u && left.client_share_retry_counter === right.client_share_retry_counter && left.server_share_retry_counter === right.server_share_retry_counter;
473
- }
474
- function routerAbServerIdentitiesEqual(left, right) {
475
- return left.server_id === right.server_id && left.key_epoch === right.key_epoch && left.recipient_encryption_key === right.recipient_encryption_key;
476
- }
477
- function routerAbEcdsaSignerSetsEqual(left, right) {
478
- return left.signer_set_id === right.signer_set_id && left.policy === right.policy && left.signer_a.role === right.signer_a.role && left.signer_a.signer_id === right.signer_a.signer_id && left.signer_a.key_epoch === right.signer_a.key_epoch && left.signer_b.role === right.signer_b.role && left.signer_b.signer_id === right.signer_b.signer_id && left.signer_b.key_epoch === right.signer_b.key_epoch && routerAbServerIdentitiesEqual(left.selected_server, right.selected_server);
479
- }
480
- function routerAbEcdsaRecipientKeysEqual(left, right) {
481
- return left.deriver_a.role === right.deriver_a.role && left.deriver_a.key_epoch === right.deriver_a.key_epoch && left.deriver_a.public_key === right.deriver_a.public_key && left.deriver_b.role === right.deriver_b.role && left.deriver_b.key_epoch === right.deriver_b.key_epoch && left.deriver_b.public_key === right.deriver_b.public_key;
482
- }
483
471
  function routerAbEcdsaDerivationPublicCapabilitiesEqual(left, right) {
484
- return left.kind === right.kind && left.context.application_binding_digest_b64u === right.context.application_binding_digest_b64u && routerAbEcdsaPublicIdentitiesEqual(left.public_identity, right.public_identity) && sameRouterAbMpcMaterialActivationRef(left.material_activation, right.material_activation) && routerAbEcdsaSignerSetsEqual(left.signer_set, right.signer_set) && routerAbEcdsaRecipientKeysEqual(left.deriver_recipient_keys, right.deriver_recipient_keys) && left.router_id === right.router_id && left.client_id === right.client_id && left.activation_epoch === right.activation_epoch && left.registration_request_digest_b64u === right.registration_request_digest_b64u && left.proof_transcript_digest_b64u === right.proof_transcript_digest_b64u;
472
+ return left.kind === right.kind && left.context.application_binding_digest_b64u === right.context.application_binding_digest_b64u && sameRouterAbEcdsaDerivationPublicIdentityV1(left.public_identity, right.public_identity) && sameRouterAbMpcMaterialActivationRef(left.material_activation, right.material_activation) && sameRegistrationSignerSet(left.signer_set, right.signer_set) && sameRegistrationRecipientKeys(left.deriver_recipient_keys, right.deriver_recipient_keys) && left.router_id === right.router_id && left.client_id === right.client_id && left.activation_epoch === right.activation_epoch && left.registration_request_digest_b64u === right.registration_request_digest_b64u && left.proof_transcript_digest_b64u === right.proof_transcript_digest_b64u;
485
473
  }
486
474
  function assertNormalSigningMatchesActivation(input) {
487
475
  const scope = input.normalSigning.scope;
@@ -496,7 +484,7 @@ function assertNormalSigningMatchesActivation(input) {
496
484
  lifecycleBinding: expectedMaterialActivation.lifecycleBinding,
497
485
  signingWorker: expectedMaterialActivation.signingWorker
498
486
  });
499
- if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !routerAbEcdsaPublicIdentitiesEqual(scope.public_identity, input.receipt.ecdsa_activation.public_identity) || !routerAbServerIdentitiesEqual(scope.signing_worker, input.receipt.ecdsa_activation.signing_worker) || scope.activation_epoch !== input.receipt.ecdsa_activation.activation_epoch || scope.public_identity.context_binding_b64u !== facts.contextBinding32B64u || scope.public_identity.derivation_client_share_public_key33_b64u !== facts.derivationClientSharePublicKey33B64u || scope.public_identity.server_public_key33_b64u !== facts.relayerPublicKey33B64u || scope.public_identity.threshold_public_key33_b64u !== facts.groupPublicKey33B64u || !sameRouterAbMpcMaterialActivationRef(scope.material_activation, expectedMaterialActivationWire)) throw new Error("ECDSA normal-signing runtime does not match its activation");
487
+ if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !sameRouterAbEcdsaDerivationPublicIdentityV1(scope.public_identity, input.receipt.ecdsa_activation.public_identity) || !sameRouterAbServerIdentityV1(scope.signing_worker, input.receipt.ecdsa_activation.signing_worker) || scope.activation_epoch !== input.receipt.ecdsa_activation.activation_epoch || scope.public_identity.context_binding_b64u !== facts.contextBinding32B64u || scope.public_identity.derivation_client_share_public_key33_b64u !== facts.derivationClientSharePublicKey33B64u || scope.public_identity.server_public_key33_b64u !== facts.relayerPublicKey33B64u || scope.public_identity.threshold_public_key33_b64u !== facts.groupPublicKey33B64u || !sameRouterAbMpcMaterialActivationRef(scope.material_activation, expectedMaterialActivationWire)) throw new Error("ECDSA normal-signing runtime does not match its activation");
500
488
  }
501
489
  function assertValidEcdsaReplacement(active, replacement) {
502
490
  if (active.identity.manifestId === replacement.identity.manifestId || Number(replacement.identity.manifestRevision) !== Number(active.identity.manifestRevision) + 1 || active.signer.capability !== replacement.signer.capability || active.signer.signerId !== replacement.signer.signerId || active.signer.walletId !== replacement.signer.walletId || active.signer.authority.authorityDigest !== replacement.signer.authority.authorityDigest || active.signer.materialOwner !== replacement.signer.materialOwner || active.durableMaterial.durableMaterialRef === replacement.durableMaterial.durableMaterialRef || active.activation.serverActivation.serverGeneration === replacement.activation.serverActivation.serverGeneration) throw new Error("ECDSA replacement manifest does not exactly replace the active manifest");
@@ -226,6 +226,6 @@ async function buildCanonicalEvmFamilyEcdsaSigningCapability(input) {
226
226
  };
227
227
  }
228
228
  //#endregion
229
- export { authorizeEvmFamilyEcdsaSigningCapability, buildCanonicalEvmFamilyEcdsaSigningCapability, buildEcdsaPreprocessingCapability, buildExactEcdsaDirectCapabilityRuntime, buildExactEvmFamilyWalletSessionAuthorization, exactEcdsaWalletSessionRuntimesMatch, signingAuthorizationFromPreprocessing };
229
+ export { authorizeEvmFamilyEcdsaSigningCapability, buildCanonicalEvmFamilyEcdsaSigningCapability, buildEcdsaPreprocessingCapability, buildExactEcdsaDirectCapabilityRuntime, buildExactEvmFamilyWalletSessionAuthorization, exactAuthorizationMatchesCapability, exactEcdsaWalletSessionRuntimesMatch, signingAuthorizationFromPreprocessing };
230
230
 
231
231
  //# sourceMappingURL=ecdsaSigningCapability.js.map
@@ -1,6 +1,6 @@
1
1
  import { base58Encode } from "../../../../shared-ts/src/utils/base58.js";
2
2
  import { isPlainObject, requireRecord, requireTrimmedString } from "../../../../shared-ts/src/utils/validation.js";
3
- import { normalizeRuntimePolicyScope, signingRootScopeFromRuntimePolicyScope } from "../../../../shared-ts/src/threshold/signingRootScope.js";
3
+ import { normalizeRuntimePolicyScope, sameRuntimePolicyScope, signingRootScopeFromRuntimePolicyScope } from "../../../../shared-ts/src/threshold/signingRootScope.js";
4
4
  import { parseRouterAbEd25519NormalSigningState } from "../../../../shared-ts/src/utils/signingSessionSeal.js";
5
5
  import { mpcMaterialActivationRefsEqual, parseWalletId } from "../../../../shared-ts/src/utils/domainIds.js";
6
6
  import { parseMpcWalletSigningQuotaId, parseWalletSessionId } from "../../../../shared-ts/src/authorization/capabilityKinds.js";
@@ -162,9 +162,6 @@ async function parseJsonResponseOrNull(response) {
162
162
  return null;
163
163
  }
164
164
  }
165
- function sameRuntimePolicyScope(left, right) {
166
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
167
- }
168
165
  async function parseWarmRecoveryDescriptor(args) {
169
166
  const record = args.record;
170
167
  const response = args.response;
@@ -46,24 +46,21 @@ function storagePayloadFromSealedStoreRow(value) {
46
46
  const obj = asRecord(value);
47
47
  return obj && SEALED_RECORD_PAYLOAD_FIELD in obj ? obj[SEALED_RECORD_PAYLOAD_FIELD] : value;
48
48
  }
49
- function optionalStringForIndex(value) {
50
- return normalizeOptionalNonEmptyString(value);
51
- }
52
49
  function durableLaneStorageRow(record) {
53
50
  const ecdsaChainTarget = record.ecdsaRestore?.chainTarget;
54
- const ecdsaThresholdSessionId = optionalStringForIndex(record.thresholdSessionIds.ecdsa);
55
- const ed25519ThresholdSessionId = optionalStringForIndex(record.thresholdSessionIds.ed25519);
51
+ const ecdsaThresholdSessionId = normalizeOptionalNonEmptyString(record.thresholdSessionIds.ecdsa);
52
+ const ed25519ThresholdSessionId = normalizeOptionalNonEmptyString(record.thresholdSessionIds.ed25519);
56
53
  return {
57
54
  store_key: record.storeKey,
58
55
  wallet_id: record.walletId,
59
56
  auth_method: record.authMethod,
60
57
  curve: record.curve,
61
- signing_root_id: optionalStringForIndex("signingRootId" in record ? record.signingRootId : void 0),
62
- signing_root_version: optionalStringForIndex("signingRootVersion" in record ? record.signingRootVersion : void 0),
58
+ signing_root_id: normalizeOptionalNonEmptyString("signingRootId" in record ? record.signingRootId : void 0),
59
+ signing_root_version: normalizeOptionalNonEmptyString("signingRootVersion" in record ? record.signingRootVersion : void 0),
63
60
  ed25519_threshold_session_id: ed25519ThresholdSessionId,
64
61
  ecdsa_threshold_session_id: ecdsaThresholdSessionId,
65
62
  threshold_session_id: ecdsaThresholdSessionId || ed25519ThresholdSessionId,
66
- key_handle: optionalStringForIndex(record.ecdsaRestore?.keyHandle),
63
+ key_handle: normalizeOptionalNonEmptyString(record.ecdsaRestore?.keyHandle),
67
64
  chain_target_key: ecdsaChainTarget ? thresholdEcdsaChainTargetKey(ecdsaChainTarget) : void 0,
68
65
  expires_at_ms: record.expiresAtMs,
69
66
  updated_at: record.updatedAtMs,
@@ -1,4 +1,4 @@
1
- import { thresholdEcdsaRoleLocalAdmitPresignatureWasm, thresholdEcdsaRoleLocalCommitPresignatureWasm, thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, thresholdEcdsaRoleLocalDestroyPresignatureWasm, thresholdEcdsaRoleLocalListAvailablePresignaturesWasm, thresholdEcdsaRoleLocalPresignSessionAbortWasm, thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, thresholdEcdsaRoleLocalPresignSessionStepWasm, thresholdEcdsaRoleLocalReservePresignatureWasm } from "../../threshold/crypto/ecdsaDerivationClientWasm.js";
1
+ import { thresholdEcdsaListAvailablePresignaturesWasm, thresholdEcdsaRoleLocalAdmitPresignatureWasm, thresholdEcdsaRoleLocalCommitPresignatureWasm, thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, thresholdEcdsaRoleLocalDestroyPresignatureWasm, thresholdEcdsaRoleLocalPresignSessionAbortWasm, thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, thresholdEcdsaRoleLocalPresignSessionStepWasm, thresholdEcdsaRoleLocalReservePresignatureWasm } from "../../threshold/crypto/ecdsaDerivationClientWasm.js";
2
2
  import { ecdsaRoleLocalPersistedMaterialSource, resolveEcdsaRoleLocalMaterial } from "../material/ecdsaRoleLocalMaterialResolver.js";
3
3
  //#region src/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.ts
4
4
  function requireResolvedLoginPrefillMaterial(resolution) {
@@ -40,7 +40,7 @@ function createEcdsaLoginPrefillClientSigningMaterialSource(args) {
40
40
  destroyClientPresignature: thresholdEcdsaRoleLocalDestroyPresignatureWasm,
41
41
  reserveClientPresignature: thresholdEcdsaRoleLocalReservePresignatureWasm,
42
42
  commitClientPresignature: thresholdEcdsaRoleLocalCommitPresignatureWasm,
43
- listAvailableClientPresignatures: thresholdEcdsaRoleLocalListAvailablePresignaturesWasm,
43
+ listAvailableClientPresignatures: thresholdEcdsaListAvailablePresignaturesWasm.bind(void 0, "role_local_derivation_handle"),
44
44
  computeSignatureShareFromPresignatureHandle: thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm
45
45
  };
46
46
  }
@@ -2,8 +2,8 @@ import { mpcMaterialActivationRefsEqual } from "../../../../shared-ts/src/utils/
2
2
  import { signingLaneAuthBindingKey } from "../identity/signingLaneAuthBinding.js";
3
3
  import { SigningSessionIds } from "../operationState/types.js";
4
4
  import { exactEd25519SigningLaneIdentity, exactSigningLaneIdentityKey, exactSigningLaneIdentityMatches, nearEd25519SignerBindingFromBoundaryFields } from "../identity/exactSigningLaneIdentity.js";
5
- import { isConcreteAvailableSigningLane } from "../availability/availableSigningLanes.js";
6
5
  import { materialActivationKey } from "../sealedRecovery/materialActivationKey.js";
6
+ import { isConcreteAvailableSigningLane } from "../availability/availableSigningLanes.js";
7
7
  //#region src/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.ts
8
8
  function exactEd25519LaneIdentityFromAvailableLane(lane) {
9
9
  if (!lane.authorization) throw new Error("Available Ed25519 lane requires Wallet Session authorization");
@@ -8,6 +8,11 @@ function normalizeQueueLimit(value, fallback) {
8
8
  min: 1
9
9
  });
10
10
  }
11
+ function thresholdCommitQueueError(code, message) {
12
+ const err = /* @__PURE__ */ new Error(`[SigningEngine] ${message}`);
13
+ err.code = code;
14
+ return err;
15
+ }
11
16
  function getOrCreateQueueState(queueByKey, queueKey) {
12
17
  const existing = queueByKey.get(queueKey);
13
18
  if (existing) return existing;
@@ -63,14 +68,23 @@ function clearThresholdCommitQueue(queueByKey) {
63
68
  }
64
69
  queueByKey.clear();
65
70
  }
71
+ function resolveThresholdCommitQueueKey(args) {
72
+ return [
73
+ "material",
74
+ encodeURIComponent(String(args.materialActivation.materialOwner)),
75
+ encodeURIComponent(String(args.materialActivation.capability)),
76
+ encodeURIComponent(String(args.materialActivation.activationId))
77
+ ].join(":");
78
+ }
66
79
  async function withThresholdCommitQueue(args) {
67
- if (!args.enabled) return await args.task();
80
+ const { labels, owner } = args;
68
81
  const queueKey = String(args.queueKey || "").trim();
69
- if (!queueKey) throw new Error("[SigningEngine] threshold commit queue requires non-empty queueKey");
82
+ if (!queueKey) throw new Error(`[SigningEngine] ${labels.queue} requires non-empty queueKey`);
83
+ if (!args.enabled) return await args.task();
70
84
  const maxQueueLength = normalizeQueueLimit(args.maxQueueLength, DEFAULT_MAX_QUEUE_LENGTH);
71
85
  const queueTimeoutMs = normalizeQueueLimit(args.queueTimeoutMs, DEFAULT_QUEUE_TIMEOUT_MS);
72
86
  const state = getOrCreateQueueState(args.queueByKey, queueKey);
73
- if (state.items.length + (state.running ? 1 : 0) >= maxQueueLength) throw args.errors.makeOverflowError(queueKey, maxQueueLength);
87
+ if (state.items.length + (state.running ? 1 : 0) >= maxQueueLength) throw thresholdCommitQueueError("commit_queue_overflow", `${labels.queue} overflow for ${owner} (queueKey=${queueKey}, max=${maxQueueLength})`);
74
88
  return await new Promise((resolve, reject) => {
75
89
  let timeoutHandle = null;
76
90
  let settled = false;
@@ -91,8 +105,8 @@ async function withThresholdCommitQueue(args) {
91
105
  clearTimeoutHandle();
92
106
  resolve(value);
93
107
  };
94
- const makeCancelledError = (reason) => args.errors.makeCancelledError(queueKey, reason);
95
- const makeTimeoutError = (timeoutMs) => args.errors.makeTimeoutError(queueKey, timeoutMs);
108
+ const makeCancelledError = (reason) => thresholdCommitQueueError("cancelled", `${labels.queuedOperation} cancelled for ${owner} (queueKey=${queueKey}${reason === "queue_cleared" ? ", queue_cleared" : ""})`);
109
+ const makeTimeoutError = (timeoutMs) => thresholdCommitQueueError("commit_queue_timeout", `${labels.queue} timeout for ${owner} (queueKey=${queueKey}, waited>${timeoutMs}ms before start)`);
96
110
  const item = {
97
111
  enqueuedAtMs: Date.now(),
98
112
  timeoutMs: queueTimeoutMs,
@@ -120,6 +134,6 @@ async function withThresholdCommitQueue(args) {
120
134
  });
121
135
  }
122
136
  //#endregion
123
- export { clearThresholdCommitQueue, withThresholdCommitQueue };
137
+ export { clearThresholdCommitQueue, resolveThresholdCommitQueueKey, withThresholdCommitQueue };
124
138
 
125
139
  //# sourceMappingURL=commitQueueShared.js.map
@@ -564,16 +564,19 @@ async function thresholdEcdsaRoleLocalCommitPresignatureWasm(input) {
564
564
  }
565
565
  })).type !== EcdsaPresignClientResponseType.CommitSuccess) throw new Error("ThresholdEcdsaRoleLocalCommitPresignature failed");
566
566
  }
567
- async function thresholdEcdsaRoleLocalListAvailablePresignaturesWasm(input) {
567
+ async function thresholdEcdsaListAvailablePresignaturesWasm(authorityKind, input) {
568
568
  const response = await requestEcdsaPresignOperation({
569
569
  workerCtx: input.workerCtx,
570
570
  request: {
571
571
  type: EcdsaPresignClientRequestType.ListAvailable,
572
572
  timeoutMs: ECDSA_DERIVATION_CLIENT_WORKER_TIMEOUT_MS,
573
- payload: { poolIdentity: input.poolIdentity }
573
+ payload: {
574
+ authority: { kind: authorityKind },
575
+ poolIdentity: input.poolIdentity
576
+ }
574
577
  }
575
578
  });
576
- if (response.type !== EcdsaPresignClientResponseType.ListAvailableSuccess) throw new Error("ThresholdEcdsaRoleLocalListAvailablePresignatures failed");
579
+ if (response.type !== EcdsaPresignClientResponseType.ListAvailableSuccess) throw new Error("ThresholdEcdsaListAvailablePresignatures failed");
577
580
  return response.payload.map(parseListedClientPresignature);
578
581
  }
579
582
  async function thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm(input) {
@@ -611,6 +614,6 @@ async function thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandl
611
614
  return new Uint8Array(response.payload);
612
615
  }
613
616
  //#endregion
614
- export { clearLinkedDeviceEcdsaHolderMaterialsWasm, closeRouterAbEcdsaPostRegistrationCeremonyWasm, closeRouterAbEcdsaRegistrationCeremonyWasm, createEcdsaHolderOrdinaryExportRequestWasm, createRouterAbEcdsaPostRegistrationCeremonyWasm, createRouterAbEcdsaRegistrationCeremonyWasm, destroyLinkedDeviceEcdsaHolderMaterialWasm, destroyLinkedDeviceEcdsaHolderMaterialsWasm, finalizeEcdsaClientBootstrapCommandWasm, finalizeEcdsaHolderOrdinaryExportWasm, finalizeRouterAbEcdsaExplicitExportWasm, finalizeRouterAbEcdsaRegistrationActivationWasm, openEcdsaRoleLocalSigningMaterialWasm, persistInitialCanonicalEcdsaActivationWasm, prepareEcdsaClientBootstrapCommandWasm, prepareLinkedDeviceEcdsaSourceContributionWasm, reconcileCanonicalEcdsaActivationWasm, signWalletRecoveryEcdsaMaterialPossessionProofWasm, storeEcdsaRoleLocalSigningMaterialWasm, storeLinkedDeviceEcdsaHolderMaterialWasm, thresholdEcdsaLinkedHolderPresignSessionInitWasm, thresholdEcdsaRoleLocalAdmitPresignatureWasm, thresholdEcdsaRoleLocalCommitPresignatureWasm, thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, thresholdEcdsaRoleLocalDestroyPresignatureWasm, thresholdEcdsaRoleLocalListAvailablePresignaturesWasm, thresholdEcdsaRoleLocalPresignSessionAbortWasm, thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, thresholdEcdsaRoleLocalPresignSessionStepWasm, thresholdEcdsaRoleLocalReservePresignatureWasm, verifyRouterAbEcdsaRegistrationClientProofsWasm };
617
+ export { clearLinkedDeviceEcdsaHolderMaterialsWasm, closeRouterAbEcdsaPostRegistrationCeremonyWasm, closeRouterAbEcdsaRegistrationCeremonyWasm, createEcdsaHolderOrdinaryExportRequestWasm, createRouterAbEcdsaPostRegistrationCeremonyWasm, createRouterAbEcdsaRegistrationCeremonyWasm, destroyLinkedDeviceEcdsaHolderMaterialWasm, destroyLinkedDeviceEcdsaHolderMaterialsWasm, finalizeEcdsaClientBootstrapCommandWasm, finalizeEcdsaHolderOrdinaryExportWasm, finalizeRouterAbEcdsaExplicitExportWasm, finalizeRouterAbEcdsaRegistrationActivationWasm, openEcdsaRoleLocalSigningMaterialWasm, persistInitialCanonicalEcdsaActivationWasm, prepareEcdsaClientBootstrapCommandWasm, prepareLinkedDeviceEcdsaSourceContributionWasm, reconcileCanonicalEcdsaActivationWasm, signWalletRecoveryEcdsaMaterialPossessionProofWasm, storeEcdsaRoleLocalSigningMaterialWasm, storeLinkedDeviceEcdsaHolderMaterialWasm, thresholdEcdsaLinkedHolderPresignSessionInitWasm, thresholdEcdsaListAvailablePresignaturesWasm, thresholdEcdsaRoleLocalAdmitPresignatureWasm, thresholdEcdsaRoleLocalCommitPresignatureWasm, thresholdEcdsaRoleLocalComputeSignatureShareFromPresignatureHandleWasm, thresholdEcdsaRoleLocalDestroyPresignatureWasm, thresholdEcdsaRoleLocalPresignSessionAbortWasm, thresholdEcdsaRoleLocalPresignSessionInitFromMaterialHandleWasm, thresholdEcdsaRoleLocalPresignSessionStepWasm, thresholdEcdsaRoleLocalReservePresignatureWasm, verifyRouterAbEcdsaRegistrationClientProofsWasm };
615
618
 
616
619
  //# sourceMappingURL=ecdsaDerivationClientWasm.js.map
@@ -1,58 +1,16 @@
1
- import { clearThresholdCommitQueue, withThresholdCommitQueue } from "../commitQueueShared.js";
1
+ import { withThresholdCommitQueue } from "../commitQueueShared.js";
2
2
  //#region src/core/signingEngine/threshold/ecdsa/signingQueue.ts
3
- function ecdsaSigningQueueWalletIdLabel(walletId) {
4
- return String(walletId).trim();
5
- }
6
- function createThresholdEcdsaSigningQueueOverflowError(walletId, queueKey, maxQueueLength) {
7
- const normalizedWalletId = ecdsaSigningQueueWalletIdLabel(walletId);
8
- const err = /* @__PURE__ */ new Error(`[SigningEngine] threshold ECDSA signing queue overflow for ${normalizedWalletId} (queueKey=${queueKey}, max=${maxQueueLength})`);
9
- err.code = "commit_queue_overflow";
10
- return err;
11
- }
12
- function createThresholdEcdsaSigningQueueTimeoutError(walletId, queueKey, timeoutMs) {
13
- const normalizedWalletId = ecdsaSigningQueueWalletIdLabel(walletId);
14
- const err = /* @__PURE__ */ new Error(`[SigningEngine] threshold ECDSA signing queue timeout for ${normalizedWalletId} (queueKey=${queueKey}, waited>${timeoutMs}ms before start)`);
15
- err.code = "commit_queue_timeout";
16
- return err;
17
- }
18
- function createThresholdEcdsaSigningQueueCancelledError(walletId, queueKey, reason = "cancelled") {
19
- const normalizedWalletId = ecdsaSigningQueueWalletIdLabel(walletId);
20
- const message = reason === "queue_cleared" ? `[SigningEngine] threshold ECDSA queued signing operation cancelled for ${normalizedWalletId} (queueKey=${queueKey}, queue_cleared)` : `[SigningEngine] threshold ECDSA queued signing operation cancelled for ${normalizedWalletId} (queueKey=${queueKey})`;
21
- const err = new Error(message);
22
- err.code = "cancelled";
23
- return err;
24
- }
25
- function resolveThresholdEcdsaSigningQueueKey(args) {
26
- return [
27
- "material",
28
- encodeURIComponent(String(args.materialActivation.materialOwner)),
29
- encodeURIComponent(String(args.materialActivation.capability)),
30
- encodeURIComponent(String(args.materialActivation.activationId))
31
- ].join(":");
32
- }
33
- function clearThresholdEcdsaSigningQueue(queueByKey) {
34
- clearThresholdCommitQueue(queueByKey);
35
- }
36
3
  async function withThresholdEcdsaSigningQueue(args) {
37
- const queueKey = String(args.queueKey || "").trim();
38
- if (!queueKey) throw new Error("[SigningEngine] threshold ECDSA signing queue requires non-empty queueKey");
39
- const walletKey = args.walletId;
40
4
  return await withThresholdCommitQueue({
41
- queueByKey: args.queueByKey,
42
- queueKey,
43
- enabled: args.enabled,
44
- shouldAbort: args.shouldAbort,
45
- maxQueueLength: args.maxQueueLength,
46
- queueTimeoutMs: args.queueTimeoutMs,
47
- task: args.task,
48
- errors: {
49
- makeOverflowError: (queueKey, maxQueueLength) => createThresholdEcdsaSigningQueueOverflowError(walletKey, queueKey, maxQueueLength),
50
- makeTimeoutError: (queueKey, timeoutMs) => createThresholdEcdsaSigningQueueTimeoutError(walletKey, queueKey, timeoutMs),
51
- makeCancelledError: (queueKey, reason) => createThresholdEcdsaSigningQueueCancelledError(walletKey, queueKey, reason)
52
- }
5
+ ...args,
6
+ labels: {
7
+ queue: "threshold ECDSA signing queue",
8
+ queuedOperation: "threshold ECDSA queued signing operation"
9
+ },
10
+ owner: String(args.walletId).trim()
53
11
  });
54
12
  }
55
13
  //#endregion
56
- export { clearThresholdEcdsaSigningQueue, resolveThresholdEcdsaSigningQueueKey, withThresholdEcdsaSigningQueue };
14
+ export { withThresholdEcdsaSigningQueue };
57
15
 
58
16
  //# sourceMappingURL=signingQueue.js.map