@seams/wallet 0.8.0 → 0.9.1

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 (1243) hide show
  1. package/README.md +140 -254
  2. package/THIRD_PARTY_NOTICES.md +7 -1
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +98 -1825
  5. package/dist/esm/SeamsWeb/assembly/createWalletIframeRouter.js +4 -15
  6. package/dist/esm/SeamsWeb/index.js +2 -2
  7. package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +3 -361
  8. package/dist/esm/SeamsWeb/operations/near/delegateAction.js +18 -106
  9. package/dist/esm/SeamsWeb/operations/recovery/walletRecovery.js +3 -3
  10. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +8 -209
  11. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +5 -5
  12. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryJournal.js +2 -64
  13. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +1 -1
  14. package/dist/esm/SeamsWeb/operations/tempo/index.js +1 -13
  15. package/dist/esm/SeamsWeb/publicApi/auth.js +3 -19
  16. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +59 -94
  17. package/dist/esm/SeamsWeb/publicApi/currentWallet.js +1 -1
  18. package/dist/esm/SeamsWeb/publicApi/devices.js +33 -64
  19. package/dist/esm/SeamsWeb/publicApi/evm.js +28 -93
  20. package/dist/esm/SeamsWeb/publicApi/keyExport.js +26 -52
  21. package/dist/esm/SeamsWeb/publicApi/near.js +140 -435
  22. package/dist/esm/SeamsWeb/publicApi/placement.js +206 -0
  23. package/dist/esm/SeamsWeb/publicApi/session.js +13 -0
  24. package/dist/esm/SeamsWeb/publicApi/tempo.js +64 -221
  25. package/dist/esm/SeamsWeb/publicApi/{awaitNearReady.js → waitForNearAccount.js} +12 -12
  26. package/dist/esm/SeamsWeb/walletIframe/client/deviceCommands.js +50 -0
  27. package/dist/esm/SeamsWeb/walletIframe/client/emailOtpCommands.js +25 -0
  28. package/dist/esm/SeamsWeb/walletIframe/client/evmFamilyCommands.js +118 -0
  29. package/dist/esm/SeamsWeb/walletIframe/client/inboundMessages.js +223 -0
  30. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +153 -0
  31. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +2 -2
  32. package/dist/esm/SeamsWeb/walletIframe/client/placementCommands.js +65 -0
  33. package/dist/esm/SeamsWeb/walletIframe/client/preferenceState.js +93 -0
  34. package/dist/esm/SeamsWeb/walletIframe/client/preferences.js +117 -0
  35. package/dist/esm/SeamsWeb/walletIframe/client/registrationCommands.js +92 -0
  36. package/dist/esm/SeamsWeb/walletIframe/client/router.js +241 -583
  37. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +61 -0
  38. package/dist/esm/SeamsWeb/walletIframe/coordinator.js +175 -134
  39. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +13 -1
  40. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +1 -1
  41. package/dist/esm/SeamsWeb/walletIframe/shared/configuration.js +37 -0
  42. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +31 -11
  43. package/dist/esm/SeamsWeb/walletIframe/shared/facadeBoundary.js +96 -0
  44. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -32
  45. package/dist/esm/advanced.js +3 -3
  46. package/dist/esm/build-paths.js +0 -4
  47. package/dist/esm/core/accountData/near/accountProjection.js +3 -3
  48. package/dist/esm/core/accountData/near/keyMaterial.js +2 -2
  49. package/dist/esm/core/config/chains.js +1 -28
  50. package/dist/esm/core/config/configBuilder.js +3 -14
  51. package/dist/esm/core/config/defaultConfigs.js +4 -6
  52. package/dist/esm/core/{signingEngine/workerManager/ecdsaPresignLifecycle.js → config/presignatures.js} +2 -2
  53. package/dist/esm/core/diagnostics/registration.js +8 -0
  54. package/dist/esm/core/indexedDB/accountKeyMaterial.js +1 -1
  55. package/dist/esm/core/indexedDB/linkedAuthoritySignerMaterial.js +4 -125
  56. package/dist/esm/core/indexedDB/normalization.js +7 -1
  57. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +1 -1
  58. package/dist/esm/core/indexedDB/pendingWalletRegistrationCommit.js +3 -41
  59. package/dist/esm/core/indexedDB/seamsWalletDB/accountSignerRows.js +261 -0
  60. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +2 -201
  61. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +5 -736
  62. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +6 -1084
  63. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +20 -138
  64. package/dist/esm/core/indexedDB/seamsWalletDB/manager.js +100 -4
  65. package/dist/esm/core/indexedDB/seamsWalletDB/nonceLeaseRows.js +156 -0
  66. package/dist/esm/core/indexedDB/seamsWalletDB/registrationSetup.js +4 -11
  67. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +91 -547
  68. package/dist/esm/core/indexedDB/seamsWalletDB/signerOutboxRows.js +90 -0
  69. package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +7 -92
  70. package/dist/esm/core/indexedDB/seamsWalletDB/walletOwnershipGeneration.js +43 -0
  71. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +103 -157
  72. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +2 -1
  73. package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  74. package/dist/esm/core/rpcClients/evm/nonceBackend.js +1 -176
  75. package/dist/esm/core/rpcClients/near/accountExists.js +34 -0
  76. package/dist/esm/core/rpcClients/relayer/ecdsaPrepareSession.js +42 -0
  77. package/dist/esm/core/rpcClients/relayer/relayerHttp.js +31 -1
  78. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +47 -11
  79. package/dist/esm/core/rpcClients/relayer/walletRecoveryFinalize.js +2 -48
  80. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +9 -9
  81. package/dist/esm/core/rpcClients/relayer/walletRecoveryRotate.js +1 -223
  82. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +36 -2197
  83. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +145 -14
  84. package/dist/esm/core/signingEngine/chains/evm/evmAdapter.js +1 -1
  85. package/dist/esm/core/signingEngine/chains/near/display.js +1 -27
  86. package/dist/esm/core/signingEngine/chains/near/nearSignerWasm.js +2 -2
  87. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +6 -39
  88. package/dist/esm/core/signingEngine/flows/shared/signingConfirmation.js +2 -2
  89. package/dist/esm/core/signingEngine/flows/shared/signingStateMachine.js +1 -11
  90. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -2
  91. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +3 -3
  92. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +3 -136
  93. package/dist/esm/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.js +1 -1
  94. package/dist/esm/core/signingEngine/flows/signEvmFamily/operationIds.js +1 -1
  95. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -3
  96. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +40 -5
  97. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +4 -4
  98. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +1 -1
  99. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +27 -53
  100. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +5 -5
  101. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +40 -33
  102. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +8 -2
  103. package/dist/esm/core/signingEngine/flows/signNear/implicitAccountFunding.js +1 -1
  104. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +177 -68
  105. package/dist/esm/core/signingEngine/flows/signNear/shared/implicitAccountFundingPort.js +1 -8
  106. package/dist/esm/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.js +1 -38
  107. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +53 -8
  108. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +5 -5
  109. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +30 -44
  110. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +21 -12
  111. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +59 -11
  112. package/dist/esm/core/signingEngine/interfaces/ecdsaChainTarget.js +1 -1
  113. package/dist/esm/core/signingEngine/nonce/nonceLaneKeys.js +1 -35
  114. package/dist/esm/core/signingEngine/nonce/nonceTypes.js +2 -26
  115. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.js +4 -3
  116. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +5 -1
  117. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +112 -162
  118. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePoolPolicy.js +31 -0
  119. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +1 -1
  120. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +3 -913
  121. package/dist/esm/core/signingEngine/session/emailOtp/challengeDelivery.js +1 -45
  122. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +1 -81
  123. package/dist/esm/core/signingEngine/session/identity/clientSessionPersistenceState.js +1 -43
  124. package/dist/esm/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.js +1 -9
  125. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +3 -125
  126. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +3 -19
  127. package/dist/esm/core/signingEngine/session/identity/laneIdentity.js +2 -106
  128. package/dist/esm/core/signingEngine/session/keyMaterialBrands.js +1 -1
  129. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionFailure.js +1 -1
  130. package/dist/esm/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.js +1 -114
  131. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -2
  132. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +2 -187
  133. package/dist/esm/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +2 -18
  134. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +2 -130
  135. package/dist/esm/core/signingEngine/session/material/linkedEcdsaHolderRuntime.js +1 -25
  136. package/dist/esm/core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js +1 -73
  137. package/dist/esm/core/signingEngine/session/material/walletSigningStateFailure.js +1 -69
  138. package/dist/esm/core/signingEngine/session/operationState/preparedOperation.js +1 -5
  139. package/dist/esm/core/signingEngine/session/operationState/transactionState.js +0 -1
  140. package/dist/esm/core/signingEngine/session/passkey/prfCache.js +1 -5
  141. package/dist/esm/core/signingEngine/session/persistence/durableSealedSessionCommands.js +1 -9
  142. package/dist/esm/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +3 -202
  143. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +4 -83
  144. package/dist/esm/core/signingEngine/session/persistence/sealedSessionStore.js +2 -2
  145. package/dist/esm/core/signingEngine/session/planning/planner.js +2 -13
  146. package/dist/esm/core/signingEngine/session/sealedRecovery/materialActivationKey.js +1 -8
  147. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +2 -1
  148. package/dist/esm/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +2 -41
  149. package/dist/esm/core/signingEngine/stepUpConfirmation/intentDigestPreparation.js +1 -14
  150. package/dist/esm/core/signingEngine/stepUpConfirmation/types.js +1 -7
  151. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +1 -127
  152. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +3 -297
  153. package/dist/esm/core/signingEngine/threshold/ecdsa/operationStepUp.js +10 -24
  154. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +7 -209
  155. package/dist/esm/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +5 -208
  156. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +3 -9
  157. package/dist/esm/core/signingEngine/uiConfirm/nearFundingNotice.js +1 -17
  158. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -173
  159. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +3 -3
  160. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -2
  161. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +1 -1
  162. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +5 -4
  163. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +2 -2
  164. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-resize-events.js +1 -6
  165. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +1 -1
  166. package/dist/esm/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +1 -19
  167. package/dist/esm/core/signingEngine/webauthnAuth/credentials/helpers.js +2 -170
  168. package/dist/esm/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.js +27 -5
  169. package/dist/esm/core/signingEngine/workerManager/validation.js +1 -104
  170. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +1 -33
  171. package/dist/esm/core/types/rpc.js +1 -4
  172. package/dist/esm/core/types/sdkSentEvents.js +1 -24
  173. package/dist/esm/core/walletRuntimePaths/base.js +1 -28
  174. package/dist/esm/externalEvm/controller.js +7 -7
  175. package/dist/esm/index.js +8 -7
  176. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +9 -9
  177. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +1 -2
  178. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +9 -185
  179. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +303 -0
  180. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +31 -5
  181. package/dist/esm/react/components/AccountMenuButton/index.js +21 -13
  182. package/dist/esm/react/components/AccountMenuButton/types.js +2 -1
  183. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +5 -17
  184. package/dist/esm/react/components/QRCodeScanner.js +5 -5
  185. package/dist/esm/react/components/ShowQRCode.js +13 -13
  186. package/dist/esm/react/context/SeamsWebProvider.js +1 -2
  187. package/dist/esm/react/context/index.js +8 -10
  188. package/dist/esm/react/context/seamsManagerSingleton.js +1 -1
  189. package/dist/esm/react/context/useLoginStateRefresher.js +10 -13
  190. package/dist/esm/react/context/useNearProvisioningStateRefresh.js +3 -3
  191. package/dist/esm/react/context/useSeamsContextValue.js +33 -81
  192. package/dist/esm/react/context/useSeamsWithSdkFlow.js +22 -51
  193. package/dist/esm/react/context/useWalletIframeLifecycle.js +20 -110
  194. package/dist/esm/react/hooks/useAccountInput.js +10 -13
  195. package/dist/esm/react/hooks/useDeviceLinking.js +1 -1
  196. package/dist/esm/react/hooks/useNearClient.js +1 -1
  197. package/dist/esm/react/hooks/useQRCamera.js +2 -8
  198. package/dist/esm/react/hooks/useWallet.js +5 -6
  199. package/dist/esm/react/hooks/useWalletAuth.js +3 -4
  200. package/dist/esm/react/hooks/useWalletDevices.js +2 -2
  201. package/dist/esm/react/index.js +4 -4
  202. package/dist/esm/react/transactionReview/TransactionReviewHost.js +1 -1
  203. package/dist/esm/react/transactionReview/boundCalls.js +5 -39
  204. package/dist/esm/react/transactionReview/controller.js +3 -4
  205. package/dist/esm/react/transactionReview/snapshot.js +1 -1
  206. package/dist/esm/react/utils/walletIframe.js +11 -52
  207. package/dist/esm/sdk/{ConfirmationDrawer-DrsREojk.js → ConfirmationDrawer-DY0_yeUV.js} +1 -1
  208. package/dist/esm/sdk/NonceCoordinator-CFFq8-Q9.js +1 -0
  209. package/dist/esm/sdk/accountLifecycle-CAMVowDl.js +1 -0
  210. package/dist/esm/sdk/activeWalletSession-DiZcKjB_.js +1 -0
  211. package/dist/esm/sdk/adapters-DdDOQzl4.js +2 -0
  212. package/dist/esm/sdk/appearance-ZGVLwA4N.js +1 -0
  213. package/dist/esm/sdk/authenticatorOptions-DMLnDWT2.js +1 -0
  214. package/dist/esm/sdk/authorizationAdmission-Ckx6q6tp.js +1 -0
  215. package/dist/esm/sdk/bytes-BBYkulRB.js +1 -0
  216. package/dist/esm/sdk/canonicalPrimitives-CKPGgpxg.js +1 -0
  217. package/dist/esm/sdk/canonicalSignerErrorCode-DEHsPxNm.js +1 -0
  218. package/dist/esm/sdk/{capabilityKinds-XaXXiD2B.js → capabilityKinds-CKQ4Uqnv.js} +1 -1
  219. package/dist/esm/sdk/chains-CiYQT1K4.js +1 -0
  220. package/dist/esm/sdk/challengeDelivery-DxXAkOfS.js +1 -0
  221. package/dist/esm/sdk/clientSessionPersistenceState-CImFWDj6.js +1 -0
  222. package/dist/esm/sdk/commitQueue-iBNUt9Bz.js +1 -0
  223. package/dist/esm/sdk/configBuilder-ZiZwFKt4.js +1 -0
  224. package/dist/esm/sdk/configHelpers-D8Ivi6p8.js +1 -0
  225. package/dist/esm/sdk/digestEncoding-Dzc1rzWV.js +1 -0
  226. package/dist/esm/sdk/display-ClqZq-Xt.js +1 -0
  227. package/dist/esm/sdk/ecdsaCapabilityManifest-BlzJAQF8.js +1 -0
  228. package/dist/{public/sdk/ecdsaChainTarget-CRcRR78w.js → esm/sdk/ecdsaChainTarget-C8ZtMZ8l.js} +1 -1
  229. package/dist/esm/sdk/ecdsaDerivationClientWasm-CVeNEou2.js +1 -0
  230. package/dist/esm/sdk/ecdsaDerivationExport-BZFHSMCv.js +1 -0
  231. package/dist/esm/sdk/{ecdsaWalletRecords-Cm1DdexN.js → ecdsaWalletRecords-D4WeYc7H.js} +1 -1
  232. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +1 -0
  233. package/dist/esm/sdk/enrichDisplayModelWithAbi-69bNckvi.js +1 -0
  234. package/dist/esm/sdk/{evmCryptoWasm-CwEXiLrC.js → evmCryptoWasm-BXsIyRon.js} +1 -1
  235. package/dist/esm/sdk/export-viewer-host-CsFeiIhd.js +1 -0
  236. package/dist/esm/sdk/exportKeypairOperation-DGQIYML3.js +1 -0
  237. package/dist/esm/sdk/helpers-Ddy72ULN.js +1 -0
  238. package/dist/esm/sdk/host-c1__wJwz.js +1 -0
  239. package/dist/esm/sdk/intentDigest-CE-tLw87.js +1 -0
  240. package/dist/esm/sdk/jsxRuntime.module-BcZNe_OA.js +2 -0
  241. package/dist/esm/sdk/lanes-DnBwWv4l.js +1 -0
  242. package/dist/esm/sdk/localOnly-ClCo6602.js +1 -0
  243. package/dist/esm/sdk/messages-vxz27Way.js +1 -0
  244. package/dist/esm/sdk/mountExportPrivateKeySurface-CBZ0wRYj.js +1 -0
  245. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js → esm/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js} +2 -2
  246. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +1 -0
  247. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-B0d1AG3u.js +1 -0
  248. package/dist/{public/sdk/nonceLaneKeys-BBYi4g51.js → esm/sdk/nonceLaneKeys-Fkvk2UPy.js} +1 -1
  249. package/dist/esm/sdk/normalization-CpLZcL2f.js +1 -0
  250. package/dist/esm/sdk/normalization-DCvuCvh0.js +1 -0
  251. package/dist/esm/sdk/normalize-kUDm5zfS.js +1 -0
  252. package/dist/esm/sdk/{operationFingerprint-DtQb0pdp.js → operationFingerprint-CTR9G1NT.js} +1 -1
  253. package/dist/esm/sdk/passkey-custody-BQj44jEM.js +1 -0
  254. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-yJN8VAHn.js +1 -0
  255. package/dist/esm/sdk/presignaturePool-DwlTReFO.js +1 -0
  256. package/dist/esm/sdk/presignatures-DB2IPD-A.js +1 -0
  257. package/dist/esm/sdk/{prfCache-Mbo7_USg.js → prfCache-BMpqZZ-v.js} +1 -1
  258. package/dist/esm/sdk/primitives-CAcl7ON7.js +1 -0
  259. package/dist/esm/sdk/promptText-D2f5Rg0h.js +1 -0
  260. package/dist/esm/sdk/recovery-entrypoint-Bl5GgbW9.js +1 -0
  261. package/dist/esm/sdk/registration-C4sALQZO.js +1 -0
  262. package/dist/esm/sdk/registration-CEqVAgNJ.js +1 -0
  263. package/dist/esm/sdk/{registrationAccounts-DIeEVy6W.js → registrationAccounts-D4RVetMz.js} +1 -1
  264. package/dist/esm/sdk/registrationAuthMethodInput-6ccY2Vuh.js +1 -0
  265. package/dist/esm/sdk/registrationIds-CdPqm-Ya.js +1 -0
  266. package/dist/esm/sdk/registrationIntent-DOkZcKSP.js +1 -0
  267. package/dist/esm/sdk/registrationSignerPlan-B9GCvpTV.js +1 -0
  268. package/dist/esm/sdk/requireStepUpAuth-DCVqmeee.js +1 -0
  269. package/dist/esm/sdk/routerAbNormalSigning-BG75eyI2.js +1 -0
  270. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  271. package/dist/esm/sdk/runtime-auth-BKFyLISf.js +1 -0
  272. package/dist/esm/sdk/runtime-device-link-ENxdEXQW.js +1 -0
  273. package/dist/esm/sdk/runtime-ecdsa-tempo-DhGEb9U7.js +1 -0
  274. package/dist/esm/sdk/runtime-email-otp-dgsP7XZi.js +1 -0
  275. package/dist/esm/sdk/runtime-export-D2RCm5Gk.js +1 -0
  276. package/dist/esm/sdk/runtime-near-Bf-9MFBQ.js +1 -0
  277. package/dist/esm/sdk/runtime-preferences-LQ8SPE7o.js +1 -0
  278. package/dist/esm/sdk/runtime-recovery-BuEzJzuZ.js +1 -0
  279. package/dist/esm/sdk/runtime-recovery-codes-BZMiAR_5.js +1 -0
  280. package/dist/esm/sdk/sdkSentEvents-D3q1h-Uo.js +1 -0
  281. package/dist/esm/sdk/secp256k1-DSLttQND.js +1 -0
  282. package/dist/esm/sdk/{secureRandomId-CTdlJ5Mx.js → secureRandomId-BIekT8bE.js} +1 -1
  283. package/dist/esm/sdk/sessionPolicy-J-RrlPZQ.js +1 -0
  284. package/dist/esm/sdk/shared-8ffIBYw2.js +6 -0
  285. package/dist/esm/sdk/signEvmFamily-KUNWKVeh.js +1 -0
  286. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js → signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js} +1 -1
  287. package/dist/esm/sdk/{signEvmWithUiConfirm-ChreN7aZ.js → signEvmWithUiConfirm-CqxL7UbT.js} +1 -1
  288. package/dist/esm/sdk/signNear-BhTkDm2-.js +1 -0
  289. package/dist/esm/sdk/{signatureUses-CQkkUcwT.js → signatureUses-CjJ233KX.js} +1 -1
  290. package/dist/esm/sdk/signerDomain-vQmlnsbF.js +1 -0
  291. package/dist/esm/sdk/signingFlow-vrXxrhlG.js +2 -0
  292. package/dist/esm/sdk/signingQueue-BrGJXBqe.js +1 -0
  293. package/dist/esm/sdk/{signingSessionSeal-Mr2Xp44o.js → signingSessionSeal-CDLUmAFY.js} +1 -1
  294. package/dist/esm/sdk/singletons-8UH3gOnZ.js +1 -0
  295. package/dist/esm/sdk/theme-_AUTWLS_.js +1 -0
  296. package/dist/esm/sdk/thresholdEcdsa-CO7xo1So.js +1 -0
  297. package/dist/esm/sdk/trace-BvbCxdXF.js +1 -0
  298. package/dist/esm/sdk/transaction-activity-D40ih2j-.js +1 -0
  299. package/dist/esm/sdk/transactionReviewAdmission-C-a3ctCJ.js +1 -0
  300. package/dist/esm/sdk/transactionState-DVinJk4K.js +1 -0
  301. package/dist/esm/sdk/tx-confirm-ui.js +7 -11
  302. package/dist/esm/sdk/{promptText-s8TQ6ckX.js → types-BNUuaUtl.js} +1 -1
  303. package/dist/esm/sdk/{types-M7vxrYtJ.js → types-D3GM-uHR.js} +1 -1
  304. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  305. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  306. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  307. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  308. package/dist/esm/sdk/wallet-recovery-C1kesLCF.js +1 -0
  309. package/dist/esm/sdk/wallet-ui.css +1 -1
  310. package/dist/esm/sdk/walletAuthMethodRecord-CXedSgpV.js +1 -0
  311. package/dist/esm/sdk/walletAuthority-B5hXHWpK.js +1 -0
  312. package/dist/esm/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +1 -0
  313. package/dist/esm/sdk/{walletIframeIdentity-C0b0XMQF.js → walletIframeIdentity-DJ0KOBHg.js} +1 -1
  314. package/dist/esm/sdk/walletOwnershipGeneration-DoXVMDWe.js +1 -0
  315. package/dist/esm/sdk/walletRecoveryCommit-Cc9AqHr0.js +1 -0
  316. package/dist/esm/sdk/walletRecoveryRotate-DWTAFYiv.js +1 -0
  317. package/dist/esm/sdk/walletSessionAuthorizationProjection-DWBksIJR.js +1 -0
  318. package/dist/esm/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +1 -0
  319. package/dist/esm/sdk/walletSessionAuthorizationStore-gEYPmu-G.js +1 -0
  320. package/dist/esm/sdk/walletSessionFailure-Bu4VPKTz.js +1 -0
  321. package/dist/esm/sdk/warmSessionHydration-DgjuUacN.js +1 -0
  322. package/dist/esm/sdk/{webauthnP256-qu06GNFm.js → webauthnP256-BEz4DEAs.js} +1 -1
  323. package/dist/esm/sdk/{webauthnPromptCoordinator-DO-qfECu.js → webauthnPromptCoordinator-BEudHQBr.js} +1 -1
  324. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -7
  325. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +2 -20
  326. package/dist/esm/shared-ts/src/authorization/index.js +1 -2
  327. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -20
  328. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +4 -51
  329. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +1 -112
  330. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +13 -3
  331. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +6 -116
  332. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +3 -270
  333. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +2 -2
  334. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +1 -12
  335. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -109
  336. package/dist/esm/shared-ts/src/device-linking/index.js +0 -2
  337. package/dist/esm/shared-ts/src/device-linking/parsers.js +7 -921
  338. package/dist/esm/shared-ts/src/device-linking/requestProof.js +1 -19
  339. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -358
  340. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +1 -172
  341. package/dist/esm/shared-ts/src/device-linking/wireFields.js +4 -5
  342. package/dist/esm/shared-ts/src/near/actions.js +1 -13
  343. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  344. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +3 -59
  345. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +4 -8
  346. package/dist/esm/shared-ts/src/passkey-custody/index.js +0 -1
  347. package/dist/esm/shared-ts/src/signing-lanes/index.js +0 -1
  348. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +0 -59
  349. package/dist/esm/shared-ts/src/threshold/ed25519OperationFingerprint.js +1 -1
  350. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -4
  351. package/dist/esm/shared-ts/src/threshold/participants.js +1 -2
  352. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +1 -4
  353. package/dist/esm/shared-ts/src/utils/authenticatorOptions.js +1 -12
  354. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +2 -5
  355. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -7
  356. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -16
  357. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
  358. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +1 -23
  359. package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +1 -42
  360. package/dist/esm/shared-ts/src/utils/errors.js +1 -43
  361. package/dist/esm/shared-ts/src/utils/index.js +18 -22
  362. package/dist/esm/shared-ts/src/utils/near.js +2 -74
  363. package/dist/esm/shared-ts/src/utils/normalize.js +1 -22
  364. package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +1 -74
  365. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +6 -275
  366. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -203
  367. package/dist/esm/shared-ts/src/utils/registrationIntent.js +1 -389
  368. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -434
  369. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +6 -414
  370. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -334
  371. package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +2 -40
  372. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -1
  373. package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +1 -6
  374. package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +1 -6
  375. package/dist/esm/shared-ts/src/utils/validation.js +2 -17
  376. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +1 -28
  377. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +1 -11
  378. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +1 -7
  379. package/dist/esm/shared-ts/src/wallet-recovery/index.js +3 -5
  380. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -35
  381. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -32
  382. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -15
  383. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -11
  384. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -1
  385. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +2 -42
  386. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -53
  387. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +2 -63
  388. package/dist/esm/threshold.js +1 -1
  389. package/dist/esm/utils/intentDigest.js +1 -4
  390. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  391. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  392. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  393. package/dist/public/headers.manifest.json +1 -1
  394. package/dist/public/sdk/{ConfirmationDrawer-DrsREojk.js → ConfirmationDrawer-DY0_yeUV.js} +1 -1
  395. package/dist/public/sdk/NonceCoordinator-CFFq8-Q9.js +1 -0
  396. package/dist/public/sdk/accountLifecycle-CAMVowDl.js +1 -0
  397. package/dist/public/sdk/activeWalletSession-DiZcKjB_.js +1 -0
  398. package/dist/public/sdk/adapters-DdDOQzl4.js +2 -0
  399. package/dist/public/sdk/appearance-ZGVLwA4N.js +1 -0
  400. package/dist/public/sdk/authenticatorOptions-DMLnDWT2.js +1 -0
  401. package/dist/public/sdk/authorizationAdmission-Ckx6q6tp.js +1 -0
  402. package/dist/public/sdk/bytes-BBYkulRB.js +1 -0
  403. package/dist/public/sdk/canonicalPrimitives-CKPGgpxg.js +1 -0
  404. package/dist/public/sdk/canonicalSignerErrorCode-DEHsPxNm.js +1 -0
  405. package/dist/public/sdk/{capabilityKinds-XaXXiD2B.js → capabilityKinds-CKQ4Uqnv.js} +1 -1
  406. package/dist/public/sdk/chains-CiYQT1K4.js +1 -0
  407. package/dist/public/sdk/challengeDelivery-DxXAkOfS.js +1 -0
  408. package/dist/public/sdk/clientSessionPersistenceState-CImFWDj6.js +1 -0
  409. package/dist/public/sdk/commitQueue-iBNUt9Bz.js +1 -0
  410. package/dist/public/sdk/configBuilder-ZiZwFKt4.js +1 -0
  411. package/dist/public/sdk/configHelpers-D8Ivi6p8.js +1 -0
  412. package/dist/public/sdk/digestEncoding-Dzc1rzWV.js +1 -0
  413. package/dist/public/sdk/display-ClqZq-Xt.js +1 -0
  414. package/dist/public/sdk/ecdsaCapabilityManifest-BlzJAQF8.js +1 -0
  415. package/dist/{esm/sdk/ecdsaChainTarget-CRcRR78w.js → public/sdk/ecdsaChainTarget-C8ZtMZ8l.js} +1 -1
  416. package/dist/public/sdk/ecdsaDerivationClientWasm-CVeNEou2.js +1 -0
  417. package/dist/public/sdk/ecdsaDerivationExport-BZFHSMCv.js +1 -0
  418. package/dist/public/sdk/{ecdsaWalletRecords-Cm1DdexN.js → ecdsaWalletRecords-D4WeYc7H.js} +1 -1
  419. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +1 -0
  420. package/dist/public/sdk/enrichDisplayModelWithAbi-69bNckvi.js +1 -0
  421. package/dist/public/sdk/{evmCryptoWasm-CwEXiLrC.js → evmCryptoWasm-BXsIyRon.js} +1 -1
  422. package/dist/public/sdk/export-viewer-host-CsFeiIhd.js +1 -0
  423. package/dist/public/sdk/exportKeypairOperation-DGQIYML3.js +1 -0
  424. package/dist/public/sdk/helpers-Ddy72ULN.js +1 -0
  425. package/dist/public/sdk/host-c1__wJwz.js +1 -0
  426. package/dist/public/sdk/intentDigest-CE-tLw87.js +1 -0
  427. package/dist/public/sdk/jsxRuntime.module-BcZNe_OA.js +2 -0
  428. package/dist/public/sdk/lanes-DnBwWv4l.js +1 -0
  429. package/dist/public/sdk/localOnly-ClCo6602.js +1 -0
  430. package/dist/public/sdk/messages-vxz27Way.js +1 -0
  431. package/dist/public/sdk/mountExportPrivateKeySurface-CBZ0wRYj.js +1 -0
  432. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js → public/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js} +2 -2
  433. package/dist/public/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +1 -0
  434. package/dist/public/sdk/nearEd25519YaoSigningPreparation-B0d1AG3u.js +1 -0
  435. package/dist/{esm/sdk/nonceLaneKeys-BBYi4g51.js → public/sdk/nonceLaneKeys-Fkvk2UPy.js} +1 -1
  436. package/dist/public/sdk/normalization-CpLZcL2f.js +1 -0
  437. package/dist/public/sdk/normalization-DCvuCvh0.js +1 -0
  438. package/dist/public/sdk/normalize-kUDm5zfS.js +1 -0
  439. package/dist/public/sdk/{operationFingerprint-DtQb0pdp.js → operationFingerprint-CTR9G1NT.js} +1 -1
  440. package/dist/public/sdk/passkey-custody-BQj44jEM.js +1 -0
  441. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-yJN8VAHn.js +1 -0
  442. package/dist/public/sdk/presignaturePool-DwlTReFO.js +1 -0
  443. package/dist/public/sdk/presignatures-DB2IPD-A.js +1 -0
  444. package/dist/public/sdk/{prfCache-Mbo7_USg.js → prfCache-BMpqZZ-v.js} +1 -1
  445. package/dist/public/sdk/primitives-CAcl7ON7.js +1 -0
  446. package/dist/public/sdk/promptText-D2f5Rg0h.js +1 -0
  447. package/dist/public/sdk/recovery-entrypoint-Bl5GgbW9.js +1 -0
  448. package/dist/public/sdk/registration-C4sALQZO.js +1 -0
  449. package/dist/public/sdk/registration-CEqVAgNJ.js +1 -0
  450. package/dist/public/sdk/{registrationAccounts-DIeEVy6W.js → registrationAccounts-D4RVetMz.js} +1 -1
  451. package/dist/public/sdk/registrationAuthMethodInput-6ccY2Vuh.js +1 -0
  452. package/dist/public/sdk/registrationIds-CdPqm-Ya.js +1 -0
  453. package/dist/public/sdk/registrationIntent-DOkZcKSP.js +1 -0
  454. package/dist/public/sdk/registrationSignerPlan-B9GCvpTV.js +1 -0
  455. package/dist/public/sdk/requireStepUpAuth-DCVqmeee.js +1 -0
  456. package/dist/public/sdk/routerAbNormalSigning-BG75eyI2.js +1 -0
  457. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  458. package/dist/public/sdk/runtime-auth-BKFyLISf.js +1 -0
  459. package/dist/public/sdk/runtime-device-link-ENxdEXQW.js +1 -0
  460. package/dist/public/sdk/runtime-ecdsa-tempo-DhGEb9U7.js +1 -0
  461. package/dist/public/sdk/runtime-email-otp-dgsP7XZi.js +1 -0
  462. package/dist/public/sdk/runtime-export-D2RCm5Gk.js +1 -0
  463. package/dist/public/sdk/runtime-near-Bf-9MFBQ.js +1 -0
  464. package/dist/public/sdk/runtime-preferences-LQ8SPE7o.js +1 -0
  465. package/dist/public/sdk/runtime-recovery-BuEzJzuZ.js +1 -0
  466. package/dist/public/sdk/runtime-recovery-codes-BZMiAR_5.js +1 -0
  467. package/dist/public/sdk/sdkSentEvents-D3q1h-Uo.js +1 -0
  468. package/dist/public/sdk/secp256k1-DSLttQND.js +1 -0
  469. package/dist/public/sdk/{secureRandomId-CTdlJ5Mx.js → secureRandomId-BIekT8bE.js} +1 -1
  470. package/dist/public/sdk/sessionPolicy-J-RrlPZQ.js +1 -0
  471. package/dist/public/sdk/shared-8ffIBYw2.js +6 -0
  472. package/dist/public/sdk/signEvmFamily-KUNWKVeh.js +1 -0
  473. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js → signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js} +1 -1
  474. package/dist/public/sdk/{signEvmWithUiConfirm-ChreN7aZ.js → signEvmWithUiConfirm-CqxL7UbT.js} +1 -1
  475. package/dist/public/sdk/signNear-BhTkDm2-.js +1 -0
  476. package/dist/public/sdk/{signatureUses-CQkkUcwT.js → signatureUses-CjJ233KX.js} +1 -1
  477. package/dist/public/sdk/signerDomain-vQmlnsbF.js +1 -0
  478. package/dist/public/sdk/signingFlow-vrXxrhlG.js +2 -0
  479. package/dist/public/sdk/signingQueue-BrGJXBqe.js +1 -0
  480. package/dist/public/sdk/{signingSessionSeal-Mr2Xp44o.js → signingSessionSeal-CDLUmAFY.js} +1 -1
  481. package/dist/public/sdk/singletons-8UH3gOnZ.js +1 -0
  482. package/dist/public/sdk/theme-_AUTWLS_.js +1 -0
  483. package/dist/public/sdk/thresholdEcdsa-CO7xo1So.js +1 -0
  484. package/dist/public/sdk/trace-BvbCxdXF.js +1 -0
  485. package/dist/public/sdk/transaction-activity-D40ih2j-.js +1 -0
  486. package/dist/public/sdk/transactionReviewAdmission-C-a3ctCJ.js +1 -0
  487. package/dist/public/sdk/transactionState-DVinJk4K.js +1 -0
  488. package/dist/public/sdk/tx-confirm-ui.js +7 -11
  489. package/dist/public/sdk/{promptText-s8TQ6ckX.js → types-BNUuaUtl.js} +1 -1
  490. package/dist/public/sdk/{types-M7vxrYtJ.js → types-D3GM-uHR.js} +1 -1
  491. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  492. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  493. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  494. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  495. package/dist/public/sdk/wallet-recovery-C1kesLCF.js +1 -0
  496. package/dist/public/sdk/wallet-ui.css +1 -1
  497. package/dist/public/sdk/walletAuthMethodRecord-CXedSgpV.js +1 -0
  498. package/dist/public/sdk/walletAuthority-B5hXHWpK.js +1 -0
  499. package/dist/public/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +1 -0
  500. package/dist/public/sdk/{walletIframeIdentity-C0b0XMQF.js → walletIframeIdentity-DJ0KOBHg.js} +1 -1
  501. package/dist/public/sdk/walletOwnershipGeneration-DoXVMDWe.js +1 -0
  502. package/dist/public/sdk/walletRecoveryCommit-Cc9AqHr0.js +1 -0
  503. package/dist/public/sdk/walletRecoveryRotate-DWTAFYiv.js +1 -0
  504. package/dist/public/sdk/walletSessionAuthorizationProjection-DWBksIJR.js +1 -0
  505. package/dist/public/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +1 -0
  506. package/dist/public/sdk/walletSessionAuthorizationStore-gEYPmu-G.js +1 -0
  507. package/dist/public/sdk/walletSessionFailure-Bu4VPKTz.js +1 -0
  508. package/dist/public/sdk/warmSessionHydration-DgjuUacN.js +1 -0
  509. package/dist/public/sdk/{webauthnP256-qu06GNFm.js → webauthnP256-BEz4DEAs.js} +1 -1
  510. package/dist/public/sdk/{webauthnPromptCoordinator-DO-qfECu.js → webauthnPromptCoordinator-BEudHQBr.js} +1 -1
  511. package/dist/public/sdk/workers/device-linking-key.worker.js +18 -0
  512. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1490 -1268
  513. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +96 -0
  514. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +101 -1
  515. package/dist/public/sdk/workers/email-otp.worker.js +267 -237
  516. package/dist/public/sdk/workers/evm-crypto.worker.js +12 -8
  517. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +30 -1
  518. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  519. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  520. package/dist/public/sdk/workers/shamir3pass.worker.js +10 -8
  521. package/dist/public/sdk/workers/tempo-signer.worker.js +12 -8
  522. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +3 -1
  523. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  524. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  525. package/dist/public/wallet-assets.manifest.json +391 -295
  526. package/dist/public/wallet-service/index.html +4 -4
  527. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
  528. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +10 -0
  529. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
  530. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
  531. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
  532. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
  533. package/dist/types/wallet/build-paths.d.ts +0 -4
  534. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +26 -146
  535. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfaceAssembly.d.ts +7 -6
  536. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfacePorts.d.ts +2 -4
  537. package/dist/types/wallet/src/SeamsWeb/assembly/createWalletIframeRouter.d.ts +2 -2
  538. package/dist/types/wallet/src/SeamsWeb/assembly/initializeBrowserSigningRuntime.d.ts +0 -2
  539. package/dist/types/wallet/src/SeamsWeb/index.d.ts +1 -1
  540. package/dist/types/wallet/src/SeamsWeb/operations/auth/login.d.ts +2 -8
  541. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockCompletion.d.ts +26 -0
  542. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockPendingRegistration.d.ts +14 -0
  543. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockSessionPolicy.d.ts +16 -0
  544. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +2 -2
  545. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +3 -2
  546. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/revokeAuthMethod.d.ts +17 -1
  547. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDevice.d.ts +0 -7
  548. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostComposition.d.ts +2 -0
  549. package/dist/types/wallet/src/SeamsWeb/operations/near/actions.d.ts +4 -21
  550. package/dist/types/wallet/src/SeamsWeb/operations/near/delegateAction.d.ts +4 -14
  551. package/dist/types/wallet/src/SeamsWeb/operations/near/signDelegateAction.d.ts +14 -0
  552. package/dist/types/wallet/src/SeamsWeb/operations/near/signNEP413.d.ts +2 -2
  553. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.d.ts +11 -11
  554. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.d.ts +18 -4
  555. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +4 -20
  556. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +10 -4
  557. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +1 -1
  558. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +1 -0
  559. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTerminalCommit.d.ts +0 -4
  560. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +2 -3
  561. package/dist/types/wallet/src/SeamsWeb/operations/tempo/index.d.ts +0 -3
  562. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +4 -13
  563. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +22 -43
  564. package/dist/types/wallet/src/SeamsWeb/publicApi/devices.d.ts +3 -21
  565. package/dist/types/wallet/src/SeamsWeb/publicApi/evm.d.ts +10 -16
  566. package/dist/types/wallet/src/SeamsWeb/publicApi/evmFamilyCommands.d.ts +6 -0
  567. package/dist/types/wallet/src/SeamsWeb/publicApi/index.d.ts +2 -2
  568. package/dist/types/wallet/src/SeamsWeb/publicApi/keyExport.d.ts +8 -16
  569. package/dist/types/wallet/src/SeamsWeb/publicApi/near.d.ts +10 -10
  570. package/dist/types/wallet/src/SeamsWeb/publicApi/nearCommands.d.ts +17 -0
  571. package/dist/types/wallet/src/SeamsWeb/publicApi/placement.d.ts +90 -0
  572. package/dist/types/wallet/src/SeamsWeb/publicApi/placement.typecheck.d.ts +2 -0
  573. package/dist/types/wallet/src/SeamsWeb/publicApi/session.d.ts +3 -0
  574. package/dist/types/wallet/src/SeamsWeb/publicApi/tempo.d.ts +11 -11
  575. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +106 -243
  576. package/dist/types/wallet/src/SeamsWeb/publicApi/{awaitNearReady.d.ts → waitForNearAccount.d.ts} +7 -7
  577. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +33 -78
  578. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +8 -31
  579. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/deviceCommands.d.ts +4 -0
  580. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/emailOtpCommands.d.ts +4 -0
  581. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/evmFamilyCommands.d.ts +6 -0
  582. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/inboundMessages.d.ts +62 -0
  583. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/nearCommands.d.ts +6 -0
  584. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/placementCommands.d.ts +31 -0
  585. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/preferenceState.d.ts +35 -0
  586. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/preferences.d.ts +10 -0
  587. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/registrationCommands.d.ts +6 -0
  588. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +36 -121
  589. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/sessionCommands.d.ts +6 -0
  590. package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +29 -35
  591. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +98 -0
  592. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -2
  593. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/context.d.ts +11 -9
  594. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createDeviceDomain.d.ts +20 -0
  595. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEmailOtpCommands.d.ts +11 -0
  596. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEvmFamilyCommands.d.ts +8 -0
  597. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createNearCommands.d.ts +4 -0
  598. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createPlacementCommands.d.ts +11 -0
  599. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +4 -0
  600. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +16 -0
  601. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/placement.d.ts +3 -0
  602. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/walletIframeHandler.types.d.ts +7 -3
  603. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +2 -0
  604. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/reconcileWalletPlacement.d.ts +10 -0
  605. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +4 -4
  606. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +11 -0
  607. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +5 -3
  608. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeLoader.d.ts +0 -1
  609. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +39 -0
  610. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMoveLocator.d.ts +5 -0
  611. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +3 -0
  612. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/configuration.d.ts +30 -0
  613. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/emailOtpLifecycle.d.ts +43 -0
  614. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +15 -0
  615. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/facadeBoundary.d.ts +14 -0
  616. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +35 -100
  617. package/dist/types/wallet/src/core/config/chains.d.ts +1 -3
  618. package/dist/types/wallet/src/core/config/configBuilder.d.ts +16 -6
  619. package/dist/types/wallet/src/core/config/defaultConfigs.d.ts +3 -4
  620. package/dist/types/wallet/src/core/config/defineConfig.d.ts +3 -6
  621. package/dist/types/wallet/src/core/config/presignatures.d.ts +3 -0
  622. package/dist/types/wallet/src/core/diagnostics/registration.d.ts +2 -0
  623. package/dist/types/wallet/src/core/indexedDB/normalization.d.ts +5 -0
  624. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -2
  625. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +0 -10
  626. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/accountSignerRows.d.ts +44 -0
  627. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +0 -2
  628. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +0 -5
  629. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/manager.d.ts +11 -0
  630. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/nonceLeaseRows.d.ts +23 -0
  631. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +1 -0
  632. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signerOutboxRows.d.ts +15 -0
  633. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletOwnershipGeneration.d.ts +6 -0
  634. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -1
  635. package/dist/types/wallet/src/core/rpcClients/near/accountExists.d.ts +3 -0
  636. package/dist/types/wallet/src/core/rpcClients/near/rpcCalls.d.ts +1 -14
  637. package/dist/types/wallet/src/core/rpcClients/relayer/ecdsaPrepareSession.d.ts +13 -0
  638. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +3 -3
  639. package/dist/types/wallet/src/core/rpcClients/relayer/relayerHttp.d.ts +17 -0
  640. package/dist/types/wallet/src/core/rpcClients/relayer/routerAbNormalSigning.d.ts +19 -3
  641. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +29 -40
  642. package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +34 -0
  643. package/dist/types/wallet/src/core/signingEngine/assembly/ports/shared.d.ts +1 -1
  644. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +2 -1
  645. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +2 -14
  646. package/dist/types/wallet/src/core/signingEngine/chains/near/nearSignerWasm.d.ts +2 -6
  647. package/dist/types/wallet/src/core/signingEngine/flows/recovery/public.d.ts +1 -1
  648. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpPublic.d.ts +1 -32
  649. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +3 -82
  650. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +62 -1
  651. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.d.ts +1 -1
  652. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +4 -55
  653. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlow.d.ts +1 -1
  654. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/thresholdAdmission.d.ts +3 -2
  655. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +45 -1
  656. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signatureOnlySigning.d.ts +16 -2
  657. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNear.d.ts +1 -2
  658. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +1 -1
  659. package/dist/types/wallet/src/core/signingEngine/interfaces/ecdsaChainTarget.d.ts +1 -1
  660. package/dist/types/wallet/src/core/signingEngine/interfaces/near.d.ts +3 -0
  661. package/dist/types/wallet/src/core/signingEngine/nonce/nearTransactionReadiness.d.ts +3 -0
  662. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.d.ts +9 -5
  663. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/presignaturePoolPolicy.d.ts +5 -0
  664. package/dist/types/wallet/src/core/signingEngine/session/SigningSessionCoordinator.d.ts +1 -7
  665. package/dist/types/wallet/src/core/signingEngine/session/availability/persistedAvailableSigningLanes.d.ts +1 -1
  666. package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +0 -17
  667. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.d.ts +2 -2
  668. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.d.ts +2 -33
  669. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/exportRecovery.d.ts +2 -2
  670. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/exportRecoveryRuntime.d.ts +14 -3
  671. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/publicTypes.d.ts +1 -2
  672. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/workerEnrollment.d.ts +0 -12
  673. package/dist/types/wallet/src/core/signingEngine/session/lanes/walletExecutionLaneHydration.d.ts +11 -25
  674. package/dist/types/wallet/src/core/signingEngine/session/lifecycle/walletSessionStatus.d.ts +0 -8
  675. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +2 -2
  676. package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +0 -8
  677. package/dist/types/wallet/src/core/signingEngine/session/operationState/trace.d.ts +1 -1
  678. package/dist/types/wallet/src/core/signingEngine/session/operationState/transactionState.d.ts +0 -1
  679. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.d.ts +2 -0
  680. package/dist/types/wallet/src/core/signingEngine/session/public.d.ts +1 -1
  681. package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +2 -0
  682. package/dist/types/wallet/src/core/signingEngine/session/userPreferences.d.ts +8 -11
  683. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReader.d.ts +2 -1
  684. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/capabilityReaderCore.d.ts +2 -1
  685. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/confirmOperation.d.ts +3 -1
  686. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.d.ts +6 -12
  687. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/operationStepUp.d.ts +6 -5
  688. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +6 -17
  689. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/signing.d.ts +2 -0
  690. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.d.ts +2 -0
  691. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +1 -0
  692. package/dist/types/wallet/src/core/signingEngine/uiConfirm/uiConfirm.types.d.ts +3 -0
  693. package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyDriver.d.ts +0 -1
  694. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRegistrationEd25519.d.ts +17 -0
  695. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +0 -1
  696. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +0 -2
  697. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.d.ts +9 -0
  698. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +0 -5
  699. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +15 -27
  700. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/enrollment.d.ts +1 -17
  701. package/dist/types/wallet/src/core/types/rpc.d.ts +0 -1
  702. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +1 -0
  703. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +2 -0
  704. package/dist/types/wallet/src/core/types/seams.d.ts +12 -9
  705. package/dist/types/wallet/src/core/types/signer-worker.d.ts +2 -1
  706. package/dist/types/wallet/src/externalEvm/controller.d.ts +5 -1
  707. package/dist/types/wallet/src/index.d.ts +5 -2
  708. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +54 -0
  709. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +7 -2
  710. package/dist/types/wallet/src/react/components/AccountMenuButton/index.d.ts +1 -1
  711. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +1 -0
  712. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/public.d.ts +1 -1
  713. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +2 -5
  714. package/dist/types/wallet/src/react/context/SeamsWebProvider.d.ts +0 -5
  715. package/dist/types/wallet/src/react/context/useLoginStateRefresher.d.ts +1 -1
  716. package/dist/types/wallet/src/react/context/useNearProvisioningStateRefresh.d.ts +1 -1
  717. package/dist/types/wallet/src/react/context/useSeamsContextValue.d.ts +2 -2
  718. package/dist/types/wallet/src/react/context/useWalletIframeLifecycle.d.ts +4 -2
  719. package/dist/types/wallet/src/react/hooks/useQRCamera.d.ts +1 -7
  720. package/dist/types/wallet/src/react/hooks/useWallet.d.ts +5 -6
  721. package/dist/types/wallet/src/react/hooks/useWalletAuth.d.ts +1 -1
  722. package/dist/types/wallet/src/react/hooks/useWalletDevices.d.ts +1 -1
  723. package/dist/types/wallet/src/react/index.d.ts +2 -2
  724. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +0 -26
  725. package/dist/types/wallet/src/react/types.d.ts +12 -20
  726. package/dist/types/wallet/src/react/utils/walletIframe.d.ts +2 -6
  727. package/dist/workers/device-linking-key.worker.js +18 -0
  728. package/dist/workers/ecdsa-derivation-client.worker.js +1490 -1268
  729. package/dist/workers/ecdsa-online-client.worker.js +96 -0
  730. package/dist/workers/ecdsa-presign-client.worker.js +101 -1
  731. package/dist/workers/email-otp.worker.js +267 -237
  732. package/dist/workers/evm-crypto.worker.js +12 -8
  733. package/dist/workers/passkey-mpc-export.worker.js +30 -1
  734. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  735. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  736. package/dist/workers/shamir3pass.worker.js +10 -8
  737. package/dist/workers/tempo-signer.worker.js +12 -8
  738. package/dist/workers/wallet-custody-ceremony.worker.js +3 -1
  739. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  740. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  741. package/package.json +1 -1
  742. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +0 -817
  743. package/dist/esm/SeamsWeb/assembly/browserWorkerWarmupPolicy.js +0 -31
  744. package/dist/esm/SeamsWeb/assembly/configureBrowserIndexedDB.js +0 -10
  745. package/dist/esm/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +0 -95
  746. package/dist/esm/SeamsWeb/assembly/createBrowserSigningRuntime.js +0 -34
  747. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +0 -39
  748. package/dist/esm/SeamsWeb/assembly/createBrowserStepUpRuntime.js +0 -34
  749. package/dist/esm/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -29
  750. package/dist/esm/SeamsWeb/assembly/initializeBrowserSigningRuntime.js +0 -19
  751. package/dist/esm/SeamsWeb/assembly/runtimeConfig.js +0 -12
  752. package/dist/esm/SeamsWeb/operations/auth/login.js +0 -4383
  753. package/dist/esm/SeamsWeb/operations/auth/scheduleEcdsaSessionPresignaturePrefill.js +0 -41
  754. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +0 -64
  755. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +0 -142
  756. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +0 -33
  757. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +0 -288
  758. package/dist/esm/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +0 -72
  759. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +0 -191
  760. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/challenge.js +0 -247
  761. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +0 -568
  762. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +0 -69
  763. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.js +0 -62
  764. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +0 -69
  765. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +0 -95
  766. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +0 -260
  767. package/dist/esm/SeamsWeb/operations/authMethods/passkey/ecdsaBootstrap.js +0 -17
  768. package/dist/esm/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +0 -34
  769. package/dist/esm/SeamsWeb/operations/authMethods/passkey/localUnlock.js +0 -16
  770. package/dist/esm/SeamsWeb/operations/authMethods/passkey/loginAssertion.js +0 -25
  771. package/dist/esm/SeamsWeb/operations/authMethods/passkey/registrationAuthority.js +0 -84
  772. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +0 -205
  773. package/dist/esm/SeamsWeb/operations/authMethods/sourcePasskeyProof.js +0 -12
  774. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +0 -444
  775. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingComposition.js +0 -106
  776. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +0 -194
  777. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +0 -524
  778. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +0 -135
  779. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +0 -212
  780. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingTargetCredential.js +0 -63
  781. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingTargetEd25519ExportRoot.js +0 -61
  782. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +0 -337
  783. package/dist/esm/SeamsWeb/operations/devices/linkDevice.js +0 -75
  784. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +0 -1383
  785. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +0 -143
  786. package/dist/esm/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +0 -119
  787. package/dist/esm/SeamsWeb/operations/devices/walletHostComposition.js +0 -130
  788. package/dist/esm/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +0 -191
  789. package/dist/esm/SeamsWeb/operations/evm/index.js +0 -35
  790. package/dist/esm/SeamsWeb/operations/near/actions.js +0 -484
  791. package/dist/esm/SeamsWeb/operations/near/commandSubject.js +0 -14
  792. package/dist/esm/SeamsWeb/operations/near/index.js +0 -37
  793. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +0 -116
  794. package/dist/esm/SeamsWeb/operations/recovery/accountSync.js +0 -21
  795. package/dist/esm/SeamsWeb/operations/recovery/recoveryWalletBinding.js +0 -43
  796. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +0 -912
  797. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +0 -100
  798. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +0 -213
  799. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +0 -184
  800. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +0 -247
  801. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +0 -134
  802. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +0 -354
  803. package/dist/esm/SeamsWeb/operations/registration/registration.js +0 -3818
  804. package/dist/esm/SeamsWeb/operations/registration/registrationEd25519Yao.js +0 -166
  805. package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +0 -60
  806. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +0 -343
  807. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +0 -296
  808. package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +0 -682
  809. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +0 -36
  810. package/dist/esm/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.js +0 -20
  811. package/dist/esm/SeamsWeb/publicApi/preferences.js +0 -61
  812. package/dist/esm/SeamsWeb/publicApi/recovery.js +0 -19
  813. package/dist/esm/SeamsWeb/publicApi/types.js +0 -10
  814. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +0 -3917
  815. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +0 -29
  816. package/dist/esm/core/browser/walletIframe/events.js +0 -6
  817. package/dist/esm/core/browser/walletIframe/host-mode.js +0 -9
  818. package/dist/esm/core/config/managedRuntimeScope.js +0 -16
  819. package/dist/esm/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -144
  820. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +0 -535
  821. package/dist/esm/core/platform/secretSources.js +0 -111
  822. package/dist/esm/core/platform/signerCoreCommandAdapters.js +0 -122
  823. package/dist/esm/core/rpcClients/near/rpcCalls.js +0 -376
  824. package/dist/esm/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js +0 -67
  825. package/dist/esm/core/rpcClients/relayer/passkeyCustodyEnvelope.js +0 -218
  826. package/dist/esm/core/rpcClients/relayer/sealedRefreshCapabilities.js +0 -148
  827. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +0 -235
  828. package/dist/esm/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.js +0 -161
  829. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +0 -718
  830. package/dist/esm/core/signingEngine/assembly/createManagers.js +0 -80
  831. package/dist/esm/core/signingEngine/assembly/createPorts.js +0 -54
  832. package/dist/esm/core/signingEngine/assembly/ports/emailOtp.js +0 -30
  833. package/dist/esm/core/signingEngine/assembly/ports/evmFamily.js +0 -73
  834. package/dist/esm/core/signingEngine/assembly/ports/near.js +0 -21
  835. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +0 -75
  836. package/dist/esm/core/signingEngine/assembly/ports/registration.js +0 -22
  837. package/dist/esm/core/signingEngine/assembly/ports/session.js +0 -25
  838. package/dist/esm/core/signingEngine/assembly/ports/shared.js +0 -39
  839. package/dist/esm/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -67
  840. package/dist/esm/core/signingEngine/assembly/ports/warmSigning.js +0 -92
  841. package/dist/esm/core/signingEngine/assembly/warmup.js +0 -64
  842. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -427
  843. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +0 -660
  844. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -249
  845. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +0 -353
  846. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +0 -213
  847. package/dist/esm/core/signingEngine/flows/recovery/exportLaneSelection.js +0 -283
  848. package/dist/esm/core/signingEngine/flows/recovery/keyExportConfirmation.js +0 -325
  849. package/dist/esm/core/signingEngine/flows/recovery/keyExportFlow.js +0 -81
  850. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +0 -192
  851. package/dist/esm/core/signingEngine/flows/recovery/public.js +0 -26
  852. package/dist/esm/core/signingEngine/flows/recovery/stepUpAuthorization.js +0 -139
  853. package/dist/esm/core/signingEngine/flows/registration/nearProvisioningRegistry.js +0 -79
  854. package/dist/esm/core/signingEngine/flows/registration/public.js +0 -85
  855. package/dist/esm/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js +0 -77
  856. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +0 -82
  857. package/dist/esm/core/signingEngine/flows/registration/session.js +0 -24
  858. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpPublic.js +0 -123
  859. package/dist/esm/core/signingEngine/nonce/NonceCoordinator.js +0 -1026
  860. package/dist/esm/core/signingEngine/nonce/evmNonceLane.js +0 -182
  861. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +0 -669
  862. package/dist/esm/core/signingEngine/nonce/nonceDiagnostics.js +0 -232
  863. package/dist/esm/core/signingEngine/nonce/nonceLeaseState.js +0 -128
  864. package/dist/esm/core/signingEngine/nonce/nonceUtils.js +0 -33
  865. package/dist/esm/core/signingEngine/session/SigningSessionCoordinator.js +0 -344
  866. package/dist/esm/core/signingEngine/session/authority/authorityOperationResolver.js +0 -114
  867. package/dist/esm/core/signingEngine/session/availability/canonicalLaneInventory.js +0 -127
  868. package/dist/esm/core/signingEngine/session/availability/clientSessionExpiryInvalidator.js +0 -72
  869. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +0 -214
  870. package/dist/esm/core/signingEngine/session/availability/readiness.js +0 -464
  871. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -130
  872. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +0 -106
  873. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -47
  874. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +0 -930
  875. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaPublication.js +0 -414
  876. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +0 -264
  877. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -373
  878. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +0 -284
  879. package/dist/esm/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -50
  880. package/dist/esm/core/signingEngine/session/emailOtp/persistedSnapshot.js +0 -22
  881. package/dist/esm/core/signingEngine/session/emailOtp/publicTypes.js +0 -38
  882. package/dist/esm/core/signingEngine/session/emailOtp/routePlan.js +0 -60
  883. package/dist/esm/core/signingEngine/session/emailOtp/runtimeConfig.js +0 -24
  884. package/dist/esm/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -49
  885. package/dist/esm/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.js +0 -234
  886. package/dist/esm/core/signingEngine/session/emailOtp/sealedRuntimePurpose.js +0 -16
  887. package/dist/esm/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +0 -40
  888. package/dist/esm/core/signingEngine/session/emailOtp/status.js +0 -72
  889. package/dist/esm/core/signingEngine/session/emailOtp/walletUnlock.js +0 -168
  890. package/dist/esm/core/signingEngine/session/emailOtp/warmSessionRuntime.js +0 -70
  891. package/dist/esm/core/signingEngine/session/emailOtp/workerEnrollment.js +0 -159
  892. package/dist/esm/core/signingEngine/session/emailOtp/workerRequests.js +0 -84
  893. package/dist/esm/core/signingEngine/session/emailOtp/zeroize.js +0 -9
  894. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -104
  895. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionReader.js +0 -54
  896. package/dist/esm/core/signingEngine/session/identity/ownerLaneScope.js +0 -185
  897. package/dist/esm/core/signingEngine/session/lanes/walletExecutionLaneHydration.js +0 -194
  898. package/dist/esm/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.js +0 -32
  899. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionStatus.js +0 -123
  900. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityHydration.js +0 -75
  901. package/dist/esm/core/signingEngine/session/material/ecdsaSealedRuntime.js +0 -197
  902. package/dist/esm/core/signingEngine/session/material/mpcCapabilityHydration.js +0 -79
  903. package/dist/esm/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +0 -122
  904. package/dist/esm/core/signingEngine/session/material/restorableMpcMaterialRef.internal.js +0 -21
  905. package/dist/esm/core/signingEngine/session/passkey/ecdsaBootstrap.js +0 -184
  906. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -205
  907. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +0 -84
  908. package/dist/esm/core/signingEngine/session/passkey/ecdsaSessionProvision.js +0 -224
  909. package/dist/esm/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +0 -147
  910. package/dist/esm/core/signingEngine/session/passkey/ed25519Provisioner.js +0 -55
  911. package/dist/esm/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -228
  912. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +0 -536
  913. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +0 -94
  914. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoSealedSession.js +0 -57
  915. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +0 -281
  916. package/dist/esm/core/signingEngine/session/passkey/passkeyCustodySessionCache.js +0 -90
  917. package/dist/esm/core/signingEngine/session/passkey/public.js +0 -15
  918. package/dist/esm/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +0 -247
  919. package/dist/esm/core/signingEngine/session/persistence/clientSessionPersistence.js +0 -135
  920. package/dist/esm/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.js +0 -51
  921. package/dist/esm/core/signingEngine/session/planning/operationIdBinding.js +0 -36
  922. package/dist/esm/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -163
  923. package/dist/esm/core/signingEngine/session/public.js +0 -44
  924. package/dist/esm/core/signingEngine/session/routerAbSigningWalletSession.js +0 -119
  925. package/dist/esm/core/signingEngine/session/sealedRecovery/exactRecordLookup.js +0 -148
  926. package/dist/esm/core/signingEngine/session/sealedRecovery/recoveryRecord.js +0 -248
  927. package/dist/esm/core/signingEngine/session/sealedRecovery/restoreCoordinator.js +0 -229
  928. package/dist/esm/core/signingEngine/session/userPreferences.js +0 -212
  929. package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReader.js +0 -62
  930. package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +0 -293
  931. package/dist/esm/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.js +0 -44
  932. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +0 -107
  933. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaBootstrapQueue.js +0 -22
  934. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +0 -93
  935. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +0 -50
  936. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -9
  937. package/dist/esm/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +0 -251
  938. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +0 -98
  939. package/dist/esm/core/signingEngine/session/warmCapabilities/public.js +0 -31
  940. package/dist/esm/core/signingEngine/session/warmCapabilities/readModel.js +0 -155
  941. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +0 -256
  942. package/dist/esm/core/signingEngine/session/warmCapabilities/statusReader.js +0 -100
  943. package/dist/esm/core/signingEngine/session/warmCapabilities/transitions.js +0 -47
  944. package/dist/esm/core/signingEngine/session/warmCapabilities/types.js +0 -122
  945. package/dist/esm/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +0 -45
  946. package/dist/esm/core/signingEngine/stepUpConfirmation/channel/confirmCommon.js +0 -89
  947. package/dist/esm/core/signingEngine/stepUpConfirmation/channel/confirmTypes.js +0 -12
  948. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -31
  949. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.js +0 -108
  950. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +0 -271
  951. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -167
  952. package/dist/esm/core/signingEngine/stepUpConfirmation/userConfirmationType.js +0 -15
  953. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -67
  954. package/dist/esm/core/signingEngine/threshold/ecdsa/activation.js +0 -267
  955. package/dist/esm/core/signingEngine/threshold/ecdsa/bootstrapSession.js +0 -115
  956. package/dist/esm/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.js +0 -132
  957. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +0 -16
  958. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +0 -16
  959. package/dist/esm/core/signingEngine/threshold/ed25519/connectSession.js +0 -137
  960. package/dist/esm/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +0 -146
  961. package/dist/esm/core/signingEngine/threshold/ed25519/yaoClient.js +0 -563
  962. package/dist/esm/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js +0 -23
  963. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcExportManager.js +0 -233
  964. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +0 -493
  965. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +0 -746
  966. package/dist/esm/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -599
  967. package/dist/esm/core/signingEngine/uiConfirm/confirmationReadinessRegistry.js +0 -41
  968. package/dist/esm/core/signingEngine/uiConfirm/exportConfirmRequest.js +0 -149
  969. package/dist/esm/core/signingEngine/uiConfirm/handlers/determineConfirmationConfig.js +0 -82
  970. package/dist/esm/core/signingEngine/uiConfirm/handlers/flowOrchestrator.js +0 -363
  971. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +0 -337
  972. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/request.js +0 -120
  973. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -149
  974. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/registration.js +0 -235
  975. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.js +0 -178
  976. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/signing.js +0 -684
  977. package/dist/esm/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.js +0 -90
  978. package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +0 -27
  979. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-ui.js +0 -516
  980. package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +0 -155
  981. package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +0 -207
  982. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +0 -318
  983. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +0 -518
  984. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +0 -80
  985. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +0 -86
  986. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +0 -82
  987. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +0 -12
  988. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-activity.js +0 -46
  989. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/confirmation-tree.js +0 -27
  990. package/dist/esm/core/signingEngine/uiConfirm/warmSessionUiConfirm.js +0 -65
  991. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -122
  992. package/dist/esm/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +0 -94
  993. package/dist/esm/core/signingEngine/walletCustody/ceremonyDriver.js +0 -171
  994. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +0 -20
  995. package/dist/esm/core/signingEngine/walletCustody/ed25519ActiveClient.js +0 -100
  996. package/dist/esm/core/signingEngine/walletCustody/ed25519Projection.js +0 -32
  997. package/dist/esm/core/signingEngine/walletCustody/ed25519SeedMaterial.js +0 -92
  998. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +0 -132
  999. package/dist/esm/core/signingEngine/walletCustody/joinCustodyWire.js +0 -64
  1000. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +0 -126
  1001. package/dist/esm/core/signingEngine/walletCustody/passkeyLink.js +0 -180
  1002. package/dist/esm/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +0 -60
  1003. package/dist/esm/core/signingEngine/walletCustody/registrationCeremony.js +0 -460
  1004. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +0 -258
  1005. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -23
  1006. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -75
  1007. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +0 -129
  1008. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -178
  1009. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -102
  1010. package/dist/esm/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.js +0 -154
  1011. package/dist/esm/core/signingEngine/webauthnAuth/device/signerSlot.js +0 -25
  1012. package/dist/esm/core/signingEngine/webauthnAuth/walletOriginWebAuthn.js +0 -109
  1013. package/dist/esm/core/signingEngine/workerManager/SignerWorkerManager.js +0 -68
  1014. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +0 -342
  1015. package/dist/esm/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +0 -158
  1016. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -13
  1017. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +0 -734
  1018. package/dist/esm/core/types/confirmationConfig.js +0 -39
  1019. package/dist/esm/core/types/secure-confirm-worker.js +0 -22
  1020. package/dist/esm/core/walletRuntimePaths/emailOtpWorker.js +0 -12
  1021. package/dist/esm/core/walletRuntimePaths/multichainWorkers.js +0 -25
  1022. package/dist/esm/core/walletRuntimePaths/walletCustodyCeremonyWorker.js +0 -18
  1023. package/dist/esm/core/walletRuntimePaths/workers.js +0 -93
  1024. package/dist/esm/react/context/useEagerPrewarm.js +0 -38
  1025. package/dist/esm/sdk/EvmClient-DoxytQaJ.js +0 -1
  1026. package/dist/esm/sdk/NearClient-vJ65Wjrq.js +0 -1
  1027. package/dist/esm/sdk/NonceCoordinator-BBeadCSq.js +0 -1
  1028. package/dist/esm/sdk/accountLifecycle-EyfYPnuT.js +0 -1
  1029. package/dist/esm/sdk/actions-DZLxCcrU.js +0 -1
  1030. package/dist/esm/sdk/adapters-DtAyuoiA.js +0 -2
  1031. package/dist/esm/sdk/base-Xtd32asf.js +0 -1
  1032. package/dist/esm/sdk/bytes-t5S5mkat.js +0 -1
  1033. package/dist/esm/sdk/canonicalPrimitives-MPGET2cl.js +0 -1
  1034. package/dist/esm/sdk/canonicalSignerErrorCode-C0hh_SVi.js +0 -1
  1035. package/dist/esm/sdk/chains-yAls2d9X.js +0 -1
  1036. package/dist/esm/sdk/challengeDelivery-cAsaUC6U.js +0 -1
  1037. package/dist/esm/sdk/configHelpers-CseiVoZD.js +0 -1
  1038. package/dist/esm/sdk/csp-stylesheet-B1fAhrGB.js +0 -2
  1039. package/dist/esm/sdk/defaultConfigs-CWpApkMq.js +0 -1
  1040. package/dist/esm/sdk/display-jK7_hYho.js +0 -1
  1041. package/dist/esm/sdk/domainIds-GDzjOs6i.js +0 -1
  1042. package/dist/esm/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +0 -1
  1043. package/dist/esm/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +0 -1
  1044. package/dist/esm/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +0 -1
  1045. package/dist/esm/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +0 -1
  1046. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +0 -1
  1047. package/dist/esm/sdk/exactSessionState-CjD8gekO.js +0 -210
  1048. package/dist/esm/sdk/exactSigningLaneIdentity-olheZx_n.js +0 -1
  1049. package/dist/esm/sdk/export-viewer-host-jo7h_0wl.js +0 -1
  1050. package/dist/esm/sdk/helpers-D4QckQhq.js +0 -1
  1051. package/dist/esm/sdk/host-BAqOYnju.js +0 -1
  1052. package/dist/esm/sdk/intentDigest-CB6zy3lN.js +0 -1
  1053. package/dist/esm/sdk/jsxRuntime.module-CoHsKD_3.js +0 -1
  1054. package/dist/esm/sdk/keyMaterialBrands-uVZHfAh3.js +0 -1
  1055. package/dist/esm/sdk/localOnly-DBQRG6Qh.js +0 -1
  1056. package/dist/esm/sdk/messages-Cv2j4SKI.js +0 -1
  1057. package/dist/esm/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +0 -1
  1058. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +0 -1
  1059. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +0 -1
  1060. package/dist/esm/sdk/nearRpcResults--cBcfmp4.js +0 -1
  1061. package/dist/esm/sdk/normalization-BGPR6osg.js +0 -1
  1062. package/dist/esm/sdk/operationFingerprint-5-wH2Ht8.js +0 -1
  1063. package/dist/esm/sdk/passkey-custody-LP4UTFbn.js +0 -1
  1064. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +0 -1
  1065. package/dist/esm/sdk/recovery-entrypoint-DkT8sFO5.js +0 -1
  1066. package/dist/esm/sdk/registration-Btozh7uh.js +0 -1
  1067. package/dist/esm/sdk/registration-CSAG_h4Y.js +0 -1
  1068. package/dist/esm/sdk/registrationIds-BIel5S0i.js +0 -1
  1069. package/dist/esm/sdk/registrationIntent-DV1GYZ3K.js +0 -1
  1070. package/dist/esm/sdk/registrationPreparationPreload-vOCqNuG4.js +0 -1
  1071. package/dist/esm/sdk/registrationSignerPlan-FzD3TwxB.js +0 -1
  1072. package/dist/esm/sdk/relayerHttp-DaPeS929.js +0 -1
  1073. package/dist/esm/sdk/routePlan-B_KJaPtm.js +0 -1
  1074. package/dist/esm/sdk/router-Dd3fFHk3.js +0 -1
  1075. package/dist/esm/sdk/routerAbNormalSigning-D_fHjq5l.js +0 -1
  1076. package/dist/esm/sdk/runtime-auth-B2M91rSx.js +0 -1
  1077. package/dist/esm/sdk/runtime-device-link-ojjPSRaG.js +0 -1
  1078. package/dist/esm/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +0 -1
  1079. package/dist/esm/sdk/runtime-email-otp-DDwtKVAe.js +0 -1
  1080. package/dist/esm/sdk/runtime-export-JXYk8sQ-.js +0 -1
  1081. package/dist/esm/sdk/runtime-near-BB8AG6dV.js +0 -1
  1082. package/dist/esm/sdk/runtime-preferences-DKFZYccW.js +0 -1
  1083. package/dist/esm/sdk/runtime-recovery-C_XjsDBg.js +0 -1
  1084. package/dist/esm/sdk/runtime-recovery-codes-CWp839mH.js +0 -1
  1085. package/dist/esm/sdk/runtimeContext-BpObgzbj.js +0 -6
  1086. package/dist/esm/sdk/runtimeLoader-DjgBf_yF.js +0 -1
  1087. package/dist/esm/sdk/sdkSentEvents-_RGAEeld.js +0 -1
  1088. package/dist/esm/sdk/secp256k1-B_6W9QDJ.js +0 -1
  1089. package/dist/esm/sdk/sessionPolicy-CNVK7nJ6.js +0 -1
  1090. package/dist/esm/sdk/shared-j_KsFbCT.js +0 -1
  1091. package/dist/esm/sdk/signEvmFamily-CcLVBm0f.js +0 -1
  1092. package/dist/esm/sdk/signNear-mWbTE2Dl.js +0 -1
  1093. package/dist/esm/sdk/signerDomain-BhUTzDmF.js +0 -1
  1094. package/dist/esm/sdk/signerLoader-By0IY24G.js +0 -1
  1095. package/dist/esm/sdk/signingFlow-LUWrZi2d.js +0 -2
  1096. package/dist/esm/sdk/trace-M34pNGuF.js +0 -1
  1097. package/dist/esm/sdk/transaction-activity-BbDod7ji.js +0 -1
  1098. package/dist/esm/sdk/transactionReview-CBE5oH4c.js +0 -1
  1099. package/dist/esm/sdk/transactionReviewAdmission-0ZgWs6q3.js +0 -1
  1100. package/dist/esm/sdk/transactionState-9d7f3xVj.js +0 -1
  1101. package/dist/esm/sdk/validation-dC1-_uyG.js +0 -1
  1102. package/dist/esm/sdk/wallet-recovery-CcDZ1hMH.js +0 -1
  1103. package/dist/esm/sdk/walletAuthority-CoWSeqvQ.js +0 -1
  1104. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +0 -1
  1105. package/dist/esm/sdk/walletRecoveryCommit-ljxVeo-d.js +0 -1
  1106. package/dist/esm/sdk/walletRecoveryRotate-HztDcDaY.js +0 -1
  1107. package/dist/esm/sdk/warmSessionHydration-BPGM0YRU.js +0 -1
  1108. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +0 -16
  1109. package/dist/esm/shared-ts/src/device-linking/contracts.js +0 -8
  1110. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +0 -167
  1111. package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +0 -43
  1112. package/dist/esm/shared-ts/src/signing-lanes/participants.js +0 -256
  1113. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -479
  1114. package/dist/esm/shared-ts/src/threshold/secp256k1.js +0 -6
  1115. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +0 -103
  1116. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -43
  1117. package/dist/esm/shared-ts/src/utils/exactKeys.js +0 -17
  1118. package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +0 -36
  1119. package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +0 -32
  1120. package/dist/public/sdk/EvmClient-DoxytQaJ.js +0 -1
  1121. package/dist/public/sdk/NearClient-vJ65Wjrq.js +0 -1
  1122. package/dist/public/sdk/NonceCoordinator-BBeadCSq.js +0 -1
  1123. package/dist/public/sdk/accountLifecycle-EyfYPnuT.js +0 -1
  1124. package/dist/public/sdk/actions-DZLxCcrU.js +0 -1
  1125. package/dist/public/sdk/adapters-DtAyuoiA.js +0 -2
  1126. package/dist/public/sdk/base-Xtd32asf.js +0 -1
  1127. package/dist/public/sdk/bytes-t5S5mkat.js +0 -1
  1128. package/dist/public/sdk/canonicalPrimitives-MPGET2cl.js +0 -1
  1129. package/dist/public/sdk/canonicalSignerErrorCode-C0hh_SVi.js +0 -1
  1130. package/dist/public/sdk/chains-yAls2d9X.js +0 -1
  1131. package/dist/public/sdk/challengeDelivery-cAsaUC6U.js +0 -1
  1132. package/dist/public/sdk/configHelpers-CseiVoZD.js +0 -1
  1133. package/dist/public/sdk/csp-stylesheet-B1fAhrGB.js +0 -2
  1134. package/dist/public/sdk/defaultConfigs-CWpApkMq.js +0 -1
  1135. package/dist/public/sdk/display-jK7_hYho.js +0 -1
  1136. package/dist/public/sdk/domainIds-GDzjOs6i.js +0 -1
  1137. package/dist/public/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +0 -1
  1138. package/dist/public/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +0 -1
  1139. package/dist/public/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +0 -1
  1140. package/dist/public/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +0 -1
  1141. package/dist/public/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +0 -1
  1142. package/dist/public/sdk/exactSessionState-CjD8gekO.js +0 -210
  1143. package/dist/public/sdk/exactSigningLaneIdentity-olheZx_n.js +0 -1
  1144. package/dist/public/sdk/export-viewer-host-jo7h_0wl.js +0 -1
  1145. package/dist/public/sdk/helpers-D4QckQhq.js +0 -1
  1146. package/dist/public/sdk/host-BAqOYnju.js +0 -1
  1147. package/dist/public/sdk/intentDigest-CB6zy3lN.js +0 -1
  1148. package/dist/public/sdk/jsxRuntime.module-CoHsKD_3.js +0 -1
  1149. package/dist/public/sdk/keyMaterialBrands-uVZHfAh3.js +0 -1
  1150. package/dist/public/sdk/localOnly-DBQRG6Qh.js +0 -1
  1151. package/dist/public/sdk/messages-Cv2j4SKI.js +0 -1
  1152. package/dist/public/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +0 -1
  1153. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +0 -1
  1154. package/dist/public/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +0 -1
  1155. package/dist/public/sdk/nearRpcResults--cBcfmp4.js +0 -1
  1156. package/dist/public/sdk/normalization-BGPR6osg.js +0 -1
  1157. package/dist/public/sdk/operationFingerprint-5-wH2Ht8.js +0 -1
  1158. package/dist/public/sdk/passkey-custody-LP4UTFbn.js +0 -1
  1159. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +0 -1
  1160. package/dist/public/sdk/recovery-entrypoint-DkT8sFO5.js +0 -1
  1161. package/dist/public/sdk/registration-Btozh7uh.js +0 -1
  1162. package/dist/public/sdk/registration-CSAG_h4Y.js +0 -1
  1163. package/dist/public/sdk/registrationIds-BIel5S0i.js +0 -1
  1164. package/dist/public/sdk/registrationIntent-DV1GYZ3K.js +0 -1
  1165. package/dist/public/sdk/registrationPreparationPreload-vOCqNuG4.js +0 -1
  1166. package/dist/public/sdk/registrationSignerPlan-FzD3TwxB.js +0 -1
  1167. package/dist/public/sdk/relayerHttp-DaPeS929.js +0 -1
  1168. package/dist/public/sdk/routePlan-B_KJaPtm.js +0 -1
  1169. package/dist/public/sdk/router-Dd3fFHk3.js +0 -1
  1170. package/dist/public/sdk/routerAbNormalSigning-D_fHjq5l.js +0 -1
  1171. package/dist/public/sdk/runtime-auth-B2M91rSx.js +0 -1
  1172. package/dist/public/sdk/runtime-device-link-ojjPSRaG.js +0 -1
  1173. package/dist/public/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +0 -1
  1174. package/dist/public/sdk/runtime-email-otp-DDwtKVAe.js +0 -1
  1175. package/dist/public/sdk/runtime-export-JXYk8sQ-.js +0 -1
  1176. package/dist/public/sdk/runtime-near-BB8AG6dV.js +0 -1
  1177. package/dist/public/sdk/runtime-preferences-DKFZYccW.js +0 -1
  1178. package/dist/public/sdk/runtime-recovery-C_XjsDBg.js +0 -1
  1179. package/dist/public/sdk/runtime-recovery-codes-CWp839mH.js +0 -1
  1180. package/dist/public/sdk/runtimeContext-BpObgzbj.js +0 -6
  1181. package/dist/public/sdk/runtimeLoader-DjgBf_yF.js +0 -1
  1182. package/dist/public/sdk/sdkSentEvents-_RGAEeld.js +0 -1
  1183. package/dist/public/sdk/secp256k1-B_6W9QDJ.js +0 -1
  1184. package/dist/public/sdk/sessionPolicy-CNVK7nJ6.js +0 -1
  1185. package/dist/public/sdk/shared-j_KsFbCT.js +0 -1
  1186. package/dist/public/sdk/signEvmFamily-CcLVBm0f.js +0 -1
  1187. package/dist/public/sdk/signNear-mWbTE2Dl.js +0 -1
  1188. package/dist/public/sdk/signerDomain-BhUTzDmF.js +0 -1
  1189. package/dist/public/sdk/signerLoader-By0IY24G.js +0 -1
  1190. package/dist/public/sdk/signingFlow-LUWrZi2d.js +0 -2
  1191. package/dist/public/sdk/trace-M34pNGuF.js +0 -1
  1192. package/dist/public/sdk/transaction-activity-BbDod7ji.js +0 -1
  1193. package/dist/public/sdk/transactionReview-CBE5oH4c.js +0 -1
  1194. package/dist/public/sdk/transactionReviewAdmission-0ZgWs6q3.js +0 -1
  1195. package/dist/public/sdk/transactionState-9d7f3xVj.js +0 -1
  1196. package/dist/public/sdk/validation-dC1-_uyG.js +0 -1
  1197. package/dist/public/sdk/wallet-recovery-CcDZ1hMH.js +0 -1
  1198. package/dist/public/sdk/walletAuthority-CoWSeqvQ.js +0 -1
  1199. package/dist/public/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +0 -1
  1200. package/dist/public/sdk/walletRecoveryCommit-ljxVeo-d.js +0 -1
  1201. package/dist/public/sdk/walletRecoveryRotate-HztDcDaY.js +0 -1
  1202. package/dist/public/sdk/warmSessionHydration-BPGM0YRU.js +0 -1
  1203. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  1204. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  1205. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  1206. package/dist/types/wallet/src/SeamsWeb/assembly/browserWorkerWarmupPolicy.d.ts +0 -4
  1207. package/dist/types/wallet/src/SeamsWeb/assembly/configureBrowserIndexedDB.d.ts +0 -3
  1208. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +0 -56
  1209. package/dist/types/wallet/src/SeamsWeb/operations/evm/index.d.ts +0 -9
  1210. package/dist/types/wallet/src/SeamsWeb/operations/near/index.d.ts +0 -11
  1211. package/dist/types/wallet/src/SeamsWeb/operations/recovery/accountSync.d.ts +0 -19
  1212. package/dist/types/wallet/src/SeamsWeb/publicApi/devices.typecheck.d.ts +0 -2
  1213. package/dist/types/wallet/src/SeamsWeb/publicApi/preferences.d.ts +0 -8
  1214. package/dist/types/wallet/src/SeamsWeb/publicApi/recovery.d.ts +0 -14
  1215. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/config-guards.d.ts +0 -15
  1216. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/registrationPreparationPreload.d.ts +0 -2
  1217. package/dist/types/wallet/src/core/signingEngine/flows/registration/public.d.ts +0 -68
  1218. package/dist/types/wallet/src/react/context/useEagerPrewarm.d.ts +0 -3
  1219. package/dist/workers/evm_crypto.wasm +0 -0
  1220. package/dist/workers/near_signer.wasm +0 -0
  1221. package/dist/workers/tempo_signer.wasm +0 -0
  1222. /package/dist/esm/sdk/{accountIds-C3Ihsd2c.js → accountIds-BzZs7YoX.js} +0 -0
  1223. /package/dist/esm/sdk/{base64-ojm5DKcF.js → base64-CsEj-_bC.js} +0 -0
  1224. /package/dist/esm/sdk/{browser-CsOGMbMy.js → browser-D4wUl_77.js} +0 -0
  1225. /package/dist/esm/sdk/{errors-DfbnsXjO.js → errors-BZO3LF6G.js} +0 -0
  1226. /package/dist/esm/sdk/{events-BJyVcnsn.js → events-DsQJQ0Cl.js} +0 -0
  1227. /package/dist/esm/sdk/{executeWorkerOperation-CrFf3FkL.js → executeWorkerOperation-BInr8RYN.js} +0 -0
  1228. /package/dist/esm/sdk/{jsonRpc-C85RYR0A.js → jsonRpc-DrCYQIM9.js} +0 -0
  1229. /package/dist/esm/sdk/{keccak-zexutGfG.js → keccak-B02Fekdh.js} +0 -0
  1230. /package/dist/esm/sdk/{profileAccountProjection-DHCaMtOu.js → profileAccountProjection-DmmfMood.js} +0 -0
  1231. /package/dist/esm/sdk/{signerSlot-BQ1g5JNV.js → signerSlot-Dto7dObP.js} +0 -0
  1232. /package/dist/esm/sdk/{surface-measurement-reporter-OICExWKE.js → surface-measurement-reporter-IlPOI3QK.js} +0 -0
  1233. /package/dist/public/sdk/{accountIds-C3Ihsd2c.js → accountIds-BzZs7YoX.js} +0 -0
  1234. /package/dist/public/sdk/{base64-ojm5DKcF.js → base64-CsEj-_bC.js} +0 -0
  1235. /package/dist/public/sdk/{browser-CsOGMbMy.js → browser-D4wUl_77.js} +0 -0
  1236. /package/dist/public/sdk/{errors-DfbnsXjO.js → errors-BZO3LF6G.js} +0 -0
  1237. /package/dist/public/sdk/{events-BJyVcnsn.js → events-DsQJQ0Cl.js} +0 -0
  1238. /package/dist/public/sdk/{executeWorkerOperation-CrFf3FkL.js → executeWorkerOperation-BInr8RYN.js} +0 -0
  1239. /package/dist/public/sdk/{jsonRpc-C85RYR0A.js → jsonRpc-DrCYQIM9.js} +0 -0
  1240. /package/dist/public/sdk/{keccak-zexutGfG.js → keccak-B02Fekdh.js} +0 -0
  1241. /package/dist/public/sdk/{profileAccountProjection-DHCaMtOu.js → profileAccountProjection-DmmfMood.js} +0 -0
  1242. /package/dist/public/sdk/{signerSlot-BQ1g5JNV.js → signerSlot-Dto7dObP.js} +0 -0
  1243. /package/dist/public/sdk/{surface-measurement-reporter-OICExWKE.js → surface-measurement-reporter-IlPOI3QK.js} +0 -0
