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