@seams/wallet 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1880) hide show
  1. package/README.md +4 -5
  2. package/THIRD_PARTY_NOTICES.md +1 -113
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +12 -3
  5. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +2 -2
  6. package/dist/esm/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +1 -1
  7. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +1 -1
  8. package/dist/esm/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -2
  9. package/dist/esm/SeamsWeb/operations/auth/login.js +34 -49
  10. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +64 -0
  11. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +2 -3
  12. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +1 -4
  13. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +2 -8
  14. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +1 -1
  15. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +5 -9
  16. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +1 -1
  17. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +1 -1
  18. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +11 -12
  19. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +2 -9
  20. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +24 -24
  21. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +38 -13
  22. package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +1 -1
  23. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +0 -1
  24. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +2 -4
  25. package/dist/esm/SeamsWeb/operations/recovery/walletRecovery.js +1 -2
  26. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +4 -5
  27. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +5 -9
  28. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +1 -2
  29. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +5 -20
  30. package/dist/esm/SeamsWeb/operations/registration/registration.js +5 -5
  31. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +1 -1
  32. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +1 -1
  33. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +2 -6
  34. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +4 -1
  35. package/dist/esm/SeamsWeb/publicApi/auth.js +2 -1
  36. package/dist/esm/SeamsWeb/publicApi/near.js +1 -1
  37. package/dist/esm/SeamsWeb/publicApi/tempo.js +6 -0
  38. package/dist/esm/SeamsWeb/publicApi/transactionReview.js +4 -1
  39. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +28 -19
  40. package/dist/esm/SeamsWeb/walletIframe/client/router.js +1 -2
  41. package/dist/esm/SeamsWeb/walletIframe/client/surface/domain.js +0 -2
  42. package/dist/esm/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -4
  43. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +1 -1
  44. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +29 -0
  45. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +64 -0
  46. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +194 -385
  47. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +136 -0
  48. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +6 -26
  49. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -6
  50. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +11 -1
  51. package/dist/esm/advanced.js +0 -1
  52. package/dist/esm/base-styles.js +2 -2
  53. package/dist/esm/build-paths.js +0 -2
  54. package/dist/esm/core/accountData/near/accountProjection.js +0 -1
  55. package/dist/esm/core/accountData/near/keyMaterial.js +0 -1
  56. package/dist/esm/core/browser/walletIframe/events.js +1 -5
  57. package/dist/esm/core/browser/walletIframe/host-mode.js +0 -10
  58. package/dist/esm/core/config/chains.js +1 -2
  59. package/dist/esm/core/config/configBuilder.js +0 -1
  60. package/dist/esm/core/config/configHelpers.js +0 -1
  61. package/dist/esm/core/indexedDB/accountKeyMaterial.js +0 -1
  62. package/dist/esm/core/indexedDB/index.js +3 -4
  63. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +6 -14
  64. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +139 -273
  65. package/dist/esm/core/indexedDB/schemaNames.js +0 -22
  66. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +3 -3
  67. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +3 -3
  68. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +1 -1
  69. package/dist/esm/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -1
  70. package/dist/esm/core/indexedDB/seamsWalletDB/registrationSetup.js +103 -0
  71. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +2 -3
  72. package/dist/esm/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -35
  73. package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +4 -4
  74. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +37 -19
  75. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +10 -3
  76. package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  77. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +8 -25
  78. package/dist/esm/core/rpcClients/near/rpcCalls.js +39 -1
  79. package/dist/esm/core/rpcClients/relayer/passkeyCustodyEnvelope.js +3 -13
  80. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +0 -2
  81. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +72 -125
  82. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +21 -15
  83. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +1 -2
  84. package/dist/esm/core/signingEngine/assembly/createManagers.js +1 -1
  85. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +1 -1
  86. package/dist/esm/core/signingEngine/assembly/ports/shared.js +1 -2
  87. package/dist/esm/core/signingEngine/assembly/warmup.js +1 -5
  88. package/dist/esm/core/signingEngine/chains/evm/display/functionSelectors.js +2 -5
  89. package/dist/esm/core/signingEngine/chains/near/nearSignerWasm.js +2 -33
  90. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -1
  91. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +2 -2
  92. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +35 -29
  93. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +3 -3
  94. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +1 -4
  95. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +2 -5
  96. package/dist/esm/core/signingEngine/flows/recovery/stepUpAuthorization.js +1 -1
  97. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +3 -8
  98. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +1 -2
  99. package/dist/esm/core/signingEngine/flows/shared/signingStateMachine.js +2 -5
  100. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +2 -2
  101. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -9
  102. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -2
  103. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +6 -8
  104. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +24 -18
  105. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +7 -5
  106. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +10 -9
  107. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +3 -7
  108. package/dist/esm/core/signingEngine/flows/signNear/implicitAccountFunding.js +1 -1
  109. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +33 -42
  110. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -2
  111. package/dist/esm/core/signingEngine/flows/signNear/shared/signingMaterials.js +1 -7
  112. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +4 -14
  113. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +2 -6
  114. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +2 -2
  115. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +2 -6
  116. package/dist/esm/core/signingEngine/nonce/NonceCoordinator.js +1 -1
  117. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +1 -1
  118. package/dist/esm/core/signingEngine/nonce/nonceDiagnostics.js +1 -1
  119. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -1
  120. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +2 -1
  121. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -3
  122. package/dist/esm/core/signingEngine/session/SigningSessionCoordinator.js +1 -4
  123. package/dist/esm/core/signingEngine/session/authority/authorityOperationResolver.js +17 -68
  124. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +1 -10
  125. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +7 -6
  126. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +107 -24
  127. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +1 -1
  128. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -3
  129. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +4 -15
  130. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +12 -16
  131. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -3
  132. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +0 -2
  133. package/dist/esm/core/signingEngine/session/identity/clientSessionPersistenceState.js +5 -16
  134. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -1
  135. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  136. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -2
  137. package/dist/esm/core/signingEngine/session/identity/selectLane.js +7 -21
  138. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +3 -9
  139. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +4 -16
  140. package/dist/esm/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +1 -14
  141. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +1 -1
  142. package/dist/esm/core/signingEngine/session/operationState/preparedOperation.js +1 -5
  143. package/dist/esm/core/signingEngine/session/passkey/ecdsaBootstrap.js +3 -6
  144. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -1
  145. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -4
  146. package/dist/esm/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -1
  147. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +2 -3
  148. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +13 -49
  149. package/dist/esm/core/signingEngine/session/persistence/clientSessionPersistence.js +8 -16
  150. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +5 -10
  151. package/dist/esm/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -2
  152. package/dist/esm/core/signingEngine/session/routerAbSigningWalletSession.js +2 -8
  153. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +2 -2
  154. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +1 -1
  155. package/dist/esm/core/signingEngine/session/warmCapabilities/readModel.js +2 -8
  156. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +1 -12
  157. package/dist/esm/core/signingEngine/session/warmCapabilities/transitions.js +7 -11
  158. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -1
  159. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +6 -30
  160. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -3
  161. package/dist/esm/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +1 -5
  162. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +20 -6
  163. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +7 -4
  164. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -3
  165. package/dist/esm/core/signingEngine/threshold/ecdsa/bootstrapSession.js +1 -5
  166. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +8 -50
  167. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +7 -43
  168. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +1 -1
  169. package/dist/esm/core/signingEngine/threshold/ed25519/yaoClient.js +1 -35
  170. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +0 -1
  171. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +1 -4
  172. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +4 -3
  173. package/dist/esm/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -1
  174. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +1 -1
  175. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -1
  176. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +25 -16
  177. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +3 -13
  178. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +1 -10
  179. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -1
  180. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +10 -13
  181. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +2 -6
  182. package/dist/esm/core/signingEngine/walletCustody/passkeyLink.js +7 -10
  183. package/dist/esm/core/signingEngine/walletCustody/registrationCeremony.js +0 -1
  184. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -1
  185. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -1
  186. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +1 -1
  187. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -2
  188. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -1
  189. package/dist/esm/core/signingEngine/webauthnAuth/walletOriginWebAuthn.js +109 -0
  190. package/dist/esm/core/signingEngine/workerManager/SignerWorkerManager.js +0 -2
  191. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +67 -48
  192. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -4
  193. package/dist/esm/core/signingEngine/workerManager/validation.js +1 -1
  194. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +4 -47
  195. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +0 -2
  196. package/dist/esm/core/types/accountIds.js +0 -1
  197. package/dist/esm/core/types/sdkSentEvents.js +1 -2
  198. package/dist/esm/core/types/signer-worker.js +1 -36
  199. package/dist/esm/core/walletRuntimePaths/base.js +11 -1
  200. package/dist/esm/plugins/headers.js +0 -1
  201. package/dist/esm/plugins/next.js +0 -1
  202. package/dist/esm/plugins/plugin-utils.js +0 -1
  203. package/dist/esm/plugins/shared-ts/src/utils/normalize.js +1 -1
  204. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +1 -1
  205. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +3 -3
  206. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +2 -2
  207. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +8 -8
  208. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +2 -1
  209. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +17 -0
  210. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +1 -1
  211. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +0 -5
  212. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +8 -0
  213. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +21 -13
  214. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +0 -52
  215. package/dist/esm/react/components/AccountMenuButton/icons/GlobeIcon.js +12 -27
  216. package/dist/esm/react/components/AccountMenuButton/icons/KeyIcon.js +12 -27
  217. package/dist/esm/react/components/AccountMenuButton/icons/LaptopIcon.js +4 -19
  218. package/dist/esm/react/components/AccountMenuButton/icons/LinkIcon.js +4 -19
  219. package/dist/esm/react/components/AccountMenuButton/icons/LockIcon.js +11 -26
  220. package/dist/esm/react/components/AccountMenuButton/icons/MailIcon.js +10 -25
  221. package/dist/esm/react/components/AccountMenuButton/icons/RecoveryCodesIcon.js +16 -31
  222. package/dist/esm/react/components/AccountMenuButton/icons/ScanIcon.js +9 -24
  223. package/dist/esm/react/components/AccountMenuButton/icons/SlidersIcon.js +14 -29
  224. package/dist/esm/react/components/AccountMenuButton/icons/SmartphoneIcon.js +11 -26
  225. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +1 -1
  226. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +27 -0
  227. package/dist/esm/react/components/AccountMenuButton/icons/strokeIcon.js +7 -17
  228. package/dist/esm/react/components/AccountMenuButton/index.js +11 -11
  229. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +1 -1
  230. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +1 -1
  231. package/dist/esm/react/components/QRCodeScanner.css +0 -15
  232. package/dist/esm/react/components/QRCodeScanner.js +2 -2
  233. package/dist/esm/react/components/ShowQRCode.css +0 -14
  234. package/dist/esm/react/components/ShowQRCode.js +4 -4
  235. package/dist/esm/react/components/theme/design-tokens.js +1 -2
  236. package/dist/esm/react/context/index.js +1 -1
  237. package/dist/esm/react/context/reactLoginStateBuilders.js +1 -1
  238. package/dist/esm/react/context/seamsManagerSingleton.js +2 -2
  239. package/dist/esm/react/context/useLoginStateRefresher.js +2 -5
  240. package/dist/esm/react/context/useSeamsContextValue.js +1 -1
  241. package/dist/esm/react/context/useSeamsWithSdkFlow.js +2 -3
  242. package/dist/esm/react/context/useWalletIframeLifecycle.js +1 -15
  243. package/dist/esm/react/hooks/useAccountInput.js +4 -4
  244. package/dist/esm/react/hooks/useNearClient.js +3 -3
  245. package/dist/esm/react/hooks/usePreconnectWalletAssets.js +1 -1
  246. package/dist/esm/react/hooks/useQRCamera.js +2 -2
  247. package/dist/esm/react/hooks/useWallet.js +1 -1
  248. package/dist/esm/react/index.js +10 -10
  249. package/dist/esm/react/styles/styles.css +25 -86
  250. package/dist/esm/react/transactionReview/TransactionReviewHost.js +1 -1
  251. package/dist/esm/react/transactionReview/boundCalls.js +2 -2
  252. package/dist/esm/react/transactionReview/contract.js +1 -1
  253. package/dist/esm/react/transactionReview/controller.js +2 -2
  254. package/dist/esm/react/transactionReview/snapshot.js +2 -2
  255. package/dist/esm/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  256. package/dist/esm/sdk/EvmClient-DoxytQaJ.js +1 -0
  257. package/dist/esm/sdk/NearClient-vJ65Wjrq.js +1 -0
  258. package/dist/esm/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  259. package/dist/esm/sdk/accountIds-C3Ihsd2c.js +1 -0
  260. package/dist/esm/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  261. package/dist/esm/sdk/actions-DZLxCcrU.js +1 -0
  262. package/dist/esm/sdk/adapters-DtAyuoiA.js +2 -0
  263. package/dist/esm/sdk/base-Xtd32asf.js +1 -0
  264. package/dist/esm/sdk/base64-ojm5DKcF.js +1 -0
  265. package/dist/esm/sdk/browser-CsOGMbMy.js +8 -0
  266. package/dist/esm/sdk/bytes-t5S5mkat.js +1 -0
  267. package/dist/esm/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  268. package/dist/esm/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  269. package/dist/esm/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  270. package/dist/esm/sdk/chains-yAls2d9X.js +1 -0
  271. package/dist/esm/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  272. package/dist/esm/sdk/chunk-dVx5-UGu.js +1 -0
  273. package/dist/esm/sdk/configHelpers-CseiVoZD.js +1 -0
  274. package/dist/esm/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  275. package/dist/esm/sdk/defaultConfigs-CWpApkMq.js +1 -0
  276. package/dist/esm/sdk/display-jK7_hYho.js +1 -0
  277. package/dist/esm/sdk/domainIds-GDzjOs6i.js +1 -0
  278. package/dist/esm/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  279. package/dist/esm/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  280. package/dist/esm/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  281. package/dist/esm/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  282. package/dist/esm/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  283. package/dist/esm/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  284. package/dist/esm/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  285. package/dist/esm/sdk/errors-DfbnsXjO.js +1 -0
  286. package/dist/esm/sdk/events-BJyVcnsn.js +1 -0
  287. package/dist/esm/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  288. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  289. package/dist/esm/sdk/exactSessionState-CjD8gekO.js +210 -0
  290. package/dist/esm/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  291. package/dist/esm/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  292. package/dist/esm/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  293. package/dist/esm/sdk/helpers-D4QckQhq.js +1 -0
  294. package/dist/esm/sdk/host-BAqOYnju.js +1 -0
  295. package/dist/esm/sdk/intentDigest-CB6zy3lN.js +1 -0
  296. package/dist/esm/sdk/jsonRpc-C85RYR0A.js +1 -0
  297. package/dist/esm/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  298. package/dist/esm/sdk/keccak-zexutGfG.js +1 -0
  299. package/dist/esm/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  300. package/dist/esm/sdk/localOnly-DBQRG6Qh.js +1 -0
  301. package/dist/esm/sdk/messages-Cv2j4SKI.js +1 -0
  302. package/dist/esm/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  303. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  304. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  305. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  306. package/dist/esm/sdk/nearRpcResults--cBcfmp4.js +1 -0
  307. package/dist/esm/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  308. package/dist/esm/sdk/normalization-BGPR6osg.js +1 -0
  309. package/dist/esm/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  310. package/dist/esm/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  311. package/dist/esm/sdk/passkey-custody-LP4UTFbn.js +1 -0
  312. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  313. package/dist/esm/sdk/prfCache-Mbo7_USg.js +1 -0
  314. package/dist/esm/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  315. package/dist/esm/sdk/promptText-s8TQ6ckX.js +1 -0
  316. package/dist/esm/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  317. package/dist/esm/sdk/registration-Btozh7uh.js +1 -0
  318. package/dist/esm/sdk/registration-CSAG_h4Y.js +1 -0
  319. package/dist/esm/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  320. package/dist/esm/sdk/registrationIds-BIel5S0i.js +1 -0
  321. package/dist/esm/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  322. package/dist/esm/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  323. package/dist/esm/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  324. package/dist/esm/sdk/relayerHttp-DaPeS929.js +1 -0
  325. package/dist/esm/sdk/routePlan-B_KJaPtm.js +1 -0
  326. package/dist/esm/sdk/router-Dd3fFHk3.js +1 -0
  327. package/dist/esm/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  328. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  329. package/dist/esm/sdk/runtime-auth-B2M91rSx.js +1 -0
  330. package/dist/esm/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  331. package/dist/esm/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  332. package/dist/esm/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  333. package/dist/esm/sdk/runtime-export-JXYk8sQ-.js +1 -0
  334. package/dist/esm/sdk/runtime-near-BB8AG6dV.js +1 -0
  335. package/dist/esm/sdk/runtime-preferences-DKFZYccW.js +1 -0
  336. package/dist/esm/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  337. package/dist/esm/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  338. package/dist/esm/sdk/runtimeContext-BpObgzbj.js +6 -0
  339. package/dist/esm/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  340. package/dist/esm/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  341. package/dist/esm/sdk/secp256k1-B_6W9QDJ.js +1 -0
  342. package/dist/esm/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  343. package/dist/esm/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  344. package/dist/esm/sdk/shared-j_KsFbCT.js +1 -0
  345. package/dist/esm/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  346. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  347. package/dist/esm/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  348. package/dist/esm/sdk/signNear-mWbTE2Dl.js +1 -0
  349. package/dist/esm/sdk/signatureUses-CQkkUcwT.js +1 -0
  350. package/dist/esm/sdk/signerDomain-BhUTzDmF.js +1 -0
  351. package/dist/esm/sdk/signerLoader-By0IY24G.js +1 -0
  352. package/dist/esm/sdk/signerSlot-BQ1g5JNV.js +1 -0
  353. package/dist/esm/sdk/signingFlow-LUWrZi2d.js +2 -0
  354. package/dist/esm/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  355. package/dist/esm/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  356. package/dist/esm/sdk/trace-M34pNGuF.js +1 -0
  357. package/dist/esm/sdk/transaction-activity-BbDod7ji.js +1 -0
  358. package/dist/esm/sdk/transactionReview-CBE5oH4c.js +1 -0
  359. package/dist/esm/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  360. package/dist/esm/sdk/transactionState-9d7f3xVj.js +1 -0
  361. package/dist/esm/sdk/tx-confirm-ui.js +23 -204
  362. package/dist/esm/sdk/types-M7vxrYtJ.js +1 -0
  363. package/dist/esm/sdk/validation-dC1-_uyG.js +1 -0
  364. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -13
  365. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -6
  366. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -13
  367. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -4
  368. package/dist/esm/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  369. package/dist/esm/sdk/wallet-ui.css +1 -6134
  370. package/dist/esm/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  371. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  372. package/dist/esm/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  373. package/dist/esm/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  374. package/dist/esm/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  375. package/dist/esm/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  376. package/dist/esm/sdk/webauthnP256-qu06GNFm.js +1 -0
  377. package/dist/esm/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  378. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -8
  379. package/dist/esm/shared-ts/src/authorization/walletSignerActivationEquality.js +12 -0
  380. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +2 -5
  381. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +1 -5
  382. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +11 -15
  383. package/dist/esm/shared-ts/src/device-linking/parsers.js +41 -1
  384. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +6 -9
  385. package/dist/esm/shared-ts/src/near/actions.js +10 -1
  386. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  387. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +5 -1
  388. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  389. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -4
  390. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +3 -8
  391. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +0 -1
  392. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -1
  393. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +13 -17
  394. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  395. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  396. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +4 -2
  397. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -7
  398. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +2 -5
  399. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +0 -1
  400. package/dist/esm/shared-ts/src/utils/encoders.js +1 -1
  401. package/dist/esm/shared-ts/src/utils/errors.js +0 -1
  402. package/dist/esm/shared-ts/src/utils/exactKeys.js +17 -0
  403. package/dist/esm/shared-ts/src/utils/index.js +4 -5
  404. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  405. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  406. package/dist/esm/shared-ts/src/utils/registrationIntent.js +2 -9
  407. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +12 -0
  408. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +3 -6
  409. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +2 -3
  410. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -1
  411. package/dist/esm/shared-ts/src/utils/thresholdEcdsaChainTarget.js +9 -0
  412. package/dist/esm/shared-ts/src/utils/validation.js +0 -1
  413. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  414. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +10 -1
  415. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  416. package/dist/esm/shared-ts/src/wallet-recovery/index.js +1 -1
  417. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  418. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -2
  419. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -4
  420. package/dist/esm/theme/base-styles.js +11 -11
  421. package/dist/esm/utils/deviceDetection.js +16 -1
  422. package/dist/esm/utils/menuItemBlink.js +24 -0
  423. package/dist/esm/utils/qrScanner.js +288 -0
  424. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +12 -753
  425. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +126 -3701
  426. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  427. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.d.ts +0 -42
  428. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.js +2 -106
  429. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  430. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.d.ts +3 -158
  431. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.js +2 -452
  432. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  433. package/dist/public/headers.manifest.json +1 -1
  434. package/dist/public/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  435. package/dist/public/sdk/EvmClient-DoxytQaJ.js +1 -0
  436. package/dist/public/sdk/NearClient-vJ65Wjrq.js +1 -0
  437. package/dist/public/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  438. package/dist/public/sdk/accountIds-C3Ihsd2c.js +1 -0
  439. package/dist/public/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  440. package/dist/public/sdk/actions-DZLxCcrU.js +1 -0
  441. package/dist/public/sdk/adapters-DtAyuoiA.js +2 -0
  442. package/dist/public/sdk/base-Xtd32asf.js +1 -0
  443. package/dist/public/sdk/base64-ojm5DKcF.js +1 -0
  444. package/dist/public/sdk/browser-CsOGMbMy.js +8 -0
  445. package/dist/public/sdk/bytes-t5S5mkat.js +1 -0
  446. package/dist/public/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  447. package/dist/public/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  448. package/dist/public/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  449. package/dist/public/sdk/chains-yAls2d9X.js +1 -0
  450. package/dist/public/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  451. package/dist/public/sdk/chunk-dVx5-UGu.js +1 -0
  452. package/dist/public/sdk/configHelpers-CseiVoZD.js +1 -0
  453. package/dist/public/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  454. package/dist/public/sdk/defaultConfigs-CWpApkMq.js +1 -0
  455. package/dist/public/sdk/display-jK7_hYho.js +1 -0
  456. package/dist/public/sdk/domainIds-GDzjOs6i.js +1 -0
  457. package/dist/public/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  458. package/dist/public/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  459. package/dist/public/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  460. package/dist/public/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  461. package/dist/public/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  462. package/dist/public/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  463. package/dist/public/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  464. package/dist/public/sdk/errors-DfbnsXjO.js +1 -0
  465. package/dist/public/sdk/events-BJyVcnsn.js +1 -0
  466. package/dist/public/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  467. package/dist/public/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  468. package/dist/public/sdk/exactSessionState-CjD8gekO.js +210 -0
  469. package/dist/public/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  470. package/dist/public/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  471. package/dist/public/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  472. package/dist/public/sdk/helpers-D4QckQhq.js +1 -0
  473. package/dist/public/sdk/host-BAqOYnju.js +1 -0
  474. package/dist/public/sdk/intentDigest-CB6zy3lN.js +1 -0
  475. package/dist/public/sdk/jsonRpc-C85RYR0A.js +1 -0
  476. package/dist/public/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  477. package/dist/public/sdk/keccak-zexutGfG.js +1 -0
  478. package/dist/public/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  479. package/dist/public/sdk/localOnly-DBQRG6Qh.js +1 -0
  480. package/dist/public/sdk/messages-Cv2j4SKI.js +1 -0
  481. package/dist/public/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  482. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  483. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  484. package/dist/public/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  485. package/dist/public/sdk/nearRpcResults--cBcfmp4.js +1 -0
  486. package/dist/public/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  487. package/dist/public/sdk/normalization-BGPR6osg.js +1 -0
  488. package/dist/public/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  489. package/dist/public/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  490. package/dist/public/sdk/passkey-custody-LP4UTFbn.js +1 -0
  491. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  492. package/dist/public/sdk/prfCache-Mbo7_USg.js +1 -0
  493. package/dist/public/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  494. package/dist/public/sdk/promptText-s8TQ6ckX.js +1 -0
  495. package/dist/public/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  496. package/dist/public/sdk/registration-Btozh7uh.js +1 -0
  497. package/dist/public/sdk/registration-CSAG_h4Y.js +1 -0
  498. package/dist/public/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  499. package/dist/public/sdk/registrationIds-BIel5S0i.js +1 -0
  500. package/dist/public/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  501. package/dist/public/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  502. package/dist/public/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  503. package/dist/public/sdk/relayerHttp-DaPeS929.js +1 -0
  504. package/dist/public/sdk/routePlan-B_KJaPtm.js +1 -0
  505. package/dist/public/sdk/router-Dd3fFHk3.js +1 -0
  506. package/dist/public/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  507. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  508. package/dist/public/sdk/runtime-auth-B2M91rSx.js +1 -0
  509. package/dist/public/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  510. package/dist/public/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  511. package/dist/public/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  512. package/dist/public/sdk/runtime-export-JXYk8sQ-.js +1 -0
  513. package/dist/public/sdk/runtime-near-BB8AG6dV.js +1 -0
  514. package/dist/public/sdk/runtime-preferences-DKFZYccW.js +1 -0
  515. package/dist/public/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  516. package/dist/public/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  517. package/dist/public/sdk/runtimeContext-BpObgzbj.js +6 -0
  518. package/dist/public/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  519. package/dist/public/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  520. package/dist/public/sdk/secp256k1-B_6W9QDJ.js +1 -0
  521. package/dist/public/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  522. package/dist/public/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  523. package/dist/public/sdk/shared-j_KsFbCT.js +1 -0
  524. package/dist/public/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  525. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  526. package/dist/public/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  527. package/dist/public/sdk/signNear-mWbTE2Dl.js +1 -0
  528. package/dist/public/sdk/signatureUses-CQkkUcwT.js +1 -0
  529. package/dist/public/sdk/signerDomain-BhUTzDmF.js +1 -0
  530. package/dist/public/sdk/signerLoader-By0IY24G.js +1 -0
  531. package/dist/public/sdk/signerSlot-BQ1g5JNV.js +1 -0
  532. package/dist/public/sdk/signingFlow-LUWrZi2d.js +2 -0
  533. package/dist/public/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  534. package/dist/public/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  535. package/dist/public/sdk/trace-M34pNGuF.js +1 -0
  536. package/dist/public/sdk/transaction-activity-BbDod7ji.js +1 -0
  537. package/dist/public/sdk/transactionReview-CBE5oH4c.js +1 -0
  538. package/dist/public/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  539. package/dist/public/sdk/transactionState-9d7f3xVj.js +1 -0
  540. package/dist/public/sdk/tx-confirm-ui.js +23 -204
  541. package/dist/public/sdk/types-M7vxrYtJ.js +1 -0
  542. package/dist/public/sdk/validation-dC1-_uyG.js +1 -0
  543. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -13
  544. package/dist/public/sdk/wallet-iframe-host-full.js +1 -6
  545. package/dist/public/sdk/wallet-iframe-host-near.js +1 -13
  546. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -4
  547. package/dist/public/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  548. package/dist/public/sdk/wallet-ui.css +1 -6134
  549. package/dist/public/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  550. package/dist/public/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  551. package/dist/public/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  552. package/dist/public/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  553. package/dist/public/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  554. package/dist/public/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  555. package/dist/public/sdk/webauthnP256-qu06GNFm.js +1 -0
  556. package/dist/public/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  557. package/dist/public/sdk/workers/device-linking-key.worker.js +567 -2131
  558. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1529 -2683
  559. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +1 -273
  560. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +59 -346
  561. package/dist/public/sdk/workers/email-otp.worker.js +307 -2185
  562. package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
  563. package/dist/public/sdk/workers/evm-crypto.worker.js +0 -188
  564. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  565. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  566. package/dist/public/sdk/workers/near-signer.worker.js +16 -718
  567. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  568. package/dist/public/sdk/workers/passkey-confirm.worker.js +0 -134
  569. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +149 -506
  570. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +0 -134
  571. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  572. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  573. package/dist/public/sdk/workers/shamir3pass.worker.js +0 -134
  574. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  575. package/dist/public/sdk/workers/tempo-signer.worker.js +0 -134
  576. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  577. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  578. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +136 -1636
  579. package/dist/public/sdk/workers/wallet_custody_ceremony.js +0 -14
  580. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  581. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  582. package/dist/public/wallet-assets.manifest.json +234 -258
  583. package/dist/public/wallet-service/index.html +4 -4
  584. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  585. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +2 -1
  586. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +9 -2
  587. package/dist/types/shared-ts/src/authorization/walletSignerActivationEquality.d.ts +4 -0
  588. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -4
  589. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +6 -63
  590. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +2 -0
  591. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +5 -12
  592. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +9 -0
  593. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  594. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +11 -12
  595. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +3 -17
  596. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  597. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  598. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  599. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  600. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -845
  601. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentifier.d.ts +3 -0
  602. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +2 -1
  603. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +6 -0
  604. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  605. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  606. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +1 -0
  607. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  608. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  609. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  610. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +2 -11
  611. package/dist/types/shared-ts/src/utils/eip1559TxWasmJson.d.ts +16 -0
  612. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +2 -0
  613. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  614. package/dist/types/shared-ts/src/utils/exactKeys.d.ts +11 -0
  615. package/dist/types/shared-ts/src/utils/failure.d.ts +12 -0
  616. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +3 -4
  617. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  618. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +1 -0
  619. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  620. package/dist/types/shared-ts/src/utils/registrationAuthMethodInput.d.ts +3 -8
  621. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  622. package/dist/types/shared-ts/src/utils/registrationSignerPlan.d.ts +7 -19
  623. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +3 -1
  624. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +1 -0
  625. package/dist/types/shared-ts/src/utils/routerAbEd25519YaoDigests.d.ts +3 -4
  626. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +30 -8
  627. package/dist/types/shared-ts/src/utils/routerApiKeyAuth.d.ts +2 -0
  628. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +10 -11
  629. package/dist/types/shared-ts/src/utils/thresholdEcdsaChainTarget.d.ts +25 -0
  630. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  631. package/dist/types/shared-ts/src/utils/variant.d.ts +18 -0
  632. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +3 -6
  633. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  634. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  635. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +4 -2
  636. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  637. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  638. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  639. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  640. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +3 -16
  641. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  642. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryPreparation.d.ts +15 -0
  643. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +3 -4
  644. package/dist/types/wallet/build-paths.d.ts +1 -2
  645. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +2 -0
  646. package/dist/types/wallet/src/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.d.ts +11 -0
  647. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +2 -1
  648. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +1 -1
  649. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +3 -20
  650. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +0 -4
  651. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/walletActivation.d.ts +3 -4
  652. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.d.ts +2 -10
  653. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +0 -1
  654. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlow.d.ts +2 -0
  655. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +0 -10
  656. package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdEcdsaProvisioning.d.ts +1 -2
  657. package/dist/types/wallet/src/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.d.ts +1 -1
  658. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +7 -16
  659. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +0 -2
  660. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +1 -1
  661. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/domain.d.ts +0 -8
  662. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.d.ts +1 -2
  663. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  664. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +0 -1
  665. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.d.ts +2 -1
  666. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +17 -0
  667. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +12 -5
  668. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +15 -0
  669. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionReconciliation.d.ts +3 -3
  670. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -15
  671. package/dist/types/wallet/src/advanced.d.ts +1 -1
  672. package/dist/types/wallet/src/core/accountData/near/keyMaterial.d.ts +3 -5
  673. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +0 -2
  674. package/dist/types/wallet/src/core/indexedDB/index.d.ts +3 -5
  675. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -38
  676. package/dist/types/wallet/src/core/indexedDB/pendingWalletRecoveryCommit.d.ts +1 -4
  677. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +3 -4
  678. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +0 -22
  679. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.d.ts +7 -12
  680. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +1 -1
  681. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +1 -1
  682. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +0 -1
  683. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/registrationSetup.d.ts +42 -0
  684. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signingSessionSeals.d.ts +1 -5
  685. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +8 -7
  686. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  687. package/dist/types/wallet/src/core/platform/browser/createBrowserPlatformRuntime.d.ts +1 -6
  688. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +7 -51
  689. package/dist/types/wallet/src/core/platform/http.d.ts +3 -5
  690. package/dist/types/wallet/src/core/platform/index.d.ts +4 -4
  691. package/dist/types/wallet/src/core/platform/ports.d.ts +4 -58
  692. package/dist/types/wallet/src/core/platform/runtime.d.ts +0 -2
  693. package/dist/types/wallet/src/core/platform/secretSources.d.ts +0 -29
  694. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +1 -1
  695. package/dist/types/wallet/src/core/rpcClients/near/NearRpcError.d.ts +1 -2
  696. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +2 -11
  697. package/dist/types/wallet/src/core/rpcClients/relayer/passkeyCustodyEnvelope.d.ts +0 -6
  698. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +2 -9
  699. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryPrepare.d.ts +2 -14
  700. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +2 -19
  701. package/dist/types/wallet/src/core/signingEngine/assembly/ports/shared.d.ts +0 -1
  702. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +0 -2
  703. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +0 -1
  704. package/dist/types/wallet/src/core/signingEngine/chains/near/nearSignerWasm.d.ts +0 -10
  705. package/dist/types/wallet/src/core/signingEngine/chains/near/payloads.d.ts +2 -10
  706. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaDerivationExport.d.ts +3 -4
  707. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportFlow.d.ts +4 -8
  708. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportConfirmation.d.ts +0 -15
  709. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportFlow.d.ts +7 -6
  710. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +2 -21
  711. package/dist/types/wallet/src/core/signingEngine/flows/registration/public.d.ts +1 -9
  712. package/dist/types/wallet/src/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.d.ts +0 -2
  713. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +0 -6
  714. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +1 -1
  715. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.d.ts +3 -4
  716. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/nonceResolution.d.ts +3 -4
  717. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +7 -18
  718. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.d.ts +1 -0
  719. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.d.ts +10 -5
  720. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +4 -14
  721. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +0 -5
  722. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.d.ts +3 -5
  723. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingMaterials.d.ts +0 -4
  724. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.d.ts +0 -9
  725. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +3 -7
  726. package/dist/types/wallet/src/core/signingEngine/interfaces/index.d.ts +0 -1
  727. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -4
  728. package/dist/types/wallet/src/core/signingEngine/interfaces/operationDeps.d.ts +3 -5
  729. package/dist/types/wallet/src/core/signingEngine/interfaces/operationStepUpPreparation.d.ts +3 -5
  730. package/dist/types/wallet/src/core/signingEngine/nonce/NonceCoordinator.d.ts +1 -1
  731. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -5
  732. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +2 -11
  733. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/clientCeremony.d.ts +5 -22
  734. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.d.ts +3 -14
  735. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.d.ts +0 -3
  736. package/dist/types/wallet/src/core/signingEngine/session/authority/authorityOperationResolver.d.ts +1 -24
  737. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
  738. package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +0 -2
  739. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +37 -14
  740. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaLogin.d.ts +0 -3
  741. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaPublication.d.ts +3 -5
  742. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaRecovery.d.ts +0 -5
  743. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +2 -7
  744. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/secretEscrow.d.ts +0 -1
  745. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/walletUnlock.d.ts +6 -15
  746. package/dist/types/wallet/src/core/signingEngine/session/identity/clientSessionPersistenceState.d.ts +0 -6
  747. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.d.ts +0 -3
  748. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +3 -8
  749. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +0 -3
  750. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +3 -7
  751. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionReader.d.ts +3 -6
  752. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +5 -14
  753. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +3 -5
  754. package/dist/types/wallet/src/core/signingEngine/session/identity/walletUnlockSubject.d.ts +0 -8
  755. package/dist/types/wallet/src/core/signingEngine/session/keyMaterialBrands.d.ts +1 -4
  756. package/dist/types/wallet/src/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.d.ts +5 -10
  757. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +4 -7
  758. package/dist/types/wallet/src/core/signingEngine/session/material/capabilityPreparationResult.d.ts +3 -22
  759. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaCapabilityHydration.d.ts +3 -4
  760. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.d.ts +0 -3
  761. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +3 -4
  762. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +5 -0
  763. package/dist/types/wallet/src/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.d.ts +5 -10
  764. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +4 -9
  765. package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +0 -2
  766. package/dist/types/wallet/src/core/signingEngine/session/operationState/types.d.ts +3 -5
  767. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaBootstrap.d.ts +3 -4
  768. package/dist/types/wallet/src/core/signingEngine/session/passkey/ecdsaSessionProvision.d.ts +3 -4
  769. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +0 -1
  770. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.d.ts +0 -2
  771. package/dist/types/wallet/src/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.d.ts +7 -25
  772. package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.d.ts +1 -10
  773. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +2 -2
  774. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionTransportAuth.d.ts +0 -5
  775. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +0 -2
  776. package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +1 -1
  777. package/dist/types/wallet/src/core/signingEngine/session/sealedRecovery/sealedRecovery.types.d.ts +3 -4
  778. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +3 -16
  779. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.d.ts +0 -105
  780. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.d.ts +6 -26
  781. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/persistencePorts.d.ts +3 -4
  782. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +0 -1
  783. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.d.ts +0 -12
  784. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/transitions.d.ts +0 -2
  785. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.typecheck.d.ts +1 -10
  786. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/channel/confirmTypes.d.ts +11 -36
  787. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodRunners.d.ts +1 -5
  788. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +5 -8
  789. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +4 -7
  790. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +3 -9
  791. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -19
  792. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +7 -32
  793. package/dist/types/wallet/src/core/signingEngine/threshold/commitQueueShared.d.ts +10 -10
  794. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.d.ts +1 -1
  795. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.d.ts +1 -15
  796. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/activation.d.ts +0 -4
  797. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +3 -8
  798. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/signingQueue.d.ts +1 -7
  799. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/commitQueue.d.ts +1 -6
  800. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/connectSession.d.ts +0 -1
  801. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/walletSession.d.ts +6 -36
  802. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +1 -8
  803. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +3 -4
  804. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.d.ts +1 -4
  805. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.d.ts +5 -9
  806. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.d.ts +0 -1
  807. package/dist/types/wallet/src/core/signingEngine/walletCustody/emailOtpLink.d.ts +0 -1
  808. package/dist/types/wallet/src/core/signingEngine/walletCustody/openCustodyCache.d.ts +0 -3
  809. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +0 -3
  810. package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +0 -1
  811. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/walletOriginWebAuthn.d.ts +8 -0
  812. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +0 -2
  813. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +0 -8
  814. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +5 -16
  815. package/dist/types/wallet/src/core/signingEngine/workerManager/validation.d.ts +1 -1
  816. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +9 -109
  817. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/requests.d.ts +0 -5
  818. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +2 -12
  819. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -10
  820. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/otpVerification.d.ts +0 -1
  821. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +0 -2
  822. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +0 -1
  823. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/near-signer.worker.d.ts +3 -31
  824. package/dist/types/wallet/src/core/types/accountIds.d.ts +1 -1
  825. package/dist/types/wallet/src/core/types/index.d.ts +0 -18
  826. package/dist/types/wallet/src/core/types/linkDevice.d.ts +3 -18
  827. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +5 -18
  828. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +5 -23
  829. package/dist/types/wallet/src/core/types/seams.d.ts +17 -71
  830. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +0 -5
  831. package/dist/types/wallet/src/core/types/signer-worker.d.ts +75 -134
  832. package/dist/types/wallet/src/externalEvm/types.d.ts +5 -12
  833. package/dist/types/wallet/src/react/components/AccountMenuButton/Toggle.d.ts +0 -15
  834. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/GlobeIcon.d.ts +1 -4
  835. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/KeyIcon.d.ts +1 -4
  836. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LaptopIcon.d.ts +1 -4
  837. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LinkIcon.d.ts +1 -4
  838. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/LockIcon.d.ts +1 -4
  839. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/MailIcon.d.ts +1 -4
  840. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/RecoveryCodesIcon.d.ts +1 -4
  841. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ScanIcon.d.ts +1 -4
  842. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SlidersIcon.d.ts +1 -4
  843. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/SmartphoneIcon.d.ts +1 -4
  844. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +5 -0
  845. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +0 -19
  846. package/dist/types/wallet/src/react/hooks/useAccountInput.d.ts +1 -22
  847. package/dist/types/wallet/src/react/transactionReview/controller.d.ts +3 -10
  848. package/dist/types/wallet/src/utils/menuItemBlink.d.ts +9 -0
  849. package/dist/types/wallet/src/utils/qrScanner.d.ts +1 -21
  850. package/dist/workers/device-linking-key.worker.js +567 -2131
  851. package/dist/workers/ecdsa-derivation-client.worker.js +1529 -2683
  852. package/dist/workers/ecdsa-online-client.worker.js +1 -273
  853. package/dist/workers/ecdsa-presign-client.worker.js +59 -346
  854. package/dist/workers/email-otp.worker.js +307 -2185
  855. package/dist/workers/email_otp_runtime_bg.wasm +0 -0
  856. package/dist/workers/evm-crypto.worker.js +0 -188
  857. package/dist/workers/evm_crypto.wasm +0 -0
  858. package/dist/workers/evm_crypto_bg.wasm +0 -0
  859. package/dist/workers/near-signer.worker.js +16 -718
  860. package/dist/workers/near_signer.wasm +0 -0
  861. package/dist/workers/passkey-confirm.worker.js +0 -134
  862. package/dist/workers/passkey-mpc-export.worker.js +149 -506
  863. package/dist/workers/passkey-mpc-session.worker.js +0 -134
  864. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  865. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  866. package/dist/workers/shamir3pass.worker.js +0 -134
  867. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  868. package/dist/workers/tempo-signer.worker.js +0 -134
  869. package/dist/workers/tempo_signer.wasm +0 -0
  870. package/dist/workers/tempo_signer_bg.wasm +0 -0
  871. package/dist/workers/wallet-custody-ceremony.worker.js +136 -1636
  872. package/dist/workers/wallet_custody_ceremony.js +0 -14
  873. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  874. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  875. package/package.json +1 -14
  876. package/dist/esm/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  877. package/dist/esm/components/AccountMenuButton/AccountsSection.css +0 -81
  878. package/dist/esm/components/AccountMenuButton/ExportKeysSection.css +0 -96
  879. package/dist/esm/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  880. package/dist/esm/components/AccountMenuButton/LinkedDevicesModal.css +0 -612
  881. package/dist/esm/components/AccountMenuButton/MenuItem.css +0 -181
  882. package/dist/esm/components/AccountMenuButton/ProfileDropdown.css +0 -80
  883. package/dist/esm/components/AccountMenuButton/TransactionSettingsSection.css +0 -107
  884. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -182
  885. package/dist/esm/components/AccountMenuButton/WalletSettingsLayout.css +0 -456
  886. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -75
  887. package/dist/esm/components/AccountMenuButton/icons/TouchIcon.css +0 -46
  888. package/dist/esm/components/QRCodeScanner.css +0 -502
  889. package/dist/esm/components/ShowQRCode.css +0 -345
  890. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +0 -239
  891. package/dist/esm/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  892. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  893. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  894. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  895. package/dist/esm/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  896. package/dist/esm/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  897. package/dist/esm/plugins/shared-ts/src/utils/base58.js +0 -1
  898. package/dist/esm/plugins/shared-ts/src/utils/near.js +0 -1
  899. package/dist/esm/plugins/shared-ts/src/utils/validation.js +0 -2
  900. package/dist/esm/react/SeamsWeb/SeamsWeb.js +0 -1909
  901. package/dist/esm/react/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +0 -817
  902. package/dist/esm/react/SeamsWeb/assembly/browserWorkerWarmupPolicy.js +0 -31
  903. package/dist/esm/react/SeamsWeb/assembly/configureBrowserIndexedDB.js +0 -10
  904. package/dist/esm/react/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +0 -95
  905. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningRuntime.js +0 -34
  906. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningStores.js +0 -39
  907. package/dist/esm/react/SeamsWeb/assembly/createBrowserStepUpRuntime.js +0 -34
  908. package/dist/esm/react/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -31
  909. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeOverlayState.js +0 -9
  910. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeRouter.js +0 -44
  911. package/dist/esm/react/SeamsWeb/assembly/initializeBrowserSigningRuntime.js +0 -19
  912. package/dist/esm/react/SeamsWeb/assembly/runtimeConfig.js +0 -12
  913. package/dist/esm/react/SeamsWeb/operations/auth/login.js +0 -4398
  914. package/dist/esm/react/SeamsWeb/operations/auth/scheduleEcdsaSessionPresignaturePrefill.js +0 -41
  915. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +0 -143
  916. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +0 -36
  917. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockSubject.js +0 -294
  918. package/dist/esm/react/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +0 -72
  919. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +0 -191
  920. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/challenge.js +0 -247
  921. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +0 -572
  922. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +0 -69
  923. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.js +0 -62
  924. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +0 -69
  925. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +0 -95
  926. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/addPasskey.js +0 -260
  927. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/ecdsaBootstrap.js +0 -17
  928. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +0 -34
  929. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +0 -117
  930. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localUnlock.js +0 -16
  931. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/loginAssertion.js +0 -25
  932. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/registrationAuthority.js +0 -84
  933. package/dist/esm/react/SeamsWeb/operations/authMethods/revokeAuthMethod.js +0 -205
  934. package/dist/esm/react/SeamsWeb/operations/authMethods/sourcePasskeyProof.js +0 -12
  935. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +0 -444
  936. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingComposition.js +0 -106
  937. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +0 -194
  938. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +0 -525
  939. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +0 -135
  940. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +0 -219
  941. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetCredential.js +0 -63
  942. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetEd25519ExportRoot.js +0 -61
  943. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +0 -337
  944. package/dist/esm/react/SeamsWeb/operations/devices/linkDevice.js +0 -75
  945. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlow.js +0 -1358
  946. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +0 -143
  947. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +0 -119
  948. package/dist/esm/react/SeamsWeb/operations/devices/scanDevice.js +0 -384
  949. package/dist/esm/react/SeamsWeb/operations/devices/walletHostComposition.js +0 -130
  950. package/dist/esm/react/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +0 -191
  951. package/dist/esm/react/SeamsWeb/operations/evm/index.js +0 -35
  952. package/dist/esm/react/SeamsWeb/operations/near/actions.js +0 -484
  953. package/dist/esm/react/SeamsWeb/operations/near/commandSubject.js +0 -14
  954. package/dist/esm/react/SeamsWeb/operations/near/delegateAction.js +0 -247
  955. package/dist/esm/react/SeamsWeb/operations/near/index.js +0 -37
  956. package/dist/esm/react/SeamsWeb/operations/near/signNEP413.js +0 -117
  957. package/dist/esm/react/SeamsWeb/operations/near/signingEventHelpers.js +0 -15
  958. package/dist/esm/react/SeamsWeb/operations/recovery/accountSync.js +0 -21
  959. package/dist/esm/react/SeamsWeb/operations/recovery/recoveryWalletBinding.js +0 -43
  960. package/dist/esm/react/SeamsWeb/operations/recovery/syncAccount.js +0 -914
  961. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +0 -100
  962. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCommit.js +0 -477
  963. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +0 -386
  964. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryJournal.js +0 -118
  965. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryRotation.js +0 -214
  966. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +0 -184
  967. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +0 -247
  968. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +0 -134
  969. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +0 -369
  970. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +0 -3818
  971. package/dist/esm/react/SeamsWeb/operations/registration/registrationEd25519Yao.js +0 -166
  972. package/dist/esm/react/SeamsWeb/operations/registration/registrationSignerSet.js +0 -60
  973. package/dist/esm/react/SeamsWeb/operations/registration/registrationStrictEcdsa.js +0 -343
  974. package/dist/esm/react/SeamsWeb/operations/registration/registrationTerminalCommit.js +0 -296
  975. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +0 -682
  976. package/dist/esm/react/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +0 -40
  977. package/dist/esm/react/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.js +0 -20
  978. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +0 -565
  979. package/dist/esm/react/SeamsWeb/operations/tempo/feeTokenPreference.js +0 -67
  980. package/dist/esm/react/SeamsWeb/operations/tempo/index.js +0 -39
  981. package/dist/esm/react/SeamsWeb/publicApi/auth.js +0 -23
  982. package/dist/esm/react/SeamsWeb/publicApi/awaitNearReady.js +0 -72
  983. package/dist/esm/react/SeamsWeb/publicApi/capabilitySelection.js +0 -63
  984. package/dist/esm/react/SeamsWeb/publicApi/chainTargets.js +0 -48
  985. package/dist/esm/react/SeamsWeb/publicApi/createPublicApi.js +0 -133
  986. package/dist/esm/react/SeamsWeb/publicApi/currentWallet.js +0 -46
  987. package/dist/esm/react/SeamsWeb/publicApi/devices.js +0 -83
  988. package/dist/esm/react/SeamsWeb/publicApi/evm.js +0 -103
  989. package/dist/esm/react/SeamsWeb/publicApi/keyExport.js +0 -90
  990. package/dist/esm/react/SeamsWeb/publicApi/near.js +0 -449
  991. package/dist/esm/react/SeamsWeb/publicApi/preferences.js +0 -61
  992. package/dist/esm/react/SeamsWeb/publicApi/recovery.js +0 -19
  993. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +0 -238
  994. package/dist/esm/react/SeamsWeb/publicApi/transactionReview.js +0 -12
  995. package/dist/esm/react/SeamsWeb/publicApi/types.js +0 -10
  996. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +0 -3908
  997. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +0 -530
  998. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +0 -417
  999. package/dist/esm/react/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -134
  1000. package/dist/esm/react/SeamsWeb/walletIframe/client/router.js +0 -3368
  1001. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/domain.js +0 -288
  1002. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/geometry.js +0 -128
  1003. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/renderer.js +0 -119
  1004. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/transactionSurfaceQueue.js +0 -125
  1005. package/dist/esm/react/SeamsWeb/walletIframe/client/transactionReviewReservation.js +0 -96
  1006. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -252
  1007. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +0 -71
  1008. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +0 -211
  1009. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  1010. package/dist/esm/react/SeamsWeb/walletIframe/coordinator.js +0 -235
  1011. package/dist/esm/react/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +0 -158
  1012. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +0 -625
  1013. package/dist/esm/react/SeamsWeb/walletIframe/shared/is-dev-host.js +0 -11
  1014. package/dist/esm/react/SeamsWeb/walletIframe/shared/messages.js +0 -588
  1015. package/dist/esm/react/SeamsWeb/walletIframe/shared/transactionReview.js +0 -83
  1016. package/dist/esm/react/SeamsWeb/walletIframe/shared/unlockOptions.js +0 -54
  1017. package/dist/esm/react/base-styles.js +0 -13
  1018. package/dist/esm/react/build-paths.js +0 -111
  1019. package/dist/esm/react/components/AccountMenuButton/HaloBorder/HaloBorder.css +0 -101
  1020. package/dist/esm/react/config.js +0 -37
  1021. package/dist/esm/react/core/accountData/near/accountProjection.js +0 -119
  1022. package/dist/esm/react/core/accountData/near/accountRefs.js +0 -21
  1023. package/dist/esm/react/core/accountData/near/keyMaterial.js +0 -171
  1024. package/dist/esm/react/core/accountData/near/profileId.js +0 -24
  1025. package/dist/esm/react/core/browser/walletIframe/csp-stylesheet.js +0 -189
  1026. package/dist/esm/react/core/browser/walletIframe/events.js +0 -10
  1027. package/dist/esm/react/core/browser/walletIframe/host-mode.js +0 -19
  1028. package/dist/esm/react/core/browser/walletIframe/hostVariant.js +0 -16
  1029. package/dist/esm/react/core/config/chains.js +0 -90
  1030. package/dist/esm/react/core/config/configBuilder.js +0 -231
  1031. package/dist/esm/react/core/config/configHelpers.js +0 -183
  1032. package/dist/esm/react/core/config/defaultConfigs.js +0 -120
  1033. package/dist/esm/react/core/config/defineConfig.js +0 -48
  1034. package/dist/esm/react/core/config/managedRuntimeScope.js +0 -16
  1035. package/dist/esm/react/core/indexedDB/accountKeyMaterial.js +0 -68
  1036. package/dist/esm/react/core/indexedDB/accountSignerLifecycle.js +0 -143
  1037. package/dist/esm/react/core/indexedDB/index.js +0 -60
  1038. package/dist/esm/react/core/indexedDB/keyMaterialEnvelope.js +0 -69
  1039. package/dist/esm/react/core/indexedDB/lastProfileState.js +0 -22
  1040. package/dist/esm/react/core/indexedDB/linkedAuthoritySignerMaterial.js +0 -291
  1041. package/dist/esm/react/core/indexedDB/nonceLaneCoordinationStore.js +0 -115
  1042. package/dist/esm/react/core/indexedDB/normalization.js +0 -24
  1043. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +0 -482
  1044. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +0 -879
  1045. package/dist/esm/react/core/indexedDB/profileAccountProjection.js +0 -70
  1046. package/dist/esm/react/core/indexedDB/schemaNames.js +0 -845
  1047. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +0 -209
  1048. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +0 -848
  1049. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +0 -1215
  1050. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +0 -235
  1051. package/dist/esm/react/core/indexedDB/seamsWalletDB/manager.js +0 -140
  1052. package/dist/esm/react/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -145
  1053. package/dist/esm/react/core/indexedDB/seamsWalletDB/repositories.js +0 -4747
  1054. package/dist/esm/react/core/indexedDB/seamsWalletDB/schema.js +0 -23
  1055. package/dist/esm/react/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -205
  1056. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +0 -198
  1057. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +0 -569
  1058. package/dist/esm/react/core/indexedDB/singletons.js +0 -7
  1059. package/dist/esm/react/core/indexedDB/unifiedIndexedDBManager.js +0 -578
  1060. package/dist/esm/react/core/indexedDB/walletCustodyEd25519MaterialRecord.js +0 -60
  1061. package/dist/esm/react/core/platform/browser/createBrowserPlatformRuntime.js +0 -552
  1062. package/dist/esm/react/core/platform/secretSources.js +0 -111
  1063. package/dist/esm/react/core/platform/signerCoreCommandAdapters.js +0 -122
  1064. package/dist/esm/react/core/rpcClients/evm/EvmClient.js +0 -549
  1065. package/dist/esm/react/core/rpcClients/evm/nonceBackend.js +0 -279
  1066. package/dist/esm/react/core/rpcClients/near/NearClient.js +0 -56
  1067. package/dist/esm/react/core/rpcClients/near/NearRpcError.js +0 -105
  1068. package/dist/esm/react/core/rpcClients/near/rpcCalls.js +0 -376
  1069. package/dist/esm/react/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js +0 -67
  1070. package/dist/esm/react/core/rpcClients/relayer/passkeyCustodyEnvelope.js +0 -228
  1071. package/dist/esm/react/core/rpcClients/relayer/registrationSignerSetRequest.js +0 -8
  1072. package/dist/esm/react/core/rpcClients/relayer/relayerHttp.js +0 -26
  1073. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigning.js +0 -812
  1074. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigningValidation.js +0 -23
  1075. package/dist/esm/react/core/rpcClients/relayer/sealedRefreshCapabilities.js +0 -148
  1076. package/dist/esm/react/core/rpcClients/relayer/thresholdEcdsa.js +0 -237
  1077. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryFinalize.js +0 -174
  1078. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.js +0 -161
  1079. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +0 -295
  1080. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryRotate.js +0 -311
  1081. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +0 -2349
  1082. package/dist/esm/react/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +0 -719
  1083. package/dist/esm/react/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +0 -214
  1084. package/dist/esm/react/core/runtime/createSigningRuntime.js +0 -100
  1085. package/dist/esm/react/core/signingEngine/assembly/createManagers.js +0 -80
  1086. package/dist/esm/react/core/signingEngine/assembly/createPorts.js +0 -54
  1087. package/dist/esm/react/core/signingEngine/assembly/ports/emailOtp.js +0 -30
  1088. package/dist/esm/react/core/signingEngine/assembly/ports/evmFamily.js +0 -73
  1089. package/dist/esm/react/core/signingEngine/assembly/ports/near.js +0 -21
  1090. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +0 -75
  1091. package/dist/esm/react/core/signingEngine/assembly/ports/registration.js +0 -22
  1092. package/dist/esm/react/core/signingEngine/assembly/ports/session.js +0 -25
  1093. package/dist/esm/react/core/signingEngine/assembly/ports/shared.js +0 -40
  1094. package/dist/esm/react/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -67
  1095. package/dist/esm/react/core/signingEngine/assembly/ports/warmSigning.js +0 -92
  1096. package/dist/esm/react/core/signingEngine/assembly/warmup.js +0 -68
  1097. package/dist/esm/react/core/signingEngine/chains/evm/bytes.js +0 -22
  1098. package/dist/esm/react/core/signingEngine/chains/evm/display/calldata.js +0 -25
  1099. package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +0 -119
  1100. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +0 -75
  1101. package/dist/esm/react/core/signingEngine/chains/evm/display/gas.js +0 -19
  1102. package/dist/esm/react/core/signingEngine/chains/evm/display/normalization.js +0 -23
  1103. package/dist/esm/react/core/signingEngine/chains/evm/evmAdapter.js +0 -44
  1104. package/dist/esm/react/core/signingEngine/chains/evm/evmCryptoWasm.js +0 -198
  1105. package/dist/esm/react/core/signingEngine/chains/near/display.js +0 -248
  1106. package/dist/esm/react/core/signingEngine/chains/near/nearSignerWasm.js +0 -170
  1107. package/dist/esm/react/core/signingEngine/chains/near/payloads.js +0 -58
  1108. package/dist/esm/react/core/signingEngine/chains/tempo/display.js +0 -130
  1109. package/dist/esm/react/core/signingEngine/chains/tempo/feeToken.js +0 -187
  1110. package/dist/esm/react/core/signingEngine/chains/tempo/tempoAdapter.js +0 -49
  1111. package/dist/esm/react/core/signingEngine/chains/tempo/tempoSignerWasm.js +0 -90
  1112. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -428
  1113. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +0 -660
  1114. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -243
  1115. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +0 -353
  1116. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +0 -216
  1117. package/dist/esm/react/core/signingEngine/flows/recovery/exportLaneSelection.js +0 -283
  1118. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportConfirmation.js +0 -325
  1119. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportFlow.js +0 -81
  1120. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +0 -195
  1121. package/dist/esm/react/core/signingEngine/flows/recovery/public.js +0 -26
  1122. package/dist/esm/react/core/signingEngine/flows/recovery/stepUpAuthorization.js +0 -139
  1123. package/dist/esm/react/core/signingEngine/flows/registration/accountLifecycle.js +0 -1098
  1124. package/dist/esm/react/core/signingEngine/flows/registration/nearProvisioningRegistry.js +0 -79
  1125. package/dist/esm/react/core/signingEngine/flows/registration/public.js +0 -85
  1126. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js +0 -77
  1127. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaWalletRecords.js +0 -15
  1128. package/dist/esm/react/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +0 -83
  1129. package/dist/esm/react/core/signingEngine/flows/registration/services/registrationAccounts.js +0 -30
  1130. package/dist/esm/react/core/signingEngine/flows/registration/session.js +0 -24
  1131. package/dist/esm/react/core/signingEngine/flows/shared/signingConfirmation.js +0 -194
  1132. package/dist/esm/react/core/signingEngine/flows/shared/signingStateMachine.js +0 -485
  1133. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/accountAuth.js +0 -12
  1134. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/addresses.js +0 -10
  1135. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/authPlanning.js +0 -139
  1136. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaLanes.js +0 -102
  1137. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +0 -233
  1138. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpPublic.js +0 -123
  1139. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +0 -227
  1140. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/errors.js +0 -127
  1141. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/events.js +0 -39
  1142. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/evmNonceLifecycle.js +0 -49
  1143. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/executorThresholdState.js +0 -22
  1144. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.js +0 -98
  1145. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.js +0 -76
  1146. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceLifecycleAdapter.js +0 -245
  1147. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceResolution.js +0 -91
  1148. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/operationIds.js +0 -33
  1149. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +0 -383
  1150. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -191
  1151. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.js +0 -128
  1152. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +0 -512
  1153. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +0 -65
  1154. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +0 -26
  1155. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signatureUses.js +0 -12
  1156. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signerLoader.js +0 -25
  1157. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +0 -76
  1158. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +0 -182
  1159. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.js +0 -84
  1160. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +0 -631
  1161. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +0 -391
  1162. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/stepUpAuthorization.js +0 -56
  1163. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/tempoNonceLifecycle.js +0 -47
  1164. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +0 -87
  1165. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +0 -143
  1166. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/types.js +0 -20
  1167. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/webauthnP256KeyRef.js +0 -33
  1168. package/dist/esm/react/core/signingEngine/flows/signNear/implicitAccountFunding.js +0 -202
  1169. package/dist/esm/react/core/signingEngine/flows/signNear/nearSigningFlow.js +0 -56
  1170. package/dist/esm/react/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +0 -102
  1171. package/dist/esm/react/core/signingEngine/flows/signNear/shared/confirmationProgress.js +0 -28
  1172. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.js +0 -101
  1173. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +0 -822
  1174. package/dist/esm/react/core/signingEngine/flows/signNear/shared/implicitAccountFundingPort.js +0 -24
  1175. package/dist/esm/react/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.js +0 -68
  1176. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -343
  1177. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingMaterials.js +0 -25
  1178. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +0 -138
  1179. package/dist/esm/react/core/signingEngine/flows/signNear/signDelegate.js +0 -290
  1180. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +0 -1238
  1181. package/dist/esm/react/core/signingEngine/flows/signNear/signNep413.js +0 -144
  1182. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +0 -897
  1183. package/dist/esm/react/core/signingEngine/flows/signNear/signatureUses.js +0 -12
  1184. package/dist/esm/react/core/signingEngine/flows/signNear/stepUpAuthorization.js +0 -42
  1185. package/dist/esm/react/core/signingEngine/interfaces/accountAuthMetadata.js +0 -14
  1186. package/dist/esm/react/core/signingEngine/interfaces/ecdsaChainTarget.js +0 -142
  1187. package/dist/esm/react/core/signingEngine/interfaces/operationStepUpPreparation.js +0 -18
  1188. package/dist/esm/react/core/signingEngine/nonce/NonceCoordinator.js +0 -1026
  1189. package/dist/esm/react/core/signingEngine/nonce/evmNonceLane.js +0 -182
  1190. package/dist/esm/react/core/signingEngine/nonce/nearNonceLane.js +0 -669
  1191. package/dist/esm/react/core/signingEngine/nonce/nearNonceLaneIdentity.js +0 -24
  1192. package/dist/esm/react/core/signingEngine/nonce/nonceCoordinationRecordBoundary.js +0 -216
  1193. package/dist/esm/react/core/signingEngine/nonce/nonceDiagnostics.js +0 -232
  1194. package/dist/esm/react/core/signingEngine/nonce/nonceLaneKeys.js +0 -110
  1195. package/dist/esm/react/core/signingEngine/nonce/nonceLeaseState.js +0 -128
  1196. package/dist/esm/react/core/signingEngine/nonce/nonceTypes.js +0 -59
  1197. package/dist/esm/react/core/signingEngine/nonce/nonceUtils.js +0 -33
  1198. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.js +0 -74
  1199. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -217
  1200. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +0 -1216
  1201. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.js +0 -53
  1202. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -22
  1203. package/dist/esm/react/core/signingEngine/session/SigningSessionCoordinator.js +0 -347
  1204. package/dist/esm/react/core/signingEngine/session/authority/authorityOperationResolver.js +0 -165
  1205. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +0 -1073
  1206. package/dist/esm/react/core/signingEngine/session/availability/canonicalLaneInventory.js +0 -127
  1207. package/dist/esm/react/core/signingEngine/session/availability/clientSessionExpiryInvalidator.js +0 -72
  1208. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +0 -213
  1209. package/dist/esm/react/core/signingEngine/session/availability/readiness.js +0 -464
  1210. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -47
  1211. package/dist/esm/react/core/signingEngine/session/emailOtp/challengeDelivery.js +0 -56
  1212. package/dist/esm/react/core/signingEngine/session/emailOtp/coordinatorRuntime.js +0 -131
  1213. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +0 -106
  1214. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -50
  1215. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +0 -941
  1216. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +0 -414
  1217. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +0 -268
  1218. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +0 -95
  1219. package/dist/esm/react/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -376
  1220. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecovery.js +0 -286
  1221. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -50
  1222. package/dist/esm/react/core/signingEngine/session/emailOtp/persistedSnapshot.js +0 -22
  1223. package/dist/esm/react/core/signingEngine/session/emailOtp/publicTypes.js +0 -38
  1224. package/dist/esm/react/core/signingEngine/session/emailOtp/routePlan.js +0 -60
  1225. package/dist/esm/react/core/signingEngine/session/emailOtp/runtimeConfig.js +0 -24
  1226. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -49
  1227. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.js +0 -234
  1228. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRuntimePurpose.js +0 -16
  1229. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +0 -40
  1230. package/dist/esm/react/core/signingEngine/session/emailOtp/status.js +0 -72
  1231. package/dist/esm/react/core/signingEngine/session/emailOtp/walletUnlock.js +0 -168
  1232. package/dist/esm/react/core/signingEngine/session/emailOtp/warmSessionRuntime.js +0 -70
  1233. package/dist/esm/react/core/signingEngine/session/emailOtp/workerEnrollment.js +0 -159
  1234. package/dist/esm/react/core/signingEngine/session/emailOtp/workerRequests.js +0 -84
  1235. package/dist/esm/react/core/signingEngine/session/emailOtp/zeroize.js +0 -9
  1236. package/dist/esm/react/core/signingEngine/session/identity/clientSessionPersistenceState.js +0 -95
  1237. package/dist/esm/react/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.js +0 -23
  1238. package/dist/esm/react/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -265
  1239. package/dist/esm/react/core/signingEngine/session/identity/exactSigningLaneIdentity.js +0 -338
  1240. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -106
  1241. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionReader.js +0 -54
  1242. package/dist/esm/react/core/signingEngine/session/identity/laneIdentity.js +0 -168
  1243. package/dist/esm/react/core/signingEngine/session/identity/ownerLaneScope.js +0 -185
  1244. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +0 -349
  1245. package/dist/esm/react/core/signingEngine/session/identity/signingLaneAuthBinding.js +0 -29
  1246. package/dist/esm/react/core/signingEngine/session/keyMaterialBrands.js +0 -75
  1247. package/dist/esm/react/core/signingEngine/session/lanes/walletExecutionLaneHydration.js +0 -194
  1248. package/dist/esm/react/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.js +0 -32
  1249. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionFailure.js +0 -69
  1250. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionStatus.js +0 -123
  1251. package/dist/esm/react/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.js +0 -171
  1252. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +0 -323
  1253. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityHydration.js +0 -75
  1254. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +0 -510
  1255. package/dist/esm/react/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +0 -122
  1256. package/dist/esm/react/core/signingEngine/session/material/ecdsaSealedRuntime.js +0 -197
  1257. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +0 -231
  1258. package/dist/esm/react/core/signingEngine/session/material/linkedEcdsaHolderRuntime.js +0 -36
  1259. package/dist/esm/react/core/signingEngine/session/material/mpcCapabilityHydration.js +0 -79
  1260. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js +0 -80
  1261. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +0 -122
  1262. package/dist/esm/react/core/signingEngine/session/material/restorableMpcMaterialRef.internal.js +0 -21
  1263. package/dist/esm/react/core/signingEngine/session/material/walletSigningStateFailure.js +0 -84
  1264. package/dist/esm/react/core/signingEngine/session/operationState/authorizationAdmission.js +0 -98
  1265. package/dist/esm/react/core/signingEngine/session/operationState/lanes.js +0 -127
  1266. package/dist/esm/react/core/signingEngine/session/operationState/preparedOperation.js +0 -38
  1267. package/dist/esm/react/core/signingEngine/session/operationState/trace.js +0 -94
  1268. package/dist/esm/react/core/signingEngine/session/operationState/transactionState.js +0 -106
  1269. package/dist/esm/react/core/signingEngine/session/operationState/types.js +0 -88
  1270. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaBootstrap.js +0 -187
  1271. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -206
  1272. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaRecovery.js +0 -87
  1273. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaSessionProvision.js +0 -224
  1274. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +0 -147
  1275. package/dist/esm/react/core/signingEngine/session/passkey/ed25519Provisioner.js +0 -55
  1276. package/dist/esm/react/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -229
  1277. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +0 -537
  1278. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +0 -94
  1279. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoSealedSession.js +0 -57
  1280. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +0 -317
  1281. package/dist/esm/react/core/signingEngine/session/passkey/passkeyCustodySessionCache.js +0 -90
  1282. package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +0 -60
  1283. package/dist/esm/react/core/signingEngine/session/passkey/public.js +0 -15
  1284. package/dist/esm/react/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +0 -247
  1285. package/dist/esm/react/core/signingEngine/session/passkey/warmSessionHydration.js +0 -9
  1286. package/dist/esm/react/core/signingEngine/session/persistence/clientSessionPersistence.js +0 -143
  1287. package/dist/esm/react/core/signingEngine/session/persistence/durableSealedSessionCommands.js +0 -30
  1288. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +0 -316
  1289. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaSealedRecordKey.js +0 -20
  1290. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +0 -764
  1291. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionStore.js +0 -518
  1292. package/dist/esm/react/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.js +0 -51
  1293. package/dist/esm/react/core/signingEngine/session/planning/operationFingerprint.js +0 -30
  1294. package/dist/esm/react/core/signingEngine/session/planning/operationIdBinding.js +0 -36
  1295. package/dist/esm/react/core/signingEngine/session/planning/planner.js +0 -98
  1296. package/dist/esm/react/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -165
  1297. package/dist/esm/react/core/signingEngine/session/public.js +0 -44
  1298. package/dist/esm/react/core/signingEngine/session/routerAbSigningWalletSession.js +0 -125
  1299. package/dist/esm/react/core/signingEngine/session/sealedRecovery/exactRecordLookup.js +0 -148
  1300. package/dist/esm/react/core/signingEngine/session/sealedRecovery/materialActivationKey.js +0 -22
  1301. package/dist/esm/react/core/signingEngine/session/sealedRecovery/recoveryRecord.js +0 -248
  1302. package/dist/esm/react/core/signingEngine/session/sealedRecovery/restoreCoordinator.js +0 -229
  1303. package/dist/esm/react/core/signingEngine/session/userPreferences.js +0 -212
  1304. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReader.js +0 -62
  1305. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +0 -293
  1306. package/dist/esm/react/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.js +0 -44
  1307. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +0 -107
  1308. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapQueue.js +0 -22
  1309. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +0 -93
  1310. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +0 -50
  1311. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -9
  1312. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +0 -251
  1313. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +0 -98
  1314. package/dist/esm/react/core/signingEngine/session/warmCapabilities/public.js +0 -31
  1315. package/dist/esm/react/core/signingEngine/session/warmCapabilities/readModel.js +0 -161
  1316. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +0 -256
  1317. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +0 -73
  1318. package/dist/esm/react/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +0 -67
  1319. package/dist/esm/react/core/signingEngine/session/warmCapabilities/statusReader.js +0 -100
  1320. package/dist/esm/react/core/signingEngine/session/warmCapabilities/transitions.js +0 -51
  1321. package/dist/esm/react/core/signingEngine/session/warmCapabilities/types.js +0 -122
  1322. package/dist/esm/react/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +0 -45
  1323. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmCommon.js +0 -89
  1324. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmTypes.js +0 -12
  1325. package/dist/esm/react/core/signingEngine/stepUpConfirmation/confirmOperation.js +0 -51
  1326. package/dist/esm/react/core/signingEngine/stepUpConfirmation/intentDigestPreparation.js +0 -29
  1327. package/dist/esm/react/core/signingEngine/stepUpConfirmation/methodSelection.js +0 -41
  1328. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -32
  1329. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.js +0 -108
  1330. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/promptText.js +0 -8
  1331. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/signingPrompt.js +0 -15
  1332. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +0 -295
  1333. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -170
  1334. package/dist/esm/react/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +0 -63
  1335. package/dist/esm/react/core/signingEngine/stepUpConfirmation/types.js +0 -29
  1336. package/dist/esm/react/core/signingEngine/stepUpConfirmation/userConfirmationType.js +0 -15
  1337. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +0 -125
  1338. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +0 -616
  1339. package/dist/esm/react/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -70
  1340. package/dist/esm/react/core/signingEngine/threshold/ecdsa/activation.js +0 -267
  1341. package/dist/esm/react/core/signingEngine/threshold/ecdsa/bootstrapSession.js +0 -119
  1342. package/dist/esm/react/core/signingEngine/threshold/ecdsa/operationStepUp.js +0 -110
  1343. package/dist/esm/react/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.js +0 -132
  1344. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +0 -58
  1345. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +0 -52
  1346. package/dist/esm/react/core/signingEngine/threshold/ed25519/connectSession.js +0 -137
  1347. package/dist/esm/react/core/signingEngine/threshold/ed25519/walletSession.js +0 -363
  1348. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +0 -146
  1349. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoClient.js +0 -597
  1350. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js +0 -23
  1351. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +0 -295
  1352. package/dist/esm/react/core/signingEngine/threshold/sessionPolicy.js +0 -94
  1353. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcExportManager.js +0 -233
  1354. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +0 -496
  1355. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +0 -745
  1356. package/dist/esm/react/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -600
  1357. package/dist/esm/react/core/signingEngine/uiConfirm/confirmationReadinessRegistry.js +0 -41
  1358. package/dist/esm/react/core/signingEngine/uiConfirm/exportConfirmRequest.js +0 -149
  1359. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/determineConfirmationConfig.js +0 -82
  1360. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flowOrchestrator.js +0 -363
  1361. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +0 -337
  1362. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/request.js +0 -120
  1363. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -150
  1364. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/registration.js +0 -235
  1365. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.js +0 -178
  1366. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/signing.js +0 -684
  1367. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.js +0 -90
  1368. package/dist/esm/react/core/signingEngine/uiConfirm/nearFundingNotice.js +0 -50
  1369. package/dist/esm/react/core/signingEngine/uiConfirm/transactionReviewAdmission.js +0 -8
  1370. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance-token-vars.js +0 -31
  1371. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance.js +0 -27
  1372. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +0 -346
  1373. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-ui.js +0 -516
  1374. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-body-model.js +0 -24
  1375. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-model.js +0 -161
  1376. package/dist/esm/react/core/signingEngine/uiConfirm/ui/drawer-gesture.js +0 -16
  1377. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +0 -155
  1378. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-viewer-host.js +0 -207
  1379. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +0 -131
  1380. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +0 -29
  1381. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +0 -49
  1382. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +0 -137
  1383. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +0 -294
  1384. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +0 -67
  1385. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/CopyStatusIcon.js +0 -41
  1386. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +0 -141
  1387. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +0 -92
  1388. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +0 -318
  1389. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/HaloBorder.js +0 -91
  1390. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.js +0 -32
  1391. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyHaloLoading.js +0 -63
  1392. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +0 -75
  1393. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +0 -33
  1394. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +0 -518
  1395. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +0 -128
  1396. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/SeamsWordmark.js +0 -22
  1397. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +0 -158
  1398. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +0 -287
  1399. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +0 -311
  1400. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +0 -284
  1401. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/clipboard.js +0 -26
  1402. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +0 -80
  1403. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-styles.js +0 -20
  1404. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/email-otp-session.js +0 -178
  1405. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +0 -297
  1406. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +0 -86
  1407. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +0 -82
  1408. package/dist/esm/react/core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js +0 -6
  1409. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +0 -12
  1410. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-resize-events.js +0 -18
  1411. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-activity.js +0 -46
  1412. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +0 -325
  1413. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/enrichDisplayModelWithAbi.js +0 -77
  1414. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/confirmation-tree.js +0 -27
  1415. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/formatters.js +0 -57
  1416. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.js +0 -12
  1417. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.js +0 -52
  1418. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.js +0 -12
  1419. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.js +0 -12
  1420. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.js +0 -62
  1421. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +0 -258
  1422. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-receipt.js +0 -50
  1423. package/dist/esm/react/core/signingEngine/uiConfirm/warmSessionUiConfirm.js +0 -65
  1424. package/dist/esm/react/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -123
  1425. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +0 -94
  1426. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +0 -171
  1427. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyStepRunner.js +0 -20
  1428. package/dist/esm/react/core/signingEngine/walletCustody/ed25519ActiveClient.js +0 -100
  1429. package/dist/esm/react/core/signingEngine/walletCustody/ed25519Projection.js +0 -32
  1430. package/dist/esm/react/core/signingEngine/walletCustody/ed25519SeedMaterial.js +0 -92
  1431. package/dist/esm/react/core/signingEngine/walletCustody/emailOtpLink.js +0 -135
  1432. package/dist/esm/react/core/signingEngine/walletCustody/joinCustodyWire.js +0 -64
  1433. package/dist/esm/react/core/signingEngine/walletCustody/openCustodyCache.js +0 -130
  1434. package/dist/esm/react/core/signingEngine/walletCustody/passkeyLink.js +0 -183
  1435. package/dist/esm/react/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +0 -60
  1436. package/dist/esm/react/core/signingEngine/walletCustody/registrationCeremony.js +0 -461
  1437. package/dist/esm/react/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +0 -258
  1438. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -24
  1439. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -76
  1440. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEd25519.js +0 -129
  1441. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -180
  1442. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -103
  1443. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.js +0 -154
  1444. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +0 -36
  1445. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/helpers.js +0 -273
  1446. package/dist/esm/react/core/signingEngine/webauthnAuth/device/signerSlot.js +0 -25
  1447. package/dist/esm/react/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  1448. package/dist/esm/react/core/signingEngine/workerManager/SignerWorkerManager.js +0 -70
  1449. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +0 -323
  1450. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +0 -158
  1451. package/dist/esm/react/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -17
  1452. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignLifecycle.js +0 -6
  1453. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.js +0 -49
  1454. package/dist/esm/react/core/signingEngine/workerManager/executeWorkerOperation.js +0 -12
  1455. package/dist/esm/react/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  1456. package/dist/esm/react/core/signingEngine/workerManager/validation.js +0 -114
  1457. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +0 -777
  1458. package/dist/esm/react/core/signingEngine/workerManager/workerTypes.js +0 -109
  1459. package/dist/esm/react/core/types/accountIds.js +0 -26
  1460. package/dist/esm/react/core/types/actionBuilders.js +0 -73
  1461. package/dist/esm/react/core/types/confirmationConfig.js +0 -39
  1462. package/dist/esm/react/core/types/eventLogging.js +0 -28
  1463. package/dist/esm/react/core/types/linkDevice.js +0 -49
  1464. package/dist/esm/react/core/types/sdkSentEvents.js +0 -602
  1465. package/dist/esm/react/core/types/secure-confirm-worker.js +0 -22
  1466. package/dist/esm/react/core/types/signer-worker.js +0 -50
  1467. package/dist/esm/react/core/types/walletIframeIdentity.js +0 -15
  1468. package/dist/esm/react/core/walletRuntimePaths/base.js +0 -60
  1469. package/dist/esm/react/core/walletRuntimePaths/emailOtpWorker.js +0 -12
  1470. package/dist/esm/react/core/walletRuntimePaths/multichainWorkers.js +0 -25
  1471. package/dist/esm/react/core/walletRuntimePaths/walletCustodyCeremonyWorker.js +0 -18
  1472. package/dist/esm/react/core/walletRuntimePaths/workers.js +0 -93
  1473. package/dist/esm/react/externalEvm/boundary.js +0 -309
  1474. package/dist/esm/react/externalEvm/controller.js +0 -440
  1475. package/dist/esm/react/externalEvm/types.js +0 -31
  1476. package/dist/esm/react/node_modules/@noble/hashes/esm/_u64.js +0 -36
  1477. package/dist/esm/react/node_modules/@noble/hashes/esm/sha3.js +0 -197
  1478. package/dist/esm/react/node_modules/@noble/hashes/esm/utils.js +0 -87
  1479. package/dist/esm/react/node_modules/viem/_esm/errors/abi.js +0 -48
  1480. package/dist/esm/react/node_modules/viem/_esm/errors/address.js +0 -14
  1481. package/dist/esm/react/node_modules/viem/_esm/errors/base.js +0 -86
  1482. package/dist/esm/react/node_modules/viem/_esm/errors/data.js +0 -16
  1483. package/dist/esm/react/node_modules/viem/_esm/errors/encoding.js +0 -16
  1484. package/dist/esm/react/node_modules/viem/_esm/errors/typedData.js +0 -28
  1485. package/dist/esm/react/node_modules/viem/_esm/errors/version.js +0 -6
  1486. package/dist/esm/react/node_modules/viem/_esm/utils/abi/encodeAbiParameters.js +0 -243
  1487. package/dist/esm/react/node_modules/viem/_esm/utils/address/getAddress.js +0 -28
  1488. package/dist/esm/react/node_modules/viem/_esm/utils/address/isAddress.js +0 -23
  1489. package/dist/esm/react/node_modules/viem/_esm/utils/data/concat.js +0 -23
  1490. package/dist/esm/react/node_modules/viem/_esm/utils/data/isHex.js +0 -10
  1491. package/dist/esm/react/node_modules/viem/_esm/utils/data/pad.js +0 -40
  1492. package/dist/esm/react/node_modules/viem/_esm/utils/data/size.js +0 -16
  1493. package/dist/esm/react/node_modules/viem/_esm/utils/data/slice.js +0 -59
  1494. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/fromHex.js +0 -13
  1495. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toBytes.js +0 -175
  1496. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toHex.js +0 -168
  1497. package/dist/esm/react/node_modules/viem/_esm/utils/hash/keccak256.js +0 -15
  1498. package/dist/esm/react/node_modules/viem/_esm/utils/lru.js +0 -38
  1499. package/dist/esm/react/node_modules/viem/_esm/utils/regex.js +0 -7
  1500. package/dist/esm/react/node_modules/viem/_esm/utils/signature/hashTypedData.js +0 -113
  1501. package/dist/esm/react/node_modules/viem/_esm/utils/stringify.js +0 -9
  1502. package/dist/esm/react/node_modules/viem/_esm/utils/typedData.js +0 -80
  1503. package/dist/esm/react/shared-ts/src/authorization/capabilityKinds.js +0 -111
  1504. package/dist/esm/react/shared-ts/src/authorization/delegatedAuthority.js +0 -121
  1505. package/dist/esm/react/shared-ts/src/authorization/index.js +0 -6
  1506. package/dist/esm/react/shared-ts/src/authorization/operationFingerprint.js +0 -57
  1507. package/dist/esm/react/shared-ts/src/authorization/walletAuthority.js +0 -719
  1508. package/dist/esm/react/shared-ts/src/authorization/walletCustodyOperation.js +0 -16
  1509. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +0 -118
  1510. package/dist/esm/react/shared-ts/src/device-linking/activeWalletSession.js +0 -104
  1511. package/dist/esm/react/shared-ts/src/device-linking/authorityActivation.js +0 -142
  1512. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +0 -273
  1513. package/dist/esm/react/shared-ts/src/device-linking/contracts.js +0 -8
  1514. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +0 -134
  1515. package/dist/esm/react/shared-ts/src/device-linking/deviceManagement.js +0 -120
  1516. package/dist/esm/react/shared-ts/src/device-linking/digests.js +0 -115
  1517. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +0 -171
  1518. package/dist/esm/react/shared-ts/src/device-linking/index.js +0 -12
  1519. package/dist/esm/react/shared-ts/src/device-linking/parsers.js +0 -1029
  1520. package/dist/esm/react/shared-ts/src/device-linking/requestProof.js +0 -25
  1521. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +0 -545
  1522. package/dist/esm/react/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +0 -173
  1523. package/dist/esm/react/shared-ts/src/device-linking/wireFields.js +0 -59
  1524. package/dist/esm/react/shared-ts/src/near/actions.js +0 -236
  1525. package/dist/esm/react/shared-ts/src/near/nearClient.js +0 -252
  1526. package/dist/esm/react/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +0 -43
  1527. package/dist/esm/react/shared-ts/src/passkey-custody/custodyEnvelope.js +0 -278
  1528. package/dist/esm/react/shared-ts/src/passkey-custody/custodySecretBinding.js +0 -181
  1529. package/dist/esm/react/shared-ts/src/passkey-custody/index.js +0 -4
  1530. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +0 -58
  1531. package/dist/esm/react/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +0 -49
  1532. package/dist/esm/react/shared-ts/src/signing-lanes/index.js +0 -8
  1533. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +0 -66
  1534. package/dist/esm/react/shared-ts/src/signing-lanes/participantDigest.js +0 -2
  1535. package/dist/esm/react/shared-ts/src/signing-lanes/participants.js +0 -256
  1536. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +0 -483
  1537. package/dist/esm/react/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1538. package/dist/esm/react/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1539. package/dist/esm/react/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1540. package/dist/esm/react/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1541. package/dist/esm/react/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -39
  1542. package/dist/esm/react/shared-ts/src/threshold/ed25519OperationFingerprint.js +0 -222
  1543. package/dist/esm/react/shared-ts/src/threshold/keyMaterialBrands.js +0 -25
  1544. package/dist/esm/react/shared-ts/src/threshold/participants.js +0 -67
  1545. package/dist/esm/react/shared-ts/src/threshold/secp256k1.js +0 -6
  1546. package/dist/esm/react/shared-ts/src/threshold/sessionPolicy.js +0 -8
  1547. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +0 -40
  1548. package/dist/esm/react/shared-ts/src/utils/addAuthMethodRegistration.js +0 -103
  1549. package/dist/esm/react/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1550. package/dist/esm/react/shared-ts/src/utils/authenticatorOptions.js +0 -22
  1551. package/dist/esm/react/shared-ts/src/utils/base58.js +0 -28
  1552. package/dist/esm/react/shared-ts/src/utils/base64.js +0 -70
  1553. package/dist/esm/react/shared-ts/src/utils/canonicalPrimitives.js +0 -38
  1554. package/dist/esm/react/shared-ts/src/utils/digestEncoding.js +0 -63
  1555. package/dist/esm/react/shared-ts/src/utils/digests.js +0 -33
  1556. package/dist/esm/react/shared-ts/src/utils/domainIds.js +0 -257
  1557. package/dist/esm/react/shared-ts/src/utils/ecdsaCapabilityActivation.js +0 -67
  1558. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -46
  1559. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -39
  1560. package/dist/esm/react/shared-ts/src/utils/emailOtpDomain.js +0 -28
  1561. package/dist/esm/react/shared-ts/src/utils/emailOtpRecoveryKey.js +0 -65
  1562. package/dist/esm/react/shared-ts/src/utils/encoders.js +0 -2
  1563. package/dist/esm/react/shared-ts/src/utils/errors.js +0 -95
  1564. package/dist/esm/react/shared-ts/src/utils/evmRpcResults.js +0 -101
  1565. package/dist/esm/react/shared-ts/src/utils/exactRecord.js +0 -44
  1566. package/dist/esm/react/shared-ts/src/utils/index.js +0 -38
  1567. package/dist/esm/react/shared-ts/src/utils/jsonRpc.js +0 -64
  1568. package/dist/esm/react/shared-ts/src/utils/keccak.js +0 -150
  1569. package/dist/esm/react/shared-ts/src/utils/near.js +0 -205
  1570. package/dist/esm/react/shared-ts/src/utils/nearRpcResults.js +0 -205
  1571. package/dist/esm/react/shared-ts/src/utils/normalize.js +0 -86
  1572. package/dist/esm/react/shared-ts/src/utils/registrationAuthMethodInput.js +0 -84
  1573. package/dist/esm/react/shared-ts/src/utils/registrationEstablishedSession.js +0 -275
  1574. package/dist/esm/react/shared-ts/src/utils/registrationIds.js +0 -226
  1575. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +0 -396
  1576. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +0 -442
  1577. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1334
  1578. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +0 -747
  1579. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519YaoDigests.js +0 -76
  1580. package/dist/esm/react/shared-ts/src/utils/routerAbNormalSigningIdentity.js +0 -115
  1581. package/dist/esm/react/shared-ts/src/utils/routerAbPublicKeyset.js +0 -11
  1582. package/dist/esm/react/shared-ts/src/utils/routerAbTraceContext.js +0 -36
  1583. package/dist/esm/react/shared-ts/src/utils/secureRandomId.js +0 -35
  1584. package/dist/esm/react/shared-ts/src/utils/signerDomain.js +0 -37
  1585. package/dist/esm/react/shared-ts/src/utils/signerSlot.js +0 -12
  1586. package/dist/esm/react/shared-ts/src/utils/signingSessionSeal.js +0 -98
  1587. package/dist/esm/react/shared-ts/src/utils/theme.js +0 -8
  1588. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +0 -28
  1589. package/dist/esm/react/shared-ts/src/utils/validation.js +0 -92
  1590. package/dist/esm/react/shared-ts/src/utils/walletAddSignerActivation.js +0 -32
  1591. package/dist/esm/react/shared-ts/src/utils/walletAuthAuthority.js +0 -224
  1592. package/dist/esm/react/shared-ts/src/utils/walletAuthMethodRecord.js +0 -357
  1593. package/dist/esm/react/shared-ts/src/utils/walletCapabilityBindings.js +0 -277
  1594. package/dist/esm/react/shared-ts/src/utils/walletSessionFailure.js +0 -28
  1595. package/dist/esm/react/shared-ts/src/utils/webauthnDeviceInfo.js +0 -50
  1596. package/dist/esm/react/shared-ts/src/utils/wireSchema.js +0 -66
  1597. package/dist/esm/react/shared-ts/src/wallet-recovery/index.js +0 -10
  1598. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +0 -35
  1599. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -34
  1600. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +0 -24
  1601. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodes.js +0 -3
  1602. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -14
  1603. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +0 -254
  1604. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +0 -153
  1605. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +0 -84
  1606. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +0 -64
  1607. package/dist/esm/react/theme/base-styles.js +0 -117
  1608. package/dist/esm/react/theme/palette.js +0 -170
  1609. package/dist/esm/react/utils/deviceDetection.js +0 -95
  1610. package/dist/esm/react/utils/intentDigest.js +0 -77
  1611. package/dist/esm/react/utils/qrScanner.js +0 -297
  1612. package/dist/esm/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1613. package/dist/esm/sdk/EvmClient-f3gUhS2L.js +0 -644
  1614. package/dist/esm/sdk/NearClient-DY4NfHeD.js +0 -402
  1615. package/dist/esm/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1616. package/dist/esm/sdk/accountIds-DhIPGOSN.js +0 -23
  1617. package/dist/esm/sdk/accountLifecycle-BAGG_rbk.js +0 -1341
  1618. package/dist/esm/sdk/actions-CCvThiKe.js +0 -225
  1619. package/dist/esm/sdk/adapters-B4JeK1nJ.js +0 -4864
  1620. package/dist/esm/sdk/base-D1B5mGin.js +0 -64
  1621. package/dist/esm/sdk/base64-Clm8C-e9.js +0 -68
  1622. package/dist/esm/sdk/browser-D6eZGhzE.js +0 -2393
  1623. package/dist/esm/sdk/bytes-qKxKn4gg.js +0 -40
  1624. package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1625. package/dist/esm/sdk/canonicalSignerErrorCode-CRoJMVpp.js +0 -153
  1626. package/dist/esm/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1627. package/dist/esm/sdk/chains-BMh3btVo.js +0 -124
  1628. package/dist/esm/sdk/challengeDelivery-Dd0586fo.js +0 -74
  1629. package/dist/esm/sdk/chunk-BtrIJ4_z.js +0 -33
  1630. package/dist/esm/sdk/configHelpers-vAQCzUD0.js +0 -179
  1631. package/dist/esm/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1632. package/dist/esm/sdk/defaultConfigs-B3c16M_8.js +0 -355
  1633. package/dist/esm/sdk/display-KdIL0ff7.js +0 -126
  1634. package/dist/esm/sdk/domainIds-lcrFg6Sa.js +0 -338
  1635. package/dist/esm/sdk/ecdsaCapabilityManifest-kzO_fW09.js +0 -817
  1636. package/dist/esm/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1637. package/dist/esm/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +0 -1983
  1638. package/dist/esm/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1639. package/dist/esm/sdk/ecdsaWalletRecords-Cz4m6bIz.js +0 -18
  1640. package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
  1641. package/dist/esm/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1642. package/dist/esm/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1643. package/dist/esm/sdk/errors-93h9uAW9.js +0 -92
  1644. package/dist/esm/sdk/events-DYoBL2HO.js +0 -8
  1645. package/dist/esm/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1646. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +0 -4288
  1647. package/dist/esm/sdk/exactSessionState-CiD5fBEs.js +0 -2612
  1648. package/dist/esm/sdk/exactSigningLaneIdentity-DQeqPMST.js +0 -335
  1649. package/dist/esm/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1650. package/dist/esm/sdk/export-viewer-host-ZqA2Yz3H.js +0 -204
  1651. package/dist/esm/sdk/helpers-ZrowMnev.js +0 -302
  1652. package/dist/esm/sdk/host-BWBbCAMu.js +0 -533
  1653. package/dist/esm/sdk/intentDigest-CvOSNlCH.js +0 -75
  1654. package/dist/esm/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1655. package/dist/esm/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1656. package/dist/esm/sdk/keccak-DUL3d8SF.js +0 -148
  1657. package/dist/esm/sdk/keyMaterialBrands-CX41hur6.js +0 -94
  1658. package/dist/esm/sdk/localOnly-Bg8UuLZ5.js +0 -146
  1659. package/dist/esm/sdk/messages-C7Dbx9iN.js +0 -594
  1660. package/dist/esm/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1661. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1662. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DPb0s3hQ.js +0 -4008
  1663. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js +0 -405
  1664. package/dist/esm/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1665. package/dist/esm/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1666. package/dist/esm/sdk/normalization-CBt413-z.js +0 -22
  1667. package/dist/esm/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1668. package/dist/esm/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1669. package/dist/esm/sdk/passkey-custody-Bk1jAknm.js +0 -487
  1670. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js +0 -237
  1671. package/dist/esm/sdk/prfCache-wqQSjYLn.js +0 -58
  1672. package/dist/esm/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1673. package/dist/esm/sdk/promptText-CuRa_ivd.js +0 -32
  1674. package/dist/esm/sdk/recovery-entrypoint-DW2tGyMs.js +0 -779
  1675. package/dist/esm/sdk/registration-BZDzDv91.js +0 -14414
  1676. package/dist/esm/sdk/registration-BzVHODuD.js +0 -233
  1677. package/dist/esm/sdk/registrationAccounts-CKku_Sgy.js +0 -33
  1678. package/dist/esm/sdk/registrationIds-DLSdEKSv.js +0 -310
  1679. package/dist/esm/sdk/registrationIntent-D0PxwEY4.js +0 -393
  1680. package/dist/esm/sdk/registrationPreparationPreload-CIAuRlxI.js +0 -13
  1681. package/dist/esm/sdk/registrationSignerPlan-CAikVZZQ.js +0 -440
  1682. package/dist/esm/sdk/relayerHttp-VC8Holz1.js +0 -24
  1683. package/dist/esm/sdk/routePlan-D59x5xzQ.js +0 -83
  1684. package/dist/esm/sdk/router-C5lF_J_u.js +0 -4721
  1685. package/dist/esm/sdk/routerAbNormalSigning-fhvpDtmY.js +0 -992
  1686. package/dist/esm/sdk/runtime-auth-DFTqwj3u.js +0 -5540
  1687. package/dist/esm/sdk/runtime-device-link-C1Oub8Lw.js +0 -259
  1688. package/dist/esm/sdk/runtime-ecdsa-tempo-rkWwolw1.js +0 -177
  1689. package/dist/esm/sdk/runtime-email-otp-vuUG5LYl.js +0 -320
  1690. package/dist/esm/sdk/runtime-export-FZWj0HxJ.js +0 -112
  1691. package/dist/esm/sdk/runtime-near-B9cjurVD.js +0 -278
  1692. package/dist/esm/sdk/runtime-preferences-Dq0bfyS5.js +0 -67
  1693. package/dist/esm/sdk/runtime-recovery-C-vfFKF3.js +0 -45
  1694. package/dist/esm/sdk/runtime-recovery-codes-bTm3fLV4.js +0 -95
  1695. package/dist/esm/sdk/runtimeContext-iLXnxVlZ.js +0 -44443
  1696. package/dist/esm/sdk/runtimeLoader-hod6T2-m.js +0 -44
  1697. package/dist/esm/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1698. package/dist/esm/sdk/secp256k1-el9aE4Sv.js +0 -2504
  1699. package/dist/esm/sdk/secureRandomId-BORsmdS4.js +0 -33
  1700. package/dist/esm/sdk/sessionPolicy-CHiilOAB.js +0 -453
  1701. package/dist/esm/sdk/shared-DkbeLCI3.js +0 -33
  1702. package/dist/esm/sdk/signEvmFamily-e4IWWsZs.js +0 -4666
  1703. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js +0 -226
  1704. package/dist/esm/sdk/signEvmWithUiConfirm-C61TCBnh.js +0 -27
  1705. package/dist/esm/sdk/signNear-Bblwn2kT.js +0 -5929
  1706. package/dist/esm/sdk/signatureUses-BkGyYt8F.js +0 -51
  1707. package/dist/esm/sdk/signerDomain-IEAVrOrc.js +0 -59
  1708. package/dist/esm/sdk/signerLoader-D7Aey0FD.js +0 -23
  1709. package/dist/esm/sdk/signerSlot-_ovonwVX.js +0 -10
  1710. package/dist/esm/sdk/signingFlow-rZfPegH9.js +0 -1320
  1711. package/dist/esm/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1712. package/dist/esm/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1713. package/dist/esm/sdk/trace-rHe0wz7q.js +0 -127
  1714. package/dist/esm/sdk/transaction-activity-CSMCveBn.js +0 -218
  1715. package/dist/esm/sdk/transactionReview-DpHLTznU.js +0 -100
  1716. package/dist/esm/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1717. package/dist/esm/sdk/transactionState-DP9O8F6f.js +0 -1885
  1718. package/dist/esm/sdk/types-Dx9fczU7.js +0 -111
  1719. package/dist/esm/sdk/validation-gat4LEKm.js +0 -409
  1720. package/dist/esm/sdk/wallet-recovery-Bz9qKgaL.js +0 -1905
  1721. package/dist/esm/sdk/walletAuthority-BQBxgUBn.js +0 -1251
  1722. package/dist/esm/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js +0 -11130
  1723. package/dist/esm/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1724. package/dist/esm/sdk/walletRecoveryCommit-sjGNTHUj.js +0 -2159
  1725. package/dist/esm/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1726. package/dist/esm/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1727. package/dist/esm/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1728. package/dist/esm/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1729. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1730. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1731. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1732. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1733. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1734. package/dist/esm/styles.css +0 -43
  1735. package/dist/public/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1736. package/dist/public/sdk/EvmClient-f3gUhS2L.js +0 -644
  1737. package/dist/public/sdk/NearClient-DY4NfHeD.js +0 -402
  1738. package/dist/public/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1739. package/dist/public/sdk/accountIds-DhIPGOSN.js +0 -23
  1740. package/dist/public/sdk/accountLifecycle-BAGG_rbk.js +0 -1341
  1741. package/dist/public/sdk/actions-CCvThiKe.js +0 -225
  1742. package/dist/public/sdk/adapters-B4JeK1nJ.js +0 -4864
  1743. package/dist/public/sdk/base-D1B5mGin.js +0 -64
  1744. package/dist/public/sdk/base64-Clm8C-e9.js +0 -68
  1745. package/dist/public/sdk/browser-D6eZGhzE.js +0 -2393
  1746. package/dist/public/sdk/bytes-qKxKn4gg.js +0 -40
  1747. package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1748. package/dist/public/sdk/canonicalSignerErrorCode-CRoJMVpp.js +0 -153
  1749. package/dist/public/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1750. package/dist/public/sdk/chains-BMh3btVo.js +0 -124
  1751. package/dist/public/sdk/challengeDelivery-Dd0586fo.js +0 -74
  1752. package/dist/public/sdk/chunk-BtrIJ4_z.js +0 -33
  1753. package/dist/public/sdk/configHelpers-vAQCzUD0.js +0 -179
  1754. package/dist/public/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1755. package/dist/public/sdk/defaultConfigs-B3c16M_8.js +0 -355
  1756. package/dist/public/sdk/display-KdIL0ff7.js +0 -126
  1757. package/dist/public/sdk/domainIds-lcrFg6Sa.js +0 -338
  1758. package/dist/public/sdk/ecdsaCapabilityManifest-kzO_fW09.js +0 -817
  1759. package/dist/public/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1760. package/dist/public/sdk/ecdsaPresignLifecycle-BFOTNYCK.js +0 -1983
  1761. package/dist/public/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1762. package/dist/public/sdk/ecdsaWalletRecords-Cz4m6bIz.js +0 -18
  1763. package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
  1764. package/dist/public/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1765. package/dist/public/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1766. package/dist/public/sdk/errors-93h9uAW9.js +0 -92
  1767. package/dist/public/sdk/events-DYoBL2HO.js +0 -8
  1768. package/dist/public/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1769. package/dist/public/sdk/evmFamilyEcdsaIdentity-Co5XDcEA.js +0 -4288
  1770. package/dist/public/sdk/exactSessionState-CiD5fBEs.js +0 -2612
  1771. package/dist/public/sdk/exactSigningLaneIdentity-DQeqPMST.js +0 -335
  1772. package/dist/public/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1773. package/dist/public/sdk/export-viewer-host-ZqA2Yz3H.js +0 -204
  1774. package/dist/public/sdk/helpers-ZrowMnev.js +0 -302
  1775. package/dist/public/sdk/host-BWBbCAMu.js +0 -533
  1776. package/dist/public/sdk/intentDigest-CvOSNlCH.js +0 -75
  1777. package/dist/public/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1778. package/dist/public/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1779. package/dist/public/sdk/keccak-DUL3d8SF.js +0 -148
  1780. package/dist/public/sdk/keyMaterialBrands-CX41hur6.js +0 -94
  1781. package/dist/public/sdk/localOnly-Bg8UuLZ5.js +0 -146
  1782. package/dist/public/sdk/messages-C7Dbx9iN.js +0 -594
  1783. package/dist/public/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1784. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1785. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DPb0s3hQ.js +0 -4008
  1786. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BeD-SmbK.js +0 -405
  1787. package/dist/public/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1788. package/dist/public/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1789. package/dist/public/sdk/normalization-CBt413-z.js +0 -22
  1790. package/dist/public/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1791. package/dist/public/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1792. package/dist/public/sdk/passkey-custody-Bk1jAknm.js +0 -487
  1793. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-DLzBb3WQ.js +0 -237
  1794. package/dist/public/sdk/prfCache-wqQSjYLn.js +0 -58
  1795. package/dist/public/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1796. package/dist/public/sdk/promptText-CuRa_ivd.js +0 -32
  1797. package/dist/public/sdk/recovery-entrypoint-DW2tGyMs.js +0 -779
  1798. package/dist/public/sdk/registration-BZDzDv91.js +0 -14414
  1799. package/dist/public/sdk/registration-BzVHODuD.js +0 -233
  1800. package/dist/public/sdk/registrationAccounts-CKku_Sgy.js +0 -33
  1801. package/dist/public/sdk/registrationIds-DLSdEKSv.js +0 -310
  1802. package/dist/public/sdk/registrationIntent-D0PxwEY4.js +0 -393
  1803. package/dist/public/sdk/registrationPreparationPreload-CIAuRlxI.js +0 -13
  1804. package/dist/public/sdk/registrationSignerPlan-CAikVZZQ.js +0 -440
  1805. package/dist/public/sdk/relayerHttp-VC8Holz1.js +0 -24
  1806. package/dist/public/sdk/routePlan-D59x5xzQ.js +0 -83
  1807. package/dist/public/sdk/router-C5lF_J_u.js +0 -4721
  1808. package/dist/public/sdk/routerAbNormalSigning-fhvpDtmY.js +0 -992
  1809. package/dist/public/sdk/runtime-auth-DFTqwj3u.js +0 -5540
  1810. package/dist/public/sdk/runtime-device-link-C1Oub8Lw.js +0 -259
  1811. package/dist/public/sdk/runtime-ecdsa-tempo-rkWwolw1.js +0 -177
  1812. package/dist/public/sdk/runtime-email-otp-vuUG5LYl.js +0 -320
  1813. package/dist/public/sdk/runtime-export-FZWj0HxJ.js +0 -112
  1814. package/dist/public/sdk/runtime-near-B9cjurVD.js +0 -278
  1815. package/dist/public/sdk/runtime-preferences-Dq0bfyS5.js +0 -67
  1816. package/dist/public/sdk/runtime-recovery-C-vfFKF3.js +0 -45
  1817. package/dist/public/sdk/runtime-recovery-codes-bTm3fLV4.js +0 -95
  1818. package/dist/public/sdk/runtimeContext-iLXnxVlZ.js +0 -44443
  1819. package/dist/public/sdk/runtimeLoader-hod6T2-m.js +0 -44
  1820. package/dist/public/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1821. package/dist/public/sdk/secp256k1-el9aE4Sv.js +0 -2504
  1822. package/dist/public/sdk/secureRandomId-BORsmdS4.js +0 -33
  1823. package/dist/public/sdk/sessionPolicy-CHiilOAB.js +0 -453
  1824. package/dist/public/sdk/shared-DkbeLCI3.js +0 -33
  1825. package/dist/public/sdk/signEvmFamily-e4IWWsZs.js +0 -4666
  1826. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-Cu9qdk8M.js +0 -226
  1827. package/dist/public/sdk/signEvmWithUiConfirm-C61TCBnh.js +0 -27
  1828. package/dist/public/sdk/signNear-Bblwn2kT.js +0 -5929
  1829. package/dist/public/sdk/signatureUses-BkGyYt8F.js +0 -51
  1830. package/dist/public/sdk/signerDomain-IEAVrOrc.js +0 -59
  1831. package/dist/public/sdk/signerLoader-D7Aey0FD.js +0 -23
  1832. package/dist/public/sdk/signerSlot-_ovonwVX.js +0 -10
  1833. package/dist/public/sdk/signingFlow-rZfPegH9.js +0 -1320
  1834. package/dist/public/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1835. package/dist/public/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1836. package/dist/public/sdk/trace-rHe0wz7q.js +0 -127
  1837. package/dist/public/sdk/transaction-activity-CSMCveBn.js +0 -218
  1838. package/dist/public/sdk/transactionReview-DpHLTznU.js +0 -100
  1839. package/dist/public/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1840. package/dist/public/sdk/transactionState-DP9O8F6f.js +0 -1885
  1841. package/dist/public/sdk/types-Dx9fczU7.js +0 -111
  1842. package/dist/public/sdk/validation-gat4LEKm.js +0 -409
  1843. package/dist/public/sdk/wallet-recovery-Bz9qKgaL.js +0 -1905
  1844. package/dist/public/sdk/walletAuthority-BQBxgUBn.js +0 -1251
  1845. package/dist/public/sdk/walletCustodyEcdsaContinuity-Hn4ORIbf.js +0 -11130
  1846. package/dist/public/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1847. package/dist/public/sdk/walletRecoveryCommit-sjGNTHUj.js +0 -2159
  1848. package/dist/public/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1849. package/dist/public/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1850. package/dist/public/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1851. package/dist/public/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1852. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  1853. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  1854. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  1855. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  1856. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  1857. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  1858. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  1859. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  1860. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/webauthn-bridge.d.ts +0 -3
  1861. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.d.ts +0 -52
  1862. package/dist/types/wallet/src/core/signingEngine/interfaces/nearKeyOps.d.ts +0 -15
  1863. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/coordinatorRuntime.d.ts +0 -43
  1864. package/dist/types/wallet/src/core/signingEngine/session/holderShares/forbiddenHolderSharePayloads.typecheck.d.ts +0 -2
  1865. package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareHandle.d.ts +0 -6
  1866. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.typecheck.d.ts +0 -2
  1867. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/activationCoordinator.d.ts +0 -37
  1868. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/laneMaterialInvalidation.d.ts +0 -23
  1869. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/operations.typecheck.d.ts +0 -2
  1870. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/recipientPreparation.d.ts +0 -55
  1871. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.typecheck.d.ts +0 -6
  1872. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.d.ts +0 -4
  1873. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/evm.d.ts +0 -5
  1874. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/near.d.ts +0 -5
  1875. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/renderers/tempo.d.ts +0 -5
  1876. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.d.ts +0 -44
  1877. package/dist/types/wallet/src/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.d.ts +0 -4
  1878. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/ecdsaLaneHolderWorkerRuntime.d.ts +0 -20
  1879. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/passkeyCustodyLink.d.ts +0 -18
  1880. /package/dist/esm/{react/SeamsWeb → SeamsWeb}/assembly/preconnectWalletAssets.js +0 -0