@@ -1,603 +1,94 @@
1
- import { parseMpcMaterialActivationRef, parseWalletAuthMethodId } from "../shared-ts/src/utils/domainIds.js";
2
- import { isObject } from "../shared-ts/src/utils/validation.js";
3
- import { sha256HexUtf8 } from "../shared-ts/src/utils/digests.js";
4
- import { WalletSessionStatusReadScope } from "../core/rpcClients/relayer/walletSessionAuthorizationStatus.js";
5
- import { RegistrationEventPhase, UnlockEventPhase, createRegistrationFlowEvent, createUnlockFlowEvent } from "../core/types/sdkSentEvents.js";
6
- import { readNearProvisioningState } from "../core/signingEngine/flows/registration/nearProvisioningRegistry.js";
7
- import { createServerAllocatedWalletId } from "../shared-ts/src/utils/registrationIds.js";
8
- import { nearAccountBindingFromRaw } from "../shared-ts/src/utils/walletCapabilityBindings.js";
1
+ import { createApplicationPlacementCommands } from "./walletIframe/client/placementCommands.js";
2
+ import { ClientPreferenceState } from "./walletIframe/client/preferenceState.js";
3
+ import { createApplicationPreferences } from "./walletIframe/client/preferences.js";
4
+ import { createApplicationDeviceCommands } from "./walletIframe/client/deviceCommands.js";
5
+ import { createApplicationNearCommands } from "./walletIframe/client/nearCommands.js";
6
+ import { createApplicationEvmFamilyCommands } from "./walletIframe/client/evmFamilyCommands.js";
9
7
  import { resolvePrimaryNearRpcUrl } from "../core/config/chains.js";
