@seams/wallet 0.7.1 → 0.8.0

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 (1880) hide show
  1. package/README.md +4 -5
  2. package/THIRD_PARTY_NOTICES.md +1 -113
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +12 -3
  5. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +2 -2
  6. package/dist/esm/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +1 -1
  7. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +1 -1
  8. package/dist/esm/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -2
  9. package/dist/esm/SeamsWeb/operations/auth/login.js +34 -49
  10. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  11. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
  12. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  13. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +2 -8
  14. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +1 -1
  15. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +5 -9
  16. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +1 -1
  17. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +1 -1
  18. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  19. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +2 -9
  20. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  21. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +38 -13
  22. package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +1 -1
  23. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +0 -1
  24. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +2 -4
  25. package/dist/esm/SeamsWeb/operations/recovery/walletRecovery.js +1 -2
  26. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +4 -5
  27. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +5 -9
  28. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +1 -2
  29. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +5 -20
  30. package/dist/esm/SeamsWeb/operations/registration/registration.js +5 -5
  31. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +1 -1
  32. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +1 -1
  33. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +2 -6
  34. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  35. package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
  36. package/dist/esm/SeamsWeb/publicApi/near.js +1 -1
  37. package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
  38. package/dist/esm/SeamsWeb/publicApi/transactionReview.js +4 -1
  39. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +28 -19
  40. package/dist/esm/SeamsWeb/walletIframe/client/router.js +1 -2
  41. package/dist/esm/SeamsWeb/walletIframe/client/surface/domain.js +0 -2
  42. package/dist/esm/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -4
  43. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +1 -1
  44. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  45. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +64 -0
  46. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +194 -385
  47. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +136 -0
  48. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  49. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -6
  50. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +11 -1
  51. package/dist/esm/advanced.js +0 -1
  52. package/dist/esm/base-styles.js +2 -2
  53. package/dist/esm/build-paths.js +0 -2
  54. package/dist/esm/core/accountData/near/accountProjection.js +0 -1
  55. package/dist/esm/core/accountData/near/keyMaterial.js +0 -1
  56. package/dist/esm/core/browser/walletIframe/events.js +1 -5
  57. package/dist/esm/core/browser/walletIframe/host-mode.js +0 -10
  58. package/dist/esm/core/config/chains.js +1 -2
  59. package/dist/esm/core/config/configBuilder.js +0 -1
  60. package/dist/esm/core/config/configHelpers.js +0 -1
  61. package/dist/esm/core/indexedDB/accountKeyMaterial.js +0 -1
  62. package/dist/esm/core/indexedDB/index.js +3 -4
  63. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +6 -14
  64. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  65. package/dist/esm/core/indexedDB/schemaNames.js +0 -22
  66. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +3 -3
  67. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +3 -3
  68. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +1 -1
  69. package/dist/esm/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -1
  70. package/dist/esm/core/indexedDB/seamsWalletDB/registrationSetup.js +103 -0
  71. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +2 -3
  72. package/dist/esm/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -35
  73. package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +4 -4
  74. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +37 -19
  75. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +10 -3
  76. package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  77. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +8 -25
  78. package/dist/esm/core/rpcClients/near/rpcCalls.js +39 -1
  79. package/dist/esm/core/rpcClients/relayer/passkeyCustodyEnvelope.js +3 -13
  80. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +0 -2
  81. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +72 -125
  82. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +21 -15
  83. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +1 -2
  84. package/dist/esm/core/signingEngine/assembly/createManagers.js +1 -1
  85. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
  86. package/dist/esm/core/signingEngine/assembly/ports/shared.js +1 -2
  87. package/dist/esm/core/signingEngine/assembly/warmup.js +1 -5
  88. package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  89. package/dist/esm/core/signingEngine/chains/near/nearSignerWasm.js +2 -33
  90. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -1
  91. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  92. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -29
  93. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  94. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  95. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +2 -5
  96. package/dist/esm/core/signingEngine/flows/recovery/stepUpAuthorization.js +1 -1
  97. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +3 -8
  98. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +1 -2
  99. package/dist/esm/core/signingEngine/flows/shared/signingStateMachine.js +2 -5
  100. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  101. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  102. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -2
  103. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  104. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  105. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +7 -5
  106. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  107. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +3 -7
  108. package/dist/esm/core/signingEngine/flows/signNear/implicitAccountFunding.js +1 -1
  109. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +33 -42
  110. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -2
  111. package/dist/esm/core/signingEngine/flows/signNear/shared/signingMaterials.js +1 -7
  112. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +4 -14
  113. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +2 -6
  114. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
  115. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +2 -6
  116. package/dist/esm/core/signingEngine/nonce/NonceCoordinator.js +1 -1
  117. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +1 -1
  118. package/dist/esm/core/signingEngine/nonce/nonceDiagnostics.js +1 -1
  119. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -1
  120. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -1
  121. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -3
  122. package/dist/esm/core/signingEngine/session/SigningSessionCoordinator.js +1 -4
  123. package/dist/esm/core/signingEngine/session/authority/authorityOperationResolver.js +17 -68
  124. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  125. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  126. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +107 -24
  127. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +1 -1
  128. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -3
  129. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +4 -15
  130. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +12 -16
  131. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -3
  132. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +0 -2
  133. package/dist/esm/core/signingEngine/session/identity/clientSessionPersistenceState.js +5 -16
  134. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -1
  135. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  136. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -2
  137. package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
  138. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +3 -9
  139. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +4 -16
  140. package/dist/esm/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +1 -14
  141. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  142. package/dist/esm/core/signingEngine/session/operationState/preparedOperation.js +1 -5
  143. package/dist/esm/core/signingEngine/session/passkey/ecdsaBootstrap.js +3 -6
  144. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -1
  145. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -4
  146. package/dist/esm/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -1
  147. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +2 -3
  148. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +13 -49
  149. package/dist/esm/core/signingEngine/session/persistence/clientSessionPersistence.js +8 -16
  150. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -10
  151. package/dist/esm/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -2
  152. package/dist/esm/core/signingEngine/session/routerAbSigningWalletSession.js +2 -8
  153. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  154. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  155. package/dist/esm/core/signingEngine/session/warmCapabilities/readModel.js +2 -8
  156. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +1 -12
  157. package/dist/esm/core/signingEngine/session/warmCapabilities/transitions.js +7 -11
  158. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -1
  159. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +6 -30
  160. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -3
  161. package/dist/esm/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +1 -5
  162. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
  163. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  164. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -3
  165. package/dist/esm/core/signingEngine/threshold/ecdsa/bootstrapSession.js +1 -5
  166. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  167. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  168. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +1 -1
  169. package/dist/esm/core/signingEngine/threshold/ed25519/yaoClient.js +1 -35
  170. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +0 -1
  171. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +1 -4
  172. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +4 -3
  173. package/dist/esm/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -1
  174. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +1 -1
  175. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -1
  176. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +25 -16
  177. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +3 -13
  178. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  179. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -1
  180. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +10 -13
  181. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +2 -6
  182. package/dist/esm/core/signingEngine/walletCustody/passkeyLink.js +7 -10
  183. package/dist/esm/core/signingEngine/walletCustody/registrationCeremony.js +0 -1
  184. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -1
  185. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -1
  186. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +1 -1
  187. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -2
  188. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -1
  189. package/dist/esm/core/signingEngine/webauthnAuth/walletOriginWebAuthn.js +109 -0
  190. package/dist/esm/core/signingEngine/workerManager/SignerWorkerManager.js +0 -2
  191. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  192. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -4
  193. package/dist/esm/core/signingEngine/workerManager/validation.js +1 -1
  194. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +4 -47
  195. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +0 -2
  196. package/dist/esm/core/types/accountIds.js +0 -1
  197. package/dist/esm/core/types/sdkSentEvents.js +1 -2
  198. package/dist/esm/core/types/signer-worker.js +1 -36
  199. package/dist/esm/core/walletRuntimePaths/base.js +11 -1
  200. package/dist/esm/plugins/headers.js +0 -1
  201. package/dist/esm/plugins/next.js +0 -1
  202. package/dist/esm/plugins/plugin-utils.js +0 -1
  203. package/dist/esm/plugins/shared-ts/src/utils/normalize.js +1 -1
  204. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +1 -1
  205. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -3
  206. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +2 -2
  207. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +8 -8
  208. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  209. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
  210. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +1 -1
  211. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
  212. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +8 -0
  213. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +21 -13
  214. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  215. package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
  216. package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
  217. package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
  218. package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
  219. package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
  220. package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
  221. package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
  222. package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
  223. package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
  224. package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
  225. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +1 -1
  226. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
  227. package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
  228. package/dist/esm/react/components/AccountMenuButton/index.js +11 -11
  229. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +1 -1
  230. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +1 -1
  231. package/dist/esm/react/components/QRCodeScanner.css +0 -15
  232. package/dist/esm/react/components/QRCodeScanner.js +2 -2
  233. package/dist/esm/react/components/ShowQRCode.css +0 -14
  234. package/dist/esm/react/components/ShowQRCode.js +4 -4
  235. package/dist/esm/react/components/theme/design-tokens.js +1 -2
  236. package/dist/esm/react/context/index.js +1 -1
  237. package/dist/esm/react/context/reactLoginStateBuilders.js +1 -1
  238. package/dist/esm/react/context/seamsManagerSingleton.js +2 -2
  239. package/dist/esm/react/context/useLoginStateRefresher.js +2 -5
  240. package/dist/esm/react/context/useSeamsContextValue.js +1 -1
  241. package/dist/esm/react/context/useSeamsWithSdkFlow.js +2 -3
  242. package/dist/esm/react/context/useWalletIframeLifecycle.js +1 -15
  243. package/dist/esm/react/hooks/useAccountInput.js +4 -4
  244. package/dist/esm/react/hooks/useNearClient.js +3 -3
  245. package/dist/esm/react/hooks/usePreconnectWalletAssets.js +1 -1
  246. package/dist/esm/react/hooks/useQRCamera.js +2 -2
  247. package/dist/esm/react/hooks/useWallet.js +1 -1
  248. package/dist/esm/react/index.js +10 -10
  249. package/dist/esm/react/styles/styles.css +25 -86
  250. package/dist/esm/react/transactionReview/TransactionReviewHost.js +1 -1
  251. package/dist/esm/react/transactionReview/boundCalls.js +2 -2
  252. package/dist/esm/react/transactionReview/contract.js +1 -1
  253. package/dist/esm/react/transactionReview/controller.js +2 -2
  254. package/dist/esm/react/transactionReview/snapshot.js +2 -2
  255. package/dist/esm/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  256. package/dist/esm/sdk/EvmClient-DoxytQaJ.js +1 -0
  257. package/dist/esm/sdk/NearClient-vJ65Wjrq.js +1 -0
  258. package/dist/esm/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  259. package/dist/esm/sdk/accountIds-C3Ihsd2c.js +1 -0
  260. package/dist/esm/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  261. package/dist/esm/sdk/actions-DZLxCcrU.js +1 -0
  262. package/dist/esm/sdk/adapters-DtAyuoiA.js +2 -0
  263. package/dist/esm/sdk/base-Xtd32asf.js +1 -0
  264. package/dist/esm/sdk/base64-ojm5DKcF.js +1 -0
  265. package/dist/esm/sdk/browser-CsOGMbMy.js +8 -0
  266. package/dist/esm/sdk/bytes-t5S5mkat.js +1 -0
  267. package/dist/esm/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  268. package/dist/esm/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  269. package/dist/esm/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  270. package/dist/esm/sdk/chains-yAls2d9X.js +1 -0
  271. package/dist/esm/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  272. package/dist/esm/sdk/chunk-dVx5-UGu.js +1 -0
  273. package/dist/esm/sdk/configHelpers-CseiVoZD.js +1 -0
  274. package/dist/esm/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  275. package/dist/esm/sdk/defaultConfigs-CWpApkMq.js +1 -0
  276. package/dist/esm/sdk/display-jK7_hYho.js +1 -0
  277. package/dist/esm/sdk/domainIds-GDzjOs6i.js +1 -0
  278. package/dist/esm/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  279. package/dist/esm/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  280. package/dist/esm/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  281. package/dist/esm/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  282. package/dist/esm/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  283. package/dist/esm/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  284. package/dist/esm/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  285. package/dist/esm/sdk/errors-DfbnsXjO.js +1 -0
  286. package/dist/esm/sdk/events-BJyVcnsn.js +1 -0
  287. package/dist/esm/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  288. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  289. package/dist/esm/sdk/exactSessionState-CjD8gekO.js +210 -0
  290. package/dist/esm/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  291. package/dist/esm/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  292. package/dist/esm/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  293. package/dist/esm/sdk/helpers-D4QckQhq.js +1 -0
  294. package/dist/esm/sdk/host-BAqOYnju.js +1 -0
  295. package/dist/esm/sdk/intentDigest-CB6zy3lN.js +1 -0
  296. package/dist/esm/sdk/jsonRpc-C85RYR0A.js +1 -0
  297. package/dist/esm/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  298. package/dist/esm/sdk/keccak-zexutGfG.js +1 -0
  299. package/dist/esm/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  300. package/dist/esm/sdk/localOnly-DBQRG6Qh.js +1 -0
  301. package/dist/esm/sdk/messages-Cv2j4SKI.js +1 -0
  302. package/dist/esm/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  303. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  304. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  305. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  306. package/dist/esm/sdk/nearRpcResults--cBcfmp4.js +1 -0
  307. package/dist/esm/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  308. package/dist/esm/sdk/normalization-BGPR6osg.js +1 -0
  309. package/dist/esm/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  310. package/dist/esm/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  311. package/dist/esm/sdk/passkey-custody-LP4UTFbn.js +1 -0
  312. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  313. package/dist/esm/sdk/prfCache-Mbo7_USg.js +1 -0
  314. package/dist/esm/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  315. package/dist/esm/sdk/promptText-s8TQ6ckX.js +1 -0
  316. package/dist/esm/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  317. package/dist/esm/sdk/registration-Btozh7uh.js +1 -0
  318. package/dist/esm/sdk/registration-CSAG_h4Y.js +1 -0
  319. package/dist/esm/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  320. package/dist/esm/sdk/registrationIds-BIel5S0i.js +1 -0
  321. package/dist/esm/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  322. package/dist/esm/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  323. package/dist/esm/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  324. package/dist/esm/sdk/relayerHttp-DaPeS929.js +1 -0
  325. package/dist/esm/sdk/routePlan-B_KJaPtm.js +1 -0
  326. package/dist/esm/sdk/router-Dd3fFHk3.js +1 -0
  327. package/dist/esm/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  328. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  329. package/dist/esm/sdk/runtime-auth-B2M91rSx.js +1 -0
  330. package/dist/esm/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  331. package/dist/esm/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  332. package/dist/esm/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  333. package/dist/esm/sdk/runtime-export-JXYk8sQ-.js +1 -0
  334. package/dist/esm/sdk/runtime-near-BB8AG6dV.js +1 -0
  335. package/dist/esm/sdk/runtime-preferences-DKFZYccW.js +1 -0
  336. package/dist/esm/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  337. package/dist/esm/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  338. package/dist/esm/sdk/runtimeContext-BpObgzbj.js +6 -0
  339. package/dist/esm/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  340. package/dist/esm/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  341. package/dist/esm/sdk/secp256k1-B_6W9QDJ.js +1 -0
  342. package/dist/esm/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  343. package/dist/esm/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  344. package/dist/esm/sdk/shared-j_KsFbCT.js +1 -0
  345. package/dist/esm/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  346. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  347. package/dist/esm/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  348. package/dist/esm/sdk/signNear-mWbTE2Dl.js +1 -0
  349. package/dist/esm/sdk/signatureUses-CQkkUcwT.js +1 -0
  350. package/dist/esm/sdk/signerDomain-BhUTzDmF.js +1 -0
  351. package/dist/esm/sdk/signerLoader-By0IY24G.js +1 -0
  352. package/dist/esm/sdk/signerSlot-BQ1g5JNV.js +1 -0
  353. package/dist/esm/sdk/signingFlow-LUWrZi2d.js +2 -0
  354. package/dist/esm/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  355. package/dist/esm/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  356. package/dist/esm/sdk/trace-M34pNGuF.js +1 -0
  357. package/dist/esm/sdk/transaction-activity-BbDod7ji.js +1 -0
  358. package/dist/esm/sdk/transactionReview-CBE5oH4c.js +1 -0
  359. package/dist/esm/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  360. package/dist/esm/sdk/transactionState-9d7f3xVj.js +1 -0
  361. package/dist/esm/sdk/tx-confirm-ui.js +23 -204
  362. package/dist/esm/sdk/types-M7vxrYtJ.js +1 -0
  363. package/dist/esm/sdk/validation-dC1-_uyG.js +1 -0
  364. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -13
  365. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -6
  366. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -13
  367. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -4
  368. package/dist/esm/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  369. package/dist/esm/sdk/wallet-ui.css +1 -6134
  370. package/dist/esm/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  371. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  372. package/dist/esm/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  373. package/dist/esm/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  374. package/dist/esm/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  375. package/dist/esm/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  376. package/dist/esm/sdk/webauthnP256-qu06GNFm.js +1 -0
  377. package/dist/esm/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  378. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  379. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  380. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  381. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  382. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  383. package/dist/esm/shared-ts/src/device-linking/parsers.js +41 -1
  384. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +6 -9
  385. package/dist/esm/shared-ts/src/near/actions.js +10 -1
  386. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  387. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  388. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  389. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -4
  390. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -8
  391. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +0 -1
  392. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -1
  393. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +13 -17
  394. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  395. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  396. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -2
  397. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -7
  398. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -5
  399. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  400. package/dist/esm/shared-ts/src/utils/encoders.js +1 -1
  401. package/dist/esm/shared-ts/src/utils/errors.js +0 -1
  402. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  403. package/dist/esm/shared-ts/src/utils/index.js +4 -5
  404. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  405. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  406. package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -9
  407. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +12 -0
  408. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +3 -6
  409. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -3
  410. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  411. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  412. package/dist/esm/shared-ts/src/utils/validation.js +0 -1
  413. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  414. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +10 -1
  415. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  416. package/dist/esm/shared-ts/src/wallet-recovery/index.js +1 -1
  417. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  418. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -2
  419. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  420. package/dist/esm/theme/base-styles.js +11 -11
  421. package/dist/esm/utils/deviceDetection.js +16 -1
  422. package/dist/esm/utils/menuItemBlink.js +24 -0
  423. package/dist/esm/utils/qrScanner.js +288 -0
  424. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +12 -753
  425. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +126 -3701
  426. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  427. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.d.ts +0 -42
  428. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.js +2 -106
  429. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  430. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.d.ts +3 -158
  431. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.js +2 -452
  432. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  433. package/dist/public/headers.manifest.json +1 -1
  434. package/dist/public/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  435. package/dist/public/sdk/EvmClient-DoxytQaJ.js +1 -0
  436. package/dist/public/sdk/NearClient-vJ65Wjrq.js +1 -0
  437. package/dist/public/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  438. package/dist/public/sdk/accountIds-C3Ihsd2c.js +1 -0
  439. package/dist/public/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  440. package/dist/public/sdk/actions-DZLxCcrU.js +1 -0
  441. package/dist/public/sdk/adapters-DtAyuoiA.js +2 -0
  442. package/dist/public/sdk/base-Xtd32asf.js +1 -0
  443. package/dist/public/sdk/base64-ojm5DKcF.js +1 -0
  444. package/dist/public/sdk/browser-CsOGMbMy.js +8 -0
  445. package/dist/public/sdk/bytes-t5S5mkat.js +1 -0
  446. package/dist/public/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  447. package/dist/public/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  448. package/dist/public/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  449. package/dist/public/sdk/chains-yAls2d9X.js +1 -0
  450. package/dist/public/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  451. package/dist/public/sdk/chunk-dVx5-UGu.js +1 -0
  452. package/dist/public/sdk/configHelpers-CseiVoZD.js +1 -0
  453. package/dist/public/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  454. package/dist/public/sdk/defaultConfigs-CWpApkMq.js +1 -0
  455. package/dist/public/sdk/display-jK7_hYho.js +1 -0
  456. package/dist/public/sdk/domainIds-GDzjOs6i.js +1 -0
  457. package/dist/public/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  458. package/dist/public/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  459. package/dist/public/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  460. package/dist/public/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  461. package/dist/public/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  462. package/dist/public/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  463. package/dist/public/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  464. package/dist/public/sdk/errors-DfbnsXjO.js +1 -0
  465. package/dist/public/sdk/events-BJyVcnsn.js +1 -0
  466. package/dist/public/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  467. package/dist/public/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  468. package/dist/public/sdk/exactSessionState-CjD8gekO.js +210 -0
  469. package/dist/public/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  470. package/dist/public/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  471. package/dist/public/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  472. package/dist/public/sdk/helpers-D4QckQhq.js +1 -0
  473. package/dist/public/sdk/host-BAqOYnju.js +1 -0
  474. package/dist/public/sdk/intentDigest-CB6zy3lN.js +1 -0
  475. package/dist/public/sdk/jsonRpc-C85RYR0A.js +1 -0
  476. package/dist/public/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  477. package/dist/public/sdk/keccak-zexutGfG.js +1 -0
  478. package/dist/public/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  479. package/dist/public/sdk/localOnly-DBQRG6Qh.js +1 -0
  480. package/dist/public/sdk/messages-Cv2j4SKI.js +1 -0
  481. package/dist/public/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  482. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  483. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  484. package/dist/public/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  485. package/dist/public/sdk/nearRpcResults--cBcfmp4.js +1 -0
  486. package/dist/public/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  487. package/dist/public/sdk/normalization-BGPR6osg.js +1 -0
  488. package/dist/public/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  489. package/dist/public/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  490. package/dist/public/sdk/passkey-custody-LP4UTFbn.js +1 -0
  491. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  492. package/dist/public/sdk/prfCache-Mbo7_USg.js +1 -0
  493. package/dist/public/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  494. package/dist/public/sdk/promptText-s8TQ6ckX.js +1 -0
  495. package/dist/public/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  496. package/dist/public/sdk/registration-Btozh7uh.js +1 -0
  497. package/dist/public/sdk/registration-CSAG_h4Y.js +1 -0
  498. package/dist/public/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  499. package/dist/public/sdk/registrationIds-BIel5S0i.js +1 -0
  500. package/dist/public/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  501. package/dist/public/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  502. package/dist/public/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  503. package/dist/public/sdk/relayerHttp-DaPeS929.js +1 -0
  504. package/dist/public/sdk/routePlan-B_KJaPtm.js +1 -0
  505. package/dist/public/sdk/router-Dd3fFHk3.js +1 -0
  506. package/dist/public/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  507. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  508. package/dist/public/sdk/runtime-auth-B2M91rSx.js +1 -0
  509. package/dist/public/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  510. package/dist/public/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  511. package/dist/public/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  512. package/dist/public/sdk/runtime-export-JXYk8sQ-.js +1 -0
  513. package/dist/public/sdk/runtime-near-BB8AG6dV.js +1 -0
  514. package/dist/public/sdk/runtime-preferences-DKFZYccW.js +1 -0
  515. package/dist/public/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  516. package/dist/public/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  517. package/dist/public/sdk/runtimeContext-BpObgzbj.js +6 -0
  518. package/dist/public/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  519. package/dist/public/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  520. package/dist/public/sdk/secp256k1-B_6W9QDJ.js +1 -0
  521. package/dist/public/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  522. package/dist/public/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  523. package/dist/public/sdk/shared-j_KsFbCT.js +1 -0
  524. package/dist/public/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  525. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  526. package/dist/public/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  527. package/dist/public/sdk/signNear-mWbTE2Dl.js +1 -0
  528. package/dist/public/sdk/signatureUses-CQkkUcwT.js +1 -0
  529. package/dist/public/sdk/signerDomain-BhUTzDmF.js +1 -0
  530. package/dist/public/sdk/signerLoader-By0IY24G.js +1 -0
  531. package/dist/public/sdk/signerSlot-BQ1g5JNV.js +1 -0
  532. package/dist/public/sdk/signingFlow-LUWrZi2d.js +2 -0
  533. package/dist/public/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  534. package/dist/public/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  535. package/dist/public/sdk/trace-M34pNGuF.js +1 -0
  536. package/dist/public/sdk/transaction-activity-BbDod7ji.js +1 -0
  537. package/dist/public/sdk/transactionReview-CBE5oH4c.js +1 -0
  538. package/dist/public/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  539. package/dist/public/sdk/transactionState-9d7f3xVj.js +1 -0
  540. package/dist/public/sdk/tx-confirm-ui.js +23 -204
  541. package/dist/public/sdk/types-M7vxrYtJ.js +1 -0
  542. package/dist/public/sdk/validation-dC1-_uyG.js +1 -0
  543. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -13
  544. package/dist/public/sdk/wallet-iframe-host-full.js +1 -6
  545. package/dist/public/sdk/wallet-iframe-host-near.js +1 -13
  546. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -4
  547. package/dist/public/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  548. package/dist/public/sdk/wallet-ui.css +1 -6134
  549. package/dist/public/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  550. package/dist/public/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  551. package/dist/public/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  552. package/dist/public/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  553. package/dist/public/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  554. package/dist/public/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  555. package/dist/public/sdk/webauthnP256-qu06GNFm.js +1 -0
  556. package/dist/public/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  557. package/dist/public/sdk/workers/device-linking-key.worker.js +567 -2131
  558. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1529 -2683
  559. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +1 -273
  560. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +59 -346
  561. package/dist/public/sdk/workers/email-otp.worker.js +307 -2185
  562. package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
  563. package/dist/public/sdk/workers/evm-crypto.worker.js +0 -188
  564. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  565. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  566. package/dist/public/sdk/workers/near-signer.worker.js +16 -718
  567. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  568. package/dist/public/sdk/workers/passkey-confirm.worker.js +0 -134
  569. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +149 -506
  570. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +0 -134
  571. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  572. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  573. package/dist/public/sdk/workers/shamir3pass.worker.js +0 -134
  574. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  575. package/dist/public/sdk/workers/tempo-signer.worker.js +0 -134
  576. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  577. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  578. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +136 -1636
  579. package/dist/public/sdk/workers/wallet_custody_ceremony.js +0 -14
  580. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  581. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  582. package/dist/public/wallet-assets.manifest.json +234 -258
  583. package/dist/public/wallet-service/index.html +4 -4
  584. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  585. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  586. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  587. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  588. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  589. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +6 -63
  590. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  591. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  592. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  593. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  594. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -12
  595. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +3 -17
  596. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  597. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  598. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  599. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  600. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -845
  601. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  602. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  603. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  604. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  605. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  606. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  607. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  608. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  609. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  610. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  611. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  612. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  613. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  614. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  615. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  616. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  617. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  618. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  619. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  620. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  621. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  622. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  623. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  624. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  625. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  626. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  627. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  628. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  629. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  630. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  631. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  632. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  633. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  634. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  635. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  636. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  637. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  638. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  639. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  640. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  641. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  642. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  643. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  644. package/dist/types/wallet/build-paths.d.ts +1 -2
  645. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
  646. package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
  647. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
  648. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +1 -1
  649. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -20
  650. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +0 -4
  651. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
  652. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
  653. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +0 -1
  654. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlow.d.ts +2 -0
  655. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +0 -10
  656. package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdEcdsaProvisioning.d.ts +1 -2
  657. package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
  658. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
  659. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +0 -2
  660. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +1 -1
  661. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/domain.d.ts +0 -8
  662. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.d.ts +1 -2
  663. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  664. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +0 -1
  665. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
  666. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +17 -0
  667. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +12 -5
  668. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +15 -0
  669. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionReconciliation.d.ts +3 -3
  670. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
  671. package/dist/types/wallet/src/advanced.d.ts +1 -1
  672. package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
  673. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +0 -2
  674. package/dist/types/wallet/src/core/indexedDB/index.d.ts +3 -5
  675. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -38
  676. package/dist/types/wallet/src/core/indexedDB/pendingWalletRecoveryCommit.d.ts +1 -4
  677. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
  678. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +0 -22
  679. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
  680. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +1 -1
  681. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +1 -1
  682. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +0 -1
  683. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/registrationSetup.d.ts +42 -0
  684. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signingSessionSeals.d.ts +1 -5
  685. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +8 -7
  686. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  687. package/dist/types/wallet/src/core/platform/browser/createBrowserPlatformRuntime.d.ts +1 -6
  688. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +7 -51
  689. package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
  690. package/dist/types/wallet/src/core/platform/index.d.ts +4 -4
  691. package/dist/types/wallet/src/core/platform/ports.d.ts +4 -58
  692. package/dist/types/wallet/src/core/platform/runtime.d.ts +0 -2
  693. package/dist/types/wallet/src/core/platform/secretSources.d.ts +0 -29
  694. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +1 -1
  695. package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
  696. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
  697. package/dist/types/wallet/src/core/rpcClients/relayer/passkeyCustodyEnvelope.d.ts +0 -6
  698. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -9
  699. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
  700. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +2 -19
  701. package/dist/types/wallet/src/core/signingEngine/assembly/ports/shared.d.ts +0 -1
  702. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +0 -2
  703. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +0 -1
  704. package/dist/types/wallet/src/core/signingEngine/chains/near/nearSignerWasm.d.ts +0 -10
  705. package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
  706. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
  707. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
  708. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportConfirmation.d.ts +0 -15
  709. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
  710. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +2 -21
  711. package/dist/types/wallet/src/core/signingEngine/flows/registration/public.d.ts +1 -9
  712. package/dist/types/wallet/src/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.d.ts +0 -2
  713. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +0 -6
  714. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
  715. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
  716. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
  717. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +7 -18
  718. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
  719. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
  720. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +4 -14
  721. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +0 -5
  722. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
  723. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingMaterials.d.ts +0 -4
  724. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.d.ts +0 -9
  725. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
  726. package/dist/types/wallet/src/core/signingEngine/interfaces/index.d.ts +0 -1
  727. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
  728. package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
  729. package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
  730. package/dist/types/wallet/src/core/signingEngine/nonce/NonceCoordinator.d.ts +1 -1
  731. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
  732. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -11
  733. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
  734. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
  735. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.d.ts +0 -3
  736. package/dist/types/wallet/src/core/signingEngine/session/authority/authorityOperationResolver.d.ts +1 -24
  737. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
  738. package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +0 -2
  739. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
  740. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaLogin.d.ts +0 -3
  741. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
  742. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaRecovery.d.ts +0 -5
  743. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -7
  744. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/secretEscrow.d.ts +0 -1
  745. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
  746. package/dist/types/wallet/src/core/signingEngine/session/identity/clientSessionPersistenceState.d.ts +0 -6
  747. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.d.ts +0 -3
  748. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -8
  749. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +0 -3
  750. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -7
  751. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
  752. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -14
  753. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
  754. package/dist/types/wallet/src/core/signingEngine/session/identity/walletUnlockSubject.d.ts +0 -8
  755. package/dist/types/wallet/src/core/signingEngine/session/keyMaterialBrands.d.ts +1 -4
  756. package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
  757. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +4 -7
  758. package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
  759. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
  760. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.d.ts +0 -3
  761. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
  762. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
  763. package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
  764. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +4 -9
  765. package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +0 -2
  766. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
  767. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
  768. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
  769. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +0 -1
  770. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.d.ts +0 -2
  771. package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
  772. package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.d.ts +1 -10
  773. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +2 -2
  774. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionTransportAuth.d.ts +0 -5
  775. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +0 -2
  776. package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +1 -1
  777. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
  778. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
  779. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.d.ts +0 -105
  780. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
  781. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
  782. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +0 -1
  783. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.d.ts +0 -12
  784. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/transitions.d.ts +0 -2
  785. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.typecheck.d.ts +1 -10
  786. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
  787. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodRunners.d.ts +1 -5
  788. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
  789. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +4 -7
  790. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -9
  791. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -19
  792. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -32
  793. package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
  794. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
  795. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.d.ts +1 -15
  796. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/activation.d.ts +0 -4
  797. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -8
  798. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
  799. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
  800. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/connectSession.d.ts +0 -1
  801. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
  802. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +1 -8
  803. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
  804. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.d.ts +1 -4
  805. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
  806. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.d.ts +0 -1
  807. package/dist/types/wallet/src/core/signingEngine/walletCustody/emailOtpLink.d.ts +0 -1
  808. package/dist/types/wallet/src/core/signingEngine/walletCustody/openCustodyCache.d.ts +0 -3
  809. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +0 -3
  810. package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +0 -1
  811. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/walletOriginWebAuthn.d.ts +8 -0
  812. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +0 -2
  813. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +0 -8
  814. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
  815. package/dist/types/wallet/src/core/signingEngine/workerManager/validation.d.ts +1 -1
  816. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +9 -109
  817. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/requests.d.ts +0 -5
  818. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -12
  819. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -10
  820. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/otpVerification.d.ts +0 -1
  821. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +0 -2
  822. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +0 -1
  823. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/near-signer.worker.d.ts +3 -31
  824. package/dist/types/wallet/src/core/types/accountIds.d.ts +1 -1
  825. package/dist/types/wallet/src/core/types/index.d.ts +0 -18
  826. package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
  827. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
  828. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +5 -23
  829. package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
  830. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +0 -5
  831. package/dist/types/wallet/src/core/types/signer-worker.d.ts +75 -134
  832. package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
  833. package/dist/types/wallet/src/react/components/AccountMenuButton/Toggle.d.ts +0 -15
  834. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
  835. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
  836. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
  837. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
  838. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
  839. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
  840. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
  841. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
  842. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
  843. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
  844. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
  845. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +0 -19
  846. package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
  847. package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
  848. package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
  849. package/dist/types/wallet/src/utils/qrScanner.d.ts +1 -21
  850. package/dist/workers/device-linking-key.worker.js +567 -2131
  851. package/dist/workers/ecdsa-derivation-client.worker.js +1529 -2683
  852. package/dist/workers/ecdsa-online-client.worker.js +1 -273
  853. package/dist/workers/ecdsa-presign-client.worker.js +59 -346
  854. package/dist/workers/email-otp.worker.js +307 -2185
  855. package/dist/workers/email_otp_runtime_bg.wasm +0 -0
  856. package/dist/workers/evm-crypto.worker.js +0 -188
  857. package/dist/workers/evm_crypto.wasm +0 -0
  858. package/dist/workers/evm_crypto_bg.wasm +0 -0
  859. package/dist/workers/near-signer.worker.js +16 -718
  860. package/dist/workers/near_signer.wasm +0 -0
  861. package/dist/workers/passkey-confirm.worker.js +0 -134
  862. package/dist/workers/passkey-mpc-export.worker.js +149 -506
  863. package/dist/workers/passkey-mpc-session.worker.js +0 -134
  864. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  865. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  866. package/dist/workers/shamir3pass.worker.js +0 -134
  867. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  868. package/dist/workers/tempo-signer.worker.js +0 -134
  869. package/dist/workers/tempo_signer.wasm +0 -0
  870. package/dist/workers/tempo_signer_bg.wasm +0 -0
  871. package/dist/workers/wallet-custody-ceremony.worker.js +136 -1636
  872. package/dist/workers/wallet_custody_ceremony.js +0 -14
  873. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  874. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  875. package/package.json +1 -14
  876. package/dist/esm/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  877. package/dist/esm/components/AccountMenuButton/AccountsSection.css +0 -81
  878. package/dist/esm/components/AccountMenuButton/ExportKeysSection.css +0 -96
  879. package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  880. package/dist/esm/components/AccountMenuButton/LinkedDevicesModal.css +0 -612
  881. package/dist/esm/components/AccountMenuButton/MenuItem.css +0 -181
  882. package/dist/esm/components/AccountMenuButton/ProfileDropdown.css +0 -80
  883. package/dist/esm/components/AccountMenuButton/TransactionSettingsSection.css +0 -107
  884. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -182
  885. package/dist/esm/components/AccountMenuButton/WalletSettingsLayout.css +0 -456
  886. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -75
  887. package/dist/esm/components/AccountMenuButton/icons/TouchIcon.css +0 -46
  888. package/dist/esm/components/QRCodeScanner.css +0 -502
  889. package/dist/esm/components/ShowQRCode.css +0 -345
  890. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +0 -239
  891. package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  892. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  893. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  894. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  895. package/dist/esm/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  896. package/dist/esm/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  897. package/dist/esm/plugins/shared-ts/src/utils/base58.js +0 -1
  898. package/dist/esm/plugins/shared-ts/src/utils/near.js +0 -1
  899. package/dist/esm/plugins/shared-ts/src/utils/validation.js +0 -2
  900. package/dist/esm/react/SeamsWeb/SeamsWeb.js +0 -1909
  901. package/dist/esm/react/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +0 -817
  902. package/dist/esm/react/SeamsWeb/assembly/browserWorkerWarmupPolicy.js +0 -31
  903. package/dist/esm/react/SeamsWeb/assembly/configureBrowserIndexedDB.js +0 -10
  904. package/dist/esm/react/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +0 -95
  905. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningRuntime.js +0 -34
  906. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningStores.js +0 -39
  907. package/dist/esm/react/SeamsWeb/assembly/createBrowserStepUpRuntime.js +0 -34
  908. package/dist/esm/react/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -31
  909. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeOverlayState.js +0 -9
  910. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeRouter.js +0 -44
  911. package/dist/esm/react/SeamsWeb/assembly/initializeBrowserSigningRuntime.js +0 -19
  912. package/dist/esm/react/SeamsWeb/assembly/runtimeConfig.js +0 -12
  913. package/dist/esm/react/SeamsWeb/operations/auth/login.js +0 -4398
  914. package/dist/esm/react/SeamsWeb/operations/auth/scheduleEcdsaSessionPresignaturePrefill.js +0 -41
  915. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +0 -143
  916. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +0 -36
  917. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockSubject.js +0 -294
  918. package/dist/esm/react/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +0 -72
  919. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +0 -191
  920. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/challenge.js +0 -247
  921. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +0 -572
  922. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +0 -69
  923. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.js +0 -62
  924. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +0 -69
  925. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +0 -95
  926. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/addPasskey.js +0 -260
  927. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/ecdsaBootstrap.js +0 -17
  928. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +0 -34
  929. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +0 -117
  930. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localUnlock.js +0 -16
  931. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/loginAssertion.js +0 -25
  932. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/registrationAuthority.js +0 -84
  933. package/dist/esm/react/SeamsWeb/operations/authMethods/revokeAuthMethod.js +0 -205
  934. package/dist/esm/react/SeamsWeb/operations/authMethods/sourcePasskeyProof.js +0 -12
  935. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +0 -444
  936. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingComposition.js +0 -106
  937. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +0 -194
  938. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +0 -525
  939. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +0 -135
  940. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +0 -219
  941. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetCredential.js +0 -63
  942. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetEd25519ExportRoot.js +0 -61
  943. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +0 -337
  944. package/dist/esm/react/SeamsWeb/operations/devices/linkDevice.js +0 -75
  945. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlow.js +0 -1358
  946. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +0 -143
  947. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +0 -119
  948. package/dist/esm/react/SeamsWeb/operations/devices/scanDevice.js +0 -384
  949. package/dist/esm/react/SeamsWeb/operations/devices/walletHostComposition.js +0 -130
  950. package/dist/esm/react/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +0 -191
  951. package/dist/esm/react/SeamsWeb/operations/evm/index.js +0 -35
  952. package/dist/esm/react/SeamsWeb/operations/near/actions.js +0 -484
  953. package/dist/esm/react/SeamsWeb/operations/near/commandSubject.js +0 -14
  954. package/dist/esm/react/SeamsWeb/operations/near/delegateAction.js +0 -247
  955. package/dist/esm/react/SeamsWeb/operations/near/index.js +0 -37
  956. package/dist/esm/react/SeamsWeb/operations/near/signNEP413.js +0 -117
  957. package/dist/esm/react/SeamsWeb/operations/near/signingEventHelpers.js +0 -15
  958. package/dist/esm/react/SeamsWeb/operations/recovery/accountSync.js +0 -21
  959. package/dist/esm/react/SeamsWeb/operations/recovery/recoveryWalletBinding.js +0 -43
  960. package/dist/esm/react/SeamsWeb/operations/recovery/syncAccount.js +0 -914
  961. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +0 -100
  962. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCommit.js +0 -477
  963. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +0 -386
  964. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryJournal.js +0 -118
  965. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryRotation.js +0 -214
  966. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +0 -184
  967. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +0 -247
  968. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +0 -134
  969. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +0 -369
  970. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +0 -3818
  971. package/dist/esm/react/SeamsWeb/operations/registration/registrationEd25519Yao.js +0 -166
  972. package/dist/esm/react/SeamsWeb/operations/registration/registrationSignerSet.js +0 -60
  973. package/dist/esm/react/SeamsWeb/operations/registration/registrationStrictEcdsa.js +0 -343
  974. package/dist/esm/react/SeamsWeb/operations/registration/registrationTerminalCommit.js +0 -296
  975. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +0 -682
  976. package/dist/esm/react/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +0 -40
  977. package/dist/esm/react/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.js +0 -20
  978. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +0 -565
  979. package/dist/esm/react/SeamsWeb/operations/tempo/feeTokenPreference.js +0 -67
  980. package/dist/esm/react/SeamsWeb/operations/tempo/index.js +0 -39
  981. package/dist/esm/react/SeamsWeb/publicApi/auth.js +0 -23
  982. package/dist/esm/react/SeamsWeb/publicApi/awaitNearReady.js +0 -72
  983. package/dist/esm/react/SeamsWeb/publicApi/capabilitySelection.js +0 -63
  984. package/dist/esm/react/SeamsWeb/publicApi/chainTargets.js +0 -48
  985. package/dist/esm/react/SeamsWeb/publicApi/createPublicApi.js +0 -133
  986. package/dist/esm/react/SeamsWeb/publicApi/currentWallet.js +0 -46
  987. package/dist/esm/react/SeamsWeb/publicApi/devices.js +0 -83
  988. package/dist/esm/react/SeamsWeb/publicApi/evm.js +0 -103
  989. package/dist/esm/react/SeamsWeb/publicApi/keyExport.js +0 -90
  990. package/dist/esm/react/SeamsWeb/publicApi/near.js +0 -449
  991. package/dist/esm/react/SeamsWeb/publicApi/preferences.js +0 -61
  992. package/dist/esm/react/SeamsWeb/publicApi/recovery.js +0 -19
  993. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +0 -238
  994. package/dist/esm/react/SeamsWeb/publicApi/transactionReview.js +0 -12
  995. package/dist/esm/react/SeamsWeb/publicApi/types.js +0 -10
  996. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +0 -3908
  997. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +0 -530
  998. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +0 -417
  999. package/dist/esm/react/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -134
  1000. package/dist/esm/react/SeamsWeb/walletIframe/client/router.js +0 -3368
  1001. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/domain.js +0 -288
  1002. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/geometry.js +0 -128
  1003. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/renderer.js +0 -119
  1004. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/transactionSurfaceQueue.js +0 -125
  1005. package/dist/esm/react/SeamsWeb/walletIframe/client/transactionReviewReservation.js +0 -96
  1006. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -252
  1007. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +0 -71
  1008. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +0 -211
  1009. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  1010. package/dist/esm/react/SeamsWeb/walletIframe/coordinator.js +0 -235
  1011. package/dist/esm/react/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +0 -158
  1012. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +0 -625
  1013. package/dist/esm/react/SeamsWeb/walletIframe/shared/is-dev-host.js +0 -11
  1014. package/dist/esm/react/SeamsWeb/walletIframe/shared/messages.js +0 -588
  1015. package/dist/esm/react/SeamsWeb/walletIframe/shared/transactionReview.js +0 -83
  1016. package/dist/esm/react/SeamsWeb/walletIframe/shared/unlockOptions.js +0 -54
  1017. package/dist/esm/react/base-styles.js +0 -13
  1018. package/dist/esm/react/build-paths.js +0 -111
  1019. package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  1020. package/dist/esm/react/config.js +0 -37
  1021. package/dist/esm/react/core/accountData/near/accountProjection.js +0 -119
  1022. package/dist/esm/react/core/accountData/near/accountRefs.js +0 -21
  1023. package/dist/esm/react/core/accountData/near/keyMaterial.js +0 -171
  1024. package/dist/esm/react/core/accountData/near/profileId.js +0 -24
  1025. package/dist/esm/react/core/browser/walletIframe/csp-stylesheet.js +0 -189
  1026. package/dist/esm/react/core/browser/walletIframe/events.js +0 -10
  1027. package/dist/esm/react/core/browser/walletIframe/host-mode.js +0 -19
  1028. package/dist/esm/react/core/browser/walletIframe/hostVariant.js +0 -16
  1029. package/dist/esm/react/core/config/chains.js +0 -90
  1030. package/dist/esm/react/core/config/configBuilder.js +0 -231
  1031. package/dist/esm/react/core/config/configHelpers.js +0 -183
  1032. package/dist/esm/react/core/config/defaultConfigs.js +0 -120
  1033. package/dist/esm/react/core/config/defineConfig.js +0 -48
  1034. package/dist/esm/react/core/config/managedRuntimeScope.js +0 -16
  1035. package/dist/esm/react/core/indexedDB/accountKeyMaterial.js +0 -68
  1036. package/dist/esm/react/core/indexedDB/accountSignerLifecycle.js +0 -143
  1037. package/dist/esm/react/core/indexedDB/index.js +0 -60
  1038. package/dist/esm/react/core/indexedDB/keyMaterialEnvelope.js +0 -69
  1039. package/dist/esm/react/core/indexedDB/lastProfileState.js +0 -22
  1040. package/dist/esm/react/core/indexedDB/linkedAuthoritySignerMaterial.js +0 -291
  1041. package/dist/esm/react/core/indexedDB/nonceLaneCoordinationStore.js +0 -115
  1042. package/dist/esm/react/core/indexedDB/normalization.js +0 -24
  1043. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +0 -482
  1044. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +0 -879
  1045. package/dist/esm/react/core/indexedDB/profileAccountProjection.js +0 -70
  1046. package/dist/esm/react/core/indexedDB/schemaNames.js +0 -845
  1047. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +0 -209
  1048. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +0 -848
  1049. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +0 -1215
  1050. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +0 -235
  1051. package/dist/esm/react/core/indexedDB/seamsWalletDB/manager.js +0 -140
  1052. package/dist/esm/react/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -145
  1053. package/dist/esm/react/core/indexedDB/seamsWalletDB/repositories.js +0 -4747
  1054. package/dist/esm/react/core/indexedDB/seamsWalletDB/schema.js +0 -23
  1055. package/dist/esm/react/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -205
  1056. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +0 -198
  1057. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +0 -569
  1058. package/dist/esm/react/core/indexedDB/singletons.js +0 -7
  1059. package/dist/esm/react/core/indexedDB/unifiedIndexedDBManager.js +0 -578
  1060. package/dist/esm/react/core/indexedDB/walletCustodyEd25519MaterialRecord.js +0 -60
  1061. package/dist/esm/react/core/platform/browser/createBrowserPlatformRuntime.js +0 -552
  1062. package/dist/esm/react/core/platform/secretSources.js +0 -111
  1063. package/dist/esm/react/core/platform/signerCoreCommandAdapters.js +0 -122
  1064. package/dist/esm/react/core/rpcClients/evm/EvmClient.js +0 -549
  1065. package/dist/esm/react/core/rpcClients/evm/nonceBackend.js +0 -279
  1066. package/dist/esm/react/core/rpcClients/near/NearClient.js +0 -56
  1067. package/dist/esm/react/core/rpcClients/near/NearRpcError.js +0 -105
  1068. package/dist/esm/react/core/rpcClients/near/rpcCalls.js +0 -376
  1069. package/dist/esm/react/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js +0 -67
  1070. package/dist/esm/react/core/rpcClients/relayer/passkeyCustodyEnvelope.js +0 -228
  1071. package/dist/esm/react/core/rpcClients/relayer/registrationSignerSetRequest.js +0 -8
  1072. package/dist/esm/react/core/rpcClients/relayer/relayerHttp.js +0 -26
  1073. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigning.js +0 -812
  1074. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigningValidation.js +0 -23
  1075. package/dist/esm/react/core/rpcClients/relayer/sealedRefreshCapabilities.js +0 -148
  1076. package/dist/esm/react/core/rpcClients/relayer/thresholdEcdsa.js +0 -237
  1077. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryFinalize.js +0 -174
  1078. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.js +0 -161
  1079. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +0 -295
  1080. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryRotate.js +0 -311
  1081. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +0 -2349
  1082. package/dist/esm/react/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +0 -719
  1083. package/dist/esm/react/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +0 -214
  1084. package/dist/esm/react/core/runtime/createSigningRuntime.js +0 -100
  1085. package/dist/esm/react/core/signingEngine/assembly/createManagers.js +0 -80
  1086. package/dist/esm/react/core/signingEngine/assembly/createPorts.js +0 -54
  1087. package/dist/esm/react/core/signingEngine/assembly/ports/emailOtp.js +0 -30
  1088. package/dist/esm/react/core/signingEngine/assembly/ports/evmFamily.js +0 -73
  1089. package/dist/esm/react/core/signingEngine/assembly/ports/near.js +0 -21
  1090. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +0 -75
  1091. package/dist/esm/react/core/signingEngine/assembly/ports/registration.js +0 -22
  1092. package/dist/esm/react/core/signingEngine/assembly/ports/session.js +0 -25
  1093. package/dist/esm/react/core/signingEngine/assembly/ports/shared.js +0 -40
  1094. package/dist/esm/react/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -67
  1095. package/dist/esm/react/core/signingEngine/assembly/ports/warmSigning.js +0 -92
  1096. package/dist/esm/react/core/signingEngine/assembly/warmup.js +0 -68
  1097. package/dist/esm/react/core/signingEngine/chains/evm/bytes.js +0 -22
  1098. package/dist/esm/react/core/signingEngine/chains/evm/display/calldata.js +0 -25
  1099. package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +0 -119
  1100. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +0 -75
  1101. package/dist/esm/react/core/signingEngine/chains/evm/display/gas.js +0 -19
  1102. package/dist/esm/react/core/signingEngine/chains/evm/display/normalization.js +0 -23
  1103. package/dist/esm/react/core/signingEngine/chains/evm/evmAdapter.js +0 -44
  1104. package/dist/esm/react/core/signingEngine/chains/evm/evmCryptoWasm.js +0 -198
  1105. package/dist/esm/react/core/signingEngine/chains/near/display.js +0 -248
  1106. package/dist/esm/react/core/signingEngine/chains/near/nearSignerWasm.js +0 -170
  1107. package/dist/esm/react/core/signingEngine/chains/near/payloads.js +0 -58
  1108. package/dist/esm/react/core/signingEngine/chains/tempo/display.js +0 -130
  1109. package/dist/esm/react/core/signingEngine/chains/tempo/feeToken.js +0 -187
  1110. package/dist/esm/react/core/signingEngine/chains/tempo/tempoAdapter.js +0 -49
  1111. package/dist/esm/react/core/signingEngine/chains/tempo/tempoSignerWasm.js +0 -90
  1112. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -428
  1113. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +0 -660
  1114. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -243
  1115. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +0 -353
  1116. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +0 -216
  1117. package/dist/esm/react/core/signingEngine/flows/recovery/exportLaneSelection.js +0 -283
  1118. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportConfirmation.js +0 -325
  1119. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportFlow.js +0 -81
  1120. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +0 -195
  1121. package/dist/esm/react/core/signingEngine/flows/recovery/public.js +0 -26
  1122. package/dist/esm/react/core/signingEngine/flows/recovery/stepUpAuthorization.js +0 -139
  1123. package/dist/esm/react/core/signingEngine/flows/registration/accountLifecycle.js +0 -1098
  1124. package/dist/esm/react/core/signingEngine/flows/registration/nearProvisioningRegistry.js +0 -79
  1125. package/dist/esm/react/core/signingEngine/flows/registration/public.js +0 -85
  1126. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js +0 -77
  1127. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaWalletRecords.js +0 -15
  1128. package/dist/esm/react/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +0 -83
  1129. package/dist/esm/react/core/signingEngine/flows/registration/services/registrationAccounts.js +0 -30
  1130. package/dist/esm/react/core/signingEngine/flows/registration/session.js +0 -24
  1131. package/dist/esm/react/core/signingEngine/flows/shared/signingConfirmation.js +0 -194
  1132. package/dist/esm/react/core/signingEngine/flows/shared/signingStateMachine.js +0 -485
  1133. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/accountAuth.js +0 -12
  1134. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/addresses.js +0 -10
  1135. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/authPlanning.js +0 -139
  1136. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaLanes.js +0 -102
  1137. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +0 -233
  1138. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpPublic.js +0 -123
  1139. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +0 -227
  1140. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/errors.js +0 -127
  1141. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/events.js +0 -39
  1142. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/evmNonceLifecycle.js +0 -49
  1143. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/executorThresholdState.js +0 -22
  1144. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.js +0 -98
  1145. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.js +0 -76
  1146. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceLifecycleAdapter.js +0 -245
  1147. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceResolution.js +0 -91
  1148. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/operationIds.js +0 -33
  1149. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +0 -383
  1150. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -191
  1151. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.js +0 -128
  1152. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +0 -512
  1153. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +0 -65
  1154. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +0 -26
  1155. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signatureUses.js +0 -12
  1156. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signerLoader.js +0 -25
  1157. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +0 -76
  1158. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +0 -182
  1159. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.js +0 -84
  1160. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +0 -631
  1161. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +0 -391
  1162. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/stepUpAuthorization.js +0 -56
  1163. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/tempoNonceLifecycle.js +0 -47
  1164. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +0 -87
  1165. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +0 -143
  1166. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/types.js +0 -20
  1167. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/webauthnP256KeyRef.js +0 -33
  1168. package/dist/esm/react/core/signingEngine/flows/signNear/implicitAccountFunding.js +0 -202
  1169. package/dist/esm/react/core/signingEngine/flows/signNear/nearSigningFlow.js +0 -56
  1170. package/dist/esm/react/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +0 -102
  1171. package/dist/esm/react/core/signingEngine/flows/signNear/shared/confirmationProgress.js +0 -28
  1172. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.js +0 -101
  1173. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +0 -822
  1174. package/dist/esm/react/core/signingEngine/flows/signNear/shared/implicitAccountFundingPort.js +0 -24
  1175. package/dist/esm/react/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.js +0 -68
  1176. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -343
  1177. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingMaterials.js +0 -25
  1178. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +0 -138
  1179. package/dist/esm/react/core/signingEngine/flows/signNear/signDelegate.js +0 -290
  1180. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +0 -1238
  1181. package/dist/esm/react/core/signingEngine/flows/signNear/signNep413.js +0 -144
  1182. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +0 -897
  1183. package/dist/esm/react/core/signingEngine/flows/signNear/signatureUses.js +0 -12
  1184. package/dist/esm/react/core/signingEngine/flows/signNear/stepUpAuthorization.js +0 -42
  1185. package/dist/esm/react/core/signingEngine/interfaces/accountAuthMetadata.js +0 -14
  1186. package/dist/esm/react/core/signingEngine/interfaces/ecdsaChainTarget.js +0 -142
  1187. package/dist/esm/react/core/signingEngine/interfaces/operationStepUpPreparation.js +0 -18
  1188. package/dist/esm/react/core/signingEngine/nonce/NonceCoordinator.js +0 -1026
  1189. package/dist/esm/react/core/signingEngine/nonce/evmNonceLane.js +0 -182
  1190. package/dist/esm/react/core/signingEngine/nonce/nearNonceLane.js +0 -669
  1191. package/dist/esm/react/core/signingEngine/nonce/nearNonceLaneIdentity.js +0 -24
  1192. package/dist/esm/react/core/signingEngine/nonce/nonceCoordinationRecordBoundary.js +0 -216
  1193. package/dist/esm/react/core/signingEngine/nonce/nonceDiagnostics.js +0 -232
  1194. package/dist/esm/react/core/signingEngine/nonce/nonceLaneKeys.js +0 -110
  1195. package/dist/esm/react/core/signingEngine/nonce/nonceLeaseState.js +0 -128
  1196. package/dist/esm/react/core/signingEngine/nonce/nonceTypes.js +0 -59
  1197. package/dist/esm/react/core/signingEngine/nonce/nonceUtils.js +0 -33
  1198. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.js +0 -74
  1199. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -217
  1200. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +0 -1216
  1201. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.js +0 -53
  1202. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -22
  1203. package/dist/esm/react/core/signingEngine/session/SigningSessionCoordinator.js +0 -347
  1204. package/dist/esm/react/core/signingEngine/session/authority/authorityOperationResolver.js +0 -165
  1205. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +0 -1073
  1206. package/dist/esm/react/core/signingEngine/session/availability/canonicalLaneInventory.js +0 -127
  1207. package/dist/esm/react/core/signingEngine/session/availability/clientSessionExpiryInvalidator.js +0 -72
  1208. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +0 -213
  1209. package/dist/esm/react/core/signingEngine/session/availability/readiness.js +0 -464
  1210. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -47
  1211. package/dist/esm/react/core/signingEngine/session/emailOtp/challengeDelivery.js +0 -56
  1212. package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  1213. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +0 -106
  1214. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -50
  1215. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +0 -941
  1216. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +0 -414
  1217. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +0 -268
  1218. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +0 -95
  1219. package/dist/esm/react/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -376
  1220. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecovery.js +0 -286
  1221. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -50
  1222. package/dist/esm/react/core/signingEngine/session/emailOtp/persistedSnapshot.js +0 -22
  1223. package/dist/esm/react/core/signingEngine/session/emailOtp/publicTypes.js +0 -38
  1224. package/dist/esm/react/core/signingEngine/session/emailOtp/routePlan.js +0 -60
  1225. package/dist/esm/react/core/signingEngine/session/emailOtp/runtimeConfig.js +0 -24
  1226. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -49
  1227. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.js +0 -234
  1228. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRuntimePurpose.js +0 -16
  1229. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +0 -40
  1230. package/dist/esm/react/core/signingEngine/session/emailOtp/status.js +0 -72
  1231. package/dist/esm/react/core/signingEngine/session/emailOtp/walletUnlock.js +0 -168
  1232. package/dist/esm/react/core/signingEngine/session/emailOtp/warmSessionRuntime.js +0 -70
  1233. package/dist/esm/react/core/signingEngine/session/emailOtp/workerEnrollment.js +0 -159
  1234. package/dist/esm/react/core/signingEngine/session/emailOtp/workerRequests.js +0 -84
  1235. package/dist/esm/react/core/signingEngine/session/emailOtp/zeroize.js +0 -9
  1236. package/dist/esm/react/core/signingEngine/session/identity/clientSessionPersistenceState.js +0 -95
  1237. package/dist/esm/react/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.js +0 -23
  1238. package/dist/esm/react/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -265
  1239. package/dist/esm/react/core/signingEngine/session/identity/exactSigningLaneIdentity.js +0 -338
  1240. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -106
  1241. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionReader.js +0 -54
  1242. package/dist/esm/react/core/signingEngine/session/identity/laneIdentity.js +0 -168
  1243. package/dist/esm/react/core/signingEngine/session/identity/ownerLaneScope.js +0 -185
  1244. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +0 -349
  1245. package/dist/esm/react/core/signingEngine/session/identity/signingLaneAuthBinding.js +0 -29
  1246. package/dist/esm/react/core/signingEngine/session/keyMaterialBrands.js +0 -75
  1247. package/dist/esm/react/core/signingEngine/session/lanes/walletExecutionLaneHydration.js +0 -194
  1248. package/dist/esm/react/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.js +0 -32
  1249. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionFailure.js +0 -69
  1250. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionStatus.js +0 -123
  1251. package/dist/esm/react/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.js +0 -171
  1252. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +0 -323
  1253. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityHydration.js +0 -75
  1254. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +0 -510
  1255. package/dist/esm/react/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +0 -122
  1256. package/dist/esm/react/core/signingEngine/session/material/ecdsaSealedRuntime.js +0 -197
  1257. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +0 -231
  1258. package/dist/esm/react/core/signingEngine/session/material/linkedEcdsaHolderRuntime.js +0 -36
  1259. package/dist/esm/react/core/signingEngine/session/material/mpcCapabilityHydration.js +0 -79
  1260. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js +0 -80
  1261. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +0 -122
  1262. package/dist/esm/react/core/signingEngine/session/material/restorableMpcMaterialRef.internal.js +0 -21
  1263. package/dist/esm/react/core/signingEngine/session/material/walletSigningStateFailure.js +0 -84
  1264. package/dist/esm/react/core/signingEngine/session/operationState/authorizationAdmission.js +0 -98
  1265. package/dist/esm/react/core/signingEngine/session/operationState/lanes.js +0 -127
  1266. package/dist/esm/react/core/signingEngine/session/operationState/preparedOperation.js +0 -38
  1267. package/dist/esm/react/core/signingEngine/session/operationState/trace.js +0 -94
  1268. package/dist/esm/react/core/signingEngine/session/operationState/transactionState.js +0 -106
  1269. package/dist/esm/react/core/signingEngine/session/operationState/types.js +0 -88
  1270. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaBootstrap.js +0 -187
  1271. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -206
  1272. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaRecovery.js +0 -87
  1273. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaSessionProvision.js +0 -224
  1274. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +0 -147
  1275. package/dist/esm/react/core/signingEngine/session/passkey/ed25519Provisioner.js +0 -55
  1276. package/dist/esm/react/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -229
  1277. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +0 -537
  1278. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +0 -94
  1279. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoSealedSession.js +0 -57
  1280. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +0 -317
  1281. package/dist/esm/react/core/signingEngine/session/passkey/passkeyCustodySessionCache.js +0 -90
  1282. package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +0 -60
  1283. package/dist/esm/react/core/signingEngine/session/passkey/public.js +0 -15
  1284. package/dist/esm/react/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +0 -247
  1285. package/dist/esm/react/core/signingEngine/session/passkey/warmSessionHydration.js +0 -9
  1286. package/dist/esm/react/core/signingEngine/session/persistence/clientSessionPersistence.js +0 -143
  1287. package/dist/esm/react/core/signingEngine/session/persistence/durableSealedSessionCommands.js +0 -30
  1288. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +0 -316
  1289. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaSealedRecordKey.js +0 -20
  1290. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +0 -764
  1291. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionStore.js +0 -518
  1292. package/dist/esm/react/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.js +0 -51
  1293. package/dist/esm/react/core/signingEngine/session/planning/operationFingerprint.js +0 -30
  1294. package/dist/esm/react/core/signingEngine/session/planning/operationIdBinding.js +0 -36
  1295. package/dist/esm/react/core/signingEngine/session/planning/planner.js +0 -98
  1296. package/dist/esm/react/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -165
  1297. package/dist/esm/react/core/signingEngine/session/public.js +0 -44
  1298. package/dist/esm/react/core/signingEngine/session/routerAbSigningWalletSession.js +0 -125
  1299. package/dist/esm/react/core/signingEngine/session/sealedRecovery/exactRecordLookup.js +0 -148
  1300. package/dist/esm/react/core/signingEngine/session/sealedRecovery/materialActivationKey.js +0 -22
  1301. package/dist/esm/react/core/signingEngine/session/sealedRecovery/recoveryRecord.js +0 -248
  1302. package/dist/esm/react/core/signingEngine/session/sealedRecovery/restoreCoordinator.js +0 -229
  1303. package/dist/esm/react/core/signingEngine/session/userPreferences.js +0 -212
  1304. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReader.js +0 -62
  1305. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +0 -293
  1306. package/dist/esm/react/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.js +0 -44
  1307. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +0 -107
  1308. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapQueue.js +0 -22
  1309. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +0 -93
  1310. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +0 -50
  1311. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -9
  1312. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +0 -251
  1313. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +0 -98
  1314. package/dist/esm/react/core/signingEngine/session/warmCapabilities/public.js +0 -31
  1315. package/dist/esm/react/core/signingEngine/session/warmCapabilities/readModel.js +0 -161
  1316. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +0 -256
  1317. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +0 -73
  1318. package/dist/esm/react/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +0 -67
  1319. package/dist/esm/react/core/signingEngine/session/warmCapabilities/statusReader.js +0 -100
  1320. package/dist/esm/react/core/signingEngine/session/warmCapabilities/transitions.js +0 -51
  1321. package/dist/esm/react/core/signingEngine/session/warmCapabilities/types.js +0 -122
  1322. package/dist/esm/react/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +0 -45
  1323. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmCommon.js +0 -89
  1324. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmTypes.js +0 -12
  1325. package/dist/esm/react/core/signingEngine/stepUpConfirmation/confirmOperation.js +0 -51
  1326. package/dist/esm/react/core/signingEngine/stepUpConfirmation/intentDigestPreparation.js +0 -29
  1327. package/dist/esm/react/core/signingEngine/stepUpConfirmation/methodSelection.js +0 -41
  1328. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -32
  1329. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.js +0 -108
  1330. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/promptText.js +0 -8
  1331. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/signingPrompt.js +0 -15
  1332. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +0 -295
  1333. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -170
  1334. package/dist/esm/react/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +0 -63
  1335. package/dist/esm/react/core/signingEngine/stepUpConfirmation/types.js +0 -29
  1336. package/dist/esm/react/core/signingEngine/stepUpConfirmation/userConfirmationType.js +0 -15
  1337. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +0 -125
  1338. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +0 -616
  1339. package/dist/esm/react/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -70
  1340. package/dist/esm/react/core/signingEngine/threshold/ecdsa/activation.js +0 -267
  1341. package/dist/esm/react/core/signingEngine/threshold/ecdsa/bootstrapSession.js +0 -119
  1342. package/dist/esm/react/core/signingEngine/threshold/ecdsa/operationStepUp.js +0 -110
  1343. package/dist/esm/react/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.js +0 -132
  1344. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +0 -58
  1345. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +0 -52
  1346. package/dist/esm/react/core/signingEngine/threshold/ed25519/connectSession.js +0 -137
  1347. package/dist/esm/react/core/signingEngine/threshold/ed25519/walletSession.js +0 -363
  1348. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +0 -146
  1349. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoClient.js +0 -597
  1350. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js +0 -23
  1351. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +0 -295
  1352. package/dist/esm/react/core/signingEngine/threshold/sessionPolicy.js +0 -94
  1353. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcExportManager.js +0 -233
  1354. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +0 -496
  1355. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +0 -745
  1356. package/dist/esm/react/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -600
  1357. package/dist/esm/react/core/signingEngine/uiConfirm/confirmationReadinessRegistry.js +0 -41
  1358. package/dist/esm/react/core/signingEngine/uiConfirm/exportConfirmRequest.js +0 -149
  1359. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/determineConfirmationConfig.js +0 -82
  1360. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flowOrchestrator.js +0 -363
  1361. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +0 -337
  1362. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/request.js +0 -120
  1363. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -150
  1364. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/registration.js +0 -235
  1365. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.js +0 -178
  1366. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/signing.js +0 -684
  1367. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.js +0 -90
  1368. package/dist/esm/react/core/signingEngine/uiConfirm/nearFundingNotice.js +0 -50
  1369. package/dist/esm/react/core/signingEngine/uiConfirm/transactionReviewAdmission.js +0 -8
  1370. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance-token-vars.js +0 -31
  1371. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance.js +0 -27
  1372. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +0 -346
  1373. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-ui.js +0 -516
  1374. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-body-model.js +0 -24
  1375. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-model.js +0 -161
  1376. package/dist/esm/react/core/signingEngine/uiConfirm/ui/drawer-gesture.js +0 -16
  1377. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +0 -155
  1378. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-viewer-host.js +0 -207
  1379. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +0 -131
  1380. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +0 -29
  1381. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +0 -49
  1382. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +0 -137
  1383. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +0 -294
  1384. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +0 -67
  1385. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/CopyStatusIcon.js +0 -41
  1386. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +0 -141
  1387. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +0 -92
  1388. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +0 -318
  1389. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/HaloBorder.js +0 -91
  1390. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.js +0 -32
  1391. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyHaloLoading.js +0 -63
  1392. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +0 -75
  1393. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +0 -33
  1394. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +0 -518
  1395. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +0 -128
  1396. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/SeamsWordmark.js +0 -22
  1397. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +0 -158
  1398. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +0 -287
  1399. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +0 -311
  1400. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +0 -284
  1401. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/clipboard.js +0 -26
  1402. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +0 -80
  1403. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-styles.js +0 -20
  1404. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/email-otp-session.js +0 -178
  1405. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +0 -297
  1406. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +0 -86
  1407. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +0 -82
  1408. package/dist/esm/react/core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js +0 -6
  1409. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +0 -12
  1410. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-resize-events.js +0 -18
  1411. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-activity.js +0 -46
  1412. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +0 -325
  1413. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/enrichDisplayModelWithAbi.js +0 -77
  1414. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/confirmation-tree.js +0 -27
  1415. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/formatters.js +0 -57
  1416. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  1417. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.js +0 -52
  1418. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  1419. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  1420. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.js +0 -62
  1421. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +0 -258
  1422. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-receipt.js +0 -50
  1423. package/dist/esm/react/core/signingEngine/uiConfirm/warmSessionUiConfirm.js +0 -65
  1424. package/dist/esm/react/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -123
  1425. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +0 -94
  1426. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +0 -171
  1427. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyStepRunner.js +0 -20
  1428. package/dist/esm/react/core/signingEngine/walletCustody/ed25519ActiveClient.js +0 -100
  1429. package/dist/esm/react/core/signingEngine/walletCustody/ed25519Projection.js +0 -32
  1430. package/dist/esm/react/core/signingEngine/walletCustody/ed25519SeedMaterial.js +0 -92
  1431. package/dist/esm/react/core/signingEngine/walletCustody/emailOtpLink.js +0 -135
  1432. package/dist/esm/react/core/signingEngine/walletCustody/joinCustodyWire.js +0 -64
  1433. package/dist/esm/react/core/signingEngine/walletCustody/openCustodyCache.js +0 -130
  1434. package/dist/esm/react/core/signingEngine/walletCustody/passkeyLink.js +0 -183
  1435. package/dist/esm/react/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +0 -60
  1436. package/dist/esm/react/core/signingEngine/walletCustody/registrationCeremony.js +0 -461
  1437. package/dist/esm/react/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +0 -258
  1438. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -24
  1439. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -76
  1440. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEd25519.js +0 -129
  1441. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -180
  1442. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -103
  1443. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.js +0 -154
  1444. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +0 -36
  1445. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/helpers.js +0 -273
  1446. package/dist/esm/react/core/signingEngine/webauthnAuth/device/signerSlot.js +0 -25
  1447. package/dist/esm/react/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  1448. package/dist/esm/react/core/signingEngine/workerManager/SignerWorkerManager.js +0 -70
  1449. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +0 -323
  1450. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +0 -158
  1451. package/dist/esm/react/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -17
  1452. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignLifecycle.js +0 -6
  1453. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.js +0 -49
  1454. package/dist/esm/react/core/signingEngine/workerManager/executeWorkerOperation.js +0 -12
  1455. package/dist/esm/react/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  1456. package/dist/esm/react/core/signingEngine/workerManager/validation.js +0 -114
  1457. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +0 -777
  1458. package/dist/esm/react/core/signingEngine/workerManager/workerTypes.js +0 -109
  1459. package/dist/esm/react/core/types/accountIds.js +0 -26
  1460. package/dist/esm/react/core/types/actionBuilders.js +0 -73
  1461. package/dist/esm/react/core/types/confirmationConfig.js +0 -39
  1462. package/dist/esm/react/core/types/eventLogging.js +0 -28
  1463. package/dist/esm/react/core/types/linkDevice.js +0 -49
  1464. package/dist/esm/react/core/types/sdkSentEvents.js +0 -602
  1465. package/dist/esm/react/core/types/secure-confirm-worker.js +0 -22
  1466. package/dist/esm/react/core/types/signer-worker.js +0 -50
  1467. package/dist/esm/react/core/types/walletIframeIdentity.js +0 -15
  1468. package/dist/esm/react/core/walletRuntimePaths/base.js +0 -60
  1469. package/dist/esm/react/core/walletRuntimePaths/emailOtpWorker.js +0 -12
  1470. package/dist/esm/react/core/walletRuntimePaths/multichainWorkers.js +0 -25
  1471. package/dist/esm/react/core/walletRuntimePaths/walletCustodyCeremonyWorker.js +0 -18
  1472. package/dist/esm/react/core/walletRuntimePaths/workers.js +0 -93
  1473. package/dist/esm/react/externalEvm/boundary.js +0 -309
  1474. package/dist/esm/react/externalEvm/controller.js +0 -440
  1475. package/dist/esm/react/externalEvm/types.js +0 -31
  1476. package/dist/esm/react/node_modules/@noble/hashes/esm/_u64.js +0 -36
  1477. package/dist/esm/react/node_modules/@noble/hashes/esm/sha3.js +0 -197
  1478. package/dist/esm/react/node_modules/@noble/hashes/esm/utils.js +0 -87
  1479. package/dist/esm/react/node_modules/viem/_esm/errors/abi.js +0 -48
  1480. package/dist/esm/react/node_modules/viem/_esm/errors/address.js +0 -14
  1481. package/dist/esm/react/node_modules/viem/_esm/errors/base.js +0 -86
  1482. package/dist/esm/react/node_modules/viem/_esm/errors/data.js +0 -16
  1483. package/dist/esm/react/node_modules/viem/_esm/errors/encoding.js +0 -16
  1484. package/dist/esm/react/node_modules/viem/_esm/errors/typedData.js +0 -28
  1485. package/dist/esm/react/node_modules/viem/_esm/errors/version.js +0 -6
  1486. package/dist/esm/react/node_modules/viem/_esm/utils/abi/encodeAbiParameters.js +0 -243
  1487. package/dist/esm/react/node_modules/viem/_esm/utils/address/getAddress.js +0 -28
  1488. package/dist/esm/react/node_modules/viem/_esm/utils/address/isAddress.js +0 -23
  1489. package/dist/esm/react/node_modules/viem/_esm/utils/data/concat.js +0 -23
  1490. package/dist/esm/react/node_modules/viem/_esm/utils/data/isHex.js +0 -10
  1491. package/dist/esm/react/node_modules/viem/_esm/utils/data/pad.js +0 -40
  1492. package/dist/esm/react/node_modules/viem/_esm/utils/data/size.js +0 -16
  1493. package/dist/esm/react/node_modules/viem/_esm/utils/data/slice.js +0 -59
  1494. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/fromHex.js +0 -13
  1495. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toBytes.js +0 -175
  1496. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toHex.js +0 -168
  1497. package/dist/esm/react/node_modules/viem/_esm/utils/hash/keccak256.js +0 -15
  1498. package/dist/esm/react/node_modules/viem/_esm/utils/lru.js +0 -38
  1499. package/dist/esm/react/node_modules/viem/_esm/utils/regex.js +0 -7
  1500. package/dist/esm/react/node_modules/viem/_esm/utils/signature/hashTypedData.js +0 -113
  1501. package/dist/esm/react/node_modules/viem/_esm/utils/stringify.js +0 -9
  1502. package/dist/esm/react/node_modules/viem/_esm/utils/typedData.js +0 -80
  1503. package/dist/esm/react/shared-ts/src/authorization/capabilityKinds.js +0 -111
  1504. package/dist/esm/react/shared-ts/src/authorization/delegatedAuthority.js +0 -121
  1505. package/dist/esm/react/shared-ts/src/authorization/index.js +0 -6
  1506. package/dist/esm/react/shared-ts/src/authorization/operationFingerprint.js +0 -57
  1507. package/dist/esm/react/shared-ts/src/authorization/walletAuthority.js +0 -719
  1508. package/dist/esm/react/shared-ts/src/authorization/walletCustodyOperation.js +0 -16
  1509. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +0 -118
  1510. package/dist/esm/react/shared-ts/src/device-linking/activeWalletSession.js +0 -104
  1511. package/dist/esm/react/shared-ts/src/device-linking/authorityActivation.js +0 -142
  1512. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +0 -273
  1513. package/dist/esm/react/shared-ts/src/device-linking/contracts.js +0 -8
  1514. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +0 -134
  1515. package/dist/esm/react/shared-ts/src/device-linking/deviceManagement.js +0 -120
  1516. package/dist/esm/react/shared-ts/src/device-linking/digests.js +0 -115
  1517. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +0 -171
  1518. package/dist/esm/react/shared-ts/src/device-linking/index.js +0 -12
  1519. package/dist/esm/react/shared-ts/src/device-linking/parsers.js +0 -1029
  1520. package/dist/esm/react/shared-ts/src/device-linking/requestProof.js +0 -25
  1521. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +0 -545
  1522. package/dist/esm/react/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +0 -173
  1523. package/dist/esm/react/shared-ts/src/device-linking/wireFields.js +0 -59
  1524. package/dist/esm/react/shared-ts/src/near/actions.js +0 -236
  1525. package/dist/esm/react/shared-ts/src/near/nearClient.js +0 -252
  1526. package/dist/esm/react/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +0 -43
  1527. package/dist/esm/react/shared-ts/src/passkey-custody/custodyEnvelope.js +0 -278
  1528. package/dist/esm/react/shared-ts/src/passkey-custody/custodySecretBinding.js +0 -181
  1529. package/dist/esm/react/shared-ts/src/passkey-custody/index.js +0 -4
  1530. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +0 -58
  1531. package/dist/esm/react/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +0 -49
  1532. package/dist/esm/react/shared-ts/src/signing-lanes/index.js +0 -8
  1533. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +0 -66
  1534. package/dist/esm/react/shared-ts/src/signing-lanes/participantDigest.js +0 -2
  1535. package/dist/esm/react/shared-ts/src/signing-lanes/participants.js +0 -256
  1536. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +0 -483
  1537. package/dist/esm/react/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1538. package/dist/esm/react/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1539. package/dist/esm/react/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1540. package/dist/esm/react/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1541. package/dist/esm/react/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -39
  1542. package/dist/esm/react/shared-ts/src/threshold/ed25519OperationFingerprint.js +0 -222
  1543. package/dist/esm/react/shared-ts/src/threshold/keyMaterialBrands.js +0 -25
  1544. package/dist/esm/react/shared-ts/src/threshold/participants.js +0 -67
  1545. package/dist/esm/react/shared-ts/src/threshold/secp256k1.js +0 -6
  1546. package/dist/esm/react/shared-ts/src/threshold/sessionPolicy.js +0 -8
  1547. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +0 -40
  1548. package/dist/esm/react/shared-ts/src/utils/addAuthMethodRegistration.js +0 -103
  1549. package/dist/esm/react/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1550. package/dist/esm/react/shared-ts/src/utils/authenticatorOptions.js +0 -22
  1551. package/dist/esm/react/shared-ts/src/utils/base58.js +0 -28
  1552. package/dist/esm/react/shared-ts/src/utils/base64.js +0 -70
  1553. package/dist/esm/react/shared-ts/src/utils/canonicalPrimitives.js +0 -38
  1554. package/dist/esm/react/shared-ts/src/utils/digestEncoding.js +0 -63
  1555. package/dist/esm/react/shared-ts/src/utils/digests.js +0 -33
  1556. package/dist/esm/react/shared-ts/src/utils/domainIds.js +0 -257
  1557. package/dist/esm/react/shared-ts/src/utils/ecdsaCapabilityActivation.js +0 -67
  1558. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -46
  1559. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -39
  1560. package/dist/esm/react/shared-ts/src/utils/emailOtpDomain.js +0 -28
  1561. package/dist/esm/react/shared-ts/src/utils/emailOtpRecoveryKey.js +0 -65
  1562. package/dist/esm/react/shared-ts/src/utils/encoders.js +0 -2
  1563. package/dist/esm/react/shared-ts/src/utils/errors.js +0 -95
  1564. package/dist/esm/react/shared-ts/src/utils/evmRpcResults.js +0 -101
  1565. package/dist/esm/react/shared-ts/src/utils/exactRecord.js +0 -44
  1566. package/dist/esm/react/shared-ts/src/utils/index.js +0 -38
  1567. package/dist/esm/react/shared-ts/src/utils/jsonRpc.js +0 -64
  1568. package/dist/esm/react/shared-ts/src/utils/keccak.js +0 -150
  1569. package/dist/esm/react/shared-ts/src/utils/near.js +0 -205
  1570. package/dist/esm/react/shared-ts/src/utils/nearRpcResults.js +0 -205
  1571. package/dist/esm/react/shared-ts/src/utils/normalize.js +0 -86
  1572. package/dist/esm/react/shared-ts/src/utils/registrationAuthMethodInput.js +0 -84
  1573. package/dist/esm/react/shared-ts/src/utils/registrationEstablishedSession.js +0 -275
  1574. package/dist/esm/react/shared-ts/src/utils/registrationIds.js +0 -226
  1575. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +0 -396
  1576. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +0 -442
  1577. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1334
  1578. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +0 -747
  1579. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519YaoDigests.js +0 -76
  1580. package/dist/esm/react/shared-ts/src/utils/routerAbNormalSigningIdentity.js +0 -115
  1581. package/dist/esm/react/shared-ts/src/utils/routerAbPublicKeyset.js +0 -11
  1582. package/dist/esm/react/shared-ts/src/utils/routerAbTraceContext.js +0 -36
  1583. package/dist/esm/react/shared-ts/src/utils/secureRandomId.js +0 -35
  1584. package/dist/esm/react/shared-ts/src/utils/signerDomain.js +0 -37
  1585. package/dist/esm/react/shared-ts/src/utils/signerSlot.js +0 -12
  1586. package/dist/esm/react/shared-ts/src/utils/signingSessionSeal.js +0 -98
  1587. package/dist/esm/react/shared-ts/src/utils/theme.js +0 -8
  1588. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +0 -28
  1589. package/dist/esm/react/shared-ts/src/utils/validation.js +0 -92
  1590. package/dist/esm/react/shared-ts/src/utils/walletAddSignerActivation.js +0 -32
  1591. package/dist/esm/react/shared-ts/src/utils/walletAuthAuthority.js +0 -224
  1592. package/dist/esm/react/shared-ts/src/utils/walletAuthMethodRecord.js +0 -357
  1593. package/dist/esm/react/shared-ts/src/utils/walletCapabilityBindings.js +0 -277
  1594. package/dist/esm/react/shared-ts/src/utils/walletSessionFailure.js +0 -28
  1595. package/dist/esm/react/shared-ts/src/utils/webauthnDeviceInfo.js +0 -50
  1596. package/dist/esm/react/shared-ts/src/utils/wireSchema.js +0 -66
  1597. package/dist/esm/react/shared-ts/src/wallet-recovery/index.js +0 -10
  1598. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +0 -35
  1599. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -34
  1600. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +0 -24
  1601. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodes.js +0 -3
  1602. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -14
  1603. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +0 -254
  1604. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +0 -153
  1605. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +0 -84
  1606. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +0 -64
  1607. package/dist/esm/react/theme/base-styles.js +0 -117
  1608. package/dist/esm/react/theme/palette.js +0 -170
  1609. package/dist/esm/react/utils/deviceDetection.js +0 -95
  1610. package/dist/esm/react/utils/intentDigest.js +0 -77
  1611. package/dist/esm/react/utils/qrScanner.js +0 -297
  1612. package/dist/esm/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1613. package/dist/esm/sdk/EvmClient-f3gUhS2L.js +0 -644
  1614. package/dist/esm/sdk/NearClient-DY4NfHeD.js +0 -402
  1615. package/dist/esm/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1616. package/dist/esm/sdk/accountIds-DhIPGOSN.js +0 -23
  1617. package/dist/esm/sdk/accountLifecycle-BAGG_rbk.js +0 -1341
  1618. package/dist/esm/sdk/actions-CCvThiKe.js +0 -225
  1619. package/dist/esm/sdk/adapters-B4JeK1nJ.js +0 -4864
  1620. package/dist/esm/sdk/base-D1B5mGin.js +0 -64
  1621. package/dist/esm/sdk/base64-Clm8C-e9.js +0 -68
  1622. package/dist/esm/sdk/browser-D6eZGhzE.js +0 -2393
  1623. package/dist/esm/sdk/bytes-qKxKn4gg.js +0 -40
  1624. package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1625. package/dist/esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js +0 -153
  1626. package/dist/esm/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1627. package/dist/esm/sdk/chains-BMh3btVo.js +0 -124
  1628. package/dist/esm/sdk/challengeDelivery-Dd0586fo.js +0 -74
  1629. package/dist/esm/sdk/chunk-BtrIJ4_z.js +0 -33
  1630. package/dist/esm/sdk/configHelpers-vAQCzUD0.js +0 -179
  1631. package/dist/esm/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1632. package/dist/esm/sdk/defaultConfigs-B3c16M_8.js +0 -355
  1633. package/dist/esm/sdk/display-KdIL0ff7.js +0 -126
  1634. package/dist/esm/sdk/domainIds-lcrFg6Sa.js +0 -338
  1635. package/dist/esm/sdk/ecdsaCapabilityManifest-kzO_fW09.js +0 -817
  1636. package/dist/esm/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1637. package/dist/esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +0 -1983
  1638. package/dist/esm/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1639. package/dist/esm/sdk/ecdsaWalletRecords-Cz4m6bIz.js +0 -18
  1640. package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
  1641. package/dist/esm/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1642. package/dist/esm/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1643. package/dist/esm/sdk/errors-93h9uAW9.js +0 -92
  1644. package/dist/esm/sdk/events-DYoBL2HO.js +0 -8
  1645. package/dist/esm/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1646. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +0 -4288
  1647. package/dist/esm/sdk/exactSessionState-CiD5fBEs.js +0 -2612
  1648. package/dist/esm/sdk/exactSigningLaneIdentity-DQeqPMST.js +0 -335
  1649. package/dist/esm/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1650. package/dist/esm/sdk/export-viewer-host-ZqA2Yz3H.js +0 -204
  1651. package/dist/esm/sdk/helpers-ZrowMnev.js +0 -302
  1652. package/dist/esm/sdk/host-BWBbCAMu.js +0 -533
  1653. package/dist/esm/sdk/intentDigest-CvOSNlCH.js +0 -75
  1654. package/dist/esm/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1655. package/dist/esm/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1656. package/dist/esm/sdk/keccak-DUL3d8SF.js +0 -148
  1657. package/dist/esm/sdk/keyMaterialBrands-CX41hur6.js +0 -94
  1658. package/dist/esm/sdk/localOnly-Bg8UuLZ5.js +0 -146
  1659. package/dist/esm/sdk/messages-C7Dbx9iN.js +0 -594
  1660. package/dist/esm/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1661. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1662. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DPb0s3hQ.js +0 -4008
  1663. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js +0 -405
  1664. package/dist/esm/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1665. package/dist/esm/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1666. package/dist/esm/sdk/normalization-CBt413-z.js +0 -22
  1667. package/dist/esm/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1668. package/dist/esm/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1669. package/dist/esm/sdk/passkey-custody-Bk1jAknm.js +0 -487
  1670. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js +0 -237
  1671. package/dist/esm/sdk/prfCache-wqQSjYLn.js +0 -58
  1672. package/dist/esm/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1673. package/dist/esm/sdk/promptText-CuRa_ivd.js +0 -32
  1674. package/dist/esm/sdk/recovery-entrypoint-DW2tGyMs.js +0 -779
  1675. package/dist/esm/sdk/registration-BZDzDv91.js +0 -14414
  1676. package/dist/esm/sdk/registration-BzVHODuD.js +0 -233
  1677. package/dist/esm/sdk/registrationAccounts-CKku_Sgy.js +0 -33
  1678. package/dist/esm/sdk/registrationIds-DLSdEKSv.js +0 -310
  1679. package/dist/esm/sdk/registrationIntent-D0PxwEY4.js +0 -393
  1680. package/dist/esm/sdk/registrationPreparationPreload-CIAuRlxI.js +0 -13
  1681. package/dist/esm/sdk/registrationSignerPlan-CAikVZZQ.js +0 -440
  1682. package/dist/esm/sdk/relayerHttp-VC8Holz1.js +0 -24
  1683. package/dist/esm/sdk/routePlan-D59x5xzQ.js +0 -83
  1684. package/dist/esm/sdk/router-C5lF_J_u.js +0 -4721
  1685. package/dist/esm/sdk/routerAbNormalSigning-fhvpDtmY.js +0 -992
  1686. package/dist/esm/sdk/runtime-auth-DFTqwj3u.js +0 -5540
  1687. package/dist/esm/sdk/runtime-device-link-C1Oub8Lw.js +0 -259
  1688. package/dist/esm/sdk/runtime-ecdsa-tempo-rkWwolw1.js +0 -177
  1689. package/dist/esm/sdk/runtime-email-otp-vuUG5LYl.js +0 -320
  1690. package/dist/esm/sdk/runtime-export-FZWj0HxJ.js +0 -112
  1691. package/dist/esm/sdk/runtime-near-B9cjurVD.js +0 -278
  1692. package/dist/esm/sdk/runtime-preferences-Dq0bfyS5.js +0 -67
  1693. package/dist/esm/sdk/runtime-recovery-C-vfFKF3.js +0 -45
  1694. package/dist/esm/sdk/runtime-recovery-codes-bTm3fLV4.js +0 -95
  1695. package/dist/esm/sdk/runtimeContext-iLXnxVlZ.js +0 -44443
  1696. package/dist/esm/sdk/runtimeLoader-hod6T2-m.js +0 -44
  1697. package/dist/esm/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1698. package/dist/esm/sdk/secp256k1-el9aE4Sv.js +0 -2504
  1699. package/dist/esm/sdk/secureRandomId-BORsmdS4.js +0 -33
  1700. package/dist/esm/sdk/sessionPolicy-CHiilOAB.js +0 -453
  1701. package/dist/esm/sdk/shared-DkbeLCI3.js +0 -33
  1702. package/dist/esm/sdk/signEvmFamily-e4IWWsZs.js +0 -4666
  1703. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js +0 -226
  1704. package/dist/esm/sdk/signEvmWithUiConfirm-C61TCBnh.js +0 -27
  1705. package/dist/esm/sdk/signNear-Bblwn2kT.js +0 -5929
  1706. package/dist/esm/sdk/signatureUses-BkGyYt8F.js +0 -51
  1707. package/dist/esm/sdk/signerDomain-IEAVrOrc.js +0 -59
  1708. package/dist/esm/sdk/signerLoader-D7Aey0FD.js +0 -23
  1709. package/dist/esm/sdk/signerSlot-_ovonwVX.js +0 -10
  1710. package/dist/esm/sdk/signingFlow-rZfPegH9.js +0 -1320
  1711. package/dist/esm/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1712. package/dist/esm/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1713. package/dist/esm/sdk/trace-rHe0wz7q.js +0 -127
  1714. package/dist/esm/sdk/transaction-activity-CSMCveBn.js +0 -218
  1715. package/dist/esm/sdk/transactionReview-DpHLTznU.js +0 -100
  1716. package/dist/esm/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1717. package/dist/esm/sdk/transactionState-DP9O8F6f.js +0 -1885
  1718. package/dist/esm/sdk/types-Dx9fczU7.js +0 -111
  1719. package/dist/esm/sdk/validation-gat4LEKm.js +0 -409
  1720. package/dist/esm/sdk/wallet-recovery-Bz9qKgaL.js +0 -1905
  1721. package/dist/esm/sdk/walletAuthority-BQBxgUBn.js +0 -1251
  1722. package/dist/esm/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js +0 -11130
  1723. package/dist/esm/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1724. package/dist/esm/sdk/walletRecoveryCommit-sjGNTHUj.js +0 -2159
  1725. package/dist/esm/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1726. package/dist/esm/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1727. package/dist/esm/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1728. package/dist/esm/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1729. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1730. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1731. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1732. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1733. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1734. package/dist/esm/styles.css +0 -43
  1735. package/dist/public/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1736. package/dist/public/sdk/EvmClient-f3gUhS2L.js +0 -644
  1737. package/dist/public/sdk/NearClient-DY4NfHeD.js +0 -402
  1738. package/dist/public/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1739. package/dist/public/sdk/accountIds-DhIPGOSN.js +0 -23
  1740. package/dist/public/sdk/accountLifecycle-BAGG_rbk.js +0 -1341
  1741. package/dist/public/sdk/actions-CCvThiKe.js +0 -225
  1742. package/dist/public/sdk/adapters-B4JeK1nJ.js +0 -4864
  1743. package/dist/public/sdk/base-D1B5mGin.js +0 -64
  1744. package/dist/public/sdk/base64-Clm8C-e9.js +0 -68
  1745. package/dist/public/sdk/browser-D6eZGhzE.js +0 -2393
  1746. package/dist/public/sdk/bytes-qKxKn4gg.js +0 -40
  1747. package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1748. package/dist/public/sdk/canonicalSignerErrorCode-CRoJMVpp.js +0 -153
  1749. package/dist/public/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1750. package/dist/public/sdk/chains-BMh3btVo.js +0 -124
  1751. package/dist/public/sdk/challengeDelivery-Dd0586fo.js +0 -74
  1752. package/dist/public/sdk/chunk-BtrIJ4_z.js +0 -33
  1753. package/dist/public/sdk/configHelpers-vAQCzUD0.js +0 -179
  1754. package/dist/public/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1755. package/dist/public/sdk/defaultConfigs-B3c16M_8.js +0 -355
  1756. package/dist/public/sdk/display-KdIL0ff7.js +0 -126
  1757. package/dist/public/sdk/domainIds-lcrFg6Sa.js +0 -338
  1758. package/dist/public/sdk/ecdsaCapabilityManifest-kzO_fW09.js +0 -817
  1759. package/dist/public/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1760. package/dist/public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +0 -1983
  1761. package/dist/public/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1762. package/dist/public/sdk/ecdsaWalletRecords-Cz4m6bIz.js +0 -18
  1763. package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
  1764. package/dist/public/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1765. package/dist/public/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1766. package/dist/public/sdk/errors-93h9uAW9.js +0 -92
  1767. package/dist/public/sdk/events-DYoBL2HO.js +0 -8
  1768. package/dist/public/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1769. package/dist/public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +0 -4288
  1770. package/dist/public/sdk/exactSessionState-CiD5fBEs.js +0 -2612
  1771. package/dist/public/sdk/exactSigningLaneIdentity-DQeqPMST.js +0 -335
  1772. package/dist/public/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1773. package/dist/public/sdk/export-viewer-host-ZqA2Yz3H.js +0 -204
  1774. package/dist/public/sdk/helpers-ZrowMnev.js +0 -302
  1775. package/dist/public/sdk/host-BWBbCAMu.js +0 -533
  1776. package/dist/public/sdk/intentDigest-CvOSNlCH.js +0 -75
  1777. package/dist/public/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1778. package/dist/public/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1779. package/dist/public/sdk/keccak-DUL3d8SF.js +0 -148
  1780. package/dist/public/sdk/keyMaterialBrands-CX41hur6.js +0 -94
  1781. package/dist/public/sdk/localOnly-Bg8UuLZ5.js +0 -146
  1782. package/dist/public/sdk/messages-C7Dbx9iN.js +0 -594
  1783. package/dist/public/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1784. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1785. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DPb0s3hQ.js +0 -4008
  1786. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js +0 -405
  1787. package/dist/public/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1788. package/dist/public/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1789. package/dist/public/sdk/normalization-CBt413-z.js +0 -22
  1790. package/dist/public/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1791. package/dist/public/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1792. package/dist/public/sdk/passkey-custody-Bk1jAknm.js +0 -487
  1793. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js +0 -237
  1794. package/dist/public/sdk/prfCache-wqQSjYLn.js +0 -58
  1795. package/dist/public/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1796. package/dist/public/sdk/promptText-CuRa_ivd.js +0 -32
  1797. package/dist/public/sdk/recovery-entrypoint-DW2tGyMs.js +0 -779
  1798. package/dist/public/sdk/registration-BZDzDv91.js +0 -14414
  1799. package/dist/public/sdk/registration-BzVHODuD.js +0 -233
  1800. package/dist/public/sdk/registrationAccounts-CKku_Sgy.js +0 -33
  1801. package/dist/public/sdk/registrationIds-DLSdEKSv.js +0 -310
  1802. package/dist/public/sdk/registrationIntent-D0PxwEY4.js +0 -393
  1803. package/dist/public/sdk/registrationPreparationPreload-CIAuRlxI.js +0 -13
  1804. package/dist/public/sdk/registrationSignerPlan-CAikVZZQ.js +0 -440
  1805. package/dist/public/sdk/relayerHttp-VC8Holz1.js +0 -24
  1806. package/dist/public/sdk/routePlan-D59x5xzQ.js +0 -83
  1807. package/dist/public/sdk/router-C5lF_J_u.js +0 -4721
  1808. package/dist/public/sdk/routerAbNormalSigning-fhvpDtmY.js +0 -992
  1809. package/dist/public/sdk/runtime-auth-DFTqwj3u.js +0 -5540
  1810. package/dist/public/sdk/runtime-device-link-C1Oub8Lw.js +0 -259
  1811. package/dist/public/sdk/runtime-ecdsa-tempo-rkWwolw1.js +0 -177
  1812. package/dist/public/sdk/runtime-email-otp-vuUG5LYl.js +0 -320
  1813. package/dist/public/sdk/runtime-export-FZWj0HxJ.js +0 -112
  1814. package/dist/public/sdk/runtime-near-B9cjurVD.js +0 -278
  1815. package/dist/public/sdk/runtime-preferences-Dq0bfyS5.js +0 -67
  1816. package/dist/public/sdk/runtime-recovery-C-vfFKF3.js +0 -45
  1817. package/dist/public/sdk/runtime-recovery-codes-bTm3fLV4.js +0 -95
  1818. package/dist/public/sdk/runtimeContext-iLXnxVlZ.js +0 -44443
  1819. package/dist/public/sdk/runtimeLoader-hod6T2-m.js +0 -44
  1820. package/dist/public/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1821. package/dist/public/sdk/secp256k1-el9aE4Sv.js +0 -2504
  1822. package/dist/public/sdk/secureRandomId-BORsmdS4.js +0 -33
  1823. package/dist/public/sdk/sessionPolicy-CHiilOAB.js +0 -453
  1824. package/dist/public/sdk/shared-DkbeLCI3.js +0 -33
  1825. package/dist/public/sdk/signEvmFamily-e4IWWsZs.js +0 -4666
  1826. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js +0 -226
  1827. package/dist/public/sdk/signEvmWithUiConfirm-C61TCBnh.js +0 -27
  1828. package/dist/public/sdk/signNear-Bblwn2kT.js +0 -5929
  1829. package/dist/public/sdk/signatureUses-BkGyYt8F.js +0 -51
  1830. package/dist/public/sdk/signerDomain-IEAVrOrc.js +0 -59
  1831. package/dist/public/sdk/signerLoader-D7Aey0FD.js +0 -23
  1832. package/dist/public/sdk/signerSlot-_ovonwVX.js +0 -10
  1833. package/dist/public/sdk/signingFlow-rZfPegH9.js +0 -1320
  1834. package/dist/public/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1835. package/dist/public/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1836. package/dist/public/sdk/trace-rHe0wz7q.js +0 -127
  1837. package/dist/public/sdk/transaction-activity-CSMCveBn.js +0 -218
  1838. package/dist/public/sdk/transactionReview-DpHLTznU.js +0 -100
  1839. package/dist/public/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1840. package/dist/public/sdk/transactionState-DP9O8F6f.js +0 -1885
  1841. package/dist/public/sdk/types-Dx9fczU7.js +0 -111
  1842. package/dist/public/sdk/validation-gat4LEKm.js +0 -409
  1843. package/dist/public/sdk/wallet-recovery-Bz9qKgaL.js +0 -1905
  1844. package/dist/public/sdk/walletAuthority-BQBxgUBn.js +0 -1251
  1845. package/dist/public/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js +0 -11130
  1846. package/dist/public/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1847. package/dist/public/sdk/walletRecoveryCommit-sjGNTHUj.js +0 -2159
  1848. package/dist/public/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1849. package/dist/public/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1850. package/dist/public/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1851. package/dist/public/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1852. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  1853. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  1854. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  1855. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  1856. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  1857. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  1858. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  1859. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  1860. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/webauthn-bridge.d.ts +0 -3
  1861. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.d.ts +0 -52
  1862. package/dist/types/wallet/src/core/signingEngine/interfaces/nearKeyOps.d.ts +0 -15
  1863. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
  1864. package/dist/types/wallet/src/core/signingEngine/session/holderShares/forbiddenHolderSharePayloads.typecheck.d.ts +0 -2
  1865. package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareHandle.d.ts +0 -6
  1866. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.typecheck.d.ts +0 -2
  1867. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/activationCoordinator.d.ts +0 -37
  1868. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/laneMaterialInvalidation.d.ts +0 -23
  1869. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/operations.typecheck.d.ts +0 -2
  1870. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/recipientPreparation.d.ts +0 -55
  1871. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.typecheck.d.ts +0 -6
  1872. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.d.ts +0 -4
  1873. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
  1874. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
  1875. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
  1876. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.d.ts +0 -44
  1877. package/dist/types/wallet/src/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.d.ts +0 -4
  1878. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/ecdsaLaneHolderWorkerRuntime.d.ts +0 -20
  1879. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/passkeyCustodyLink.d.ts +0 -18
  1880. /package/dist/esm/{react/SeamsWeb → SeamsWeb}/assembly/preconnectWalletAssets.js +0 -0
@@ -1,3908 +0,0 @@
1
- import { base58Encode } from "../../shared-ts/src/utils/base58.js";
2
- import { base64UrlDecode, base64UrlEncode } from "../../shared-ts/src/utils/base64.js";
3
- import { secureRandomId } from "../../shared-ts/src/utils/secureRandomId.js";
4
- import { sha256HexUtf8 } from "../../shared-ts/src/utils/digests.js";
5
- import { buildThresholdEd25519Participants2pV1 } from "../../shared-ts/src/threshold/participants.js";
6
- import { signingRootScopeFromRuntimePolicyScope } from "../../shared-ts/src/threshold/signingRootScope.js";
7
- import { DEFAULT_THRESHOLD_SESSION_POLICY, DEFAULT_UNLOCK_REMAINING_USES } from "../../core/signingEngine/threshold/sessionPolicy.js";
8
- import { ROUTER_AB_ED25519_NORMAL_SIGNING_STATE_KIND, SIGNING_SESSION_SEAL_GROUP_ID } from "../../shared-ts/src/utils/signingSessionSeal.js";
9
- import { mpcMaterialActivationRefsEqual, parseThresholdEd25519SessionId, parseWalletId } from "../../shared-ts/src/utils/domainIds.js";
10
- import { routerAbMpcMaterialActivationRefFromWire } from "../../shared-ts/src/utils/routerAbNormalSigningIdentity.js";
11
- import { parseWalletSessionAuthorizationId, parseWalletSessionMintId } from "../../shared-ts/src/authorization/capabilityKinds.js";
12
- import { activeWalletSessionV1RecordsEqual } from "../../shared-ts/src/device-linking/activeWalletSession.js";
13
- import { isEmailOtpWalletAuthAuthority, parseWalletAuthAuthorityRef, walletAuthAuthorityRef } from "../../shared-ts/src/utils/walletAuthAuthority.js";
14
- import { WALLET_EMAIL_OTP_UNLOCK_OPERATION } from "../../shared-ts/src/utils/emailOtpDomain.js";
15
- import { WALLET_AUTH_METHODS } from "../../shared-ts/src/utils/signerDomain.js";
16
- import { SigningSessionIds } from "../../core/signingEngine/session/operationState/types.js";
17
- import { nearEd25519SigningKeyIdFromString } from "../../shared-ts/src/utils/registrationIds.js";
18
- import { toWalletId } from "../../core/signingEngine/interfaces/ecdsaChainTarget.js";
19
- import { exactEd25519ExportMaterialIdentity } from "../../core/signingEngine/session/identity/exactSigningLaneIdentity.js";
20
- import { parseSignerSlot } from "../../shared-ts/src/utils/signerSlot.js";
21
- import { buildRouterAbEd25519SigningWalletSession } from "../../core/signingEngine/session/routerAbSigningWalletSession.js";
22
- import { toAccountId } from "../../core/types/accountIds.js";
23
- import { parseSigningSessionSealKeyVersion } from "../../shared-ts/src/threshold/keyMaterialBrands.js";
24
- import { listExactSealedSessionsForWallet, readExactEd25519SealedSession } from "../../core/signingEngine/session/persistence/sealedSessionStore.js";
25
- import { buildAuthorizationRequiredNearEd25519YaoSigningPreparation, buildAuthorizedNearEd25519YaoSigningPreparation, classifyNearEd25519WalletSessionAuthorization, nearEd25519SessionMatchesMaterialActivation } from "../../core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js";
26
- import { ed25519SealedRuntimeAuthorityRef, parseExactEd25519SealedSessionRuntime, resolveExactEd25519SealedSessionRuntimeForLane, resolveExactEd25519SealedSessionRuntimeForWalletSubject } from "../../core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js";
27
- import { buildEmailOtpRouterAbEd25519WalletSessionState, buildPasskeyRouterAbEd25519WalletSessionState, nearEd25519YaoOperationMaterialFacts, rebindRouterAbEd25519WalletSessionStateFromExactRuntime } from "../../core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js";
28
- import { isWalletCustodySeedBinding } from "../../shared-ts/src/passkey-custody/custodySecretBinding.js";
29
- import "../../shared-ts/src/passkey-custody/index.js";
30
- import { ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1 } from "../../shared-ts/src/utils/routerAbEd25519Yao.js";
31
- import "../../shared-ts/src/device-linking/index.js";
32
- import { createNearProvisioningStateChangedEvent } from "../../core/types/sdkSentEvents.js";
33
- import { WalletSessionStatusReadScope, createRelayerExactWalletSessionStatusPort } from "../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
34
- import { subscribeToNearProvisioning } from "../../core/signingEngine/flows/registration/nearProvisioningRegistry.js";
35
- import { publishEd25519YaoPublicCapabilityReferenceAndLane, readEmailOtpProviderSubjectForWalletV1 } from "../../core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js";
36
- import { Ed25519YaoPageLifecycleOwner } from "../../core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js";
37
- import { establishEvmFamilyCustodyV1, establishNearEd25519CustodyV1, joinEvmFamilyCustodyV1, joinNearEd25519CustodyV1, rejoinEvmFamilyCustodyV1, rejoinNearEd25519CustodyV1 } from "../../core/signingEngine/walletCustody/registrationCeremony.js";
38
- import { requestWalletCustodyCeremonyOperation, walletCustodyCeremonyStepRunner } from "../../core/signingEngine/walletCustody/ceremonyStepRunner.js";
39
- import { RouterAbEd25519YaoHttpActivationTransportV1 } from "../../core/signingEngine/threshold/ed25519/yaoClient.js";
40
- import { walletCustodyEd25519ActiveClientMetadataV1, walletRecoveryEd25519ActiveClientMetadataV1 } from "../../core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js";
41
- import { activateWalletRecoveryEd25519V1, admitWalletRecoveryEd25519V1, buildWalletSessionEd25519RecoveryAdmissionRequestV1, executeWalletRecoveryEd25519RoundV1 } from "../../core/signingEngine/walletCustody/walletRecoveryEd25519.js";
42
- import { clearLinkedDeviceEcdsaHolderMaterialsWasm, destroyLinkedDeviceEcdsaHolderMaterialsWasm, openEcdsaRoleLocalSigningMaterialWasm } from "../../core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js";
43
- import { recoverWalletCustodyManifestV1 } from "../../core/signingEngine/walletCustody/walletRecoveryManifest.js";
44
- import { deleteWalletCustodyEd25519MaterialV1, loadWalletCustodyEd25519MaterialV1, persistWalletCustodyEd25519MaterialV1 } from "../../core/signingEngine/walletCustody/ed25519SeedMaterial.js";
45
- import { NEAR_ED25519_YAO_KEY_VERSION_V1 } from "../../shared-ts/src/utils/registrationSignerPlan.js";
46
- import { WalletSessionAuthorizationUpgradeRequiredError, walletSessionAuthorizations } from "../../core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
47
- import { IndexedDBManager } from "../../core/indexedDB/index.js";
48
- import { redactedPasskeyRegistrationCredential, serializeRegistrationCredentialWithPRF } from "../../core/signingEngine/webauthnAuth/credentials/helpers.js";
49
- import { IndexedDbEcdsaCapabilityManifestStore } from "../../core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js";
50
- import { importWalletCustodyEcdsaContinuity } from "../../core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js";
51
- import { clearLinkedEcdsaHolderRuntimesV1, listLinkedEcdsaHolderRuntimesV1, removeLinkedEcdsaHolderRuntimeV1, resolveLinkedEcdsaHolderRuntimeV1 } from "../../core/signingEngine/session/material/linkedEcdsaHolderRuntime.js";
52
- import { SigningAuthPlanKind } from "../../core/signingEngine/stepUpConfirmation/types.js";
53
- import { fullWalletLoginRequired, invalidWalletSigningMaterial, isWalletSigningStateFailure, walletSigningMaterialBlockError } from "../../core/signingEngine/session/material/walletSigningStateFailure.js";
54
- import { buildBlockedMpcCapabilityHydrationPlan, buildRehydrateMaterialActivationHydrationPlan, buildUseLiveRuntimeHydrationPlan } from "../../core/signingEngine/session/material/mpcCapabilityHydration.js";
55
- import { nearEd25519YaoMaterialActivationFromMetadata, nearEd25519YaoRuntimeRef, resolveNearEd25519YaoCapabilityHydrationV1 } from "../../core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js";
56
- import { buildThresholdEd25519WebAuthnPrfSecretSource } from "../../core/signingEngine/threshold/ed25519/walletSession.js";
57
- import { resolveThresholdEd25519CommitQueueKey, withThresholdEd25519CommitQueue } from "../../core/signingEngine/threshold/ed25519/commitQueue.js";
58
- import { isConcreteAvailableSigningLane } from "../../core/signingEngine/session/availability/availableSigningLanes.js";
59
- import { signNear } from "../../core/signingEngine/flows/signNear/signNear.js";
60
- import { ed25519DurableMaterialLocator } from "../../core/signingEngine/session/sealedRecovery/materialActivationKey.js";
61
- import { resolvePasskeyEd25519YaoExportContextV1 } from "../../core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js";
62
- import { ed25519YaoLocalMaterialIdentityFromWalletSession, hydratePasskeyEd25519YaoLocalMaterialV1, preparePasskeyEd25519YaoLocalMaterialRehydrationV1, readPasskeyEd25519YaoLocalMaterialLocatorV1 } from "../../core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js";
63
- import { buildPasskeyEd25519RestoreMetadata, persistPasskeyEd25519YaoSessionForRefresh } from "../../core/signingEngine/session/passkey/ed25519YaoSealedSession.js";
64
- import { buildRestorableMpcMaterialRefForHydration } from "../../core/signingEngine/session/material/ecdsaCapabilityHydration.js";
65
- import { readOwnerWalletExecutionLaneProjectionV1 } from "../../core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js";
66
- import { hydrateWalletExecutionLane } from "../../core/signingEngine/session/lanes/walletExecutionLaneHydration.js";
67
- import { storeNearThresholdKeyMaterial } from "../../core/accountData/near/keyMaterial.js";
68
- import { persistVerifiedEmailOtpAuthorityAfterUnlock, walletAuthAuthorityRefForVerifiedEmailOtpUnlock } from "../operations/authMethods/emailOtp/walletActivation.js";
69
- import { isRetryableSealedRefreshCapabilityFetchError } from "../../core/signingEngine/session/warmCapabilities/sealedRefreshParity.js";
70
- import { buildExactEcdsaPasskeyOwnerLaneScope, buildExactLinkedEmailOtpOwnerLaneScope, buildExactPasskeyOwnerLaneScope, resolveExactOwnerLaneScope, resolveExactWalletAuthAuthority } from "../../core/signingEngine/session/identity/ownerLaneScope.js";
71
- import { buildFreshEmailOtpRoutePlan } from "../../core/signingEngine/session/emailOtp/routePlan.js";
72
- import { clearThresholdEcdsaSigningQueue, withThresholdEcdsaSigningQueue } from "../../core/signingEngine/threshold/ecdsa/signingQueue.js";
73
- import { reconcileTempoNonceLane, reportTempoBroadcastAccepted, reportTempoBroadcastRejected, reportTempoDroppedOrReplaced, reportTempoFinalized, signEvmFamily } from "../../core/signingEngine/flows/signEvmFamily/signEvmFamily.js";
74
- import { UserConfirmationType } from "../../core/signingEngine/stepUpConfirmation/userConfirmationType.js";
75
- import { exportKeypairWithUI, resolveExactKeyExportLane } from "../../core/signingEngine/flows/recovery/public.js";
76
- import { activateAuthenticatedWalletState, finalizeWalletEcdsaRegistration, finalizeWalletEd25519SignerRegistration, getAllUsers, getAuthenticationCredentialsSerialized, getLastUser, getUserBySignerSlot, getWalletNearProvisioningState, hasPasskeyCredential, nearAuthenticatorsByAccount, requestRegistrationCredentialConfirmation, rollbackUserRegistration, rollbackWalletEd25519SignerRegistration, setLastUser, setWalletNearProvisioningState, storeAuthenticator, storeUserData, storeWalletEcdsaRecoverySignerRecords, storeWalletEcdsaSignerRecords, storeWalletEd25519RecoveryRegistrationData, storeWalletEd25519RegistrationData, storeWalletEmailOtpEcdsaRegistrationData, storeWalletEmailOtpEcdsaSignerRecords, storeWalletEmailOtpEd25519RegistrationData, storeWalletEmailOtpMixedRegistrationData, storeWalletMixedRegistrationData } from "../../core/signingEngine/flows/registration/public.js";
77
- import { exactWalletSessionWithOperationCredentialOrThrow } from "../../core/signingEngine/session/identity/exactWalletSessionReader.js";
78
- import { enrollEmailOtpInternal, loginWithEmailOtpEcdsaCapabilityInternal, prepareEmailOtpRegistrationEnrollmentMaterialInternal, refreshEmailOtpSigningSession, requestEmailOtpSigningSessionChallenge } from "../../core/signingEngine/flows/signEvmFamily/emailOtpPublic.js";
79
- import { __isWalletIframeHostMode } from "../../core/browser/walletIframe/host-mode.js";
80
- import { destroyUnlockedWalletEd25519ExportRootCapabilitiesV1, establishUnlockedWalletEd25519ExportRootCapabilityV1, setUnlockedCustodyEnvelopeUpgradeSinkV1 } from "../../core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js";
81
- import { createManagerAssembly } from "../../core/signingEngine/assembly/createManagers.js";
82
- import { verifySealedRefreshStartupParity } from "../../core/rpcClients/relayer/sealedRefreshCapabilities.js";
83
- import { unlockEmailOtpEd25519YaoCapability } from "../../core/signingEngine/session/emailOtp/walletUnlock.js";
84
- import { WalletCustodyEd25519ActiveClientV1, disposeWalletCustodyEd25519ActiveClientV1 } from "../../core/signingEngine/walletCustody/ed25519ActiveClient.js";
85
- import { activateWalletCustodyEd25519CapabilityV1 } from "../../core/signingEngine/walletCustody/activateEd25519Capability.js";
86
- import { resolveWalletCustodyEd25519ProjectionV1 } from "../../core/signingEngine/walletCustody/ed25519Projection.js";
87
- import { exactEd25519LaneIdentityFromAvailableLane, nearEd25519CapabilityRehydrationKey, nearEd25519CapabilityRehydrationMaterialIdentity, nearEd25519LaneMatchesCapabilityRehydrationSubject } from "../../core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js";
88
- import { generateSessionId } from "../../core/signingEngine/session/passkey/prfCache.js";
89
- import { resolveEmailOtpEd25519OperationRecoveryBootstrapV1, resolveWalletCustodyEd25519ExportContextV1 } from "../../core/signingEngine/session/emailOtp/ed25519ExportContext.js";
90
- import { requestClearEmailOtpWarmSessionMaterial, requestRehydrateEmailOtpEd25519YaoOperationMaterial } from "../../core/signingEngine/session/emailOtp/workerRequests.js";
91
- import { resolveWalletAuthorityOperation } from "../../core/signingEngine/session/authority/authorityOperationResolver.js";
92
- import { discoverPersistedSessionsForWallet, readOwnerScopedSigningLanes, readPersistedAvailableSigningLanes } from "../../core/signingEngine/session/public.js";
93
- import { createWarmSigningPorts } from "../../core/signingEngine/assembly/ports/warmSigning.js";
94
- import { createSessionPublicDeps } from "../../core/signingEngine/assembly/ports/session.js";
95
- import { clearVolatileWarmSigningMaterial, getWarmThresholdEd25519SessionStatus, hydrateSigningSession, scheduleRouterAbEcdsaDerivationLoginPresignaturePrefill } from "../../core/signingEngine/session/warmCapabilities/public.js";
96
- import { bootstrapEcdsaSession, connectEd25519Session } from "../../core/signingEngine/session/passkey/public.js";
97
- import { createBrowserActiveEcdsaWalletSessionAuthorizationResolver, createBrowserCanonicalWalletSessionStatusReader, createBrowserSigningSurfaceEnginePorts, listBrowserActiveEcdsaCapabilityManifestsForWallet, listBrowserEcdsaPreprocessingCapabilitiesForWallet, listBrowserEcdsaSigningCapabilitiesForWallet, readBrowserExactNearEd25519WalletSessionAuthorization, resolveBrowserActiveEcdsaCapabilityRuntime, resolveBrowserActiveEcdsaCapabilityRuntimeForChain, resolveBrowserActiveNearEd25519WalletSessionAuthorization, resolveBrowserNearEd25519PasskeyAuthorityForMaterial } from "../assembly/browserSigningSurfaceAssembly.js";
98
- import { createBrowserRecoveryPublicDeps } from "../assembly/createBrowserRecoveryPublicDeps.js";
99
- import { createBrowserStepUpRuntime } from "../assembly/createBrowserStepUpRuntime.js";
100
- import { createBrowserWarmSessionPublicDeps } from "../assembly/createBrowserWarmSessionPublicDeps.js";
101
- import { configurePasskeyCustodySessionCachePersistence, readPasskeyCustodySessionEnvelope } from "../../core/signingEngine/session/passkey/passkeyCustodySessionCache.js";
102
- import { upgradeWalletCustodyEnvelopeOwnership } from "../../core/rpcClients/relayer/passkeyCustodyEnvelope.js";
103
- import { finalizeWalletRegistrationEcdsaSessions } from "../../core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js";
104
- import { walletIframeRequestIdFromBoundary } from "../../core/types/walletIframeIdentity.js";
105
- import { walletRecoveryReplacementCredentialFromRegistrationV1 } from "../../core/signingEngine/walletCustody/walletRecoveryCredential.js";
106
- //#region src/SeamsWeb/signingSurface/BrowserSigningSurface.ts
107
- async function resolveActiveEd25519WalletSessionAuthorization(walletId, relayerUrl) {
108
- return await resolveBrowserActiveNearEd25519WalletSessionAuthorization(walletId, relayerUrl);
109
- }
110
- function requireEmailOtpEcdsaRehydrationManifest(manifests, authorityDigest) {
111
- let selected = null;
112
- for (const manifest of manifests) {
113
- if (manifest.signer.authority.authorityDigest !== authorityDigest) continue;
114
- if (selected && selected.durableMaterial.roleLocalBinding.keyHandle !== manifest.durableMaterial.roleLocalBinding.keyHandle) throw new Error("[SigningEngine][near] Email OTP ECDSA session identity is ambiguous");
115
- selected = manifest;
116
- }
117
- if (!selected) throw new Error("[SigningEngine][near] Email OTP ECDSA capability is unavailable");
118
- return selected;
119
- }
120
- function buildEmailOtpEcdsaRehydrationPolicy(args) {
121
- const walletSessionMintId = parseWalletSessionMintId(generateSessionId("wallet-session-mint"));
122
- if (!walletSessionMintId.ok) throw new Error("[SigningEngine][near] failed to generate an ECDSA Wallet Session mint id");
123
- return {
124
- kind: "router_ab_ecdsa_post_registration_session_activation_policy_v1",
125
- key_handle: String(args.manifest.durableMaterial.roleLocalBinding.keyHandle),
126
- session_policy: {
127
- threshold_session_id: SigningSessionIds.thresholdEcdsaSession(generateSessionId("threshold-ecdsa-login")),
128
- wallet_session_mint_id: walletSessionMintId.value,
129
- ttl_ms: DEFAULT_THRESHOLD_SESSION_POLICY.ttlMs,
130
- remaining_uses: args.remainingUses,
131
- runtime_policy_scope: args.manifest.durableMaterial.runtimePolicyScope
132
- }
133
- };
134
- }
135
- function activeWalletSessionMatchesCredentialFreeEcdsaActivation(args) {
136
- const materialActivation = routerAbMpcMaterialActivationRefFromWire(args.activation.public_capability.material_activation);
137
- let matchCount = 0;
138
- for (const subject of args.walletSession.capabilitySubjects) if (subject.kind === "sign" && subject.keyFamily === "ecdsa_secp256k1" && mpcMaterialActivationRefsEqual(subject.materialActivation, materialActivation)) matchCount += 1;
139
- return matchCount === 1;
140
- }
141
- async function persistRehydratedEmailOtpEcdsaWalletSession(args) {
142
- const session = args.response.session;
143
- const walletSession = args.authorization.record;
144
- const operationCredential = args.authorization.operationCredential;
145
- if (String(walletSession.walletId) !== String(args.walletId) || String(args.response.public_capability.client_id) !== String(walletSession.walletId) || walletSession.authorizationId !== session.authorization_id || walletSession.quotaId !== session.quota_id || walletSession.expiresAtMs !== session.expires_at_ms || operationCredential.walletSessionId !== session.wallet_session_id || !activeWalletSessionMatchesCredentialFreeEcdsaActivation({
146
- walletSession,
147
- activation: args.response
148
- })) throw new Error("[SigningEngine][near] refreshed ECDSA exact Wallet Session is inconsistent");
149
- await walletSessionAuthorizations.writeExactWithOperationCredential({
150
- record: walletSession,
151
- operationCredential
152
- });
153
- }
154
- async function readBrowserEmailOtpProviderSubject(walletId) {
155
- return await readEmailOtpProviderSubjectForWalletV1(IndexedDBManager, walletId);
156
- }
157
- async function noBrowserWalletPasskeyAuthenticator() {
158
- return null;
159
- }
160
- const browserSigningSurfaceExactWalletAuthMethodStore = {
161
- getWalletAuthMethodV2: (walletAuthMethodId) => IndexedDBManager.getWalletAuthMethodV2(walletAuthMethodId),
162
- listWalletAuthMethodsForWallet: (walletId) => IndexedDBManager.listWalletAuthMethodsForWallet(walletId),
163
- getWalletPasskeyAuthenticator: noBrowserWalletPasskeyAuthenticator,
164
- readEmailOtpProviderSubjectForWallet: readBrowserEmailOtpProviderSubject
165
- };
166
- async function resolveBrowserExactPasskeyWalletAuthAuthorityRef(args) {
167
- const matches = (await IndexedDBManager.listWalletAuthMethodsV2ForWallet(String(args.walletId))).filter((record) => record.kind === WALLET_AUTH_METHODS.passkey && record.status === "active" && record.walletId === args.walletId && String(record.rpId) === args.rpId && String(record.credentialIdB64u) === args.credentialIdB64u);
168
- const [record] = matches;
169
- if (matches.length !== 1 || !record || record.kind !== WALLET_AUTH_METHODS.passkey) return null;
170
- return await walletAuthAuthorityRef({ authority: {
171
- walletId: record.walletId,
172
- factor: {
173
- kind: WALLET_AUTH_METHODS.passkey,
174
- credentialIdB64u: record.credentialIdB64u
175
- },
176
- verifier: {
177
- kind: "webauthn",
178
- rpId: record.rpId
179
- },
180
- bindingId: record.walletAuthMethodId
181
- } });
182
- }
183
- function exactEmailOtpAuthorityRef(args) {
184
- const authorityRef = parseWalletAuthAuthorityRef({
185
- kind: "wallet_auth_authority_ref",
186
- walletId: args.walletId,
187
- walletAuthMethodId: args.walletAuthMethodId,
188
- authorityDigest: args.authorityDigestB64u
189
- });
190
- if (!authorityRef) throw new Error("[SigningEngine][near] exact Email OTP authority digest is invalid");
191
- return authorityRef;
192
- }
193
- async function resolveExactEmailOtpFactorAuthority(args) {
194
- const factorAuthority = await resolveExactWalletAuthAuthority({
195
- authMethod: args.authMethod,
196
- stores: browserSigningSurfaceExactWalletAuthMethodStore
197
- });
198
- if (!isEmailOtpWalletAuthAuthority(factorAuthority) || factorAuthority.walletId !== args.authMethod.walletId || factorAuthority.bindingId !== args.authMethod.walletAuthMethodId || factorAuthority.verifier.emailHashHex !== args.emailHashHex || factorAuthority.factor.providerUserId !== args.providerSubject) throw new Error("[SigningEngine][near] exact Email OTP factor authority changed");
199
- return factorAuthority;
200
- }
201
- function requireEmailOtpNearEd25519MaterialIdentity(identity) {
202
- const auth = identity.auth;
203
- switch (auth.kind) {
204
- case WALLET_AUTH_METHODS.emailOtp: return {
205
- kind: identity.kind,
206
- signer: identity.signer,
207
- auth,
208
- thresholdSessionId: identity.thresholdSessionId
209
- };
210
- case WALLET_AUTH_METHODS.passkey: throw new Error("[SigningEngine][near] Email OTP material identity is required");
211
- default: throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
212
- }
213
- }
214
- /** Selects the exact unlocked Email OTP factor for exhausted-session step-up. */
215
- async function resolveBrowserNearEd25519EmailOtpAuthorityForMaterial(args) {
216
- if (String(args.identity.signer.account.wallet.walletId) !== String(args.walletId) || String(args.identity.signer.account.nearAccountId) !== String(args.nearAccountId) || args.identity.signer.signerSlot !== args.signerSlot) return null;
217
- let selected;
218
- try {
219
- selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(args.walletId));
220
- } catch {
221
- return null;
222
- }
223
- if (selected.kind !== "resolved") return null;
224
- const { selection, authMethod, authority } = selected;
225
- const ed25519Activation = authority.signerActivations.ed25519;
226
- if (selection.lockState !== "unlocked" || selection.walletId !== args.walletId || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.kind !== WALLET_AUTH_METHODS.emailOtp || authMethod.status !== "active" || authMethod.walletId !== args.walletId || authMethod.walletAuthorityId !== authority.authorityId || authority.state !== "active" || authority.walletId !== args.walletId || !ed25519Activation || ed25519Activation.signer.walletId !== args.walletId || !mpcMaterialActivationRefsEqual(ed25519Activation.materialActivation, args.materialActivation)) return null;
227
- try {
228
- const factorAuthorityRef = await walletAuthAuthorityRef({ authority: await resolveExactEmailOtpFactorAuthority({
229
- authMethod,
230
- emailHashHex: authMethod.emailHashHex,
231
- providerSubject: args.identity.auth.providerSubjectId
232
- }) });
233
- if (factorAuthorityRef.walletId !== args.walletId || factorAuthorityRef.walletAuthMethodId !== authMethod.walletAuthMethodId) return null;
234
- return factorAuthorityRef;
235
- } catch {
236
- return null;
237
- }
238
- }
239
- async function resolveExactEmailOtpEd25519ActivationAuthorization(args) {
240
- const bootstrapSession = args.bootstrap.session;
241
- const stored = args.exactAuthorization?.record ?? await walletSessionAuthorizations.readExact(bootstrapSession.walletSessionId);
242
- if (!stored || stored.kind !== "active_wallet_session_v1" || stored.walletId !== args.walletId || stored.authorizationId !== bootstrapSession.authorizationId || stored.quotaId !== bootstrapSession.quotaId || stored.expiresAtMs <= Date.now()) throw new Error("[SigningEngine][near] exact Email OTP activation session is unavailable");
243
- const [method, authority] = await Promise.all([IndexedDBManager.getWalletAuthMethodV2(String(stored.authMethodId)), IndexedDBManager.getWalletAuthority(String(stored.authorityId))]);
244
- if (!method || method.kind !== "email_otp" || method.status !== "active" || method.walletId !== args.walletId || method.walletAuthorityId !== stored.authorityId || method.emailHashHex !== args.emailHashHex || !authority || authority.state !== "active" || authority.walletId !== args.walletId || authority.authorityId !== stored.authorityId || authority.authorityDigestB64u !== stored.authorityDigestB64u || authority.revocationEpoch !== stored.authorityRevocationEpoch) throw new Error("[SigningEngine][near] exact Email OTP activation authority is unavailable");
245
- const authorityRef = exactEmailOtpAuthorityRef({
246
- walletId: args.walletId,
247
- walletAuthMethodId: method.walletAuthMethodId,
248
- authorityDigestB64u: authority.authorityDigestB64u
249
- });
250
- const factorAuthorityRef = await walletAuthAuthorityRef({ authority: await resolveExactEmailOtpFactorAuthority({
251
- authMethod: method,
252
- emailHashHex: args.emailHashHex,
253
- providerSubject: args.providerSubject
254
- }) });
255
- if (args.verifiedAuthority && (args.verifiedAuthority.walletId !== factorAuthorityRef.walletId || args.verifiedAuthority.walletAuthMethodId !== factorAuthorityRef.walletAuthMethodId)) throw new Error("[SigningEngine][near] verified Email OTP activation authority changed");
256
- const exact = args.exactAuthorization;
257
- if (exact) {
258
- if (!activeWalletSessionV1RecordsEqual(exact.record, stored) || exact.operationCredential.walletSessionId !== bootstrapSession.walletSessionId) throw new Error("[SigningEngine][near] exact Email OTP activation credential is unavailable");
259
- return {
260
- authority: authorityRef,
261
- operationCredential: exact.operationCredential
262
- };
263
- }
264
- const persisted = await walletSessionAuthorizations.readExactActiveForWallet({
265
- walletId: args.walletId,
266
- authorityId: stored.authorityId,
267
- authMethodId: stored.authMethodId
268
- });
269
- if (persisted.kind !== "found" || !activeWalletSessionV1RecordsEqual(persisted.record, stored) || persisted.operationCredential.walletSessionId !== bootstrapSession.walletSessionId) throw new Error("[SigningEngine][near] exact Email OTP activation credential is unavailable");
270
- return {
271
- authority: authorityRef,
272
- operationCredential: persisted.operationCredential
273
- };
274
- }
275
- function unavailableEmailOtpExportAuthorizationFromStatus(status) {
276
- switch (status.status) {
277
- case "missing": return { kind: "missing" };
278
- case "expired": return { kind: "expired" };
279
- case "superseded": return { kind: "superseded" };
280
- case "authority_unavailable": return { kind: "authority_unavailable" };
281
- case "method_unavailable": return { kind: "method_unavailable" };
282
- case "capability_unavailable": return { kind: "capability_unavailable" };
283
- case "invalid": return { kind: "corrupt" };
284
- default: throw new Error("[SigningEngine][ed25519-export] unsupported exact session status");
285
- }
286
- }
287
- async function readExactEmailOtpEd25519ExportAuthorization(args) {
288
- const walletId = args.subject.signer.account.wallet.walletId;
289
- let selected;
290
- try {
291
- selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(walletId));
292
- } catch {
293
- return { kind: "persistence_unavailable" };
294
- }
295
- if (selected.kind !== "resolved") return selected.kind === "integrity_error" ? { kind: "corrupt" } : { kind: "missing" };
296
- const { selection, authority, authMethod } = selected;
297
- if (selection.lockState !== "unlocked" || selection.walletId !== walletId || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authority.state !== "active" || authority.walletId !== walletId || authMethod.kind !== "email_otp" || authMethod.status !== "active" || authMethod.walletId !== walletId || authMethod.walletAuthorityId !== authority.authorityId) return { kind: "corrupt" };
298
- let factorAuthority;
299
- try {
300
- factorAuthority = await resolveExactEmailOtpFactorAuthority({
301
- authMethod,
302
- emailHashHex: authMethod.emailHashHex,
303
- providerSubject: args.subject.auth.providerSubjectId
304
- });
305
- } catch {
306
- return { kind: "corrupt" };
307
- }
308
- const exact = await walletSessionAuthorizations.readExactActiveForWallet({
309
- walletId,
310
- authorityId: authority.authorityId,
311
- authMethodId: authMethod.walletAuthMethodId
312
- });
313
- switch (exact.kind) {
314
- case "missing":
315
- case "upgrade_required":
316
- case "corrupt":
317
- case "persistence_unavailable": return exact;
318
- case "found": break;
319
- default: throw new Error("[SigningEngine][ed25519-export] unsupported exact local session result");
320
- }
321
- if (exact.record.expiresAtMs <= Date.now()) return { kind: "expired" };
322
- let status;
323
- try {
324
- status = await createRelayerExactWalletSessionStatusPort({
325
- relayerUrl: args.relayerUrl,
326
- operationCredential: exact.operationCredential
327
- }).read({
328
- walletSessionId: exact.operationCredential.walletSessionId,
329
- quotaId: exact.record.quotaId
330
- });
331
- } catch {
332
- return { kind: "persistence_unavailable" };
333
- }
334
- if (status.status !== "active" && status.status !== "exhausted") return unavailableEmailOtpExportAuthorizationFromStatus(status);
335
- return {
336
- kind: "found",
337
- authorization: {
338
- selectedAuthority: authority,
339
- selectedAuthMethod: authMethod,
340
- factorAuthority,
341
- record: exact.record,
342
- operationCredential: exact.operationCredential,
343
- status
344
- }
345
- };
346
- }
347
- function fetchWithGlobalThis(input, init) {
348
- return globalThis.fetch(input, init);
349
- }
350
- function currentNearEd25519CapabilityRehydrationSubject(args) {
351
- const thresholdSessionId = args.walletSessionState.thresholdSessionId;
352
- switch (args.subject.kind) {
353
- case "exact_lane": return {
354
- kind: "exact_lane",
355
- laneIdentity: args.walletSessionState.signingLane.identity
356
- };
357
- case "export_exact_lane": return {
358
- kind: "export_exact_lane",
359
- laneIdentity: exactEd25519ExportMaterialIdentity({
360
- signer: args.walletSessionState.signingLane.identity.signer,
361
- auth: args.walletSessionState.signingLane.identity.auth,
362
- thresholdSessionId
363
- }),
364
- materialActivation: args.subject.materialActivation
365
- };
366
- case "material_identity": return {
367
- kind: "material_identity",
368
- materialIdentity: {
369
- kind: "near_ed25519_material_identity",
370
- signer: args.walletSessionState.signingLane.identity.signer,
371
- auth: args.walletSessionState.signingLane.identity.auth,
372
- thresholdSessionId
373
- }
374
- };
375
- default: return assertNeverNearEd25519CapabilityRehydrationSubject(args.subject);
376
- }
377
- }
378
- function assertNeverNearEd25519CapabilityRehydrationSubject(value) {
379
- throw new Error(`Unknown Ed25519 capability rehydration subject: ${String(value)}`);
380
- }
381
- async function ensurePasskeyEd25519WarmSessionForSigning(args) {
382
- const thresholdSessionId = args.walletSessionState.thresholdSessionId;
383
- let claim = await args.claimWarmSessionMaterial({
384
- thresholdSessionId,
385
- purpose: {
386
- curve: "ed25519",
387
- materialActivation: args.materialActivation
388
- },
389
- consume: false
390
- });
391
- if (claim.ok || claim.code !== "not_found") return claim;
392
- if (args.runtime.factor.kind !== "passkey") throw new Error("[SigningEngine][near] persisted Ed25519 credential is unavailable");
393
- const walletSessionToken = String(args.walletSessionState.walletSessionAuth.walletSessionToken || "").trim();
394
- const groupId = String(args.runtime.sealedRecord.groupId || "").trim();
395
- if (!walletSessionToken || !groupId) return {
396
- ok: false,
397
- code: "invalid_args",
398
- message: "Passkey Ed25519 sealed restore metadata is incomplete"
399
- };
400
- if (!mpcMaterialActivationRefsEqual(args.runtime.sealedRecord.ed25519Restore.materialActivation, args.materialActivation)) throw new Error("[SigningEngine][near] persisted Ed25519 material activation mismatch");
401
- const keyVersion = parseSigningSessionSealKeyVersion(args.runtime.sealedRecord.keyVersion);
402
- const rehydrated = await args.rehydrateWarmSessionMaterial({
403
- thresholdSessionId,
404
- sealedSecretB64u: args.runtime.sealedRecord.sealedSecretB64u,
405
- signingSessionSealKeyVersion: keyVersion,
406
- expiresAtMs: args.runtime.sealedRecord.expiresAtMs,
407
- remainingUses: args.runtime.sealedRecord.remainingUses,
408
- transport: {
409
- curve: "ed25519",
410
- authMethod: "passkey",
411
- walletId: String(args.runtime.walletId),
412
- relayerUrl: args.runtime.relayerUrl,
413
- signingSessionSealKeyVersion: keyVersion,
414
- groupId,
415
- walletSessionToken,
416
- ed25519Restore: buildPasskeyEd25519RestoreMetadata({
417
- rpId: args.runtime.factor.rpId,
418
- nearAccountId: args.runtime.nearAccountId,
419
- nearEd25519SigningKeyId: args.runtime.nearEd25519SigningKeyId,
420
- relayerKeyId: args.runtime.relayerKeyId,
421
- participantIds: args.runtime.participantIds,
422
- runtimePolicyScope: args.runtime.runtimePolicyScope,
423
- signerSlot: args.runtime.signerSlot,
424
- routerAbNormalSigning: args.runtime.routerAbNormalSigning,
425
- credentialIdB64u: args.runtime.factor.credentialIdB64u,
426
- materialActivation: args.materialActivation
427
- })
428
- }
429
- });
430
- if (!rehydrated.ok) return rehydrated;
431
- claim = await args.claimWarmSessionMaterial({
432
- thresholdSessionId,
433
- purpose: {
434
- curve: "ed25519",
435
- materialActivation: args.materialActivation
436
- },
437
- consume: false
438
- });
439
- return claim;
440
- }
441
- async function resolveNearEd25519PublicCapabilityMaterialActivation(args) {
442
- const signer = args.identity.signer;
443
- const matches = (await args.store.listLanes()).filter((reference) => String(reference.walletId) === String(signer.account.wallet.walletId) && String(reference.nearAccountId) === String(signer.account.nearAccountId) && String(reference.nearEd25519SigningKeyId) === String(signer.nearEd25519SigningKeyId) && reference.signerSlot === signer.signerSlot && String(reference.thresholdSessionId) === String(args.identity.thresholdSessionId) && nearEd25519AuthBindingsEqual(reference.auth, args.identity.auth));
444
- if (matches.length > 1) throw new Error("[SigningEngine][near] public Ed25519 capability lane is conflicting");
445
- return matches[0]?.materialActivation ?? null;
446
- }
447
- function emailOtpEd25519YaoLaneReferenceFromRecovery(args) {
448
- const lane = args.walletSessionState.signingLane;
449
- const signer = lane.identity.signer;
450
- if (lane.auth.kind !== "email_otp") throw new Error("[SigningEngine][near] Email OTP recovery returned another auth lane");
451
- return {
452
- walletId: signer.account.wallet.walletId,
453
- nearAccountId: signer.account.nearAccountId,
454
- thresholdSessionId: args.walletSessionState.thresholdSessionId,
455
- runtimePolicyScope: args.walletSessionState.runtimePolicyScope,
456
- materialActivation: args.materialActivation,
457
- auth: {
458
- kind: "email_otp",
459
- providerSubjectId: lane.auth.providerSubjectId
460
- },
461
- nearEd25519SigningKeyId: signer.nearEd25519SigningKeyId,
462
- signerSlot: signer.signerSlot,
463
- remainingUses: args.walletSessionState.signingWalletSession.remainingUses,
464
- expiresAtMs: args.walletSessionState.signingWalletSession.expiresAtMs
465
- };
466
- }
467
- function isLinkedEd25519SignerMaterial(material) {
468
- return material.kind === "wallet_authority_linked_signer_material_v1" && material.keyFamily === "ed25519";
469
- }
470
- function resolveSelectedEmailOtpEd25519ExportRootV1(args) {
471
- const selected = args.selected;
472
- if (selected.kind !== "resolved") {
473
- const detail = selected.kind === "integrity_error" ? `: ${selected.reason}` : "";
474
- throw new Error(`[SigningEngine][ed25519-export] selected Wallet Authority is ${selected.kind}${detail}`);
475
- }
476
- if (selected.authority.provenance.kind === "wallet_registration" || selected.authority.provenance.kind === "wallet_recovery") return null;
477
- const { selection, authMethod, authority, signerMaterials, exportRoot } = selected;
478
- const signer = args.subject.signer;
479
- const ed25519Activation = authority.signerActivations.ed25519;
480
- if (selection.lockState !== "unlocked" || authMethod.kind !== WALLET_AUTH_METHODS.emailOtp || authMethod.status !== "active" || authority.state !== "active" || String(selection.walletId) !== String(signer.account.wallet.walletId) || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletAuthorityId !== authority.authorityId || String(authMethod.walletId) !== String(signer.account.wallet.walletId) || !authority.permissions.includes("export_keys") || !ed25519Activation || !mpcMaterialActivationRefsEqual(ed25519Activation.materialActivation, args.expectedMaterialActivation) || !exportRoot) throw new Error("[SigningEngine][ed25519-export] selected linked Email OTP authority has no exact export root");
481
- let linkedMaterial = null;
482
- for (const candidate of signerMaterials) {
483
- if (!isLinkedEd25519SignerMaterial(candidate) || candidate.authorityId !== authority.authorityId || candidate.walletAuthMethodId !== authMethod.walletAuthMethodId || !mpcMaterialActivationRefsEqual(candidate.materialActivation, args.expectedMaterialActivation)) continue;
484
- if (linkedMaterial) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 material is ambiguous");
485
- linkedMaterial = candidate;
486
- }
487
- if (!linkedMaterial) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 material is unavailable");
488
- const targetFactor = linkedMaterial.targetFactor;
489
- const application = linkedMaterial.publicFacts.applicationBinding;
490
- const lifecycle = linkedMaterial.publicFacts.targetBinding.lifecycle;
491
- const registeredPublicKeyB64u = ed25519Activation.signer.registeredPublicKeyB64u;
492
- if (targetFactor.kind !== WALLET_AUTH_METHODS.emailOtp || targetFactor.walletAuthMethodId !== authMethod.walletAuthMethodId || targetFactor.emailHashHex !== authMethod.emailHashHex || targetFactor.registrationAuthorityId !== authMethod.registrationAuthorityId || exportRoot.authorityId !== authority.authorityId || exportRoot.walletAuthMethodId !== authMethod.walletAuthMethodId || exportRoot.walletKeyId !== ed25519Activation.signer.walletKeyId || exportRoot.envelope.binding.kind !== "ed25519_yao_client_root_v1" || exportRoot.envelope.binding.registeredPublicKeyB64u !== registeredPublicKeyB64u || exportRoot.envelope.factor.kind !== WALLET_AUTH_METHODS.emailOtp || application.wallet_id !== String(signer.account.wallet.walletId) || application.near_ed25519_signing_key_id !== String(signer.nearEd25519SigningKeyId) || application.key_creation_signer_slot !== signer.signerSlot || lifecycle.account_id !== String(signer.account.wallet.walletId) || lifecycle.session_id !== String(args.subject.thresholdSessionId) || lifecycle.selected_server_id !== args.expectedMaterialActivation.signingWorker || base64UrlEncode(Uint8Array.from(linkedMaterial.publicFacts.activationReceipt.registered_public_key)) !== registeredPublicKeyB64u) throw new Error("[SigningEngine][ed25519-export] linked Email OTP export identity changed");
493
- if (args.activeCapability) {
494
- if (!mpcMaterialActivationRefsEqual(args.activeCapability.materialActivation, args.expectedMaterialActivation) || base64UrlEncode(Uint8Array.from(args.activeCapability.registeredPublicKey)) !== registeredPublicKeyB64u) throw new Error("[SigningEngine][ed25519-export] active Email OTP capability changed");
495
- return exportRoot.envelope;
496
- }
497
- return {
498
- envelope: exportRoot.envelope,
499
- source: {
500
- materialActivation: args.expectedMaterialActivation,
501
- signingWorkerId: lifecycle.selected_server_id,
502
- participantIds: linkedMaterial.publicFacts.participantIds,
503
- registeredPublicKeyB64u
504
- }
505
- };
506
- }
507
- async function resolveLinkedPasskeyOwnerSignerSlot(args) {
508
- let material = null;
509
- for (const candidate of args.signerMaterials) {
510
- if (!isLinkedEd25519SignerMaterial(candidate) || candidate.authorityId !== args.authMethod.walletAuthorityId || candidate.walletAuthMethodId !== args.authMethod.walletAuthMethodId) continue;
511
- if (material) throw new Error("[SigningEngine] linked Passkey Ed25519 signer material is conflicting");
512
- material = candidate;
513
- }
514
- if (!material) throw new Error("[SigningEngine] linked Passkey Ed25519 signer material is unavailable");
515
- const application = material.publicFacts.applicationBinding;
516
- const signerSlot = parseSignerSlot(application.key_creation_signer_slot, { min: 1 });
517
- const target = material.targetFactor;
518
- if (!signerSlot || application.wallet_id !== String(args.walletId) || String(material.materialActivation.materialOwner) !== String(args.walletId) || target.kind !== WALLET_AUTH_METHODS.passkey || target.walletAuthMethodId !== args.authMethod.walletAuthMethodId || String(target.rpId) !== String(args.authMethod.rpId) || String(target.credentialIdB64u) !== String(args.authMethod.credentialIdB64u)) throw new Error("[SigningEngine] linked Passkey Ed25519 signer material identity is invalid");
519
- let laneMatches = 0;
520
- for (const reference of await args.publicLaneStore.listLanes()) {
521
- if (reference.auth.kind !== "passkey") continue;
522
- if (String(reference.walletId) !== String(args.walletId) || String(reference.auth.rpId) !== String(args.authMethod.rpId) || reference.auth.credentialIdB64u !== args.authMethod.credentialIdB64u || String(reference.nearEd25519SigningKeyId) !== String(application.near_ed25519_signing_key_id) || reference.signerSlot !== signerSlot || !mpcMaterialActivationRefsEqual(reference.materialActivation, material.materialActivation)) continue;
523
- laneMatches += 1;
524
- }
525
- if (laneMatches === 0) throw new Error("[SigningEngine] linked Passkey Ed25519 public lane is unavailable");
526
- if (laneMatches !== 1) throw new Error("[SigningEngine] linked Passkey Ed25519 public lane is ambiguous");
527
- return signerSlot;
528
- }
529
- async function resolveExactEmailOtpPublicLaneReference(args) {
530
- const signer = args.laneIdentity.signer;
531
- const matches = (await args.store.listLanes()).filter((reference) => reference.auth.kind === WALLET_AUTH_METHODS.emailOtp && args.laneIdentity.auth.kind === WALLET_AUTH_METHODS.emailOtp && reference.auth.providerSubjectId === args.laneIdentity.auth.providerSubjectId && String(reference.walletId) === String(signer.account.wallet.walletId) && String(reference.nearAccountId) === String(signer.account.nearAccountId) && String(reference.nearEd25519SigningKeyId) === String(signer.nearEd25519SigningKeyId) && reference.signerSlot === signer.signerSlot && String(reference.thresholdSessionId) === String(args.laneIdentity.thresholdSessionId) && mpcMaterialActivationRefsEqual(reference.materialActivation, args.materialActivation));
532
- if (matches.length !== 1) throw new Error(matches.length === 0 ? "[SigningEngine][near] Email OTP public lane is unavailable" : "[SigningEngine][near] Email OTP public lane is ambiguous");
533
- return matches[0];
534
- }
535
- async function resolveExactPasskeyPublicLaneReference(args) {
536
- if (args.laneIdentity.auth.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] Passkey public lane authority is required");
537
- const auth = args.laneIdentity.auth;
538
- const signer = args.laneIdentity.signer;
539
- const matches = (await args.store.listLanes()).filter((reference) => reference.auth.kind === WALLET_AUTH_METHODS.passkey && reference.auth.rpId === auth.rpId && reference.auth.credentialIdB64u === auth.credentialIdB64u && String(reference.walletId) === String(signer.account.wallet.walletId) && String(reference.nearAccountId) === String(signer.account.nearAccountId) && String(reference.nearEd25519SigningKeyId) === String(signer.nearEd25519SigningKeyId) && reference.signerSlot === signer.signerSlot && String(reference.thresholdSessionId) === String(args.laneIdentity.thresholdSessionId));
540
- if (matches.length !== 1) throw new Error(matches.length === 0 ? "[SigningEngine][near] Passkey public lane is unavailable" : "[SigningEngine][near] Passkey public lane is ambiguous");
541
- return matches[0];
542
- }
543
- async function resolveExactNearEd25519PublicLaneReference(args) {
544
- const signer = args.identity.signer;
545
- const matches = (await args.store.listLanes()).filter((reference) => String(reference.walletId) === String(signer.account.wallet.walletId) && String(reference.nearAccountId) === String(signer.account.nearAccountId) && String(reference.nearEd25519SigningKeyId) === String(signer.nearEd25519SigningKeyId) && reference.signerSlot === signer.signerSlot && String(reference.thresholdSessionId) === String(args.identity.thresholdSessionId) && nearEd25519AuthBindingsEqual(reference.auth, args.identity.auth) && mpcMaterialActivationRefsEqual(reference.materialActivation, args.materialActivation));
546
- if (matches.length !== 1) throw new Error(matches.length === 0 ? "[SigningEngine][near] exact Ed25519 public lane is unavailable" : "[SigningEngine][near] exact Ed25519 public lane is ambiguous");
547
- return matches[0];
548
- }
549
- async function requireExactPasskeyWalletSessionAuthority(args) {
550
- if (args.reference.auth.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] Passkey public lane authority is required");
551
- if (args.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.passkey || String(args.authorization.session.walletId) !== String(args.reference.walletId)) throw new Error("[SigningEngine][near] Passkey Wallet Session authority does not match lane");
552
- const method = await IndexedDBManager.getWalletAuthMethodV2(args.authorization.selectedAuthMethod.walletAuthMethodId);
553
- if (!method || method.kind !== WALLET_AUTH_METHODS.passkey || method.status !== "active" || String(method.walletId) !== String(args.reference.walletId) || String(method.rpId) !== String(args.reference.auth.rpId) || String(method.credentialIdB64u) !== String(args.reference.auth.credentialIdB64u)) throw new Error("[SigningEngine][near] Passkey Wallet Session method does not match lane");
554
- const authority = await walletAuthAuthorityRef({ authority: {
555
- walletId: method.walletId,
556
- factor: {
557
- kind: WALLET_AUTH_METHODS.passkey,
558
- credentialIdB64u: method.credentialIdB64u
559
- },
560
- verifier: {
561
- kind: "webauthn",
562
- rpId: method.rpId
563
- },
564
- bindingId: method.walletAuthMethodId
565
- } });
566
- const selectedFactorRef = await walletAuthAuthorityRef({ authority: args.authorization.selectedFactorAuthority });
567
- if (authority.authorityDigest !== selectedFactorRef.authorityDigest || authority.walletAuthMethodId !== selectedFactorRef.walletAuthMethodId) throw new Error("[SigningEngine][near] Passkey Wallet Session authority changed");
568
- return authority;
569
- }
570
- async function passkeyWalletSessionStateFromPublicLane(args) {
571
- if (args.reference.auth.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] Passkey public lane authority is required");
572
- if (!nearEd25519SessionMatchesMaterialActivation({
573
- session: args.authorization.session,
574
- materialActivation: args.materialActivation
575
- })) throw new Error("[SigningEngine][near] Passkey Wallet Session material changed");
576
- const authority = await requireExactPasskeyWalletSessionAuthority({
577
- reference: args.reference,
578
- authorization: args.authorization
579
- });
580
- const authorizationId = parseWalletSessionAuthorizationId(args.authorization.session.authorizationId);
581
- if (!authorizationId.ok || args.authorization.operationCredential.token.trim().length === 0) throw new Error("[SigningEngine][near] Passkey Ed25519 Wallet Session credential is unavailable");
582
- const facts = args.material.facts;
583
- const signingWalletSession = buildRouterAbEd25519SigningWalletSession({
584
- walletId: String(args.reference.walletId),
585
- nearAccountId: String(args.reference.nearAccountId),
586
- nearEd25519SigningKeyId: String(args.reference.nearEd25519SigningKeyId),
587
- walletSessionId: args.authorization.operationCredential.walletSessionId,
588
- authorizationId: authorizationId.value,
589
- quotaId: args.authorization.session.quotaId,
590
- thresholdSessionId: args.reference.thresholdSessionId,
591
- remainingUses: args.authorization.status.remainingUses,
592
- expiresAtMs: args.authorization.status.expiresAtMs,
593
- runtimePolicyScope: facts.runtimePolicyScope,
594
- signingRootId: facts.signingRootId,
595
- signingRootVersion: facts.signingRootVersion,
596
- routerAbNormalSigning: facts.routerAbNormalSigning,
597
- walletSessionToken: args.authorization.operationCredential.token,
598
- nowMs: Date.now()
599
- });
600
- if (!signingWalletSession.ok) throw new Error(`[SigningEngine][near] Passkey Wallet Session is unusable (${signingWalletSession.reason})`);
601
- return buildPasskeyRouterAbEd25519WalletSessionState({
602
- walletId: args.reference.walletId,
603
- nearAccountId: args.reference.nearAccountId,
604
- nearEd25519SigningKeyId: args.reference.nearEd25519SigningKeyId,
605
- signerSlot: args.reference.signerSlot,
606
- rpId: args.reference.auth.rpId,
607
- credentialIdB64u: args.reference.auth.credentialIdB64u,
608
- relayerUrl: args.relayerUrl,
609
- authority,
610
- signingWalletSession: signingWalletSession.value
611
- });
612
- }
613
- async function requireExactEd25519SealedRuntimeForLane(args) {
614
- const resolution = await resolveExactEd25519SealedSessionRuntimeForLane(args);
615
- if (resolution.kind !== "resolved") throw invalidWalletSigningMaterial(resolution.kind === "conflict" ? "runtime_conflict" : "missing_runtime");
616
- return resolution.runtime;
617
- }
618
- async function requireExactEd25519SealedRuntimeForMaterialActivation(args) {
619
- const record = await readExactEd25519SealedSession(ed25519DurableMaterialLocator({
620
- authMethod: args.laneIdentity.auth.kind,
621
- materialActivation: args.materialActivation
622
- }));
623
- if (!record || record.curve !== "ed25519") throw new Error("[SigningEngine][near] exact persisted Ed25519 runtime is missing");
624
- const runtime = parseExactEd25519SealedSessionRuntime(record);
625
- if (!runtime || String(runtime.walletId) !== String(args.walletId) || String(runtime.nearAccountId) !== String(args.laneIdentity.signer.account.nearAccountId) || String(runtime.nearEd25519SigningKeyId) !== String(args.laneIdentity.signer.nearEd25519SigningKeyId) || runtime.signerSlot !== args.laneIdentity.signer.signerSlot || String(runtime.thresholdSessionId) !== String(args.laneIdentity.thresholdSessionId) || !nearEd25519AuthBindingsEqual(runtime.auth, args.laneIdentity.auth) || !mpcMaterialActivationRefsEqual(runtime.sealedRecord.ed25519Restore.materialActivation, args.materialActivation)) throw new Error("[SigningEngine][near] exact persisted Ed25519 runtime identity mismatch");
626
- return runtime;
627
- }
628
- async function requireExactEd25519SealedRuntimeForMaterialIdentity(args) {
629
- const runtimes = (await listExactSealedSessionsForWallet({
630
- walletId: args.walletId,
631
- filter: {
632
- authMethod: args.identity.auth.kind,
633
- curve: "ed25519"
634
- }
635
- })).filter((record) => record.curve === "ed25519").map(parseExactEd25519SealedSessionRuntime).filter((runtime) => runtime !== null && nearEd25519RuntimeMatchesMaterialIdentity({
636
- runtime,
637
- identity: args.identity
638
- }));
639
- if (runtimes.length === 0) throw invalidWalletSigningMaterial("missing_runtime");
640
- if (runtimes.length !== 1) throw invalidWalletSigningMaterial("runtime_conflict");
641
- return runtimes[0];
642
- }
643
- function operationStepUpProofMatchesSelectedWalletAuthMethod(args) {
644
- const { selection, authMethod, authority } = args.selected;
645
- if (selection.lockState !== "unlocked" || selection.walletId !== args.walletId || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletId !== args.walletId || authMethod.walletAuthorityId !== authority.authorityId || authority.walletId !== args.walletId) return false;
646
- switch (args.proof.kind) {
647
- case "passkey": return authMethod.kind === WALLET_AUTH_METHODS.passkey && args.proof.authority.walletId === args.walletId && args.proof.authority.bindingId === authMethod.walletAuthMethodId && args.proof.authority.factor.credentialIdB64u === authMethod.credentialIdB64u && args.proof.authority.verifier.rpId === authMethod.rpId;
648
- case "email_otp": return authMethod.kind === WALLET_AUTH_METHODS.emailOtp && args.proof.authorityRef.walletId === args.walletId && args.proof.authorityRef.walletAuthMethodId === authMethod.walletAuthMethodId;
649
- default:
650
- args.proof;
651
- throw new Error("[SigningEngine][near] unsupported operation step-up proof");
652
- }
653
- }
654
- async function resolveExactNearEd25519WalletSessionOperationCredentialForStepUp(args) {
655
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(args.walletId));
656
- if (selected.kind !== "resolved") {
657
- const detail = selected.kind === "integrity_error" ? `: ${selected.reason}` : "";
658
- throw new Error(`[SigningEngine][near] selected Wallet Authority is ${selected.kind}${detail}`);
659
- }
660
- if (!operationStepUpProofMatchesSelectedWalletAuthMethod({
661
- walletId: args.walletId,
662
- proof: args.proof,
663
- selected
664
- })) throw new Error("[SigningEngine][near] operation step-up authority does not match selection");
665
- const operation = await resolveWalletAuthorityOperation({
666
- selected: {
667
- authMethod: selected.authMethod,
668
- authority: selected.authority
669
- },
670
- operation: {
671
- kind: "near_sign",
672
- operation: "sign",
673
- keyFamily: "ed25519"
674
- }
675
- });
676
- if (operation.kind !== "resolved") throw new Error(`[SigningEngine][near] selected Wallet Authority rejected signing (${operation.reason.kind})`);
677
- const exactSession = exactWalletSessionWithOperationCredentialOrThrow(await walletSessionAuthorizations.readExactWithOperationCredential({
678
- walletId: args.walletId,
679
- authorityId: selected.authority.authorityId,
680
- authMethodId: selected.authMethod.walletAuthMethodId
681
- }), "[SigningEngine][near] exact Wallet Session requires a newer client");
682
- const hasSigningSubject = exactSession?.record.capabilitySubjects.filter((subject) => subject.kind === "sign" && subject.keyFamily === "ed25519" && mpcMaterialActivationRefsEqual(subject.materialActivation, operation.value.materialActivation)).length === 1;
683
- if (!exactSession || exactSession.record.walletId !== args.walletId || exactSession.record.authorityId !== selected.authority.authorityId || exactSession.record.authMethodId !== selected.authMethod.walletAuthMethodId || exactSession.record.authorityDigestB64u !== selected.authority.authorityDigestB64u || exactSession.record.authorityRevocationEpoch !== selected.authority.revocationEpoch || exactSession.record.expiresAtMs <= Date.now() || !hasSigningSubject) throw new Error("[SigningEngine][near] exact Wallet Session is unavailable for operation step-up");
684
- return exactSession.operationCredential;
685
- }
686
- async function walletSessionStateFromExactEd25519Runtime(args) {
687
- const authorization = await resolveBrowserActiveNearEd25519WalletSessionAuthorization(args.runtime.walletId, args.relayerUrl);
688
- if (!authorization) throw new Error("[SigningEngine][near] active Wallet Session authorization is unavailable");
689
- return await rebindRouterAbEd25519WalletSessionStateFromExactRuntime({
690
- runtime: args.runtime,
691
- authorization,
692
- nowMs: Date.now()
693
- });
694
- }
695
- async function preparePasskeyEd25519OperationMaterial(args) {
696
- const { identity } = args;
697
- if (identity.auth.kind !== WALLET_AUTH_METHODS.passkey) throw invalidWalletSigningMaterial("binding_mismatch");
698
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(args.walletId));
699
- if (selected.kind !== "resolved" || selected.selection.lockState !== "unlocked" || selected.selection.walletId !== args.walletId || selected.authMethod.kind !== WALLET_AUTH_METHODS.passkey || String(selected.authMethod.rpId) !== String(identity.auth.rpId) || selected.authMethod.credentialIdB64u !== identity.auth.credentialIdB64u) throw invalidWalletSigningMaterial("binding_mismatch");
700
- const operation = await resolveWalletAuthorityOperation({
701
- selected: {
702
- authMethod: selected.authMethod,
703
- authority: selected.authority
704
- },
705
- operation: {
706
- kind: "near_sign",
707
- operation: "sign",
708
- keyFamily: "ed25519"
709
- }
710
- });
711
- if (operation.kind !== "resolved") throw invalidWalletSigningMaterial("missing_capability");
712
- const authority = await resolveBrowserExactPasskeyWalletAuthAuthorityRef({
713
- walletId: args.walletId,
714
- rpId: identity.auth.rpId,
715
- credentialIdB64u: identity.auth.credentialIdB64u
716
- });
717
- if (!authority || authority.walletAuthMethodId !== selected.authMethod.walletAuthMethodId) throw invalidWalletSigningMaterial("binding_mismatch");
718
- const local = await readPasskeyEd25519YaoLocalMaterialLocatorV1({
719
- store: IndexedDBManager,
720
- walletId: String(args.walletId),
721
- nearAccountId: String(identity.signer.account.nearAccountId),
722
- nearEd25519SigningKeyId: String(identity.signer.nearEd25519SigningKeyId),
723
- signerSlot: identity.signer.signerSlot,
724
- rpId: identity.auth.rpId,
725
- credentialIdB64u: identity.auth.credentialIdB64u,
726
- authority
727
- });
728
- if (local.kind !== "available") throw invalidWalletSigningMaterial("missing_runtime");
729
- if (!mpcMaterialActivationRefsEqual(local.locator.materialActivation, operation.value.materialActivation)) throw invalidWalletSigningMaterial("binding_mismatch");
730
- const scope = local.locator.stableServerScope;
731
- const root = signingRootScopeFromRuntimePolicyScope(scope.runtimePolicyScope);
732
- if (!root.signingRootVersion) throw invalidWalletSigningMaterial("binding_mismatch");
733
- const localIdentity = {
734
- walletId: String(args.walletId),
735
- nearAccountId: String(identity.signer.account.nearAccountId),
736
- nearEd25519SigningKeyId: String(identity.signer.nearEd25519SigningKeyId),
737
- thresholdSessionId: String(identity.thresholdSessionId),
738
- signerSlot: identity.signer.signerSlot,
739
- rpId: identity.auth.rpId,
740
- credentialIdB64u: identity.auth.credentialIdB64u,
741
- signingRootId: root.signingRootId,
742
- signingRootVersion: root.signingRootVersion,
743
- signingWorkerId: scope.routerAbNormalSigning.signingWorkerId
744
- };
745
- const publicLocator = {
746
- kind: "available",
747
- walletId: localIdentity.walletId,
748
- nearAccountId: localIdentity.nearAccountId,
749
- signerSlot: localIdentity.signerSlot,
750
- materialActivation: local.locator.materialActivation
751
- };
752
- const prepared = await prepareExactPasskeyEd25519YaoLocalMaterialRehydration({
753
- store: IndexedDBManager,
754
- identity: localIdentity,
755
- authority,
756
- publicLocator
757
- });
758
- if (prepared.kind === "blocked") throw walletSigningMaterialBlockError(prepared.plan.reason);
759
- return {
760
- prepared,
761
- localIdentity,
762
- authority,
763
- publicLocator,
764
- facts: {
765
- thresholdSessionId: identity.thresholdSessionId,
766
- signer: identity.signer,
767
- signingRootId: root.signingRootId,
768
- signingRootVersion: root.signingRootVersion,
769
- routerAbNormalSigning: scope.routerAbNormalSigning,
770
- runtimePolicyScope: scope.runtimePolicyScope,
771
- relayerUrl: args.relayerUrl
772
- },
773
- participantIds: scope.participantIds
774
- };
775
- }
776
- function passkeyEd25519LocalMaterialIdentityFromExactRuntime(runtime) {
777
- if (runtime.factor.kind !== WALLET_AUTH_METHODS.passkey) throw invalidWalletSigningMaterial("binding_mismatch");
778
- return {
779
- walletId: String(runtime.walletId),
780
- nearAccountId: String(runtime.nearAccountId),
781
- nearEd25519SigningKeyId: String(runtime.nearEd25519SigningKeyId),
782
- thresholdSessionId: String(runtime.thresholdSessionId),
783
- signerSlot: runtime.signerSlot,
784
- rpId: String(runtime.factor.rpId),
785
- credentialIdB64u: runtime.factor.credentialIdB64u,
786
- signingRootId: runtime.signingRootId,
787
- signingRootVersion: runtime.signingRootVersion,
788
- signingWorkerId: runtime.routerAbNormalSigning.signingWorkerId
789
- };
790
- }
791
- async function prepareExactPasskeyEd25519YaoLocalMaterialRehydration(input) {
792
- try {
793
- return await preparePasskeyEd25519YaoLocalMaterialRehydrationV1(input);
794
- } catch {
795
- throw invalidWalletSigningMaterial("binding_mismatch");
796
- }
797
- }
798
- async function hydrateExactPasskeyEd25519YaoLocalMaterial(input) {
799
- try {
800
- return await hydratePasskeyEd25519YaoLocalMaterialV1(input);
801
- } catch {
802
- throw invalidWalletSigningMaterial("corrupt");
803
- }
804
- }
805
- function nearEd25519YaoRuntimeObservation(material) {
806
- if (!material || material.activeClient.status().kind !== "active") return { kind: "absent" };
807
- const materialActivation = nearEd25519YaoMaterialActivationFromMetadata(material.activeClient.metadata());
808
- return {
809
- kind: "live",
810
- runtime: nearEd25519YaoRuntimeRef(materialActivation),
811
- materialActivation
812
- };
813
- }
814
- function nearEd25519MaterialIdentityFromBoundaryInput(input) {
815
- if (input.laneIdentity !== void 0) return {
816
- kind: "near_ed25519_material_identity",
817
- signer: input.laneIdentity.signer,
818
- auth: input.laneIdentity.auth,
819
- thresholdSessionId: input.laneIdentity.thresholdSessionId
820
- };
821
- return input.materialIdentity;
822
- }
823
- function nearEd25519AuthFromBoundaryInput(input) {
824
- return nearEd25519MaterialIdentityFromBoundaryInput(input).auth;
825
- }
826
- function nearEd25519PresentedAuthFromBoundaryInput(input) {
827
- if (input.auth !== void 0) return input.auth;
828
- return input.materialIdentity.auth;
829
- }
830
- function nearEd25519SignerFromBoundaryInput(input) {
831
- return nearEd25519MaterialIdentityFromBoundaryInput(input).signer;
832
- }
833
- function nearEd25519ThresholdSessionIdFromBoundaryInput(input) {
834
- return String(nearEd25519MaterialIdentityFromBoundaryInput(input).thresholdSessionId);
835
- }
836
- function requireAuthorizedNearEd25519BoundaryInput(input) {
837
- if (input.laneIdentity === void 0 || input.auth === void 0) throw new Error("[SigningEngine][near] authorized lane identity is required");
838
- return {
839
- walletId: input.walletId,
840
- nearAccountId: input.nearAccountId,
841
- laneIdentity: input.laneIdentity,
842
- auth: input.auth
843
- };
844
- }
845
- function authNeutralNearEd25519BoundaryInput(input) {
846
- return {
847
- walletId: input.walletId,
848
- nearAccountId: input.nearAccountId,
849
- materialIdentity: nearEd25519MaterialIdentityFromBoundaryInput(input)
850
- };
851
- }
852
- async function emailOtpWalletSessionStateFromPublicLane(args) {
853
- if (args.reference.auth.kind !== WALLET_AUTH_METHODS.emailOtp) throw new Error("[SigningEngine][near] Email OTP public lane authority is required");
854
- if (!nearEd25519SessionMatchesMaterialActivation({
855
- session: args.authorization.session,
856
- materialActivation: args.materialActivation
857
- })) throw new Error("[SigningEngine][near] Email OTP Wallet Session material changed");
858
- const authorizationId = parseWalletSessionAuthorizationId(args.authorization.session.authorizationId);
859
- if (!authorizationId.ok || args.authorization.operationCredential.token.trim().length === 0) throw new Error("[SigningEngine][near] Email OTP Ed25519 Wallet Session credential is unavailable");
860
- const authority = await walletAuthAuthorityRef({ authority: args.authorization.selectedFactorAuthority });
861
- const facts = args.material.facts;
862
- const signingWalletSession = buildRouterAbEd25519SigningWalletSession({
863
- walletId: String(args.reference.walletId),
864
- nearAccountId: String(args.reference.nearAccountId),
865
- nearEd25519SigningKeyId: String(args.reference.nearEd25519SigningKeyId),
866
- walletSessionId: args.authorization.operationCredential.walletSessionId,
867
- authorizationId: authorizationId.value,
868
- quotaId: args.authorization.session.quotaId,
869
- thresholdSessionId: args.reference.thresholdSessionId,
870
- remainingUses: args.authorization.status.remainingUses,
871
- expiresAtMs: args.authorization.status.expiresAtMs,
872
- runtimePolicyScope: facts.runtimePolicyScope,
873
- signingRootId: facts.signingRootId,
874
- signingRootVersion: facts.signingRootVersion,
875
- routerAbNormalSigning: facts.routerAbNormalSigning,
876
- walletSessionToken: args.authorization.operationCredential.token,
877
- nowMs: Date.now()
878
- });
879
- if (!signingWalletSession.ok) throw new Error(`[SigningEngine][near] Email OTP Wallet Session is unusable (${signingWalletSession.reason})`);
880
- return buildEmailOtpRouterAbEd25519WalletSessionState({
881
- walletId: args.reference.walletId,
882
- nearAccountId: args.reference.nearAccountId,
883
- nearEd25519SigningKeyId: args.reference.nearEd25519SigningKeyId,
884
- providerSubjectId: args.reference.auth.providerSubjectId,
885
- signerSlot: args.reference.signerSlot,
886
- relayerUrl: args.relayerUrl,
887
- authority,
888
- signingWalletSession: signingWalletSession.value
889
- });
890
- }
891
- function nearEd25519AuthBindingsEqual(left, right) {
892
- if (left.kind !== right.kind) return false;
893
- switch (left.kind) {
894
- case WALLET_AUTH_METHODS.passkey: return right.kind === WALLET_AUTH_METHODS.passkey && left.rpId === right.rpId && left.credentialIdB64u === right.credentialIdB64u;
895
- case WALLET_AUTH_METHODS.emailOtp: return right.kind === WALLET_AUTH_METHODS.emailOtp && left.providerSubjectId === right.providerSubjectId;
896
- default: throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
897
- }
898
- }
899
- function nearEd25519RuntimeMatchesMaterialIdentity(args) {
900
- const signer = args.identity.signer;
901
- return String(args.runtime.walletId) === String(signer.account.wallet.walletId) && String(args.runtime.nearAccountId) === String(signer.account.nearAccountId) && String(args.runtime.nearEd25519SigningKeyId) === String(signer.nearEd25519SigningKeyId) && args.runtime.signerSlot === signer.signerSlot && String(args.runtime.thresholdSessionId) === String(args.identity.thresholdSessionId) && nearEd25519AuthBindingsEqual(args.runtime.auth, args.identity.auth);
902
- }
903
- function emailOtpEd25519OperationMaterialFacts(args) {
904
- const signingRoot = signingRootScopeFromRuntimePolicyScope(args.publicLane.runtimePolicyScope);
905
- if (!signingRoot.signingRootVersion) throw new Error("[SigningEngine][near] Email OTP lane requires a signing-root version");
906
- return {
907
- thresholdSessionId: args.publicLane.thresholdSessionId,
908
- signer: nearEd25519SignerFromBoundaryInput(args.input),
909
- signingRootId: signingRoot.signingRootId,
910
- signingRootVersion: signingRoot.signingRootVersion,
911
- routerAbNormalSigning: {
912
- kind: ROUTER_AB_ED25519_NORMAL_SIGNING_STATE_KIND,
913
- signingWorkerId: String(args.publicLane.materialActivation.signingWorker)
914
- },
915
- runtimePolicyScope: args.publicLane.runtimePolicyScope,
916
- relayerUrl: args.relayerUrl
917
- };
918
- }
919
- function assertNearEd25519YaoMaterialBoundaryAuth(input) {
920
- const expected = nearEd25519AuthFromBoundaryInput(input);
921
- const actual = nearEd25519PresentedAuthFromBoundaryInput(input);
922
- if (expected.kind !== actual.kind) throw new Error("[SigningEngine][near] prepared material factor changed");
923
- switch (actual.kind) {
924
- case WALLET_AUTH_METHODS.passkey:
925
- if (expected.kind !== WALLET_AUTH_METHODS.passkey || expected.rpId !== actual.rpId || expected.credentialIdB64u !== actual.credentialIdB64u) throw new Error("[SigningEngine][near] prepared Passkey material binding changed");
926
- return;
927
- case WALLET_AUTH_METHODS.emailOtp:
928
- if (expected.kind !== WALLET_AUTH_METHODS.emailOtp || expected.providerSubjectId !== actual.providerSubjectId) throw new Error("[SigningEngine][near] prepared Email OTP material binding changed");
929
- return;
930
- default: throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
931
- }
932
- }
933
- function validateExactNearEd25519YaoOperationMaterial(args) {
934
- const facts = args.material.facts;
935
- const metadata = args.material.activeClient.metadata();
936
- const thresholdSessionId = nearEd25519ThresholdSessionIdFromBoundaryInput(args.input);
937
- const expectedSigner = nearEd25519SignerFromBoundaryInput(args.input);
938
- const actualSigner = facts.signer;
939
- if (String(facts.thresholdSessionId) !== thresholdSessionId) throw new Error("[SigningEngine][near] active Ed25519 Yao capability session mismatch");
940
- if (metadata.scope.threshold_session_id !== String(facts.thresholdSessionId)) throw new Error("[SigningEngine][near] active Ed25519 Yao metadata session mismatch");
941
- if (metadata.scope.account_id !== String(args.input.walletId) || metadata.applicationBinding.wallet_id !== String(args.input.walletId)) throw new Error("[SigningEngine][near] active Ed25519 Yao capability subject mismatch");
942
- if (String(actualSigner.account.wallet.walletId) !== String(expectedSigner.account.wallet.walletId) || String(actualSigner.account.nearAccountId) !== String(expectedSigner.account.nearAccountId) || actualSigner.signerSlot !== expectedSigner.signerSlot || String(actualSigner.nearEd25519SigningKeyId) !== String(expectedSigner.nearEd25519SigningKeyId)) throw new Error("[SigningEngine][near] active Ed25519 Yao capability signer mismatch");
943
- const materialActivation = nearEd25519YaoMaterialActivationFromMetadata(metadata);
944
- if (!mpcMaterialActivationRefsEqual(args.expectedActivation, materialActivation)) throw new Error("[SigningEngine][near] active Ed25519 Yao capability activation mismatch");
945
- return args.material;
946
- }
947
- async function hydrateOwnerNearEd25519ExecutionLane(args) {
948
- const materialActivation = nearEd25519YaoMaterialActivationFromMetadata(args.material.activeClient.metadata());
949
- if (!nearEd25519SessionMatchesMaterialActivation({
950
- session: args.authorization.session,
951
- materialActivation
952
- })) throw new Error("Owner Ed25519 execution-lane material changed");
953
- const walletSessionToken = args.authorization.operationCredential.token;
954
- const exactMaterial = validateExactNearEd25519YaoOperationMaterial({
955
- material: args.material,
956
- input: args.input,
957
- expectedActivation: materialActivation
958
- });
959
- const authority = await ed25519SealedRuntimeAuthorityRef({
960
- runtime: args.sealedRuntime,
961
- walletAuthMethodId: args.authorization.selectedAuthMethod.walletAuthMethodId
962
- });
963
- const selectedFactorAuthority = await walletAuthAuthorityRef({ authority: args.authorization.selectedFactorAuthority });
964
- if (authority.walletId !== selectedFactorAuthority.walletId || authority.walletAuthMethodId !== selectedFactorAuthority.walletAuthMethodId || authority.authorityDigest !== selectedFactorAuthority.authorityDigest) throw new Error("Owner Ed25519 execution-lane authority does not match sealed material");
965
- const runtime = nearEd25519YaoRuntimeObservation(exactMaterial);
966
- if (runtime.kind !== "live") throw new Error("Owner Ed25519 execution-lane preflight requires active Yao material");
967
- const hydration = {
968
- publicLocator: {
969
- kind: "available",
970
- walletId: String(exactMaterial.facts.signer.account.wallet.walletId),
971
- nearAccountId: String(exactMaterial.facts.signer.account.nearAccountId),
972
- signerSlot: exactMaterial.facts.signer.signerSlot,
973
- materialActivation,
974
- authority
975
- },
976
- sealed: { kind: "missing" },
977
- runtime,
978
- unlockSource: { kind: "unavailable" }
979
- };
980
- return assertOwnerNearEd25519ExecutionLaneProjection({
981
- projection: await readOwnerWalletExecutionLaneProjectionV1({
982
- relayerUrl: exactMaterial.facts.relayerUrl,
983
- walletSessionToken,
984
- curve: "ed25519",
985
- expectedMaterialActivation: materialActivation
986
- }),
987
- material: exactMaterial,
988
- hydration
989
- });
990
- }
991
- function assertOwnerNearEd25519ExecutionLaneProjection(args) {
992
- const hydrated = hydrateWalletExecutionLane({
993
- walletKey: args.projection.walletKey,
994
- lane: args.projection.lane,
995
- material: {
996
- keyFamily: "ed25519",
997
- laneShareEpoch: args.projection.lane.laneShareEpoch,
998
- metadata: args.material.activeClient.metadata(),
999
- hydration: args.hydration
1000
- }
1001
- });
1002
- if (hydrated.kind !== "active_wallet_execution_lane_v1") throw new Error(`Owner Ed25519 execution lane is ${hydrated.reason}`);
1003
- if (!mpcMaterialActivationRefsEqual(hydrated.materialActivation, args.projection.materialActivation) || hydrated.activationReceiptDigestB64u !== String(args.projection.verifiedActivationReceiptDigestB64u)) throw new Error("Owner Ed25519 execution-lane projection activation changed");
1004
- return hydrated;
1005
- }
1006
- function requireNearEd25519YaoPreparationActivation(preparation) {
1007
- const materialActivation = preparation.hydration.materialActivation;
1008
- if (!materialActivation) throw new Error("[SigningEngine][near] prepared material has no activation");
1009
- return materialActivation;
1010
- }
1011
- function requireBoundNearEd25519YaoPreparationActivation(args) {
1012
- const materialActivation = requireNearEd25519YaoPreparationActivation(args.preparation);
1013
- if (!args.context.materialActivation || !mpcMaterialActivationRefsEqual(args.context.materialActivation, materialActivation)) throw new Error("[SigningEngine][near] prepared material boundary changed activation");
1014
- return materialActivation;
1015
- }
1016
- function serializePreparedRegistrationCredential(credential) {
1017
- return serializeRegistrationCredentialWithPRF({
1018
- credential,
1019
- firstPrfOutput: true,
1020
- secondPrfOutput: true
1021
- });
1022
- }
1023
- async function loadEcdsaRoleLocalReadyRecordFromRuntimePorts(runtimePortsRef, input) {
1024
- if (!runtimePortsRef.current) return {
1025
- ok: false,
1026
- code: "unavailable",
1027
- message: "Signing runtime storage is not initialized"
1028
- };
1029
- return await runtimePortsRef.current.storage.loadEcdsaRoleLocalReadyRecord(input);
1030
- }
1031
- function sdkLifecycleEventDeliveryKey(event) {
1032
- const eventName = event.event;
1033
- switch (eventName) {
1034
- case "signing_session.expired": return `${String(event.walletId)}:${String(event.walletSessionId)}`;
1035
- case "registration.near_provisioning_changed": return `${String(event.walletId)}:${event.state.status}:${event.state.updatedAtMs}`;
1036
- default: return assertNeverSdkLifecycleEventName(eventName);
1037
- }
1038
- }
1039
- function assertNeverSdkLifecycleEventName(value) {
1040
- throw new Error(`Unsupported SDK lifecycle event: ${String(value)}`);
1041
- }
1042
- async function readBrowserPasskeyCustodySessionCache(key) {
1043
- if (IndexedDBManager.isDisabled()) return void 0;
1044
- return await IndexedDBManager.getAppState(key);
1045
- }
1046
- async function writeBrowserPasskeyCustodySessionCache(key, value) {
1047
- if (IndexedDBManager.isDisabled()) return;
1048
- await IndexedDBManager.setAppState(key, value);
1049
- }
1050
- const browserPasskeyCustodySessionCachePersistence = {
1051
- readCacheEntry: readBrowserPasskeyCustodySessionCache,
1052
- writeCacheEntry: writeBrowserPasskeyCustodySessionCache
1053
- };
1054
- var BrowserSigningSurface = class {
1055
- readExactNearEd25519WalletSessionAuthorization(walletId) {
1056
- return readBrowserExactNearEd25519WalletSessionAuthorization(String(this.seamsWebConfigs.network.relayer?.url || "").trim(), new WalletSessionStatusReadScope(), walletId);
1057
- }
1058
- resolveActiveNearEd25519WalletSessionAuthorization(walletId) {
1059
- return resolveBrowserActiveNearEd25519WalletSessionAuthorization(walletId, String(this.seamsWebConfigs.network.relayer?.url || "").trim());
1060
- }
1061
- constructor(seamsWebConfigs, nearClient, deps) {
1062
- this.workerBaseOrigin = "";
1063
- this.thresholdEcdsaBootstrapQueueByWallet = /* @__PURE__ */ new Map();
1064
- this.thresholdEcdsaSigningQueueByKey = /* @__PURE__ */ new Map();
1065
- this.thresholdEd25519CommitQueueByKey = /* @__PURE__ */ new Map();
1066
- this.nearEd25519CapabilityRehydrationBySubject = /* @__PURE__ */ new Map();
1067
- this.hostWarmCriticalResourcesTask = null;
1068
- this.sealedRefreshStartupParityError = null;
1069
- this.sdkLifecycleEventListeners = /* @__PURE__ */ new Set();
1070
- this.deliveredSdkLifecycleEventKeys = /* @__PURE__ */ new Set();
1071
- this.walletAuthenticationState = { kind: "signed_out" };
1072
- this.walletAuthenticationRestoreGeneration = 0;
1073
- this.volatileWarmSigningMaterialCleanupInFlight = null;
1074
- this.requestWorkerOperation = (args) => this.signerWorkerManager.getContext().requestWorkerOperation(args);
1075
- configurePasskeyCustodySessionCachePersistence(browserPasskeyCustodySessionCachePersistence);
1076
- this.seamsWebConfigs = seamsWebConfigs;
1077
- this.ed25519YaoPublicCapabilityReferences = deps.ed25519YaoPublicCapabilityReferences;
1078
- this.appearance = seamsWebConfigs.ui.appearance;
1079
- this.nearClient = nearClient;
1080
- this.ecdsaBootstrapStore = deps.signingEngineStores.walletProfileAndSignerRecords.ecdsaBootstrapStore;
1081
- this.sealedRefreshStartupParityPromise = verifySealedRefreshStartupParity({ configs: this.seamsWebConfigs }).catch((error) => {
1082
- this.sealedRefreshStartupParityError = error instanceof Error ? error : new Error(String(error || "sealed refresh parity check failed"));
1083
- });
1084
- const runtimePortsForUiConfirm = { current: null };
1085
- const loadEcdsaRoleLocalReadyRecord = loadEcdsaRoleLocalReadyRecordFromRuntimePorts.bind(null, runtimePortsForUiConfirm);
1086
- const assembly = createManagerAssembly({
1087
- resolveActiveEcdsaCapabilityRuntime: resolveBrowserActiveEcdsaCapabilityRuntime,
1088
- resolveOperationStepUpCredential: this.resolveOperationStepUpCredential.bind(this),
1089
- stores: deps.managerStores,
1090
- seamsWebConfigs: this.seamsWebConfigs,
1091
- nearClient: this.nearClient,
1092
- loadEcdsaRoleLocalReadyRecord,
1093
- getTheme: () => this.appearance.theme.mode,
1094
- getAppearance: () => this.appearance,
1095
- thresholdEcdsaSigningQueueByKey: this.thresholdEcdsaSigningQueueByKey
1096
- });
1097
- this.touchIdPrompt = assembly.touchIdPrompt;
1098
- this.userPreferencesManager = assembly.userPreferencesManager;
1099
- this.nonceCoordinator = assembly.nonceCoordinator;
1100
- this.signerWorkerManager = assembly.signerWorkerManager;
1101
- const signingRuntime = deps.createRuntime({
1102
- config: this.seamsWebConfigs,
1103
- workerCtx: this.signerWorkerManager.getContext(),
1104
- accountLifecycle: {
1105
- accountStore: deps.signingEngineStores.walletProfileAndSignerRecords.accountStore,
1106
- userPreferencesManager: this.userPreferencesManager,
1107
- nonceCoordinator: this.nonceCoordinator
1108
- },
1109
- ecdsaBootstrapStore: this.ecdsaBootstrapStore,
1110
- getWarmSessionMaterialWriter: () => this.passkeyMpcSession,
1111
- getNearSigningDeps: () => this.enginePorts.nearSigningDeps,
1112
- getEvmFamilySigningDeps: () => this.enginePorts.tempoSigningDeps
1113
- });
1114
- runtimePortsForUiConfirm.current = signingRuntime.runtimePorts;
1115
- const ecdsaExportArtifactStore = signingRuntime.state.ecdsaSessions;
1116
- this.runtimePorts = signingRuntime.runtimePorts;
1117
- const stepUpRuntime = createBrowserStepUpRuntime({
1118
- seamsWebConfigs: this.seamsWebConfigs,
1119
- touchIdPrompt: this.touchIdPrompt,
1120
- signerWorkerManager: this.signerWorkerManager,
1121
- stores: deps.signingEngineStores,
1122
- runtimePorts: this.runtimePorts,
1123
- sealedSigningSessionStore: deps.sealedSigningSessionStore,
1124
- baseTouchConfirm: assembly.touchConfirm,
1125
- passkeyMpcSession: assembly.passkeyMpcSession,
1126
- getEnginePorts: () => this.enginePorts,
1127
- thresholdEcdsaBootstrapQueueByWallet: this.thresholdEcdsaBootstrapQueueByWallet,
1128
- thresholdEcdsaSigningQueueByKey: this.thresholdEcdsaSigningQueueByKey,
1129
- loadWalletCustodyEd25519Material: this.loadEmailOtpWalletCustodyEd25519Material.bind(this),
1130
- restoreWalletCustodyEcdsaContinuity: this.restoreWalletCustodyEcdsaContinuity.bind(this),
1131
- getWarmSigning: () => this.warmSigning,
1132
- ensureSealedRefreshStartupParity: () => this.ensureSealedRefreshStartupParity(),
1133
- listActiveEcdsaCapabilityManifestsForWallet: listBrowserActiveEcdsaCapabilityManifestsForWallet
1134
- });
1135
- this.emailOtpSessions = stepUpRuntime.emailOtpSessions;
1136
- this.touchConfirm = stepUpRuntime.touchConfirm;
1137
- this.passkeyMpcSession = stepUpRuntime.passkeyMpcSession;
1138
- this.warmSigning = createWarmSigningPorts({
1139
- resolveActiveEcdsaCapabilityRuntime: resolveBrowserActiveEcdsaCapabilityRuntime,
1140
- resolveActiveEcdsaCapabilityRuntimeForChain: resolveBrowserActiveEcdsaCapabilityRuntimeForChain,
1141
- touchConfirm: this.touchConfirm,
1142
- passkeyMpcSession: this.passkeyMpcSession,
1143
- getEmailOtpWarmSessionStatus: (target) => this.emailOtpSessions.readWarmSessionStatusOnly(target),
1144
- signingSessionSeal: this.seamsWebConfigs.signing.sessionSeal,
1145
- ecdsaExportArtifacts: ecdsaExportArtifactStore,
1146
- resolveActiveEcdsaWalletSessionAuthorization: createBrowserActiveEcdsaWalletSessionAuthorizationResolver({
1147
- seamsWebConfigs: this.seamsWebConfigs,
1148
- touchIdPrompt: this.touchIdPrompt,
1149
- stores: deps.signingEngineStores,
1150
- emailOtpSessions: this.emailOtpSessions,
1151
- sealedSigningSessionStore: deps.sealedSigningSessionStore
1152
- }),
1153
- resolveActiveEd25519WalletSessionAuthorization: this.resolveActiveNearEd25519WalletSessionAuthorization.bind(this)
1154
- });
1155
- this.listPreprocessingCapabilities = listBrowserEcdsaPreprocessingCapabilitiesForWallet.bind(null, {
1156
- seamsWebConfigs: this.seamsWebConfigs,
1157
- touchIdPrompt: this.touchIdPrompt,
1158
- stores: deps.signingEngineStores,
1159
- emailOtpSessions: this.emailOtpSessions,
1160
- sealedSigningSessionStore: deps.sealedSigningSessionStore
1161
- });
1162
- this.sessionPublicDeps = createSessionPublicDeps({
1163
- seamsWebConfigs: this.seamsWebConfigs,
1164
- touchConfirm: this.touchConfirm,
1165
- passkeyMpcSession: this.passkeyMpcSession,
1166
- emailOtpSessions: this.emailOtpSessions,
1167
- ed25519YaoPublicCapabilityLanes: deps.ed25519YaoPublicCapabilityReferences,
1168
- isEd25519YaoPublicCapabilityActive: this.isEd25519YaoPublicCapabilityActive.bind(this),
1169
- readActiveWalletSessionAuthorization: readBrowserExactNearEd25519WalletSessionAuthorization.bind(null, this.seamsWebConfigs.network.relayer.url),
1170
- listEcdsaSigningCapabilitiesForWallet: (input, statusReads) => listBrowserEcdsaSigningCapabilitiesForWallet({
1171
- seamsWebConfigs: this.seamsWebConfigs,
1172
- touchIdPrompt: this.touchIdPrompt,
1173
- stores: deps.signingEngineStores,
1174
- emailOtpSessions: this.emailOtpSessions,
1175
- sealedSigningSessionStore: deps.sealedSigningSessionStore
1176
- }, input, statusReads),
1177
- getWalletSessionStatus: createBrowserCanonicalWalletSessionStatusReader({
1178
- seamsWebConfigs: this.seamsWebConfigs,
1179
- touchIdPrompt: this.touchIdPrompt,
1180
- stores: deps.signingEngineStores,
1181
- emailOtpSessions: this.emailOtpSessions,
1182
- sealedSigningSessionStore: deps.sealedSigningSessionStore
1183
- })
1184
- });
1185
- this.emailOtpPublicDeps = {
1186
- relayerUrl: this.seamsWebConfigs.network.relayer?.url || "",
1187
- groupId: SIGNING_SESSION_SEAL_GROUP_ID,
1188
- signingSessionAuthorityPorts: {
1189
- resolveActiveEcdsaCapabilityRuntime: resolveBrowserActiveEcdsaCapabilityRuntime,
1190
- factorStores: browserSigningSurfaceExactWalletAuthMethodStore,
1191
- resolveSelectedWalletAuthority: IndexedDBManager.resolveSelectedWalletAuthority.bind(IndexedDBManager),
1192
- readExactWalletSessionAuthorization: walletSessionAuthorizations.readExactWithOperationCredential.bind(walletSessionAuthorizations)
1193
- },
1194
- getSignerWorkerContext: () => this.enginePorts.walletSessionActivationDeps.getSignerWorkerContext(),
1195
- withThresholdEcdsaSigningQueue: (queueArgs) => withThresholdEcdsaSigningQueue({
1196
- queueByKey: this.thresholdEcdsaSigningQueueByKey,
1197
- ...queueArgs
1198
- }),
1199
- emailOtpSessions: this.emailOtpSessions
1200
- };
1201
- this.recoveryPublicDeps = createBrowserRecoveryPublicDeps({
1202
- seamsWebConfigs: this.seamsWebConfigs,
1203
- runtimePorts: this.runtimePorts,
1204
- signerWorkerManager: this.signerWorkerManager,
1205
- warmSigning: this.warmSigning,
1206
- touchConfirm: this.touchConfirm,
1207
- passkeyMpcSession: this.passkeyMpcSession,
1208
- passkeyMpcExport: assembly.passkeyMpcExport,
1209
- emailOtpSessions: this.emailOtpSessions,
1210
- thresholdEcdsaBootstrapQueueByWallet: this.thresholdEcdsaBootstrapQueueByWallet,
1211
- thresholdEcdsaSigningQueueByKey: this.thresholdEcdsaSigningQueueByKey,
1212
- thresholdEd25519CommitQueueByKey: this.thresholdEd25519CommitQueueByKey,
1213
- getWalletSessionActivationDeps: () => this.enginePorts.walletSessionActivationDeps,
1214
- resolvePasskeyEd25519YaoExportContext: this.resolveExactPasskeyEd25519YaoExportContext.bind(this),
1215
- resolveEmailOtpEd25519YaoExportContext: this.resolveEmailOtpEd25519YaoExportContext.bind(this),
1216
- getSigningSessionCoordinator: () => this.enginePorts.signingSessionCoordinator,
1217
- getTheme: () => this.appearance.theme.mode,
1218
- ed25519YaoPublicCapabilityLanes: deps.ed25519YaoPublicCapabilityReferences,
1219
- isEd25519YaoPublicCapabilityActive: this.isEd25519YaoPublicCapabilityActive.bind(this),
1220
- readActiveWalletSessionAuthorization: readBrowserExactNearEd25519WalletSessionAuthorization.bind(null, this.seamsWebConfigs.network.relayer.url),
1221
- listEcdsaSigningCapabilitiesForWallet: (input, statusReads) => listBrowserEcdsaSigningCapabilitiesForWallet({
1222
- seamsWebConfigs: this.seamsWebConfigs,
1223
- touchIdPrompt: this.touchIdPrompt,
1224
- stores: deps.signingEngineStores,
1225
- emailOtpSessions: this.emailOtpSessions,
1226
- sealedSigningSessionStore: deps.sealedSigningSessionStore
1227
- }, input, statusReads),
1228
- resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId)
1229
- });
1230
- this.enginePorts = createBrowserSigningSurfaceEnginePorts({
1231
- runtimePorts: this.runtimePorts,
1232
- stores: deps.signingEngineStores,
1233
- ed25519YaoPublicCapabilityReferences: deps.ed25519YaoPublicCapabilityReferences,
1234
- seamsWebConfigs: this.seamsWebConfigs,
1235
- nearClient: this.nearClient,
1236
- touchIdPrompt: this.touchIdPrompt,
1237
- userPreferencesManager: this.userPreferencesManager,
1238
- nonceCoordinator: this.nonceCoordinator,
1239
- touchConfirm: this.touchConfirm,
1240
- passkeyMpcSession: this.passkeyMpcSession,
1241
- passkeyMpcExport: assembly.passkeyMpcExport,
1242
- signerWorkerManager: this.signerWorkerManager,
1243
- emailOtpSessions: this.emailOtpSessions,
1244
- warmSigning: this.warmSigning,
1245
- sealedSigningSessionStore: deps.sealedSigningSessionStore,
1246
- ecdsaBootstrapStore: this.ecdsaBootstrapStore,
1247
- thresholdEcdsaBootstrapQueueByWallet: this.thresholdEcdsaBootstrapQueueByWallet,
1248
- thresholdEcdsaSigningQueueByKey: this.thresholdEcdsaSigningQueueByKey,
1249
- thresholdEd25519CommitQueueByKey: this.thresholdEd25519CommitQueueByKey,
1250
- getWorkerBaseOrigin: () => this.workerBaseOrigin,
1251
- workerWarmupPolicy: deps.workerWarmupPolicy,
1252
- getTheme: () => this.appearance.theme.mode,
1253
- ensureSealedRefreshStartupParity: () => this.ensureSealedRefreshStartupParity(),
1254
- resolveOwnerLaneScope: (walletId) => this.resolveSelectedOwnerLaneScope(walletId),
1255
- getEnginePorts: () => this.enginePorts,
1256
- getRegistrationPublicDeps: () => this.registrationPublicDeps,
1257
- prepareNearEd25519YaoMaterialBoundary: this.prepareExactNearEd25519YaoMaterialBoundary.bind(this)
1258
- });
1259
- this.signingSessionLifecycleSubscription = this.enginePorts.signingSessionCoordinator.subscribeLifecycle(this.publishSdkLifecycleEvent.bind(this));
1260
- this.nearProvisioningUnsubscribe = subscribeToNearProvisioning(this.publishNearProvisioningLifecycleEvent.bind(this));
1261
- this.ed25519YaoPageLifecycleOwner = new Ed25519YaoPageLifecycleOwner(typeof window === "undefined" ? null : window, this.enginePorts.ed25519YaoActiveClients);
1262
- const warmSessionPublicDeps = createBrowserWarmSessionPublicDeps({
1263
- seamsWebConfigs: this.seamsWebConfigs,
1264
- stores: deps.signingEngineStores,
1265
- touchIdPrompt: this.touchIdPrompt,
1266
- touchConfirm: this.touchConfirm,
1267
- passkeyMpcSession: this.passkeyMpcSession,
1268
- warmSigning: this.warmSigning,
1269
- runtimePorts: this.runtimePorts,
1270
- thresholdEcdsaBootstrapQueueByWallet: this.thresholdEcdsaBootstrapQueueByWallet,
1271
- ensureSealedRefreshStartupParity: () => this.ensureSealedRefreshStartupParity(),
1272
- enginePorts: this.enginePorts
1273
- });
1274
- this.passkeyPublicDeps = warmSessionPublicDeps.passkeyPublicDeps;
1275
- this.warmCapabilitiesPublicDeps = warmSessionPublicDeps.warmCapabilitiesPublicDeps;
1276
- this.registrationPublicDeps = {
1277
- accountLifecycle: this.enginePorts.registrationAccountLifecycleDeps,
1278
- session: this.enginePorts.registrationSessionDeps
1279
- };
1280
- setUnlockedCustodyEnvelopeUpgradeSinkV1((upgrade) => {
1281
- this.persistUpgradedWalletCustodyEnvelopeV1(upgrade);
1282
- });
1283
- deps.initializeRuntime({
1284
- config: this.seamsWebConfigs,
1285
- userPreferencesManager: this.userPreferencesManager,
1286
- getWorkerBaseOrigin: () => this.workerBaseOrigin,
1287
- setWorkerBaseOrigin: (origin) => {
1288
- this.workerBaseOrigin = origin;
1289
- this.signerWorkerManager.setWorkerBaseOrigin(origin);
1290
- this.touchConfirm.setWorkerBaseOrigin?.(origin);
1291
- assembly.passkeyMpcExport.setWorkerBaseOrigin(origin);
1292
- this.passkeyMpcSession.setWorkerBaseOrigin(origin);
1293
- }
1294
- });
1295
- }
1296
- async resolveOperationStepUpCredential(args) {
1297
- return {
1298
- kind: "wallet_session_opaque",
1299
- walletSessionToken: (await resolveExactNearEd25519WalletSessionOperationCredentialForStepUp({
1300
- walletId: args.walletId,
1301
- proof: args.proof
1302
- })).token
1303
- };
1304
- }
1305
- async ensureSealedRefreshStartupParity() {
1306
- await this.sealedRefreshStartupParityPromise;
1307
- if (this.sealedRefreshStartupParityError) throw this.sealedRefreshStartupParityError;
1308
- }
1309
- /**
1310
- * Runs one wallet custody key set for NEAR, from the registration flow.
1311
- *
1312
- * The flow never touches the ceremony worker itself: a run's seed lives in
1313
- * that worker's wasm state across three steps, so this is the one place the
1314
- * channel is reached and the one place the Router round is wired to it.
1315
- *
1316
- * The Router round is performed through the same HTTP transport the
1317
- * PRF-derived path used, so the execute request goes to the same endpoint
1318
- * with the same trace context — only the root behind it changed.
1319
- */
1320
- async establishWalletCustodyNearEd25519KeySet(args) {
1321
- const transport = new RouterAbEd25519YaoHttpActivationTransportV1({
1322
- routerOrigin: args.routerOrigin,
1323
- authorization: {
1324
- kind: "bearer",
1325
- value: args.authorization
1326
- },
1327
- fetch: globalThis.fetch,
1328
- ...args.traceContext ? { traceContext: args.traceContext } : {}
1329
- });
1330
- let activationResultJson = null;
1331
- const established = await establishNearEd25519CustodyV1({
1332
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1()),
1333
- walletId: args.walletId,
1334
- factorJson: args.factorJson,
1335
- factorSecret: args.factorSecret,
1336
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
1337
- registrationCeremonyId: args.registrationCeremonyId,
1338
- yaoAdmission: args.admissionReceipt,
1339
- yaoApplication: args.admissionRequest.application_binding,
1340
- participantIds: args.participantIds,
1341
- runRouterRound: async (yaoExecuteRequestJson) => {
1342
- const response = await transport.send({
1343
- kind: "execute",
1344
- path: ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1,
1345
- body: JSON.parse(yaoExecuteRequestJson)
1346
- });
1347
- if (!response.ok) throw new Error(`Router Ed25519 Yao execute failed: ${response.message}`);
1348
- activationResultJson = JSON.stringify(response.value);
1349
- return activationResultJson;
1350
- }
1351
- });
1352
- if (!activationResultJson) throw new Error("the wallet custody NEAR run completed without a Router activation result");
1353
- if (!established.localMaterial) throw new Error("the wallet custody NEAR run sealed no local material");
1354
- return {
1355
- recoveryCodes: established.recoveryCodes,
1356
- commitPayload: established.commitPayload,
1357
- activationReference: established.activationReference,
1358
- localMaterial: established.localMaterial,
1359
- metadata: walletCustodyEd25519ActiveClientMetadataV1({
1360
- admissionRequest: args.admissionRequest,
1361
- activationResultJson
1362
- })
1363
- };
1364
- }
1365
- async recoverWalletCustodyManifest(args) {
1366
- return await recoverWalletCustodyManifestV1({
1367
- ...args,
1368
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1()),
1369
- workerCtx: this.signerWorkerManager.getContext()
1370
- });
1371
- }
1372
- async createWalletRecoveryReplacementCredential(args) {
1373
- const requestId = walletIframeRequestIdFromBoundary(`wallet-recovery:${args.registration.challengeId}`);
1374
- const replacement = walletRecoveryReplacementCredentialFromRegistrationV1(serializePreparedRegistrationCredential(await this.touchIdPrompt.generateRegistrationCredentialsInternal({
1375
- kind: "wallet_recovery",
1376
- walletId: args.walletId,
1377
- intendedUserName: args.walletId,
1378
- recoveryRegistration: args.registration,
1379
- prompt: {
1380
- kind: "immediate",
1381
- requestId,
1382
- cancellation: args.cancellation
1383
- }
1384
- })));
1385
- return {
1386
- registration: redactedPasskeyRegistrationCredential(replacement.registration),
1387
- credentialIdB64u: replacement.credentialIdB64u,
1388
- factorSecret: replacement.factorSecret
1389
- };
1390
- }
1391
- async joinWalletCustodyNearEd25519KeySet(args) {
1392
- const transport = new RouterAbEd25519YaoHttpActivationTransportV1({
1393
- routerOrigin: args.routerOrigin,
1394
- authorization: {
1395
- kind: "bearer",
1396
- value: args.authorization
1397
- },
1398
- fetch: globalThis.fetch,
1399
- ...args.traceContext ? { traceContext: args.traceContext } : {}
1400
- });
1401
- let activationResultJson = null;
1402
- const joined = await joinNearEd25519CustodyV1({
1403
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1()),
1404
- preparation: args.preparation,
1405
- beforeRouterRound: args.beforeRouterRound,
1406
- custodyJson: args.custodyJson,
1407
- factorSecret: args.factorSecret,
1408
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
1409
- registrationCeremonyId: args.registrationCeremonyId,
1410
- yaoAdmission: args.admissionReceipt,
1411
- yaoApplication: args.admissionRequest.application_binding,
1412
- participantIds: args.participantIds,
1413
- runRouterRound: async (yaoExecuteRequestJson) => {
1414
- const response = await transport.send({
1415
- kind: "execute",
1416
- path: ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1,
1417
- body: JSON.parse(yaoExecuteRequestJson)
1418
- });
1419
- if (!response.ok) throw new Error(`Router Ed25519 Yao execute failed: ${response.message}`);
1420
- activationResultJson = JSON.stringify(response.value);
1421
- return activationResultJson;
1422
- }
1423
- });
1424
- if (!activationResultJson || !joined.localMaterial) throw new Error("the wallet custody NEAR join produced no local signing material");
1425
- return {
1426
- commitPayload: joined.commitPayload,
1427
- activationReference: joined.activationReference,
1428
- localMaterial: joined.localMaterial,
1429
- metadata: walletCustodyEd25519ActiveClientMetadataV1({
1430
- admissionRequest: args.admissionRequest,
1431
- activationResultJson
1432
- })
1433
- };
1434
- }
1435
- async rejoinWalletCustodyNearEd25519KeySet(args) {
1436
- const transport = new RouterAbEd25519YaoHttpActivationTransportV1({
1437
- routerOrigin: args.routerOrigin,
1438
- authorization: {
1439
- kind: "bearer",
1440
- value: `Bearer ${args.walletSessionToken}`
1441
- },
1442
- fetch: globalThis.fetch
1443
- });
1444
- const recoveryRequest = await buildWalletSessionEd25519RecoveryAdmissionRequestV1({ basis: args.recoveryBasis });
1445
- const admitted = await admitWalletRecoveryEd25519V1({
1446
- request: recoveryRequest,
1447
- transport
1448
- });
1449
- const rejoined = await rejoinNearEd25519CustodyV1({
1450
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1()),
1451
- walletId: args.walletId,
1452
- custodyJson: args.custodyJson,
1453
- factorSecret: args.factorSecret,
1454
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
1455
- recoveryLifecycleId: recoveryRequest.scope.lifecycle_id,
1456
- yaoAdmission: admitted.receipt,
1457
- yaoApplication: admitted.request.application_binding,
1458
- participantIds: args.recoveryBasis.participantIds,
1459
- registeredPublicKeyB64u: base64UrlEncode(Uint8Array.from(args.recoveryBasis.registeredPublicKey)),
1460
- runRouterRound: (executeRequestJson) => executeWalletRecoveryEd25519RoundV1({
1461
- executeRequestJson,
1462
- transport
1463
- }),
1464
- activateRouterRecovery: (protocolResultJson) => activateWalletRecoveryEd25519V1({
1465
- request: recoveryRequest,
1466
- protocolResultJson,
1467
- transport
1468
- })
1469
- });
1470
- if (!rejoined.localMaterial) throw new Error("the wallet custody NEAR cold rejoin produced no local signing material");
1471
- return {
1472
- commitPayload: rejoined.commitPayload,
1473
- activationReference: rejoined.activationReference,
1474
- localMaterial: rejoined.localMaterial,
1475
- metadata: walletRecoveryEd25519ActiveClientMetadataV1({
1476
- admissionRequest: recoveryRequest,
1477
- activationResultJson: rejoined.activationResultJson,
1478
- activationReceipt: rejoined.activationReceipt
1479
- })
1480
- };
1481
- }
1482
- async establishWalletCustodyEvmFamilyKeySet(args) {
1483
- return await establishEvmFamilyCustodyV1({
1484
- ...args,
1485
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1())
1486
- });
1487
- }
1488
- async joinWalletCustodyEvmFamilyKeySet(args) {
1489
- return await joinEvmFamilyCustodyV1({
1490
- ...args,
1491
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1())
1492
- });
1493
- }
1494
- async rejoinWalletCustodyEvmFamilyKeySet(args) {
1495
- return await rejoinEvmFamilyCustodyV1({
1496
- ...args,
1497
- runStep: walletCustodyCeremonyStepRunner(this.walletCustodyCeremonyTransportV1())
1498
- });
1499
- }
1500
- async restoreWalletCustodyEcdsaContinuity(args) {
1501
- const imported = await importWalletCustodyEcdsaContinuity({
1502
- ...args,
1503
- store: new IndexedDbEcdsaCapabilityManifestStore()
1504
- });
1505
- if (imported.kind !== "committed") throw new Error(`wallet custody ECDSA import returned ${imported.kind}`);
1506
- const materialActivation = routerAbMpcMaterialActivationRefFromWire(args.publicCapability.material_activation);
1507
- const opened = await openEcdsaRoleLocalSigningMaterialWasm({
1508
- workerCtx: this.signerWorkerManager.getContext(),
1509
- authority: args.authority,
1510
- materialActivation
1511
- });
1512
- if (!opened.ok) throw new Error(`wallet custody ECDSA material open returned ${opened.reason}`);
1513
- return {
1514
- materialActivation,
1515
- materialRef: opened.materialRef
1516
- };
1517
- }
1518
- async persistWalletCustodyEd25519Material(args) {
1519
- await persistWalletCustodyEd25519MaterialV1({
1520
- store: this.signerWorkerManager.getContext().nearKeyMaterialStore,
1521
- binding: args.binding,
1522
- sealed: args.sealed
1523
- });
1524
- }
1525
- async loadWalletCustodyEd25519Material(args) {
1526
- return await loadWalletCustodyEd25519MaterialV1({
1527
- store: this.signerWorkerManager.getContext().nearKeyMaterialStore,
1528
- nearAccountId: args.nearAccountId,
1529
- signerSlot: args.signerSlot,
1530
- expectedRegisteredPublicKeyB64u: args.expectedRegisteredPublicKeyB64u
1531
- });
1532
- }
1533
- async loadEmailOtpWalletCustodyEd25519Material(args) {
1534
- const loaded = await this.loadWalletCustodyEd25519Material({
1535
- nearAccountId: args.nearAccountId,
1536
- signerSlot: args.signerSlot,
1537
- expectedRegisteredPublicKeyB64u: ""
1538
- });
1539
- return loaded.kind === "found" ? loaded : { kind: "absent" };
1540
- }
1541
- async deleteWalletCustodyEd25519Material(args) {
1542
- await deleteWalletCustodyEd25519MaterialV1({
1543
- store: this.signerWorkerManager.getContext().nearKeyMaterialStore,
1544
- nearAccountId: args.nearAccountId,
1545
- signerSlot: args.signerSlot
1546
- });
1547
- }
1548
- async assertSealedRefreshStartupParity() {
1549
- await this.ensureSealedRefreshStartupParity();
1550
- }
1551
- async discoverPersistedSessionsForWallet(args) {
1552
- return await discoverPersistedSessionsForWallet(this.sessionPublicDeps, args);
1553
- }
1554
- isEd25519YaoPublicCapabilityActive(reference) {
1555
- switch (reference.auth.kind) {
1556
- case WALLET_AUTH_METHODS.emailOtp: return true;
1557
- case WALLET_AUTH_METHODS.passkey: return this.enginePorts.ed25519YaoActiveClients.resolve({
1558
- walletId: reference.walletId,
1559
- nearAccountId: reference.nearAccountId,
1560
- materialActivation: reference.materialActivation
1561
- }) !== null;
1562
- default:
1563
- reference.auth;
1564
- throw new Error("Unsupported Ed25519 public capability auth method");
1565
- }
1566
- }
1567
- async readPersistedAvailableSigningLanes(args) {
1568
- return await readPersistedAvailableSigningLanes(this.sessionPublicDeps, args);
1569
- }
1570
- async readOwnerScopedSigningLanes(args, statusReads) {
1571
- return await readOwnerScopedSigningLanes(this.sessionPublicDeps, args, statusReads);
1572
- }
1573
- /**
1574
- * Resolves the selected active Wallet Authority and auth method to one exact
1575
- * owner scope. Session availability is resolved by the lane inventory so an
1576
- * expired session can enter operation step-up.
1577
- */
1578
- async resolveSelectedOwnerLaneScope(walletId) {
1579
- const parsedWalletId = parseWalletId(walletId);
1580
- if (!parsedWalletId.ok) throw new Error(parsedWalletId.error.message);
1581
- const stores = {
1582
- getWalletAuthMethodV2: (id) => IndexedDBManager.getWalletAuthMethodV2(id),
1583
- listWalletAuthMethodsForWallet: (id) => IndexedDBManager.listWalletAuthMethodsForWallet(id),
1584
- getWalletPasskeyAuthenticator: (input) => IndexedDBManager.getWalletPasskeyAuthenticator(input),
1585
- readEmailOtpProviderSubjectForWallet: (id) => readEmailOtpProviderSubjectForWalletV1(IndexedDBManager, id)
1586
- };
1587
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(parsedWalletId.value));
1588
- if (selected.kind === "resolved") {
1589
- const { selection, authMethod, authority } = selected;
1590
- if (selection.walletId !== parsedWalletId.value || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletId !== parsedWalletId.value || authMethod.walletAuthorityId !== authority.authorityId || authority.walletId !== parsedWalletId.value) throw new Error("[SigningEngine] selected Wallet Authority identity mismatch");
1591
- if (selection.lockState !== "unlocked") throw fullWalletLoginRequired("wallet_locked");
1592
- if (authMethod.status !== "active") throw fullWalletLoginRequired("method_unavailable");
1593
- if (authority.state !== "active") throw fullWalletLoginRequired("authority_unavailable");
1594
- if (authority.provenance.kind === "device_link" && authMethod.kind === "passkey" && authority.signerActivations.ed25519) return buildExactPasskeyOwnerLaneScope({
1595
- authMethod,
1596
- signerSlot: await resolveLinkedPasskeyOwnerSignerSlot({
1597
- walletId: parsedWalletId.value,
1598
- authMethod,
1599
- signerMaterials: selected.signerMaterials,
1600
- publicLaneStore: this.ed25519YaoPublicCapabilityReferences
1601
- })
1602
- });
1603
- if (authority.provenance.kind === "device_link" && authMethod.kind === "passkey" && authority.signerActivations.ecdsa) return buildExactEcdsaPasskeyOwnerLaneScope({ authMethod });
1604
- if (authority.provenance.kind === "device_link" && authMethod.kind === "email_otp" && authority.signerActivations.ecdsa) {
1605
- const holderRuntime = resolveLinkedEcdsaHolderRuntimeV1({
1606
- walletId: parsedWalletId.value,
1607
- materialActivation: authority.signerActivations.ecdsa.materialActivation
1608
- });
1609
- if (!holderRuntime || holderRuntime.authorityId !== authority.authorityId || !isEmailOtpWalletAuthAuthority(holderRuntime.factorAuthority)) throw new Error("[SigningEngine] selected linked Email OTP authority has no exact ECDSA holder runtime");
1610
- const authorityRef = await walletAuthAuthorityRef({ authority: holderRuntime.factorAuthority });
1611
- if (authorityRef.walletId !== parsedWalletId.value || authorityRef.walletAuthMethodId !== authMethod.walletAuthMethodId) throw new Error("[SigningEngine] selected linked Email OTP authority has no exact ECDSA holder runtime");
1612
- return buildExactLinkedEmailOtpOwnerLaneScope({
1613
- authMethod,
1614
- factorAuthority: holderRuntime.factorAuthority,
1615
- authorityRef
1616
- });
1617
- }
1618
- return await resolveExactOwnerLaneScope({
1619
- authMethod,
1620
- stores
1621
- });
1622
- }
1623
- const reason = selected.kind === "integrity_error" ? `: ${selected.reason}` : "";
1624
- throw new Error(`[SigningEngine] selected Wallet Authority is ${selected.kind}${reason}`);
1625
- }
1626
- readWalletAuthenticationState() {
1627
- return this.walletAuthenticationState;
1628
- }
1629
- async retireActiveWalletSessionAuthorizationForLock(walletId) {
1630
- const retiredAtMs = Date.now();
1631
- if ((await walletSessionAuthorizations.retireExactActiveForWallet({
1632
- walletId,
1633
- reason: "wallet_locked",
1634
- retiredAtMs
1635
- })).length > 0) this.destroyUnlockedWalletEd25519ExportRootCapabilitiesV1({
1636
- kind: "wallet",
1637
- walletId: String(walletId)
1638
- });
1639
- }
1640
- async advanceWalletLockGeneration(walletId) {
1641
- return IndexedDBManager.advanceWalletLockGeneration({
1642
- walletId,
1643
- lockedAtMs: Date.now()
1644
- });
1645
- }
1646
- async markWalletSelectionUnlocked(input) {
1647
- await IndexedDBManager.markWalletSelectionUnlocked({
1648
- walletId: input.walletId,
1649
- walletAuthMethodId: input.walletAuthMethodId,
1650
- unlockedAtMs: Date.now()
1651
- });
1652
- }
1653
- async markSelectedEmailOtpWalletAuthorityUnlocked(input) {
1654
- await this.markWalletSelectionUnlocked(input);
1655
- }
1656
- /**
1657
- * Every route that lands a wallet in the authenticated state goes through
1658
- * here — passkey unlock, email OTP login, the hosted auth menu, and session
1659
- * restore. Binding the preferences manager at this choke point is what makes
1660
- * per-wallet preferences real: without it the manager stays on "no last
1661
- * user", so reads answer the built-in defaults while the wallet's persisted
1662
- * choices sit unread, and writes stay memory-only and evaporate on reload —
1663
- * the Confirmer UI toggle looked applied but silently reverted every page
1664
- * load. setCurrentWallet also notifies, which pushes PREFERENCES_CHANGED to
1665
- * the app origin so its mirrored uiMode follows the wallet too.
1666
- */
1667
- applyAuthenticatedWalletState(state) {
1668
- this.walletAuthenticationState = state;
1669
- this.userPreferencesManager.setCurrentWallet(state.walletId);
1670
- }
1671
- setWalletAuthenticated(state) {
1672
- const previous = this.walletAuthenticationState;
1673
- if (previous.kind === "authenticated" && String(previous.walletId) !== String(state.walletId)) this.destroyUnlockedWalletEd25519ExportRootCapabilitiesV1({
1674
- kind: "wallet",
1675
- walletId: String(previous.walletId)
1676
- });
1677
- this.walletAuthenticationRestoreGeneration += 1;
1678
- this.applyAuthenticatedWalletState(state);
1679
- }
1680
- clearWalletAuthentication() {
1681
- this.walletAuthenticationRestoreGeneration += 1;
1682
- this.walletAuthenticationState = { kind: "signed_out" };
1683
- this.destroyUnlockedWalletEd25519ExportRootCapabilitiesV1({ kind: "all" });
1684
- }
1685
- clearWalletAuthenticationIfCurrent(expected) {
1686
- if (this.walletAuthenticationState !== expected) return false;
1687
- this.clearWalletAuthentication();
1688
- return true;
1689
- }
1690
- /**
1691
- * The wallet custody ceremony worker as the small structural port the
1692
- * custody modules take, so they can be exercised without a worker.
1693
- */
1694
- walletCustodyCeremonyTransportV1() {
1695
- const workerContext = this.getSignerWorkerContext();
1696
- return { requestOperation: requestWalletCustodyCeremonyOperation.bind(void 0, workerContext) };
1697
- }
1698
- /**
1699
- * Parks the wallet custody seed inside the ceremony worker for the lifetime of
1700
- * the just-activated owner Wallet Session, reusing the factor secret this
1701
- * registration or unlock already collected. Failure is absorbed: the wallet
1702
- * stays usable, and device linking fails closed with `wallet_unlock_required`
1703
- * until the next unlock.
1704
- */
1705
- async establishUnlockedWalletEd25519ExportRootCapabilityV1(input) {
1706
- try {
1707
- const binding = input.existingEnvelope.binding;
1708
- if (!isWalletCustodySeedBinding(binding) && binding.kind !== "ed25519_yao_client_root_v1") return;
1709
- if (input.existingEnvelope.factor.kind !== "passkey") throw new Error("unlocked export-root capability requires a passkey envelope factor");
1710
- const existingFactorSecret = base64UrlDecode(input.passkeyPrfFirstB64u);
1711
- try {
1712
- await establishUnlockedWalletEd25519ExportRootCapabilityV1(this.walletCustodyCeremonyTransportV1(), {
1713
- existingEnvelope: input.existingEnvelope,
1714
- existingFactorSecret,
1715
- walletId: input.walletId,
1716
- walletAuthMethodId: input.walletAuthMethodId,
1717
- walletSessionId: input.walletSessionId,
1718
- expiresAtMs: input.expiresAtMs
1719
- });
1720
- } finally {
1721
- existingFactorSecret.fill(0);
1722
- }
1723
- } catch (error) {
1724
- console.warn("[BrowserSigningSurface] unlocked Ed25519 export-root capability was not established:", error instanceof Error ? error.message : String(error || "unknown error"));
1725
- }
1726
- }
1727
- /**
1728
- * Stores the reseal of an unbound envelope under the method that opened it.
1729
- *
1730
- * Absorbed the same way establishment is, and for the same reason: the V2 row
1731
- * still opens the wallet, so a failure here costs a retry at the next unlock
1732
- * and nothing else. Surfacing it would interrupt a user who has no action to
1733
- * take.
1734
- */
1735
- async persistUpgradedWalletCustodyEnvelopeV1(upgrade) {
1736
- try {
1737
- const relayerUrl = String(this.seamsWebConfigs.network.relayer?.url || "").trim();
1738
- if (!relayerUrl) return;
1739
- const parsedWalletId = parseWalletId(upgrade.walletId);
1740
- if (!parsedWalletId.ok) return;
1741
- const walletSessionToken = (await resolveActiveEd25519WalletSessionAuthorization(parsedWalletId.value, relayerUrl))?.operationCredential.token;
1742
- if (!walletSessionToken) return;
1743
- const outcome = await upgradeWalletCustodyEnvelopeOwnership({
1744
- relayUrl: relayerUrl,
1745
- walletId: upgrade.walletId,
1746
- walletSessionToken: String(walletSessionToken),
1747
- envelope: upgrade.envelope
1748
- });
1749
- if (outcome.kind === "upgraded" || outcome.kind === "already_owned") return;
1750
- console.warn("[BrowserSigningSurface] the upgraded custody envelope was not stored:", outcome.message);
1751
- } catch (error) {
1752
- console.warn("[BrowserSigningSurface] the upgraded custody envelope was not stored:", error instanceof Error ? error.message : String(error || "unknown error"));
1753
- }
1754
- }
1755
- async destroyUnlockedWalletEd25519ExportRootCapabilitiesV1(scope) {
1756
- await destroyUnlockedWalletEd25519ExportRootCapabilitiesV1(this.walletCustodyCeremonyTransportV1(), scope);
1757
- }
1758
- async runWarmCriticalResources(accountContext) {
1759
- try {
1760
- await this.ensureSealedRefreshStartupParity();
1761
- } catch (error) {
1762
- if (!isRetryableSealedRefreshCapabilityFetchError(error)) throw error;
1763
- console.warn("[BrowserSigningSurface] warmCriticalResources skipped retryable sealed-refresh capability fetch failure", error instanceof Error ? error.message : String(error || "unknown error"));
1764
- }
1765
- return await this.enginePorts.getManagerConveniencePorts().warmCriticalResources(accountContext);
1766
- }
1767
- async warmCriticalResources(accountContext) {
1768
- if (__isWalletIframeHostMode() && accountContext === void 0) {
1769
- const existing = this.hostWarmCriticalResourcesTask;
1770
- if (existing) return await existing;
1771
- const task = this.runWarmCriticalResources();
1772
- this.hostWarmCriticalResourcesTask = task;
1773
- task.catch(() => {
1774
- if (this.hostWarmCriticalResourcesTask === task) this.hostWarmCriticalResourcesTask = null;
1775
- });
1776
- return await task;
1777
- }
1778
- return await this.runWarmCriticalResources(accountContext);
1779
- }
1780
- async prewarmEmailOtpYao(request) {
1781
- return await this.signerWorkerManager.prewarmEmailOtpYao(request);
1782
- }
1783
- async prewarmEcdsaRegistrationCrypto() {
1784
- return await this.signerWorkerManager.prewarmEcdsaRegistrationCrypto();
1785
- }
1786
- getRpId() {
1787
- return this.touchIdPrompt.getRpId();
1788
- }
1789
- getSignerWorkerContext() {
1790
- return this.enginePorts.walletSessionActivationDeps.getSignerWorkerContext();
1791
- }
1792
- getNonceCoordinator() {
1793
- return this.nonceCoordinator;
1794
- }
1795
- setAppearance(appearance) {
1796
- this.appearance = appearance;
1797
- }
1798
- setWalletIframeSurfaceMeasurementBinding(binding) {
1799
- this.touchConfirm.getContext().surfaceMeasurementBinding = binding;
1800
- }
1801
- getWalletIframeSurfaceMeasurementBinding() {
1802
- return this.touchConfirm.getContext().surfaceMeasurementBinding;
1803
- }
1804
- getUserPreferences() {
1805
- return this.userPreferencesManager;
1806
- }
1807
- async signNear(request) {
1808
- const walletId = request.args.commandSubject.walletSession.walletId;
1809
- try {
1810
- return await signNear(this.enginePorts.nearSigningDeps, request);
1811
- } catch (error) {
1812
- if (isWalletSigningStateFailure(error)) {
1813
- await this.terminateWalletStateAfterSigningFailure(walletId);
1814
- throw error;
1815
- }
1816
- throw error;
1817
- }
1818
- }
1819
- async terminateWalletStateAfterSigningFailure(walletId) {
1820
- const authentication = this.readWalletAuthenticationState();
1821
- let authenticationCleared = false;
1822
- try {
1823
- await this.advanceWalletLockGeneration(walletId);
1824
- } catch {}
1825
- try {
1826
- await this.retireActiveWalletSessionAuthorizationForLock(walletId);
1827
- } catch {}
1828
- try {
1829
- authenticationCleared = this.clearWalletAuthenticationIfCurrent(authentication);
1830
- } catch {}
1831
- if (authenticationCleared) {
1832
- try {
1833
- this.nonceCoordinator.clearAll();
1834
- } catch {}
1835
- try {
1836
- this.clearThresholdEcdsaSigningQueue();
1837
- } catch {}
1838
- }
1839
- try {
1840
- await this.clearVolatileWarmSigningMaterial(walletId);
1841
- } catch {}
1842
- }
1843
- async ensureNearEd25519YaoCapabilityForSigning(subject) {
1844
- const rehydrationKey = nearEd25519CapabilityRehydrationKey(subject);
1845
- const existingRehydration = this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey);
1846
- if (existingRehydration) {
1847
- const reboundSubject = await existingRehydration;
1848
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1849
- if (rehydrated) return rehydrated;
1850
- throw new Error("[SigningEngine][near] joined rehydration did not publish an active lane");
1851
- }
1852
- const rehydration = this.rehydrateNearEd25519YaoCapabilityForSigning(subject);
1853
- this.nearEd25519CapabilityRehydrationBySubject.set(rehydrationKey, rehydration);
1854
- try {
1855
- const reboundSubject = await rehydration;
1856
- const rehydrated = await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject);
1857
- if (rehydrated) return rehydrated;
1858
- throw new Error("[SigningEngine][near] local material rehydration did not publish a lane");
1859
- } finally {
1860
- if (this.nearEd25519CapabilityRehydrationBySubject.get(rehydrationKey) === rehydration) this.nearEd25519CapabilityRehydrationBySubject.delete(rehydrationKey);
1861
- }
1862
- }
1863
- async rehydrateExactPasskeyEd25519YaoCapabilityForSigning(args) {
1864
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(args);
1865
- return await this.ensureNearEd25519YaoCapabilityForSigning(args.laneIdentity !== void 0 ? {
1866
- kind: "exact_lane",
1867
- laneIdentity: args.laneIdentity
1868
- } : {
1869
- kind: "material_identity",
1870
- materialIdentity: identity
1871
- });
1872
- }
1873
- async prepareMaterialIdentityNearEd25519YaoSigning(args) {
1874
- const identity = args.materialIdentity;
1875
- const activeForAccount = this.enginePorts.ed25519YaoActiveClients.resolveForWalletAccount({
1876
- walletId: identity.signer.account.wallet.walletId,
1877
- nearAccountId: identity.signer.account.nearAccountId
1878
- });
1879
- const publicCapabilityMaterialActivation = await resolveNearEd25519PublicCapabilityMaterialActivation({
1880
- store: this.ed25519YaoPublicCapabilityReferences,
1881
- identity
1882
- });
1883
- const passkeyAuthorizationRead = identity.auth.kind === WALLET_AUTH_METHODS.passkey ? await this.readExactNearEd25519WalletSessionAuthorization(args.walletId) : null;
1884
- const passkeyAuthorization = passkeyAuthorizationRead ? classifyNearEd25519WalletSessionAuthorization(passkeyAuthorizationRead) : null;
1885
- if (identity.auth.kind === WALLET_AUTH_METHODS.passkey && publicCapabilityMaterialActivation) {
1886
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
1887
- walletId: identity.signer.account.wallet.walletId,
1888
- nearAccountId: identity.signer.account.nearAccountId,
1889
- materialActivation: publicCapabilityMaterialActivation
1890
- });
1891
- const liveRuntime = nearEd25519YaoRuntimeObservation(activeMaterial);
1892
- if (activeMaterial && liveRuntime.kind === "live") {
1893
- if (passkeyAuthorization?.kind === "authorized") {
1894
- const authorization = passkeyAuthorization.authorization;
1895
- if (authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] active Wallet Session method is unavailable");
1896
- return await buildAuthorizedNearEd25519YaoSigningPreparation({
1897
- hydration: buildUseLiveRuntimeHydrationPlan({
1898
- authority: await walletAuthAuthorityRef({ authority: authorization.selectedFactorAuthority }),
1899
- runtime: liveRuntime.runtime,
1900
- materialActivation: publicCapabilityMaterialActivation
1901
- }),
1902
- requirement: identity.auth,
1903
- authorization
1904
- });
1905
- }
1906
- if (passkeyAuthorization?.kind !== "operation_step_up") {
1907
- if (passkeyAuthorization?.kind === "full_login_required") throw fullWalletLoginRequired(passkeyAuthorization.reason);
1908
- throw new Error("[SigningEngine][near] Wallet Session status is temporarily unavailable");
1909
- }
1910
- }
1911
- }
1912
- if (passkeyAuthorization?.kind === "full_login_required") throw fullWalletLoginRequired(passkeyAuthorization.reason);
1913
- if (passkeyAuthorization?.kind === "temporarily_unavailable") throw new Error("[SigningEngine][near] Wallet Session persistence is temporarily unavailable");
1914
- if (identity.auth.kind === WALLET_AUTH_METHODS.passkey && passkeyAuthorization?.kind === "operation_step_up") return buildAuthorizationRequiredNearEd25519YaoSigningPreparation({
1915
- hydration: (await preparePasskeyEd25519OperationMaterial({
1916
- walletId: args.walletId,
1917
- identity,
1918
- relayerUrl: this.seamsWebConfigs.network.relayer.url
1919
- })).prepared.plan,
1920
- requirement: identity.auth
1921
- });
1922
- const sealedRuntime = identity.auth.kind === WALLET_AUTH_METHODS.passkey ? await requireExactEd25519SealedRuntimeForMaterialIdentity({
1923
- walletId: args.walletId,
1924
- identity
1925
- }) : null;
1926
- const materialActivation = sealedRuntime?.sealedRecord.ed25519Restore.materialActivation ?? (activeForAccount ? nearEd25519YaoMaterialActivationFromMetadata(activeForAccount.activeClient.metadata()) : publicCapabilityMaterialActivation);
1927
- if (!materialActivation) throw invalidWalletSigningMaterial("missing_capability");
1928
- const runtimeObservation = nearEd25519YaoRuntimeObservation(this.enginePorts.ed25519YaoActiveClients.resolve({
1929
- walletId: identity.signer.account.wallet.walletId,
1930
- nearAccountId: identity.signer.account.nearAccountId,
1931
- materialActivation
1932
- }));
1933
- let hydration;
1934
- switch (identity.auth.kind) {
1935
- case WALLET_AUTH_METHODS.passkey: {
1936
- if (!sealedRuntime) throw invalidWalletSigningMaterial("missing_runtime");
1937
- if (passkeyAuthorization?.kind !== "authorized") throw new Error("[SigningEngine][near] exact Passkey authorization is unavailable");
1938
- const authorizationRead = {
1939
- kind: "found",
1940
- authorization: passkeyAuthorization.authorization
1941
- };
1942
- const walletSessionState = await rebindRouterAbEd25519WalletSessionStateFromExactRuntime({
1943
- runtime: sealedRuntime,
1944
- authorization: passkeyAuthorization.authorization,
1945
- nowMs: Date.now()
1946
- });
1947
- const warmSessionClaim = await this.ensurePasskeyEd25519WarmSessionForSigning({
1948
- runtime: sealedRuntime,
1949
- walletSessionState,
1950
- materialActivation
1951
- });
1952
- let authority;
1953
- try {
1954
- authority = await resolveBrowserNearEd25519PasskeyAuthorityForMaterial({
1955
- walletId: args.walletId,
1956
- runtime: sealedRuntime,
1957
- authorizationRead
1958
- });
1959
- } catch {
1960
- throw invalidWalletSigningMaterial("binding_mismatch");
1961
- }
1962
- const localMaterialIdentity = passkeyEd25519LocalMaterialIdentityFromExactRuntime(sealedRuntime);
1963
- const localMaterial = await readPasskeyEd25519YaoLocalMaterialLocatorV1({
1964
- store: IndexedDBManager,
1965
- walletId: String(identity.signer.account.wallet.walletId),
1966
- nearAccountId: String(identity.signer.account.nearAccountId),
1967
- nearEd25519SigningKeyId: String(identity.signer.nearEd25519SigningKeyId),
1968
- signerSlot: identity.signer.signerSlot,
1969
- rpId: identity.auth.rpId,
1970
- credentialIdB64u: identity.auth.credentialIdB64u,
1971
- authority
1972
- });
1973
- const publicLocator = {
1974
- kind: "available",
1975
- walletId: String(identity.signer.account.wallet.walletId),
1976
- nearAccountId: String(identity.signer.account.nearAccountId),
1977
- signerSlot: identity.signer.signerSlot,
1978
- materialActivation,
1979
- authority
1980
- };
1981
- hydration = resolveNearEd25519YaoCapabilityHydrationV1({
1982
- publicLocator,
1983
- sealed: localMaterial.kind === "available" ? {
1984
- kind: "available",
1985
- authority: localMaterial.locator.authority,
1986
- materialActivation: localMaterial.locator.materialActivation,
1987
- sealedMaterial: localMaterial.locator.sealedMaterial
1988
- } : { kind: "missing" },
1989
- runtime: runtimeObservation,
1990
- unlockSource: warmSessionClaim.ok ? {
1991
- kind: "available",
1992
- authority
1993
- } : { kind: "unavailable" }
1994
- });
1995
- if (hydration.kind === "blocked" && hydration.reason === "missing_material") hydration = (await prepareExactPasskeyEd25519YaoLocalMaterialRehydration({
1996
- store: IndexedDBManager,
1997
- identity: localMaterialIdentity,
1998
- authority,
1999
- publicLocator
2000
- })).plan;
2001
- break;
2002
- }
2003
- case WALLET_AUTH_METHODS.emailOtp:
2004
- hydration = await this.resolveWalletCustodyEmailOtpHydration({
2005
- walletId: args.walletId,
2006
- nearAccountId: args.nearAccountId,
2007
- identity: requireEmailOtpNearEd25519MaterialIdentity(identity),
2008
- signerSlot: identity.signer.signerSlot,
2009
- materialActivation
2010
- });
2011
- break;
2012
- default:
2013
- identity.auth;
2014
- throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
2015
- }
2016
- if (hydration.kind === "blocked") {
2017
- if (hydration.reason === "persistence_unavailable") throw new Error("[SigningEngine][near] signing material persistence is unavailable");
2018
- throw walletSigningMaterialBlockError(hydration.reason);
2019
- }
2020
- return buildAuthorizationRequiredNearEd25519YaoSigningPreparation({
2021
- hydration,
2022
- requirement: identity.auth
2023
- });
2024
- }
2025
- async resolveWalletCustodyEmailOtpHydration(args) {
2026
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
2027
- walletId: args.walletId,
2028
- nearAccountId: args.nearAccountId,
2029
- materialActivation: args.materialActivation
2030
- });
2031
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2032
- let authority;
2033
- if (authorizationRead.kind === "found") {
2034
- if (authorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.emailOtp) return buildBlockedMpcCapabilityHydrationPlan({
2035
- capability: args.materialActivation.capability,
2036
- reason: "missing_material"
2037
- });
2038
- authority = await walletAuthAuthorityRef({ authority: authorizationRead.authorization.selectedFactorAuthority });
2039
- if (activeMaterial) return buildUseLiveRuntimeHydrationPlan({
2040
- authority,
2041
- runtime: nearEd25519YaoRuntimeRef(args.materialActivation),
2042
- materialActivation: args.materialActivation
2043
- });
2044
- } else if (authorizationRead.kind === "exhausted") {
2045
- const exhaustedAuthority = await resolveBrowserNearEd25519EmailOtpAuthorityForMaterial({
2046
- walletId: args.walletId,
2047
- nearAccountId: args.nearAccountId,
2048
- identity: args.identity,
2049
- signerSlot: args.signerSlot,
2050
- materialActivation: args.materialActivation,
2051
- authorizationRead: { kind: "exhausted" }
2052
- });
2053
- if (!exhaustedAuthority) return buildBlockedMpcCapabilityHydrationPlan({
2054
- capability: args.materialActivation.capability,
2055
- reason: "missing_material"
2056
- });
2057
- authority = exhaustedAuthority;
2058
- if (activeMaterial) try {
2059
- validateExactNearEd25519YaoOperationMaterial({
2060
- material: activeMaterial,
2061
- input: {
2062
- walletId: args.walletId,
2063
- nearAccountId: args.nearAccountId,
2064
- materialIdentity: args.identity
2065
- },
2066
- expectedActivation: args.materialActivation
2067
- });
2068
- } catch {
2069
- return buildBlockedMpcCapabilityHydrationPlan({
2070
- capability: args.materialActivation.capability,
2071
- reason: "binding_mismatch"
2072
- });
2073
- }
2074
- } else return buildBlockedMpcCapabilityHydrationPlan({
2075
- capability: args.materialActivation.capability,
2076
- reason: "missing_material"
2077
- });
2078
- if (activeMaterial) return buildUseLiveRuntimeHydrationPlan({
2079
- authority,
2080
- runtime: nearEd25519YaoRuntimeRef(args.materialActivation),
2081
- materialActivation: args.materialActivation
2082
- });
2083
- const loaded = await this.loadEmailOtpWalletCustodyEd25519Material({
2084
- nearAccountId: String(args.nearAccountId),
2085
- signerSlot: args.signerSlot
2086
- });
2087
- if (loaded.kind === "found" && loaded.material.binding.walletId === String(args.walletId) && loaded.material.binding.nearAccountId === String(args.nearAccountId) && loaded.material.binding.signerSlot === args.signerSlot && String(args.materialActivation.materialOwner) === String(args.walletId) && (authorizationRead.kind === "found" || loaded.material.binding.nearEd25519SigningKeyId === String(args.identity.signer.nearEd25519SigningKeyId) && loaded.material.binding.signingWorkerId === String(args.materialActivation.signingWorker))) return buildRehydrateMaterialActivationHydrationPlan({
2088
- authority,
2089
- materialActivation: args.materialActivation,
2090
- sealedMaterial: buildRestorableMpcMaterialRefForHydration(JSON.stringify([
2091
- loaded.material.binding.walletId,
2092
- loaded.material.binding.nearAccountId,
2093
- loaded.material.binding.signerSlot,
2094
- args.materialActivation.activationId
2095
- ]))
2096
- });
2097
- return buildBlockedMpcCapabilityHydrationPlan({
2098
- capability: args.materialActivation.capability,
2099
- reason: "missing_material"
2100
- });
2101
- }
2102
- async rehydrateActiveEmailOtpEd25519YaoSessionMaterial(args) {
2103
- const input = requireAuthorizedNearEd25519BoundaryInput(args.input);
2104
- if (input.auth.kind !== WALLET_AUTH_METHODS.emailOtp) throw new Error("[SigningEngine][near] Email OTP session restore requires Email OTP material");
2105
- const publicLane = await resolveExactEmailOtpPublicLaneReference({
2106
- store: this.ed25519YaoPublicCapabilityReferences,
2107
- laneIdentity: input.laneIdentity,
2108
- materialActivation: args.materialActivation
2109
- });
2110
- const user = await this.getUserBySignerSlot(input.nearAccountId, input.laneIdentity.signer.signerSlot);
2111
- if (!user || String(user.walletId) !== String(input.walletId) || String(user.nearAccountId) !== String(input.nearAccountId) || user.signerSlot !== input.laneIdentity.signer.signerSlot || user.authMethod !== WALLET_AUTH_METHODS.emailOtp) throw new Error("[SigningEngine][near] Email OTP signer record is unavailable");
2112
- const sealed = await this.loadEmailOtpWalletCustodyEd25519Material({
2113
- nearAccountId: String(input.nearAccountId),
2114
- signerSlot: user.signerSlot
2115
- });
2116
- const operationCredential = args.authorization.operationCredential;
2117
- if (sealed.kind !== "found") throw new Error("[SigningEngine][near] Email OTP session material is unavailable");
2118
- const ecdsaManifest = requireEmailOtpEcdsaRehydrationManifest(await listBrowserActiveEcdsaCapabilityManifestsForWallet(String(input.walletId)), String((await walletAuthAuthorityRef({ authority: args.authorization.selectedFactorAuthority })).authorityDigest));
2119
- const ecdsaSessionPolicy = buildEmailOtpEcdsaRehydrationPolicy({
2120
- manifest: ecdsaManifest,
2121
- remainingUses: args.remainingUses
2122
- });
2123
- const activated = await this.signerWorkerManager.requestWorkerOperation({
2124
- kind: "emailOtp",
2125
- request: {
2126
- type: "rehydrateActiveEmailOtpEd25519YaoSessionMaterial",
2127
- payload: {
2128
- relayUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim(),
2129
- walletId: String(input.walletId),
2130
- walletAuthMethodId: String(args.authorization.selectedAuthMethod.walletAuthMethodId),
2131
- orgId: publicLane.runtimePolicyScope.orgId,
2132
- providerSubjectId: input.auth.providerSubjectId,
2133
- nearAccountId: String(input.nearAccountId),
2134
- signerSlot: user.signerSlot,
2135
- remainingUses: args.remainingUses,
2136
- expectedOperationalPublicKey: user.operationalPublicKey,
2137
- expectedThresholdSessionId: publicLane.thresholdSessionId,
2138
- operationCredential,
2139
- ecdsa: {
2140
- sessionHandleBinding: {
2141
- operation: "wallet_unlock",
2142
- keyHandle: String(ecdsaManifest.durableMaterial.roleLocalBinding.keyHandle),
2143
- authSubjectId: input.auth.providerSubjectId,
2144
- chainTarget: ecdsaManifest.signer.scope.targetMemberships[0]
2145
- },
2146
- runtimePolicyScope: ecdsaManifest.durableMaterial.runtimePolicyScope,
2147
- sessionPolicy: ecdsaSessionPolicy
2148
- },
2149
- walletCustodyEd25519Material: sealed
2150
- }
2151
- }
2152
- });
2153
- await persistRehydratedEmailOtpEcdsaWalletSession({
2154
- walletId: input.walletId,
2155
- authorization: activated.walletSessionAuthorization,
2156
- response: activated.ecdsaSession
2157
- });
2158
- await this.activateEmailOtpEd25519CustodyCapabilityInternal({
2159
- commitQueue: "acquire",
2160
- walletSession: {
2161
- walletId: input.walletId,
2162
- walletSessionUserId: String(input.walletId)
2163
- },
2164
- providerSubject: input.auth.providerSubjectId,
2165
- emailHashHex: await sha256HexUtf8(user.loginDisplayName.trim().toLowerCase()),
2166
- signerSlot: user.signerSlot,
2167
- expectedOperationalPublicKey: user.operationalPublicKey,
2168
- expectedThresholdSessionId: String(publicLane.thresholdSessionId),
2169
- bootstrap: activated.bootstrap,
2170
- activeClientHandle: activated.activeClientHandle,
2171
- metadata: activated.metadata,
2172
- exactAuthorization: activated.walletSessionAuthorization
2173
- });
2174
- return buildUseLiveRuntimeHydrationPlan({
2175
- authority: await walletAuthAuthorityRef({ authority: args.authorization.selectedFactorAuthority }),
2176
- runtime: nearEd25519YaoRuntimeRef(args.materialActivation),
2177
- materialActivation: args.materialActivation
2178
- });
2179
- }
2180
- async prepareExactNearEd25519YaoSigning(args) {
2181
- if (args.laneIdentity !== void 0 && args.auth?.kind === WALLET_AUTH_METHODS.emailOtp) {
2182
- let preparation = await this.prepareMaterialIdentityNearEd25519YaoSigning(authNeutralNearEd25519BoundaryInput(args));
2183
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2184
- if (authorizationRead.kind !== "found" || authorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.emailOtp) return preparation;
2185
- const authorization = authorizationRead.authorization;
2186
- switch (preparation.hydration.kind) {
2187
- case "use_live_runtime": break;
2188
- case "rehydrate_material_activation":
2189
- preparation = buildAuthorizationRequiredNearEd25519YaoSigningPreparation({
2190
- hydration: await this.rehydrateActiveEmailOtpEd25519YaoSessionMaterial({
2191
- input: args,
2192
- materialActivation: preparation.hydration.materialActivation,
2193
- authorization,
2194
- remainingUses: authorization.status.remainingUses
2195
- }),
2196
- requirement: args.auth
2197
- });
2198
- break;
2199
- case "reauthorize_public_anchor":
2200
- case "blocked": return preparation;
2201
- default:
2202
- preparation.hydration;
2203
- throw new Error("[SigningEngine][near] unsupported Email OTP hydration state");
2204
- }
2205
- const currentAuthorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2206
- if (currentAuthorizationRead.kind !== "found" || currentAuthorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.emailOtp) return preparation;
2207
- return await buildAuthorizedNearEd25519YaoSigningPreparation({
2208
- hydration: preparation.hydration,
2209
- requirement: args.auth,
2210
- authorization: currentAuthorizationRead.authorization
2211
- });
2212
- }
2213
- if (args.laneIdentity === void 0) return await this.prepareMaterialIdentityNearEd25519YaoSigning(args);
2214
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2215
- switch (authorizationRead.kind) {
2216
- case "found": {
2217
- const authorization = authorizationRead.authorization;
2218
- if (authorization.selectedAuthMethod.kind !== args.auth.kind) return await this.prepareMaterialIdentityNearEd25519YaoSigning(authNeutralNearEd25519BoundaryInput(args));
2219
- const sealedRuntimeResolution = await resolveExactEd25519SealedSessionRuntimeForLane({
2220
- walletId: args.walletId,
2221
- laneIdentity: args.laneIdentity
2222
- });
2223
- if (sealedRuntimeResolution.kind === "missing" && args.auth.kind === WALLET_AUTH_METHODS.passkey) {
2224
- const publicLane = await resolveExactPasskeyPublicLaneReference({
2225
- store: this.ed25519YaoPublicCapabilityReferences,
2226
- laneIdentity: args.laneIdentity
2227
- });
2228
- const materialActivation = publicLane.materialActivation;
2229
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
2230
- walletId: args.walletId,
2231
- nearAccountId: args.nearAccountId,
2232
- materialActivation
2233
- });
2234
- if (!activeMaterial) throw new Error("[SigningEngine][near] active Passkey Ed25519 material is unavailable");
2235
- const material = validateExactNearEd25519YaoOperationMaterial({
2236
- material: activeMaterial,
2237
- input: args,
2238
- expectedActivation: materialActivation
2239
- });
2240
- const walletSessionState = await passkeyWalletSessionStateFromPublicLane({
2241
- reference: publicLane,
2242
- material,
2243
- authorization,
2244
- materialActivation,
2245
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2246
- });
2247
- const runtime = nearEd25519YaoRuntimeObservation(material);
2248
- if (runtime.kind !== "live") throw new Error("[SigningEngine][near] active Passkey Ed25519 material is unavailable");
2249
- return await buildAuthorizedNearEd25519YaoSigningPreparation({
2250
- hydration: buildUseLiveRuntimeHydrationPlan({
2251
- authority: walletSessionState.authority,
2252
- runtime: runtime.runtime,
2253
- materialActivation
2254
- }),
2255
- requirement: args.auth,
2256
- authorization
2257
- });
2258
- }
2259
- if (sealedRuntimeResolution.kind !== "resolved") throw new Error(`[SigningEngine][near] exact persisted Ed25519 runtime is ${sealedRuntimeResolution.kind}`);
2260
- const sealedRuntime = sealedRuntimeResolution.runtime;
2261
- const materialActivation = sealedRuntime.sealedRecord.ed25519Restore.materialActivation;
2262
- const walletSessionState = await walletSessionStateFromExactEd25519Runtime({
2263
- runtime: sealedRuntime,
2264
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2265
- });
2266
- const signer = walletSessionState.signingLane.identity.signer;
2267
- const publicLocator = {
2268
- kind: "available",
2269
- walletId: String(signer.account.wallet.walletId),
2270
- nearAccountId: String(signer.account.nearAccountId),
2271
- signerSlot: signer.signerSlot,
2272
- materialActivation
2273
- };
2274
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
2275
- walletId: signer.account.wallet.walletId,
2276
- nearAccountId: signer.account.nearAccountId,
2277
- materialActivation
2278
- });
2279
- const warmSessionClaim = args.auth.kind === WALLET_AUTH_METHODS.passkey ? await this.passkeyMpcSession.claimWarmSessionMaterial({
2280
- thresholdSessionId: sealedRuntime.thresholdSessionId,
2281
- purpose: {
2282
- curve: "ed25519",
2283
- materialActivation
2284
- },
2285
- consume: false
2286
- }) : null;
2287
- let unlockSource = { kind: "unavailable" };
2288
- if (warmSessionClaim?.ok === true) unlockSource = {
2289
- kind: "available",
2290
- passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
2291
- };
2292
- const hydration = await this.resolveExactNearEd25519YaoSigningHydration({
2293
- args,
2294
- walletSessionState,
2295
- publicLocator,
2296
- runtime: nearEd25519YaoRuntimeObservation(activeMaterial),
2297
- unlockSource
2298
- });
2299
- if (hydration.kind === "use_live_runtime") {
2300
- if (!activeMaterial) throw new Error("[SigningEngine][near] live Ed25519 material is unavailable");
2301
- await hydrateOwnerNearEd25519ExecutionLane({
2302
- input: args,
2303
- authorization,
2304
- sealedRuntime,
2305
- material: activeMaterial
2306
- });
2307
- }
2308
- return await buildAuthorizedNearEd25519YaoSigningPreparation({
2309
- hydration,
2310
- requirement: args.auth,
2311
- authorization
2312
- });
2313
- }
2314
- case "missing":
2315
- case "expired":
2316
- case "exhausted":
2317
- case "superseded":
2318
- case "authority_unavailable":
2319
- case "method_unavailable":
2320
- case "capability_unavailable":
2321
- case "unavailable": return await this.prepareMaterialIdentityNearEd25519YaoSigning(authNeutralNearEd25519BoundaryInput(args));
2322
- case "upgrade_required": throw new WalletSessionAuthorizationUpgradeRequiredError("[SigningEngine][near] Wallet Session authorization requires a newer client");
2323
- case "corrupt":
2324
- case "persistence_unavailable": throw new Error(`[SigningEngine][near] Wallet Session authorization is ${authorizationRead.kind}`);
2325
- default: throw new Error("[SigningEngine][near] unsupported Wallet Session authorization state");
2326
- }
2327
- }
2328
- async prepareExactNearEd25519YaoMaterialBoundary(args) {
2329
- assertNearEd25519YaoMaterialBoundaryAuth(args);
2330
- const preparation = await this.prepareExactNearEd25519YaoSigning(args);
2331
- const context = {
2332
- input: args,
2333
- materialActivation: preparation.hydration.materialActivation || null
2334
- };
2335
- return {
2336
- preparation,
2337
- executor: {
2338
- resolveSigningKeyMaterial: this.resolveExactNearEd25519SigningKeyMaterial.bind(this, context),
2339
- resolve: this.resolveExactNearEd25519YaoPreparedMaterial.bind(this, context),
2340
- resolveWalletSessionState: this.resolveExactNearEd25519YaoWalletSessionState.bind(this, context),
2341
- resolveFundingSession: this.resolveExactNearEd25519FundingSession.bind(this, context),
2342
- preparePasskeyOperationStepUp: this.prepareExactNearEd25519YaoOperationStepUpAtBoundary.bind(this, context),
2343
- prepareEmailOtpOperationStepUp: this.prepareExactNearEmailOtpEd25519YaoOperationStepUpAtBoundary.bind(this, context)
2344
- }
2345
- };
2346
- }
2347
- async resolveExactNearEd25519SigningKeyMaterial(context) {
2348
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(context.input);
2349
- const signer = identity.signer;
2350
- const auth = identity.auth;
2351
- const materialActivation = context.materialActivation;
2352
- if (!materialActivation) throw new Error("[SigningEngine][near] prepared material has no activation");
2353
- if (String(signer.account.wallet.walletId) !== String(context.input.walletId) || String(signer.account.nearAccountId) !== String(context.input.nearAccountId)) throw new Error("[SigningEngine][near] selected Ed25519 lane identity changed");
2354
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(context.input.walletId));
2355
- if (selected.kind !== "resolved") {
2356
- const detail = selected.kind === "integrity_error" ? `: ${selected.reason}` : "";
2357
- throw new Error(`[SigningEngine][near] selected Wallet Authority is ${selected.kind}${detail}`);
2358
- }
2359
- const { selection, authMethod, authority, signerMaterials } = selected;
2360
- let authMethodMatches;
2361
- switch (auth.kind) {
2362
- case WALLET_AUTH_METHODS.passkey:
2363
- authMethodMatches = authMethod.kind === WALLET_AUTH_METHODS.passkey && String(authMethod.rpId) === String(auth.rpId) && authMethod.credentialIdB64u === auth.credentialIdB64u;
2364
- break;
2365
- case WALLET_AUTH_METHODS.emailOtp:
2366
- authMethodMatches = authMethod.kind === WALLET_AUTH_METHODS.emailOtp;
2367
- break;
2368
- default: throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
2369
- }
2370
- if (selection.lockState !== "unlocked" || authority.state !== "active" || authMethod.status !== "active" || String(selection.walletId) !== String(context.input.walletId) || selection.walletAuthMethodId !== authMethod.walletAuthMethodId || authMethod.walletAuthorityId !== authority.authorityId || String(authMethod.walletId) !== String(context.input.walletId) || !authMethodMatches) throw new Error("[SigningEngine][near] selected Wallet Authority does not match the lane");
2371
- const operation = await resolveWalletAuthorityOperation({
2372
- selected: {
2373
- authMethod,
2374
- authority
2375
- },
2376
- operation: {
2377
- kind: "near_sign",
2378
- operation: "sign",
2379
- keyFamily: "ed25519"
2380
- }
2381
- });
2382
- if (operation.kind !== "resolved") throw new Error(`[SigningEngine][near] selected Wallet Authority rejected signing (${operation.reason.kind})`);
2383
- const resolved = operation.value;
2384
- if (resolved.keyFamily !== "ed25519" || String(resolved.walletId) !== String(context.input.walletId) || resolved.authMethodId !== authMethod.walletAuthMethodId || !mpcMaterialActivationRefsEqual(resolved.materialActivation, materialActivation)) throw new Error("[SigningEngine][near] selected Wallet Authority activation changed");
2385
- if (authority.signerActivations.keyFamilies[0] !== "ed25519" || authority.signerActivations.ed25519 === void 0 || !mpcMaterialActivationRefsEqual(authority.signerActivations.ed25519.materialActivation, materialActivation) || authority.signerActivations.ed25519.signer.registeredPublicKeyB64u !== resolved.registeredPublicKeyB64u) throw new Error("[SigningEngine][near] selected Ed25519 authority activation changed");
2386
- const registeredPublicKey = base64UrlDecode(resolved.registeredPublicKeyB64u);
2387
- if (registeredPublicKey.byteLength !== 32) throw new Error("[SigningEngine][near] selected Ed25519 public key is invalid");
2388
- const signingWorkerId = materialActivation.signingWorker;
2389
- let participantIds = [1, 2];
2390
- let linkedMaterial = null;
2391
- if (authority.provenance.kind === "device_link") {
2392
- await resolveExactNearEd25519PublicLaneReference({
2393
- store: this.ed25519YaoPublicCapabilityReferences,
2394
- identity,
2395
- materialActivation
2396
- });
2397
- for (const candidate of signerMaterials) {
2398
- if (!isLinkedEd25519SignerMaterial(candidate) || candidate.authorityId !== authority.authorityId || candidate.walletAuthMethodId !== authMethod.walletAuthMethodId || !mpcMaterialActivationRefsEqual(candidate.materialActivation, materialActivation)) continue;
2399
- if (linkedMaterial) throw new Error("[SigningEngine][near] linked Ed25519 signer material is ambiguous");
2400
- linkedMaterial = candidate;
2401
- }
2402
- if (!linkedMaterial) throw new Error("[SigningEngine][near] linked Ed25519 signer material is unavailable");
2403
- const application = linkedMaterial.publicFacts.applicationBinding;
2404
- const targetBinding = linkedMaterial.publicFacts.targetBinding;
2405
- const targetLifecycle = targetBinding.lifecycle;
2406
- const targetFactor = linkedMaterial.targetFactor;
2407
- let targetFactorMatches;
2408
- switch (auth.kind) {
2409
- case WALLET_AUTH_METHODS.passkey:
2410
- targetFactorMatches = targetFactor.kind === WALLET_AUTH_METHODS.passkey && targetFactor.walletAuthMethodId === authMethod.walletAuthMethodId && String(targetFactor.rpId) === String(auth.rpId) && targetFactor.credentialIdB64u === auth.credentialIdB64u;
2411
- break;
2412
- case WALLET_AUTH_METHODS.emailOtp:
2413
- targetFactorMatches = targetFactor.kind === WALLET_AUTH_METHODS.emailOtp && authMethod.kind === WALLET_AUTH_METHODS.emailOtp && targetFactor.walletAuthMethodId === authMethod.walletAuthMethodId && targetFactor.emailHashHex === authMethod.emailHashHex;
2414
- break;
2415
- default: throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
2416
- }
2417
- if (application.wallet_id !== String(context.input.walletId) || application.near_ed25519_signing_key_id !== String(signer.nearEd25519SigningKeyId) || application.key_creation_signer_slot !== signer.signerSlot || targetLifecycle.account_id !== String(context.input.walletId) || targetLifecycle.session_id !== String(identity.thresholdSessionId) || targetLifecycle.selected_server_id !== String(signingWorkerId) || !mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(targetBinding.material_activation), materialActivation) || !mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(linkedMaterial.publicFacts.activationReceipt.material_activation), materialActivation) || base64UrlEncode(Uint8Array.from(linkedMaterial.publicFacts.activationReceipt.registered_public_key)) !== resolved.registeredPublicKeyB64u || !targetFactorMatches) throw new Error("[SigningEngine][near] linked Ed25519 signer identity changed");
2418
- participantIds = linkedMaterial.publicFacts.participantIds;
2419
- }
2420
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
2421
- walletId: context.input.walletId,
2422
- nearAccountId: context.input.nearAccountId,
2423
- materialActivation
2424
- });
2425
- if (activeMaterial) {
2426
- const exactMaterial = validateExactNearEd25519YaoOperationMaterial({
2427
- material: activeMaterial,
2428
- input: context.input,
2429
- expectedActivation: materialActivation
2430
- });
2431
- const metadata = exactMaterial.activeClient.metadata();
2432
- const facts = exactMaterial.facts;
2433
- if (base64UrlEncode(metadata.registeredPublicKey) !== resolved.registeredPublicKeyB64u || metadata.participantIds[0] !== participantIds[0] || metadata.participantIds[1] !== participantIds[1] || metadata.applicationBinding.wallet_id !== String(context.input.walletId) || metadata.applicationBinding.near_ed25519_signing_key_id !== String(signer.nearEd25519SigningKeyId) || metadata.applicationBinding.key_creation_signer_slot !== signer.signerSlot || metadata.scope.account_id !== String(context.input.walletId) || metadata.scope.threshold_session_id !== String(identity.thresholdSessionId) || metadata.scope.signing_worker_id !== String(signingWorkerId) || facts.routerAbNormalSigning.signingWorkerId !== String(signingWorkerId) || facts.signingRootId !== metadata.applicationBinding.signing_root_id || facts.signingRootVersion !== metadata.scope.root_share_epoch) throw new Error("[SigningEngine][near] active Ed25519 public material changed");
2434
- if (linkedMaterial) {
2435
- const application = linkedMaterial.publicFacts.applicationBinding;
2436
- const targetLifecycle = linkedMaterial.publicFacts.targetBinding.lifecycle;
2437
- if (metadata.applicationBinding.wallet_id !== application.wallet_id || metadata.applicationBinding.near_ed25519_signing_key_id !== application.near_ed25519_signing_key_id || metadata.applicationBinding.signing_root_id !== application.signing_root_id || metadata.applicationBinding.key_creation_signer_slot !== application.key_creation_signer_slot || metadata.scope.lifecycle_id !== targetLifecycle.lifecycle_id || metadata.scope.root_share_epoch !== targetLifecycle.root_share_epoch || metadata.scope.account_id !== targetLifecycle.account_id || metadata.scope.threshold_session_id !== targetLifecycle.session_id || metadata.scope.signing_worker_id !== targetLifecycle.selected_server_id) throw new Error("[SigningEngine][near] linked Ed25519 runtime identity changed");
2438
- }
2439
- }
2440
- const publicKey = `ed25519:${base58Encode(registeredPublicKey)}`;
2441
- return {
2442
- nearAccountId: context.input.nearAccountId,
2443
- signerSlot: signer.signerSlot,
2444
- kind: "threshold_ed25519_v1",
2445
- publicKey,
2446
- relayerKeyId: signingWorkerId,
2447
- keyVersion: NEAR_ED25519_YAO_KEY_VERSION_V1,
2448
- participants: buildThresholdEd25519Participants2pV1({
2449
- clientParticipantId: participantIds[0],
2450
- relayerParticipantId: participantIds[1],
2451
- relayerKeyId: signingWorkerId,
2452
- clientShareDerivation: "prf_first_v1"
2453
- }),
2454
- timestamp: authority.activatedAtMs
2455
- };
2456
- }
2457
- async resolveExactNearEd25519YaoPreparedMaterial(context, preparation) {
2458
- const expectedActivation = requireBoundNearEd25519YaoPreparationActivation({
2459
- context,
2460
- preparation
2461
- });
2462
- switch (preparation.hydration.kind) {
2463
- case "use_live_runtime": {
2464
- const capability = this.enginePorts.ed25519YaoActiveClients.resolve({
2465
- walletId: context.input.walletId,
2466
- nearAccountId: context.input.nearAccountId,
2467
- materialActivation: expectedActivation
2468
- });
2469
- if (!capability) throw new Error("[SigningEngine][near] active Ed25519 Yao capability is unavailable");
2470
- return validateExactNearEd25519YaoOperationMaterial({
2471
- material: capability,
2472
- input: context.input,
2473
- expectedActivation
2474
- });
2475
- }
2476
- case "rehydrate_material_activation": {
2477
- const args = requireAuthorizedNearEd25519BoundaryInput(context.input);
2478
- switch (args.auth.kind) {
2479
- case WALLET_AUTH_METHODS.passkey: {
2480
- const material = await this.rehydrateExactPasskeyEd25519YaoCapabilityForSigning(args);
2481
- try {
2482
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2483
- if (authorizationRead.kind !== "found" || authorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.passkey) throw new Error(`[SigningEngine][near] Wallet Session authorization is ${authorizationRead.kind}`);
2484
- const sealedRuntime = await requireExactEd25519SealedRuntimeForLane({
2485
- walletId: args.walletId,
2486
- laneIdentity: args.laneIdentity
2487
- });
2488
- await hydrateOwnerNearEd25519ExecutionLane({
2489
- input: args,
2490
- authorization: authorizationRead.authorization,
2491
- sealedRuntime,
2492
- material
2493
- });
2494
- return validateExactNearEd25519YaoOperationMaterial({
2495
- material,
2496
- input: args,
2497
- expectedActivation
2498
- });
2499
- } catch (error) {
2500
- material.activeClient.dispose();
2501
- throw error;
2502
- }
2503
- }
2504
- case WALLET_AUTH_METHODS.emailOtp: throw new Error("[SigningEngine][near] Email OTP custody cache is unavailable; link the device before signing");
2505
- default:
2506
- args.auth;
2507
- throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
2508
- }
2509
- }
2510
- case "reauthorize_public_anchor": throw new Error("[SigningEngine][near] retired material requires reauthorization");
2511
- case "blocked": throw new Error(`[SigningEngine][near] prepared material is blocked: ${preparation.hydration.reason}`);
2512
- default:
2513
- preparation.hydration;
2514
- throw new Error("[SigningEngine][near] unsupported prepared material hydration");
2515
- }
2516
- }
2517
- async resolveExactNearEd25519YaoWalletSessionState(context) {
2518
- const args = requireAuthorizedNearEd25519BoundaryInput(context.input);
2519
- if (args.auth.kind === WALLET_AUTH_METHODS.emailOtp) {
2520
- if (!context.materialActivation) throw new Error("[SigningEngine][near] prepared material has no activation");
2521
- const publicLane = await resolveExactEmailOtpPublicLaneReference({
2522
- store: this.ed25519YaoPublicCapabilityReferences,
2523
- laneIdentity: args.laneIdentity,
2524
- materialActivation: context.materialActivation
2525
- });
2526
- const material = this.enginePorts.ed25519YaoActiveClients.resolve({
2527
- walletId: args.walletId,
2528
- nearAccountId: args.nearAccountId,
2529
- materialActivation: context.materialActivation
2530
- });
2531
- if (!material) throw new Error("[SigningEngine][near] active Email OTP Ed25519 material is unavailable");
2532
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2533
- if (authorizationRead.kind !== "found" || authorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.emailOtp) throw new Error(`[SigningEngine][near] Wallet Session authorization is ${authorizationRead.kind}`);
2534
- return await emailOtpWalletSessionStateFromPublicLane({
2535
- reference: publicLane,
2536
- material: validateExactNearEd25519YaoOperationMaterial({
2537
- material,
2538
- input: args,
2539
- expectedActivation: context.materialActivation
2540
- }),
2541
- authorization: authorizationRead.authorization,
2542
- materialActivation: context.materialActivation,
2543
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2544
- });
2545
- }
2546
- const runtimeResolution = await resolveExactEd25519SealedSessionRuntimeForLane({
2547
- walletId: args.walletId,
2548
- laneIdentity: args.laneIdentity
2549
- });
2550
- if (runtimeResolution.kind === "missing" && args.auth.kind === WALLET_AUTH_METHODS.passkey) {
2551
- if (!context.materialActivation) throw new Error("[SigningEngine][near] prepared material has no activation");
2552
- const publicLane = await resolveExactPasskeyPublicLaneReference({
2553
- store: this.ed25519YaoPublicCapabilityReferences,
2554
- laneIdentity: args.laneIdentity
2555
- });
2556
- if (!mpcMaterialActivationRefsEqual(publicLane.materialActivation, context.materialActivation)) throw new Error("[SigningEngine][near] Passkey public lane activation changed");
2557
- const material = this.enginePorts.ed25519YaoActiveClients.resolve({
2558
- walletId: args.walletId,
2559
- nearAccountId: args.nearAccountId,
2560
- materialActivation: context.materialActivation
2561
- });
2562
- if (!material) throw new Error("[SigningEngine][near] active Passkey Ed25519 material is unavailable");
2563
- const exactMaterial = validateExactNearEd25519YaoOperationMaterial({
2564
- material,
2565
- input: args,
2566
- expectedActivation: context.materialActivation
2567
- });
2568
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(args.walletId);
2569
- if (authorizationRead.kind !== "found" || authorizationRead.authorization.selectedAuthMethod.kind !== WALLET_AUTH_METHODS.passkey) throw new Error(`[SigningEngine][near] Wallet Session authorization is ${authorizationRead.kind}`);
2570
- return await passkeyWalletSessionStateFromPublicLane({
2571
- reference: publicLane,
2572
- material: exactMaterial,
2573
- authorization: authorizationRead.authorization,
2574
- materialActivation: context.materialActivation,
2575
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2576
- });
2577
- }
2578
- if (runtimeResolution.kind !== "resolved") throw new Error(`[SigningEngine][near] exact persisted Ed25519 runtime is ${runtimeResolution.kind}`);
2579
- const runtime = runtimeResolution.runtime;
2580
- return await walletSessionStateFromExactEd25519Runtime({
2581
- runtime,
2582
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2583
- });
2584
- }
2585
- async resolveExactNearEd25519FundingSession(context) {
2586
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(context.input);
2587
- const authorizationRead = await this.readExactNearEd25519WalletSessionAuthorization(identity.signer.account.wallet.walletId);
2588
- if (authorizationRead.kind !== "found" || authorizationRead.authorization.selectedAuthMethod.kind !== identity.auth.kind) throw new Error("[SigningEngine][near] authenticated funding session is unavailable");
2589
- if (!context.materialActivation) throw new Error("[SigningEngine][near] funding session material activation is unavailable");
2590
- if (!nearEd25519SessionMatchesMaterialActivation({
2591
- session: authorizationRead.authorization.session,
2592
- materialActivation: context.materialActivation
2593
- })) throw new Error("[SigningEngine][near] authenticated funding session material changed");
2594
- const walletSessionToken = authorizationRead.authorization.operationCredential.token;
2595
- if (authorizationRead.authorization.session.walletId !== identity.signer.account.wallet.walletId || authorizationRead.authorization.selectedAuthMethod.kind !== identity.auth.kind || !authorizationRead.authorization.operationCredential.walletSessionId || !authorizationRead.authorization.session.quotaId) throw new Error("[SigningEngine][near] funding session identity does not match");
2596
- return {
2597
- kind: "near_ed25519_funding_session",
2598
- signer: identity.signer,
2599
- thresholdSessionId: identity.thresholdSessionId,
2600
- walletSessionToken
2601
- };
2602
- }
2603
- async prepareExactNearEd25519YaoOperationStepUpAtBoundary(context, preparation) {
2604
- if (nearEd25519PresentedAuthFromBoundaryInput(context.input).kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] Email OTP material cannot use Passkey rehydration");
2605
- const expectedActivation = requireBoundNearEd25519YaoPreparationActivation({
2606
- context,
2607
- preparation
2608
- });
2609
- const prepared = await this.prepareExactPasskeyEd25519YaoOperationStepUpForSigning(context.input);
2610
- if (!mpcMaterialActivationRefsEqual(expectedActivation, prepared.materialActivation)) throw new Error("[SigningEngine][near] operation step-up changed material activation");
2611
- return prepared;
2612
- }
2613
- async prepareExactNearEmailOtpEd25519YaoOperationStepUpAtBoundary(context, preparation) {
2614
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(context.input);
2615
- if (identity.auth.kind !== WALLET_AUTH_METHODS.emailOtp) throw new Error("[SigningEngine][near] Passkey material cannot use Email OTP rehydration");
2616
- const expectedActivation = requireBoundNearEd25519YaoPreparationActivation({
2617
- context,
2618
- preparation
2619
- });
2620
- switch (preparation.hydration.kind) {
2621
- case "use_live_runtime": return {
2622
- kind: "live",
2623
- materialActivation: expectedActivation,
2624
- material: await this.resolveExactNearEd25519YaoPreparedMaterial(context, preparation)
2625
- };
2626
- case "rehydrate_material_activation": {
2627
- const publicLane = await resolveExactEmailOtpPublicLaneReference({
2628
- store: this.ed25519YaoPublicCapabilityReferences,
2629
- laneIdentity: identity,
2630
- materialActivation: expectedActivation
2631
- });
2632
- const user = await this.getUserBySignerSlot(context.input.nearAccountId, identity.signer.signerSlot);
2633
- if (!user || String(user.walletId) !== String(context.input.walletId) || String(user.nearAccountId) !== String(context.input.nearAccountId) || user.signerSlot !== identity.signer.signerSlot || user.authMethod !== WALLET_AUTH_METHODS.emailOtp) throw new Error("[SigningEngine][near] Email OTP signer record is unavailable");
2634
- const sealed = await this.loadEmailOtpWalletCustodyEd25519Material({
2635
- nearAccountId: String(context.input.nearAccountId),
2636
- signerSlot: user.signerSlot
2637
- });
2638
- if (sealed.kind !== "found") throw new Error("[SigningEngine][near] Email OTP custody material is unavailable");
2639
- if (`ed25519:${base58Encode(base64UrlDecode(sealed.material.binding.registeredPublicKeyB64u))}` !== user.operationalPublicKey || sealed.material.binding.walletId !== String(context.input.walletId) || sealed.material.binding.nearAccountId !== String(context.input.nearAccountId) || sealed.material.binding.signerSlot !== user.signerSlot || sealed.material.binding.signingWorkerId !== String(expectedActivation.signingWorker)) throw new Error("[SigningEngine][near] Email OTP custody material binding changed");
2640
- const relayerUrl = this.seamsWebConfigs.network.relayer?.url || "";
2641
- if (!relayerUrl) throw new Error("[SigningEngine][near] Email OTP recovery requires a relay URL");
2642
- const recoveryContext = {
2643
- input: context.input,
2644
- materialActivation: expectedActivation,
2645
- facts: emailOtpEd25519OperationMaterialFacts({
2646
- input: context.input,
2647
- publicLane,
2648
- relayerUrl
2649
- }),
2650
- publicLane,
2651
- sealedMaterial: sealed.material,
2652
- operationalPublicKey: user.operationalPublicKey,
2653
- emailHashHex: await sha256HexUtf8(user.loginDisplayName.trim().toLowerCase())
2654
- };
2655
- return {
2656
- kind: "sealed",
2657
- materialActivation: expectedActivation,
2658
- facts: recoveryContext.facts,
2659
- authorizeAndRehydrate: this.authorizeAndRehydrateEmailOtpEd25519OperationMaterial.bind(this, recoveryContext)
2660
- };
2661
- }
2662
- case "reauthorize_public_anchor": throw new Error("[SigningEngine][near] retired Email OTP material cannot sign");
2663
- case "blocked": throw new Error(`[SigningEngine][near] Email OTP operation material is blocked: ${preparation.hydration.reason}`);
2664
- default:
2665
- preparation.hydration;
2666
- throw new Error("[SigningEngine][near] unsupported Email OTP operation material");
2667
- }
2668
- }
2669
- async authorizeAndRehydrateEmailOtpEd25519OperationMaterial(context, request) {
2670
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(context.input);
2671
- if (identity.auth.kind !== WALLET_AUTH_METHODS.emailOtp || request.proof.providerSubjectId !== identity.auth.providerSubjectId) throw new Error("[SigningEngine][near] Email OTP operation authority changed");
2672
- const operationCredential = await resolveExactNearEd25519WalletSessionOperationCredentialForStepUp({
2673
- walletId: context.input.walletId,
2674
- proof: request.proof
2675
- });
2676
- const operationSubject = {
2677
- kind: "exact_ed25519_export_material",
2678
- signer: identity.signer,
2679
- auth: identity.auth,
2680
- thresholdSessionId: identity.thresholdSessionId
2681
- };
2682
- const bootstrap = await resolveEmailOtpEd25519OperationRecoveryBootstrapV1({
2683
- subject: operationSubject,
2684
- expectedMaterialActivation: context.materialActivation,
2685
- authorization: await this.readExactEmailOtpEd25519ExportAuthorization({
2686
- subject: operationSubject,
2687
- expectedMaterialActivation: context.materialActivation
2688
- }),
2689
- source: {
2690
- signingWorkerId: context.sealedMaterial.binding.signingWorkerId,
2691
- participantIds: context.sealedMaterial.binding.participantIds,
2692
- registeredPublicKeyB64u: context.sealedMaterial.binding.registeredPublicKeyB64u
2693
- },
2694
- relayerUrl: context.facts.relayerUrl,
2695
- fetch: globalThis.fetch.bind(globalThis)
2696
- });
2697
- const recovered = await requestRehydrateEmailOtpEd25519YaoOperationMaterial({
2698
- workerCtx: this.signerWorkerManager.getContext(),
2699
- payload: {
2700
- relayUrl: context.facts.relayerUrl,
2701
- walletId: String(context.input.walletId),
2702
- orgId: context.publicLane.runtimePolicyScope.orgId,
2703
- providerSubjectId: identity.auth.providerSubjectId,
2704
- nearAccountId: String(context.input.nearAccountId),
2705
- signerSlot: context.publicLane.signerSlot,
2706
- expectedOperationalPublicKey: context.operationalPublicKey,
2707
- expectedThresholdSessionId: context.publicLane.thresholdSessionId,
2708
- expectedMaterialActivation: context.materialActivation,
2709
- ed25519YaoRecovery: {
2710
- kind: ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1,
2711
- signerSlot: context.publicLane.signerSlot,
2712
- remainingUses: DEFAULT_UNLOCK_REMAINING_USES,
2713
- orgId: context.publicLane.runtimePolicyScope.orgId
2714
- },
2715
- walletCustodyEd25519Material: {
2716
- kind: "found",
2717
- material: context.sealedMaterial
2718
- },
2719
- bootstrap,
2720
- normalSigningRequest: request.normalSigningRequest,
2721
- displayDigest: request.displayDigest,
2722
- proof: request.proof,
2723
- operationCredential
2724
- }
2725
- });
2726
- if (recovered.walletCustodyEd25519Material) try {
2727
- await this.persistWalletCustodyEd25519Material(recovered.walletCustodyEd25519Material);
2728
- } catch (error) {
2729
- await disposeWalletCustodyEd25519ActiveClientV1({
2730
- workerContext: this.signerWorkerManager.getContext(),
2731
- activeClientHandle: recovered.activeClientHandle
2732
- }).catch(() => void 0);
2733
- throw error;
2734
- }
2735
- const activeClient = new WalletCustodyEd25519ActiveClientV1(this.signerWorkerManager.getContext(), recovered.activeClientHandle, recovered.metadata);
2736
- let material;
2737
- try {
2738
- material = validateExactNearEd25519YaoOperationMaterial({
2739
- material: {
2740
- activeClient,
2741
- facts: context.facts
2742
- },
2743
- input: context.input,
2744
- expectedActivation: context.materialActivation
2745
- });
2746
- } catch (error) {
2747
- activeClient.dispose();
2748
- throw error;
2749
- }
2750
- return {
2751
- material,
2752
- issuedAuthorization: {
2753
- kind: recovered.issuedAuthorization.kind,
2754
- authorization: recovered.issuedAuthorization.authorization,
2755
- expiresAtMs: recovered.issuedAuthorization.expiresAtMs
2756
- }
2757
- };
2758
- }
2759
- async resolveExactNearEd25519YaoSigningHydration(input) {
2760
- const args = requireAuthorizedNearEd25519BoundaryInput(input.args);
2761
- switch (args.auth.kind) {
2762
- case WALLET_AUTH_METHODS.passkey: {
2763
- const resolved = await this.resolvePasskeyEd25519YaoHydration({
2764
- walletSessionState: input.walletSessionState,
2765
- credentialIdB64u: args.auth.credentialIdB64u,
2766
- publicLocator: input.publicLocator,
2767
- unlockSource: input.unlockSource
2768
- });
2769
- let hydration;
2770
- switch (resolved.kind) {
2771
- case "live":
2772
- case "blocked":
2773
- hydration = resolved.plan;
2774
- break;
2775
- case "rehydrated":
2776
- resolved.activeClient.dispose();
2777
- hydration = resolved.plan;
2778
- break;
2779
- default: throw new Error("[SigningEngine][near] unsupported Passkey hydration result");
2780
- }
2781
- if (hydration.kind === "blocked" && hydration.reason === "missing_material") return (await preparePasskeyEd25519YaoLocalMaterialRehydrationV1({
2782
- store: IndexedDBManager,
2783
- identity: ed25519YaoLocalMaterialIdentityFromWalletSession(input.walletSessionState, args.auth.rpId, args.auth.credentialIdB64u),
2784
- authority: input.walletSessionState.authority,
2785
- publicLocator: input.publicLocator
2786
- })).plan;
2787
- return hydration;
2788
- }
2789
- case WALLET_AUTH_METHODS.emailOtp:
2790
- if (input.publicLocator.kind !== "available") throw new Error("[SigningEngine][near] Email OTP custody locator is unavailable");
2791
- return await this.resolveWalletCustodyEmailOtpHydration({
2792
- walletId: args.walletId,
2793
- nearAccountId: args.nearAccountId,
2794
- identity: requireEmailOtpNearEd25519MaterialIdentity(nearEd25519MaterialIdentityFromBoundaryInput(args)),
2795
- signerSlot: args.laneIdentity.signer.signerSlot,
2796
- materialActivation: input.publicLocator.materialActivation
2797
- });
2798
- default:
2799
- args.auth;
2800
- throw new Error("[SigningEngine][near] unsupported Ed25519 material authority");
2801
- }
2802
- }
2803
- async prepareExactPasskeyEd25519YaoOperationStepUpForSigning(args) {
2804
- const identity = nearEd25519MaterialIdentityFromBoundaryInput(args);
2805
- if (identity.auth.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][near] Passkey operation step-up requires Passkey material");
2806
- if (!await this.resolveNearEd25519YaoSigningLane({ ...args.laneIdentity !== void 0 ? {
2807
- kind: "exact_lane",
2808
- laneIdentity: args.laneIdentity
2809
- } : {
2810
- kind: "material_identity",
2811
- materialIdentity: identity
2812
- } })) throw new Error("[SigningEngine][near] sealed Ed25519 operation lane is unavailable");
2813
- const material = await preparePasskeyEd25519OperationMaterial({
2814
- walletId: args.walletId,
2815
- identity,
2816
- relayerUrl: this.seamsWebConfigs.network.relayer.url
2817
- });
2818
- return {
2819
- materialActivation: material.prepared.plan.materialActivation,
2820
- facts: material.facts,
2821
- participantIds: [...material.participantIds],
2822
- rehydrate: this.rehydratePreparedPasskeyEd25519YaoOperationStepUp.bind(this, {
2823
- input: args,
2824
- identity: material.localIdentity,
2825
- facts: material.facts,
2826
- authority: material.authority,
2827
- rpId: identity.auth.rpId,
2828
- credentialIdB64u: identity.auth.credentialIdB64u,
2829
- publicLocator: material.publicLocator,
2830
- materialActivation: material.prepared.plan.materialActivation
2831
- })
2832
- };
2833
- }
2834
- async rehydratePreparedPasskeyEd25519YaoOperationStepUp(prepared, credential) {
2835
- if (String(credential.rawId || credential.id || "").trim() !== prepared.credentialIdB64u) throw invalidWalletSigningMaterial("binding_mismatch");
2836
- const secretSource = buildThresholdEd25519WebAuthnPrfSecretSource({
2837
- credential,
2838
- rpId: prepared.rpId
2839
- });
2840
- const hydrated = await hydrateExactPasskeyEd25519YaoLocalMaterial({
2841
- store: IndexedDBManager,
2842
- identity: prepared.identity,
2843
- authority: prepared.authority,
2844
- publicLocator: prepared.publicLocator,
2845
- unlockSource: {
2846
- kind: "available",
2847
- passkeyPrfFirstB64u: secretSource.secretSource.prfFirstB64u
2848
- },
2849
- liveMaterial: null
2850
- });
2851
- if (hydrated.kind === "blocked") throw walletSigningMaterialBlockError(hydrated.plan.reason);
2852
- if (hydrated.kind !== "rehydrated") throw invalidWalletSigningMaterial("corrupt");
2853
- if (!mpcMaterialActivationRefsEqual(prepared.materialActivation, hydrated.plan.materialActivation)) {
2854
- hydrated.activeClient.dispose();
2855
- throw invalidWalletSigningMaterial("binding_mismatch");
2856
- }
2857
- const material = {
2858
- activeClient: hydrated.activeClient,
2859
- facts: prepared.facts
2860
- };
2861
- try {
2862
- return validateExactNearEd25519YaoOperationMaterial({
2863
- material,
2864
- input: prepared.input,
2865
- expectedActivation: prepared.materialActivation
2866
- });
2867
- } catch {
2868
- material.activeClient.dispose();
2869
- throw invalidWalletSigningMaterial("binding_mismatch");
2870
- }
2871
- }
2872
- async resolveExactPasskeyEd25519YaoExportContext(args) {
2873
- const relayerUrl = String(this.seamsWebConfigs.network.relayer?.url || "").trim();
2874
- if (!relayerUrl) throw new Error("[SigningEngine][ed25519-export] passkey export requires relayerUrl");
2875
- const walletId = toWalletId(String(args.laneIdentity.signer.account.wallet.walletId));
2876
- if (!await readExactEd25519SealedSession(ed25519DurableMaterialLocator({
2877
- authMethod: args.laneIdentity.auth.kind,
2878
- materialActivation: args.materialActivation
2879
- }))) return await this.resolveLinkedPasskeyEd25519YaoExportContext({
2880
- ...args,
2881
- walletId,
2882
- relayerUrl
2883
- });
2884
- const runtime = await requireExactEd25519SealedRuntimeForMaterialActivation({
2885
- walletId,
2886
- laneIdentity: args.laneIdentity,
2887
- materialActivation: args.materialActivation
2888
- });
2889
- let thresholdSessionId = args.laneIdentity.thresholdSessionId;
2890
- if (await resolveActiveEd25519WalletSessionAuthorization(runtime.walletId, relayerUrl)) {
2891
- const walletSessionState = await walletSessionStateFromExactEd25519Runtime({
2892
- runtime,
2893
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
2894
- });
2895
- if ((await this.ensurePasskeyEd25519WarmSessionForSigning({
2896
- runtime,
2897
- walletSessionState,
2898
- materialActivation: args.materialActivation
2899
- })).ok) thresholdSessionId = walletSessionState.thresholdSessionId;
2900
- }
2901
- return await resolvePasskeyEd25519YaoExportContextV1({
2902
- subject: {
2903
- kind: "owner_sealed_runtime",
2904
- walletId: toWalletId(String(args.laneIdentity.signer.account.wallet.walletId)),
2905
- nearAccountId: String(args.laneIdentity.signer.account.nearAccountId),
2906
- nearEd25519SigningKeyId: String(args.laneIdentity.signer.nearEd25519SigningKeyId),
2907
- signerSlot: args.laneIdentity.signer.signerSlot,
2908
- thresholdSessionId,
2909
- materialActivation: args.materialActivation
2910
- },
2911
- relayerUrl,
2912
- fetch: fetchWithGlobalThis
2913
- }, {
2914
- readExactEd25519SealedSession,
2915
- readPasskeyCustodySessionEnvelope,
2916
- resolveSelectedWalletAuthority: IndexedDBManager.resolveSelectedWalletAuthority.bind(IndexedDBManager),
2917
- readExactWalletSessionAuthorization: walletSessionAuthorizations.readExactActiveForWallet.bind(walletSessionAuthorizations),
2918
- resolveExactPasskeyWalletAuthAuthorityRef: resolveBrowserExactPasskeyWalletAuthAuthorityRef,
2919
- nowMs: this.runtimePorts.clock.nowMs
2920
- });
2921
- }
2922
- async resolveLinkedPasskeyEd25519YaoExportContext(args) {
2923
- if (args.laneIdentity.auth.kind !== WALLET_AUTH_METHODS.passkey) throw new Error("[SigningEngine][ed25519-export] linked export requires a Passkey lane");
2924
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(args.walletId));
2925
- if (selected.kind !== "resolved") {
2926
- const detail = selected.kind === "integrity_error" ? `: ${selected.reason}` : "";
2927
- throw new Error(`[SigningEngine][ed25519-export] selected Wallet Authority is ${selected.kind}${detail}`);
2928
- }
2929
- const { selection, authMethod, authority, signerMaterials, exportRoot } = selected;
2930
- if (selection.lockState !== "unlocked" || authMethod.kind !== WALLET_AUTH_METHODS.passkey || authMethod.status !== "active" || authority.state !== "active" || authority.provenance.kind !== "device_link" || String(authMethod.walletId) !== String(args.walletId) || authMethod.walletAuthorityId !== authority.authorityId || authMethod.walletAuthMethodId !== selection.walletAuthMethodId || String(authMethod.rpId) !== String(args.laneIdentity.auth.rpId) || authMethod.credentialIdB64u !== args.laneIdentity.auth.credentialIdB64u) throw new Error("[SigningEngine][ed25519-export] selected linked Passkey authority is unavailable");
2931
- const authorityActivation = authority.signerActivations.ed25519;
2932
- if (!authority.permissions.includes("export_keys") || !authorityActivation || !mpcMaterialActivationRefsEqual(authorityActivation.materialActivation, args.materialActivation) || !exportRoot) throw new Error("[SigningEngine][ed25519-export] selected authority has no exact Ed25519 export capability");
2933
- let linkedMaterial = null;
2934
- for (const candidate of signerMaterials) {
2935
- if (!isLinkedEd25519SignerMaterial(candidate) || candidate.authorityId !== authority.authorityId || candidate.walletAuthMethodId !== authMethod.walletAuthMethodId || !mpcMaterialActivationRefsEqual(candidate.materialActivation, args.materialActivation)) continue;
2936
- if (linkedMaterial) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 material is ambiguous");
2937
- linkedMaterial = candidate;
2938
- }
2939
- if (!linkedMaterial) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 material is unavailable");
2940
- const targetFactor = linkedMaterial.targetFactor;
2941
- if (targetFactor.kind !== WALLET_AUTH_METHODS.passkey || targetFactor.walletAuthMethodId !== authMethod.walletAuthMethodId || targetFactor.rpId !== authMethod.rpId || targetFactor.credentialIdB64u !== authMethod.credentialIdB64u) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 factor binding changed");
2942
- const exactSession = exactWalletSessionWithOperationCredentialOrThrow(await walletSessionAuthorizations.readExactWithOperationCredential({
2943
- walletId: args.walletId,
2944
- authorityId: authority.authorityId,
2945
- authMethodId: authMethod.walletAuthMethodId
2946
- }), "[SigningEngine][ed25519-export] exact linked Wallet Session requires a newer client");
2947
- let exactExportSubject = false;
2948
- if (exactSession) {
2949
- for (const subject of exactSession.record.capabilitySubjects) if (subject.kind === "export_keys" && subject.keyFamily === "ed25519" && mpcMaterialActivationRefsEqual(subject.materialActivation, args.materialActivation)) {
2950
- exactExportSubject = true;
2951
- break;
2952
- }
2953
- }
2954
- if (!exactSession || !exactExportSubject || exactSession.record.authorityDigestB64u !== authority.authorityDigestB64u || exactSession.record.authorityRevocationEpoch !== authority.revocationEpoch || exactSession.record.expiresAtMs <= Date.now()) throw new Error("[SigningEngine][ed25519-export] exact linked Wallet Session is unavailable");
2955
- const publicLane = await resolveExactPasskeyPublicLaneReference({
2956
- store: this.ed25519YaoPublicCapabilityReferences,
2957
- laneIdentity: args.laneIdentity
2958
- });
2959
- if (!mpcMaterialActivationRefsEqual(publicLane.materialActivation, args.materialActivation)) throw new Error("[SigningEngine][ed25519-export] linked public lane activation changed");
2960
- const factorAuthority = await walletAuthAuthorityRef({ authority: {
2961
- walletId: authMethod.walletId,
2962
- factor: {
2963
- kind: WALLET_AUTH_METHODS.passkey,
2964
- credentialIdB64u: authMethod.credentialIdB64u
2965
- },
2966
- verifier: {
2967
- kind: "webauthn",
2968
- rpId: authMethod.rpId
2969
- },
2970
- bindingId: authMethod.walletAuthMethodId
2971
- } });
2972
- if (factorAuthority.walletAuthMethodId !== authMethod.walletAuthMethodId) throw new Error("[SigningEngine][ed25519-export] Passkey Wallet Session authority changed");
2973
- const activeMaterial = this.enginePorts.ed25519YaoActiveClients.resolve({
2974
- walletId: args.walletId,
2975
- nearAccountId: args.laneIdentity.signer.account.nearAccountId,
2976
- materialActivation: args.materialActivation
2977
- });
2978
- if (!activeMaterial || activeMaterial.activeClient.status().kind !== "active") throw new Error("[SigningEngine][ed25519-export] linked Ed25519 runtime is unavailable");
2979
- const metadata = activeMaterial.activeClient.metadata();
2980
- const metadataActivation = nearEd25519YaoMaterialActivationFromMetadata(metadata);
2981
- const facts = activeMaterial.facts;
2982
- const signer = args.laneIdentity.signer;
2983
- const application = linkedMaterial.publicFacts.applicationBinding;
2984
- const registeredPublicKeyB64u = base64UrlEncode(metadata.registeredPublicKey);
2985
- const stateEpoch = Number(metadata.stateEpoch);
2986
- const parsedThresholdSessionId = parseThresholdEd25519SessionId(metadata.scope.threshold_session_id);
2987
- const runtimeScope = facts.runtimePolicyScope;
2988
- const laneScope = publicLane.runtimePolicyScope;
2989
- if (!parsedThresholdSessionId.ok || !Number.isSafeInteger(stateEpoch) || stateEpoch < 1 || !mpcMaterialActivationRefsEqual(metadataActivation, args.materialActivation) || String(facts.thresholdSessionId) !== String(args.laneIdentity.thresholdSessionId) || String(facts.signer.account.wallet.walletId) !== String(args.walletId) || String(facts.signer.account.nearAccountId) !== String(signer.account.nearAccountId) || String(facts.signer.nearEd25519SigningKeyId) !== String(signer.nearEd25519SigningKeyId) || facts.signer.signerSlot !== signer.signerSlot || application.wallet_id !== String(args.walletId) || application.near_ed25519_signing_key_id !== String(signer.nearEd25519SigningKeyId) || application.key_creation_signer_slot !== signer.signerSlot || metadata.applicationBinding.wallet_id !== application.wallet_id || metadata.applicationBinding.near_ed25519_signing_key_id !== application.near_ed25519_signing_key_id || metadata.applicationBinding.signing_root_id !== application.signing_root_id || metadata.applicationBinding.key_creation_signer_slot !== application.key_creation_signer_slot || metadata.scope.lifecycle_id !== linkedMaterial.publicFacts.targetBinding.lifecycle.lifecycle_id || metadata.scope.root_share_epoch !== linkedMaterial.publicFacts.targetBinding.lifecycle.root_share_epoch || metadata.scope.account_id !== String(args.walletId) || metadata.scope.threshold_session_id !== String(args.laneIdentity.thresholdSessionId) || metadata.scope.signing_worker_id !== facts.routerAbNormalSigning.signingWorkerId || facts.signingRootId !== application.signing_root_id || facts.signingRootVersion !== metadata.scope.root_share_epoch || runtimeScope.orgId !== laneScope.orgId || runtimeScope.projectId !== laneScope.projectId || runtimeScope.envId !== laneScope.envId || runtimeScope.signingRootVersion !== laneScope.signingRootVersion || linkedMaterial.publicFacts.participantIds[0] !== metadata.participantIds[0] || linkedMaterial.publicFacts.participantIds[1] !== metadata.participantIds[1] || base64UrlEncode(Uint8Array.from(linkedMaterial.publicFacts.activationReceipt.registered_public_key)) !== registeredPublicKeyB64u || authorityActivation.signer.registeredPublicKeyB64u !== registeredPublicKeyB64u) throw new Error("[SigningEngine][ed25519-export] linked Ed25519 runtime identity changed");
2990
- const material = {
2991
- authority: factorAuthority,
2992
- walletId: signer.account.wallet.walletId,
2993
- nearAccountId: signer.account.nearAccountId,
2994
- nearEd25519SigningKeyId: String(signer.nearEd25519SigningKeyId),
2995
- signerSlot: signer.signerSlot,
2996
- operationalPublicKey: `ed25519:${base58Encode(metadata.registeredPublicKey)}`,
2997
- relayerKeyId: metadata.scope.signing_worker_id,
2998
- credentialIdB64u: authMethod.credentialIdB64u,
2999
- capability: {
3000
- materialActivation: metadataActivation,
3001
- activeCapabilityBinding: [...metadata.activeCapabilityBinding],
3002
- registeredPublicKey: [...metadata.registeredPublicKey],
3003
- nearAccountId: signer.account.nearAccountId,
3004
- applicationBinding: metadata.applicationBinding,
3005
- participantIds: metadata.participantIds,
3006
- runtimePolicyScope: facts.runtimePolicyScope,
3007
- lifecycle: {
3008
- lifecycleId: metadata.scope.lifecycle_id,
3009
- rootShareEpoch: metadata.scope.root_share_epoch,
3010
- accountId: metadata.scope.account_id,
3011
- thresholdSessionId: parsedThresholdSessionId.value,
3012
- signerSetId: metadata.scope.signer_set_id,
3013
- signingWorkerId: metadata.scope.signing_worker_id
3014
- },
3015
- stateEpoch
3016
- }
3017
- };
3018
- return {
3019
- kind: "ready",
3020
- context: {
3021
- kind: "passkey_ed25519_yao_export_context_v1",
3022
- selectedLaneMaterialActivation: args.materialActivation,
3023
- material,
3024
- authorization: exactSession,
3025
- relayerUrl: args.relayerUrl,
3026
- rpId: authMethod.rpId,
3027
- walletCustodyEnvelope: exportRoot.envelope
3028
- }
3029
- };
3030
- }
3031
- readExactEmailOtpEd25519ExportAuthorization(args) {
3032
- return readExactEmailOtpEd25519ExportAuthorization({
3033
- subject: args.subject,
3034
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
3035
- });
3036
- }
3037
- async activateRecoveredEmailOtpEd25519ExportCapability(lane, request) {
3038
- const activation = request.activation;
3039
- await this.activateEmailOtpEd25519CustodyCapabilityWithExactCredential({
3040
- commitQueue: "acquire",
3041
- walletSession: {
3042
- walletId: lane.signer.account.wallet.walletId,
3043
- walletSessionUserId: String(lane.signer.account.wallet.walletId)
3044
- },
3045
- providerSubject: lane.auth.providerSubjectId,
3046
- emailHashHex: activation.emailHashHex,
3047
- signerSlot: lane.signer.signerSlot,
3048
- expectedOperationalPublicKey: `ed25519:${base58Encode(activation.metadata.registeredPublicKey)}`,
3049
- expectedThresholdSessionId: String(lane.thresholdSessionId),
3050
- bootstrap: activation.bootstrap,
3051
- activeClientHandle: activation.activeClientHandle,
3052
- metadata: activation.metadata,
3053
- credentialExpectation: {
3054
- kind: "expect_exact_operation_credential",
3055
- operationCredential: request.operationCredential
3056
- }
3057
- });
3058
- }
3059
- async resolveEmailOtpEd25519YaoExportContext(args) {
3060
- return await resolveWalletCustodyEd25519ExportContextV1({
3061
- subject: args.laneIdentity,
3062
- expectedMaterialActivation: args.materialActivation,
3063
- readExactWalletSessionAuthorization: this.readExactEmailOtpEd25519ExportAuthorization.bind(this),
3064
- resolveActiveCapability: (walletId, nearAccountId, materialActivation) => this.enginePorts.ed25519YaoActiveClients.resolve({
3065
- walletId,
3066
- nearAccountId: toAccountId(nearAccountId),
3067
- materialActivation
3068
- }),
3069
- resolveEd25519YaoClientRootEnvelope: async ({ subject, capability, selectedMaterialActivation }) => resolveSelectedEmailOtpEd25519ExportRootV1({
3070
- selected: await IndexedDBManager.resolveSelectedWalletAuthority(String(subject.signer.account.wallet.walletId)),
3071
- subject,
3072
- expectedMaterialActivation: selectedMaterialActivation,
3073
- activeCapability: capability
3074
- }),
3075
- loadWalletCustodyMaterial: () => this.loadEmailOtpWalletCustodyEd25519Material({
3076
- nearAccountId: String(args.laneIdentity.signer.account.nearAccountId),
3077
- signerSlot: args.laneIdentity.signer.signerSlot
3078
- }),
3079
- relayerUrl: this.seamsWebConfigs.network.relayer?.url || "",
3080
- fetch: fetchWithGlobalThis,
3081
- activateRecoveredCapability: this.activateRecoveredEmailOtpEd25519ExportCapability.bind(this, args.laneIdentity)
3082
- });
3083
- }
3084
- async resolveActiveNearEd25519YaoSigningLane(subject) {
3085
- if (!await this.resolveNearEd25519YaoSigningLane(subject)) return null;
3086
- const identity = nearEd25519CapabilityRehydrationMaterialIdentity(subject);
3087
- const capability = subject.kind === "export_exact_lane" ? this.enginePorts.ed25519YaoActiveClients.resolve({
3088
- walletId: identity.signer.account.wallet.walletId,
3089
- nearAccountId: identity.signer.account.nearAccountId,
3090
- materialActivation: subject.materialActivation
3091
- }) : this.enginePorts.ed25519YaoActiveClients.resolveForWalletAccount({
3092
- walletId: identity.signer.account.wallet.walletId,
3093
- nearAccountId: identity.signer.account.nearAccountId
3094
- });
3095
- return capability?.activeClient.status().kind === "active" ? capability : null;
3096
- }
3097
- async resolveNearEd25519YaoSigningLane(subject) {
3098
- const walletId = nearEd25519CapabilityRehydrationMaterialIdentity(subject).signer.account.wallet.walletId;
3099
- const availableLanes = await this.readPersistedAvailableSigningLanes({
3100
- walletId,
3101
- ownerScope: await this.resolveSelectedOwnerLaneScope(walletId)
3102
- });
3103
- const matches = [];
3104
- for (const lane of availableLanes.candidates.ed25519.near) {
3105
- if (!nearEd25519LaneMatchesCapabilityRehydrationSubject(lane, subject)) continue;
3106
- if (!isConcreteAvailableSigningLane(lane) || lane.curve !== "ed25519") continue;
3107
- matches.push(lane);
3108
- }
3109
- if (matches.length > 1) throw new Error("[SigningEngine][near] local Ed25519 material lane is ambiguous");
3110
- return matches[0] || null;
3111
- }
3112
- async ensurePasskeyEd25519WarmSessionForSigning(args) {
3113
- const claim = await ensurePasskeyEd25519WarmSessionForSigning({
3114
- ...args,
3115
- claimWarmSessionMaterial: this.passkeyMpcSession.claimWarmSessionMaterial.bind(this.passkeyMpcSession),
3116
- rehydrateWarmSessionMaterial: this.passkeyMpcSession.rehydrateWarmSessionMaterial.bind(this.passkeyMpcSession)
3117
- });
3118
- if (claim.ok && args.runtime.factor.kind === "passkey" && String(args.runtime.thresholdSessionId) !== String(args.walletSessionState.thresholdSessionId)) await persistPasskeyEd25519YaoSessionForRefresh({
3119
- persistence: this,
3120
- session: args.walletSessionState,
3121
- prfFirstB64u: claim.prfFirstB64u,
3122
- ed25519Restore: buildPasskeyEd25519RestoreMetadata({
3123
- rpId: args.runtime.factor.rpId,
3124
- nearAccountId: args.runtime.nearAccountId,
3125
- nearEd25519SigningKeyId: args.runtime.nearEd25519SigningKeyId,
3126
- relayerKeyId: args.runtime.relayerKeyId,
3127
- participantIds: args.runtime.participantIds,
3128
- runtimePolicyScope: args.runtime.runtimePolicyScope,
3129
- signerSlot: args.runtime.signerSlot,
3130
- routerAbNormalSigning: args.runtime.routerAbNormalSigning,
3131
- credentialIdB64u: args.runtime.factor.credentialIdB64u,
3132
- materialActivation: args.materialActivation
3133
- }),
3134
- materialActivation: args.materialActivation
3135
- });
3136
- return claim;
3137
- }
3138
- async rehydrateNearEd25519YaoCapabilityForSigning(subject) {
3139
- const identity = nearEd25519CapabilityRehydrationMaterialIdentity(subject);
3140
- const lane = await this.resolveNearEd25519YaoSigningLane(subject);
3141
- if (!lane) throw new Error("[SigningEngine][near] local Ed25519 material lane is unavailable");
3142
- let runtime;
3143
- if (subject.kind === "export_exact_lane") runtime = await requireExactEd25519SealedRuntimeForMaterialActivation({
3144
- walletId: identity.signer.account.wallet.walletId,
3145
- laneIdentity: subject.laneIdentity,
3146
- materialActivation: subject.materialActivation
3147
- });
3148
- else {
3149
- const laneIdentity = subject.kind === "exact_lane" ? subject.laneIdentity : exactEd25519LaneIdentityFromAvailableLane(lane);
3150
- runtime = await requireExactEd25519SealedRuntimeForLane({
3151
- walletId: identity.signer.account.wallet.walletId,
3152
- laneIdentity
3153
- });
3154
- }
3155
- const walletSessionState = await walletSessionStateFromExactEd25519Runtime({
3156
- runtime,
3157
- relayerUrl: String(this.seamsWebConfigs.network.relayer?.url || "").trim()
3158
- });
3159
- if (runtime.factor.kind !== "passkey") throw new Error("[SigningEngine][near] persisted Ed25519 credential is unavailable");
3160
- const credentialIdB64u = runtime.factor.credentialIdB64u;
3161
- const materialActivation = runtime.sealedRecord.ed25519Restore.materialActivation;
3162
- if (!mpcMaterialActivationRefsEqual(materialActivation, lane.materialActivation)) throw new Error("[SigningEngine][near] persisted Ed25519 material activation mismatch");
3163
- const warmSessionClaim = await this.ensurePasskeyEd25519WarmSessionForSigning({
3164
- runtime,
3165
- walletSessionState,
3166
- materialActivation
3167
- });
3168
- const publicLocator = {
3169
- kind: "available",
3170
- walletId: String(walletSessionState.signingLane.identity.signer.account.wallet.walletId),
3171
- nearAccountId: String(walletSessionState.signingLane.identity.signer.account.nearAccountId),
3172
- signerSlot: walletSessionState.signingLane.identity.signer.signerSlot,
3173
- materialActivation
3174
- };
3175
- const liveHydration = await this.resolvePasskeyEd25519YaoHydration({
3176
- walletSessionState,
3177
- credentialIdB64u,
3178
- publicLocator,
3179
- unlockSource: warmSessionClaim.ok ? {
3180
- kind: "available",
3181
- passkeyPrfFirstB64u: warmSessionClaim.prfFirstB64u
3182
- } : { kind: "unavailable" }
3183
- });
3184
- if (liveHydration.kind === "live") return subject;
3185
- if (liveHydration.kind === "rehydrated") {
3186
- if (!warmSessionClaim.ok) {
3187
- liveHydration.activeClient.dispose();
3188
- throw new Error("[SigningEngine][near] local material rehydration lost the PRF secret");
3189
- }
3190
- try {
3191
- await persistPasskeyEd25519YaoSessionForRefresh({
3192
- persistence: this,
3193
- session: walletSessionState,
3194
- prfFirstB64u: warmSessionClaim.prfFirstB64u,
3195
- ed25519Restore: buildPasskeyEd25519RestoreMetadata({
3196
- rpId: runtime.factor.rpId,
3197
- nearAccountId: runtime.nearAccountId,
3198
- nearEd25519SigningKeyId: runtime.nearEd25519SigningKeyId,
3199
- relayerKeyId: runtime.relayerKeyId,
3200
- participantIds: runtime.participantIds,
3201
- runtimePolicyScope: runtime.runtimePolicyScope,
3202
- signerSlot: runtime.signerSlot,
3203
- routerAbNormalSigning: runtime.routerAbNormalSigning,
3204
- credentialIdB64u,
3205
- materialActivation
3206
- }),
3207
- materialActivation
3208
- });
3209
- await this.enginePorts.ed25519YaoActiveClients.activate({
3210
- activeClient: liveHydration.activeClient,
3211
- facts: nearEd25519YaoOperationMaterialFacts(walletSessionState)
3212
- });
3213
- const reboundSubject = currentNearEd25519CapabilityRehydrationSubject({
3214
- subject,
3215
- walletSessionState
3216
- });
3217
- if (!await this.resolveActiveNearEd25519YaoSigningLane(reboundSubject)) throw new Error("[SigningEngine][near] local material rehydration did not publish an active lane");
3218
- return reboundSubject;
3219
- } catch (error) {
3220
- liveHydration.activeClient.dispose();
3221
- throw error;
3222
- }
3223
- }
3224
- if (liveHydration.plan.reason !== "missing_material") throw new Error(`[SigningEngine][near] local threshold Ed25519 hydration blocked: ${liveHydration.plan.reason}`);
3225
- throw new Error("[SigningEngine][near] local threshold Ed25519 material requires Passkey reauthorization");
3226
- }
3227
- async resolvePasskeyEd25519YaoHydration(args) {
3228
- const signer = args.walletSessionState.signingLane.identity.signer;
3229
- return hydratePasskeyEd25519YaoLocalMaterialV1({
3230
- store: IndexedDBManager,
3231
- identity: ed25519YaoLocalMaterialIdentityFromWalletSession(args.walletSessionState, this.getRpId(), args.credentialIdB64u),
3232
- authority: args.walletSessionState.authority,
3233
- publicLocator: args.publicLocator,
3234
- unlockSource: args.unlockSource,
3235
- liveMaterial: args.publicLocator.kind === "available" ? this.enginePorts.ed25519YaoActiveClients.resolve({
3236
- walletId: signer.account.wallet.walletId,
3237
- nearAccountId: signer.account.nearAccountId,
3238
- materialActivation: args.publicLocator.materialActivation
3239
- }) : null
3240
- });
3241
- }
3242
- async signEvmFamily(args) {
3243
- return await signEvmFamily(this.enginePorts.tempoSigningDeps, args);
3244
- }
3245
- async reportTempoBroadcastAccepted(args) {
3246
- await reportTempoBroadcastAccepted(this.enginePorts.tempoSigningDeps, args);
3247
- }
3248
- async reportTempoBroadcastRejected(args) {
3249
- await reportTempoBroadcastRejected(this.enginePorts.tempoSigningDeps, args);
3250
- }
3251
- async reportTempoFinalized(args) {
3252
- await reportTempoFinalized(this.enginePorts.tempoSigningDeps, args);
3253
- }
3254
- async reportTempoDroppedOrReplaced(args) {
3255
- await reportTempoDroppedOrReplaced(this.enginePorts.tempoSigningDeps, args);
3256
- }
3257
- async reconcileTempoNonceLane(args) {
3258
- return await reconcileTempoNonceLane(this.enginePorts.tempoSigningDeps, args);
3259
- }
3260
- storeUserData(userData) {
3261
- return storeUserData(this.registrationPublicDeps, userData);
3262
- }
3263
- async storeNearThresholdKeyMaterial(input) {
3264
- await storeNearThresholdKeyMaterial({
3265
- clientDB: IndexedDBManager,
3266
- keyMaterialStore: IndexedDBManager
3267
- }, input);
3268
- }
3269
- getAllUsers() {
3270
- return getAllUsers(this.registrationPublicDeps);
3271
- }
3272
- getUserBySignerSlot(nearAccountId, signerSlot) {
3273
- return getUserBySignerSlot(this.registrationPublicDeps, nearAccountId, signerSlot);
3274
- }
3275
- getLastUser() {
3276
- return getLastUser(this.registrationPublicDeps);
3277
- }
3278
- nearAuthenticatorsByAccount(nearAccountId) {
3279
- return nearAuthenticatorsByAccount(this.registrationPublicDeps, nearAccountId);
3280
- }
3281
- setLastUser(walletId, signerSlot) {
3282
- return setLastUser(this.registrationPublicDeps, walletId, signerSlot);
3283
- }
3284
- activateAuthenticatedWalletState(args) {
3285
- return activateAuthenticatedWalletState(this.registrationPublicDeps, args);
3286
- }
3287
- async upsertEd25519YaoPublicCapabilityReference(identity) {
3288
- await this.ed25519YaoPublicCapabilityReferences.upsert(identity);
3289
- }
3290
- async upsertEd25519YaoPublicCapabilityLaneReference(reference) {
3291
- await publishEd25519YaoPublicCapabilityReferenceAndLane(this.ed25519YaoPublicCapabilityReferences, reference);
3292
- }
3293
- setWalletNearProvisioningState(write) {
3294
- return setWalletNearProvisioningState(this.registrationPublicDeps, write);
3295
- }
3296
- getWalletNearProvisioningState(walletId) {
3297
- return getWalletNearProvisioningState(this.registrationPublicDeps, walletId);
3298
- }
3299
- storeAuthenticator(authenticatorData) {
3300
- return storeAuthenticator(this.registrationPublicDeps, authenticatorData);
3301
- }
3302
- rollbackUserRegistration(nearAccountId) {
3303
- return rollbackUserRegistration(this.registrationPublicDeps, nearAccountId);
3304
- }
3305
- hasPasskeyCredential(nearAccountId) {
3306
- return hasPasskeyCredential(this.registrationPublicDeps, nearAccountId);
3307
- }
3308
- storeWalletEd25519RegistrationData(input) {
3309
- return storeWalletEd25519RegistrationData(this.registrationPublicDeps, input);
3310
- }
3311
- storeWalletMixedRegistrationData(input) {
3312
- return storeWalletMixedRegistrationData(this.registrationPublicDeps, input);
3313
- }
3314
- storeWalletEd25519RecoveryRegistrationData(input) {
3315
- return storeWalletEd25519RecoveryRegistrationData(this.registrationPublicDeps, input);
3316
- }
3317
- storeWalletEmailOtpEd25519RegistrationData(input) {
3318
- return storeWalletEmailOtpEd25519RegistrationData(this.registrationPublicDeps, input);
3319
- }
3320
- storeWalletEmailOtpMixedRegistrationData(input) {
3321
- return storeWalletEmailOtpMixedRegistrationData(this.registrationPublicDeps, input);
3322
- }
3323
- finalizeWalletEd25519SignerRegistration(input) {
3324
- return finalizeWalletEd25519SignerRegistration(this.registrationPublicDeps, input);
3325
- }
3326
- rollbackWalletEd25519SignerRegistration(receipt) {
3327
- return rollbackWalletEd25519SignerRegistration(this.registrationPublicDeps, receipt);
3328
- }
3329
- createRouterAbEcdsaRegistrationCeremony(input) {
3330
- return this.runtimePorts.signerCrypto.createRouterAbEcdsaRegistrationCeremony(input);
3331
- }
3332
- verifyRouterAbEcdsaRegistrationClientProofs(input) {
3333
- return this.runtimePorts.signerCrypto.verifyRouterAbEcdsaRegistrationClientProofs(input);
3334
- }
3335
- persistInitialCanonicalEcdsaActivation(input) {
3336
- return this.runtimePorts.signerCrypto.persistInitialCanonicalEcdsaActivation(input);
3337
- }
3338
- finalizeRouterAbEcdsaRegistrationActivation(input) {
3339
- return this.runtimePorts.signerCrypto.finalizeRouterAbEcdsaRegistrationActivation(input);
3340
- }
3341
- closeRouterAbEcdsaRegistrationCeremony(input) {
3342
- return this.runtimePorts.signerCrypto.closeRouterAbEcdsaRegistrationCeremony(input);
3343
- }
3344
- finalizeWalletRegistrationEcdsaSessions(input) {
3345
- return finalizeWalletRegistrationEcdsaSessions(input);
3346
- }
3347
- storeWalletEcdsaSignerRecords(input) {
3348
- return storeWalletEcdsaSignerRecords(this.registrationPublicDeps, input);
3349
- }
3350
- storeWalletEcdsaRecoverySignerRecords(input) {
3351
- return storeWalletEcdsaRecoverySignerRecords(this.registrationPublicDeps, input);
3352
- }
3353
- storeWalletEmailOtpEcdsaSignerRecords(input) {
3354
- return storeWalletEmailOtpEcdsaSignerRecords(this.registrationPublicDeps, input);
3355
- }
3356
- finalizeWalletEcdsaRegistration(input) {
3357
- return finalizeWalletEcdsaRegistration(this.registrationPublicDeps, input);
3358
- }
3359
- async activateVerifiedNearEd25519YaoMaterial(material) {
3360
- return await this.enginePorts.ed25519YaoActiveClients.activate(material);
3361
- }
3362
- async withExactEd25519MaterialOwner(args) {
3363
- return await withThresholdEd25519CommitQueue({
3364
- queueByKey: this.thresholdEd25519CommitQueueByKey,
3365
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.materialActivation }),
3366
- nearAccountId: args.nearAccountId,
3367
- enabled: true,
3368
- task: args.task
3369
- });
3370
- }
3371
- storeWalletEmailOtpEcdsaRegistrationData(input) {
3372
- return storeWalletEmailOtpEcdsaRegistrationData(this.registrationPublicDeps, input);
3373
- }
3374
- prepareSigningSessionHydration(input) {
3375
- return this.passkeyMpcSession.prepareSigningSessionHydration(input);
3376
- }
3377
- readPreparedSigningSessionHydration(input) {
3378
- return this.passkeyMpcSession.readPreparedSigningSessionHydration(input);
3379
- }
3380
- discardSigningSessionHydration(input) {
3381
- return this.passkeyMpcSession.discardSigningSessionHydration(input);
3382
- }
3383
- hydrateSigningSession(input) {
3384
- return hydrateSigningSession(this.warmCapabilitiesPublicDeps, input);
3385
- }
3386
- persistSigningSessionSealForThresholdSession(input) {
3387
- return this.passkeyMpcSession.persistSigningSessionSealForThresholdSession(input);
3388
- }
3389
- /**
3390
- * Collects the one-time email code inside the wallet.
3391
- *
3392
- * Built on the same confirmation channel key export uses, so the code is
3393
- * typed into the wallet's own surface and never passes through the host
3394
- * application — the reason `addEmailOtp` takes an address and not a code.
3395
- */
3396
- async requestEmailOtpEnrollmentConfirmation(params) {
3397
- let currentChallengeId = params.challengeId;
3398
- const emailOtpPrompt = {
3399
- challengeId: params.challengeId,
3400
- ...params.emailHint ? { emailHint: params.emailHint } : {},
3401
- title: params.confirmerText?.title || "Enter email code to add sign-in",
3402
- body: params.confirmerText?.body || `This one-time code confirms ${params.emailAddress} can unlock this wallet.`,
3403
- helperText: "Enter the 6-digit code sent to your email",
3404
- onResend: async () => {
3405
- const resent = await params.onResend();
3406
- currentChallengeId = resent.challengeId;
3407
- return {
3408
- challengeId: resent.challengeId,
3409
- ...resent.emailHint ? { emailHint: resent.emailHint } : {},
3410
- delivery: { mode: "email_provider" }
3411
- };
3412
- }
3413
- };
3414
- const decision = await this.touchConfirm.requestUserConfirmation({
3415
- requestId: secureRandomId("add-auth-method-email-otp", 32, "Email OTP enrollment UI ids"),
3416
- type: UserConfirmationType.SIGN_INTENT_DIGEST,
3417
- summary: {
3418
- type: "add_auth_method",
3419
- operation: "Add email code sign-in",
3420
- title: emailOtpPrompt.title,
3421
- body: emailOtpPrompt.body,
3422
- warning: "Security note: Adding email code lowers this wallet’s security because your inbox becomes another way to unlock it."
3423
- },
3424
- payload: {
3425
- signingSubject: {
3426
- kind: "evm_wallet",
3427
- walletId: params.walletId
3428
- },
3429
- challengeB64u: params.challengeId,
3430
- signingAuthPlan: {
3431
- kind: SigningAuthPlanKind.EmailOtpReauth,
3432
- method: "email_otp",
3433
- emailOtpPrompt
3434
- },
3435
- emailOtpPrompt
3436
- },
3437
- intentDigest: `add-auth-method:${params.walletId}:email-otp`,
3438
- ...params.confirmationConfigOverride ? { confirmationConfigOverride: params.confirmationConfigOverride } : {}
3439
- });
3440
- if (!decision.confirmed) throw new Error(decision.error || "Adding an email code was cancelled");
3441
- const otpCode = String(decision.otpCode || "").replace(/\D/g, "").slice(0, 6);
3442
- if (otpCode.length !== 6) throw new Error("Adding an email code requires a 6-digit code");
3443
- return {
3444
- challengeId: String(decision.emailOtpChallengeId || currentChallengeId).trim(),
3445
- otpCode
3446
- };
3447
- }
3448
- requestRegistrationCredentialConfirmation(params) {
3449
- return requestRegistrationCredentialConfirmation(this.registrationPublicDeps, params);
3450
- }
3451
- openRegistrationPreparationModal(params) {
3452
- return this.touchConfirm.openRegistrationPreparationModal(params);
3453
- }
3454
- closeRegistrationPreparationModal() {
3455
- this.touchConfirm.closeRegistrationPreparationModal();
3456
- }
3457
- startPreparedPasskeyRegistrationCredential(args) {
3458
- if (this.touchIdPrompt.getRpId() !== args.expectedRpId) throw new Error("Prepared registration rpId does not match the wallet runtime");
3459
- return this.touchIdPrompt.generateRegistrationCredentialsInternal({
3460
- kind: "wallet_registration",
3461
- walletId: args.walletId,
3462
- challengeB64u: args.challengeB64u,
3463
- signerSlot: args.signerSlot,
3464
- intendedUserName: args.walletId,
3465
- prompt: {
3466
- kind: "reserved",
3467
- reservation: args.reservation,
3468
- owner: args.owner,
3469
- cancellation: args.cancellation
3470
- }
3471
- }).then(serializePreparedRegistrationCredential);
3472
- }
3473
- getAuthenticationCredentialsSerialized(args) {
3474
- if (args.cancellation) return this.touchIdPrompt.getAuthenticationCredentialsSerializedForChallengeB64u(args);
3475
- return getAuthenticationCredentialsSerialized(this.registrationPublicDeps, args);
3476
- }
3477
- async exportKeypairWithUI(input) {
3478
- return await exportKeypairWithUI(this.recoveryPublicDeps, input);
3479
- }
3480
- async resolveExactKeyExportLane(input) {
3481
- return await resolveExactKeyExportLane(this.recoveryPublicDeps, input);
3482
- }
3483
- async connectEd25519Session(args) {
3484
- return await connectEd25519Session(this.passkeyPublicDeps, args);
3485
- }
3486
- async bootstrapEcdsaSession(args) {
3487
- return await bootstrapEcdsaSession(this.passkeyPublicDeps, args);
3488
- }
3489
- async loginWithEmailOtpEcdsaCapabilityInternal(args) {
3490
- return await loginWithEmailOtpEcdsaCapabilityInternal(this.emailOtpPublicDeps, args);
3491
- }
3492
- async resolveEmailOtpEd25519CustodyProjectionInternal(args) {
3493
- const walletId = String(args.walletSession.walletId);
3494
- let activation;
3495
- switch (args.selector.kind) {
3496
- case "material_activation":
3497
- activation = args.selector.materialActivation;
3498
- break;
3499
- case "wallet_auth_method": {
3500
- const selected = await IndexedDBManager.resolveWalletAuthorityForMethod(walletId, args.selector.walletAuthMethodId);
3501
- activation = selected.kind === "resolved" && selected.authority.state === "active" ? selected.authority.signerActivations.ed25519?.materialActivation : void 0;
3502
- break;
3503
- }
3504
- case "selected_wallet_authority": {
3505
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(walletId);
3506
- activation = selected.kind === "resolved" && selected.authority.state === "active" ? selected.authority.signerActivations.ed25519?.materialActivation : void 0;
3507
- break;
3508
- }
3509
- default: args.selector;
3510
- }
3511
- if (!activation) return null;
3512
- return await resolveWalletCustodyEd25519ProjectionV1({
3513
- listPublicCapabilityReferences: this.ed25519YaoPublicCapabilityReferences.list.bind(this.ed25519YaoPublicCapabilityReferences),
3514
- listUsers: this.getAllUsers.bind(this)
3515
- }, args.walletSession, args.providerSubjectId, activation);
3516
- }
3517
- /**
3518
- * What an owner authority needs to have its Ed25519 runtime built inside the
3519
- * unlock that verifies its factor.
3520
- *
3521
- * Assembled here rather than by the caller because every field is read off
3522
- * the exact authority projection - the identity, its runtime policy scope,
3523
- * and the custody material cached against that signer. A caller assembling
3524
- * them independently could pair one authority's identity with another's
3525
- * material.
3526
- */
3527
- async resolveOwnerAuthorityEd25519UnlockRequestInternal(args) {
3528
- const projection = await this.resolveEmailOtpEd25519CustodyProjectionInternal({
3529
- walletSession: args.walletSession,
3530
- providerSubjectId: args.providerSubjectId,
3531
- selector: {
3532
- kind: "wallet_auth_method",
3533
- walletAuthMethodId: args.walletAuthMethodId
3534
- }
3535
- });
3536
- if (!projection) return null;
3537
- const signerSlot = projection.user.signerSlot;
3538
- return {
3539
- kind: "owner_authority",
3540
- signerSlot,
3541
- remainingUses: args.remainingUses,
3542
- recovery: {
3543
- ed25519YaoRecovery: {
3544
- kind: ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1,
3545
- signerSlot,
3546
- remainingUses: args.remainingUses,
3547
- orgId: projection.identity.runtimePolicyScope.orgId
3548
- },
3549
- providerSubject: projection.providerSubject,
3550
- nearAccountId: String(projection.identity.nearAccountId),
3551
- expectedOperationalPublicKey: projection.user.operationalPublicKey,
3552
- expectedThresholdSessionId: String(projection.identity.thresholdSessionId),
3553
- walletCustodyEd25519Material: await this.loadEmailOtpWalletCustodyEd25519Material({
3554
- nearAccountId: String(projection.identity.nearAccountId),
3555
- signerSlot
3556
- })
3557
- }
3558
- };
3559
- }
3560
- /**
3561
- * Activate the runtime an owner authority's unlock built.
3562
- *
3563
- * The identity it is checked against comes from the same authority projection
3564
- * that produced the unlock request, not from the bootstrap being checked -
3565
- * comparing a value against itself proves nothing, and the projection is what
3566
- * says which signer this authority owns.
3567
- */
3568
- async activateOwnerAuthorityEd25519RuntimeInternal(args) {
3569
- const projection = await this.resolveEmailOtpEd25519CustodyProjectionInternal({
3570
- walletSession: args.walletSession,
3571
- providerSubjectId: args.providerSubjectId,
3572
- selector: {
3573
- kind: "wallet_auth_method",
3574
- walletAuthMethodId: args.walletAuthMethodId
3575
- }
3576
- });
3577
- if (!projection) throw new Error("Owner Email OTP Ed25519 activation has no signer projection");
3578
- await this.activateEmailOtpEd25519CustodyCapabilityInternal({
3579
- walletSession: args.walletSession,
3580
- providerSubject: projection.providerSubject,
3581
- emailHashHex: args.emailHashHex,
3582
- signerSlot: projection.user.signerSlot,
3583
- expectedOperationalPublicKey: projection.user.operationalPublicKey,
3584
- expectedThresholdSessionId: String(projection.identity.thresholdSessionId),
3585
- bootstrap: args.bootstrap,
3586
- activeClientHandle: args.activeClientHandle,
3587
- metadata: args.metadata,
3588
- authority: args.authority,
3589
- commitQueue: "acquire"
3590
- });
3591
- }
3592
- async activateEmailOtpEd25519RegistrationMaterialInternal(args) {
3593
- const activated = await this.signerWorkerManager.requestWorkerOperation({
3594
- kind: "emailOtp",
3595
- request: {
3596
- type: "activateEmailOtpEd25519YaoRegistrationMaterial",
3597
- payload: {
3598
- material: args.material,
3599
- bootstrap: args.bootstrap,
3600
- envelope: args.envelope,
3601
- factorSecret32: args.factorSecret32
3602
- },
3603
- transfer: [args.factorSecret32]
3604
- }
3605
- });
3606
- try {
3607
- const signer = await this.activateEmailOtpEd25519CustodyCapabilityInternal({
3608
- commitQueue: "acquire",
3609
- walletSession: args.walletSession,
3610
- providerSubject: args.providerSubject,
3611
- emailHashHex: args.emailHashHex,
3612
- signerSlot: args.signerSlot,
3613
- expectedOperationalPublicKey: args.expectedOperationalPublicKey,
3614
- expectedThresholdSessionId: args.expectedThresholdSessionId,
3615
- bootstrap: args.bootstrap,
3616
- activeClientHandle: activated.activeClientHandle,
3617
- metadata: activated.metadata
3618
- });
3619
- await resolveExactEmailOtpEd25519ActivationAuthorization({
3620
- walletId: args.walletSession.walletId,
3621
- emailHashHex: args.emailHashHex,
3622
- providerSubject: args.providerSubject,
3623
- bootstrap: args.bootstrap
3624
- });
3625
- return signer;
3626
- } catch (error) {
3627
- try {
3628
- await requestClearEmailOtpWarmSessionMaterial({
3629
- worker: this.signerWorkerManager.getContext(),
3630
- target: {
3631
- kind: "ed25519_yao",
3632
- thresholdSessionId: args.bootstrap.session.thresholdSessionId,
3633
- materialActivation: activated.metadata.materialActivation
3634
- }
3635
- });
3636
- } catch {}
3637
- try {
3638
- await disposeWalletCustodyEd25519ActiveClientV1({
3639
- workerContext: this.signerWorkerManager.getContext(),
3640
- activeClientHandle: activated.activeClientHandle
3641
- });
3642
- } catch {}
3643
- throw error;
3644
- }
3645
- }
3646
- async activateEmailOtpEd25519CustodyCapabilityInternal(args) {
3647
- return await this.activateEmailOtpEd25519CustodyCapabilityWithExactCredential({
3648
- ...args,
3649
- credentialExpectation: { kind: "resolve_exact_operation_credential" }
3650
- });
3651
- }
3652
- async activateEmailOtpEd25519CustodyCapabilityWithExactCredential(args) {
3653
- const exactAuthorization = await resolveExactEmailOtpEd25519ActivationAuthorization({
3654
- walletId: args.walletSession.walletId,
3655
- emailHashHex: args.emailHashHex,
3656
- providerSubject: args.providerSubject,
3657
- bootstrap: args.bootstrap,
3658
- ...args.authority ? { verifiedAuthority: args.authority } : {},
3659
- ...args.exactAuthorization ? { exactAuthorization: args.exactAuthorization } : {}
3660
- });
3661
- if (args.credentialExpectation.kind === "expect_exact_operation_credential" && (args.credentialExpectation.operationCredential.walletSessionId !== exactAuthorization.operationCredential.walletSessionId || args.credentialExpectation.operationCredential.token !== exactAuthorization.operationCredential.token)) throw new Error("[SigningEngine][near] expected Email OTP operation credential changed");
3662
- return await withThresholdEd25519CommitQueue({
3663
- queueByKey: this.thresholdEd25519CommitQueueByKey,
3664
- queueKey: resolveThresholdEd25519CommitQueueKey({ materialActivation: args.metadata.materialActivation }),
3665
- nearAccountId: toAccountId(args.bootstrap.session.nearAccountId),
3666
- enabled: args.commitQueue === "acquire",
3667
- task: async () => {
3668
- const activated = await activateWalletCustodyEd25519CapabilityV1({
3669
- walletSession: args.walletSession,
3670
- nearAccountId: args.bootstrap.session.nearAccountId,
3671
- providerSubject: args.providerSubject,
3672
- relayerUrl: this.seamsWebConfigs.network.relayer?.url || "",
3673
- authority: exactAuthorization.authority,
3674
- signerSlot: args.signerSlot,
3675
- expectedOperationalPublicKey: args.expectedOperationalPublicKey,
3676
- expectedThresholdSessionId: args.expectedThresholdSessionId,
3677
- bootstrap: args.bootstrap,
3678
- operationCredential: exactAuthorization.operationCredential,
3679
- activeClientHandle: args.activeClientHandle,
3680
- metadata: args.metadata,
3681
- workerContext: this.signerWorkerManager.getContext(),
3682
- activateCapability: this.enginePorts.ed25519YaoActiveClients.activate.bind(this.enginePorts.ed25519YaoActiveClients)
3683
- });
3684
- const state = activated.walletSessionState;
3685
- await this.upsertEd25519YaoPublicCapabilityLaneReference(emailOtpEd25519YaoLaneReferenceFromRecovery({
3686
- walletSessionState: state,
3687
- materialActivation: activated.material.activeClient.metadata().materialActivation
3688
- }));
3689
- if (!this.enginePorts.ed25519YaoActiveClients.resolve({
3690
- walletId: state.signingLane.identity.signer.account.wallet.walletId,
3691
- nearAccountId: state.signingLane.identity.signer.account.nearAccountId,
3692
- materialActivation: activated.material.activeClient.metadata().materialActivation
3693
- })) throw new Error("[SigningEngine][near] wallet custody activation was superseded");
3694
- return state.signingLane.identity.signer;
3695
- }
3696
- });
3697
- }
3698
- async loginWithEmailOtpWalletCustodyEd25519Internal(args) {
3699
- if (args.authoritySelector.kind !== "wallet_auth_method") throw new Error("Email OTP Ed25519 unlock requires an exact wallet auth method");
3700
- const walletAuthMethodId = args.authoritySelector.walletAuthMethodId;
3701
- const selection = args.ed25519Selection;
3702
- const unlock = await unlockEmailOtpEd25519YaoCapability({
3703
- walletSession: args.walletSession,
3704
- authoritySelector: args.authoritySelector,
3705
- relayUrl: this.seamsWebConfigs.network.relayer?.url || "",
3706
- groupId: SIGNING_SESSION_SEAL_GROUP_ID,
3707
- verification: {
3708
- kind: "otp",
3709
- challengeId: args.challengeId,
3710
- otpCode: args.otpCode
3711
- },
3712
- routePlan: buildFreshEmailOtpRoutePlan({
3713
- freshRouteFamily: "login",
3714
- operation: WALLET_EMAIL_OTP_UNLOCK_OPERATION
3715
- }),
3716
- workerCtx: this.signerWorkerManager.getContext(),
3717
- providerSubject: args.providerSubjectId,
3718
- signerSlot: selection.signerSlot,
3719
- remainingUses: args.remainingUses,
3720
- orgId: selection.runtimePolicyScope.orgId,
3721
- nearAccountId: selection.nearAccountId,
3722
- expectedOperationalPublicKey: selection.operationalPublicKey,
3723
- expectedThresholdSessionId: selection.thresholdSessionId,
3724
- walletCustodyEd25519Material: await this.loadEmailOtpWalletCustodyEd25519Material({
3725
- nearAccountId: selection.nearAccountId,
3726
- signerSlot: selection.signerSlot
3727
- })
3728
- });
3729
- if (unlock.kind === "wallet_custody_cache_absent") throw new Error("Email OTP wallet custody material is unavailable; recover with a recovery code");
3730
- try {
3731
- await persistVerifiedEmailOtpAuthorityAfterUnlock({
3732
- walletId: String(args.walletSession.walletId),
3733
- walletAuthMethodId,
3734
- projection: unlock.recovery.verifiedAuthorityProjection
3735
- });
3736
- const authority = await walletAuthAuthorityRefForVerifiedEmailOtpUnlock({
3737
- walletId: String(args.walletSession.walletId),
3738
- walletAuthMethodId,
3739
- providerSubject: args.providerSubjectId,
3740
- emailHashHex: args.emailHashHex,
3741
- projection: unlock.recovery.verifiedAuthorityProjection
3742
- });
3743
- if (unlock.walletCustodyEd25519Material) await this.persistWalletCustodyEd25519Material(unlock.walletCustodyEd25519Material);
3744
- await walletSessionAuthorizations.replaceExactActive({
3745
- active: unlock.walletSessionAuthorization.record,
3746
- operationCredential: unlock.walletSessionAuthorization.operationCredential
3747
- });
3748
- const signer = await this.activateEmailOtpEd25519CustodyCapabilityInternal({
3749
- commitQueue: "acquire",
3750
- walletSession: args.walletSession,
3751
- providerSubject: args.providerSubjectId,
3752
- emailHashHex: args.emailHashHex,
3753
- signerSlot: selection.signerSlot,
3754
- expectedOperationalPublicKey: selection.operationalPublicKey,
3755
- expectedThresholdSessionId: selection.thresholdSessionId,
3756
- bootstrap: unlock.ed25519YaoCapability,
3757
- activeClientHandle: unlock.activeClientHandle,
3758
- metadata: unlock.metadata,
3759
- authority,
3760
- exactAuthorization: unlock.walletSessionAuthorization
3761
- });
3762
- await establishUnlockedWalletEd25519ExportRootCapabilityV1(this.walletCustodyCeremonyTransportV1(), {
3763
- existingEnvelope: unlock.ed25519ExportRootCustody.existingEnvelope,
3764
- existingFactorSecret: unlock.ed25519ExportRootCustody.factorSecret32,
3765
- walletId: String(args.walletSession.walletId),
3766
- walletAuthMethodId: String(unlock.walletSessionAuthorization.record.authMethodId),
3767
- walletSessionId: String(unlock.walletSessionAuthorization.operationCredential.walletSessionId),
3768
- expiresAtMs: unlock.walletSessionAuthorization.record.expiresAtMs
3769
- });
3770
- return signer;
3771
- } catch (error) {
3772
- await disposeWalletCustodyEd25519ActiveClientV1({
3773
- workerContext: this.signerWorkerManager.getContext(),
3774
- activeClientHandle: unlock.activeClientHandle
3775
- }).catch(() => void 0);
3776
- throw error;
3777
- } finally {
3778
- unlock.ed25519ExportRootCustody.factorSecret32.fill(0);
3779
- }
3780
- }
3781
- async requestEmailOtpSigningSessionChallenge(args) {
3782
- return await requestEmailOtpSigningSessionChallenge(this.emailOtpPublicDeps, args);
3783
- }
3784
- async refreshEmailOtpSigningSession(args) {
3785
- return await refreshEmailOtpSigningSession(this.emailOtpPublicDeps, args);
3786
- }
3787
- async enrollEmailOtpInternal(args) {
3788
- return await enrollEmailOtpInternal(this.emailOtpPublicDeps, args);
3789
- }
3790
- async prepareEmailOtpRegistrationEnrollmentMaterialInternal(args) {
3791
- return await prepareEmailOtpRegistrationEnrollmentMaterialInternal(this.emailOtpPublicDeps, args);
3792
- }
3793
- async getWarmThresholdEd25519SessionStatus(args) {
3794
- const walletId = toWalletId(args.walletId);
3795
- const resolution = await resolveExactEd25519SealedSessionRuntimeForWalletSubject({
3796
- walletId,
3797
- nearAccountId: toAccountId(args.nearAccountId),
3798
- nearEd25519SigningKeyId: nearEd25519SigningKeyIdFromString(args.nearEd25519SigningKeyId)
3799
- });
3800
- if (resolution.kind === "missing") return null;
3801
- if (resolution.kind !== "resolved") throw new Error(`[WarmSessionStore] Ed25519 sealed runtime is ${resolution.kind}`);
3802
- const authorization = await this.resolveActiveNearEd25519WalletSessionAuthorization(walletId);
3803
- return await getWarmThresholdEd25519SessionStatus(this.warmCapabilitiesPublicDeps, {
3804
- runtime: resolution.runtime,
3805
- authorization,
3806
- nowMs: Date.now()
3807
- });
3808
- }
3809
- async scheduleRouterAbEcdsaDerivationLoginPresignaturePrefill(args, statusReads) {
3810
- const capabilities = await this.listPreprocessingCapabilities({
3811
- walletId: args.walletId,
3812
- chainTargets: [args.chainTarget]
3813
- }, statusReads);
3814
- const authorized = capabilities.length === 1 ? capabilities[0] : null;
3815
- if (!authorized) return {
3816
- status: "skipped",
3817
- reason: "exact_wallet_session_unavailable",
3818
- walletSessionId: null
3819
- };
3820
- return await scheduleRouterAbEcdsaDerivationLoginPresignaturePrefill(this.warmCapabilitiesPublicDeps, {
3821
- capability: authorized,
3822
- waitForPoolReady: args.waitForPoolReady
3823
- });
3824
- }
3825
- async clearVolatileWarmSigningMaterial(walletId) {
3826
- const cleanup = this.clearVolatileWarmSigningMaterialInternal(walletId);
3827
- this.volatileWarmSigningMaterialCleanupInFlight = cleanup;
3828
- try {
3829
- await cleanup;
3830
- } finally {
3831
- if (this.volatileWarmSigningMaterialCleanupInFlight === cleanup) this.volatileWarmSigningMaterialCleanupInFlight = null;
3832
- }
3833
- }
3834
- async deleteDurableEcdsaPresignatures(target) {
3835
- return await new IndexedDbEcdsaCapabilityManifestStore().deleteClientPresignatures(target);
3836
- }
3837
- async clearVolatileWarmSigningMaterialInternal(walletId) {
3838
- try {
3839
- if (walletId) this.enginePorts.ed25519YaoActiveClients.disposeWallet(walletId);
3840
- else this.enginePorts.ed25519YaoActiveClients.dispose();
3841
- } finally {
3842
- try {
3843
- await clearVolatileWarmSigningMaterial(this.warmCapabilitiesPublicDeps, walletId);
3844
- } finally {
3845
- try {
3846
- if (walletId === void 0) await this.clearLinkedEcdsaHolderMaterials();
3847
- else await this.clearLinkedEcdsaHolderMaterialsForWallet(walletId);
3848
- } finally {
3849
- await this.signerWorkerManager.clearEcdsaClientWorkerState(walletId === void 0 ? { kind: "all" } : {
3850
- kind: "wallet",
3851
- walletId
3852
- });
3853
- }
3854
- }
3855
- }
3856
- }
3857
- onSdkLifecycleEvent(listener) {
3858
- this.sdkLifecycleEventListeners.add(listener);
3859
- return this.removeSdkLifecycleEventListener.bind(this, listener);
3860
- }
3861
- publishSdkLifecycleEvent(event) {
3862
- const deliveryKey = sdkLifecycleEventDeliveryKey(event);
3863
- if (this.deliveredSdkLifecycleEventKeys.has(deliveryKey)) return;
3864
- this.deliveredSdkLifecycleEventKeys.add(deliveryKey);
3865
- for (const listener of Array.from(this.sdkLifecycleEventListeners)) listener(event);
3866
- }
3867
- publishNearProvisioningLifecycleEvent(walletId, state) {
3868
- this.publishSdkLifecycleEvent(createNearProvisioningStateChangedEvent({
3869
- walletId,
3870
- state
3871
- }));
3872
- }
3873
- removeSdkLifecycleEventListener(listener) {
3874
- this.sdkLifecycleEventListeners.delete(listener);
3875
- }
3876
- dispose() {
3877
- this.signingSessionLifecycleSubscription.unsubscribe();
3878
- this.nearProvisioningUnsubscribe();
3879
- this.sdkLifecycleEventListeners.clear();
3880
- this.deliveredSdkLifecycleEventKeys.clear();
3881
- this.ed25519YaoPageLifecycleOwner.dispose();
3882
- }
3883
- clearThresholdEcdsaSigningQueue() {
3884
- clearThresholdEcdsaSigningQueue(this.thresholdEcdsaSigningQueueByKey);
3885
- }
3886
- async clearLinkedEcdsaHolderMaterials() {
3887
- await clearLinkedDeviceEcdsaHolderMaterialsWasm({ workerCtx: this.signerWorkerManager.getContext() });
3888
- clearLinkedEcdsaHolderRuntimesV1();
3889
- }
3890
- async clearLinkedEcdsaHolderMaterialsForWallet(walletId) {
3891
- const runtimes = listLinkedEcdsaHolderRuntimesV1(walletId);
3892
- let firstError;
3893
- for (const runtime of runtimes) try {
3894
- await destroyLinkedDeviceEcdsaHolderMaterialsWasm({
3895
- holderHandleIds: [runtime.holderHandleId],
3896
- workerCtx: this.signerWorkerManager.getContext()
3897
- });
3898
- removeLinkedEcdsaHolderRuntimeV1(runtime);
3899
- } catch (error) {
3900
- firstError ??= error;
3901
- }
3902
- if (firstError !== void 0) throw firstError;
3903
- }
3904
- };
3905
- //#endregion
3906
- export { BrowserSigningSurface };
3907
-
3908
- //# sourceMappingURL=BrowserSigningSurface.js.map