@@ -1,3818 +0,0 @@
1
- import { base58Encode } from "../../../shared-ts/src/utils/base58.js";
2
- import { deriveImplicitNearAccountIdFromEd25519PublicKey } from "../../../shared-ts/src/utils/near.js";
3
- import { getUserFriendlyErrorMessage } from "../../../shared-ts/src/utils/errors.js";
4
- import { base64UrlDecode, base64UrlEncode } from "../../../shared-ts/src/utils/base64.js";
5
- import { isObject } from "../../../shared-ts/src/utils/validation.js";
6
- import { alphabetizeStringify, sha256BytesUtf8, sha256HexUtf8 } from "../../../shared-ts/src/utils/digests.js";
7
- import { normalizeRuntimePolicyScope } from "../../../shared-ts/src/threshold/signingRootScope.js";
8
- import { redactCredentialExtensionOutputs } from "../../../core/signingEngine/webauthnAuth/credentials/credentialExtensions.js";
9
- import { parseThresholdEd25519SessionId, parseWalletAuthMethodId, parseWebAuthnCredentialIdB64u } from "../../../shared-ts/src/utils/domainIds.js";
10
- import { parseCorrelationId, parseDigestB64u, parseIsoTimestamp } from "../../../shared-ts/src/utils/canonicalPrimitives.js";
11
- import { parseCanonicalEcdsaServerActivationRequest } from "../../../shared-ts/src/utils/ecdsaCapabilityActivation.js";
12
- import { walletSessionPreservesCapabilities } from "../../../shared-ts/src/device-linking/activeWalletSession.js";
13
- import { buildEmailOtpWalletAuthAuthority, parseEmailOtpWalletAuthAuthority, walletAuthAuthorityRef } from "../../../shared-ts/src/utils/walletAuthAuthority.js";
14
- import { parseRouterAbEcdsaVerifiedClientActivationFactsV1 } from "../../../shared-ts/src/utils/routerAbEcdsaDerivation.js";
15
- import { parseNearEd25519SigningKeyId, walletIdFromString } from "../../../shared-ts/src/utils/registrationIds.js";
16
- import { requireEvmFamilySigningKeySlotId } from "../../../shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js";
17
- import { parseSdkEcdsaDerivationSigningRootId, parseSdkEcdsaDerivationSigningRootVersion } from "../../../shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js";
18
- import "../../../shared-ts/src/signing-lanes/index.js";
19
- import { thresholdEcdsaChainTargetFromChainFamily, toWalletId } from "../../../core/signingEngine/interfaces/ecdsaChainTarget.js";
20
- import { toParticipantId, toRpId } from "../../../core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js";
21
- import { nearEd25519SignerBindingFromBoundaryFields } from "../../../core/signingEngine/session/identity/exactSigningLaneIdentity.js";
22
- import { buildEmailOtpAuthContext, emailOtpAuthContextEmailHashHex, emailOtpAuthContextProvider, emailOtpAuthContextProviderUserId } from "../../../core/signingEngine/session/identity/laneIdentity.js";
23
- import { toAccountId } from "../../../core/types/accountIds.js";
24
- import { parseEcdsaRelayerKeyId } from "../../../shared-ts/src/threshold/keyMaterialBrands.js";
25
- import { parseEcdsaClientVerifyingPublicKey33B64u, parseEcdsaRoleLocalBindingDigest, parseEcdsaThresholdKeyId } from "../../../core/signingEngine/session/keyMaterialBrands.js";
26
- import { buildEmailOtpEnvelopeFactor, buildPasskeyEnvelopeFactor } from "../../../shared-ts/src/passkey-custody/custodyEnvelope.js";
27
- import { walletCustodyCommitPayloadWithRecoveryBackupAcknowledgement } from "../../../shared-ts/src/passkey-custody/ceremonyCommitPayload.js";
28
- import "../../../shared-ts/src/passkey-custody/index.js";
29
- import { ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1, sameRouterAbEd25519YaoRegistrationAdmissionRequestV1 } from "../../../shared-ts/src/utils/routerAbEd25519Yao.js";
30
- import { RegistrationEventPhase, createRegistrationFlowEvent } from "../../../core/types/sdkSentEvents.js";
31
- import { WalletSessionStatusReadScope } from "../../../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
32
- import { publishNearProvisioningState, runSingleFlightNearProvisioning } from "../../../core/signingEngine/flows/registration/nearProvisioningRegistry.js";
33
- import { recordWalletCustodyTiming } from "../../../core/signingEngine/walletCustody/ceremonyDriver.js";
34
- import { joinCustodyJsonFromEstablishedCommitPayload, walletCustodyCommitPayloadForWire } from "../../../core/signingEngine/walletCustody/registrationCeremony.js";
35
- import { createRouterAbTraceContextV1 } from "../../../shared-ts/src/utils/routerAbTraceContext.js";
36
- import { RouterAbEd25519YaoClientV1 } from "../../../core/signingEngine/threshold/ed25519/yaoClient.js";
37
- import { buildRecoveredCustodyEnvelopeRecord } from "../../../core/signingEngine/walletCustody/recoveryReplacementEnvelope.js";
38
- import { WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND } from "../../../core/indexedDB/walletCustodyEd25519MaterialRecord.js";
39
- import { findRegistrationSignerPlanEvmFamilyEcdsaBranch, findRegistrationSignerPlanNearEd25519Branch, registrationSignerPlanFromSelection } from "../../../shared-ts/src/utils/registrationSignerPlan.js";
40
- import { planPendingNearRegistration, preparePendingNearRegistration } from "../../../core/indexedDB/pendingWalletRegistrationCommit.js";
41
- import { walletSessionAuthorizations } from "../../../core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
42
- import { IndexedDBManager } from "../../../core/indexedDB/index.js";
43
- import { nearEd25519YaoMaterialActivationFromMetadata } from "../../../core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js";
44
- import { activateWalletRegistration, completeWalletRegistrationNearProvisioning, createWalletAddSignerIntent, finalizeWalletAddSigner, isEmailOtpWalletRegistrationFinalizeResponse, parseWalletRegistrationEcdsaDerivationRespond, respondWalletRegistration, setupWalletRegistration, startWalletAddSigner } from "../../../core/rpcClients/relayer/walletRegistration.js";
45
- import { persistPasskeyEd25519YaoSignerMaterialV1 } from "../../../core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js";
46
- import { prepareWalletEcdsaRegistrationPublication, prepareWalletEd25519RegistrationPublication, prepareWalletEmailOtpEd25519RegistrationPublication } from "../../../core/signingEngine/flows/registration/accountLifecycle.js";
47
- import { computeAddSignerIntentDigest } from "../../../utils/intentDigest.js";
48
- import { establishUnlockedWalletEd25519ExportRootCapabilityV1, walletCustodyCeremonyTransportFromWorkerContextV1 } from "../../../core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js";
49
- import { rememberPasskeyCustodySessionEnvelope } from "../../../core/signingEngine/session/passkey/passkeyCustodySessionCache.js";
50
- import { listConfiguredThresholdEcdsaPublicationTargets } from "../session/thresholdEcdsaProvisioning.js";
51
- import { openWalletCustodyEd25519ActiveClientV1, walletCustodyCacheEnvelopeFromRecordV1 } from "../../../core/signingEngine/walletCustody/openCustodyCache.js";
52
- import { RegistrationTimingRecorder, assertNever, createFailedRegistrationTimingSummary, createSucceededRegistrationTimingSummary, emitNearRegistrationTiming, emitRegistrationTimingSpan, emitRegistrationTimingSummary, recordRegistrationServerTimingBuckets, recordStrictEcdsaServerTimingBuckets, registrationTimingSignerSetFromPlan, roundDurationMs, zeroEmailOtpYaoPrewarmDiagnostics } from "./registrationTiming.js";
53
- import { joinCustodyWireFromEnvelopeRecord } from "../../../core/signingEngine/walletCustody/joinCustodyWire.js";
54
- import { buildStrictRegistrationClientBootstrap, closeStrictEcdsaRegistrationCeremony, finalizeStrictEcdsaFamilyLocalActivation, measureStrictEcdsaCeremonyStep, registrationRouteHeaders, requireIssuedRegistrationEstablishedSession, runStrictEcdsaFamilyCeremony } from "./registrationStrictEcdsa.js";
55
- import { admitDeferredNearRegistration, buildRegistrationEmailOtpEd25519SessionState, buildRegistrationPasskeyEd25519SessionHydration, passkeyWalletAuthAuthorityFromCredential, registrationEd25519MaterialFacts, requireEd25519YaoRegistrationPublicResultMatches, requireEmailOtpEd25519YaoRegistrationPublicResultMatches, requireEmailOtpRegistrationEnrollmentMaterial, requirePasskeyRegistrationIntent } from "./registrationEd25519Yao.js";
56
- import { requirePasskeyPrfFirstB64u } from "../authMethods/passkey/ecdsaBootstrap.js";
57
- import { registrationProjectionFromPending, restorePendingNearRegistrationMaterial } from "./pendingRegistrationRecovery.js";
58
- import { scheduleEcdsaSessionPresignaturePrefill } from "../auth/scheduleEcdsaSessionPresignaturePrefill.js";
59
- import { resolveManagedRuntimeScopeBootstrap } from "../../../core/config/managedRuntimeScope.js";
60
- import { exactPasskeyWalletAuthAuthorityRefForCredential } from "../authMethods/passkey/exactPasskeyAuthority.js";
61
- import { collectPasskeyRegistrationAuthority } from "../authMethods/passkey/registrationAuthority.js";
62
- import { showWalletRecoveryCodeBackupUi } from "../recovery/walletRecoveryCodeBackup.js";
63
- import { pendingWalletRecoveryCodeBackupRepository } from "../../../core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js";
64
- import { registrationFinalizeIdempotencyKeyFromString } from "../../publicApi/types.js";
65
- import { collectEmailOtpRegistrationAuthority } from "../authMethods/emailOtp/registrationAuthority.js";
66
- import { admitVerifiedPasskeyEd25519YaoAddSignerV1 } from "../../../core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js";
67
- import { buildPendingRegistrationCommit, buildRegistrationPersistenceAuth, buildRegistrationPersistenceEcdsa, buildRegistrationPersistencePlan, commitRegistrationPersistencePlan, finalizeRegistrationEcdsaSessions, finalizeResponseViewFromActivatedEcdsa, requireFinalizedPasskeyCredentialPublicKeyB64u, requireWebAuthnRpId } from "./registrationTerminalCommit.js";
68
- //#region src/SeamsWeb/operations/registration/registration.ts
69
- async function confirmWalletRecoveryCodesBackedUp(context, walletId, backup, recoveryCodes) {
70
- if (recoveryCodes.length !== 10 || new Set(recoveryCodes).size !== 10) throw new Error("Wallet custody must issue exactly ten distinct recovery codes");
71
- switch ((await resolveRegistrationRecoveryCodeBackup({
72
- backup,
73
- context,
74
- request: {
75
- kind: "wallet_recovery_code_backup_request_v1",
76
- walletId,
77
- recoveryCodes,
78
- continuation: "registration_may_defer"
79
- }
80
- }))?.kind) {
81
- case "wallet_recovery_codes_backed_up_v1": return;
82
- case "wallet_recovery_code_backup_deferred_v1":
83
- await pendingWalletRecoveryCodeBackupRepository.write({
84
- walletId,
85
- recoveryCodes
86
- });
87
- return;
88
- default: throw new Error("Wallet recovery-code backup result is invalid");
89
- }
90
- }
91
- async function resolveRegistrationRecoveryCodeBackup(input) {
92
- if (!input.backup) return { kind: "wallet_recovery_code_backup_deferred_v1" };
93
- switch (input.backup.kind) {
94
- case "defer_to_account_menu": return { kind: "wallet_recovery_code_backup_deferred_v1" };
95
- case "show_builtin_dialog": return await showWalletRecoveryCodeBackupUi(input.request, input.context.signingEngine.getWalletIframeSurfaceMeasurementBinding());
96
- case "custom_handler": return await input.backup.handler(input.request);
97
- default: return assertNever(input.backup);
98
- }
99
- }
100
- function zeroizeArrayBuffer(buffer) {
101
- if (buffer.byteLength > 0) new Uint8Array(buffer).fill(0);
102
- }
103
- function walletCustodyRegistrationMaterial(args) {
104
- const metadata = args.established.metadata;
105
- return {
106
- binding: {
107
- kind: WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND,
108
- applicationBindingDigestB64u: args.established.localMaterial.applicationBindingDigestB64u,
109
- registeredPublicKeyB64u: base64UrlEncode(metadata.registeredPublicKey),
110
- participantIds: metadata.participantIds,
111
- stateEpoch: String(metadata.stateEpoch),
112
- walletId: args.walletId,
113
- nearAccountId: args.nearAccountId,
114
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
115
- signerSlot: args.signerSlot,
116
- signingWorkerId: metadata.scope.signing_worker_id,
117
- signingWorkerVerifyingShareB64u: base64UrlEncode(metadata.signingWorkerVerifyingShare)
118
- },
119
- sealed: {
120
- ciphertextB64u: args.established.localMaterial.b64u,
121
- nonceB64u: args.established.localMaterial.nonceB64u
122
- }
123
- };
124
- }
125
- function pendingRegistrationEd25519MetadataFromJoined(joined) {
126
- const metadata = joined.metadata;
127
- return {
128
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata),
129
- registeredPublicKeyB64u: base64UrlEncode(metadata.registeredPublicKey),
130
- signingWorkerVerifyingShareB64u: base64UrlEncode(metadata.signingWorkerVerifyingShare),
131
- stateEpoch: String(metadata.stateEpoch),
132
- signingWorkerId: metadata.scope.signing_worker_id,
133
- participantIds: metadata.participantIds,
134
- nearEd25519SigningKeyId: metadata.applicationBinding.near_ed25519_signing_key_id,
135
- signerSlot: metadata.applicationBinding.key_creation_signer_slot
136
- };
137
- }
138
- function walletCustodyCacheEnvelopeFromRegistrationCommit(commit) {
139
- const established = commit.establishedCustody;
140
- if (!established) throw new Error("Mixed registration custody commit is missing its established envelope");
141
- return {
142
- bindingJson: established.envelopeBindingJson,
143
- nonceB64u: established.envelopeNonceB64u,
144
- ciphertextB64u: established.sealedCustodySecretB64u,
145
- aadHashB64u: established.envelopeAadHashB64u,
146
- ciphertextDigestB64u: established.envelopeCiphertextDigestB64u
147
- };
148
- }
149
- function custodyEnvelopeFromRegistrationCommit(args) {
150
- const established = args.commit.establishedCustody;
151
- if (!established) throw new Error("Passkey registration custody commit is missing its established envelope");
152
- return buildRecoveredCustodyEnvelopeRecord({
153
- expectedWalletId: args.walletId,
154
- replacement: established,
155
- activatedAtMs: args.activatedAtMs
156
- });
157
- }
158
- async function establishPasskeyRegistrationEd25519ExportRootCapability(args) {
159
- await args.signingEngine.establishUnlockedWalletEd25519ExportRootCapabilityV1({
160
- existingEnvelope: custodyEnvelopeFromRegistrationCommit({
161
- commit: args.commit,
162
- walletId: args.walletId,
163
- activatedAtMs: Date.now()
164
- }),
165
- passkeyPrfFirstB64u: args.passkeyPrfFirstB64u,
166
- walletId: args.walletId,
167
- walletAuthMethodId: args.walletAuthMethodId,
168
- walletSessionId: args.walletSessionId,
169
- expiresAtMs: args.expiresAtMs
170
- });
171
- }
172
- async function establishEmailOtpRegistrationEd25519ExportRootCapability(args) {
173
- try {
174
- await establishUnlockedWalletEd25519ExportRootCapabilityV1(walletCustodyCeremonyTransportFromWorkerContextV1(args.context.signingEngine.getSignerWorkerContext()), {
175
- existingEnvelope: custodyEnvelopeFromRegistrationCommit({
176
- commit: args.commit,
177
- walletId: args.walletId,
178
- activatedAtMs: Date.now()
179
- }),
180
- existingFactorSecret: args.factorSecret32,
181
- walletId: args.walletId,
182
- walletAuthMethodId: String(args.emailOtpAuthContext.authority.bindingId),
183
- walletSessionId: args.walletSessionId,
184
- expiresAtMs: args.expiresAtMs
185
- });
186
- } catch (error) {
187
- console.warn("[registration][email-otp] unlocked Ed25519 export-root capability was not established:", error instanceof Error ? error.message : String(error || "unknown error"));
188
- }
189
- }
190
- async function rememberPasskeyRegistrationCustodyEnvelope(args) {
191
- const envelope = custodyEnvelopeFromRegistrationCommit(args);
192
- if (envelope.factor.kind !== "passkey") throw new Error("Passkey registration custody commit has a non-passkey factor");
193
- await rememberPasskeyCustodySessionEnvelope({
194
- walletId: args.walletId,
195
- credentialIdB64u: envelope.factor.credentialIdB64u,
196
- envelope
197
- });
198
- }
199
- function buildRegistrationEmailOtpEd25519RecoveryBootstrap(args) {
200
- const metadata = args.joined.metadata;
201
- const thresholdSessionId = parseThresholdEd25519SessionId(metadata.scope.threshold_session_id);
202
- if (!thresholdSessionId.ok) throw new Error("Registration Ed25519 capability has an invalid threshold session");
203
- return {
204
- kind: ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1,
205
- session: {
206
- walletId: args.walletId,
207
- nearAccountId: args.nearAccountId,
208
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
209
- authorityScope: {
210
- kind: "email_otp",
211
- provider: emailOtpAuthContextProvider(args.authContext),
212
- providerUserId: emailOtpAuthContextProviderUserId(args.authContext)
213
- },
214
- thresholdSessionId: thresholdSessionId.value,
215
- authorizationId: args.sessionState.signingWalletSession.authorizationId,
216
- walletSessionId: args.sessionState.walletSessionId,
217
- quotaId: args.sessionState.quotaId,
218
- expiresAtMs: args.sessionState.signingWalletSession.expiresAtMs,
219
- participantIds: metadata.participantIds,
220
- remainingUses: args.sessionState.signingWalletSession.remainingUses,
221
- signingRootId: args.sessionState.signingRootId,
222
- signingRootVersion: args.sessionState.signingRootVersion,
223
- runtimePolicyScope: args.sessionState.runtimePolicyScope,
224
- routerAbNormalSigning: args.sessionState.routerAbNormalSigning
225
- },
226
- capability: {
227
- kind: "router_ab_ed25519_yao_active_capability_v1",
228
- materialActivation: metadata.materialActivation,
229
- activeCapabilityBinding: metadata.activeCapabilityBinding,
230
- registeredPublicKey: [...metadata.registeredPublicKey],
231
- nearAccountId: args.nearAccountId,
232
- applicationBinding: metadata.applicationBinding,
233
- runtimePolicyScope: args.sessionState.runtimePolicyScope,
234
- participantIds: metadata.participantIds,
235
- lifecycle: {
236
- lifecycleId: metadata.scope.lifecycle_id,
237
- rootShareEpoch: metadata.scope.root_share_epoch,
238
- accountId: metadata.scope.account_id,
239
- thresholdSessionId: thresholdSessionId.value,
240
- signerSetId: metadata.scope.signer_set_id,
241
- signingWorkerId: metadata.scope.signing_worker_id
242
- },
243
- stateEpoch: Number(metadata.stateEpoch),
244
- registrationContinuity: {
245
- kind: "registration",
246
- admissionRequest: args.deferredNear.admissionRequest,
247
- admissionReceipt: args.admissionReceipt,
248
- activationTranscript: [...metadata.transcript]
249
- }
250
- }
251
- };
252
- }
253
- const hostedPasskeyRegistrationPreparedBrand = Symbol("hostedPasskeyRegistrationPrepared");
254
- const hostedPasskeyRegistrationStates = /* @__PURE__ */ new WeakMap();
255
- function registrationSignerPlanFromSignerSet(selection) {
256
- const plan = registrationSignerPlanFromSelection(selection);
257
- if (!plan.ok) throw new Error(plan.message);
258
- return plan.value;
259
- }
260
- function registrationWarmupWork(context) {
261
- return context.signingEngine.warmCriticalResources.bind(context.signingEngine, { kind: "none" });
262
- }
263
- function registrationPlanBranchIncludesNearEd25519(branch) {
264
- return branch.kind === "near_ed25519";
265
- }
266
- function registrationSelectionRequiresEmailOtpYaoWarmup(signerSelection) {
267
- return registrationSignerPlanFromSignerSet(signerSelection).branches.some(registrationPlanBranchIncludesNearEd25519);
268
- }
269
- function noEmailOtpYaoPrewarm() {
270
- return Promise.resolve(zeroEmailOtpYaoPrewarmDiagnostics());
271
- }
272
- function registrationSelectionIncludesEcdsa(signerSelection) {
273
- return signerSelection.signers.some((signer) => signer.kind === "evm_family_ecdsa");
274
- }
275
- function registrationEmailOtpYaoPrewarmWork(input) {
276
- if (input.authMethod.kind !== "email_otp" || !registrationSelectionRequiresEmailOtpYaoWarmup(input.signerSelection)) return noEmailOtpYaoPrewarm;
277
- return executeRegistrationEmailOtpYaoPrewarm.bind(void 0, { prewarm: input.context.signingEngine.prewarmEmailOtpYao.bind(input.context.signingEngine) });
278
- }
279
- function recoverEmailOtpYaoPrewarmFailure(_error, startedAt) {
280
- const elapsedMs = roundDurationMs(startedAt);
281
- return {
282
- kind: "failed",
283
- elapsedMs,
284
- workerPrewarmMs: elapsedMs,
285
- yaoWasmInitMs: 0,
286
- failureStage: "worker_ready"
287
- };
288
- }
289
- function executeRegistrationEmailOtpYaoPrewarm(input) {
290
- const startedAt = performance.now();
291
- return input.prewarm().catch((error) => recoverEmailOtpYaoPrewarmFailure(error, startedAt));
292
- }
293
- function completedRegistrationWarmup(results) {
294
- const [diagnostics, emailOtpYao] = results;
295
- return {
296
- kind: "completed",
297
- diagnostics: {
298
- ...diagnostics,
299
- emailOtpWorkerPrewarmMs: emailOtpYao.workerPrewarmMs,
300
- emailOtpYaoWasmInitMs: emailOtpYao.yaoWasmInitMs,
301
- emailOtpYaoPrewarm: emailOtpYao
302
- }
303
- };
304
- }
305
- function failedRegistrationWarmup(error) {
306
- return {
307
- kind: "failed",
308
- error
309
- };
310
- }
311
- function startRegistrationWarmup(input) {
312
- const genericWarmup = input.recorder.measure("registrationWarmupMs", registrationWarmupWork(input.context));
313
- const emailOtpYaoWarmup = input.recorder.measure("registrationWarmupEmailOtpYaoWasmInitMs", registrationEmailOtpYaoPrewarmWork({
314
- context: input.context,
315
- authMethod: input.authMethod,
316
- signerSelection: input.signerSelection
317
- }));
318
- if (registrationSelectionIncludesEcdsa(input.signerSelection)) input.context.signingEngine.prewarmEcdsaRegistrationCrypto?.().catch(() => {});
319
- return Promise.all([genericWarmup, emailOtpYaoWarmup]).then(completedRegistrationWarmup, failedRegistrationWarmup);
320
- }
321
- function observeRegistrationWarmup(input) {
322
- input.warmup.then((outcome) => {
323
- if (outcome.kind === "completed") input.recorder.captureWarmupDiagnostics(outcome.diagnostics);
324
- });
325
- }
326
- function registrationPreparationSignerSlot(signerSelection) {
327
- return findRegistrationSignerPlanNearEd25519Branch(registrationSignerPlanFromSignerSet(signerSelection))?.signerSlot ?? 1;
328
- }
329
- async function resolvePasskeyRegistrationAuthority(args) {
330
- if (args.passkeyExecution?.kind === "use_hosted_preparation") return await args.passkeyExecution.authority;
331
- return await collectPasskeyRegistrationAuthority({
332
- context: args.context,
333
- walletId: args.walletId,
334
- signerSlot: args.signerSlot,
335
- registrationIntentDigestB64u: args.registrationIntentDigestB64u,
336
- options: args.options,
337
- confirmationConfigOverride: args.confirmationConfigOverride
338
- });
339
- }
340
- function hostedPasskeyRegistrationState(prepared) {
341
- if (prepared[hostedPasskeyRegistrationPreparedBrand] !== true) throw new Error("Invalid hosted passkey registration preparation");
342
- const state = hostedPasskeyRegistrationStates.get(prepared);
343
- if (!state) throw new Error("Hosted passkey registration preparation is unknown");
344
- return state;
345
- }
346
- function hostedPasskeyRegistrationBinding(args) {
347
- return alphabetizeStringify({
348
- wallet: args.wallet,
349
- signerSelection: args.signerSelection,
350
- authMethod: args.authMethod,
351
- walletId: args.walletId,
352
- signerSlot: args.signerSlot,
353
- rpId: args.rpId,
354
- challengeB64u: args.challengeB64u
355
- });
356
- }
357
- /**
358
- * Near-provisioning retries must present the SAME operation identity.
359
- *
360
- * The server's Yao consume writes a first-writer consumer binding derived from
361
- * the request fingerprint, which includes this key. A fresh key per attempt
362
- * would permanently poison the activation on any ambiguous first attempt —
363
- * the retry would arrive as a different consumer and hit `activation_consumed`
364
- * forever. Deriving the key from the ceremony and activation reference makes
365
- * every retry the same consumer, so takeover resume works instead.
366
- */
367
- async function deriveNearProvisioningIdempotencyKey(input) {
368
- return registrationFinalizeIdempotencyKeyFromString(`wallet-registration-near-provisioning:${await sha256HexUtf8([
369
- "wallet-registration-near-provisioning",
370
- input.registrationCeremonyId,
371
- input.activationReference.lifecycle_id,
372
- input.activationReference.session_id.map((byte) => byte.toString(16).padStart(2, "0")).join("")
373
- ].join(":"))}`);
374
- }
375
- function createRegistrationOperationIdempotencyKey(label) {
376
- const cryptoApi = globalThis.crypto;
377
- if (cryptoApi && typeof cryptoApi.randomUUID === "function") return registrationFinalizeIdempotencyKeyFromString(`${label}:${cryptoApi.randomUUID()}`);
378
- const bytes = new Uint8Array(16);
379
- if (!cryptoApi || typeof cryptoApi.getRandomValues !== "function") throw new Error("Secure randomness is required for registration finalization");
380
- cryptoApi.getRandomValues(bytes);
381
- return registrationFinalizeIdempotencyKeyFromString(`${label}:${[...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join("")}`);
382
- }
383
- function startEmailOtpRegistrationEnrollmentMaterial(input) {
384
- return input.recorder.measure("emailOtpEnrollmentMaterialMs", () => resolveEmailOtpRegistrationEnrollmentMaterial({
385
- context: input.context,
386
- authMethod: input.authMethod,
387
- relayerUrl: input.relayerUrl,
388
- walletId: input.walletId,
389
- providerSubject: input.providerSubject,
390
- clientSecret32: input.clientSecret32
391
- }));
392
- }
393
- function assertEmailOtpRegistrationHasNoLegacyEcdsaRoot(material) {
394
- if (material.emailOtpSessionHandle.kind !== "not_requested") throw new Error("Strict ECDSA registration received obsolete Email OTP root-share material");
395
- }
396
- async function resolveEmailOtpRegistrationEnrollmentMaterial(input) {
397
- if (input.authMethod.kind !== "email_otp") throw new Error("Email OTP enrollment material requires Email OTP auth");
398
- try {
399
- const material = await input.context.signingEngine.prepareEmailOtpRegistrationEnrollmentMaterialInternal({
400
- relayUrl: input.relayerUrl,
401
- walletId: toWalletId(input.walletId),
402
- userId: input.providerSubject,
403
- clientSecret32: input.clientSecret32
404
- });
405
- assertEmailOtpRegistrationHasNoLegacyEcdsaRoot(material);
406
- return material;
407
- } finally {
408
- input.clientSecret32.fill(0);
409
- }
410
- }
411
- function createRegistrationLifecycleEvent(input) {
412
- const authMethod = input.event.authMethod;
413
- const accountId = registrationEventAccountId(input.accountId);
414
- return createRegistrationFlowEvent({
415
- ...input.event,
416
- flowId: `registration:${authMethod}:${accountId}`,
417
- accountId,
418
- authMethod
419
- });
420
- }
421
- function registrationEventAccountId(value) {
422
- const accountId = String(value || "").trim();
423
- if (!accountId) throw new Error("Registration event account id is required");
424
- return accountId;
425
- }
426
- function registrationErrorCodeFromUnknown(error) {
427
- return isObject(error) && "code" in error ? String(error.code || "").trim() : "";
428
- }
429
- function registrationErrorWithCode(message, errorCode) {
430
- return Object.assign(new Error(message), errorCode ? { code: errorCode } : {});
431
- }
432
- function webAuthnTransportsFromRaw(value) {
433
- if (!Array.isArray(value)) return [];
434
- return value.filter((transport) => {
435
- switch (transport) {
436
- case "ble":
437
- case "hybrid":
438
- case "internal":
439
- case "nfc":
440
- case "smart-card":
441
- case "usb": return true;
442
- default: return false;
443
- }
444
- });
445
- }
446
- function emitRegistrationEvent(onEvent, accountId, event) {
447
- onEvent?.(createRegistrationLifecycleEvent({
448
- accountId,
449
- event
450
- }));
451
- }
452
- async function emailOtpEmailHashHex(email) {
453
- const normalizedEmail = String(email || "").trim().toLowerCase();
454
- if (!normalizedEmail) throw new Error("Email OTP registration auth context requires email");
455
- return sha256HexUtf8(normalizedEmail);
456
- }
457
- function emailOtpProviderFromRegistrationProof(proof) {
458
- switch (proof.proofKind) {
459
- case "otp_challenge": return "email";
460
- case "google_sso_registration": return "google";
461
- default: return assertNever(proof);
462
- }
463
- }
464
- function registrationThreeRouteAuthorityPayload(authority) {
465
- switch (authority.kind) {
466
- case "passkey": return {
467
- kind: "passkey",
468
- webauthnRegistration: authority.webauthnRegistration
469
- };
470
- case "email_otp": return {
471
- kind: "email_otp",
472
- emailOtpRegistrationProof: authority.emailOtpRegistrationProof
473
- };
474
- default: return assertNever(authority);
475
- }
476
- }
477
- async function startNearRegistrationAdmission(args) {
478
- const startedAt = performance.now();
479
- try {
480
- const admissionReceipt = await admitDeferredNearRegistration(args.deferredNear, {
481
- routerOrigin: new URL(args.relayerUrl).origin,
482
- authorization: {
483
- kind: "bearer",
484
- value: `Bearer ${args.signedSetup}`
485
- },
486
- fetch: globalThis.fetch,
487
- ...args.traceContext ? { traceContext: args.traceContext } : {}
488
- });
489
- emitNearRegistrationTiming({
490
- ceremonyId: args.registrationCeremonyId,
491
- stage: "early_admission",
492
- startedAt,
493
- outcome: "success"
494
- });
495
- return {
496
- deferredNear: args.deferredNear,
497
- admissionReceipt
498
- };
499
- } catch (error) {
500
- emitNearRegistrationTiming({
501
- ceremonyId: args.registrationCeremonyId,
502
- stage: "early_admission",
503
- startedAt,
504
- outcome: "failure"
505
- });
506
- throw error;
507
- }
508
- }
509
- function requireNearRegistrationAdmission(admission) {
510
- if (!admission) throw new Error("Mixed registration did not start NEAR admission");
511
- return admission;
512
- }
513
- function registrationEd25519LaneAuthorization(auth, passkeyCredentialIdB64u, session) {
514
- switch (auth.kind) {
515
- case "passkey": return { auth: {
516
- kind: "passkey",
517
- rpId: toRpId(auth.rpId),
518
- credentialIdB64u: passkeyCredentialIdB64u
519
- } };
520
- case "email_otp": return {
521
- auth: {
522
- kind: "email_otp",
523
- providerSubjectId: emailOtpAuthContextProviderUserId(auth.emailOtpAuthContext)
524
- },
525
- remainingUses: session.remainingUses,
526
- expiresAtMs: session.expiresAtMs
527
- };
528
- default: return assertNever(auth);
529
- }
530
- }
531
- async function buildThreeRouteCanonicalActivationCommand(args) {
532
- const canonicalRequest = parseCanonicalEcdsaServerActivationRequest(alphabetizeStringify({
533
- operation: "wallet_registration_activate_v2",
534
- registrationCeremonyId: args.registrationCeremonyId,
535
- activationCorrelationId: args.activationCorrelationId,
536
- idempotencyKey: args.idempotencyKey,
537
- publicFacts: args.publicFacts
538
- }));
539
- return {
540
- canonicalRequest,
541
- requestDigest: parseDigestB64u(base64UrlEncode(await sha256BytesUtf8(String(canonicalRequest))))
542
- };
543
- }
544
- async function persistThreeRouteCanonicalActivation(args) {
545
- const planInput = {
546
- authority: args.materialAuthority,
547
- targetMemberships: args.chainTargets,
548
- evmFamilySigningKeySlotId: requireEvmFamilySigningKeySlotId(args.ecdsaPrepare.prepare.evmFamilySigningKeySlotId, "registration ECDSA signing key slot"),
549
- ecdsaThresholdKeyId: parseEcdsaThresholdKeyId(args.ecdsaPrepare.prepare.ecdsaThresholdKeyId),
550
- signingRootId: parseSdkEcdsaDerivationSigningRootId(args.ecdsaPrepare.prepare.signingRootId),
551
- signingRootVersion: parseSdkEcdsaDerivationSigningRootVersion(args.ecdsaPrepare.prepare.signingRootVersion),
552
- runtimePolicyScope: args.ecdsaPrepare.prepare.runtimePolicyScope,
553
- clientVerifyingPublicKey33B64u: parseEcdsaClientVerifyingPublicKey33B64u(args.clientActivation.derivationClientSharePublicKey33B64u),
554
- participantIds: [toParticipantId(args.ecdsaPrepare.prepare.participantIds[0]), toParticipantId(args.ecdsaPrepare.prepare.participantIds[1])],
555
- relayerKeyId: parseEcdsaRelayerKeyId(args.ecdsaPrepare.prepare.relayerKeyId),
556
- bindingDigest: parseEcdsaRoleLocalBindingDigest(args.clientActivation.contextBinding32B64u),
557
- journalId: args.activationCorrelationId,
558
- requestDigest: args.activationCommand.requestDigest,
559
- canonicalRequest: args.activationCommand.canonicalRequest,
560
- createdAt: parseIsoTimestamp((/* @__PURE__ */ new Date()).toISOString())
561
- };
562
- const persisted = await args.context.signingEngine.persistInitialCanonicalEcdsaActivation({
563
- kind: "persist_initial_canonical_ecdsa_activation_v1",
564
- bootstrapOwner: "wallet_custody",
565
- clientActivation: args.clientActivation,
566
- ceremonyId: args.ceremonyId,
567
- planInput
568
- });
569
- if (!persisted.ok) throw new Error(`Canonical ECDSA activation persistence failed (${persisted.code}): ${persisted.message}`);
570
- return persisted;
571
- }
572
- function ethereumAddressFromAddress20B64u(value) {
573
- const bytes = base64UrlDecode(value);
574
- if (bytes.length !== 20) throw new Error("ECDSA activation address must contain 20 bytes");
575
- return `0x${Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("")}`;
576
- }
577
- /**
578
- * Calls `/wallets/register/setup`, which replaces the bootstrap grant, the
579
- * registration intent, and registration start.
580
- *
581
- * Runs before the authenticator prompt, because its response carries the
582
- * challenge that prompt must sign — so the Router's ECDSA preparation overlaps
583
- * the user's interaction instead of being serialized after it.
584
- */
585
- async function setupThreeRouteRegistration(args) {
586
- const relayerUrl = String(args.context.configs.network.relayer.url || "").trim();
587
- if (!relayerUrl) throw new Error("registerWallet requires relayer.url");
588
- const registration = args.context.configs.registration;
589
- const publishableKey = String(registration?.publishableKey || "").trim();
590
- const environmentId = String(registration?.projectEnvironmentId || "").trim();
591
- if (!publishableKey || !environmentId) throw new Error("registerWallet requires registration.publishableKey and registration.projectEnvironmentId");
592
- const registrationWarmup = startRegistrationWarmup({
593
- recorder: args.recorder,
594
- context: args.context,
595
- authMethod: args.authMethod,
596
- signerSelection: args.signerSelection
597
- });
598
- const setup = await args.recorder.measure("registrationIntentMs", () => setupWalletRegistration({
599
- relayerUrl,
600
- request: {
601
- ...args.wallet.kind === "provided" ? { wallet: args.wallet } : {},
602
- signerSelection: args.signerSelection,
603
- authMethod: args.authMethod
604
- },
605
- auth: {
606
- publishableKey,
607
- environmentId
608
- }
609
- }));
610
- if (!setup.ok) throw registrationErrorWithCode(setup.message, setup.code);
611
- return {
612
- relayerUrl,
613
- setup,
614
- registrationWarmup
615
- };
616
- }
617
- async function setupRegistrationForPasskeyExecution(args) {
618
- if (args.passkeyExecution.kind === "collect_during_registration") return await setupThreeRouteRegistration({
619
- context: args.context,
620
- authMethod: args.authMethod,
621
- wallet: args.wallet,
622
- signerSelection: args.signerSelection,
623
- recorder: args.recorder
624
- });
625
- if (args.authMethod.kind !== "passkey") throw new Error("Hosted passkey preparation requires passkey registration");
626
- const state = hostedPasskeyRegistrationState(args.passkeyExecution.prepared);
627
- if (state.context !== args.context || state.lifecycle === "cancelled") throw new Error("Hosted passkey registration preparation belongs to a different operation");
628
- const setup = state.setup;
629
- const intent = requirePasskeyRegistrationIntent(setup.setup.intent);
630
- const challengeB64u = String(setup.setup.registrationIntentDigestB64u || "").trim();
631
- const signerSlot = registrationPreparationSignerSlot(args.signerSelection);
632
- if (hostedPasskeyRegistrationBinding({
633
- wallet: args.wallet,
634
- signerSelection: args.signerSelection,
635
- authMethod: args.authMethod,
636
- walletId: walletIdFromString(String(intent.walletId)),
637
- signerSlot,
638
- rpId: requireWebAuthnRpId(String(args.authMethod.rpId)),
639
- challengeB64u
640
- }) !== state.binding || String(intent.walletId) !== String(args.passkeyExecution.prepared.walletId) || challengeB64u !== args.passkeyExecution.prepared.challengeB64u) throw new Error("Hosted passkey registration preparation binding changed");
641
- return setup;
642
- }
643
- function ecdsaRegistrationClientCeremonyForExecution(args) {
644
- if (args.passkeyExecution.kind === "collect_during_registration") return { kind: "create_after_authority" };
645
- const state = hostedPasskeyRegistrationState(args.passkeyExecution.prepared);
646
- if (state.ecdsaClientCeremony.kind !== "started" || state.ecdsaClientCeremony.ceremonyId !== args.ceremonyId) throw new Error("Hosted passkey registration has no matching ECDSA client ceremony");
647
- return {
648
- kind: "use_hosted_preparation",
649
- ceremonyId: state.ecdsaClientCeremony.ceremonyId,
650
- operation: state.ecdsaClientCeremony.operation
651
- };
652
- }
653
- async function awaitHostedPreparedEcdsaClientCeremony(operation) {
654
- return await operation;
655
- }
656
- function ecdsaRegistrationClientCeremonyOperation(args) {
657
- switch (args.clientCeremony.kind) {
658
- case "create_after_authority": return args.context.signingEngine.createRouterAbEcdsaRegistrationCeremony.bind(args.context.signingEngine, {
659
- kind: "create_router_ab_ecdsa_registration_ceremony_v1",
660
- ceremonyId: args.ceremonyId,
661
- registration: args.registration
662
- });
663
- case "use_hosted_preparation":
664
- if (args.clientCeremony.ceremonyId !== args.ceremonyId) throw new Error("Prepared ECDSA client ceremony identity changed");
665
- return awaitHostedPreparedEcdsaClientCeremony.bind(void 0, args.clientCeremony.operation);
666
- default: return assertNever(args.clientCeremony);
667
- }
668
- }
669
- async function runEcdsaEnabledThreeRouteRegistrationCeremony(args) {
670
- const [firstChainTarget, ...remainingChainTargets] = args.ecdsaPrepare.chainTargets;
671
- if (!firstChainTarget) throw new Error("Strict ECDSA ceremony requires at least one EVM-family target");
672
- const ceremonyId = args.registrationCeremonyId;
673
- const activationCorrelationId = parseCorrelationId(ceremonyId);
674
- let deferredNearCustodyWork = null;
675
- try {
676
- const created = await measureStrictEcdsaCeremonyStep({
677
- registrationTiming: args.registrationTiming,
678
- bucket: "ecdsaRegistrationClientCreateMs",
679
- operation: ecdsaRegistrationClientCeremonyOperation({
680
- context: args.context,
681
- ceremonyId,
682
- registration: args.ecdsaPrepare.strictRegistration,
683
- clientCeremony: args.clientCeremony
684
- })
685
- });
686
- const responded = await measureStrictEcdsaCeremonyStep({
687
- registrationTiming: args.registrationTiming,
688
- bucket: "ecdsaRegistrationGatewayRespondMs",
689
- operation: respondWalletRegistration.bind(void 0, {
690
- relayerUrl: args.relayerUrl,
691
- headers: registrationRouteHeaders(args.traceContext),
692
- registrationCeremonyId: ceremonyId,
693
- signerPlanKind: args.signerPlanKind,
694
- signedSetup: args.signedSetup,
695
- ecdsa: {
696
- kind: "router_ab_ecdsa_registration_v1",
697
- strictRegistration: created.registrationRequest,
698
- requestDigestB64u: created.registrationRequestDigestB64u
699
- },
700
- ...registrationThreeRouteAuthorityPayload(args.authority),
701
- onServerTiming: (header) => recordStrictEcdsaServerTimingBuckets(args.registrationTiming, "respond", header)
702
- })
703
- });
704
- if (responded.kind === "near_ed25519") throw new Error("ECDSA registration ceremony received an Ed25519-only respond result");
705
- const deferredNear = responded.kind === "near_ed25519_and_evm_family_ecdsa" ? responded.ed25519 : null;
706
- const nearAdmission = deferredNear ? startNearRegistrationAdmission({
707
- relayerUrl: args.relayerUrl,
708
- registrationCeremonyId: ceremonyId,
709
- signedSetup: args.signedSetup,
710
- deferredNear,
711
- traceContext: args.traceContext
712
- }) : null;
713
- nearAdmission?.catch(ignoreNearCustodyFailure);
714
- const verified = await measureStrictEcdsaCeremonyStep({
715
- registrationTiming: args.registrationTiming,
716
- bucket: "ecdsaRegistrationClientProofVerifyMs",
717
- operation: args.context.signingEngine.verifyRouterAbEcdsaRegistrationClientProofs.bind(args.context.signingEngine, {
718
- kind: "verify_router_ab_ecdsa_registration_client_proofs_v1",
719
- bootstrapOwner: "wallet_custody",
720
- ceremonyId,
721
- clientProofFinalization: {
722
- kind: "finalize_encrypted_client_proof_bundles_v2",
723
- bundles: responded.ecdsa.strictResult.response.bundles
724
- }
725
- })
726
- });
727
- const activateEmailOtp = await args.resolveActivateEmailOtp();
728
- const chainTargets = [firstChainTarget, ...remainingChainTargets];
729
- const walletCustodyFactorJson = args.authority.kind === "passkey" ? args.authority.walletCustodyFactorJson : activateEmailOtp.walletCustodyFactorJson;
730
- if (!walletCustodyFactorJson) throw new Error("ECDSA registration has no wallet custody factor binding");
731
- const walletCustodyFactorSecret = args.authority.walletCustodyFactorSecret;
732
- const activationHolder = {};
733
- const established = await args.context.signingEngine.establishWalletCustodyEvmFamilyKeySet({
734
- walletId: args.ecdsaPrepare.prepare.walletId,
735
- factorJson: walletCustodyFactorJson,
736
- factorSecret: walletCustodyFactorSecret,
737
- evmFamilySigningKeySlotId: args.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,
738
- applicationBindingDigestB64u: verified.applicationBindingDigestB64u,
739
- confirmRecoveryCodesBackedUp: args.confirmRecoveryCodesBackedUp,
740
- runRelayerRound: async (bootstrap) => {
741
- const clientActivation = parseRouterAbEcdsaVerifiedClientActivationFactsV1({
742
- registrationRequestDigestB64u: verified.registrationRequestDigestB64u,
743
- proofTranscriptDigestB64u: verified.proofTranscriptDigestB64u,
744
- contextBinding32B64u: bootstrap.contextBinding32B64u,
745
- derivationClientSharePublicKey33B64u: bootstrap.clientSharePublicKey33B64u,
746
- clientShareRetryCounter: bootstrap.clientShareRetryCounter,
747
- participantId: 1
748
- });
749
- const activationCommand = await buildThreeRouteCanonicalActivationCommand({
750
- registrationCeremonyId: ceremonyId,
751
- activationCorrelationId,
752
- idempotencyKey: args.idempotencyKey,
753
- publicFacts: clientActivation
754
- });
755
- const ecdsaCustodyCommit = walletCustodyCommitPayloadForWire(bootstrap.preActivationCommitPayload);
756
- const ecdsaReplay = {
757
- activationJournalId: activationCorrelationId,
758
- clientActivation,
759
- activationRequestDigestB64u: activationCommand.requestDigest
760
- };
761
- if (args.signerPlanKind === "near_ed25519_and_evm_family_ecdsa") {
762
- if (!deferredNear) throw new Error("Mixed registration has no NEAR continuation");
763
- await args.persistPendingCommit({
764
- signerPlanKind: args.signerPlanKind,
765
- localMaterial: {
766
- keyFamilies: ["ecdsa_secp256k1"],
767
- custodyCommit: ecdsaCustodyCommit,
768
- ecdsa: ecdsaReplay
769
- },
770
- emailOtpEnrollment: activateEmailOtp.enrollment,
771
- deferredNear
772
- });
773
- deferredNearCustodyWork = args.startDeferredNearCustody({
774
- admission: requireNearRegistrationAdmission(nearAdmission),
775
- establishedEvmCustodyCommit: bootstrap.preActivationCommitPayload
776
- });
777
- deferredNearCustodyWork.catch(ignoreNearCustodyFailure);
778
- } else await args.persistPendingCommit({
779
- signerPlanKind: args.signerPlanKind,
780
- localMaterial: {
781
- keyFamilies: ["ecdsa_secp256k1"],
782
- custodyCommit: ecdsaCustodyCommit,
783
- ecdsa: ecdsaReplay
784
- },
785
- emailOtpEnrollment: activateEmailOtp.enrollment
786
- });
787
- const persisted = await persistThreeRouteCanonicalActivation({
788
- context: args.context,
789
- ceremonyId,
790
- materialAuthority: args.materialAuthority,
791
- ecdsaPrepare: args.ecdsaPrepare,
792
- chainTargets,
793
- activationCorrelationId,
794
- activationCommand,
795
- clientActivation
796
- });
797
- if (String(persisted.journalId) !== String(activationCorrelationId)) throw new Error("ECDSA activation journal identity changed before activate");
798
- const response = await measureStrictEcdsaCeremonyStep({
799
- registrationTiming: args.registrationTiming,
800
- bucket: "ecdsaRegistrationGatewayActivateMs",
801
- operation: activateWalletRegistration.bind(void 0, {
802
- relayerUrl: args.relayerUrl,
803
- headers: registrationRouteHeaders(args.traceContext),
804
- registrationCeremonyId: ceremonyId,
805
- signerPlanKind: args.signerPlanKind,
806
- signedSetup: args.signedSetup,
807
- idempotencyKey: args.idempotencyKey,
808
- ecdsa: {
809
- clientActivation,
810
- activationCorrelationId,
811
- activationRequestDigestB64u: activationCommand.requestDigest
812
- },
813
- walletCustodyCommit: bootstrap.preActivationCommitPayload,
814
- ...activateEmailOtp.enrollment ? { emailOtpEnrollment: activateEmailOtp.enrollment } : {},
815
- onServerTiming: (header) => recordStrictEcdsaServerTimingBuckets(args.registrationTiming, "activate", header)
816
- })
817
- });
818
- if (response.kind !== "evm_family_ecdsa" || !response.ecdsa) throw new Error("ECDSA registration ceremony received a non-ECDSA activate result");
819
- activationHolder.value = response;
820
- activationHolder.journalId = persisted.journalId;
821
- const identity = response.ecdsa.activation.ecdsa_activation.public_identity;
822
- return JSON.stringify({
823
- relayerKeyId: args.ecdsaPrepare.prepare.relayerKeyId,
824
- relayerPublicKey33B64u: identity.server_public_key33_b64u,
825
- groupPublicKey33B64u: identity.threshold_public_key33_b64u,
826
- ethereumAddress: ethereumAddressFromAddress20B64u(identity.ethereum_address20_b64u),
827
- relayerShareRetryCounter: identity.server_share_retry_counter
828
- });
829
- }
830
- });
831
- if (!activationHolder.value || !activationHolder.journalId) throw new Error("Wallet custody ECDSA activation did not return its committed receipt");
832
- const activated = activationHolder.value;
833
- if (activated.walletCustody?.status !== "committed") {
834
- const status = activated.walletCustody?.status ?? "not_reported";
835
- throw new Error(`Wallet custody did not commit during ECDSA activation (${status})`);
836
- }
837
- const clientBootstrap = buildStrictRegistrationClientBootstrap({
838
- prepare: args.ecdsaPrepare.prepare,
839
- verified: established.clientBootstrap
840
- });
841
- const registrationBootstrap = parseWalletRegistrationEcdsaDerivationRespond({
842
- clientBootstrap,
843
- serverBootstrap: activated.ecdsa.bootstrap,
844
- activationEpoch: activated.ecdsa.activation.ecdsa_activation.activation_epoch
845
- });
846
- const finalized = await args.context.signingEngine.finalizeRouterAbEcdsaRegistrationActivation({
847
- kind: "finalize_router_ab_ecdsa_registration_activation_v1",
848
- bootstrapOwner: "wallet_custody",
849
- journalId: activationHolder.journalId,
850
- activationReceipt: activated.ecdsa.activation,
851
- routerAbEcdsaDerivationNormalSigning: registrationBootstrap.routerAbEcdsaDerivationNormalSigning,
852
- readyStateBlobB64u: established.localMaterial.readyStateBlobB64u,
853
- walletCustodyPublicFacts: established.localMaterial.publicFacts
854
- });
855
- return {
856
- session: {
857
- chainTargets: [firstChainTarget, ...remainingChainTargets],
858
- clientBootstrap,
859
- bootstrap: registrationBootstrap,
860
- activatedThresholdSessionId: activated.ecdsa.bootstrap.thresholdSessionId,
861
- roleLocalMaterial: finalized.roleLocalMaterial,
862
- authority: await walletAuthAuthorityRef({ authority: activated.authority }),
863
- materialActivation: finalized.materialActivation,
864
- clientPublicFacts: finalized.publicFacts,
865
- publicCapability: finalized.publicCapability,
866
- registrationEstablishedSession: requireIssuedRegistrationEstablishedSession(activated.registrationEstablishedSession)
867
- },
868
- activated,
869
- deferredNear,
870
- activateEmailOtp: { enrollment: activateEmailOtp.enrollment },
871
- walletCustody: established,
872
- deferredNearCustodyWork
873
- };
874
- } catch (error) {
875
- discardDeferredNearCustodyWork(deferredNearCustodyWork);
876
- await closeStrictEcdsaRegistrationCeremony({
877
- context: args.context,
878
- ceremonyId
879
- });
880
- throw error;
881
- }
882
- }
883
- function materializeWalletRegistrationSetupChainTarget(target) {
884
- switch (target.kind) {
885
- case "evm": return thresholdEcdsaChainTargetFromChainFamily({
886
- chain: "evm",
887
- chainId: target.chainId,
888
- networkSlug: target.networkSlug
889
- });
890
- case "tempo": return thresholdEcdsaChainTargetFromChainFamily({
891
- chain: "tempo",
892
- chainId: target.chainId,
893
- networkSlug: target.networkSlug
894
- });
895
- default: return assertNever(target);
896
- }
897
- }
898
- function materializeWalletRegistrationSetupEcdsaPrepare(setup) {
899
- const [firstTarget, ...remainingTargets] = setup.chainTargets;
900
- if (!firstTarget) throw new Error("Registration setup ECDSA chain targets are required");
901
- return {
902
- kind: setup.kind,
903
- chainTargets: [materializeWalletRegistrationSetupChainTarget(firstTarget), ...remainingTargets.map(materializeWalletRegistrationSetupChainTarget)],
904
- prepare: setup.prepare,
905
- strictRegistration: setup.strictRegistration
906
- };
907
- }
908
- function requireEcdsaRegistrationSetup(setup, expectedKind) {
909
- switch (setup.kind) {
910
- case "near_ed25519": throw new Error("Registration setup returned an Ed25519-only signer branch");
911
- case "evm_family_ecdsa":
912
- case "near_ed25519_and_evm_family_ecdsa":
913
- if (setup.kind !== expectedKind) throw new Error("Registration setup returned a different signer branch");
914
- return setup;
915
- default: return assertNever(setup);
916
- }
917
- }
918
- function registrationPasskeySignerSlot(args) {
919
- switch (args.kind) {
920
- case "evm_family_ecdsa": return 1;
921
- case "near_ed25519_and_evm_family_ecdsa": return args.ed25519Selection.signerSlot;
922
- default: return assertNever(args);
923
- }
924
- }
925
- function pendingRegistrationAuthFromRegistrationInputs(args) {
926
- if (args.authMethod.kind === "passkey") {
927
- if (!args.passkeyAuthority) throw new Error("Passkey registration authority was not collected");
928
- return {
929
- kind: "passkey",
930
- rpId: args.authMethod.rpId,
931
- credentialIdB64u: String(args.passkeyAuthority.credential.rawId || args.passkeyAuthority.credential.id || "").trim(),
932
- transports: [...args.passkeyAuthority.webauthnRegistration.response.transports]
933
- };
934
- }
935
- return {
936
- kind: "email_otp",
937
- email: args.email,
938
- registrationAuthorityId: args.registrationAuthorityId,
939
- providerSubject: args.providerSubject,
940
- enrollment: requirePendingEmailOtpEnrollment(args.emailOtpEnrollment)
941
- };
942
- }
943
- function requirePendingEmailOtpEnrollment(enrollment) {
944
- if (!enrollment) throw new Error("Email OTP registration has no enrollment material for pending recovery");
945
- return enrollment;
946
- }
947
- async function persistPendingRegistrationCommit(input) {
948
- const nowMs = Date.now();
949
- const pending = buildPendingRegistrationCommit({
950
- ...input,
951
- createdAtMs: nowMs,
952
- updatedAtMs: nowMs
953
- });
954
- await IndexedDBManager.putPendingWalletRegistrationCommit(pending);
955
- return pending;
956
- }
957
- function requireMixedRegistrationActivatePendingCommit(pending) {
958
- if (!pending || pending.operation !== "registration_activate" || pending.signerPlanKind !== "near_ed25519_and_evm_family_ecdsa") throw new Error("Mixed registration activation commit was not persisted");
959
- return pending;
960
- }
961
- async function prepareRegistrationEcdsaPublication(args) {
962
- const walletKeys = args.walletKeys;
963
- if (args.auth.kind === "passkey") {
964
- const credentialIdB64u = String(args.auth.credential.rawId || args.auth.credential.id || "").trim();
965
- if (!credentialIdB64u) throw new Error("Passkey registration publication has no credential id");
966
- return await prepareWalletEcdsaRegistrationPublication({
967
- kind: "passkey",
968
- walletId: args.walletId,
969
- rpId: requireWebAuthnRpId(args.auth.rpId),
970
- credentialIdB64u,
971
- credentialPublicKeyB64u: args.auth.credentialPublicKeyB64u,
972
- transports: args.auth.credential.response?.transports ?? [],
973
- walletKeys
974
- });
975
- }
976
- return await prepareWalletEcdsaRegistrationPublication({
977
- kind: "email_otp",
978
- walletId: args.walletId,
979
- email: args.auth.email,
980
- registrationAuthorityId: args.auth.registrationAuthorityId,
981
- authority: args.auth.authority,
982
- walletKeys
983
- });
984
- }
985
- async function publishMixedEcdsaRegistrationCommit(args) {
986
- const walletKeys = await finalizeRegistrationEcdsaSessions({
987
- context: args.context,
988
- relayerUrl: args.relayerUrl,
989
- registrationTiming: args.registrationTiming,
990
- plan: args.plan
991
- });
992
- const registration = await prepareRegistrationEcdsaPublication({
993
- auth: args.plan.auth,
994
- walletId: args.plan.walletId,
995
- walletKeys
996
- });
997
- const registrationSession = args.plan.ecdsa.session.registrationEstablishedSession;
998
- await IndexedDBManager.publishPendingWalletRegistrationCommit({
999
- pending: args.pending,
1000
- authority: args.activated.authority,
1001
- foundingAuthority: {
1002
- authority: args.activated.foundingAuthority,
1003
- authMethod: args.activated.foundingAuthMethod
1004
- },
1005
- request: {
1006
- operation: args.pending.operation,
1007
- registrationCeremonyId: args.pending.registrationCeremonyId,
1008
- idempotencyKey: args.pending.idempotencyKey,
1009
- walletId: args.pending.walletId,
1010
- walletAuthMethodId: args.pending.walletAuthMethodId
1011
- },
1012
- walletSessionPublication: {
1013
- kind: "issued",
1014
- walletSession: registrationSession.walletSession,
1015
- operationCredential: registrationSession.operationCredential
1016
- },
1017
- ecdsaContinuity: [],
1018
- registration
1019
- });
1020
- }
1021
- async function discardDeferredNearCustodyWork(work) {
1022
- if (!work) return;
1023
- try {
1024
- zeroizeArrayBuffer((await work).factorSecret32);
1025
- } catch {}
1026
- }
1027
- function buildDeferredRegistrationFinalizeAuthMaterial(args) {
1028
- switch (args.auth.kind) {
1029
- case "passkey": {
1030
- if (!args.passkeyAuthority) throw new Error("Deferred passkey registration requires authority material");
1031
- const credentialIdB64u = String(args.passkeyAuthority.credential.rawId || args.passkeyAuthority.credential.id || "").trim();
1032
- const prfFirstB64u = String(args.passkeyAuthority.prfFirstB64u || "").trim();
1033
- if (!credentialIdB64u || !prfFirstB64u) throw new Error("Deferred passkey registration requires credential PRF material");
1034
- return {
1035
- kind: "passkey",
1036
- rpId: args.auth.rpId,
1037
- credentialIdB64u,
1038
- prfFirstB64u
1039
- };
1040
- }
1041
- case "email_otp":
1042
- if (!args.emailOtpEnrollment) throw new Error("Deferred Email OTP registration requires enrollment material");
1043
- return {
1044
- kind: "email_otp",
1045
- enrollment: args.emailOtpEnrollment,
1046
- emailOtpAuthContext: args.auth.emailOtpAuthContext
1047
- };
1048
- default: return assertNever(args.auth);
1049
- }
1050
- }
1051
- async function persistPreparedNearRegistration(pending, receipt, checkpointJson) {
1052
- const startedAt = performance.now();
1053
- await IndexedDBManager.advancePendingNearRegistration({
1054
- expected: pending,
1055
- next: preparePendingNearRegistration(pending, receipt, checkpointJson)
1056
- });
1057
- recordWalletCustodyTiming(pending.registrationCeremonyId, "journal_prepared", startedAt);
1058
- }
1059
- function ignoreNearCustodyFailure() {}
1060
- async function startDeferredNearWalletCustody(base, input) {
1061
- const factorSecret = base.factorSecretOwner.value;
1062
- if (!factorSecret) throw new Error("Mixed registration has no NEAR custody factor secret");
1063
- base.factorSecretOwner.value = null;
1064
- const startedAt = performance.now();
1065
- let outcome = "failure";
1066
- try {
1067
- const pending = await IndexedDBManager.getPendingWalletRegistrationCommit({
1068
- registrationCeremonyId: base.registrationCeremonyId,
1069
- operation: "near_provisioning"
1070
- });
1071
- if (!pending || pending.operation !== "near_provisioning" || pending.phase !== "planned") throw new Error("NEAR registration has no planned continuation");
1072
- let preAdmittedReceipt;
1073
- try {
1074
- const admitted = await input.admission;
1075
- if (!sameRouterAbEd25519YaoRegistrationAdmissionRequestV1(admitted.deferredNear.admissionRequest, pending.admissionRequest)) throw new Error("NEAR admission changed the authorized request");
1076
- preAdmittedReceipt = admitted.admissionReceipt;
1077
- } catch (error) {
1078
- if (error instanceof Error && error.message === "NEAR admission changed the authorized request") throw error;
1079
- preAdmittedReceipt = void 0;
1080
- }
1081
- const { joined, admissionReceipt } = await continueNearRegistrationCustody({
1082
- pending,
1083
- signingEngine: base.context.signingEngine,
1084
- relayerUrl: base.relayerUrl,
1085
- credential: base.signedSetup,
1086
- traceContext: base.traceContext,
1087
- factorSecret,
1088
- ...preAdmittedReceipt ? { admitted: preAdmittedReceipt } : {}
1089
- });
1090
- outcome = "success";
1091
- return {
1092
- admissionReceipt,
1093
- joined,
1094
- admissionRequest: pending.admissionRequest,
1095
- envelope: custodyEnvelopeFromRegistrationCommit({
1096
- commit: input.establishedEvmCustodyCommit,
1097
- walletId: pending.walletId,
1098
- activatedAtMs: Date.now()
1099
- }),
1100
- factorSecret32: factorSecret
1101
- };
1102
- } catch (error) {
1103
- zeroizeArrayBuffer(factorSecret);
1104
- throw error;
1105
- } finally {
1106
- emitNearRegistrationTiming({
1107
- ceremonyId: base.registrationCeremonyId,
1108
- stage: "custody_join",
1109
- startedAt,
1110
- outcome
1111
- });
1112
- }
1113
- }
1114
- async function resolveNearRegistrationAdmissionReceipt(args) {
1115
- if (args.pending.phase === "execution_prepared") return args.pending.admissionReceipt;
1116
- if (args.admitted) return args.admitted;
1117
- return await admitDeferredNearRegistration({
1118
- status: "deferred",
1119
- admissionRequest: args.pending.admissionRequest
1120
- }, {
1121
- routerOrigin: new URL(args.relayerUrl).origin,
1122
- authorization: {
1123
- kind: "bearer",
1124
- value: `Bearer ${args.credential}`
1125
- },
1126
- fetch: globalThis.fetch,
1127
- traceContext: args.traceContext
1128
- });
1129
- }
1130
- async function continueNearRegistrationCustody(args) {
1131
- const journal = args.pending;
1132
- if (journal.phase === "joined" && journal.completion.kind !== "encrypted_checkpoint") throw new Error("Joined material has no encrypted execution checkpoint");
1133
- const pending = journal.phase === "joined" && journal.completion.kind === "encrypted_checkpoint" ? journal.completion.prepared : journal;
1134
- if (pending.phase === "joined") throw new Error("Invalid NEAR continuation phase");
1135
- const admission = pending.admissionRequest;
1136
- const admissionStartedAt = performance.now();
1137
- const admissionReceipt = await resolveNearRegistrationAdmissionReceipt({
1138
- pending,
1139
- relayerUrl: args.relayerUrl,
1140
- credential: args.credential,
1141
- traceContext: args.traceContext,
1142
- ...args.admitted ? { admitted: args.admitted } : {}
1143
- });
1144
- recordWalletCustodyTiming(pending.registrationCeremonyId, "admission", admissionStartedAt);
1145
- const joined = await args.signingEngine.joinWalletCustodyNearEd25519KeySet({
1146
- ...pending.phase === "planned" ? {
1147
- preparation: { kind: "fresh" },
1148
- beforeRouterRound: persistPreparedNearRegistration.bind(void 0, pending, admissionReceipt)
1149
- } : { preparation: {
1150
- kind: "checkpoint",
1151
- checkpointJson: pending.checkpointJson
1152
- } },
1153
- custodyJson: joinCustodyJsonFromEstablishedCommitPayload(pending.baseCustodyCommit),
1154
- factorSecret: args.factorSecret,
1155
- nearEd25519SigningKeyId: admission.application_binding.near_ed25519_signing_key_id,
1156
- registrationCeremonyId: pending.registrationCeremonyId,
1157
- admissionRequest: admission,
1158
- admissionReceipt,
1159
- participantIds: admission.participant_ids,
1160
- routerOrigin: new URL(args.relayerUrl).origin,
1161
- authorization: `Bearer ${args.credential}`,
1162
- traceContext: args.traceContext
1163
- });
1164
- if (journal.phase === "joined") {
1165
- if (base64UrlEncode(joined.metadata.registeredPublicKey) !== journal.localMaterial.ed25519.metadata.registeredPublicKeyB64u || JSON.stringify(joined.activationReference) !== JSON.stringify(journal.localMaterial.ed25519.activationReference)) throw new Error("Restored NEAR checkpoint changed the joined key");
1166
- return {
1167
- joined,
1168
- admissionReceipt
1169
- };
1170
- }
1171
- const journalStartedAt = performance.now();
1172
- const prepared = await IndexedDBManager.getPendingWalletRegistrationCommit({
1173
- registrationCeremonyId: pending.registrationCeremonyId,
1174
- operation: "near_provisioning"
1175
- });
1176
- if (!prepared || prepared.operation !== "near_provisioning" || prepared.phase !== "execution_prepared") throw new Error("NEAR execution checkpoint was not persisted");
1177
- const joinedPending = buildPendingRegistrationCommit({
1178
- operation: "near_provisioning",
1179
- signerPlanKind: "near_ed25519_and_evm_family_ecdsa",
1180
- completion: {
1181
- kind: "encrypted_checkpoint",
1182
- prepared
1183
- },
1184
- registrationCeremonyId: prepared.registrationCeremonyId,
1185
- idempotencyKey: await deriveNearProvisioningIdempotencyKey({
1186
- registrationCeremonyId: prepared.registrationCeremonyId,
1187
- activationReference: joined.activationReference
1188
- }),
1189
- walletId: prepared.walletId,
1190
- walletAuthMethodId: prepared.walletAuthMethodId,
1191
- signedSetup: prepared.signedSetup,
1192
- auth: prepared.auth,
1193
- createdAtMs: prepared.createdAtMs,
1194
- updatedAtMs: Date.now(),
1195
- localMaterial: {
1196
- keyFamilies: ["ed25519"],
1197
- custodyCommit: joined.commitPayload,
1198
- ed25519: {
1199
- activationReference: joined.activationReference,
1200
- localMaterial: joined.localMaterial,
1201
- metadata: pendingRegistrationEd25519MetadataFromJoined(joined)
1202
- }
1203
- }
1204
- });
1205
- if (joinedPending.operation !== "near_provisioning" || joinedPending.phase !== "joined") throw new Error("Invalid joined NEAR continuation");
1206
- await IndexedDBManager.advancePendingNearRegistration({
1207
- expected: prepared,
1208
- next: joinedPending
1209
- });
1210
- recordWalletCustodyTiming(pending.registrationCeremonyId, "journal_joined", journalStartedAt);
1211
- return {
1212
- joined,
1213
- admissionReceipt
1214
- };
1215
- }
1216
- function nearRegistrationChainTarget(target) {
1217
- return target.chainTarget;
1218
- }
1219
- function resumedNearRegistrationAuth(pending, factor) {
1220
- if (pending.auth.kind === "passkey" && factor.kind === "passkey" && pending.auth.rpId === factor.rpId && pending.auth.credentialIdB64u === factor.credentialIdB64u) return {
1221
- kind: "passkey",
1222
- rpId: factor.rpId,
1223
- credentialIdB64u: factor.credentialIdB64u,
1224
- prfFirstB64u: factor.prfFirstB64u
1225
- };
1226
- if (pending.auth.kind === "email_otp" && factor.kind === "email_otp" && pending.auth.providerSubject === factor.providerSubject) {
1227
- const authority = parseEmailOtpWalletAuthAuthority({
1228
- walletId: pending.walletId,
1229
- bindingId: pending.walletAuthMethodId,
1230
- factor: {
1231
- kind: "email_otp",
1232
- provider: factor.provider,
1233
- providerUserId: factor.providerSubject
1234
- },
1235
- verifier: {
1236
- kind: "email_otp_wallet_auth_method",
1237
- emailHashHex: factor.emailHashHex
1238
- }
1239
- });
1240
- if (!authority) throw new Error("NEAR continuation requires its founding Email OTP method");
1241
- return {
1242
- kind: "email_otp",
1243
- enrollment: pending.auth.enrollment,
1244
- emailOtpAuthContext: buildEmailOtpAuthContext({
1245
- policy: "session",
1246
- retention: "session",
1247
- reason: "login",
1248
- authority
1249
- })
1250
- };
1251
- }
1252
- throw new Error("NEAR continuation requires its founding authentication method");
1253
- }
1254
- async function resumeNearRegistrationCustodyWork(args) {
1255
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1256
- if (args.pending.phase === "joined" && args.pending.completion.kind === "sealed_material") {
1257
- const restored = await restorePendingNearRegistrationMaterial({
1258
- pending: args.pending,
1259
- relayerUrl: args.relayerUrl,
1260
- operationCredential: args.sessionAuthority.operationCredential
1261
- });
1262
- return {
1263
- joined: restored.joined,
1264
- admissionRequest: restored.admissionRequest,
1265
- admissionReceipt: restored.admissionReceipt,
1266
- envelope: args.envelope,
1267
- factorSecret32: args.factorSecret
1268
- };
1269
- }
1270
- const prepared = args.pending.phase === "joined" ? args.pending.completion.prepared : args.pending;
1271
- if (!prepared) throw new Error("NEAR continuation has no encrypted checkpoint");
1272
- const result = await continueNearRegistrationCustody({
1273
- pending: args.pending,
1274
- signingEngine: args.context.signingEngine,
1275
- relayerUrl: args.relayerUrl,
1276
- credential: args.sessionAuthority.operationCredential.token,
1277
- traceContext: createRouterAbTraceContextV1(),
1278
- factorSecret: args.factorSecret
1279
- });
1280
- return {
1281
- joined: result.joined,
1282
- admissionReceipt: result.admissionReceipt,
1283
- admissionRequest: prepared.admissionRequest,
1284
- envelope: args.envelope,
1285
- factorSecret32: args.factorSecret
1286
- };
1287
- }
1288
- /** Owns the factor copy; ordinary unlock is already complete when this starts. */
1289
- async function resumeNearRegistrationAfterUnlock(args) {
1290
- const startedAt = performance.now();
1291
- try {
1292
- const rows = await IndexedDBManager.listPendingWalletRegistrationCommits();
1293
- for (const pending of rows) {
1294
- if (pending.operation !== "near_provisioning" || pending.walletId !== args.sessionAuthority.record.walletId || pending.walletAuthMethodId !== args.sessionAuthority.record.authMethodId || pending.signerPlanKind !== "near_ed25519_and_evm_family_ecdsa") continue;
1295
- if (await IndexedDBManager.getPendingWalletRegistrationCommit({
1296
- registrationCeremonyId: pending.registrationCeremonyId,
1297
- operation: "registration_activate"
1298
- })) continue;
1299
- const relayerUrl = args.context.configs.network.relayer.url;
1300
- const authMaterial = resumedNearRegistrationAuth(pending, args.factor);
1301
- const work = resumeNearRegistrationCustodyWork.bind(void 0, {
1302
- context: args.context,
1303
- pending,
1304
- envelope: args.custodyEnvelope,
1305
- relayerUrl,
1306
- sessionAuthority: args.sessionAuthority,
1307
- factorSecret: args.ownedFactorSecret
1308
- });
1309
- await runDeferredEd25519Provisioning({
1310
- context: args.context,
1311
- walletId: pending.walletId,
1312
- commit: {
1313
- context: args.context,
1314
- registrationTiming: null,
1315
- registrationStartedAt: startedAt,
1316
- clientPrewarm: Promise.resolve(),
1317
- relayerUrl,
1318
- registrationCeremonyId: pending.registrationCeremonyId,
1319
- signedSetup: pending.signedSetup,
1320
- headers: registrationRouteHeaders(),
1321
- nearCustodyWork: work,
1322
- sessionAuthority: args.sessionAuthority,
1323
- expectedChainTargets: listConfiguredThresholdEcdsaPublicationTargets(args.context.configs.network.chains).map(nearRegistrationChainTarget),
1324
- walletId: pending.walletId,
1325
- authMaterial
1326
- }
1327
- });
1328
- }
1329
- } catch (error) {
1330
- console.warn("[registration] NEAR continuation remains pending", error instanceof Error ? error.message : "continuation failed");
1331
- } finally {
1332
- zeroizeArrayBuffer(args.ownedFactorSecret);
1333
- }
1334
- }
1335
- function requireDeferredNearCustodyWork(work) {
1336
- if (!work) throw new Error("Mixed registration did not start its NEAR custody join");
1337
- return work;
1338
- }
1339
- function mixedRegistrationSessionFromDeferredResult(existing, result, finalAuthority, finalAuthMethod) {
1340
- if (result.kind !== "already_committed" || result.session.tokens.kind !== "near_ed25519_and_evm_family_ecdsa") throw new Error("NEAR completion must extend the current Wallet Session");
1341
- const projection = result.session;
1342
- const current = existing.record;
1343
- const next = projection.walletSession;
1344
- if (projection.walletId !== current.walletId || projection.authorizationId !== current.authorizationId || projection.quotaId !== current.quotaId || projection.walletSessionId !== existing.operationCredential.walletSessionId || next.authorityId !== current.authorityId || next.authMethodId !== current.authMethodId || next.issuedAtMs !== current.issuedAtMs || next.expiresAtMs !== current.expiresAtMs || next.authorityRevocationEpoch !== current.authorityRevocationEpoch || next.expiresAtMs <= Date.now() || !walletSessionPreservesCapabilities(current, next) || finalAuthority.authorityId !== next.authorityId || finalAuthority.walletId !== next.walletId || finalAuthority.authorityDigestB64u !== next.authorityDigestB64u || finalAuthority.revocationEpoch !== next.authorityRevocationEpoch || finalAuthMethod.walletAuthMethodId !== next.authMethodId || finalAuthMethod.walletId !== next.walletId || finalAuthMethod.walletAuthorityId !== next.authorityId) throw new Error("NEAR completion changed the current Wallet Session authority");
1345
- return {
1346
- kind: "registration_established_wallet_session_v2",
1347
- walletId: projection.walletId,
1348
- authorizationId: projection.authorizationId,
1349
- walletSessionId: projection.walletSessionId,
1350
- quotaId: projection.quotaId,
1351
- expiresAtMs: projection.expiresAtMs,
1352
- remainingUses: projection.remainingUses,
1353
- walletSession: next,
1354
- operationCredential: existing.operationCredential,
1355
- tokens: projection.tokens
1356
- };
1357
- }
1358
- async function requireCurrentNearRegistrationSession(expected) {
1359
- const current = await walletSessionAuthorizations.readExactWithOperationCredential({
1360
- walletId: expected.record.walletId,
1361
- authorityId: expected.record.authorityId,
1362
- authMethodId: expected.record.authMethodId
1363
- });
1364
- if (current.kind !== "found" || current.record.expiresAtMs <= Date.now() || current.record.authorizationId !== expected.record.authorizationId || current.record.authorityRevocationEpoch !== expected.record.authorityRevocationEpoch || current.operationCredential.token !== expected.operationCredential.token) throw new Error("NEAR continuation requires the current unlocked Wallet Session");
1365
- }
1366
- async function readJoinedNearRegistrationCommit(args) {
1367
- const pending = await IndexedDBManager.getPendingWalletRegistrationCommit({
1368
- registrationCeremonyId: args.registrationCeremonyId,
1369
- operation: "near_provisioning"
1370
- });
1371
- if (!pending || pending.operation !== "near_provisioning" || pending.phase !== "joined" || pending.walletId !== args.walletId || pending.walletAuthMethodId !== args.walletAuthMethodId) throw new Error("NEAR joined checkpoint was not persisted");
1372
- return pending;
1373
- }
1374
- async function activatePasskeyRegistrationEd25519Material(args) {
1375
- const { metadata, materialFacts } = args;
1376
- const activationFacts = {
1377
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata),
1378
- lifecycleId: metadata.scope.lifecycle_id,
1379
- signingRootVersion: metadata.scope.root_share_epoch,
1380
- signingRootId: metadata.applicationBinding.signing_root_id,
1381
- signerSetId: metadata.scope.signer_set_id,
1382
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
1383
- activationTranscriptB64u: base64UrlEncode(metadata.transcript),
1384
- activationCapabilityBindingB64u: base64UrlEncode(Uint8Array.from(metadata.activeCapabilityBinding))
1385
- };
1386
- let activeClient = null;
1387
- try {
1388
- activeClient = await openWalletCustodyEd25519ActiveClientV1({
1389
- material: args.material,
1390
- activation: activationFacts,
1391
- envelope: args.envelope,
1392
- ownedFactorSecret: args.ownedFactorSecret
1393
- });
1394
- await persistPasskeyEd25519YaoSignerMaterialV1({
1395
- store: IndexedDBManager,
1396
- activeClient,
1397
- identity: {
1398
- walletId: materialFacts.identity.walletId,
1399
- nearAccountId: materialFacts.identity.nearAccountId,
1400
- nearEd25519SigningKeyId: materialFacts.identity.nearEd25519SigningKeyId,
1401
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
1402
- signerSlot: materialFacts.identity.signerSlot,
1403
- rpId: args.rpId,
1404
- credentialIdB64u: args.credentialIdB64u,
1405
- signingRootId: materialFacts.identity.signingRootId,
1406
- signingRootVersion: materialFacts.identity.signingRootVersion,
1407
- signingWorkerId: materialFacts.stableServerScope.routerAbNormalSigning.signingWorkerId
1408
- },
1409
- stableServerScope: materialFacts.stableServerScope,
1410
- passkeyPrfFirstB64u: args.passkeyPrfFirstB64u
1411
- });
1412
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1413
- await args.signingEngine.activateVerifiedNearEd25519YaoMaterial({
1414
- activeClient,
1415
- facts: {
1416
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
1417
- signer: nearEd25519SignerBindingFromBoundaryFields({
1418
- walletId: toWalletId(materialFacts.identity.walletId),
1419
- nearAccountId: toAccountId(materialFacts.identity.nearAccountId),
1420
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(materialFacts.identity.nearEd25519SigningKeyId),
1421
- signerSlot: materialFacts.identity.signerSlot
1422
- }),
1423
- signingRootId: materialFacts.identity.signingRootId,
1424
- signingRootVersion: materialFacts.identity.signingRootVersion,
1425
- routerAbNormalSigning: materialFacts.stableServerScope.routerAbNormalSigning,
1426
- runtimePolicyScope: materialFacts.stableServerScope.runtimePolicyScope,
1427
- relayerUrl: args.relayerUrl
1428
- }
1429
- });
1430
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1431
- activeClient = null;
1432
- } catch (error) {
1433
- activeClient?.dispose();
1434
- throw error;
1435
- } finally {
1436
- args.ownedFactorSecret.fill(0);
1437
- }
1438
- }
1439
- async function prewarmDeferredPasskeyEd25519Client(auth) {
1440
- if (auth.kind !== "passkey") return;
1441
- try {
1442
- await RouterAbEd25519YaoClientV1.initializeBundled();
1443
- } catch {}
1444
- }
1445
- async function hydrateDeferredNearRegistrationSession(args) {
1446
- const startedAt = performance.now();
1447
- let outcome = "failure";
1448
- try {
1449
- await args.signingEngine.hydrateSigningSession(args.input);
1450
- outcome = "success";
1451
- return { kind: "completed" };
1452
- } catch (error) {
1453
- return {
1454
- kind: "failed",
1455
- error
1456
- };
1457
- } finally {
1458
- emitNearRegistrationTiming({
1459
- ceremonyId: args.ceremonyId,
1460
- stage: "session_hydration",
1461
- startedAt,
1462
- outcome
1463
- });
1464
- }
1465
- }
1466
- async function prepareDeferredNearSessionHydration(args) {
1467
- const startedAt = performance.now();
1468
- let outcome = "failure";
1469
- try {
1470
- await args.signingEngine.prepareSigningSessionHydration(args.input);
1471
- outcome = "success";
1472
- return { kind: "completed" };
1473
- } catch (error) {
1474
- return {
1475
- kind: "failed",
1476
- error
1477
- };
1478
- } finally {
1479
- emitNearRegistrationTiming({
1480
- ceremonyId: args.ceremonyId,
1481
- stage: "session_seal_preparation",
1482
- startedAt,
1483
- outcome
1484
- });
1485
- }
1486
- }
1487
- function startNearRegistrationSealPreparation(args) {
1488
- const sessionId = parseThresholdEd25519SessionId(args.thresholdSessionId);
1489
- if (!sessionId.ok) throw new Error("Invalid admitted NEAR session identity");
1490
- const preparationId = createRegistrationOperationIdempotencyKey("near-session-client-seal");
1491
- return {
1492
- kind: "preparing",
1493
- thresholdSessionId: String(sessionId.value),
1494
- preparationId,
1495
- result: prepareDeferredNearSessionHydration({
1496
- signingEngine: args.signingEngine,
1497
- ceremonyId: args.ceremonyId,
1498
- input: {
1499
- preparationId,
1500
- thresholdSessionId: String(sessionId.value),
1501
- prfFirstB64u: args.prfFirstB64u
1502
- }
1503
- })
1504
- };
1505
- }
1506
- async function prepareNearSessionSealWhileCustodyRuns(args) {
1507
- try {
1508
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1509
- const pending = await IndexedDBManager.getPendingWalletRegistrationCommit({
1510
- registrationCeremonyId: args.ceremonyId,
1511
- operation: "near_provisioning"
1512
- });
1513
- if (!pending || pending.operation !== "near_provisioning" || pending.phase === "joined") return { kind: "none" };
1514
- if (pending.walletId !== args.sessionAuthority.record.walletId || pending.walletAuthMethodId !== args.sessionAuthority.record.authMethodId) return { kind: "none" };
1515
- return startNearRegistrationSealPreparation({
1516
- signingEngine: args.signingEngine,
1517
- ceremonyId: args.ceremonyId,
1518
- thresholdSessionId: pending.admissionRequest.scope.threshold_session_id,
1519
- prfFirstB64u: args.prfFirstB64u
1520
- });
1521
- } catch {
1522
- return { kind: "none" };
1523
- }
1524
- }
1525
- function nearRegistrationProfileUnavailable() {
1526
- return null;
1527
- }
1528
- /** NEAR failures retain their repair journal while the committed ECDSA wallet stays usable. */
1529
- async function commitDeferredEd25519Registration(args) {
1530
- const auth = args.authMaterial;
1531
- const startedAt = performance.now();
1532
- let outcome = "failure";
1533
- let retainedFactorSecret32 = null;
1534
- let hydration = Promise.resolve({ kind: "completed" });
1535
- let preparation = { kind: "none" };
1536
- try {
1537
- if (auth.kind === "passkey") preparation = await prepareNearSessionSealWhileCustodyRuns({
1538
- signingEngine: args.context.signingEngine,
1539
- ceremonyId: args.registrationCeremonyId,
1540
- sessionAuthority: args.sessionAuthority,
1541
- prfFirstB64u: auth.prfFirstB64u
1542
- });
1543
- const nearCustody = await args.nearCustodyWork();
1544
- retainedFactorSecret32 = nearCustody.factorSecret32;
1545
- const joined = nearCustody.joined;
1546
- const clientPublicKey = `ed25519:${base58Encode(joined.metadata.registeredPublicKey)}`;
1547
- const activationReference = joined.activationReference;
1548
- const nearProvisioningIdempotencyKey = await deriveNearProvisioningIdempotencyKey({
1549
- registrationCeremonyId: args.registrationCeremonyId,
1550
- activationReference
1551
- });
1552
- const pending = await readJoinedNearRegistrationCommit({
1553
- registrationCeremonyId: args.registrationCeremonyId,
1554
- walletId: args.walletId,
1555
- walletAuthMethodId: String(args.sessionAuthority.record.authMethodId)
1556
- });
1557
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1558
- if (auth.kind === "passkey" && preparation.kind === "none") preparation = startNearRegistrationSealPreparation({
1559
- signingEngine: args.context.signingEngine,
1560
- ceremonyId: args.registrationCeremonyId,
1561
- thresholdSessionId: joined.metadata.scope.threshold_session_id,
1562
- prfFirstB64u: auth.prfFirstB64u
1563
- });
1564
- let preparedSessionSeal;
1565
- if (preparation.kind === "preparing") {
1566
- const preparationWaitStartedAt = performance.now();
1567
- const prepared = await preparation.result;
1568
- emitNearRegistrationTiming({
1569
- ceremonyId: args.registrationCeremonyId,
1570
- stage: "session_seal_preparation_wait",
1571
- startedAt: preparationWaitStartedAt,
1572
- outcome: prepared.kind === "completed" ? "success" : "failure"
1573
- });
1574
- if (prepared.kind === "failed") throw prepared.error;
1575
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1576
- const clientSeal = await args.context.signingEngine.readPreparedSigningSessionHydration({
1577
- thresholdSessionId: preparation.thresholdSessionId,
1578
- preparationId: preparation.preparationId
1579
- });
1580
- preparedSessionSeal = {
1581
- preparationId: preparation.preparationId,
1582
- thresholdSessionId: preparation.thresholdSessionId,
1583
- ciphertext: clientSeal.ciphertext
1584
- };
1585
- }
1586
- const finalizationStartedAt = performance.now();
1587
- const nearProvisioningRequest = {
1588
- relayerUrl: args.relayerUrl,
1589
- registrationCeremonyId: args.registrationCeremonyId,
1590
- signedSetup: args.signedSetup,
1591
- headers: {
1592
- ...args.headers,
1593
- Authorization: `Bearer ${args.sessionAuthority.operationCredential.token}`
1594
- },
1595
- idempotencyKey: nearProvisioningIdempotencyKey,
1596
- ed25519: { activationReference },
1597
- walletCustodyCommit: joined.commitPayload,
1598
- onServerTiming: recordRegistrationServerTimingBuckets.bind(void 0, args.registrationTiming)
1599
- };
1600
- let completed;
1601
- if (preparedSessionSeal) {
1602
- if (args.authMaterial.kind !== "passkey") throw new Error("Prepared session sealing requires a passkey authority");
1603
- completed = await completeWalletRegistrationNearProvisioning({
1604
- ...nearProvisioningRequest,
1605
- auth: { kind: "passkey" },
1606
- sessionSeal: {
1607
- thresholdSessionId: preparedSessionSeal.thresholdSessionId,
1608
- ciphertext: preparedSessionSeal.ciphertext
1609
- }
1610
- });
1611
- } else completed = await completeWalletRegistrationNearProvisioning({
1612
- ...nearProvisioningRequest,
1613
- auth: args.authMaterial
1614
- });
1615
- if (!completed.ok) throw new Error("Deferred NEAR provisioning did not complete");
1616
- const finalized = completed;
1617
- if (finalized.kind !== "near_ed25519") throw new Error("Deferred Ed25519 finalize returned a different signer branch");
1618
- if (finalized.walletCustody?.status !== "joined") {
1619
- const status = finalized.walletCustody?.status ?? "not_reported";
1620
- throw new Error(`Deferred NEAR custody join did not commit (${status})`);
1621
- }
1622
- if (preparedSessionSeal && !finalized.sessionSeal) throw new Error("Deferred NEAR finalization did not return the prepared session seal");
1623
- emitNearRegistrationTiming({
1624
- ceremonyId: args.registrationCeremonyId,
1625
- stage: "server_finalize",
1626
- startedAt: finalizationStartedAt,
1627
- outcome: "success"
1628
- });
1629
- const registrationSession = mixedRegistrationSessionFromDeferredResult(args.sessionAuthority, finalized.registrationEstablishedSession, finalized.foundingAuthority, finalized.foundingAuthMethod);
1630
- const nearAccountId = toAccountId(finalized.ed25519.nearAccountId);
1631
- const passkeyCredentialIdB64u = args.authMaterial.kind === "passkey" ? args.authMaterial.credentialIdB64u : "";
1632
- if (auth.kind === "passkey") requireEd25519YaoRegistrationPublicResultMatches({
1633
- clientPublicKey,
1634
- finalized,
1635
- expectedRpId: auth.rpId,
1636
- expectedWalletId: args.walletId
1637
- });
1638
- else requireEmailOtpEd25519YaoRegistrationPublicResultMatches({
1639
- clientPublicKey,
1640
- finalized,
1641
- expectedRegistrationAuthorityId: pending.auth.kind === "email_otp" ? pending.auth.registrationAuthorityId : "",
1642
- expectedWalletId: args.walletId
1643
- });
1644
- const materialFacts = registrationEd25519MaterialFacts({
1645
- deferredNear: {
1646
- status: "deferred",
1647
- admissionRequest: nearCustody.admissionRequest
1648
- },
1649
- finalized: finalized.ed25519,
1650
- walletId: args.walletId,
1651
- expectedRuntimePolicyScope: normalizeRuntimePolicyScope(finalized.ed25519.runtimePolicyScope)
1652
- });
1653
- const metadata = joined.metadata;
1654
- const materialActivation = nearEd25519YaoMaterialActivationFromMetadata(metadata);
1655
- const custodyMaterial = walletCustodyRegistrationMaterial({
1656
- established: joined,
1657
- walletId: String(args.walletId),
1658
- nearAccountId: String(nearAccountId),
1659
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
1660
- signerSlot: finalized.ed25519.signerSlot
1661
- });
1662
- const publicationStartedAt = performance.now();
1663
- const registration = await registrationProjectionFromPending(pending, finalized);
1664
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1665
- const storedNearActivation = (await IndexedDBManager.publishPendingWalletRegistrationCommitAndRetain({
1666
- pending,
1667
- ecdsaContinuity: [],
1668
- authority: finalized.authority,
1669
- foundingAuthority: {
1670
- authority: finalized.foundingAuthority,
1671
- authMethod: finalized.foundingAuthMethod
1672
- },
1673
- request: {
1674
- operation: pending.operation,
1675
- registrationCeremonyId: args.registrationCeremonyId,
1676
- idempotencyKey: pending.idempotencyKey,
1677
- walletId: args.walletId,
1678
- walletAuthMethodId: finalized.foundingAuthMethod.walletAuthMethodId
1679
- },
1680
- walletSessionPublication: {
1681
- kind: "credential_free_projection",
1682
- walletSession: registrationSession.walletSession
1683
- },
1684
- registration
1685
- })).signerActivations[0];
1686
- if (!storedNearActivation || storedNearActivation.signerSlot !== finalized.ed25519.signerSlot) throw new Error("Deferred Ed25519 registration persisted a different signer slot");
1687
- const prefillStatusReads = new WalletSessionStatusReadScope();
1688
- for (const chainTarget of args.expectedChainTargets) scheduleEcdsaSessionPresignaturePrefill({
1689
- signingEngine: args.context.signingEngine,
1690
- walletId: args.walletId,
1691
- chainTarget,
1692
- trigger: "registration",
1693
- statusReads: prefillStatusReads
1694
- });
1695
- emitNearRegistrationTiming({
1696
- ceremonyId: args.registrationCeremonyId,
1697
- stage: "local_publication",
1698
- startedAt: publicationStartedAt,
1699
- outcome: "success"
1700
- });
1701
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1702
- if (args.authMaterial.kind === "passkey" && registrationSession.remainingUses > 0) hydration = hydrateDeferredNearRegistrationSession({
1703
- signingEngine: args.context.signingEngine,
1704
- ceremonyId: args.registrationCeremonyId,
1705
- input: buildRegistrationPasskeyEd25519SessionHydration({
1706
- session: registrationSession,
1707
- ceremonyId: args.registrationCeremonyId,
1708
- walletId: String(args.walletId),
1709
- relayerUrl: args.relayerUrl,
1710
- prfFirstB64u: args.authMaterial.prfFirstB64u,
1711
- preparedServerSeal: preparedSessionSeal && finalized.sessionSeal ? {
1712
- preparationId: preparedSessionSeal.preparationId,
1713
- ...finalized.sessionSeal
1714
- } : null,
1715
- restore: {
1716
- rpId: args.authMaterial.rpId,
1717
- nearAccountId: String(nearAccountId),
1718
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
1719
- relayerKeyId: finalized.ed25519.relayerKeyId,
1720
- participantIds: finalized.ed25519.participantIds,
1721
- signerSlot: finalized.ed25519.signerSlot,
1722
- credentialIdB64u: args.authMaterial.credentialIdB64u,
1723
- materialActivation
1724
- }
1725
- })
1726
- });
1727
- const sessionStartedAt = performance.now();
1728
- await args.context.signingEngine.activateAuthenticatedWalletState({
1729
- walletId: args.walletId,
1730
- nearAccountId,
1731
- signerSlot: finalized.ed25519.signerSlot,
1732
- nearClient: args.context.nearClient
1733
- });
1734
- await args.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({
1735
- walletId: args.walletId,
1736
- nearAccountId,
1737
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
1738
- runtimePolicyScope: materialFacts.stableServerScope.runtimePolicyScope,
1739
- materialActivation,
1740
- ...registrationEd25519LaneAuthorization(auth, passkeyCredentialIdB64u, registrationSession),
1741
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
1742
- signerSlot: finalized.ed25519.signerSlot
1743
- });
1744
- emitNearRegistrationTiming({
1745
- ceremonyId: args.registrationCeremonyId,
1746
- stage: "session_install",
1747
- startedAt: sessionStartedAt,
1748
- outcome: "success"
1749
- });
1750
- const activationStartedAt = performance.now();
1751
- if (auth.kind === "email_otp" && registrationSession.remainingUses > 0) {
1752
- const walletSessionState = await buildRegistrationEmailOtpEd25519SessionState({
1753
- registrationEstablishedSession: registrationSession,
1754
- walletId: args.walletId,
1755
- nearAccountId: String(nearAccountId),
1756
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
1757
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
1758
- runtimePolicyScope: materialFacts.stableServerScope.runtimePolicyScope,
1759
- signerSlot: finalized.ed25519.signerSlot,
1760
- relayerUrl: args.relayerUrl,
1761
- emailOtpAuthContext: auth.emailOtpAuthContext
1762
- });
1763
- const bootstrap = buildRegistrationEmailOtpEd25519RecoveryBootstrap({
1764
- walletId: args.walletId,
1765
- nearAccountId: String(nearAccountId),
1766
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
1767
- sessionState: walletSessionState,
1768
- joined,
1769
- deferredNear: {
1770
- status: "deferred",
1771
- admissionRequest: nearCustody.admissionRequest
1772
- },
1773
- admissionReceipt: nearCustody.admissionReceipt,
1774
- authContext: auth.emailOtpAuthContext
1775
- });
1776
- await args.context.signingEngine.activateEmailOtpEd25519RegistrationMaterialInternal({
1777
- walletSession: {
1778
- walletId: args.walletId,
1779
- walletSessionUserId: String(args.walletId)
1780
- },
1781
- providerSubject: emailOtpAuthContextProviderUserId(auth.emailOtpAuthContext),
1782
- emailHashHex: emailOtpAuthContextEmailHashHex(auth.emailOtpAuthContext),
1783
- signerSlot: finalized.ed25519.signerSlot,
1784
- expectedOperationalPublicKey: clientPublicKey,
1785
- expectedThresholdSessionId: materialFacts.identity.thresholdSessionId,
1786
- bootstrap,
1787
- material: custodyMaterial,
1788
- envelope: walletCustodyCacheEnvelopeFromRecordV1(nearCustody.envelope),
1789
- factorSecret32: retainedFactorSecret32
1790
- });
1791
- retainedFactorSecret32 = null;
1792
- } else if (auth.kind === "passkey") {
1793
- if (args.authMaterial.kind !== "passkey") throw new Error("Deferred passkey registration has no Passkey authorization material");
1794
- if (!retainedFactorSecret32) throw new Error("Deferred passkey registration has no custody factor secret");
1795
- await args.clientPrewarm;
1796
- await activatePasskeyRegistrationEd25519Material({
1797
- signingEngine: args.context.signingEngine,
1798
- sessionAuthority: args.sessionAuthority,
1799
- metadata,
1800
- material: custodyMaterial,
1801
- materialFacts,
1802
- envelope: walletCustodyCacheEnvelopeFromRecordV1(nearCustody.envelope),
1803
- ownedFactorSecret: new Uint8Array(retainedFactorSecret32),
1804
- rpId: args.authMaterial.rpId,
1805
- credentialIdB64u: args.authMaterial.credentialIdB64u,
1806
- passkeyPrfFirstB64u: args.authMaterial.prfFirstB64u,
1807
- relayerUrl: args.relayerUrl
1808
- });
1809
- retainedFactorSecret32 = null;
1810
- }
1811
- if (args.authMaterial.kind === "passkey") await rememberPasskeyCustodySessionEnvelope({
1812
- walletId: String(args.walletId),
1813
- credentialIdB64u: args.authMaterial.credentialIdB64u,
1814
- envelope: nearCustody.envelope
1815
- });
1816
- emitNearRegistrationTiming({
1817
- ceremonyId: args.registrationCeremonyId,
1818
- stage: "signer_activation",
1819
- startedAt: activationStartedAt,
1820
- outcome: "success"
1821
- });
1822
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1823
- const hydrationWaitStartedAt = performance.now();
1824
- const hydrated = await hydration;
1825
- emitNearRegistrationTiming({
1826
- ceremonyId: args.registrationCeremonyId,
1827
- stage: "session_hydration_wait",
1828
- startedAt: hydrationWaitStartedAt,
1829
- outcome: hydrated.kind === "completed" ? "success" : "failure"
1830
- });
1831
- if (hydrated.kind === "failed") throw hydrated.error;
1832
- await requireCurrentNearRegistrationSession(args.sessionAuthority);
1833
- const readyStartedAt = performance.now();
1834
- await IndexedDBManager.completePendingNearRegistration({
1835
- pending,
1836
- walletSession: registrationSession.walletSession,
1837
- operationCredential: registrationSession.operationCredential,
1838
- nearAccountId: String(nearAccountId)
1839
- });
1840
- emitNearRegistrationTiming({
1841
- ceremonyId: args.registrationCeremonyId,
1842
- stage: "durable_ready",
1843
- startedAt: readyStartedAt,
1844
- outcome: "success"
1845
- });
1846
- outcome = "success";
1847
- return {
1848
- status: "near_ready",
1849
- updatedAtMs: Date.now(),
1850
- nearAccountId: String(nearAccountId)
1851
- };
1852
- } catch (error) {
1853
- const profile = await IndexedDBManager.getProfile(String(args.walletId)).catch(nearRegistrationProfileUnavailable);
1854
- if (profile?.nearProvisioning?.status === "near_ready") return profile.nearProvisioning;
1855
- const errorCode = nearProvisioningErrorCode(error);
1856
- try {
1857
- await args.context.signingEngine.setWalletNearProvisioningState({
1858
- walletId: String(args.walletId),
1859
- status: "near_failed_retryable",
1860
- errorCode
1861
- });
1862
- } catch {}
1863
- return {
1864
- status: "near_failed_retryable",
1865
- updatedAtMs: Date.now(),
1866
- error: getUserFriendlyErrorMessage(error, "registration", String(args.walletId)),
1867
- errorCode
1868
- };
1869
- } finally {
1870
- await hydration;
1871
- if (preparation.kind === "preparing") {
1872
- await preparation.result;
1873
- await args.context.signingEngine.discardSigningSessionHydration({
1874
- thresholdSessionId: preparation.thresholdSessionId,
1875
- preparationId: preparation.preparationId
1876
- }).catch(ignoreNearCustodyFailure);
1877
- }
1878
- if (retainedFactorSecret32) zeroizeArrayBuffer(retainedFactorSecret32);
1879
- emitNearRegistrationTiming({
1880
- ceremonyId: args.registrationCeremonyId,
1881
- stage: "provisioning_total",
1882
- startedAt,
1883
- outcome
1884
- });
1885
- emitNearRegistrationTiming({
1886
- ceremonyId: args.registrationCeremonyId,
1887
- stage: "registration_total",
1888
- startedAt: args.registrationStartedAt,
1889
- outcome
1890
- });
1891
- }
1892
- }
1893
- async function runDeferredEd25519Provisioning(args) {
1894
- try {
1895
- await args.context.signingEngine.setWalletNearProvisioningState({
1896
- walletId: String(args.walletId),
1897
- status: "near_provisioning"
1898
- });
1899
- } catch (error) {
1900
- const errorCode = nearProvisioningErrorCode(error);
1901
- const state = {
1902
- status: "near_failed_retryable",
1903
- updatedAtMs: Date.now(),
1904
- error: getUserFriendlyErrorMessage(error, "registration", String(args.walletId)),
1905
- errorCode
1906
- };
1907
- try {
1908
- await args.context.signingEngine.setWalletNearProvisioningState({
1909
- walletId: String(args.walletId),
1910
- status: "near_failed_retryable",
1911
- errorCode
1912
- });
1913
- } catch {}
1914
- publishNearProvisioningState(args.walletId, state);
1915
- return;
1916
- }
1917
- await runSingleFlightNearProvisioning({
1918
- walletId: args.walletId,
1919
- nowMs: Date.now,
1920
- attempt: commitDeferredEd25519Registration.bind(void 0, args.commit)
1921
- });
1922
- }
1923
- /** Maps a deferred-commit throw onto the closed set of provisioning codes. */
1924
- function nearProvisioningErrorCode(error) {
1925
- const message = error instanceof Error ? error.message : String(error);
1926
- if (message.includes("finalize")) return "near_finalize_failed";
1927
- if (message.includes("seal") || message.includes("Yao")) return "near_seal_failed";
1928
- if (message.includes("wallet session")) return "near_capability_persist_failed";
1929
- return "near_provisioning_failed";
1930
- }
1931
- async function markMixedNearProvisioningRetryable(args) {
1932
- const errorCode = nearProvisioningErrorCode(args.error);
1933
- const errorMessage = getUserFriendlyErrorMessage(args.error, "registration", String(args.walletId));
1934
- try {
1935
- await args.context.signingEngine.setWalletNearProvisioningState({
1936
- walletId: String(args.walletId),
1937
- status: "near_failed_retryable",
1938
- errorCode
1939
- });
1940
- } catch {}
1941
- publishNearProvisioningState(args.walletId, {
1942
- status: "near_failed_retryable",
1943
- updatedAtMs: Date.now(),
1944
- error: errorMessage,
1945
- errorCode
1946
- });
1947
- return {
1948
- status: "retryable",
1949
- error: errorMessage,
1950
- errorCode
1951
- };
1952
- }
1953
- async function markMixedNearProvisioningPending(args) {
1954
- try {
1955
- await args.context.signingEngine.setWalletNearProvisioningState({
1956
- walletId: String(args.walletId),
1957
- status: "near_pending"
1958
- });
1959
- publishNearProvisioningState(args.walletId, {
1960
- status: "near_pending",
1961
- updatedAtMs: Date.now()
1962
- });
1963
- return { status: "pending" };
1964
- } catch (error) {
1965
- return await markMixedNearProvisioningRetryable({
1966
- context: args.context,
1967
- walletId: args.walletId,
1968
- error
1969
- });
1970
- }
1971
- }
1972
- async function registerEcdsaOrMixedWallet(args) {
1973
- const { context, wallet, signerSelection } = args;
1974
- const options = args.options || {};
1975
- const { onEvent, onError, afterCall } = options;
1976
- const startedAt = performance.now();
1977
- const registrationTiming = new RegistrationTimingRecorder(startedAt);
1978
- const clientPrewarm = args.kind === "near_ed25519_and_evm_family_ecdsa" ? prewarmDeferredPasskeyEd25519Client(args.authMethod) : Promise.resolve();
1979
- const traceContext = createRouterAbTraceContextV1();
1980
- let postTouchIdCompletedAt = null;
1981
- let emailOtpCustodyCapabilityFactorSecret32 = null;
1982
- const initialEventAccountId = registrationEventAccountId(wallet.kind === "provided" ? String(wallet.walletId) : "wallet-registration");
1983
- emitRegistrationEvent(onEvent, initialEventAccountId, {
1984
- authMethod: args.authMethod.kind,
1985
- phase: RegistrationEventPhase.STEP_01_STARTED,
1986
- status: "started"
1987
- });
1988
- try {
1989
- const finalizeIdempotencyKey = createRegistrationOperationIdempotencyKey("wallet-registration-finalize");
1990
- const prepared = await setupRegistrationForPasskeyExecution({
1991
- context,
1992
- authMethod: args.authMethod,
1993
- wallet,
1994
- signerSelection,
1995
- recorder: registrationTiming,
1996
- passkeyExecution: args.passkeyExecution
1997
- });
1998
- if (args.authMethod.kind === "email_otp") observeRegistrationWarmup({
1999
- recorder: registrationTiming,
2000
- warmup: prepared.registrationWarmup
2001
- });
2002
- const { relayerUrl, setup } = prepared;
2003
- const ecdsaPrepare = materializeWalletRegistrationSetupEcdsaPrepare(requireEcdsaRegistrationSetup(setup, args.kind).ecdsa);
2004
- const ecdsaClientCeremony = ecdsaRegistrationClientCeremonyForExecution({
2005
- passkeyExecution: args.passkeyExecution,
2006
- ceremonyId: setup.registrationCeremonyId
2007
- });
2008
- const intentResponse = {
2009
- intent: setup.intent,
2010
- registrationIntentDigestB64u: setup.registrationIntentDigestB64u
2011
- };
2012
- const walletId = intentResponse.intent.walletId;
2013
- const eventAccountId = registrationEventAccountId(String(walletId));
2014
- let emailOtpEnrollmentMaterial = null;
2015
- let emailOtpRegistrationAuthorityId = "";
2016
- let emailOtpEmail = "";
2017
- let emailOtpProviderSubject = "";
2018
- let emailOtpProvider = null;
2019
- let emailOtpWalletCustodyFactorSecret = null;
2020
- let passkeyAuthority = null;
2021
- let startAuthority;
2022
- if (args.authMethod.kind === "passkey") {
2023
- emitRegistrationEvent(onEvent, eventAccountId, {
2024
- authMethod: args.authMethod.kind,
2025
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_STARTED,
2026
- status: "waiting_for_user",
2027
- interaction: {
2028
- kind: "passkey_create",
2029
- overlay: "show"
2030
- }
2031
- });
2032
- const confirmationConfig = {
2033
- uiMode: "modal",
2034
- behavior: "requireClick",
2035
- ...args.confirmationConfigOverride ?? options?.confirmationConfig ?? {}
2036
- };
2037
- passkeyAuthority = await registrationTiming.measure("authProofMs", () => resolvePasskeyRegistrationAuthority({
2038
- context,
2039
- walletId,
2040
- signerSlot: registrationPasskeySignerSlot(args),
2041
- registrationIntentDigestB64u: intentResponse.registrationIntentDigestB64u,
2042
- options,
2043
- confirmationConfigOverride: confirmationConfig,
2044
- passkeyExecution: args.passkeyExecution
2045
- }));
2046
- registrationTiming.capturePasskeyAuthDiagnostics(passkeyAuthority.diagnostics);
2047
- postTouchIdCompletedAt = performance.now();
2048
- const custodyCredentialId = parseWebAuthnCredentialIdB64u(String(passkeyAuthority.credential.rawId || passkeyAuthority.credential.id || "").trim());
2049
- if (!custodyCredentialId.ok) throw new Error(`passkey credential id ${custodyCredentialId.error.message}`);
2050
- startAuthority = {
2051
- kind: "passkey",
2052
- webauthnRegistration: passkeyAuthority.webauthnRegistration,
2053
- walletCustodyFactorJson: JSON.stringify({
2054
- envelopeId: `wallet-custody-envelope:${crypto.randomUUID()}`,
2055
- factor: buildPasskeyEnvelopeFactor({
2056
- rpId: requireWebAuthnRpId(args.authMethod.rpId),
2057
- credentialIdB64u: custodyCredentialId.value
2058
- }),
2059
- walletAuthMethodId: intentResponse.intent.foundingWalletAuthMethodId
2060
- }),
2061
- walletCustodyFactorSecret: base64UrlDecode(passkeyAuthority.prfFirstB64u).buffer
2062
- };
2063
- emitRegistrationEvent(onEvent, eventAccountId, {
2064
- authMethod: args.authMethod.kind,
2065
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_SUCCEEDED,
2066
- status: "succeeded",
2067
- interaction: {
2068
- kind: "passkey_create",
2069
- overlay: "hide"
2070
- }
2071
- });
2072
- } else {
2073
- const emailOtpAuthMethod = args.authMethod;
2074
- const emailOtpEnrollmentSecret = crypto.getRandomValues(new Uint8Array(32));
2075
- emailOtpCustodyCapabilityFactorSecret32 = emailOtpEnrollmentSecret.slice();
2076
- emailOtpWalletCustodyFactorSecret = emailOtpEnrollmentSecret.slice().buffer;
2077
- const emailAuthority = await registrationTiming.measure("authProofMs", () => collectEmailOtpRegistrationAuthority({
2078
- authMethod: emailOtpAuthMethod,
2079
- relayUrl: relayerUrl,
2080
- walletId: String(walletId),
2081
- registrationIntentDigestB64u: intentResponse.registrationIntentDigestB64u
2082
- }));
2083
- emailOtpEnrollmentMaterial = startEmailOtpRegistrationEnrollmentMaterial({
2084
- recorder: registrationTiming,
2085
- context,
2086
- authMethod: emailOtpAuthMethod,
2087
- relayerUrl,
2088
- walletId: String(walletId),
2089
- providerSubject: emailAuthority.providerSubject,
2090
- clientSecret32: emailOtpEnrollmentSecret
2091
- });
2092
- emailOtpRegistrationAuthorityId = emailAuthority.registrationAuthorityId;
2093
- emailOtpEmail = emailAuthority.email;
2094
- emailOtpProviderSubject = emailAuthority.providerSubject;
2095
- emailOtpProvider = emailOtpProviderFromRegistrationProof(emailAuthority.proof);
2096
- startAuthority = {
2097
- kind: "email_otp",
2098
- emailOtpRegistrationProof: emailAuthority.proof,
2099
- walletCustodyFactorSecret: emailOtpWalletCustodyFactorSecret
2100
- };
2101
- }
2102
- const setupWalletAuthMethodId = parseWalletAuthMethodId(setup.walletAuthMethodId);
2103
- if (!setupWalletAuthMethodId.ok) throw new Error(`Registration setup auth-method identity is invalid: ${setupWalletAuthMethodId.error.message}`);
2104
- let materialAuthority;
2105
- if (args.authMethod.kind === "passkey") {
2106
- if (!passkeyAuthority) throw new Error("ECDSA registration is missing its verified passkey authority");
2107
- materialAuthority = await walletAuthAuthorityRef({ authority: {
2108
- ...passkeyWalletAuthAuthorityFromCredential({
2109
- walletId,
2110
- rpId: args.authMethod.rpId,
2111
- credential: passkeyAuthority.credential
2112
- }),
2113
- bindingId: setupWalletAuthMethodId.value
2114
- } });
2115
- } else {
2116
- if (!emailOtpProvider) throw new Error("Email OTP registration is missing its verified provider");
2117
- materialAuthority = await walletAuthAuthorityRef({ authority: {
2118
- ...buildEmailOtpWalletAuthAuthority({
2119
- walletId,
2120
- provider: emailOtpProvider,
2121
- providerUserId: emailOtpProviderSubject,
2122
- emailHashHex: await emailOtpEmailHashHex(emailOtpEmail)
2123
- }),
2124
- bindingId: setupWalletAuthMethodId.value
2125
- } });
2126
- }
2127
- emitRegistrationEvent(onEvent, eventAccountId, {
2128
- authMethod: args.authMethod.kind,
2129
- phase: RegistrationEventPhase.STEP_05_ED25519_SIGNER_PREPARE_STARTED,
2130
- status: "running"
2131
- });
2132
- const walletCustodyNearJoinFactorSecretOwner = { value: args.kind === "near_ed25519_and_evm_family_ecdsa" ? startAuthority.walletCustodyFactorSecret.slice(0) : null };
2133
- let persistedPendingCommit = null;
2134
- let ceremony;
2135
- try {
2136
- ceremony = await registrationTiming.measure("ecdsaRegistrationTotalMs", () => runEcdsaEnabledThreeRouteRegistrationCeremony({
2137
- context,
2138
- relayerUrl,
2139
- registrationCeremonyId: setup.registrationCeremonyId,
2140
- signerPlanKind: args.kind,
2141
- signedSetup: setup.signedSetup,
2142
- ecdsaPrepare,
2143
- clientCeremony: ecdsaClientCeremony,
2144
- authority: startAuthority,
2145
- materialAuthority,
2146
- idempotencyKey: finalizeIdempotencyKey,
2147
- resolveActivateEmailOtp: async () => {
2148
- let enrollment = null;
2149
- let walletCustodyFactorJson = null;
2150
- if (args.authMethod.kind === "email_otp") {
2151
- const material = await requireEmailOtpRegistrationEnrollmentMaterial({
2152
- material: emailOtpEnrollmentMaterial,
2153
- operation: "activate"
2154
- });
2155
- enrollment = material.emailOtpEnrollment ?? null;
2156
- walletCustodyFactorJson = JSON.stringify({
2157
- envelopeId: `wallet-custody-envelope:${crypto.randomUUID()}`,
2158
- factor: buildEmailOtpEnvelopeFactor({
2159
- enrollmentId: material.enrollmentId,
2160
- enrollmentSealKeyVersion: material.enrollmentSealKeyVersion
2161
- }),
2162
- walletAuthMethodId: intentResponse.intent.foundingWalletAuthMethodId
2163
- });
2164
- }
2165
- return {
2166
- enrollment,
2167
- walletCustodyFactorJson
2168
- };
2169
- },
2170
- traceContext,
2171
- registrationTiming,
2172
- confirmRecoveryCodesBackedUp: confirmWalletRecoveryCodesBackedUp.bind(void 0, context, String(walletId), options.recoveryCodeBackup),
2173
- persistPendingCommit: async (input) => {
2174
- const common = {
2175
- operation: "registration_activate",
2176
- registrationCeremonyId: setup.registrationCeremonyId,
2177
- idempotencyKey: finalizeIdempotencyKey,
2178
- walletId: String(walletId),
2179
- walletAuthMethodId: String(intentResponse.intent.foundingWalletAuthMethodId),
2180
- signedSetup: String(setup.signedSetup),
2181
- auth: pendingRegistrationAuthFromRegistrationInputs({
2182
- authMethod: args.authMethod,
2183
- passkeyAuthority,
2184
- email: emailOtpEmail,
2185
- registrationAuthorityId: emailOtpRegistrationAuthorityId,
2186
- providerSubject: emailOtpProviderSubject,
2187
- emailOtpEnrollment: input.emailOtpEnrollment
2188
- })
2189
- };
2190
- if (input.signerPlanKind === "near_ed25519_and_evm_family_ecdsa") {
2191
- const nowMs = Date.now();
2192
- const activation = requireMixedRegistrationActivatePendingCommit(buildPendingRegistrationCommit({
2193
- ...common,
2194
- signerPlanKind: input.signerPlanKind,
2195
- localMaterial: input.localMaterial,
2196
- createdAtMs: nowMs,
2197
- updatedAtMs: nowMs
2198
- }));
2199
- const continuation = planPendingNearRegistration(activation, input.deferredNear.admissionRequest);
2200
- await IndexedDBManager.putPendingWalletRegistrationCommits([activation, continuation]);
2201
- persistedPendingCommit = activation;
2202
- return;
2203
- }
2204
- persistedPendingCommit = await persistPendingRegistrationCommit({
2205
- ...common,
2206
- signerPlanKind: input.signerPlanKind,
2207
- localMaterial: input.localMaterial
2208
- });
2209
- },
2210
- startDeferredNearCustody: startDeferredNearWalletCustody.bind(void 0, {
2211
- context,
2212
- factorSecretOwner: walletCustodyNearJoinFactorSecretOwner,
2213
- registrationCeremonyId: setup.registrationCeremonyId,
2214
- relayerUrl,
2215
- signedSetup: String(setup.signedSetup),
2216
- traceContext
2217
- })
2218
- }));
2219
- } finally {
2220
- zeroizeArrayBuffer(startAuthority.walletCustodyFactorSecret);
2221
- if (walletCustodyNearJoinFactorSecretOwner.value) {
2222
- zeroizeArrayBuffer(walletCustodyNearJoinFactorSecretOwner.value);
2223
- walletCustodyNearJoinFactorSecretOwner.value = null;
2224
- }
2225
- }
2226
- const ecdsaSession = ceremony.session;
2227
- if (ceremony.activated.kind !== "evm_family_ecdsa") throw new Error("Wallet registration activate returned a different signer branch");
2228
- const finalized = finalizeResponseViewFromActivatedEcdsa(ceremony.activated);
2229
- const emailOtpEnrollment = ceremony.activateEmailOtp.enrollment;
2230
- if (finalized.kind !== "evm_family_ecdsa") throw new Error("Wallet registration finalize returned a different signer branch");
2231
- if (args.authMethod.kind === "email_otp") {
2232
- if (!isEmailOtpWalletRegistrationFinalizeResponse(finalized)) throw new Error("Email OTP registration finalize returned a different auth method");
2233
- }
2234
- registrationTiming.captureRouteDiagnostics(finalized.registrationDiagnostics);
2235
- const walletKeys = finalized.ecdsa.walletKeys;
2236
- if (walletKeys.length === 0) throw new Error("Wallet registration finalize did not return ECDSA wallet keys");
2237
- const persistenceAuth = await buildRegistrationPersistenceAuth({
2238
- authMethod: args.authMethod,
2239
- configs: context.configs,
2240
- walletId: toWalletId(finalized.walletId),
2241
- finalized,
2242
- passkeyAuthority,
2243
- email: emailOtpEmail,
2244
- providerSubject: emailOtpProviderSubject,
2245
- registrationAuthorityId: emailOtpRegistrationAuthorityId
2246
- });
2247
- const persistencePlan = buildRegistrationPersistencePlan({
2248
- walletId: toWalletId(finalized.walletId),
2249
- auth: persistenceAuth,
2250
- foundingAuthority: finalized.foundingAuthority,
2251
- foundingAuthMethod: finalized.foundingAuthMethod,
2252
- ecdsa: buildRegistrationPersistenceEcdsa({
2253
- session: ecdsaSession,
2254
- walletKeys,
2255
- expectedChainTargets: ecdsaSession.chainTargets
2256
- })
2257
- });
2258
- emitRegistrationEvent(onEvent, eventAccountId, {
2259
- authMethod: args.authMethod.kind,
2260
- phase: RegistrationEventPhase.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,
2261
- status: "succeeded"
2262
- });
2263
- emitRegistrationEvent(onEvent, eventAccountId, {
2264
- authMethod: args.authMethod.kind,
2265
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_STARTED,
2266
- status: "running"
2267
- });
2268
- const deferredWalletId = toWalletId(finalized.walletId);
2269
- let registrationNearProvisioning = { status: "pending" };
2270
- if (args.kind === "near_ed25519_and_evm_family_ecdsa") {
2271
- await publishMixedEcdsaRegistrationCommit({
2272
- context,
2273
- relayerUrl,
2274
- registrationTiming,
2275
- pending: requireMixedRegistrationActivatePendingCommit(persistedPendingCommit),
2276
- plan: persistencePlan,
2277
- activated: ceremony.activated
2278
- });
2279
- registrationNearProvisioning = await markMixedNearProvisioningPending({
2280
- context,
2281
- walletId: deferredWalletId
2282
- });
2283
- } else await commitRegistrationPersistencePlan({
2284
- context,
2285
- relayerUrl,
2286
- registrationTiming,
2287
- plan: persistencePlan
2288
- });
2289
- const prefillStatusReads = new WalletSessionStatusReadScope();
2290
- for (const chainTarget of ecdsaSession.chainTargets) scheduleEcdsaSessionPresignaturePrefill({
2291
- signingEngine: context.signingEngine,
2292
- walletId: deferredWalletId,
2293
- chainTarget,
2294
- trigger: "registration",
2295
- statusReads: prefillStatusReads
2296
- });
2297
- const primaryEcdsaKey = persistencePlan.ecdsa.walletKeys[0];
2298
- if (args.authMethod.kind === "passkey") {
2299
- if (!passkeyAuthority) throw new Error("Passkey registration authority was not collected");
2300
- const registrationSession = persistencePlan.ecdsa.session.registrationEstablishedSession;
2301
- try {
2302
- await establishPasskeyRegistrationEd25519ExportRootCapability({
2303
- signingEngine: context.signingEngine,
2304
- commit: ceremony.walletCustody.commitPayload,
2305
- passkeyPrfFirstB64u: passkeyAuthority.prfFirstB64u,
2306
- walletId: String(walletId),
2307
- walletAuthMethodId: String(persistencePlan.foundingAuthMethod.walletAuthMethodId),
2308
- walletSessionId: String(registrationSession.walletSessionId),
2309
- expiresAtMs: registrationSession.expiresAtMs
2310
- });
2311
- } catch (error) {
2312
- if (args.kind !== "near_ed25519_and_evm_family_ecdsa") throw error;
2313
- registrationNearProvisioning = await markMixedNearProvisioningRetryable({
2314
- context,
2315
- walletId: deferredWalletId,
2316
- error
2317
- });
2318
- }
2319
- } else {
2320
- if (persistenceAuth.kind !== "email_otp" || !emailOtpCustodyCapabilityFactorSecret32) throw new Error("Email OTP registration has no custody capability material");
2321
- const registrationSession = persistencePlan.ecdsa.session.registrationEstablishedSession;
2322
- await establishEmailOtpRegistrationEd25519ExportRootCapability({
2323
- context,
2324
- commit: ceremony.walletCustody.commitPayload,
2325
- factorSecret32: emailOtpCustodyCapabilityFactorSecret32,
2326
- emailOtpAuthContext: persistenceAuth.emailOtpAuthContext,
2327
- walletId: String(walletId),
2328
- walletSessionId: String(registrationSession.walletSessionId),
2329
- expiresAtMs: registrationSession.expiresAtMs
2330
- });
2331
- }
2332
- if (args.kind === "near_ed25519_and_evm_family_ecdsa") {
2333
- const deferredAuthMaterial = buildDeferredRegistrationFinalizeAuthMaterial({
2334
- auth: persistencePlan.auth,
2335
- emailOtpEnrollment,
2336
- passkeyAuthority
2337
- });
2338
- try {
2339
- runDeferredEd25519Provisioning({
2340
- context,
2341
- walletId: deferredWalletId,
2342
- commit: {
2343
- context,
2344
- registrationTiming,
2345
- registrationStartedAt: startedAt,
2346
- clientPrewarm,
2347
- relayerUrl,
2348
- registrationCeremonyId: setup.registrationCeremonyId,
2349
- signedSetup: setup.signedSetup,
2350
- headers: registrationRouteHeaders(traceContext),
2351
- nearCustodyWork: requireDeferredNearCustodyWork.bind(void 0, ceremony.deferredNearCustodyWork),
2352
- sessionAuthority: {
2353
- record: persistencePlan.ecdsa.session.registrationEstablishedSession.walletSession,
2354
- operationCredential: persistencePlan.ecdsa.session.registrationEstablishedSession.operationCredential
2355
- },
2356
- expectedChainTargets: persistencePlan.ecdsa.expectedChainTargets,
2357
- walletId: deferredWalletId,
2358
- authMaterial: deferredAuthMaterial
2359
- }
2360
- });
2361
- } catch (error) {
2362
- const errorCode = nearProvisioningErrorCode(error);
2363
- registrationNearProvisioning = {
2364
- status: "retryable",
2365
- error: getUserFriendlyErrorMessage(error, "registration", String(deferredWalletId)),
2366
- errorCode
2367
- };
2368
- publishNearProvisioningState(deferredWalletId, {
2369
- status: "near_failed_retryable",
2370
- updatedAtMs: Date.now(),
2371
- error: registrationNearProvisioning.error,
2372
- errorCode
2373
- });
2374
- }
2375
- }
2376
- if (args.kind === "evm_family_ecdsa") await IndexedDBManager.deletePendingWalletRegistrationCommit({
2377
- registrationCeremonyId: setup.registrationCeremonyId,
2378
- operation: "registration_activate"
2379
- });
2380
- const result = args.kind === "near_ed25519_and_evm_family_ecdsa" ? {
2381
- success: true,
2382
- kind: "ecdsa_wallet_registered_near_pending",
2383
- walletId: finalized.walletId,
2384
- capabilities: [{
2385
- kind: "evm_family_ecdsa",
2386
- thresholdEcdsaEthereumAddress: primaryEcdsaKey.thresholdOwnerAddress,
2387
- thresholdEcdsaPublicKeyB64u: primaryEcdsaKey.thresholdEcdsaPublicKeyB64u
2388
- }],
2389
- nearProvisioning: registrationNearProvisioning
2390
- } : {
2391
- success: true,
2392
- kind: "wallet_registered",
2393
- walletId: finalized.walletId,
2394
- capabilities: [{
2395
- kind: "evm_family_ecdsa",
2396
- thresholdEcdsaEthereumAddress: primaryEcdsaKey.thresholdOwnerAddress,
2397
- thresholdEcdsaPublicKeyB64u: primaryEcdsaKey.thresholdEcdsaPublicKeyB64u
2398
- }]
2399
- };
2400
- emitRegistrationEvent(onEvent, eventAccountId, {
2401
- authMethod: args.authMethod.kind,
2402
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_SUCCEEDED,
2403
- status: "succeeded"
2404
- });
2405
- emitRegistrationEvent(onEvent, eventAccountId, {
2406
- authMethod: args.authMethod.kind,
2407
- phase: RegistrationEventPhase.STEP_11_COMPLETED,
2408
- status: "succeeded"
2409
- });
2410
- if (postTouchIdCompletedAt !== null) {
2411
- const walletReadyAt = performance.now();
2412
- emitRegistrationTimingSpan({
2413
- callback: options.onTimingSpan,
2414
- span: "registration.post_touch_id",
2415
- outcome: "success",
2416
- durationMs: walletReadyAt - postTouchIdCompletedAt,
2417
- traceContext
2418
- });
2419
- emitRegistrationTimingSpan({
2420
- callback: options.onTimingSpan,
2421
- span: "frontend.wallet_ready",
2422
- outcome: "success",
2423
- durationMs: 0,
2424
- traceContext
2425
- });
2426
- }
2427
- emitRegistrationTimingSummary(createSucceededRegistrationTimingSummary({
2428
- recorder: registrationTiming,
2429
- authMethod: args.authMethod.kind,
2430
- signerSet: registrationTimingSignerSetFromPlan(args.signerPlan)
2431
- }));
2432
- commitSuccessfulWalletAuthentication(args.context, result, args.authMethod.kind);
2433
- afterCall?.(true, result);
2434
- return result;
2435
- } catch (error) {
2436
- const errorCode = registrationErrorCodeFromUnknown(error);
2437
- const errorMessage = getUserFriendlyErrorMessage(error, "registration", initialEventAccountId);
2438
- if (postTouchIdCompletedAt !== null) emitRegistrationTimingSpan({
2439
- callback: options.onTimingSpan,
2440
- span: "registration.post_touch_id",
2441
- outcome: "failure",
2442
- durationMs: performance.now() - postTouchIdCompletedAt,
2443
- traceContext
2444
- });
2445
- const errorObject = registrationErrorWithCode(errorMessage, errorCode);
2446
- onError?.(errorObject);
2447
- emitRegistrationEvent(onEvent, initialEventAccountId, {
2448
- authMethod: args.authMethod.kind,
2449
- phase: RegistrationEventPhase.FAILED,
2450
- status: "failed",
2451
- message: errorMessage,
2452
- interaction: {
2453
- kind: "passkey_create",
2454
- overlay: "hide"
2455
- },
2456
- error: {
2457
- ...errorCode ? { code: errorCode } : {},
2458
- message: errorMessage
2459
- }
2460
- });
2461
- const result = {
2462
- success: false,
2463
- error: errorMessage,
2464
- ...errorCode ? { errorCode } : {}
2465
- };
2466
- emitRegistrationTimingSummary(createFailedRegistrationTimingSummary({
2467
- recorder: registrationTiming,
2468
- authMethod: args.authMethod.kind,
2469
- signerSet: registrationTimingSignerSetFromPlan(args.signerPlan),
2470
- errorCode: errorCode || null
2471
- }));
2472
- afterCall?.(false);
2473
- return result;
2474
- } finally {
2475
- emailOtpCustodyCapabilityFactorSecret32?.fill(0);
2476
- }
2477
- }
2478
- async function registerEmailOtpEd25519YaoWalletOnly(args) {
2479
- const { context, options } = args;
2480
- const initialEventAccountId = registrationEventAccountId(args.wallet.kind === "provided" ? String(args.wallet.walletId) : "wallet-registration");
2481
- const registrationTiming = new RegistrationTimingRecorder(performance.now());
2482
- let emailOtpCustodyCapabilityFactorSecret32 = null;
2483
- emitRegistrationEvent(options.onEvent, initialEventAccountId, {
2484
- authMethod: "email_otp",
2485
- phase: RegistrationEventPhase.STEP_01_STARTED,
2486
- status: "started"
2487
- });
2488
- try {
2489
- const finalizeIdempotencyKey = createRegistrationOperationIdempotencyKey("wallet-registration-finalize");
2490
- const prepared = await setupThreeRouteRegistration({
2491
- context,
2492
- authMethod: args.authMethod,
2493
- wallet: args.wallet,
2494
- signerSelection: args.signerSelection,
2495
- recorder: registrationTiming
2496
- });
2497
- observeRegistrationWarmup({
2498
- recorder: registrationTiming,
2499
- warmup: prepared.registrationWarmup
2500
- });
2501
- const { relayerUrl, setup } = prepared;
2502
- const walletId = setup.intent.walletId;
2503
- const eventAccountId = registrationEventAccountId(String(walletId));
2504
- const emailAuthority = await registrationTiming.measure("authProofMs", collectEmailOtpRegistrationAuthority.bind(void 0, {
2505
- authMethod: args.authMethod,
2506
- relayUrl: relayerUrl,
2507
- walletId: String(walletId),
2508
- registrationIntentDigestB64u: setup.registrationIntentDigestB64u
2509
- }));
2510
- const emailOtpEnrollmentSecret = crypto.getRandomValues(new Uint8Array(32));
2511
- emailOtpCustodyCapabilityFactorSecret32 = emailOtpEnrollmentSecret.slice();
2512
- const emailOtpWalletCustodyFactorSecret = emailOtpEnrollmentSecret.slice().buffer;
2513
- const enrollmentMaterial = startEmailOtpRegistrationEnrollmentMaterial({
2514
- recorder: registrationTiming,
2515
- context,
2516
- authMethod: args.authMethod,
2517
- relayerUrl,
2518
- walletId: String(walletId),
2519
- providerSubject: emailAuthority.providerSubject,
2520
- clientSecret32: emailOtpEnrollmentSecret
2521
- });
2522
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2523
- authMethod: "email_otp",
2524
- phase: RegistrationEventPhase.STEP_05_ED25519_SIGNER_PREPARE_STARTED,
2525
- status: "running"
2526
- });
2527
- const responded = await registrationTiming.measure("walletRegisterStartMs", respondWalletRegistration.bind(void 0, {
2528
- relayerUrl,
2529
- registrationCeremonyId: setup.registrationCeremonyId,
2530
- signerPlanKind: "near_ed25519",
2531
- signedSetup: setup.signedSetup,
2532
- headers: registrationRouteHeaders(),
2533
- kind: "email_otp",
2534
- emailOtpRegistrationProof: emailAuthority.proof
2535
- }));
2536
- if (responded.kind !== "near_ed25519") throw new Error("Ed25519-only registration respond returned a different signer branch");
2537
- const materialForActivate = await requireEmailOtpRegistrationEnrollmentMaterial({
2538
- material: enrollmentMaterial,
2539
- operation: "activate"
2540
- });
2541
- let established;
2542
- try {
2543
- established = await context.signingEngine.establishWalletCustodyNearEd25519KeySet({
2544
- walletId: String(walletId),
2545
- factorJson: JSON.stringify({
2546
- envelopeId: `wallet-custody-envelope:${crypto.randomUUID()}`,
2547
- factor: buildEmailOtpEnvelopeFactor({
2548
- enrollmentId: materialForActivate.enrollmentId,
2549
- enrollmentSealKeyVersion: materialForActivate.enrollmentSealKeyVersion
2550
- }),
2551
- walletAuthMethodId: setup.intent.foundingWalletAuthMethodId
2552
- }),
2553
- factorSecret: emailOtpWalletCustodyFactorSecret,
2554
- nearEd25519SigningKeyId: responded.ed25519.admissionRequest.application_binding.near_ed25519_signing_key_id,
2555
- registrationCeremonyId: setup.registrationCeremonyId,
2556
- admissionRequest: responded.ed25519.admissionRequest,
2557
- admissionReceipt: await admitDeferredNearRegistration(responded.ed25519, {
2558
- routerOrigin: new URL(relayerUrl).origin,
2559
- authorization: {
2560
- kind: "bearer",
2561
- value: `Bearer ${String(setup.signedSetup)}`
2562
- },
2563
- fetch: globalThis.fetch
2564
- }),
2565
- participantIds: responded.ed25519.admissionRequest.participant_ids,
2566
- routerOrigin: new URL(relayerUrl).origin,
2567
- authorization: `Bearer ${String(setup.signedSetup)}`
2568
- });
2569
- } finally {
2570
- zeroizeArrayBuffer(emailOtpWalletCustodyFactorSecret);
2571
- }
2572
- await confirmWalletRecoveryCodesBackedUp(context, String(walletId), options.recoveryCodeBackup, established.recoveryCodes);
2573
- const walletCustodyCommit = walletCustodyCommitPayloadWithRecoveryBackupAcknowledgement(established.commitPayload);
2574
- if (!established.localMaterial) throw new Error("Email OTP registration produced no sealed local custody material");
2575
- await persistPendingRegistrationCommit({
2576
- operation: "registration_activate",
2577
- signerPlanKind: "near_ed25519",
2578
- registrationCeremonyId: setup.registrationCeremonyId,
2579
- idempotencyKey: finalizeIdempotencyKey,
2580
- walletId: String(walletId),
2581
- walletAuthMethodId: String(setup.intent.foundingWalletAuthMethodId),
2582
- signedSetup: String(setup.signedSetup),
2583
- auth: {
2584
- kind: "email_otp",
2585
- email: emailAuthority.email,
2586
- registrationAuthorityId: emailAuthority.registrationAuthorityId,
2587
- providerSubject: emailAuthority.providerSubject,
2588
- enrollment: materialForActivate.emailOtpEnrollment
2589
- },
2590
- localMaterial: {
2591
- keyFamilies: ["ed25519"],
2592
- custodyCommit: walletCustodyCommit,
2593
- ed25519: {
2594
- activationReference: established.activationReference,
2595
- localMaterial: established.localMaterial,
2596
- metadata: pendingRegistrationEd25519MetadataFromJoined(established)
2597
- }
2598
- }
2599
- });
2600
- const activated = await activateWalletRegistration({
2601
- relayerUrl,
2602
- registrationCeremonyId: setup.registrationCeremonyId,
2603
- signerPlanKind: "near_ed25519",
2604
- signedSetup: setup.signedSetup,
2605
- headers: registrationRouteHeaders(),
2606
- idempotencyKey: finalizeIdempotencyKey,
2607
- emailOtpEnrollment: materialForActivate.emailOtpEnrollment
2608
- });
2609
- if (activated.kind !== "near_ed25519" || activated.nearProvisioning?.status !== "near_pending") throw new Error("Ed25519-only activate did not return a wallet pending NEAR provisioning");
2610
- const nearProvisioningIdempotencyKey = await deriveNearProvisioningIdempotencyKey({
2611
- registrationCeremonyId: setup.registrationCeremonyId,
2612
- activationReference: established.activationReference
2613
- });
2614
- const nearProvisioningPending = await persistPendingRegistrationCommit({
2615
- operation: "near_provisioning",
2616
- completion: { kind: "sealed_material" },
2617
- signerPlanKind: "near_ed25519",
2618
- registrationCeremonyId: setup.registrationCeremonyId,
2619
- idempotencyKey: nearProvisioningIdempotencyKey,
2620
- walletId: String(walletId),
2621
- walletAuthMethodId: String(setup.intent.foundingWalletAuthMethodId),
2622
- signedSetup: String(setup.signedSetup),
2623
- auth: {
2624
- kind: "email_otp",
2625
- email: emailAuthority.email,
2626
- registrationAuthorityId: emailAuthority.registrationAuthorityId,
2627
- providerSubject: emailAuthority.providerSubject,
2628
- enrollment: materialForActivate.emailOtpEnrollment
2629
- },
2630
- localMaterial: {
2631
- keyFamilies: ["ed25519"],
2632
- custodyCommit: walletCustodyCommit,
2633
- ed25519: {
2634
- activationReference: established.activationReference,
2635
- localMaterial: established.localMaterial,
2636
- metadata: pendingRegistrationEd25519MetadataFromJoined(established)
2637
- }
2638
- }
2639
- });
2640
- await IndexedDBManager.deletePendingWalletRegistrationCommit({
2641
- registrationCeremonyId: setup.registrationCeremonyId,
2642
- operation: "registration_activate"
2643
- });
2644
- const clientPublicKey = `ed25519:${base58Encode(established.metadata.registeredPublicKey)}`;
2645
- const finalized = await registrationTiming.measure("walletRegisterFinalizeMs", completeWalletRegistrationNearProvisioning.bind(void 0, {
2646
- relayerUrl,
2647
- registrationCeremonyId: setup.registrationCeremonyId,
2648
- signedSetup: setup.signedSetup,
2649
- headers: registrationRouteHeaders(),
2650
- idempotencyKey: nearProvisioningIdempotencyKey,
2651
- ed25519: { activationReference: established.activationReference },
2652
- auth: {
2653
- kind: "email_otp",
2654
- enrollment: materialForActivate.emailOtpEnrollment
2655
- },
2656
- walletCustodyCommit
2657
- }));
2658
- if (!finalized.ok) throw new Error("Deferred NEAR provisioning did not complete");
2659
- registrationTiming.captureRouteDiagnostics(finalized.registrationDiagnostics);
2660
- if (finalized.kind !== "near_ed25519") throw new Error("Wallet registration finalize returned a different signer branch");
2661
- if (!isEmailOtpWalletRegistrationFinalizeResponse(finalized)) throw new Error("Email OTP registration finalize returned a different auth method");
2662
- if (finalized.walletCustody?.status !== "committed") {
2663
- const status = finalized.walletCustody?.status ?? "not_reported";
2664
- throw new Error(`Wallet custody did not commit (${status})`);
2665
- }
2666
- if (finalized.ed25519.signerSlot !== args.ed25519Selection.signerSlot) throw new Error("Ed25519 Yao finalize returned a different signer slot");
2667
- const registrationSession = requireIssuedRegistrationEstablishedSession(finalized.registrationEstablishedSession);
2668
- requireEmailOtpEd25519YaoRegistrationPublicResultMatches({
2669
- clientPublicKey,
2670
- finalized,
2671
- expectedRegistrationAuthorityId: emailAuthority.registrationAuthorityId,
2672
- expectedWalletId: walletId
2673
- });
2674
- const persistenceAuth = await buildRegistrationPersistenceAuth({
2675
- authMethod: args.authMethod,
2676
- configs: context.configs,
2677
- walletId: toWalletId(finalized.walletId),
2678
- finalized,
2679
- passkeyAuthority: null,
2680
- email: emailAuthority.email,
2681
- providerSubject: emailAuthority.providerSubject,
2682
- registrationAuthorityId: emailAuthority.registrationAuthorityId
2683
- });
2684
- if (persistenceAuth.kind !== "email_otp") throw new Error("Email OTP Ed25519 registration produced a different persistence authority");
2685
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2686
- authMethod: "email_otp",
2687
- phase: RegistrationEventPhase.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,
2688
- status: "succeeded"
2689
- });
2690
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2691
- authMethod: "email_otp",
2692
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_STARTED,
2693
- status: "running"
2694
- });
2695
- const materialFacts = registrationEd25519MaterialFacts({
2696
- deferredNear: responded.ed25519,
2697
- finalized: finalized.ed25519,
2698
- walletId,
2699
- expectedRuntimePolicyScope: normalizeRuntimePolicyScope(setup.intent.runtimePolicyScope)
2700
- });
2701
- const metadata = established.metadata;
2702
- const nearAccountId = toAccountId(finalized.ed25519.nearAccountId);
2703
- const custodyMaterial = walletCustodyRegistrationMaterial({
2704
- established,
2705
- walletId: String(finalized.walletId),
2706
- nearAccountId: String(nearAccountId),
2707
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
2708
- signerSlot: finalized.ed25519.signerSlot
2709
- });
2710
- const registration = await prepareWalletEmailOtpEd25519RegistrationPublication({
2711
- walletId: finalized.walletId,
2712
- nearAccountId,
2713
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
2714
- email: persistenceAuth.email,
2715
- registrationAuthorityId: persistenceAuth.registrationAuthorityId,
2716
- authority: persistenceAuth.authority,
2717
- signerSlot: finalized.ed25519.signerSlot,
2718
- operationalPublicKey: clientPublicKey,
2719
- relayerKeyId: finalized.ed25519.relayerKeyId,
2720
- keyVersion: finalized.ed25519.keyVersion,
2721
- participantIds: [...finalized.ed25519.participantIds],
2722
- custodyMaterial
2723
- });
2724
- const storedNearActivation = (await IndexedDBManager.publishPendingWalletRegistrationCommit({
2725
- pending: nearProvisioningPending,
2726
- ecdsaContinuity: [],
2727
- authority: finalized.authority,
2728
- foundingAuthority: {
2729
- authority: finalized.foundingAuthority,
2730
- authMethod: finalized.foundingAuthMethod
2731
- },
2732
- request: {
2733
- operation: "near_provisioning",
2734
- registrationCeremonyId: setup.registrationCeremonyId,
2735
- idempotencyKey: nearProvisioningIdempotencyKey,
2736
- walletId: finalized.walletId,
2737
- walletAuthMethodId: finalized.foundingAuthMethod.walletAuthMethodId
2738
- },
2739
- walletSessionPublication: {
2740
- kind: "issued",
2741
- walletSession: registrationSession.walletSession,
2742
- operationCredential: registrationSession.operationCredential
2743
- },
2744
- registration
2745
- })).signerActivations[1];
2746
- if (!storedNearActivation || storedNearActivation.signerSlot !== finalized.ed25519.signerSlot) throw new Error("Ed25519 Yao registration persisted a different signer slot");
2747
- await context.signingEngine.activateAuthenticatedWalletState({
2748
- walletId: finalized.walletId,
2749
- nearAccountId,
2750
- signerSlot: finalized.ed25519.signerSlot,
2751
- nearClient: context.nearClient
2752
- });
2753
- await context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({
2754
- walletId: finalized.walletId,
2755
- nearAccountId,
2756
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
2757
- runtimePolicyScope: materialFacts.stableServerScope.runtimePolicyScope,
2758
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata),
2759
- auth: {
2760
- kind: "email_otp",
2761
- providerSubjectId: emailAuthority.providerSubject
2762
- },
2763
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
2764
- signerSlot: finalized.ed25519.signerSlot,
2765
- remainingUses: registrationSession.remainingUses,
2766
- expiresAtMs: registrationSession.expiresAtMs
2767
- });
2768
- if (!emailOtpCustodyCapabilityFactorSecret32) throw new Error("Email OTP registration has no custody capability material");
2769
- await establishEmailOtpRegistrationEd25519ExportRootCapability({
2770
- context,
2771
- commit: walletCustodyCommit,
2772
- factorSecret32: emailOtpCustodyCapabilityFactorSecret32,
2773
- emailOtpAuthContext: persistenceAuth.emailOtpAuthContext,
2774
- walletId: String(finalized.walletId),
2775
- walletSessionId: String(registrationSession.walletSessionId),
2776
- expiresAtMs: registrationSession.expiresAtMs
2777
- });
2778
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2779
- authMethod: "email_otp",
2780
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_SUCCEEDED,
2781
- status: "succeeded"
2782
- });
2783
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2784
- authMethod: "email_otp",
2785
- phase: RegistrationEventPhase.STEP_11_COMPLETED,
2786
- status: "succeeded"
2787
- });
2788
- const result = {
2789
- success: true,
2790
- kind: "wallet_registered",
2791
- walletId: finalized.walletId,
2792
- capabilities: [{
2793
- kind: "near_ed25519",
2794
- accountProvisioning: finalized.accountProvisioning,
2795
- resolvedAccount: finalized.resolvedAccount,
2796
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
2797
- operationalPublicKey: clientPublicKey,
2798
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId),
2799
- transactionId: finalized.resolvedAccount.kind === "sponsored_named_account" ? finalized.resolvedAccount.transactionHash : null
2800
- }]
2801
- };
2802
- emitRegistrationTimingSummary(createSucceededRegistrationTimingSummary({
2803
- recorder: registrationTiming,
2804
- authMethod: "email_otp",
2805
- signerSet: registrationTimingSignerSetFromPlan(args.signerPlan)
2806
- }));
2807
- commitSuccessfulWalletAuthentication(context, result, "email_otp");
2808
- options.afterCall?.(true, result);
2809
- return result;
2810
- } catch (error) {
2811
- const errorCode = registrationErrorCodeFromUnknown(error);
2812
- const message = getUserFriendlyErrorMessage(error, "registration", initialEventAccountId);
2813
- options.onError?.(registrationErrorWithCode(message, errorCode));
2814
- emitRegistrationEvent(options.onEvent, initialEventAccountId, {
2815
- authMethod: "email_otp",
2816
- phase: RegistrationEventPhase.FAILED,
2817
- status: "failed",
2818
- message,
2819
- error: {
2820
- ...errorCode ? { code: errorCode } : {},
2821
- message
2822
- }
2823
- });
2824
- const result = {
2825
- success: false,
2826
- error: message,
2827
- ...errorCode ? { errorCode } : {}
2828
- };
2829
- emitRegistrationTimingSummary(createFailedRegistrationTimingSummary({
2830
- recorder: registrationTiming,
2831
- authMethod: "email_otp",
2832
- signerSet: registrationTimingSignerSetFromPlan(args.signerPlan),
2833
- errorCode: errorCode || null
2834
- }));
2835
- options.afterCall?.(false);
2836
- return result;
2837
- } finally {
2838
- emailOtpCustodyCapabilityFactorSecret32?.fill(0);
2839
- }
2840
- }
2841
- async function registerPasskeyEd25519YaoWalletOnly(args) {
2842
- const { context, options } = args;
2843
- const initialEventAccountId = registrationEventAccountId(args.wallet.kind === "provided" ? String(args.wallet.walletId) : "wallet-registration");
2844
- const traceContext = createRouterAbTraceContextV1();
2845
- let postTouchIdCompletedAt = null;
2846
- emitRegistrationEvent(options.onEvent, initialEventAccountId, {
2847
- authMethod: "passkey",
2848
- phase: RegistrationEventPhase.STEP_01_STARTED,
2849
- status: "started"
2850
- });
2851
- try {
2852
- const finalizeIdempotencyKey = createRegistrationOperationIdempotencyKey("wallet-registration-finalize");
2853
- const registrationTiming = new RegistrationTimingRecorder(performance.now());
2854
- const { relayerUrl, setup } = await setupRegistrationForPasskeyExecution({
2855
- context,
2856
- authMethod: args.authMethod,
2857
- wallet: args.wallet,
2858
- signerSelection: args.signerSelection,
2859
- recorder: registrationTiming,
2860
- passkeyExecution: args.passkeyExecution
2861
- });
2862
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.setup");
2863
- const intent = requirePasskeyRegistrationIntent(setup.intent);
2864
- const eventAccountId = registrationEventAccountId(String(intent.walletId));
2865
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2866
- authMethod: "passkey",
2867
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_STARTED,
2868
- status: "waiting_for_user",
2869
- interaction: {
2870
- kind: "passkey_create",
2871
- overlay: "show"
2872
- }
2873
- });
2874
- const passkeyAuthority = await resolvePasskeyRegistrationAuthority({
2875
- context,
2876
- walletId: intent.walletId,
2877
- signerSlot: args.ed25519Selection.signerSlot,
2878
- registrationIntentDigestB64u: setup.registrationIntentDigestB64u,
2879
- options,
2880
- confirmationConfigOverride: {
2881
- uiMode: "modal",
2882
- behavior: "requireClick",
2883
- ...args.confirmationConfigOverride ?? options.confirmationConfig ?? {}
2884
- },
2885
- passkeyExecution: args.passkeyExecution
2886
- });
2887
- postTouchIdCompletedAt = performance.now();
2888
- registrationTiming.capturePasskeyAuthDiagnostics(passkeyAuthority.diagnostics);
2889
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.authentication");
2890
- emitRegistrationEvent(options.onEvent, eventAccountId, {
2891
- authMethod: "passkey",
2892
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_SUCCEEDED,
2893
- status: "succeeded",
2894
- interaction: {
2895
- kind: "passkey_create",
2896
- overlay: "hide"
2897
- }
2898
- });
2899
- const responded = await respondWalletRegistration({
2900
- relayerUrl,
2901
- registrationCeremonyId: setup.registrationCeremonyId,
2902
- signerPlanKind: "near_ed25519",
2903
- signedSetup: setup.signedSetup,
2904
- headers: registrationRouteHeaders(traceContext),
2905
- kind: "passkey",
2906
- webauthnRegistration: passkeyAuthority.webauthnRegistration
2907
- });
2908
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.respond");
2909
- if (responded.kind !== "near_ed25519") throw new Error("Ed25519-only registration respond returned a different signer branch");
2910
- const parsedCredentialId = parseWebAuthnCredentialIdB64u(String(passkeyAuthority.credential.rawId || passkeyAuthority.credential.id || "").trim());
2911
- if (!parsedCredentialId.ok) throw new Error(`passkey credential id ${parsedCredentialId.error.message}`);
2912
- const walletCustodyFactorSecret = base64UrlDecode(passkeyAuthority.prfFirstB64u).buffer;
2913
- let established;
2914
- try {
2915
- established = await context.signingEngine.establishWalletCustodyNearEd25519KeySet({
2916
- walletId: String(intent.walletId),
2917
- factorJson: JSON.stringify({
2918
- envelopeId: `wallet-custody-envelope:${crypto.randomUUID()}`,
2919
- factor: buildPasskeyEnvelopeFactor({
2920
- rpId: requireWebAuthnRpId(args.authMethod.rpId),
2921
- credentialIdB64u: parsedCredentialId.value
2922
- }),
2923
- walletAuthMethodId: setup.intent.foundingWalletAuthMethodId
2924
- }),
2925
- factorSecret: walletCustodyFactorSecret,
2926
- nearEd25519SigningKeyId: responded.ed25519.admissionRequest.application_binding.near_ed25519_signing_key_id,
2927
- registrationCeremonyId: setup.registrationCeremonyId,
2928
- admissionRequest: responded.ed25519.admissionRequest,
2929
- admissionReceipt: await admitDeferredNearRegistration(responded.ed25519, {
2930
- routerOrigin: new URL(relayerUrl).origin,
2931
- authorization: {
2932
- kind: "bearer",
2933
- value: `Bearer ${String(setup.signedSetup)}`
2934
- },
2935
- fetch: globalThis.fetch
2936
- }),
2937
- participantIds: responded.ed25519.admissionRequest.participant_ids,
2938
- routerOrigin: new URL(relayerUrl).origin,
2939
- authorization: `Bearer ${String(setup.signedSetup)}`,
2940
- traceContext
2941
- });
2942
- } finally {
2943
- zeroizeArrayBuffer(walletCustodyFactorSecret);
2944
- }
2945
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.custody");
2946
- await confirmWalletRecoveryCodesBackedUp(context, String(intent.walletId), options.recoveryCodeBackup, established.recoveryCodes);
2947
- const walletCustodyCommit = walletCustodyCommitPayloadWithRecoveryBackupAcknowledgement(established.commitPayload);
2948
- if (!established.localMaterial) throw new Error("Passkey registration produced no sealed local custody material");
2949
- await persistPendingRegistrationCommit({
2950
- operation: "registration_activate",
2951
- signerPlanKind: "near_ed25519",
2952
- registrationCeremonyId: setup.registrationCeremonyId,
2953
- idempotencyKey: finalizeIdempotencyKey,
2954
- walletId: String(intent.walletId),
2955
- walletAuthMethodId: String(setup.intent.foundingWalletAuthMethodId),
2956
- signedSetup: String(setup.signedSetup),
2957
- auth: {
2958
- kind: "passkey",
2959
- rpId: args.authMethod.rpId,
2960
- credentialIdB64u: parsedCredentialId.value,
2961
- transports: [...passkeyAuthority.webauthnRegistration.response.transports]
2962
- },
2963
- localMaterial: {
2964
- keyFamilies: ["ed25519"],
2965
- custodyCommit: walletCustodyCommit,
2966
- ed25519: {
2967
- activationReference: established.activationReference,
2968
- localMaterial: established.localMaterial,
2969
- metadata: pendingRegistrationEd25519MetadataFromJoined(established)
2970
- }
2971
- }
2972
- });
2973
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.backup_and_checkpoint");
2974
- const activated = await activateWalletRegistration({
2975
- relayerUrl,
2976
- registrationCeremonyId: setup.registrationCeremonyId,
2977
- signerPlanKind: "near_ed25519",
2978
- signedSetup: setup.signedSetup,
2979
- headers: registrationRouteHeaders(traceContext),
2980
- idempotencyKey: finalizeIdempotencyKey
2981
- });
2982
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.activate");
2983
- if (activated.kind !== "near_ed25519" || activated.nearProvisioning?.status !== "near_pending") throw new Error("Ed25519-only activate did not return a wallet pending NEAR provisioning");
2984
- const nearProvisioningIdempotencyKey = await deriveNearProvisioningIdempotencyKey({
2985
- registrationCeremonyId: setup.registrationCeremonyId,
2986
- activationReference: established.activationReference
2987
- });
2988
- const nearProvisioningPending = await persistPendingRegistrationCommit({
2989
- operation: "near_provisioning",
2990
- completion: { kind: "sealed_material" },
2991
- signerPlanKind: "near_ed25519",
2992
- registrationCeremonyId: setup.registrationCeremonyId,
2993
- idempotencyKey: nearProvisioningIdempotencyKey,
2994
- walletId: String(intent.walletId),
2995
- walletAuthMethodId: String(setup.intent.foundingWalletAuthMethodId),
2996
- signedSetup: String(setup.signedSetup),
2997
- auth: {
2998
- kind: "passkey",
2999
- rpId: args.authMethod.rpId,
3000
- credentialIdB64u: parsedCredentialId.value,
3001
- transports: [...passkeyAuthority.webauthnRegistration.response.transports]
3002
- },
3003
- localMaterial: {
3004
- keyFamilies: ["ed25519"],
3005
- custodyCommit: walletCustodyCommit,
3006
- ed25519: {
3007
- activationReference: established.activationReference,
3008
- localMaterial: established.localMaterial,
3009
- metadata: pendingRegistrationEd25519MetadataFromJoined(established)
3010
- }
3011
- }
3012
- });
3013
- await IndexedDBManager.deletePendingWalletRegistrationCommit({
3014
- registrationCeremonyId: setup.registrationCeremonyId,
3015
- operation: "registration_activate"
3016
- });
3017
- const clientPublicKey = `ed25519:${base58Encode(established.metadata.registeredPublicKey)}`;
3018
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.provision_checkpoint");
3019
- const finalized = await completeWalletRegistrationNearProvisioning({
3020
- relayerUrl,
3021
- registrationCeremonyId: setup.registrationCeremonyId,
3022
- signedSetup: setup.signedSetup,
3023
- headers: registrationRouteHeaders(traceContext),
3024
- idempotencyKey: nearProvisioningIdempotencyKey,
3025
- ed25519: { activationReference: established.activationReference },
3026
- auth: { kind: "passkey" },
3027
- walletCustodyCommit
3028
- });
3029
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.finalize");
3030
- if (!finalized.ok || finalized.kind !== "near_ed25519") throw new Error("Deferred NEAR provisioning returned a different signer branch");
3031
- if (established.commitPayload && finalized.walletCustody?.status !== "committed") {
3032
- const status = finalized.walletCustody?.status ?? "not_reported";
3033
- const reason = finalized.walletCustody?.status === "rejected" ? `: ${finalized.walletCustody.reason}` : "";
3034
- throw new Error(`Wallet custody did not commit (${status})${reason}. The recovery codes shown are not usable.`);
3035
- }
3036
- const registrationSession = requireIssuedRegistrationEstablishedSession(finalized.registrationEstablishedSession);
3037
- const finalizedPasskey = requireEd25519YaoRegistrationPublicResultMatches({
3038
- clientPublicKey,
3039
- finalized,
3040
- expectedRpId: args.authMethod.rpId,
3041
- expectedWalletId: intent.walletId
3042
- });
3043
- const nearAccountId = toAccountId(finalized.ed25519.nearAccountId);
3044
- const credentialPublicKeyB64u = requireFinalizedPasskeyCredentialPublicKeyB64u({
3045
- finalized,
3046
- credential: passkeyAuthority.credential
3047
- });
3048
- const materialFacts = registrationEd25519MaterialFacts({
3049
- deferredNear: responded.ed25519,
3050
- finalized: finalized.ed25519,
3051
- walletId: intent.walletId,
3052
- expectedRuntimePolicyScope: normalizeRuntimePolicyScope(intent.runtimePolicyScope)
3053
- });
3054
- const metadata = established.metadata;
3055
- const custodyMaterial = walletCustodyRegistrationMaterial({
3056
- established,
3057
- walletId: String(finalized.walletId),
3058
- nearAccountId: String(nearAccountId),
3059
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
3060
- signerSlot: finalized.ed25519.signerSlot
3061
- });
3062
- await rememberPasskeyRegistrationCustodyEnvelope({
3063
- commit: established.commitPayload,
3064
- walletId: String(finalized.walletId),
3065
- activatedAtMs: Date.now()
3066
- });
3067
- await context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({
3068
- walletId: finalized.walletId,
3069
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId),
3070
- thresholdSessionId: materialFacts.identity.thresholdSessionId,
3071
- runtimePolicyScope: materialFacts.stableServerScope.runtimePolicyScope,
3072
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata),
3073
- auth: {
3074
- kind: "passkey",
3075
- rpId: toRpId(finalizedPasskey.rpId),
3076
- credentialIdB64u: finalizedPasskey.credentialIdB64u
3077
- },
3078
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
3079
- signerSlot: finalized.ed25519.signerSlot
3080
- });
3081
- const registration = prepareWalletEd25519RegistrationPublication({
3082
- walletId: finalized.walletId,
3083
- nearAccountId,
3084
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
3085
- rpId: requireWebAuthnRpId(finalizedPasskey.rpId),
3086
- credential: passkeyAuthority.credential,
3087
- credentialPublicKeyB64u,
3088
- signerSlot: finalized.ed25519.signerSlot,
3089
- operationalPublicKey: clientPublicKey,
3090
- relayerKeyId: finalized.ed25519.relayerKeyId,
3091
- keyVersion: finalized.ed25519.keyVersion,
3092
- participantIds: [...finalized.ed25519.participantIds],
3093
- custodyMaterial
3094
- });
3095
- const storedNearActivation = (await IndexedDBManager.publishPendingWalletRegistrationCommit({
3096
- pending: nearProvisioningPending,
3097
- ecdsaContinuity: [],
3098
- authority: finalized.authority,
3099
- foundingAuthority: {
3100
- authority: finalized.foundingAuthority,
3101
- authMethod: finalized.foundingAuthMethod
3102
- },
3103
- request: {
3104
- operation: "near_provisioning",
3105
- registrationCeremonyId: setup.registrationCeremonyId,
3106
- idempotencyKey: nearProvisioningIdempotencyKey,
3107
- walletId: finalized.walletId,
3108
- walletAuthMethodId: finalized.foundingAuthMethod.walletAuthMethodId
3109
- },
3110
- walletSessionPublication: {
3111
- kind: "issued",
3112
- walletSession: registrationSession.walletSession,
3113
- operationCredential: registrationSession.operationCredential
3114
- },
3115
- registration
3116
- })).signerActivations[1];
3117
- if (!storedNearActivation || storedNearActivation.signerSlot !== finalized.ed25519.signerSlot) throw new Error("Ed25519 Yao registration persisted a different signer slot");
3118
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.publication");
3119
- const hydration = await hydrateDeferredNearRegistrationSession({
3120
- signingEngine: context.signingEngine,
3121
- ceremonyId: setup.registrationCeremonyId,
3122
- input: buildRegistrationPasskeyEd25519SessionHydration({
3123
- session: registrationSession,
3124
- ceremonyId: setup.registrationCeremonyId,
3125
- walletId: String(finalized.walletId),
3126
- relayerUrl,
3127
- prfFirstB64u: passkeyAuthority.prfFirstB64u,
3128
- preparedServerSeal: null,
3129
- restore: {
3130
- rpId: finalizedPasskey.rpId,
3131
- nearAccountId: String(nearAccountId),
3132
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
3133
- relayerKeyId: finalized.ed25519.relayerKeyId,
3134
- participantIds: finalized.ed25519.participantIds,
3135
- signerSlot: finalized.ed25519.signerSlot,
3136
- credentialIdB64u: finalizedPasskey.credentialIdB64u,
3137
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata)
3138
- }
3139
- })
3140
- });
3141
- if (hydration.kind === "failed") throw hydration.error;
3142
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.session_hydration");
3143
- await activatePasskeyRegistrationEd25519Material({
3144
- signingEngine: context.signingEngine,
3145
- sessionAuthority: {
3146
- record: registrationSession.walletSession,
3147
- operationCredential: registrationSession.operationCredential
3148
- },
3149
- metadata,
3150
- material: custodyMaterial,
3151
- materialFacts,
3152
- envelope: walletCustodyCacheEnvelopeFromRegistrationCommit(established.commitPayload),
3153
- ownedFactorSecret: base64UrlDecode(passkeyAuthority.prfFirstB64u),
3154
- rpId: finalizedPasskey.rpId,
3155
- credentialIdB64u: finalizedPasskey.credentialIdB64u,
3156
- passkeyPrfFirstB64u: passkeyAuthority.prfFirstB64u,
3157
- relayerUrl
3158
- });
3159
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.material_activation");
3160
- await establishPasskeyRegistrationEd25519ExportRootCapability({
3161
- signingEngine: context.signingEngine,
3162
- commit: established.commitPayload,
3163
- passkeyPrfFirstB64u: passkeyAuthority.prfFirstB64u,
3164
- walletId: String(finalized.walletId),
3165
- walletAuthMethodId: String(finalized.foundingAuthMethod.walletAuthMethodId),
3166
- walletSessionId: String(registrationSession.walletSessionId),
3167
- expiresAtMs: registrationSession.expiresAtMs
3168
- });
3169
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.export_capability");
3170
- await context.signingEngine.activateAuthenticatedWalletState({
3171
- walletId: finalized.walletId,
3172
- nearAccountId,
3173
- signerSlot: finalized.ed25519.signerSlot,
3174
- nearClient: context.nearClient
3175
- });
3176
- emitRegistrationEvent(options.onEvent, eventAccountId, {
3177
- authMethod: "passkey",
3178
- phase: RegistrationEventPhase.STEP_11_COMPLETED,
3179
- status: "succeeded"
3180
- });
3181
- if (postTouchIdCompletedAt !== null) {
3182
- const walletReadyAt = performance.now();
3183
- emitRegistrationTimingSpan({
3184
- callback: options.onTimingSpan,
3185
- span: "registration.post_touch_id",
3186
- outcome: "success",
3187
- durationMs: walletReadyAt - postTouchIdCompletedAt,
3188
- traceContext
3189
- });
3190
- emitRegistrationTimingSpan({
3191
- callback: options.onTimingSpan,
3192
- span: "frontend.wallet_ready",
3193
- outcome: "success",
3194
- durationMs: 0,
3195
- traceContext
3196
- });
3197
- }
3198
- registrationTiming.markNearStage(setup.registrationCeremonyId, "near_only.wallet_ready");
3199
- emitRegistrationTimingSummary(createSucceededRegistrationTimingSummary({
3200
- recorder: registrationTiming,
3201
- authMethod: "passkey",
3202
- signerSet: registrationTimingSignerSetFromPlan(args.signerPlan)
3203
- }));
3204
- const result = {
3205
- success: true,
3206
- kind: "wallet_registered",
3207
- walletId: finalized.walletId,
3208
- capabilities: [{
3209
- kind: "near_ed25519",
3210
- accountProvisioning: finalized.accountProvisioning,
3211
- resolvedAccount: finalized.resolvedAccount,
3212
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
3213
- operationalPublicKey: clientPublicKey,
3214
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId),
3215
- transactionId: finalized.resolvedAccount.kind === "sponsored_named_account" ? finalized.resolvedAccount.transactionHash : null
3216
- }]
3217
- };
3218
- commitSuccessfulWalletAuthentication(context, result, "passkey");
3219
- options.afterCall?.(true, result);
3220
- return result;
3221
- } catch (error) {
3222
- const errorCode = registrationErrorCodeFromUnknown(error);
3223
- const message = getUserFriendlyErrorMessage(error, "registration", initialEventAccountId);
3224
- if (postTouchIdCompletedAt !== null) emitRegistrationTimingSpan({
3225
- callback: options.onTimingSpan,
3226
- span: "registration.post_touch_id",
3227
- outcome: "failure",
3228
- durationMs: performance.now() - postTouchIdCompletedAt,
3229
- traceContext
3230
- });
3231
- options.onError?.(registrationErrorWithCode(message, errorCode));
3232
- emitRegistrationEvent(options.onEvent, initialEventAccountId, {
3233
- authMethod: "passkey",
3234
- phase: RegistrationEventPhase.FAILED,
3235
- status: "failed",
3236
- message,
3237
- interaction: {
3238
- kind: "passkey_create",
3239
- overlay: "hide"
3240
- },
3241
- error: {
3242
- ...errorCode ? { code: errorCode } : {},
3243
- message
3244
- }
3245
- });
3246
- const result = {
3247
- success: false,
3248
- error: message,
3249
- ...errorCode ? { errorCode } : {}
3250
- };
3251
- options.afterCall?.(false);
3252
- return result;
3253
- }
3254
- }
3255
- async function registerWalletInternal(args) {
3256
- const signerPlan = registrationSignerPlanFromSignerSet(args.signerSelection);
3257
- const ed25519Branch = findRegistrationSignerPlanNearEd25519Branch(signerPlan);
3258
- if (ed25519Branch) {
3259
- const ecdsaBranch = findRegistrationSignerPlanEvmFamilyEcdsaBranch(signerPlan);
3260
- if (ecdsaBranch) return await registerEcdsaOrMixedWallet({
3261
- kind: "near_ed25519_and_evm_family_ecdsa",
3262
- context: args.context,
3263
- authMethod: args.authMethod,
3264
- wallet: args.wallet,
3265
- signerSelection: args.signerSelection,
3266
- signerPlan,
3267
- ed25519Selection: ed25519Branch,
3268
- ecdsaSelection: ecdsaBranch,
3269
- options: args.options,
3270
- passkeyExecution: args.passkeyExecution,
3271
- ...args.confirmationConfigOverride ? { confirmationConfigOverride: args.confirmationConfigOverride } : {}
3272
- });
3273
- if (args.authMethod.kind === "email_otp") {
3274
- if (args.passkeyExecution.kind !== "collect_during_registration") throw new Error("Prepared registration authority requires passkey authentication");
3275
- return await registerEmailOtpEd25519YaoWalletOnly({
3276
- context: args.context,
3277
- authMethod: args.authMethod,
3278
- wallet: args.wallet,
3279
- signerSelection: args.signerSelection,
3280
- signerPlan,
3281
- ed25519Selection: ed25519Branch,
3282
- options: args.options,
3283
- passkeyExecution: args.passkeyExecution
3284
- });
3285
- }
3286
- return await registerPasskeyEd25519YaoWalletOnly({
3287
- context: args.context,
3288
- authMethod: args.authMethod,
3289
- wallet: args.wallet,
3290
- signerSelection: args.signerSelection,
3291
- signerPlan,
3292
- ed25519Selection: ed25519Branch,
3293
- options: args.options,
3294
- passkeyExecution: args.passkeyExecution,
3295
- ...args.confirmationConfigOverride ? { confirmationConfigOverride: args.confirmationConfigOverride } : {}
3296
- });
3297
- }
3298
- const ecdsaBranch = findRegistrationSignerPlanEvmFamilyEcdsaBranch(signerPlan);
3299
- if (!ecdsaBranch) throw new Error("Wallet registration requires an ECDSA signer branch");
3300
- return await registerEcdsaOrMixedWallet({
3301
- kind: "evm_family_ecdsa",
3302
- context: args.context,
3303
- authMethod: args.authMethod,
3304
- wallet: args.wallet,
3305
- signerSelection: args.signerSelection,
3306
- signerPlan,
3307
- ecdsaSelection: ecdsaBranch,
3308
- options: args.options,
3309
- passkeyExecution: args.passkeyExecution,
3310
- ...args.confirmationConfigOverride ? { confirmationConfigOverride: args.confirmationConfigOverride } : {}
3311
- });
3312
- }
3313
- function commitSuccessfulWalletAuthentication(context, result, authMethod) {
3314
- context.signingEngine.setWalletAuthenticated({
3315
- kind: "authenticated",
3316
- walletId: result.walletId,
3317
- authMethod
3318
- });
3319
- }
3320
- async function registerWallet(args) {
3321
- try {
3322
- return await registerWalletInternal({
3323
- context: args.context,
3324
- authMethod: args.authMethod,
3325
- wallet: args.wallet,
3326
- signerSelection: args.signerSelection,
3327
- options: args.options,
3328
- authenticatorOptions: args.authenticatorOptions,
3329
- ...args.confirmationConfigOverride ? { confirmationConfigOverride: args.confirmationConfigOverride } : {},
3330
- passkeyExecution: { kind: "collect_during_registration" }
3331
- });
3332
- } finally {
3333
- args.context.signingEngine.closeRegistrationPreparationModal();
3334
- }
3335
- }
3336
- function emitAddSignerEventSafely(onEvent, accountId, event) {
3337
- try {
3338
- emitRegistrationEvent(onEvent, accountId, event);
3339
- } catch {}
3340
- }
3341
- function notifyAddSignerErrorSafely(onError, error) {
3342
- try {
3343
- onError?.(error);
3344
- } catch {}
3345
- }
3346
- function notifyAddSignerAfterCallSafely(afterCall, success, result) {
3347
- try {
3348
- if (success && result) afterCall?.(true, result);
3349
- else afterCall?.(false);
3350
- } catch {}
3351
- }
3352
- function addSignerAllowCredentials(authenticators) {
3353
- const credentials = [];
3354
- for (const authenticator of authenticators) {
3355
- const credentialId = String(authenticator.credentialId || "").trim();
3356
- if (!credentialId) continue;
3357
- credentials.push({
3358
- id: credentialId,
3359
- type: "public-key",
3360
- transports: webAuthnTransportsFromRaw(authenticator.transports)
3361
- });
3362
- }
3363
- if (credentials.length === 0) throw new Error("Wallet add-signer requires an existing passkey credential");
3364
- return credentials;
3365
- }
3366
- function requireSelectedAddSignerCredentialId(credential, allowCredentials) {
3367
- const id = String(credential.id || "").trim();
3368
- const rawId = String(credential.rawId || "").trim();
3369
- if (!id || !rawId || id !== rawId) throw new Error("Wallet add-signer selected an invalid passkey credential identity");
3370
- for (const allowed of allowCredentials) if (allowed.id === rawId) return rawId;
3371
- throw new Error("Wallet add-signer selected a passkey outside the authorized wallet");
3372
- }
3373
- async function requireMatchingStartedAddSignerIntent(args) {
3374
- if (args.started.intent.walletId !== args.walletId) throw new Error("Wallet add-signer start returned a different wallet");
3375
- if (await computeAddSignerIntentDigest(args.started.intent) !== args.expectedDigestB64u) throw new Error("Wallet add-signer start returned a different intent");
3376
- if (!String(args.started.addSignerCeremonyId || "").trim()) throw new Error("Wallet add-signer start returned an invalid ceremony ID");
3377
- }
3378
- function sameParticipantIds(left, right) {
3379
- return left.length === 2 && right.length === 2 && left[0] === right[0] && left[1] === right[1];
3380
- }
3381
- function requireVerifiedEd25519AddSignerFinalize(args) {
3382
- const selection = args.started.intent.signerSelection;
3383
- if (selection.mode !== "ed25519") throw new Error("Wallet add-signer start intent changed signer branch");
3384
- const requested = selection.ed25519;
3385
- const admission = args.started.ed25519.admissionRequest;
3386
- const finalized = args.finalized;
3387
- const signer = finalized.ed25519;
3388
- const expectedNearAccountId = deriveImplicitNearAccountIdFromEd25519PublicKey(args.clientPublicKey);
3389
- if (finalized.walletId !== args.walletId || finalized.rpId !== args.rpId || finalized.credentialIdB64u !== args.credentialIdB64u || signer.publicKey !== args.clientPublicKey || signer.nearAccountId !== expectedNearAccountId || signer.signerSlot !== requested.signerSlot || signer.keyVersion !== requested.keyVersion || signer.recoveryExportCapable !== true || !sameParticipantIds(signer.participantIds, requested.participantIds) || signer.nearEd25519SigningKeyId !== admission.application_binding.near_ed25519_signing_key_id || signer.relayerKeyId !== admission.scope.signing_worker_id || admission.application_binding.wallet_id !== args.walletId || admission.application_binding.key_creation_signer_slot !== requested.signerSlot) throw new Error("Wallet add-signer finalize returned mismatched Ed25519 Yao identity");
3390
- return finalized;
3391
- }
3392
- function verifiedEd25519AddSignerIntent(started) {
3393
- const selection = started.intent.signerSelection;
3394
- if (selection.mode !== "ed25519") throw new Error("Wallet add-signer start intent changed signer branch");
3395
- return {
3396
- version: started.intent.version,
3397
- walletId: started.intent.walletId,
3398
- signerSelection: selection,
3399
- ...started.intent.runtimePolicyScope ? { runtimePolicyScope: started.intent.runtimePolicyScope } : {},
3400
- nonceB64u: started.intent.nonceB64u
3401
- };
3402
- }
3403
- async function addPasskeyEd25519YaoWalletSigner(input) {
3404
- if (input.started.intent.signerSelection.mode !== "ed25519") throw new Error("Wallet add-signer start returned a different signer branch");
3405
- let persistedSignerRollbackReceipt = null;
3406
- let persistedMaterialTarget = null;
3407
- let factorSecret = null;
3408
- try {
3409
- if (input.started.authorizationKind !== "webauthn_assertion") throw new Error("Wallet custody Ed25519 add-signer requires WebAuthn authorization");
3410
- const admitted = await admitVerifiedPasskeyEd25519YaoAddSignerV1({
3411
- kind: "verified_passkey_ed25519_yao_add_signer_input_v1",
3412
- verifiedIntent: {
3413
- kind: "verified_passkey_ed25519_add_signer_intent_v1",
3414
- intent: verifiedEd25519AddSignerIntent(input.started),
3415
- addSignerIntentDigestB64u: input.intentResponse.addSignerIntentDigestB64u,
3416
- addSignerIntentGrant: input.intentResponse.addSignerIntentGrant,
3417
- addSignerCeremonyId: input.started.addSignerCeremonyId
3418
- },
3419
- verifiedAuthority: {
3420
- kind: "verified_passkey_ed25519_add_signer_authority_v1",
3421
- walletId: input.walletId,
3422
- addSignerIntentDigestB64u: input.intentResponse.addSignerIntentDigestB64u,
3423
- credentialIdB64u: input.credentialIdB64u
3424
- },
3425
- admissionRequest: input.started.ed25519.admissionRequest,
3426
- httpTransport: {
3427
- kind: "passkey_ed25519_yao_http_transport_v1",
3428
- routerOrigin: new URL(input.relayerUrl).origin,
3429
- fetch: globalThis.fetch
3430
- }
3431
- });
3432
- const custodyWire = joinCustodyWireFromEnvelopeRecord(input.started.ed25519.custodyEnvelope);
3433
- if (!custodyWire.ok) throw new Error(custodyWire.reason);
3434
- factorSecret = Uint8Array.from(base64UrlDecode(input.passkeyPrfFirstB64u)).buffer;
3435
- const joined = await input.context.signingEngine.joinWalletCustodyNearEd25519KeySet({
3436
- preparation: { kind: "fresh" },
3437
- custodyJson: custodyWire.custodyJson,
3438
- factorSecret,
3439
- nearEd25519SigningKeyId: admitted.request.application_binding.near_ed25519_signing_key_id,
3440
- registrationCeremonyId: input.started.addSignerCeremonyId,
3441
- admissionRequest: admitted.request,
3442
- admissionReceipt: admitted.receipt,
3443
- participantIds: admitted.request.participant_ids,
3444
- routerOrigin: new URL(input.relayerUrl).origin,
3445
- authorization: `Bearer ${String(input.intentResponse.addSignerIntentGrant)}`
3446
- });
3447
- const clientPublicKey = `ed25519:${base58Encode(joined.metadata.registeredPublicKey)}`;
3448
- const finalizedRaw = await finalizeWalletAddSigner({
3449
- relayerUrl: input.relayerUrl,
3450
- walletId: input.walletId,
3451
- addSignerCeremonyId: input.started.addSignerCeremonyId,
3452
- idempotencyKey: createRegistrationOperationIdempotencyKey("wallet-ed25519-add-signer-finalize"),
3453
- kind: "near_ed25519",
3454
- ed25519: { activationReference: joined.activationReference },
3455
- custodyKeySet: {
3456
- kind: "near_ed25519_v1",
3457
- keyManifestDigestB64u: joined.commitPayload.keyManifestDigestB64u,
3458
- registeredPublicKeyB64u: base64UrlEncode(joined.metadata.registeredPublicKey)
3459
- }
3460
- });
3461
- if (finalizedRaw.kind !== "near_ed25519") throw new Error("Wallet add-signer finalize returned a different signer branch");
3462
- const finalized = requireVerifiedEd25519AddSignerFinalize({
3463
- finalized: finalizedRaw,
3464
- started: input.started,
3465
- walletId: input.walletId,
3466
- rpId: input.rpId,
3467
- credentialIdB64u: input.credentialIdB64u,
3468
- clientPublicKey
3469
- });
3470
- emitAddSignerEventSafely(input.onEvent, input.eventAccountId, {
3471
- authMethod: "passkey",
3472
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_STARTED,
3473
- status: "running"
3474
- });
3475
- const stored = await input.context.signingEngine.finalizeWalletEd25519SignerRegistration({
3476
- walletId: input.walletId,
3477
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId),
3478
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
3479
- auth: {
3480
- kind: "passkey",
3481
- credential: input.credential
3482
- },
3483
- signerSlot: finalized.ed25519.signerSlot,
3484
- operationalPublicKey: clientPublicKey,
3485
- relayerKeyId: finalized.ed25519.relayerKeyId,
3486
- keyVersion: finalized.ed25519.keyVersion,
3487
- participantIds: [...finalized.ed25519.participantIds]
3488
- });
3489
- if (stored.signerSlot !== finalized.ed25519.signerSlot) throw new Error("Wallet add-signer persisted a different Ed25519 signer slot");
3490
- persistedSignerRollbackReceipt = stored.rollbackReceipt;
3491
- const admission = input.started.ed25519.admissionRequest;
3492
- const thresholdSessionId = parseThresholdEd25519SessionId(admission.scope.threshold_session_id);
3493
- if (!thresholdSessionId.ok) throw new Error("Wallet add-signer threshold-session identity is invalid");
3494
- const metadata = joined.metadata;
3495
- await input.context.signingEngine.persistWalletCustodyEd25519Material({
3496
- binding: {
3497
- kind: WALLET_CUSTODY_ED25519_MATERIAL_KEY_KIND,
3498
- applicationBindingDigestB64u: joined.localMaterial.applicationBindingDigestB64u,
3499
- registeredPublicKeyB64u: base64UrlEncode(metadata.registeredPublicKey),
3500
- participantIds: metadata.participantIds,
3501
- stateEpoch: String(metadata.stateEpoch),
3502
- walletId: String(finalized.walletId),
3503
- nearAccountId: String(finalized.ed25519.nearAccountId),
3504
- nearEd25519SigningKeyId: finalized.ed25519.nearEd25519SigningKeyId,
3505
- signerSlot: finalized.ed25519.signerSlot,
3506
- signingWorkerId: metadata.scope.signing_worker_id,
3507
- signingWorkerVerifyingShareB64u: base64UrlEncode(metadata.signingWorkerVerifyingShare)
3508
- },
3509
- sealed: {
3510
- ciphertextB64u: joined.localMaterial.b64u,
3511
- nonceB64u: joined.localMaterial.nonceB64u
3512
- }
3513
- });
3514
- persistedMaterialTarget = {
3515
- nearAccountId: finalized.ed25519.nearAccountId,
3516
- signerSlot: finalized.ed25519.signerSlot
3517
- };
3518
- await input.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({
3519
- walletId: finalized.walletId,
3520
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId),
3521
- thresholdSessionId: thresholdSessionId.value,
3522
- runtimePolicyScope: normalizeRuntimePolicyScope(input.started.intent.runtimePolicyScope),
3523
- materialActivation: nearEd25519YaoMaterialActivationFromMetadata(metadata),
3524
- auth: {
3525
- kind: "passkey",
3526
- rpId: toRpId(input.rpId),
3527
- credentialIdB64u: input.credentialIdB64u
3528
- },
3529
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
3530
- signerSlot: finalized.ed25519.signerSlot
3531
- });
3532
- persistedSignerRollbackReceipt = null;
3533
- emitAddSignerEventSafely(input.onEvent, input.eventAccountId, {
3534
- authMethod: "passkey",
3535
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_SUCCEEDED,
3536
- status: "succeeded"
3537
- });
3538
- return {
3539
- success: true,
3540
- kind: "wallet_signer_added",
3541
- walletId: finalized.walletId,
3542
- capabilities: [{
3543
- kind: "near_ed25519",
3544
- nearEd25519SigningKeyId: parseNearEd25519SigningKeyId(finalized.ed25519.nearEd25519SigningKeyId),
3545
- operationalPublicKey: clientPublicKey,
3546
- nearAccountId: toAccountId(finalized.ed25519.nearAccountId)
3547
- }]
3548
- };
3549
- } catch (error) {
3550
- const cleanupErrors = [];
3551
- if (persistedMaterialTarget) try {
3552
- await input.context.signingEngine.deleteWalletCustodyEd25519Material({
3553
- nearAccountId: persistedMaterialTarget.nearAccountId,
3554
- signerSlot: persistedMaterialTarget.signerSlot
3555
- });
3556
- } catch (cleanupError) {
3557
- cleanupErrors.push(cleanupError instanceof Error ? cleanupError.message : String(cleanupError));
3558
- }
3559
- if (persistedSignerRollbackReceipt) try {
3560
- await input.context.signingEngine.rollbackWalletEd25519SignerRegistration(persistedSignerRollbackReceipt);
3561
- } catch (cleanupError) {
3562
- cleanupErrors.push(cleanupError instanceof Error ? cleanupError.message : String(cleanupError));
3563
- }
3564
- if (cleanupErrors.length > 0) {
3565
- const primary = error instanceof Error ? error.message : String(error);
3566
- throw new Error(`${primary}; add-signer cleanup failed: ${cleanupErrors.join("; ")}`);
3567
- }
3568
- throw error;
3569
- } finally {
3570
- if (factorSecret) zeroizeArrayBuffer(factorSecret);
3571
- }
3572
- }
3573
- async function addPasskeyEcdsaWalletSigner(input) {
3574
- if (input.started.authorizationKind !== "webauthn_assertion") throw new Error("Wallet custody ECDSA add-signer requires WebAuthn authorization");
3575
- const authority = await exactPasskeyWalletAuthAuthorityRefForCredential({
3576
- walletId: input.walletId,
3577
- rpId: input.rpId,
3578
- credentialIdB64u: input.credentialIdB64u
3579
- });
3580
- const factorSecret = Uint8Array.from(base64UrlDecode(input.passkeyPrfFirstB64u)).buffer;
3581
- let pendingLocalFinalization;
3582
- try {
3583
- pendingLocalFinalization = await runStrictEcdsaFamilyCeremony({
3584
- context: input.context,
3585
- relayerUrl: input.relayerUrl,
3586
- walletId: input.walletId,
3587
- addSignerCeremonyId: input.started.addSignerCeremonyId,
3588
- started: input.started.ecdsa,
3589
- custodyEnvelope: input.started.ecdsa.custodyEnvelope,
3590
- factorSecret,
3591
- authority,
3592
- registrationTiming: null
3593
- });
3594
- } finally {
3595
- zeroizeArrayBuffer(factorSecret);
3596
- }
3597
- const finalizeRequest = {
3598
- relayerUrl: input.relayerUrl,
3599
- walletId: input.walletId,
3600
- addSignerCeremonyId: input.started.addSignerCeremonyId,
3601
- idempotencyKey: createRegistrationOperationIdempotencyKey("wallet-add-signer-finalize"),
3602
- kind: "evm_family_ecdsa",
3603
- ecdsa: { expectedKeyHandles: [pendingLocalFinalization.bootstrap.keyHandle] },
3604
- custodyKeySet: pendingLocalFinalization.custodyKeySet
3605
- };
3606
- let finalized;
3607
- try {
3608
- finalized = await finalizeWalletAddSigner(finalizeRequest);
3609
- } catch (error) {
3610
- if (!(error instanceof TypeError)) throw error;
3611
- finalized = await finalizeWalletAddSigner(finalizeRequest);
3612
- }
3613
- if (finalized.kind !== "evm_family_ecdsa" || finalized.walletId !== input.walletId || finalized.rpId !== input.rpId) throw new Error("Wallet add-signer finalize returned a different ECDSA identity");
3614
- const walletKeys = finalized.ecdsa.walletKeys;
3615
- const primaryKey = walletKeys[0];
3616
- if (!primaryKey) throw new Error("Wallet add-signer finalize did not return ECDSA wallet keys");
3617
- const session = await finalizeStrictEcdsaFamilyLocalActivation({
3618
- context: input.context,
3619
- pending: pendingLocalFinalization
3620
- });
3621
- emitAddSignerEventSafely(input.onEvent, input.eventAccountId, {
3622
- authMethod: "passkey",
3623
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_STARTED,
3624
- status: "running"
3625
- });
3626
- const localEcdsaWalletKeys = await input.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({
3627
- walletId: toWalletId(input.walletId),
3628
- session,
3629
- walletKeys: [primaryKey, ...walletKeys.slice(1)]
3630
- });
3631
- await input.context.signingEngine.storeWalletEcdsaSignerRecords({
3632
- walletId: input.walletId,
3633
- walletKeys: localEcdsaWalletKeys
3634
- });
3635
- await IndexedDBManager.adoptAddedEcdsaSignerAuthority({
3636
- authority: finalized.authority,
3637
- materialActivation: session.materialActivation
3638
- });
3639
- emitAddSignerEventSafely(input.onEvent, input.eventAccountId, {
3640
- authMethod: "passkey",
3641
- phase: RegistrationEventPhase.STEP_08_STORAGE_PERSIST_SUCCEEDED,
3642
- status: "succeeded"
3643
- });
3644
- return {
3645
- success: true,
3646
- kind: "wallet_signer_added",
3647
- walletId: input.walletId,
3648
- capabilities: [{
3649
- kind: "evm_family_ecdsa",
3650
- thresholdEcdsaEthereumAddress: primaryKey.thresholdOwnerAddress,
3651
- thresholdEcdsaPublicKeyB64u: primaryKey.thresholdEcdsaPublicKeyB64u
3652
- }]
3653
- };
3654
- }
3655
- async function dispatchPasskeyWalletAddSigner(args) {
3656
- switch (args.signerSelection.mode) {
3657
- case "ed25519":
3658
- if (args.started.kind !== "near_ed25519") throw new Error("Wallet add-signer start returned a different signer branch");
3659
- return await addPasskeyEd25519YaoWalletSigner({
3660
- context: args.input.context,
3661
- walletId: args.input.walletId,
3662
- rpId: args.input.rpId,
3663
- relayerUrl: args.input.relayerUrl,
3664
- intentResponse: args.input.intentResponse,
3665
- credential: args.input.credential,
3666
- credentialIdB64u: args.input.credentialIdB64u,
3667
- passkeyPrfFirstB64u: args.input.passkeyPrfFirstB64u,
3668
- eventAccountId: args.input.eventAccountId,
3669
- onEvent: args.input.onEvent,
3670
- started: args.started
3671
- });
3672
- case "ecdsa":
3673
- if (args.started.kind !== "evm_family_ecdsa") throw new Error("Wallet add-signer start returned a different signer branch");
3674
- return await addPasskeyEcdsaWalletSigner({
3675
- context: args.input.context,
3676
- walletId: args.input.walletId,
3677
- rpId: args.input.rpId,
3678
- relayerUrl: args.input.relayerUrl,
3679
- intentResponse: args.input.intentResponse,
3680
- credential: args.input.credential,
3681
- credentialIdB64u: args.input.credentialIdB64u,
3682
- passkeyPrfFirstB64u: args.input.passkeyPrfFirstB64u,
3683
- eventAccountId: args.input.eventAccountId,
3684
- onEvent: args.input.onEvent,
3685
- started: args.started
3686
- });
3687
- default: return assertNever(args.signerSelection);
3688
- }
3689
- }
3690
- async function addWalletSigner(args) {
3691
- const { context, signerSelection } = args;
3692
- const options = args.options || {};
3693
- const walletId = walletIdFromString(String(args.walletId || "").trim());
3694
- const eventAccountId = registrationEventAccountId(String(walletId));
3695
- const rpId = requireWebAuthnRpId(String(args.rpId || "").trim());
3696
- emitAddSignerEventSafely(options.onEvent, eventAccountId, {
3697
- authMethod: "passkey",
3698
- phase: RegistrationEventPhase.STEP_01_STARTED,
3699
- status: "started"
3700
- });
3701
- try {
3702
- const relayerUrl = String(context.configs.network.relayer.url || "").trim();
3703
- if (!relayerUrl) throw new Error("addWalletSigner requires relayer.url");
3704
- const managedRuntimeScope = resolveManagedRuntimeScopeBootstrap(context.configs);
3705
- if (!managedRuntimeScope) throw new Error("addWalletSigner requires registration.publishableKey and registration.projectEnvironmentId");
3706
- const intentResponse = await createWalletAddSignerIntent({
3707
- relayerUrl,
3708
- walletId,
3709
- request: {
3710
- walletId,
3711
- rpId,
3712
- signerSelection
3713
- },
3714
- auth: {
3715
- publishableKey: managedRuntimeScope.publishableKey,
3716
- environmentId: managedRuntimeScope.projectEnvironmentId
3717
- }
3718
- });
3719
- if (await computeAddSignerIntentDigest(intentResponse.intent) !== intentResponse.addSignerIntentDigestB64u) throw new Error("Add-signer intent digest mismatch");
3720
- emitAddSignerEventSafely(options.onEvent, eventAccountId, {
3721
- authMethod: "passkey",
3722
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_STARTED,
3723
- status: "waiting_for_user",
3724
- interaction: {
3725
- kind: "passkey_assert",
3726
- overlay: "show"
3727
- }
3728
- });
3729
- const allowCredentials = addSignerAllowCredentials(await IndexedDBManager.listProfileAuthenticators(String(walletId)));
3730
- const credential = await context.signingEngine.getAuthenticationCredentialsSerialized({
3731
- subjectId: String(walletId),
3732
- challengeB64u: intentResponse.addSignerIntentDigestB64u,
3733
- allowCredentials,
3734
- includeSecondPrfOutput: false
3735
- });
3736
- const credentialIdB64u = requireSelectedAddSignerCredentialId(credential, allowCredentials);
3737
- const passkeyPrfFirstB64u = requirePasskeyPrfFirstB64u(credential, "Wallet add-signer authorization");
3738
- emitAddSignerEventSafely(options.onEvent, eventAccountId, {
3739
- authMethod: "passkey",
3740
- phase: RegistrationEventPhase.STEP_04_PASSKEY_CREATE_SUCCEEDED,
3741
- status: "succeeded",
3742
- interaction: {
3743
- kind: "passkey_assert",
3744
- overlay: "hide"
3745
- }
3746
- });
3747
- const started = await startWalletAddSigner({
3748
- relayerUrl,
3749
- walletId,
3750
- addSignerIntentGrant: intentResponse.addSignerIntentGrant,
3751
- addSignerIntentDigestB64u: intentResponse.addSignerIntentDigestB64u,
3752
- intent: intentResponse.intent,
3753
- auth: {
3754
- kind: "webauthn_assertion",
3755
- rpId,
3756
- credential: redactCredentialExtensionOutputs(credential),
3757
- expectedChallengeDigestB64u: intentResponse.addSignerIntentDigestB64u
3758
- }
3759
- });
3760
- await requireMatchingStartedAddSignerIntent({
3761
- started,
3762
- walletId,
3763
- expectedDigestB64u: intentResponse.addSignerIntentDigestB64u
3764
- });
3765
- const result = await dispatchPasskeyWalletAddSigner({
3766
- input: {
3767
- context,
3768
- walletId,
3769
- rpId,
3770
- relayerUrl,
3771
- intentResponse,
3772
- credential,
3773
- credentialIdB64u,
3774
- passkeyPrfFirstB64u,
3775
- eventAccountId,
3776
- onEvent: options.onEvent
3777
- },
3778
- signerSelection,
3779
- started
3780
- });
3781
- emitAddSignerEventSafely(options.onEvent, eventAccountId, {
3782
- authMethod: "passkey",
3783
- phase: RegistrationEventPhase.STEP_11_COMPLETED,
3784
- status: "succeeded"
3785
- });
3786
- notifyAddSignerAfterCallSafely(options.afterCall, true, result);
3787
- return result;
3788
- } catch (error) {
3789
- const errorCode = registrationErrorCodeFromUnknown(error);
3790
- const errorMessage = getUserFriendlyErrorMessage(error, "registration", eventAccountId);
3791
- notifyAddSignerErrorSafely(options.onError, registrationErrorWithCode(errorMessage, errorCode));
3792
- emitAddSignerEventSafely(options.onEvent, eventAccountId, {
3793
- authMethod: "passkey",
3794
- phase: RegistrationEventPhase.FAILED,
3795
- status: "failed",
3796
- message: errorMessage,
3797
- interaction: {
3798
- kind: "passkey_assert",
3799
- overlay: "hide"
3800
- },
3801
- error: {
3802
- ...errorCode ? { code: errorCode } : {},
3803
- message: errorMessage
3804
- }
3805
- });
3806
- const result = {
3807
- success: false,
3808
- error: errorMessage,
3809
- ...errorCode ? { errorCode } : {}
3810
- };
3811
- notifyAddSignerAfterCallSafely(options.afterCall, false);
3812
- return result;
3813
- }
3814
- }
3815
- //#endregion
3816
- export { addWalletSigner, registerWallet, resumeNearRegistrationAfterUnlock };
3817
-
3818
- //# sourceMappingURL=registration.js.map