10
- import { configuredThresholdEcdsaChainTargets, nearAccountRefFromAccountId, thresholdEcdsaChainTargetFromRequest, thresholdEcdsaChainTargetsEqual, toWalletId, walletSessionRefFromSession } from "../core/signingEngine/interfaces/ecdsaChainTarget.js";
11
- import { parseExactEcdsaSigningLaneIdentity, parseExactEd25519ExportMaterialIdentity } from "../core/signingEngine/session/identity/exactSigningLaneIdentity.js";
12
- import { isRegistrationBenchmarkDiagnosticsEnabled } from "../core/signingEngine/walletCustody/ceremonyDriver.js";
13
- import { isEmailOtpWalletAuthAuthority, parseWalletAuthAuthorityRef } from "../shared-ts/src/utils/walletAuthAuthority.js";
14
- import { IndexedDbEcdsaCapabilityManifestStore } from "../core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js";
15
- import { parseLinkedDeviceApprovalResultV1 } from "../shared-ts/src/device-linking/parsers.js";
16
- import "../shared-ts/src/device-linking/index.js";
17
- import { isUserCancellationError, toError } from "../shared-ts/src/utils/errors.js";
18
- import { cloneAuthenticatorOptions } from "../shared-ts/src/utils/authenticatorOptions.js";
19
- import { walletSessionAuthorizations } from "../core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js";
20
- import { resolveLinkedEcdsaHolderRuntimeV1 } from "../core/signingEngine/session/material/linkedEcdsaHolderRuntime.js";
21
- import { MinimalNearClient } from "../core/rpcClients/near/NearClient.js";
22
- import { resolveAppearanceTheme, resolveThemePalette } from "../core/config/configHelpers.js";
23
8
  import { buildConfigsFromEnv } from "../core/config/defaultConfigs.js";
