@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
@@ -1843,6 +1843,47 @@ var SERVER_ALLOCATED_WALLET_NOUNS = [
1843
1843
  var SERVER_ALLOCATED_WALLET_ADJECTIVE_SET = new Set(SERVER_ALLOCATED_WALLET_ADJECTIVES);
1844
1844
  var SERVER_ALLOCATED_WALLET_NOUN_SET = new Set(SERVER_ALLOCATED_WALLET_NOUNS);
1845
1845
 
1846
+ // ../shared-ts/src/utils/exactRecord.ts
1847
+ var SECRET_BEARING_FIELD_SUBSTRINGS = [
1848
+ "prf",
1849
+ "kek",
1850
+ "seed",
1851
+ "scalar",
1852
+ "secretkey",
1853
+ "privatekey",
1854
+ "plaintext",
1855
+ "recoverycode",
1856
+ "clientroot",
1857
+ "holdershare"
1858
+ ];
1859
+ function rejectUnknownFields(record, allowed, label, knownOnOtherBranches = []) {
1860
+ const allowedSet = new Set(allowed);
1861
+ const knownSet = new Set(knownOnOtherBranches);
1862
+ for (const field of Object.keys(record)) {
1863
+ if (allowedSet.has(field))
1864
+ continue;
1865
+ if (knownSet.has(field)) {
1866
+ throw new Error(`${label}.${field} is not part of ${label}`);
1867
+ }
1868
+ const normalized = field.toLowerCase().replace(/_/g, "");
1869
+ const namesAPublicKey = normalized.includes("publickey");
1870
+ if (!namesAPublicKey && SECRET_BEARING_FIELD_SUBSTRINGS.some((substring) => normalized.includes(substring))) {
1871
+ throw new Error(`${label}.${field} must never carry plaintext custody material`);
1872
+ }
1873
+ throw new Error(`${label}.${field} is not part of ${label}`);
1874
+ }
1875
+ }
1876
+ function exactRecord(raw, fields, label) {
1877
+ const record = requireRecord(raw, label);
1878
+ rejectUnknownFields(record, fields, label);
1879
+ for (const field of fields) {
1880
+ if (!Object.prototype.hasOwnProperty.call(record, field) || record[field] === undefined) {
1881
+ throw new Error(`${label}.${field} is required`);
1882
+ }
1883
+ }
1884
+ return record;
1885
+ }
1886
+
1846
1887
  // ../shared-ts/src/passkey-custody/custodySecretBinding.ts
1847
1888
  var LANE_SCOPE_FIELDS = ["kind", "walletKeyId", "laneId", "laneShareEpoch"];
1848
1889
  var ALLOWED_FIELDS_BY_KIND = {
@@ -2162,6 +2203,47 @@ function parseAuthorizationId(value, fieldName) {
2162
2203
  return { ok: true, value: normalized };
2163
2204
  }
2164
2205
 
2206
+ // ../shared-ts/src/utils/wireSchema.ts
2207
+ function wireLiteral(...literals) {
2208
+ const parse = (raw, label) => {
2209
+ if (!literals.includes(raw))
2210
+ throw new Error(`${label} is invalid`);
2211
+ return raw;
2212
+ };
2213
+ return Object.assign(parse, { literals });
2214
+ }
2215
+ function wireObject(shape, refine) {
2216
+ const keys = Object.keys(shape);
2217
+ const order = [
2218
+ ...keys.filter((key) => ("literals" in shape[key])),
2219
+ ...keys.filter((key) => !("literals" in shape[key]))
2220
+ ];
2221
+ const parse = (raw, label) => {
2222
+ const record = exactRecord(raw, keys, label);
2223
+ const parsed = new Map;
2224
+ for (const key of order)
2225
+ parsed.set(key, shape[key](record[key], `${label}.${key}`));
2226
+ const value = Object.fromEntries(keys.map((key) => [key, parsed.get(key)]));
2227
+ refine?.(value, label);
2228
+ return value;
2229
+ };
2230
+ return Object.assign(parse, { shape });
2231
+ }
2232
+ function wireUnion(tag, variants) {
2233
+ const byTag = new Map;
2234
+ for (const variant of variants) {
2235
+ for (const literal of variant.shape[tag].literals)
2236
+ byTag.set(literal, variant);
2237
+ }
2238
+ return (raw, label) => {
2239
+ const record = requireRecord(raw, label);
2240
+ const variant = byTag.get(record[tag]);
2241
+ if (!variant)
2242
+ throw new Error(`${label}.${tag} is invalid`);
2243
+ return variant(record, label);
2244
+ };
2245
+ }
2246
+
2165
2247
  // ../shared-ts/src/authorization/delegatedAuthority.ts
2166
2248
  var FULL_OWNER_PERMISSIONS = Object.freeze([
2167
2249
  "export_keys",
@@ -2181,6 +2263,12 @@ var DELEGATED_WALLET_PERMISSION_VALUES = [
2181
2263
  var DELEGATED_WALLET_PERMISSION_VALUE_SET = new Set(DELEGATED_WALLET_PERMISSION_VALUES);
2182
2264
  var canonicalPermissionSetBrand = Symbol("canonicalPermissionSetBrand");
2183
2265
 
2266
+ // ../shared-ts/src/device-linking/activeWalletSession.ts
2267
+ var walletSessionHome = wireUnion("kind", [
2268
+ wireObject({ kind: wireLiteral("direct") }),
2269
+ wireObject({ kind: wireLiteral("regional"), region: wireLiteral("US", "WEUR", "APAC", "OC") })
2270
+ ]);
2271
+
2184
2272
  // ../shared-ts/src/utils/routerAbEcdsaDerivation.ts
2185
2273
  var ROUTER_AB_ECDSA_PRESIGN_CEREMONY_MAX_LIFETIME_MS = 5 * 60000;
2186
2274
  var ROUTER_AB_ECDSA_DERIVATION_NORMAL_SIGNING_STATE_KIND_V1 = "router_ab_ecdsa_derivation_normal_signing_v1";
@@ -3996,858 +4084,231 @@ function parseEcdsaRoleLocalWorkerHandle(value) {
3996
4084
  };
3997
4085
  }
3998
4086
 
3999
- // ../shared-ts/src/utils/secureRandomId.ts
4000
- var DEFAULT_SECURE_RANDOM_ID_BYTES = 32;
4001
- function secureRandomBytes(length = DEFAULT_SECURE_RANDOM_ID_BYTES, label = "secure random bytes") {
4002
- const byteLength = Math.max(1, Math.floor(Number(length) || 0));
4003
- const cryptoApi = globalThis.crypto;
4004
- if (typeof cryptoApi?.getRandomValues !== "function") {
4005
- throw new Error(`WebCrypto getRandomValues is required for ${label}`);
4006
- }
4007
- return cryptoApi.getRandomValues(new Uint8Array(byteLength));
4087
+ // ../../node_modules/idb/build/index.js
4088
+ var instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
4089
+ var idbProxyableTypes;
4090
+ var cursorAdvanceMethods;
4091
+ function getIdbProxyableTypes() {
4092
+ return idbProxyableTypes || (idbProxyableTypes = [
4093
+ IDBDatabase,
4094
+ IDBObjectStore,
4095
+ IDBIndex,
4096
+ IDBCursor,
4097
+ IDBTransaction
4098
+ ]);
4008
4099
  }
4009
- function secureRandomBase64Url(byteLength = DEFAULT_SECURE_RANDOM_ID_BYTES, label = "secure random id") {
4010
- return base64UrlEncode(secureRandomBytes(byteLength, label));
4100
+ function getCursorAdvanceMethods() {
4101
+ return cursorAdvanceMethods || (cursorAdvanceMethods = [
4102
+ IDBCursor.prototype.advance,
4103
+ IDBCursor.prototype.continue,
4104
+ IDBCursor.prototype.continuePrimaryKey
4105
+ ]);
4011
4106
  }
4012
- function secureRandomId(prefix, byteLength = DEFAULT_SECURE_RANDOM_ID_BYTES, label = `${prefix} id`) {
4013
- const normalizedPrefix = String(prefix || "").trim() || "id";
4014
- return `${normalizedPrefix}-${secureRandomBase64Url(byteLength, label)}`;
4107
+ var transactionDoneMap = new WeakMap;
4108
+ var transformCache = new WeakMap;
4109
+ var reverseTransformCache = new WeakMap;
4110
+ function promisifyRequest(request) {
4111
+ const promise = new Promise((resolve, reject) => {
4112
+ const unlisten = () => {
4113
+ request.removeEventListener("success", success);
4114
+ request.removeEventListener("error", error);
4115
+ };
4116
+ const success = () => {
4117
+ resolve(wrap(request.result));
4118
+ unlisten();
4119
+ };
4120
+ const error = () => {
4121
+ reject(request.error);
4122
+ unlisten();
4123
+ };
4124
+ request.addEventListener("success", success);
4125
+ request.addEventListener("error", error);
4126
+ });
4127
+ reverseTransformCache.set(promise, request);
4128
+ return promise;
4015
4129
  }
4016
-
4017
- // src/core/signingEngine/interfaces/ecdsaChainTarget.ts
4018
- function nonEmptyString(value) {
4019
- const normalized = String(value ?? "").trim();
4020
- return normalized ? normalized : null;
4130
+ function cacheDonePromiseForTransaction(tx) {
4131
+ if (transactionDoneMap.has(tx))
4132
+ return;
4133
+ const done = new Promise((resolve, reject) => {
4134
+ const unlisten = () => {
4135
+ tx.removeEventListener("complete", complete);
4136
+ tx.removeEventListener("error", error);
4137
+ tx.removeEventListener("abort", error);
4138
+ };
4139
+ const complete = () => {
4140
+ resolve();
4141
+ unlisten();
4142
+ };
4143
+ const error = () => {
4144
+ reject(tx.error || new DOMException("AbortError", "AbortError"));
4145
+ unlisten();
4146
+ };
4147
+ tx.addEventListener("complete", complete);
4148
+ tx.addEventListener("error", error);
4149
+ tx.addEventListener("abort", error);
4150
+ });
4151
+ transactionDoneMap.set(tx, done);
4021
4152
  }
4022
- function normalizePositiveSafeInteger(value, field) {
4023
- const normalized = Number(value);
4024
- if (!Number.isSafeInteger(normalized) || normalized <= 0) {
4025
- throw new Error(`[threshold-ecdsa] ${field} must be a positive safe integer`);
4153
+ var idbProxyTraps = {
4154
+ get(target, prop, receiver) {
4155
+ if (target instanceof IDBTransaction) {
4156
+ if (prop === "done")
4157
+ return transactionDoneMap.get(target);
4158
+ if (prop === "store") {
4159
+ return receiver.objectStoreNames[1] ? undefined : receiver.objectStore(receiver.objectStoreNames[0]);
4160
+ }
4161
+ }
4162
+ return wrap(target[prop]);
4163
+ },
4164
+ set(target, prop, value) {
4165
+ target[prop] = value;
4166
+ return true;
4167
+ },
4168
+ has(target, prop) {
4169
+ if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) {
4170
+ return true;
4171
+ }
4172
+ return prop in target;
4026
4173
  }
4027
- return normalized;
4028
- }
4029
- function defaultNetworkSlug(kind, chainId) {
4030
- return kind === "tempo" ? `tempo-${chainId}` : `evm-${chainId}`;
4174
+ };
4175
+ function replaceTraps(callback) {
4176
+ idbProxyTraps = callback(idbProxyTraps);
4031
4177
  }
4032
- function toWalletId(value) {
4033
- const parsed = parseWalletId(value);
4034
- if (!parsed.ok) {
4035
- throw new Error(parsed.error.message);
4178
+ function wrapFunction(func) {
4179
+ if (getCursorAdvanceMethods().includes(func)) {
4180
+ return function(...args) {
4181
+ func.apply(unwrap(this), args);
4182
+ return wrap(this.request);
4183
+ };
4036
4184
  }
4037
- return parsed.value;
4185
+ return function(...args) {
4186
+ return wrap(func.apply(unwrap(this), args));
4187
+ };
4038
4188
  }
4039
- function thresholdEcdsaChainTargetFromChainFamily(args) {
4040
- const chainId = normalizePositiveSafeInteger(args.chainId, "chainId");
4041
- const networkSlug = nonEmptyString(args.networkSlug) || defaultNetworkSlug(args.chain, chainId);
4042
- if (args.chain === "tempo") {
4043
- return { kind: "tempo", chainId, networkSlug };
4189
+ function transformCachableValue(value) {
4190
+ if (typeof value === "function")
4191
+ return wrapFunction(value);
4192
+ if (value instanceof IDBTransaction)
4193
+ cacheDonePromiseForTransaction(value);
4194
+ if (instanceOfAny(value, getIdbProxyableTypes()))
4195
+ return new Proxy(value, idbProxyTraps);
4196
+ return value;
4197
+ }
4198
+ function wrap(value) {
4199
+ if (value instanceof IDBRequest)
4200
+ return promisifyRequest(value);
4201
+ if (transformCache.has(value))
4202
+ return transformCache.get(value);
4203
+ const newValue = transformCachableValue(value);
4204
+ if (newValue !== value) {
4205
+ transformCache.set(value, newValue);
4206
+ reverseTransformCache.set(newValue, value);
4044
4207
  }
4045
- return { kind: "evm", namespace: "eip155", chainId, networkSlug };
4208
+ return newValue;
4046
4209
  }
4047
- function thresholdEcdsaChainTargetFromRequest(args) {
4048
- const rawKind = String(args.kind ?? args.chain ?? "").trim().toLowerCase();
4049
- if (rawKind !== "evm" && rawKind !== "tempo") {
4050
- throw new Error("[threshold-ecdsa] ECDSA request target requires chain kind evm or tempo");
4210
+ var unwrap = (value) => reverseTransformCache.get(value);
4211
+ function openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {
4212
+ const request = indexedDB.open(name, version);
4213
+ const openPromise = wrap(request);
4214
+ if (upgrade) {
4215
+ request.addEventListener("upgradeneeded", (event) => {
4216
+ upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);
4217
+ });
4051
4218
  }
4052
- if (rawKind === "evm") {
4053
- const namespace = String(args.namespace ?? "eip155").trim().toLowerCase();
4054
- if (namespace !== "eip155") {
4055
- throw new Error("[threshold-ecdsa] EVM chain target namespace must be eip155");
4056
- }
4219
+ if (blocked) {
4220
+ request.addEventListener("blocked", (event) => blocked(event.oldVersion, event.newVersion, event));
4057
4221
  }
4058
- return thresholdEcdsaChainTargetFromChainFamily({
4059
- chain: rawKind,
4060
- chainId: args.chainId,
4061
- networkSlug: args.networkSlug
4062
- });
4063
- }
4064
-
4065
- // ../shared-ts/src/threshold/participants.ts
4066
- function normalizeThresholdEd25519ParticipantId(id) {
4067
- const n = Number(id);
4068
- if (!Number.isSafeInteger(n) || n < 1 || n > 65535)
4069
- return null;
4070
- return n;
4071
- }
4072
- function normalizeThresholdEd25519ParticipantIds(input) {
4073
- if (!Array.isArray(input) || input.length === 0)
4074
- return null;
4075
- const out = [];
4076
- const seen = new Set;
4077
- for (const v of input) {
4078
- const id = normalizeThresholdEd25519ParticipantId(v);
4079
- if (!id)
4080
- return null;
4081
- if (!seen.has(id)) {
4082
- seen.add(id);
4083
- out.push(id);
4222
+ openPromise.then((db) => {
4223
+ if (terminated)
4224
+ db.addEventListener("close", () => terminated());
4225
+ if (blocking) {
4226
+ db.addEventListener("versionchange", (event) => blocking(event.oldVersion, event.newVersion, event));
4084
4227
  }
4228
+ }).catch(() => {});
4229
+ return openPromise;
4230
+ }
4231
+ var readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"];
4232
+ var writeMethods = ["put", "add", "delete", "clear"];
4233
+ var cachedMethods = new Map;
4234
+ function getMethod(target, prop) {
4235
+ if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) {
4236
+ return;
4085
4237
  }
4086
- out.sort((a, b) => a - b);
4087
- return out.length ? out : null;
4238
+ if (cachedMethods.get(prop))
4239
+ return cachedMethods.get(prop);
4240
+ const targetFuncName = prop.replace(/FromIndex$/, "");
4241
+ const useIndex = prop !== targetFuncName;
4242
+ const isWrite = writeMethods.includes(targetFuncName);
4243
+ if (!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) {
4244
+ return;
4245
+ }
4246
+ const method = async function(storeName, ...args) {
4247
+ const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly");
4248
+ let target = tx.store;
4249
+ if (useIndex)
4250
+ target = target.index(args.shift());
4251
+ return (await Promise.all([
4252
+ target[targetFuncName](...args),
4253
+ isWrite && tx.done
4254
+ ]))[0];
4255
+ };
4256
+ cachedMethods.set(prop, method);
4257
+ return method;
4088
4258
  }
4089
-
4090
- // ../shared-ts/src/utils/emailOtpDomain.ts
4091
- var EMAIL_OTP_CHANNEL = "email_otp";
4092
-
4093
- // ../shared-ts/src/utils/signerDomain.ts
4094
- var WALLET_AUTH_METHODS = {
4095
- passkey: "passkey",
4096
- emailOtp: EMAIL_OTP_CHANNEL
4097
- };
4098
- var WALLET_AUTH_METHOD_VALUES = Object.values(WALLET_AUTH_METHODS);
4099
-
4100
- // ../shared-ts/src/utils/thresholdEcdsaKeyHandle.ts
4101
- function requiredString(value, field) {
4102
- const normalized = String(value ?? "").trim();
4103
- if (!normalized)
4104
- throw new Error(`[threshold-ecdsa-key-handle] ${field} is required`);
4105
- return normalized;
4106
- }
4107
- function normalizedSigningRootVersion(value) {
4108
- return String(value ?? "").trim() || "default";
4109
- }
4110
- async function deriveThresholdEcdsaKeyHandle(input) {
4111
- const canonical = alphabetizeStringify({
4112
- domain: "seams.threshold_ecdsa.key_handle.v1",
4113
- ecdsaThresholdKeyId: requiredString(input.ecdsaThresholdKeyId, "ecdsaThresholdKeyId"),
4114
- signingRootId: requiredString(input.signingRootId, "signingRootId"),
4115
- signingRootVersion: normalizedSigningRootVersion(input.signingRootVersion)
4116
- });
4117
- const digest = await sha256BytesUtf8(canonical);
4118
- return `ederivation-key-${base64UrlEncode(digest)}`;
4119
- }
4120
- // ../shared-ts/src/utils/digestEncoding.ts
4121
- var TEXT_ENCODER = new TextEncoder;
4122
- // src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.ts
4123
- function requiredString2(value, field) {
4124
- const normalized = String(value ?? "").trim();
4125
- if (!normalized)
4126
- throw new Error(`[evm-family-ecdsa] ${field} is required`);
4127
- return normalized;
4128
- }
4129
- function normalizeThresholdOwnerAddress(value) {
4130
- const normalized = String(value ?? "").trim().toLowerCase();
4131
- if (!/^0x[0-9a-f]{40}$/.test(normalized)) {
4132
- throw new Error("[evm-family-ecdsa] thresholdOwnerAddress must be an EVM address");
4259
+ replaceTraps((oldTraps) => ({
4260
+ ...oldTraps,
4261
+ get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),
4262
+ has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop)
4263
+ }));
4264
+ var advanceMethodProps = ["continue", "continuePrimaryKey", "advance"];
4265
+ var methodMap = {};
4266
+ var advanceResults = new WeakMap;
4267
+ var ittrProxiedCursorToOriginalProxy = new WeakMap;
4268
+ var cursorIteratorTraps = {
4269
+ get(target, prop) {
4270
+ if (!advanceMethodProps.includes(prop))
4271
+ return target[prop];
4272
+ let cachedFunc = methodMap[prop];
4273
+ if (!cachedFunc) {
4274
+ cachedFunc = methodMap[prop] = function(...args) {
4275
+ advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));
4276
+ };
4277
+ }
4278
+ return cachedFunc;
4133
4279
  }
4134
- return normalized;
4135
- }
4136
- function toEvmFamilyEcdsaKeyHandle(value) {
4137
- return requiredString2(value, "keyHandle");
4138
- }
4139
- function toThresholdEcdsaPublicKeyB64u(value) {
4140
- const normalized = requiredString2(value, "thresholdEcdsaPublicKeyB64u");
4141
- let bytes;
4142
- try {
4143
- bytes = base64UrlDecode(normalized);
4144
- } catch {
4145
- throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must be base64url");
4280
+ };
4281
+ async function* iterate(...args) {
4282
+ let cursor = this;
4283
+ if (!(cursor instanceof IDBCursor)) {
4284
+ cursor = await cursor.openCursor(...args);
4146
4285
  }
4147
- if (bytes.length !== 33) {
4148
- throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must decode to 33 bytes");
4286
+ if (!cursor)
4287
+ return;
4288
+ cursor = cursor;
4289
+ const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);
4290
+ ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);
4291
+ reverseTransformCache.set(proxiedCursor, unwrap(cursor));
4292
+ while (cursor) {
4293
+ yield proxiedCursor;
4294
+ cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());
4295
+ advanceResults.delete(proxiedCursor);
4149
4296
  }
4150
- return normalized;
4151
4297
  }
4152
- function toParticipantId(value) {
4153
- const normalized = Math.floor(Number(value));
4154
- if (!Number.isSafeInteger(normalized) || normalized < 1 || normalized > 65535) {
4155
- throw new Error("[evm-family-ecdsa] participantId must be a positive safe integer");
4156
- }
4157
- return normalized;
4298
+ function isIteratorProp(target, prop) {
4299
+ return prop === Symbol.asyncIterator && instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor]) || prop === "iterate" && instanceOfAny(target, [IDBIndex, IDBObjectStore]);
4158
4300
  }
4159
- function normalizeParticipantIds(value) {
4160
- const participantIds = normalizeThresholdEd25519ParticipantIds(value);
4161
- if (!participantIds?.length) {
4162
- throw new Error("[evm-family-ecdsa] participantIds are required");
4301
+ replaceTraps((oldTraps) => ({
4302
+ ...oldTraps,
4303
+ get(target, prop, receiver) {
4304
+ if (isIteratorProp(target, prop))
4305
+ return iterate;
4306
+ return oldTraps.get(target, prop, receiver);
4307
+ },
4308
+ has(target, prop) {
4309
+ return isIteratorProp(target, prop) || oldTraps.has(target, prop);
4163
4310
  }
4164
- return participantIds.map(toParticipantId);
4165
- }
4166
- function buildVerifiedEcdsaPublicFacts(input) {
4167
- return {
4168
- kind: "verified_ecdsa_public_facts",
4169
- keyHandle: input.keyHandle,
4170
- publicKeyB64u: toThresholdEcdsaPublicKeyB64u(input.publicKeyB64u),
4171
- participantIds: normalizeParticipantIds(input.participantIds),
4172
- thresholdOwnerAddress: normalizeThresholdOwnerAddress(input.thresholdOwnerAddress)
4173
- };
4174
- }
4175
-
4176
- // src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.ts
4177
- function toEcdsaDerivationThresholdKeyId(value) {
4178
- return parseSdkEcdsaDerivationThresholdKeyId(value);
4179
- }
4180
- function toEcdsaDerivationSigningRootId(value) {
4181
- return parseSdkEcdsaDerivationSigningRootId(value);
4182
- }
4183
- function toEcdsaDerivationSigningRootVersion(value) {
4184
- return parseSdkEcdsaDerivationSigningRootVersion(value);
4185
- }
4186
-
4187
- // src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.ts
4188
- function requiredString3(value, field) {
4189
- if (typeof value !== "string" || !value.trim()) {
4190
- throw new Error(`[platform][ecdsa-role-local] ${field} is required`);
4191
- }
4192
- return value.trim();
4193
- }
4194
- function parseBase64UrlBytes(value, field, byteLength) {
4195
- const normalized = requiredString3(value, field);
4196
- const decoded = base64UrlDecode(normalized);
4197
- if (decoded.length !== byteLength) {
4198
- throw new Error(`[platform][ecdsa-role-local] ${field} must decode to ${byteLength} bytes`);
4199
- }
4200
- return normalized;
4201
- }
4202
- function parseCompressedSecp256k1PublicKey(value, field) {
4203
- const normalized = requiredString3(value, field);
4204
- const decoded = base64UrlDecode(normalized);
4205
- if (decoded.length !== 33) {
4206
- throw new Error(`[platform][ecdsa-role-local] ${field} must decode to 33 bytes`);
4207
- }
4208
- if (decoded[0] !== 2 && decoded[0] !== 3) {
4209
- throw new Error(`[platform][ecdsa-role-local] ${field} must be a compressed SEC1 key`);
4210
- }
4211
- return normalized;
4212
- }
4213
- function parseEcdsaDerivationClientSharePublicKey(value) {
4214
- return parseCompressedSecp256k1PublicKey(value, "derivationClientSharePublicKey33B64u");
4215
- }
4216
- function parseRelayerEcdsaDerivationPublicKey(value) {
4217
- return parseCompressedSecp256k1PublicKey(value, "relayerPublicKey33B64u");
4218
- }
4219
- function parseGroupPublicKey(value) {
4220
- return parseCompressedSecp256k1PublicKey(value, "groupPublicKey33B64u");
4221
- }
4222
- function parseEthereumAddress2(value) {
4223
- const normalized = requiredString3(value, "ethereumAddress").toLowerCase();
4224
- if (!/^0x[0-9a-f]{40}$/.test(normalized)) {
4225
- throw new Error("[platform][ecdsa-role-local] ethereumAddress must be an EVM address");
4226
- }
4227
- return normalized;
4228
- }
4229
- function parseParticipantIds(value) {
4230
- if (!Array.isArray(value) || value.length !== 2 || value[0] !== 1 || value[1] !== 2) {
4231
- throw new Error("[platform][ecdsa-role-local] participantIds must be [1, 2]");
4232
- }
4233
- return [1, 2];
4234
- }
4235
- function parseChainTarget(input) {
4236
- if (input === null || typeof input !== "object" || Array.isArray(input)) {
4237
- throw new Error("[platform][ecdsa-role-local] chainTarget must be an object");
4238
- }
4239
- const kind = requiredString3(Reflect.get(input, "kind"), "chainTarget.kind").toLowerCase();
4240
- switch (kind) {
4241
- case "evm": {
4242
- const fields = Object.keys(input).sort();
4243
- if (fields.join(",") !== "chainId,kind,namespace,networkSlug") {
4244
- throw new Error("[platform][ecdsa-role-local] EVM chainTarget fields are invalid");
4245
- }
4246
- return thresholdEcdsaChainTargetFromRequest({
4247
- kind: Reflect.get(input, "kind"),
4248
- namespace: Reflect.get(input, "namespace"),
4249
- chainId: Reflect.get(input, "chainId"),
4250
- networkSlug: Reflect.get(input, "networkSlug")
4251
- });
4252
- }
4253
- case "tempo": {
4254
- const fields = Object.keys(input).sort();
4255
- if (fields.join(",") !== "chainId,kind,networkSlug") {
4256
- throw new Error("[platform][ecdsa-role-local] Tempo chainTarget fields are invalid");
4257
- }
4258
- return thresholdEcdsaChainTargetFromRequest({
4259
- kind: Reflect.get(input, "kind"),
4260
- chainId: Reflect.get(input, "chainId"),
4261
- networkSlug: Reflect.get(input, "networkSlug")
4262
- });
4263
- }
4264
- default:
4265
- throw new Error("[platform][ecdsa-role-local] chainTarget kind is invalid");
4266
- }
4267
- }
4268
- function parsePublicFacts(input) {
4269
- if (input === null || typeof input !== "object" || Array.isArray(input)) {
4270
- throw new Error("[platform][ecdsa-role-local] publicFacts must be an object");
4271
- }
4272
- const fields = Object.keys(input).sort();
4273
- if (fields.join(",") !== "applicationBindingDigestB64u,chainTarget,clientParticipantId,contextBinding32B64u,derivationClientSharePublicKey33B64u,ecdsaThresholdKeyId,ethereumAddress,groupPublicKey33B64u,keyHandle,participantIds,publicCapability,relayerParticipantId,relayerPublicKey33B64u,signingRootId,signingRootVersion,walletId") {
4274
- throw new Error("[platform][ecdsa-role-local] publicFacts fields are invalid");
4275
- }
4276
- if (Reflect.get(input, "clientParticipantId") !== 1) {
4277
- throw new Error("[platform][ecdsa-role-local] clientParticipantId must be 1");
4278
- }
4279
- if (Reflect.get(input, "relayerParticipantId") !== 2) {
4280
- throw new Error("[platform][ecdsa-role-local] relayerParticipantId must be 2");
4281
- }
4282
- const derivationClientSharePublicKey33B64u = parseEcdsaDerivationClientSharePublicKey(Reflect.get(input, "derivationClientSharePublicKey33B64u"));
4283
- const relayerPublicKey33B64u = parseRelayerEcdsaDerivationPublicKey(Reflect.get(input, "relayerPublicKey33B64u"));
4284
- if (String(derivationClientSharePublicKey33B64u) === String(relayerPublicKey33B64u)) {
4285
- throw new Error("[platform][ecdsa-role-local] relayerPublicKey33B64u must differ from derivationClientSharePublicKey33B64u");
4286
- }
4287
- return {
4288
- walletId: toWalletId(Reflect.get(input, "walletId")),
4289
- chainTarget: parseChainTarget(Reflect.get(input, "chainTarget")),
4290
- keyHandle: requiredString3(Reflect.get(input, "keyHandle"), "keyHandle"),
4291
- ecdsaThresholdKeyId: toEcdsaDerivationThresholdKeyId(Reflect.get(input, "ecdsaThresholdKeyId")),
4292
- signingRootId: toEcdsaDerivationSigningRootId(Reflect.get(input, "signingRootId")),
4293
- signingRootVersion: toEcdsaDerivationSigningRootVersion(Reflect.get(input, "signingRootVersion")),
4294
- applicationBindingDigestB64u: parseBase64UrlBytes(Reflect.get(input, "applicationBindingDigestB64u"), "applicationBindingDigestB64u", 32),
4295
- clientParticipantId: 1,
4296
- relayerParticipantId: 2,
4297
- participantIds: parseParticipantIds(Reflect.get(input, "participantIds")),
4298
- contextBinding32B64u: parseBase64UrlBytes(Reflect.get(input, "contextBinding32B64u"), "contextBinding32B64u", 32),
4299
- derivationClientSharePublicKey33B64u,
4300
- relayerPublicKey33B64u,
4301
- groupPublicKey33B64u: parseGroupPublicKey(Reflect.get(input, "groupPublicKey33B64u")),
4302
- ethereumAddress: parseEthereumAddress2(Reflect.get(input, "ethereumAddress")),
4303
- publicCapability: parseRouterAbEcdsaDerivationPublicCapabilityV1(Reflect.get(input, "publicCapability"))
4304
- };
4305
- }
4306
- function buildEcdsaRoleLocalPublicFacts(input) {
4307
- return parsePublicFacts(input);
4308
- }
4309
-
4310
- // src/core/signingEngine/session/material/ecdsaCapabilityManifest.ts
4311
- class EcdsaCapabilityManifestProof {
4312
- retainProof() {
4313
- return true;
4314
- }
4315
- constructor() {
4316
- this.retainProof();
4317
- }
4318
- }
4319
-
4320
- class EcdsaCapabilityScopeProof extends EcdsaCapabilityManifestProof {
4321
- constructor(targetMemberships) {
4322
- super();
4323
- this.kind = "evm_family";
4324
- this.targetMemberships = targetMemberships;
4325
- }
4326
- }
4327
-
4328
- class EcdsaManifestIdentityProof extends EcdsaCapabilityManifestProof {
4329
- constructor(fields) {
4330
- super();
4331
- this.manifestId = fields.manifestId;
4332
- this.manifestRevision = fields.manifestRevision;
4333
- }
4334
- }
4335
-
4336
- class NoCurrentEcdsaManifestExpectationProof extends EcdsaCapabilityManifestProof {
4337
- constructor() {
4338
- super(...arguments);
4339
- this.kind = "no_current_manifest";
4340
- }
4341
- }
4342
-
4343
- class ExactEcdsaManifestExpectationProof extends EcdsaCapabilityManifestProof {
4344
- constructor(identity) {
4345
- super();
4346
- this.kind = "exact_manifest";
4347
- this.manifestId = identity.manifestId;
4348
- this.manifestRevision = identity.manifestRevision;
4349
- }
4350
- }
4351
-
4352
- class NoCurrentEcdsaServerGenerationExpectationProof extends EcdsaCapabilityManifestProof {
4353
- constructor() {
4354
- super(...arguments);
4355
- this.kind = "no_current_generation";
4356
- }
4357
- }
4358
-
4359
- class ExactEcdsaServerGenerationExpectationProof extends EcdsaCapabilityManifestProof {
4360
- constructor(serverGeneration) {
4361
- super();
4362
- this.kind = "exact_generation";
4363
- this.serverGeneration = serverGeneration;
4364
- }
4365
- }
4366
-
4367
- class EcdsaRoleLocalMaterialBindingProof extends EcdsaCapabilityManifestProof {
4368
- constructor(fields) {
4369
- super();
4370
- this.kind = "ecdsa_role_local_material_binding";
4371
- this.keyHandle = fields.keyHandle;
4372
- this.ecdsaThresholdKeyId = fields.ecdsaThresholdKeyId;
4373
- this.clientVerifyingPublicKey33B64u = fields.clientVerifyingPublicKey33B64u;
4374
- this.participantIds = fields.participantIds;
4375
- this.relayerKeyId = fields.relayerKeyId;
4376
- }
4377
- }
4378
-
4379
- class PreparedEvmFamilySignerProof extends EcdsaCapabilityManifestProof {
4380
- constructor(fields) {
4381
- super();
4382
- this.kind = "prepared_evm_family_signer";
4383
- this.capability = fields.capability;
4384
- this.signerId = fields.signerId;
4385
- this.walletId = fields.authority.walletId;
4386
- this.authority = fields.authority;
4387
- this.scope = fields.scope;
4388
- this.materialOwner = fields.materialOwner;
4389
- this.signingRootId = fields.signingRootId;
4390
- this.signingRootVersion = fields.signingRootVersion;
4391
- }
4392
- }
4393
-
4394
- class RegisteredEvmFamilySignerProof extends EcdsaCapabilityManifestProof {
4395
- constructor(fields) {
4396
- super();
4397
- this.kind = "registered_evm_family_signer";
4398
- this.capability = fields.preparedSigner.capability;
4399
- this.signerId = fields.preparedSigner.signerId;
4400
- this.walletId = fields.preparedSigner.walletId;
4401
- this.authority = fields.preparedSigner.authority;
4402
- this.scope = fields.preparedSigner.scope;
4403
- this.materialOwner = fields.preparedSigner.materialOwner;
4404
- this.signingRootId = fields.preparedSigner.signingRootId;
4405
- this.signingRootVersion = fields.preparedSigner.signingRootVersion;
4406
- this.registeredPublicFacts = fields.registeredPublicFacts;
4407
- }
4408
- }
4409
-
4410
- class EncryptedEcdsaPendingCandidateProof extends EcdsaCapabilityManifestProof {
4411
- constructor(fields) {
4412
- super();
4413
- this.kind = "encrypted_ecdsa_pending_candidate";
4414
- this.sealingKeyId = fields.sealingKeyId;
4415
- this.iv12B64u = fields.iv12B64u;
4416
- this.ciphertextB64u = fields.ciphertextB64u;
4417
- this.ciphertextDigest = fields.ciphertextDigest;
4418
- }
4419
- }
4420
-
4421
- class EcdsaActivationBindingProof extends EcdsaCapabilityManifestProof {
4422
- constructor(fields) {
4423
- super();
4424
- this.kind = "ecdsa_activation_binding";
4425
- this.targetManifest = fields.targetManifest;
4426
- this.signer = fields.signer;
4427
- this.roleLocalBinding = fields.roleLocalBinding;
4428
- this.bindingDigest = fields.bindingDigest;
4429
- this.durableMaterialRef = fields.durableMaterialRef;
4430
- }
4431
- }
4432
-
4433
- class PreparedEcdsaActivationCandidateProof extends EcdsaCapabilityManifestProof {
4434
- constructor(fields) {
4435
- super();
4436
- this.kind = "prepared_ecdsa_activation_candidate";
4437
- this.activationBinding = fields.activationBinding;
4438
- this.encryptedPending = fields.encryptedPending;
4439
- }
4440
- }
4441
-
4442
- class EcdsaServerActivationCommandProof extends EcdsaCapabilityManifestProof {
4443
- constructor(fields) {
4444
- super();
4445
- this.kind = "ecdsa_server_activation_command";
4446
- this.correlationId = fields.correlationId;
4447
- this.expectedGeneration = fields.expectedGeneration;
4448
- this.requestDigest = fields.requestDigest;
4449
- this.canonicalRequest = fields.canonicalRequest;
4450
- }
4451
- }
4452
-
4453
- class EcdsaServerActivationReceiptProof extends EcdsaCapabilityManifestProof {
4454
- constructor(fields) {
4455
- super();
4456
- this.kind = "ecdsa_server_activation_receipt";
4457
- this.lifecycleId = fields.lifecycleId;
4458
- this.activationDigest = fields.activationDigest;
4459
- this.activatedAt = fields.activatedAt;
4460
- this.protocolReceipt = fields.protocolReceipt;
4461
- }
4462
- }
4463
-
4464
- class EcdsaServerActivationCommitProof extends EcdsaCapabilityManifestProof {
4465
- constructor(fields) {
4466
- super();
4467
- this.kind = "ecdsa_server_activation_commit";
4468
- this.correlationId = fields.correlationId;
4469
- this.activationRequestDigest = fields.activationRequestDigest;
4470
- this.serverGeneration = fields.serverGeneration;
4471
- this.serverActivationReceipt = fields.serverActivationReceipt;
4472
- }
4473
- }
4474
-
4475
- class PreparedEcdsaActivationJournalProof extends EcdsaCapabilityManifestProof {
4476
- constructor(fields) {
4477
- super();
4478
- this.kind = "activation_prepared";
4479
- this.journalId = fields.journalId;
4480
- this.expectedManifest = fields.expectedManifest;
4481
- this.activationCommand = fields.activationCommand;
4482
- this.candidate = fields.candidate;
4483
- this.createdAt = fields.createdAt;
4484
- }
4485
- }
4486
-
4487
- class ServerCommittedEcdsaActivationJournalProof extends EcdsaCapabilityManifestProof {
4488
- constructor(fields) {
4489
- super();
4490
- this.kind = "server_activation_committed";
4491
- this.journalId = fields.journalId;
4492
- this.expectedManifest = fields.expectedManifest;
4493
- this.activationCommand = fields.activationCommand;
4494
- this.candidate = fields.candidate;
4495
- this.createdAt = fields.createdAt;
4496
- this.serverActivation = fields.serverActivation;
4497
- }
4498
- }
4499
-
4500
- class DurableEcdsaMaterialBindingProof extends EcdsaCapabilityManifestProof {
4501
- constructor(fields) {
4502
- super();
4503
- this.kind = "durable_ecdsa_material";
4504
- this.materialActivation = fields.materialActivation;
4505
- this.routerAbEcdsaDerivationNormalSigning = fields.routerAbEcdsaDerivationNormalSigning;
4506
- this.roleLocalPublicFacts = fields.roleLocalPublicFacts;
4507
- this.roleLocalBinding = fields.roleLocalBinding;
4508
- this.durableMaterialRef = fields.durableMaterialRef;
4509
- this.bindingDigest = fields.bindingDigest;
4510
- this.lifecycleId = fields.lifecycleId;
4511
- this.ciphertextDigest = fields.ciphertextDigest;
4512
- this.activationDigest = fields.activationDigest;
4513
- this.activatedAt = fields.activatedAt;
4514
- this.runtimePolicyScope = fields.runtimePolicyScope;
4515
- }
4516
- }
4517
-
4518
- class ValidatedEncryptedEcdsaReadyMaterialProof extends EcdsaCapabilityManifestProof {
4519
- constructor(fields) {
4520
- super();
4521
- this.kind = "encrypted_ecdsa_ready_material";
4522
- this.binding = fields.binding;
4523
- this.sealingKeyId = fields.sealingKeyId;
4524
- this.iv12B64u = fields.iv12B64u;
4525
- this.ciphertextB64u = fields.ciphertextB64u;
4526
- }
4527
- }
4528
-
4529
- class ActiveEcdsaCapabilityManifestProof extends EcdsaCapabilityManifestProof {
4530
- constructor(fields) {
4531
- super();
4532
- this.kind = "active_ecdsa_capability_manifest";
4533
- this.identity = fields.identity;
4534
- this.signer = fields.signer;
4535
- this.activation = fields.activation;
4536
- this.durableMaterial = fields.durableMaterial;
4537
- this.committedAt = fields.committedAt;
4538
- }
4539
- }
4540
-
4541
- class ReplacedEcdsaCapabilityManifestProof extends EcdsaCapabilityManifestProof {
4542
- constructor(fields) {
4543
- super();
4544
- this.kind = "replaced_ecdsa_capability_manifest";
4545
- this.identity = fields.identity;
4546
- this.signer = fields.signer;
4547
- this.retirement = fields.retirement;
4548
- }
4549
- }
4550
- function unwrapDomainId(result) {
4551
- if (!result.ok)
4552
- throw new Error(result.error.message);
4553
- return result.value;
4554
- }
4555
- function buildEcdsaCapabilityScope(input) {
4556
- assertUniqueEcdsaTargetMemberships(input.targetMemberships);
4557
- return new EcdsaCapabilityScopeProof([...input.targetMemberships]);
4558
- }
4559
- function buildEcdsaManifestIdentity(input) {
4560
- return new EcdsaManifestIdentityProof(input);
4561
- }
4562
- function buildNoCurrentEcdsaManifestExpectation() {
4563
- return new NoCurrentEcdsaManifestExpectationProof;
4564
- }
4565
- function buildExactEcdsaManifestExpectation(identity) {
4566
- return new ExactEcdsaManifestExpectationProof(identity);
4567
- }
4568
- function buildNoCurrentEcdsaServerGenerationExpectation() {
4569
- return new NoCurrentEcdsaServerGenerationExpectationProof;
4570
- }
4571
- function buildExactEcdsaServerGenerationExpectation(serverGeneration) {
4572
- return new ExactEcdsaServerGenerationExpectationProof(serverGeneration);
4573
- }
4574
- function buildEcdsaRoleLocalMaterialBinding(input) {
4575
- assertUniqueParticipantIds(input.participantIds);
4576
- return new EcdsaRoleLocalMaterialBindingProof({
4577
- keyHandle: input.keyHandle,
4578
- ecdsaThresholdKeyId: input.ecdsaThresholdKeyId,
4579
- clientVerifyingPublicKey33B64u: input.clientVerifyingPublicKey33B64u,
4580
- participantIds: [...input.participantIds],
4581
- relayerKeyId: input.relayerKeyId
4582
- });
4583
- }
4584
- function buildPreparedEvmFamilySigner(input) {
4585
- return new PreparedEvmFamilySignerProof(input);
4586
- }
4587
- function buildEncryptedEcdsaPendingCandidate(input) {
4588
- return new EncryptedEcdsaPendingCandidateProof(input);
4589
- }
4590
- function buildEcdsaActivationBinding(input) {
4591
- return new EcdsaActivationBindingProof(input);
4592
- }
4593
- function buildPreparedEcdsaActivationCandidate(input) {
4594
- return new PreparedEcdsaActivationCandidateProof(input);
4595
- }
4596
- function buildPreparedEcdsaActivationJournal(input) {
4597
- assertTargetManifestTransition(input.expectedManifest, input.candidate.activationBinding.targetManifest);
4598
- assertExpectedStatePair(input.expectedManifest, input.expectedGeneration);
4599
- const activationCommand = new EcdsaServerActivationCommandProof({
4600
- correlationId: input.journalId,
4601
- expectedGeneration: input.expectedGeneration,
4602
- requestDigest: input.requestDigest,
4603
- canonicalRequest: input.canonicalRequest
4604
- });
4605
- return new PreparedEcdsaActivationJournalProof({
4606
- journalId: input.journalId,
4607
- expectedManifest: input.expectedManifest,
4608
- activationCommand,
4609
- candidate: input.candidate,
4610
- createdAt: input.createdAt
4611
- });
4612
- }
4613
- function buildEcdsaServerActivationCommit(input) {
4614
- const protocolReceipt = parseRouterAbEcdsaRegistrationActivationReceiptV1(input.serverCommit.protocolReceipt);
4615
- assertProtocolReceiptMatchesServerCommit(protocolReceipt, input.serverCommit);
4616
- assertProtocolReceiptMatchesActivationBinding(protocolReceipt, input.activationBinding);
4617
- const serverActivationReceipt = new EcdsaServerActivationReceiptProof({
4618
- lifecycleId: lifecycleIdFromProtocolReceipt(protocolReceipt),
4619
- activationDigest: activationDigestFromProtocolReceipt(protocolReceipt),
4620
- activatedAt: isoTimestampFromUnixMs(protocolReceipt.ecdsa_activation.activated_at_ms),
4621
- protocolReceipt
4622
- });
4623
- return new EcdsaServerActivationCommitProof({
4624
- correlationId: input.serverCommit.correlationId,
4625
- activationRequestDigest: input.serverCommit.activationRequestDigest,
4626
- serverGeneration: input.serverCommit.serverGeneration,
4627
- serverActivationReceipt
4628
- });
4629
- }
4630
- function buildServerCommittedEcdsaActivationJournal(input) {
4631
- assertServerCommitMatchesPreparedCommand(input.serverCommit, input.preparedJournal);
4632
- const serverActivation = buildEcdsaServerActivationCommit({
4633
- activationBinding: input.preparedJournal.candidate.activationBinding,
4634
- serverCommit: input.serverCommit
4635
- });
4636
- return new ServerCommittedEcdsaActivationJournalProof({
4637
- journalId: input.preparedJournal.journalId,
4638
- expectedManifest: input.preparedJournal.expectedManifest,
4639
- activationCommand: input.preparedJournal.activationCommand,
4640
- candidate: input.preparedJournal.candidate,
4641
- createdAt: input.preparedJournal.createdAt,
4642
- serverActivation
4643
- });
4644
- }
4645
- function buildDurableEcdsaMaterialBinding(input) {
4646
- assertServerActivationMatchesBinding(input.serverActivation, input.activationBinding);
4647
- const facts = input.roleLocalPublicFacts;
4648
- const binding = input.activationBinding;
4649
- const runtimePolicyScope = normalizeRuntimePolicyScope(input.runtimePolicyScope);
4650
- if (facts.walletId !== binding.signer.walletId || facts.keyHandle !== binding.roleLocalBinding.keyHandle || facts.ecdsaThresholdKeyId !== binding.roleLocalBinding.ecdsaThresholdKeyId || facts.signingRootId !== binding.signer.signingRootId || facts.signingRootVersion !== binding.signer.signingRootVersion || deriveSigningRootId(runtimePolicyScope) !== binding.signer.signingRootId || runtimePolicyScope.signingRootVersion !== binding.signer.signingRootVersion || facts.contextBinding32B64u !== binding.bindingDigest || !participantIdsMatch(facts.participantIds, binding.roleLocalBinding.participantIds) || !binding.signer.scope.targetMemberships.some((target) => ecdsaTargetMembershipKey(target) === ecdsaTargetMembershipKey(facts.chainTarget))) {
4651
- throw new Error("ECDSA role-local public facts do not match their activation");
4652
- }
4653
- const receipt = input.serverActivation.serverActivationReceipt;
4654
- assertNormalSigningMatchesActivation({
4655
- normalSigning: input.routerAbEcdsaDerivationNormalSigning,
4656
- activationBinding: binding,
4657
- roleLocalPublicFacts: facts,
4658
- receipt: receipt.protocolReceipt
4659
- });
4660
- return new DurableEcdsaMaterialBindingProof({
4661
- materialActivation: materialActivationFromCommit(receipt.protocolReceipt),
4662
- routerAbEcdsaDerivationNormalSigning: input.routerAbEcdsaDerivationNormalSigning,
4663
- roleLocalPublicFacts: input.roleLocalPublicFacts,
4664
- roleLocalBinding: input.activationBinding.roleLocalBinding,
4665
- durableMaterialRef: input.activationBinding.durableMaterialRef,
4666
- bindingDigest: input.activationBinding.bindingDigest,
4667
- lifecycleId: receipt.lifecycleId,
4668
- ciphertextDigest: input.ciphertextDigest,
4669
- activationDigest: receipt.activationDigest,
4670
- activatedAt: receipt.activatedAt,
4671
- runtimePolicyScope
4672
- });
4673
- }
4674
- function buildValidatedEncryptedEcdsaReadyMaterial(input) {
4675
- return new ValidatedEncryptedEcdsaReadyMaterialProof({
4676
- binding: input.binding,
4677
- sealingKeyId: input.sealingKeyId,
4678
- iv12B64u: input.iv12B64u,
4679
- ciphertextB64u: input.ciphertextB64u
4680
- });
4681
- }
4682
- function buildActiveEcdsaCapabilityManifest(input) {
4683
- assertRegisteredPublicFactsMatchBinding(input.registeredPublicFacts, input.activationBinding.roleLocalBinding, input.serverActivation);
4684
- assertDurableMaterialMatchesActivation(input.durableMaterial, input.activationBinding, input.serverActivation);
4685
- const signer = new RegisteredEvmFamilySignerProof({
4686
- preparedSigner: input.activationBinding.signer,
4687
- registeredPublicFacts: input.registeredPublicFacts
4688
- });
4689
- const activation = {
4690
- kind: "active_ecdsa_material_activation",
4691
- materialActivation: input.durableMaterial.materialActivation,
4692
- serverActivation: input.serverActivation,
4693
- retention: "retained"
4694
- };
4695
- return new ActiveEcdsaCapabilityManifestProof({
4696
- identity: input.activationBinding.targetManifest,
4697
- signer,
4698
- activation,
4699
- durableMaterial: input.durableMaterial,
4700
- committedAt: input.committedAt
4701
- });
4702
- }
4703
- function buildReplacedEcdsaCapabilityManifest(input) {
4704
- assertValidEcdsaReplacement(input.activeManifest, input.replacementManifest);
4705
- return new ReplacedEcdsaCapabilityManifestProof({
4706
- identity: input.activeManifest.identity,
4707
- signer: input.activeManifest.signer,
4708
- retirement: {
4709
- kind: "replaced",
4710
- replacementManifest: input.replacementManifest.identity,
4711
- replacementActivation: input.replacementManifest.activation.serverActivation
4712
- }
4713
- });
4714
- }
4715
- function assertUniqueEcdsaTargetMemberships(targetMemberships) {
4716
- const targetKeys = targetMemberships.map(ecdsaTargetMembershipKey);
4717
- if (new Set(targetKeys).size !== targetKeys.length) {
4718
- throw new Error("ECDSA capability target memberships must be unique");
4719
- }
4720
- }
4721
- function ecdsaTargetMembershipKey(target) {
4722
- switch (target.kind) {
4723
- case "evm":
4724
- return `evm:${target.namespace}:${target.chainId}:${target.networkSlug}`;
4725
- case "tempo":
4726
- return `tempo:${target.chainId}:${target.networkSlug}`;
4727
- default:
4728
- return assertNever(target);
4729
- }
4730
- }
4731
- function assertUniqueParticipantIds(participantIds) {
4732
- const normalizedIds = participantIds.map(Number);
4733
- if (normalizedIds.some((participantId) => !Number.isSafeInteger(participantId) || participantId < 1) || new Set(normalizedIds).size !== normalizedIds.length) {
4734
- throw new Error("ECDSA participant ids must be unique positive integers");
4735
- }
4736
- }
4737
- function assertTargetManifestTransition(expected, target) {
4738
- switch (expected.kind) {
4739
- case "no_current_manifest":
4740
- if (Number(target.manifestRevision) !== 1) {
4741
- throw new Error("Initial ECDSA manifest revision must be 1");
4742
- }
4743
- return;
4744
- case "exact_manifest":
4745
- if (target.manifestId === expected.manifestId || Number(target.manifestRevision) !== Number(expected.manifestRevision) + 1) {
4746
- throw new Error("Replacement ECDSA manifest must use a fresh id and next revision");
4747
- }
4748
- return;
4749
- default:
4750
- return assertNever(expected);
4751
- }
4752
- }
4753
- function assertExpectedStatePair(expectedManifest, expectedGeneration) {
4754
- switch (expectedManifest.kind) {
4755
- case "no_current_manifest":
4756
- if (expectedGeneration.kind !== "no_current_generation") {
4757
- throw new Error("Initial ECDSA activation cannot expect a server generation");
4758
- }
4759
- return;
4760
- case "exact_manifest":
4761
- if (expectedGeneration.kind !== "exact_generation") {
4762
- throw new Error("Replacement ECDSA activation requires an exact server generation");
4763
- }
4764
- return;
4765
- default:
4766
- return assertNever(expectedManifest);
4767
- }
4768
- }
4769
- function assertServerCommitMatchesPreparedCommand(serverCommit, journal) {
4770
- const canonicalRequest = JSON.parse(journal.activationCommand.canonicalRequest);
4771
- const requestDigestNamesOuterOperation = canonicalRequest.operation === "wallet_registration_activate_v2";
4772
- if (serverCommit.correlationId !== journal.activationCommand.correlationId || !requestDigestNamesOuterOperation && serverCommit.activationRequestDigest !== journal.activationCommand.requestDigest) {
4773
- throw new Error("ECDSA server activation commit does not match the prepared command");
4774
- }
4775
- }
4776
- function assertProtocolReceiptMatchesActivationBinding(receipt, activationBinding) {
4777
- const publicIdentity = receipt.ecdsa_activation.public_identity;
4778
- const materialActivation = receipt.ecdsa_activation.material_activation;
4779
- materialActivationFromCommit(receipt);
4780
- if (publicIdentity.context_binding_b64u !== String(activationBinding.bindingDigest) || publicIdentity.derivation_client_share_public_key33_b64u !== String(activationBinding.roleLocalBinding.clientVerifyingPublicKey33B64u) || materialActivation.material_owner !== String(activationBinding.signer.materialOwner) || materialActivation.key_binding !== String(activationBinding.bindingDigest) || materialActivation.lifecycle_binding !== receipt.lifecycle_id || materialActivation.signing_worker !== receipt.ecdsa_activation.signing_worker.server_id) {
4781
- throw new Error("ECDSA activation receipt does not match the prepared material binding");
4782
- }
4783
- }
4784
- function assertProtocolReceiptMatchesServerCommit(receipt, serverCommit) {
4785
- const receiptRequestDigest = base64UrlEncode(Uint8Array.from(receipt.activation_request_digest.bytes));
4786
- if (receipt.activation_correlation_id !== serverCommit.correlationId || receiptRequestDigest !== serverCommit.activationRequestDigest || receipt.server_generation !== serverCommit.serverGeneration) {
4787
- throw new Error("ECDSA activation receipt does not match the server activation commit");
4788
- }
4789
- }
4790
- function lifecycleIdFromProtocolReceipt(receipt) {
4791
- return parseEcdsaLifecycleId(receipt.lifecycle_id);
4792
- }
4793
- function activationDigestFromProtocolReceipt(receipt) {
4794
- return parseEcdsaActivationDigest(receipt.ecdsa_activation.activation_digest_b64u);
4795
- }
4796
- function materialActivationFromCommit(receipt) {
4797
- return routerAbMpcMaterialActivationRefFromWire(receipt.ecdsa_activation.material_activation);
4798
- }
4799
- function assertRegisteredPublicFactsMatchBinding(publicFacts, binding, serverActivation) {
4800
- const receiptPublicIdentity = serverActivation.serverActivationReceipt.protocolReceipt.ecdsa_activation.public_identity;
4801
- if (String(publicFacts.keyHandle) !== String(binding.keyHandle) || String(publicFacts.publicKeyB64u) !== receiptPublicIdentity.threshold_public_key33_b64u || String(binding.clientVerifyingPublicKey33B64u) !== receiptPublicIdentity.derivation_client_share_public_key33_b64u || !participantIdsMatch(publicFacts.participantIds, binding.participantIds)) {
4802
- throw new Error("Registered ECDSA public facts do not match role-local material");
4803
- }
4804
- }
4805
- function participantIdsMatch(left, right) {
4806
- if (left.length !== right.length)
4807
- return false;
4808
- return left.every((participantId, index) => Number(participantId) === Number(right[index]));
4809
- }
4810
- function assertServerActivationMatchesBinding(serverActivation, activationBinding) {
4811
- assertProtocolReceiptMatchesActivationBinding(serverActivation.serverActivationReceipt.protocolReceipt, activationBinding);
4812
- }
4813
- function assertDurableMaterialMatchesActivation(durableMaterial, activationBinding, serverActivation) {
4814
- const receipt = serverActivation.serverActivationReceipt;
4815
- const committedMaterialActivation = materialActivationFromCommit(receipt.protocolReceipt);
4816
- if (!mpcMaterialActivationRefsEqual(durableMaterial.materialActivation, committedMaterialActivation) || durableMaterial.roleLocalBinding !== activationBinding.roleLocalBinding || durableMaterial.durableMaterialRef !== activationBinding.durableMaterialRef || durableMaterial.bindingDigest !== activationBinding.bindingDigest || durableMaterial.lifecycleId !== receipt.lifecycleId || durableMaterial.activationDigest !== receipt.activationDigest || durableMaterial.activatedAt !== receipt.activatedAt) {
4817
- throw new Error("Durable ECDSA material does not match its activation");
4818
- }
4819
- assertNormalSigningMatchesActivation({
4820
- normalSigning: durableMaterial.routerAbEcdsaDerivationNormalSigning,
4821
- activationBinding,
4822
- roleLocalPublicFacts: durableMaterial.roleLocalPublicFacts,
4823
- receipt: receipt.protocolReceipt
4824
- });
4825
- }
4826
- function assertNormalSigningMatchesActivation(input) {
4827
- const scope = input.normalSigning.scope;
4828
- const facts = input.roleLocalPublicFacts;
4829
- const expectedMaterialActivation = materialActivationFromCommit(input.receipt);
4830
- const expectedMaterialActivationWire = routerAbMpcMaterialActivationRefToWire({
4831
- kind: expectedMaterialActivation.kind,
4832
- activationId: expectedMaterialActivation.activationId,
4833
- capability: expectedMaterialActivation.capability,
4834
- materialOwner: expectedMaterialActivation.materialOwner,
4835
- keyBinding: expectedMaterialActivation.keyBinding,
4836
- lifecycleBinding: expectedMaterialActivation.lifecycleBinding,
4837
- signingWorker: expectedMaterialActivation.signingWorker
4838
- });
4839
- if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !sameRouterAbEcdsaDerivationPublicIdentityV1(scope.public_identity, input.receipt.ecdsa_activation.public_identity) || !sameRouterAbServerIdentityV1(scope.signing_worker, input.receipt.ecdsa_activation.signing_worker) || scope.activation_epoch !== input.receipt.ecdsa_activation.activation_epoch || scope.public_identity.context_binding_b64u !== facts.contextBinding32B64u || scope.public_identity.derivation_client_share_public_key33_b64u !== facts.derivationClientSharePublicKey33B64u || scope.public_identity.server_public_key33_b64u !== facts.relayerPublicKey33B64u || scope.public_identity.threshold_public_key33_b64u !== facts.groupPublicKey33B64u || !sameRouterAbMpcMaterialActivationRef(scope.material_activation, expectedMaterialActivationWire)) {
4840
- throw new Error("ECDSA normal-signing runtime does not match its activation");
4841
- }
4842
- }
4843
- function assertValidEcdsaReplacement(active, replacement) {
4844
- if (active.identity.manifestId === replacement.identity.manifestId || Number(replacement.identity.manifestRevision) !== Number(active.identity.manifestRevision) + 1 || active.signer.capability !== replacement.signer.capability || active.signer.signerId !== replacement.signer.signerId || active.signer.walletId !== replacement.signer.walletId || active.signer.authority.authorityDigest !== replacement.signer.authority.authorityDigest || active.signer.materialOwner !== replacement.signer.materialOwner || active.durableMaterial.durableMaterialRef === replacement.durableMaterial.durableMaterialRef || active.activation.serverActivation.serverGeneration === replacement.activation.serverActivation.serverGeneration) {
4845
- throw new Error("ECDSA replacement manifest does not exactly replace the active manifest");
4846
- }
4847
- }
4848
- function assertNever(value) {
4849
- throw new Error(`Unexpected ECDSA capability branch: ${String(value)}`);
4850
- }
4311
+ }));
4851
4312
 
4852
4313
  // src/core/indexedDB/schemaNames.ts
4853
4314
  var SEAMS_WALLET_DB_NAME = "seams_wallet";
@@ -5361,466 +4822,1191 @@ var SEAMS_WALLET_SCHEMA_MANIFEST = [
5361
4822
  }
5362
4823
  ]
5363
4824
  }
5364
- ];
4825
+ ];
4826
+
4827
+ // src/core/indexedDB/seamsWalletDB/schema.ts
4828
+ var SEAMS_WALLET_DB_CONFIG = {
4829
+ dbName: SEAMS_WALLET_DB_NAME,
4830
+ dbVersion: SEAMS_WALLET_DB_VERSION
4831
+ };
4832
+ function keyPathForIndexedDB(keyPath) {
4833
+ return typeof keyPath === "string" ? keyPath : [...keyPath];
4834
+ }
4835
+ function createCanonicalStore(db, definition) {
4836
+ const store = db.createObjectStore(definition.store, {
4837
+ keyPath: keyPathForIndexedDB(definition.keyPath)
4838
+ });
4839
+ for (const index of definition.indexes) {
4840
+ store.createIndex(index.name, keyPathForIndexedDB(index.keyPath), { unique: index.unique });
4841
+ }
4842
+ }
4843
+ function upgradeSeamsWalletDBSchema(db) {
4844
+ for (const definition of SEAMS_WALLET_SCHEMA_MANIFEST) {
4845
+ if (db.objectStoreNames.contains(definition.store))
4846
+ continue;
4847
+ createCanonicalStore(db, definition);
4848
+ }
4849
+ }
4850
+
4851
+ // src/core/indexedDB/seamsWalletDB/manager.ts
4852
+ var INDEXED_DB_BLOCKED_OPEN_TIMEOUT_MS = 3000;
4853
+ var INDEXED_DB_OPEN_TIMEOUT_MS = 8000;
4854
+ var INDEXED_DB_TRANSACTION_TIMEOUT_MS = 8000;
4855
+ function seamsWalletDbOpenBlockedError(dbName) {
4856
+ return new Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${dbName}. Close other tabs using this app and retry.`);
4857
+ }
4858
+ function indexedDbTimeoutError(message) {
4859
+ return new Error(message);
4860
+ }
4861
+ async function withTimeout(promise, ms, error, onTimeout) {
4862
+ let settled = false;
4863
+ let timeout = null;
4864
+ const timeoutPromise = new Promise((_resolve, reject) => {
4865
+ timeout = setTimeout(() => {
4866
+ if (settled)
4867
+ return;
4868
+ onTimeout?.();
4869
+ reject(error);
4870
+ }, ms);
4871
+ });
4872
+ try {
4873
+ return await Promise.race([promise, timeoutPromise]);
4874
+ } finally {
4875
+ settled = true;
4876
+ if (timeout)
4877
+ clearTimeout(timeout);
4878
+ }
4879
+ }
4880
+ async function runIndexedDbTransactionTask(context, task) {
4881
+ const result = await task(context);
4882
+ await context.tx.done;
4883
+ return result;
4884
+ }
4885
+ var WALLET_AUTHORITY_STORES = new Set([
4886
+ SEAMS_WALLET_STORES.walletAuthorities,
4887
+ SEAMS_WALLET_STORES.walletAuthoritySignerMaterials,
4888
+ SEAMS_WALLET_STORES.walletAuthorityExportRoots,
4889
+ SEAMS_WALLET_STORES.walletAuthMethods,
4890
+ SEAMS_WALLET_STORES.walletSelections,
4891
+ SEAMS_WALLET_STORES.walletSessionAuthorizations
4892
+ ]);
4893
+ function recordWalletAuthorityWrite(writes, store, operation, ...args) {
4894
+ const result = Reflect.apply(operation, store, args);
4895
+ writes.changed = true;
4896
+ return result;
4897
+ }
4898
+ function walletAuthorityStoreMember(writes, store, member) {
4899
+ const value = Reflect.get(store, member);
4900
+ if (typeof value !== "function")
4901
+ return value;
4902
+ switch (member) {
4903
+ case "add":
4904
+ case "put":
4905
+ case "delete":
4906
+ case "clear":
4907
+ return recordWalletAuthorityWrite.bind(null, writes, store, value);
4908
+ default:
4909
+ return value.bind(store);
4910
+ }
4911
+ }
4912
+ function walletTransactionStore(tx, writes, name) {
4913
+ const store = tx.objectStore(name);
4914
+ if (tx.mode === "readonly" || !WALLET_AUTHORITY_STORES.has(name))
4915
+ return store;
4916
+ return new Proxy(store, { get: walletAuthorityStoreMember.bind(null, writes) });
4917
+ }
4918
+ function ignoreAbortedWalletTransaction() {}
4919
+ function openWalletAuthorityChannel(dbName) {
4920
+ if (typeof BroadcastChannel === "undefined")
4921
+ return null;
4922
+ try {
4923
+ return new BroadcastChannel(`seams-wallet-authority:${dbName}`);
4924
+ } catch (error) {
4925
+ console.warn("[SeamsWalletDBManager] Authority notifications are unavailable:", error);
4926
+ return null;
4927
+ }
4928
+ }
4929
+
4930
+ class SeamsWalletDBManager {
4931
+ onWalletAuthorityChange(listener) {
4932
+ this.walletAuthorityListeners.add(listener);
4933
+ this.connectWalletAuthorityChannel();
4934
+ return this.removeWalletAuthorityListener.bind(this, listener);
4935
+ }
4936
+ removeWalletAuthorityListener(listener) {
4937
+ this.walletAuthorityListeners.delete(listener);
4938
+ if (this.walletAuthorityListeners.size === 0)
4939
+ this.closeWalletAuthorityChannel();
4940
+ }
4941
+ getWalletAuthorityRevision() {
4942
+ return this.walletAuthorityRevision;
4943
+ }
4944
+ publishWalletAuthorityCommit(writes, dbName) {
4945
+ if (!writes.changed)
4946
+ return;
4947
+ if (dbName === this.config.dbName)
4948
+ this.invalidateWalletAuthority();
4949
+ const channel = dbName === this.config.dbName ? this.walletAuthorityChannel : null;
4950
+ const publisher = channel ?? openWalletAuthorityChannel(dbName);
4951
+ if (!publisher)
4952
+ return;
4953
+ try {
4954
+ publisher.postMessage("authority_committed");
4955
+ } catch (error) {
4956
+ console.warn("[SeamsWalletDBManager] Authority notification failed:", error);
4957
+ } finally {
4958
+ if (publisher !== channel)
4959
+ publisher.close();
4960
+ }
4961
+ }
4962
+ connectWalletAuthorityChannel() {
4963
+ if (this.disabled || this.walletAuthorityChannel || this.walletAuthorityListeners.size === 0)
4964
+ return;
4965
+ const channel = openWalletAuthorityChannel(this.config.dbName);
4966
+ if (!channel)
4967
+ return;
4968
+ channel.onmessage = this.receiveWalletAuthorityCommit.bind(this, channel);
4969
+ this.walletAuthorityChannel = channel;
4970
+ }
4971
+ closeWalletAuthorityChannel() {
4972
+ this.walletAuthorityChannel?.close();
4973
+ this.walletAuthorityChannel = null;
4974
+ }
4975
+ receiveWalletAuthorityCommit(channel, event) {
4976
+ if (channel !== this.walletAuthorityChannel || event.data !== "authority_committed")
4977
+ return;
4978
+ this.invalidateWalletAuthority();
4979
+ }
4980
+ invalidateWalletAuthority() {
4981
+ this.walletAuthorityRevision += 1;
4982
+ for (const listener of Array.from(this.walletAuthorityListeners)) {
4983
+ try {
4984
+ listener();
4985
+ } catch {}
4986
+ }
4987
+ }
4988
+ constructor(config = SEAMS_WALLET_DB_CONFIG) {
4989
+ this.dbPromise = null;
4990
+ this.disabled = false;
4991
+ this.walletAuthorityRevision = 0;
4992
+ this.walletAuthorityChannel = null;
4993
+ this.walletAuthorityListeners = new Set;
4994
+ this.config = config;
4995
+ }
4996
+ getDbName() {
4997
+ return this.config.dbName;
4998
+ }
4999
+ setDbName(dbName) {
5000
+ if (this.config.dbName === dbName)
5001
+ return;
5002
+ this.close();
5003
+ this.closeWalletAuthorityChannel();
5004
+ this.config = { ...this.config, dbName };
5005
+ this.connectWalletAuthorityChannel();
5006
+ this.invalidateWalletAuthority();
5007
+ }
5008
+ setDisabled(disabled) {
5009
+ this.disabled = disabled;
5010
+ if (disabled) {
5011
+ this.close();
5012
+ this.closeWalletAuthorityChannel();
5013
+ } else {
5014
+ this.connectWalletAuthorityChannel();
5015
+ }
5016
+ }
5017
+ isDisabled() {
5018
+ return this.disabled;
5019
+ }
5020
+ close() {
5021
+ if (this.dbPromise) {
5022
+ this.dbPromise.then((db) => db.close()).catch(() => {
5023
+ return;
5024
+ });
5025
+ this.dbPromise = null;
5026
+ }
5027
+ }
5028
+ async getDB() {
5029
+ if (this.disabled) {
5030
+ throw new Error("[SeamsWalletDBManager] IndexedDB is disabled in this environment.");
5031
+ }
5032
+ if (!this.dbPromise) {
5033
+ const dbName = this.config.dbName;
5034
+ const dbVersion = this.config.dbVersion;
5035
+ let blockedTimer = null;
5036
+ let rejectBlockedOpen = null;
5037
+ const blockedOpen = new Promise((_resolve, reject) => {
5038
+ rejectBlockedOpen = reject;
5039
+ });
5040
+ const openPromise = openDB(dbName, dbVersion, {
5041
+ upgrade(db) {
5042
+ upgradeSeamsWalletDBSchema(db);
5043
+ },
5044
+ blocked() {
5045
+ console.warn("[SeamsWalletDBManager] IndexedDB open is blocked.", {
5046
+ dbName,
5047
+ dbVersion
5048
+ });
5049
+ blockedTimer = setTimeout(() => {
5050
+ rejectBlockedOpen?.(seamsWalletDbOpenBlockedError(dbName));
5051
+ }, INDEXED_DB_BLOCKED_OPEN_TIMEOUT_MS);
5052
+ },
5053
+ blocking: () => {
5054
+ console.warn("[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.", {
5055
+ dbName,
5056
+ dbVersion
5057
+ });
5058
+ this.close();
5059
+ },
5060
+ terminated() {
5061
+ console.warn("[SeamsWalletDBManager] IndexedDB connection has been terminated.", {
5062
+ dbName,
5063
+ dbVersion
5064
+ });
5065
+ }
5066
+ });
5067
+ const guardedOpen = withTimeout(Promise.race([openPromise, blockedOpen]).finally(() => {
5068
+ if (blockedTimer)
5069
+ clearTimeout(blockedTimer);
5070
+ }), INDEXED_DB_OPEN_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB open timed out for ${dbName}. Close other tabs using this app and retry.`));
5071
+ this.dbPromise = guardedOpen.catch((error) => {
5072
+ this.dbPromise = null;
5073
+ openPromise.then((db) => db.close()).catch(() => {
5074
+ return;
5075
+ });
5076
+ throw error;
5077
+ });
5078
+ }
5079
+ return await this.dbPromise;
5080
+ }
5081
+ async runTransaction(stores, mode, task, options) {
5082
+ const db = await withTimeout(this.getDB(), INDEXED_DB_OPEN_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`));
5083
+ const tx = db.transaction([...stores], mode, options);
5084
+ const writes = { changed: false };
5085
+ const context = {
5086
+ db,
5087
+ tx,
5088
+ store: walletTransactionStore.bind(null, tx, writes)
5089
+ };
5090
+ tx.done.then(this.publishWalletAuthorityCommit.bind(this, writes, db.name)).catch(ignoreAbortedWalletTransaction);
5091
+ try {
5092
+ return await withTimeout(runIndexedDbTransactionTask(context, task), INDEXED_DB_TRANSACTION_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`), () => {
5093
+ try {
5094
+ tx.abort();
5095
+ } catch {}
5096
+ });
5097
+ } catch (error) {
5098
+ try {
5099
+ tx.abort();
5100
+ } catch {}
5101
+ await tx.done.catch(() => {
5102
+ return;
5103
+ });
5104
+ throw error;
5105
+ }
5106
+ }
5107
+ }
5108
+
5109
+ // src/core/indexedDB/singletons.ts
5110
+ var seamsWalletDB = new SeamsWalletDBManager;
5111
+
5112
+ // src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.ts
5113
+ var FIXED_ECDSA_PRESIGN_PROTOCOL_ID = "seams/router-ab-ecdsa-presign/fixed-2of2/v1";
5114
+ function requireIdentityString(value, label) {
5115
+ if (typeof value !== "string" || !value)
5116
+ throw new Error(`${label} is required`);
5117
+ if (value.trim() !== value)
5118
+ throw new Error(`${label} must be canonical`);
5119
+ return value;
5120
+ }
5121
+ function parseEcdsaClientPresignPoolIdentity(value) {
5122
+ if (typeof value !== "object" || value === null) {
5123
+ throw new Error("poolIdentity is required");
5124
+ }
5125
+ const raw = value;
5126
+ if (!Number.isSafeInteger(raw.ownershipGeneration) || Number(raw.ownershipGeneration) < 1) {
5127
+ throw new Error("poolIdentity.ownershipGeneration must be a positive safe integer");
5128
+ }
5129
+ if (raw.pairRole !== "client")
5130
+ throw new Error("poolIdentity.pairRole must be client");
5131
+ if (raw.protocolId !== FIXED_ECDSA_PRESIGN_PROTOCOL_ID) {
5132
+ throw new Error("poolIdentity.protocolId is unsupported");
5133
+ }
5134
+ const relayerUrl = requireIdentityString(raw.relayerUrl, "poolIdentity.relayerUrl");
5135
+ if (relayerUrl.replace(/\/+$/g, "") !== relayerUrl) {
5136
+ throw new Error("poolIdentity.relayerUrl must be canonical");
5137
+ }
5138
+ return {
5139
+ ownershipGeneration: Number(raw.ownershipGeneration),
5140
+ relayerUrl,
5141
+ materialActivationB64u: requireIdentityString(raw.materialActivationB64u, "poolIdentity.materialActivationB64u"),
5142
+ materialActivationId: requireIdentityString(raw.materialActivationId, "poolIdentity.materialActivationId"),
5143
+ capability: requireIdentityString(raw.capability, "poolIdentity.capability"),
5144
+ keyBinding: requireIdentityString(raw.keyBinding, "poolIdentity.keyBinding"),
5145
+ walletId: requireIdentityString(raw.walletId, "poolIdentity.walletId"),
5146
+ signingScopeB64u: requireIdentityString(raw.signingScopeB64u, "poolIdentity.signingScopeB64u"),
5147
+ pairRole: "client",
5148
+ keyEpoch: requireIdentityString(raw.keyEpoch, "poolIdentity.keyEpoch"),
5149
+ activationEpoch: requirePoolRootShareEpoch(raw.activationEpoch),
5150
+ protocolId: FIXED_ECDSA_PRESIGN_PROTOCOL_ID
5151
+ };
5152
+ }
5153
+ function requirePoolRootShareEpoch(value) {
5154
+ const parsed = parseRootShareEpoch(value);
5155
+ if (!parsed.ok)
5156
+ throw new Error("poolIdentity.activationEpoch is invalid");
5157
+ return parsed.value;
5158
+ }
5159
+ function equalEcdsaClientPresignPoolIdentity(left, right) {
5160
+ return left.ownershipGeneration === right.ownershipGeneration && left.relayerUrl === right.relayerUrl && left.materialActivationB64u === right.materialActivationB64u && left.materialActivationId === right.materialActivationId && left.capability === right.capability && left.keyBinding === right.keyBinding && left.walletId === right.walletId && left.signingScopeB64u === right.signingScopeB64u && left.pairRole === right.pairRole && left.keyEpoch === right.keyEpoch && left.activationEpoch === right.activationEpoch && left.protocolId === right.protocolId;
5161
+ }
5162
+ function ecdsaClientPresignPoolKey(identity) {
5163
+ return [
5164
+ identity.protocolId,
5165
+ identity.relayerUrl,
5166
+ identity.signingScopeB64u,
5167
+ identity.materialActivationB64u,
5168
+ identity.ownershipGeneration
5169
+ ].join("|");
5170
+ }
5365
5171
 
5366
- // ../../node_modules/idb/build/index.js
5367
- var instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
5368
- var idbProxyableTypes;
5369
- var cursorAdvanceMethods;
5370
- function getIdbProxyableTypes() {
5371
- return idbProxyableTypes || (idbProxyableTypes = [
5372
- IDBDatabase,
5373
- IDBObjectStore,
5374
- IDBIndex,
5375
- IDBCursor,
5376
- IDBTransaction
5377
- ]);
5172
+ // src/core/config/presignatures.ts
5173
+ var ECDSA_CLIENT_PRESIGNATURE_CAPACITY = 5;
5174
+ var MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS = 90 * 24 * 60 * 60000;
5175
+
5176
+ // src/core/signingEngine/interfaces/ecdsaChainTarget.ts
5177
+ function nonEmptyString(value) {
5178
+ const normalized = String(value ?? "").trim();
5179
+ return normalized ? normalized : null;
5180
+ }
5181
+ function normalizePositiveSafeInteger(value, field) {
5182
+ const normalized = Number(value);
5183
+ if (!Number.isSafeInteger(normalized) || normalized <= 0) {
5184
+ throw new Error(`[threshold-ecdsa] ${field} must be a positive safe integer`);
5185
+ }
5186
+ return normalized;
5187
+ }
5188
+ function defaultNetworkSlug(kind, chainId) {
5189
+ return kind === "tempo" ? `tempo-${chainId}` : `evm-${chainId}`;
5190
+ }
5191
+ function toWalletId(value) {
5192
+ const parsed = parseWalletId(value);
5193
+ if (!parsed.ok) {
5194
+ throw new Error(parsed.error.message);
5195
+ }
5196
+ return parsed.value;
5197
+ }
5198
+ function thresholdEcdsaChainTargetFromChainFamily(args) {
5199
+ const chainId = normalizePositiveSafeInteger(args.chainId, "chainId");
5200
+ const networkSlug = nonEmptyString(args.networkSlug) || defaultNetworkSlug(args.chain, chainId);
5201
+ if (args.chain === "tempo") {
5202
+ return { kind: "tempo", chainId, networkSlug };
5203
+ }
5204
+ return { kind: "evm", namespace: "eip155", chainId, networkSlug };
5205
+ }
5206
+ function thresholdEcdsaChainTargetFromRequest(args) {
5207
+ const rawKind = String(args.kind ?? args.chain ?? "").trim().toLowerCase();
5208
+ if (rawKind !== "evm" && rawKind !== "tempo") {
5209
+ throw new Error("[threshold-ecdsa] ECDSA request target requires chain kind evm or tempo");
5210
+ }
5211
+ if (rawKind === "evm") {
5212
+ const namespace = String(args.namespace ?? "eip155").trim().toLowerCase();
5213
+ if (namespace !== "eip155") {
5214
+ throw new Error("[threshold-ecdsa] EVM chain target namespace must be eip155");
5215
+ }
5216
+ }
5217
+ return thresholdEcdsaChainTargetFromChainFamily({
5218
+ chain: rawKind,
5219
+ chainId: args.chainId,
5220
+ networkSlug: args.networkSlug
5221
+ });
5222
+ }
5223
+
5224
+ // ../shared-ts/src/threshold/participants.ts
5225
+ function normalizeThresholdEd25519ParticipantId(id) {
5226
+ const n = Number(id);
5227
+ if (!Number.isSafeInteger(n) || n < 1 || n > 65535)
5228
+ return null;
5229
+ return n;
5230
+ }
5231
+ function normalizeThresholdEd25519ParticipantIds(input) {
5232
+ if (!Array.isArray(input) || input.length === 0)
5233
+ return null;
5234
+ const out = [];
5235
+ const seen = new Set;
5236
+ for (const v of input) {
5237
+ const id = normalizeThresholdEd25519ParticipantId(v);
5238
+ if (!id)
5239
+ return null;
5240
+ if (!seen.has(id)) {
5241
+ seen.add(id);
5242
+ out.push(id);
5243
+ }
5244
+ }
5245
+ out.sort((a, b) => a - b);
5246
+ return out.length ? out : null;
5247
+ }
5248
+
5249
+ // ../shared-ts/src/utils/emailOtpDomain.ts
5250
+ var EMAIL_OTP_CHANNEL = "email_otp";
5251
+
5252
+ // ../shared-ts/src/utils/signerDomain.ts
5253
+ var WALLET_AUTH_METHODS = {
5254
+ passkey: "passkey",
5255
+ emailOtp: EMAIL_OTP_CHANNEL
5256
+ };
5257
+ var WALLET_AUTH_METHOD_VALUES = Object.values(WALLET_AUTH_METHODS);
5258
+
5259
+ // ../shared-ts/src/utils/thresholdEcdsaKeyHandle.ts
5260
+ function requiredString(value, field) {
5261
+ const normalized = String(value ?? "").trim();
5262
+ if (!normalized)
5263
+ throw new Error(`[threshold-ecdsa-key-handle] ${field} is required`);
5264
+ return normalized;
5265
+ }
5266
+ function normalizedSigningRootVersion(value) {
5267
+ return String(value ?? "").trim() || "default";
5268
+ }
5269
+ async function deriveThresholdEcdsaKeyHandle(input) {
5270
+ const canonical = alphabetizeStringify({
5271
+ domain: "seams.threshold_ecdsa.key_handle.v1",
5272
+ ecdsaThresholdKeyId: requiredString(input.ecdsaThresholdKeyId, "ecdsaThresholdKeyId"),
5273
+ signingRootId: requiredString(input.signingRootId, "signingRootId"),
5274
+ signingRootVersion: normalizedSigningRootVersion(input.signingRootVersion)
5275
+ });
5276
+ const digest = await sha256BytesUtf8(canonical);
5277
+ return `ederivation-key-${base64UrlEncode(digest)}`;
5278
+ }
5279
+ // ../shared-ts/src/utils/digestEncoding.ts
5280
+ var TEXT_ENCODER = new TextEncoder;
5281
+ // src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.ts
5282
+ function requiredString2(value, field) {
5283
+ const normalized = String(value ?? "").trim();
5284
+ if (!normalized)
5285
+ throw new Error(`[evm-family-ecdsa] ${field} is required`);
5286
+ return normalized;
5287
+ }
5288
+ function normalizeThresholdOwnerAddress(value) {
5289
+ const normalized = String(value ?? "").trim().toLowerCase();
5290
+ if (!/^0x[0-9a-f]{40}$/.test(normalized)) {
5291
+ throw new Error("[evm-family-ecdsa] thresholdOwnerAddress must be an EVM address");
5292
+ }
5293
+ return normalized;
5294
+ }
5295
+ function toEvmFamilyEcdsaKeyHandle(value) {
5296
+ return requiredString2(value, "keyHandle");
5297
+ }
5298
+ function toThresholdEcdsaPublicKeyB64u(value) {
5299
+ const normalized = requiredString2(value, "thresholdEcdsaPublicKeyB64u");
5300
+ let bytes;
5301
+ try {
5302
+ bytes = base64UrlDecode(normalized);
5303
+ } catch {
5304
+ throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must be base64url");
5305
+ }
5306
+ if (bytes.length !== 33) {
5307
+ throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must decode to 33 bytes");
5308
+ }
5309
+ return normalized;
5310
+ }
5311
+ function toParticipantId(value) {
5312
+ const normalized = Math.floor(Number(value));
5313
+ if (!Number.isSafeInteger(normalized) || normalized < 1 || normalized > 65535) {
5314
+ throw new Error("[evm-family-ecdsa] participantId must be a positive safe integer");
5315
+ }
5316
+ return normalized;
5317
+ }
5318
+ function normalizeParticipantIds(value) {
5319
+ const participantIds = normalizeThresholdEd25519ParticipantIds(value);
5320
+ if (!participantIds?.length) {
5321
+ throw new Error("[evm-family-ecdsa] participantIds are required");
5322
+ }
5323
+ return participantIds.map(toParticipantId);
5324
+ }
5325
+ function buildVerifiedEcdsaPublicFacts(input) {
5326
+ return {
5327
+ kind: "verified_ecdsa_public_facts",
5328
+ keyHandle: input.keyHandle,
5329
+ publicKeyB64u: toThresholdEcdsaPublicKeyB64u(input.publicKeyB64u),
5330
+ participantIds: normalizeParticipantIds(input.participantIds),
5331
+ thresholdOwnerAddress: normalizeThresholdOwnerAddress(input.thresholdOwnerAddress)
5332
+ };
5333
+ }
5334
+
5335
+ // src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.ts
5336
+ function toEcdsaDerivationThresholdKeyId(value) {
5337
+ return parseSdkEcdsaDerivationThresholdKeyId(value);
5338
+ }
5339
+ function toEcdsaDerivationSigningRootId(value) {
5340
+ return parseSdkEcdsaDerivationSigningRootId(value);
5341
+ }
5342
+ function toEcdsaDerivationSigningRootVersion(value) {
5343
+ return parseSdkEcdsaDerivationSigningRootVersion(value);
5344
+ }
5345
+
5346
+ // src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.ts
5347
+ function requiredString3(value, field) {
5348
+ if (typeof value !== "string" || !value.trim()) {
5349
+ throw new Error(`[platform][ecdsa-role-local] ${field} is required`);
5350
+ }
5351
+ return value.trim();
5352
+ }
5353
+ function parseBase64UrlBytes(value, field, byteLength) {
5354
+ const normalized = requiredString3(value, field);
5355
+ const decoded = base64UrlDecode(normalized);
5356
+ if (decoded.length !== byteLength) {
5357
+ throw new Error(`[platform][ecdsa-role-local] ${field} must decode to ${byteLength} bytes`);
5358
+ }
5359
+ return normalized;
5360
+ }
5361
+ function parseCompressedSecp256k1PublicKey(value, field) {
5362
+ const normalized = requiredString3(value, field);
5363
+ const decoded = base64UrlDecode(normalized);
5364
+ if (decoded.length !== 33) {
5365
+ throw new Error(`[platform][ecdsa-role-local] ${field} must decode to 33 bytes`);
5366
+ }
5367
+ if (decoded[0] !== 2 && decoded[0] !== 3) {
5368
+ throw new Error(`[platform][ecdsa-role-local] ${field} must be a compressed SEC1 key`);
5369
+ }
5370
+ return normalized;
5378
5371
  }
5379
- function getCursorAdvanceMethods() {
5380
- return cursorAdvanceMethods || (cursorAdvanceMethods = [
5381
- IDBCursor.prototype.advance,
5382
- IDBCursor.prototype.continue,
5383
- IDBCursor.prototype.continuePrimaryKey
5384
- ]);
5372
+ function parseEcdsaDerivationClientSharePublicKey(value) {
5373
+ return parseCompressedSecp256k1PublicKey(value, "derivationClientSharePublicKey33B64u");
5385
5374
  }
5386
- var transactionDoneMap = new WeakMap;
5387
- var transformCache = new WeakMap;
5388
- var reverseTransformCache = new WeakMap;
5389
- function promisifyRequest(request) {
5390
- const promise = new Promise((resolve, reject) => {
5391
- const unlisten = () => {
5392
- request.removeEventListener("success", success);
5393
- request.removeEventListener("error", error);
5394
- };
5395
- const success = () => {
5396
- resolve(wrap(request.result));
5397
- unlisten();
5398
- };
5399
- const error = () => {
5400
- reject(request.error);
5401
- unlisten();
5402
- };
5403
- request.addEventListener("success", success);
5404
- request.addEventListener("error", error);
5405
- });
5406
- reverseTransformCache.set(promise, request);
5407
- return promise;
5375
+ function parseRelayerEcdsaDerivationPublicKey(value) {
5376
+ return parseCompressedSecp256k1PublicKey(value, "relayerPublicKey33B64u");
5408
5377
  }
5409
- function cacheDonePromiseForTransaction(tx) {
5410
- if (transactionDoneMap.has(tx))
5411
- return;
5412
- const done = new Promise((resolve, reject) => {
5413
- const unlisten = () => {
5414
- tx.removeEventListener("complete", complete);
5415
- tx.removeEventListener("error", error);
5416
- tx.removeEventListener("abort", error);
5417
- };
5418
- const complete = () => {
5419
- resolve();
5420
- unlisten();
5421
- };
5422
- const error = () => {
5423
- reject(tx.error || new DOMException("AbortError", "AbortError"));
5424
- unlisten();
5425
- };
5426
- tx.addEventListener("complete", complete);
5427
- tx.addEventListener("error", error);
5428
- tx.addEventListener("abort", error);
5429
- });
5430
- transactionDoneMap.set(tx, done);
5378
+ function parseGroupPublicKey(value) {
5379
+ return parseCompressedSecp256k1PublicKey(value, "groupPublicKey33B64u");
5431
5380
  }
5432
- var idbProxyTraps = {
5433
- get(target, prop, receiver) {
5434
- if (target instanceof IDBTransaction) {
5435
- if (prop === "done")
5436
- return transactionDoneMap.get(target);
5437
- if (prop === "store") {
5438
- return receiver.objectStoreNames[1] ? undefined : receiver.objectStore(receiver.objectStoreNames[0]);
5381
+ function parseEthereumAddress2(value) {
5382
+ const normalized = requiredString3(value, "ethereumAddress").toLowerCase();
5383
+ if (!/^0x[0-9a-f]{40}$/.test(normalized)) {
5384
+ throw new Error("[platform][ecdsa-role-local] ethereumAddress must be an EVM address");
5385
+ }
5386
+ return normalized;
5387
+ }
5388
+ function parseParticipantIds(value) {
5389
+ if (!Array.isArray(value) || value.length !== 2 || value[0] !== 1 || value[1] !== 2) {
5390
+ throw new Error("[platform][ecdsa-role-local] participantIds must be [1, 2]");
5391
+ }
5392
+ return [1, 2];
5393
+ }
5394
+ function parseChainTarget(input) {
5395
+ if (input === null || typeof input !== "object" || Array.isArray(input)) {
5396
+ throw new Error("[platform][ecdsa-role-local] chainTarget must be an object");
5397
+ }
5398
+ const kind = requiredString3(Reflect.get(input, "kind"), "chainTarget.kind").toLowerCase();
5399
+ switch (kind) {
5400
+ case "evm": {
5401
+ const fields = Object.keys(input).sort();
5402
+ if (fields.join(",") !== "chainId,kind,namespace,networkSlug") {
5403
+ throw new Error("[platform][ecdsa-role-local] EVM chainTarget fields are invalid");
5439
5404
  }
5405
+ return thresholdEcdsaChainTargetFromRequest({
5406
+ kind: Reflect.get(input, "kind"),
5407
+ namespace: Reflect.get(input, "namespace"),
5408
+ chainId: Reflect.get(input, "chainId"),
5409
+ networkSlug: Reflect.get(input, "networkSlug")
5410
+ });
5440
5411
  }
5441
- return wrap(target[prop]);
5442
- },
5443
- set(target, prop, value) {
5444
- target[prop] = value;
5445
- return true;
5446
- },
5447
- has(target, prop) {
5448
- if (target instanceof IDBTransaction && (prop === "done" || prop === "store")) {
5449
- return true;
5412
+ case "tempo": {
5413
+ const fields = Object.keys(input).sort();
5414
+ if (fields.join(",") !== "chainId,kind,networkSlug") {
5415
+ throw new Error("[platform][ecdsa-role-local] Tempo chainTarget fields are invalid");
5416
+ }
5417
+ return thresholdEcdsaChainTargetFromRequest({
5418
+ kind: Reflect.get(input, "kind"),
5419
+ chainId: Reflect.get(input, "chainId"),
5420
+ networkSlug: Reflect.get(input, "networkSlug")
5421
+ });
5450
5422
  }
5451
- return prop in target;
5423
+ default:
5424
+ throw new Error("[platform][ecdsa-role-local] chainTarget kind is invalid");
5425
+ }
5426
+ }
5427
+ function parsePublicFacts(input) {
5428
+ if (input === null || typeof input !== "object" || Array.isArray(input)) {
5429
+ throw new Error("[platform][ecdsa-role-local] publicFacts must be an object");
5430
+ }
5431
+ const fields = Object.keys(input).sort();
5432
+ if (fields.join(",") !== "applicationBindingDigestB64u,chainTarget,clientParticipantId,contextBinding32B64u,derivationClientSharePublicKey33B64u,ecdsaThresholdKeyId,ethereumAddress,groupPublicKey33B64u,keyHandle,participantIds,publicCapability,relayerParticipantId,relayerPublicKey33B64u,signingRootId,signingRootVersion,walletId") {
5433
+ throw new Error("[platform][ecdsa-role-local] publicFacts fields are invalid");
5434
+ }
5435
+ if (Reflect.get(input, "clientParticipantId") !== 1) {
5436
+ throw new Error("[platform][ecdsa-role-local] clientParticipantId must be 1");
5437
+ }
5438
+ if (Reflect.get(input, "relayerParticipantId") !== 2) {
5439
+ throw new Error("[platform][ecdsa-role-local] relayerParticipantId must be 2");
5440
+ }
5441
+ const derivationClientSharePublicKey33B64u = parseEcdsaDerivationClientSharePublicKey(Reflect.get(input, "derivationClientSharePublicKey33B64u"));
5442
+ const relayerPublicKey33B64u = parseRelayerEcdsaDerivationPublicKey(Reflect.get(input, "relayerPublicKey33B64u"));
5443
+ if (String(derivationClientSharePublicKey33B64u) === String(relayerPublicKey33B64u)) {
5444
+ throw new Error("[platform][ecdsa-role-local] relayerPublicKey33B64u must differ from derivationClientSharePublicKey33B64u");
5445
+ }
5446
+ return {
5447
+ walletId: toWalletId(Reflect.get(input, "walletId")),
5448
+ chainTarget: parseChainTarget(Reflect.get(input, "chainTarget")),
5449
+ keyHandle: requiredString3(Reflect.get(input, "keyHandle"), "keyHandle"),
5450
+ ecdsaThresholdKeyId: toEcdsaDerivationThresholdKeyId(Reflect.get(input, "ecdsaThresholdKeyId")),
5451
+ signingRootId: toEcdsaDerivationSigningRootId(Reflect.get(input, "signingRootId")),
5452
+ signingRootVersion: toEcdsaDerivationSigningRootVersion(Reflect.get(input, "signingRootVersion")),
5453
+ applicationBindingDigestB64u: parseBase64UrlBytes(Reflect.get(input, "applicationBindingDigestB64u"), "applicationBindingDigestB64u", 32),
5454
+ clientParticipantId: 1,
5455
+ relayerParticipantId: 2,
5456
+ participantIds: parseParticipantIds(Reflect.get(input, "participantIds")),
5457
+ contextBinding32B64u: parseBase64UrlBytes(Reflect.get(input, "contextBinding32B64u"), "contextBinding32B64u", 32),
5458
+ derivationClientSharePublicKey33B64u,
5459
+ relayerPublicKey33B64u,
5460
+ groupPublicKey33B64u: parseGroupPublicKey(Reflect.get(input, "groupPublicKey33B64u")),
5461
+ ethereumAddress: parseEthereumAddress2(Reflect.get(input, "ethereumAddress")),
5462
+ publicCapability: parseRouterAbEcdsaDerivationPublicCapabilityV1(Reflect.get(input, "publicCapability"))
5463
+ };
5464
+ }
5465
+ function buildEcdsaRoleLocalPublicFacts(input) {
5466
+ return parsePublicFacts(input);
5467
+ }
5468
+
5469
+ // src/core/signingEngine/session/material/ecdsaCapabilityManifest.ts
5470
+ class EcdsaCapabilityManifestProof {
5471
+ retainProof() {
5472
+ return true;
5473
+ }
5474
+ constructor() {
5475
+ this.retainProof();
5476
+ }
5477
+ }
5478
+
5479
+ class EcdsaCapabilityScopeProof extends EcdsaCapabilityManifestProof {
5480
+ constructor(targetMemberships) {
5481
+ super();
5482
+ this.kind = "evm_family";
5483
+ this.targetMemberships = targetMemberships;
5484
+ }
5485
+ }
5486
+
5487
+ class EcdsaManifestIdentityProof extends EcdsaCapabilityManifestProof {
5488
+ constructor(fields) {
5489
+ super();
5490
+ this.manifestId = fields.manifestId;
5491
+ this.manifestRevision = fields.manifestRevision;
5492
+ }
5493
+ }
5494
+
5495
+ class NoCurrentEcdsaManifestExpectationProof extends EcdsaCapabilityManifestProof {
5496
+ constructor() {
5497
+ super(...arguments);
5498
+ this.kind = "no_current_manifest";
5499
+ }
5500
+ }
5501
+
5502
+ class ExactEcdsaManifestExpectationProof extends EcdsaCapabilityManifestProof {
5503
+ constructor(identity) {
5504
+ super();
5505
+ this.kind = "exact_manifest";
5506
+ this.manifestId = identity.manifestId;
5507
+ this.manifestRevision = identity.manifestRevision;
5508
+ }
5509
+ }
5510
+
5511
+ class NoCurrentEcdsaServerGenerationExpectationProof extends EcdsaCapabilityManifestProof {
5512
+ constructor() {
5513
+ super(...arguments);
5514
+ this.kind = "no_current_generation";
5515
+ }
5516
+ }
5517
+
5518
+ class ExactEcdsaServerGenerationExpectationProof extends EcdsaCapabilityManifestProof {
5519
+ constructor(serverGeneration) {
5520
+ super();
5521
+ this.kind = "exact_generation";
5522
+ this.serverGeneration = serverGeneration;
5523
+ }
5524
+ }
5525
+
5526
+ class EcdsaRoleLocalMaterialBindingProof extends EcdsaCapabilityManifestProof {
5527
+ constructor(fields) {
5528
+ super();
5529
+ this.kind = "ecdsa_role_local_material_binding";
5530
+ this.keyHandle = fields.keyHandle;
5531
+ this.ecdsaThresholdKeyId = fields.ecdsaThresholdKeyId;
5532
+ this.clientVerifyingPublicKey33B64u = fields.clientVerifyingPublicKey33B64u;
5533
+ this.participantIds = fields.participantIds;
5534
+ this.relayerKeyId = fields.relayerKeyId;
5535
+ }
5536
+ }
5537
+
5538
+ class PreparedEvmFamilySignerProof extends EcdsaCapabilityManifestProof {
5539
+ constructor(fields) {
5540
+ super();
5541
+ this.kind = "prepared_evm_family_signer";
5542
+ this.capability = fields.capability;
5543
+ this.signerId = fields.signerId;
5544
+ this.walletId = fields.authority.walletId;
5545
+ this.authority = fields.authority;
5546
+ this.scope = fields.scope;
5547
+ this.materialOwner = fields.materialOwner;
5548
+ this.signingRootId = fields.signingRootId;
5549
+ this.signingRootVersion = fields.signingRootVersion;
5550
+ }
5551
+ }
5552
+
5553
+ class RegisteredEvmFamilySignerProof extends EcdsaCapabilityManifestProof {
5554
+ constructor(fields) {
5555
+ super();
5556
+ this.kind = "registered_evm_family_signer";
5557
+ this.capability = fields.preparedSigner.capability;
5558
+ this.signerId = fields.preparedSigner.signerId;
5559
+ this.walletId = fields.preparedSigner.walletId;
5560
+ this.authority = fields.preparedSigner.authority;
5561
+ this.scope = fields.preparedSigner.scope;
5562
+ this.materialOwner = fields.preparedSigner.materialOwner;
5563
+ this.signingRootId = fields.preparedSigner.signingRootId;
5564
+ this.signingRootVersion = fields.preparedSigner.signingRootVersion;
5565
+ this.registeredPublicFacts = fields.registeredPublicFacts;
5452
5566
  }
5453
- };
5454
- function replaceTraps(callback) {
5455
- idbProxyTraps = callback(idbProxyTraps);
5456
5567
  }
5457
- function wrapFunction(func) {
5458
- if (getCursorAdvanceMethods().includes(func)) {
5459
- return function(...args) {
5460
- func.apply(unwrap(this), args);
5461
- return wrap(this.request);
5462
- };
5568
+
5569
+ class EncryptedEcdsaPendingCandidateProof extends EcdsaCapabilityManifestProof {
5570
+ constructor(fields) {
5571
+ super();
5572
+ this.kind = "encrypted_ecdsa_pending_candidate";
5573
+ this.sealingKeyId = fields.sealingKeyId;
5574
+ this.iv12B64u = fields.iv12B64u;
5575
+ this.ciphertextB64u = fields.ciphertextB64u;
5576
+ this.ciphertextDigest = fields.ciphertextDigest;
5463
5577
  }
5464
- return function(...args) {
5465
- return wrap(func.apply(unwrap(this), args));
5466
- };
5467
5578
  }
5468
- function transformCachableValue(value) {
5469
- if (typeof value === "function")
5470
- return wrapFunction(value);
5471
- if (value instanceof IDBTransaction)
5472
- cacheDonePromiseForTransaction(value);
5473
- if (instanceOfAny(value, getIdbProxyableTypes()))
5474
- return new Proxy(value, idbProxyTraps);
5475
- return value;
5579
+
5580
+ class EcdsaActivationBindingProof extends EcdsaCapabilityManifestProof {
5581
+ constructor(fields) {
5582
+ super();
5583
+ this.kind = "ecdsa_activation_binding";
5584
+ this.targetManifest = fields.targetManifest;
5585
+ this.signer = fields.signer;
5586
+ this.roleLocalBinding = fields.roleLocalBinding;
5587
+ this.bindingDigest = fields.bindingDigest;
5588
+ this.durableMaterialRef = fields.durableMaterialRef;
5589
+ }
5476
5590
  }
5477
- function wrap(value) {
5478
- if (value instanceof IDBRequest)
5479
- return promisifyRequest(value);
5480
- if (transformCache.has(value))
5481
- return transformCache.get(value);
5482
- const newValue = transformCachableValue(value);
5483
- if (newValue !== value) {
5484
- transformCache.set(value, newValue);
5485
- reverseTransformCache.set(newValue, value);
5591
+
5592
+ class PreparedEcdsaActivationCandidateProof extends EcdsaCapabilityManifestProof {
5593
+ constructor(fields) {
5594
+ super();
5595
+ this.kind = "prepared_ecdsa_activation_candidate";
5596
+ this.activationBinding = fields.activationBinding;
5597
+ this.encryptedPending = fields.encryptedPending;
5486
5598
  }
5487
- return newValue;
5488
5599
  }
5489
- var unwrap = (value) => reverseTransformCache.get(value);
5490
- function openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {
5491
- const request = indexedDB.open(name, version);
5492
- const openPromise = wrap(request);
5493
- if (upgrade) {
5494
- request.addEventListener("upgradeneeded", (event) => {
5495
- upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);
5496
- });
5600
+
5601
+ class EcdsaServerActivationCommandProof extends EcdsaCapabilityManifestProof {
5602
+ constructor(fields) {
5603
+ super();
5604
+ this.kind = "ecdsa_server_activation_command";
5605
+ this.correlationId = fields.correlationId;
5606
+ this.expectedGeneration = fields.expectedGeneration;
5607
+ this.requestDigest = fields.requestDigest;
5608
+ this.canonicalRequest = fields.canonicalRequest;
5497
5609
  }
5498
- if (blocked) {
5499
- request.addEventListener("blocked", (event) => blocked(event.oldVersion, event.newVersion, event));
5610
+ }
5611
+
5612
+ class EcdsaServerActivationReceiptProof extends EcdsaCapabilityManifestProof {
5613
+ constructor(fields) {
5614
+ super();
5615
+ this.kind = "ecdsa_server_activation_receipt";
5616
+ this.lifecycleId = fields.lifecycleId;
5617
+ this.activationDigest = fields.activationDigest;
5618
+ this.activatedAt = fields.activatedAt;
5619
+ this.protocolReceipt = fields.protocolReceipt;
5500
5620
  }
5501
- openPromise.then((db) => {
5502
- if (terminated)
5503
- db.addEventListener("close", () => terminated());
5504
- if (blocking) {
5505
- db.addEventListener("versionchange", (event) => blocking(event.oldVersion, event.newVersion, event));
5506
- }
5507
- }).catch(() => {});
5508
- return openPromise;
5509
5621
  }
5510
- var readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"];
5511
- var writeMethods = ["put", "add", "delete", "clear"];
5512
- var cachedMethods = new Map;
5513
- function getMethod(target, prop) {
5514
- if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === "string")) {
5515
- return;
5622
+
5623
+ class EcdsaServerActivationCommitProof extends EcdsaCapabilityManifestProof {
5624
+ constructor(fields) {
5625
+ super();
5626
+ this.kind = "ecdsa_server_activation_commit";
5627
+ this.correlationId = fields.correlationId;
5628
+ this.activationRequestDigest = fields.activationRequestDigest;
5629
+ this.serverGeneration = fields.serverGeneration;
5630
+ this.serverActivationReceipt = fields.serverActivationReceipt;
5516
5631
  }
5517
- if (cachedMethods.get(prop))
5518
- return cachedMethods.get(prop);
5519
- const targetFuncName = prop.replace(/FromIndex$/, "");
5520
- const useIndex = prop !== targetFuncName;
5521
- const isWrite = writeMethods.includes(targetFuncName);
5522
- if (!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) {
5523
- return;
5632
+ }
5633
+
5634
+ class PreparedEcdsaActivationJournalProof extends EcdsaCapabilityManifestProof {
5635
+ constructor(fields) {
5636
+ super();
5637
+ this.kind = "activation_prepared";
5638
+ this.journalId = fields.journalId;
5639
+ this.expectedManifest = fields.expectedManifest;
5640
+ this.activationCommand = fields.activationCommand;
5641
+ this.candidate = fields.candidate;
5642
+ this.createdAt = fields.createdAt;
5524
5643
  }
5525
- const method = async function(storeName, ...args) {
5526
- const tx = this.transaction(storeName, isWrite ? "readwrite" : "readonly");
5527
- let target = tx.store;
5528
- if (useIndex)
5529
- target = target.index(args.shift());
5530
- return (await Promise.all([
5531
- target[targetFuncName](...args),
5532
- isWrite && tx.done
5533
- ]))[0];
5534
- };
5535
- cachedMethods.set(prop, method);
5536
- return method;
5537
5644
  }
5538
- replaceTraps((oldTraps) => ({
5539
- ...oldTraps,
5540
- get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),
5541
- has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop)
5542
- }));
5543
- var advanceMethodProps = ["continue", "continuePrimaryKey", "advance"];
5544
- var methodMap = {};
5545
- var advanceResults = new WeakMap;
5546
- var ittrProxiedCursorToOriginalProxy = new WeakMap;
5547
- var cursorIteratorTraps = {
5548
- get(target, prop) {
5549
- if (!advanceMethodProps.includes(prop))
5550
- return target[prop];
5551
- let cachedFunc = methodMap[prop];
5552
- if (!cachedFunc) {
5553
- cachedFunc = methodMap[prop] = function(...args) {
5554
- advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));
5555
- };
5556
- }
5557
- return cachedFunc;
5645
+
5646
+ class ServerCommittedEcdsaActivationJournalProof extends EcdsaCapabilityManifestProof {
5647
+ constructor(fields) {
5648
+ super();
5649
+ this.kind = "server_activation_committed";
5650
+ this.journalId = fields.journalId;
5651
+ this.expectedManifest = fields.expectedManifest;
5652
+ this.activationCommand = fields.activationCommand;
5653
+ this.candidate = fields.candidate;
5654
+ this.createdAt = fields.createdAt;
5655
+ this.serverActivation = fields.serverActivation;
5558
5656
  }
5559
- };
5560
- async function* iterate(...args) {
5561
- let cursor = this;
5562
- if (!(cursor instanceof IDBCursor)) {
5563
- cursor = await cursor.openCursor(...args);
5657
+ }
5658
+
5659
+ class DurableEcdsaMaterialBindingProof extends EcdsaCapabilityManifestProof {
5660
+ constructor(fields) {
5661
+ super();
5662
+ this.kind = "durable_ecdsa_material";
5663
+ this.materialActivation = fields.materialActivation;
5664
+ this.routerAbEcdsaDerivationNormalSigning = fields.routerAbEcdsaDerivationNormalSigning;
5665
+ this.roleLocalPublicFacts = fields.roleLocalPublicFacts;
5666
+ this.roleLocalBinding = fields.roleLocalBinding;
5667
+ this.durableMaterialRef = fields.durableMaterialRef;
5668
+ this.bindingDigest = fields.bindingDigest;
5669
+ this.lifecycleId = fields.lifecycleId;
5670
+ this.ciphertextDigest = fields.ciphertextDigest;
5671
+ this.activationDigest = fields.activationDigest;
5672
+ this.activatedAt = fields.activatedAt;
5673
+ this.runtimePolicyScope = fields.runtimePolicyScope;
5564
5674
  }
5565
- if (!cursor)
5566
- return;
5567
- cursor = cursor;
5568
- const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);
5569
- ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);
5570
- reverseTransformCache.set(proxiedCursor, unwrap(cursor));
5571
- while (cursor) {
5572
- yield proxiedCursor;
5573
- cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());
5574
- advanceResults.delete(proxiedCursor);
5675
+ }
5676
+
5677
+ class ValidatedEncryptedEcdsaReadyMaterialProof extends EcdsaCapabilityManifestProof {
5678
+ constructor(fields) {
5679
+ super();
5680
+ this.kind = "encrypted_ecdsa_ready_material";
5681
+ this.binding = fields.binding;
5682
+ this.sealingKeyId = fields.sealingKeyId;
5683
+ this.iv12B64u = fields.iv12B64u;
5684
+ this.ciphertextB64u = fields.ciphertextB64u;
5575
5685
  }
5576
5686
  }
5577
- function isIteratorProp(target, prop) {
5578
- return prop === Symbol.asyncIterator && instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor]) || prop === "iterate" && instanceOfAny(target, [IDBIndex, IDBObjectStore]);
5687
+
5688
+ class ActiveEcdsaCapabilityManifestProof extends EcdsaCapabilityManifestProof {
5689
+ constructor(fields) {
5690
+ super();
5691
+ this.kind = "active_ecdsa_capability_manifest";
5692
+ this.identity = fields.identity;
5693
+ this.signer = fields.signer;
5694
+ this.activation = fields.activation;
5695
+ this.durableMaterial = fields.durableMaterial;
5696
+ this.committedAt = fields.committedAt;
5697
+ }
5698
+ }
5699
+
5700
+ class ReplacedEcdsaCapabilityManifestProof extends EcdsaCapabilityManifestProof {
5701
+ constructor(fields) {
5702
+ super();
5703
+ this.kind = "replaced_ecdsa_capability_manifest";
5704
+ this.identity = fields.identity;
5705
+ this.signer = fields.signer;
5706
+ this.retirement = fields.retirement;
5707
+ }
5708
+ }
5709
+ function unwrapDomainId(result) {
5710
+ if (!result.ok)
5711
+ throw new Error(result.error.message);
5712
+ return result.value;
5713
+ }
5714
+ function buildEcdsaCapabilityScope(input) {
5715
+ assertUniqueEcdsaTargetMemberships(input.targetMemberships);
5716
+ return new EcdsaCapabilityScopeProof([...input.targetMemberships]);
5717
+ }
5718
+ function buildEcdsaManifestIdentity(input) {
5719
+ return new EcdsaManifestIdentityProof(input);
5720
+ }
5721
+ function buildNoCurrentEcdsaManifestExpectation() {
5722
+ return new NoCurrentEcdsaManifestExpectationProof;
5723
+ }
5724
+ function buildExactEcdsaManifestExpectation(identity) {
5725
+ return new ExactEcdsaManifestExpectationProof(identity);
5726
+ }
5727
+ function buildNoCurrentEcdsaServerGenerationExpectation() {
5728
+ return new NoCurrentEcdsaServerGenerationExpectationProof;
5579
5729
  }
5580
- replaceTraps((oldTraps) => ({
5581
- ...oldTraps,
5582
- get(target, prop, receiver) {
5583
- if (isIteratorProp(target, prop))
5584
- return iterate;
5585
- return oldTraps.get(target, prop, receiver);
5586
- },
5587
- has(target, prop) {
5588
- return isIteratorProp(target, prop) || oldTraps.has(target, prop);
5589
- }
5590
- }));
5591
-
5592
- // src/core/indexedDB/seamsWalletDB/schema.ts
5593
- var SEAMS_WALLET_DB_CONFIG = {
5594
- dbName: SEAMS_WALLET_DB_NAME,
5595
- dbVersion: SEAMS_WALLET_DB_VERSION
5596
- };
5597
- function keyPathForIndexedDB(keyPath) {
5598
- return typeof keyPath === "string" ? keyPath : [...keyPath];
5730
+ function buildExactEcdsaServerGenerationExpectation(serverGeneration) {
5731
+ return new ExactEcdsaServerGenerationExpectationProof(serverGeneration);
5599
5732
  }
5600
- function createCanonicalStore(db, definition) {
5601
- const store = db.createObjectStore(definition.store, {
5602
- keyPath: keyPathForIndexedDB(definition.keyPath)
5733
+ function buildEcdsaRoleLocalMaterialBinding(input) {
5734
+ assertUniqueParticipantIds(input.participantIds);
5735
+ return new EcdsaRoleLocalMaterialBindingProof({
5736
+ keyHandle: input.keyHandle,
5737
+ ecdsaThresholdKeyId: input.ecdsaThresholdKeyId,
5738
+ clientVerifyingPublicKey33B64u: input.clientVerifyingPublicKey33B64u,
5739
+ participantIds: [...input.participantIds],
5740
+ relayerKeyId: input.relayerKeyId
5603
5741
  });
5604
- for (const index of definition.indexes) {
5605
- store.createIndex(index.name, keyPathForIndexedDB(index.keyPath), { unique: index.unique });
5606
- }
5607
5742
  }
5608
- function upgradeSeamsWalletDBSchema(db) {
5609
- for (const definition of SEAMS_WALLET_SCHEMA_MANIFEST) {
5610
- if (db.objectStoreNames.contains(definition.store))
5611
- continue;
5612
- createCanonicalStore(db, definition);
5613
- }
5743
+ function buildPreparedEvmFamilySigner(input) {
5744
+ return new PreparedEvmFamilySignerProof(input);
5614
5745
  }
5615
-
5616
- // src/core/indexedDB/seamsWalletDB/manager.ts
5617
- var INDEXED_DB_BLOCKED_OPEN_TIMEOUT_MS = 3000;
5618
- var INDEXED_DB_OPEN_TIMEOUT_MS = 8000;
5619
- var INDEXED_DB_TRANSACTION_TIMEOUT_MS = 8000;
5620
- function seamsWalletDbOpenBlockedError(dbName) {
5621
- return new Error(`[SeamsWalletDBManager] IndexedDB open is blocked for ${dbName}. Close other tabs using this app and retry.`);
5746
+ function buildEncryptedEcdsaPendingCandidate(input) {
5747
+ return new EncryptedEcdsaPendingCandidateProof(input);
5622
5748
  }
5623
- function indexedDbTimeoutError(message) {
5624
- return new Error(message);
5749
+ function buildEcdsaActivationBinding(input) {
5750
+ return new EcdsaActivationBindingProof(input);
5625
5751
  }
5626
- async function withTimeout(promise, ms, error, onTimeout) {
5627
- let settled = false;
5628
- let timeout = null;
5629
- const timeoutPromise = new Promise((_resolve, reject) => {
5630
- timeout = setTimeout(() => {
5631
- if (settled)
5632
- return;
5633
- onTimeout?.();
5634
- reject(error);
5635
- }, ms);
5752
+ function buildPreparedEcdsaActivationCandidate(input) {
5753
+ return new PreparedEcdsaActivationCandidateProof(input);
5754
+ }
5755
+ function buildPreparedEcdsaActivationJournal(input) {
5756
+ assertTargetManifestTransition(input.expectedManifest, input.candidate.activationBinding.targetManifest);
5757
+ assertExpectedStatePair(input.expectedManifest, input.expectedGeneration);
5758
+ const activationCommand = new EcdsaServerActivationCommandProof({
5759
+ correlationId: input.journalId,
5760
+ expectedGeneration: input.expectedGeneration,
5761
+ requestDigest: input.requestDigest,
5762
+ canonicalRequest: input.canonicalRequest
5763
+ });
5764
+ return new PreparedEcdsaActivationJournalProof({
5765
+ journalId: input.journalId,
5766
+ expectedManifest: input.expectedManifest,
5767
+ activationCommand,
5768
+ candidate: input.candidate,
5769
+ createdAt: input.createdAt
5636
5770
  });
5637
- try {
5638
- return await Promise.race([promise, timeoutPromise]);
5639
- } finally {
5640
- settled = true;
5641
- if (timeout)
5642
- clearTimeout(timeout);
5643
- }
5644
5771
  }
5645
- async function runIndexedDbTransactionTask(context, task) {
5646
- const result = await task(context);
5647
- await context.tx.done;
5648
- return result;
5772
+ function buildEcdsaServerActivationCommit(input) {
5773
+ const protocolReceipt = parseRouterAbEcdsaRegistrationActivationReceiptV1(input.serverCommit.protocolReceipt);
5774
+ assertProtocolReceiptMatchesServerCommit(protocolReceipt, input.serverCommit);
5775
+ assertProtocolReceiptMatchesActivationBinding(protocolReceipt, input.activationBinding);
5776
+ const serverActivationReceipt = new EcdsaServerActivationReceiptProof({
5777
+ lifecycleId: lifecycleIdFromProtocolReceipt(protocolReceipt),
5778
+ activationDigest: activationDigestFromProtocolReceipt(protocolReceipt),
5779
+ activatedAt: isoTimestampFromUnixMs(protocolReceipt.ecdsa_activation.activated_at_ms),
5780
+ protocolReceipt
5781
+ });
5782
+ return new EcdsaServerActivationCommitProof({
5783
+ correlationId: input.serverCommit.correlationId,
5784
+ activationRequestDigest: input.serverCommit.activationRequestDigest,
5785
+ serverGeneration: input.serverCommit.serverGeneration,
5786
+ serverActivationReceipt
5787
+ });
5649
5788
  }
5650
-
5651
- class SeamsWalletDBManager {
5652
- constructor(config = SEAMS_WALLET_DB_CONFIG) {
5653
- this.dbPromise = null;
5654
- this.disabled = false;
5655
- this.config = config;
5656
- }
5657
- getDbName() {
5658
- return this.config.dbName;
5659
- }
5660
- setDbName(dbName) {
5661
- if (this.config.dbName === dbName)
5662
- return;
5663
- this.close();
5664
- this.config = { ...this.config, dbName };
5665
- }
5666
- setDisabled(disabled) {
5667
- this.disabled = disabled;
5668
- if (disabled)
5669
- this.close();
5670
- }
5671
- isDisabled() {
5672
- return this.disabled;
5673
- }
5674
- close() {
5675
- if (this.dbPromise) {
5676
- this.dbPromise.then((db) => db.close()).catch(() => {
5677
- return;
5678
- });
5679
- this.dbPromise = null;
5680
- }
5789
+ function buildServerCommittedEcdsaActivationJournal(input) {
5790
+ assertServerCommitMatchesPreparedCommand(input.serverCommit, input.preparedJournal);
5791
+ const serverActivation = buildEcdsaServerActivationCommit({
5792
+ activationBinding: input.preparedJournal.candidate.activationBinding,
5793
+ serverCommit: input.serverCommit
5794
+ });
5795
+ return new ServerCommittedEcdsaActivationJournalProof({
5796
+ journalId: input.preparedJournal.journalId,
5797
+ expectedManifest: input.preparedJournal.expectedManifest,
5798
+ activationCommand: input.preparedJournal.activationCommand,
5799
+ candidate: input.preparedJournal.candidate,
5800
+ createdAt: input.preparedJournal.createdAt,
5801
+ serverActivation
5802
+ });
5803
+ }
5804
+ function buildDurableEcdsaMaterialBinding(input) {
5805
+ assertServerActivationMatchesBinding(input.serverActivation, input.activationBinding);
5806
+ const facts = input.roleLocalPublicFacts;
5807
+ const binding = input.activationBinding;
5808
+ const runtimePolicyScope = normalizeRuntimePolicyScope(input.runtimePolicyScope);
5809
+ if (facts.walletId !== binding.signer.walletId || facts.keyHandle !== binding.roleLocalBinding.keyHandle || facts.ecdsaThresholdKeyId !== binding.roleLocalBinding.ecdsaThresholdKeyId || facts.signingRootId !== binding.signer.signingRootId || facts.signingRootVersion !== binding.signer.signingRootVersion || deriveSigningRootId(runtimePolicyScope) !== binding.signer.signingRootId || runtimePolicyScope.signingRootVersion !== binding.signer.signingRootVersion || facts.contextBinding32B64u !== binding.bindingDigest || !participantIdsMatch(facts.participantIds, binding.roleLocalBinding.participantIds) || !binding.signer.scope.targetMemberships.some((target) => ecdsaTargetMembershipKey(target) === ecdsaTargetMembershipKey(facts.chainTarget))) {
5810
+ throw new Error("ECDSA role-local public facts do not match their activation");
5681
5811
  }
5682
- async getDB() {
5683
- if (this.disabled) {
5684
- throw new Error("[SeamsWalletDBManager] IndexedDB is disabled in this environment.");
5685
- }
5686
- if (!this.dbPromise) {
5687
- const dbName = this.config.dbName;
5688
- const dbVersion = this.config.dbVersion;
5689
- let blockedTimer = null;
5690
- let rejectBlockedOpen = null;
5691
- const blockedOpen = new Promise((_resolve, reject) => {
5692
- rejectBlockedOpen = reject;
5693
- });
5694
- const openPromise = openDB(dbName, dbVersion, {
5695
- upgrade(db) {
5696
- upgradeSeamsWalletDBSchema(db);
5697
- },
5698
- blocked() {
5699
- console.warn("[SeamsWalletDBManager] IndexedDB open is blocked.", {
5700
- dbName,
5701
- dbVersion
5702
- });
5703
- blockedTimer = setTimeout(() => {
5704
- rejectBlockedOpen?.(seamsWalletDbOpenBlockedError(dbName));
5705
- }, INDEXED_DB_BLOCKED_OPEN_TIMEOUT_MS);
5706
- },
5707
- blocking: () => {
5708
- console.warn("[SeamsWalletDBManager] IndexedDB connection is blocking an upgrade.", {
5709
- dbName,
5710
- dbVersion
5711
- });
5712
- this.close();
5713
- },
5714
- terminated() {
5715
- console.warn("[SeamsWalletDBManager] IndexedDB connection has been terminated.", {
5716
- dbName,
5717
- dbVersion
5718
- });
5719
- }
5720
- });
5721
- const guardedOpen = withTimeout(Promise.race([openPromise, blockedOpen]).finally(() => {
5722
- if (blockedTimer)
5723
- clearTimeout(blockedTimer);
5724
- }), INDEXED_DB_OPEN_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB open timed out for ${dbName}. Close other tabs using this app and retry.`));
5725
- this.dbPromise = guardedOpen.catch((error) => {
5726
- this.dbPromise = null;
5727
- openPromise.then((db) => db.close()).catch(() => {
5728
- return;
5729
- });
5730
- throw error;
5731
- });
5812
+ const receipt = input.serverActivation.serverActivationReceipt;
5813
+ assertNormalSigningMatchesActivation({
5814
+ normalSigning: input.routerAbEcdsaDerivationNormalSigning,
5815
+ activationBinding: binding,
5816
+ roleLocalPublicFacts: facts,
5817
+ receipt: receipt.protocolReceipt
5818
+ });
5819
+ return new DurableEcdsaMaterialBindingProof({
5820
+ materialActivation: materialActivationFromCommit(receipt.protocolReceipt),
5821
+ routerAbEcdsaDerivationNormalSigning: input.routerAbEcdsaDerivationNormalSigning,
5822
+ roleLocalPublicFacts: input.roleLocalPublicFacts,
5823
+ roleLocalBinding: input.activationBinding.roleLocalBinding,
5824
+ durableMaterialRef: input.activationBinding.durableMaterialRef,
5825
+ bindingDigest: input.activationBinding.bindingDigest,
5826
+ lifecycleId: receipt.lifecycleId,
5827
+ ciphertextDigest: input.ciphertextDigest,
5828
+ activationDigest: receipt.activationDigest,
5829
+ activatedAt: receipt.activatedAt,
5830
+ runtimePolicyScope
5831
+ });
5832
+ }
5833
+ function buildValidatedEncryptedEcdsaReadyMaterial(input) {
5834
+ return new ValidatedEncryptedEcdsaReadyMaterialProof({
5835
+ binding: input.binding,
5836
+ sealingKeyId: input.sealingKeyId,
5837
+ iv12B64u: input.iv12B64u,
5838
+ ciphertextB64u: input.ciphertextB64u
5839
+ });
5840
+ }
5841
+ function buildActiveEcdsaCapabilityManifest(input) {
5842
+ assertRegisteredPublicFactsMatchBinding(input.registeredPublicFacts, input.activationBinding.roleLocalBinding, input.serverActivation);
5843
+ assertDurableMaterialMatchesActivation(input.durableMaterial, input.activationBinding, input.serverActivation);
5844
+ const signer = new RegisteredEvmFamilySignerProof({
5845
+ preparedSigner: input.activationBinding.signer,
5846
+ registeredPublicFacts: input.registeredPublicFacts
5847
+ });
5848
+ const activation = {
5849
+ kind: "active_ecdsa_material_activation",
5850
+ materialActivation: input.durableMaterial.materialActivation,
5851
+ serverActivation: input.serverActivation,
5852
+ retention: "retained"
5853
+ };
5854
+ return new ActiveEcdsaCapabilityManifestProof({
5855
+ identity: input.activationBinding.targetManifest,
5856
+ signer,
5857
+ activation,
5858
+ durableMaterial: input.durableMaterial,
5859
+ committedAt: input.committedAt
5860
+ });
5861
+ }
5862
+ function buildReplacedEcdsaCapabilityManifest(input) {
5863
+ assertValidEcdsaReplacement(input.activeManifest, input.replacementManifest);
5864
+ return new ReplacedEcdsaCapabilityManifestProof({
5865
+ identity: input.activeManifest.identity,
5866
+ signer: input.activeManifest.signer,
5867
+ retirement: {
5868
+ kind: "replaced",
5869
+ replacementManifest: input.replacementManifest.identity,
5870
+ replacementActivation: input.replacementManifest.activation.serverActivation
5732
5871
  }
5733
- return await this.dbPromise;
5872
+ });
5873
+ }
5874
+ function assertUniqueEcdsaTargetMemberships(targetMemberships) {
5875
+ const targetKeys = targetMemberships.map(ecdsaTargetMembershipKey);
5876
+ if (new Set(targetKeys).size !== targetKeys.length) {
5877
+ throw new Error("ECDSA capability target memberships must be unique");
5734
5878
  }
5735
- async runTransaction(stores, mode, task, options) {
5736
- const db = await withTimeout(this.getDB(), INDEXED_DB_OPEN_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB connection timed out for ${this.config.dbName}. Close other tabs using this app and retry.`));
5737
- const tx = db.transaction([...stores], mode, options);
5738
- const context = {
5739
- db,
5740
- tx,
5741
- store(name) {
5742
- return tx.objectStore(name);
5879
+ }
5880
+ function ecdsaTargetMembershipKey(target) {
5881
+ switch (target.kind) {
5882
+ case "evm":
5883
+ return `evm:${target.namespace}:${target.chainId}:${target.networkSlug}`;
5884
+ case "tempo":
5885
+ return `tempo:${target.chainId}:${target.networkSlug}`;
5886
+ default:
5887
+ return assertNever(target);
5888
+ }
5889
+ }
5890
+ function assertUniqueParticipantIds(participantIds) {
5891
+ const normalizedIds = participantIds.map(Number);
5892
+ if (normalizedIds.some((participantId) => !Number.isSafeInteger(participantId) || participantId < 1) || new Set(normalizedIds).size !== normalizedIds.length) {
5893
+ throw new Error("ECDSA participant ids must be unique positive integers");
5894
+ }
5895
+ }
5896
+ function assertTargetManifestTransition(expected, target) {
5897
+ switch (expected.kind) {
5898
+ case "no_current_manifest":
5899
+ if (Number(target.manifestRevision) !== 1) {
5900
+ throw new Error("Initial ECDSA manifest revision must be 1");
5743
5901
  }
5744
- };
5745
- try {
5746
- return await withTimeout(runIndexedDbTransactionTask(context, task), INDEXED_DB_TRANSACTION_TIMEOUT_MS, indexedDbTimeoutError(`[SeamsWalletDBManager] IndexedDB transaction timed out for ${this.config.dbName}. Close other tabs using this app and retry.`), () => {
5747
- try {
5748
- tx.abort();
5749
- } catch {}
5750
- });
5751
- } catch (error) {
5752
- try {
5753
- tx.abort();
5754
- } catch {}
5755
- await tx.done.catch(() => {
5756
- return;
5757
- });
5758
- throw error;
5759
- }
5902
+ return;
5903
+ case "exact_manifest":
5904
+ if (target.manifestId === expected.manifestId || Number(target.manifestRevision) !== Number(expected.manifestRevision) + 1) {
5905
+ throw new Error("Replacement ECDSA manifest must use a fresh id and next revision");
5906
+ }
5907
+ return;
5908
+ default:
5909
+ return assertNever(expected);
5760
5910
  }
5761
5911
  }
5762
-
5763
- // src/core/indexedDB/singletons.ts
5764
- var seamsWalletDB = new SeamsWalletDBManager;
5765
-
5766
- // src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.ts
5767
- var FIXED_ECDSA_PRESIGN_PROTOCOL_ID = "seams/router-ab-ecdsa-presign/fixed-2of2/v1";
5768
- function requireIdentityString(value, label) {
5769
- if (typeof value !== "string" || !value)
5770
- throw new Error(`${label} is required`);
5771
- if (value.trim() !== value)
5772
- throw new Error(`${label} must be canonical`);
5773
- return value;
5912
+ function assertExpectedStatePair(expectedManifest, expectedGeneration) {
5913
+ switch (expectedManifest.kind) {
5914
+ case "no_current_manifest":
5915
+ if (expectedGeneration.kind !== "no_current_generation") {
5916
+ throw new Error("Initial ECDSA activation cannot expect a server generation");
5917
+ }
5918
+ return;
5919
+ case "exact_manifest":
5920
+ if (expectedGeneration.kind !== "exact_generation") {
5921
+ throw new Error("Replacement ECDSA activation requires an exact server generation");
5922
+ }
5923
+ return;
5924
+ default:
5925
+ return assertNever(expectedManifest);
5926
+ }
5774
5927
  }
5775
- function parseEcdsaClientPresignPoolIdentity(value) {
5776
- if (typeof value !== "object" || value === null) {
5777
- throw new Error("poolIdentity is required");
5928
+ function assertServerCommitMatchesPreparedCommand(serverCommit, journal) {
5929
+ const canonicalRequest = JSON.parse(journal.activationCommand.canonicalRequest);
5930
+ const requestDigestNamesOuterOperation = canonicalRequest.operation === "wallet_registration_activate_v2";
5931
+ if (serverCommit.correlationId !== journal.activationCommand.correlationId || !requestDigestNamesOuterOperation && serverCommit.activationRequestDigest !== journal.activationCommand.requestDigest) {
5932
+ throw new Error("ECDSA server activation commit does not match the prepared command");
5778
5933
  }
5779
- const raw = value;
5780
- if (raw.pairRole !== "client")
5781
- throw new Error("poolIdentity.pairRole must be client");
5782
- if (raw.protocolId !== FIXED_ECDSA_PRESIGN_PROTOCOL_ID) {
5783
- throw new Error("poolIdentity.protocolId is unsupported");
5934
+ }
5935
+ function assertProtocolReceiptMatchesActivationBinding(receipt, activationBinding) {
5936
+ const publicIdentity = receipt.ecdsa_activation.public_identity;
5937
+ const materialActivation = receipt.ecdsa_activation.material_activation;
5938
+ materialActivationFromCommit(receipt);
5939
+ if (publicIdentity.context_binding_b64u !== String(activationBinding.bindingDigest) || publicIdentity.derivation_client_share_public_key33_b64u !== String(activationBinding.roleLocalBinding.clientVerifyingPublicKey33B64u) || materialActivation.material_owner !== String(activationBinding.signer.materialOwner) || materialActivation.key_binding !== String(activationBinding.bindingDigest) || materialActivation.lifecycle_binding !== receipt.lifecycle_id || materialActivation.signing_worker !== receipt.ecdsa_activation.signing_worker.server_id) {
5940
+ throw new Error("ECDSA activation receipt does not match the prepared material binding");
5784
5941
  }
5785
- const relayerUrl = requireIdentityString(raw.relayerUrl, "poolIdentity.relayerUrl");
5786
- if (relayerUrl.replace(/\/+$/g, "") !== relayerUrl) {
5787
- throw new Error("poolIdentity.relayerUrl must be canonical");
5942
+ }
5943
+ function assertProtocolReceiptMatchesServerCommit(receipt, serverCommit) {
5944
+ const receiptRequestDigest = base64UrlEncode(Uint8Array.from(receipt.activation_request_digest.bytes));
5945
+ if (receipt.activation_correlation_id !== serverCommit.correlationId || receiptRequestDigest !== serverCommit.activationRequestDigest || receipt.server_generation !== serverCommit.serverGeneration) {
5946
+ throw new Error("ECDSA activation receipt does not match the server activation commit");
5788
5947
  }
5789
- return {
5790
- relayerUrl,
5791
- materialActivationB64u: requireIdentityString(raw.materialActivationB64u, "poolIdentity.materialActivationB64u"),
5792
- materialActivationId: requireIdentityString(raw.materialActivationId, "poolIdentity.materialActivationId"),
5793
- capability: requireIdentityString(raw.capability, "poolIdentity.capability"),
5794
- keyBinding: requireIdentityString(raw.keyBinding, "poolIdentity.keyBinding"),
5795
- walletId: requireIdentityString(raw.walletId, "poolIdentity.walletId"),
5796
- signingScopeB64u: requireIdentityString(raw.signingScopeB64u, "poolIdentity.signingScopeB64u"),
5797
- pairRole: "client",
5798
- keyEpoch: requireIdentityString(raw.keyEpoch, "poolIdentity.keyEpoch"),
5799
- activationEpoch: requirePoolRootShareEpoch(raw.activationEpoch),
5800
- protocolId: FIXED_ECDSA_PRESIGN_PROTOCOL_ID
5801
- };
5802
5948
  }
5803
- function requirePoolRootShareEpoch(value) {
5804
- const parsed = parseRootShareEpoch(value);
5805
- if (!parsed.ok)
5806
- throw new Error("poolIdentity.activationEpoch is invalid");
5807
- return parsed.value;
5949
+ function lifecycleIdFromProtocolReceipt(receipt) {
5950
+ return parseEcdsaLifecycleId(receipt.lifecycle_id);
5808
5951
  }
5809
- function equalEcdsaClientPresignPoolIdentity(left, right) {
5810
- return left.relayerUrl === right.relayerUrl && left.materialActivationB64u === right.materialActivationB64u && left.materialActivationId === right.materialActivationId && left.capability === right.capability && left.keyBinding === right.keyBinding && left.walletId === right.walletId && left.signingScopeB64u === right.signingScopeB64u && left.pairRole === right.pairRole && left.keyEpoch === right.keyEpoch && left.activationEpoch === right.activationEpoch && left.protocolId === right.protocolId;
5952
+ function activationDigestFromProtocolReceipt(receipt) {
5953
+ return parseEcdsaActivationDigest(receipt.ecdsa_activation.activation_digest_b64u);
5811
5954
  }
5812
- function ecdsaClientPresignPoolKey(identity) {
5813
- return [
5814
- identity.protocolId,
5815
- identity.relayerUrl,
5816
- identity.signingScopeB64u,
5817
- identity.materialActivationB64u
5818
- ].join("|");
5955
+ function materialActivationFromCommit(receipt) {
5956
+ return routerAbMpcMaterialActivationRefFromWire(receipt.ecdsa_activation.material_activation);
5957
+ }
5958
+ function assertRegisteredPublicFactsMatchBinding(publicFacts, binding, serverActivation) {
5959
+ const receiptPublicIdentity = serverActivation.serverActivationReceipt.protocolReceipt.ecdsa_activation.public_identity;
5960
+ if (String(publicFacts.keyHandle) !== String(binding.keyHandle) || String(publicFacts.publicKeyB64u) !== receiptPublicIdentity.threshold_public_key33_b64u || String(binding.clientVerifyingPublicKey33B64u) !== receiptPublicIdentity.derivation_client_share_public_key33_b64u || !participantIdsMatch(publicFacts.participantIds, binding.participantIds)) {
5961
+ throw new Error("Registered ECDSA public facts do not match role-local material");
5962
+ }
5963
+ }
5964
+ function participantIdsMatch(left, right) {
5965
+ if (left.length !== right.length)
5966
+ return false;
5967
+ return left.every((participantId, index) => Number(participantId) === Number(right[index]));
5968
+ }
5969
+ function assertServerActivationMatchesBinding(serverActivation, activationBinding) {
5970
+ assertProtocolReceiptMatchesActivationBinding(serverActivation.serverActivationReceipt.protocolReceipt, activationBinding);
5971
+ }
5972
+ function assertDurableMaterialMatchesActivation(durableMaterial, activationBinding, serverActivation) {
5973
+ const receipt = serverActivation.serverActivationReceipt;
5974
+ const committedMaterialActivation = materialActivationFromCommit(receipt.protocolReceipt);
5975
+ if (!mpcMaterialActivationRefsEqual(durableMaterial.materialActivation, committedMaterialActivation) || durableMaterial.roleLocalBinding !== activationBinding.roleLocalBinding || durableMaterial.durableMaterialRef !== activationBinding.durableMaterialRef || durableMaterial.bindingDigest !== activationBinding.bindingDigest || durableMaterial.lifecycleId !== receipt.lifecycleId || durableMaterial.activationDigest !== receipt.activationDigest || durableMaterial.activatedAt !== receipt.activatedAt) {
5976
+ throw new Error("Durable ECDSA material does not match its activation");
5977
+ }
5978
+ assertNormalSigningMatchesActivation({
5979
+ normalSigning: durableMaterial.routerAbEcdsaDerivationNormalSigning,
5980
+ activationBinding,
5981
+ roleLocalPublicFacts: durableMaterial.roleLocalPublicFacts,
5982
+ receipt: receipt.protocolReceipt
5983
+ });
5984
+ }
5985
+ function assertNormalSigningMatchesActivation(input) {
5986
+ const scope = input.normalSigning.scope;
5987
+ const facts = input.roleLocalPublicFacts;
5988
+ const expectedMaterialActivation = materialActivationFromCommit(input.receipt);
5989
+ const expectedMaterialActivationWire = routerAbMpcMaterialActivationRefToWire({
5990
+ kind: expectedMaterialActivation.kind,
5991
+ activationId: expectedMaterialActivation.activationId,
5992
+ capability: expectedMaterialActivation.capability,
5993
+ materialOwner: expectedMaterialActivation.materialOwner,
5994
+ keyBinding: expectedMaterialActivation.keyBinding,
5995
+ lifecycleBinding: expectedMaterialActivation.lifecycleBinding,
5996
+ signingWorker: expectedMaterialActivation.signingWorker
5997
+ });
5998
+ if (scope.wallet_id !== String(input.activationBinding.signer.walletId) || scope.ecdsa_threshold_key_id !== String(input.activationBinding.roleLocalBinding.ecdsaThresholdKeyId) || scope.signing_root_id !== String(input.activationBinding.signer.signingRootId) || scope.signing_root_version !== String(input.activationBinding.signer.signingRootVersion) || scope.context.application_binding_digest_b64u !== input.receipt.ecdsa_activation.context.application_binding_digest_b64u || !sameRouterAbEcdsaDerivationPublicIdentityV1(scope.public_identity, input.receipt.ecdsa_activation.public_identity) || !sameRouterAbServerIdentityV1(scope.signing_worker, input.receipt.ecdsa_activation.signing_worker) || scope.activation_epoch !== input.receipt.ecdsa_activation.activation_epoch || scope.public_identity.context_binding_b64u !== facts.contextBinding32B64u || scope.public_identity.derivation_client_share_public_key33_b64u !== facts.derivationClientSharePublicKey33B64u || scope.public_identity.server_public_key33_b64u !== facts.relayerPublicKey33B64u || scope.public_identity.threshold_public_key33_b64u !== facts.groupPublicKey33B64u || !sameRouterAbMpcMaterialActivationRef(scope.material_activation, expectedMaterialActivationWire)) {
5999
+ throw new Error("ECDSA normal-signing runtime does not match its activation");
6000
+ }
6001
+ }
6002
+ function assertValidEcdsaReplacement(active, replacement) {
6003
+ if (active.identity.manifestId === replacement.identity.manifestId || Number(replacement.identity.manifestRevision) !== Number(active.identity.manifestRevision) + 1 || active.signer.capability !== replacement.signer.capability || active.signer.signerId !== replacement.signer.signerId || active.signer.walletId !== replacement.signer.walletId || active.signer.authority.authorityDigest !== replacement.signer.authority.authorityDigest || active.signer.materialOwner !== replacement.signer.materialOwner || active.durableMaterial.durableMaterialRef === replacement.durableMaterial.durableMaterialRef || active.activation.serverActivation.serverGeneration === replacement.activation.serverActivation.serverGeneration) {
6004
+ throw new Error("ECDSA replacement manifest does not exactly replace the active manifest");
6005
+ }
6006
+ }
6007
+ function assertNever(value) {
6008
+ throw new Error(`Unexpected ECDSA capability branch: ${String(value)}`);
5819
6009
  }
5820
-
5821
- // src/core/signingEngine/workerManager/ecdsaPresignLifecycle.ts
5822
- var ECDSA_CLIENT_PRESIGNATURE_CAPACITY = 5;
5823
- var MAX_DURABLE_CLIENT_PRESIGNATURE_LIFETIME_MS = 90 * 24 * 60 * 60000;
5824
6010
 
5825
6011
  // src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.ts
5826
6012
  var MANIFEST_RECORD_VERSION = "ecdsa_capability_manifest_v3";
@@ -6787,6 +6973,9 @@ async function readAvailableClientPresignatureRows(context, poolIdentity, nowMs)
6787
6973
  await deleteExpiredClientPresignatureRows(context, poolIdentity.walletId, nowMs);
6788
6974
  const store = context.store(PRESIGNATURE_STORE);
6789
6975
  const rows = await store.index(SEAMS_WALLET_INDEXES.poolIdentityKey).getAll(ecdsaClientPresignPoolKey(poolIdentity));
6976
+ if (poolIdentity.ownershipGeneration === 1) {
6977
+ rows.push(...await store.index(SEAMS_WALLET_INDEXES.poolIdentityKey).getAll(initialGenerationPoolKey(poolIdentity)));
6978
+ }
6790
6979
  const available = [];
6791
6980
  for (const raw of rows) {
6792
6981
  try {
@@ -6794,6 +6983,8 @@ async function readAvailableClientPresignatureRows(context, poolIdentity, nowMs)
6794
6983
  if (row.expires_at_ms <= nowMs) {
6795
6984
  await store.delete(row.record_id);
6796
6985
  } else {
6986
+ if (raw.pool_identity_key !== row.pool_identity_key)
6987
+ await store.put(row);
6797
6988
  available.push(row);
6798
6989
  }
6799
6990
  } catch {
@@ -6805,10 +6996,11 @@ async function readAvailableClientPresignatureRows(context, poolIdentity, nowMs)
6805
6996
  return available;
6806
6997
  }
6807
6998
  function presignatureAadProjection(metadata) {
6999
+ const { ownershipGeneration, ...initialIdentity } = metadata.poolIdentity;
6808
7000
  return {
6809
7001
  domain: CLIENT_PRESIGNATURE_AAD_DOMAIN,
6810
7002
  version: 1,
6811
- pool_identity: metadata.poolIdentity,
7003
+ pool_identity: ownershipGeneration === 1 ? initialIdentity : metadata.poolIdentity,
6812
7004
  durable_material_ref: metadata.durableMaterialRef,
6813
7005
  presignature_id: metadata.presignatureId,
6814
7006
  group_public_key33_b64u: metadata.groupPublicKey33B64u,
@@ -6818,6 +7010,14 @@ function presignatureAadProjection(metadata) {
6818
7010
  sealing_key_id: metadata.sealingKeyId
6819
7011
  };
6820
7012
  }
7013
+ function initialGenerationPoolKey(identity) {
7014
+ return [
7015
+ identity.protocolId,
7016
+ identity.relayerUrl,
7017
+ identity.signingScopeB64u,
7018
+ identity.materialActivationB64u
7019
+ ].join("|");
7020
+ }
6821
7021
  function parseSealedAvailableClientPresignatureRow(value) {
6822
7022
  const record = requireRecord(value, "ECDSA durable presignature row");
6823
7023
  requireExactKeys3(record, "ECDSA durable presignature row", [
@@ -6839,7 +7039,9 @@ function parseSealedAvailableClientPresignatureRow(value) {
6839
7039
  throw new Error("ECDSA durable presignature row kind is invalid");
6840
7040
  }
6841
7041
  const poolIdentityRecord = requireRecord(record.pool_identity, "ECDSA durable presignature pool identity");
7042
+ const initialGenerationRecord = !Object.hasOwn(poolIdentityRecord, "ownershipGeneration");
6842
7043
  requireExactKeys3(poolIdentityRecord, "ECDSA durable presignature pool identity", [
7044
+ ...initialGenerationRecord ? [] : ["ownershipGeneration"],
6843
7045
  "activationEpoch",
6844
7046
  "capability",
6845
7047
  "keyBinding",
@@ -6852,10 +7054,10 @@ function parseSealedAvailableClientPresignatureRow(value) {
6852
7054
  "signingScopeB64u",
6853
7055
  "walletId"
6854
7056
  ]);
6855
- const poolIdentity = parseEcdsaClientPresignPoolIdentity(poolIdentityRecord);
7057
+ const poolIdentity = parseEcdsaClientPresignPoolIdentity(initialGenerationRecord ? { ...poolIdentityRecord, ownershipGeneration: 1 } : poolIdentityRecord);
6856
7058
  const recordId = parseDurableClientPresignatureRecordId(record.record_id);
6857
7059
  const poolIdentityKeyValue = String(record.pool_identity_key ?? "");
6858
- if (poolIdentityKeyValue !== ecdsaClientPresignPoolKey(poolIdentity)) {
7060
+ if (poolIdentityKeyValue !== ecdsaClientPresignPoolKey(poolIdentity) && !(initialGenerationRecord && poolIdentityKeyValue === initialGenerationPoolKey(poolIdentity))) {
6859
7061
  throw new Error("ECDSA durable presignature pool identity index is inconsistent");
6860
7062
  }
6861
7063
  const walletId = String(record.wallet_id ?? "").trim();
@@ -6901,7 +7103,7 @@ function parseSealedAvailableClientPresignatureRow(value) {
6901
7103
  kind: "sealed_available_client_presignature_v1",
6902
7104
  record_id: recordId,
6903
7105
  pool_identity: poolIdentity,
6904
- pool_identity_key: poolIdentityKeyValue,
7106
+ pool_identity_key: ecdsaClientPresignPoolKey(poolIdentity),
6905
7107
  wallet_id: walletId,
6906
7108
  material_activation_id: materialActivationId,
6907
7109
  durable_material_ref: durableMaterialRef,
@@ -6986,6 +7188,42 @@ async function retireClientPresignaturesForActivationInTransaction(context, wall
6986
7188
  }
6987
7189
  }
6988
7190
 
7191
+ // src/core/indexedDB/seamsWalletDB/walletOwnershipGeneration.ts
7192
+ async function readOwnershipGeneration(context, walletId) {
7193
+ const raw = await context.store(SEAMS_WALLET_STORES.appState).get(`wallet_ownership_generation:${walletId}`);
7194
+ if (raw === undefined)
7195
+ return 1;
7196
+ const record = requireRecord(raw, "Wallet ownership generation");
7197
+ const generation = record.value;
7198
+ if (typeof generation !== "number" || !Number.isSafeInteger(generation) || generation < 1) {
7199
+ throw new Error("Stored wallet ownership generation is invalid");
7200
+ }
7201
+ return generation;
7202
+ }
7203
+ async function assertWalletOwnershipGeneration(context, walletId, generation) {
7204
+ if (await readOwnershipGeneration(context, walletId) !== generation) {
7205
+ throw new Error("Wallet ownership generation requires fresh authentication");
7206
+ }
7207
+ }
7208
+
7209
+ // ../shared-ts/src/utils/secureRandomId.ts
7210
+ var DEFAULT_SECURE_RANDOM_ID_BYTES = 32;
7211
+ function secureRandomBytes(length = DEFAULT_SECURE_RANDOM_ID_BYTES, label = "secure random bytes") {
7212
+ const byteLength = Math.max(1, Math.floor(Number(length) || 0));
7213
+ const cryptoApi = globalThis.crypto;
7214
+ if (typeof cryptoApi?.getRandomValues !== "function") {
7215
+ throw new Error(`WebCrypto getRandomValues is required for ${label}`);
7216
+ }
7217
+ return cryptoApi.getRandomValues(new Uint8Array(byteLength));
7218
+ }
7219
+ function secureRandomBase64Url(byteLength = DEFAULT_SECURE_RANDOM_ID_BYTES, label = "secure random id") {
7220
+ return base64UrlEncode(secureRandomBytes(byteLength, label));
7221
+ }
7222
+ function secureRandomId(prefix, byteLength = DEFAULT_SECURE_RANDOM_ID_BYTES, label = `${prefix} id`) {
7223
+ const normalizedPrefix = String(prefix || "").trim() || "id";
7224
+ return `${normalizedPrefix}-${secureRandomBase64Url(byteLength, label)}`;
7225
+ }
7226
+
6989
7227
  // src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.ts
6990
7228
  async function persistenceDigest(category, selector, detail) {
6991
7229
  const canonical = alphabetizeStringify({ category, ...selectorColumns(selector), detail });
@@ -7591,7 +7829,8 @@ class IndexedDbEcdsaCapabilityManifestStore {
7591
7829
  }
7592
7830
  };
7593
7831
  try {
7594
- const result = await this.manager.runTransaction([PRESIGNATURE_STORE, MATERIAL_STORE], "readwrite", async (context) => {
7832
+ const result = await this.manager.runTransaction([PRESIGNATURE_STORE, MATERIAL_STORE, SEAMS_WALLET_STORES.appState], "readwrite", async (context) => {
7833
+ await assertWalletOwnershipGeneration(context, poolIdentity.walletId, poolIdentity.ownershipGeneration);
7595
7834
  const nowMs = Date.now();
7596
7835
  const available = await readAvailableClientPresignatureRows(context, poolIdentity, nowMs);
7597
7836
  if (available.length >= ECDSA_CLIENT_PRESIGNATURE_CAPACITY) {
@@ -7623,7 +7862,8 @@ class IndexedDbEcdsaCapabilityManifestStore {
7623
7862
  const poolIdentity = parseEcdsaClientPresignPoolIdentity(poolIdentityInput);
7624
7863
  const nowMs = Date.now();
7625
7864
  try {
7626
- return await this.manager.runTransaction([PRESIGNATURE_STORE], "readwrite", async (context) => {
7865
+ return await this.manager.runTransaction([PRESIGNATURE_STORE, SEAMS_WALLET_STORES.appState], "readwrite", async (context) => {
7866
+ await assertWalletOwnershipGeneration(context, poolIdentity.walletId, poolIdentity.ownershipGeneration);
7627
7867
  const rows = await readAvailableClientPresignatureRows(context, poolIdentity, nowMs);
7628
7868
  return rows.map(metadataFromPresignatureRow).sort((left, right) => left.createdAtMs - right.createdAtMs);
7629
7869
  });
@@ -7638,8 +7878,9 @@ class IndexedDbEcdsaCapabilityManifestStore {
7638
7878
  const poolIdentity = parseEcdsaClientPresignPoolIdentity(input.poolIdentity);
7639
7879
  let row;
7640
7880
  try {
7641
- const claimed = await this.manager.runTransaction([PRESIGNATURE_STORE], "readwrite", async (context) => {
7881
+ const claimed = await this.manager.runTransaction([PRESIGNATURE_STORE, SEAMS_WALLET_STORES.appState], "readwrite", async (context) => {
7642
7882
  const store = context.store(PRESIGNATURE_STORE);
7883
+ await assertWalletOwnershipGeneration(context, poolIdentity.walletId, poolIdentity.ownershipGeneration);
7643
7884
  const raw = await store.get(recordId);
7644
7885
  if (raw === undefined)
7645
7886
  return { kind: "claimed_elsewhere" };
@@ -7715,25 +7956,6 @@ class IndexedDbEcdsaCapabilityManifestStore {
7715
7956
  }
7716
7957
  });
7717
7958
  }
7718
- async deleteClientPresignatures(target) {
7719
- return await this.manager.runTransaction([PRESIGNATURE_STORE], "readwrite", async (context) => {
7720
- const store = context.store(PRESIGNATURE_STORE);
7721
- let deletedCount = 0;
7722
- switch (target.kind) {
7723
- case "wallet": {
7724
- const walletId = String(target.walletId).trim();
7725
- if (!walletId)
7726
- throw new Error("ECDSA durable presignature wallet id is required");
7727
- deletedCount = await deleteCursorRows(await store.index(SEAMS_WALLET_INDEXES.walletId).openCursor(walletId));
7728
- break;
7729
- }
7730
- case "all":
7731
- deletedCount = await deleteCursorRows(await store.openCursor());
7732
- break;
7733
- }
7734
- return deletedCount;
7735
- });
7736
- }
7737
7959
  async listActiveWalletCapabilitySubjects(walletIdInput) {
7738
7960
  const parsedWalletId = parseWalletId(walletIdInput);
7739
7961
  if (!parsedWalletId.ok)