@seams/wallet 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1287) 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/waitForNearAccount.js +72 -0
  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/config/presignatures.js +6 -0
  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/bytes.js +1 -15
  85. package/dist/esm/core/signingEngine/chains/evm/evmAdapter.js +1 -1
  86. package/dist/esm/core/signingEngine/chains/near/display.js +1 -27
  87. package/dist/esm/core/signingEngine/chains/near/nearSignerWasm.js +2 -2
  88. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +6 -39
  89. package/dist/esm/core/signingEngine/flows/shared/signingConfirmation.js +2 -2
  90. package/dist/esm/core/signingEngine/flows/shared/signingStateMachine.js +1 -11
  91. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -2
  92. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +3 -3
  93. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +3 -136
  94. package/dist/esm/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.js +1 -1
  95. package/dist/esm/core/signingEngine/flows/signEvmFamily/operationIds.js +1 -1
  96. package/dist/esm/core/signingEngine/flows/signEvmFamily/preparedSigning.js +2 -3
  97. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +40 -5
  98. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +4 -4
  99. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +1 -1
  100. package/dist/esm/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +27 -53
  101. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +5 -5
  102. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +40 -33
  103. package/dist/esm/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +8 -2
  104. package/dist/esm/core/signingEngine/flows/signNear/implicitAccountFunding.js +1 -1
  105. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +94 -31
  106. package/dist/esm/core/signingEngine/flows/signNear/shared/implicitAccountFundingPort.js +1 -8
  107. package/dist/esm/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.js +1 -38
  108. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +53 -8
  109. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +5 -5
  110. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +30 -44
  111. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +21 -12
  112. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +10 -9
  113. package/dist/esm/core/signingEngine/interfaces/ecdsaChainTarget.js +1 -1
  114. package/dist/esm/core/signingEngine/nonce/nonceLaneKeys.js +1 -35
  115. package/dist/esm/core/signingEngine/nonce/nonceTypes.js +2 -26
  116. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.js +4 -3
  117. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +5 -1
  118. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +112 -162
  119. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePoolPolicy.js +31 -0
  120. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +1 -1
  121. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +3 -913
  122. package/dist/esm/core/signingEngine/session/emailOtp/challengeDelivery.js +1 -45
  123. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +1 -81
  124. package/dist/esm/core/signingEngine/session/identity/clientSessionPersistenceState.js +1 -43
  125. package/dist/esm/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.js +1 -9
  126. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +3 -125
  127. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +3 -19
  128. package/dist/esm/core/signingEngine/session/identity/laneIdentity.js +2 -106
  129. package/dist/esm/core/signingEngine/session/keyMaterialBrands.js +1 -1
  130. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionFailure.js +1 -1
  131. package/dist/esm/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.js +1 -114
  132. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +2 -2
  133. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +2 -187
  134. package/dist/esm/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +2 -18
  135. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +2 -130
  136. package/dist/esm/core/signingEngine/session/material/linkedEcdsaHolderRuntime.js +1 -25
  137. package/dist/esm/core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js +1 -73
  138. package/dist/esm/core/signingEngine/session/material/walletSigningStateFailure.js +1 -69
  139. package/dist/esm/core/signingEngine/session/operationState/preparedOperation.js +1 -5
  140. package/dist/esm/core/signingEngine/session/operationState/transactionState.js +0 -1
  141. package/dist/esm/core/signingEngine/session/passkey/prfCache.js +1 -5
  142. package/dist/esm/core/signingEngine/session/persistence/durableSealedSessionCommands.js +1 -9
  143. package/dist/esm/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +3 -202
  144. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +4 -83
  145. package/dist/esm/core/signingEngine/session/persistence/sealedSessionStore.js +2 -2
  146. package/dist/esm/core/signingEngine/session/planning/planner.js +2 -13
  147. package/dist/esm/core/signingEngine/session/sealedRecovery/materialActivationKey.js +1 -8
  148. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +2 -1
  149. package/dist/esm/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +2 -41
  150. package/dist/esm/core/signingEngine/stepUpConfirmation/intentDigestPreparation.js +1 -14
  151. package/dist/esm/core/signingEngine/stepUpConfirmation/types.js +1 -7
  152. package/dist/esm/core/signingEngine/threshold/commitQueueShared.js +1 -127
  153. package/dist/esm/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +3 -297
  154. package/dist/esm/core/signingEngine/threshold/ecdsa/operationStepUp.js +10 -24
  155. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +7 -209
  156. package/dist/esm/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +5 -208
  157. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +3 -9
  158. package/dist/esm/core/signingEngine/uiConfirm/nearFundingNotice.js +1 -17
  159. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -173
  160. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +3 -3
  161. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +2 -2
  162. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +1 -1
  163. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +5 -4
  164. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +2 -2
  165. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-resize-events.js +1 -6
  166. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/formatters.js +1 -10
  167. package/dist/esm/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +1 -19
  168. package/dist/esm/core/signingEngine/webauthnAuth/credentials/helpers.js +2 -170
  169. package/dist/esm/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.js +27 -5
  170. package/dist/esm/core/signingEngine/workerManager/validation.js +1 -104
  171. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +1 -33
  172. package/dist/esm/core/types/rpc.js +1 -4
  173. package/dist/esm/core/types/sdkSentEvents.js +1 -24
  174. package/dist/esm/core/walletRuntimePaths/base.js +1 -28
  175. package/dist/esm/externalEvm/controller.js +7 -7
  176. package/dist/esm/index.js +8 -7
  177. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +9 -9
  178. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +1 -2
  179. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +9 -185
  180. package/dist/esm/react/components/AccountMenuButton/WalletRegionSection.js +303 -0
  181. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +31 -5
  182. package/dist/esm/react/components/AccountMenuButton/index.js +21 -13
  183. package/dist/esm/react/components/AccountMenuButton/types.js +2 -1
  184. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +5 -17
  185. package/dist/esm/react/components/QRCodeScanner.js +5 -5
  186. package/dist/esm/react/components/ShowQRCode.js +13 -13
  187. package/dist/esm/react/context/SeamsWebProvider.js +1 -2
  188. package/dist/esm/react/context/index.js +8 -10
  189. package/dist/esm/react/context/seamsManagerSingleton.js +1 -1
  190. package/dist/esm/react/context/useLoginStateRefresher.js +10 -13
  191. package/dist/esm/react/context/useNearProvisioningStateRefresh.js +3 -3
  192. package/dist/esm/react/context/useSeamsContextValue.js +33 -81
  193. package/dist/esm/react/context/useSeamsWithSdkFlow.js +22 -51
  194. package/dist/esm/react/context/useWalletIframeLifecycle.js +20 -110
  195. package/dist/esm/react/hooks/useAccountInput.js +10 -13
  196. package/dist/esm/react/hooks/useDeviceLinking.js +1 -1
  197. package/dist/esm/react/hooks/useNearClient.js +1 -1
  198. package/dist/esm/react/hooks/useQRCamera.js +2 -8
  199. package/dist/esm/react/hooks/useWallet.js +5 -6
  200. package/dist/esm/react/hooks/useWalletAuth.js +3 -4
  201. package/dist/esm/react/hooks/useWalletDevices.js +2 -2
  202. package/dist/esm/react/index.js +4 -4
  203. package/dist/esm/react/transactionReview/TransactionReviewHost.js +1 -1
  204. package/dist/esm/react/transactionReview/boundCalls.js +5 -39
  205. package/dist/esm/react/transactionReview/controller.js +3 -4
  206. package/dist/esm/react/transactionReview/snapshot.js +1 -1
  207. package/dist/esm/react/utils/walletIframe.js +11 -52
  208. package/dist/esm/sdk/ConfirmationDrawer-DY0_yeUV.js +1 -0
  209. package/dist/esm/sdk/NonceCoordinator-CFFq8-Q9.js +1 -0
  210. package/dist/esm/sdk/accountLifecycle-CAMVowDl.js +1 -0
  211. package/dist/esm/sdk/activeWalletSession-DiZcKjB_.js +1 -0
  212. package/dist/esm/sdk/adapters-DdDOQzl4.js +2 -0
  213. package/dist/esm/sdk/appearance-ZGVLwA4N.js +1 -0
  214. package/dist/esm/sdk/authenticatorOptions-DMLnDWT2.js +1 -0
  215. package/dist/esm/sdk/authorizationAdmission-Ckx6q6tp.js +1 -0
  216. package/dist/esm/sdk/bytes-BBYkulRB.js +1 -0
  217. package/dist/esm/sdk/canonicalPrimitives-CKPGgpxg.js +1 -0
  218. package/dist/esm/sdk/canonicalSignerErrorCode-DEHsPxNm.js +1 -0
  219. package/dist/esm/sdk/capabilityKinds-CKQ4Uqnv.js +1 -0
  220. package/dist/esm/sdk/chains-CiYQT1K4.js +1 -0
  221. package/dist/esm/sdk/challengeDelivery-DxXAkOfS.js +1 -0
  222. package/dist/esm/sdk/clientSessionPersistenceState-CImFWDj6.js +1 -0
  223. package/dist/esm/sdk/commitQueue-iBNUt9Bz.js +1 -0
  224. package/dist/esm/sdk/configBuilder-ZiZwFKt4.js +1 -0
  225. package/dist/esm/sdk/configHelpers-D8Ivi6p8.js +1 -0
  226. package/dist/esm/sdk/digestEncoding-Dzc1rzWV.js +1 -0
  227. package/dist/esm/sdk/display-ClqZq-Xt.js +1 -0
  228. package/dist/esm/sdk/ecdsaCapabilityManifest-BlzJAQF8.js +1 -0
  229. package/dist/esm/sdk/ecdsaChainTarget-C8ZtMZ8l.js +1 -0
  230. package/dist/esm/sdk/ecdsaDerivationClientWasm-CVeNEou2.js +1 -0
  231. package/dist/esm/sdk/ecdsaDerivationExport-BZFHSMCv.js +1 -0
  232. package/dist/esm/sdk/ecdsaWalletRecords-D4WeYc7H.js +1 -0
  233. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +1 -0
  234. package/dist/esm/sdk/enrichDisplayModelWithAbi-69bNckvi.js +1 -0
  235. package/dist/esm/sdk/evmCryptoWasm-BXsIyRon.js +1 -0
  236. package/dist/esm/sdk/export-viewer-host-CsFeiIhd.js +1 -0
  237. package/dist/esm/sdk/exportKeypairOperation-DGQIYML3.js +1 -0
  238. package/dist/esm/sdk/helpers-Ddy72ULN.js +1 -0
  239. package/dist/esm/sdk/host-B1CdRGoI.js +1 -0
  240. package/dist/esm/sdk/intentDigest-CE-tLw87.js +1 -0
  241. package/dist/esm/sdk/jsxRuntime.module-BcZNe_OA.js +2 -0
  242. package/dist/esm/sdk/lanes-DnBwWv4l.js +1 -0
  243. package/dist/esm/sdk/localOnly-ClCo6602.js +1 -0
  244. package/dist/esm/sdk/messages-vxz27Way.js +1 -0
  245. package/dist/esm/sdk/mountExportPrivateKeySurface-CBZ0wRYj.js +1 -0
  246. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js +2 -0
  247. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +1 -0
  248. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-B0d1AG3u.js +1 -0
  249. package/dist/esm/sdk/nonceLaneKeys-Fkvk2UPy.js +1 -0
  250. package/dist/esm/sdk/normalization-CpLZcL2f.js +1 -0
  251. package/dist/esm/sdk/normalization-DCvuCvh0.js +1 -0
  252. package/dist/esm/sdk/normalize-kUDm5zfS.js +1 -0
  253. package/dist/esm/sdk/operationFingerprint-CTR9G1NT.js +1 -0
  254. package/dist/esm/sdk/passkey-custody-BQj44jEM.js +1 -0
  255. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-yJN8VAHn.js +1 -0
  256. package/dist/esm/sdk/presignaturePool-DwlTReFO.js +1 -0
  257. package/dist/esm/sdk/presignatures-DB2IPD-A.js +1 -0
  258. package/dist/esm/sdk/prfCache-BMpqZZ-v.js +1 -0
  259. package/dist/esm/sdk/primitives-CAcl7ON7.js +1 -0
  260. package/dist/esm/sdk/promptText-D2f5Rg0h.js +1 -0
  261. package/dist/esm/sdk/recovery-entrypoint-Bl5GgbW9.js +1 -0
  262. package/dist/esm/sdk/registration-C4sALQZO.js +1 -0
  263. package/dist/esm/sdk/registration-CEqVAgNJ.js +1 -0
  264. package/dist/esm/sdk/registrationAccounts-D4RVetMz.js +1 -0
  265. package/dist/esm/sdk/registrationAuthMethodInput-6ccY2Vuh.js +1 -0
  266. package/dist/esm/sdk/registrationIds-CdPqm-Ya.js +1 -0
  267. package/dist/esm/sdk/registrationIntent-DOkZcKSP.js +1 -0
  268. package/dist/esm/sdk/registrationSignerPlan-B9GCvpTV.js +1 -0
  269. package/dist/esm/sdk/requireStepUpAuth-DCVqmeee.js +1 -0
  270. package/dist/esm/sdk/routerAbNormalSigning-BG75eyI2.js +1 -0
  271. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  272. package/dist/esm/sdk/runtime-auth-tgfe70hU.js +1 -0
  273. package/dist/esm/sdk/runtime-device-link-BUxuQupR.js +1 -0
  274. package/dist/esm/sdk/runtime-ecdsa-tempo-DOBk_EtI.js +1 -0
  275. package/dist/esm/sdk/runtime-email-otp-CsAJKvYC.js +1 -0
  276. package/dist/esm/sdk/runtime-export-7REbcnBl.js +1 -0
  277. package/dist/esm/sdk/runtime-near-BA0DQf6H.js +1 -0
  278. package/dist/esm/sdk/runtime-preferences-cRViPE8a.js +1 -0
  279. package/dist/esm/sdk/runtime-recovery-RRc8Yz1y.js +1 -0
  280. package/dist/esm/sdk/runtime-recovery-codes-BZMiAR_5.js +1 -0
  281. package/dist/esm/sdk/sdkSentEvents-D3q1h-Uo.js +1 -0
  282. package/dist/esm/sdk/secp256k1-DSLttQND.js +1 -0
  283. package/dist/esm/sdk/secureRandomId-BIekT8bE.js +1 -0
  284. package/dist/esm/sdk/sessionPolicy-J-RrlPZQ.js +1 -0
  285. package/dist/esm/sdk/shared-DdfxBUGY.js +6 -0
  286. package/dist/esm/sdk/signEvmFamily-KUNWKVeh.js +1 -0
  287. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js +1 -0
  288. package/dist/esm/sdk/signEvmWithUiConfirm-CqxL7UbT.js +1 -0
  289. package/dist/esm/sdk/signNear-CO5bx24Z.js +1 -0
  290. package/dist/esm/sdk/signatureUses-CjJ233KX.js +1 -0
  291. package/dist/esm/sdk/signerDomain-vQmlnsbF.js +1 -0
  292. package/dist/esm/sdk/signingFlow-vrXxrhlG.js +2 -0
  293. package/dist/esm/sdk/signingQueue-BrGJXBqe.js +1 -0
  294. package/dist/esm/sdk/signingSessionSeal-CDLUmAFY.js +1 -0
  295. package/dist/esm/sdk/singletons-8UH3gOnZ.js +1 -0
  296. package/dist/esm/sdk/theme-_AUTWLS_.js +1 -0
  297. package/dist/esm/sdk/thresholdEcdsa-CO7xo1So.js +1 -0
  298. package/dist/esm/sdk/trace-BvbCxdXF.js +1 -0
  299. package/dist/esm/sdk/transaction-activity-D40ih2j-.js +1 -0
  300. package/dist/esm/sdk/transactionReviewAdmission-C-a3ctCJ.js +1 -0
  301. package/dist/esm/sdk/transactionState-DVinJk4K.js +1 -0
  302. package/dist/esm/sdk/tx-confirm-ui.js +7 -11
  303. package/dist/esm/sdk/types-BNUuaUtl.js +1 -0
  304. package/dist/esm/sdk/types-D3GM-uHR.js +1 -0
  305. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  306. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  307. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  308. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  309. package/dist/esm/sdk/wallet-recovery-C1kesLCF.js +1 -0
  310. package/dist/esm/sdk/wallet-ui.css +1 -1
  311. package/dist/esm/sdk/walletAuthMethodRecord-CXedSgpV.js +1 -0
  312. package/dist/esm/sdk/walletAuthority-B5hXHWpK.js +1 -0
  313. package/dist/esm/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +1 -0
  314. package/dist/esm/sdk/walletIframeIdentity-DJ0KOBHg.js +1 -0
  315. package/dist/esm/sdk/walletOwnershipGeneration-DoXVMDWe.js +1 -0
  316. package/dist/esm/sdk/walletRecoveryCommit-Cc9AqHr0.js +1 -0
  317. package/dist/esm/sdk/walletRecoveryRotate-DWTAFYiv.js +1 -0
  318. package/dist/esm/sdk/walletSessionAuthorizationProjection-DWBksIJR.js +1 -0
  319. package/dist/esm/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +1 -0
  320. package/dist/esm/sdk/walletSessionAuthorizationStore-gEYPmu-G.js +1 -0
  321. package/dist/esm/sdk/walletSessionFailure-Bu4VPKTz.js +1 -0
  322. package/dist/esm/sdk/warmSessionHydration-DgjuUacN.js +1 -0
  323. package/dist/esm/sdk/webauthnP256-BEz4DEAs.js +1 -0
  324. package/dist/esm/sdk/webauthnPromptCoordinator-BEudHQBr.js +1 -0
  325. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +1 -7
  326. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +2 -20
  327. package/dist/esm/shared-ts/src/authorization/index.js +1 -2
  328. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +1 -20
  329. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +4 -51
  330. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +1 -112
  331. package/dist/esm/shared-ts/src/device-linking/activeWalletSession.js +13 -3
  332. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +6 -116
  333. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +3 -270
  334. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +2 -2
  335. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +1 -12
  336. package/dist/esm/shared-ts/src/device-linking/digests.js +1 -109
  337. package/dist/esm/shared-ts/src/device-linking/index.js +0 -2
  338. package/dist/esm/shared-ts/src/device-linking/parsers.js +7 -921
  339. package/dist/esm/shared-ts/src/device-linking/requestProof.js +1 -19
  340. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +5 -358
  341. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +1 -172
  342. package/dist/esm/shared-ts/src/device-linking/wireFields.js +4 -5
  343. package/dist/esm/shared-ts/src/near/actions.js +1 -13
  344. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  345. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +3 -59
  346. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +4 -8
  347. package/dist/esm/shared-ts/src/passkey-custody/index.js +0 -1
  348. package/dist/esm/shared-ts/src/signing-lanes/index.js +0 -1
  349. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +0 -59
  350. package/dist/esm/shared-ts/src/threshold/ed25519OperationFingerprint.js +1 -1
  351. package/dist/esm/shared-ts/src/threshold/keyMaterialBrands.js +1 -4
  352. package/dist/esm/shared-ts/src/threshold/participants.js +1 -2
  353. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +1 -4
  354. package/dist/esm/shared-ts/src/utils/authenticatorOptions.js +1 -12
  355. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +2 -5
  356. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -7
  357. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +1 -16
  358. package/dist/esm/shared-ts/src/utils/ecdsaServerTiming.js +6 -1
  359. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +1 -23
  360. package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +1 -42
  361. package/dist/esm/shared-ts/src/utils/errors.js +1 -43
  362. package/dist/esm/shared-ts/src/utils/index.js +18 -22
  363. package/dist/esm/shared-ts/src/utils/near.js +2 -74
  364. package/dist/esm/shared-ts/src/utils/normalize.js +1 -22
  365. package/dist/esm/shared-ts/src/utils/registrationAuthMethodInput.js +1 -74
  366. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +6 -275
  367. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -203
  368. package/dist/esm/shared-ts/src/utils/registrationIntent.js +1 -389
  369. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +2 -434
  370. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +6 -414
  371. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +1 -334
  372. package/dist/esm/shared-ts/src/utils/routerAbEd25519YaoDigests.js +2 -40
  373. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +1 -1
  374. package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +1 -6
  375. package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +1 -6
  376. package/dist/esm/shared-ts/src/utils/validation.js +2 -17
  377. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +1 -28
  378. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +1 -11
  379. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +1 -7
  380. package/dist/esm/shared-ts/src/wallet-recovery/index.js +3 -5
  381. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -35
  382. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -32
  383. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +1 -15
  384. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -11
  385. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +1 -1
  386. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +2 -42
  387. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +3 -53
  388. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +2 -63
  389. package/dist/esm/threshold.js +1 -1
  390. package/dist/esm/utils/intentDigest.js +1 -62
  391. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  392. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  393. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  394. package/dist/public/headers.manifest.json +1 -1
  395. package/dist/public/sdk/ConfirmationDrawer-DY0_yeUV.js +1 -0
  396. package/dist/public/sdk/NonceCoordinator-CFFq8-Q9.js +1 -0
  397. package/dist/public/sdk/accountLifecycle-CAMVowDl.js +1 -0
  398. package/dist/public/sdk/activeWalletSession-DiZcKjB_.js +1 -0
  399. package/dist/public/sdk/adapters-DdDOQzl4.js +2 -0
  400. package/dist/public/sdk/appearance-ZGVLwA4N.js +1 -0
  401. package/dist/public/sdk/authenticatorOptions-DMLnDWT2.js +1 -0
  402. package/dist/public/sdk/authorizationAdmission-Ckx6q6tp.js +1 -0
  403. package/dist/public/sdk/bytes-BBYkulRB.js +1 -0
  404. package/dist/public/sdk/canonicalPrimitives-CKPGgpxg.js +1 -0
  405. package/dist/public/sdk/canonicalSignerErrorCode-DEHsPxNm.js +1 -0
  406. package/dist/public/sdk/capabilityKinds-CKQ4Uqnv.js +1 -0
  407. package/dist/public/sdk/chains-CiYQT1K4.js +1 -0
  408. package/dist/public/sdk/challengeDelivery-DxXAkOfS.js +1 -0
  409. package/dist/public/sdk/clientSessionPersistenceState-CImFWDj6.js +1 -0
  410. package/dist/public/sdk/commitQueue-iBNUt9Bz.js +1 -0
  411. package/dist/public/sdk/configBuilder-ZiZwFKt4.js +1 -0
  412. package/dist/public/sdk/configHelpers-D8Ivi6p8.js +1 -0
  413. package/dist/public/sdk/digestEncoding-Dzc1rzWV.js +1 -0
  414. package/dist/public/sdk/display-ClqZq-Xt.js +1 -0
  415. package/dist/public/sdk/ecdsaCapabilityManifest-BlzJAQF8.js +1 -0
  416. package/dist/public/sdk/ecdsaChainTarget-C8ZtMZ8l.js +1 -0
  417. package/dist/public/sdk/ecdsaDerivationClientWasm-CVeNEou2.js +1 -0
  418. package/dist/public/sdk/ecdsaDerivationExport-BZFHSMCv.js +1 -0
  419. package/dist/public/sdk/ecdsaWalletRecords-D4WeYc7H.js +1 -0
  420. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +1 -0
  421. package/dist/public/sdk/enrichDisplayModelWithAbi-69bNckvi.js +1 -0
  422. package/dist/public/sdk/evmCryptoWasm-BXsIyRon.js +1 -0
  423. package/dist/public/sdk/export-viewer-host-CsFeiIhd.js +1 -0
  424. package/dist/public/sdk/exportKeypairOperation-DGQIYML3.js +1 -0
  425. package/dist/public/sdk/helpers-Ddy72ULN.js +1 -0
  426. package/dist/public/sdk/host-B1CdRGoI.js +1 -0
  427. package/dist/public/sdk/intentDigest-CE-tLw87.js +1 -0
  428. package/dist/public/sdk/jsxRuntime.module-BcZNe_OA.js +2 -0
  429. package/dist/public/sdk/lanes-DnBwWv4l.js +1 -0
  430. package/dist/public/sdk/localOnly-ClCo6602.js +1 -0
  431. package/dist/public/sdk/messages-vxz27Way.js +1 -0
  432. package/dist/public/sdk/mountExportPrivateKeySurface-CBZ0wRYj.js +1 -0
  433. package/dist/public/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js +2 -0
  434. package/dist/public/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +1 -0
  435. package/dist/public/sdk/nearEd25519YaoSigningPreparation-B0d1AG3u.js +1 -0
  436. package/dist/public/sdk/nonceLaneKeys-Fkvk2UPy.js +1 -0
  437. package/dist/public/sdk/normalization-CpLZcL2f.js +1 -0
  438. package/dist/public/sdk/normalization-DCvuCvh0.js +1 -0
  439. package/dist/public/sdk/normalize-kUDm5zfS.js +1 -0
  440. package/dist/public/sdk/operationFingerprint-CTR9G1NT.js +1 -0
  441. package/dist/public/sdk/passkey-custody-BQj44jEM.js +1 -0
  442. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-yJN8VAHn.js +1 -0
  443. package/dist/public/sdk/presignaturePool-DwlTReFO.js +1 -0
  444. package/dist/public/sdk/presignatures-DB2IPD-A.js +1 -0
  445. package/dist/public/sdk/prfCache-BMpqZZ-v.js +1 -0
  446. package/dist/public/sdk/primitives-CAcl7ON7.js +1 -0
  447. package/dist/public/sdk/promptText-D2f5Rg0h.js +1 -0
  448. package/dist/public/sdk/recovery-entrypoint-Bl5GgbW9.js +1 -0
  449. package/dist/public/sdk/registration-C4sALQZO.js +1 -0
  450. package/dist/public/sdk/registration-CEqVAgNJ.js +1 -0
  451. package/dist/public/sdk/registrationAccounts-D4RVetMz.js +1 -0
  452. package/dist/public/sdk/registrationAuthMethodInput-6ccY2Vuh.js +1 -0
  453. package/dist/public/sdk/registrationIds-CdPqm-Ya.js +1 -0
  454. package/dist/public/sdk/registrationIntent-DOkZcKSP.js +1 -0
  455. package/dist/public/sdk/registrationSignerPlan-B9GCvpTV.js +1 -0
  456. package/dist/public/sdk/requireStepUpAuth-DCVqmeee.js +1 -0
  457. package/dist/public/sdk/routerAbNormalSigning-BG75eyI2.js +1 -0
  458. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  459. package/dist/public/sdk/runtime-auth-tgfe70hU.js +1 -0
  460. package/dist/public/sdk/runtime-device-link-BUxuQupR.js +1 -0
  461. package/dist/public/sdk/runtime-ecdsa-tempo-DOBk_EtI.js +1 -0
  462. package/dist/public/sdk/runtime-email-otp-CsAJKvYC.js +1 -0
  463. package/dist/public/sdk/runtime-export-7REbcnBl.js +1 -0
  464. package/dist/public/sdk/runtime-near-BA0DQf6H.js +1 -0
  465. package/dist/public/sdk/runtime-preferences-cRViPE8a.js +1 -0
  466. package/dist/public/sdk/runtime-recovery-RRc8Yz1y.js +1 -0
  467. package/dist/public/sdk/runtime-recovery-codes-BZMiAR_5.js +1 -0
  468. package/dist/public/sdk/sdkSentEvents-D3q1h-Uo.js +1 -0
  469. package/dist/public/sdk/secp256k1-DSLttQND.js +1 -0
  470. package/dist/public/sdk/secureRandomId-BIekT8bE.js +1 -0
  471. package/dist/public/sdk/sessionPolicy-J-RrlPZQ.js +1 -0
  472. package/dist/public/sdk/shared-DdfxBUGY.js +6 -0
  473. package/dist/public/sdk/signEvmFamily-KUNWKVeh.js +1 -0
  474. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js +1 -0
  475. package/dist/public/sdk/signEvmWithUiConfirm-CqxL7UbT.js +1 -0
  476. package/dist/public/sdk/signNear-CO5bx24Z.js +1 -0
  477. package/dist/public/sdk/signatureUses-CjJ233KX.js +1 -0
  478. package/dist/public/sdk/signerDomain-vQmlnsbF.js +1 -0
  479. package/dist/public/sdk/signingFlow-vrXxrhlG.js +2 -0
  480. package/dist/public/sdk/signingQueue-BrGJXBqe.js +1 -0
  481. package/dist/public/sdk/signingSessionSeal-CDLUmAFY.js +1 -0
  482. package/dist/public/sdk/singletons-8UH3gOnZ.js +1 -0
  483. package/dist/public/sdk/theme-_AUTWLS_.js +1 -0
  484. package/dist/public/sdk/thresholdEcdsa-CO7xo1So.js +1 -0
  485. package/dist/public/sdk/trace-BvbCxdXF.js +1 -0
  486. package/dist/public/sdk/transaction-activity-D40ih2j-.js +1 -0
  487. package/dist/public/sdk/transactionReviewAdmission-C-a3ctCJ.js +1 -0
  488. package/dist/public/sdk/transactionState-DVinJk4K.js +1 -0
  489. package/dist/public/sdk/tx-confirm-ui.js +7 -11
  490. package/dist/public/sdk/types-BNUuaUtl.js +1 -0
  491. package/dist/public/sdk/types-D3GM-uHR.js +1 -0
  492. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  493. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  494. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  495. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  496. package/dist/public/sdk/wallet-recovery-C1kesLCF.js +1 -0
  497. package/dist/public/sdk/wallet-ui.css +1 -1
  498. package/dist/public/sdk/walletAuthMethodRecord-CXedSgpV.js +1 -0
  499. package/dist/public/sdk/walletAuthority-B5hXHWpK.js +1 -0
  500. package/dist/public/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +1 -0
  501. package/dist/public/sdk/walletIframeIdentity-DJ0KOBHg.js +1 -0
  502. package/dist/public/sdk/walletOwnershipGeneration-DoXVMDWe.js +1 -0
  503. package/dist/public/sdk/walletRecoveryCommit-Cc9AqHr0.js +1 -0
  504. package/dist/public/sdk/walletRecoveryRotate-DWTAFYiv.js +1 -0
  505. package/dist/public/sdk/walletSessionAuthorizationProjection-DWBksIJR.js +1 -0
  506. package/dist/public/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +1 -0
  507. package/dist/public/sdk/walletSessionAuthorizationStore-gEYPmu-G.js +1 -0
  508. package/dist/public/sdk/walletSessionFailure-Bu4VPKTz.js +1 -0
  509. package/dist/public/sdk/warmSessionHydration-DgjuUacN.js +1 -0
  510. package/dist/public/sdk/webauthnP256-BEz4DEAs.js +1 -0
  511. package/dist/public/sdk/webauthnPromptCoordinator-BEudHQBr.js +1 -0
  512. package/dist/public/sdk/workers/device-linking-key.worker.js +18 -0
  513. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1490 -1268
  514. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +96 -0
  515. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +101 -1
  516. package/dist/public/sdk/workers/email-otp.worker.js +267 -237
  517. package/dist/public/sdk/workers/evm-crypto.worker.js +12 -8
  518. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +30 -1
  519. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  520. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  521. package/dist/public/sdk/workers/shamir3pass.worker.js +10 -8
  522. package/dist/public/sdk/workers/tempo-signer.worker.js +12 -8
  523. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +3 -1
  524. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  525. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  526. package/dist/public/wallet-assets.manifest.json +391 -295
  527. package/dist/public/wallet-service/index.html +4 -4
  528. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +2 -1
  529. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +10 -0
  530. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +2 -1
  531. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +3 -1
  532. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +0 -9
  533. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
  534. package/dist/types/wallet/build-paths.d.ts +0 -4
  535. package/dist/types/wallet/src/SeamsWeb/SeamsWeb.d.ts +26 -146
  536. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfaceAssembly.d.ts +7 -6
  537. package/dist/types/wallet/src/SeamsWeb/assembly/browserSigningSurfacePorts.d.ts +2 -4
  538. package/dist/types/wallet/src/SeamsWeb/assembly/createWalletIframeRouter.d.ts +2 -2
  539. package/dist/types/wallet/src/SeamsWeb/assembly/initializeBrowserSigningRuntime.d.ts +0 -2
  540. package/dist/types/wallet/src/SeamsWeb/index.d.ts +1 -1
  541. package/dist/types/wallet/src/SeamsWeb/operations/auth/login.d.ts +2 -8
  542. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockCompletion.d.ts +26 -0
  543. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockPendingRegistration.d.ts +14 -0
  544. package/dist/types/wallet/src/SeamsWeb/operations/auth/unlockSessionPolicy.d.ts +16 -0
  545. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +2 -2
  546. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.d.ts +3 -2
  547. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/revokeAuthMethod.d.ts +17 -1
  548. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDevice.d.ts +0 -7
  549. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostComposition.d.ts +2 -0
  550. package/dist/types/wallet/src/SeamsWeb/operations/near/actions.d.ts +4 -21
  551. package/dist/types/wallet/src/SeamsWeb/operations/near/delegateAction.d.ts +4 -14
  552. package/dist/types/wallet/src/SeamsWeb/operations/near/signDelegateAction.d.ts +14 -0
  553. package/dist/types/wallet/src/SeamsWeb/operations/near/signNEP413.d.ts +2 -2
  554. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.d.ts +11 -11
  555. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.d.ts +18 -4
  556. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +4 -20
  557. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +10 -4
  558. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationEd25519Yao.d.ts +1 -1
  559. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationSignerSet.d.ts +1 -0
  560. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTerminalCommit.d.ts +0 -4
  561. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationTiming.d.ts +2 -3
  562. package/dist/types/wallet/src/SeamsWeb/operations/tempo/index.d.ts +0 -3
  563. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +4 -13
  564. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +22 -43
  565. package/dist/types/wallet/src/SeamsWeb/publicApi/devices.d.ts +3 -21
  566. package/dist/types/wallet/src/SeamsWeb/publicApi/evm.d.ts +10 -16
  567. package/dist/types/wallet/src/SeamsWeb/publicApi/evmFamilyCommands.d.ts +6 -0
  568. package/dist/types/wallet/src/SeamsWeb/publicApi/index.d.ts +2 -2
  569. package/dist/types/wallet/src/SeamsWeb/publicApi/keyExport.d.ts +8 -16
  570. package/dist/types/wallet/src/SeamsWeb/publicApi/near.d.ts +10 -10
  571. package/dist/types/wallet/src/SeamsWeb/publicApi/nearCommands.d.ts +17 -0
  572. package/dist/types/wallet/src/SeamsWeb/publicApi/placement.d.ts +90 -0
  573. package/dist/types/wallet/src/SeamsWeb/publicApi/placement.typecheck.d.ts +2 -0
  574. package/dist/types/wallet/src/SeamsWeb/publicApi/session.d.ts +3 -0
  575. package/dist/types/wallet/src/SeamsWeb/publicApi/tempo.d.ts +11 -11
  576. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +106 -243
  577. package/dist/types/wallet/src/SeamsWeb/publicApi/waitForNearAccount.d.ts +27 -0
  578. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +33 -78
  579. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +8 -31
  580. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/deviceCommands.d.ts +4 -0
  581. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/emailOtpCommands.d.ts +4 -0
  582. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/evmFamilyCommands.d.ts +6 -0
  583. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/inboundMessages.d.ts +62 -0
  584. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/nearCommands.d.ts +6 -0
  585. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/placementCommands.d.ts +31 -0
  586. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/preferenceState.d.ts +35 -0
  587. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/preferences.d.ts +10 -0
  588. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/registrationCommands.d.ts +6 -0
  589. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +36 -121
  590. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/sessionCommands.d.ts +6 -0
  591. package/dist/types/wallet/src/SeamsWeb/walletIframe/coordinator.d.ts +29 -35
  592. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +98 -0
  593. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/controller.d.ts +2 -2
  594. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/context.d.ts +11 -9
  595. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createDeviceDomain.d.ts +20 -0
  596. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEmailOtpCommands.d.ts +11 -0
  597. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createEvmFamilyCommands.d.ts +8 -0
  598. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createNearCommands.d.ts +4 -0
  599. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createPlacementCommands.d.ts +11 -0
  600. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +4 -0
  601. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +16 -0
  602. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/placement.d.ts +3 -0
  603. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/handlers/walletIframeHandler.types.d.ts +7 -3
  604. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +2 -0
  605. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/reconcileWalletPlacement.d.ts +10 -0
  606. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +4 -4
  607. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestWalletMove.d.ts +11 -0
  608. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +5 -3
  609. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeLoader.d.ts +0 -1
  610. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +39 -0
  611. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMoveLocator.d.ts +5 -0
  612. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +3 -0
  613. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/configuration.d.ts +30 -0
  614. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/emailOtpLifecycle.d.ts +43 -0
  615. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +15 -0
  616. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/facadeBoundary.d.ts +14 -0
  617. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +35 -100
  618. package/dist/types/wallet/src/core/config/chains.d.ts +1 -3
  619. package/dist/types/wallet/src/core/config/configBuilder.d.ts +16 -6
  620. package/dist/types/wallet/src/core/config/defaultConfigs.d.ts +3 -4
  621. package/dist/types/wallet/src/core/config/defineConfig.d.ts +3 -6
  622. package/dist/types/wallet/src/core/config/presignatures.d.ts +3 -0
  623. package/dist/types/wallet/src/core/diagnostics/registration.d.ts +2 -0
  624. package/dist/types/wallet/src/core/indexedDB/normalization.d.ts +5 -0
  625. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +2 -2
  626. package/dist/types/wallet/src/core/indexedDB/pendingWalletRegistrationCommit.d.ts +0 -10
  627. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/accountSignerRows.d.ts +44 -0
  628. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +0 -2
  629. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.d.ts +0 -5
  630. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/manager.d.ts +11 -0
  631. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/nonceLeaseRows.d.ts +23 -0
  632. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +1 -0
  633. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signerOutboxRows.d.ts +15 -0
  634. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletOwnershipGeneration.d.ts +6 -0
  635. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -1
  636. package/dist/types/wallet/src/core/rpcClients/near/accountExists.d.ts +3 -0
  637. package/dist/types/wallet/src/core/rpcClients/near/rpcCalls.d.ts +1 -14
  638. package/dist/types/wallet/src/core/rpcClients/relayer/ecdsaPrepareSession.d.ts +13 -0
  639. package/dist/types/wallet/src/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.d.ts +3 -3
  640. package/dist/types/wallet/src/core/rpcClients/relayer/relayerHttp.d.ts +17 -0
  641. package/dist/types/wallet/src/core/rpcClients/relayer/routerAbNormalSigning.d.ts +19 -3
  642. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +29 -40
  643. package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +34 -0
  644. package/dist/types/wallet/src/core/signingEngine/assembly/ports/shared.d.ts +1 -1
  645. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +2 -1
  646. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +2 -14
  647. package/dist/types/wallet/src/core/signingEngine/chains/near/nearSignerWasm.d.ts +2 -6
  648. package/dist/types/wallet/src/core/signingEngine/flows/recovery/public.d.ts +1 -1
  649. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpPublic.d.ts +1 -32
  650. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.d.ts +3 -82
  651. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +62 -1
  652. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.d.ts +1 -1
  653. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signers/secp256k1.d.ts +4 -55
  654. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/signingFlow.d.ts +1 -1
  655. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/thresholdAdmission.d.ts +3 -2
  656. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +33 -1
  657. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signatureOnlySigning.d.ts +16 -2
  658. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNear.d.ts +1 -2
  659. package/dist/types/wallet/src/core/signingEngine/flows/signNear/signNep413.d.ts +1 -1
  660. package/dist/types/wallet/src/core/signingEngine/interfaces/ecdsaChainTarget.d.ts +1 -1
  661. package/dist/types/wallet/src/core/signingEngine/interfaces/near.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/otpPrompt/authLane.d.ts +6 -12
  686. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/operationStepUp.d.ts +6 -5
  687. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +6 -17
  688. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.d.ts +1 -0
  689. package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyDriver.d.ts +0 -1
  690. package/dist/types/wallet/src/core/signingEngine/walletCustody/walletRegistrationEd25519.d.ts +17 -0
  691. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +0 -1
  692. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignLifecycle.d.ts +0 -2
  693. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.d.ts +9 -0
  694. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTransport.d.ts +0 -5
  695. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +15 -27
  696. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/enrollment.d.ts +1 -17
  697. package/dist/types/wallet/src/core/types/rpc.d.ts +0 -1
  698. package/dist/types/wallet/src/core/types/sdkPublicResults.d.ts +1 -0
  699. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +2 -0
  700. package/dist/types/wallet/src/core/types/seams.d.ts +12 -9
  701. package/dist/types/wallet/src/core/types/signer-worker.d.ts +2 -1
  702. package/dist/types/wallet/src/externalEvm/controller.d.ts +5 -1
  703. package/dist/types/wallet/src/index.d.ts +5 -2
  704. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletRegionSection.d.ts +54 -0
  705. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +7 -2
  706. package/dist/types/wallet/src/react/components/AccountMenuButton/index.d.ts +1 -1
  707. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +1 -0
  708. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/public.d.ts +1 -1
  709. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +2 -5
  710. package/dist/types/wallet/src/react/context/SeamsWebProvider.d.ts +0 -5
  711. package/dist/types/wallet/src/react/context/useLoginStateRefresher.d.ts +1 -1
  712. package/dist/types/wallet/src/react/context/useNearProvisioningStateRefresh.d.ts +1 -1
  713. package/dist/types/wallet/src/react/context/useSeamsContextValue.d.ts +2 -2
  714. package/dist/types/wallet/src/react/context/useWalletIframeLifecycle.d.ts +4 -2
  715. package/dist/types/wallet/src/react/hooks/useQRCamera.d.ts +1 -7
  716. package/dist/types/wallet/src/react/hooks/useWallet.d.ts +5 -6
  717. package/dist/types/wallet/src/react/hooks/useWalletAuth.d.ts +1 -1
  718. package/dist/types/wallet/src/react/hooks/useWalletDevices.d.ts +1 -1
  719. package/dist/types/wallet/src/react/index.d.ts +2 -2
  720. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +0 -26
  721. package/dist/types/wallet/src/react/types.d.ts +12 -20
  722. package/dist/types/wallet/src/react/utils/walletIframe.d.ts +2 -6
  723. package/dist/workers/device-linking-key.worker.js +18 -0
  724. package/dist/workers/ecdsa-derivation-client.worker.js +1490 -1268
  725. package/dist/workers/ecdsa-online-client.worker.js +96 -0
  726. package/dist/workers/ecdsa-presign-client.worker.js +101 -1
  727. package/dist/workers/email-otp.worker.js +267 -237
  728. package/dist/workers/evm-crypto.worker.js +12 -8
  729. package/dist/workers/passkey-mpc-export.worker.js +30 -1
  730. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  731. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  732. package/dist/workers/shamir3pass.worker.js +10 -8
  733. package/dist/workers/tempo-signer.worker.js +12 -8
  734. package/dist/workers/wallet-custody-ceremony.worker.js +3 -1
  735. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  736. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  737. package/package.json +1 -1
  738. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +0 -817
  739. package/dist/esm/SeamsWeb/assembly/browserWorkerWarmupPolicy.js +0 -31
  740. package/dist/esm/SeamsWeb/assembly/configureBrowserIndexedDB.js +0 -10
  741. package/dist/esm/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +0 -95
  742. package/dist/esm/SeamsWeb/assembly/createBrowserSigningRuntime.js +0 -34
  743. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +0 -39
  744. package/dist/esm/SeamsWeb/assembly/createBrowserStepUpRuntime.js +0 -34
  745. package/dist/esm/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -29
  746. package/dist/esm/SeamsWeb/assembly/initializeBrowserSigningRuntime.js +0 -19
  747. package/dist/esm/SeamsWeb/assembly/runtimeConfig.js +0 -12
  748. package/dist/esm/SeamsWeb/operations/auth/login.js +0 -4383
  749. package/dist/esm/SeamsWeb/operations/auth/scheduleEcdsaSessionPresignaturePrefill.js +0 -41
  750. package/dist/esm/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +0 -64
  751. package/dist/esm/SeamsWeb/operations/auth/walletAuth.js +0 -142
  752. package/dist/esm/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +0 -33
  753. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +0 -288
  754. package/dist/esm/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +0 -72
  755. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +0 -191
  756. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/challenge.js +0 -247
  757. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +0 -568
  758. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +0 -69
  759. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.js +0 -62
  760. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +0 -69
  761. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +0 -95
  762. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +0 -260
  763. package/dist/esm/SeamsWeb/operations/authMethods/passkey/ecdsaBootstrap.js +0 -17
  764. package/dist/esm/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +0 -34
  765. package/dist/esm/SeamsWeb/operations/authMethods/passkey/localUnlock.js +0 -16
  766. package/dist/esm/SeamsWeb/operations/authMethods/passkey/loginAssertion.js +0 -25
  767. package/dist/esm/SeamsWeb/operations/authMethods/passkey/registrationAuthority.js +0 -84
  768. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +0 -205
  769. package/dist/esm/SeamsWeb/operations/authMethods/sourcePasskeyProof.js +0 -12
  770. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +0 -444
  771. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingComposition.js +0 -106
  772. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +0 -194
  773. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +0 -524
  774. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +0 -135
  775. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +0 -212
  776. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingTargetCredential.js +0 -63
  777. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingTargetEd25519ExportRoot.js +0 -61
  778. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +0 -337
  779. package/dist/esm/SeamsWeb/operations/devices/linkDevice.js +0 -75
  780. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +0 -1383
  781. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +0 -143
  782. package/dist/esm/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +0 -119
  783. package/dist/esm/SeamsWeb/operations/devices/walletHostComposition.js +0 -130
  784. package/dist/esm/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +0 -191
  785. package/dist/esm/SeamsWeb/operations/evm/index.js +0 -35
  786. package/dist/esm/SeamsWeb/operations/near/actions.js +0 -484
  787. package/dist/esm/SeamsWeb/operations/near/commandSubject.js +0 -14
  788. package/dist/esm/SeamsWeb/operations/near/index.js +0 -37
  789. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +0 -116
  790. package/dist/esm/SeamsWeb/operations/recovery/accountSync.js +0 -21
  791. package/dist/esm/SeamsWeb/operations/recovery/recoveryWalletBinding.js +0 -43
  792. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +0 -912
  793. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +0 -100
  794. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +0 -213
  795. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +0 -184
  796. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +0 -247
  797. package/dist/esm/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +0 -134
  798. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +0 -354
  799. package/dist/esm/SeamsWeb/operations/registration/registration.js +0 -3818
  800. package/dist/esm/SeamsWeb/operations/registration/registrationEd25519Yao.js +0 -166
  801. package/dist/esm/SeamsWeb/operations/registration/registrationSignerSet.js +0 -60
  802. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +0 -343
  803. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +0 -296
  804. package/dist/esm/SeamsWeb/operations/registration/registrationTiming.js +0 -682
  805. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +0 -36
  806. package/dist/esm/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.js +0 -20
  807. package/dist/esm/SeamsWeb/publicApi/awaitNearReady.js +0 -72
  808. package/dist/esm/SeamsWeb/publicApi/preferences.js +0 -61
  809. package/dist/esm/SeamsWeb/publicApi/recovery.js +0 -19
  810. package/dist/esm/SeamsWeb/publicApi/types.js +0 -10
  811. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +0 -3917
  812. package/dist/esm/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +0 -29
  813. package/dist/esm/core/browser/walletIframe/events.js +0 -6
  814. package/dist/esm/core/browser/walletIframe/host-mode.js +0 -9
  815. package/dist/esm/core/config/managedRuntimeScope.js +0 -16
  816. package/dist/esm/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -144
  817. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +0 -535
  818. package/dist/esm/core/platform/secretSources.js +0 -111
  819. package/dist/esm/core/platform/signerCoreCommandAdapters.js +0 -122
  820. package/dist/esm/core/rpcClients/near/rpcCalls.js +0 -376
  821. package/dist/esm/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js +0 -67
  822. package/dist/esm/core/rpcClients/relayer/passkeyCustodyEnvelope.js +0 -218
  823. package/dist/esm/core/rpcClients/relayer/sealedRefreshCapabilities.js +0 -148
  824. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +0 -235
  825. package/dist/esm/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.js +0 -161
  826. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +0 -718
  827. package/dist/esm/core/signingEngine/assembly/createManagers.js +0 -80
  828. package/dist/esm/core/signingEngine/assembly/createPorts.js +0 -54
  829. package/dist/esm/core/signingEngine/assembly/ports/emailOtp.js +0 -30
  830. package/dist/esm/core/signingEngine/assembly/ports/evmFamily.js +0 -73
  831. package/dist/esm/core/signingEngine/assembly/ports/near.js +0 -21
  832. package/dist/esm/core/signingEngine/assembly/ports/recovery.js +0 -75
  833. package/dist/esm/core/signingEngine/assembly/ports/registration.js +0 -22
  834. package/dist/esm/core/signingEngine/assembly/ports/session.js +0 -25
  835. package/dist/esm/core/signingEngine/assembly/ports/shared.js +0 -39
  836. package/dist/esm/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -67
  837. package/dist/esm/core/signingEngine/assembly/ports/warmSigning.js +0 -92
  838. package/dist/esm/core/signingEngine/assembly/warmup.js +0 -64
  839. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -427
  840. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportFlow.js +0 -660
  841. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -249
  842. package/dist/esm/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +0 -353
  843. package/dist/esm/core/signingEngine/flows/recovery/exportKeypairOperation.js +0 -213
  844. package/dist/esm/core/signingEngine/flows/recovery/exportLaneSelection.js +0 -283
  845. package/dist/esm/core/signingEngine/flows/recovery/keyExportConfirmation.js +0 -325
  846. package/dist/esm/core/signingEngine/flows/recovery/keyExportFlow.js +0 -81
  847. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +0 -192
  848. package/dist/esm/core/signingEngine/flows/recovery/public.js +0 -26
  849. package/dist/esm/core/signingEngine/flows/recovery/stepUpAuthorization.js +0 -139
  850. package/dist/esm/core/signingEngine/flows/registration/nearProvisioningRegistry.js +0 -79
  851. package/dist/esm/core/signingEngine/flows/registration/public.js +0 -85
  852. package/dist/esm/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js +0 -77
  853. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +0 -82
  854. package/dist/esm/core/signingEngine/flows/registration/session.js +0 -24
  855. package/dist/esm/core/signingEngine/flows/signEvmFamily/emailOtpPublic.js +0 -123
  856. package/dist/esm/core/signingEngine/nonce/NonceCoordinator.js +0 -1026
  857. package/dist/esm/core/signingEngine/nonce/evmNonceLane.js +0 -182
  858. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +0 -669
  859. package/dist/esm/core/signingEngine/nonce/nonceDiagnostics.js +0 -232
  860. package/dist/esm/core/signingEngine/nonce/nonceLeaseState.js +0 -128
  861. package/dist/esm/core/signingEngine/nonce/nonceUtils.js +0 -33
  862. package/dist/esm/core/signingEngine/session/SigningSessionCoordinator.js +0 -344
  863. package/dist/esm/core/signingEngine/session/authority/authorityOperationResolver.js +0 -114
  864. package/dist/esm/core/signingEngine/session/availability/canonicalLaneInventory.js +0 -127
  865. package/dist/esm/core/signingEngine/session/availability/clientSessionExpiryInvalidator.js +0 -72
  866. package/dist/esm/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +0 -214
  867. package/dist/esm/core/signingEngine/session/availability/readiness.js +0 -464
  868. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -130
  869. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +0 -106
  870. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -47
  871. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +0 -930
  872. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaPublication.js +0 -414
  873. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +0 -264
  874. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -373
  875. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +0 -284
  876. package/dist/esm/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -50
  877. package/dist/esm/core/signingEngine/session/emailOtp/persistedSnapshot.js +0 -22
  878. package/dist/esm/core/signingEngine/session/emailOtp/publicTypes.js +0 -38
  879. package/dist/esm/core/signingEngine/session/emailOtp/routePlan.js +0 -60
  880. package/dist/esm/core/signingEngine/session/emailOtp/runtimeConfig.js +0 -24
  881. package/dist/esm/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -49
  882. package/dist/esm/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.js +0 -234
  883. package/dist/esm/core/signingEngine/session/emailOtp/sealedRuntimePurpose.js +0 -16
  884. package/dist/esm/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +0 -40
  885. package/dist/esm/core/signingEngine/session/emailOtp/status.js +0 -72
  886. package/dist/esm/core/signingEngine/session/emailOtp/walletUnlock.js +0 -168
  887. package/dist/esm/core/signingEngine/session/emailOtp/warmSessionRuntime.js +0 -70
  888. package/dist/esm/core/signingEngine/session/emailOtp/workerEnrollment.js +0 -159
  889. package/dist/esm/core/signingEngine/session/emailOtp/workerRequests.js +0 -84
  890. package/dist/esm/core/signingEngine/session/emailOtp/zeroize.js +0 -9
  891. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -104
  892. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionReader.js +0 -54
  893. package/dist/esm/core/signingEngine/session/identity/ownerLaneScope.js +0 -185
  894. package/dist/esm/core/signingEngine/session/lanes/walletExecutionLaneHydration.js +0 -194
  895. package/dist/esm/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.js +0 -32
  896. package/dist/esm/core/signingEngine/session/lifecycle/walletSessionStatus.js +0 -123
  897. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityHydration.js +0 -75
  898. package/dist/esm/core/signingEngine/session/material/ecdsaSealedRuntime.js +0 -197
  899. package/dist/esm/core/signingEngine/session/material/mpcCapabilityHydration.js +0 -79
  900. package/dist/esm/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +0 -122
  901. package/dist/esm/core/signingEngine/session/material/restorableMpcMaterialRef.internal.js +0 -21
  902. package/dist/esm/core/signingEngine/session/passkey/ecdsaBootstrap.js +0 -184
  903. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -205
  904. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +0 -84
  905. package/dist/esm/core/signingEngine/session/passkey/ecdsaSessionProvision.js +0 -224
  906. package/dist/esm/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +0 -147
  907. package/dist/esm/core/signingEngine/session/passkey/ed25519Provisioner.js +0 -55
  908. package/dist/esm/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -228
  909. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +0 -536
  910. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +0 -94
  911. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoSealedSession.js +0 -57
  912. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +0 -281
  913. package/dist/esm/core/signingEngine/session/passkey/passkeyCustodySessionCache.js +0 -90
  914. package/dist/esm/core/signingEngine/session/passkey/public.js +0 -15
  915. package/dist/esm/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +0 -247
  916. package/dist/esm/core/signingEngine/session/persistence/clientSessionPersistence.js +0 -135
  917. package/dist/esm/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.js +0 -51
  918. package/dist/esm/core/signingEngine/session/planning/operationIdBinding.js +0 -36
  919. package/dist/esm/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -163
  920. package/dist/esm/core/signingEngine/session/public.js +0 -44
  921. package/dist/esm/core/signingEngine/session/routerAbSigningWalletSession.js +0 -119
  922. package/dist/esm/core/signingEngine/session/sealedRecovery/exactRecordLookup.js +0 -148
  923. package/dist/esm/core/signingEngine/session/sealedRecovery/recoveryRecord.js +0 -248
  924. package/dist/esm/core/signingEngine/session/sealedRecovery/restoreCoordinator.js +0 -229
  925. package/dist/esm/core/signingEngine/session/userPreferences.js +0 -212
  926. package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReader.js +0 -62
  927. package/dist/esm/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +0 -293
  928. package/dist/esm/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.js +0 -44
  929. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +0 -107
  930. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaBootstrapQueue.js +0 -22
  931. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +0 -93
  932. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +0 -50
  933. package/dist/esm/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -9
  934. package/dist/esm/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +0 -251
  935. package/dist/esm/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +0 -98
  936. package/dist/esm/core/signingEngine/session/warmCapabilities/public.js +0 -31
  937. package/dist/esm/core/signingEngine/session/warmCapabilities/readModel.js +0 -155
  938. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +0 -256
  939. package/dist/esm/core/signingEngine/session/warmCapabilities/statusReader.js +0 -100
  940. package/dist/esm/core/signingEngine/session/warmCapabilities/transitions.js +0 -47
  941. package/dist/esm/core/signingEngine/session/warmCapabilities/types.js +0 -122
  942. package/dist/esm/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +0 -45
  943. package/dist/esm/core/signingEngine/stepUpConfirmation/channel/confirmCommon.js +0 -89
  944. package/dist/esm/core/signingEngine/stepUpConfirmation/channel/confirmTypes.js +0 -12
  945. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -31
  946. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.js +0 -108
  947. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +0 -271
  948. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -167
  949. package/dist/esm/core/signingEngine/stepUpConfirmation/userConfirmationType.js +0 -15
  950. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -67
  951. package/dist/esm/core/signingEngine/threshold/ecdsa/activation.js +0 -267
  952. package/dist/esm/core/signingEngine/threshold/ecdsa/bootstrapSession.js +0 -115
  953. package/dist/esm/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.js +0 -132
  954. package/dist/esm/core/signingEngine/threshold/ecdsa/signingQueue.js +0 -16
  955. package/dist/esm/core/signingEngine/threshold/ed25519/commitQueue.js +0 -16
  956. package/dist/esm/core/signingEngine/threshold/ed25519/connectSession.js +0 -137
  957. package/dist/esm/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +0 -146
  958. package/dist/esm/core/signingEngine/threshold/ed25519/yaoClient.js +0 -563
  959. package/dist/esm/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js +0 -23
  960. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcExportManager.js +0 -233
  961. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +0 -493
  962. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +0 -746
  963. package/dist/esm/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -599
  964. package/dist/esm/core/signingEngine/uiConfirm/confirmationReadinessRegistry.js +0 -41
  965. package/dist/esm/core/signingEngine/uiConfirm/exportConfirmRequest.js +0 -149
  966. package/dist/esm/core/signingEngine/uiConfirm/handlers/determineConfirmationConfig.js +0 -82
  967. package/dist/esm/core/signingEngine/uiConfirm/handlers/flowOrchestrator.js +0 -363
  968. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +0 -337
  969. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/request.js +0 -120
  970. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -149
  971. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/registration.js +0 -235
  972. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.js +0 -178
  973. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/signing.js +0 -684
  974. package/dist/esm/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.js +0 -90
  975. package/dist/esm/core/signingEngine/uiConfirm/ui/appearance.js +0 -27
  976. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-ui.js +0 -516
  977. package/dist/esm/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +0 -155
  978. package/dist/esm/core/signingEngine/uiConfirm/ui/export-viewer-host.js +0 -207
  979. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +0 -318
  980. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +0 -518
  981. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +0 -80
  982. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +0 -86
  983. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +0 -82
  984. package/dist/esm/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +0 -12
  985. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-activity.js +0 -46
  986. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +0 -315
  987. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/enrichDisplayModelWithAbi.js +0 -77
  988. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/confirmation-tree.js +0 -27
  989. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.js +0 -52
  990. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.js +0 -62
  991. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +0 -249
  992. package/dist/esm/core/signingEngine/uiConfirm/warmSessionUiConfirm.js +0 -65
  993. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -122
  994. package/dist/esm/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +0 -94
  995. package/dist/esm/core/signingEngine/walletCustody/ceremonyDriver.js +0 -171
  996. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +0 -20
  997. package/dist/esm/core/signingEngine/walletCustody/ed25519ActiveClient.js +0 -100
  998. package/dist/esm/core/signingEngine/walletCustody/ed25519Projection.js +0 -32
  999. package/dist/esm/core/signingEngine/walletCustody/ed25519SeedMaterial.js +0 -92
  1000. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +0 -132
  1001. package/dist/esm/core/signingEngine/walletCustody/joinCustodyWire.js +0 -64
  1002. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +0 -126
  1003. package/dist/esm/core/signingEngine/walletCustody/passkeyLink.js +0 -180
  1004. package/dist/esm/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +0 -60
  1005. package/dist/esm/core/signingEngine/walletCustody/registrationCeremony.js +0 -460
  1006. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +0 -258
  1007. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -23
  1008. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -75
  1009. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +0 -129
  1010. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -178
  1011. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -102
  1012. package/dist/esm/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.js +0 -154
  1013. package/dist/esm/core/signingEngine/webauthnAuth/device/signerSlot.js +0 -25
  1014. package/dist/esm/core/signingEngine/webauthnAuth/walletOriginWebAuthn.js +0 -109
  1015. package/dist/esm/core/signingEngine/workerManager/SignerWorkerManager.js +0 -68
  1016. package/dist/esm/core/signingEngine/workerManager/deviceLinkingPorts.js +0 -342
  1017. package/dist/esm/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +0 -158
  1018. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -13
  1019. package/dist/esm/core/signingEngine/workerManager/ecdsaPresignLifecycle.js +0 -6
  1020. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +0 -734
  1021. package/dist/esm/core/types/confirmationConfig.js +0 -39
  1022. package/dist/esm/core/types/secure-confirm-worker.js +0 -22
  1023. package/dist/esm/core/walletRuntimePaths/emailOtpWorker.js +0 -12
  1024. package/dist/esm/core/walletRuntimePaths/multichainWorkers.js +0 -25
  1025. package/dist/esm/core/walletRuntimePaths/walletCustodyCeremonyWorker.js +0 -18
  1026. package/dist/esm/core/walletRuntimePaths/workers.js +0 -93
  1027. package/dist/esm/react/context/useEagerPrewarm.js +0 -38
  1028. package/dist/esm/sdk/ConfirmationDrawer-DrsREojk.js +0 -1
  1029. package/dist/esm/sdk/EvmClient-DoxytQaJ.js +0 -1
  1030. package/dist/esm/sdk/NearClient-vJ65Wjrq.js +0 -1
  1031. package/dist/esm/sdk/NonceCoordinator-BBeadCSq.js +0 -1
  1032. package/dist/esm/sdk/accountLifecycle-EyfYPnuT.js +0 -1
  1033. package/dist/esm/sdk/actions-DZLxCcrU.js +0 -1
  1034. package/dist/esm/sdk/adapters-DtAyuoiA.js +0 -2
  1035. package/dist/esm/sdk/base-Xtd32asf.js +0 -1
  1036. package/dist/esm/sdk/bytes-t5S5mkat.js +0 -1
  1037. package/dist/esm/sdk/canonicalPrimitives-MPGET2cl.js +0 -1
  1038. package/dist/esm/sdk/canonicalSignerErrorCode-C0hh_SVi.js +0 -1
  1039. package/dist/esm/sdk/capabilityKinds-XaXXiD2B.js +0 -1
  1040. package/dist/esm/sdk/chains-yAls2d9X.js +0 -1
  1041. package/dist/esm/sdk/challengeDelivery-cAsaUC6U.js +0 -1
  1042. package/dist/esm/sdk/configHelpers-CseiVoZD.js +0 -1
  1043. package/dist/esm/sdk/csp-stylesheet-B1fAhrGB.js +0 -2
  1044. package/dist/esm/sdk/defaultConfigs-CWpApkMq.js +0 -1
  1045. package/dist/esm/sdk/display-jK7_hYho.js +0 -1
  1046. package/dist/esm/sdk/domainIds-GDzjOs6i.js +0 -1
  1047. package/dist/esm/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +0 -1
  1048. package/dist/esm/sdk/ecdsaChainTarget-CRcRR78w.js +0 -1
  1049. package/dist/esm/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +0 -1
  1050. package/dist/esm/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +0 -1
  1051. package/dist/esm/sdk/ecdsaWalletRecords-Cm1DdexN.js +0 -1
  1052. package/dist/esm/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +0 -1
  1053. package/dist/esm/sdk/evmCryptoWasm-CwEXiLrC.js +0 -1
  1054. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +0 -1
  1055. package/dist/esm/sdk/exactSessionState-CjD8gekO.js +0 -210
  1056. package/dist/esm/sdk/exactSigningLaneIdentity-olheZx_n.js +0 -1
  1057. package/dist/esm/sdk/export-viewer-host-jo7h_0wl.js +0 -1
  1058. package/dist/esm/sdk/helpers-D4QckQhq.js +0 -1
  1059. package/dist/esm/sdk/host-BAqOYnju.js +0 -1
  1060. package/dist/esm/sdk/intentDigest-CB6zy3lN.js +0 -1
  1061. package/dist/esm/sdk/jsxRuntime.module-CoHsKD_3.js +0 -1
  1062. package/dist/esm/sdk/keyMaterialBrands-uVZHfAh3.js +0 -1
  1063. package/dist/esm/sdk/localOnly-DBQRG6Qh.js +0 -1
  1064. package/dist/esm/sdk/messages-Cv2j4SKI.js +0 -1
  1065. package/dist/esm/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +0 -1
  1066. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +0 -2
  1067. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +0 -1
  1068. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +0 -1
  1069. package/dist/esm/sdk/nearRpcResults--cBcfmp4.js +0 -1
  1070. package/dist/esm/sdk/nonceLaneKeys-BBYi4g51.js +0 -1
  1071. package/dist/esm/sdk/normalization-BGPR6osg.js +0 -1
  1072. package/dist/esm/sdk/operationFingerprint-5-wH2Ht8.js +0 -1
  1073. package/dist/esm/sdk/operationFingerprint-DtQb0pdp.js +0 -1
  1074. package/dist/esm/sdk/passkey-custody-LP4UTFbn.js +0 -1
  1075. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +0 -1
  1076. package/dist/esm/sdk/prfCache-Mbo7_USg.js +0 -1
  1077. package/dist/esm/sdk/promptText-s8TQ6ckX.js +0 -1
  1078. package/dist/esm/sdk/recovery-entrypoint-DkT8sFO5.js +0 -1
  1079. package/dist/esm/sdk/registration-Btozh7uh.js +0 -1
  1080. package/dist/esm/sdk/registration-CSAG_h4Y.js +0 -1
  1081. package/dist/esm/sdk/registrationAccounts-DIeEVy6W.js +0 -1
  1082. package/dist/esm/sdk/registrationIds-BIel5S0i.js +0 -1
  1083. package/dist/esm/sdk/registrationIntent-DV1GYZ3K.js +0 -1
  1084. package/dist/esm/sdk/registrationPreparationPreload-vOCqNuG4.js +0 -1
  1085. package/dist/esm/sdk/registrationSignerPlan-FzD3TwxB.js +0 -1
  1086. package/dist/esm/sdk/relayerHttp-DaPeS929.js +0 -1
  1087. package/dist/esm/sdk/routePlan-B_KJaPtm.js +0 -1
  1088. package/dist/esm/sdk/router-Dd3fFHk3.js +0 -1
  1089. package/dist/esm/sdk/routerAbNormalSigning-D_fHjq5l.js +0 -1
  1090. package/dist/esm/sdk/runtime-auth-B2M91rSx.js +0 -1
  1091. package/dist/esm/sdk/runtime-device-link-ojjPSRaG.js +0 -1
  1092. package/dist/esm/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +0 -1
  1093. package/dist/esm/sdk/runtime-email-otp-DDwtKVAe.js +0 -1
  1094. package/dist/esm/sdk/runtime-export-JXYk8sQ-.js +0 -1
  1095. package/dist/esm/sdk/runtime-near-BB8AG6dV.js +0 -1
  1096. package/dist/esm/sdk/runtime-preferences-DKFZYccW.js +0 -1
  1097. package/dist/esm/sdk/runtime-recovery-C_XjsDBg.js +0 -1
  1098. package/dist/esm/sdk/runtime-recovery-codes-CWp839mH.js +0 -1
  1099. package/dist/esm/sdk/runtimeContext-BpObgzbj.js +0 -6
  1100. package/dist/esm/sdk/runtimeLoader-DjgBf_yF.js +0 -1
  1101. package/dist/esm/sdk/sdkSentEvents-_RGAEeld.js +0 -1
  1102. package/dist/esm/sdk/secp256k1-B_6W9QDJ.js +0 -1
  1103. package/dist/esm/sdk/secureRandomId-CTdlJ5Mx.js +0 -1
  1104. package/dist/esm/sdk/sessionPolicy-CNVK7nJ6.js +0 -1
  1105. package/dist/esm/sdk/shared-j_KsFbCT.js +0 -1
  1106. package/dist/esm/sdk/signEvmFamily-CcLVBm0f.js +0 -1
  1107. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +0 -1
  1108. package/dist/esm/sdk/signEvmWithUiConfirm-ChreN7aZ.js +0 -1
  1109. package/dist/esm/sdk/signNear-mWbTE2Dl.js +0 -1
  1110. package/dist/esm/sdk/signatureUses-CQkkUcwT.js +0 -1
  1111. package/dist/esm/sdk/signerDomain-BhUTzDmF.js +0 -1
  1112. package/dist/esm/sdk/signerLoader-By0IY24G.js +0 -1
  1113. package/dist/esm/sdk/signingFlow-LUWrZi2d.js +0 -2
  1114. package/dist/esm/sdk/signingSessionSeal-Mr2Xp44o.js +0 -1
  1115. package/dist/esm/sdk/trace-M34pNGuF.js +0 -1
  1116. package/dist/esm/sdk/transaction-activity-BbDod7ji.js +0 -1
  1117. package/dist/esm/sdk/transactionReview-CBE5oH4c.js +0 -1
  1118. package/dist/esm/sdk/transactionReviewAdmission-0ZgWs6q3.js +0 -1
  1119. package/dist/esm/sdk/transactionState-9d7f3xVj.js +0 -1
  1120. package/dist/esm/sdk/types-M7vxrYtJ.js +0 -1
  1121. package/dist/esm/sdk/validation-dC1-_uyG.js +0 -1
  1122. package/dist/esm/sdk/wallet-recovery-CcDZ1hMH.js +0 -1
  1123. package/dist/esm/sdk/walletAuthority-CoWSeqvQ.js +0 -1
  1124. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +0 -1
  1125. package/dist/esm/sdk/walletIframeIdentity-C0b0XMQF.js +0 -1
  1126. package/dist/esm/sdk/walletRecoveryCommit-ljxVeo-d.js +0 -1
  1127. package/dist/esm/sdk/walletRecoveryRotate-HztDcDaY.js +0 -1
  1128. package/dist/esm/sdk/warmSessionHydration-BPGM0YRU.js +0 -1
  1129. package/dist/esm/sdk/webauthnP256-qu06GNFm.js +0 -1
  1130. package/dist/esm/sdk/webauthnPromptCoordinator-DO-qfECu.js +0 -1
  1131. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +0 -16
  1132. package/dist/esm/shared-ts/src/device-linking/contracts.js +0 -8
  1133. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +0 -167
  1134. package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +0 -43
  1135. package/dist/esm/shared-ts/src/signing-lanes/participants.js +0 -256
  1136. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +0 -479
  1137. package/dist/esm/shared-ts/src/threshold/secp256k1.js +0 -6
  1138. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +0 -103
  1139. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -43
  1140. package/dist/esm/shared-ts/src/utils/exactKeys.js +0 -17
  1141. package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +0 -36
  1142. package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +0 -32
  1143. package/dist/public/sdk/ConfirmationDrawer-DrsREojk.js +0 -1
  1144. package/dist/public/sdk/EvmClient-DoxytQaJ.js +0 -1
  1145. package/dist/public/sdk/NearClient-vJ65Wjrq.js +0 -1
  1146. package/dist/public/sdk/NonceCoordinator-BBeadCSq.js +0 -1
  1147. package/dist/public/sdk/accountLifecycle-EyfYPnuT.js +0 -1
  1148. package/dist/public/sdk/actions-DZLxCcrU.js +0 -1
  1149. package/dist/public/sdk/adapters-DtAyuoiA.js +0 -2
  1150. package/dist/public/sdk/base-Xtd32asf.js +0 -1
  1151. package/dist/public/sdk/bytes-t5S5mkat.js +0 -1
  1152. package/dist/public/sdk/canonicalPrimitives-MPGET2cl.js +0 -1
  1153. package/dist/public/sdk/canonicalSignerErrorCode-C0hh_SVi.js +0 -1
  1154. package/dist/public/sdk/capabilityKinds-XaXXiD2B.js +0 -1
  1155. package/dist/public/sdk/chains-yAls2d9X.js +0 -1
  1156. package/dist/public/sdk/challengeDelivery-cAsaUC6U.js +0 -1
  1157. package/dist/public/sdk/configHelpers-CseiVoZD.js +0 -1
  1158. package/dist/public/sdk/csp-stylesheet-B1fAhrGB.js +0 -2
  1159. package/dist/public/sdk/defaultConfigs-CWpApkMq.js +0 -1
  1160. package/dist/public/sdk/display-jK7_hYho.js +0 -1
  1161. package/dist/public/sdk/domainIds-GDzjOs6i.js +0 -1
  1162. package/dist/public/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +0 -1
  1163. package/dist/public/sdk/ecdsaChainTarget-CRcRR78w.js +0 -1
  1164. package/dist/public/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +0 -1
  1165. package/dist/public/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +0 -1
  1166. package/dist/public/sdk/ecdsaWalletRecords-Cm1DdexN.js +0 -1
  1167. package/dist/public/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +0 -1
  1168. package/dist/public/sdk/evmCryptoWasm-CwEXiLrC.js +0 -1
  1169. package/dist/public/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +0 -1
  1170. package/dist/public/sdk/exactSessionState-CjD8gekO.js +0 -210
  1171. package/dist/public/sdk/exactSigningLaneIdentity-olheZx_n.js +0 -1
  1172. package/dist/public/sdk/export-viewer-host-jo7h_0wl.js +0 -1
  1173. package/dist/public/sdk/helpers-D4QckQhq.js +0 -1
  1174. package/dist/public/sdk/host-BAqOYnju.js +0 -1
  1175. package/dist/public/sdk/intentDigest-CB6zy3lN.js +0 -1
  1176. package/dist/public/sdk/jsxRuntime.module-CoHsKD_3.js +0 -1
  1177. package/dist/public/sdk/keyMaterialBrands-uVZHfAh3.js +0 -1
  1178. package/dist/public/sdk/localOnly-DBQRG6Qh.js +0 -1
  1179. package/dist/public/sdk/messages-Cv2j4SKI.js +0 -1
  1180. package/dist/public/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +0 -1
  1181. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +0 -2
  1182. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +0 -1
  1183. package/dist/public/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +0 -1
  1184. package/dist/public/sdk/nearRpcResults--cBcfmp4.js +0 -1
  1185. package/dist/public/sdk/nonceLaneKeys-BBYi4g51.js +0 -1
  1186. package/dist/public/sdk/normalization-BGPR6osg.js +0 -1
  1187. package/dist/public/sdk/operationFingerprint-5-wH2Ht8.js +0 -1
  1188. package/dist/public/sdk/operationFingerprint-DtQb0pdp.js +0 -1
  1189. package/dist/public/sdk/passkey-custody-LP4UTFbn.js +0 -1
  1190. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +0 -1
  1191. package/dist/public/sdk/prfCache-Mbo7_USg.js +0 -1
  1192. package/dist/public/sdk/promptText-s8TQ6ckX.js +0 -1
  1193. package/dist/public/sdk/recovery-entrypoint-DkT8sFO5.js +0 -1
  1194. package/dist/public/sdk/registration-Btozh7uh.js +0 -1
  1195. package/dist/public/sdk/registration-CSAG_h4Y.js +0 -1
  1196. package/dist/public/sdk/registrationAccounts-DIeEVy6W.js +0 -1
  1197. package/dist/public/sdk/registrationIds-BIel5S0i.js +0 -1
  1198. package/dist/public/sdk/registrationIntent-DV1GYZ3K.js +0 -1
  1199. package/dist/public/sdk/registrationPreparationPreload-vOCqNuG4.js +0 -1
  1200. package/dist/public/sdk/registrationSignerPlan-FzD3TwxB.js +0 -1
  1201. package/dist/public/sdk/relayerHttp-DaPeS929.js +0 -1
  1202. package/dist/public/sdk/routePlan-B_KJaPtm.js +0 -1
  1203. package/dist/public/sdk/router-Dd3fFHk3.js +0 -1
  1204. package/dist/public/sdk/routerAbNormalSigning-D_fHjq5l.js +0 -1
  1205. package/dist/public/sdk/runtime-auth-B2M91rSx.js +0 -1
  1206. package/dist/public/sdk/runtime-device-link-ojjPSRaG.js +0 -1
  1207. package/dist/public/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +0 -1
  1208. package/dist/public/sdk/runtime-email-otp-DDwtKVAe.js +0 -1
  1209. package/dist/public/sdk/runtime-export-JXYk8sQ-.js +0 -1
  1210. package/dist/public/sdk/runtime-near-BB8AG6dV.js +0 -1
  1211. package/dist/public/sdk/runtime-preferences-DKFZYccW.js +0 -1
  1212. package/dist/public/sdk/runtime-recovery-C_XjsDBg.js +0 -1
  1213. package/dist/public/sdk/runtime-recovery-codes-CWp839mH.js +0 -1
  1214. package/dist/public/sdk/runtimeContext-BpObgzbj.js +0 -6
  1215. package/dist/public/sdk/runtimeLoader-DjgBf_yF.js +0 -1
  1216. package/dist/public/sdk/sdkSentEvents-_RGAEeld.js +0 -1
  1217. package/dist/public/sdk/secp256k1-B_6W9QDJ.js +0 -1
  1218. package/dist/public/sdk/secureRandomId-CTdlJ5Mx.js +0 -1
  1219. package/dist/public/sdk/sessionPolicy-CNVK7nJ6.js +0 -1
  1220. package/dist/public/sdk/shared-j_KsFbCT.js +0 -1
  1221. package/dist/public/sdk/signEvmFamily-CcLVBm0f.js +0 -1
  1222. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +0 -1
  1223. package/dist/public/sdk/signEvmWithUiConfirm-ChreN7aZ.js +0 -1
  1224. package/dist/public/sdk/signNear-mWbTE2Dl.js +0 -1
  1225. package/dist/public/sdk/signatureUses-CQkkUcwT.js +0 -1
  1226. package/dist/public/sdk/signerDomain-BhUTzDmF.js +0 -1
  1227. package/dist/public/sdk/signerLoader-By0IY24G.js +0 -1
  1228. package/dist/public/sdk/signingFlow-LUWrZi2d.js +0 -2
  1229. package/dist/public/sdk/signingSessionSeal-Mr2Xp44o.js +0 -1
  1230. package/dist/public/sdk/trace-M34pNGuF.js +0 -1
  1231. package/dist/public/sdk/transaction-activity-BbDod7ji.js +0 -1
  1232. package/dist/public/sdk/transactionReview-CBE5oH4c.js +0 -1
  1233. package/dist/public/sdk/transactionReviewAdmission-0ZgWs6q3.js +0 -1
  1234. package/dist/public/sdk/transactionState-9d7f3xVj.js +0 -1
  1235. package/dist/public/sdk/types-M7vxrYtJ.js +0 -1
  1236. package/dist/public/sdk/validation-dC1-_uyG.js +0 -1
  1237. package/dist/public/sdk/wallet-recovery-CcDZ1hMH.js +0 -1
  1238. package/dist/public/sdk/walletAuthority-CoWSeqvQ.js +0 -1
  1239. package/dist/public/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +0 -1
  1240. package/dist/public/sdk/walletIframeIdentity-C0b0XMQF.js +0 -1
  1241. package/dist/public/sdk/walletRecoveryCommit-ljxVeo-d.js +0 -1
  1242. package/dist/public/sdk/walletRecoveryRotate-HztDcDaY.js +0 -1
  1243. package/dist/public/sdk/warmSessionHydration-BPGM0YRU.js +0 -1
  1244. package/dist/public/sdk/webauthnP256-qu06GNFm.js +0 -1
  1245. package/dist/public/sdk/webauthnPromptCoordinator-DO-qfECu.js +0 -1
  1246. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  1247. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  1248. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  1249. package/dist/types/wallet/src/SeamsWeb/assembly/browserWorkerWarmupPolicy.d.ts +0 -4
  1250. package/dist/types/wallet/src/SeamsWeb/assembly/configureBrowserIndexedDB.d.ts +0 -3
  1251. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletAuth.d.ts +0 -56
  1252. package/dist/types/wallet/src/SeamsWeb/operations/evm/index.d.ts +0 -9
  1253. package/dist/types/wallet/src/SeamsWeb/operations/near/index.d.ts +0 -11
  1254. package/dist/types/wallet/src/SeamsWeb/operations/recovery/accountSync.d.ts +0 -19
  1255. package/dist/types/wallet/src/SeamsWeb/publicApi/awaitNearReady.d.ts +0 -27
  1256. package/dist/types/wallet/src/SeamsWeb/publicApi/devices.typecheck.d.ts +0 -2
  1257. package/dist/types/wallet/src/SeamsWeb/publicApi/preferences.d.ts +0 -8
  1258. package/dist/types/wallet/src/SeamsWeb/publicApi/recovery.d.ts +0 -14
  1259. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/config-guards.d.ts +0 -15
  1260. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/registrationPreparationPreload.d.ts +0 -2
  1261. package/dist/types/wallet/src/core/signingEngine/flows/registration/public.d.ts +0 -68
  1262. package/dist/types/wallet/src/react/context/useEagerPrewarm.d.ts +0 -3
  1263. package/dist/workers/evm_crypto.wasm +0 -0
  1264. package/dist/workers/near_signer.wasm +0 -0
  1265. package/dist/workers/tempo_signer.wasm +0 -0
  1266. /package/dist/esm/sdk/{accountIds-C3Ihsd2c.js → accountIds-BzZs7YoX.js} +0 -0
  1267. /package/dist/esm/sdk/{base64-ojm5DKcF.js → base64-CsEj-_bC.js} +0 -0
  1268. /package/dist/esm/sdk/{browser-CsOGMbMy.js → browser-D4wUl_77.js} +0 -0
  1269. /package/dist/esm/sdk/{errors-DfbnsXjO.js → errors-BZO3LF6G.js} +0 -0
  1270. /package/dist/esm/sdk/{events-BJyVcnsn.js → events-DsQJQ0Cl.js} +0 -0
  1271. /package/dist/esm/sdk/{executeWorkerOperation-CrFf3FkL.js → executeWorkerOperation-BInr8RYN.js} +0 -0
  1272. /package/dist/esm/sdk/{jsonRpc-C85RYR0A.js → jsonRpc-DrCYQIM9.js} +0 -0
  1273. /package/dist/esm/sdk/{keccak-zexutGfG.js → keccak-B02Fekdh.js} +0 -0
  1274. /package/dist/esm/sdk/{profileAccountProjection-DHCaMtOu.js → profileAccountProjection-DmmfMood.js} +0 -0
  1275. /package/dist/esm/sdk/{signerSlot-BQ1g5JNV.js → signerSlot-Dto7dObP.js} +0 -0
  1276. /package/dist/esm/sdk/{surface-measurement-reporter-OICExWKE.js → surface-measurement-reporter-IlPOI3QK.js} +0 -0
  1277. /package/dist/public/sdk/{accountIds-C3Ihsd2c.js → accountIds-BzZs7YoX.js} +0 -0
  1278. /package/dist/public/sdk/{base64-ojm5DKcF.js → base64-CsEj-_bC.js} +0 -0
  1279. /package/dist/public/sdk/{browser-CsOGMbMy.js → browser-D4wUl_77.js} +0 -0
  1280. /package/dist/public/sdk/{errors-DfbnsXjO.js → errors-BZO3LF6G.js} +0 -0
  1281. /package/dist/public/sdk/{events-BJyVcnsn.js → events-DsQJQ0Cl.js} +0 -0
  1282. /package/dist/public/sdk/{executeWorkerOperation-CrFf3FkL.js → executeWorkerOperation-BInr8RYN.js} +0 -0
  1283. /package/dist/public/sdk/{jsonRpc-C85RYR0A.js → jsonRpc-DrCYQIM9.js} +0 -0
  1284. /package/dist/public/sdk/{keccak-zexutGfG.js → keccak-B02Fekdh.js} +0 -0
  1285. /package/dist/public/sdk/{profileAccountProjection-DHCaMtOu.js → profileAccountProjection-DmmfMood.js} +0 -0
  1286. /package/dist/public/sdk/{signerSlot-BQ1g5JNV.js → signerSlot-Dto7dObP.js} +0 -0
  1287. /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)