24
- import { IndexedDBManager } from "../core/indexedDB/index.js";
25
- import { activateEmailOtpWalletAfterUnlock, persistVerifiedEmailOtpAuthorityAfterUnlock, walletAuthAuthorityRefForVerifiedEmailOtpUnlock } from "./operations/authMethods/emailOtp/walletActivation.js";
26
- import { __isWalletIframeHostMode } from "../core/browser/walletIframe/host-mode.js";
27
- import { readUnlockedEd25519ExportRootLinkingCapabilityV1, walletCustodyCeremonyTransportFromWorkerContextV1 } from "../core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js";
28
- import { resolveAmbiguousEcdsaActivationForSelectedAuthMethod } from "./assembly/browserSigningSurfaceAssembly.js";
29
- import { BrowserSigningSurface } from "./signingSurface/BrowserSigningSurface.js";
30
- import { WALLET_IFRAME_TRANSPORT_TIMING_LABEL } from "./operations/registration/registrationTiming.js";
31
- import { resumePendingEcdsaRegistrationFromStoredCommit, resumePendingNearRegistrations } from "./operations/registration/pendingRegistrationRecovery.js";
32
- import { showWalletRecoveryCodesUi } from "./operations/recovery/walletRecoveryCodeBackup.js";
33
- import { pendingWalletRecoveryCodeBackupRepository } from "../core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js";
34
- import { requestEmailOtpChallenge, requestEmailOtpEnrollmentChallenge, resolveGoogleEmailOtpProvider } from "./operations/authMethods/emailOtp/challenge.js";
35
- import { addWalletSigner, registerWallet } from "./operations/registration/registration.js";
36
- import { resumePendingWalletRecoveries } from "./operations/recovery/walletRecoveryCommit.js";
37
- import { addPasskeyWalletAuthMethod } from "./operations/authMethods/passkey/addPasskey.js";
38
- import { revokeWalletAuthMethodOperation } from "./operations/authMethods/revokeAuthMethod.js";
39
- import { addEmailOtpWalletAuthMethod } from "./operations/authMethods/emailOtp/addEmailOtp.js";
9
+ import { MinimalNearClient } from "../core/rpcClients/near/NearClient.js";
10
+ import { requestWalletCustodyEmailOtpChallenge } from "../core/rpcClients/relayer/walletRecoveryRotate.js";
11
+ import { configuredThresholdEcdsaChainTargets } from "../core/signingEngine/interfaces/ecdsaChainTarget.js";
12
+ import { resolveConfiguredChainTarget } from "./publicApi/chainTargets.js";
13
+ import { createApplicationPublicApi } from "./publicApi/createPublicApi.js";
14
+ import { createApplicationEmailOtpCommands } from "./walletIframe/client/emailOtpCommands.js";
15
+ import { createApplicationRegistrationCommands } from "./walletIframe/client/registrationCommands.js";
16
+ import { createApplicationSessionCommands } from "./walletIframe/client/sessionCommands.js";
40
17
  import { WalletIframeCoordinator } from "./walletIframe/coordinator.js";
18
+ import { walletIdFromString } from "../shared-ts/src/utils/registrationIds.js";
41
19
  import { parseWalletIframeExactSessionIdentity } from "./walletIframe/shared/exactSessionState.js";
42
- import { resolveBrowserWorkerWarmupPolicy } from "./assembly/browserWorkerWarmupPolicy.js";
43
- import { configureBrowserIndexedDB } from "./assembly/configureBrowserIndexedDB.js";
44
- import { createBrowserHostPlatformRuntime, createBrowserSigningRuntime } from "./assembly/createBrowserSigningRuntime.js";
45
- import { scheduleRestoredSessionPresignaturePrefills } from "./walletIframe/host/restoredSessionPresignaturePrefill.js";
46
- import { createBrowserSigningStores } from "./assembly/createBrowserSigningStores.js";
47
- import { initializeBrowserSigningRuntime } from "./assembly/initializeBrowserSigningRuntime.js";
48
- import { assertWalletRuntimePostconditions } from "../core/signingEngine/session/postconditions/runtimePostconditions.js";
49
- import { resolveExactLinkedEmailOtpAuthority, resolveLinkedDeviceEmailOtpAuthoritySelection, unlockLinkedDeviceEmailOtpWallet } from "./operations/auth/login.js";
50
- import { getWalletSessionDomain, prefillRouterAbEcdsaDerivationPresignaturePoolDomain } from "./operations/auth/walletAuth.js";
51
- import { LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1 } from "./operations/devices/deviceLinkingHttpTransport.js";
52
- import { createWalletIframeLinkedDeviceManagementPortV1 } from "./publicApi/devices.js";
53
- import { resolveConfiguredChainTarget } from "./publicApi/chainTargets.js";
54
- import { buildNearWalletRegistrationSignerSetSelection, resolvePasskeyRegistrationAccountProvisioning } from "./operations/registration/registrationSignerSet.js";
55
- import { requireTempoFeeTokenPreferenceSigningRequest } from "../core/signingEngine/chains/tempo/feeToken.js";
56
- import { createPublicApi } from "./publicApi/createPublicApi.js";
57
- import { createWalletHostOwnerAuthoritiesV1 } from "./operations/devices/walletHostOwnerAuthority.js";
58
- import { createWalletHostCompositionV1 } from "./operations/devices/walletHostComposition.js";
59
- import { createDeviceLinkingEcdsaSourceContributionMetadataReaderV1, createDeviceLinkingEd25519SourceContributionPortV1, createDeviceLinkingSourceContributionPortV1 } from "../core/signingEngine/workerManager/deviceLinkingSourceContribution.js";
60
- import { beginGoogleEmailOtpWalletAuth } from "./operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js";
61
- import { acknowledgeWalletRecoveryBackup, readWalletRecoveryCodeStatus, requestWalletCustodyEmailOtpChallenge } from "../core/rpcClients/relayer/walletRecoveryRotate.js";
62
- import { rotateWalletRecoveryCodes } from "./operations/recovery/walletRecoveryRotation.js";
20
+ import { deliverNearProvisioningStateChanged, normalizeExportKeypairWithUIInput, normalizeResolveExactKeyExportLaneInput, normalizeResolveExactKeyExportLaneResult, resolveRuntimeAppearance } from "./walletIframe/shared/facadeBoundary.js";
63
21
  //#region src/SeamsWeb/SeamsWeb.ts
