@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
@@ -1934,6 +1934,11 @@ function requireCanonicalBase64Url(value, label) {
1934
1934
  }
1935
1935
  return decoded;
1936
1936
  }
1937
+ function requireParsed(result, label) {
1938
+ if (result.ok)
1939
+ return result.value;
1940
+ throw new Error(`${label} ${result.error.message}`);
1941
+ }
1937
1942
  function parseDigestField(value, label) {
1938
1943
  try {
1939
1944
  return parseDigestB64u(value);
@@ -3198,6 +3203,9 @@ function parseRouterAbEcdsaRegistrationActivationReceiptV1(value) {
3198
3203
  function sameRouterAbServerIdentityV1(left, right) {
3199
3204
  return left.server_id === right.server_id && left.key_epoch === right.key_epoch && left.recipient_encryption_key === right.recipient_encryption_key;
3200
3205
  }
3206
+ function sameRouterAbEcdsaVerifiedClientActivationFactsV1(left, right) {
3207
+ return left.registrationRequestDigestB64u === right.registrationRequestDigestB64u && left.proofTranscriptDigestB64u === right.proofTranscriptDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.clientShareRetryCounter === right.clientShareRetryCounter && left.participantId === right.participantId;
3208
+ }
3201
3209
  function sameRegistrationSignerSet(left, right) {
3202
3210
  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 && sameRouterAbServerIdentityV1(left.selected_server, right.selected_server);
3203
3211
  }
@@ -3691,11 +3699,6 @@ var OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS = [
3691
3699
  "custodyKeyManifestDigestB64u",
3692
3700
  "sourceIdentityDigestB64u"
3693
3701
  ];
3694
- function requireResult(result, label) {
3695
- if (result.ok)
3696
- return result.value;
3697
- throw new Error(`${label} ${result.error.message}`);
3698
- }
3699
3702
  function parseWalletSignerId(raw, label = "walletSignerId") {
3700
3703
  if (typeof raw !== "string")
3701
3704
  throw new Error(`${label} must be a string`);
@@ -3729,7 +3732,7 @@ function buildOwnerLaneParticipantContinuityV1(args) {
3729
3732
  kind: "owner_lane_participant_continuity_v1",
3730
3733
  signerId: parseWalletSignerId(args.signerId),
3731
3734
  participantIds,
3732
- signingWorkerId: requireResult(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
3735
+ signingWorkerId: requireParsed(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
3733
3736
  custodyKeyManifestDigestB64u: parseDigestField(args.custodyKeyManifestDigestB64u, "custodyKeyManifestDigestB64u"),
3734
3737
  sourceIdentityDigestB64u: parseDigestField(args.sourceIdentityDigestB64u, "sourceIdentityDigestB64u")
3735
3738
  };
@@ -3743,7 +3746,7 @@ function parseOwnerLaneParticipantContinuityV1(raw, label = "ownerParticipantCon
3743
3746
  return buildOwnerLaneParticipantContinuityV1({
3744
3747
  signerId: parseWalletSignerId(record.signerId, `${label}.signerId`),
3745
3748
  participantIds: parseParticipantIds(record.participantIds, `${label}.participantIds`),
3746
- signingWorkerId: requireResult(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
3749
+ signingWorkerId: requireParsed(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
3747
3750
  custodyKeyManifestDigestB64u: parseDigestField(record.custodyKeyManifestDigestB64u, `${label}.custodyKeyManifestDigestB64u`),
3748
3751
  sourceIdentityDigestB64u: parseDigestField(record.sourceIdentityDigestB64u, `${label}.sourceIdentityDigestB64u`)
3749
3752
  });
@@ -4772,9 +4775,6 @@ function isAttachLinkedHolderToPresignPort(value) {
4772
4775
  }
4773
4776
 
4774
4777
  // src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.ts
4775
- function assertEcdsaHolderRound(value) {
4776
- return parseEcdsaAdditiveLaneHolderRoundV1(value);
4777
- }
4778
4778
  function nonEmpty(value, label) {
4779
4779
  if (typeof value !== "string" || !value.trim())
4780
4780
  throw new Error(`${label} is required`);
@@ -4799,7 +4799,7 @@ function parseEcdsaAdditiveLaneHolderPreparationV1(value) {
4799
4799
  }
4800
4800
  return {
4801
4801
  kind,
4802
- holderRound: assertEcdsaHolderRound(Reflect.get(value, "holderRound")),
4802
+ holderRound: parseEcdsaAdditiveLaneHolderRoundV1(Reflect.get(value, "holderRound")),
4803
4803
  holderPackage,
4804
4804
  encryptedDeltaPackageJson: nonEmpty(Reflect.get(value, "encryptedDeltaPackageJson"), "encryptedDeltaPackageJson")
4805
4805
  };
@@ -6842,12 +6842,6 @@ function assertDurableMaterialMatchesActivation(durableMaterial, activationBindi
6842
6842
  receipt: receipt.protocolReceipt
6843
6843
  });
6844
6844
  }
6845
- function routerAbEcdsaPublicIdentitiesEqual(left, right) {
6846
- 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;
6847
- }
6848
- function routerAbServerIdentitiesEqual(left, right) {
6849
- return left.server_id === right.server_id && left.key_epoch === right.key_epoch && left.recipient_encryption_key === right.recipient_encryption_key;
6850
- }
6851
6845
  function assertNormalSigningMatchesActivation(input) {
6852
6846
  const scope = input.normalSigning.scope;
6853
6847
  const facts = input.roleLocalPublicFacts;
@@ -6861,7 +6855,7 @@ function assertNormalSigningMatchesActivation(input) {
6861
6855
  lifecycleBinding: expectedMaterialActivation.lifecycleBinding,
6862
6856
  signingWorker: expectedMaterialActivation.signingWorker
6863
6857
  });
6864
- 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)) {
6858
+ 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)) {
6865
6859
  throw new Error("ECDSA normal-signing runtime does not match its activation");
6866
6860
  }
6867
6861
  }
@@ -9697,9 +9691,6 @@ function requireNonEmptyCanonicalString(value, label) {
9697
9691
  }
9698
9692
  return value;
9699
9693
  }
9700
- function verifiedClientActivationFactsEqual(left, right) {
9701
- return left.registrationRequestDigestB64u === right.registrationRequestDigestB64u && left.proofTranscriptDigestB64u === right.proofTranscriptDigestB64u && left.contextBinding32B64u === right.contextBinding32B64u && left.derivationClientSharePublicKey33B64u === right.derivationClientSharePublicKey33B64u && left.clientShareRetryCounter === right.clientShareRetryCounter && left.participantId === right.participantId;
9702
- }
9703
9694
  function requireExactKeys4(record, label, keys) {
9704
9695
  const actual = Object.keys(record).sort();
9705
9696
  const expected = [...keys].sort();
@@ -9766,7 +9757,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
9766
9757
  throw new Error("ECDSA activation operation requires an idempotency key");
9767
9758
  }
9768
9759
  const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(request.publicFacts);
9769
- if (!verifiedClientActivationFactsEqual(publicFacts, input.clientActivation)) {
9760
+ if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
9770
9761
  throw new Error("ECDSA activation operation changed the verified client facts");
9771
9762
  }
9772
9763
  return;
@@ -9776,7 +9767,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
9776
9767
  throw new Error("ECDSA activation operation changed the activation correlation");
9777
9768
  }
9778
9769
  const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(request.publicFacts);
9779
- if (!verifiedClientActivationFactsEqual(publicFacts, input.clientActivation)) {
9770
+ if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
9780
9771
  throw new Error("ECDSA activation operation changed the verified client facts");
9781
9772
  }
9782
9773
  return;
@@ -9798,7 +9789,7 @@ function assertCanonicalRequestMatchesVerifiedCeremony(input) {
9798
9789
  throw new Error("ECDSA activation commit request changed the prepared request digest");
9799
9790
  }
9800
9791
  const publicFacts = parseRouterAbEcdsaVerifiedClientActivationFactsV1(ecdsa.publicFacts);
9801
- if (!verifiedClientActivationFactsEqual(publicFacts, input.clientActivation)) {
9792
+ if (!sameRouterAbEcdsaVerifiedClientActivationFactsV1(publicFacts, input.clientActivation)) {
9802
9793
  throw new Error("ECDSA activation commit request changed the verified client facts");
9803
9794
  }
9804
9795
  }
@@ -604,8 +604,7 @@ var opaqueMaterials = new Map;
604
604
  var pendingOpaqueAuthorities = new Map;
605
605
  var opaqueSessionPorts = new Map;
606
606
  var opaqueSessionBindings = new Map;
607
- var derivationPort = null;
608
- var linkedHolderPort = null;
607
+ var authorityChannel = null;
609
608
  var onlinePort = null;
610
609
  var messageQueue = Promise.resolve();
611
610
  function randomHandle(prefix) {
@@ -692,14 +691,16 @@ async function initializeSession(payload) {
692
691
  if (materialExpiresAtMs < ceremonyExpiresAtMs) {
693
692
  throw new Error("ECDSA presign material expiry must cover the ceremony");
694
693
  }
694
+ const channel = authorityChannel;
695
+ const requestId = randomHandle("ecdsa-presign-init");
696
+ const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
697
+ let request;
695
698
  switch (payload.authority.kind) {
696
- case "role_local_derivation_handle": {
697
- if (!derivationPort) {
699
+ case "role_local_derivation_handle":
700
+ if (channel?.kind !== "role_local_derivation_handle") {
698
701
  throw new Error("ECDSA presign client has no derivation material channel");
699
702
  }
700
- const requestId = randomHandle("ecdsa-role-local-presign");
701
- const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
702
- const result = await requestOpaqueAuthority(derivationPort, {
703
+ request = {
703
704
  kind: "opaque_ecdsa_presign_session_init_v1",
704
705
  requestId,
705
706
  sessionId,
@@ -712,33 +713,13 @@ async function initializeSession(payload) {
712
713
  groupPublicKey33: groupPublicKeyBuffer,
713
714
  ceremonyExpiresAtMs,
714
715
  materialExpiresAtMs
715
- }, [groupPublicKeyBuffer]);
716
- const progress = requireOpaqueProgress(result);
717
- retainCompletedMaterial({
718
- progress,
719
- authorityPort: derivationPort,
720
- poolIdentity,
721
- groupPublicKey33,
722
- expiresAtMs: materialExpiresAtMs
723
- });
724
- if (progress.event !== "presign_done") {
725
- opaqueSessionPorts.set(sessionId, derivationPort);
726
- opaqueSessionBindings.set(sessionId, {
727
- poolIdentity,
728
- groupPublicKey33: groupPublicKey33.slice(),
729
- ceremonyExpiresAtMs,
730
- materialExpiresAtMs
731
- });
732
- }
733
- return { authority: { kind: "role_local_derivation_handle" }, progress };
734
- }
735
- case "linked_holder_signing_material": {
736
- if (!linkedHolderPort) {
716
+ };
717
+ break;
718
+ case "linked_holder_signing_material":
719
+ if (channel?.kind !== "linked_holder_signing_material") {
737
720
  throw new Error("ECDSA presign client has no linked holder material channel");
738
721
  }
739
- const requestId = randomHandle("linked-holder-ecdsa-presign");
740
- const groupPublicKeyBuffer = groupPublicKey33.slice().buffer;
741
- const result = await requestOpaqueAuthority(linkedHolderPort, {
722
+ request = {
742
723
  kind: "opaque_ecdsa_presign_session_init_v1",
743
724
  requestId,
744
725
  sessionId,
@@ -750,30 +731,39 @@ async function initializeSession(payload) {
750
731
  groupPublicKey33: groupPublicKeyBuffer,
751
732
  ceremonyExpiresAtMs,
752
733
  materialExpiresAtMs
753
- }, [groupPublicKeyBuffer]);
754
- const progress = requireOpaqueProgress(result);
755
- retainCompletedMaterial({
756
- progress,
757
- authorityPort: linkedHolderPort,
758
- poolIdentity,
759
- groupPublicKey33,
760
- expiresAtMs: materialExpiresAtMs
761
- });
762
- if (progress.event !== "presign_done") {
763
- opaqueSessionPorts.set(sessionId, linkedHolderPort);
764
- opaqueSessionBindings.set(sessionId, {
765
- poolIdentity,
766
- groupPublicKey33: groupPublicKey33.slice(),
767
- ceremonyExpiresAtMs,
768
- materialExpiresAtMs
769
- });
770
- }
771
- return { authority: { kind: "linked_holder_signing_material" }, progress };
772
- }
734
+ };
735
+ break;
773
736
  default:
774
737
  payload.authority;
775
738
  throw new Error("Unsupported ECDSA presign authority");
776
739
  }
740
+ const result = await requestOpaqueAuthority(channel.port, request, [groupPublicKeyBuffer]);
741
+ const progress = requireOpaqueProgress(result);
742
+ retainCompletedMaterial({
743
+ progress,
744
+ authorityPort: channel.port,
745
+ poolIdentity,
746
+ groupPublicKey33,
747
+ expiresAtMs: materialExpiresAtMs
748
+ });
749
+ if (progress.event !== "presign_done") {
750
+ opaqueSessionPorts.set(sessionId, channel.port);
751
+ opaqueSessionBindings.set(sessionId, {
752
+ poolIdentity,
753
+ groupPublicKey33: groupPublicKey33.slice(),
754
+ ceremonyExpiresAtMs,
755
+ materialExpiresAtMs
756
+ });
757
+ }
758
+ switch (request.authority.kind) {
759
+ case "role_local_derivation_handle":
760
+ return { authority: { kind: "role_local_derivation_handle" }, progress };
761
+ case "linked_holder_signing_material":
762
+ return { authority: { kind: "linked_holder_signing_material" }, progress };
763
+ default:
764
+ request.authority;
765
+ throw new Error("Unsupported ECDSA presign authority");
766
+ }
777
767
  }
778
768
  async function stepSession(payload) {
779
769
  const sessionId = coerceNonNullishString(payload.sessionId, "sessionId");
@@ -1132,8 +1122,9 @@ async function listAvailablePresignatures(payload) {
1132
1122
  expiresAtMs: entry.expiresAtMs
1133
1123
  });
1134
1124
  }
1135
- if (derivationPort) {
1136
- const result = await requestOpaqueAuthority(derivationPort, {
1125
+ const channel = authorityChannel;
1126
+ if (channel?.kind === "role_local_derivation_handle") {
1127
+ const result = await requestOpaqueAuthority(channel.port, {
1137
1128
  kind: "opaque_ecdsa_presign_material_list_v1",
1138
1129
  requestId: randomHandle("opaque-ecdsa-presign-list"),
1139
1130
  poolIdentity
@@ -1155,7 +1146,7 @@ async function listAvailablePresignatures(payload) {
1155
1146
  continue;
1156
1147
  }
1157
1148
  opaqueMaterials.set(materialHandle, {
1158
- authorityPort: derivationPort,
1149
+ authorityPort: channel.port,
1159
1150
  poolIdentity,
1160
1151
  groupPublicKey33,
1161
1152
  bigR33: bigR33.buffer,
@@ -1177,29 +1168,23 @@ async function listAvailablePresignatures(payload) {
1177
1168
  }
1178
1169
  return refs.sort((left, right) => left.createdAtMs - right.createdAtMs);
1179
1170
  }
1171
+ function replaceAuthorityChannel(channel) {
1172
+ if (authorityChannel) {
1173
+ purgeAuthorityPort(authorityChannel.port, "ECDSA presign authority channel was replaced");
1174
+ authorityChannel.port.close();
1175
+ }
1176
+ authorityChannel = channel;
1177
+ channel.port.onmessage = handleOpaqueAuthorityResponse.bind(null, channel.port);
1178
+ channel.port.onmessageerror = purgeAuthorityPort.bind(null, channel.port, "ECDSA presign authority channel failed");
1179
+ channel.port.start();
1180
+ }
1180
1181
  function attachControlChannel(value) {
1181
1182
  if (isAttachEcdsaDerivationToPresignPort(value)) {
1182
- if (derivationPort) {
1183
- purgeAuthorityPort(derivationPort, "ECDSA derivation presign authority channel was replaced");
1184
- }
1185
- derivationPort?.close();
1186
- derivationPort = value.port;
1187
- derivationPort.onmessage = (event) => handleOpaqueAuthorityResponse(value.port, event);
1188
- derivationPort.onmessageerror = () => purgeAuthorityPort(value.port, "ECDSA derivation presign authority channel failed");
1189
- derivationPort.start();
1183
+ replaceAuthorityChannel({ kind: "role_local_derivation_handle", port: value.port });
1190
1184
  return true;
1191
1185
  }
1192
1186
  if (isAttachLinkedHolderToPresignPort(value)) {
1193
- if (linkedHolderPort) {
1194
- purgeAuthorityPort(linkedHolderPort, "Linked holder ECDSA presign authority channel was replaced");
1195
- }
1196
- linkedHolderPort?.close();
1197
- linkedHolderPort = value.port;
1198
- linkedHolderPort.onmessage = (event) => handleOpaqueAuthorityResponse(value.port, event);
1199
- linkedHolderPort.onmessageerror = () => {
1200
- purgeAuthorityPort(value.port, "Linked holder ECDSA presign authority channel failed");
1201
- };
1202
- linkedHolderPort.start();
1187
+ replaceAuthorityChannel({ kind: "linked_holder_signing_material", port: value.port });
1203
1188
  return true;
1204
1189
  }
1205
1190
  if (isAttachPresignToOnlinePort(value)) {
@@ -5,6 +5,7 @@ var WorkerControlMessage = {
5
5
 
6
6
  // ../shared-ts/src/utils/emailOtpDomain.ts
7
7
  var EMAIL_OTP_CHANNEL = "email_otp";
8
+ var EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1 = "seams/email-otp/factor-release/v1";
8
9
  var WALLET_EMAIL_OTP_LOGIN_OPERATIONS = [
9
10
  "wallet_unlock",
10
11
  "transaction_sign",
@@ -109,6 +110,11 @@ function requireCanonicalBase64Url(value, label) {
109
110
  }
110
111
  return decoded;
111
112
  }
113
+ function requireParsed(result, label) {
114
+ if (result.ok)
115
+ return result.value;
116
+ throw new Error(`${label} ${result.error.message}`);
117
+ }
112
118
  function parseDigestField(value, label) {
113
119
  try {
114
120
  return parseDigestB64u(value);
@@ -5025,11 +5031,6 @@ function exactRecord2(raw, fields, label) {
5025
5031
  }
5026
5032
  return record;
5027
5033
  }
5028
- function requireParsed(parsed, label) {
5029
- if (!parsed.ok)
5030
- throw new Error(`${label} ${parsed.error.message}`);
5031
- return parsed.value;
5032
- }
5033
5034
  // ../shared-ts/src/utils/routerAbPublicKeyset.ts
5034
5035
  function requireRouterAbX25519PublicKey(value, label) {
5035
5036
  const publicKey = coerceNonEmptyString(value, label);
@@ -5086,6 +5087,9 @@ function normalizeRuntimePolicyScopeFields(input) {
5086
5087
  ...normalizeOptionalTrimmedString(scope.signingRootVersion) ? { signingRootVersion: normalizeOptionalTrimmedString(scope.signingRootVersion) } : {}
5087
5088
  };
5088
5089
  }
5090
+ function sameRuntimePolicyScope(left, right) {
5091
+ return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
5092
+ }
5089
5093
  function signingRootScopeFromRuntimePolicyScope(scope) {
5090
5094
  return {
5091
5095
  signingRootId: deriveSigningRootId(scope),
@@ -6889,9 +6893,6 @@ function readThresholdEd25519SessionId(value, label) {
6889
6893
  }
6890
6894
  return parsed.value;
6891
6895
  }
6892
- function readEvmFamilySigningKeySlotId(value, label) {
6893
- return requireEvmFamilySigningKeySlotId(value, label);
6894
- }
6895
6896
  function readNumber(value, label) {
6896
6897
  const normalized = Number(value);
6897
6898
  if (!Number.isFinite(normalized)) {
@@ -7097,7 +7098,7 @@ function parseOptionalWorkerEcdsaSessionHandleBinding(value) {
7097
7098
  throw new Error("Email OTP wallet-registration ECDSA handle binding requires evm-family keyScope");
7098
7099
  }
7099
7100
  return {
7100
- evmFamilySigningKeySlotId: String(readEvmFamilySigningKeySlotId(obj.evmFamilySigningKeySlotId, "ecdsaSessionHandleBinding.evmFamilySigningKeySlotId")),
7101
+ evmFamilySigningKeySlotId: String(requireEvmFamilySigningKeySlotId(obj.evmFamilySigningKeySlotId, "ecdsaSessionHandleBinding.evmFamilySigningKeySlotId")),
7101
7102
  authSubjectId: readString(obj.authSubjectId, "ecdsaSessionHandleBinding.authSubjectId"),
7102
7103
  action: "wallet_registration_ecdsa_prepare",
7103
7104
  operation: "registration",
@@ -9731,7 +9732,6 @@ async function addClientSealFromBytes(args) {
9731
9732
  keyHandle: args.keyHandle
9732
9733
  }), "wrappedCiphertext");
9733
9734
  }
9734
- var EMAIL_OTP_FACTOR_RELEASE_AAD_PREFIX = "seams/email-otp/factor-release/v1";
9735
9735
  async function generateEmailOtpFactorReleaseKeyPair(label) {
9736
9736
  const subtle = globalThis.crypto?.subtle;
9737
9737
  if (!subtle)
@@ -9755,7 +9755,7 @@ async function openEmailOtpFactorReleaseCiphertext(args) {
9755
9755
  const aesKey = await args.subtle.importKey("raw", sharedSecret, { name: "AES-GCM" }, false, [
9756
9756
  "decrypt"
9757
9757
  ]);
9758
- aad = new TextEncoder().encode(`${EMAIL_OTP_FACTOR_RELEASE_AAD_PREFIX}\x00${args.walletId}\x00${args.enrollmentId}\x00${args.enrollmentSealKeyVersion}\x00${args.challengeId}`);
9758
+ aad = new TextEncoder().encode(`${EMAIL_OTP_FACTOR_RELEASE_AAD_DOMAIN_V1}\x00${args.walletId}\x00${args.enrollmentId}\x00${args.enrollmentSealKeyVersion}\x00${args.challengeId}`);
9759
9759
  factorSecret32 = new Uint8Array(await args.subtle.decrypt({ name: "AES-GCM", iv: args.nonce, additionalData: aad, tagLength: 128 }, aesKey, args.ciphertext));
9760
9760
  if (factorSecret32.length !== 32) {
9761
9761
  throw new Error("Email OTP factor release plaintext must contain exactly 32 bytes");
@@ -11746,9 +11746,6 @@ function bytesToLowerHex(bytes) {
11746
11746
  output += byte.toString(16).padStart(2, "0");
11747
11747
  return output;
11748
11748
  }
11749
- function sameEmailOtpRuntimePolicyScope(left, right) {
11750
- return left.orgId === right.orgId && left.projectId === right.projectId && left.envId === right.envId && left.signingRootVersion === right.signingRootVersion;
11751
- }
11752
11749
  function walletSessionHasEcdsaActivation(args) {
11753
11750
  const materialActivation = routerAbMpcMaterialActivationRefFromWire(args.activation.public_capability.material_activation);
11754
11751
  let matchCount = 0;
@@ -12057,7 +12054,7 @@ async function restoreEmailOtpEcdsaMaterialFromCustody(args) {
12057
12054
  throw new Error("Email OTP ECDSA custody continuity does not match the requested key set");
12058
12055
  }
12059
12056
  for (const signer of args.continuity.signers) {
12060
- if (signer.walletKey.walletId !== args.projection.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)) {
12057
+ if (signer.walletKey.walletId !== args.projection.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)) {
12061
12058
  throw new Error("Email OTP ECDSA custody continuity conflicts across targets");
12062
12059
  }
12063
12060
  }
@@ -12843,7 +12840,7 @@ function assertEmailOtpEd25519YaoExportCapabilityContinuity(args) {
12843
12840
  if (!signingRoot) {
12844
12841
  throw new Error("Email OTP Ed25519 Yao export runtime policy scope is invalid");
12845
12842
  }
12846
- if (capability.nearAccountId !== args.nearAccountId || capability.applicationBinding.wallet_id !== args.walletId || capability.applicationBinding.near_ed25519_signing_key_id !== args.nearEd25519SigningKeyId || capability.applicationBinding.key_creation_signer_slot !== args.signerSlot || capability.applicationBinding.signing_root_id !== signingRoot.signingRootId || capability.lifecycle.accountId !== args.walletId || capability.lifecycle.rootShareEpoch !== args.runtimePolicyScope.signingRootVersion || !sameEmailOtpRuntimePolicyScope(capability.runtimePolicyScope, args.runtimePolicyScope)) {
12843
+ if (capability.nearAccountId !== args.nearAccountId || capability.applicationBinding.wallet_id !== args.walletId || capability.applicationBinding.near_ed25519_signing_key_id !== args.nearEd25519SigningKeyId || capability.applicationBinding.key_creation_signer_slot !== args.signerSlot || capability.applicationBinding.signing_root_id !== signingRoot.signingRootId || capability.lifecycle.accountId !== args.walletId || capability.lifecycle.rootShareEpoch !== args.runtimePolicyScope.signingRootVersion || !sameRuntimePolicyScope(capability.runtimePolicyScope, args.runtimePolicyScope)) {
12847
12844
  throw new Error("Email OTP Ed25519 Yao export capability changed the exact durable lane");
12848
12845
  }
12849
12846
  const nearAccountId = args.nearAccountId.trim().toLowerCase();
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -3796,6 +3796,11 @@ function requireCanonicalBase64Url(value, label) {
3796
3796
  }
3797
3797
  return decoded;
3798
3798
  }
3799
+ function requireParsed(result, label) {
3800
+ if (result.ok)
3801
+ return result.value;
3802
+ throw new Error(`${label} ${result.error.message}`);
3803
+ }
3799
3804
  function parseDigestField(value, label) {
3800
3805
  try {
3801
3806
  return parseDigestB64u(value);
@@ -4771,11 +4776,6 @@ var OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS = [
4771
4776
  "custodyKeyManifestDigestB64u",
4772
4777
  "sourceIdentityDigestB64u"
4773
4778
  ];
4774
- function requireResult(result, label) {
4775
- if (result.ok)
4776
- return result.value;
4777
- throw new Error(`${label} ${result.error.message}`);
4778
- }
4779
4779
  function parseWalletSignerId(raw, label = "walletSignerId") {
4780
4780
  if (typeof raw !== "string")
4781
4781
  throw new Error(`${label} must be a string`);
@@ -4809,7 +4809,7 @@ function buildOwnerLaneParticipantContinuityV1(args) {
4809
4809
  kind: "owner_lane_participant_continuity_v1",
4810
4810
  signerId: parseWalletSignerId(args.signerId),
4811
4811
  participantIds,
4812
- signingWorkerId: requireResult(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
4812
+ signingWorkerId: requireParsed(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
4813
4813
  custodyKeyManifestDigestB64u: parseDigestField(args.custodyKeyManifestDigestB64u, "custodyKeyManifestDigestB64u"),
4814
4814
  sourceIdentityDigestB64u: parseDigestField(args.sourceIdentityDigestB64u, "sourceIdentityDigestB64u")
4815
4815
  };
@@ -4823,7 +4823,7 @@ function parseOwnerLaneParticipantContinuityV1(raw, label = "ownerParticipantCon
4823
4823
  return buildOwnerLaneParticipantContinuityV1({
4824
4824
  signerId: parseWalletSignerId(record.signerId, `${label}.signerId`),
4825
4825
  participantIds: parseParticipantIds(record.participantIds, `${label}.participantIds`),
4826
- signingWorkerId: requireResult(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
4826
+ signingWorkerId: requireParsed(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
4827
4827
  custodyKeyManifestDigestB64u: parseDigestField(record.custodyKeyManifestDigestB64u, `${label}.custodyKeyManifestDigestB64u`),
4828
4828
  sourceIdentityDigestB64u: parseDigestField(record.sourceIdentityDigestB64u, `${label}.sourceIdentityDigestB64u`)
4829
4829
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seams/wallet",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "type": "module",
5
5
  "description": "Seams web and runtime TypeScript SDK for NEAR and EVM-family wallets",
6
6
  "main": "./dist/esm/index.js",
@@ -1,101 +0,0 @@
1
- /* Translucent outer shell wrapping solid content */
2
- .seams-halo-border-root {
3
- background: transparent;
4
- border-radius: 2rem;
5
- padding: 0px;
6
- max-width: 860px;
7
- box-sizing: border-box;
8
- box-shadow: var(--seams-halo__border-shadow, none);
9
- /* width: 100%; */
10
- width: fit-content;
11
- height: fit-content;
12
- }
13
-
14
- .seams-halo-border-inner {
15
- background: transparent;
16
- border: 1px solid transparent;
17
- border-radius: 2rem;
18
- padding: var(--seams-halo__padding, 1rem);
19
- position: relative;
20
- }
21
-
22
- .seams-halo-border-content {
23
- background: var(--seams-halo__inner-background, var(--seams-colors-colorBackground));
24
- /* border: 1px solid var(--seams-colors-borderPrimary); */
25
- border-radius: var(--seams-halo__ring-border-radius, 2rem);
26
- padding: var(--seams-halo__inner-padding, 2rem);
27
- position: relative;
28
- z-index: 2; /* keep content above the ring */
29
- }
30
-
31
- /* Rotating border container using pseudo-elements */
32
- .seams-rotating-border-container {
33
- position: relative;
34
- border-radius: 2rem;
35
- overflow: visible; /* allow the outside ring to show */
36
- }
37
-
38
- /*
39
- Rotating floating ring using a conic-gradient + mask.
40
- - --seams-halo__ring-gap : distance between the content edge and the ring
41
- - --seams-halo__ring-width : thickness of the ring
42
- - --seams-halo__ring-border-radius : border radius of the rotating arc
43
- - --seams-halo__border-shadow : box shadow of the rotating ring
44
- - --seams-halo__padding : outer padding of the container
45
- - --seams-halo__inner-padding : inner border padding of the container
46
- - --seams-halo__inner-background : inner background color of the container
47
-
48
- Technique:
49
- The ::before pseudo-element is inset by the gap, then we use a mask with
50
- content-box/xor to keep only the padding area (i.e. the ring width).
51
- */
52
- .seams-rotating-border-container::before {
53
- content: '';
54
- position: absolute;
55
- /* Extend outside the box so the ring is OUTSIDE */
56
- inset: calc(-1 * (var(--seams-halo__ring-gap, 8px) + var(--seams-halo__ring-width, 2px)));
57
- border-radius: calc(
58
- var(--seams-halo__ring-border-radius) + var(--seams-halo__ring-gap, 8px) +
59
- var(--seams-halo__ring-width, 2px)
60
- );
61
- pointer-events: none;
62
- z-index: 3; /* sit above content so it's visible */
63
-
64
- /* Animated conic gradient arc */
65
- background: conic-gradient(
66
- from var(--seams-ring-angle, 0deg),
67
- transparent 0%,
68
- #4daffe 10%,
69
- #4daffe 25%,
70
- transparent 35%
71
- );
72
-
73
- /* Keep only the padding area = ring width */
74
- padding: var(--seams-halo__ring-width, 2px);
75
- -webkit-mask:
76
- linear-gradient(#000 0 0) content-box,
77
- linear-gradient(#000 0 0);
78
- -webkit-mask-composite: xor;
79
- mask-composite: exclude;
80
-
81
- animation: seams-ring-rotate 1.15s linear infinite;
82
- }
83
-
84
- /* Make the custom angle property animatable */
85
- @property --seams-ring-angle {
86
- syntax: '<angle>';
87
- initial-value: 0deg;
88
- inherits: false;
89
- }
90
-
91
- @keyframes seams-ring-rotate {
92
- from {
93
- --seams-ring-angle: 0deg;
94
- }
95
- to {
96
- --seams-ring-angle: 360deg;
97
- }
98
- }
99
-
100
- /* Legacy styles removed: the new ring implementation supersedes
101
- the older conic-gradient border approach. */