64
- async function googleEmailOtpUnlockExecution(provenance, walletAuthMethodId) {
65
- if (provenance.kind === "device_link") return "authority";
66
- const pendingRows = await IndexedDBManager.listPendingWalletRegistrationCommits();
67
- for (const pending of pendingRows) if (pending.operation === "near_provisioning" && pending.signerPlanKind === "near_ed25519_and_evm_family_ecdsa" && pending.walletAuthMethodId === walletAuthMethodId) return "authority";
68
- return "ordinary";
69
- }
70
- function requireWalletAuthMethodId(value) {
71
- const parsed = parseWalletAuthMethodId(value);
72
- if (!parsed.ok) throw new Error("Email OTP unlock returned an invalid wallet auth method id");
73
- return parsed.value;
74
- }
75
- function exactEmailOtpAuthorityRefFromLoginResult(result) {
76
- const authority = result.recovery.verifiedAuthorityProjection.authority;
77
- const authorityRef = parseWalletAuthAuthorityRef({
78
- kind: "wallet_auth_authority_ref",
79
- walletId: authority.walletId,
80
- walletAuthMethodId: result.authorization.record.authMethodId,
81
- authorityDigest: authority.authorityDigestB64u
82
- });
83
- if (!authorityRef) throw new Error("Email OTP unlock returned an invalid authority reference");
84
- return authorityRef;
85
- }
86
- function nowMs() {
87
- return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
88
- }
89
- function createEmailOtpUnlockTimings() {
90
- return {
91
- emailOtpProofVerificationMs: 0,
92
- walletUnlockExchangeMs: 0,
93
- ecdsaMaterialRestoreMs: 0,
94
- signingSessionSealApplyMs: 0,
95
- warmCapabilityPersistenceMs: 0,
96
- activeRuntimeConstructionMs: 0,
97
- emailHashLookupMs: 0,
98
- workerUnlockAndSessionBootstrapMs: 0,
99
- walletStateActivationMs: 0,
100
- runtimePostconditionMs: 0,
101
- walletIframeRoundTripMs: 0
102
- };
103
- }
104
- function recordEmailOtpUnlockTiming(timings, bucket, startedAtMs) {
105
- addEmailOtpUnlockTiming(timings, bucket, nowMs() - startedAtMs);
106
- }
107
- function recordEmailOtpUnlockElapsedTiming(timings, bucket, durationMs) {
108
- addEmailOtpUnlockTiming(timings, bucket, durationMs);
109
- }
110
- function addEmailOtpUnlockTiming(timings, bucket, durationMs) {
111
- const deltaMs = Math.max(0, Math.round(durationMs));
112
- timings[bucket] += deltaMs;
113
- if (!isEmailOtpUnlockDiagnosticsEnabled()) return;
114
- console.info("[EmailOtpUnlock] timing", {
115
- bucket,
116
- deltaMs,
117
- accumulatedMs: timings[bucket]
118
- });
119
- }
120
- function isEmailOtpUnlockDiagnosticsEnabled() {
121
- return Reflect.get(globalThis, "__SEAMS_EMAIL_OTP_UNLOCK_DIAGNOSTICS") === true;
122
- }
123
- function logEmailOtpUnlockTimingSummary(input) {
124
- if (!isEmailOtpUnlockDiagnosticsEnabled()) return;
125
- const topBuckets = Object.entries(input.timings).filter(([, durationMs]) => durationMs > 0).sort((left, right) => right[1] - left[1]).slice(0, 5).map(([bucket, durationMs]) => ({
126
- bucket,
127
- durationMs
128
- }));
129
- const errorMessage = input.error instanceof Error ? input.error.message : input.error ? String(input.error) : "";
130
- const summary = {
131
- kind: "email_otp_unlock_timing_summary_v1",
132
- status: input.status,
133
- mode: input.mode,
134
- walletId: input.walletId,
135
- prewarm: input.prewarm,
136
- ...input.chainTarget ? { chainTarget: input.chainTarget } : {},
137
- totalElapsedMs: Math.max(0, Math.round(nowMs() - input.startedAtMs)),
138
- timings: input.timings,
139
- topBuckets,
140
- ...errorMessage ? { errorMessage } : {}
141
- };
142
- console.info("[EmailOtpUnlock] timing summary", summary);
143
- }
144
- function emailOtpUnlockPrewarmScopeFromBinding(nearAccountBinding) {
145
- if (!nearAccountBinding) return { kind: "global" };
146
- return {
147
- kind: "near_account_bound",
148
- walletId: String(nearAccountBinding.wallet.walletId),
149
- nearAccountId: String(nearAccountBinding.nearAccountId)
150
- };
151
- }
152
- function emailOtpUnlockPrewarmRequestFromOptions(opts) {
153
- if (opts?.iframe) return { kind: "iframe_and_local_resources" };
154
- if (opts?.workers) return { kind: "local_worker_resources" };
155
- return null;
156
- }
157
- function emailOtpUnlockPrewarmSnapshot(args) {
158
- if (args.record.kind === "none") return { kind: "not_prewarmed" };
159
- const scope = args.record.scope;
160
- return {
161
- kind: "prewarm_attempted",
162
- status: args.record.status,
163
- completedAtMs: args.record.completedAtMs,
164
- ageMs: Math.max(0, Math.round(args.nowMs - args.record.completedAtMs)),
165
- request: args.record.request,
166
- scope,
167
- walletMatches: scope.kind === "global" || scope.walletId === args.walletId
168
- };
169
- }
170
- function emailOtpUnlockActiveRuntimeState(inventory) {
171
- return {
172
- kind: "email_otp_unlock_active_runtime_state_v1",
173
- inventory
174
- };
175
- }
176
- function buildEmailOtpEcdsaUnlockActivationPlan(args) {
177
- if (args.result.authorization.record.walletId !== args.walletSession.walletId) throw new Error("Email OTP unlock authorization does not match the wallet session");
178
- return {
179
- kind: "email_otp_unlock_activation_plan_v1",
180
- mode: "evm_family_ecdsa",
181
- activeAuthorization: args.result.authorization,
182
- authorizations: args.result.authorizations,
183
- runtimeState: emailOtpUnlockActiveRuntimeState(args.runtimeInventory)
184
- };
185
- }
186
- function logEmailOtpUnlockActivationPlan(plan) {
187
- if (!isEmailOtpUnlockDiagnosticsEnabled()) return;
188
- console.info("[EmailOtpUnlock] activation plan constructed", {
189
- kind: plan.kind,
190
- mode: plan.mode,
191
- walletId: plan.activeAuthorization.record.walletId,
192
- authorityDigest: plan.activeAuthorization.record.authorityDigestB64u,
193
- walletSessionIds: plan.authorizations.map((authorization) => authorization.operationCredential.walletSessionId),
194
- runtimeTargetCount: plan.runtimeState.inventory.ecdsaByTarget.size
195
- });
196
- }
197
- function nearAccountBindingKindFromId(nearAccountId) {
198
- return nearAccountId.length === 64 && /^[0-9a-f]+$/i.test(nearAccountId) ? "implicit_near_account" : "named_near_account";
199
- }
200
- function requireNearAccountBindingForOperation(args) {
201
- const walletId = String(args.walletId || "").trim();
202
- const nearAccountId = String(args.nearAccountId || "").trim();
203
- if (!walletId || !nearAccountId) throw new Error(`[SeamsWeb] ${args.operation} requires walletId and nearAccountId`);
204
- const parsed = nearAccountBindingFromRaw({
205
- kind: nearAccountBindingKindFromId(nearAccountId),
206
- wallet: { walletId },
207
- nearAccountId
208
- });
209
- if (!parsed.ok) throw new Error(`[SeamsWeb] ${args.operation} requires a valid NEAR account binding`);
210
- return parsed.value;
211
- }
212
- function resolvePrewarmNearAccountBinding(opts) {
213
- const walletId = String(opts?.walletId || "").trim();
214
- const nearAccountId = String(opts?.nearAccountId || "").trim();
215
- if (!walletId && !nearAccountId) return void 0;
216
- return requireNearAccountBindingForOperation({
217
- walletId,
218
- nearAccountId,
219
- operation: "prewarm"
220
- });
221
- }
222
- function requireConcreteEcdsaChainTarget(value, operation) {
223
- if (!isObject(value)) throw new Error(`[SeamsWeb] ${operation} requires a concrete ECDSA chainTarget`);
224
- return thresholdEcdsaChainTargetFromRequest(value);
225
- }
226
- function normalizeResolveExactKeyExportLaneInput(input) {
227
- switch (input.kind) {
228
- case "ecdsa": return {
229
- kind: "ecdsa",
230
- walletSession: walletSessionRefFromSession(input.walletSession),
231
- chainTarget: thresholdEcdsaChainTargetFromRequest(input.chainTarget)
232
- };
233
- case "ed25519": return {
234
- kind: "ed25519",
235
- walletSession: walletSessionRefFromSession(input.walletSession),
236
- nearAccount: nearAccountRefFromAccountId(input.nearAccount.accountId)
237
- };
238
- }
239
- }
240
- function normalizeResolveExactKeyExportLaneResult(result) {
241
- switch (result.kind) {
242
- case "relink_required": return {
243
- kind: "relink_required",
244
- reason: result.reason
245
- };
246
- case "ecdsa": return {
247
- kind: "ecdsa",
248
- laneIdentity: parseExactEcdsaSigningLaneIdentity(result.laneIdentity)
249
- };
250
- case "ed25519": {
251
- const materialActivation = parseMpcMaterialActivationRef(result.materialActivation);
252
- if (!materialActivation.ok) throw new Error(materialActivation.error.message);
253
- return {
254
- kind: "ed25519",
255
- laneIdentity: parseExactEd25519ExportMaterialIdentity(result.laneIdentity),
256
- materialActivation: materialActivation.value
257
- };
258
- }
259
- }
260
- }
261
- function normalizeExportKeypairWithUIInput(input, theme) {
262
- const resolvedOptions = {
263
- ...input.options,
264
- theme: input.options.theme ?? theme
265
- };
266
- switch (input.kind) {
267
- case "ecdsa": {
268
- const laneIdentity = parseExactEcdsaSigningLaneIdentity(input.laneIdentity);
269
- if (String(laneIdentity.signer.walletId) !== String(input.walletSession.walletId)) throw new Error("[SeamsWeb] key export lane wallet does not match wallet session");
270
- if (!thresholdEcdsaChainTargetsEqual(laneIdentity.signer.chainTarget, input.chainTarget)) throw new Error("[SeamsWeb] key export lane chain target does not match request target");
271
- return {
272
- kind: "ecdsa",
273
- chainTarget: input.chainTarget,
274
- walletSession: input.walletSession,
275
- laneIdentity,
276
- options: resolvedOptions
277
- };
278
- }
279
- case "ed25519": {
280
- const laneIdentity = parseExactEd25519ExportMaterialIdentity(input.laneIdentity);
281
- const materialActivation = parseMpcMaterialActivationRef(input.materialActivation);
282
- if (!materialActivation.ok) throw new Error(materialActivation.error.message);
283
- if (String(laneIdentity.signer.account.wallet.walletId) !== String(input.walletSession.walletId)) throw new Error("[SeamsWeb] Ed25519 export lane wallet does not match wallet session");
284
- if (String(laneIdentity.signer.account.nearAccountId) !== String(input.nearAccount.accountId)) throw new Error("[SeamsWeb] Ed25519 export lane does not match the NEAR account");
285
- return {
286
- kind: "ed25519",
287
- nearAccount: nearAccountRefFromAccountId(input.nearAccount.accountId),
288
- walletSession: input.walletSession,
289
- laneIdentity,
290
- materialActivation: materialActivation.value,
291
- options: resolvedOptions
292
- };
293
- }
294
- }
295
- }
296
- function resolveRuntimeAppearance(current, input) {
297
- const rawInput = input;
298
- return {
299
- theme: resolveAppearanceTheme({
300
- value: rawInput.theme,
301
- fallback: current.theme,
302
- legacyTokens: rawInput.tokens
303
- }),
304
- palette: resolveThemePalette({
305
- value: rawInput.palette,
306
- fallback: current.palette
307
- })
308
- };
309
- }
310
- function resolveSeamsWebRuntimeMode(internalOptions) {
311
- if (internalOptions?.kind === "wallet_host") return "wallet_host";
312
- return "application";
313
- }
314
- function resolveSeamsWebLifecycleEventSource(args) {
315
- switch (args.mode) {
316
- case "wallet_host": return {
317
- kind: "signing_engine",
318
- source: args.signingEngine
319
- };
320
- case "application": return {
321
- kind: "wallet_iframe",
322
- source: args.walletIframe
323
- };
324
- }
325
- }
326
- function subscribeToSeamsWebLifecycleEvents(eventSource, listener) {
327
- switch (eventSource.kind) {
328
- case "signing_engine":
329
- case "wallet_iframe": return eventSource.source.onSdkLifecycleEvent(listener);
330
- }
331
- }
332
- function deliverNearProvisioningStateChanged(listener, event) {
333
- if (event.event === "registration.near_provisioning_changed") listener(event);
334
- }
335
- function reportWalletRecoveryStartupResult(result) {
336
- switch (result.kind) {
337
- case "completed": return;
338
- case "pending":
339
- console.warn("[SeamsWeb] pending wallet recovery replay remains pending:", result.recoveryOperationId, result.failure);
340
- return;
341
- case "discarded":
342
- console.warn("[SeamsWeb] pending wallet recovery was refused and discarded:", result.recoveryOperationId);
343
- return;
344
- case "corrupt":
345
- console.warn("[SeamsWeb] pending wallet recovery replay record is corrupt:", result.recoveryOperationId);
346
- return;
347
- }
348
- }
349
- const ecdsaCapabilityManifestStore = new IndexedDbEcdsaCapabilityManifestStore();
350
- function createSeamsWebDeviceDomainV1(args) {
351
- switch (args.mode) {
352
- case "application": return {
353
- domain: {
354
- kind: "iframe",
355
- linkedDeviceManagement: createWalletIframeLinkedDeviceManagementPortV1({ walletIframe: args.walletIframe })
356
- },
357
- resumePendingAcknowledgementsV1: noopDeviceLinkingAcknowledgementResumeV1,
358
- dispose: noopDeviceLinkingDisposeV1
359
- };
360
- case "wallet_host": {
361
- const composition = createWalletHostCompositionV1({
362
- authenticator: args.platform.authenticator,
363
- http: args.platform.http,
364
- relayerUrl: String(args.configs.network.relayer?.url || "").trim(),
365
- publishableKey: args.configs.registration.publishableKey,
366
- projectEnvironmentId: args.configs.registration.projectEnvironmentId,
367
- ownerRequest: args.ownerAuthorities.ownerRequest,
368
- ownerApprovalUpdates: createWalletHostOwnerApprovalUpdatesV1({
369
- request: args.ownerAuthorities.ownerRequest,
370
- pollIntervalMs: 1e3
371
- }),
372
- ownerAuthorization: args.ownerAuthorities.ownerAuthorization,
373
- sourceContribution: args.sourceContribution,
374
- custodyCeremonyTransport: walletCustodyCeremonyTransportFromWorkerContextV1(args.signingEngine.getSignerWorkerContext()),
375
- managementRequest: args.ownerAuthorities.managementRequest,
376
- nowMs: Date.now,
377
- pollIntervalMs: 1e3
378
- });
379
- return {
380
- domain: {
381
- kind: "direct",
382
- linkedDeviceManagement: composition.linkedDeviceManagement,
383
- deviceLinkingPorts: composition.deviceLinkingPorts
384
- },
385
- resumePendingAcknowledgementsV1: composition.deviceLinkingPorts.resumePendingAcknowledgementsV1,
386
- dispose: composition.dispose
387
- };
388
- }
389
- }
390
- }
391
- function noopDeviceLinkingDisposeV1() {}
392
- async function noopDeviceLinkingAcknowledgementResumeV1() {}
393
- function resumeDeviceLinkingAcknowledgementsInBackgroundV1(resume) {
394
- resume().catch(reportDeviceLinkingAcknowledgementResumeFailureV1);
395
- }
396
- function reportDeviceLinkingAcknowledgementResumeFailureV1(error) {
397
- console.warn("[SeamsWeb] pending linked-device acknowledgement replay failed:", error instanceof Error ? error.message : String(error || "unknown error"));
398
- }
399
- function createWalletHostOwnerApprovalUpdatesV1(args) {
400
- return {
401
- getApprovalV1: async (input) => await requestWalletHostApprovalV1(args.request, input),
402
- subscribeApprovalV1: async (input) => createWalletHostApprovalSubscriptionV1({
403
- ...args,
404
- input
405
- })
406
- };
407
- }
408
- function createWalletHostEcdsaSourceContributionMetadataReaderV1(args) {
409
- return createDeviceLinkingEcdsaSourceContributionMetadataReaderV1({
410
- readActiveEcdsaCapabilityManifestV1: async ({ materialActivation }) => {
411
- const authentication = args.signingEngine.readWalletAuthenticationState();
412
- if (authentication.kind !== "authenticated") throw new Error("ECDSA source metadata requires an authenticated wallet");
413
- let lookup = await ecdsaCapabilityManifestStore.lookupByMaterialActivation({
414
- walletId: authentication.walletId,
415
- materialActivation
416
- });
417
- if (lookup.kind === "ambiguous_authority") lookup = await resolveAmbiguousEcdsaActivationForSelectedAuthMethod({
418
- walletId: authentication.walletId,
419
- materialActivation,
420
- authorities: lookup.authorities
421
- });
422
- if (lookup.kind !== "active") throw new Error(`ECDSA source metadata manifest is ${lookup.kind}`);
423
- return lookup.manifest;
424
- },
425
- readLinkedEcdsaHolderV1: ({ materialActivation }) => {
426
- const authentication = args.signingEngine.readWalletAuthenticationState();
427
- if (authentication.kind !== "authenticated") return null;
428
- return resolveLinkedEcdsaHolderRuntimeV1({
429
- walletId: authentication.walletId,
430
- materialActivation
431
- });
432
- }
433
- });
434
- }
435
- function createWalletHostDeviceDomainConstructionV1(args) {
436
- const relayerUrl = String(args.configs.network.relayer?.url || "").trim();
437
- const platform = createBrowserHostPlatformRuntime(args.signingEngine.getSignerWorkerContext());
438
- const ownerAuthorities = createWalletHostOwnerAuthoritiesV1({
439
- http: platform.http,
440
- relayerUrl,
441
- walletSessions: walletSessionAuthorizations,
442
- resolveSelectedWalletAuthority: IndexedDBManager.resolveSelectedWalletAuthority.bind(IndexedDBManager),
443
- readWalletAuthenticationState: args.signingEngine.readWalletAuthenticationState.bind(args.signingEngine),
444
- readUnlockedEd25519ExportRootCapabilityV1: readUnlockedEd25519ExportRootLinkingCapabilityV1
445
- });
446
- return {
447
- platform,
448
- ownerAuthorities,
449
- sourceContribution: createWalletHostDeviceLinkingSourceContributionPortV1({
450
- signingEngine: args.signingEngine,
451
- ownerRequest: ownerAuthorities.ownerRequest,
452
- readEcdsaMetadataV1: createWalletHostEcdsaSourceContributionMetadataReaderV1({ signingEngine: args.signingEngine })
453
- })
454
- };
455
- }
456
- function createWalletHostDeviceLinkingSourceContributionPortV1(args) {
457
- const workerContext = args.signingEngine.getSignerWorkerContext();
458
- return createDeviceLinkingSourceContributionPortV1({
459
- workerContext,
460
- ed25519: createDeviceLinkingEd25519SourceContributionPortV1({
461
- workerContext,
462
- executeSourcePreservingV1: async ({ linkSessionId, targetRequestJson, authentication }) => {
463
- const response = await args.ownerRequest.requestOwnerV1({
464
- method: "POST",
465
- canonicalPath: `${LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1}/${String(linkSessionId)}/source-contribution/execute`,
466
- body: JSON.parse(targetRequestJson),
467
- authentication
468
- });
469
- if (response.status < 200 || response.status >= 300) throw new Error(`Wallet-host Ed25519 source-preserving request failed with HTTP ${response.status}`);
470
- return response.body;
471
- }
472
- }),
473
- readEcdsaMetadataV1: args.readEcdsaMetadataV1
474
- });
475
- }
476
- async function requestWalletHostApprovalV1(request, input) {
477
- const response = await request.requestOwnerV1({
478
- method: "GET",
479
- canonicalPath: `${LINKED_DEVICE_SESSION_HTTP_BASE_PATH_V1}/${String(input.linkSessionId)}/approval`,
480
- authentication: input.authentication
481
- });
482
- if (response.status < 200 || response.status >= 300) throw new Error(`Wallet-host approval request failed with HTTP ${response.status}`);
483
- return parseLinkedDeviceApprovalResultV1(response.body);
484
- }
485
- function createWalletHostApprovalSubscriptionV1(args) {
486
- let closed = false;
487
- let timer = null;
488
- const poll = async () => {
489
- if (closed) return;
490
- try {
491
- const result = await requestWalletHostApprovalV1(args.request, args.input);
492
- if (!closed) args.input.onResult(result);
493
- } catch {}
494
- if (!closed) timer = setTimeout(() => void poll(), args.pollIntervalMs);
495
- };
496
- poll();
497
- return { close: () => {
498
- closed = true;
499
- if (timer) clearTimeout(timer);
500
- timer = null;
501
- } };
502
- }
503
22
  /**
504
23
  * Main SeamsWeb class that provides framework-agnostic passkey operations
505
24
  * with flexible event-based callbacks for custom UX implementation
506
25
  */
507
26
  var SeamsWeb = class {
508
- constructor(configs, nearClient, internalOptions) {
509
- this.emailOtpUnlockPrewarmRecord = { kind: "none" };
510
- this.configs = buildConfigsFromEnv(configs, { ...internalOptions?.kind === "wallet_host" ? { allowDirectWalletMode: "wallet_host" } : {} });
511
- configureBrowserIndexedDB(this.configs);
27
+ constructor(configs, nearClient) {
28
+ this.preferenceState = new ClientPreferenceState();
29
+ this.configs = buildConfigsFromEnv(configs);
512
30
  this.nearClient = nearClient || new MinimalNearClient(resolvePrimaryNearRpcUrl(this.configs.network.chains));
513
- const browserSigningStores = createBrowserSigningStores(IndexedDBManager);
514
- const browserSigningSurface = new BrowserSigningSurface(this.configs, this.nearClient, {
515
- managerStores: browserSigningStores.managerStores,
516
- signingEngineStores: browserSigningStores.signingEngineStores,
517
- sealedSigningSessionStore: browserSigningStores.sealedSigningSessionStore,
518
- ed25519YaoPublicCapabilityReferences: browserSigningStores.ed25519YaoPublicCapabilityReferences,
519
- createRuntime: createBrowserSigningRuntime,
520
- initializeRuntime: initializeBrowserSigningRuntime,
521
- workerWarmupPolicy: resolveBrowserWorkerWarmupPolicy(this.configs)
522
- });
523
- this.signingEngine = browserSigningSurface;
524
31
  this.appearance = this.configs.ui.appearance;
525
- this.theme = this.appearance.theme.mode;
526
- try {
527
- this.signingEngine.setAppearance(this.appearance);
528
- } catch {}
529
- const userPreferences = this.signingEngine.getUserPreferences();
32
+ this.config = {
33
+ setTheme: this.updateTheme.bind(this),
34
+ setAppearance: this.updateAppearance.bind(this),
35
+ chainTarget: resolveConfiguredChainTarget.bind(null, this.configs.network.chains),
36
+ configuredChainTargets: configuredThresholdEcdsaChainTargets.bind(null, this.configs.network.chains)
37
+ };
38
+ const userPreferences = this.preferenceState;
530
39
  this.walletIframe = new WalletIframeCoordinator({
531
40
  configs: this.configs,
532
- signingEngine: this.signingEngine,
533
41
  userPreferences,
534
- getAppearance: () => this.appearance
535
- });
536
- const deviceDomainMode = resolveSeamsWebRuntimeMode(internalOptions);
537
- const deviceDomain = deviceDomainMode === "wallet_host" ? createSeamsWebDeviceDomainV1({
538
- mode: deviceDomainMode,
539
- configs: this.configs,
540
- signingEngine: browserSigningSurface,
541
- walletIframe: this.walletIframe,
542
- ...createWalletHostDeviceDomainConstructionV1({
543
- configs: this.configs,
544
- signingEngine: browserSigningSurface
545
- })
546
- }) : createSeamsWebDeviceDomainV1({
547
- mode: deviceDomainMode,
548
- configs: this.configs,
549
- signingEngine: browserSigningSurface,
550
- walletIframe: this.walletIframe
42
+ getAppearance: this.getAppearance.bind(this)
551
43
  });
552
- this.deviceLinkingDispose = deviceDomain.dispose;
553
- this.resumePendingAcknowledgementsV1 = deviceDomain.resumePendingAcknowledgementsV1;
554
- this.lifecycleEventSource = resolveSeamsWebLifecycleEventSource({
555
- mode: resolveSeamsWebRuntimeMode(internalOptions),
556
- signingEngine: this.signingEngine,
557
- walletIframe: this.walletIframe
558
- });
559
- const publicApi = createPublicApi({
560
- signingEngine: this.signingEngine,
44
+ this.connection = {
45
+ connect: this.walletIframe.connect.bind(this.walletIframe),
46
+ getState: this.walletIframe.getConnectionState.bind(this.walletIframe),
47
+ onChange: this.walletIframe.onConnectionChange.bind(this.walletIframe),
48
+ dispose: this.disposeClient.bind(this)
49
+ };
50
+ this.events = { subscribe: this.walletIframe.onSdkLifecycleEvent.bind(this.walletIframe) };
51
+ this.authMenu = {
52
+ open: this.walletIframe.openHostedAuthMenu.bind(this.walletIframe),
53
+ cancel: this.walletIframe.cancelHostedAuthMenu.bind(this.walletIframe),
54
+ onExternalAuthRequest: this.walletIframe.onHostedAuthMenuExternalAuthRequest.bind(this.walletIframe),
55
+ resolveExternalAuth: this.walletIframe.resolveHostedAuthMenuExternalAuth.bind(this.walletIframe)
56
+ };
57
+ this.placement = createApplicationPlacementCommands(this.walletIframe);
58
+ const preferences = createApplicationPreferences(userPreferences, this.walletIframe);
59
+ this.disposePreferences = preferences.dispose;
60
+ const deviceDomain = createApplicationDeviceCommands(this.walletIframe);
61
+ const registrationCommands = createApplicationRegistrationCommands(this.walletIframe);
62
+ const sessionCommands = createApplicationSessionCommands(this.walletIframe);
63
+ const emailOtpCommands = createApplicationEmailOtpCommands(this.walletIframe);
64
+ const publicApi = createApplicationPublicApi({
65
+ createNearCommands: createApplicationNearCommands.bind(null, this.walletIframe, preferences.beforeSigning),
66
+ createEvmFamilyCommands: createApplicationEvmFamilyCommands.bind(null, this.walletIframe, preferences.beforeSigning),
561
67
  nearClient: this.nearClient,
562
68
  configs: this.configs,
563
- getTheme: () => this.theme,
564
- userPreferences,
565
- getWalletIframe: () => this.walletIframe,
566
- getWalletAuthDeps: () => this.getWalletAuthDeps(),
69
+ preferences: preferences.capability,
70
+ getWalletIframe: this.getWalletIframe.bind(this),
567
71
  auth: {
568
- requestEmailOtpChallenge: async (args) => await this.requestEmailOtpChallengeDomain(args),
569
- requestEmailOtpSigningSessionChallenge: async (args) => await this.requestEmailOtpSigningSessionChallengeDomain(args),
570
- refreshEmailOtpSigningSession: async (args) => await this.refreshEmailOtpSigningSessionDomain(args),
571
- loginWithEmailOtpEcdsaCapability: async (args) => await this.loginWithEmailOtpEcdsaCapabilityDomain(args),
572
- unlockAddedEmailOtpWallet: async (args) => await this.loginWithLinkedEmailOtpWalletDomain(args),
573
- beginGoogleEmailOtpWalletAuth: async (args) => await this.beginGoogleEmailOtpWalletAuthDomain(args)
72
+ ...sessionCommands,
73
+ ...emailOtpCommands
574
74
  },
575
75
  registration: {
576
- resumePendingEcdsaRegistration: async (args) => await this.resumePendingEcdsaRegistrationDomain(args),
577
- getNearProvisioningState: async (args) => await this.getNearProvisioningStateDomain(args),
578
- onNearProvisioningStateChanged: (listener) => subscribeToSeamsWebLifecycleEvents(this.lifecycleEventSource, deliverNearProvisioningStateChanged.bind(null, listener)),
579
- addWalletSigner: async (args) => await this.registerWalletSignerDomain(args),
580
- addPasskey: async (args) => await this.addPasskeyDomain(args),
581
- addEmailOtp: async (args) => await this.addEmailOtpDomain(args),
582
- revokeAuthMethod: async (args) => await this.revokeAuthMethodDomain(args),
583
- registerWallet: async (args) => await this.registerWalletDomain(args),
584
- registerPasskey: async (options) => await this.registerPasskeyDomain(options),
585
- requestEmailOtpEnrollmentChallenge: async (args) => await this.requestEmailOtpEnrollmentChallengeDomain(args),
586
- enrollEmailOtp: async (args) => await this.enrollEmailOtpDomain(args)
76
+ ...registrationCommands,
77
+ onNearAccountChange: this.onNearAccountChange.bind(this)
587
78
  },
588
79
  recovery: {
589
- getWalletRecoveryCodeStatus: async (args) => await this.getWalletRecoveryCodeStatusDomain(args),
590
- acknowledgeWalletRecoveryCodeBackup: async (args) => await this.acknowledgeWalletRecoveryCodeBackupDomain(args),
591
- requestWalletCustodyEmailOtpChallenge: async (args) => await this.requestWalletCustodyEmailOtpChallengeDomain(args),
592
- rotateWalletRecoveryCodes: async (args) => await this.rotateWalletRecoveryCodesDomain(args)
80
+ syncAccount: this.syncAccountDomain.bind(this),
81
+ getCodeStatus: this.getCodeStatusDomain.bind(this),
82
+ confirmBackup: this.confirmBackupDomain.bind(this),
83
+ requestWalletCustodyEmailOtpChallenge: this.requestWalletCustodyEmailOtpChallengeDomain.bind(this),
84
+ rotateCodes: this.rotateCodesDomain.bind(this)
593
85
  },
594
- devices: { ...deviceDomain.domain },
86
+ devices: { ...deviceDomain },
595
87
  keys: {
596
- resolveExactKeyExportLane: async (input) => await this.resolveExactKeyExportLaneDomain(input),
597
- exportKeypairWithUI: async (input) => await this.exportKeypairWithUIDomain(input)
88
+ resolveExactKeyExportLane: this.resolveExactKeyExportLaneDomain.bind(this),
89
+ exportKeypairWithUI: this.exportKeypairWithUIDomain.bind(this)
598
90
  }
599
91
  });
600
- this.walletIframeControls = publicApi.walletIframeControls;
601
92
  this.preferences = publicApi.preferences;
602
93
  this.auth = publicApi.auth;
603
94
  this.registration = publicApi.registration;
@@ -607,881 +98,68 @@ var SeamsWeb = class {
607
98
  this.near = publicApi.near;
608
99
  this.tempo = publicApi.tempo;
609
100
  this.evm = publicApi.evm;
610
- this.resumePendingRegistrationOnStartup();
611
- resumeDeviceLinkingAcknowledgementsInBackgroundV1(deviceDomain.resumePendingAcknowledgementsV1);
612
- }
613
- /**
614
- * Initialize the hidden wallet service iframe client (optional) and warm critical resources.
615
- * Always warms local resources; initializes iframe when wallet mode is `iframe`.
616
- * Idempotent and safe to call multiple times.
617
- */
618
- async initWalletIframe(walletId) {
619
- return await this.walletIframe.init(walletId);
620
101
  }
621
102
  async getWalletIframeExactSessionState() {
622
103
  return await this.walletIframe.getExactSessionState();
623
104
  }
624
- /** @internal One wallet-host restore owns all configured-chain prefills. */
625
- async prefillRestoredWalletSession(state) {
626
- await scheduleRestoredSessionPresignaturePrefills({
627
- state,
628
- chainTargets: this.configuredChainTargets(),
629
- prefill: prefillRouterAbEcdsaDerivationPresignaturePoolDomain.bind(null, this.getWalletAuthDeps())
630
- });
631
- }
632
- async openHostedAuthMenu(request, anchorElement) {
633
- return await this.walletIframe.openHostedAuthMenu(request, anchorElement);
634
- }
635
- async cancelHostedAuthMenu(args) {
636
- await this.walletIframe.cancelHostedAuthMenu(args);
637
- }
638
- onHostedAuthMenuExternalAuthRequest(listener) {
639
- return this.walletIframe.onHostedAuthMenuExternalAuthRequest(listener);
640
- }
641
- onHostedAuthMenuDemoEmailOtpDelivery(listener) {
642
- return this.walletIframe.onHostedAuthMenuDemoEmailOtpDelivery(listener);
643
- }
644
- async resolveHostedAuthMenuExternalAuth(resolution) {
645
- await this.walletIframe.resolveHostedAuthMenuExternalAuth(resolution);
646
- }
647
105
  async lockWalletIframeExactSession(identity) {
648
106
  const parsedIdentity = parseWalletIframeExactSessionIdentity(identity);
649
107
  return await this.walletIframe.lockExactSession(parsedIdentity);
650
108
  }
651
- /** True when the wallet iframe client is connected and ready. */
652
- isWalletIframeReady() {
653
- return this.walletIframeControls.isWalletIframeReady();
654
- }
655
- /** Subscribe to wallet iframe ready state transitions. */
656
- onWalletIframeReady(listener) {
657
- return this.walletIframeControls.onWalletIframeReady(listener);
658
- }
659
- /** Subscribe to wallet-host login status updates. */
660
- onWalletIframeLoginStatusChanged(listener) {
661
- return this.walletIframeControls.onWalletIframeLoginStatusChanged(listener);
662
- }
663
- /** Subscribe to typed lifecycle events emitted by the wallet boundary. */
664
- onSdkLifecycleEvent(listener) {
665
- return subscribeToSeamsWebLifecycleEvents(this.lifecycleEventSource, listener);
666
- }
667
- /** Subscribe to wallet-host preference updates. */
668
- onWalletIframePreferencesChanged(listener) {
669
- return this.walletIframeControls.onWalletIframePreferencesChanged(listener);
670
- }
671
- getContext() {
672
- return {
673
- signingEngine: this.signingEngine,
674
- nearClient: this.nearClient,
675
- configs: this.configs,
676
- theme: this.theme,
677
- resumePendingAcknowledgementsV1: this.resumePendingAcknowledgementsAfterExactUnlockV1.bind(this)
678
- };
679
- }
680
- resumePendingAcknowledgementsAfterExactUnlockV1() {
681
- resumeDeviceLinkingAcknowledgementsInBackgroundV1(this.resumePendingAcknowledgementsV1);
682
- }
683
- async resumePendingRegistrationOnStartup() {
684
- if (IndexedDBManager.isDisabled()) return;
685
- const relayerUrl = String(this.configs.network.relayer?.url || "").trim();
686
- if (!relayerUrl) return;
687
- try {
688
- const results = await resumePendingNearRegistrations({ relayerUrl });
689
- for (const result of results) if (result.kind === "failed") console.warn("[SeamsWeb] pending registration replay remains pending:", result.registrationCeremonyId, result.error);
690
- } catch (error) {
691
- console.warn("[SeamsWeb] pending registration startup replay failed:", error instanceof Error ? error.message : String(error || "unknown error"));
692
- }
109
+ disposeClient() {
693
110
  try {
694
- const recoveryResults = await resumePendingWalletRecoveries({ relayUrl: relayerUrl });
695
- for (const result of recoveryResults) reportWalletRecoveryStartupResult(result);
696
- } catch (error) {
697
- console.warn("[SeamsWeb] pending wallet recovery startup replay failed:", error instanceof Error ? error.message : String(error || "unknown error"));
111
+ this.walletIframe.dispose();
112
+ } finally {
113
+ this.disposePreferences();
698
114
  }
699
115
  }
700
- dispose() {
701
- this.deviceLinkingDispose();
702
- this.walletIframe.dispose();
703
- this.signingEngine.dispose();
116
+ get theme() {
117
+ return this.appearance.theme.mode;
704
118
  }
705
- getWalletAuthDeps() {
706
- return {
707
- getContext: () => this.getContext(),
708
- walletIframe: this.walletIframe,
709
- signingEngine: this.signingEngine,
710
- nearClient: this.nearClient,
711
- initWalletIframe: async (walletId) => {
712
- return await this.initWalletIframe(walletId);
713
- }
714
- };
715
- }
716
- setTheme(next) {
119
+ updateTheme(next) {
717
120
  if (next !== "light" && next !== "dark") return;
718
- this.setAppearance({ theme: {
121
+ this.updateAppearance({ theme: {
719
122
  ...this.appearance.theme,
720
123
  mode: next
721
124
  } });
722
125
  }
723
126
  /**
724
- * Resolve one configured ECDSA chain target by network slug, chain id, or
725
- * family — the value every EVM-family signing and export call takes.
726
- *
727
- * Throws when the selector matches no configured chain, or more than one.
728
- * Every configured chain is named in the error, so an ambiguous selector is
729
- * a clear failure rather than a silent first-match pick.
730
- *
731
- * @example seams.chainTarget('tempo-testnet')
732
- */
733
- chainTarget(selector) {
734
- return resolveConfiguredChainTarget(this.configs.network.chains, selector);
735
- }
736
- /** Every ECDSA chain target this client is configured for. */
737
- configuredChainTargets() {
738
- return configuredThresholdEcdsaChainTargets(this.configs.network.chains);
739
- }
740
- /**
741
127
  * Update resolved appearance at runtime.
742
- * This is the canonical internal propagation path for local signing UI,
743
- * wallet-host documents, and app-origin wallet iframe mode. Appearance is
128
+ * Forward appearance to the wallet-host document. Appearance is
744
129
  * excluded from the runtime-reset fingerprint, so warm signing-session state
745
130
  * is preserved. Fire-and-forget; never throws.
746
131
  */
747
- setAppearance(appearance) {
132
+ updateAppearance(appearance) {
748
133
  const normalizedAppearance = resolveRuntimeAppearance(this.appearance, appearance);
749
134
  this.appearance = normalizedAppearance;
750
- this.theme = normalizedAppearance.theme.mode;
751
- try {
752
- this.signingEngine.setAppearance(normalizedAppearance);
753
- } catch {}
754
- if (__isWalletIframeHostMode()) try {
755
- document.documentElement.setAttribute("data-seams-theme", this.theme);
756
- } catch {}
757
- if (this.walletIframe.shouldUseWalletIframe()) (async () => {
758
- try {
759
- await (await this.walletIframe.requireRouter()).setAppearance(normalizedAppearance);
760
- } catch {}
761
- })();
762
- }
763
- setWalletIframeSurfaceMeasurementBinding(binding) {
764
- this.signingEngine.setWalletIframeSurfaceMeasurementBinding(binding);
135
+ this.synchronizeAppearance(normalizedAppearance);
765
136
  }
766
- /**
767
- * Pre-warm resources on a best-effort basis without changing visible state.
768
- * - When iframe=true, initializes the wallet iframe client.
769
- * - When workers=true, warms local critical resources only outside app-origin iframe mode.
770
- * - When both are false/omitted, does nothing.
771
- */
772
- async prewarm(opts) {
773
- const iframe = !!opts?.iframe;
774
- const workers = !!opts?.workers;
775
- const nearAccountBinding = resolvePrewarmNearAccountBinding(opts);
776
- const prewarmRequest = emailOtpUnlockPrewarmRequestFromOptions(opts);
777
- const prewarmScope = emailOtpUnlockPrewarmScopeFromBinding(nearAccountBinding);
778
- const tasks = [];
779
- if (iframe) tasks.push(this.initWalletIframe(nearAccountBinding?.wallet.walletId));
780
- else if (workers && !this.walletIframe.shouldUseWalletIframe()) {
781
- const accountContext = nearAccountBinding ? {
782
- kind: "near_account_bound",
783
- account: nearAccountBinding
784
- } : { kind: "none" };
785
- tasks.push(this.signingEngine.warmCriticalResources(accountContext));
786
- tasks.push(this.signingEngine.prewarmEcdsaRegistrationCrypto());
787
- }
788
- if (tasks.length === 0) return;
789
- let status = "succeeded";
137
+ async synchronizeAppearance(appearance) {
790
138
  try {
791
- await Promise.all(tasks);
792
- } catch {
793
- status = "failed";
794
- }
795
- if (prewarmRequest) this.emailOtpUnlockPrewarmRecord = {
796
- kind: "attempted",
797
- status,
798
- completedAtMs: Date.now(),
799
- request: prewarmRequest,
800
- scope: prewarmScope
801
- };
802
- }
803
- emitWalletIframeTransportTimingSummary(input) {
804
- if (!isRegistrationBenchmarkDiagnosticsEnabled()) return;
805
- const diagnostics = this.walletIframe.getTransportDiagnosticsSnapshot();
806
- if (!diagnostics) return;
807
- const { kind: transportKind, ...timings } = diagnostics;
808
- console.info(WALLET_IFRAME_TRANSPORT_TIMING_LABEL, {
809
- kind: "wallet_iframe_registration_transport_timing_v1",
810
- operation: input.operation,
811
- walletId: input.walletId,
812
- transportKind,
813
- ...timings
814
- });
815
- }
816
- async registerWalletDomain(args) {
817
- if (this.walletIframe.shouldUseWalletIframe()) try {
818
- const walletRouterId = args.wallet.kind === "provided" ? String(args.wallet.walletId) : void 0;
819
- const router = await this.walletIframe.requireRouter(walletRouterId);
820
- this.emitWalletIframeTransportTimingSummary({
821
- operation: "registerWallet",
822
- walletId: walletRouterId ?? null
823
- });
824
- const res = await router.registerWallet(args);
825
- const registeredWalletId = res.success ? String(res.walletId || "").trim() : "";
826
- if (registeredWalletId) (async () => {
827
- try {
828
- await this.initWalletIframe(registeredWalletId);
829
- } catch {}
830
- })();
831
- await args.options?.afterCall?.(true, res);
832
- return res;
833
- } catch (error) {
834
- const e = toError(error);
835
- await args.options?.onError?.(e);
836
- await args.options?.afterCall?.(false);
837
- throw e;
838
- }
839
- return await registerWallet({
840
- context: this.getContext(),
841
- authMethod: args.authMethod,
842
- wallet: args.wallet,
843
- signerSelection: args.signerSelection,
844
- options: args.options || {},
845
- authenticatorOptions: cloneAuthenticatorOptions(this.configs.webauthn.authenticatorOptions)
846
- });
847
- }
848
- async getNearProvisioningStateDomain(args) {
849
- const walletId = toWalletId(args.walletId);
850
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter(String(walletId))).getNearProvisioningState({ walletId });
851
- const live = readNearProvisioningState(walletId);
852
- if (live) return live;
853
- return await this.getContext().signingEngine.getWalletNearProvisioningState(walletId);
854
- }
855
- async resumePendingEcdsaRegistrationDomain(args) {
856
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter(String(args.walletId))).resumePendingEcdsaRegistration(args);
857
- const relayerUrl = String(this.configs.network.relayer?.url || "").trim();
858
- if (!relayerUrl) throw new Error("pending ECDSA registration recovery requires a relayer URL");
859
- return await resumePendingEcdsaRegistrationFromStoredCommit({
860
- relayerUrl,
861
- request: args,
862
- signingSurface: this.signingEngine
863
- });
864
- }
865
- async registerWalletSignerDomain(args) {
866
- if (this.walletIframe.shouldUseWalletIframe()) try {
867
- const res = await (await this.walletIframe.requireRouter(String(args.walletId || ""))).addWalletSigner(args);
868
- await args.options?.afterCall?.(true, res);
869
- return res;
870
- } catch (error) {
871
- const e = toError(error);
872
- await args.options?.onError?.(e);
873
- await args.options?.afterCall?.(false);
874
- throw e;
875
- }
876
- return await addWalletSigner({
877
- context: this.getContext(),
878
- walletId: args.walletId,
879
- rpId: args.rpId,
880
- signerSelection: args.signerSelection,
881
- options: args.options || {}
882
- });
883
- }
884
- async addPasskeyDomain(args) {
885
- if (this.walletIframe.shouldUseWalletIframe()) try {
886
- const result = await (await this.walletIframe.requireRouter(String(args.walletId || ""))).addPasskey(args);
887
- await args.options?.afterCall?.(true, result);
888
- return result;
889
- } catch (error) {
890
- const normalized = toError(error);
891
- await args.options?.onError?.(normalized);
892
- await args.options?.afterCall?.(false);
893
- throw normalized;
894
- }
895
- return await addPasskeyWalletAuthMethod({
896
- context: this.getContext(),
897
- walletId: args.walletId,
898
- rpId: args.rpId,
899
- options: args.options
900
- });
901
- }
902
- async revokeAuthMethodDomain(args) {
903
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter(String(args.walletId || ""))).revokeAuthMethod(args);
904
- return await revokeWalletAuthMethodOperation({
905
- context: this.getContext(),
906
- walletId: args.walletId,
907
- walletAuthMethodId: args.walletAuthMethodId
908
- });
909
- }
910
- async addEmailOtpDomain(args) {
911
- if (this.walletIframe.shouldUseWalletIframe()) try {
912
- const result = await (await this.walletIframe.requireRouter(String(args.walletId || ""))).addEmailOtp(args);
913
- await args.options?.afterCall?.(true, result);
914
- return result;
915
- } catch (error) {
916
- const normalized = toError(error);
917
- await args.options?.onError?.(normalized);
918
- await args.options?.afterCall?.(false);
919
- throw normalized;
920
- }
921
- return await addEmailOtpWalletAuthMethod({
922
- context: this.getContext(),
923
- walletId: args.walletId,
924
- emailAddress: args.emailAddress,
925
- options: args.options
926
- });
927
- }
928
- async registerPasskeyDomain(options = {}) {
929
- if (typeof options === "string") throw new Error("[SeamsWeb] registration.registerPasskey no longer accepts a NEAR account id; call registration.registerPasskey(options) for implicit NEAR registration or registerWallet(...) with explicit sponsored accountProvisioning.");
930
- const { wallet, nearAccountProvisioning, ...registrationOptions } = options || {};
931
- const rpId = this.walletIframe.resolveRegistrationRpId(this.signingEngine.getRpId());
932
- const provisioningPreference = nearAccountProvisioning ?? this.configs.registration.nearAccountProvisioning;
933
- const resolvedWallet = wallet || (provisioningPreference.kind === "relayer_named_subaccount" ? {
934
- kind: "provided",
935
- walletId: createServerAllocatedWalletId()
936
- } : { kind: "server_allocated" });
937
- const accountProvisioning = resolvePasskeyRegistrationAccountProvisioning({
938
- configs: this.configs,
939
- wallet: resolvedWallet,
940
- preference: provisioningPreference
941
- });
942
- return await this.registerWalletDomain({
943
- wallet: resolvedWallet,
944
- authMethod: {
945
- kind: "passkey",
946
- rpId
947
- },
948
- signerSelection: buildNearWalletRegistrationSignerSetSelection({
949
- configs: this.configs,
950
- accountProvisioning,
951
- options: registrationOptions
952
- }),
953
- options: registrationOptions
954
- });
955
- }
956
- emailOtpRegistrationFlowId(walletId, challengeId) {
957
- return `email-otp-registration:${String(walletId || "unknown-wallet").trim() || "unknown-wallet"}:${String(challengeId || "active").trim() || "active"}`;
958
- }
959
- emailOtpUnlockFlowId(walletId, challengeId) {
960
- return `email-otp-unlock:${String(walletId || "unknown-wallet").trim() || "unknown-wallet"}:${String(challengeId || "active").trim() || "active"}`;
961
- }
962
- emitEmailOtpRegistrationEvent(onEvent, input) {
963
- try {
964
- onEvent?.(createRegistrationFlowEvent(input));
139
+ await (await this.walletIframe.requireRouter()).setAppearance(appearance);
965
140
  } catch {}
966
141
  }
967
- emitEmailOtpUnlockEvent(onEvent, input) {
968
- try {
969
- onEvent?.(createUnlockFlowEvent(input));
970
- } catch {}
971
- }
972
- emitEmailOtpRegistrationFailure(onEvent, input) {
973
- this.emitEmailOtpRegistrationEvent(onEvent, {
974
- ...input,
975
- phase: RegistrationEventPhase.FAILED,
976
- status: "failed",
977
- error: { message: input.error.message }
978
- });
979
- }
980
- emitEmailOtpUnlockWorkerProgress(onEvent, args) {
981
- const chainLabel = args.chainTarget.kind === "tempo" ? "Tempo" : "EVM";
982
- const base = {
983
- flowId: args.flowId,
984
- walletId: args.walletId,
985
- authMethod: "email_otp",
986
- ...args.challengeId ? { requestId: args.challengeId } : {}
987
- };
988
- switch (args.progress.code) {
989
- case "otp.verify.succeeded":
990
- this.emitEmailOtpUnlockEvent(onEvent, {
991
- ...base,
992
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_SUCCEEDED,
993
- status: "succeeded",
994
- interaction: {
995
- kind: "otp_input",
996
- overlay: "hide"
997
- }
998
- });
999
- return UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_SUCCEEDED;
1000
- case "signer.ecdsa.bootstrap.started":
1001
- this.emitEmailOtpUnlockEvent(onEvent, {
1002
- ...base,
1003
- phase: UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED,
1004
- status: "running",
1005
- message: `Preparing ${chainLabel} signing session`,
1006
- data: { chainTarget: args.chainTarget }
1007
- });
1008
- return UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED;
1009
- case "signer.ecdsa.bootstrap.prepared":
1010
- this.emitEmailOtpUnlockEvent(onEvent, {
1011
- ...base,
1012
- phase: UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED,
1013
- status: "running",
1014
- message: `Coordinating ${chainLabel} signing session`,
1015
- data: { chainTarget: args.chainTarget }
1016
- });
1017
- return UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED;
1018
- case "signer.ecdsa.bootstrap.responded":
1019
- this.emitEmailOtpUnlockEvent(onEvent, {
1020
- ...base,
1021
- phase: UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED,
1022
- status: "running",
1023
- message: `Finalizing ${chainLabel} signing session`,
1024
- data: { chainTarget: args.chainTarget }
1025
- });
1026
- return UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED;
1027
- case "signer.ecdsa.bootstrap.succeeded":
1028
- this.emitEmailOtpUnlockEvent(onEvent, {
1029
- ...base,
1030
- phase: UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED,
1031
- status: "running",
1032
- message: `Saving ${chainLabel} signing session`,
1033
- data: { chainTarget: args.chainTarget }
1034
- });
1035
- return UnlockEventPhase.STEP_05_SIGNING_SESSION_WARMUP_STARTED;
1036
- default: return null;
1037
- }
1038
- }
1039
- emitEmailOtpUnlockFailure(onEvent, input) {
1040
- const cancelled = isUserCancellationError(input.error);
1041
- this.emitEmailOtpUnlockEvent(onEvent, {
1042
- ...input,
1043
- phase: cancelled ? UnlockEventPhase.CANCELLED : UnlockEventPhase.FAILED,
1044
- status: cancelled ? "cancelled" : "failed",
1045
- interaction: input.interaction ?? {
1046
- kind: cancelled ? "otp_input" : "none",
1047
- overlay: "hide"
1048
- },
1049
- error: { message: input.error.message }
1050
- });
1051
- }
1052
- async requestEmailOtpChallengeDomain(args) {
1053
- const flowId = this.emailOtpUnlockFlowId(args.walletId);
1054
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1055
- flowId,
1056
- walletId: args.walletId,
1057
- authMethod: "email_otp",
1058
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_STARTED,
1059
- status: "running"
1060
- });
1061
- try {
1062
- if (this.walletIframe.shouldUseWalletIframe()) {
1063
- const result = await (await this.walletIframe.requireRouter(args.walletId)).requestEmailOtpChallenge(args);
1064
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1065
- flowId: this.emailOtpUnlockFlowId(args.walletId, result.challengeId),
1066
- walletId: args.walletId,
1067
- authMethod: "email_otp",
1068
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_SENT,
1069
- status: "succeeded",
1070
- data: {
1071
- challengeId: result.challengeId,
1072
- otpChannel: result.otpChannel
1073
- }
1074
- });
1075
- return result;
1076
- }
1077
- let walletAuthMethodId = args.walletAuthMethodId;
1078
- if (!walletAuthMethodId) {
1079
- const selected = await IndexedDBManager.resolveSelectedWalletAuthority(String(args.walletId || "").trim());
1080
- if (selected.kind === "resolved" && selected.authMethod.kind === "email_otp" && selected.authMethod.status === "active" && String(selected.authMethod.walletId) === String(args.walletId || "").trim()) walletAuthMethodId = String(selected.authMethod.walletAuthMethodId);
1081
- }
1082
- if (!walletAuthMethodId) throw new Error("Email OTP challenge requires an exact walletAuthMethodId");
1083
- const result = await requestEmailOtpChallenge({
1084
- relayUrl: String(args.relayUrl || this.configs.network.relayer.url || "").trim(),
1085
- walletId: String(args.walletId || "").trim(),
1086
- walletAuthMethodId,
1087
- ...args.operation ? { operation: args.operation } : {},
1088
- ...args.operationFingerprintDigest ? { operationFingerprintDigest: args.operationFingerprintDigest } : {}
1089
- });
1090
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1091
- flowId: this.emailOtpUnlockFlowId(args.walletId, result.challengeId),
1092
- walletId: args.walletId,
1093
- authMethod: "email_otp",
1094
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_SENT,
1095
- status: "succeeded",
1096
- data: {
1097
- challengeId: result.challengeId,
1098
- otpChannel: result.otpChannel
1099
- }
1100
- });
1101
- return result;
1102
- } catch (error) {
1103
- const e = toError(error);
1104
- this.emitEmailOtpUnlockFailure(args.onEvent, {
1105
- flowId,
1106
- walletId: args.walletId,
1107
- authMethod: "email_otp",
1108
- error: e
1109
- });
1110
- throw e;
1111
- }
1112
- }
1113
- async requestEmailOtpEnrollmentChallengeDomain(args) {
1114
- const flowId = this.emailOtpRegistrationFlowId(args.walletId);
1115
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1116
- flowId,
1117
- walletId: args.walletId,
1118
- authMethod: "email_otp",
1119
- phase: RegistrationEventPhase.STEP_04_OTP_CHALLENGE_STARTED,
1120
- status: "running"
1121
- });
1122
- try {
1123
- if (this.walletIframe.shouldUseWalletIframe()) {
1124
- const result = await (await this.walletIframe.requireRouter(args.walletId)).requestEmailOtpEnrollmentChallenge(args);
1125
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1126
- flowId: this.emailOtpRegistrationFlowId(args.walletId, result.challengeId),
1127
- walletId: args.walletId,
1128
- authMethod: "email_otp",
1129
- phase: RegistrationEventPhase.STEP_04_OTP_CHALLENGE_SENT,
1130
- status: "succeeded",
1131
- data: {
1132
- challengeId: result.challengeId,
1133
- otpChannel: result.otpChannel
1134
- }
1135
- });
1136
- return result;
1137
- }
1138
- const result = await requestEmailOtpEnrollmentChallenge({
1139
- relayUrl: String(args.relayUrl || this.configs.network.relayer.url || "").trim(),
1140
- walletId: String(args.walletId || "").trim()
1141
- });
1142
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1143
- flowId: this.emailOtpRegistrationFlowId(args.walletId, result.challengeId),
1144
- walletId: args.walletId,
1145
- authMethod: "email_otp",
1146
- phase: RegistrationEventPhase.STEP_04_OTP_CHALLENGE_SENT,
1147
- status: "succeeded",
1148
- data: {
1149
- challengeId: result.challengeId,
1150
- otpChannel: result.otpChannel
1151
- }
1152
- });
1153
- return result;
1154
- } catch (error) {
1155
- const e = toError(error);
1156
- this.emitEmailOtpRegistrationFailure(args.onEvent, {
1157
- flowId,
1158
- walletId: args.walletId,
1159
- authMethod: "email_otp",
1160
- error: e
1161
- });
1162
- throw e;
1163
- }
1164
- }
1165
- async requestEmailOtpSigningSessionChallengeDomain(args) {
1166
- const walletId = args.walletSession.walletId;
1167
- const flowId = this.emailOtpUnlockFlowId(walletId);
1168
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1169
- flowId,
1170
- walletId,
1171
- authMethod: "email_otp",
1172
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_STARTED,
1173
- status: "running"
1174
- });
1175
- try {
1176
- if (this.walletIframe.shouldUseWalletIframe()) {
1177
- const result = await (await this.walletIframe.requireRouter(walletId)).requestEmailOtpSigningSessionChallenge({
1178
- walletSession: args.walletSession,
1179
- chainTarget: args.chainTarget
1180
- });
1181
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1182
- flowId: this.emailOtpUnlockFlowId(walletId, result.challengeId),
1183
- walletId,
1184
- authMethod: "email_otp",
1185
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_SENT,
1186
- status: "succeeded",
1187
- data: {
1188
- challengeId: result.challengeId,
1189
- otpChannel: "email_otp"
1190
- }
1191
- });
1192
- return result;
1193
- }
1194
- const result = await this.signingEngine.requestEmailOtpSigningSessionChallenge({
1195
- walletSession: args.walletSession,
1196
- chainTarget: args.chainTarget
1197
- });
1198
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1199
- flowId: this.emailOtpUnlockFlowId(walletId, result.challengeId),
1200
- walletId,
1201
- authMethod: "email_otp",
1202
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_CHALLENGE_SENT,
1203
- status: "succeeded",
1204
- data: {
1205
- challengeId: result.challengeId,
1206
- otpChannel: "email_otp"
1207
- }
1208
- });
1209
- return result;
1210
- } catch (error) {
1211
- const e = toError(error);
1212
- this.emitEmailOtpUnlockFailure(args.onEvent, {
1213
- flowId,
1214
- walletId,
1215
- authMethod: "email_otp",
1216
- error: e
1217
- });
1218
- throw e;
1219
- }
1220
- }
1221
- async enrollEmailOtpDomain(args) {
1222
- const flowId = this.emailOtpRegistrationFlowId(args.walletId, args.challengeId);
1223
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1224
- flowId,
1225
- walletId: args.walletId,
1226
- authMethod: "email_otp",
1227
- phase: RegistrationEventPhase.STEP_04_OTP_VERIFY_STARTED,
1228
- status: "running",
1229
- interaction: {
1230
- kind: "otp_input",
1231
- overlay: "none"
1232
- },
1233
- ...args.challengeId ? { requestId: args.challengeId } : {}
1234
- });
1235
- try {
1236
- if (this.walletIframe.shouldUseWalletIframe()) {
1237
- if (args.clientSecret32) throw new Error("[SeamsWeb] Wallet iframe Email OTP enrollment owns client secret generation; clientSecret32 is not accepted from the app origin.");
1238
- const router = await this.walletIframe.requireRouter(args.walletId);
1239
- const iframeArgs = { ...args };
1240
- delete iframeArgs.clientSecret32;
1241
- delete iframeArgs.onEvent;
1242
- const result = await router.enrollEmailOtp(iframeArgs);
1243
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1244
- flowId,
1245
- walletId: args.walletId,
1246
- authMethod: "email_otp",
1247
- phase: RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED,
1248
- status: "succeeded",
1249
- interaction: {
1250
- kind: "otp_input",
1251
- overlay: "hide"
1252
- },
1253
- ...args.challengeId ? { requestId: args.challengeId } : {},
1254
- data: {
1255
- otpChannel: result.otpChannel,
1256
- enrollmentSealKeyVersion: result.enrollmentSealKeyVersion
1257
- }
1258
- });
1259
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1260
- flowId,
1261
- walletId: args.walletId,
1262
- authMethod: "email_otp",
1263
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED,
1264
- status: "running",
1265
- ...args.challengeId ? { requestId: args.challengeId } : {}
1266
- });
1267
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1268
- flowId,
1269
- walletId: args.walletId,
1270
- authMethod: "email_otp",
1271
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED,
1272
- status: "succeeded",
1273
- ...args.challengeId ? { requestId: args.challengeId } : {},
1274
- data: { unlockKeyVersion: result.unlockKeyVersion }
1275
- });
1276
- return result;
1277
- }
1278
- const result = await this.signingEngine.enrollEmailOtpInternal({
1279
- walletId: toWalletId(args.walletId),
1280
- otpCode: args.otpCode,
1281
- ...args.relayUrl ? { relayUrl: args.relayUrl } : {},
1282
- challengeId: args.challengeId,
1283
- ...args.groupId ? { groupId: args.groupId } : {},
1284
- ...args.clientSecret32 ? { clientSecret32: args.clientSecret32 } : {}
1285
- });
1286
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1287
- flowId,
1288
- walletId: args.walletId,
1289
- authMethod: "email_otp",
1290
- phase: RegistrationEventPhase.STEP_04_OTP_VERIFY_SUCCEEDED,
1291
- status: "succeeded",
1292
- interaction: {
1293
- kind: "otp_input",
1294
- overlay: "hide"
1295
- },
1296
- ...args.challengeId ? { requestId: args.challengeId } : {},
1297
- data: {
1298
- otpChannel: result.otpChannel,
1299
- enrollmentSealKeyVersion: result.enrollmentSealKeyVersion
1300
- }
1301
- });
1302
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1303
- flowId,
1304
- walletId: args.walletId,
1305
- authMethod: "email_otp",
1306
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_STARTED,
1307
- status: "running",
1308
- ...args.challengeId ? { requestId: args.challengeId } : {}
1309
- });
1310
- this.emitEmailOtpRegistrationEvent(args.onEvent, {
1311
- flowId,
1312
- walletId: args.walletId,
1313
- authMethod: "email_otp",
1314
- phase: RegistrationEventPhase.STEP_09_EMAIL_OTP_SIGNER_ENROLL_SUCCEEDED,
1315
- status: "succeeded",
1316
- ...args.challengeId ? { requestId: args.challengeId } : {},
1317
- data: { unlockKeyVersion: result.unlockKeyVersion }
1318
- });
1319
- return result;
1320
- } catch (error) {
1321
- const e = toError(error);
1322
- this.emitEmailOtpRegistrationFailure(args.onEvent, {
1323
- flowId,
1324
- walletId: args.walletId,
1325
- authMethod: "email_otp",
1326
- ...args.challengeId ? { requestId: args.challengeId } : {},
1327
- error: e
1328
- });
1329
- throw e;
1330
- }
1331
- }
1332
- async getWalletRecoveryCodeStatusDomain(args) {
1333
- const relayUrl = String(this.configs.network.relayer.url || "").trim();
1334
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter(args.walletId)).getWalletRecoveryCodeStatus({ walletId: args.walletId });
1335
- const status = await readWalletRecoveryCodeStatus({
1336
- relayUrl,
1337
- walletId: args.walletId
1338
- });
1339
- return status.kind === "ready" ? {
1340
- ...status,
1341
- pendingLocalBackup: await pendingWalletRecoveryCodeBackupRepository.has(args.walletId)
1342
- } : status;
1343
- }
1344
- async beginGoogleEmailOtpWalletAuthDomain(args) {
1345
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter()).beginGoogleEmailOtpWalletAuth(args);
1346
- return await beginGoogleEmailOtpWalletAuth({
1347
- configs: this.configs,
1348
- resolveGoogleEmailOtpProvider: this.resolveGoogleEmailOtpProviderDomain.bind(this),
1349
- requestEmailOtpChallenge: this.requestEmailOtpChallengeDomain.bind(this),
1350
- prewarmEmailOtpYao: this.prewarmEmailOtpYaoDomain.bind(this),
1351
- registerWallet: this.registerWalletDomain.bind(this),
1352
- loginWithEmailOtpEcdsaCapability: this.loginWithEmailOtpEcdsaCapabilityDomain.bind(this),
1353
- loginWithEmailOtpEd25519YaoCapability: this.loginWithEmailOtpEd25519YaoCapabilityDomain.bind(this),
1354
- resolveLinkedEmailOtpWalletAuth: this.resolveLinkedEmailOtpWalletAuthDomain.bind(this),
1355
- loginWithLinkedEmailOtpWallet: this.loginWithLinkedEmailOtpWalletDomain.bind(this),
1356
- getWalletSession: this.getGoogleEmailOtpWalletSessionDomain.bind(this)
1357
- }, args);
1358
- }
1359
- async resolveGoogleEmailOtpProviderDomain(args) {
1360
- return await resolveGoogleEmailOtpProvider({
1361
- relayUrl: String(args.relayUrl || this.configs.network.relayer.url || "").trim(),
1362
- idToken: args.idToken,
1363
- accountMode: args.accountMode,
1364
- ...args.loginWalletId ? { loginWalletId: args.loginWalletId } : {},
1365
- projectEnvironmentId: this.configs.registration.projectEnvironmentId,
1366
- publishableKey: this.configs.registration.publishableKey,
1367
- ...args.restartRegistrationOffer === true ? { restartRegistrationOffer: true } : {}
1368
- });
1369
- }
1370
- async resolveLinkedEmailOtpWalletAuthDomain(args) {
1371
- const emailHashHex = await this.emailOtpEmailHashHex(args.email);
1372
- const resolution = await resolveLinkedDeviceEmailOtpAuthoritySelection({
1373
- walletIdInput: args.walletId,
1374
- emailHashHex,
1375
- provider: args.provider,
1376
- providerSubjectId: args.providerSubjectId
1377
- });
1378
- switch (resolution.kind) {
1379
- case "none": {
1380
- const foundingMethods = (await IndexedDBManager.listWalletAuthMethodsV2ForWallet(args.walletId)).filter((method) => method.kind === "email_otp" && method.status === "active" && method.emailHashHex.toLowerCase() === emailHashHex);
1381
- const foundingMethod = foundingMethods[0];
1382
- if (foundingMethods.length === 0 || !foundingMethod) {
1383
- const exactLocalFactors = (await IndexedDBManager.listWalletAuthMethodsForWallet(args.walletId)).filter((method) => method.kind === "email_otp" && method.status === "active" && method.emailHashHex.toLowerCase() === emailHashHex && isEmailOtpWalletAuthAuthority(method.authority) && method.authority.factor.provider === "google" && method.authority.factor.providerUserId === args.providerSubjectId);
1384
- const exactLocalFactor = exactLocalFactors[0];
1385
- if (exactLocalFactors.length === 0 || !exactLocalFactor) return { kind: "none" };
1386
- if (exactLocalFactors.length !== 1) return {
1387
- kind: "rejected",
1388
- message: "Multiple active local Email OTP factors match the verified email"
1389
- };
1390
- const exactAuthority = exactLocalFactor.authority;
1391
- if (!exactAuthority || !isEmailOtpWalletAuthAuthority(exactAuthority)) return { kind: "none" };
1392
- return {
1393
- kind: "selected",
1394
- walletAuthMethodId: String(exactAuthority.bindingId),
1395
- execution: "ordinary"
1396
- };
1397
- }
1398
- if (foundingMethods.length !== 1) return {
1399
- kind: "rejected",
1400
- message: "Multiple active local Email OTP authorities match the verified email"
1401
- };
1402
- const authority = await IndexedDBManager.getWalletAuthority(String(foundingMethod.walletAuthorityId));
1403
- if (!authority || authority.state !== "active" || authority.walletId !== foundingMethod.walletId || authority.authorityId !== foundingMethod.walletAuthorityId || authority.provenance.kind !== "wallet_registration" && authority.provenance.kind !== "wallet_recovery") return { kind: "none" };
1404
- await resolveExactLinkedEmailOtpAuthority({
1405
- authMethod: foundingMethod,
1406
- provider: "google",
1407
- providerSubjectId: args.providerSubjectId
1408
- });
1409
- return {
1410
- kind: "selected",
1411
- walletAuthMethodId: String(foundingMethod.walletAuthMethodId),
1412
- execution: await googleEmailOtpUnlockExecution(authority.provenance, foundingMethod.walletAuthMethodId),
1413
- keyFamilies: authority.signerActivations.keyFamilies
1414
- };
1415
- }
1416
- case "selected": return {
1417
- kind: "selected",
1418
- walletAuthMethodId: String(resolution.selection.authMethod.walletAuthMethodId),
1419
- execution: await googleEmailOtpUnlockExecution(resolution.selection.authority.provenance, resolution.selection.authMethod.walletAuthMethodId),
1420
- keyFamilies: resolution.selection.authority.signerActivations.keyFamilies
1421
- };
1422
- case "rejected": return {
1423
- kind: "rejected",
1424
- message: resolution.message
1425
- };
1426
- default: throw new Error("Linked Email OTP authority resolution is invalid");
1427
- }
142
+ getAppearance() {
143
+ return this.appearance;
1428
144
  }
1429
- async loginWithLinkedEmailOtpWalletDomain(args) {
1430
- if (this.walletIframe.shouldUseWalletIframe()) {
1431
- await (await this.walletIframe.requireRouter(String(args.walletId || ""))).unlockAddedEmailOtpWallet({
1432
- walletId: args.walletId,
1433
- walletAuthMethodId: args.walletAuthMethodId,
1434
- email: args.email,
1435
- providerSubjectId: args.providerSubjectId,
1436
- challengeId: args.challengeId,
1437
- otpCode: args.otpCode,
1438
- relayUrl: args.relayUrl
1439
- });
1440
- this.resumePendingAcknowledgementsAfterExactUnlockV1();
1441
- return;
1442
- }
1443
- const emailHashHex = await this.emailOtpEmailHashHex(args.email);
1444
- await unlockLinkedDeviceEmailOtpWallet({
1445
- context: this.getContext(),
1446
- walletIdInput: args.walletId,
1447
- emailHashHex,
1448
- walletAuthMethodId: args.walletAuthMethodId,
1449
- providerSubjectId: args.providerSubjectId,
1450
- challengeId: args.challengeId,
1451
- otpCode: args.otpCode,
1452
- relayUrl: args.relayUrl
145
+ async syncAccountDomain(args) {
146
+ const walletId = args.walletId ? walletIdFromString(args.walletId) : null;
147
+ return await (await this.walletIframe.requireRouter()).syncAccount({
148
+ ...walletId ? { walletId: String(walletId) } : {},
149
+ onEvent: args.options?.onEvent
1453
150
  });
1454
- this.resumePendingAcknowledgementsAfterExactUnlockV1();
1455
151
  }
1456
- async prewarmEmailOtpYaoDomain() {
1457
- await this.signingEngine.prewarmEmailOtpYao();
152
+ getWalletIframe() {
153
+ return this.walletIframe;
1458
154
  }
1459
- async getGoogleEmailOtpWalletSessionDomain(walletId) {
1460
- return await getWalletSessionDomain(this.getWalletAuthDeps(), walletId);
155
+ onNearAccountChange(listener) {
156
+ return this.events.subscribe(deliverNearProvisioningStateChanged.bind(null, listener));
1461
157
  }
1462
- async acknowledgeWalletRecoveryCodeBackupDomain(args) {
1463
- const relayUrl = String(this.configs.network.relayer.url || "").trim();
1464
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireTransportRouter()).acknowledgeWalletRecoveryCodeBackup({ walletId: args.walletId });
1465
- if ((await showWalletRecoveryCodesUi({
1466
- walletId: args.walletId,
1467
- loadStatus: this.getWalletRecoveryCodeStatusDomain.bind(this, args),
1468
- loadPendingBackup: this.loadPendingWalletRecoveryCodeBackupRequest.bind(this, args.walletId)
1469
- }, this.signingEngine.getWalletIframeSurfaceMeasurementBinding(), { appearance: this.appearance })).kind !== "wallet_recovery_codes_backed_up_v1") throw new Error("Pending wallet recovery-code backup was not completed");
1470
- const result = await acknowledgeWalletRecoveryBackup({
1471
- relayUrl,
1472
- walletId: args.walletId
1473
- });
1474
- if (result.kind === "acknowledged") await pendingWalletRecoveryCodeBackupRepository.delete(args.walletId);
1475
- return result;
158
+ async getCodeStatusDomain(args) {
159
+ return await (await this.walletIframe.requireRouter()).getCodeStatus({ walletId: args.walletId });
1476
160
  }
1477
- async loadPendingWalletRecoveryCodeBackupRequest(walletId) {
1478
- const pending = await pendingWalletRecoveryCodeBackupRepository.read(walletId);
1479
- return pending ? {
1480
- kind: "wallet_recovery_code_backup_request_v1",
1481
- walletId: pending.walletId,
1482
- recoveryCodes: pending.recoveryCodes,
1483
- continuation: "pending_backup_must_finish"
1484
- } : null;
161
+ async confirmBackupDomain(args) {
162
+ return await (await this.walletIframe.requireRouter()).confirmBackup({ walletId: args.walletId });
1485
163
  }
1486
164
  async requestWalletCustodyEmailOtpChallengeDomain(args) {
1487
165
  return await requestWalletCustodyEmailOtpChallenge({
@@ -1489,406 +167,8 @@ var SeamsWeb = class {
1489
167
  ...args
1490
168
  });
1491
169
  }
1492
- async rotateWalletRecoveryCodesDomain(args) {
1493
- const relayUrl = String(this.configs.network.relayer.url || "").trim();
1494
- if (this.walletIframe.shouldUseWalletIframe()) return await (await this.walletIframe.requireRouter(args.walletId)).rotateWalletRecoveryCodes(args);
1495
- return await rotateWalletRecoveryCodes({
1496
- context: this.getContext(),
1497
- relayUrl,
1498
- walletId: args.walletId,
1499
- authorization: args.authorization
1500
- });
1501
- }
1502
- async loginWithEmailOtpEd25519YaoCapabilityDomain(args) {
1503
- if (args.authoritySelector.kind !== "wallet_auth_method") throw new Error("Email OTP Ed25519 unlock requires an exact wallet auth method");
1504
- const emailHashHex = await this.emailOtpEmailHashHex(args.emailOtpAuthorityEmail);
1505
- const signer = await this.signingEngine.loginWithEmailOtpWalletCustodyEd25519Internal({
1506
- ...args,
1507
- emailHashHex
1508
- });
1509
- await activateEmailOtpWalletAfterUnlock({
1510
- signingEngine: this.signingEngine,
1511
- nearClient: this.nearClient
1512
- }, {
1513
- kind: "near_ed25519_wallet",
1514
- signer,
1515
- walletAuthMethodId: requireWalletAuthMethodId(args.authoritySelector.walletAuthMethodId)
1516
- });
1517
- }
1518
- async emailOtpEmailHashHex(email) {
1519
- const normalizedEmail = String(email || "").trim().toLowerCase();
1520
- if (!normalizedEmail) throw new Error("[SeamsWeb][email-otp] verified email is required for auth-method hash");
1521
- return sha256HexUtf8(normalizedEmail);
1522
- }
1523
- async loginWithEmailOtpEcdsaCapabilityDomain(args) {
1524
- const walletId = args.walletSession.walletId;
1525
- const flowId = this.emailOtpUnlockFlowId(walletId, args.challengeId);
1526
- const chainTarget = requireConcreteEcdsaChainTarget(args.chainTarget, "Email OTP ECDSA unlock");
1527
- const unlockTiming = {
1528
- startedAtMs: nowMs(),
1529
- timings: createEmailOtpUnlockTimings()
1530
- };
1531
- const prewarm = emailOtpUnlockPrewarmSnapshot({
1532
- record: this.emailOtpUnlockPrewarmRecord,
1533
- walletId,
1534
- nowMs: Date.now()
1535
- });
1536
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1537
- flowId,
1538
- walletId,
1539
- authMethod: "email_otp",
1540
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_STARTED,
1541
- status: "running",
1542
- interaction: {
1543
- kind: "otp_input",
1544
- overlay: "none"
1545
- },
1546
- ...args.challengeId ? { requestId: args.challengeId } : {}
1547
- });
1548
- try {
1549
- if (this.walletIframe.shouldUseWalletIframe()) {
1550
- const router = await this.walletIframe.requireRouter(walletId);
1551
- const iframeArgs = {
1552
- ...args,
1553
- chainTarget
1554
- };
1555
- delete iframeArgs.onEvent;
1556
- const iframeStartedAtMs = nowMs();
1557
- const result = await router.loginWithEmailOtpEcdsaCapability(iframeArgs);
1558
- const walletIframeRoundTripMs = nowMs() - iframeStartedAtMs;
1559
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "walletIframeRoundTripMs", walletIframeRoundTripMs);
1560
- logEmailOtpUnlockTimingSummary({
1561
- status: "succeeded",
1562
- mode: "evm_family_ecdsa",
1563
- walletId,
1564
- prewarm,
1565
- chainTarget,
1566
- startedAtMs: unlockTiming.startedAtMs,
1567
- timings: unlockTiming.timings
1568
- });
1569
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1570
- flowId,
1571
- walletId,
1572
- authMethod: "email_otp",
1573
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_SUCCEEDED,
1574
- status: "succeeded",
1575
- interaction: {
1576
- kind: "otp_input",
1577
- overlay: "hide"
1578
- },
1579
- ...args.challengeId ? { requestId: args.challengeId } : {}
1580
- });
1581
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1582
- flowId,
1583
- walletId,
1584
- authMethod: "email_otp",
1585
- phase: UnlockEventPhase.STEP_05_ECDSA_SIGNING_SESSION_READY,
1586
- status: "succeeded",
1587
- ...args.challengeId ? { requestId: args.challengeId } : {},
1588
- data: { chainTarget }
1589
- });
1590
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1591
- flowId,
1592
- walletId,
1593
- authMethod: "email_otp",
1594
- phase: UnlockEventPhase.STEP_07_COMPLETED,
1595
- status: "succeeded",
1596
- ...args.challengeId ? { requestId: args.challengeId } : {}
1597
- });
1598
- return result;
1599
- }
1600
- const workerProgressPhases = /* @__PURE__ */ new Set();
1601
- const markWorkerProgress = (progress) => {
1602
- const phase = this.emitEmailOtpUnlockWorkerProgress(args.onEvent, {
1603
- flowId,
1604
- walletId,
1605
- challengeId: args.challengeId,
1606
- chainTarget,
1607
- progress
1608
- });
1609
- if (phase) workerProgressPhases.add(phase);
1610
- };
1611
- const emitIfWorkerProgressMissing = (input) => {
1612
- if (workerProgressPhases.has(input.phase)) return;
1613
- this.emitEmailOtpUnlockEvent(args.onEvent, input);
1614
- };
1615
- let timingStartedAtMs = nowMs();
1616
- const emailHashHex = await this.emailOtpEmailHashHex(args.emailOtpAuthorityEmail || "");
1617
- recordEmailOtpUnlockTiming(unlockTiming.timings, "emailHashLookupMs", timingStartedAtMs);
1618
- timingStartedAtMs = nowMs();
1619
- const ed25519Selection = args.ed25519Selection.kind === "present" ? args.ed25519Selection : null;
1620
- const result = await this.signingEngine.loginWithEmailOtpEcdsaCapabilityInternal({
1621
- ...args,
1622
- authoritySelector: {
1623
- kind: "wallet_auth_method",
1624
- walletAuthMethodId: args.walletAuthMethodId
1625
- },
1626
- chainTarget,
1627
- emailHashHex,
1628
- ...ed25519Selection ? { ed25519YaoRecovery: {
1629
- kind: "requested",
1630
- providerSubject: args.providerIdentity.providerSubjectId,
1631
- signerSlot: ed25519Selection.signerSlot,
1632
- nearAccountId: ed25519Selection.nearAccountId,
1633
- expectedOperationalPublicKey: ed25519Selection.operationalPublicKey,
1634
- expectedThresholdSessionId: ed25519Selection.thresholdSessionId
1635
- } } : { ed25519YaoRecovery: { kind: "not_requested" } },
1636
- ecdsaBootstrapAuthorization: { kind: "route_plan_auth" },
1637
- providerIdentity: {
1638
- kind: "explicit_provider_user",
1639
- provider: args.providerIdentity.provider,
1640
- providerUserId: args.providerIdentity.providerSubjectId
1641
- },
1642
- onProgress: markWorkerProgress
1643
- });
1644
- await persistVerifiedEmailOtpAuthorityAfterUnlock({
1645
- walletId: String(walletId),
1646
- walletAuthMethodId: String(args.walletAuthMethodId),
1647
- projection: result.recovery.verifiedAuthorityProjection
1648
- });
1649
- let walletActivation;
1650
- if (ed25519Selection) {
1651
- let recoveredEd25519Signer;
1652
- switch (result.ed25519YaoRecovery.kind) {
1653
- case "capability":
1654
- recoveredEd25519Signer = await this.signingEngine.activateEmailOtpEd25519CustodyCapabilityInternal({
1655
- walletSession: args.walletSession,
1656
- providerSubject: args.providerIdentity.providerSubjectId,
1657
- emailHashHex,
1658
- signerSlot: ed25519Selection.signerSlot,
1659
- expectedOperationalPublicKey: ed25519Selection.operationalPublicKey,
1660
- expectedThresholdSessionId: ed25519Selection.thresholdSessionId,
1661
- bootstrap: result.ed25519YaoRecovery.bootstrap,
1662
- activeClientHandle: result.ed25519YaoRecovery.activeClientHandle,
1663
- metadata: result.ed25519YaoRecovery.metadata,
1664
- authority: exactEmailOtpAuthorityRefFromLoginResult(result)
1665
- });
1666
- break;
1667
- case "cache_absent": throw new Error("Email OTP wallet custody material is unavailable; recover with a recovery code");
1668
- case "not_requested": throw new Error("Email OTP capability unlock omitted Ed25519 Yao session material");
1669
- default: throw new Error("Email OTP capability unlock returned an invalid Ed25519 Yao state");
1670
- }
1671
- walletActivation = {
1672
- kind: "near_ed25519_wallet",
1673
- signer: recoveredEd25519Signer,
1674
- walletAuthMethodId: requireWalletAuthMethodId(args.walletAuthMethodId)
1675
- };
1676
- } else {
1677
- if (result.ed25519YaoRecovery.kind !== "not_requested") throw new Error("EVM-family ECDSA Email OTP unlock returned unexpected Ed25519 Yao material");
1678
- walletActivation = {
1679
- kind: "evm_family_ecdsa_wallet",
1680
- walletId,
1681
- walletAuthMethodId: requireWalletAuthMethodId(args.walletAuthMethodId)
1682
- };
1683
- }
1684
- const workerUnlockMs = nowMs() - timingStartedAtMs;
1685
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "workerUnlockAndSessionBootstrapMs", workerUnlockMs);
1686
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "emailOtpProofVerificationMs", result.timings.emailOtpProofVerificationMs);
1687
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "ecdsaMaterialRestoreMs", result.timings.ecdsaMaterialRestoreMs);
1688
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "signingSessionSealApplyMs", result.timings.signingSessionSealApplyMs);
1689
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "warmCapabilityPersistenceMs", result.timings.warmCapabilityPersistenceMs);
1690
- timingStartedAtMs = nowMs();
1691
- await activateEmailOtpWalletAfterUnlock({
1692
- signingEngine: this.signingEngine,
1693
- nearClient: this.nearClient
1694
- }, walletActivation);
1695
- recordEmailOtpUnlockTiming(unlockTiming.timings, "walletStateActivationMs", timingStartedAtMs);
1696
- timingStartedAtMs = nowMs();
1697
- const ownerAuthority = await walletAuthAuthorityRefForVerifiedEmailOtpUnlock({
1698
- walletId: String(walletId),
1699
- walletAuthMethodId: String(args.walletAuthMethodId),
1700
- providerSubject: args.providerIdentity.providerSubjectId,
1701
- emailHashHex,
1702
- projection: result.recovery.verifiedAuthorityProjection
1703
- });
1704
- const runtimeInventory = await assertWalletRuntimePostconditions({
1705
- source: "wallet_unlock",
1706
- walletId,
1707
- ownerScope: {
1708
- auth: {
1709
- kind: "email_otp",
1710
- providerSubjectId: args.providerIdentity.providerSubjectId
1711
- },
1712
- ownerAuthority: {
1713
- walletAuthMethodId: ownerAuthority.walletAuthMethodId,
1714
- authorityDigest: ownerAuthority.authorityDigest
1715
- }
1716
- },
1717
- requiredTargets: [...ed25519Selection ? [{ curve: "ed25519" }] : [], ...(args.publicationChainTargets ?? [chainTarget]).map((target) => ({
1718
- curve: "ecdsa",
1719
- chainTarget: target
1720
- }))],
1721
- readOwnerScopedSigningLanes: async (input) => await this.signingEngine.readOwnerScopedSigningLanes(input, new WalletSessionStatusReadScope())
1722
- });
1723
- logEmailOtpUnlockActivationPlan(buildEmailOtpEcdsaUnlockActivationPlan({
1724
- walletSession: args.walletSession,
1725
- result,
1726
- runtimeInventory
1727
- }));
1728
- const activeRuntimeConstructionMs = nowMs() - timingStartedAtMs;
1729
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "runtimePostconditionMs", activeRuntimeConstructionMs);
1730
- recordEmailOtpUnlockElapsedTiming(unlockTiming.timings, "activeRuntimeConstructionMs", activeRuntimeConstructionMs);
1731
- logEmailOtpUnlockTimingSummary({
1732
- status: "succeeded",
1733
- mode: "evm_family_ecdsa",
1734
- walletId,
1735
- prewarm,
1736
- chainTarget,
1737
- startedAtMs: unlockTiming.startedAtMs,
1738
- timings: unlockTiming.timings
1739
- });
1740
- emitIfWorkerProgressMissing({
1741
- flowId,
1742
- walletId,
1743
- authMethod: "email_otp",
1744
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_SUCCEEDED,
1745
- status: "succeeded",
1746
- interaction: {
1747
- kind: "otp_input",
1748
- overlay: "hide"
1749
- },
1750
- ...args.challengeId ? { requestId: args.challengeId } : {}
1751
- });
1752
- emitIfWorkerProgressMissing({
1753
- flowId,
1754
- walletId,
1755
- authMethod: "email_otp",
1756
- phase: UnlockEventPhase.STEP_05_ECDSA_SIGNING_SESSION_READY,
1757
- status: "succeeded",
1758
- ...args.challengeId ? { requestId: args.challengeId } : {},
1759
- data: { chainTarget }
1760
- });
1761
- emitIfWorkerProgressMissing({
1762
- flowId,
1763
- walletId,
1764
- authMethod: "email_otp",
1765
- phase: UnlockEventPhase.STEP_07_COMPLETED,
1766
- status: "succeeded",
1767
- ...args.challengeId ? { requestId: args.challengeId } : {}
1768
- });
1769
- return result;
1770
- } catch (error) {
1771
- const e = toError(error);
1772
- logEmailOtpUnlockTimingSummary({
1773
- status: "failed",
1774
- mode: "evm_family_ecdsa",
1775
- walletId,
1776
- prewarm,
1777
- chainTarget,
1778
- startedAtMs: unlockTiming.startedAtMs,
1779
- timings: unlockTiming.timings,
1780
- error: e
1781
- });
1782
- this.emitEmailOtpUnlockFailure(args.onEvent, {
1783
- flowId,
1784
- walletId,
1785
- authMethod: "email_otp",
1786
- ...args.challengeId ? { requestId: args.challengeId } : {},
1787
- error: e
1788
- });
1789
- throw e;
1790
- }
1791
- }
1792
- async refreshEmailOtpSigningSessionDomain(args) {
1793
- const walletId = args.walletSession.walletId;
1794
- const flowId = this.emailOtpUnlockFlowId(walletId, args.challengeId);
1795
- const chainTarget = requireConcreteEcdsaChainTarget(args.chainTarget, "Email OTP signing-session refresh");
1796
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1797
- flowId,
1798
- walletId,
1799
- authMethod: "email_otp",
1800
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_STARTED,
1801
- status: "running",
1802
- interaction: {
1803
- kind: "otp_input",
1804
- overlay: "none"
1805
- },
1806
- requestId: args.challengeId
1807
- });
1808
- try {
1809
- const result = this.walletIframe.shouldUseWalletIframe() ? await (await this.walletIframe.requireRouter(walletId)).refreshEmailOtpSigningSession({
1810
- walletSession: args.walletSession,
1811
- chainTarget,
1812
- challengeId: args.challengeId,
1813
- otpCode: args.otpCode,
1814
- ...typeof args.ttlMs === "number" ? { ttlMs: args.ttlMs } : {},
1815
- ...typeof args.remainingUses === "number" ? { remainingUses: args.remainingUses } : {}
1816
- }) : await this.signingEngine.refreshEmailOtpSigningSession({
1817
- walletSession: args.walletSession,
1818
- chainTarget,
1819
- challengeId: args.challengeId,
1820
- otpCode: args.otpCode,
1821
- ...typeof args.ttlMs === "number" ? { ttlMs: args.ttlMs } : {},
1822
- ...typeof args.remainingUses === "number" ? { remainingUses: args.remainingUses } : {}
1823
- });
1824
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1825
- flowId,
1826
- walletId,
1827
- authMethod: "email_otp",
1828
- phase: UnlockEventPhase.STEP_03_EMAIL_OTP_VERIFY_SUCCEEDED,
1829
- status: "succeeded",
1830
- interaction: {
1831
- kind: "otp_input",
1832
- overlay: "hide"
1833
- },
1834
- requestId: args.challengeId
1835
- });
1836
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1837
- flowId,
1838
- walletId,
1839
- authMethod: "email_otp",
1840
- phase: UnlockEventPhase.STEP_05_ECDSA_SIGNING_SESSION_READY,
1841
- status: "succeeded",
1842
- requestId: args.challengeId,
1843
- data: { chainTarget }
1844
- });
1845
- this.emitEmailOtpUnlockEvent(args.onEvent, {
1846
- flowId,
1847
- walletId,
1848
- authMethod: "email_otp",
1849
- phase: UnlockEventPhase.STEP_07_COMPLETED,
1850
- status: "succeeded",
1851
- requestId: args.challengeId
1852
- });
1853
- return result;
1854
- } catch (error) {
1855
- const e = toError(error);
1856
- this.emitEmailOtpUnlockFailure(args.onEvent, {
1857
- flowId,
1858
- walletId,
1859
- authMethod: "email_otp",
1860
- requestId: args.challengeId,
1861
- error: e
1862
- });
1863
- throw e;
1864
- }
1865
- }
1866
- /**
1867
- * Prefetch latest block height/hash (and nonce if context missing) to reduce
1868
- * perceived latency when the user initiates a signing flow.
1869
- */
1870
- async prefetchBlockheight() {
1871
- if (this.walletIframe.shouldUseWalletIframe()) {
1872
- await (await this.walletIframe.requireRouter()).prefetchBlockheight();
1873
- return;
1874
- }
1875
- try {
1876
- await this.signingEngine.getNonceCoordinator().prefetchNearContext({
1877
- kind: "initialized_state",
1878
- nearClient: this.nearClient
1879
- });
1880
- } catch {}
1881
- }
1882
- /** Wallet-host entrypoint for the exact FeeManager preference operation. */
1883
- async signTempoFeeTokenPreferenceInternal(args) {
1884
- if (!__isWalletIframeHostMode()) throw new Error("[SeamsWeb][tempo] fee-token preference signing requires wallet-host mode");
1885
- const request = requireTempoFeeTokenPreferenceSigningRequest(args);
1886
- const result = await this.signingEngine.signEvmFamily({
1887
- ...args,
1888
- request
1889
- });
1890
- if (result.chain !== "evm" || result.kind !== "eip1559") throw new Error(`[SeamsWeb][tempo] expected EVM FeeManager result, received ${result.chain}`);
1891
- return result;
170
+ async rotateCodesDomain(args) {
171
+ return await (await this.walletIframe.requireRouter()).rotateCodes(args);
1892
172
  }
1893
173
  /**
1894
174
  * Canonical entrypoint to show secure key export UI (wallet-origin only) without
@@ -1896,20 +176,13 @@ var SeamsWeb = class {
1896
176
  */
1897
177
  async resolveExactKeyExportLaneDomain(input) {
1898
178
  const resolvedInput = normalizeResolveExactKeyExportLaneInput(input);
1899
- const routerAccountId = String(resolvedInput.walletSession.walletId || "").trim();
1900
- if (!routerAccountId) throw new Error("[SeamsWeb] key export lane resolution requires wallet session context");
1901
- if (this.walletIframe.shouldUseWalletIframe()) return normalizeResolveExactKeyExportLaneResult(await (await this.walletIframe.requireRouter(routerAccountId)).resolveExactKeyExportLane(resolvedInput));
1902
- return normalizeResolveExactKeyExportLaneResult(await this.signingEngine.resolveExactKeyExportLane(resolvedInput));
179
+ if (!String(resolvedInput.walletSession.walletId || "").trim()) throw new Error("[SeamsWeb] key export lane resolution requires wallet session context");
180
+ return normalizeResolveExactKeyExportLaneResult(await (await this.walletIframe.requireRouter()).resolveExactKeyExportLane(resolvedInput));
1903
181
  }
1904
182
  async exportKeypairWithUIDomain(input) {
1905
183
  const resolvedInput = normalizeExportKeypairWithUIInput(input, this.theme);
1906
- const routerAccountId = String(resolvedInput.walletSession.walletId || "").trim();
1907
- if (!routerAccountId) throw new Error("[SeamsWeb] key export requires wallet session user context");
1908
- if (this.walletIframe.shouldUseWalletIframe()) {
1909
- await (await this.walletIframe.requireRouter(routerAccountId)).exportKeypairWithUI(resolvedInput);
1910
- return;
1911
- }
1912
- await this.signingEngine.exportKeypairWithUI(resolvedInput);
184
+ if (!String(resolvedInput.walletSession.walletId || "").trim()) throw new Error("[SeamsWeb] key export requires wallet session user context");
185
+ await (await this.walletIframe.requireRouter()).exportKeypairWithUI(resolvedInput);
1913
186
  }
1914
187
  };
1915
188
  //#endregion