@seams/wallet 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1693) hide show
  1. package/README.md +4 -5
  2. package/THIRD_PARTY_NOTICES.md +1 -9
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/SeamsWeb.js +2 -2
  5. package/dist/esm/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +2 -2
  6. package/dist/esm/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +1 -1
  7. package/dist/esm/SeamsWeb/assembly/createBrowserSigningStores.js +1 -1
  8. package/dist/esm/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -2
  9. package/dist/esm/SeamsWeb/operations/auth/login.js +18 -43
  10. package/dist/esm/SeamsWeb/operations/auth/walletUnlockSubject.js +2 -8
  11. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +1 -1
  12. package/dist/esm/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +5 -9
  13. package/dist/esm/SeamsWeb/operations/authMethods/passkey/addPasskey.js +1 -1
  14. package/dist/esm/SeamsWeb/operations/authMethods/revokeAuthMethod.js +1 -1
  15. package/dist/esm/SeamsWeb/operations/devices/deviceLinkingResume.js +1 -4
  16. package/dist/esm/SeamsWeb/operations/devices/linkDeviceFlow.js +38 -13
  17. package/dist/esm/SeamsWeb/operations/devices/scanDevice.js +1 -1
  18. package/dist/esm/SeamsWeb/operations/near/signNEP413.js +0 -1
  19. package/dist/esm/SeamsWeb/operations/recovery/syncAccount.js +2 -4
  20. package/dist/esm/SeamsWeb/operations/recovery/walletRecovery.js +1 -2
  21. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +4 -5
  22. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +1 -2
  23. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryRotation.js +1 -2
  24. package/dist/esm/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +3 -12
  25. package/dist/esm/SeamsWeb/operations/registration/registration.js +5 -5
  26. package/dist/esm/SeamsWeb/operations/registration/registrationStrictEcdsa.js +1 -1
  27. package/dist/esm/SeamsWeb/operations/registration/registrationTerminalCommit.js +1 -1
  28. package/dist/esm/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +2 -6
  29. package/dist/esm/SeamsWeb/publicApi/near.js +1 -1
  30. package/dist/esm/SeamsWeb/publicApi/transactionReview.js +4 -1
  31. package/dist/esm/SeamsWeb/signingSurface/BrowserSigningSurface.js +4 -4
  32. package/dist/esm/SeamsWeb/walletIframe/client/router.js +1 -2
  33. package/dist/esm/SeamsWeb/walletIframe/client/surface/domain.js +0 -2
  34. package/dist/esm/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -4
  35. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +1 -1
  36. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +64 -0
  37. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +165 -222
  38. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +136 -0
  39. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -6
  40. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +11 -1
  41. package/dist/esm/advanced.js +0 -1
  42. package/dist/esm/base-styles.js +2 -2
  43. package/dist/esm/core/accountData/near/accountProjection.js +0 -1
  44. package/dist/esm/core/accountData/near/keyMaterial.js +0 -1
  45. package/dist/esm/core/browser/walletIframe/events.js +1 -5
  46. package/dist/esm/core/browser/walletIframe/host-mode.js +0 -10
  47. package/dist/esm/core/config/chains.js +1 -2
  48. package/dist/esm/core/config/configBuilder.js +0 -1
  49. package/dist/esm/core/config/configHelpers.js +0 -1
  50. package/dist/esm/core/indexedDB/accountKeyMaterial.js +0 -1
  51. package/dist/esm/core/indexedDB/index.js +3 -4
  52. package/dist/esm/core/indexedDB/pendingWalletRecoveryCommit.js +1 -4
  53. package/dist/esm/core/indexedDB/schemaNames.js +0 -22
  54. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +3 -3
  55. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +3 -3
  56. package/dist/esm/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +1 -1
  57. package/dist/esm/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -1
  58. package/dist/esm/core/indexedDB/seamsWalletDB/registrationSetup.js +103 -0
  59. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +2 -3
  60. package/dist/esm/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -35
  61. package/dist/esm/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +4 -4
  62. package/dist/esm/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +37 -19
  63. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +10 -3
  64. package/dist/esm/core/indexedDB/walletCustodyEd25519MaterialRecord.js +1 -1
  65. package/dist/esm/core/platform/browser/createBrowserPlatformRuntime.js +8 -25
  66. package/dist/esm/core/rpcClients/near/rpcCalls.js +39 -1
  67. package/dist/esm/core/rpcClients/relayer/passkeyCustodyEnvelope.js +3 -13
  68. package/dist/esm/core/rpcClients/relayer/thresholdEcdsa.js +0 -2
  69. package/dist/esm/core/rpcClients/relayer/walletRecoveryPrepare.js +3 -4
  70. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +21 -15
  71. package/dist/esm/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +1 -2
  72. package/dist/esm/core/signingEngine/assembly/createManagers.js +1 -1
  73. package/dist/esm/core/signingEngine/assembly/ports/shared.js +1 -2
  74. package/dist/esm/core/signingEngine/assembly/warmup.js +1 -5
  75. package/dist/esm/core/signingEngine/chains/near/nearSignerWasm.js +2 -33
  76. package/dist/esm/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -1
  77. package/dist/esm/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -1
  78. package/dist/esm/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +1 -1
  79. package/dist/esm/core/signingEngine/flows/recovery/stepUpAuthorization.js +1 -1
  80. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +3 -8
  81. package/dist/esm/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +1 -2
  82. package/dist/esm/core/signingEngine/flows/shared/signingStateMachine.js +2 -5
  83. package/dist/esm/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -2
  84. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +1 -1
  85. package/dist/esm/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +1 -2
  86. package/dist/esm/core/signingEngine/flows/signNear/implicitAccountFunding.js +1 -1
  87. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +33 -42
  88. package/dist/esm/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -2
  89. package/dist/esm/core/signingEngine/flows/signNear/shared/signingMaterials.js +1 -7
  90. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +4 -14
  91. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +2 -6
  92. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +2 -6
  93. package/dist/esm/core/signingEngine/nonce/NonceCoordinator.js +1 -1
  94. package/dist/esm/core/signingEngine/nonce/nearNonceLane.js +1 -1
  95. package/dist/esm/core/signingEngine/nonce/nonceDiagnostics.js +1 -1
  96. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -1
  97. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +0 -1
  98. package/dist/esm/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -3
  99. package/dist/esm/core/signingEngine/session/SigningSessionCoordinator.js +1 -4
  100. package/dist/esm/core/signingEngine/session/authority/authorityOperationResolver.js +17 -68
  101. package/dist/esm/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -1
  102. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +1 -1
  103. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -3
  104. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaLogin.js +1 -7
  105. package/dist/esm/core/signingEngine/session/emailOtp/ecdsaRecovery.js +10 -14
  106. package/dist/esm/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -3
  107. package/dist/esm/core/signingEngine/session/emailOtp/exportRecovery.js +0 -2
  108. package/dist/esm/core/signingEngine/session/identity/clientSessionPersistenceState.js +5 -16
  109. package/dist/esm/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -1
  110. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  111. package/dist/esm/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -2
  112. package/dist/esm/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +1 -2
  113. package/dist/esm/core/signingEngine/session/material/ecdsaCapabilityManifest.js +1 -1
  114. package/dist/esm/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +1 -14
  115. package/dist/esm/core/signingEngine/session/operationState/preparedOperation.js +1 -5
  116. package/dist/esm/core/signingEngine/session/passkey/ecdsaBootstrap.js +3 -6
  117. package/dist/esm/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -1
  118. package/dist/esm/core/signingEngine/session/passkey/ecdsaRecovery.js +1 -4
  119. package/dist/esm/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -1
  120. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +2 -3
  121. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +12 -45
  122. package/dist/esm/core/signingEngine/session/persistence/clientSessionPersistence.js +8 -16
  123. package/dist/esm/core/signingEngine/session/persistence/sealedSessionRecords.js +0 -2
  124. package/dist/esm/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -2
  125. package/dist/esm/core/signingEngine/session/routerAbSigningWalletSession.js +2 -8
  126. package/dist/esm/core/signingEngine/session/warmCapabilities/readModel.js +2 -8
  127. package/dist/esm/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +1 -12
  128. package/dist/esm/core/signingEngine/session/warmCapabilities/transitions.js +7 -11
  129. package/dist/esm/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -1
  130. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +6 -30
  131. package/dist/esm/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -3
  132. package/dist/esm/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +1 -5
  133. package/dist/esm/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -3
  134. package/dist/esm/core/signingEngine/threshold/ecdsa/bootstrapSession.js +1 -5
  135. package/dist/esm/core/signingEngine/threshold/ed25519/walletSession.js +1 -1
  136. package/dist/esm/core/signingEngine/threshold/ed25519/yaoClient.js +1 -35
  137. package/dist/esm/core/signingEngine/threshold/sessionPolicy.js +0 -1
  138. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +1 -4
  139. package/dist/esm/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +1 -1
  140. package/dist/esm/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -1
  141. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +1 -1
  142. package/dist/esm/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -1
  143. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +7 -0
  144. package/dist/esm/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +3 -13
  145. package/dist/esm/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -1
  146. package/dist/esm/core/signingEngine/walletCustody/emailOtpLink.js +10 -13
  147. package/dist/esm/core/signingEngine/walletCustody/openCustodyCache.js +2 -6
  148. package/dist/esm/core/signingEngine/walletCustody/passkeyLink.js +7 -10
  149. package/dist/esm/core/signingEngine/walletCustody/registrationCeremony.js +0 -1
  150. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -1
  151. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -1
  152. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryEd25519.js +1 -1
  153. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -2
  154. package/dist/esm/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -1
  155. package/dist/esm/core/signingEngine/webauthnAuth/walletOriginWebAuthn.js +109 -0
  156. package/dist/esm/core/signingEngine/workerManager/SignerWorkerManager.js +0 -2
  157. package/dist/esm/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -4
  158. package/dist/esm/core/signingEngine/workerManager/validation.js +1 -1
  159. package/dist/esm/core/signingEngine/workerManager/workerTransport.js +3 -42
  160. package/dist/esm/core/signingEngine/workerManager/workerTypes.js +0 -2
  161. package/dist/esm/core/types/accountIds.js +0 -1
  162. package/dist/esm/core/types/sdkSentEvents.js +1 -2
  163. package/dist/esm/core/types/signer-worker.js +1 -36
  164. package/dist/esm/core/walletRuntimePaths/base.js +11 -1
  165. package/dist/esm/plugins/headers.js +0 -1
  166. package/dist/esm/plugins/next.js +0 -1
  167. package/dist/esm/plugins/plugin-utils.js +0 -1
  168. package/dist/esm/plugins/shared-ts/src/utils/normalize.js +1 -1
  169. package/dist/esm/react/components/AccountMenuButton/AccountsSection.js +1 -1
  170. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +1 -1
  171. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.js +1 -1
  172. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +4 -4
  173. package/dist/esm/react/components/AccountMenuButton/LockMenuItem.js +1 -1
  174. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.js +1 -1
  175. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +8 -0
  176. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +14 -6
  177. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +1 -1
  178. package/dist/esm/react/components/AccountMenuButton/index.js +5 -5
  179. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +1 -1
  180. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +1 -1
  181. package/dist/esm/react/components/QRCodeScanner.js +2 -2
  182. package/dist/esm/react/components/ShowQRCode.js +4 -4
  183. package/dist/esm/react/components/theme/design-tokens.js +1 -2
  184. package/dist/esm/react/context/index.js +1 -1
  185. package/dist/esm/react/context/reactLoginStateBuilders.js +1 -1
  186. package/dist/esm/react/context/seamsManagerSingleton.js +2 -2
  187. package/dist/esm/react/context/useLoginStateRefresher.js +2 -5
  188. package/dist/esm/react/context/useSeamsContextValue.js +1 -1
  189. package/dist/esm/react/context/useSeamsWithSdkFlow.js +1 -1
  190. package/dist/esm/react/context/useWalletIframeLifecycle.js +1 -1
  191. package/dist/esm/react/hooks/useAccountInput.js +4 -4
  192. package/dist/esm/react/hooks/useNearClient.js +3 -3
  193. package/dist/esm/react/hooks/usePreconnectWalletAssets.js +1 -1
  194. package/dist/esm/react/hooks/useQRCamera.js +2 -2
  195. package/dist/esm/react/hooks/useWallet.js +1 -1
  196. package/dist/esm/react/index.js +10 -10
  197. package/dist/esm/react/styles/styles.css +8 -0
  198. package/dist/esm/react/transactionReview/TransactionReviewHost.js +1 -1
  199. package/dist/esm/react/transactionReview/boundCalls.js +2 -2
  200. package/dist/esm/react/transactionReview/contract.js +1 -1
  201. package/dist/esm/react/transactionReview/controller.js +2 -2
  202. package/dist/esm/react/transactionReview/snapshot.js +2 -2
  203. package/dist/esm/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  204. package/dist/esm/sdk/EvmClient-DoxytQaJ.js +1 -0
  205. package/dist/esm/sdk/NearClient-vJ65Wjrq.js +1 -0
  206. package/dist/esm/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  207. package/dist/esm/sdk/accountIds-C3Ihsd2c.js +1 -0
  208. package/dist/esm/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  209. package/dist/esm/sdk/actions-DZLxCcrU.js +1 -0
  210. package/dist/esm/sdk/adapters-DtAyuoiA.js +2 -0
  211. package/dist/esm/sdk/base-Xtd32asf.js +1 -0
  212. package/dist/esm/sdk/base64-ojm5DKcF.js +1 -0
  213. package/dist/esm/sdk/browser-CsOGMbMy.js +8 -0
  214. package/dist/esm/sdk/bytes-t5S5mkat.js +1 -0
  215. package/dist/esm/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  216. package/dist/esm/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  217. package/dist/esm/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  218. package/dist/esm/sdk/chains-yAls2d9X.js +1 -0
  219. package/dist/esm/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  220. package/dist/esm/sdk/chunk-dVx5-UGu.js +1 -0
  221. package/dist/esm/sdk/configHelpers-CseiVoZD.js +1 -0
  222. package/dist/esm/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  223. package/dist/esm/sdk/defaultConfigs-CWpApkMq.js +1 -0
  224. package/dist/esm/sdk/display-jK7_hYho.js +1 -0
  225. package/dist/esm/sdk/domainIds-GDzjOs6i.js +1 -0
  226. package/dist/esm/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  227. package/dist/esm/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  228. package/dist/esm/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  229. package/dist/esm/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  230. package/dist/esm/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  231. package/dist/esm/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  232. package/dist/esm/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  233. package/dist/esm/sdk/errors-DfbnsXjO.js +1 -0
  234. package/dist/esm/sdk/events-BJyVcnsn.js +1 -0
  235. package/dist/esm/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  236. package/dist/esm/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  237. package/dist/esm/sdk/exactSessionState-CjD8gekO.js +210 -0
  238. package/dist/esm/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  239. package/dist/esm/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  240. package/dist/esm/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  241. package/dist/esm/sdk/helpers-D4QckQhq.js +1 -0
  242. package/dist/esm/sdk/host-BAqOYnju.js +1 -0
  243. package/dist/esm/sdk/intentDigest-CB6zy3lN.js +1 -0
  244. package/dist/esm/sdk/jsonRpc-C85RYR0A.js +1 -0
  245. package/dist/esm/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  246. package/dist/esm/sdk/keccak-zexutGfG.js +1 -0
  247. package/dist/esm/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  248. package/dist/esm/sdk/localOnly-DBQRG6Qh.js +1 -0
  249. package/dist/esm/sdk/messages-Cv2j4SKI.js +1 -0
  250. package/dist/esm/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  251. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  252. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  253. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  254. package/dist/esm/sdk/nearRpcResults--cBcfmp4.js +1 -0
  255. package/dist/esm/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  256. package/dist/esm/sdk/normalization-BGPR6osg.js +1 -0
  257. package/dist/esm/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  258. package/dist/esm/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  259. package/dist/esm/sdk/passkey-custody-LP4UTFbn.js +1 -0
  260. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  261. package/dist/esm/sdk/prfCache-Mbo7_USg.js +1 -0
  262. package/dist/esm/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  263. package/dist/esm/sdk/promptText-s8TQ6ckX.js +1 -0
  264. package/dist/esm/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  265. package/dist/esm/sdk/registration-Btozh7uh.js +1 -0
  266. package/dist/esm/sdk/registration-CSAG_h4Y.js +1 -0
  267. package/dist/esm/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  268. package/dist/esm/sdk/registrationIds-BIel5S0i.js +1 -0
  269. package/dist/esm/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  270. package/dist/esm/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  271. package/dist/esm/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  272. package/dist/esm/sdk/relayerHttp-DaPeS929.js +1 -0
  273. package/dist/esm/sdk/routePlan-B_KJaPtm.js +1 -0
  274. package/dist/esm/sdk/router-Dd3fFHk3.js +1 -0
  275. package/dist/esm/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  276. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  277. package/dist/esm/sdk/runtime-auth-B2M91rSx.js +1 -0
  278. package/dist/esm/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  279. package/dist/esm/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  280. package/dist/esm/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  281. package/dist/esm/sdk/runtime-export-JXYk8sQ-.js +1 -0
  282. package/dist/esm/sdk/runtime-near-BB8AG6dV.js +1 -0
  283. package/dist/esm/sdk/runtime-preferences-DKFZYccW.js +1 -0
  284. package/dist/esm/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  285. package/dist/esm/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  286. package/dist/esm/sdk/runtimeContext-BpObgzbj.js +6 -0
  287. package/dist/esm/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  288. package/dist/esm/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  289. package/dist/esm/sdk/secp256k1-B_6W9QDJ.js +1 -0
  290. package/dist/esm/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  291. package/dist/esm/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  292. package/dist/esm/sdk/shared-j_KsFbCT.js +1 -0
  293. package/dist/esm/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  294. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  295. package/dist/esm/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  296. package/dist/esm/sdk/signNear-mWbTE2Dl.js +1 -0
  297. package/dist/esm/sdk/signatureUses-CQkkUcwT.js +1 -0
  298. package/dist/esm/sdk/signerDomain-BhUTzDmF.js +1 -0
  299. package/dist/esm/sdk/signerLoader-By0IY24G.js +1 -0
  300. package/dist/esm/sdk/signerSlot-BQ1g5JNV.js +1 -0
  301. package/dist/esm/sdk/signingFlow-LUWrZi2d.js +2 -0
  302. package/dist/esm/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  303. package/dist/esm/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  304. package/dist/esm/sdk/trace-M34pNGuF.js +1 -0
  305. package/dist/esm/sdk/transaction-activity-BbDod7ji.js +1 -0
  306. package/dist/esm/sdk/transactionReview-CBE5oH4c.js +1 -0
  307. package/dist/esm/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  308. package/dist/esm/sdk/transactionState-9d7f3xVj.js +1 -0
  309. package/dist/esm/sdk/tx-confirm-ui.js +12 -158
  310. package/dist/esm/sdk/types-M7vxrYtJ.js +1 -0
  311. package/dist/esm/sdk/validation-dC1-_uyG.js +1 -0
  312. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -13
  313. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -6
  314. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -13
  315. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -4
  316. package/dist/esm/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  317. package/dist/esm/sdk/wallet-ui.css +1 -5874
  318. package/dist/esm/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  319. package/dist/esm/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  320. package/dist/esm/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  321. package/dist/esm/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  322. package/dist/esm/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  323. package/dist/esm/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  324. package/dist/esm/sdk/webauthnP256-qu06GNFm.js +1 -0
  325. package/dist/esm/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  326. package/dist/esm/shared-ts/src/device-linking/parsers.js +41 -1
  327. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +1 -1
  328. package/dist/esm/shared-ts/src/near/actions.js +10 -1
  329. package/dist/esm/shared-ts/src/near/nearClient.js +0 -2
  330. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +1 -1
  331. package/dist/esm/shared-ts/src/signing-lanes/index.js +1 -4
  332. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +0 -1
  333. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +0 -1
  334. package/dist/esm/shared-ts/src/signing-lanes/participants.js +1 -1
  335. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +1 -1
  336. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -1
  337. package/dist/esm/shared-ts/src/threshold/participants.js +0 -1
  338. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +0 -1
  339. package/dist/esm/shared-ts/src/utils/domainIds.js +1 -7
  340. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -1
  341. package/dist/esm/shared-ts/src/utils/encoders.js +1 -1
  342. package/dist/esm/shared-ts/src/utils/errors.js +0 -1
  343. package/dist/esm/shared-ts/src/utils/index.js +4 -5
  344. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +1 -1
  345. package/dist/esm/shared-ts/src/utils/registrationIds.js +1 -5
  346. package/dist/esm/shared-ts/src/utils/registrationIntent.js +0 -1
  347. package/dist/esm/shared-ts/src/utils/registrationSetupOperation.js +12 -0
  348. package/dist/esm/shared-ts/src/utils/registrationSignerPlan.js +1 -1
  349. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1 -2
  350. package/dist/esm/shared-ts/src/utils/validation.js +0 -1
  351. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +0 -1
  352. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +10 -1
  353. package/dist/esm/shared-ts/src/utils/walletManagementProtocol.js +6 -0
  354. package/dist/esm/shared-ts/src/wallet-recovery/index.js +1 -1
  355. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -1
  356. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -2
  357. package/dist/esm/theme/base-styles.js +11 -11
  358. package/dist/esm/utils/deviceDetection.js +16 -1
  359. package/dist/esm/utils/qrScanner.js +288 -0
  360. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.d.ts +12 -753
  361. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +126 -3701
  362. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  363. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.d.ts +0 -42
  364. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client.js +2 -106
  365. package/dist/esm/wasm/router_ab_ecdsa_client/pkg/router_ab_ecdsa_client_bg.wasm +0 -0
  366. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.d.ts +3 -158
  367. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client.js +2 -452
  368. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  369. package/dist/public/headers.manifest.json +1 -1
  370. package/dist/public/sdk/ConfirmationDrawer-DrsREojk.js +1 -0
  371. package/dist/public/sdk/EvmClient-DoxytQaJ.js +1 -0
  372. package/dist/public/sdk/NearClient-vJ65Wjrq.js +1 -0
  373. package/dist/public/sdk/NonceCoordinator-BBeadCSq.js +1 -0
  374. package/dist/public/sdk/accountIds-C3Ihsd2c.js +1 -0
  375. package/dist/public/sdk/accountLifecycle-EyfYPnuT.js +1 -0
  376. package/dist/public/sdk/actions-DZLxCcrU.js +1 -0
  377. package/dist/public/sdk/adapters-DtAyuoiA.js +2 -0
  378. package/dist/public/sdk/base-Xtd32asf.js +1 -0
  379. package/dist/public/sdk/base64-ojm5DKcF.js +1 -0
  380. package/dist/public/sdk/browser-CsOGMbMy.js +8 -0
  381. package/dist/public/sdk/bytes-t5S5mkat.js +1 -0
  382. package/dist/public/sdk/canonicalPrimitives-MPGET2cl.js +1 -0
  383. package/dist/public/sdk/canonicalSignerErrorCode-C0hh_SVi.js +1 -0
  384. package/dist/public/sdk/capabilityKinds-XaXXiD2B.js +1 -0
  385. package/dist/public/sdk/chains-yAls2d9X.js +1 -0
  386. package/dist/public/sdk/challengeDelivery-cAsaUC6U.js +1 -0
  387. package/dist/public/sdk/chunk-dVx5-UGu.js +1 -0
  388. package/dist/public/sdk/configHelpers-CseiVoZD.js +1 -0
  389. package/dist/public/sdk/csp-stylesheet-B1fAhrGB.js +2 -0
  390. package/dist/public/sdk/defaultConfigs-CWpApkMq.js +1 -0
  391. package/dist/public/sdk/display-jK7_hYho.js +1 -0
  392. package/dist/public/sdk/domainIds-GDzjOs6i.js +1 -0
  393. package/dist/public/sdk/ecdsaCapabilityManifest-CHFu-QrV.js +1 -0
  394. package/dist/public/sdk/ecdsaChainTarget-CRcRR78w.js +1 -0
  395. package/dist/public/sdk/ecdsaPresignLifecycle-CQnCxSlq.js +1 -0
  396. package/dist/public/sdk/ecdsaPresignPoolIdentity-Ci-ovDlv.js +1 -0
  397. package/dist/public/sdk/ecdsaWalletRecords-Cm1DdexN.js +1 -0
  398. package/dist/public/sdk/enrichDisplayModelWithAbi-CR-4ebuU.js +1 -0
  399. package/dist/public/sdk/enrichDisplayModelWithAbi-CwHKFqF4.js +569 -0
  400. package/dist/public/sdk/errors-DfbnsXjO.js +1 -0
  401. package/dist/public/sdk/events-BJyVcnsn.js +1 -0
  402. package/dist/public/sdk/evmCryptoWasm-CwEXiLrC.js +1 -0
  403. package/dist/public/sdk/evmFamilyEcdsaIdentity-Br3iFdQx.js +1 -0
  404. package/dist/public/sdk/exactSessionState-CjD8gekO.js +210 -0
  405. package/dist/public/sdk/exactSigningLaneIdentity-olheZx_n.js +1 -0
  406. package/dist/public/sdk/executeWorkerOperation-CrFf3FkL.js +1 -0
  407. package/dist/public/sdk/export-viewer-host-jo7h_0wl.js +1 -0
  408. package/dist/public/sdk/helpers-D4QckQhq.js +1 -0
  409. package/dist/public/sdk/host-BAqOYnju.js +1 -0
  410. package/dist/public/sdk/intentDigest-CB6zy3lN.js +1 -0
  411. package/dist/public/sdk/jsonRpc-C85RYR0A.js +1 -0
  412. package/dist/public/sdk/jsxRuntime.module-CoHsKD_3.js +1 -0
  413. package/dist/public/sdk/keccak-zexutGfG.js +1 -0
  414. package/dist/public/sdk/keyMaterialBrands-uVZHfAh3.js +1 -0
  415. package/dist/public/sdk/localOnly-DBQRG6Qh.js +1 -0
  416. package/dist/public/sdk/messages-Cv2j4SKI.js +1 -0
  417. package/dist/public/sdk/mountExportPrivateKeySurface-G7Z_9JMQ.js +1 -0
  418. package/dist/public/sdk/mountRecoveryCodeBackupSurface-BBCTaQsu.js +2 -0
  419. package/dist/public/sdk/nearEd25519YaoMaterialActivation-DQIw8ho3.js +1 -0
  420. package/dist/public/sdk/nearEd25519YaoSigningPreparation-Bp_CvWRz.js +1 -0
  421. package/dist/public/sdk/nearRpcResults--cBcfmp4.js +1 -0
  422. package/dist/public/sdk/nonceLaneKeys-BBYi4g51.js +1 -0
  423. package/dist/public/sdk/normalization-BGPR6osg.js +1 -0
  424. package/dist/public/sdk/operationFingerprint-5-wH2Ht8.js +1 -0
  425. package/dist/public/sdk/operationFingerprint-DtQb0pdp.js +1 -0
  426. package/dist/public/sdk/passkey-custody-LP4UTFbn.js +1 -0
  427. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BNk4ebsY.js +1 -0
  428. package/dist/public/sdk/prfCache-Mbo7_USg.js +1 -0
  429. package/dist/public/sdk/profileAccountProjection-DHCaMtOu.js +1 -0
  430. package/dist/public/sdk/promptText-s8TQ6ckX.js +1 -0
  431. package/dist/public/sdk/recovery-entrypoint-DkT8sFO5.js +1 -0
  432. package/dist/public/sdk/registration-Btozh7uh.js +1 -0
  433. package/dist/public/sdk/registration-CSAG_h4Y.js +1 -0
  434. package/dist/public/sdk/registrationAccounts-DIeEVy6W.js +1 -0
  435. package/dist/public/sdk/registrationIds-BIel5S0i.js +1 -0
  436. package/dist/public/sdk/registrationIntent-DV1GYZ3K.js +1 -0
  437. package/dist/public/sdk/registrationPreparationPreload-vOCqNuG4.js +1 -0
  438. package/dist/public/sdk/registrationSignerPlan-FzD3TwxB.js +1 -0
  439. package/dist/public/sdk/relayerHttp-DaPeS929.js +1 -0
  440. package/dist/public/sdk/routePlan-B_KJaPtm.js +1 -0
  441. package/dist/public/sdk/router-Dd3fFHk3.js +1 -0
  442. package/dist/public/sdk/routerAbNormalSigning-D_fHjq5l.js +1 -0
  443. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  444. package/dist/public/sdk/runtime-auth-B2M91rSx.js +1 -0
  445. package/dist/public/sdk/runtime-device-link-ojjPSRaG.js +1 -0
  446. package/dist/public/sdk/runtime-ecdsa-tempo-CE4JLgmn.js +1 -0
  447. package/dist/public/sdk/runtime-email-otp-DDwtKVAe.js +1 -0
  448. package/dist/public/sdk/runtime-export-JXYk8sQ-.js +1 -0
  449. package/dist/public/sdk/runtime-near-BB8AG6dV.js +1 -0
  450. package/dist/public/sdk/runtime-preferences-DKFZYccW.js +1 -0
  451. package/dist/public/sdk/runtime-recovery-C_XjsDBg.js +1 -0
  452. package/dist/public/sdk/runtime-recovery-codes-CWp839mH.js +1 -0
  453. package/dist/public/sdk/runtimeContext-BpObgzbj.js +6 -0
  454. package/dist/public/sdk/runtimeLoader-DjgBf_yF.js +1 -0
  455. package/dist/public/sdk/sdkSentEvents-_RGAEeld.js +1 -0
  456. package/dist/public/sdk/secp256k1-B_6W9QDJ.js +1 -0
  457. package/dist/public/sdk/secureRandomId-CTdlJ5Mx.js +1 -0
  458. package/dist/public/sdk/sessionPolicy-CNVK7nJ6.js +1 -0
  459. package/dist/public/sdk/shared-j_KsFbCT.js +1 -0
  460. package/dist/public/sdk/signEvmFamily-CcLVBm0f.js +1 -0
  461. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-DgTbh6jX.js +1 -0
  462. package/dist/public/sdk/signEvmWithUiConfirm-ChreN7aZ.js +1 -0
  463. package/dist/public/sdk/signNear-mWbTE2Dl.js +1 -0
  464. package/dist/public/sdk/signatureUses-CQkkUcwT.js +1 -0
  465. package/dist/public/sdk/signerDomain-BhUTzDmF.js +1 -0
  466. package/dist/public/sdk/signerLoader-By0IY24G.js +1 -0
  467. package/dist/public/sdk/signerSlot-BQ1g5JNV.js +1 -0
  468. package/dist/public/sdk/signingFlow-LUWrZi2d.js +2 -0
  469. package/dist/public/sdk/signingSessionSeal-Mr2Xp44o.js +1 -0
  470. package/dist/public/sdk/surface-measurement-reporter-OICExWKE.js +1 -0
  471. package/dist/public/sdk/trace-M34pNGuF.js +1 -0
  472. package/dist/public/sdk/transaction-activity-BbDod7ji.js +1 -0
  473. package/dist/public/sdk/transactionReview-CBE5oH4c.js +1 -0
  474. package/dist/public/sdk/transactionReviewAdmission-0ZgWs6q3.js +1 -0
  475. package/dist/public/sdk/transactionState-9d7f3xVj.js +1 -0
  476. package/dist/public/sdk/tx-confirm-ui.js +12 -158
  477. package/dist/public/sdk/types-M7vxrYtJ.js +1 -0
  478. package/dist/public/sdk/validation-dC1-_uyG.js +1 -0
  479. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -13
  480. package/dist/public/sdk/wallet-iframe-host-full.js +1 -6
  481. package/dist/public/sdk/wallet-iframe-host-near.js +1 -13
  482. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -4
  483. package/dist/public/sdk/wallet-recovery-CcDZ1hMH.js +1 -0
  484. package/dist/public/sdk/wallet-ui.css +1 -5874
  485. package/dist/public/sdk/walletAuthority-CoWSeqvQ.js +1 -0
  486. package/dist/public/sdk/walletCustodyEcdsaContinuity-B7xi7nwh.js +1 -0
  487. package/dist/public/sdk/walletIframeIdentity-C0b0XMQF.js +1 -0
  488. package/dist/public/sdk/walletRecoveryCommit-ljxVeo-d.js +1 -0
  489. package/dist/public/sdk/walletRecoveryRotate-HztDcDaY.js +1 -0
  490. package/dist/public/sdk/warmSessionHydration-BPGM0YRU.js +1 -0
  491. package/dist/public/sdk/webauthnP256-qu06GNFm.js +1 -0
  492. package/dist/public/sdk/webauthnPromptCoordinator-DO-qfECu.js +1 -0
  493. package/dist/public/sdk/workers/device-linking-key.worker.js +387 -1952
  494. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +1523 -2668
  495. package/dist/public/sdk/workers/ecdsa-online-client.worker.js +1 -273
  496. package/dist/public/sdk/workers/ecdsa-presign-client.worker.js +1 -273
  497. package/dist/public/sdk/workers/email-otp.worker.js +228 -2103
  498. package/dist/public/sdk/workers/email_otp_runtime_bg.wasm +0 -0
  499. package/dist/public/sdk/workers/evm-crypto.worker.js +0 -188
  500. package/dist/public/sdk/workers/evm_crypto.wasm +0 -0
  501. package/dist/public/sdk/workers/evm_crypto_bg.wasm +0 -0
  502. package/dist/public/sdk/workers/near-signer.worker.js +16 -718
  503. package/dist/public/sdk/workers/near_signer.wasm +0 -0
  504. package/dist/public/sdk/workers/passkey-confirm.worker.js +0 -134
  505. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +149 -506
  506. package/dist/public/sdk/workers/passkey-mpc-session.worker.js +0 -134
  507. package/dist/public/sdk/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  508. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  509. package/dist/public/sdk/workers/shamir3pass.worker.js +0 -134
  510. package/dist/public/sdk/workers/shamir3pass_runtime_bg.wasm +0 -0
  511. package/dist/public/sdk/workers/tempo-signer.worker.js +0 -134
  512. package/dist/public/sdk/workers/tempo_signer.wasm +0 -0
  513. package/dist/public/sdk/workers/tempo_signer_bg.wasm +0 -0
  514. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +135 -1635
  515. package/dist/public/sdk/workers/wallet_custody_ceremony.js +0 -14
  516. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  517. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  518. package/dist/public/wallet-assets.manifest.json +234 -258
  519. package/dist/public/wallet-service/index.html +4 -4
  520. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +0 -4
  521. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +1 -0
  522. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +0 -2
  523. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +0 -11
  524. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +2 -7
  525. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +0 -4
  526. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +0 -1
  527. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +0 -18
  528. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +6 -35
  529. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +6 -843
  530. package/dist/types/shared-ts/src/threshold/keyMaterialBrands.d.ts +0 -10
  531. package/dist/types/shared-ts/src/threshold/participants.d.ts +1 -1
  532. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +1 -133
  533. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +4 -18
  534. package/dist/types/shared-ts/src/utils/domainIds.d.ts +0 -12
  535. package/dist/types/shared-ts/src/utils/errors.d.ts +0 -4
  536. package/dist/types/shared-ts/src/utils/near.d.ts +0 -20
  537. package/dist/types/shared-ts/src/utils/normalize.d.ts +0 -2
  538. package/dist/types/shared-ts/src/utils/registrationSetupOperation.d.ts +3 -0
  539. package/dist/types/shared-ts/src/utils/validation.d.ts +1 -3
  540. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +0 -1
  541. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +3 -0
  542. package/dist/types/shared-ts/src/utils/wireSchema.d.ts +0 -2
  543. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +0 -1
  544. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +1 -10
  545. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +1 -3
  546. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +5 -21
  547. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.d.ts +1 -1
  548. package/dist/types/wallet/src/SeamsWeb/operations/auth/walletUnlockSubject.d.ts +0 -3
  549. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/emailOtp/challenge.d.ts +0 -4
  550. package/dist/types/wallet/src/SeamsWeb/operations/devices/deviceLinkingResume.d.ts +0 -1
  551. package/dist/types/wallet/src/SeamsWeb/operations/devices/linkDeviceFlow.d.ts +2 -0
  552. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +0 -10
  553. package/dist/types/wallet/src/SeamsWeb/operations/session/thresholdEcdsaProvisioning.d.ts +1 -2
  554. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +0 -2
  555. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +1 -1
  556. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/domain.d.ts +0 -8
  557. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.d.ts +1 -2
  558. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  559. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/hostedWalletSeamsSession.d.ts +0 -1
  560. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.d.ts +17 -0
  561. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +11 -3
  562. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +15 -0
  563. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionReconciliation.d.ts +3 -3
  564. package/dist/types/wallet/src/advanced.d.ts +1 -1
  565. package/dist/types/wallet/src/core/browser/walletIframe/events.d.ts +0 -2
  566. package/dist/types/wallet/src/core/indexedDB/index.d.ts +3 -5
  567. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +0 -30
  568. package/dist/types/wallet/src/core/indexedDB/pendingWalletRecoveryCommit.d.ts +1 -4
  569. package/dist/types/wallet/src/core/indexedDB/schemaNames.d.ts +0 -22
  570. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.d.ts +1 -1
  571. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.d.ts +1 -1
  572. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.d.ts +0 -1
  573. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/registrationSetup.d.ts +42 -0
  574. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/signingSessionSeals.d.ts +1 -5
  575. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.d.ts +5 -1
  576. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  577. package/dist/types/wallet/src/core/platform/browser/createBrowserPlatformRuntime.d.ts +1 -6
  578. package/dist/types/wallet/src/core/platform/ecdsaRoleLocalRecords.d.ts +0 -15
  579. package/dist/types/wallet/src/core/platform/index.d.ts +4 -4
  580. package/dist/types/wallet/src/core/platform/ports.d.ts +1 -51
  581. package/dist/types/wallet/src/core/platform/runtime.d.ts +0 -2
  582. package/dist/types/wallet/src/core/platform/secretSources.d.ts +0 -29
  583. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +1 -1
  584. package/dist/types/wallet/src/core/rpcClients/relayer/passkeyCustodyEnvelope.d.ts +0 -6
  585. package/dist/types/wallet/src/core/rpcClients/relayer/thresholdEcdsa.d.ts +0 -1
  586. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +2 -19
  587. package/dist/types/wallet/src/core/signingEngine/assembly/ports/shared.d.ts +0 -1
  588. package/dist/types/wallet/src/core/signingEngine/assembly/ports/warmSigning.d.ts +0 -2
  589. package/dist/types/wallet/src/core/signingEngine/assembly/warmup.d.ts +0 -1
  590. package/dist/types/wallet/src/core/signingEngine/chains/near/nearSignerWasm.d.ts +0 -10
  591. package/dist/types/wallet/src/core/signingEngine/flows/recovery/keyExportConfirmation.d.ts +0 -15
  592. package/dist/types/wallet/src/core/signingEngine/flows/registration/accountLifecycle.d.ts +1 -11
  593. package/dist/types/wallet/src/core/signingEngine/flows/registration/public.d.ts +1 -9
  594. package/dist/types/wallet/src/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.d.ts +0 -2
  595. package/dist/types/wallet/src/core/signingEngine/flows/shared/signingStateMachine.d.ts +0 -6
  596. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.d.ts +2 -10
  597. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.d.ts +1 -4
  598. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.d.ts +0 -5
  599. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingMaterials.d.ts +0 -4
  600. package/dist/types/wallet/src/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.d.ts +0 -9
  601. package/dist/types/wallet/src/core/signingEngine/interfaces/index.d.ts +0 -1
  602. package/dist/types/wallet/src/core/signingEngine/nonce/NonceCoordinator.d.ts +1 -1
  603. package/dist/types/wallet/src/core/signingEngine/nonce/nonceTypes.d.ts +0 -9
  604. package/dist/types/wallet/src/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.d.ts +0 -3
  605. package/dist/types/wallet/src/core/signingEngine/session/authority/authorityOperationResolver.d.ts +1 -24
  606. package/dist/types/wallet/src/core/signingEngine/session/availability/readiness.d.ts +0 -2
  607. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaLogin.d.ts +0 -3
  608. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ecdsaRecovery.d.ts +0 -5
  609. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/ed25519ExportContext.d.ts +0 -1
  610. package/dist/types/wallet/src/core/signingEngine/session/emailOtp/secretEscrow.d.ts +0 -1
  611. package/dist/types/wallet/src/core/signingEngine/session/identity/clientSessionPersistenceState.d.ts +0 -6
  612. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.d.ts +0 -3
  613. package/dist/types/wallet/src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.d.ts +0 -3
  614. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +0 -3
  615. package/dist/types/wallet/src/core/signingEngine/session/identity/exactWalletSessionCredential.d.ts +0 -3
  616. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +0 -6
  617. package/dist/types/wallet/src/core/signingEngine/session/identity/walletUnlockSubject.d.ts +0 -8
  618. package/dist/types/wallet/src/core/signingEngine/session/keyMaterialBrands.d.ts +1 -4
  619. package/dist/types/wallet/src/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.d.ts +1 -1
  620. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.d.ts +0 -3
  621. package/dist/types/wallet/src/core/signingEngine/session/operationState/authorizationAdmission.d.ts +1 -1
  622. package/dist/types/wallet/src/core/signingEngine/session/operationState/preparedOperation.d.ts +0 -2
  623. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +0 -1
  624. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.d.ts +0 -2
  625. package/dist/types/wallet/src/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.d.ts +1 -10
  626. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionRecords.d.ts +2 -2
  627. package/dist/types/wallet/src/core/signingEngine/session/persistence/sealedSessionTransportAuth.d.ts +0 -5
  628. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +0 -2
  629. package/dist/types/wallet/src/core/signingEngine/session/routerAbSigningWalletSession.d.ts +1 -1
  630. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.d.ts +0 -105
  631. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/public.d.ts +0 -1
  632. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.d.ts +0 -12
  633. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/transitions.d.ts +0 -2
  634. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/types.typecheck.d.ts +1 -10
  635. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodRunners.d.ts +1 -5
  636. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.d.ts +1 -2
  637. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.d.ts +0 -1
  638. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -19
  639. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/types.d.ts +0 -10
  640. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.d.ts +1 -15
  641. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/activation.d.ts +0 -4
  642. package/dist/types/wallet/src/core/signingEngine/threshold/ecdsa/bootstrapSession.d.ts +0 -4
  643. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/connectSession.d.ts +0 -1
  644. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoClient.d.ts +1 -8
  645. package/dist/types/wallet/src/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.d.ts +1 -4
  646. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.d.ts +0 -1
  647. package/dist/types/wallet/src/core/signingEngine/walletCustody/emailOtpLink.d.ts +0 -1
  648. package/dist/types/wallet/src/core/signingEngine/walletCustody/openCustodyCache.d.ts +0 -3
  649. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +0 -3
  650. package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +0 -1
  651. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/walletOriginWebAuthn.d.ts +8 -0
  652. package/dist/types/wallet/src/core/signingEngine/workerManager/SignerWorkerManager.d.ts +0 -2
  653. package/dist/types/wallet/src/core/signingEngine/workerManager/ecdsaClientWorkerChannels.d.ts +0 -8
  654. package/dist/types/wallet/src/core/signingEngine/workerManager/validation.d.ts +1 -1
  655. package/dist/types/wallet/src/core/signingEngine/workerManager/workerTypes.d.ts +6 -109
  656. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/device-linking-key/requests.d.ts +0 -5
  657. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/crypto.d.ts +0 -1
  658. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/custodyRestore.d.ts +0 -8
  659. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/otpVerification.d.ts +0 -1
  660. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/payloadParsing.d.ts +0 -2
  661. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/unlock.d.ts +0 -1
  662. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/near-signer.worker.d.ts +3 -31
  663. package/dist/types/wallet/src/core/types/accountIds.d.ts +1 -1
  664. package/dist/types/wallet/src/core/types/index.d.ts +0 -18
  665. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +1 -2
  666. package/dist/types/wallet/src/core/types/secure-confirm-worker.d.ts +0 -5
  667. package/dist/types/wallet/src/core/types/signer-worker.d.ts +75 -134
  668. package/dist/types/wallet/src/react/components/AccountMenuButton/Toggle.d.ts +0 -15
  669. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +0 -19
  670. package/dist/types/wallet/src/utils/qrScanner.d.ts +1 -21
  671. package/dist/workers/device-linking-key.worker.js +387 -1952
  672. package/dist/workers/ecdsa-derivation-client.worker.js +1523 -2668
  673. package/dist/workers/ecdsa-online-client.worker.js +1 -273
  674. package/dist/workers/ecdsa-presign-client.worker.js +1 -273
  675. package/dist/workers/email-otp.worker.js +228 -2103
  676. package/dist/workers/email_otp_runtime_bg.wasm +0 -0
  677. package/dist/workers/evm-crypto.worker.js +0 -188
  678. package/dist/workers/evm_crypto.wasm +0 -0
  679. package/dist/workers/evm_crypto_bg.wasm +0 -0
  680. package/dist/workers/near-signer.worker.js +16 -718
  681. package/dist/workers/near_signer.wasm +0 -0
  682. package/dist/workers/passkey-confirm.worker.js +0 -134
  683. package/dist/workers/passkey-mpc-export.worker.js +149 -506
  684. package/dist/workers/passkey-mpc-session.worker.js +0 -134
  685. package/dist/workers/router_ab_ecdsa_client_bg.wasm +0 -0
  686. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  687. package/dist/workers/shamir3pass.worker.js +0 -134
  688. package/dist/workers/shamir3pass_runtime_bg.wasm +0 -0
  689. package/dist/workers/tempo-signer.worker.js +0 -134
  690. package/dist/workers/tempo_signer.wasm +0 -0
  691. package/dist/workers/tempo_signer_bg.wasm +0 -0
  692. package/dist/workers/wallet-custody-ceremony.worker.js +135 -1635
  693. package/dist/workers/wallet_custody_ceremony.js +0 -14
  694. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  695. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  696. package/package.json +1 -14
  697. package/dist/esm/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  698. package/dist/esm/components/AccountMenuButton/AccountsSection.css +0 -81
  699. package/dist/esm/components/AccountMenuButton/ExportKeysSection.css +0 -96
  700. package/dist/esm/components/AccountMenuButton/LinkedDevicesModal.css +0 -612
  701. package/dist/esm/components/AccountMenuButton/MenuItem.css +0 -198
  702. package/dist/esm/components/AccountMenuButton/ProfileDropdown.css +0 -80
  703. package/dist/esm/components/AccountMenuButton/TransactionSettingsSection.css +0 -107
  704. package/dist/esm/components/AccountMenuButton/UserAccountButton.css +0 -177
  705. package/dist/esm/components/AccountMenuButton/WalletSettingsLayout.css +0 -456
  706. package/dist/esm/components/AccountMenuButton/Web3AuthProfileButton.css +0 -23
  707. package/dist/esm/components/AccountMenuButton/icons/TouchIcon.css +0 -46
  708. package/dist/esm/components/QRCodeScanner.css +0 -487
  709. package/dist/esm/components/ShowQRCode.css +0 -331
  710. package/dist/esm/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.js +0 -236
  711. package/dist/esm/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  712. package/dist/esm/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  713. package/dist/esm/plugins/shared-ts/src/utils/base58.js +0 -1
  714. package/dist/esm/plugins/shared-ts/src/utils/near.js +0 -1
  715. package/dist/esm/plugins/shared-ts/src/utils/validation.js +0 -2
  716. package/dist/esm/react/SeamsWeb/SeamsWeb.js +0 -1918
  717. package/dist/esm/react/SeamsWeb/assembly/browserSigningSurfaceAssembly.js +0 -817
  718. package/dist/esm/react/SeamsWeb/assembly/browserWorkerWarmupPolicy.js +0 -31
  719. package/dist/esm/react/SeamsWeb/assembly/configureBrowserIndexedDB.js +0 -10
  720. package/dist/esm/react/SeamsWeb/assembly/createBrowserRecoveryPublicDeps.js +0 -95
  721. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningRuntime.js +0 -34
  722. package/dist/esm/react/SeamsWeb/assembly/createBrowserSigningStores.js +0 -39
  723. package/dist/esm/react/SeamsWeb/assembly/createBrowserStepUpRuntime.js +0 -34
  724. package/dist/esm/react/SeamsWeb/assembly/createBrowserWarmSessionPublicDeps.js +0 -31
  725. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeOverlayState.js +0 -9
  726. package/dist/esm/react/SeamsWeb/assembly/createWalletIframeRouter.js +0 -44
  727. package/dist/esm/react/SeamsWeb/assembly/initializeBrowserSigningRuntime.js +0 -19
  728. package/dist/esm/react/SeamsWeb/assembly/runtimeConfig.js +0 -12
  729. package/dist/esm/react/SeamsWeb/operations/auth/login.js +0 -4408
  730. package/dist/esm/react/SeamsWeb/operations/auth/scheduleEcdsaSessionPresignaturePrefill.js +0 -41
  731. package/dist/esm/react/SeamsWeb/operations/auth/scheduleLinkedDevicePresignaturePrefill.js +0 -64
  732. package/dist/esm/react/SeamsWeb/operations/auth/walletAuth.js +0 -142
  733. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockEcdsaSubject.js +0 -33
  734. package/dist/esm/react/SeamsWeb/operations/auth/walletUnlockSubject.js +0 -294
  735. package/dist/esm/react/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.js +0 -72
  736. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/addEmailOtp.js +0 -191
  737. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/challenge.js +0 -247
  738. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/googleEmailOtpWalletAuthFlow.js +0 -572
  739. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/localEmailOtpProjection.js +0 -69
  740. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationAuthority.js +0 -62
  741. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/registrationOffer.js +0 -69
  742. package/dist/esm/react/SeamsWeb/operations/authMethods/emailOtp/walletActivation.js +0 -95
  743. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/addPasskey.js +0 -260
  744. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/ecdsaBootstrap.js +0 -17
  745. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.js +0 -34
  746. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localPasskeyProjection.js +0 -117
  747. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/localUnlock.js +0 -16
  748. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/loginAssertion.js +0 -25
  749. package/dist/esm/react/SeamsWeb/operations/authMethods/passkey/registrationAuthority.js +0 -84
  750. package/dist/esm/react/SeamsWeb/operations/authMethods/revokeAuthMethod.js +0 -205
  751. package/dist/esm/react/SeamsWeb/operations/authMethods/sourcePasskeyProof.js +0 -12
  752. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingAuthorityInstallation.js +0 -444
  753. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingComposition.js +0 -106
  754. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingEd25519ExportRoot.js +0 -194
  755. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingHttpTransport.js +0 -524
  756. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingOwnerTransport.js +0 -135
  757. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingResume.js +0 -215
  758. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetCredential.js +0 -63
  759. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingTargetEd25519ExportRoot.js +0 -61
  760. package/dist/esm/react/SeamsWeb/operations/devices/deviceLinkingWorkerChannels.js +0 -337
  761. package/dist/esm/react/SeamsWeb/operations/devices/linkDevice.js +0 -75
  762. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlow.js +0 -1358
  763. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceFlowSupport.js +0 -143
  764. package/dist/esm/react/SeamsWeb/operations/devices/linkDeviceTargetActivation.js +0 -119
  765. package/dist/esm/react/SeamsWeb/operations/devices/scanDevice.js +0 -384
  766. package/dist/esm/react/SeamsWeb/operations/devices/walletHostComposition.js +0 -130
  767. package/dist/esm/react/SeamsWeb/operations/devices/walletHostOwnerAuthority.js +0 -191
  768. package/dist/esm/react/SeamsWeb/operations/evm/index.js +0 -35
  769. package/dist/esm/react/SeamsWeb/operations/near/actions.js +0 -484
  770. package/dist/esm/react/SeamsWeb/operations/near/commandSubject.js +0 -14
  771. package/dist/esm/react/SeamsWeb/operations/near/delegateAction.js +0 -247
  772. package/dist/esm/react/SeamsWeb/operations/near/index.js +0 -37
  773. package/dist/esm/react/SeamsWeb/operations/near/signNEP413.js +0 -117
  774. package/dist/esm/react/SeamsWeb/operations/near/signingEventHelpers.js +0 -15
  775. package/dist/esm/react/SeamsWeb/operations/recovery/accountSync.js +0 -21
  776. package/dist/esm/react/SeamsWeb/operations/recovery/recoveryWalletBinding.js +0 -43
  777. package/dist/esm/react/SeamsWeb/operations/recovery/syncAccount.js +0 -914
  778. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCodeBackup.js +0 -100
  779. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryCommit.js +0 -477
  780. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryDurablePayload.js +0 -383
  781. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryJournal.js +0 -118
  782. package/dist/esm/react/SeamsWeb/operations/recovery/walletRecoveryRotation.js +0 -214
  783. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecovery.js +0 -184
  784. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryUnlock.js +0 -247
  785. package/dist/esm/react/SeamsWeb/operations/registration/pendingEcdsaRegistrationRecoveryValidation.js +0 -134
  786. package/dist/esm/react/SeamsWeb/operations/registration/pendingRegistrationRecovery.js +0 -363
  787. package/dist/esm/react/SeamsWeb/operations/registration/registration.js +0 -3818
  788. package/dist/esm/react/SeamsWeb/operations/registration/registrationEd25519Yao.js +0 -166
  789. package/dist/esm/react/SeamsWeb/operations/registration/registrationSignerSet.js +0 -60
  790. package/dist/esm/react/SeamsWeb/operations/registration/registrationStrictEcdsa.js +0 -343
  791. package/dist/esm/react/SeamsWeb/operations/registration/registrationTerminalCommit.js +0 -296
  792. package/dist/esm/react/SeamsWeb/operations/registration/registrationTiming.js +0 -682
  793. package/dist/esm/react/SeamsWeb/operations/session/thresholdEcdsaProvisioning.js +0 -40
  794. package/dist/esm/react/SeamsWeb/operations/session/thresholdWarmSessionBootstrap.js +0 -20
  795. package/dist/esm/react/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +0 -568
  796. package/dist/esm/react/SeamsWeb/operations/tempo/feeTokenPreference.js +0 -67
  797. package/dist/esm/react/SeamsWeb/operations/tempo/index.js +0 -39
  798. package/dist/esm/react/SeamsWeb/publicApi/auth.js +0 -24
  799. package/dist/esm/react/SeamsWeb/publicApi/awaitNearReady.js +0 -72
  800. package/dist/esm/react/SeamsWeb/publicApi/capabilitySelection.js +0 -63
  801. package/dist/esm/react/SeamsWeb/publicApi/chainTargets.js +0 -48
  802. package/dist/esm/react/SeamsWeb/publicApi/createPublicApi.js +0 -133
  803. package/dist/esm/react/SeamsWeb/publicApi/currentWallet.js +0 -46
  804. package/dist/esm/react/SeamsWeb/publicApi/devices.js +0 -83
  805. package/dist/esm/react/SeamsWeb/publicApi/evm.js +0 -103
  806. package/dist/esm/react/SeamsWeb/publicApi/keyExport.js +0 -90
  807. package/dist/esm/react/SeamsWeb/publicApi/near.js +0 -449
  808. package/dist/esm/react/SeamsWeb/publicApi/preferences.js +0 -61
  809. package/dist/esm/react/SeamsWeb/publicApi/recovery.js +0 -19
  810. package/dist/esm/react/SeamsWeb/publicApi/tempo.js +0 -244
  811. package/dist/esm/react/SeamsWeb/publicApi/transactionReview.js +0 -12
  812. package/dist/esm/react/SeamsWeb/publicApi/types.js +0 -10
  813. package/dist/esm/react/SeamsWeb/signingSurface/BrowserSigningSurface.js +0 -3917
  814. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-controller.js +0 -530
  815. package/dist/esm/react/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +0 -417
  816. package/dist/esm/react/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +0 -134
  817. package/dist/esm/react/SeamsWeb/walletIframe/client/router.js +0 -3368
  818. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/domain.js +0 -288
  819. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/geometry.js +0 -128
  820. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/renderer.js +0 -119
  821. package/dist/esm/react/SeamsWeb/walletIframe/client/surface/transactionSurfaceQueue.js +0 -125
  822. package/dist/esm/react/SeamsWeb/walletIframe/client/transactionReviewReservation.js +0 -96
  823. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/IframeTransport.js +0 -252
  824. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +0 -71
  825. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/iframe-transport-handshake.js +0 -211
  826. package/dist/esm/react/SeamsWeb/walletIframe/client/transport/webauthn-bridge.js +0 -99
  827. package/dist/esm/react/SeamsWeb/walletIframe/coordinator.js +0 -235
  828. package/dist/esm/react/SeamsWeb/walletIframe/host/restoredSessionPresignaturePrefill.js +0 -29
  829. package/dist/esm/react/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +0 -158
  830. package/dist/esm/react/SeamsWeb/walletIframe/shared/exactSessionState.js +0 -605
  831. package/dist/esm/react/SeamsWeb/walletIframe/shared/is-dev-host.js +0 -11
  832. package/dist/esm/react/SeamsWeb/walletIframe/shared/messages.js +0 -588
  833. package/dist/esm/react/SeamsWeb/walletIframe/shared/transactionReview.js +0 -83
  834. package/dist/esm/react/SeamsWeb/walletIframe/shared/unlockOptions.js +0 -54
  835. package/dist/esm/react/base-styles.js +0 -13
  836. package/dist/esm/react/build-paths.js +0 -109
  837. package/dist/esm/react/config.js +0 -37
  838. package/dist/esm/react/core/accountData/near/accountProjection.js +0 -119
  839. package/dist/esm/react/core/accountData/near/accountRefs.js +0 -21
  840. package/dist/esm/react/core/accountData/near/keyMaterial.js +0 -171
  841. package/dist/esm/react/core/accountData/near/profileId.js +0 -24
  842. package/dist/esm/react/core/browser/walletIframe/csp-stylesheet.js +0 -189
  843. package/dist/esm/react/core/browser/walletIframe/events.js +0 -10
  844. package/dist/esm/react/core/browser/walletIframe/host-mode.js +0 -19
  845. package/dist/esm/react/core/browser/walletIframe/hostVariant.js +0 -16
  846. package/dist/esm/react/core/config/chains.js +0 -90
  847. package/dist/esm/react/core/config/configBuilder.js +0 -231
  848. package/dist/esm/react/core/config/configHelpers.js +0 -183
  849. package/dist/esm/react/core/config/defaultConfigs.js +0 -120
  850. package/dist/esm/react/core/config/defineConfig.js +0 -48
  851. package/dist/esm/react/core/config/managedRuntimeScope.js +0 -16
  852. package/dist/esm/react/core/indexedDB/accountKeyMaterial.js +0 -68
  853. package/dist/esm/react/core/indexedDB/accountSignerLifecycle.js +0 -143
  854. package/dist/esm/react/core/indexedDB/index.js +0 -60
  855. package/dist/esm/react/core/indexedDB/keyMaterialEnvelope.js +0 -69
  856. package/dist/esm/react/core/indexedDB/lastProfileState.js +0 -22
  857. package/dist/esm/react/core/indexedDB/linkedAuthoritySignerMaterial.js +0 -291
  858. package/dist/esm/react/core/indexedDB/nonceLaneCoordinationStore.js +0 -115
  859. package/dist/esm/react/core/indexedDB/normalization.js +0 -24
  860. package/dist/esm/react/core/indexedDB/pendingWalletRecoveryCommit.js +0 -477
  861. package/dist/esm/react/core/indexedDB/pendingWalletRegistrationCommit.js +0 -745
  862. package/dist/esm/react/core/indexedDB/profileAccountProjection.js +0 -70
  863. package/dist/esm/react/core/indexedDB/schemaNames.js +0 -845
  864. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestLookups.js +0 -209
  865. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestRecords.js +0 -848
  866. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaCapabilityManifestStore.js +0 -1215
  867. package/dist/esm/react/core/indexedDB/seamsWalletDB/ecdsaClientPresignatures.js +0 -235
  868. package/dist/esm/react/core/indexedDB/seamsWalletDB/manager.js +0 -140
  869. package/dist/esm/react/core/indexedDB/seamsWalletDB/pendingWalletRecoveryCodeBackup.js +0 -145
  870. package/dist/esm/react/core/indexedDB/seamsWalletDB/repositories.js +0 -4747
  871. package/dist/esm/react/core/indexedDB/seamsWalletDB/schema.js +0 -23
  872. package/dist/esm/react/core/indexedDB/seamsWalletDB/signingSessionSeals.js +0 -205
  873. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletCustodyEcdsaContinuity.js +0 -198
  874. package/dist/esm/react/core/indexedDB/seamsWalletDB/walletSessionAuthorizationStore.js +0 -569
  875. package/dist/esm/react/core/indexedDB/singletons.js +0 -7
  876. package/dist/esm/react/core/indexedDB/unifiedIndexedDBManager.js +0 -578
  877. package/dist/esm/react/core/indexedDB/walletCustodyEd25519MaterialRecord.js +0 -60
  878. package/dist/esm/react/core/platform/browser/createBrowserPlatformRuntime.js +0 -552
  879. package/dist/esm/react/core/platform/secretSources.js +0 -111
  880. package/dist/esm/react/core/platform/signerCoreCommandAdapters.js +0 -122
  881. package/dist/esm/react/core/rpcClients/evm/EvmClient.js +0 -549
  882. package/dist/esm/react/core/rpcClients/evm/nonceBackend.js +0 -279
  883. package/dist/esm/react/core/rpcClients/near/NearClient.js +0 -56
  884. package/dist/esm/react/core/rpcClients/near/NearRpcError.js +0 -105
  885. package/dist/esm/react/core/rpcClients/near/rpcCalls.js +0 -376
  886. package/dist/esm/react/core/rpcClients/relayer/ownerWalletExecutionLanePreflight.js +0 -67
  887. package/dist/esm/react/core/rpcClients/relayer/passkeyCustodyEnvelope.js +0 -228
  888. package/dist/esm/react/core/rpcClients/relayer/registrationSignerSetRequest.js +0 -8
  889. package/dist/esm/react/core/rpcClients/relayer/relayerHttp.js +0 -26
  890. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigning.js +0 -812
  891. package/dist/esm/react/core/rpcClients/relayer/routerAbNormalSigningValidation.js +0 -23
  892. package/dist/esm/react/core/rpcClients/relayer/sealedRefreshCapabilities.js +0 -148
  893. package/dist/esm/react/core/rpcClients/relayer/thresholdEcdsa.js +0 -237
  894. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryFinalize.js +0 -174
  895. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryGoogleEmailOtp.js +0 -161
  896. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryPrepare.js +0 -295
  897. package/dist/esm/react/core/rpcClients/relayer/walletRecoveryRotate.js +0 -311
  898. package/dist/esm/react/core/rpcClients/relayer/walletRegistration.js +0 -2349
  899. package/dist/esm/react/core/rpcClients/relayer/walletRegistrationTerminalResponse.js +0 -719
  900. package/dist/esm/react/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +0 -214
  901. package/dist/esm/react/core/runtime/createSigningRuntime.js +0 -100
  902. package/dist/esm/react/core/signingEngine/assembly/createManagers.js +0 -80
  903. package/dist/esm/react/core/signingEngine/assembly/createPorts.js +0 -54
  904. package/dist/esm/react/core/signingEngine/assembly/ports/emailOtp.js +0 -30
  905. package/dist/esm/react/core/signingEngine/assembly/ports/evmFamily.js +0 -73
  906. package/dist/esm/react/core/signingEngine/assembly/ports/near.js +0 -21
  907. package/dist/esm/react/core/signingEngine/assembly/ports/recovery.js +0 -75
  908. package/dist/esm/react/core/signingEngine/assembly/ports/registration.js +0 -22
  909. package/dist/esm/react/core/signingEngine/assembly/ports/session.js +0 -25
  910. package/dist/esm/react/core/signingEngine/assembly/ports/shared.js +0 -40
  911. package/dist/esm/react/core/signingEngine/assembly/ports/stepUpRuntime.js +0 -67
  912. package/dist/esm/react/core/signingEngine/assembly/ports/warmSigning.js +0 -92
  913. package/dist/esm/react/core/signingEngine/assembly/warmup.js +0 -68
  914. package/dist/esm/react/core/signingEngine/chains/evm/bytes.js +0 -22
  915. package/dist/esm/react/core/signingEngine/chains/evm/display/calldata.js +0 -25
  916. package/dist/esm/react/core/signingEngine/chains/evm/display/evmTx.js +0 -119
  917. package/dist/esm/react/core/signingEngine/chains/evm/display/functionSelectors.js +0 -72
  918. package/dist/esm/react/core/signingEngine/chains/evm/display/gas.js +0 -19
  919. package/dist/esm/react/core/signingEngine/chains/evm/display/normalization.js +0 -23
  920. package/dist/esm/react/core/signingEngine/chains/evm/evmAdapter.js +0 -44
  921. package/dist/esm/react/core/signingEngine/chains/evm/evmCryptoWasm.js +0 -198
  922. package/dist/esm/react/core/signingEngine/chains/near/display.js +0 -248
  923. package/dist/esm/react/core/signingEngine/chains/near/nearSignerWasm.js +0 -170
  924. package/dist/esm/react/core/signingEngine/chains/near/payloads.js +0 -58
  925. package/dist/esm/react/core/signingEngine/chains/tempo/display.js +0 -130
  926. package/dist/esm/react/core/signingEngine/chains/tempo/feeToken.js +0 -187
  927. package/dist/esm/react/core/signingEngine/chains/tempo/tempoAdapter.js +0 -49
  928. package/dist/esm/react/core/signingEngine/chains/tempo/tempoSignerWasm.js +0 -90
  929. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaDerivationExport.js +0 -428
  930. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportFlow.js +0 -660
  931. package/dist/esm/react/core/signingEngine/flows/recovery/ecdsaExportMaterial.js +0 -250
  932. package/dist/esm/react/core/signingEngine/flows/recovery/ed25519YaoExportFlow.js +0 -353
  933. package/dist/esm/react/core/signingEngine/flows/recovery/exportKeypairOperation.js +0 -213
  934. package/dist/esm/react/core/signingEngine/flows/recovery/exportLaneSelection.js +0 -283
  935. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportConfirmation.js +0 -325
  936. package/dist/esm/react/core/signingEngine/flows/recovery/keyExportFlow.js +0 -81
  937. package/dist/esm/react/core/signingEngine/flows/recovery/passkeyEd25519YaoRecovery.js +0 -192
  938. package/dist/esm/react/core/signingEngine/flows/recovery/public.js +0 -26
  939. package/dist/esm/react/core/signingEngine/flows/recovery/stepUpAuthorization.js +0 -139
  940. package/dist/esm/react/core/signingEngine/flows/registration/accountLifecycle.js +0 -1098
  941. package/dist/esm/react/core/signingEngine/flows/registration/nearProvisioningRegistry.js +0 -79
  942. package/dist/esm/react/core/signingEngine/flows/registration/public.js +0 -85
  943. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaRegistrationSessions.js +0 -77
  944. package/dist/esm/react/core/signingEngine/flows/registration/services/ecdsaWalletRecords.js +0 -15
  945. package/dist/esm/react/core/signingEngine/flows/registration/services/passkeyEd25519YaoAddSigner.js +0 -83
  946. package/dist/esm/react/core/signingEngine/flows/registration/services/registrationAccounts.js +0 -30
  947. package/dist/esm/react/core/signingEngine/flows/registration/session.js +0 -24
  948. package/dist/esm/react/core/signingEngine/flows/shared/signingConfirmation.js +0 -194
  949. package/dist/esm/react/core/signingEngine/flows/shared/signingStateMachine.js +0 -485
  950. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/accountAuth.js +0 -12
  951. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/addresses.js +0 -10
  952. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/authPlanning.js +0 -139
  953. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaLanes.js +0 -102
  954. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +0 -233
  955. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpPublic.js +0 -123
  956. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/emailOtpSigningSession.js +0 -227
  957. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/errors.js +0 -127
  958. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/events.js +0 -39
  959. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/evmNonceLifecycle.js +0 -49
  960. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/executorThresholdState.js +0 -22
  961. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshAuthRetryPolicy.js +0 -98
  962. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/freshWalletSessionRetry.js +0 -76
  963. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceLifecycleAdapter.js +0 -245
  964. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/nonceResolution.js +0 -91
  965. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/operationIds.js +0 -33
  966. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/preparedSigning.js +0 -376
  967. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/readySecp256k1Material.js +0 -191
  968. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/requireEvmFamilyStepUpAuth.js +0 -128
  969. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +0 -510
  970. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmFamilyWithUiConfirmForTempo.js +0 -65
  971. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signEvmWithUiConfirm.js +0 -26
  972. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signatureUses.js +0 -12
  973. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signerLoader.js +0 -25
  974. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/ecdsaDerivationClientSigningMaterialSource.js +0 -82
  975. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/secp256k1.js +0 -182
  976. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signers/webauthnP256.js +0 -84
  977. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlow.js +0 -633
  978. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +0 -392
  979. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/stepUpAuthorization.js +0 -56
  980. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/tempoNonceLifecycle.js +0 -47
  981. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/thresholdAdmission.js +0 -87
  982. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/transactionExecutor.js +0 -140
  983. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/types.js +0 -20
  984. package/dist/esm/react/core/signingEngine/flows/signEvmFamily/webauthnP256KeyRef.js +0 -33
  985. package/dist/esm/react/core/signingEngine/flows/signNear/implicitAccountFunding.js +0 -202
  986. package/dist/esm/react/core/signingEngine/flows/signNear/nearSigningFlow.js +0 -56
  987. package/dist/esm/react/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +0 -102
  988. package/dist/esm/react/core/signingEngine/flows/signNear/shared/confirmationProgress.js +0 -28
  989. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoCapabilityResolution.js +0 -101
  990. package/dist/esm/react/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +0 -822
  991. package/dist/esm/react/core/signingEngine/flows/signNear/shared/implicitAccountFundingPort.js +0 -24
  992. package/dist/esm/react/core/signingEngine/flows/signNear/shared/operationStepUpPreparation.js +0 -68
  993. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signatureOnlySigning.js +0 -343
  994. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingMaterials.js +0 -25
  995. package/dist/esm/react/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +0 -138
  996. package/dist/esm/react/core/signingEngine/flows/signNear/signDelegate.js +0 -290
  997. package/dist/esm/react/core/signingEngine/flows/signNear/signNear.js +0 -1238
  998. package/dist/esm/react/core/signingEngine/flows/signNear/signNep413.js +0 -144
  999. package/dist/esm/react/core/signingEngine/flows/signNear/signTransactions.js +0 -897
  1000. package/dist/esm/react/core/signingEngine/flows/signNear/signatureUses.js +0 -12
  1001. package/dist/esm/react/core/signingEngine/flows/signNear/stepUpAuthorization.js +0 -42
  1002. package/dist/esm/react/core/signingEngine/interfaces/accountAuthMetadata.js +0 -14
  1003. package/dist/esm/react/core/signingEngine/interfaces/ecdsaChainTarget.js +0 -142
  1004. package/dist/esm/react/core/signingEngine/interfaces/operationStepUpPreparation.js +0 -18
  1005. package/dist/esm/react/core/signingEngine/nonce/NonceCoordinator.js +0 -1026
  1006. package/dist/esm/react/core/signingEngine/nonce/evmNonceLane.js +0 -182
  1007. package/dist/esm/react/core/signingEngine/nonce/nearNonceLane.js +0 -669
  1008. package/dist/esm/react/core/signingEngine/nonce/nearNonceLaneIdentity.js +0 -24
  1009. package/dist/esm/react/core/signingEngine/nonce/nonceCoordinationRecordBoundary.js +0 -216
  1010. package/dist/esm/react/core/signingEngine/nonce/nonceDiagnostics.js +0 -232
  1011. package/dist/esm/react/core/signingEngine/nonce/nonceLaneKeys.js +0 -110
  1012. package/dist/esm/react/core/signingEngine/nonce/nonceLeaseState.js +0 -128
  1013. package/dist/esm/react/core/signingEngine/nonce/nonceTypes.js +0 -59
  1014. package/dist/esm/react/core/signingEngine/nonce/nonceUtils.js +0 -33
  1015. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/httpRequest.js +0 -74
  1016. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/poolFillRoutes.js +0 -217
  1017. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignaturePool.js +0 -1218
  1018. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/presignatureRefillProgress.js +0 -53
  1019. package/dist/esm/react/core/signingEngine/routerAb/ecdsaDerivation/signingMaterialRef.js +0 -22
  1020. package/dist/esm/react/core/signingEngine/session/SigningSessionCoordinator.js +0 -347
  1021. package/dist/esm/react/core/signingEngine/session/authority/authorityOperationResolver.js +0 -165
  1022. package/dist/esm/react/core/signingEngine/session/availability/availableSigningLanes.js +0 -1064
  1023. package/dist/esm/react/core/signingEngine/session/availability/canonicalLaneInventory.js +0 -127
  1024. package/dist/esm/react/core/signingEngine/session/availability/clientSessionExpiryInvalidator.js +0 -72
  1025. package/dist/esm/react/core/signingEngine/session/availability/persistedAvailableSigningLanes.js +0 -214
  1026. package/dist/esm/react/core/signingEngine/session/availability/readiness.js +0 -464
  1027. package/dist/esm/react/core/signingEngine/session/emailOtp/EmailOtpWalletSessionCoordinator.js +0 -131
  1028. package/dist/esm/react/core/signingEngine/session/emailOtp/challengeDelivery.js +0 -56
  1029. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaBootstrapCommit.js +0 -106
  1030. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLifecycleRuntime.js +0 -50
  1031. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaLogin.js +0 -936
  1032. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaPublication.js +0 -414
  1033. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaRecovery.js +0 -268
  1034. package/dist/esm/react/core/signingEngine/session/emailOtp/ecdsaSigningSessionAuthority.js +0 -95
  1035. package/dist/esm/react/core/signingEngine/session/emailOtp/ed25519ExportContext.js +0 -376
  1036. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecovery.js +0 -286
  1037. package/dist/esm/react/core/signingEngine/session/emailOtp/exportRecoveryRuntime.js +0 -50
  1038. package/dist/esm/react/core/signingEngine/session/emailOtp/persistedSnapshot.js +0 -22
  1039. package/dist/esm/react/core/signingEngine/session/emailOtp/publicTypes.js +0 -38
  1040. package/dist/esm/react/core/signingEngine/session/emailOtp/routePlan.js +0 -60
  1041. package/dist/esm/react/core/signingEngine/session/emailOtp/runtimeConfig.js +0 -24
  1042. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRefreshPolicy.js +0 -49
  1043. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRestoreOrchestrator.js +0 -234
  1044. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedRuntimePurpose.js +0 -16
  1045. package/dist/esm/react/core/signingEngine/session/emailOtp/sealedSessionRegistry.js +0 -40
  1046. package/dist/esm/react/core/signingEngine/session/emailOtp/status.js +0 -72
  1047. package/dist/esm/react/core/signingEngine/session/emailOtp/walletUnlock.js +0 -168
  1048. package/dist/esm/react/core/signingEngine/session/emailOtp/warmSessionRuntime.js +0 -70
  1049. package/dist/esm/react/core/signingEngine/session/emailOtp/workerEnrollment.js +0 -159
  1050. package/dist/esm/react/core/signingEngine/session/emailOtp/workerRequests.js +0 -84
  1051. package/dist/esm/react/core/signingEngine/session/emailOtp/zeroize.js +0 -9
  1052. package/dist/esm/react/core/signingEngine/session/identity/clientSessionPersistenceState.js +0 -95
  1053. package/dist/esm/react/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.js +0 -23
  1054. package/dist/esm/react/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.js +0 -265
  1055. package/dist/esm/react/core/signingEngine/session/identity/exactSigningLaneIdentity.js +0 -338
  1056. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionCredential.js +0 -106
  1057. package/dist/esm/react/core/signingEngine/session/identity/exactWalletSessionReader.js +0 -54
  1058. package/dist/esm/react/core/signingEngine/session/identity/laneIdentity.js +0 -168
  1059. package/dist/esm/react/core/signingEngine/session/identity/ownerLaneScope.js +0 -185
  1060. package/dist/esm/react/core/signingEngine/session/identity/selectLane.js +0 -335
  1061. package/dist/esm/react/core/signingEngine/session/identity/signingLaneAuthBinding.js +0 -29
  1062. package/dist/esm/react/core/signingEngine/session/keyMaterialBrands.js +0 -75
  1063. package/dist/esm/react/core/signingEngine/session/lanes/walletExecutionLaneHydration.js +0 -194
  1064. package/dist/esm/react/core/signingEngine/session/lifecycle/canonicalWalletSessionStatus.js +0 -32
  1065. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionFailure.js +0 -69
  1066. package/dist/esm/react/core/signingEngine/session/lifecycle/walletSessionStatus.js +0 -123
  1067. package/dist/esm/react/core/signingEngine/session/material/activeEcdsaCapabilityRuntime.js +0 -171
  1068. package/dist/esm/react/core/signingEngine/session/material/activeWalletAuthorityEcdsaRuntime.js +0 -318
  1069. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityHydration.js +0 -75
  1070. package/dist/esm/react/core/signingEngine/session/material/ecdsaCapabilityManifest.js +0 -498
  1071. package/dist/esm/react/core/signingEngine/session/material/ecdsaRoleLocalMaterialResolver.js +0 -122
  1072. package/dist/esm/react/core/signingEngine/session/material/ecdsaSealedRuntime.js +0 -197
  1073. package/dist/esm/react/core/signingEngine/session/material/ecdsaSigningCapability.js +0 -231
  1074. package/dist/esm/react/core/signingEngine/session/material/linkedEcdsaHolderRuntime.js +0 -36
  1075. package/dist/esm/react/core/signingEngine/session/material/mpcCapabilityHydration.js +0 -79
  1076. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoMaterialActivation.js +0 -80
  1077. package/dist/esm/react/core/signingEngine/session/material/nearEd25519YaoSigningPreparation.js +0 -122
  1078. package/dist/esm/react/core/signingEngine/session/material/restorableMpcMaterialRef.internal.js +0 -21
  1079. package/dist/esm/react/core/signingEngine/session/material/walletSigningStateFailure.js +0 -84
  1080. package/dist/esm/react/core/signingEngine/session/operationState/authorizationAdmission.js +0 -98
  1081. package/dist/esm/react/core/signingEngine/session/operationState/lanes.js +0 -127
  1082. package/dist/esm/react/core/signingEngine/session/operationState/preparedOperation.js +0 -38
  1083. package/dist/esm/react/core/signingEngine/session/operationState/trace.js +0 -94
  1084. package/dist/esm/react/core/signingEngine/session/operationState/transactionState.js +0 -106
  1085. package/dist/esm/react/core/signingEngine/session/operationState/types.js +0 -88
  1086. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaBootstrap.js +0 -187
  1087. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaKeyFactsInventory.js +0 -206
  1088. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaRecovery.js +0 -87
  1089. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaSessionProvision.js +0 -224
  1090. package/dist/esm/react/core/signingEngine/session/passkey/ecdsaWarmCapabilityBootstrap.js +0 -147
  1091. package/dist/esm/react/core/signingEngine/session/passkey/ed25519Provisioner.js +0 -55
  1092. package/dist/esm/react/core/signingEngine/session/passkey/ed25519SessionProvision.js +0 -229
  1093. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.js +0 -537
  1094. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +0 -94
  1095. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoSealedSession.js +0 -57
  1096. package/dist/esm/react/core/signingEngine/session/passkey/ed25519YaoWarmRecovery.js +0 -314
  1097. package/dist/esm/react/core/signingEngine/session/passkey/passkeyCustodySessionCache.js +0 -90
  1098. package/dist/esm/react/core/signingEngine/session/passkey/prfCache.js +0 -60
  1099. package/dist/esm/react/core/signingEngine/session/passkey/public.js +0 -15
  1100. package/dist/esm/react/core/signingEngine/session/passkey/unlockEcdsaWarmupPlanner.js +0 -247
  1101. package/dist/esm/react/core/signingEngine/session/passkey/warmSessionHydration.js +0 -9
  1102. package/dist/esm/react/core/signingEngine/session/persistence/clientSessionPersistence.js +0 -143
  1103. package/dist/esm/react/core/signingEngine/session/persistence/durableSealedSessionCommands.js +0 -30
  1104. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaRoleLocalRecords.js +0 -316
  1105. package/dist/esm/react/core/signingEngine/session/persistence/ecdsaSealedRecordKey.js +0 -20
  1106. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionRecords.js +0 -761
  1107. package/dist/esm/react/core/signingEngine/session/persistence/sealedSessionStore.js +0 -518
  1108. package/dist/esm/react/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.js +0 -51
  1109. package/dist/esm/react/core/signingEngine/session/planning/operationFingerprint.js +0 -30
  1110. package/dist/esm/react/core/signingEngine/session/planning/operationIdBinding.js +0 -36
  1111. package/dist/esm/react/core/signingEngine/session/planning/planner.js +0 -98
  1112. package/dist/esm/react/core/signingEngine/session/postconditions/runtimePostconditions.js +0 -165
  1113. package/dist/esm/react/core/signingEngine/session/public.js +0 -44
  1114. package/dist/esm/react/core/signingEngine/session/routerAbSigningWalletSession.js +0 -125
  1115. package/dist/esm/react/core/signingEngine/session/sealedRecovery/exactRecordLookup.js +0 -148
  1116. package/dist/esm/react/core/signingEngine/session/sealedRecovery/materialActivationKey.js +0 -22
  1117. package/dist/esm/react/core/signingEngine/session/sealedRecovery/recoveryRecord.js +0 -248
  1118. package/dist/esm/react/core/signingEngine/session/sealedRecovery/restoreCoordinator.js +0 -229
  1119. package/dist/esm/react/core/signingEngine/session/userPreferences.js +0 -212
  1120. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReader.js +0 -62
  1121. package/dist/esm/react/core/signingEngine/session/warmCapabilities/capabilityReaderCore.js +0 -293
  1122. package/dist/esm/react/core/signingEngine/session/warmCapabilities/clearVolatileWarmSigningMaterial.js +0 -44
  1123. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapPersistence.js +0 -107
  1124. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaBootstrapQueue.js +0 -22
  1125. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefill.js +0 -93
  1126. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaLoginPrefillSigningMaterialSource.js +0 -50
  1127. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.js +0 -9
  1128. package/dist/esm/react/core/signingEngine/session/warmCapabilities/ed25519SealedSessionRuntime.js +0 -251
  1129. package/dist/esm/react/core/signingEngine/session/warmCapabilities/nearEd25519CapabilityRehydration.js +0 -98
  1130. package/dist/esm/react/core/signingEngine/session/warmCapabilities/public.js +0 -31
  1131. package/dist/esm/react/core/signingEngine/session/warmCapabilities/readModel.js +0 -161
  1132. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.js +0 -256
  1133. package/dist/esm/react/core/signingEngine/session/warmCapabilities/routerAbWalletSessionCredential.js +0 -73
  1134. package/dist/esm/react/core/signingEngine/session/warmCapabilities/sealedRefreshParity.js +0 -67
  1135. package/dist/esm/react/core/signingEngine/session/warmCapabilities/statusReader.js +0 -100
  1136. package/dist/esm/react/core/signingEngine/session/warmCapabilities/transitions.js +0 -51
  1137. package/dist/esm/react/core/signingEngine/session/warmCapabilities/types.js +0 -122
  1138. package/dist/esm/react/core/signingEngine/session/warmCapabilities/volatileWarmMaterialCommands.js +0 -45
  1139. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmCommon.js +0 -89
  1140. package/dist/esm/react/core/signingEngine/stepUpConfirmation/channel/confirmTypes.js +0 -12
  1141. package/dist/esm/react/core/signingEngine/stepUpConfirmation/confirmOperation.js +0 -51
  1142. package/dist/esm/react/core/signingEngine/stepUpConfirmation/intentDigestPreparation.js +0 -29
  1143. package/dist/esm/react/core/signingEngine/stepUpConfirmation/methodSelection.js +0 -41
  1144. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/authLane.js +0 -32
  1145. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/exportAuthorization.js +0 -108
  1146. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/promptText.js +0 -8
  1147. package/dist/esm/react/core/signingEngine/stepUpConfirmation/otpPrompt/signingPrompt.js +0 -15
  1148. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/touchIdPrompt.js +0 -295
  1149. package/dist/esm/react/core/signingEngine/stepUpConfirmation/passkeyPrompt/webauthnPromptCoordinator.js +0 -170
  1150. package/dist/esm/react/core/signingEngine/stepUpConfirmation/requireStepUpAuth.js +0 -63
  1151. package/dist/esm/react/core/signingEngine/stepUpConfirmation/types.js +0 -29
  1152. package/dist/esm/react/core/signingEngine/stepUpConfirmation/userConfirmationType.js +0 -15
  1153. package/dist/esm/react/core/signingEngine/threshold/commitQueueShared.js +0 -139
  1154. package/dist/esm/react/core/signingEngine/threshold/crypto/ecdsaDerivationClientWasm.js +0 -619
  1155. package/dist/esm/react/core/signingEngine/threshold/crypto/ed25519YaoLaneWasm.js +0 -70
  1156. package/dist/esm/react/core/signingEngine/threshold/ecdsa/activation.js +0 -267
  1157. package/dist/esm/react/core/signingEngine/threshold/ecdsa/bootstrapSession.js +0 -119
  1158. package/dist/esm/react/core/signingEngine/threshold/ecdsa/operationStepUp.js +0 -110
  1159. package/dist/esm/react/core/signingEngine/threshold/ecdsa/postRegistrationSessionActivation.js +0 -132
  1160. package/dist/esm/react/core/signingEngine/threshold/ecdsa/signingQueue.js +0 -16
  1161. package/dist/esm/react/core/signingEngine/threshold/ed25519/commitQueue.js +0 -16
  1162. package/dist/esm/react/core/signingEngine/threshold/ed25519/connectSession.js +0 -137
  1163. package/dist/esm/react/core/signingEngine/threshold/ed25519/walletSession.js +0 -363
  1164. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoActiveClientRegistry.js +0 -146
  1165. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoClient.js +0 -597
  1166. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPageLifecycleOwner.js +0 -23
  1167. package/dist/esm/react/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.js +0 -295
  1168. package/dist/esm/react/core/signingEngine/threshold/sessionPolicy.js +0 -94
  1169. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcExportManager.js +0 -233
  1170. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionDurableState.js +0 -496
  1171. package/dist/esm/react/core/signingEngine/uiConfirm/PasskeyMpcSessionManager.js +0 -746
  1172. package/dist/esm/react/core/signingEngine/uiConfirm/UiConfirmManager.js +0 -600
  1173. package/dist/esm/react/core/signingEngine/uiConfirm/confirmationReadinessRegistry.js +0 -41
  1174. package/dist/esm/react/core/signingEngine/uiConfirm/exportConfirmRequest.js +0 -149
  1175. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/determineConfirmationConfig.js +0 -82
  1176. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flowOrchestrator.js +0 -363
  1177. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/adapters.js +0 -337
  1178. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/adapters/request.js +0 -120
  1179. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/localOnly.js +0 -150
  1180. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/registration.js +0 -235
  1181. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/requestRegistrationCredentialConfirmation.js +0 -178
  1182. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/flows/signing.js +0 -684
  1183. package/dist/esm/react/core/signingEngine/uiConfirm/handlers/handlePromptFromWorker.js +0 -90
  1184. package/dist/esm/react/core/signingEngine/uiConfirm/nearFundingNotice.js +0 -50
  1185. package/dist/esm/react/core/signingEngine/uiConfirm/transactionReviewAdmission.js +0 -8
  1186. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance-token-vars.js +0 -31
  1187. package/dist/esm/react/core/signingEngine/uiConfirm/ui/appearance.js +0 -27
  1188. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +0 -346
  1189. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirm-ui.js +0 -516
  1190. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-body-model.js +0 -24
  1191. package/dist/esm/react/core/signingEngine/uiConfirm/ui/confirmation-model.js +0 -161
  1192. package/dist/esm/react/core/signingEngine/uiConfirm/ui/drawer-gesture.js +0 -16
  1193. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-private-key-reveal.js +0 -155
  1194. package/dist/esm/react/core/signingEngine/uiConfirm/ui/export-viewer-host.js +0 -207
  1195. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +0 -131
  1196. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmHeader.js +0 -29
  1197. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationBody.js +0 -49
  1198. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +0 -137
  1199. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationDrawer.js +0 -294
  1200. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ConfirmationModal.js +0 -67
  1201. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/CopyStatusIcon.js +0 -41
  1202. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpContent.js +0 -141
  1203. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/EmailOtpInput.js +0 -92
  1204. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ExportPrivateKeySurface.js +0 -318
  1205. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/HaloBorder.js +0 -91
  1206. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PadlockIcon.js +0 -32
  1207. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyHaloLoading.js +0 -63
  1208. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationContent.js +0 -75
  1209. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/PasskeyRegistrationDetails.js +0 -33
  1210. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/RecoveryCodeBackupSurface.js +0 -518
  1211. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +0 -128
  1212. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/SeamsWordmark.js +0 -22
  1213. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionLabel.js +0 -158
  1214. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReceipt.js +0 -289
  1215. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +0 -311
  1216. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/TransactionTree.js +0 -284
  1217. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/clipboard.js +0 -26
  1218. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-controller.js +0 -80
  1219. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/confirmation-styles.js +0 -20
  1220. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/email-otp-session.js +0 -178
  1221. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +0 -297
  1222. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountExportPrivateKeySurface.js +0 -86
  1223. package/dist/esm/react/core/signingEngine/uiConfirm/ui/preact/mountRecoveryCodeBackupSurface.js +0 -82
  1224. package/dist/esm/react/core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js +0 -6
  1225. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-measurement-binding.js +0 -12
  1226. package/dist/esm/react/core/signingEngine/uiConfirm/ui/surface-resize-events.js +0 -18
  1227. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-activity.js +0 -46
  1228. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/abiDecode.js +0 -325
  1229. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/abi/enrichDisplayModelWithAbi.js +0 -77
  1230. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/confirmation-tree.js +0 -27
  1231. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/formatters.js +0 -57
  1232. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/fallback.js +0 -52
  1233. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/renderers/types.js +0 -62
  1234. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-display/tree.js +0 -249
  1235. package/dist/esm/react/core/signingEngine/uiConfirm/ui/transaction-receipt.js +0 -50
  1236. package/dist/esm/react/core/signingEngine/uiConfirm/warmSessionUiConfirm.js +0 -65
  1237. package/dist/esm/react/core/signingEngine/walletCustody/activateEd25519Capability.js +0 -123
  1238. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyActiveClientMetadata.js +0 -94
  1239. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyDriver.js +0 -171
  1240. package/dist/esm/react/core/signingEngine/walletCustody/ceremonyStepRunner.js +0 -20
  1241. package/dist/esm/react/core/signingEngine/walletCustody/ed25519ActiveClient.js +0 -100
  1242. package/dist/esm/react/core/signingEngine/walletCustody/ed25519Projection.js +0 -32
  1243. package/dist/esm/react/core/signingEngine/walletCustody/ed25519SeedMaterial.js +0 -92
  1244. package/dist/esm/react/core/signingEngine/walletCustody/emailOtpLink.js +0 -135
  1245. package/dist/esm/react/core/signingEngine/walletCustody/joinCustodyWire.js +0 -64
  1246. package/dist/esm/react/core/signingEngine/walletCustody/openCustodyCache.js +0 -130
  1247. package/dist/esm/react/core/signingEngine/walletCustody/passkeyLink.js +0 -183
  1248. package/dist/esm/react/core/signingEngine/walletCustody/recoveryReplacementEnvelope.js +0 -60
  1249. package/dist/esm/react/core/signingEngine/walletCustody/registrationCeremony.js +0 -461
  1250. package/dist/esm/react/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +0 -258
  1251. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryCredential.js +0 -24
  1252. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEcdsa.js +0 -76
  1253. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryEd25519.js +0 -129
  1254. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryManifest.js +0 -180
  1255. package/dist/esm/react/core/signingEngine/walletCustody/walletRecoveryRotation.js +0 -103
  1256. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/collectAuthenticationCredentialForChallengeB64u.js +0 -154
  1257. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/credentialExtensions.js +0 -36
  1258. package/dist/esm/react/core/signingEngine/webauthnAuth/credentials/helpers.js +0 -273
  1259. package/dist/esm/react/core/signingEngine/webauthnAuth/device/signerSlot.js +0 -25
  1260. package/dist/esm/react/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.js +0 -171
  1261. package/dist/esm/react/core/signingEngine/workerManager/SignerWorkerManager.js +0 -70
  1262. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingPorts.js +0 -342
  1263. package/dist/esm/react/core/signingEngine/workerManager/deviceLinkingSourceContribution.js +0 -158
  1264. package/dist/esm/react/core/signingEngine/workerManager/ecdsaClientWorkerChannels.js +0 -17
  1265. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignLifecycle.js +0 -6
  1266. package/dist/esm/react/core/signingEngine/workerManager/ecdsaPresignPoolIdentity.js +0 -49
  1267. package/dist/esm/react/core/signingEngine/workerManager/executeWorkerOperation.js +0 -12
  1268. package/dist/esm/react/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.js +0 -32
  1269. package/dist/esm/react/core/signingEngine/workerManager/validation.js +0 -114
  1270. package/dist/esm/react/core/signingEngine/workerManager/workerTransport.js +0 -773
  1271. package/dist/esm/react/core/signingEngine/workerManager/workerTypes.js +0 -109
  1272. package/dist/esm/react/core/types/accountIds.js +0 -26
  1273. package/dist/esm/react/core/types/actionBuilders.js +0 -73
  1274. package/dist/esm/react/core/types/confirmationConfig.js +0 -39
  1275. package/dist/esm/react/core/types/eventLogging.js +0 -28
  1276. package/dist/esm/react/core/types/linkDevice.js +0 -49
  1277. package/dist/esm/react/core/types/sdkSentEvents.js +0 -602
  1278. package/dist/esm/react/core/types/secure-confirm-worker.js +0 -22
  1279. package/dist/esm/react/core/types/signer-worker.js +0 -50
  1280. package/dist/esm/react/core/types/walletIframeIdentity.js +0 -15
  1281. package/dist/esm/react/core/walletRuntimePaths/base.js +0 -60
  1282. package/dist/esm/react/core/walletRuntimePaths/emailOtpWorker.js +0 -12
  1283. package/dist/esm/react/core/walletRuntimePaths/multichainWorkers.js +0 -25
  1284. package/dist/esm/react/core/walletRuntimePaths/walletCustodyCeremonyWorker.js +0 -18
  1285. package/dist/esm/react/core/walletRuntimePaths/workers.js +0 -93
  1286. package/dist/esm/react/externalEvm/boundary.js +0 -309
  1287. package/dist/esm/react/externalEvm/controller.js +0 -440
  1288. package/dist/esm/react/externalEvm/types.js +0 -31
  1289. package/dist/esm/react/node_modules/@noble/hashes/esm/_u64.js +0 -36
  1290. package/dist/esm/react/node_modules/@noble/hashes/esm/sha3.js +0 -197
  1291. package/dist/esm/react/node_modules/@noble/hashes/esm/utils.js +0 -87
  1292. package/dist/esm/react/node_modules/viem/_esm/errors/abi.js +0 -48
  1293. package/dist/esm/react/node_modules/viem/_esm/errors/address.js +0 -14
  1294. package/dist/esm/react/node_modules/viem/_esm/errors/base.js +0 -86
  1295. package/dist/esm/react/node_modules/viem/_esm/errors/data.js +0 -16
  1296. package/dist/esm/react/node_modules/viem/_esm/errors/encoding.js +0 -16
  1297. package/dist/esm/react/node_modules/viem/_esm/errors/typedData.js +0 -28
  1298. package/dist/esm/react/node_modules/viem/_esm/errors/version.js +0 -6
  1299. package/dist/esm/react/node_modules/viem/_esm/utils/abi/encodeAbiParameters.js +0 -243
  1300. package/dist/esm/react/node_modules/viem/_esm/utils/address/getAddress.js +0 -28
  1301. package/dist/esm/react/node_modules/viem/_esm/utils/address/isAddress.js +0 -23
  1302. package/dist/esm/react/node_modules/viem/_esm/utils/data/concat.js +0 -23
  1303. package/dist/esm/react/node_modules/viem/_esm/utils/data/isHex.js +0 -10
  1304. package/dist/esm/react/node_modules/viem/_esm/utils/data/pad.js +0 -40
  1305. package/dist/esm/react/node_modules/viem/_esm/utils/data/size.js +0 -16
  1306. package/dist/esm/react/node_modules/viem/_esm/utils/data/slice.js +0 -59
  1307. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/fromHex.js +0 -13
  1308. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toBytes.js +0 -175
  1309. package/dist/esm/react/node_modules/viem/_esm/utils/encoding/toHex.js +0 -168
  1310. package/dist/esm/react/node_modules/viem/_esm/utils/hash/keccak256.js +0 -15
  1311. package/dist/esm/react/node_modules/viem/_esm/utils/lru.js +0 -38
  1312. package/dist/esm/react/node_modules/viem/_esm/utils/regex.js +0 -7
  1313. package/dist/esm/react/node_modules/viem/_esm/utils/signature/hashTypedData.js +0 -113
  1314. package/dist/esm/react/node_modules/viem/_esm/utils/stringify.js +0 -9
  1315. package/dist/esm/react/node_modules/viem/_esm/utils/typedData.js +0 -80
  1316. package/dist/esm/react/shared-ts/src/authorization/capabilityKinds.js +0 -111
  1317. package/dist/esm/react/shared-ts/src/authorization/delegatedAuthority.js +0 -121
  1318. package/dist/esm/react/shared-ts/src/authorization/index.js +0 -6
  1319. package/dist/esm/react/shared-ts/src/authorization/operationFingerprint.js +0 -57
  1320. package/dist/esm/react/shared-ts/src/authorization/walletAuthority.js +0 -719
  1321. package/dist/esm/react/shared-ts/src/authorization/walletCustodyOperation.js +0 -16
  1322. package/dist/esm/react/shared-ts/src/authorization/walletSessionIssuance.js +0 -115
  1323. package/dist/esm/react/shared-ts/src/authorization/walletSignerActivationEquality.js +0 -12
  1324. package/dist/esm/react/shared-ts/src/device-linking/activeWalletSession.js +0 -104
  1325. package/dist/esm/react/shared-ts/src/device-linking/authorityActivation.js +0 -142
  1326. package/dist/esm/react/shared-ts/src/device-linking/committedSignerPackages.js +0 -270
  1327. package/dist/esm/react/shared-ts/src/device-linking/contracts.js +0 -8
  1328. package/dist/esm/react/shared-ts/src/device-linking/delegatedActivationPlan.js +0 -130
  1329. package/dist/esm/react/shared-ts/src/device-linking/deviceManagement.js +0 -120
  1330. package/dist/esm/react/shared-ts/src/device-linking/digests.js +0 -115
  1331. package/dist/esm/react/shared-ts/src/device-linking/ed25519ExportRoot.js +0 -167
  1332. package/dist/esm/react/shared-ts/src/device-linking/index.js +0 -12
  1333. package/dist/esm/react/shared-ts/src/device-linking/parsers.js +0 -1029
  1334. package/dist/esm/react/shared-ts/src/device-linking/requestProof.js +0 -25
  1335. package/dist/esm/react/shared-ts/src/device-linking/sourceContribution.js +0 -542
  1336. package/dist/esm/react/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +0 -173
  1337. package/dist/esm/react/shared-ts/src/device-linking/wireFields.js +0 -59
  1338. package/dist/esm/react/shared-ts/src/near/actions.js +0 -236
  1339. package/dist/esm/react/shared-ts/src/near/nearClient.js +0 -252
  1340. package/dist/esm/react/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +0 -43
  1341. package/dist/esm/react/shared-ts/src/passkey-custody/custodyEnvelope.js +0 -278
  1342. package/dist/esm/react/shared-ts/src/passkey-custody/custodySecretBinding.js +0 -181
  1343. package/dist/esm/react/shared-ts/src/passkey-custody/index.js +0 -4
  1344. package/dist/esm/react/shared-ts/src/passkey-custody/primitives.js +0 -62
  1345. package/dist/esm/react/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +0 -49
  1346. package/dist/esm/react/shared-ts/src/signing-lanes/index.js +0 -8
  1347. package/dist/esm/react/shared-ts/src/signing-lanes/ownerContinuity.js +0 -62
  1348. package/dist/esm/react/shared-ts/src/signing-lanes/participantDigest.js +0 -2
  1349. package/dist/esm/react/shared-ts/src/signing-lanes/participants.js +0 -256
  1350. package/dist/esm/react/shared-ts/src/signing-lanes/recordParsers.js +0 -479
  1351. package/dist/esm/react/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1352. package/dist/esm/react/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1353. package/dist/esm/react/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1354. package/dist/esm/react/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1355. package/dist/esm/react/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +0 -39
  1356. package/dist/esm/react/shared-ts/src/threshold/ed25519OperationFingerprint.js +0 -222
  1357. package/dist/esm/react/shared-ts/src/threshold/keyMaterialBrands.js +0 -25
  1358. package/dist/esm/react/shared-ts/src/threshold/participants.js +0 -67
  1359. package/dist/esm/react/shared-ts/src/threshold/secp256k1.js +0 -6
  1360. package/dist/esm/react/shared-ts/src/threshold/sessionPolicy.js +0 -8
  1361. package/dist/esm/react/shared-ts/src/threshold/signingRootScope.js +0 -43
  1362. package/dist/esm/react/shared-ts/src/utils/addAuthMethodRegistration.js +0 -103
  1363. package/dist/esm/react/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1364. package/dist/esm/react/shared-ts/src/utils/authenticatorOptions.js +0 -22
  1365. package/dist/esm/react/shared-ts/src/utils/base58.js +0 -28
  1366. package/dist/esm/react/shared-ts/src/utils/base64.js +0 -70
  1367. package/dist/esm/react/shared-ts/src/utils/canonicalPrimitives.js +0 -38
  1368. package/dist/esm/react/shared-ts/src/utils/digestEncoding.js +0 -63
  1369. package/dist/esm/react/shared-ts/src/utils/digests.js +0 -33
  1370. package/dist/esm/react/shared-ts/src/utils/domainIds.js +0 -257
  1371. package/dist/esm/react/shared-ts/src/utils/ecdsaCapabilityActivation.js +0 -67
  1372. package/dist/esm/react/shared-ts/src/utils/ecdsaKeyFactsInventory.js +0 -44
  1373. package/dist/esm/react/shared-ts/src/utils/ecdsaServerTiming.js +0 -38
  1374. package/dist/esm/react/shared-ts/src/utils/emailOtpDomain.js +0 -28
  1375. package/dist/esm/react/shared-ts/src/utils/emailOtpRecoveryKey.js +0 -65
  1376. package/dist/esm/react/shared-ts/src/utils/encoders.js +0 -2
  1377. package/dist/esm/react/shared-ts/src/utils/errors.js +0 -95
  1378. package/dist/esm/react/shared-ts/src/utils/evmRpcResults.js +0 -101
  1379. package/dist/esm/react/shared-ts/src/utils/exactKeys.js +0 -17
  1380. package/dist/esm/react/shared-ts/src/utils/exactRecord.js +0 -44
  1381. package/dist/esm/react/shared-ts/src/utils/index.js +0 -38
  1382. package/dist/esm/react/shared-ts/src/utils/jsonRpc.js +0 -64
  1383. package/dist/esm/react/shared-ts/src/utils/keccak.js +0 -150
  1384. package/dist/esm/react/shared-ts/src/utils/near.js +0 -205
  1385. package/dist/esm/react/shared-ts/src/utils/nearRpcResults.js +0 -205
  1386. package/dist/esm/react/shared-ts/src/utils/normalize.js +0 -86
  1387. package/dist/esm/react/shared-ts/src/utils/registrationAuthMethodInput.js +0 -84
  1388. package/dist/esm/react/shared-ts/src/utils/registrationEstablishedSession.js +0 -275
  1389. package/dist/esm/react/shared-ts/src/utils/registrationIds.js +0 -226
  1390. package/dist/esm/react/shared-ts/src/utils/registrationIntent.js +0 -390
  1391. package/dist/esm/react/shared-ts/src/utils/registrationSignerPlan.js +0 -439
  1392. package/dist/esm/react/shared-ts/src/utils/routerAbEcdsaDerivation.js +0 -1334
  1393. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519Yao.js +0 -747
  1394. package/dist/esm/react/shared-ts/src/utils/routerAbEd25519YaoDigests.js +0 -76
  1395. package/dist/esm/react/shared-ts/src/utils/routerAbNormalSigningIdentity.js +0 -115
  1396. package/dist/esm/react/shared-ts/src/utils/routerAbPublicKeyset.js +0 -11
  1397. package/dist/esm/react/shared-ts/src/utils/routerAbTraceContext.js +0 -36
  1398. package/dist/esm/react/shared-ts/src/utils/secureRandomId.js +0 -35
  1399. package/dist/esm/react/shared-ts/src/utils/signerDomain.js +0 -37
  1400. package/dist/esm/react/shared-ts/src/utils/signerSlot.js +0 -12
  1401. package/dist/esm/react/shared-ts/src/utils/signingSessionSeal.js +0 -98
  1402. package/dist/esm/react/shared-ts/src/utils/theme.js +0 -8
  1403. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaChainTarget.js +0 -9
  1404. package/dist/esm/react/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +0 -28
  1405. package/dist/esm/react/shared-ts/src/utils/validation.js +0 -92
  1406. package/dist/esm/react/shared-ts/src/utils/walletAddSignerActivation.js +0 -32
  1407. package/dist/esm/react/shared-ts/src/utils/walletAuthAuthority.js +0 -224
  1408. package/dist/esm/react/shared-ts/src/utils/walletAuthMethodRecord.js +0 -357
  1409. package/dist/esm/react/shared-ts/src/utils/walletCapabilityBindings.js +0 -277
  1410. package/dist/esm/react/shared-ts/src/utils/walletSessionFailure.js +0 -28
  1411. package/dist/esm/react/shared-ts/src/utils/webauthnDeviceInfo.js +0 -50
  1412. package/dist/esm/react/shared-ts/src/utils/wireSchema.js +0 -66
  1413. package/dist/esm/react/shared-ts/src/wallet-recovery/index.js +0 -10
  1414. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +0 -35
  1415. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +0 -34
  1416. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +0 -24
  1417. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryCodes.js +0 -3
  1418. package/dist/esm/react/shared-ts/src/wallet-recovery/recoveryKeyId.js +0 -14
  1419. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +0 -251
  1420. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +0 -153
  1421. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +0 -84
  1422. package/dist/esm/react/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +0 -64
  1423. package/dist/esm/react/theme/base-styles.js +0 -117
  1424. package/dist/esm/react/theme/palette.js +0 -170
  1425. package/dist/esm/react/utils/deviceDetection.js +0 -95
  1426. package/dist/esm/react/utils/intentDigest.js +0 -77
  1427. package/dist/esm/react/utils/menuItemBlink.js +0 -24
  1428. package/dist/esm/react/utils/qrScanner.js +0 -297
  1429. package/dist/esm/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1430. package/dist/esm/sdk/EvmClient-f3gUhS2L.js +0 -644
  1431. package/dist/esm/sdk/NearClient-DY4NfHeD.js +0 -402
  1432. package/dist/esm/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1433. package/dist/esm/sdk/accountIds-DhIPGOSN.js +0 -23
  1434. package/dist/esm/sdk/accountLifecycle-zthG08aC.js +0 -1341
  1435. package/dist/esm/sdk/actions-CCvThiKe.js +0 -225
  1436. package/dist/esm/sdk/adapters-Dli9XAZp.js +0 -4836
  1437. package/dist/esm/sdk/base-D1B5mGin.js +0 -64
  1438. package/dist/esm/sdk/base64-Clm8C-e9.js +0 -68
  1439. package/dist/esm/sdk/browser-D6eZGhzE.js +0 -2393
  1440. package/dist/esm/sdk/bytes-qKxKn4gg.js +0 -40
  1441. package/dist/esm/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1442. package/dist/esm/sdk/canonicalSignerErrorCode-BBIk365e.js +0 -139
  1443. package/dist/esm/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1444. package/dist/esm/sdk/chains-BMh3btVo.js +0 -124
  1445. package/dist/esm/sdk/challengeDelivery-DZtopOAG.js +0 -74
  1446. package/dist/esm/sdk/chunk-BtrIJ4_z.js +0 -33
  1447. package/dist/esm/sdk/configHelpers-D1EqxVxg.js +0 -179
  1448. package/dist/esm/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1449. package/dist/esm/sdk/defaultConfigs-D_33pPT9.js +0 -355
  1450. package/dist/esm/sdk/display-P4nQF-yc.js +0 -126
  1451. package/dist/esm/sdk/domainIds-lcrFg6Sa.js +0 -338
  1452. package/dist/esm/sdk/ecdsaCapabilityManifest-DuMs0VtU.js +0 -805
  1453. package/dist/esm/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1454. package/dist/esm/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +0 -1983
  1455. package/dist/esm/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1456. package/dist/esm/sdk/ecdsaWalletRecords-D42rtA9z.js +0 -18
  1457. package/dist/esm/sdk/encoders-D8d07vpx.js +0 -0
  1458. package/dist/esm/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1459. package/dist/esm/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1460. package/dist/esm/sdk/errors-93h9uAW9.js +0 -92
  1461. package/dist/esm/sdk/events-DYoBL2HO.js +0 -8
  1462. package/dist/esm/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1463. package/dist/esm/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +0 -4274
  1464. package/dist/esm/sdk/exactSessionState-LWDUXydN.js +0 -2592
  1465. package/dist/esm/sdk/exactSigningLaneIdentity-m6uTXV_A.js +0 -335
  1466. package/dist/esm/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1467. package/dist/esm/sdk/export-viewer-host-rWMSQQMP.js +0 -204
  1468. package/dist/esm/sdk/helpers-ZrowMnev.js +0 -302
  1469. package/dist/esm/sdk/host-CnV8nAUe.js +0 -533
  1470. package/dist/esm/sdk/intentDigest-CvOSNlCH.js +0 -75
  1471. package/dist/esm/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1472. package/dist/esm/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1473. package/dist/esm/sdk/keccak-DUL3d8SF.js +0 -148
  1474. package/dist/esm/sdk/keyMaterialBrands-CogGAAZn.js +0 -94
  1475. package/dist/esm/sdk/localOnly-DTpa2jD5.js +0 -146
  1476. package/dist/esm/sdk/messages-C7Dbx9iN.js +0 -594
  1477. package/dist/esm/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1478. package/dist/esm/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1479. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js +0 -4018
  1480. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js +0 -405
  1481. package/dist/esm/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1482. package/dist/esm/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1483. package/dist/esm/sdk/normalization-CBt413-z.js +0 -22
  1484. package/dist/esm/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1485. package/dist/esm/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1486. package/dist/esm/sdk/passkey-custody-UUHbC0pk.js +0 -487
  1487. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js +0 -237
  1488. package/dist/esm/sdk/prfCache-wqQSjYLn.js +0 -58
  1489. package/dist/esm/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1490. package/dist/esm/sdk/promptText-CuRa_ivd.js +0 -32
  1491. package/dist/esm/sdk/recovery-entrypoint-C3fydnRC.js +0 -779
  1492. package/dist/esm/sdk/registration-Ct_7LdGf.js +0 -14402
  1493. package/dist/esm/sdk/registration-DHERU8R_.js +0 -233
  1494. package/dist/esm/sdk/registrationAccounts-DmWPzf3T.js +0 -33
  1495. package/dist/esm/sdk/registrationIds-DLSdEKSv.js +0 -310
  1496. package/dist/esm/sdk/registrationIntent-4zwk16zQ.js +0 -387
  1497. package/dist/esm/sdk/registrationPreparationPreload-D6zpWp4O.js +0 -13
  1498. package/dist/esm/sdk/registrationSignerPlan-DhV8VAob.js +0 -437
  1499. package/dist/esm/sdk/relayerHttp-VC8Holz1.js +0 -24
  1500. package/dist/esm/sdk/routePlan-D59x5xzQ.js +0 -83
  1501. package/dist/esm/sdk/router-B4ZWFy9E.js +0 -4721
  1502. package/dist/esm/sdk/routerAbNormalSigning-CVFEOZ2m.js +0 -992
  1503. package/dist/esm/sdk/runtime-auth-DdfynDKt.js +0 -5393
  1504. package/dist/esm/sdk/runtime-device-link-HJ2ptFux.js +0 -259
  1505. package/dist/esm/sdk/runtime-ecdsa-tempo-BGLsTAWR.js +0 -177
  1506. package/dist/esm/sdk/runtime-email-otp-CpX88VZJ.js +0 -320
  1507. package/dist/esm/sdk/runtime-export-DIVY473L.js +0 -112
  1508. package/dist/esm/sdk/runtime-near-CxtQi4b2.js +0 -278
  1509. package/dist/esm/sdk/runtime-preferences-vnJc5Svg.js +0 -67
  1510. package/dist/esm/sdk/runtime-recovery-codes-BSCLVHQj.js +0 -95
  1511. package/dist/esm/sdk/runtime-recovery-i08vCJST.js +0 -45
  1512. package/dist/esm/sdk/runtimeContext-D3TBExQ6.js +0 -44484
  1513. package/dist/esm/sdk/runtimeLoader-DQVEFVaW.js +0 -44
  1514. package/dist/esm/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1515. package/dist/esm/sdk/secp256k1-D-I6Gh4D.js +0 -2515
  1516. package/dist/esm/sdk/secureRandomId-BORsmdS4.js +0 -33
  1517. package/dist/esm/sdk/sessionPolicy-DO-MkL65.js +0 -460
  1518. package/dist/esm/sdk/shared-DkbeLCI3.js +0 -33
  1519. package/dist/esm/sdk/signEvmFamily-C3C97Th-.js +0 -4607
  1520. package/dist/esm/sdk/signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js +0 -226
  1521. package/dist/esm/sdk/signEvmWithUiConfirm-Bmcim5-g.js +0 -27
  1522. package/dist/esm/sdk/signNear-Bmb2fj_a.js +0 -5893
  1523. package/dist/esm/sdk/signatureUses-BkGyYt8F.js +0 -51
  1524. package/dist/esm/sdk/signerDomain-IEAVrOrc.js +0 -59
  1525. package/dist/esm/sdk/signerLoader-B7orgq5Z.js +0 -23
  1526. package/dist/esm/sdk/signerSlot-_ovonwVX.js +0 -10
  1527. package/dist/esm/sdk/signingFlow-SZ8t_lxv.js +0 -1319
  1528. package/dist/esm/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1529. package/dist/esm/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1530. package/dist/esm/sdk/trace-DKLQZvec.js +0 -126
  1531. package/dist/esm/sdk/transaction-activity-CSMCveBn.js +0 -218
  1532. package/dist/esm/sdk/transactionReview-DpHLTznU.js +0 -100
  1533. package/dist/esm/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1534. package/dist/esm/sdk/transactionState-CJ4U8pcl.js +0 -1894
  1535. package/dist/esm/sdk/types-Dx9fczU7.js +0 -111
  1536. package/dist/esm/sdk/validation-gat4LEKm.js +0 -409
  1537. package/dist/esm/sdk/wallet-recovery-BX61-79p.js +0 -1902
  1538. package/dist/esm/sdk/walletAuthority-DD9T25F6.js +0 -1247
  1539. package/dist/esm/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js +0 -11000
  1540. package/dist/esm/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1541. package/dist/esm/sdk/walletRecoveryCommit-AI1AtIRP.js +0 -2101
  1542. package/dist/esm/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1543. package/dist/esm/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1544. package/dist/esm/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1545. package/dist/esm/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1546. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +0 -6
  1547. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +0 -3
  1548. package/dist/esm/shared-ts/src/signing-lanes/rotationProtocolParsers.js +0 -8
  1549. package/dist/esm/shared-ts/src/signing-lanes/rotationWireFields.js +0 -3
  1550. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +0 -1
  1551. package/dist/esm/styles.css +0 -43
  1552. package/dist/public/sdk/ConfirmationDrawer-MgFTBwwK.js +0 -425
  1553. package/dist/public/sdk/EvmClient-f3gUhS2L.js +0 -644
  1554. package/dist/public/sdk/NearClient-DY4NfHeD.js +0 -402
  1555. package/dist/public/sdk/NonceCoordinator-4XWPhYww.js +0 -2253
  1556. package/dist/public/sdk/accountIds-DhIPGOSN.js +0 -23
  1557. package/dist/public/sdk/accountLifecycle-zthG08aC.js +0 -1341
  1558. package/dist/public/sdk/actions-CCvThiKe.js +0 -225
  1559. package/dist/public/sdk/adapters-Dli9XAZp.js +0 -4836
  1560. package/dist/public/sdk/base-D1B5mGin.js +0 -64
  1561. package/dist/public/sdk/base64-Clm8C-e9.js +0 -68
  1562. package/dist/public/sdk/browser-D6eZGhzE.js +0 -2393
  1563. package/dist/public/sdk/bytes-qKxKn4gg.js +0 -40
  1564. package/dist/public/sdk/canonicalPrimitives-BTHWz80v.js +0 -36
  1565. package/dist/public/sdk/canonicalSignerErrorCode-BBIk365e.js +0 -139
  1566. package/dist/public/sdk/capabilityKinds-hvYqa6S_.js +0 -109
  1567. package/dist/public/sdk/chains-BMh3btVo.js +0 -124
  1568. package/dist/public/sdk/challengeDelivery-DZtopOAG.js +0 -74
  1569. package/dist/public/sdk/chunk-BtrIJ4_z.js +0 -33
  1570. package/dist/public/sdk/configHelpers-D1EqxVxg.js +0 -179
  1571. package/dist/public/sdk/csp-stylesheet-btENhsNp.js +0 -215
  1572. package/dist/public/sdk/defaultConfigs-D_33pPT9.js +0 -355
  1573. package/dist/public/sdk/display-P4nQF-yc.js +0 -126
  1574. package/dist/public/sdk/domainIds-lcrFg6Sa.js +0 -338
  1575. package/dist/public/sdk/ecdsaCapabilityManifest-DuMs0VtU.js +0 -805
  1576. package/dist/public/sdk/ecdsaChainTarget-Bl-JWyuw.js +0 -121
  1577. package/dist/public/sdk/ecdsaPresignLifecycle-Bfx2AQKb.js +0 -1983
  1578. package/dist/public/sdk/ecdsaPresignPoolIdentity-BjxZVIqn.js +0 -47
  1579. package/dist/public/sdk/ecdsaWalletRecords-D42rtA9z.js +0 -18
  1580. package/dist/public/sdk/encoders-D8d07vpx.js +0 -0
  1581. package/dist/public/sdk/enrichDisplayModelWithAbi-CWggsykc.js +0 -395
  1582. package/dist/public/sdk/enrichDisplayModelWithAbi-SDRwTd_M.js +0 -579
  1583. package/dist/public/sdk/errors-93h9uAW9.js +0 -92
  1584. package/dist/public/sdk/events-DYoBL2HO.js +0 -8
  1585. package/dist/public/sdk/evmCryptoWasm-DWklhEEb.js +0 -196
  1586. package/dist/public/sdk/evmFamilyEcdsaIdentity-CqGafQsI.js +0 -4274
  1587. package/dist/public/sdk/exactSessionState-LWDUXydN.js +0 -2592
  1588. package/dist/public/sdk/exactSigningLaneIdentity-m6uTXV_A.js +0 -335
  1589. package/dist/public/sdk/executeWorkerOperation-Cl9whMK7.js +0 -10
  1590. package/dist/public/sdk/export-viewer-host-rWMSQQMP.js +0 -204
  1591. package/dist/public/sdk/helpers-ZrowMnev.js +0 -302
  1592. package/dist/public/sdk/host-CnV8nAUe.js +0 -533
  1593. package/dist/public/sdk/intentDigest-CvOSNlCH.js +0 -75
  1594. package/dist/public/sdk/jsonRpc-VVkaQkFD.js +0 -62
  1595. package/dist/public/sdk/jsxRuntime.module-CuH5ZEIA.js +0 -298
  1596. package/dist/public/sdk/keccak-DUL3d8SF.js +0 -148
  1597. package/dist/public/sdk/keyMaterialBrands-CogGAAZn.js +0 -94
  1598. package/dist/public/sdk/localOnly-DTpa2jD5.js +0 -146
  1599. package/dist/public/sdk/messages-C7Dbx9iN.js +0 -594
  1600. package/dist/public/sdk/mountExportPrivateKeySurface-DgX-IBG_.js +0 -542
  1601. package/dist/public/sdk/mountRecoveryCodeBackupSurface-DXrExiJ7.js +0 -590
  1602. package/dist/public/sdk/nearEd25519YaoMaterialActivation-B5GecIvq.js +0 -4018
  1603. package/dist/public/sdk/nearEd25519YaoSigningPreparation-CdOT5RuC.js +0 -405
  1604. package/dist/public/sdk/nearRpcResults-DoUgDATm.js +0 -216
  1605. package/dist/public/sdk/nonceLaneKeys-C3c9lG6u.js +0 -164
  1606. package/dist/public/sdk/normalization-CBt413-z.js +0 -22
  1607. package/dist/public/sdk/operationFingerprint-C8Trar4R.js +0 -929
  1608. package/dist/public/sdk/operationFingerprint-CGZui5dR.js +0 -55
  1609. package/dist/public/sdk/passkey-custody-UUHbC0pk.js +0 -487
  1610. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-BWluQMbt.js +0 -237
  1611. package/dist/public/sdk/prfCache-wqQSjYLn.js +0 -58
  1612. package/dist/public/sdk/profileAccountProjection-uZVJuBvS.js +0 -86
  1613. package/dist/public/sdk/promptText-CuRa_ivd.js +0 -32
  1614. package/dist/public/sdk/recovery-entrypoint-C3fydnRC.js +0 -779
  1615. package/dist/public/sdk/registration-Ct_7LdGf.js +0 -14402
  1616. package/dist/public/sdk/registration-DHERU8R_.js +0 -233
  1617. package/dist/public/sdk/registrationAccounts-DmWPzf3T.js +0 -33
  1618. package/dist/public/sdk/registrationIds-DLSdEKSv.js +0 -310
  1619. package/dist/public/sdk/registrationIntent-4zwk16zQ.js +0 -387
  1620. package/dist/public/sdk/registrationPreparationPreload-D6zpWp4O.js +0 -13
  1621. package/dist/public/sdk/registrationSignerPlan-DhV8VAob.js +0 -437
  1622. package/dist/public/sdk/relayerHttp-VC8Holz1.js +0 -24
  1623. package/dist/public/sdk/routePlan-D59x5xzQ.js +0 -83
  1624. package/dist/public/sdk/router-B4ZWFy9E.js +0 -4721
  1625. package/dist/public/sdk/routerAbNormalSigning-CVFEOZ2m.js +0 -992
  1626. package/dist/public/sdk/runtime-auth-DdfynDKt.js +0 -5393
  1627. package/dist/public/sdk/runtime-device-link-HJ2ptFux.js +0 -259
  1628. package/dist/public/sdk/runtime-ecdsa-tempo-BGLsTAWR.js +0 -177
  1629. package/dist/public/sdk/runtime-email-otp-CpX88VZJ.js +0 -320
  1630. package/dist/public/sdk/runtime-export-DIVY473L.js +0 -112
  1631. package/dist/public/sdk/runtime-near-CxtQi4b2.js +0 -278
  1632. package/dist/public/sdk/runtime-preferences-vnJc5Svg.js +0 -67
  1633. package/dist/public/sdk/runtime-recovery-codes-BSCLVHQj.js +0 -95
  1634. package/dist/public/sdk/runtime-recovery-i08vCJST.js +0 -45
  1635. package/dist/public/sdk/runtimeContext-D3TBExQ6.js +0 -44484
  1636. package/dist/public/sdk/runtimeLoader-DQVEFVaW.js +0 -44
  1637. package/dist/public/sdk/sdkSentEvents-MqDkbQg1.js +0 -599
  1638. package/dist/public/sdk/secp256k1-D-I6Gh4D.js +0 -2515
  1639. package/dist/public/sdk/secureRandomId-BORsmdS4.js +0 -33
  1640. package/dist/public/sdk/sessionPolicy-DO-MkL65.js +0 -460
  1641. package/dist/public/sdk/shared-DkbeLCI3.js +0 -33
  1642. package/dist/public/sdk/signEvmFamily-C3C97Th-.js +0 -4607
  1643. package/dist/public/sdk/signEvmFamilyWithUiConfirmForTempo-BI9DSTIS.js +0 -226
  1644. package/dist/public/sdk/signEvmWithUiConfirm-Bmcim5-g.js +0 -27
  1645. package/dist/public/sdk/signNear-Bmb2fj_a.js +0 -5893
  1646. package/dist/public/sdk/signatureUses-BkGyYt8F.js +0 -51
  1647. package/dist/public/sdk/signerDomain-IEAVrOrc.js +0 -59
  1648. package/dist/public/sdk/signerLoader-B7orgq5Z.js +0 -23
  1649. package/dist/public/sdk/signerSlot-_ovonwVX.js +0 -10
  1650. package/dist/public/sdk/signingFlow-SZ8t_lxv.js +0 -1319
  1651. package/dist/public/sdk/signingSessionSeal-Cu-GHm6y.js +0 -96
  1652. package/dist/public/sdk/surface-measurement-reporter-CSTyRsMa.js +0 -156
  1653. package/dist/public/sdk/trace-DKLQZvec.js +0 -126
  1654. package/dist/public/sdk/transaction-activity-CSMCveBn.js +0 -218
  1655. package/dist/public/sdk/transactionReview-DpHLTznU.js +0 -100
  1656. package/dist/public/sdk/transactionReviewAdmission-BCPvl8OZ.js +0 -172
  1657. package/dist/public/sdk/transactionState-CJ4U8pcl.js +0 -1894
  1658. package/dist/public/sdk/types-Dx9fczU7.js +0 -111
  1659. package/dist/public/sdk/validation-gat4LEKm.js +0 -409
  1660. package/dist/public/sdk/wallet-recovery-BX61-79p.js +0 -1902
  1661. package/dist/public/sdk/walletAuthority-DD9T25F6.js +0 -1247
  1662. package/dist/public/sdk/walletCustodyEcdsaContinuity-CF4bv9OI.js +0 -11000
  1663. package/dist/public/sdk/walletIframeIdentity-DB6Z2EC9.js +0 -13
  1664. package/dist/public/sdk/walletRecoveryCommit-AI1AtIRP.js +0 -2101
  1665. package/dist/public/sdk/walletRecoveryRotate-BgLlW5ih.js +0 -309
  1666. package/dist/public/sdk/warmSessionHydration-Os8niEm7.js +0 -7
  1667. package/dist/public/sdk/webauthnP256-DC5EIbKN.js +0 -82
  1668. package/dist/public/sdk/webauthnPromptCoordinator-L96oVvLz.js +0 -168
  1669. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +0 -2
  1670. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +0 -2
  1671. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +0 -13
  1672. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +0 -78
  1673. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +0 -27
  1674. package/dist/types/shared-ts/src/signing-lanes/rotationProtocolParsers.d.ts +0 -6
  1675. package/dist/types/shared-ts/src/signing-lanes/rotationWireFields.d.ts +0 -20
  1676. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +0 -59
  1677. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/transport/webauthn-bridge.d.ts +0 -3
  1678. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/laneHolderMaterialStore.d.ts +0 -52
  1679. package/dist/types/wallet/src/core/signingEngine/interfaces/nearKeyOps.d.ts +0 -15
  1680. package/dist/types/wallet/src/core/signingEngine/session/holderShares/forbiddenHolderSharePayloads.typecheck.d.ts +0 -2
  1681. package/dist/types/wallet/src/core/signingEngine/session/holderShares/holderShareHandle.d.ts +0 -6
  1682. package/dist/types/wallet/src/core/signingEngine/session/identity/emailOtpEcdsaDerivationIdentity.typecheck.d.ts +0 -2
  1683. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/activationCoordinator.d.ts +0 -37
  1684. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/laneMaterialInvalidation.d.ts +0 -23
  1685. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/operations.typecheck.d.ts +0 -2
  1686. package/dist/types/wallet/src/core/signingEngine/session/lanes/operations/recipientPreparation.d.ts +0 -55
  1687. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/ecdsaProvisionPlan.typecheck.d.ts +0 -6
  1688. package/dist/types/wallet/src/core/signingEngine/threshold/crypto/ecdsaLaneWasm.d.ts +0 -4
  1689. package/dist/types/wallet/src/core/signingEngine/webauthnAuth/fallbacks/safari-fallbacks.d.ts +0 -44
  1690. package/dist/types/wallet/src/core/signingEngine/workerManager/nearKeyOps/createNearKeyOps.d.ts +0 -4
  1691. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/ecdsaLaneHolderWorkerRuntime.d.ts +0 -20
  1692. package/dist/types/wallet/src/core/signingEngine/workerManager/workers/email-otp/passkeyCustodyLink.d.ts +0 -18
  1693. /package/dist/esm/{react/SeamsWeb → SeamsWeb}/assembly/preconnectWalletAssets.js +0 -0
@@ -1,4274 +0,0 @@
1
- import { D as parseWalletAuthorityId, M as parseWebAuthnRpId, O as parseWalletId, T as parseWalletAuthMethodId, _ as parseMpcSigningWorkerRef, d as parseLinkedDeviceId, h as parseMpcMaterialActivationRef, k as parseWalletKeyId, l as parseLinkDeviceSessionId, n as hasWhitespaceOrControlCharacters, r as mpcMaterialActivationRefsEqual, u as parseLinkedDeviceEnrollmentId } from "./domainIds-lcrFg6Sa.js";
2
- import { D as parseImplicitNearAccountId, O as parseNamedNearAccountId, _ as requireRecord, m as requireArray, v as requireRecordCopy } from "./validation-gat4LEKm.js";
3
- import { i as base64UrlEncode, r as base64UrlDecode } from "./base64-Clm8C-e9.js";
4
- import { A as delegatedWalletPermissionNamesV1, C as parseEnvelopeNonceB64u, E as parseSecp256k1CompressedPublicKeyB64u, F as exactRecord$3, I as rejectUnknownFields$1, O as requireParsed, S as parseEnvelopeCiphertextB64u, _ as signingRootScopeFromRuntimePolicyScope, b as parseDigestField$1, d as normalizeThresholdEd25519ParticipantIds, v as deriveEvmFamilySigningKeySlotId$1, x as parseEd25519PublicKeyB64u } from "./sessionPolicy-DO-MkL65.js";
5
- import { $t as wireLiteral, At as parseActiveWalletSessionV1, Bt as parseDelegatedWalletAuthority, Ct as parseRouterAbMpcMaterialActivationRef, Dt as sameRouterAbMpcMaterialActivationRef, Ft as digest, Gt as rpId$1, Ht as parseNonNegativeSafeInteger, It as enrollmentId, Jt as walletAuthorityId, Kt as sessionId, Lt as keyLabeled, Nt as authorizationDeviceId, Ot as requireRouterAbX25519PublicKey, Pt as credentialId, Qt as walletSessionId, Rt as linkedDeviceId, Tt as routerAbMpcMaterialActivationRefFromWire, Ut as parseTargetEmail, Vt as parseNonEmptyToken, Wt as parseUnixTime, Xt as walletKeyId, Yt as walletId, Zt as walletSessionAuthorizationId, en as wireNullable, j as requireRouterAbEcdsaDerivationNormalSigningStateV1, qt as walletAuthMethodId, rn as wireUnion, tn as wireObject, xt as parseSdkEcdsaDerivationThresholdKeyId, zt as nullableToken } from "./ecdsaPresignLifecycle-Bfx2AQKb.js";
6
- import { d as parseMpcWalletSigningQuotaId, f as parsePrincipalId, h as parseWalletSessionId, l as parseDeviceId, m as parseWalletSessionAuthorizationId, p as parseTenantId } from "./capabilityKinds-hvYqa6S_.js";
7
- import { f as alphabetizeStringify, m as sha256BytesUtf8 } from "./chains-BMh3btVo.js";
8
- import { a as sha256DigestB64u, o as sha256Utf8DigestB64u, r as parseDigestB64u } from "./canonicalPrimitives-BTHWz80v.js";
9
- import { c as toWalletId, l as walletIdFromWalletProfile } from "./ecdsaChainTarget-Bl-JWyuw.js";
10
- import { n as SIGNER_AUTH_METHODS } from "./signerDomain-IEAVrOrc.js";
11
- import { _ as rawDigest, b as u32, d as parseWalletSignerActivationSetV1, g as lp32, h as concat, u as parseWalletAuthorityV1, v as rawPublicKey, w as parseWalletAuthMethodRecordV2, x as u64, y as text } from "./walletAuthority-DD9T25F6.js";
12
- import { i as nearEd25519SigningKeyIdFromString } from "./registrationIds-DLSdEKSv.js";
13
- import { r as SigningSessionIds } from "./types-Dx9fczU7.js";
14
- //#region ../shared-ts/src/device-linking/contracts.ts
15
- function assertNeverLinkSessionStateV1(value) {
16
- throw new Error(`[LinkSessionStateV1] unsupported state: ${String(value)}`);
17
- }
18
- //#endregion
19
- //#region ../shared-ts/src/device-linking/ed25519ExportRoot.ts
20
- /**
21
- * Authenticated relay records for the cross-device Ed25519 Yao Client export
22
- * root. The relay sees only public routing facts and an encrypted root.
23
- * Wallet-custody seed bindings deliberately have no representation here.
24
- */
25
- /** Frozen by signer-core's Ed25519 Yao Client-root transfer module. */
26
- const LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1 = "x25519-hkdf-sha256-chacha20poly1305-v1";
27
- const X25519_PUBLIC_KEY_LENGTH = 32;
28
- const UNPADDED_BASE64URL = /^[A-Za-z0-9_-]+$/;
29
- const RECIPIENT_FIELDS = [
30
- "kind",
31
- "linkSessionId",
32
- "walletId",
33
- "walletKeyId",
34
- "enrollmentId",
35
- "deviceId",
36
- "transferAlg",
37
- "applicationBindingDigestB64u",
38
- "registeredPublicKeyB64u",
39
- "targetFactor",
40
- "revocationEpoch",
41
- "recipientPublicKeyB64u",
42
- "registeredAtMs"
43
- ];
44
- const PACKAGE_FIELDS = [
45
- "kind",
46
- "linkSessionId",
47
- "walletId",
48
- "walletKeyId",
49
- "enrollmentId",
50
- "deviceId",
51
- "transferAlg",
52
- "applicationBindingDigestB64u",
53
- "registeredPublicKeyB64u",
54
- "targetFactor",
55
- "revocationEpoch",
56
- "recipientPublicKeyB64u",
57
- "ephemeralPublicKeyB64u",
58
- "nonceB64u",
59
- "sealedExportRootB64u",
60
- "bindingDigestB64u",
61
- "ciphertextDigestB64u",
62
- "sealedAtMs"
63
- ];
64
- function parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u(value, label = "recipientPublicKeyB64u") {
65
- if (typeof value !== "string" || !UNPADDED_BASE64URL.test(value)) throw new Error(`${label} must be unpadded base64url`);
66
- let decoded;
67
- try {
68
- decoded = base64UrlDecode(value);
69
- } catch {
70
- throw new Error(`${label} must be valid base64url`);
71
- }
72
- if (base64UrlEncode(decoded) !== value) throw new Error(`${label} must be canonical base64url`);
73
- if (decoded.length !== X25519_PUBLIC_KEY_LENGTH) throw new Error(`${label} must decode to a 32-byte X25519 public key`);
74
- return value;
75
- }
76
- function buildLinkedDeviceEd25519ExportRootTransferBindingV1(input) {
77
- return {
78
- linkSessionId: input.linkSessionId,
79
- walletId: input.walletId,
80
- walletKeyId: input.walletKeyId,
81
- targetFactor: input.targetFactor,
82
- enrollmentId: input.enrollmentId,
83
- deviceId: input.deviceId,
84
- revocationEpoch: input.revocationEpoch,
85
- applicationBindingDigestB64u: input.applicationBindingDigestB64u,
86
- registeredPublicKeyB64u: input.registeredPublicKeyB64u,
87
- recipientPublicKeyB64u: input.recipientPublicKeyB64u
88
- };
89
- }
90
- /** Serializes exactly the six fields accepted by signer-core's AAD binding. */
91
- function serializeLinkedDeviceEd25519ExportRootTransferBindingV1(binding) {
92
- return JSON.stringify({
93
- linkSessionId: String(binding.linkSessionId),
94
- walletId: String(binding.walletId),
95
- walletKeyId: String(binding.walletKeyId),
96
- targetFactor: binding.targetFactor,
97
- enrollmentId: String(binding.enrollmentId),
98
- deviceId: String(binding.deviceId),
99
- revocationEpoch: binding.revocationEpoch,
100
- applicationBindingDigestB64u: String(binding.applicationBindingDigestB64u),
101
- registeredPublicKeyB64u: String(binding.registeredPublicKeyB64u),
102
- recipientPublicKeyB64u: String(binding.recipientPublicKeyB64u)
103
- });
104
- }
105
- function parseLinkedDeviceEd25519ExportRootRecipientV1(raw) {
106
- const record = exactRecord$2(raw, RECIPIENT_FIELDS, "LinkedDeviceEd25519ExportRootRecipientV1");
107
- if (record.kind !== "linked_device_ed25519_export_root_recipient_v1") throw new Error("LinkedDeviceEd25519ExportRootRecipientV1.kind is invalid");
108
- requireTransferAlg(record.transferAlg, "LinkedDeviceEd25519ExportRootRecipientV1.transferAlg");
109
- return {
110
- kind: "linked_device_ed25519_export_root_recipient_v1",
111
- linkSessionId: requireParsed(parseLinkDeviceSessionId(record.linkSessionId), "LinkedDeviceEd25519ExportRootRecipientV1.linkSessionId"),
112
- walletId: requireParsed(parseWalletId(record.walletId), "walletId"),
113
- walletKeyId: requireParsed(parseWalletKeyId(record.walletKeyId), "walletKeyId"),
114
- enrollmentId: requireParsed(parseLinkedDeviceEnrollmentId(record.enrollmentId), "enrollmentId"),
115
- deviceId: requireParsed(parseLinkedDeviceId(record.deviceId), "deviceId"),
116
- transferAlg: LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1,
117
- applicationBindingDigestB64u: parseDigestField$1(record.applicationBindingDigestB64u, "applicationBindingDigestB64u"),
118
- registeredPublicKeyB64u: parseEd25519PublicKeyB64u(record.registeredPublicKeyB64u, "registeredPublicKeyB64u"),
119
- targetFactor: parseTargetFactor$1(record.targetFactor),
120
- revocationEpoch: parseRevocationEpoch(record.revocationEpoch, "revocationEpoch"),
121
- recipientPublicKeyB64u: parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u(record.recipientPublicKeyB64u, "recipientPublicKeyB64u"),
122
- registeredAtMs: parseUnixMs(record.registeredAtMs, "registeredAtMs")
123
- };
124
- }
125
- function parseLinkedDeviceEd25519ExportRootPackageV1(raw) {
126
- const record = exactRecord$2(raw, PACKAGE_FIELDS, "LinkedDeviceEd25519ExportRootPackageV1");
127
- if (record.kind !== "linked_device_ed25519_export_root_package_v1") throw new Error("LinkedDeviceEd25519ExportRootPackageV1.kind is invalid");
128
- requireTransferAlg(record.transferAlg, "LinkedDeviceEd25519ExportRootPackageV1.transferAlg");
129
- const recipientPublicKeyB64u = parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u(record.recipientPublicKeyB64u, "recipientPublicKeyB64u");
130
- const ephemeralPublicKeyB64u = parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u(record.ephemeralPublicKeyB64u, "ephemeralPublicKeyB64u");
131
- if (recipientPublicKeyB64u === ephemeralPublicKeyB64u) throw new Error("ephemeralPublicKeyB64u repeats the recipient key");
132
- return {
133
- kind: "linked_device_ed25519_export_root_package_v1",
134
- linkSessionId: requireParsed(parseLinkDeviceSessionId(record.linkSessionId), "linkSessionId"),
135
- walletId: requireParsed(parseWalletId(record.walletId), "walletId"),
136
- walletKeyId: requireParsed(parseWalletKeyId(record.walletKeyId), "walletKeyId"),
137
- enrollmentId: requireParsed(parseLinkedDeviceEnrollmentId(record.enrollmentId), "enrollmentId"),
138
- deviceId: requireParsed(parseLinkedDeviceId(record.deviceId), "deviceId"),
139
- transferAlg: LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1,
140
- applicationBindingDigestB64u: parseDigestField$1(record.applicationBindingDigestB64u, "applicationBindingDigestB64u"),
141
- registeredPublicKeyB64u: parseEd25519PublicKeyB64u(record.registeredPublicKeyB64u, "registeredPublicKeyB64u"),
142
- targetFactor: parseTargetFactor$1(record.targetFactor),
143
- revocationEpoch: parseRevocationEpoch(record.revocationEpoch, "revocationEpoch"),
144
- recipientPublicKeyB64u,
145
- ephemeralPublicKeyB64u,
146
- nonceB64u: parseEnvelopeNonceB64u(record.nonceB64u, "nonceB64u"),
147
- sealedExportRootB64u: parseEnvelopeCiphertextB64u(record.sealedExportRootB64u, "sealedExportRootB64u"),
148
- bindingDigestB64u: parseDigestField$1(record.bindingDigestB64u, "bindingDigestB64u"),
149
- ciphertextDigestB64u: parseDigestField$1(record.ciphertextDigestB64u, "ciphertextDigestB64u"),
150
- sealedAtMs: parseUnixMs(record.sealedAtMs, "sealedAtMs")
151
- };
152
- }
153
- function parseTargetFactor$1(raw) {
154
- switch (exactRecord$2(raw, ["kind"], "targetFactor").kind) {
155
- case "passkey_prf": return { kind: "passkey_prf" };
156
- case "email_otp": return { kind: "email_otp" };
157
- default: throw new Error("targetFactor.kind is unsupported");
158
- }
159
- }
160
- function exactRecord$2(raw, fields, label) {
161
- const record = requireRecord(raw, label);
162
- rejectUnknownFields$1(record, fields, label);
163
- for (const field of fields) if (record[field] === void 0) throw new Error(`${label}.${field} is required`);
164
- return record;
165
- }
166
- function requireTransferAlg(value, label) {
167
- if (value !== "x25519-hkdf-sha256-chacha20poly1305-v1") throw new Error(`${label} must be ${LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1}`);
168
- }
169
- function parseRevocationEpoch(value, label) {
170
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new Error(`${label} must be a non-negative safe integer`);
171
- return value;
172
- }
173
- function parseUnixMs(value, label) {
174
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} must be a positive unix-millisecond timestamp`);
175
- return value;
176
- }
177
- //#endregion
178
- //#region ../shared-ts/src/utils/addAuthMethodRegistration.ts
179
- /**
180
- * The canonical WebAuthn registration options for adding a wallet auth method.
181
- *
182
- * This lives in the shared package because three parties read the same record:
183
- * the server that mints it, the browser that passes it to
184
- * `navigator.credentials.create`, and the linked-device target preparation that
185
- * carries it to Device 2. One declaration, so a change to the ceremony cannot
186
- * silently diverge from what a linked device creates its passkey against.
187
- *
188
- * Everything here is fixed by the canonical add-auth-method ceremony: two
189
- * algorithms in a fixed order, a resident key, no attestation, and PRF
190
- * evaluation. Encoding them as literal types rather than open unions is what
191
- * makes a registration that drifted from the ceremony fail to parse instead of
192
- * producing a credential nothing can finalize.
193
- */
194
- function record(value, label) {
195
- if (typeof value !== "object" || value === null || Array.isArray(value)) throw new Error(`${label} must be an object`);
196
- return value;
197
- }
198
- function token(value, label) {
199
- if (typeof value !== "string") throw new Error(`${label} must be a string`);
200
- const trimmed = value.trim();
201
- if (!trimmed) throw new Error(`${label} must not be empty`);
202
- if (trimmed !== value) throw new Error(`${label} must not be padded with whitespace`);
203
- return trimmed;
204
- }
205
- /**
206
- * The relying party is branded at the boundary rather than at each use, so a
207
- * consumer cannot verify a credential against an unvalidated host string.
208
- */
209
- function rpId(value, label) {
210
- const parsed = parseWebAuthnRpId(token(value, label));
211
- if (!parsed.ok) throw new Error(`${label} is invalid: ${parsed.error.message}`);
212
- return parsed.value;
213
- }
214
- function literal(value, expected, label) {
215
- if (value !== expected) throw new Error(`${label} must be ${String(expected)}`);
216
- return expected;
217
- }
218
- /**
219
- * Throws on anything that is not exactly a canonical add-auth-method
220
- * registration. Callers that need a nullable result wrap this rather than
221
- * writing a second, looser reading of the same record.
222
- */
223
- function parseWalletAddAuthMethodRegistrationOptions(raw) {
224
- const label = "WalletAddAuthMethodRegistrationOptions";
225
- const value = record(raw, label);
226
- literal(value.kind, "webauthn_add_auth_method_registration_v1", `${label}.kind`);
227
- const user = record(value.user, `${label}.user`);
228
- const selection = record(value.authenticatorSelection, `${label}.authenticatorSelection`);
229
- const prfEval = record(record(record(value.extensions, `${label}.extensions`).prf, `${label}.extensions.prf`).eval, `${label}.extensions.prf.eval`);
230
- if (!Array.isArray(value.pubKeyCredParams) || value.pubKeyCredParams.length !== 2) throw new Error(`${label}.pubKeyCredParams must list exactly two algorithms`);
231
- const [first, second] = value.pubKeyCredParams;
232
- literal(record(first, `${label}.pubKeyCredParams[0]`).type, "public-key", `${label}.pubKeyCredParams[0].type`);
233
- literal(record(first, `${label}.pubKeyCredParams[0]`).alg, -7, `${label}.pubKeyCredParams[0].alg`);
234
- literal(record(second, `${label}.pubKeyCredParams[1]`).type, "public-key", `${label}.pubKeyCredParams[1].type`);
235
- literal(record(second, `${label}.pubKeyCredParams[1]`).alg, -257, `${label}.pubKeyCredParams[1].alg`);
236
- if (!Array.isArray(value.excludeCredentials)) throw new Error(`${label}.excludeCredentials must be an array`);
237
- const excludeCredentials = value.excludeCredentials.map((entry, index) => {
238
- const credential = record(entry, `${label}.excludeCredentials[${index}]`);
239
- return {
240
- type: literal(credential.type, "public-key", `${label}.excludeCredentials[${index}].type`),
241
- id: token(credential.id, `${label}.excludeCredentials[${index}].id`)
242
- };
243
- });
244
- const timeoutMs = value.timeoutMs;
245
- if (typeof timeoutMs !== "number" || !Number.isSafeInteger(timeoutMs) || timeoutMs <= 0) throw new Error(`${label}.timeoutMs must be a positive safe integer`);
246
- return {
247
- kind: "webauthn_add_auth_method_registration_v1",
248
- challengeId: token(value.challengeId, `${label}.challengeId`),
249
- challengeB64u: token(value.challengeB64u, `${label}.challengeB64u`),
250
- rpId: rpId(value.rpId, `${label}.rpId`),
251
- user: {
252
- idB64u: token(user.idB64u, `${label}.user.idB64u`),
253
- name: token(user.name, `${label}.user.name`),
254
- displayName: token(user.displayName, `${label}.user.displayName`)
255
- },
256
- pubKeyCredParams: [{
257
- type: "public-key",
258
- alg: -7
259
- }, {
260
- type: "public-key",
261
- alg: -257
262
- }],
263
- authenticatorSelection: {
264
- residentKey: literal(selection.residentKey, "required", `${label}.authenticatorSelection.residentKey`),
265
- userVerification: literal(selection.userVerification, "preferred", `${label}.authenticatorSelection.userVerification`)
266
- },
267
- timeoutMs,
268
- attestation: literal(value.attestation, "none", `${label}.attestation`),
269
- extensions: { prf: { eval: {
270
- firstB64u: token(prfEval.firstB64u, `${label}.extensions.prf.eval.firstB64u`),
271
- secondB64u: token(prfEval.secondB64u, `${label}.extensions.prf.eval.secondB64u`)
272
- } } },
273
- excludeCredentials
274
- };
275
- }
276
- //#endregion
277
- //#region ../shared-ts/src/utils/routerAbEd25519YaoDigests.ts
278
- const APPLICATION_BINDING_DOMAIN = "seams/router-ab/ed25519-yao/application-binding/v1";
279
- const UTF8 = new TextEncoder();
280
- function requireVisibleIdentifier(value, label) {
281
- if (typeof value !== "string" || value.length === 0) throw new Error(`${label} must be a non-empty visible ASCII string`);
282
- for (let index = 0; index < value.length; index += 1) {
283
- const code = value.charCodeAt(index);
284
- if (code < 33 || code > 126) throw new Error(`${label} must contain visible ASCII bytes`);
285
- }
286
- return value;
287
- }
288
- function requireByte(value, label) {
289
- if (typeof value !== "number" || !Number.isInteger(value) || value < 0 || value > 255) throw new Error(`${label} must be a byte`);
290
- return value;
291
- }
292
- function requireBytes(value, label, minimumLength, maximumLength) {
293
- if (!Array.isArray(value)) throw new Error(`${label} must be a byte array`);
294
- if (value.length < minimumLength || value.length > maximumLength) throw new Error(`${label} has an invalid length`);
295
- const parsed = [];
296
- for (let index = 0; index < value.length; index += 1) parsed.push(requireByte(value[index], `${label}[${index}]`));
297
- return parsed;
298
- }
299
- function requireBytes32(value, label, nonzero) {
300
- const parsed = requireBytes(value, label, 32, 32);
301
- if (nonzero && isZeroBytes(parsed)) throw new Error(`${label} must be nonzero`);
302
- return parsed;
303
- }
304
- function isZeroBytes(value) {
305
- for (const byte of value) if (byte !== 0) return false;
306
- return true;
307
- }
308
- function equalBytes(left, right) {
309
- if (left.length !== right.length) return false;
310
- for (let index = 0; index < left.length; index += 1) if (left[index] !== right[index]) return false;
311
- return true;
312
- }
313
- function u32BigEndian(value) {
314
- const bytes = new Uint8Array(4);
315
- new DataView(bytes.buffer).setUint32(0, value, false);
316
- return bytes;
317
- }
318
- function concatenateBytes(chunks) {
319
- let length = 0;
320
- for (const chunk of chunks) length += chunk.length;
321
- const output = new Uint8Array(length);
322
- let offset = 0;
323
- for (const chunk of chunks) {
324
- output.set(chunk, offset);
325
- offset += chunk.length;
326
- }
327
- return output;
328
- }
329
- function lengthDelimited(value) {
330
- return concatenateBytes([u32BigEndian(value.length), value]);
331
- }
332
- function labeledField(label, value) {
333
- return concatenateBytes([lengthDelimited(UTF8.encode(label)), lengthDelimited(value)]);
334
- }
335
- async function sha256(value) {
336
- const digest = await globalThis.crypto.subtle.digest("SHA-256", value);
337
- return new Uint8Array(digest);
338
- }
339
- async function deriveRouterAbEd25519YaoApplicationBindingDigestV1(facts) {
340
- const encoded = concatenateBytes([
341
- lengthDelimited(UTF8.encode(APPLICATION_BINDING_DOMAIN)),
342
- labeledField("walletId", UTF8.encode(facts.wallet_id)),
343
- labeledField("nearEd25519SigningKeyId", UTF8.encode(facts.near_ed25519_signing_key_id)),
344
- labeledField("signingRootId", UTF8.encode(facts.signing_root_id)),
345
- labeledField("keyCreationSignerSlot", u32BigEndian(facts.key_creation_signer_slot))
346
- ]);
347
- return Array.from(await sha256(encoded));
348
- }
349
- //#endregion
350
- //#region ../shared-ts/src/utils/routerAbEd25519Yao.ts
351
- const ROUTER_AB_ED25519_YAO_REGISTRATION_ADMISSION_PATH_V1 = "/router-ab/ed25519/yao/registration/admit";
352
- const ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1 = "/router-ab/ed25519/yao/registration/execute";
353
- const ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1 = "/router-ab/ed25519/yao/recovery/admit";
354
- const ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1 = "/router-ab/ed25519/yao/recovery/execute";
355
- const ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1 = "/router-ab/ed25519/yao/recovery/activate";
356
- const ROUTER_AB_ED25519_YAO_RECOVERY_CHALLENGE_ID_HEADER_V1 = "x-seams-wallet-recovery-challenge-id";
357
- const ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1 = "/router-ab/ed25519/yao/recovery/bootstrap";
358
- const ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1 = "router_ab_ed25519_yao_email_otp_recovery_v1";
359
- const ROUTER_AB_ED25519_YAO_EXPORT_ADMISSION_PATH_V1 = "/router-ab/ed25519/yao/export/admit";
360
- const ROUTER_AB_ED25519_YAO_EXPORT_EXECUTE_PATH_V1 = "/router-ab/ed25519/yao/export/execute";
361
- const ED25519_YAO_CONTROL_CIPHERTEXT_MAX_BYTES_V1 = 64 * 1024;
362
- function sameRouterAbEd25519YaoActivationBindingV1(left, right) {
363
- return left.operation === right.operation && sameRouterAbEd25519YaoByteSequence(left.session_id, right.session_id) && sameRouterAbEd25519YaoByteSequence(left.stable_key_context_binding, right.stable_key_context_binding) && sameRouterAbMpcMaterialActivationRef(left.material_activation, right.material_activation) && left.lifecycle.lifecycle_id === right.lifecycle.lifecycle_id && left.lifecycle.work_kind === right.lifecycle.work_kind && left.lifecycle.primitive_request_kind === right.lifecycle.primitive_request_kind && left.lifecycle.root_share_epoch === right.lifecycle.root_share_epoch && left.lifecycle.account_id === right.lifecycle.account_id && left.lifecycle.session_id === right.lifecycle.session_id && left.lifecycle.signer_set_id === right.lifecycle.signer_set_id && left.lifecycle.selected_server_id === right.lifecycle.selected_server_id;
364
- }
365
- function sameRouterAbEd25519YaoByteSequence(left, right) {
366
- return left.length === right.length && left.every((value, index) => value === right[index]);
367
- }
368
- function sameRouterAbEd25519YaoParticipantPairV1(left, right) {
369
- return left[0] === right[0] && left[1] === right[1];
370
- }
371
- function sameRouterAbEd25519YaoLifecycleScopeV1(left, right) {
372
- return left.lifecycle_id === right.lifecycle_id && left.root_share_epoch === right.root_share_epoch && left.account_id === right.account_id && left.threshold_session_id === right.threshold_session_id && left.signer_set_id === right.signer_set_id && left.signing_worker_id === right.signing_worker_id && sameRouterAbMpcMaterialActivationRef(left.material_activation, right.material_activation);
373
- }
374
- function sameRouterAbEd25519YaoApplicationBindingFactsV1(left, right) {
375
- return left.wallet_id === right.wallet_id && left.near_ed25519_signing_key_id === right.near_ed25519_signing_key_id && left.signing_root_id === right.signing_root_id && left.key_creation_signer_slot === right.key_creation_signer_slot;
376
- }
377
- function sameRouterAbEd25519YaoRegistrationAdmissionRequestV1(left, right) {
378
- return sameRouterAbEd25519YaoLifecycleScopeV1(left.scope, right.scope) && sameRouterAbEd25519YaoApplicationBindingFactsV1(left.application_binding, right.application_binding) && sameRouterAbEd25519YaoParticipantPairV1(left.participant_ids, right.participant_ids);
379
- }
380
- const REGISTRATION_WORK_KIND = "registration_prepare";
381
- const REGISTRATION_PRIMITIVE_REQUEST_KIND = "registration";
382
- const RECOVERY_WORK_KIND = "recovery";
383
- const RECOVERY_PRIMITIVE_REQUEST_KIND = "recovery";
384
- const EXPORT_WORK_KIND = "key_export";
385
- const EXPORT_PRIMITIVE_REQUEST_KIND = "export";
386
- function requireExactKeys(record, label, allowedKeys) {
387
- const allowed = new Set(allowedKeys);
388
- for (const key of Object.keys(record)) if (!allowed.has(key)) throw new Error(`${label}.${key} is not a supported field`);
389
- for (const key of allowedKeys) if (!Object.hasOwn(record, key)) throw new Error(`${label}.${key} is required`);
390
- }
391
- function requirePositiveU32(value, label) {
392
- if (!Number.isInteger(value) || typeof value !== "number" || value <= 0 || value > 4294967295) throw new Error(`${label} must be a positive u32`);
393
- return value;
394
- }
395
- function requirePositiveSafeInteger(value, label) {
396
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0) throw new Error(`${label} must be a positive safe integer`);
397
- return value;
398
- }
399
- function parseOperation(value, label) {
400
- switch (value) {
401
- case "registration":
402
- case "recovery":
403
- case "refresh":
404
- case "export":
405
- case "lane_provisioning":
406
- case "lane_refresh": return value;
407
- default: throw new Error(`${label} is invalid`);
408
- }
409
- }
410
- function parseDeriverRole(value, label) {
411
- switch (value) {
412
- case "deriver_a":
413
- case "deriver_b": return value;
414
- default: throw new Error(`${label} is invalid`);
415
- }
416
- }
417
- function parseInputKind(value, label) {
418
- switch (value) {
419
- case "activation":
420
- case "export": return value;
421
- default: throw new Error(`${label} is invalid`);
422
- }
423
- }
424
- function parsePackageKind(value, label) {
425
- switch (value) {
426
- case "activation_client":
427
- case "activation_signing_worker":
428
- case "export_client": return value;
429
- default: throw new Error(`${label} is invalid`);
430
- }
431
- }
432
- function parseWorkKind(value, label) {
433
- switch (value) {
434
- case "registration_prepare":
435
- case "key_export":
436
- case "recovery":
437
- case "server_share_refresh": return value;
438
- default: throw new Error(`${label} is invalid`);
439
- }
440
- }
441
- function parsePrimitiveRequestKind(value, label) {
442
- switch (value) {
443
- case "registration":
444
- case "recovery":
445
- case "export":
446
- case "refresh": return value;
447
- default: throw new Error(`${label} is invalid`);
448
- }
449
- }
450
- function parseRouterAbEd25519YaoApplicationBindingFactsV1(value) {
451
- const record = requireRecord(value, "application_binding");
452
- requireExactKeys(record, "application_binding", [
453
- "wallet_id",
454
- "near_ed25519_signing_key_id",
455
- "signing_root_id",
456
- "key_creation_signer_slot"
457
- ]);
458
- return {
459
- wallet_id: requireVisibleIdentifier(record.wallet_id, "application_binding.wallet_id"),
460
- near_ed25519_signing_key_id: requireVisibleIdentifier(record.near_ed25519_signing_key_id, "application_binding.near_ed25519_signing_key_id"),
461
- signing_root_id: requireVisibleIdentifier(record.signing_root_id, "application_binding.signing_root_id"),
462
- key_creation_signer_slot: requirePositiveU32(record.key_creation_signer_slot, "application_binding.key_creation_signer_slot")
463
- };
464
- }
465
- function parsePublicLifecycleScope(value) {
466
- const record = requireRecord(value, "scope");
467
- requireExactKeys(record, "scope", [
468
- "lifecycle_id",
469
- "root_share_epoch",
470
- "account_id",
471
- "threshold_session_id",
472
- "signer_set_id",
473
- "signing_worker_id",
474
- "material_activation"
475
- ]);
476
- const accountId = requireVisibleIdentifier(record.account_id, "scope.account_id");
477
- const signingWorkerId = requireVisibleIdentifier(record.signing_worker_id, "scope.signing_worker_id");
478
- const materialActivation = parseRouterAbMpcMaterialActivationRef(record.material_activation);
479
- if (materialActivation.material_owner !== accountId || materialActivation.signing_worker !== signingWorkerId) throw new Error("scope.material_activation does not match the lifecycle owner and worker");
480
- return {
481
- lifecycle_id: requireVisibleIdentifier(record.lifecycle_id, "scope.lifecycle_id"),
482
- root_share_epoch: requireVisibleIdentifier(record.root_share_epoch, "scope.root_share_epoch"),
483
- account_id: accountId,
484
- threshold_session_id: requireVisibleIdentifier(record.threshold_session_id, "scope.threshold_session_id"),
485
- signer_set_id: requireVisibleIdentifier(record.signer_set_id, "scope.signer_set_id"),
486
- signing_worker_id: signingWorkerId,
487
- material_activation: materialActivation
488
- };
489
- }
490
- function parseParticipantIds$1(value) {
491
- if (!Array.isArray(value) || value.length !== 2) throw new Error("participant_ids must contain exactly two values");
492
- const first = requirePositiveU32(value[0], "participant_ids[0]");
493
- const second = requirePositiveU32(value[1], "participant_ids[1]");
494
- if (first > 65535 || second > 65535 || first >= second) throw new Error("participant_ids must be distinct, nonzero, ascending u16 values");
495
- return [first, second];
496
- }
497
- function parseRouterAbEd25519YaoParticipantIdsV1(value) {
498
- return parseParticipantIds$1(value);
499
- }
500
- function parseAdmittedLifecycle(value) {
501
- const record = requireRecord(value, "binding.lifecycle");
502
- requireExactKeys(record, "binding.lifecycle", [
503
- "lifecycle_id",
504
- "work_kind",
505
- "primitive_request_kind",
506
- "root_share_epoch",
507
- "account_id",
508
- "session_id",
509
- "signer_set_id",
510
- "selected_server_id"
511
- ]);
512
- const lifecycle = {
513
- lifecycle_id: requireVisibleIdentifier(record.lifecycle_id, "binding.lifecycle.lifecycle_id"),
514
- work_kind: parseWorkKind(record.work_kind, "binding.lifecycle.work_kind"),
515
- primitive_request_kind: parsePrimitiveRequestKind(record.primitive_request_kind, "binding.lifecycle.primitive_request_kind"),
516
- root_share_epoch: requireVisibleIdentifier(record.root_share_epoch, "binding.lifecycle.root_share_epoch"),
517
- account_id: requireVisibleIdentifier(record.account_id, "binding.lifecycle.account_id"),
518
- session_id: requireVisibleIdentifier(record.session_id, "binding.lifecycle.session_id"),
519
- signer_set_id: requireVisibleIdentifier(record.signer_set_id, "binding.lifecycle.signer_set_id"),
520
- selected_server_id: requireVisibleIdentifier(record.selected_server_id, "binding.lifecycle.selected_server_id")
521
- };
522
- if (lifecycle.work_kind === REGISTRATION_WORK_KIND && lifecycle.primitive_request_kind !== REGISTRATION_PRIMITIVE_REQUEST_KIND) throw new Error("binding.lifecycle primitive request kind does not match its work kind");
523
- if (lifecycle.work_kind === RECOVERY_WORK_KIND && lifecycle.primitive_request_kind !== RECOVERY_PRIMITIVE_REQUEST_KIND) throw new Error("binding.lifecycle primitive request kind does not match its work kind");
524
- if (lifecycle.work_kind === EXPORT_WORK_KIND && lifecycle.primitive_request_kind !== EXPORT_PRIMITIVE_REQUEST_KIND) throw new Error("binding.lifecycle primitive request kind does not match its work kind");
525
- return lifecycle;
526
- }
527
- function parseCeremonyBinding(value) {
528
- const record = requireRecord(value, "binding");
529
- requireExactKeys(record, "binding", [
530
- "lifecycle",
531
- "operation",
532
- "session_id",
533
- "stable_key_context_binding",
534
- "material_activation"
535
- ]);
536
- const binding = {
537
- lifecycle: parseAdmittedLifecycle(record.lifecycle),
538
- operation: parseOperation(record.operation, "binding.operation"),
539
- session_id: requireBytes32(record.session_id, "binding.session_id", true),
540
- stable_key_context_binding: requireBytes32(record.stable_key_context_binding, "binding.stable_key_context_binding", false),
541
- material_activation: parseRouterAbMpcMaterialActivationRef(record.material_activation)
542
- };
543
- if (binding.operation === "registration" && binding.lifecycle.work_kind !== REGISTRATION_WORK_KIND) throw new Error("binding operation does not match its lifecycle work kind");
544
- if (binding.operation === "recovery" && binding.lifecycle.work_kind !== RECOVERY_WORK_KIND) throw new Error("binding operation does not match its lifecycle work kind");
545
- if (binding.operation === "export" && binding.lifecycle.work_kind !== EXPORT_WORK_KIND) throw new Error("binding operation does not match its lifecycle work kind");
546
- if (binding.material_activation.material_owner !== binding.lifecycle.account_id || binding.material_activation.signing_worker !== binding.lifecycle.selected_server_id) throw new Error("binding material activation does not match its lifecycle owner and worker");
547
- return binding;
548
- }
549
- function parseRouterAbEd25519YaoCeremonyBindingV1(value) {
550
- return parseCeremonyBinding(value);
551
- }
552
- function requireExportCeremonyBinding(value) {
553
- const binding = parseCeremonyBinding(value);
554
- if (binding.operation !== "export" || binding.lifecycle.work_kind !== EXPORT_WORK_KIND || binding.lifecycle.primitive_request_kind !== EXPORT_PRIMITIVE_REQUEST_KIND) throw new Error("export binding requires the exact export lifecycle");
555
- return {
556
- lifecycle: {
557
- lifecycle_id: binding.lifecycle.lifecycle_id,
558
- work_kind: EXPORT_WORK_KIND,
559
- primitive_request_kind: EXPORT_PRIMITIVE_REQUEST_KIND,
560
- root_share_epoch: binding.lifecycle.root_share_epoch,
561
- account_id: binding.lifecycle.account_id,
562
- session_id: binding.lifecycle.session_id,
563
- signer_set_id: binding.lifecycle.signer_set_id,
564
- selected_server_id: binding.lifecycle.selected_server_id
565
- },
566
- operation: "export",
567
- session_id: binding.session_id,
568
- stable_key_context_binding: binding.stable_key_context_binding,
569
- material_activation: binding.material_activation
570
- };
571
- }
572
- function parseExportBinding(value) {
573
- const record = requireRecord(value, "export binding");
574
- requireExactKeys(record, "export binding", [
575
- "ceremony",
576
- "registered_public_key",
577
- "state_epoch",
578
- "runtime_policy_binding",
579
- "authorization_digest"
580
- ]);
581
- return {
582
- ceremony: requireExportCeremonyBinding(record.ceremony),
583
- registered_public_key: requireBytes32(record.registered_public_key, "export binding.registered_public_key", true),
584
- state_epoch: requirePositiveSafeInteger(record.state_epoch, "export binding.state_epoch"),
585
- runtime_policy_binding: requireBytes32(record.runtime_policy_binding, "export binding.runtime_policy_binding", true),
586
- authorization_digest: requireBytes32(record.authorization_digest, "export binding.authorization_digest", true)
587
- };
588
- }
589
- function requireActivationBinding(binding) {
590
- switch (binding.operation) {
591
- case "registration":
592
- if (binding.lifecycle.work_kind !== REGISTRATION_WORK_KIND || binding.lifecycle.primitive_request_kind !== REGISTRATION_PRIMITIVE_REQUEST_KIND) throw new Error("activation binding has the wrong registration lifecycle kind");
593
- return {
594
- lifecycle: {
595
- lifecycle_id: binding.lifecycle.lifecycle_id,
596
- work_kind: REGISTRATION_WORK_KIND,
597
- primitive_request_kind: REGISTRATION_PRIMITIVE_REQUEST_KIND,
598
- root_share_epoch: binding.lifecycle.root_share_epoch,
599
- account_id: binding.lifecycle.account_id,
600
- session_id: binding.lifecycle.session_id,
601
- signer_set_id: binding.lifecycle.signer_set_id,
602
- selected_server_id: binding.lifecycle.selected_server_id
603
- },
604
- operation: "registration",
605
- session_id: binding.session_id,
606
- stable_key_context_binding: binding.stable_key_context_binding,
607
- material_activation: binding.material_activation
608
- };
609
- case "recovery":
610
- if (binding.lifecycle.work_kind !== RECOVERY_WORK_KIND || binding.lifecycle.primitive_request_kind !== RECOVERY_PRIMITIVE_REQUEST_KIND) throw new Error("activation binding has the wrong recovery lifecycle kind");
611
- return {
612
- lifecycle: {
613
- lifecycle_id: binding.lifecycle.lifecycle_id,
614
- work_kind: RECOVERY_WORK_KIND,
615
- primitive_request_kind: RECOVERY_PRIMITIVE_REQUEST_KIND,
616
- root_share_epoch: binding.lifecycle.root_share_epoch,
617
- account_id: binding.lifecycle.account_id,
618
- session_id: binding.lifecycle.session_id,
619
- signer_set_id: binding.lifecycle.signer_set_id,
620
- selected_server_id: binding.lifecycle.selected_server_id
621
- },
622
- operation: "recovery",
623
- session_id: binding.session_id,
624
- stable_key_context_binding: binding.stable_key_context_binding,
625
- material_activation: binding.material_activation
626
- };
627
- case "refresh":
628
- case "export":
629
- case "lane_provisioning":
630
- case "lane_refresh": throw new Error("activation binding has a non-activation operation");
631
- }
632
- }
633
- function parseKeyset(value) {
634
- const record = requireRecord(value, "keyset");
635
- requireExactKeys(record, "keyset", [
636
- "deriver_a_input_public_key",
637
- "deriver_b_input_public_key",
638
- "signing_worker_recipient_public_key"
639
- ]);
640
- const keyset = {
641
- deriver_a_input_public_key: requireBytes32(record.deriver_a_input_public_key, "keyset.deriver_a_input_public_key", true),
642
- deriver_b_input_public_key: requireBytes32(record.deriver_b_input_public_key, "keyset.deriver_b_input_public_key", true),
643
- signing_worker_recipient_public_key: requireBytes32(record.signing_worker_recipient_public_key, "keyset.signing_worker_recipient_public_key", true)
644
- };
645
- if (equalBytes(keyset.deriver_a_input_public_key, keyset.deriver_b_input_public_key) || equalBytes(keyset.deriver_a_input_public_key, keyset.signing_worker_recipient_public_key) || equalBytes(keyset.deriver_b_input_public_key, keyset.signing_worker_recipient_public_key)) throw new Error("keyset public keys must be distinct");
646
- return keyset;
647
- }
648
- function parseEncryptedInput(value, label) {
649
- const record = requireRecord(value, label);
650
- requireExactKeys(record, label, [
651
- "kind",
652
- "deriver",
653
- "operation",
654
- "session",
655
- "stable_context_binding",
656
- "encapsulated_key",
657
- "ciphertext"
658
- ]);
659
- const input = {
660
- kind: parseInputKind(record.kind, `${label}.kind`),
661
- deriver: parseDeriverRole(record.deriver, `${label}.deriver`),
662
- operation: parseOperation(record.operation, `${label}.operation`),
663
- session: requireBytes32(record.session, `${label}.session`, true),
664
- stable_context_binding: requireBytes32(record.stable_context_binding, `${label}.stable_context_binding`, true),
665
- encapsulated_key: requireBytes32(record.encapsulated_key, `${label}.encapsulated_key`, true),
666
- ciphertext: requireBytes(record.ciphertext, `${label}.ciphertext`, 16, ED25519_YAO_CONTROL_CIPHERTEXT_MAX_BYTES_V1)
667
- };
668
- if (input.kind === "activation" && input.operation === "export") throw new Error(`${label} operation does not match its circuit family`);
669
- if (input.kind === "export" && input.operation !== "export") throw new Error(`${label} operation does not match its circuit family`);
670
- return input;
671
- }
672
- function requireActivationInput(binding, input, expectedDeriver, label) {
673
- if (input.kind !== "activation" || input.deriver !== expectedDeriver || input.operation !== binding.operation || !equalBytes(input.session, binding.session_id) || !equalBytes(input.stable_context_binding, binding.stable_key_context_binding)) throw new Error(`${label} does not match the admitted activation binding`);
674
- switch (binding.operation) {
675
- case "registration": return {
676
- kind: "activation",
677
- deriver: expectedDeriver,
678
- operation: "registration",
679
- session: input.session,
680
- stable_context_binding: input.stable_context_binding,
681
- encapsulated_key: input.encapsulated_key,
682
- ciphertext: input.ciphertext
683
- };
684
- case "recovery": return {
685
- kind: "activation",
686
- deriver: expectedDeriver,
687
- operation: "recovery",
688
- session: input.session,
689
- stable_context_binding: input.stable_context_binding,
690
- encapsulated_key: input.encapsulated_key,
691
- ciphertext: input.ciphertext
692
- };
693
- }
694
- }
695
- function requireExportInput(binding, input, expectedDeriver, label) {
696
- if (input.kind !== "export" || input.deriver !== expectedDeriver || input.operation !== "export" || !equalBytes(input.session, binding.ceremony.session_id) || !equalBytes(input.stable_context_binding, binding.ceremony.stable_key_context_binding)) throw new Error(`${label} does not match the admitted export binding`);
697
- return {
698
- kind: "export",
699
- deriver: expectedDeriver,
700
- operation: "export",
701
- session: input.session,
702
- stable_context_binding: input.stable_context_binding,
703
- encapsulated_key: input.encapsulated_key,
704
- ciphertext: input.ciphertext
705
- };
706
- }
707
- function parseEncryptedPackage(value, label) {
708
- const record = requireRecord(value, label);
709
- requireExactKeys(record, label, [
710
- "kind",
711
- "deriver",
712
- "session",
713
- "transcript",
714
- "encapsulated_key",
715
- "ciphertext"
716
- ]);
717
- return {
718
- kind: parsePackageKind(record.kind, `${label}.kind`),
719
- deriver: parseDeriverRole(record.deriver, `${label}.deriver`),
720
- session: requireBytes32(record.session, `${label}.session`, true),
721
- transcript: requireBytes32(record.transcript, `${label}.transcript`, true),
722
- encapsulated_key: requireBytes32(record.encapsulated_key, `${label}.encapsulated_key`, true),
723
- ciphertext: requireBytes(record.ciphertext, `${label}.ciphertext`, 16, ED25519_YAO_CONTROL_CIPHERTEXT_MAX_BYTES_V1)
724
- };
725
- }
726
- function parseRouterAbEd25519YaoActivationPublicReceiptV1(value) {
727
- const record = requireRecord(value, "public_receipt");
728
- requireExactKeys(record, "public_receipt", [
729
- "transcript",
730
- "registered_public_key",
731
- "joined_client_commitment",
732
- "joined_signing_worker_commitment",
733
- "signing_worker_verifying_share",
734
- "state_epoch",
735
- "material_activation"
736
- ]);
737
- return {
738
- transcript: requireBytes32(record.transcript, "public_receipt.transcript", true),
739
- registered_public_key: requireBytes32(record.registered_public_key, "public_receipt.registered_public_key", true),
740
- joined_client_commitment: requireBytes32(record.joined_client_commitment, "public_receipt.joined_client_commitment", true),
741
- joined_signing_worker_commitment: requireBytes32(record.joined_signing_worker_commitment, "public_receipt.joined_signing_worker_commitment", true),
742
- signing_worker_verifying_share: requireBytes32(record.signing_worker_verifying_share, "public_receipt.signing_worker_verifying_share", true),
743
- state_epoch: requirePositiveSafeInteger(record.state_epoch, "public_receipt.state_epoch"),
744
- material_activation: parseRouterAbMpcMaterialActivationRef(record.material_activation)
745
- };
746
- }
747
- function requireActivationClientPackage(binding, receipt, packageValue, expectedDeriver, label) {
748
- if (packageValue.kind !== "activation_client" || packageValue.deriver !== expectedDeriver || !equalBytes(packageValue.session, binding.session_id) || !equalBytes(packageValue.transcript, receipt.transcript)) throw new Error(`${label} does not match the terminal activation receipt`);
749
- return {
750
- kind: "activation_client",
751
- deriver: expectedDeriver,
752
- session: packageValue.session,
753
- transcript: packageValue.transcript,
754
- encapsulated_key: packageValue.encapsulated_key,
755
- ciphertext: packageValue.ciphertext
756
- };
757
- }
758
- function requireExportClientPackage(binding, transcript, packageValue, expectedDeriver, label) {
759
- if (packageValue.kind !== "export_client" || packageValue.deriver !== expectedDeriver || !equalBytes(packageValue.session, binding.ceremony.session_id) || !equalBytes(packageValue.transcript, transcript)) throw new Error(`${label} does not match the terminal export result`);
760
- return {
761
- kind: "export_client",
762
- deriver: expectedDeriver,
763
- session: packageValue.session,
764
- transcript: packageValue.transcript,
765
- encapsulated_key: packageValue.encapsulated_key,
766
- ciphertext: packageValue.ciphertext
767
- };
768
- }
769
- function parseBoundary(parser, value) {
770
- try {
771
- return {
772
- ok: true,
773
- value: parser(value)
774
- };
775
- } catch (error) {
776
- return {
777
- ok: false,
778
- code: "invalid_body",
779
- message: error instanceof Error ? error.message : String(error)
780
- };
781
- }
782
- }
783
- function parseRegistrationAdmissionRequestValue(value) {
784
- const record = requireRecord(value, "registration admission request");
785
- requireExactKeys(record, "registration admission request", [
786
- "scope",
787
- "application_binding",
788
- "participant_ids"
789
- ]);
790
- return {
791
- scope: parsePublicLifecycleScope(record.scope),
792
- application_binding: parseRouterAbEd25519YaoApplicationBindingFactsV1(record.application_binding),
793
- participant_ids: parseParticipantIds$1(record.participant_ids)
794
- };
795
- }
796
- function parseRecoveryAdmissionRequestValue(value) {
797
- const record = requireRecord(value, "recovery admission request");
798
- requireExactKeys(record, "recovery admission request", [
799
- "scope",
800
- "active_material_activation",
801
- "application_binding",
802
- "participant_ids",
803
- "active_capability_binding",
804
- "replacement_capability_binding",
805
- "registered_public_key"
806
- ]);
807
- const activeCapabilityBinding = requireBytes32(record.active_capability_binding, "recovery admission request.active_capability_binding", true);
808
- const replacementCapabilityBinding = requireBytes32(record.replacement_capability_binding, "recovery admission request.replacement_capability_binding", true);
809
- if (equalBytes(activeCapabilityBinding, replacementCapabilityBinding)) throw new Error("recovery replacement capability binding must be fresh");
810
- const scope = parsePublicLifecycleScope(record.scope);
811
- const activeMaterialActivation = parseRouterAbMpcMaterialActivationRef(record.active_material_activation);
812
- const replacementMaterialActivation = scope.material_activation;
813
- if (activeMaterialActivation.activation_id === replacementMaterialActivation.activation_id || activeMaterialActivation.lifecycle_binding === replacementMaterialActivation.lifecycle_binding) throw new Error("recovery replacement material activation identity must be fresh");
814
- if (activeMaterialActivation.capability !== replacementMaterialActivation.capability || activeMaterialActivation.material_owner !== replacementMaterialActivation.material_owner || activeMaterialActivation.key_binding !== replacementMaterialActivation.key_binding || activeMaterialActivation.signing_worker !== replacementMaterialActivation.signing_worker) throw new Error("recovery replacement material activation changed stable identity facts");
815
- return {
816
- scope,
817
- active_material_activation: activeMaterialActivation,
818
- application_binding: parseRouterAbEd25519YaoApplicationBindingFactsV1(record.application_binding),
819
- participant_ids: parseParticipantIds$1(record.participant_ids),
820
- active_capability_binding: activeCapabilityBinding,
821
- replacement_capability_binding: replacementCapabilityBinding,
822
- registered_public_key: requireBytes32(record.registered_public_key, "recovery admission request.registered_public_key", true)
823
- };
824
- }
825
- function parseWarmRecoveryBootstrapRequestValue(value) {
826
- const record = requireRecord(value, "warm recovery bootstrap request");
827
- requireExactKeys(record, "warm recovery bootstrap request", [
828
- "kind",
829
- "walletId",
830
- "nearAccountId",
831
- "nearEd25519SigningKeyId",
832
- "signerSlot",
833
- "thresholdSessionId",
834
- "signingWorkerId",
835
- "participantIds"
836
- ]);
837
- if (record.kind !== "router_ab_ed25519_yao_warm_recovery_bootstrap_request_v1") throw new Error("warm recovery bootstrap request.kind is invalid");
838
- return {
839
- kind: "router_ab_ed25519_yao_warm_recovery_bootstrap_request_v1",
840
- walletId: requireVisibleIdentifier(record.walletId, "warm recovery bootstrap request.walletId"),
841
- nearAccountId: requireVisibleIdentifier(record.nearAccountId, "warm recovery bootstrap request.nearAccountId"),
842
- nearEd25519SigningKeyId: requireVisibleIdentifier(record.nearEd25519SigningKeyId, "warm recovery bootstrap request.nearEd25519SigningKeyId"),
843
- signerSlot: requirePositiveSafeInteger(record.signerSlot, "warm recovery bootstrap request.signerSlot"),
844
- thresholdSessionId: requireVisibleIdentifier(record.thresholdSessionId, "warm recovery bootstrap request.thresholdSessionId"),
845
- signingWorkerId: requireVisibleIdentifier(record.signingWorkerId, "warm recovery bootstrap request.signingWorkerId"),
846
- participantIds: parseParticipantIds$1(record.participantIds)
847
- };
848
- }
849
- function parseExportAdmissionReceiptValue(value) {
850
- const record = requireRecord(value, "export admission receipt");
851
- requireExactKeys(record, "export admission receipt", ["binding", "keyset"]);
852
- return {
853
- binding: parseExportBinding(record.binding),
854
- keyset: parseKeyset(record.keyset)
855
- };
856
- }
857
- function parseExportExecuteRequestValue(value) {
858
- const record = requireRecord(value, "export execute request");
859
- requireExactKeys(record, "export execute request", [
860
- "binding",
861
- "deriver_a_input",
862
- "deriver_b_input"
863
- ]);
864
- const binding = parseExportBinding(record.binding);
865
- return {
866
- binding,
867
- deriver_a_input: requireExportInput(binding, parseEncryptedInput(record.deriver_a_input, "deriver_a_input"), "deriver_a", "deriver_a_input"),
868
- deriver_b_input: requireExportInput(binding, parseEncryptedInput(record.deriver_b_input, "deriver_b_input"), "deriver_b", "deriver_b_input")
869
- };
870
- }
871
- function parseExportResultValue(value) {
872
- const record = requireRecord(value, "export result");
873
- requireExactKeys(record, "export result", [
874
- "binding",
875
- "transcript",
876
- "deriver_a_client_package",
877
- "deriver_b_client_package"
878
- ]);
879
- const binding = parseExportBinding(record.binding);
880
- const transcript = requireBytes32(record.transcript, "export result.transcript", true);
881
- return {
882
- binding,
883
- transcript,
884
- deriver_a_client_package: requireExportClientPackage(binding, transcript, parseEncryptedPackage(record.deriver_a_client_package, "deriver_a_client_package"), "deriver_a", "deriver_a_client_package"),
885
- deriver_b_client_package: requireExportClientPackage(binding, transcript, parseEncryptedPackage(record.deriver_b_client_package, "deriver_b_client_package"), "deriver_b", "deriver_b_client_package")
886
- };
887
- }
888
- function parseActivationAdmissionReceiptValue(value) {
889
- const record = requireRecord(value, "activation admission receipt");
890
- requireExactKeys(record, "activation admission receipt", ["binding", "keyset"]);
891
- const binding = requireActivationBinding(parseCeremonyBinding(record.binding));
892
- const keyset = parseKeyset(record.keyset);
893
- switch (binding.operation) {
894
- case "registration": return {
895
- binding,
896
- keyset
897
- };
898
- case "recovery": return {
899
- binding,
900
- keyset
901
- };
902
- }
903
- }
904
- function parseActivationExecuteRequestValue(value) {
905
- const record = requireRecord(value, "activation execute request");
906
- requireExactKeys(record, "activation execute request", [
907
- "binding",
908
- "deriver_a_input",
909
- "deriver_b_input"
910
- ]);
911
- const binding = requireActivationBinding(parseCeremonyBinding(record.binding));
912
- const deriverAInput = requireActivationInput(binding, parseEncryptedInput(record.deriver_a_input, "deriver_a_input"), "deriver_a", "deriver_a_input");
913
- const deriverBInput = requireActivationInput(binding, parseEncryptedInput(record.deriver_b_input, "deriver_b_input"), "deriver_b", "deriver_b_input");
914
- if (binding.operation === "registration") {
915
- if (deriverAInput.operation !== "registration" || deriverBInput.operation !== "registration") throw new Error("activation inputs do not match registration binding");
916
- return {
917
- binding,
918
- deriver_a_input: deriverAInput,
919
- deriver_b_input: deriverBInput
920
- };
921
- }
922
- if (deriverAInput.operation !== "recovery" || deriverBInput.operation !== "recovery") throw new Error("activation inputs do not match recovery binding");
923
- return {
924
- binding,
925
- deriver_a_input: deriverAInput,
926
- deriver_b_input: deriverBInput
927
- };
928
- }
929
- function parseActivationResultValue(value) {
930
- const record = requireRecord(value, "activation result");
931
- requireExactKeys(record, "activation result", [
932
- "binding",
933
- "deriver_a_client_package",
934
- "deriver_b_client_package",
935
- "public_receipt"
936
- ]);
937
- const binding = requireActivationBinding(parseCeremonyBinding(record.binding));
938
- const receipt = parseRouterAbEd25519YaoActivationPublicReceiptV1(record.public_receipt);
939
- if (!sameRouterAbMpcMaterialActivationRef(binding.material_activation, receipt.material_activation)) throw new Error("activation result receipt material does not match the admitted binding");
940
- const packageA = parseEncryptedPackage(record.deriver_a_client_package, "deriver_a_client_package");
941
- const packageB = parseEncryptedPackage(record.deriver_b_client_package, "deriver_b_client_package");
942
- const deriverAPackage = requireActivationClientPackage(binding, receipt, packageA, "deriver_a", "deriver_a_client_package");
943
- const deriverBPackage = requireActivationClientPackage(binding, receipt, packageB, "deriver_b", "deriver_b_client_package");
944
- switch (binding.operation) {
945
- case "registration": return {
946
- binding,
947
- deriver_a_client_package: deriverAPackage,
948
- deriver_b_client_package: deriverBPackage,
949
- public_receipt: receipt
950
- };
951
- case "recovery": return {
952
- binding,
953
- deriver_a_client_package: deriverAPackage,
954
- deriver_b_client_package: deriverBPackage,
955
- public_receipt: receipt
956
- };
957
- }
958
- }
959
- function requireRecoveryBinding(value) {
960
- const binding = requireActivationBinding(parseCeremonyBinding(value));
961
- switch (binding.operation) {
962
- case "registration": throw new Error("recovery activation requires a recovery binding");
963
- case "recovery": return binding;
964
- }
965
- }
966
- function parseRecoveryActivationReceiptValue(value) {
967
- const record = requireRecord(value, "recovery activation receipt");
968
- requireExactKeys(record, "recovery activation receipt", [
969
- "binding",
970
- "public_receipt",
971
- "active_capability_binding",
972
- "retired_capability_binding"
973
- ]);
974
- const activeCapabilityBinding = requireBytes32(record.active_capability_binding, "recovery activation receipt.active_capability_binding", true);
975
- const retiredCapabilityBinding = requireBytes32(record.retired_capability_binding, "recovery activation receipt.retired_capability_binding", true);
976
- if (equalBytes(activeCapabilityBinding, retiredCapabilityBinding)) throw new Error("recovery activation receipt capability bindings must be distinct");
977
- return {
978
- binding: requireRecoveryBinding(record.binding),
979
- public_receipt: parseRouterAbEd25519YaoActivationPublicReceiptV1(record.public_receipt),
980
- active_capability_binding: activeCapabilityBinding,
981
- retired_capability_binding: retiredCapabilityBinding
982
- };
983
- }
984
- function isActivationAdmissionReceiptFor(value, operation) {
985
- return value.binding.operation === operation;
986
- }
987
- function isActivationExecuteRequestFor(value, operation) {
988
- return value.binding.operation === operation;
989
- }
990
- function isActivationResultFor(value, operation) {
991
- return value.binding.operation === operation;
992
- }
993
- function operationMismatch(operation) {
994
- return {
995
- ok: false,
996
- code: "invalid_body",
997
- message: `activation value must use the ${operation} operation`
998
- };
999
- }
1000
- function parseRouterAbEd25519YaoRegistrationAdmissionRequestV1(value) {
1001
- return parseBoundary(parseRegistrationAdmissionRequestValue, value);
1002
- }
1003
- function parseRouterAbEd25519YaoRecoveryAdmissionRequestV1(value) {
1004
- return parseBoundary(parseRecoveryAdmissionRequestValue, value);
1005
- }
1006
- function parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1(value) {
1007
- return parseBoundary(parseWarmRecoveryBootstrapRequestValue, value);
1008
- }
1009
- function parseRouterAbEd25519YaoExportAdmissionReceiptV1(value) {
1010
- return parseBoundary(parseExportAdmissionReceiptValue, value);
1011
- }
1012
- function parseRouterAbEd25519YaoExportExecuteRequestV1(value) {
1013
- return parseBoundary(parseExportExecuteRequestValue, value);
1014
- }
1015
- function parseRouterAbEd25519YaoExportResultV1(value) {
1016
- return parseBoundary(parseExportResultValue, value);
1017
- }
1018
- function parseRouterAbEd25519YaoActivationAdmissionReceiptV1(value) {
1019
- return parseBoundary(parseActivationAdmissionReceiptValue, value);
1020
- }
1021
- function parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1(value) {
1022
- const parsed = parseRouterAbEd25519YaoActivationAdmissionReceiptV1(value);
1023
- if (!parsed.ok) return parsed;
1024
- if (!isActivationAdmissionReceiptFor(parsed.value, "registration")) return operationMismatch("registration");
1025
- return {
1026
- ok: true,
1027
- value: parsed.value
1028
- };
1029
- }
1030
- function parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1(value) {
1031
- const parsed = parseRouterAbEd25519YaoActivationAdmissionReceiptV1(value);
1032
- if (!parsed.ok) return parsed;
1033
- if (!isActivationAdmissionReceiptFor(parsed.value, "recovery")) return operationMismatch("recovery");
1034
- return {
1035
- ok: true,
1036
- value: parsed.value
1037
- };
1038
- }
1039
- function parseRouterAbEd25519YaoActivationExecuteRequestV1(value) {
1040
- return parseBoundary(parseActivationExecuteRequestValue, value);
1041
- }
1042
- function parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1(value) {
1043
- const parsed = parseRouterAbEd25519YaoActivationExecuteRequestV1(value);
1044
- if (!parsed.ok) return parsed;
1045
- if (!isActivationExecuteRequestFor(parsed.value, "registration")) return operationMismatch("registration");
1046
- return {
1047
- ok: true,
1048
- value: parsed.value
1049
- };
1050
- }
1051
- function parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1(value) {
1052
- const parsed = parseRouterAbEd25519YaoActivationExecuteRequestV1(value);
1053
- if (!parsed.ok) return parsed;
1054
- if (!isActivationExecuteRequestFor(parsed.value, "recovery")) return operationMismatch("recovery");
1055
- return {
1056
- ok: true,
1057
- value: parsed.value
1058
- };
1059
- }
1060
- function parseRouterAbEd25519YaoActivationResultV1(value) {
1061
- return parseBoundary(parseActivationResultValue, value);
1062
- }
1063
- function parseRouterAbEd25519YaoRegistrationActivationResultV1(value) {
1064
- const parsed = parseRouterAbEd25519YaoActivationResultV1(value);
1065
- if (!parsed.ok) return parsed;
1066
- if (!isActivationResultFor(parsed.value, "registration")) return operationMismatch("registration");
1067
- return {
1068
- ok: true,
1069
- value: parsed.value
1070
- };
1071
- }
1072
- function parseRouterAbEd25519YaoRecoveryActivationResultV1(value) {
1073
- const parsed = parseRouterAbEd25519YaoActivationResultV1(value);
1074
- if (!parsed.ok) return parsed;
1075
- if (!isActivationResultFor(parsed.value, "recovery")) return operationMismatch("recovery");
1076
- return {
1077
- ok: true,
1078
- value: parsed.value
1079
- };
1080
- }
1081
- function parseRouterAbEd25519YaoRecoveryActivationReceiptV1(value) {
1082
- return parseBoundary(parseRecoveryActivationReceiptValue, value);
1083
- }
1084
- function parseRouterAbEd25519YaoEncryptedPackageV1(value) {
1085
- return parseBoundary(parseEncryptedPackageValue, value);
1086
- }
1087
- function parseEncryptedPackageValue(value) {
1088
- return parseEncryptedPackage(value, "encrypted_package");
1089
- }
1090
- //#endregion
1091
- //#region ../shared-ts/src/device-linking/sourceContribution.ts
1092
- /** Exact discriminator accepted by the ECDSA source-contribution core. */
1093
- const LINKED_DEVICE_ECDSA_SOURCE_CONTRIBUTION_ENVELOPE_KIND_V1 = "seams/linked-device/ecdsa-source-contribution-envelope/v1";
1094
- function parseLinkedDeviceOrdinaryMaterialSourceContributionV1(raw) {
1095
- const record = requireRecordCopy(raw, "linked-device ordinary source contribution");
1096
- switch (record.kind) {
1097
- case "linked_device_ed25519_source_contribution_v1": return parseEd25519Contribution(record);
1098
- case "linked_device_ecdsa_source_contribution_v1": return parseEcdsaContribution(record);
1099
- default: throw new Error("linked-device ordinary source contribution kind is invalid");
1100
- }
1101
- }
1102
- function parseLinkedDeviceEd25519SourcePreservingReservationV1(raw) {
1103
- const record = exactRecord$1(raw, [
1104
- "state",
1105
- "reservation_id",
1106
- "participant_ids",
1107
- "activation_receipt",
1108
- "deriver_a_client_package",
1109
- "deriver_b_client_package"
1110
- ], "linked-device Ed25519 source-preserving reservation");
1111
- if (record.state !== "inactive") throw new Error("linked-device Ed25519 source-preserving reservation is not inactive");
1112
- const activationReceipt = parseRouterAbEd25519YaoActivationPublicReceiptV1(record.activation_receipt);
1113
- const participantIds = parseRouterAbEd25519YaoParticipantIdsV1(record.participant_ids);
1114
- const deriverA = parseEd25519ClientPackage$1(record.deriver_a_client_package, "deriver_a");
1115
- const deriverB = parseEd25519ClientPackage$1(record.deriver_b_client_package, "deriver_b");
1116
- if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("linked-device Ed25519 reservation packages have mismatched transcripts");
1117
- return {
1118
- state: "inactive",
1119
- reservationId: requireText(record.reservation_id, "reservation_id"),
1120
- participantIds,
1121
- activationReceipt,
1122
- deriver_a_client_package: deriverA,
1123
- deriver_b_client_package: deriverB
1124
- };
1125
- }
1126
- function parseLinkedDeviceOrdinaryMaterialSourceContributionTupleV1(raw) {
1127
- if (!Array.isArray(raw) || raw.length === 0 || raw.length > 2) throw new Error("linked-device ordinary source contributions must contain one or two entries");
1128
- const contributions = raw.map(parseLinkedDeviceOrdinaryMaterialSourceContributionV1);
1129
- const families = contributions.map((entry) => entry.keyFamily);
1130
- if (new Set(families).size !== families.length) throw new Error("linked-device ordinary source contributions repeat a key family");
1131
- if (contributions.length === 2 && (contributions[0]?.keyFamily !== "ed25519" || contributions[1]?.keyFamily !== "ecdsa_secp256k1")) throw new Error("linked-device ordinary source contributions must be Ed25519 then ECDSA");
1132
- const first = contributions[0];
1133
- if (!first) throw new Error("linked-device ordinary source contributions are empty");
1134
- return [first, ...contributions.slice(1)];
1135
- }
1136
- function parseLinkedDeviceEcdsaSourceContributionPreparationV1(raw) {
1137
- const record = exactRecord$1(raw, [
1138
- "linkSessionId",
1139
- "enrollmentId",
1140
- "sourceAuthorityId",
1141
- "source",
1142
- "target"
1143
- ], "linked-device ECDSA source contribution preparation");
1144
- const source = parseEcdsaSourceSigner(record.source);
1145
- const target = parseEcdsaTarget(record.target);
1146
- assertEcdsaSourceTargetActivations(source.activation, target.activation);
1147
- return {
1148
- linkSessionId: parseSessionId(record.linkSessionId),
1149
- enrollmentId: parseEnrollmentId(record.enrollmentId),
1150
- sourceAuthorityId: parseAuthorityId(record.sourceAuthorityId),
1151
- source,
1152
- target
1153
- };
1154
- }
1155
- function parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1(raw) {
1156
- const record = requireRecordCopy(raw, "linked-device ordinary source contribution preparation");
1157
- if (record.kind === "linked_device_ed25519_source_contribution_preparation_v1") return parseEd25519SourceContributionPreparation(record);
1158
- if (Object.prototype.hasOwnProperty.call(record, "source") && Object.prototype.hasOwnProperty.call(record, "target")) return parseLinkedDeviceEcdsaSourceContributionPreparationV1(record);
1159
- throw new Error("linked-device ordinary source contribution preparation family is invalid");
1160
- }
1161
- function parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1(raw) {
1162
- if (!Array.isArray(raw) || raw.length === 0 || raw.length > 2) throw new Error("linked-device ordinary source contribution preparations must contain one or two entries");
1163
- const preparations = raw.map(parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1);
1164
- const families = preparations.map((entry) => "kind" in entry ? "ed25519" : "ecdsa_secp256k1");
1165
- if (new Set(families).size !== families.length) throw new Error("linked-device ordinary source contribution preparations repeat a key family");
1166
- if (preparations.length === 2 && (families[0] !== "ed25519" || families[1] !== "ecdsa_secp256k1")) throw new Error("linked-device ordinary source contribution preparations must be ordered Ed25519 then ECDSA");
1167
- const first = preparations[0];
1168
- if (!first) throw new Error("linked-device ordinary source contribution preparation is empty");
1169
- return [first, ...preparations.slice(1)];
1170
- }
1171
- function parseEd25519SourceContributionPreparation(record) {
1172
- exactRecord$1(record, [
1173
- "kind",
1174
- "linkSessionId",
1175
- "enrollmentId",
1176
- "sourceAuthorityId",
1177
- "walletKeyId",
1178
- "targetDeviceId",
1179
- "targetFactorVerificationDigestB64u",
1180
- "sourceBinding",
1181
- "targetAdmission",
1182
- "applicationBinding",
1183
- "sourceRevocationEpoch",
1184
- "participantIds",
1185
- "targetMaterialActivation",
1186
- "targetClientRecipientPublicKeyB64u",
1187
- "targetSigningWorkerRecipientPublicKeyB64u",
1188
- "sourceRegisteredPublicKeyB64u"
1189
- ], "linked-device Ed25519 source contribution preparation");
1190
- if (record.kind !== "linked_device_ed25519_source_contribution_preparation_v1") throw new Error("linked-device Ed25519 source contribution preparation kind is invalid");
1191
- const sourceBinding = parseRegistrationBinding(record.sourceBinding, "sourceBinding");
1192
- const targetAdmissionResult = parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1(record.targetAdmission);
1193
- if (!targetAdmissionResult.ok) throw new Error(`targetAdmission ${targetAdmissionResult.message}`);
1194
- const targetAdmission = targetAdmissionResult.value;
1195
- const applicationBinding = parseRouterAbEd25519YaoApplicationBindingFactsV1(record.applicationBinding);
1196
- if (typeof record.sourceRevocationEpoch !== "number" || !Number.isSafeInteger(record.sourceRevocationEpoch) || record.sourceRevocationEpoch < 0) throw new Error("sourceRevocationEpoch must be a non-negative safe integer");
1197
- const targetMaterialActivation = parseActivation$1(record.targetMaterialActivation, "targetMaterialActivation");
1198
- const linkSessionId = parseSessionId(record.linkSessionId);
1199
- const enrollmentId = parseEnrollmentId(record.enrollmentId);
1200
- const sourceAuthorityId = parseAuthorityId(record.sourceAuthorityId);
1201
- const walletKeyId = parseWalletKeyIdField(record.walletKeyId);
1202
- const targetDeviceId = parseDeviceIdField(record.targetDeviceId);
1203
- const targetFactorVerificationDigestB64u = parseDigestField(record.targetFactorVerificationDigestB64u, "targetFactorVerificationDigestB64u");
1204
- const targetClientRecipientPublicKeyB64u = parseFixedBase64(record.targetClientRecipientPublicKeyB64u, 32, "targetClientRecipientPublicKeyB64u");
1205
- const targetSigningWorkerRecipientPublicKeyB64u = parseFixedBase64(record.targetSigningWorkerRecipientPublicKeyB64u, 32, "targetSigningWorkerRecipientPublicKeyB64u");
1206
- if (targetClientRecipientPublicKeyB64u === targetSigningWorkerRecipientPublicKeyB64u) throw new Error("linked-device Ed25519 source contribution recipients must differ");
1207
- const participantIds = parseRouterAbEd25519YaoParticipantIdsV1(record.participantIds);
1208
- assertSourceBindingContext(sourceBinding, linkSessionId, "sourceBinding");
1209
- if (!mpcMaterialActivationRefsEqual(targetMaterialActivation, routerAbMpcMaterialActivationRefFromWire(targetAdmission.binding.material_activation))) throw new Error("targetAdmission activation differs from targetMaterialActivation");
1210
- if (!sameEdStableIdentity(sourceBinding, targetAdmission.binding)) throw new Error("source and target Ed25519 contribution bindings differ");
1211
- if (sourceBinding.material_activation.activation_id === targetMaterialActivation.activationId) throw new Error("source and target Ed25519 contribution activations must differ");
1212
- return {
1213
- kind: "linked_device_ed25519_source_contribution_preparation_v1",
1214
- linkSessionId,
1215
- enrollmentId,
1216
- sourceAuthorityId,
1217
- walletKeyId,
1218
- targetDeviceId,
1219
- targetFactorVerificationDigestB64u,
1220
- sourceBinding,
1221
- targetAdmission,
1222
- applicationBinding,
1223
- sourceRevocationEpoch: record.sourceRevocationEpoch,
1224
- participantIds,
1225
- targetMaterialActivation,
1226
- targetClientRecipientPublicKeyB64u,
1227
- targetSigningWorkerRecipientPublicKeyB64u,
1228
- sourceRegisteredPublicKeyB64u: parseEd25519PublicKeyB64u(record.sourceRegisteredPublicKeyB64u, "sourceRegisteredPublicKeyB64u")
1229
- };
1230
- }
1231
- function parseEd25519Contribution(record) {
1232
- exactRecord$1(record, [
1233
- "kind",
1234
- "keyFamily",
1235
- "linkSessionId",
1236
- "enrollmentId",
1237
- "sourceAuthorityId",
1238
- "walletKeyId",
1239
- "targetDeviceId",
1240
- "targetFactorVerificationDigestB64u",
1241
- "targetMaterialActivation",
1242
- "targetClientRecipientPublicKeyB64u",
1243
- "targetSigningWorkerRecipientPublicKeyB64u",
1244
- "sourceBinding",
1245
- "reservationId",
1246
- "targetBinding",
1247
- "activationReceipt",
1248
- "participantIds",
1249
- "deriver_a_client_package",
1250
- "deriver_b_client_package",
1251
- "sourceRegisteredPublicKeyB64u"
1252
- ], "linked-device Ed25519 source contribution");
1253
- if (record.kind !== "linked_device_ed25519_source_contribution_v1") throw new Error("linked-device Ed25519 source contribution kind is invalid");
1254
- if (record.keyFamily !== "ed25519") throw new Error("linked-device Ed25519 source contribution family is invalid");
1255
- const sourceBinding = parseRegistrationBinding(record.sourceBinding, "sourceBinding");
1256
- const targetMaterialActivation = parseActivation$1(record.targetMaterialActivation, "source contribution targetMaterialActivation");
1257
- const targetBinding = parseRegistrationBinding(record.targetBinding, "targetBinding");
1258
- const activationReceipt = parseRouterAbEd25519YaoActivationPublicReceiptV1(record.activationReceipt);
1259
- const reservationId = requireText(record.reservationId, "reservationId");
1260
- const participantIds = parseRouterAbEd25519YaoParticipantIdsV1(record.participantIds);
1261
- const linkSessionId = parseSessionId(record.linkSessionId);
1262
- const enrollmentId = parseEnrollmentId(record.enrollmentId);
1263
- const sourceAuthorityId = parseAuthorityId(record.sourceAuthorityId);
1264
- const walletKeyId = parseWalletKeyIdField(record.walletKeyId);
1265
- const targetDeviceId = parseDeviceIdField(record.targetDeviceId);
1266
- const targetFactorVerificationDigestB64u = parseDigestField(record.targetFactorVerificationDigestB64u, "targetFactorVerificationDigestB64u");
1267
- const targetClientRecipientPublicKeyB64u = parseFixedBase64(record.targetClientRecipientPublicKeyB64u, 32, "targetClientRecipientPublicKeyB64u");
1268
- const targetSigningWorkerRecipientPublicKeyB64u = parseFixedBase64(record.targetSigningWorkerRecipientPublicKeyB64u, 32, "targetSigningWorkerRecipientPublicKeyB64u");
1269
- if (targetClientRecipientPublicKeyB64u === targetSigningWorkerRecipientPublicKeyB64u) throw new Error("linked-device Ed25519 source contribution recipients must differ");
1270
- assertSourceBindingContext(sourceBinding, linkSessionId, "sourceBinding");
1271
- assertBindingContext(targetBinding, linkSessionId, targetMaterialActivation, "targetBinding");
1272
- if (!sameEdStableIdentity(sourceBinding, targetBinding)) throw new Error("linked-device Ed25519 source contribution stable identity differs");
1273
- if (!mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(activationReceipt.material_activation), targetMaterialActivation)) throw new Error("linked-device Ed25519 source contribution receipt activation differs");
1274
- const sourceRegisteredPublicKeyB64u = parseEd25519PublicKeyB64u(record.sourceRegisteredPublicKeyB64u, "sourceRegisteredPublicKeyB64u");
1275
- if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.registered_public_key, Array.from(base64UrlDecode(sourceRegisteredPublicKeyB64u)))) throw new Error("linked-device Ed25519 source contribution receipt public key differs");
1276
- const deriverA = parseEd25519ClientPackage$1(record.deriver_a_client_package, "deriver_a");
1277
- const deriverB = parseEd25519ClientPackage$1(record.deriver_b_client_package, "deriver_b");
1278
- if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("linked-device Ed25519 source contribution package transcript differs");
1279
- if (sourceBinding.material_activation.activation_id === targetMaterialActivation.activationId) throw new Error("linked-device Ed25519 source contribution reuses the source activation");
1280
- return {
1281
- kind: "linked_device_ed25519_source_contribution_v1",
1282
- keyFamily: "ed25519",
1283
- linkSessionId,
1284
- enrollmentId,
1285
- sourceAuthorityId,
1286
- walletKeyId,
1287
- targetDeviceId,
1288
- targetFactorVerificationDigestB64u,
1289
- targetMaterialActivation,
1290
- targetClientRecipientPublicKeyB64u,
1291
- targetSigningWorkerRecipientPublicKeyB64u,
1292
- sourceBinding,
1293
- reservationId,
1294
- targetBinding,
1295
- activationReceipt,
1296
- participantIds,
1297
- deriver_a_client_package: deriverA,
1298
- deriver_b_client_package: deriverB,
1299
- sourceRegisteredPublicKeyB64u
1300
- };
1301
- }
1302
- function parseEcdsaContribution(record) {
1303
- exactRecord$1(record, [
1304
- "kind",
1305
- "keyFamily",
1306
- "linkSessionId",
1307
- "enrollmentId",
1308
- "sourceAuthorityId",
1309
- "walletKeyId",
1310
- "targetDeviceId",
1311
- "targetFactorVerificationDigestB64u",
1312
- "sourceSigner",
1313
- "sourceDerivation",
1314
- "target",
1315
- "package"
1316
- ], "linked-device ECDSA source contribution");
1317
- if (record.kind !== "linked_device_ecdsa_source_contribution_v1") throw new Error("linked-device ECDSA source contribution kind is invalid");
1318
- if (record.keyFamily !== "ecdsa_secp256k1") throw new Error("linked-device ECDSA source contribution family is invalid");
1319
- const linkSessionId = parseSessionId(record.linkSessionId);
1320
- const enrollmentId = parseEnrollmentId(record.enrollmentId);
1321
- const sourceAuthorityId = parseAuthorityId(record.sourceAuthorityId);
1322
- const walletKeyId = parseWalletKeyIdField(record.walletKeyId);
1323
- const targetDeviceId = parseDeviceIdField(record.targetDeviceId);
1324
- const targetFactorVerificationDigestB64u = parseDigestField(record.targetFactorVerificationDigestB64u, "targetFactorVerificationDigestB64u");
1325
- const sourceSigner = parseEcdsaSourceSigner(record.sourceSigner);
1326
- const sourceDerivation = parseLinkedDeviceEcdsaSourceDerivationV1(record.sourceDerivation);
1327
- const target = parseEcdsaTarget(record.target);
1328
- assertEcdsaSourceTargetActivations(sourceSigner.activation, target.activation);
1329
- const packageValue = parseLinkedDeviceEcdsaSourceContributionPackageV1(record.package);
1330
- if (packageValue.binding.linkSessionId !== linkSessionId || packageValue.binding.enrollmentId !== enrollmentId || packageValue.binding.sourceAuthorityId !== sourceAuthorityId || packageValue.binding.target.targetDeviceId !== targetDeviceId || packageValue.binding.target.targetFactorVerificationDigestB64u !== targetFactorVerificationDigestB64u) throw new Error("linked-device ECDSA source contribution package binding differs");
1331
- if (!sameEcdsaSourceSigner(packageValue.binding.source, sourceSigner)) throw new Error("linked-device ECDSA source contribution signer differs from package binding");
1332
- if (!sameEcdsaTarget(packageValue.binding.target, target)) throw new Error("linked-device ECDSA source contribution target differs from package binding");
1333
- return {
1334
- kind: "linked_device_ecdsa_source_contribution_v1",
1335
- keyFamily: "ecdsa_secp256k1",
1336
- linkSessionId,
1337
- enrollmentId,
1338
- sourceAuthorityId,
1339
- walletKeyId,
1340
- targetDeviceId,
1341
- targetFactorVerificationDigestB64u,
1342
- sourceSigner,
1343
- sourceDerivation,
1344
- target,
1345
- package: packageValue
1346
- };
1347
- }
1348
- function parseLinkedDeviceEcdsaSourceDerivationV1(raw) {
1349
- const record = exactRecord$1(raw, [
1350
- "applicationBindingDigestB64u",
1351
- "clientShareRetryCounter",
1352
- "ecdsaThresholdKeyId",
1353
- "sourceNormalSigning"
1354
- ], "linked-device ECDSA source derivation");
1355
- const clientShareRetryCounter = record.clientShareRetryCounter;
1356
- if (typeof clientShareRetryCounter !== "number" || !Number.isSafeInteger(clientShareRetryCounter) || clientShareRetryCounter < 0) throw new Error("linked-device ECDSA source derivation retry counter is invalid");
1357
- const applicationBindingDigestB64u = parseDigestField(record.applicationBindingDigestB64u, "sourceDerivation.applicationBindingDigestB64u");
1358
- const sourceNormalSigning = requireRouterAbEcdsaDerivationNormalSigningStateV1(record.sourceNormalSigning);
1359
- const ecdsaThresholdKeyId = parseSdkEcdsaDerivationThresholdKeyId(record.ecdsaThresholdKeyId);
1360
- if (sourceNormalSigning.scope.context.application_binding_digest_b64u !== applicationBindingDigestB64u || sourceNormalSigning.scope.public_identity.client_share_retry_counter !== clientShareRetryCounter || sourceNormalSigning.scope.ecdsa_threshold_key_id !== ecdsaThresholdKeyId) throw new Error("linked-device ECDSA source derivation differs from normal signing");
1361
- return {
1362
- applicationBindingDigestB64u,
1363
- clientShareRetryCounter,
1364
- ecdsaThresholdKeyId,
1365
- sourceNormalSigning
1366
- };
1367
- }
1368
- function parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1(raw) {
1369
- const record = exactRecord$1(raw, [
1370
- "state",
1371
- "binding",
1372
- "sourceDerivation",
1373
- "targetRelayerPublicKey33B64u",
1374
- "thresholdPublicKey33B64u",
1375
- "thresholdEthereumAddress20B64u",
1376
- "normalSigning"
1377
- ], "linked-device ECDSA source-preserving activation receipt");
1378
- if (record.state !== "inactive") throw new Error("linked-device ECDSA source-preserving activation receipt is not inactive");
1379
- const binding = parseLinkedDeviceEcdsaSourceContributionBindingV1(record.binding);
1380
- const sourceDerivation = parseLinkedDeviceEcdsaSourceDerivationV1(record.sourceDerivation);
1381
- const targetRelayerPublicKey33B64u = parseSecp256k1CompressedPublicKeyB64u(record.targetRelayerPublicKey33B64u, "targetRelayerPublicKey33B64u");
1382
- const thresholdPublicKey33B64u = parseSecp256k1CompressedPublicKeyB64u(record.thresholdPublicKey33B64u, "thresholdPublicKey33B64u");
1383
- const thresholdEthereumAddress20B64u = parseFixedBase64(record.thresholdEthereumAddress20B64u, 20, "thresholdEthereumAddress20B64u");
1384
- const normalSigning = requireRouterAbEcdsaDerivationNormalSigningStateV1(record.normalSigning);
1385
- assertLinkedDeviceEcdsaNormalSigningReceipt({
1386
- binding,
1387
- sourceDerivation,
1388
- targetRelayerPublicKey33B64u,
1389
- thresholdPublicKey33B64u,
1390
- thresholdEthereumAddress20B64u,
1391
- normalSigning
1392
- });
1393
- return {
1394
- state: "inactive",
1395
- binding,
1396
- sourceDerivation,
1397
- targetRelayerPublicKey33B64u,
1398
- thresholdPublicKey33B64u,
1399
- thresholdEthereumAddress20B64u,
1400
- normalSigning
1401
- };
1402
- }
1403
- function assertLinkedDeviceEcdsaNormalSigningReceipt(input) {
1404
- const source = input.sourceDerivation.sourceNormalSigning.scope;
1405
- const target = input.normalSigning.scope;
1406
- if (!mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(source.material_activation), input.binding.source.activation) || !mpcMaterialActivationRefsEqual(routerAbMpcMaterialActivationRefFromWire(target.material_activation), input.binding.target.activation) || source.wallet_id !== target.wallet_id || source.wallet_id !== input.binding.source.activation.materialOwner || target.wallet_id !== input.binding.target.activation.materialOwner || source.ecdsa_threshold_key_id !== target.ecdsa_threshold_key_id || source.signing_root_id !== target.signing_root_id || source.signing_root_version !== target.signing_root_version || source.context.application_binding_digest_b64u !== target.context.application_binding_digest_b64u || source.activation_epoch !== target.activation_epoch || source.public_identity.derivation_client_share_public_key33_b64u !== input.binding.source.clientPublicKey33B64u || source.public_identity.server_public_key33_b64u !== input.binding.source.relayerPublicKey33B64u || source.public_identity.threshold_public_key33_b64u !== input.binding.source.thresholdPublicKey33B64u || source.public_identity.ethereum_address20_b64u !== input.binding.source.thresholdEthereumAddress20B64u || target.public_identity.context_binding_b64u !== source.public_identity.context_binding_b64u || target.public_identity.derivation_client_share_public_key33_b64u !== input.binding.targetClientPublicKey33B64u || target.public_identity.server_public_key33_b64u !== input.targetRelayerPublicKey33B64u || target.public_identity.threshold_public_key33_b64u !== input.thresholdPublicKey33B64u || target.public_identity.ethereum_address20_b64u !== input.thresholdEthereumAddress20B64u || target.public_identity.client_share_retry_counter !== source.public_identity.client_share_retry_counter || target.public_identity.server_share_retry_counter !== source.public_identity.server_share_retry_counter || target.signing_worker.server_id !== input.binding.target.activation.signingWorker || target.signing_worker.key_epoch !== source.signing_worker.key_epoch || target.signing_worker.recipient_encryption_key !== routerAbX25519PublicKeyFromB64u(input.binding.target.signingWorkerRecipientPublicKeyB64u)) throw new Error("linked-device ECDSA normal signing state differs from its activation receipt");
1407
- }
1408
- function routerAbX25519PublicKeyFromB64u(value) {
1409
- const bytes = base64UrlDecode(value);
1410
- if (bytes.length !== 32 || base64UrlEncode(bytes) !== value) throw new Error("linked-device signing-worker recipient key is invalid");
1411
- let hex = "";
1412
- for (const byte of bytes) hex += byte.toString(16).padStart(2, "0");
1413
- return `x25519:${hex}`;
1414
- }
1415
- function parseEd25519ClientPackage$1(raw, role) {
1416
- const packageValue = parseRouterPackage(raw, `${role} client package`);
1417
- if (packageValue.kind !== "activation_client" || packageValue.deriver !== role) throw new Error(`${role} client package is not an activation client package`);
1418
- if (role === "deriver_a") return {
1419
- kind: "activation_client",
1420
- deriver: "deriver_a",
1421
- session: packageValue.session,
1422
- transcript: packageValue.transcript,
1423
- encapsulated_key: packageValue.encapsulated_key,
1424
- ciphertext: packageValue.ciphertext
1425
- };
1426
- return {
1427
- kind: "activation_client",
1428
- deriver: "deriver_b",
1429
- session: packageValue.session,
1430
- transcript: packageValue.transcript,
1431
- encapsulated_key: packageValue.encapsulated_key,
1432
- ciphertext: packageValue.ciphertext
1433
- };
1434
- }
1435
- function parseRouterPackage(raw, label) {
1436
- const parsed = parseRouterAbEd25519YaoEncryptedPackageV1(raw);
1437
- if (!parsed.ok) throw new Error(`${label} ${parsed.message}`);
1438
- return parsed.value;
1439
- }
1440
- function parseLinkedDeviceEcdsaSourceContributionPackageV1(raw) {
1441
- const record = exactRecord$1(raw, [
1442
- "binding",
1443
- "encryptedDelta",
1444
- "encryptedTargetClientShare"
1445
- ], "linked-device ECDSA source contribution package");
1446
- const binding = parseLinkedDeviceEcdsaSourceContributionBindingV1(record.binding);
1447
- const encryptedDelta = parseLinkedDeviceEcdsaEncryptedSourceContributionV1(record.encryptedDelta, "encryptedDelta");
1448
- const encryptedTargetClientShare = parseLinkedDeviceEcdsaEncryptedSourceContributionV1(record.encryptedTargetClientShare, "encryptedTargetClientShare");
1449
- const bindingDigest = encryptedDelta.bindingDigestB64u;
1450
- if (encryptedTargetClientShare.bindingDigestB64u !== bindingDigest) throw new Error("linked-device ECDSA source contribution envelope bindings differ");
1451
- if (encryptedDelta.recipientPublicKeyB64u !== binding.target.signingWorkerRecipientPublicKeyB64u || encryptedTargetClientShare.recipientPublicKeyB64u !== binding.target.clientRecipientPublicKeyB64u) throw new Error("linked-device ECDSA source contribution envelope recipients differ");
1452
- return {
1453
- binding,
1454
- encryptedDelta,
1455
- encryptedTargetClientShare
1456
- };
1457
- }
1458
- function parseLinkedDeviceEcdsaSourceContributionBindingV1(raw) {
1459
- const record = exactRecord$1(raw, [
1460
- "linkSessionId",
1461
- "enrollmentId",
1462
- "sourceAuthorityId",
1463
- "source",
1464
- "target",
1465
- "targetClientPublicKey33B64u"
1466
- ], "linked-device ECDSA source contribution binding");
1467
- const source = parseEcdsaSourceSigner(record.source);
1468
- const target = parseEcdsaTarget(record.target);
1469
- assertEcdsaSourceTargetActivations(source.activation, target.activation);
1470
- return {
1471
- linkSessionId: requireText(record.linkSessionId, "binding.linkSessionId"),
1472
- enrollmentId: requireText(record.enrollmentId, "binding.enrollmentId"),
1473
- sourceAuthorityId: requireText(record.sourceAuthorityId, "binding.sourceAuthorityId"),
1474
- source,
1475
- target,
1476
- targetClientPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.targetClientPublicKey33B64u, "binding.targetClientPublicKey33B64u")
1477
- };
1478
- }
1479
- function parseEcdsaSourceSigner(raw) {
1480
- const record = exactRecord$1(raw, [
1481
- "activation",
1482
- "clientPublicKey33B64u",
1483
- "relayerPublicKey33B64u",
1484
- "thresholdPublicKey33B64u",
1485
- "thresholdEthereumAddress20B64u"
1486
- ], "linked-device ECDSA source signer");
1487
- return {
1488
- activation: parseActivation$1(record.activation, "source.activation"),
1489
- clientPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.clientPublicKey33B64u, "source.clientPublicKey33B64u"),
1490
- relayerPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.relayerPublicKey33B64u, "source.relayerPublicKey33B64u"),
1491
- thresholdPublicKey33B64u: parseSecp256k1CompressedPublicKeyB64u(record.thresholdPublicKey33B64u, "source.thresholdPublicKey33B64u"),
1492
- thresholdEthereumAddress20B64u: parseFixedBase64(record.thresholdEthereumAddress20B64u, 20, "source.thresholdEthereumAddress20B64u")
1493
- };
1494
- }
1495
- function parseEcdsaTarget(raw) {
1496
- const record = exactRecord$1(raw, [
1497
- "activation",
1498
- "targetDeviceId",
1499
- "targetFactorVerificationDigestB64u",
1500
- "clientRecipientPublicKeyB64u",
1501
- "signingWorkerRecipientPublicKeyB64u"
1502
- ], "linked-device ECDSA target recipient");
1503
- const clientRecipientPublicKeyB64u = parseFixedBase64(record.clientRecipientPublicKeyB64u, 32, "target.clientRecipientPublicKeyB64u");
1504
- const signingWorkerRecipientPublicKeyB64u = parseFixedBase64(record.signingWorkerRecipientPublicKeyB64u, 32, "target.signingWorkerRecipientPublicKeyB64u");
1505
- if (clientRecipientPublicKeyB64u === signingWorkerRecipientPublicKeyB64u) throw new Error("linked-device ECDSA target recipients must differ");
1506
- return {
1507
- activation: parseActivation$1(record.activation, "target.activation"),
1508
- targetDeviceId: parseDeviceIdField(record.targetDeviceId),
1509
- targetFactorVerificationDigestB64u: parseDigestField(record.targetFactorVerificationDigestB64u, "target.targetFactorVerificationDigestB64u"),
1510
- clientRecipientPublicKeyB64u,
1511
- signingWorkerRecipientPublicKeyB64u
1512
- };
1513
- }
1514
- function parseLinkedDeviceEcdsaEncryptedSourceContributionV1(raw, label) {
1515
- const record = exactRecord$1(raw, [
1516
- "kind",
1517
- "recipientPublicKeyB64u",
1518
- "bindingDigestB64u",
1519
- "encappedKeyB64u",
1520
- "ciphertextB64u"
1521
- ], `linked-device ECDSA ${label}`);
1522
- if (record.kind !== LINKED_DEVICE_ECDSA_SOURCE_CONTRIBUTION_ENVELOPE_KIND_V1) throw new Error(`${label}.kind is invalid`);
1523
- return {
1524
- kind: LINKED_DEVICE_ECDSA_SOURCE_CONTRIBUTION_ENVELOPE_KIND_V1,
1525
- recipientPublicKeyB64u: parseFixedBase64(record.recipientPublicKeyB64u, 32, `${label}.recipientPublicKeyB64u`),
1526
- bindingDigestB64u: parseDigestField(record.bindingDigestB64u, `${label}.bindingDigestB64u`),
1527
- encappedKeyB64u: parseFixedBase64(record.encappedKeyB64u, 32, `${label}.encappedKeyB64u`),
1528
- ciphertextB64u: parseEnvelopeCiphertextB64u(record.ciphertextB64u, `${label}.ciphertextB64u`)
1529
- };
1530
- }
1531
- function parseRegistrationBinding(raw, label) {
1532
- const binding = parseRouterAbEd25519YaoCeremonyBindingV1(raw);
1533
- if (binding.operation !== "registration") throw new Error(`${label} must use the registration operation`);
1534
- return binding;
1535
- }
1536
- function assertBindingContext(binding, linkSessionId, targetMaterialActivation, label) {
1537
- if (binding.material_activation.activation_id !== targetMaterialActivation.activationId) throw new Error(`${label} activation does not match the target activation`);
1538
- if (binding.material_activation.material_owner !== targetMaterialActivation.materialOwner) throw new Error(`${label} material owner does not match the target activation`);
1539
- if (binding.material_activation.signing_worker !== targetMaterialActivation.signingWorker) throw new Error(`${label} signing worker does not match the target activation`);
1540
- if (binding.session_id.length !== 32 || String(linkSessionId).length === 0) throw new Error(`${label} link binding is invalid`);
1541
- }
1542
- function assertSourceBindingContext(binding, linkSessionId, label) {
1543
- if (binding.session_id.length !== 32 || String(linkSessionId).length === 0) throw new Error(`${label} link binding is invalid`);
1544
- }
1545
- function sameEdStableIdentity(left, right) {
1546
- return left.operation === right.operation && left.stable_key_context_binding.every((value, index) => value === right.stable_key_context_binding[index]) && left.material_activation.capability === right.material_activation.capability && left.material_activation.material_owner === right.material_activation.material_owner && left.material_activation.key_binding === right.material_activation.key_binding && left.material_activation.lifecycle_binding === right.material_activation.lifecycle_binding && left.material_activation.signing_worker === right.material_activation.signing_worker && left.lifecycle.root_share_epoch === right.lifecycle.root_share_epoch && left.lifecycle.account_id === right.lifecycle.account_id && left.lifecycle.signer_set_id === right.lifecycle.signer_set_id && left.lifecycle.selected_server_id === right.lifecycle.selected_server_id;
1547
- }
1548
- function sameEcdsaSourceSigner(left, right) {
1549
- return mpcMaterialActivationRefsEqual(left.activation, right.activation) && left.clientPublicKey33B64u === right.clientPublicKey33B64u && left.relayerPublicKey33B64u === right.relayerPublicKey33B64u && left.thresholdPublicKey33B64u === right.thresholdPublicKey33B64u && left.thresholdEthereumAddress20B64u === right.thresholdEthereumAddress20B64u;
1550
- }
1551
- function assertEcdsaSourceTargetActivations(source, target) {
1552
- if (mpcMaterialActivationRefsEqual(source, target) || source.materialOwner !== target.materialOwner || source.signingWorker !== target.signingWorker) throw new Error("linked-device ECDSA source and target activations are invalid");
1553
- }
1554
- function sameEcdsaTarget(left, right) {
1555
- return mpcMaterialActivationRefsEqual(left.activation, right.activation) && left.targetDeviceId === right.targetDeviceId && left.targetFactorVerificationDigestB64u === right.targetFactorVerificationDigestB64u && left.clientRecipientPublicKeyB64u === right.clientRecipientPublicKeyB64u && left.signingWorkerRecipientPublicKeyB64u === right.signingWorkerRecipientPublicKeyB64u;
1556
- }
1557
- function parseActivation$1(raw, label) {
1558
- const parsed = parseMpcMaterialActivationRef(raw);
1559
- if (!parsed.ok) throw new Error(`${label} ${parsed.error.message}`);
1560
- return parsed.value;
1561
- }
1562
- function parseSessionId(raw) {
1563
- const parsed = parseLinkDeviceSessionId(requireText(raw, "linkSessionId"));
1564
- if (!parsed.ok) throw new Error(`linkSessionId ${parsed.error.message}`);
1565
- return parsed.value;
1566
- }
1567
- function parseEnrollmentId(raw) {
1568
- const parsed = parseLinkedDeviceEnrollmentId(requireText(raw, "enrollmentId"));
1569
- if (!parsed.ok) throw new Error(`enrollmentId ${parsed.error.message}`);
1570
- return parsed.value;
1571
- }
1572
- function parseAuthorityId(raw) {
1573
- const parsed = parseWalletAuthorityId(requireText(raw, "sourceAuthorityId"));
1574
- if (!parsed.ok) throw new Error(`sourceAuthorityId ${parsed.error.message}`);
1575
- return parsed.value;
1576
- }
1577
- function parseWalletKeyIdField(raw) {
1578
- const parsed = parseWalletKeyId(requireText(raw, "walletKeyId"));
1579
- if (!parsed.ok) throw new Error(`walletKeyId ${parsed.error.message}`);
1580
- return parsed.value;
1581
- }
1582
- function parseDeviceIdField(raw) {
1583
- const parsed = parseDeviceId(requireText(raw, "targetDeviceId"));
1584
- if (!parsed.ok) throw new Error(`targetDeviceId ${parsed.error.message}`);
1585
- return parsed.value;
1586
- }
1587
- function parseDigestField(raw, label) {
1588
- try {
1589
- return parseDigestB64u(raw);
1590
- } catch (error) {
1591
- throw new Error(`${label} ${error instanceof Error ? error.message : "is invalid"}`);
1592
- }
1593
- }
1594
- function parseFixedBase64(raw, byteLength, label) {
1595
- if (typeof raw !== "string" || !/^[A-Za-z0-9_-]+$/.test(raw)) throw new Error(`${label} must be canonical base64url`);
1596
- let decoded;
1597
- try {
1598
- decoded = base64UrlDecode(raw);
1599
- } catch {
1600
- throw new Error(`${label} must be canonical base64url`);
1601
- }
1602
- if (decoded.length !== byteLength || base64UrlEncode(decoded) !== raw) throw new Error(`${label} must decode to ${byteLength} bytes`);
1603
- return raw;
1604
- }
1605
- function requireText(raw, label) {
1606
- if (typeof raw !== "string" || raw.length === 0 || raw.trim() !== raw || [...raw].some((character) => {
1607
- const code = character.charCodeAt(0);
1608
- return code < 32 || code === 127;
1609
- })) throw new Error(`${label} must be a non-empty visible string`);
1610
- return raw;
1611
- }
1612
- function exactRecord$1(raw, keys, label) {
1613
- const record = requireRecordCopy(raw, label);
1614
- const expected = new Set(keys);
1615
- const actual = Object.keys(record);
1616
- if (actual.length !== keys.length || actual.some((key) => !expected.has(key)) || keys.some((key) => !Object.prototype.hasOwnProperty.call(record, key))) throw new Error(`${label} contains unknown or missing fields`);
1617
- return record;
1618
- }
1619
- //#endregion
1620
- //#region ../shared-ts/src/device-linking/committedSignerPackages.ts
1621
- function parseCommittedAuthorityPackagesV1(raw) {
1622
- const record = parseCommittedAuthorityPackagesWireV1(raw);
1623
- if (record.kind !== "committed_authority_packages_v1") throw new Error("CommittedAuthorityPackagesV1.kind is invalid");
1624
- const authority = parseWalletAuthorityV1(record.authority);
1625
- if (!authority.ok || authority.value.state !== "pending_local_install") throw new Error("CommittedAuthorityPackagesV1.authority is not pending");
1626
- const authMethod = parseWalletAuthMethodRecordV2(record.authMethod);
1627
- if (!authMethod || authMethod.status !== "pending_local_install") throw new Error("CommittedAuthorityPackagesV1.authMethod is not pending");
1628
- if (authMethod.walletId !== authority.value.walletId || authMethod.walletAuthorityId !== authority.value.authorityId) throw new Error("CommittedAuthorityPackagesV1 authority and auth method identities differ");
1629
- const signerPackages = parseCommittedSignerPackageSetV1(record.signerPackages);
1630
- assertSignerPackagesMatchAuthority(signerPackages, authority.value.signerActivations);
1631
- const ed25519ExportRootPackage = record.ed25519ExportRootPackage === null ? null : parseLinkedDeviceEd25519ExportRootPackageV1(record.ed25519ExportRootPackage);
1632
- if (ed25519ExportRootPackage) {
1633
- if (ed25519ExportRootPackage.walletId !== authority.value.walletId || ed25519ExportRootPackage.revocationEpoch !== authority.value.revocationEpoch || authority.value.provenance.kind !== "device_link" || ed25519ExportRootPackage.enrollmentId !== authority.value.provenance.enrollmentId || ed25519ExportRootPackage.linkSessionId !== authority.value.provenance.linkSessionId || String(ed25519ExportRootPackage.deviceId) !== String(authority.value.principal.deviceId)) throw new Error("CommittedAuthorityPackagesV1 export root identity does not match authority");
1634
- }
1635
- return {
1636
- kind: "committed_authority_packages_v1",
1637
- authority: authority.value,
1638
- authMethod,
1639
- signerPackages,
1640
- ed25519ExportRootPackage,
1641
- packageSetDigestB64u: parseCommittedSignerPackageSetDigestB64u(record.packageSetDigestB64u)
1642
- };
1643
- }
1644
- function assertSignerPackagesMatchAuthority(packages, activations) {
1645
- if (packages.keyFamilies.length !== activations.keyFamilies.length) throw new Error("CommittedAuthorityPackagesV1 signer families do not match authority");
1646
- for (let index = 0; index < packages.keyFamilies.length; index += 1) if (packages.keyFamilies[index] !== activations.keyFamilies[index]) throw new Error("CommittedAuthorityPackagesV1 signer family order does not match authority");
1647
- if (packages.keyFamilies.length === 1 && packages.keyFamilies[0] === "ed25519") {
1648
- if (!activations.ed25519 || !packages.ed25519) throw new Error("CommittedAuthorityPackagesV1 Ed25519 activation is missing");
1649
- if (!mpcMaterialActivationRefsEqual(packages.ed25519.materialActivation, activations.ed25519.materialActivation)) throw new Error("CommittedAuthorityPackagesV1 Ed25519 activation does not match authority");
1650
- return;
1651
- }
1652
- if (packages.keyFamilies.length === 1 && packages.keyFamilies[0] === "ecdsa_secp256k1") {
1653
- if (!activations.ecdsa || !packages.ecdsa) throw new Error("CommittedAuthorityPackagesV1 ECDSA activation is missing");
1654
- if (!mpcMaterialActivationRefsEqual(packages.ecdsa.materialActivation, activations.ecdsa.materialActivation)) throw new Error("CommittedAuthorityPackagesV1 ECDSA activation does not match authority");
1655
- return;
1656
- }
1657
- if (!activations.ed25519 || !activations.ecdsa || !packages.ed25519 || !packages.ecdsa) throw new Error("CommittedAuthorityPackagesV1 combined activations are incomplete");
1658
- if (!mpcMaterialActivationRefsEqual(packages.ed25519.materialActivation, activations.ed25519.materialActivation) || !mpcMaterialActivationRefsEqual(packages.ecdsa.materialActivation, activations.ecdsa.materialActivation)) throw new Error("CommittedAuthorityPackagesV1 activation references do not match authority");
1659
- }
1660
- function parseCommittedSignerPackageSetV1(raw) {
1661
- const record = parseCommittedSignerPackageSetWireV1(raw);
1662
- if (record.kind !== "committed_signer_package_set_v1") throw new Error("CommittedSignerPackageSetV1.kind is invalid");
1663
- const keyFamilies = parseKeyFamilies(record.keyFamilies);
1664
- if (keyFamilies.length === 1 && keyFamilies[0] === "ed25519") {
1665
- if (!("ed25519" in record)) throw new Error("CommittedSignerPackageSetV1 fields are invalid");
1666
- return {
1667
- kind: "committed_signer_package_set_v1",
1668
- keyFamilies,
1669
- ed25519: parseEd25519Package(record.ed25519)
1670
- };
1671
- }
1672
- if (keyFamilies.length === 1 && keyFamilies[0] === "ecdsa_secp256k1") {
1673
- if (!("ecdsa" in record)) throw new Error("CommittedSignerPackageSetV1 fields are invalid");
1674
- return {
1675
- kind: "committed_signer_package_set_v1",
1676
- keyFamilies,
1677
- ecdsa: parseEcdsaPackage(record.ecdsa)
1678
- };
1679
- }
1680
- if (!("ed25519" in record) || !("ecdsa" in record)) throw new Error("CommittedSignerPackageSetV1 fields are invalid");
1681
- const ed25519 = parseEd25519Package(record.ed25519);
1682
- const ecdsa = parseEcdsaPackage(record.ecdsa);
1683
- if (ed25519.materialActivation.activationId === ecdsa.materialActivation.activationId) throw new Error("CommittedSignerPackageSetV1 activation references must be distinct");
1684
- return {
1685
- kind: "committed_signer_package_set_v1",
1686
- keyFamilies,
1687
- ed25519,
1688
- ecdsa
1689
- };
1690
- }
1691
- function parseCommittedSignerPackageSetDigestB64u(raw) {
1692
- return parseDigestB64u(raw);
1693
- }
1694
- function parseEd25519Package(raw) {
1695
- const record = parseCommittedEd25519SignerPackageWireV1(raw);
1696
- if (record.kind !== "committed_ed25519_signer_package_v1") throw new Error("CommittedEd25519SignerPackageV1.kind is invalid");
1697
- const materialActivation = parseActivation(record.materialActivation, "materialActivation");
1698
- const targetBinding = parseRouterAbEd25519YaoCeremonyBindingV1(record.targetBinding);
1699
- const applicationBinding = parseRouterAbEd25519YaoApplicationBindingFactsV1(record.applicationBinding);
1700
- const activationReceipt = parseRouterAbEd25519YaoActivationPublicReceiptV1(record.activationReceipt);
1701
- if (!mpcMaterialActivationRefsEqual(materialActivation, routerAbMpcMaterialActivationRefFromWire(activationReceipt.material_activation))) throw new Error("CommittedEd25519SignerPackageV1 activation receipt does not match material");
1702
- if (!mpcMaterialActivationRefsEqual(materialActivation, routerAbMpcMaterialActivationRefFromWire(targetBinding.material_activation))) throw new Error("CommittedEd25519SignerPackageV1 target binding does not match material");
1703
- const deriverA = parseEd25519ClientPackage(record.deriver_a_client_package, "deriver_a_client_package", "deriver_a");
1704
- const deriverB = parseEd25519ClientPackage(record.deriver_b_client_package, "deriver_b_client_package", "deriver_b");
1705
- if (!sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverA.transcript) || !sameRouterAbEd25519YaoByteSequence(activationReceipt.transcript, deriverB.transcript)) throw new Error("CommittedEd25519SignerPackageV1 receipt transcript does not match packages");
1706
- return {
1707
- kind: "committed_ed25519_signer_package_v1",
1708
- materialActivation,
1709
- targetBinding,
1710
- applicationBinding,
1711
- participantIds: parseRouterAbEd25519YaoParticipantIdsV1(record.participantIds),
1712
- activationReceipt,
1713
- deriver_a_client_package: deriverA,
1714
- deriver_b_client_package: deriverB
1715
- };
1716
- }
1717
- function parseEcdsaPackage(raw) {
1718
- const record = parseCommittedEcdsaSignerPackageWireV1(raw);
1719
- if (record.kind !== "committed_ecdsa_signer_package_v1") throw new Error("CommittedEcdsaSignerPackageV1.kind is invalid");
1720
- const materialActivation = parseActivation(record.materialActivation, "materialActivation");
1721
- const activationReceipt = parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1(record.activationReceipt);
1722
- const targetActivation = activationReceipt.binding.target.activation;
1723
- if (!mpcMaterialActivationRefsEqual(materialActivation, targetActivation)) throw new Error("CommittedEcdsaSignerPackageV1 receipt activation does not match material");
1724
- const encryptedTargetClientShare = parseLinkedDeviceEcdsaEncryptedSourceContributionV1(record.encryptedTargetClientShare, "encryptedTargetClientShare");
1725
- if (encryptedTargetClientShare.recipientPublicKeyB64u !== activationReceipt.binding.target.clientRecipientPublicKeyB64u) throw new Error("CommittedEcdsaSignerPackageV1 client share recipient does not match receipt");
1726
- return {
1727
- kind: "committed_ecdsa_signer_package_v1",
1728
- materialActivation,
1729
- encryptedTargetClientShare,
1730
- activationReceipt
1731
- };
1732
- }
1733
- function parseEd25519ClientPackage(raw, label, deriver) {
1734
- const parsed = parseRouterAbEd25519YaoEncryptedPackageV1(raw);
1735
- if (!parsed.ok) throw new Error(`${label} ${parsed.message}`);
1736
- if (parsed.value.kind !== "activation_client" || parsed.value.deriver !== deriver) throw new Error(`${label} must be an activation_client for ${deriver}`);
1737
- return {
1738
- kind: "activation_client",
1739
- deriver,
1740
- session: parsed.value.session,
1741
- transcript: parsed.value.transcript,
1742
- encapsulated_key: parsed.value.encapsulated_key,
1743
- ciphertext: parsed.value.ciphertext
1744
- };
1745
- }
1746
- function parseActivation(raw, label) {
1747
- const parsed = parseMpcMaterialActivationRef(raw);
1748
- if (!parsed.ok) throw new Error(`${label} ${parsed.error.message}`);
1749
- return parsed.value;
1750
- }
1751
- function parseKeyFamilies(raw) {
1752
- if (!Array.isArray(raw)) throw new Error("CommittedSignerPackageSetV1.keyFamilies must be an array");
1753
- if (raw.length === 1 && raw[0] === "ed25519") return ["ed25519"];
1754
- if (raw.length === 1 && raw[0] === "ecdsa_secp256k1") return ["ecdsa_secp256k1"];
1755
- if (raw.length === 2 && raw[0] === "ed25519" && raw[1] === "ecdsa_secp256k1") return ["ed25519", "ecdsa_secp256k1"];
1756
- throw new Error("CommittedSignerPackageSetV1.keyFamilies must use canonical family order");
1757
- }
1758
- function parseCommittedAuthorityPackagesWireV1(raw) {
1759
- const record = inspectRawObject(raw);
1760
- if (record === null) throw new Error("CommittedAuthorityPackagesV1 must be an object");
1761
- requireExactWireFields(record, [
1762
- "kind",
1763
- "authority",
1764
- "authMethod",
1765
- "signerPackages",
1766
- "ed25519ExportRootPackage",
1767
- "packageSetDigestB64u"
1768
- ], "CommittedAuthorityPackagesV1");
1769
- return {
1770
- kind: Reflect.get(record, "kind"),
1771
- authority: Reflect.get(record, "authority"),
1772
- authMethod: Reflect.get(record, "authMethod"),
1773
- signerPackages: Reflect.get(record, "signerPackages"),
1774
- ed25519ExportRootPackage: Reflect.get(record, "ed25519ExportRootPackage"),
1775
- packageSetDigestB64u: Reflect.get(record, "packageSetDigestB64u")
1776
- };
1777
- }
1778
- function parseCommittedSignerPackageSetWireV1(raw) {
1779
- const record = inspectRawObject(raw);
1780
- if (record === null) throw new Error("CommittedSignerPackageSetV1 must be an object");
1781
- const actual = Object.keys(record);
1782
- const hasEd25519 = actual.includes("ed25519");
1783
- const hasEcdsa = actual.includes("ecdsa");
1784
- if (hasEd25519 && hasEcdsa) {
1785
- requireExactWireFields(record, [
1786
- "kind",
1787
- "keyFamilies",
1788
- "ed25519",
1789
- "ecdsa"
1790
- ], "CommittedSignerPackageSetV1");
1791
- return {
1792
- kind: Reflect.get(record, "kind"),
1793
- keyFamilies: Reflect.get(record, "keyFamilies"),
1794
- ed25519: Reflect.get(record, "ed25519"),
1795
- ecdsa: Reflect.get(record, "ecdsa")
1796
- };
1797
- }
1798
- if (hasEd25519) {
1799
- requireExactWireFields(record, [
1800
- "kind",
1801
- "keyFamilies",
1802
- "ed25519"
1803
- ], "CommittedSignerPackageSetV1");
1804
- return {
1805
- kind: Reflect.get(record, "kind"),
1806
- keyFamilies: Reflect.get(record, "keyFamilies"),
1807
- ed25519: Reflect.get(record, "ed25519")
1808
- };
1809
- }
1810
- if (hasEcdsa) {
1811
- requireExactWireFields(record, [
1812
- "kind",
1813
- "keyFamilies",
1814
- "ecdsa"
1815
- ], "CommittedSignerPackageSetV1");
1816
- return {
1817
- kind: Reflect.get(record, "kind"),
1818
- keyFamilies: Reflect.get(record, "keyFamilies"),
1819
- ecdsa: Reflect.get(record, "ecdsa")
1820
- };
1821
- }
1822
- requireExactWireFields(record, ["kind", "keyFamilies"], "CommittedSignerPackageSetV1");
1823
- return {
1824
- kind: Reflect.get(record, "kind"),
1825
- keyFamilies: Reflect.get(record, "keyFamilies")
1826
- };
1827
- }
1828
- function parseCommittedEd25519SignerPackageWireV1(raw) {
1829
- const record = inspectRawObject(raw);
1830
- if (record === null) throw new Error("CommittedEd25519SignerPackageV1 must be an object");
1831
- requireExactWireFields(record, [
1832
- "kind",
1833
- "materialActivation",
1834
- "targetBinding",
1835
- "applicationBinding",
1836
- "participantIds",
1837
- "activationReceipt",
1838
- "deriver_a_client_package",
1839
- "deriver_b_client_package"
1840
- ], "CommittedEd25519SignerPackageV1");
1841
- return {
1842
- kind: Reflect.get(record, "kind"),
1843
- materialActivation: Reflect.get(record, "materialActivation"),
1844
- targetBinding: Reflect.get(record, "targetBinding"),
1845
- applicationBinding: Reflect.get(record, "applicationBinding"),
1846
- participantIds: Reflect.get(record, "participantIds"),
1847
- activationReceipt: Reflect.get(record, "activationReceipt"),
1848
- deriver_a_client_package: Reflect.get(record, "deriver_a_client_package"),
1849
- deriver_b_client_package: Reflect.get(record, "deriver_b_client_package")
1850
- };
1851
- }
1852
- function parseCommittedEcdsaSignerPackageWireV1(raw) {
1853
- const record = inspectRawObject(raw);
1854
- if (record === null) throw new Error("CommittedEcdsaSignerPackageV1 must be an object");
1855
- requireExactWireFields(record, [
1856
- "kind",
1857
- "materialActivation",
1858
- "encryptedTargetClientShare",
1859
- "activationReceipt"
1860
- ], "CommittedEcdsaSignerPackageV1");
1861
- return {
1862
- kind: Reflect.get(record, "kind"),
1863
- materialActivation: Reflect.get(record, "materialActivation"),
1864
- encryptedTargetClientShare: Reflect.get(record, "encryptedTargetClientShare"),
1865
- activationReceipt: Reflect.get(record, "activationReceipt")
1866
- };
1867
- }
1868
- function inspectRawObject(raw) {
1869
- return raw !== null && typeof raw === "object" && !Array.isArray(raw) ? raw : null;
1870
- }
1871
- function requireExactWireFields(record, keys, label) {
1872
- const expected = new Set(keys);
1873
- const actual = Object.keys(record);
1874
- if (actual.length !== keys.length) throw new Error(`${label} contains unexpected fields`);
1875
- for (const key of actual) if (!expected.has(key)) throw new Error(`${label} contains unexpected fields`);
1876
- for (const key of keys) if (!Object.prototype.hasOwnProperty.call(record, key)) throw new Error(`${label}.${key} is required`);
1877
- }
1878
- //#endregion
1879
- //#region ../shared-ts/src/device-linking/parsers.ts
1880
- const QR_FIELDS = [
1881
- "version",
1882
- "purpose",
1883
- "linkSessionId",
1884
- "linkPublicKeyB64u",
1885
- "devicePublicKeyB64u",
1886
- "requestedPermission",
1887
- "targetFactor",
1888
- "issuedAtMs",
1889
- "expiresAtMs"
1890
- ];
1891
- function supportedLiteral(...values) {
1892
- return (raw, label) => {
1893
- if (!values.includes(raw)) throw new Error(`${label} is unsupported`);
1894
- return raw;
1895
- };
1896
- }
1897
- function parseEmailHashHex(raw, label) {
1898
- if (typeof raw !== "string" || !/^[0-9a-f]{64}$/.test(raw)) throw new Error(`${label} must be 32 canonical lowercase hex bytes`);
1899
- return raw;
1900
- }
1901
- function parsePublicKey(raw, label) {
1902
- if (typeof raw !== "string" || raw.length === 0 || !/^[A-Za-z0-9_-]+$/.test(raw)) throw new Error(`${label} must be canonical unpadded base64url`);
1903
- try {
1904
- const decoded = base64UrlDecode(raw);
1905
- if (decoded.length !== 32 || base64UrlEncode(decoded) !== raw) throw new Error("non-canonical");
1906
- } catch {
1907
- throw new Error(`${label} must be a canonical 32-byte unpadded base64url key`);
1908
- }
1909
- return raw;
1910
- }
1911
- function parseCanonicalBase64UrlBytes(raw, label) {
1912
- if (typeof raw !== "string" || raw.length === 0 || !/^[A-Za-z0-9_-]+$/.test(raw)) throw new Error(`${label} must be canonical unpadded base64url`);
1913
- try {
1914
- const decoded = base64UrlDecode(raw);
1915
- if (decoded.length === 0 || base64UrlEncode(decoded) !== raw) throw new Error("non-canonical");
1916
- } catch {
1917
- throw new Error(`${label} must be canonical unpadded base64url`);
1918
- }
1919
- return raw;
1920
- }
1921
- function parseCanonicalFixedBase64UrlBytes(raw, length, label) {
1922
- const value = parseCanonicalBase64UrlBytes(raw, label);
1923
- const decoded = base64UrlDecode(value);
1924
- try {
1925
- if (decoded.length !== length) throw new Error(`${label} must encode ${length} bytes`);
1926
- return value;
1927
- } finally {
1928
- decoded.fill(0);
1929
- }
1930
- }
1931
- const P256_FIELD_PRIME = BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff");
1932
- const P256_CURVE_A = P256_FIELD_PRIME - 3n;
1933
- const P256_CURVE_B = BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");
1934
- function bigEndianBytesToBigInt(bytes) {
1935
- let value = 0n;
1936
- for (const byte of bytes) value = value << 8n | BigInt(byte);
1937
- return value;
1938
- }
1939
- function isP256Point(decoded) {
1940
- const x = bigEndianBytesToBigInt(decoded.subarray(1, 33));
1941
- const y = bigEndianBytesToBigInt(decoded.subarray(33, 65));
1942
- if (x >= P256_FIELD_PRIME || y >= P256_FIELD_PRIME) return false;
1943
- return y * y % P256_FIELD_PRIME === (x * x * x % P256_FIELD_PRIME + P256_CURVE_A * x % P256_FIELD_PRIME + P256_CURVE_B) % P256_FIELD_PRIME;
1944
- }
1945
- function parseUncompressedP256PointB64u(raw, label) {
1946
- const value = parseCanonicalFixedBase64UrlBytes(raw, 65, label);
1947
- const decoded = base64UrlDecode(value);
1948
- try {
1949
- if (decoded[0] !== 4) throw new Error(`${label} must be an uncompressed SEC1 P-256 point`);
1950
- if (!isP256Point(decoded)) throw new Error(`${label} must be an on-curve P-256 point`);
1951
- return value;
1952
- } finally {
1953
- decoded.fill(0);
1954
- }
1955
- }
1956
- function parseLinkDevicePublicKeyB64u(raw) {
1957
- return parsePublicKey(raw, "LinkDevicePublicKeyB64u");
1958
- }
1959
- function parseCredential(raw, label) {
1960
- return credentialId(parseCanonicalBase64UrlBytes(raw, label), label);
1961
- }
1962
- function parseKeyFamily(raw, label) {
1963
- if (raw !== "ed25519" && raw !== "ecdsa_secp256k1") throw new Error(`${label} must identify a supported key family`);
1964
- return raw;
1965
- }
1966
- function assertExpiryAfterIssued(issuedAtMs, expiresAtMs, label) {
1967
- if (expiresAtMs <= issuedAtMs) throw new Error(`${label}.expiresAtMs must be after issuedAtMs`);
1968
- }
1969
- function delegatedWalletAuthorityWireValue(value) {
1970
- return {
1971
- kind: value.kind,
1972
- permissions: [...delegatedWalletPermissionNamesV1(value)]
1973
- };
1974
- }
1975
- function qrPayloadWireValue(payload) {
1976
- const base = {
1977
- version: payload.version,
1978
- purpose: payload.purpose,
1979
- linkSessionId: payload.linkSessionId,
1980
- linkPublicKeyB64u: payload.linkPublicKeyB64u,
1981
- devicePublicKeyB64u: payload.devicePublicKeyB64u,
1982
- requestedPermission: delegatedWalletAuthorityWireValue(payload.requestedPermission),
1983
- targetFactor: payload.targetFactor,
1984
- issuedAtMs: payload.issuedAtMs,
1985
- expiresAtMs: payload.expiresAtMs
1986
- };
1987
- return payload.targetFactor.kind === "email_otp" ? {
1988
- ...base,
1989
- targetEmail: payload.targetEmail
1990
- } : base;
1991
- }
1992
- function parseTargetFactor(raw, label) {
1993
- switch (exactRecord$3(raw, ["kind"], label).kind) {
1994
- case "passkey_prf": return { kind: "passkey_prf" };
1995
- case "email_otp": return { kind: "email_otp" };
1996
- default: throw new Error(`${label}.kind is unsupported`);
1997
- }
1998
- }
1999
- function passkeyTargetFactorV1() {
2000
- return wireObject({ kind: wireLiteral("passkey_prf") });
2001
- }
2002
- function emailOtpTargetFactorV1() {
2003
- return wireObject({ kind: wireLiteral("email_otp") });
2004
- }
2005
- function existingEnrollmentV1() {
2006
- return wireObject({ kind: wireLiteral("existing_enrollment") });
2007
- }
2008
- function newEnrollmentV1() {
2009
- return wireObject({ kind: wireLiteral("new_enrollment") });
2010
- }
2011
- function emailOtpEnrollmentSelectionV1() {
2012
- return wireUnion("kind", [existingEnrollmentV1(), newEnrollmentV1()]);
2013
- }
2014
- function parseEmailOtpEnrollmentSelection(raw, label) {
2015
- return emailOtpEnrollmentSelectionV1()(raw, label);
2016
- }
2017
- function emailOtpEnrollmentMaterialV1() {
2018
- return wireObject({
2019
- enrollmentSealKeyVersion: parseNonEmptyToken,
2020
- clientUnlockPublicKeyB64u: parseNonEmptyToken,
2021
- unlockKeyVersion: parseNonEmptyToken,
2022
- serverSealedFactorCiphertextB64u: parseNonEmptyToken
2023
- });
2024
- }
2025
- function parseApprovedTargetFactor(raw, label) {
2026
- const record = requireRecord(raw, label);
2027
- if (record.kind === "passkey_prf") {
2028
- exactRecord$3(record, ["kind"], label);
2029
- return { kind: "passkey_prf" };
2030
- }
2031
- if (record.kind === "email_otp") {
2032
- const enrollment = parseEmailOtpEnrollmentSelection(record.enrollment, `${label}.enrollment`);
2033
- const targetEmail = parseTargetEmail(record.targetEmail, `${label}.targetEmail`);
2034
- if (enrollment.kind === "existing_enrollment") return {
2035
- kind: "email_otp",
2036
- targetEmail,
2037
- enrollment,
2038
- baseWalletAuthMethodId: walletAuthMethodId(exactRecord$3(record, [
2039
- "kind",
2040
- "targetEmail",
2041
- "enrollment",
2042
- "baseWalletAuthMethodId"
2043
- ], label).baseWalletAuthMethodId, `${label}.baseWalletAuthMethodId`)
2044
- };
2045
- exactRecord$3(record, [
2046
- "kind",
2047
- "targetEmail",
2048
- "enrollment"
2049
- ], label);
2050
- return {
2051
- kind: "email_otp",
2052
- targetEmail,
2053
- enrollment
2054
- };
2055
- }
2056
- throw new Error(`${label}.kind is unsupported`);
2057
- }
2058
- function parseQrPayloadRecord(record) {
2059
- if (record.version !== "v5") throw new Error("QrLinkedDeviceSessionPayloadV5.version is invalid");
2060
- if (record.purpose !== "linked_device_lane_creation") throw new Error("QrLinkedDeviceSessionPayloadV5.purpose is invalid");
2061
- const issuedAtMs = parseUnixTime(record.issuedAtMs, "QrLinkedDeviceSessionPayloadV5.issuedAtMs");
2062
- const expiresAtMs = parseUnixTime(record.expiresAtMs, "QrLinkedDeviceSessionPayloadV5.expiresAtMs");
2063
- assertExpiryAfterIssued(issuedAtMs, expiresAtMs, "QrLinkedDeviceSessionPayloadV5");
2064
- const base = {
2065
- version: "v5",
2066
- purpose: "linked_device_lane_creation",
2067
- linkSessionId: sessionId(record.linkSessionId, "QrLinkedDeviceSessionPayloadV5.linkSessionId"),
2068
- linkPublicKeyB64u: parsePublicKey(record.linkPublicKeyB64u, "QrLinkedDeviceSessionPayloadV5.linkPublicKeyB64u"),
2069
- devicePublicKeyB64u: parsePublicKey(record.devicePublicKeyB64u, "QrLinkedDeviceSessionPayloadV5.devicePublicKeyB64u"),
2070
- requestedPermission: parseDelegatedWalletAuthority(record.requestedPermission, "QrLinkedDeviceSessionPayloadV5.requestedPermission"),
2071
- targetFactor: parseTargetFactor(record.targetFactor, "QrLinkedDeviceSessionPayloadV5.targetFactor"),
2072
- issuedAtMs,
2073
- expiresAtMs
2074
- };
2075
- if (base.targetFactor.kind === "email_otp") return {
2076
- ...base,
2077
- targetFactor: { kind: "email_otp" },
2078
- targetEmail: parseTargetEmail(record.targetEmail, "QrLinkedDeviceSessionPayloadV5.targetEmail")
2079
- };
2080
- return {
2081
- ...base,
2082
- targetFactor: { kind: "passkey_prf" }
2083
- };
2084
- }
2085
- function parseQrLinkedDeviceSessionPayloadV5(raw) {
2086
- const candidate = requireRecord(raw, "QrLinkedDeviceSessionPayloadV5");
2087
- return parseQrPayloadRecord(exactRecord$3(candidate, parseTargetFactor(candidate.targetFactor, "QrLinkedDeviceSessionPayloadV5.targetFactor").kind === "email_otp" ? [...QR_FIELDS, "targetEmail"] : QR_FIELDS, "QrLinkedDeviceSessionPayloadV5"));
2088
- }
2089
- function serializeQrLinkedDeviceSessionPayloadV5(payload) {
2090
- const parsed = parseQrPayloadRecord(qrPayloadWireValue(payload));
2091
- const compact = {
2092
- v: 5,
2093
- s: parsed.linkSessionId,
2094
- l: parsed.linkPublicKeyB64u,
2095
- d: parsed.devicePublicKeyB64u,
2096
- a: delegatedWalletAuthorityWireValue(parsed.requestedPermission),
2097
- f: parsed.targetFactor.kind === "passkey_prf" ? "p" : "e",
2098
- i: parsed.issuedAtMs,
2099
- e: parsed.expiresAtMs
2100
- };
2101
- return parsed.targetFactor.kind === "email_otp" ? JSON.stringify({
2102
- ...compact,
2103
- t: parsed.targetEmail
2104
- }) : JSON.stringify(compact);
2105
- }
2106
- function linkedDeviceOwnerAuthorizationRequestV1() {
2107
- return wireObject({
2108
- payload: parseQrLinkedDeviceSessionPayloadV5,
2109
- requestedAtMs: parseUnixTime
2110
- });
2111
- }
2112
- function parseLinkedDeviceOwnerAuthorizationRequestV1(raw) {
2113
- return linkedDeviceOwnerAuthorizationRequestV1()(raw, "LinkedDeviceOwnerAuthorizationRequestV1");
2114
- }
2115
- function linkSessionStatesV1() {
2116
- const withDevice = (state) => wireObject({
2117
- state: wireLiteral(state),
2118
- deviceId: authorizationDeviceId
2119
- });
2120
- return [
2121
- wireObject({ state: wireLiteral("displaying_qr") }),
2122
- withDevice("claimed"),
2123
- withDevice("awaiting_target_factor"),
2124
- withDevice("awaiting_source_contribution"),
2125
- withDevice("provisioning"),
2126
- wireObject({
2127
- state: wireLiteral("authority_pending_local_install"),
2128
- deviceId: authorizationDeviceId,
2129
- authorityId: walletAuthorityId,
2130
- packageSetDigestB64u: digest
2131
- }),
2132
- wireObject({
2133
- state: wireLiteral("active"),
2134
- deviceId: authorizationDeviceId,
2135
- authorityId: walletAuthorityId,
2136
- activatedAtMs: parseUnixTime
2137
- }),
2138
- wireObject({
2139
- state: wireLiteral("failed_before_commit"),
2140
- error: parseLinkPrecommitFailureV1
2141
- }),
2142
- wireObject({
2143
- state: wireLiteral("cancelled"),
2144
- cancelledAtMs: parseUnixTime
2145
- }),
2146
- wireObject({
2147
- state: wireLiteral("expired"),
2148
- expiredAtMs: parseUnixTime
2149
- })
2150
- ];
2151
- }
2152
- function parseLinkSessionStateV1(raw) {
2153
- const state = requireRecord(raw, "LinkSessionStateV1").state;
2154
- if (typeof state !== "string") throw new Error("LinkSessionStateV1.state is invalid");
2155
- const schema = linkSessionStatesV1().find((variant) => variant.shape.state.literals.includes(state));
2156
- if (!schema) throw new Error(`LinkSessionStateV1.state ${state} is unsupported`);
2157
- return schema(raw, `LinkSessionStateV1.${state}`);
2158
- }
2159
- function parseLinkPrecommitFailureV1(raw) {
2160
- const record = exactRecord$3(raw, ["kind", "reason"], "LinkPrecommitFailureV1");
2161
- if (record.kind !== "invalid_input" && record.kind !== "unauthorized_source" && record.kind !== "revoked_source" && record.kind !== "permission_attenuation_failed" && record.kind !== "target_factor_failed" && record.kind !== "expired_session" && record.kind !== "cancelled_session" && record.kind !== "claim_conflict" && record.kind !== "package_preparation_failed") throw new Error("LinkPrecommitFailureV1.kind is invalid");
2162
- return {
2163
- kind: record.kind,
2164
- reason: parseNonEmptyToken(record.reason, "LinkPrecommitFailureV1.reason")
2165
- };
2166
- }
2167
- function linkSessionProjectionV1() {
2168
- return wireObject({
2169
- kind: wireLiteral("linked_device_session_projection_v1"),
2170
- linkSessionId: sessionId,
2171
- qrPayload: parseQrLinkedDeviceSessionPayloadV5,
2172
- revision: parseNonNegativeSafeInteger,
2173
- createdAtMs: parseUnixTime,
2174
- updatedAtMs: parseUnixTime,
2175
- state: parseLinkSessionStateV1
2176
- });
2177
- }
2178
- function parseLinkSessionProjectionV1(raw) {
2179
- return linkSessionProjectionV1()(raw, "LinkSessionProjectionV1");
2180
- }
2181
- function linkSessionTransportEventV1() {
2182
- return wireObject({
2183
- kind: wireLiteral("linked_device_session_event_v1"),
2184
- linkSessionId: sessionId,
2185
- state: parseLinkSessionStateV1,
2186
- emittedAtMs: parseUnixTime
2187
- });
2188
- }
2189
- function parseLinkSessionTransportEventV1(raw) {
2190
- return linkSessionTransportEventV1()(raw, "LinkSessionTransportEventV1");
2191
- }
2192
- function linkedDeviceApprovalResultV1() {
2193
- return wireUnion("outcome", [wireObject({
2194
- outcome: wireLiteral("pending"),
2195
- state: parsePendingApprovalState
2196
- }), wireObject({
2197
- outcome: wireLiteral("replayed"),
2198
- replay: wireObject({
2199
- state: () => "pending",
2200
- session: parsePendingApprovalState
2201
- })
2202
- })]);
2203
- }
2204
- function parseLinkedDeviceApprovalResultV1(raw) {
2205
- return linkedDeviceApprovalResultV1()(raw, "LinkedDeviceApprovalResultV1");
2206
- }
2207
- function parsePendingApprovalState(raw) {
2208
- const state = parseLinkSessionStateV1(raw);
2209
- switch (state.state) {
2210
- case "awaiting_target_factor":
2211
- case "awaiting_source_contribution":
2212
- case "provisioning":
2213
- case "authority_pending_local_install": return state;
2214
- default: throw new Error("LinkedDeviceApprovalResultV1 state is not pending");
2215
- }
2216
- }
2217
- function linkedDeviceSessionClaimV1() {
2218
- return wireObject({
2219
- kind: wireLiteral("linked_device_session_claim_v1"),
2220
- linkSessionId: sessionId,
2221
- walletId,
2222
- enrollmentId,
2223
- deviceId: linkedDeviceId,
2224
- devicePublicKeyB64u: parsePublicKey,
2225
- targetFactor: parseTargetFactor,
2226
- sessionRevision: parseUnixTime,
2227
- claimedAtMs: parseUnixTime,
2228
- claimExpiresAtMs: parseUnixTime
2229
- }, (claim, label) => assertExpiryAfterIssued(claim.claimedAtMs, claim.claimExpiresAtMs, label));
2230
- }
2231
- function parseLinkedDeviceSessionClaimV1(raw) {
2232
- return linkedDeviceSessionClaimV1()(raw, "LinkedDeviceSessionClaimV1");
2233
- }
2234
- function walletSessionOwnerAuthorizationV1() {
2235
- return wireObject({
2236
- kind: wireLiteral("wallet_session"),
2237
- walletSessionId,
2238
- authorizationId: walletSessionAuthorizationId
2239
- });
2240
- }
2241
- function parseLinkedDeviceOwnerAuthorizationSourceV1(raw, label = "ownerAuthorization") {
2242
- if (requireRecord(raw, label).kind !== "wallet_session") throw new Error(`${label}.kind is unsupported`);
2243
- return walletSessionOwnerAuthorizationV1()(raw, label);
2244
- }
2245
- function linkedDeviceApprovalFields() {
2246
- return {
2247
- kind: wireLiteral("linked_device_approval_v1"),
2248
- linkSessionId: sessionId,
2249
- walletId,
2250
- enrollmentId,
2251
- deviceId: linkedDeviceId,
2252
- linkPublicKeyB64u: parsePublicKey,
2253
- devicePublicKeyB64u: parsePublicKey,
2254
- permission: parseDelegatedWalletAuthority,
2255
- targetFactor: parseApprovedTargetFactor,
2256
- ownerAuthorization: parseLinkedDeviceOwnerAuthorizationSourceV1,
2257
- approvedAtMs: parseUnixTime,
2258
- expiresAtMs: parseUnixTime
2259
- };
2260
- }
2261
- function approvedBeforeExpiry(approval, label) {
2262
- assertExpiryAfterIssued(approval.approvedAtMs, approval.expiresAtMs, label);
2263
- }
2264
- function linkedDeviceApprovalV1() {
2265
- return wireObject(linkedDeviceApprovalFields(), approvedBeforeExpiry);
2266
- }
2267
- function linkedDeviceSourceContributionApprovalV1() {
2268
- return wireObject({
2269
- ...linkedDeviceApprovalFields(),
2270
- sourceContribution: parseLinkedDeviceOrdinaryMaterialSourceContributionTupleV1
2271
- }, approvedBeforeExpiry);
2272
- }
2273
- function parseLinkedDeviceApprovalV1(raw) {
2274
- const record = requireRecord(raw, "LinkedDeviceApprovalV1");
2275
- return (record.sourceContribution === void 0 ? linkedDeviceApprovalV1() : linkedDeviceSourceContributionApprovalV1())(record, "LinkedDeviceApprovalV1");
2276
- }
2277
- function linkedDeviceApprovalDeliveryV1() {
2278
- return wireObject({
2279
- kind: wireLiteral("linked_device_approval_delivery_v1"),
2280
- approval: parseLinkedDeviceApprovalV1
2281
- });
2282
- }
2283
- function parseLinkedDeviceApprovalDeliveryV1(raw) {
2284
- return linkedDeviceApprovalDeliveryV1()(raw, "LinkedDeviceApprovalDeliveryV1");
2285
- }
2286
- function linkedDeviceTargetPreparationFields() {
2287
- return {
2288
- kind: wireLiteral("linked_device_target_preparation_v1"),
2289
- linkSessionId: sessionId,
2290
- walletId,
2291
- enrollmentId,
2292
- deviceId: linkedDeviceId,
2293
- deliveryRecipientPublicKey65B64u: parseUncompressedP256PointB64u,
2294
- walletAuthMethodId,
2295
- ed25519ExportRoot: wireNullable(ed25519ExportRootPreparationV1()),
2296
- ordinarySignerMaterialRecipientRequirements: parseRecipientRequirements,
2297
- issuedAtMs: parseUnixTime,
2298
- expiresAtMs: parseUnixTime
2299
- };
2300
- }
2301
- function preparationExpiresAfterIssue(preparation, label) {
2302
- if (preparation.expiresAtMs <= preparation.issuedAtMs) throw new Error(`${label}.expiresAtMs must follow issuedAtMs`);
2303
- }
2304
- function passkeyTargetPreparationV1() {
2305
- return wireObject({
2306
- ...linkedDeviceTargetPreparationFields(),
2307
- targetFactor: passkeyTargetFactorV1(),
2308
- passkeyCreationOptions: parseLinkedDevicePasskeyCreationOptionsV1,
2309
- passkeyConfigurationDigestB64u: digest
2310
- }, (preparation, label) => {
2311
- preparationExpiresAfterIssue(preparation, label);
2312
- if (preparation.passkeyCreationOptions.walletAuthMethodId !== preparation.walletAuthMethodId) throw new Error(`${label}.passkeyCreationOptions.walletAuthMethodId must match the preparation`);
2313
- });
2314
- }
2315
- function emailOtpTargetPreparationV1() {
2316
- return wireObject({
2317
- ...linkedDeviceTargetPreparationFields(),
2318
- targetFactor: emailOtpTargetFactorV1(),
2319
- targetEmail: parseTargetEmail,
2320
- enrollment: existingEnrollmentV1(),
2321
- baseWalletAuthMethodId: walletAuthMethodId
2322
- }, preparationExpiresAfterIssue);
2323
- }
2324
- function newEmailOtpTargetPreparationV1() {
2325
- return wireObject({
2326
- ...linkedDeviceTargetPreparationFields(),
2327
- targetFactor: emailOtpTargetFactorV1(),
2328
- targetEmail: parseTargetEmail,
2329
- enrollment: newEnrollmentV1()
2330
- }, preparationExpiresAfterIssue);
2331
- }
2332
- function parseLinkedDeviceTargetPreparationV1(raw) {
2333
- const label = "LinkedDeviceTargetPreparationV1";
2334
- const record = requireRecord(raw, label);
2335
- if (parseTargetFactor(record.targetFactor, `${label}.targetFactor`).kind === "passkey_prf") return passkeyTargetPreparationV1()(record, label);
2336
- return (parseEmailOtpEnrollmentSelection(record.enrollment, `${label}.enrollment`).kind === "new_enrollment" ? newEmailOtpTargetPreparationV1() : emailOtpTargetPreparationV1())(record, label);
2337
- }
2338
- function linkedDeviceTargetPreparationRequestV1() {
2339
- return wireObject({
2340
- kind: wireLiteral("linked_device_target_preparation_request_v1"),
2341
- linkSessionId: sessionId,
2342
- deliveryRecipientPublicKey65B64u: parseUncompressedP256PointB64u
2343
- });
2344
- }
2345
- function parseLinkedDeviceTargetPreparationRequestV1(raw) {
2346
- return linkedDeviceTargetPreparationRequestV1()(raw, "LinkedDeviceTargetPreparationRequestV1");
2347
- }
2348
- function emailOtpBaseFactorChoiceV1() {
2349
- return wireObject({
2350
- baseWalletAuthMethodId: walletAuthMethodId,
2351
- maskedEmailHint: (raw, label) => {
2352
- if (typeof raw !== "string" || raw.length === 0) throw new Error(`${label} is invalid`);
2353
- return raw;
2354
- }
2355
- });
2356
- }
2357
- function emailOtpBaseFactorResolutionsV1() {
2358
- const choice = emailOtpBaseFactorChoiceV1();
2359
- const parseChoice = (raw) => choice(raw, "LinkedDeviceEmailOtpBaseFactorChoiceV1");
2360
- return {
2361
- selected: wireObject({
2362
- kind: wireLiteral("selected"),
2363
- choice: parseChoice
2364
- }),
2365
- selection_required: wireObject({
2366
- kind: wireLiteral("selection_required"),
2367
- choices: (raw, label) => {
2368
- if (!Array.isArray(raw) || raw.length === 0) throw new Error(`${label} must not be empty`);
2369
- const choices = raw.map(parseChoice);
2370
- return [choices[0], ...choices.slice(1)];
2371
- }
2372
- }),
2373
- unavailable: wireObject({
2374
- kind: wireLiteral("unavailable"),
2375
- reason: supportedLiteral("no_active_email_otp_base_factor")
2376
- })
2377
- };
2378
- }
2379
- function parseLinkedDeviceEmailOtpBaseFactorResolutionV1(raw) {
2380
- const label = "LinkedDeviceEmailOtpBaseFactorResolutionV1";
2381
- const record = requireRecord(raw, label);
2382
- const resolutions = emailOtpBaseFactorResolutionsV1();
2383
- switch (record.kind) {
2384
- case "selected":
2385
- case "selection_required":
2386
- case "unavailable": return resolutions[record.kind](record, label);
2387
- default: throw new Error(`${label}.kind is unsupported`);
2388
- }
2389
- }
2390
- function emailOtpBaseFactorResolutionResultV1() {
2391
- return wireObject({
2392
- revision: parseUnixTime,
2393
- resolution: parseLinkedDeviceEmailOtpBaseFactorResolutionV1
2394
- });
2395
- }
2396
- function parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1(raw) {
2397
- return emailOtpBaseFactorResolutionResultV1()(raw, "LinkedDeviceEmailOtpBaseFactorResolutionResultV1");
2398
- }
2399
- function parseLinkedDevicePasskeyCreationOptionsV1(raw, label) {
2400
- const record = exactRecord$3(raw, [
2401
- "kind",
2402
- "walletAuthMethodId",
2403
- "challengeId",
2404
- "challengeB64u",
2405
- "rpId",
2406
- "user",
2407
- "pubKeyCredParams",
2408
- "authenticatorSelection",
2409
- "timeoutMs",
2410
- "attestation",
2411
- "extensions",
2412
- "excludeCredentials"
2413
- ], label);
2414
- const methodId = walletAuthMethodId(record.walletAuthMethodId, `${label}.walletAuthMethodId`);
2415
- exactRecord$3(record.user, [
2416
- "idB64u",
2417
- "name",
2418
- "displayName"
2419
- ], `${label}.user`);
2420
- exactRecord$3(record.authenticatorSelection, ["residentKey", "userVerification"], `${label}.authenticatorSelection`);
2421
- exactRecord$3(exactRecord$3(exactRecord$3(record.extensions, ["prf"], `${label}.extensions`).prf, ["eval"], `${label}.extensions.prf`).eval, ["firstB64u", "secondB64u"], `${label}.extensions.prf.eval`);
2422
- if (!Array.isArray(record.pubKeyCredParams)) throw new Error(`${label}.pubKeyCredParams must be an array`);
2423
- record.pubKeyCredParams.forEach((entry, index) => {
2424
- exactRecord$3(entry, ["type", "alg"], `${label}.pubKeyCredParams[${index}]`);
2425
- });
2426
- if (!Array.isArray(record.excludeCredentials)) throw new Error(`${label}.excludeCredentials must be an array`);
2427
- record.excludeCredentials.forEach((entry, index) => {
2428
- exactRecord$3(entry, ["type", "id"], `${label}.excludeCredentials[${index}]`);
2429
- });
2430
- const options = parseWalletAddAuthMethodRegistrationOptions(record);
2431
- return {
2432
- kind: options.kind,
2433
- walletAuthMethodId: methodId,
2434
- challengeId: options.challengeId,
2435
- challengeB64u: options.challengeB64u,
2436
- rpId: options.rpId,
2437
- user: options.user,
2438
- pubKeyCredParams: options.pubKeyCredParams,
2439
- authenticatorSelection: options.authenticatorSelection,
2440
- timeoutMs: options.timeoutMs,
2441
- attestation: options.attestation,
2442
- extensions: options.extensions,
2443
- excludeCredentials: options.excludeCredentials
2444
- };
2445
- }
2446
- function ed25519ExportRootPreparationV1() {
2447
- return wireObject({
2448
- kind: wireLiteral("linked_device_ed25519_export_root_preparation_v1"),
2449
- walletKeyId,
2450
- applicationBindingDigestB64u: digest,
2451
- registeredPublicKeyB64u: parseEd25519PublicKeyB64u,
2452
- revocationEpoch: parseNonNegativeSafeInteger
2453
- });
2454
- }
2455
- function parseKeyFamilyEntries(raw, item, label) {
2456
- if (!Array.isArray(raw) || raw.length === 0 || raw.length > 2) throw new Error(`${label} must contain one or two entries`);
2457
- const entries = raw.map((entry, index) => item(entry, `${label}[${index}]`));
2458
- if (new Set(entries.map((entry) => entry.keyFamily)).size !== entries.length) throw new Error(`${label} repeats a key family`);
2459
- if (new Set(entries.map((entry) => String(entry.walletKeyId))).size !== entries.length) throw new Error(`${label} repeats a wallet key`);
2460
- if (entries.length === 2 && (entries[0]?.keyFamily !== "ed25519" || entries[1]?.keyFamily !== "ecdsa_secp256k1")) throw new Error(`${label} must be ordered Ed25519 then ECDSA`);
2461
- return entries;
2462
- }
2463
- function recipientRequirementV1() {
2464
- return wireObject({
2465
- kind: wireLiteral("ordinary_signer_material_recipient_requirement_v1"),
2466
- keyFamily: parseKeyFamily,
2467
- walletKeyId
2468
- });
2469
- }
2470
- function parseRecipientRequirements(raw) {
2471
- const requirements = parseKeyFamilyEntries(raw, recipientRequirementV1(), "LinkedDeviceTargetPreparationV1.ordinarySignerMaterialRecipientRequirements");
2472
- const first = requirements[0];
2473
- if (!first) throw new Error("ordinary signer material recipient requirements are empty");
2474
- return [first, ...requirements.slice(1)];
2475
- }
2476
- const webAuthnTransport = /* @__PURE__ */ wireLiteral("ble", "cable", "hybrid", "internal", "nfc", "smart-card", "usb");
2477
- function parseWebAuthnTransports(raw, label) {
2478
- const transports = requireArray(raw, label).map((entry, index) => webAuthnTransport(entry, `${label}[${index}]`));
2479
- if (new Set(transports).size !== transports.length) throw new Error(`${label} contains duplicates`);
2480
- return transports;
2481
- }
2482
- function linkedDeviceWebAuthnRegistrationV1() {
2483
- return wireObject({
2484
- kind: wireLiteral("linked_device_webauthn_registration_v1"),
2485
- credentialIdB64u: parseCredential,
2486
- authenticatorAttachment: wireNullable(wireLiteral("platform", "cross-platform")),
2487
- clientDataJsonB64u: parseCanonicalBase64UrlBytes,
2488
- attestationObjectB64u: parseCanonicalBase64UrlBytes,
2489
- transports: parseWebAuthnTransports
2490
- });
2491
- }
2492
- function recipientRequestV1() {
2493
- const keyFamily = (family) => (raw, label) => {
2494
- if (raw !== family) throw new Error(`${label} does not match its kind`);
2495
- return family;
2496
- };
2497
- return wireUnion("kind", [wireObject({
2498
- kind: wireLiteral("ordinary_ed25519_signer_material_recipient_request_v1"),
2499
- keyFamily: keyFamily("ed25519"),
2500
- walletKeyId,
2501
- recipientPublicKeyB64u: (raw, label) => parseCanonicalFixedBase64UrlBytes(raw, 32, label)
2502
- }), wireObject({
2503
- kind: wireLiteral("ordinary_ecdsa_signer_material_recipient_request_v1"),
2504
- keyFamily: keyFamily("ecdsa_secp256k1"),
2505
- walletKeyId,
2506
- clientEphemeralPublicKey: requireRouterAbX25519PublicKey
2507
- })]);
2508
- }
2509
- function parseRecipientRequests(raw) {
2510
- const requests = parseKeyFamilyEntries(raw, recipientRequestV1(), "LinkedDeviceTargetCredentialRegistrationV1.ordinarySignerMaterialRecipientRequests");
2511
- const first = requests[0];
2512
- if (!first) throw new Error("ordinary signer material recipient requests are empty");
2513
- return [first, ...requests.slice(1)];
2514
- }
2515
- function targetCredentialRegistrationIdentity() {
2516
- return {
2517
- kind: wireLiteral("linked_device_target_credential_registration_v1"),
2518
- linkSessionId: sessionId,
2519
- walletId,
2520
- enrollmentId,
2521
- deviceId: linkedDeviceId,
2522
- walletAuthMethodId
2523
- };
2524
- }
2525
- function passkeyTargetCredentialRegistrationV1() {
2526
- return wireObject({
2527
- ...targetCredentialRegistrationIdentity(),
2528
- targetFactor: passkeyTargetFactorV1(),
2529
- targetPreparationDigestB64u: digest,
2530
- ordinarySignerMaterialRecipientRequests: parseRecipientRequests,
2531
- webauthnRegistration: linkedDeviceWebAuthnRegistrationV1(),
2532
- registeredAtMs: parseUnixTime
2533
- });
2534
- }
2535
- function emailOtpTargetCredentialRegistrationV1() {
2536
- return wireObject({
2537
- ...targetCredentialRegistrationIdentity(),
2538
- targetFactor: emailOtpTargetFactorV1(),
2539
- targetEmail: parseTargetEmail,
2540
- targetPreparationDigestB64u: digest,
2541
- ordinarySignerMaterialRecipientRequests: parseRecipientRequests,
2542
- emailOtpVerificationGrant: parseLinkedDeviceEmailOtpVerificationGrantV1,
2543
- registeredAtMs: parseUnixTime
2544
- });
2545
- }
2546
- function newEmailOtpTargetCredentialRegistrationV1() {
2547
- return wireObject({
2548
- ...targetCredentialRegistrationIdentity(),
2549
- targetFactor: emailOtpTargetFactorV1(),
2550
- targetEmail: parseTargetEmail,
2551
- targetPreparationDigestB64u: digest,
2552
- ordinarySignerMaterialRecipientRequests: parseRecipientRequests,
2553
- emailOtpVerificationGrant: parseLinkedDeviceEmailOtpVerificationGrantV1,
2554
- emailOtpEnrollment: emailOtpEnrollmentMaterialV1(),
2555
- registeredAtMs: parseUnixTime
2556
- });
2557
- }
2558
- function parseLinkedDeviceTargetCredentialRegistrationV1(raw) {
2559
- const label = "LinkedDeviceTargetCredentialRegistrationV1";
2560
- const record = requireRecord(raw, label);
2561
- if (parseTargetFactor(record.targetFactor, `${label}.targetFactor`).kind === "passkey_prf") return passkeyTargetCredentialRegistrationV1()(record, label);
2562
- return (parseLinkedDeviceEmailOtpVerificationGrantV1(record.emailOtpVerificationGrant).enrollment.kind === "new_enrollment" ? newEmailOtpTargetCredentialRegistrationV1() : emailOtpTargetCredentialRegistrationV1())(record, label);
2563
- }
2564
- function targetCredentialRegistrationResultV1() {
2565
- return wireObject({
2566
- kind: wireLiteral("linked_device_target_credential_registration_result_v1"),
2567
- outcome: wireLiteral("applied", "replayed"),
2568
- linkSessionId: sessionId,
2569
- walletId,
2570
- enrollmentId,
2571
- deviceId: linkedDeviceId,
2572
- walletAuthMethodId,
2573
- targetPreparationDigestB64u: digest,
2574
- targetFactor: parseVerifiedTargetFactorV1,
2575
- ordinarySignerMaterialPreparations: parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1,
2576
- ordinarySignerMaterialRecipientRequests: parseRecipientRequests,
2577
- keyManifestDigestB64u: digest
2578
- }, (result, label) => {
2579
- const { authMethod } = result.targetFactor;
2580
- if (authMethod.walletAuthMethodId !== result.walletAuthMethodId || authMethod.walletId !== result.walletId) throw new Error(`${label} target identity differs`);
2581
- });
2582
- }
2583
- function parseLinkedDeviceTargetCredentialRegistrationResultV1(raw) {
2584
- return targetCredentialRegistrationResultV1()(raw, "LinkedDeviceTargetCredentialRegistrationResultV1");
2585
- }
2586
- function verifiedAfterCreation(target, label) {
2587
- if (target.verifiedAtMs < target.authMethod.createdAtMs) throw new Error(`${label}.verifiedAtMs precedes authMethod.createdAtMs`);
2588
- }
2589
- function verifiedPasskeyTargetV1() {
2590
- return wireObject({
2591
- kind: wireLiteral("verified_passkey_target_v1"),
2592
- authMethod: parsePasskeyWalletAuthMethodDraftV1,
2593
- verificationDigestB64u: digest,
2594
- verifiedAtMs: parseUnixTime
2595
- }, verifiedAfterCreation);
2596
- }
2597
- function verifiedEmailOtpTargetV1() {
2598
- return wireObject({
2599
- kind: wireLiteral("verified_email_otp_target_v1"),
2600
- authMethod: parseEmailOtpWalletAuthMethodDraftV1,
2601
- targetEmail: parseTargetEmail,
2602
- enrollment: existingEnrollmentV1(),
2603
- baseWalletAuthMethodId: walletAuthMethodId,
2604
- providerUserId: parseNonEmptyToken,
2605
- verificationDigestB64u: digest,
2606
- verifiedAtMs: parseUnixTime
2607
- }, verifiedAfterCreation);
2608
- }
2609
- function verifiedNewEmailOtpTargetV1() {
2610
- return wireObject({
2611
- kind: wireLiteral("verified_email_otp_target_v1"),
2612
- authMethod: parseEmailOtpWalletAuthMethodDraftV1,
2613
- targetEmail: parseTargetEmail,
2614
- enrollment: newEnrollmentV1(),
2615
- providerUserId: parseNonEmptyToken,
2616
- verificationDigestB64u: digest,
2617
- verifiedAtMs: parseUnixTime
2618
- }, verifiedAfterCreation);
2619
- }
2620
- function parseVerifiedTargetFactorV1(raw, label) {
2621
- const record = requireRecord(raw, label);
2622
- if (record.kind === "verified_passkey_target_v1") return verifiedPasskeyTargetV1()(record, label);
2623
- if (record.kind !== "verified_email_otp_target_v1") throw new Error(`${label}.kind is invalid`);
2624
- return (parseEmailOtpEnrollmentSelection(record.enrollment, `${label}.enrollment`).kind === "existing_enrollment" ? verifiedEmailOtpTargetV1() : verifiedNewEmailOtpTargetV1())(record, label);
2625
- }
2626
- function passkeyWalletAuthMethodDraftV1() {
2627
- return wireObject({
2628
- walletAuthMethodId,
2629
- walletId,
2630
- createdAtMs: parseUnixTime,
2631
- kind: wireLiteral("passkey"),
2632
- rpId: rpId$1,
2633
- credentialIdB64u: credentialId,
2634
- credentialPublicKeyB64u: parseCanonicalBase64UrlBytes,
2635
- counter: parseNonNegativeSafeInteger
2636
- });
2637
- }
2638
- function parsePasskeyWalletAuthMethodDraftV1(raw, label) {
2639
- return passkeyWalletAuthMethodDraftV1()(raw, label);
2640
- }
2641
- function emailOtpWalletAuthMethodDraftV1() {
2642
- return wireObject({
2643
- walletAuthMethodId,
2644
- walletId,
2645
- createdAtMs: parseUnixTime,
2646
- kind: wireLiteral("email_otp"),
2647
- emailHashHex: parseEmailHashHex,
2648
- registrationAuthorityId: parseNonEmptyToken
2649
- });
2650
- }
2651
- function parseEmailOtpWalletAuthMethodDraftV1(raw, label) {
2652
- return emailOtpWalletAuthMethodDraftV1()(raw, label);
2653
- }
2654
- function emailOtpVerificationGrantFields(enrollment) {
2655
- return {
2656
- kind: wireLiteral("linked_device_email_otp_verification_grant_v1"),
2657
- grantId: parseNonEmptyToken,
2658
- grantToken: parseNonEmptyToken,
2659
- challengeId: parseNonEmptyToken,
2660
- linkSessionId: sessionId,
2661
- walletId,
2662
- enrollmentId,
2663
- deviceId: linkedDeviceId,
2664
- targetPreparationDigestB64u: digest,
2665
- targetEmail: parseTargetEmail,
2666
- enrollment,
2667
- emailHashHex: parseEmailHashHex,
2668
- registrationAuthorityId: parseNonEmptyToken,
2669
- providerUserId: parseNonEmptyToken,
2670
- authorityDigestB64u: digest,
2671
- issuedAtMs: parseUnixTime,
2672
- expiresAtMs: parseUnixTime
2673
- };
2674
- }
2675
- function grantIssuedBeforeExpiry(grant, label) {
2676
- assertExpiryAfterIssued(grant.issuedAtMs, grant.expiresAtMs, label);
2677
- }
2678
- function emailOtpVerificationGrantV1() {
2679
- return wireObject({
2680
- ...emailOtpVerificationGrantFields(existingEnrollmentV1()),
2681
- baseWalletAuthMethodId: walletAuthMethodId
2682
- }, grantIssuedBeforeExpiry);
2683
- }
2684
- function newEnrollmentEmailOtpVerificationGrantV1() {
2685
- return wireObject(emailOtpVerificationGrantFields(newEnrollmentV1()), grantIssuedBeforeExpiry);
2686
- }
2687
- function parseLinkedDeviceEmailOtpVerificationGrantV1(raw) {
2688
- const label = "LinkedDeviceEmailOtpVerificationGrantV1";
2689
- const record = requireRecord(raw, label);
2690
- return (parseEmailOtpEnrollmentSelection(record.enrollment, `${label}.enrollment`).kind === "new_enrollment" ? newEnrollmentEmailOtpVerificationGrantV1() : emailOtpVerificationGrantV1())(record, label);
2691
- }
2692
- function emailOtpFactorReleaseEnvelopeV1() {
2693
- return wireObject({
2694
- kind: wireLiteral("email_otp_factor_release_v1"),
2695
- challengeId: parseNonEmptyToken,
2696
- enrollmentId: parseNonEmptyToken,
2697
- enrollmentSealKeyVersion: parseNonEmptyToken,
2698
- serverEphemeralPublicKey65B64u: parseUncompressedP256PointB64u,
2699
- nonce12B64u: (raw, label) => parseCanonicalFixedBase64UrlBytes(raw, 12, label),
2700
- ciphertextB64u: parseCanonicalBase64UrlBytes
2701
- });
2702
- }
2703
- function parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1(raw) {
2704
- return emailOtpFactorReleaseEnvelopeV1()(raw, "LinkedDeviceEmailOtpFactorReleaseEnvelopeV1");
2705
- }
2706
- function emailOtpChallengeStartRequestV1() {
2707
- return wireObject({
2708
- kind: wireLiteral("linked_device_email_otp_challenge_start_request_v1"),
2709
- linkSessionId: sessionId,
2710
- workerEphemeralPublicKey65B64u: parseUncompressedP256PointB64u
2711
- });
2712
- }
2713
- function parseLinkedDeviceEmailOtpChallengeStartRequestV1(raw) {
2714
- return emailOtpChallengeStartRequestV1()(raw, "LinkedDeviceEmailOtpChallengeStartRequestV1");
2715
- }
2716
- function emailOtpChallengeResendRequestV1() {
2717
- return wireObject({
2718
- kind: wireLiteral("linked_device_email_otp_challenge_resend_request_v1"),
2719
- linkSessionId: sessionId,
2720
- challengeId: parseNonEmptyToken
2721
- });
2722
- }
2723
- function parseLinkedDeviceEmailOtpChallengeResendRequestV1(raw) {
2724
- return emailOtpChallengeResendRequestV1()(raw, "LinkedDeviceEmailOtpChallengeResendRequestV1");
2725
- }
2726
- function emailOtpChallengeVerifyRequestV1() {
2727
- return wireObject({
2728
- kind: wireLiteral("linked_device_email_otp_challenge_verify_request_v1"),
2729
- linkSessionId: sessionId,
2730
- challengeId: parseNonEmptyToken,
2731
- otpCode: (raw, label) => {
2732
- if (typeof raw !== "string" || !/^[0-9]{6,10}$/.test(raw)) throw new Error(`${label} is invalid`);
2733
- return raw;
2734
- }
2735
- });
2736
- }
2737
- function parseLinkedDeviceEmailOtpChallengeVerifyRequestV1(raw) {
2738
- return emailOtpChallengeVerifyRequestV1()(raw, "LinkedDeviceEmailOtpChallengeVerifyRequestV1");
2739
- }
2740
- function emailOtpChallengeResultV1() {
2741
- return wireObject({
2742
- kind: wireLiteral("linked_device_email_otp_challenge_result_v1"),
2743
- challengeId: parseNonEmptyToken,
2744
- maskedEmailHint: parseNonEmptyToken,
2745
- expiresAtMs: parseUnixTime,
2746
- resendAvailableAtMs: parseUnixTime
2747
- });
2748
- }
2749
- function parseLinkedDeviceEmailOtpChallengeResultV1(raw) {
2750
- return emailOtpChallengeResultV1()(raw, "LinkedDeviceEmailOtpChallengeResultV1");
2751
- }
2752
- function parseLinkedDeviceEmailOtpVerificationResultV1(raw) {
2753
- const record = exactRecord$3(raw, [
2754
- "kind",
2755
- "verificationGrant",
2756
- "factorRelease"
2757
- ], "LinkedDeviceEmailOtpVerificationResultV1");
2758
- if (record.kind !== "linked_device_email_otp_verification_result_v1") throw new Error("LinkedDeviceEmailOtpVerificationResultV1.kind is invalid");
2759
- const verificationGrant = parseLinkedDeviceEmailOtpVerificationGrantV1(record.verificationGrant);
2760
- if (isNewEnrollmentEmailOtpVerificationGrantV1(verificationGrant)) {
2761
- if (record.factorRelease !== null) throw new Error("new linked-device Email OTP enrollment cannot carry a factor release");
2762
- return {
2763
- kind: "linked_device_email_otp_verification_result_v1",
2764
- verificationGrant,
2765
- factorRelease: null
2766
- };
2767
- }
2768
- const factorRelease = parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1(record.factorRelease);
2769
- if (factorRelease.challengeId !== verificationGrant.challengeId) throw new Error("LinkedDeviceEmailOtpVerificationResultV1 challenge binding changed");
2770
- return {
2771
- kind: "linked_device_email_otp_verification_result_v1",
2772
- verificationGrant,
2773
- factorRelease
2774
- };
2775
- }
2776
- function isNewEnrollmentEmailOtpVerificationGrantV1(grant) {
2777
- return grant.enrollment.kind === "new_enrollment";
2778
- }
2779
- function buildQrLinkedDeviceSessionPayloadV5(args) {
2780
- const issuedAtMs = parseUnixTime(args.issuedAtMs, "QrLinkedDeviceSessionPayloadV5.issuedAtMs");
2781
- const expiresAtMs = parseUnixTime(args.expiresAtMs, "QrLinkedDeviceSessionPayloadV5.expiresAtMs");
2782
- assertExpiryAfterIssued(issuedAtMs, expiresAtMs, "QrLinkedDeviceSessionPayloadV5");
2783
- const targetFactor = parseTargetFactor(args.targetFactor, "QrLinkedDeviceSessionPayloadV5.targetFactor");
2784
- if (targetFactor.kind === "passkey_prf") return {
2785
- version: "v5",
2786
- purpose: "linked_device_lane_creation",
2787
- linkSessionId: args.linkSessionId,
2788
- linkPublicKeyB64u: args.linkPublicKeyB64u,
2789
- devicePublicKeyB64u: args.devicePublicKeyB64u,
2790
- requestedPermission: parseDelegatedWalletAuthority(delegatedWalletAuthorityWireValue(args.requestedPermission), "QrLinkedDeviceSessionPayloadV5.requestedPermission"),
2791
- targetFactor,
2792
- issuedAtMs,
2793
- expiresAtMs
2794
- };
2795
- if (args.targetEmail === void 0) throw new Error("QrLinkedDeviceSessionPayloadV5.targetEmail is required for Email OTP");
2796
- return {
2797
- version: "v5",
2798
- purpose: "linked_device_lane_creation",
2799
- linkSessionId: args.linkSessionId,
2800
- linkPublicKeyB64u: args.linkPublicKeyB64u,
2801
- devicePublicKeyB64u: args.devicePublicKeyB64u,
2802
- requestedPermission: parseDelegatedWalletAuthority(delegatedWalletAuthorityWireValue(args.requestedPermission), "QrLinkedDeviceSessionPayloadV5.requestedPermission"),
2803
- targetFactor,
2804
- targetEmail: parseTargetEmail(args.targetEmail, "QrLinkedDeviceSessionPayloadV5.targetEmail"),
2805
- issuedAtMs,
2806
- expiresAtMs
2807
- };
2808
- }
2809
- function buildLinkedDeviceSessionClaimRequestV1(payload) {
2810
- return {
2811
- kind: "linked_device_session_claim_request_v1",
2812
- payload
2813
- };
2814
- }
2815
- function validateEnrollmentTimes(approvedAtMs, expiresAtMs, label) {
2816
- const approved = parseUnixTime(approvedAtMs, `${label}.approvedAtMs`);
2817
- const expires = parseUnixTime(expiresAtMs, `${label}.expiresAtMs`);
2818
- assertExpiryAfterIssued(approved, expires, label);
2819
- return {
2820
- approvedAtMs: approved,
2821
- expiresAtMs: expires
2822
- };
2823
- }
2824
- function buildLinkedDeviceApprovalV1(args) {
2825
- const times = validateEnrollmentTimes(args.approvedAtMs, args.expiresAtMs, "LinkedDeviceApprovalV1");
2826
- return parseLinkedDeviceApprovalV1({
2827
- kind: "linked_device_approval_v1",
2828
- ...args,
2829
- ...times
2830
- });
2831
- }
2832
- function buildLinkedDeviceTargetCredentialRegistrationV1(args) {
2833
- return parseLinkedDeviceTargetCredentialRegistrationV1({
2834
- kind: "linked_device_target_credential_registration_v1",
2835
- ...args
2836
- });
2837
- }
2838
- function buildLinkedDeviceSessionCancelUnclaimedRequestV1(args) {
2839
- return {
2840
- kind: "linked_device_session_cancel_unclaimed_request_v1",
2841
- linkSessionId: args.linkSessionId,
2842
- reason: "user_cancelled",
2843
- requestedAtMs: parseUnixTime(args.requestedAtMs, "LinkedDeviceSessionCancelUnclaimedRequestV1.requestedAtMs")
2844
- };
2845
- }
2846
- function buildLinkedDeviceSessionCancelClaimedRequestV1(args) {
2847
- return {
2848
- kind: "linked_device_session_cancel_claimed_request_v1",
2849
- ...args,
2850
- requestedAtMs: parseUnixTime(args.requestedAtMs, "LinkedDeviceSessionCancelClaimedRequestV1.requestedAtMs")
2851
- };
2852
- }
2853
- //#endregion
2854
- //#region ../shared-ts/src/utils/webauthnDeviceInfo.ts
2855
- const WEBAUTHN_DEVICE_BROWSERS = [
2856
- "chrome",
2857
- "safari",
2858
- "firefox",
2859
- "edge",
2860
- "other"
2861
- ];
2862
- const WEBAUTHN_DEVICE_OSES = [
2863
- "macos",
2864
- "ios",
2865
- "windows",
2866
- "android",
2867
- "linux",
2868
- "other"
2869
- ];
2870
- function isWebAuthnDeviceBrowser(value) {
2871
- return typeof value === "string" && WEBAUTHN_DEVICE_BROWSERS.some((browser) => browser === value);
2872
- }
2873
- function isWebAuthnDeviceOs(value) {
2874
- return typeof value === "string" && WEBAUTHN_DEVICE_OSES.some((os) => os === value);
2875
- }
2876
- /** Strict parse of a stored/transported device-info record; null when the
2877
- * shape is not a valid WebAuthnAuthenticatorDeviceInfo. */
2878
- function parseWebAuthnAuthenticatorDeviceInfo(raw) {
2879
- if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
2880
- const record = raw;
2881
- const label = typeof record.label === "string" ? record.label.trim() : "";
2882
- if (!label) return null;
2883
- if (!isWebAuthnDeviceBrowser(record.browser)) return null;
2884
- if (!isWebAuthnDeviceOs(record.os)) return null;
2885
- if (typeof record.synced !== "boolean") return null;
2886
- if (!Array.isArray(record.transports)) return null;
2887
- const transports = record.transports.map((t) => typeof t === "string" ? t.trim() : "").filter((t) => t.length > 0);
2888
- const provider = typeof record.provider === "string" ? record.provider.trim() : "";
2889
- const providerLabel = typeof record.providerLabel === "string" ? record.providerLabel.trim() : "";
2890
- return {
2891
- label,
2892
- browser: record.browser,
2893
- os: record.os,
2894
- synced: record.synced,
2895
- transports,
2896
- ...provider ? { provider } : {},
2897
- ...providerLabel ? { providerLabel } : {}
2898
- };
2899
- }
2900
- //#endregion
2901
- //#region ../shared-ts/src/device-linking/deviceManagement.ts
2902
- function listOf(item) {
2903
- return (raw, label) => {
2904
- if (!Array.isArray(raw)) throw new Error(`${label} is invalid`);
2905
- return raw.map((entry, index) => item(entry, `${label}[${index}]`));
2906
- };
2907
- }
2908
- function parseLinkedDeviceRevokeWalletAuthMethodId(raw, label) {
2909
- const value = walletAuthMethodId(raw, label);
2910
- if (value.startsWith("wallet-authority:") || value.startsWith("authority:")) throw new Error(`${label} must identify a WalletAuthMethodId`);
2911
- return value;
2912
- }
2913
- function parsePositiveSafeInteger(raw, label) {
2914
- const value = parseNonNegativeSafeInteger(raw, label);
2915
- if (value < 1) throw new Error(`${label} must be a positive safe integer`);
2916
- return value;
2917
- }
2918
- function parseWebAuthnDeviceInfo(raw, label) {
2919
- const device = parseWebAuthnAuthenticatorDeviceInfo(raw);
2920
- if (!device) throw new Error(`${label} is invalid`);
2921
- return device;
2922
- }
2923
- function linkedOwnerCredentialMetadataV1() {
2924
- return wireUnion("kind", [wireObject({
2925
- kind: wireLiteral("passkey"),
2926
- walletAuthMethodId,
2927
- credentialIdB64u: credentialId,
2928
- device: parseWebAuthnDeviceInfo
2929
- }), wireObject({
2930
- kind: wireLiteral("email_otp"),
2931
- walletAuthMethodId,
2932
- email: parseTargetEmail
2933
- })]);
2934
- }
2935
- function parseLinkedOwnerCredentialMetadata(raw, label) {
2936
- return linkedOwnerCredentialMetadataV1()(raw, label);
2937
- }
2938
- function linkedDeviceSummaryV1() {
2939
- return wireObject({
2940
- deviceId: linkedDeviceId,
2941
- enrollmentId,
2942
- walletId,
2943
- credential: parseLinkedOwnerCredentialMetadata,
2944
- permission: parseDelegatedWalletAuthority,
2945
- keyManifestDigestB64u: digest,
2946
- coveredWalletKeys: listOf(walletKeyId),
2947
- state: wireLiteral("provisioning", "active", "suspended", "expired", "revoked"),
2948
- createdAtMs: parseUnixTime,
2949
- lastActivityAtMs: parseUnixTime,
2950
- revocationEpoch: parseNonNegativeSafeInteger
2951
- });
2952
- }
2953
- function parseLinkedDeviceSummaryV1(raw) {
2954
- return linkedDeviceSummaryV1()(raw, "LinkedDeviceSummaryV1");
2955
- }
2956
- function linkedDeviceListRequestV1() {
2957
- return wireObject({
2958
- kind: wireLiteral("linked_device_list_request_v1"),
2959
- walletId,
2960
- limit: parsePositiveSafeInteger,
2961
- cursor: nullableToken
2962
- });
2963
- }
2964
- function parseLinkedDeviceListRequestV1(raw) {
2965
- return linkedDeviceListRequestV1()(raw, "LinkedDeviceListRequestV1");
2966
- }
2967
- function ownerDeviceSummaryV1() {
2968
- return wireObject({
2969
- walletId,
2970
- walletAuthorityId,
2971
- credential: parseLinkedOwnerCredentialMetadata,
2972
- createdAtMs: parseUnixTime,
2973
- lastActivityAtMs: parseUnixTime
2974
- });
2975
- }
2976
- function linkedDeviceListResultV1() {
2977
- const ownerDevice = ownerDeviceSummaryV1();
2978
- return wireObject({
2979
- devices: listOf(parseLinkedDeviceSummaryV1),
2980
- ownerDevices: listOf((raw) => ownerDevice(raw, "OwnerDeviceSummaryV1")),
2981
- nextCursor: nullableToken
2982
- });
2983
- }
2984
- function parseLinkedDeviceListResultV1(raw) {
2985
- return linkedDeviceListResultV1()(raw, "LinkedDeviceListResultV1");
2986
- }
2987
- function linkedDeviceRevokeRequestV1() {
2988
- return wireObject({
2989
- kind: wireLiteral("linked_device_revoke_request_v1"),
2990
- walletId,
2991
- walletAuthMethodId: parseLinkedDeviceRevokeWalletAuthMethodId,
2992
- requestedAtMs: parseUnixTime
2993
- });
2994
- }
2995
- function parseLinkedDeviceRevokeRequestV1(raw) {
2996
- return linkedDeviceRevokeRequestV1()(raw, "LinkedDeviceRevokeRequestV1");
2997
- }
2998
- function linkedDeviceRevokeFailureV1() {
2999
- return wireObject({ kind: wireLiteral("not_found", "conflict", "unauthorized") });
3000
- }
3001
- function linkedDeviceRevokedV1() {
3002
- return wireObject({
3003
- kind: wireLiteral("revoked"),
3004
- walletAuthMethodId: parseLinkedDeviceRevokeWalletAuthMethodId,
3005
- authorityId: walletAuthorityId,
3006
- revocationEpoch: parseNonNegativeSafeInteger
3007
- });
3008
- }
3009
- function parseLinkedDeviceRevokeResultV1(raw) {
3010
- const record = requireRecord(raw, "LinkedDeviceRevokeResultV1");
3011
- return (record.kind === "not_found" || record.kind === "conflict" || record.kind === "unauthorized" ? linkedDeviceRevokeFailureV1() : linkedDeviceRevokedV1())(record, "LinkedDeviceRevokeResultV1");
3012
- }
3013
- //#endregion
3014
- //#region ../shared-ts/src/device-linking/walletSessionCredentialDelivery.ts
3015
- const DELIVERY_AAD_DOMAIN = "seams/linked-device/wallet-session-credential-delivery-aad/v1";
3016
- const DELIVERY_ENVELOPE_DOMAIN = "seams/linked-device/wallet-session-credential-delivery-envelope/v1";
3017
- function encodeLinkedDeviceWalletSessionCredentialDeliveryAadV1(aad) {
3018
- return alphabetizeStringify({
3019
- domain: DELIVERY_AAD_DOMAIN,
3020
- aad
3021
- });
3022
- }
3023
- function parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1(raw) {
3024
- const record = exactRecord(raw, [
3025
- "kind",
3026
- "namespace",
3027
- "orgId",
3028
- "projectId",
3029
- "envId",
3030
- "tenantId",
3031
- "principalId"
3032
- ], "LinkedDeviceWalletSessionCredentialDeliveryBindingV1");
3033
- if (record.kind !== "linked_device_wallet_session_credential_delivery_binding_v1") throw new Error("LinkedDeviceWalletSessionCredentialDeliveryBindingV1.kind is invalid");
3034
- return {
3035
- kind: "linked_device_wallet_session_credential_delivery_binding_v1",
3036
- namespace: nonEmpty(record.namespace, "namespace"),
3037
- orgId: nonEmpty(record.orgId, "orgId"),
3038
- projectId: nonEmpty(record.projectId, "projectId"),
3039
- envId: nonEmpty(record.envId, "envId"),
3040
- tenantId: parsed(parseTenantId(record.tenantId)),
3041
- principalId: parsed(parsePrincipalId(record.principalId))
3042
- };
3043
- }
3044
- async function computeLinkedDeviceWalletSessionCredentialDeliveryAadDigestB64u(aad) {
3045
- return sha256Utf8DigestB64u(encodeLinkedDeviceWalletSessionCredentialDeliveryAadV1(aad));
3046
- }
3047
- async function computeLinkedDeviceWalletSessionCredentialEnvelopeDigestB64u(envelope) {
3048
- return sha256Utf8DigestB64u(alphabetizeStringify({
3049
- domain: DELIVERY_ENVELOPE_DOMAIN,
3050
- envelope
3051
- }));
3052
- }
3053
- async function assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1(delivery) {
3054
- if (await computeLinkedDeviceWalletSessionCredentialDeliveryAadDigestB64u(delivery.aad) !== delivery.aadDigestB64u) throw new Error("linked-device Wallet Session credential delivery AAD digest is invalid");
3055
- if (await computeLinkedDeviceWalletSessionCredentialEnvelopeDigestB64u(delivery.envelope) !== delivery.envelopeDigestB64u) throw new Error("linked-device Wallet Session credential delivery envelope digest is invalid");
3056
- if (await sha256Utf8DigestB64u(alphabetizeStringify({
3057
- domain: "seams/linked-device/delivery-recipient/v1",
3058
- recipientPublicKey65B64u: delivery.aad.recipientPublicKey65B64u
3059
- })) !== delivery.recipientBindingDigestB64u) throw new Error("linked-device Wallet Session credential delivery recipient binding is invalid");
3060
- }
3061
- function parseLinkedDeviceWalletSessionCredentialDeliveryV1(raw) {
3062
- const record = exactRecord(raw, [
3063
- "kind",
3064
- "aad",
3065
- "aadDigestB64u",
3066
- "recipientBindingDigestB64u",
3067
- "envelope",
3068
- "envelopeDigestB64u",
3069
- "installationReceiptDigestB64u"
3070
- ], "LinkedDeviceWalletSessionCredentialDeliveryV1");
3071
- if (record.kind !== "linked_device_wallet_session_credential_delivery_v1") throw new Error("LinkedDeviceWalletSessionCredentialDeliveryV1.kind is invalid");
3072
- return {
3073
- kind: "linked_device_wallet_session_credential_delivery_v1",
3074
- aad: parseDeliveryAad(record.aad),
3075
- aadDigestB64u: parseDigestB64u(record.aadDigestB64u),
3076
- recipientBindingDigestB64u: parseDigestB64u(record.recipientBindingDigestB64u),
3077
- envelope: parseDeliveryEnvelope(record.envelope),
3078
- envelopeDigestB64u: parseDigestB64u(record.envelopeDigestB64u),
3079
- installationReceiptDigestB64u: parseDigestB64u(record.installationReceiptDigestB64u)
3080
- };
3081
- }
3082
- function parseDeliveryAad(raw) {
3083
- const record = exactRecord(raw, [
3084
- "kind",
3085
- "namespace",
3086
- "orgId",
3087
- "projectId",
3088
- "envId",
3089
- "tenantId",
3090
- "principalId",
3091
- "linkSessionId",
3092
- "walletId",
3093
- "authorityId",
3094
- "walletAuthMethodId",
3095
- "authorizationId",
3096
- "walletSessionId",
3097
- "quotaId",
3098
- "credentialDigestB64u",
3099
- "recipientPublicKey65B64u",
3100
- "issuedAtMs",
3101
- "expiresAtMs"
3102
- ], "LinkedDeviceWalletSessionCredentialDeliveryAadV1");
3103
- if (record.kind !== "linked_device_wallet_session_credential_delivery_aad_v1") throw new Error("LinkedDeviceWalletSessionCredentialDeliveryAadV1.kind is invalid");
3104
- const issuedAtMs = positiveInteger(record.issuedAtMs, "issuedAtMs");
3105
- const expiresAtMs = positiveInteger(record.expiresAtMs, "expiresAtMs");
3106
- if (expiresAtMs <= issuedAtMs) throw new Error("expiresAtMs must be after issuedAtMs");
3107
- return {
3108
- kind: "linked_device_wallet_session_credential_delivery_aad_v1",
3109
- namespace: nonEmpty(record.namespace, "namespace"),
3110
- orgId: nonEmpty(record.orgId, "orgId"),
3111
- projectId: nonEmpty(record.projectId, "projectId"),
3112
- envId: nonEmpty(record.envId, "envId"),
3113
- tenantId: parsed(parseTenantId(record.tenantId)),
3114
- principalId: parsed(parsePrincipalId(record.principalId)),
3115
- linkSessionId: parsed(parseLinkDeviceSessionId(record.linkSessionId)),
3116
- walletId: parsed(parseWalletId(record.walletId)),
3117
- authorityId: parsed(parseWalletAuthorityId(record.authorityId)),
3118
- walletAuthMethodId: parsed(parseWalletAuthMethodId(record.walletAuthMethodId)),
3119
- authorizationId: parsed(parseWalletSessionAuthorizationId(record.authorizationId)),
3120
- walletSessionId: parsed(parseWalletSessionId(record.walletSessionId)),
3121
- quotaId: parsed(parseMpcWalletSigningQuotaId(record.quotaId)),
3122
- credentialDigestB64u: parseDigestB64u(record.credentialDigestB64u),
3123
- recipientPublicKey65B64u: fixedBase64Url(record.recipientPublicKey65B64u, 65),
3124
- issuedAtMs,
3125
- expiresAtMs
3126
- };
3127
- }
3128
- function parseDeliveryEnvelope(raw) {
3129
- const record = exactRecord(raw, [
3130
- "kind",
3131
- "algorithm",
3132
- "serverEphemeralPublicKey65B64u",
3133
- "nonce12B64u",
3134
- "ciphertextB64u"
3135
- ], "LinkedDeviceWalletSessionCredentialEnvelopeV1");
3136
- if (record.kind !== "linked_device_wallet_session_credential_envelope_v1" || record.algorithm !== "p256-ecdh-aes256gcm-v1") throw new Error("LinkedDeviceWalletSessionCredentialEnvelopeV1 identity is invalid");
3137
- return {
3138
- kind: "linked_device_wallet_session_credential_envelope_v1",
3139
- algorithm: "p256-ecdh-aes256gcm-v1",
3140
- serverEphemeralPublicKey65B64u: fixedBase64Url(record.serverEphemeralPublicKey65B64u, 65),
3141
- nonce12B64u: fixedBase64Url(record.nonce12B64u, 12),
3142
- ciphertextB64u: canonicalBase64Url(record.ciphertextB64u)
3143
- };
3144
- }
3145
- function exactRecord(raw, fields, label) {
3146
- if (typeof raw !== "object" || raw === null || Array.isArray(raw)) throw new Error(`${label} must be an object`);
3147
- const record = raw;
3148
- const expected = new Set(fields);
3149
- for (const field of Object.keys(record)) if (!expected.has(field)) throw new Error(`${label}.${field} is not supported`);
3150
- for (const field of fields) if (!(field in record)) throw new Error(`${label}.${field} is required`);
3151
- return record;
3152
- }
3153
- function nonEmpty(raw, label) {
3154
- if (typeof raw !== "string" || raw.length === 0 || raw.trim() !== raw) throw new Error(`${label} is required`);
3155
- return raw;
3156
- }
3157
- function positiveInteger(raw, label) {
3158
- if (!Number.isSafeInteger(raw) || Number(raw) <= 0) throw new Error(`${label} is invalid`);
3159
- return Number(raw);
3160
- }
3161
- function canonicalBase64Url(raw) {
3162
- const encoded = nonEmpty(raw, "base64url");
3163
- if (base64UrlEncode(base64UrlDecode(encoded)) !== encoded) throw new Error("base64url is not canonical");
3164
- return encoded;
3165
- }
3166
- function fixedBase64Url(raw, length) {
3167
- const encoded = canonicalBase64Url(raw);
3168
- const bytes = base64UrlDecode(encoded);
3169
- if (bytes.length !== length) throw new Error(`base64url must contain ${length} bytes`);
3170
- if (length === 65 && bytes[0] !== 4) throw new Error("P-256 public key is invalid");
3171
- return encoded;
3172
- }
3173
- function parsed(result) {
3174
- if (!result.ok) throw new Error(result.error.message);
3175
- return result.value;
3176
- }
3177
- //#endregion
3178
- //#region ../shared-ts/src/device-linking/authorityActivation.ts
3179
- function parseInstalledActivationRefs(raw, label) {
3180
- const result = parseWalletSignerActivationSetV1(raw);
3181
- if (!result.ok) throw new Error(`${label} ${result.error}`);
3182
- return result.value;
3183
- }
3184
- function localAuthorityInstallationReceiptV1() {
3185
- return wireObject({
3186
- kind: wireLiteral("local_authority_installation_receipt_v1"),
3187
- authorityId: keyLabeled(walletAuthorityId),
3188
- walletId: keyLabeled(walletId),
3189
- authMethodId: keyLabeled(walletAuthMethodId),
3190
- deviceId: keyLabeled(authorizationDeviceId),
3191
- packageSetDigestB64u: keyLabeled(digest),
3192
- installedActivationRefs: parseInstalledActivationRefs,
3193
- installedRecordSetDigestB64u: keyLabeled(digest),
3194
- targetFactorVerificationDigestB64u: keyLabeled(digest),
3195
- installedAtMs: keyLabeled(parseUnixTime)
3196
- });
3197
- }
3198
- function parseLocalAuthorityInstallationReceiptV1(raw) {
3199
- return localAuthorityInstallationReceiptV1()(raw, "LocalAuthorityInstallationReceiptV1");
3200
- }
3201
- function localAuthorityActivationFinalAckV1() {
3202
- return wireObject({
3203
- kind: wireLiteral("local_authority_activation_final_ack_v1"),
3204
- linkSessionId: keyLabeled(sessionId),
3205
- authorityId: keyLabeled(walletAuthorityId),
3206
- packageSetDigestB64u: keyLabeled(digest),
3207
- authorizationId: keyLabeled(walletSessionAuthorizationId),
3208
- walletSessionId: keyLabeled(walletSessionId),
3209
- credentialDigestB64u: keyLabeled(digest),
3210
- installationReceiptDigestB64u: keyLabeled(digest),
3211
- acknowledgedAtMs: keyLabeled(parseUnixTime)
3212
- });
3213
- }
3214
- function parseLocalAuthorityActivationFinalAckV1(raw) {
3215
- return localAuthorityActivationFinalAckV1()(raw, "LocalAuthorityActivationFinalAckV1");
3216
- }
3217
- function parseActivateInstalledAuthorityResultV1(raw) {
3218
- const record = requireRecord(raw, "ActivateInstalledAuthorityResultV1");
3219
- switch (record.kind) {
3220
- case "active": {
3221
- rejectUnknownFields$1(record, [
3222
- "kind",
3223
- "authority",
3224
- "authMethod",
3225
- "walletSession",
3226
- "deliveryBinding",
3227
- "sealedDelivery"
3228
- ], "ActivateInstalledAuthorityResultV1");
3229
- const authorityResult = parseWalletAuthorityV1(record.authority);
3230
- if (!authorityResult.ok || authorityResult.value.state !== "active") throw new Error("ActivateInstalledAuthorityResultV1.authority must be active");
3231
- const authMethod = parseWalletAuthMethodRecordV2(record.authMethod);
3232
- if (!authMethod || authMethod.status !== "active") throw new Error("ActivateInstalledAuthorityResultV1.authMethod must be active");
3233
- const walletSession = parseActiveWalletSessionV1(record.walletSession);
3234
- const deliveryBinding = parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1(record.deliveryBinding);
3235
- const sealedDelivery = parseLinkedDeviceWalletSessionCredentialDeliveryV1(record.sealedDelivery);
3236
- if (authorityResult.value.walletId !== authMethod.walletId || authorityResult.value.authorityId !== authMethod.walletAuthorityId || walletSession.walletId !== authorityResult.value.walletId || walletSession.authorityId !== authorityResult.value.authorityId || walletSession.authMethodId !== authMethod.walletAuthMethodId || walletSession.authorityDigestB64u !== authorityResult.value.authorityDigestB64u || walletSession.authorityRevocationEpoch !== authorityResult.value.revocationEpoch || deliveryBinding.namespace !== sealedDelivery.aad.namespace || deliveryBinding.orgId !== sealedDelivery.aad.orgId || deliveryBinding.projectId !== sealedDelivery.aad.projectId || deliveryBinding.envId !== sealedDelivery.aad.envId || deliveryBinding.tenantId !== sealedDelivery.aad.tenantId || deliveryBinding.principalId !== sealedDelivery.aad.principalId || sealedDelivery.aad.walletId !== walletSession.walletId || sealedDelivery.aad.authorityId !== walletSession.authorityId || sealedDelivery.aad.walletAuthMethodId !== walletSession.authMethodId || sealedDelivery.aad.authorizationId !== walletSession.authorizationId || sealedDelivery.aad.quotaId !== walletSession.quotaId || sealedDelivery.aad.issuedAtMs !== walletSession.issuedAtMs || sealedDelivery.aad.expiresAtMs !== walletSession.expiresAtMs) throw new Error("ActivateInstalledAuthorityResultV1 identities do not match");
3237
- return {
3238
- kind: "active",
3239
- authority: authorityResult.value,
3240
- authMethod,
3241
- walletSession,
3242
- deliveryBinding,
3243
- sealedDelivery
3244
- };
3245
- }
3246
- case "pending_local_install":
3247
- rejectUnknownFields$1(record, [
3248
- "kind",
3249
- "authorityId",
3250
- "reason"
3251
- ], "ActivateInstalledAuthorityResultV1");
3252
- return {
3253
- kind: "pending_local_install",
3254
- authorityId: walletAuthorityId(record.authorityId, "authorityId"),
3255
- reason: activationRetryReasonV1()(record.reason, "ActivationRetryReasonV1")
3256
- };
3257
- case "integrity_error":
3258
- rejectUnknownFields$1(record, ["kind", "reason"], "ActivateInstalledAuthorityResultV1");
3259
- return {
3260
- kind: "integrity_error",
3261
- reason: parseLinkIntegrityFailureV1(record.reason)
3262
- };
3263
- default: throw new Error("ActivateInstalledAuthorityResultV1.kind is invalid");
3264
- }
3265
- }
3266
- function activationRetryReasonV1() {
3267
- return wireUnion("kind", [
3268
- wireObject({ kind: wireLiteral("installation_receipt_not_found") }),
3269
- wireObject({ kind: wireLiteral("server_worker_activation_pending") }),
3270
- wireObject({ kind: wireLiteral("wallet_session_issuance_pending") })
3271
- ]);
3272
- }
3273
- function parseLinkIntegrityFailureV1(raw) {
3274
- const record = requireRecord(raw, "LinkIntegrityFailureV1");
3275
- switch (record.kind) {
3276
- case "authority_id_mismatch":
3277
- rejectUnknownFields$1(record, [
3278
- "kind",
3279
- "expectedAuthorityId",
3280
- "actualAuthorityId"
3281
- ], "LinkIntegrityFailureV1");
3282
- return {
3283
- kind: "authority_id_mismatch",
3284
- expectedAuthorityId: walletAuthorityId(record.expectedAuthorityId, "expectedAuthorityId"),
3285
- actualAuthorityId: walletAuthorityId(record.actualAuthorityId, "actualAuthorityId")
3286
- };
3287
- case "package_set_digest_mismatch":
3288
- rejectUnknownFields$1(record, [
3289
- "kind",
3290
- "expectedPackageSetDigestB64u",
3291
- "actualPackageSetDigestB64u"
3292
- ], "LinkIntegrityFailureV1");
3293
- return {
3294
- kind: "package_set_digest_mismatch",
3295
- expectedPackageSetDigestB64u: digest(record.expectedPackageSetDigestB64u, "expectedPackageSetDigestB64u"),
3296
- actualPackageSetDigestB64u: digest(record.actualPackageSetDigestB64u, "actualPackageSetDigestB64u")
3297
- };
3298
- case "installation_receipt_mismatch":
3299
- rejectUnknownFields$1(record, ["kind", "field"], "LinkIntegrityFailureV1");
3300
- if (record.field !== "walletId" && record.field !== "authMethodId" && record.field !== "deviceId" && record.field !== "targetFactorVerificationDigestB64u" && record.field !== "installedActivationRefs") throw new Error("LinkIntegrityFailureV1.field is invalid");
3301
- return {
3302
- kind: "installation_receipt_mismatch",
3303
- field: record.field
3304
- };
3305
- default: throw new Error("LinkIntegrityFailureV1.kind is invalid");
3306
- }
3307
- }
3308
- //#endregion
3309
- //#region ../shared-ts/src/device-linking/digests.ts
3310
- const TARGET_PREPARATION_DOMAIN = "seams/linked-device/target-preparation/v1";
3311
- const LOCAL_AUTHORITY_INSTALLATION_RECEIPT_DOMAIN = "seams/linked-device/local-authority-installation-receipt/v1";
3312
- new TextEncoder();
3313
- /**
3314
- * The server stores this digest alongside the authorization. Hashing the
3315
- * opaque token directly keeps the browser binding identical to that row.
3316
- */
3317
- async function computeWalletSessionOperationCredentialDigestB64u(credential) {
3318
- return sha256Utf8DigestB64u(credential.token);
3319
- }
3320
- function encodeWalletSessionInstallationReceiptV1(receipt) {
3321
- return alphabetizeStringify({
3322
- domain: LOCAL_AUTHORITY_INSTALLATION_RECEIPT_DOMAIN,
3323
- receipt
3324
- });
3325
- }
3326
- async function computeWalletSessionInstallationReceiptDigestB64u(receipt) {
3327
- return sha256Utf8DigestB64u(encodeWalletSessionInstallationReceiptV1(receipt));
3328
- }
3329
- function requirePresentString(value, label) {
3330
- if (value === void 0) throw new Error(`${label} is required`);
3331
- return value;
3332
- }
3333
- function encodeTargetFactor(value) {
3334
- return text(value.kind, "targetFactor.kind");
3335
- }
3336
- function encodeLinkedDevicePasskeyCreationOptionsV1(value) {
3337
- const algorithms = value.pubKeyCredParams.map((entry) => concat([text(entry.type, "passkeyCreationOptions.pubKeyCredParams.type"), text(String(entry.alg), "passkeyCreationOptions.pubKeyCredParams.alg")]));
3338
- const excludeCredentials = value.excludeCredentials.map((entry) => concat([text(entry.type, "passkeyCreationOptions.excludeCredentials.type"), text(entry.id, "passkeyCreationOptions.excludeCredentials.id")]));
3339
- return concat([
3340
- text(value.kind, "passkeyCreationOptions.kind"),
3341
- text(value.walletAuthMethodId, "passkeyCreationOptions.walletAuthMethodId"),
3342
- text(value.challengeId, "passkeyCreationOptions.challengeId"),
3343
- text(value.challengeB64u, "passkeyCreationOptions.challengeB64u"),
3344
- text(value.rpId, "passkeyCreationOptions.rpId"),
3345
- text(value.user.idB64u, "passkeyCreationOptions.user.idB64u"),
3346
- text(value.user.name, "passkeyCreationOptions.user.name"),
3347
- text(value.user.displayName, "passkeyCreationOptions.user.displayName"),
3348
- u32(algorithms.length, "passkeyCreationOptions.pubKeyCredParams"),
3349
- ...algorithms.map((entry) => lp32(entry, "passkeyCreationOptions.pubKeyCredParams.item")),
3350
- text(value.authenticatorSelection.residentKey, "passkeyCreationOptions.authenticatorSelection.residentKey"),
3351
- text(value.authenticatorSelection.userVerification, "passkeyCreationOptions.authenticatorSelection.userVerification"),
3352
- u64(value.timeoutMs, "passkeyCreationOptions.timeoutMs"),
3353
- text(value.attestation, "passkeyCreationOptions.attestation"),
3354
- text(value.extensions.prf.eval.firstB64u, "passkeyCreationOptions.extensions.prf.eval.firstB64u"),
3355
- text(value.extensions.prf.eval.secondB64u, "passkeyCreationOptions.extensions.prf.eval.secondB64u"),
3356
- u32(excludeCredentials.length, "passkeyCreationOptions.excludeCredentials"),
3357
- ...excludeCredentials.map((entry) => lp32(entry, "passkeyCreationOptions.excludeCredentials.item"))
3358
- ]);
3359
- }
3360
- function encodeRecipientRequirement(value) {
3361
- return concat([
3362
- text(value.kind, "recipientRequirement.kind"),
3363
- text(value.keyFamily, "recipientRequirement.keyFamily"),
3364
- text(value.walletKeyId, "recipientRequirement.walletKeyId")
3365
- ]);
3366
- }
3367
- function encodeEd25519ExportRootPreparation(value) {
3368
- if (value === null) return text("none", "ed25519ExportRoot.kind");
3369
- return concat([
3370
- text(value.kind, "ed25519ExportRoot.kind"),
3371
- text(value.walletKeyId, "ed25519ExportRoot.walletKeyId"),
3372
- rawDigest(value.applicationBindingDigestB64u, "ed25519ExportRoot.applicationBindingDigestB64u"),
3373
- rawPublicKey(value.registeredPublicKeyB64u, "ed25519ExportRoot.registeredPublicKeyB64u"),
3374
- u64(value.revocationEpoch, "ed25519ExportRoot.revocationEpoch")
3375
- ]);
3376
- }
3377
- function encodeLinkedDeviceTargetPreparationV1(value) {
3378
- const requirements = value.ordinarySignerMaterialRecipientRequirements.map(encodeRecipientRequirement);
3379
- const passkeyPreparation = isPasskeyTargetPreparationV1(value) ? value : void 0;
3380
- const passkeyCreationOptions = passkeyPreparation?.passkeyCreationOptions;
3381
- if (value.targetFactor.kind === "passkey_prf" && !passkeyCreationOptions) throw new Error("passkey target preparation is missing creation options");
3382
- return concat([
3383
- text(TARGET_PREPARATION_DOMAIN, "domain"),
3384
- text(value.kind, "kind"),
3385
- text(value.linkSessionId, "linkSessionId"),
3386
- text(value.walletId, "walletId"),
3387
- text(value.enrollmentId, "enrollmentId"),
3388
- text(value.deviceId, "deviceId"),
3389
- lp32(rawPublicKey(value.deliveryRecipientPublicKey65B64u, "deliveryRecipientPublicKey65B64u"), "deliveryRecipientPublicKey65B64u"),
3390
- text(value.walletAuthMethodId, "walletAuthMethodId"),
3391
- lp32(encodeEd25519ExportRootPreparation(value.ed25519ExportRoot), "ed25519ExportRoot"),
3392
- lp32(encodeTargetFactor(value.targetFactor), "targetFactor"),
3393
- ...passkeyCreationOptions ? [lp32(encodeLinkedDevicePasskeyCreationOptionsV1(passkeyCreationOptions), "passkeyCreationOptions"), rawDigest(passkeyPreparation.passkeyConfigurationDigestB64u, "passkeyConfigurationDigestB64u")] : [],
3394
- ...encodeEmailTargetPreparationFactorBindingV1(value),
3395
- u32(requirements.length, "ordinarySignerMaterialRecipientRequirements"),
3396
- ...requirements.map((entry) => lp32(entry, "ordinarySignerMaterialRecipientRequirements.item")),
3397
- u64(value.issuedAtMs, "issuedAtMs"),
3398
- u64(value.expiresAtMs, "expiresAtMs")
3399
- ]);
3400
- }
3401
- function encodeEmailTargetPreparationFactorBindingV1(value) {
3402
- if (isPasskeyTargetPreparationV1(value)) return [];
3403
- return [
3404
- text(value.targetEmail, "targetEmail"),
3405
- text(value.enrollment.kind, "enrollment.kind"),
3406
- ...value.enrollment.kind === "existing_enrollment" ? [text(requirePresentString(value.baseWalletAuthMethodId, "baseWalletAuthMethodId"), "baseWalletAuthMethodId")] : []
3407
- ];
3408
- }
3409
- function isPasskeyTargetPreparationV1(value) {
3410
- return value.targetFactor.kind === "passkey_prf";
3411
- }
3412
- async function computeLinkedDeviceTargetPreparationDigestV1(value) {
3413
- return sha256DigestB64u(encodeLinkedDeviceTargetPreparationV1(value));
3414
- }
3415
- //#endregion
3416
- //#region ../shared-ts/src/device-linking/requestProof.ts
3417
- const LINKED_DEVICE_REQUEST_PROOF_HEADER_V1 = "x-seams-linked-device-proof-v1";
3418
- const LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1 = 6e4;
3419
- const LINKED_DEVICE_CLOCK_SKEW_TOLERANCE_MS_V1 = 6e4;
3420
- async function computeLinkedDevicePublicKeyDigestV1(publicKeyB64u) {
3421
- return sha256DigestB64u(parseFixedB64u(publicKeyB64u, 32, "devicePublicKeyB64u"));
3422
- }
3423
- function parseFixedB64u(value, expectedBytes, label) {
3424
- if (typeof value !== "string" || value.length === 0 || !/^[A-Za-z0-9_-]+$/.test(value)) throw new Error(`${label} is invalid`);
3425
- let bytes;
3426
- try {
3427
- bytes = base64UrlDecode(value);
3428
- } catch {
3429
- throw new Error(`${label} is invalid`);
3430
- }
3431
- if (bytes.length !== expectedBytes || base64UrlEncode(bytes) !== value) throw new Error(`${label} is invalid`);
3432
- return bytes;
3433
- }
3434
- //#endregion
3435
- //#region ../shared-ts/src/utils/walletCapabilityBindings.ts
3436
- function objectRecord(raw) {
3437
- if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
3438
- return raw;
3439
- }
3440
- function trimString(raw) {
3441
- return typeof raw === "string" ? raw.trim() : "";
3442
- }
3443
- function parseStringField(raw, fieldName) {
3444
- const value = trimString(raw);
3445
- if (!value) return {
3446
- ok: false,
3447
- error: {
3448
- code: "missing",
3449
- message: `${fieldName} is required`
3450
- }
3451
- };
3452
- return {
3453
- ok: true,
3454
- value
3455
- };
3456
- }
3457
- function parseSignerSlot(raw) {
3458
- const signerSlot = typeof raw === "number" ? raw : Number(raw);
3459
- if (!Number.isSafeInteger(signerSlot) || signerSlot < 1) return {
3460
- ok: false,
3461
- error: {
3462
- code: "invalid",
3463
- message: "signerSlot must be an integer >= 1"
3464
- }
3465
- };
3466
- return {
3467
- ok: true,
3468
- value: signerSlot
3469
- };
3470
- }
3471
- function missingObject(typeName) {
3472
- return {
3473
- ok: false,
3474
- error: {
3475
- code: "invalid",
3476
- message: `${typeName} must be an object`
3477
- }
3478
- };
3479
- }
3480
- function parseRpId(raw) {
3481
- const parsed = parseWebAuthnRpId(raw);
3482
- if (!parsed.ok) return {
3483
- ok: false,
3484
- error: parsed.error
3485
- };
3486
- return {
3487
- ok: true,
3488
- value: parsed.value
3489
- };
3490
- }
3491
- function walletIdentityFromRaw(raw) {
3492
- const record = objectRecord(raw);
3493
- if (!record) return missingObject("WalletIdentity");
3494
- const parsed = parseWalletId(record.walletId);
3495
- if (!parsed.ok) return {
3496
- ok: false,
3497
- error: parsed.error
3498
- };
3499
- return {
3500
- ok: true,
3501
- value: { walletId: parsed.value }
3502
- };
3503
- }
3504
- function buildWalletIdentity(args) {
3505
- return { walletId: args.walletId };
3506
- }
3507
- function passkeyAuthScopeFromRaw(raw) {
3508
- const record = objectRecord(raw);
3509
- if (!record) return missingObject("PasskeyAuthScope");
3510
- const wallet = walletIdentityFromRaw(record.wallet);
3511
- if (!wallet.ok) return wallet;
3512
- const rpId = parseRpId(record.rpId);
3513
- if (!rpId.ok) return rpId;
3514
- return {
3515
- ok: true,
3516
- value: {
3517
- wallet: wallet.value,
3518
- rpId: rpId.value
3519
- }
3520
- };
3521
- }
3522
- function buildPasskeyAuthScope(args) {
3523
- return {
3524
- wallet: args.wallet,
3525
- rpId: args.rpId
3526
- };
3527
- }
3528
- function buildPasskeyWalletAuthMethodBinding(args) {
3529
- const credentialIdB64u = trimString(args.credentialIdB64u);
3530
- if (!credentialIdB64u) throw new Error("credentialIdB64u is required");
3531
- return {
3532
- kind: "passkey",
3533
- walletAuthMethodId: args.walletAuthMethodId,
3534
- scope: args.scope,
3535
- credentialIdB64u
3536
- };
3537
- }
3538
- function buildEmailOtpWalletAuthMethodBinding(args) {
3539
- const emailHashHex = trimString(args.emailHashHex);
3540
- const registrationAuthorityId = trimString(args.registrationAuthorityId);
3541
- if (!emailHashHex) throw new Error("emailHashHex is required");
3542
- if (!registrationAuthorityId) throw new Error("registrationAuthorityId is required");
3543
- return {
3544
- kind: "email_otp",
3545
- walletAuthMethodId: args.walletAuthMethodId,
3546
- wallet: args.wallet,
3547
- emailHashHex,
3548
- registrationAuthorityId
3549
- };
3550
- }
3551
- function walletAuthMethodBindingFromRaw(raw) {
3552
- const record = objectRecord(raw);
3553
- if (!record) return missingObject("WalletAuthMethodBinding");
3554
- const kind = trimString(record.kind);
3555
- const walletAuthMethodId = parseWalletAuthMethodId(record.walletAuthMethodId);
3556
- if (!walletAuthMethodId.ok) return {
3557
- ok: false,
3558
- error: walletAuthMethodId.error
3559
- };
3560
- if (kind === "passkey") {
3561
- const scope = passkeyAuthScopeFromRaw(record.scope);
3562
- if (!scope.ok) return scope;
3563
- const credentialIdB64u = parseStringField(record.credentialIdB64u, "credentialIdB64u");
3564
- if (!credentialIdB64u.ok) return credentialIdB64u;
3565
- return {
3566
- ok: true,
3567
- value: buildPasskeyWalletAuthMethodBinding({
3568
- walletAuthMethodId: walletAuthMethodId.value,
3569
- scope: scope.value,
3570
- credentialIdB64u: credentialIdB64u.value
3571
- })
3572
- };
3573
- }
3574
- if (kind === "email_otp") {
3575
- if ("rpId" in record && trimString(record.rpId)) return {
3576
- ok: false,
3577
- error: {
3578
- code: "invalid",
3579
- message: "Email OTP auth-method binding must not include rpId"
3580
- }
3581
- };
3582
- const wallet = walletIdentityFromRaw(record.wallet);
3583
- if (!wallet.ok) return wallet;
3584
- const emailHashHex = parseStringField(record.emailHashHex, "emailHashHex");
3585
- if (!emailHashHex.ok) return emailHashHex;
3586
- const registrationAuthorityId = parseStringField(record.registrationAuthorityId, "registrationAuthorityId");
3587
- if (!registrationAuthorityId.ok) return registrationAuthorityId;
3588
- return {
3589
- ok: true,
3590
- value: buildEmailOtpWalletAuthMethodBinding({
3591
- walletAuthMethodId: walletAuthMethodId.value,
3592
- wallet: wallet.value,
3593
- emailHashHex: emailHashHex.value,
3594
- registrationAuthorityId: registrationAuthorityId.value
3595
- })
3596
- };
3597
- }
3598
- return {
3599
- ok: false,
3600
- error: {
3601
- code: "invalid",
3602
- message: "WalletAuthMethodBinding kind is invalid"
3603
- }
3604
- };
3605
- }
3606
- function buildImplicitNearAccountBinding(args) {
3607
- return {
3608
- kind: "implicit_near_account",
3609
- wallet: args.wallet,
3610
- nearAccountId: args.nearAccountId
3611
- };
3612
- }
3613
- function buildNamedNearAccountBinding(args) {
3614
- return {
3615
- kind: "named_near_account",
3616
- wallet: args.wallet,
3617
- nearAccountId: args.nearAccountId
3618
- };
3619
- }
3620
- function nearAccountBindingFromRaw(raw) {
3621
- const record = objectRecord(raw);
3622
- if (!record) return missingObject("NearAccountBinding");
3623
- const wallet = walletIdentityFromRaw(record.wallet);
3624
- if (!wallet.ok) return wallet;
3625
- const kind = trimString(record.kind);
3626
- if (kind === "implicit_near_account") {
3627
- const nearAccountId = parseImplicitNearAccountId(record.nearAccountId);
3628
- if (!nearAccountId.ok) return {
3629
- ok: false,
3630
- error: {
3631
- code: nearAccountId.code,
3632
- message: nearAccountId.message
3633
- }
3634
- };
3635
- return {
3636
- ok: true,
3637
- value: buildImplicitNearAccountBinding({
3638
- wallet: wallet.value,
3639
- nearAccountId: nearAccountId.value
3640
- })
3641
- };
3642
- }
3643
- if (kind === "named_near_account") {
3644
- const nearAccountId = parseNamedNearAccountId(record.nearAccountId);
3645
- if (!nearAccountId.ok) return {
3646
- ok: false,
3647
- error: {
3648
- code: nearAccountId.code,
3649
- message: nearAccountId.message
3650
- }
3651
- };
3652
- return {
3653
- ok: true,
3654
- value: buildNamedNearAccountBinding({
3655
- wallet: wallet.value,
3656
- nearAccountId: nearAccountId.value
3657
- })
3658
- };
3659
- }
3660
- return {
3661
- ok: false,
3662
- error: {
3663
- code: "invalid",
3664
- message: "NearAccountBinding kind is invalid"
3665
- }
3666
- };
3667
- }
3668
- function buildNearEd25519SignerBinding(args) {
3669
- const signerSlot = parseSignerSlot(args.signerSlot);
3670
- if (!signerSlot.ok) throw new Error(signerSlot.error.message);
3671
- return {
3672
- kind: "near_ed25519_signer",
3673
- account: args.account,
3674
- nearEd25519SigningKeyId: args.nearEd25519SigningKeyId,
3675
- signerSlot: signerSlot.value
3676
- };
3677
- }
3678
- function nearEd25519SignerBindingFromRaw(raw) {
3679
- const record = objectRecord(raw);
3680
- if (!record) return missingObject("NearEd25519SignerBinding");
3681
- const account = nearAccountBindingFromRaw(record.account);
3682
- if (!account.ok) return account;
3683
- const keyScopeRaw = parseStringField(record.nearEd25519SigningKeyId, "nearEd25519SigningKeyId");
3684
- if (!keyScopeRaw.ok) return keyScopeRaw;
3685
- const signerSlot = parseSignerSlot(record.signerSlot);
3686
- if (!signerSlot.ok) return signerSlot;
3687
- return {
3688
- ok: true,
3689
- value: buildNearEd25519SignerBinding({
3690
- account: account.value,
3691
- nearEd25519SigningKeyId: nearEd25519SigningKeyIdFromString(keyScopeRaw.value),
3692
- signerSlot: signerSlot.value
3693
- })
3694
- };
3695
- }
3696
- //#endregion
3697
- //#region ../shared-ts/src/utils/thresholdEcdsaKeyHandle.ts
3698
- function parseThresholdEcdsaKeyHandle(value) {
3699
- const normalized = typeof value === "string" ? value.trim() : "";
3700
- if (!normalized.startsWith("ederivation-key-")) throw new Error("Threshold ECDSA key handle is invalid");
3701
- return normalized;
3702
- }
3703
- function requiredString$1(value, field) {
3704
- const normalized = String(value ?? "").trim();
3705
- if (!normalized) throw new Error(`[threshold-ecdsa-key-handle] ${field} is required`);
3706
- return normalized;
3707
- }
3708
- function normalizedSigningRootVersion(value) {
3709
- return String(value ?? "").trim() || "default";
3710
- }
3711
- async function deriveThresholdEcdsaKeyHandle(input) {
3712
- return `ederivation-key-${base64UrlEncode(await sha256BytesUtf8(alphabetizeStringify({
3713
- domain: "seams.threshold_ecdsa.key_handle.v1",
3714
- ecdsaThresholdKeyId: requiredString$1(input.ecdsaThresholdKeyId, "ecdsaThresholdKeyId"),
3715
- signingRootId: requiredString$1(input.signingRootId, "signingRootId"),
3716
- signingRootVersion: normalizedSigningRootVersion(input.signingRootVersion)
3717
- })))}`;
3718
- }
3719
- //#endregion
3720
- //#region ../shared-ts/src/signing-lanes/participants.ts
3721
- function missing(field) {
3722
- return {
3723
- code: "missing",
3724
- message: `${field} is required`
3725
- };
3726
- }
3727
- function invalid(field, reason) {
3728
- return {
3729
- code: "invalid",
3730
- message: `${field} ${reason}`
3731
- };
3732
- }
3733
- function parseIdentityId(raw, field) {
3734
- if (raw === void 0 || raw === null) return {
3735
- ok: false,
3736
- error: missing(field)
3737
- };
3738
- if (typeof raw !== "string") return {
3739
- ok: false,
3740
- error: invalid(field, "must be a string")
3741
- };
3742
- const value = raw.trim();
3743
- if (!value) return {
3744
- ok: false,
3745
- error: missing(field)
3746
- };
3747
- if (hasWhitespaceOrControlCharacters(value)) return {
3748
- ok: false,
3749
- error: invalid(field, "must not contain whitespace or control characters")
3750
- };
3751
- return {
3752
- ok: true,
3753
- value
3754
- };
3755
- }
3756
- function parseHpkePublicKey(raw, field) {
3757
- if (raw === void 0 || raw === null) return {
3758
- ok: false,
3759
- error: missing(field)
3760
- };
3761
- if (typeof raw !== "string" || raw.length === 0) return {
3762
- ok: false,
3763
- error: invalid(field, "must be non-empty base64url")
3764
- };
3765
- try {
3766
- const bytes = base64UrlDecode(raw);
3767
- if (bytes.length === 0 || base64UrlEncode(bytes) !== raw) return {
3768
- ok: false,
3769
- error: invalid(field, "must be canonical unpadded base64url")
3770
- };
3771
- } catch {
3772
- return {
3773
- ok: false,
3774
- error: invalid(field, "must be canonical unpadded base64url")
3775
- };
3776
- }
3777
- return {
3778
- ok: true,
3779
- value: raw
3780
- };
3781
- }
3782
- function parseDigest(raw, field, brand) {
3783
- if (raw === void 0 || raw === null) return {
3784
- ok: false,
3785
- error: missing(field)
3786
- };
3787
- try {
3788
- return {
3789
- ok: true,
3790
- value: brand(parseDigestB64u(raw))
3791
- };
3792
- } catch {
3793
- return {
3794
- ok: false,
3795
- error: invalid(field, "must be canonical base64url for 32 bytes")
3796
- };
3797
- }
3798
- }
3799
- function brandLaneCustodyDigest(value) {
3800
- return value;
3801
- }
3802
- function brandRecipientDigest(value) {
3803
- return value;
3804
- }
3805
- function brandParticipantDigest(value) {
3806
- return value;
3807
- }
3808
- function rejectUnknownFields(record, fields, label) {
3809
- const allowed = new Set(fields);
3810
- for (const field of Object.keys(record)) if (!allowed.has(field)) throw new Error(`${label}.${field} is not supported`);
3811
- for (const field of fields) if (!(field in record)) throw new Error(`${label}.${field} is required`);
3812
- }
3813
- function parseLaneHolderParticipantId(raw) {
3814
- return parseIdentityId(raw, "laneHolderParticipantId");
3815
- }
3816
- function parseSigningWorkerParticipantId(raw) {
3817
- return parseIdentityId(raw, "signingWorkerParticipantId");
3818
- }
3819
- function parseSigningWorkerRecipientKeyId(raw) {
3820
- return parseIdentityId(raw, "signingWorkerRecipientKeyId");
3821
- }
3822
- function parseLaneHolderCustodyBindingId(raw) {
3823
- return parseIdentityId(raw, "laneHolderCustodyBindingId");
3824
- }
3825
- function parseLaneParticipantBindingDigestB64u(raw) {
3826
- return parseDigest(raw, "participantBindingDigestB64u", brandParticipantDigest);
3827
- }
3828
- function parseLaneCustodyBindingDigestB64u(raw) {
3829
- return parseDigest(raw, "custodyBindingDigestB64u", brandLaneCustodyDigest);
3830
- }
3831
- function parseSigningWorkerRecipientKeyDigestB64u(raw) {
3832
- return parseDigest(raw, "hpkePublicKeyDigestB64u", brandRecipientDigest);
3833
- }
3834
- function buildLaneHolderCustodyIdentityV1(args) {
3835
- return {
3836
- kind: "lane_holder_custody_identity_v1",
3837
- custodyBindingId: args.custodyBindingId,
3838
- custodyBindingDigestB64u: args.custodyBindingDigestB64u
3839
- };
3840
- }
3841
- function buildSigningWorkerRecipientIdentityV1(args) {
3842
- return {
3843
- kind: "signing_worker_recipient_identity_v1",
3844
- recipientKeyId: args.recipientKeyId,
3845
- hpkePublicKeyB64u: args.hpkePublicKeyB64u,
3846
- hpkePublicKeyDigestB64u: args.hpkePublicKeyDigestB64u
3847
- };
3848
- }
3849
- function parseLaneHolderCustodyIdentityV1(raw, label = "laneHolderCustodyIdentity") {
3850
- const record = requireRecord(raw, label);
3851
- rejectUnknownFields(record, [
3852
- "kind",
3853
- "custodyBindingId",
3854
- "custodyBindingDigestB64u"
3855
- ], label);
3856
- if (record.kind !== "lane_holder_custody_identity_v1") throw new Error(`${label}.kind is invalid`);
3857
- const custodyBindingId = parseLaneHolderCustodyBindingId(record.custodyBindingId);
3858
- if (!custodyBindingId.ok) throw new Error(`${label}.${custodyBindingId.error.message}`);
3859
- const custodyBindingDigestB64u = parseLaneCustodyBindingDigestB64u(record.custodyBindingDigestB64u);
3860
- if (!custodyBindingDigestB64u.ok) throw new Error(`${label}.${custodyBindingDigestB64u.error.message}`);
3861
- return buildLaneHolderCustodyIdentityV1({
3862
- custodyBindingId: custodyBindingId.value,
3863
- custodyBindingDigestB64u: custodyBindingDigestB64u.value
3864
- });
3865
- }
3866
- function parseSigningWorkerRecipientIdentityV1(raw, label = "signingWorkerRecipientIdentity") {
3867
- const record = requireRecord(raw, label);
3868
- rejectUnknownFields(record, [
3869
- "kind",
3870
- "recipientKeyId",
3871
- "hpkePublicKeyB64u",
3872
- "hpkePublicKeyDigestB64u"
3873
- ], label);
3874
- if (record.kind !== "signing_worker_recipient_identity_v1") throw new Error(`${label}.kind is invalid`);
3875
- const recipientKeyId = parseSigningWorkerRecipientKeyId(record.recipientKeyId);
3876
- if (!recipientKeyId.ok) throw new Error(`${label}.${recipientKeyId.error.message}`);
3877
- const hpkePublicKeyB64u = parseHpkePublicKey(record.hpkePublicKeyB64u, `${label}.hpkePublicKeyB64u`);
3878
- if (!hpkePublicKeyB64u.ok) throw new Error(hpkePublicKeyB64u.error.message);
3879
- const hpkePublicKeyDigestB64u = parseSigningWorkerRecipientKeyDigestB64u(record.hpkePublicKeyDigestB64u);
3880
- if (!hpkePublicKeyDigestB64u.ok) throw new Error(`${label}.${hpkePublicKeyDigestB64u.error.message}`);
3881
- return buildSigningWorkerRecipientIdentityV1({
3882
- recipientKeyId: recipientKeyId.value,
3883
- hpkePublicKeyB64u: hpkePublicKeyB64u.value,
3884
- hpkePublicKeyDigestB64u: hpkePublicKeyDigestB64u.value
3885
- });
3886
- }
3887
- function buildLaneHolderParticipantRecordV1(args) {
3888
- return {
3889
- kind: "lane_holder_participant_v1",
3890
- participantId: args.participantId,
3891
- custodyBindingId: args.custody.custodyBindingId,
3892
- custodyBindingDigestB64u: args.custody.custodyBindingDigestB64u,
3893
- hpkePublicKeyB64u: args.hpkePublicKeyB64u,
3894
- hpkePublicKeyDigestB64u: args.hpkePublicKeyDigestB64u,
3895
- participantBindingDigestB64u: args.participantBindingDigestB64u
3896
- };
3897
- }
3898
- function buildSigningWorkerParticipantRecordV1(args) {
3899
- return {
3900
- kind: "signing_worker_participant_v1",
3901
- participantId: args.participantId,
3902
- recipientKeyId: args.recipient.recipientKeyId,
3903
- hpkePublicKeyB64u: args.recipient.hpkePublicKeyB64u,
3904
- hpkePublicKeyDigestB64u: args.recipient.hpkePublicKeyDigestB64u,
3905
- participantBindingDigestB64u: args.participantBindingDigestB64u
3906
- };
3907
- }
3908
- function parseLaneHolderParticipantRecordV1(raw, label = "laneHolderParticipant") {
3909
- const record = requireRecord(raw, label);
3910
- rejectUnknownFields(record, [
3911
- "kind",
3912
- "participantId",
3913
- "custodyBindingId",
3914
- "custodyBindingDigestB64u",
3915
- "hpkePublicKeyB64u",
3916
- "hpkePublicKeyDigestB64u",
3917
- "participantBindingDigestB64u"
3918
- ], label);
3919
- if (record.kind !== "lane_holder_participant_v1") throw new Error(`${label}.kind is invalid`);
3920
- const participantId = parseLaneHolderParticipantId(record.participantId);
3921
- if (!participantId.ok) throw new Error(`${label}.${participantId.error.message}`);
3922
- const custody = parseLaneHolderCustodyIdentityV1({
3923
- kind: "lane_holder_custody_identity_v1",
3924
- custodyBindingId: record.custodyBindingId,
3925
- custodyBindingDigestB64u: record.custodyBindingDigestB64u
3926
- }, `${label}.custody`);
3927
- const hpkePublicKeyB64u = parseHpkePublicKey(record.hpkePublicKeyB64u, `${label}.hpkePublicKeyB64u`);
3928
- if (!hpkePublicKeyB64u.ok) throw new Error(hpkePublicKeyB64u.error.message);
3929
- const hpkePublicKeyDigestB64u = parseSigningWorkerRecipientKeyDigestB64u(record.hpkePublicKeyDigestB64u);
3930
- if (!hpkePublicKeyDigestB64u.ok) throw new Error(`${label}.${hpkePublicKeyDigestB64u.error.message}`);
3931
- const participantBindingDigestB64u = parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u);
3932
- if (!participantBindingDigestB64u.ok) throw new Error(`${label}.${participantBindingDigestB64u.error.message}`);
3933
- return buildLaneHolderParticipantRecordV1({
3934
- participantId: participantId.value,
3935
- custody,
3936
- hpkePublicKeyB64u: hpkePublicKeyB64u.value,
3937
- hpkePublicKeyDigestB64u: hpkePublicKeyDigestB64u.value,
3938
- participantBindingDigestB64u: participantBindingDigestB64u.value
3939
- });
3940
- }
3941
- function parseSigningWorkerParticipantRecordV1(raw, label = "signingWorkerParticipant") {
3942
- const record = requireRecord(raw, label);
3943
- rejectUnknownFields(record, [
3944
- "kind",
3945
- "participantId",
3946
- "recipientKeyId",
3947
- "hpkePublicKeyB64u",
3948
- "hpkePublicKeyDigestB64u",
3949
- "participantBindingDigestB64u"
3950
- ], label);
3951
- if (record.kind !== "signing_worker_participant_v1") throw new Error(`${label}.kind is invalid`);
3952
- const participantId = parseSigningWorkerParticipantId(record.participantId);
3953
- if (!participantId.ok) throw new Error(`${label}.${participantId.error.message}`);
3954
- const recipient = parseSigningWorkerRecipientIdentityV1({
3955
- kind: "signing_worker_recipient_identity_v1",
3956
- recipientKeyId: record.recipientKeyId,
3957
- hpkePublicKeyB64u: record.hpkePublicKeyB64u,
3958
- hpkePublicKeyDigestB64u: record.hpkePublicKeyDigestB64u
3959
- }, `${label}.recipient`);
3960
- const participantBindingDigestB64u = parseLaneParticipantBindingDigestB64u(record.participantBindingDigestB64u);
3961
- if (!participantBindingDigestB64u.ok) throw new Error(`${label}.${participantBindingDigestB64u.error.message}`);
3962
- return buildSigningWorkerParticipantRecordV1({
3963
- participantId: participantId.value,
3964
- recipient,
3965
- participantBindingDigestB64u: participantBindingDigestB64u.value
3966
- });
3967
- }
3968
- //#endregion
3969
- //#region ../shared-ts/src/signing-lanes/ownerContinuity.ts
3970
- const OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS = [
3971
- "kind",
3972
- "signerId",
3973
- "participantIds",
3974
- "signingWorkerId",
3975
- "custodyKeyManifestDigestB64u",
3976
- "sourceIdentityDigestB64u"
3977
- ];
3978
- /** Parse the owner signer identity without widening it into a generic string. */
3979
- function parseWalletSignerId(raw, label = "walletSignerId") {
3980
- if (typeof raw !== "string") throw new Error(`${label} must be a string`);
3981
- const value = raw.trim();
3982
- if (!value) throw new Error(`${label} is required`);
3983
- if (hasWhitespaceOrControlCharacters(value)) throw new Error(`${label} must not contain whitespace or control characters`);
3984
- return value;
3985
- }
3986
- function parseParticipantId(raw, label) {
3987
- if (typeof raw !== "number" || !Number.isSafeInteger(raw) || raw <= 0) throw new Error(`${label} must be a positive safe integer`);
3988
- return raw;
3989
- }
3990
- function parseParticipantIds(raw, label) {
3991
- if (!Array.isArray(raw) || raw.length !== 2) throw new Error(`${label} must contain exactly two participant ids`);
3992
- const first = parseParticipantId(raw[0], `${label}[0]`);
3993
- const second = parseParticipantId(raw[1], `${label}[1]`);
3994
- if (first === second) throw new Error(`${label} must contain distinct participant ids`);
3995
- return [first, second];
3996
- }
3997
- function buildOwnerLaneParticipantContinuityV1(args) {
3998
- const participantIds = parseParticipantIds(args.participantIds, "participantIds");
3999
- return {
4000
- kind: "owner_lane_participant_continuity_v1",
4001
- signerId: parseWalletSignerId(args.signerId),
4002
- participantIds,
4003
- signingWorkerId: requireParsed(parseMpcSigningWorkerRef(args.signingWorkerId), "signingWorkerId"),
4004
- custodyKeyManifestDigestB64u: parseDigestField$1(args.custodyKeyManifestDigestB64u, "custodyKeyManifestDigestB64u"),
4005
- sourceIdentityDigestB64u: parseDigestField$1(args.sourceIdentityDigestB64u, "sourceIdentityDigestB64u")
4006
- };
4007
- }
4008
- function parseOwnerLaneParticipantContinuityV1(raw, label = "ownerParticipantContinuity") {
4009
- const record = requireRecord(raw, label);
4010
- rejectUnknownFields$1(record, OWNER_LANE_PARTICIPANT_CONTINUITY_FIELDS, label);
4011
- if (record.kind !== "owner_lane_participant_continuity_v1") throw new Error(`${label}.kind must be owner_lane_participant_continuity_v1`);
4012
- return buildOwnerLaneParticipantContinuityV1({
4013
- signerId: parseWalletSignerId(record.signerId, `${label}.signerId`),
4014
- participantIds: parseParticipantIds(record.participantIds, `${label}.participantIds`),
4015
- signingWorkerId: requireParsed(parseMpcSigningWorkerRef(record.signingWorkerId), `${label}.signingWorkerId`),
4016
- custodyKeyManifestDigestB64u: parseDigestField$1(record.custodyKeyManifestDigestB64u, `${label}.custodyKeyManifestDigestB64u`),
4017
- sourceIdentityDigestB64u: parseDigestField$1(record.sourceIdentityDigestB64u, `${label}.sourceIdentityDigestB64u`)
4018
- });
4019
- }
4020
- new TextEncoder();
4021
- //#endregion
4022
- //#region src/core/signingEngine/session/identity/evmFamilyEcdsaIdentity.ts
4023
- function requiredString(value, field) {
4024
- const normalized = String(value ?? "").trim();
4025
- if (!normalized) throw new Error(`[evm-family-ecdsa] ${field} is required`);
4026
- return normalized;
4027
- }
4028
- function normalizeRpId(value) {
4029
- return requiredString(value, "rpId");
4030
- }
4031
- function deriveEvmFamilySigningKeySlotId(input) {
4032
- return deriveEvmFamilySigningKeySlotId$1({
4033
- walletId: toWalletId(input.walletId),
4034
- signingRootId: normalizeSigningRootId(input.signingRootId),
4035
- signingRootVersion: normalizeSigningRootVersion(input.signingRootVersion)
4036
- });
4037
- }
4038
- function normalizeEcdsaThresholdKeyId(value) {
4039
- return requiredString(value, "ecdsaThresholdKeyId");
4040
- }
4041
- function normalizeSigningRootId(value) {
4042
- return requiredString(value, "signingRootId");
4043
- }
4044
- function normalizeSigningRootVersion(value) {
4045
- return String(value ?? "").trim() || "default";
4046
- }
4047
- function normalizeThresholdOwnerAddress(value) {
4048
- const normalized = String(value ?? "").trim().toLowerCase();
4049
- if (!/^0x[0-9a-f]{40}$/.test(normalized)) throw new Error("[evm-family-ecdsa] thresholdOwnerAddress must be an EVM address");
4050
- return normalized;
4051
- }
4052
- function toThresholdOwnerAddress(value) {
4053
- return normalizeThresholdOwnerAddress(value);
4054
- }
4055
- function toRpId(value) {
4056
- return normalizeRpId(value);
4057
- }
4058
- function toEvmFamilyEcdsaKeyHandle(value) {
4059
- return requiredString(value, "keyHandle");
4060
- }
4061
- function resolveThresholdEcdsaKeyIdFromRecord(args) {
4062
- return normalizeEcdsaThresholdKeyId(String(args.record.ecdsaThresholdKeyId ?? "").trim());
4063
- }
4064
- function parseThresholdSigningRootBinding(input) {
4065
- return {
4066
- signingRootId: normalizeSigningRootId(input.signingRootId),
4067
- signingRootVersion: normalizeSigningRootVersion(input.signingRootVersion)
4068
- };
4069
- }
4070
- function resolveThresholdSigningRootBindingFromRecord(args) {
4071
- return parseThresholdSigningRootBinding({
4072
- signingRootId: args.record.signingRootId,
4073
- signingRootVersion: args.record.signingRootVersion
4074
- });
4075
- }
4076
- function resolveThresholdSigningRootBindingFromRuntimePolicyScope(args) {
4077
- const scopeBinding = signingRootScopeFromRuntimePolicyScope(args.runtimePolicyScope);
4078
- return parseThresholdSigningRootBinding({
4079
- signingRootId: scopeBinding.signingRootId,
4080
- signingRootVersion: scopeBinding.signingRootVersion
4081
- });
4082
- }
4083
- function toThresholdEcdsaPublicKeyB64u(value) {
4084
- const normalized = requiredString(value, "thresholdEcdsaPublicKeyB64u");
4085
- let bytes;
4086
- try {
4087
- bytes = base64UrlDecode(normalized);
4088
- } catch {
4089
- throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must be base64url");
4090
- }
4091
- if (bytes.length !== 33) throw new Error("[evm-family-ecdsa] thresholdEcdsaPublicKeyB64u must decode to 33 bytes");
4092
- return normalized;
4093
- }
4094
- function toParticipantId(value) {
4095
- const normalized = Math.floor(Number(value));
4096
- if (!Number.isSafeInteger(normalized) || normalized < 1 || normalized > 65535) throw new Error("[evm-family-ecdsa] participantId must be a positive safe integer");
4097
- return normalized;
4098
- }
4099
- function normalizeParticipantIds(value) {
4100
- const participantIds = normalizeThresholdEd25519ParticipantIds(value);
4101
- if (!participantIds?.length) throw new Error("[evm-family-ecdsa] participantIds are required");
4102
- return participantIds.map(toParticipantId);
4103
- }
4104
- function participantIdKey(participantIds) {
4105
- return participantIds.map((id) => String(Number(id))).join(",");
4106
- }
4107
- function fnv1a32Hex(input) {
4108
- let hash = 2166136261;
4109
- for (let index = 0; index < input.length; index += 1) {
4110
- hash ^= input.charCodeAt(index);
4111
- hash = Math.imul(hash, 16777619) >>> 0;
4112
- }
4113
- return hash.toString(16).padStart(8, "0");
4114
- }
4115
- function buildNormalizedEvmFamilyEcdsaKeyIdentity(input) {
4116
- return {
4117
- walletId: input.walletId,
4118
- keyScope: "evm-family",
4119
- ecdsaThresholdKeyId: normalizeEcdsaThresholdKeyId(input.ecdsaThresholdKeyId),
4120
- signingRootId: normalizeSigningRootId(input.signingRootId),
4121
- signingRootVersion: normalizeSigningRootVersion(input.signingRootVersion),
4122
- participantIds: normalizeParticipantIds(input.participantIds),
4123
- thresholdOwnerAddress: normalizeThresholdOwnerAddress(input.thresholdOwnerAddress)
4124
- };
4125
- }
4126
- function buildBaseEvmFamilyEcdsaKeyIdentity(input) {
4127
- return buildNormalizedEvmFamilyEcdsaKeyIdentity({
4128
- walletId: toWalletId(input.walletId),
4129
- ecdsaThresholdKeyId: input.ecdsaThresholdKeyId,
4130
- signingRootId: input.signingRootId,
4131
- signingRootVersion: input.signingRootVersion,
4132
- participantIds: input.participantIds,
4133
- thresholdOwnerAddress: input.thresholdOwnerAddress
4134
- });
4135
- }
4136
- function deriveBaseEcdsaSubjectIdFromWalletId(walletId) {
4137
- return walletIdFromWalletProfile({ walletId: toWalletId(walletId) });
4138
- }
4139
- async function deriveEvmFamilyEcdsaKeyHandle(input) {
4140
- return await deriveThresholdEcdsaKeyHandle(input);
4141
- }
4142
- function buildVerifiedEcdsaPublicFacts(input) {
4143
- return {
4144
- kind: "verified_ecdsa_public_facts",
4145
- keyHandle: input.keyHandle,
4146
- publicKeyB64u: toThresholdEcdsaPublicKeyB64u(input.publicKeyB64u),
4147
- participantIds: normalizeParticipantIds(input.participantIds),
4148
- thresholdOwnerAddress: normalizeThresholdOwnerAddress(input.thresholdOwnerAddress)
4149
- };
4150
- }
4151
- function evmFamilyEcdsaWalletKeyToIdentity(walletKey) {
4152
- return {
4153
- walletId: walletKey.walletId,
4154
- keyScope: walletKey.keyFacts.keyScope,
4155
- ecdsaThresholdKeyId: walletKey.keyFacts.ecdsaThresholdKeyId,
4156
- signingRootId: walletKey.keyFacts.signingRootId,
4157
- signingRootVersion: walletKey.keyFacts.signingRootVersion,
4158
- participantIds: walletKey.keyFacts.participantIds,
4159
- thresholdOwnerAddress: walletKey.keyFacts.thresholdOwnerAddress
4160
- };
4161
- }
4162
- function buildEvmFamilyEcdsaWalletKey(input) {
4163
- const keyHandle = toEvmFamilyEcdsaKeyHandle(input.keyHandle);
4164
- const keyIdentity = buildBaseEvmFamilyEcdsaKeyIdentity(input);
4165
- const publicFacts = buildVerifiedEcdsaPublicFacts({
4166
- keyHandle,
4167
- publicKeyB64u: input.thresholdEcdsaPublicKeyB64u,
4168
- participantIds: keyIdentity.participantIds,
4169
- thresholdOwnerAddress: keyIdentity.thresholdOwnerAddress
4170
- });
4171
- return {
4172
- kind: "evm_family_ecdsa_wallet_key",
4173
- walletId: keyIdentity.walletId,
4174
- keyHandle,
4175
- chainTarget: input.chainTarget,
4176
- keyFacts: {
4177
- kind: "evm_family_ecdsa_key_facts",
4178
- keyScope: keyIdentity.keyScope,
4179
- ecdsaThresholdKeyId: keyIdentity.ecdsaThresholdKeyId,
4180
- signingRootId: keyIdentity.signingRootId,
4181
- signingRootVersion: keyIdentity.signingRootVersion,
4182
- participantIds: publicFacts.participantIds,
4183
- thresholdOwnerAddress: publicFacts.thresholdOwnerAddress,
4184
- thresholdEcdsaPublicKeyB64u: publicFacts.publicKeyB64u
4185
- }
4186
- };
4187
- }
4188
- function assertMatchingVerifiedEcdsaPublicFacts(args) {
4189
- const mismatches = [];
4190
- if (String(args.expected.keyHandle) !== String(args.actual.keyHandle)) mismatches.push("keyHandle");
4191
- if (String(args.expected.publicKeyB64u) !== String(args.actual.publicKeyB64u)) mismatches.push("publicKeyB64u");
4192
- if (participantIdKey(args.expected.participantIds) !== participantIdKey(args.actual.participantIds)) mismatches.push("participantIds");
4193
- if (String(args.expected.thresholdOwnerAddress) !== String(args.actual.thresholdOwnerAddress)) mismatches.push("thresholdOwnerAddress");
4194
- if (mismatches.length) throw new Error(`[evm-family-ecdsa] ${args.context} public facts mismatch: ${mismatches.join(", ")}`);
4195
- }
4196
- function buildPasskeyEcdsaAuthBinding(args) {
4197
- return {
4198
- kind: "passkey_ecdsa_auth_binding",
4199
- authMethod: SIGNER_AUTH_METHODS.passkey,
4200
- rpId: normalizeRpId(args.rpId),
4201
- credentialIdB64u: requiredString(args.credentialIdB64u, "credentialIdB64u")
4202
- };
4203
- }
4204
- function buildResolvedEvmFamilyEcdsaKey(input) {
4205
- return {
4206
- kind: "resolved_evm_family_ecdsa_key",
4207
- walletId: toWalletId(input.walletId),
4208
- publicFacts: input.publicFacts,
4209
- authBinding: input.authBinding
4210
- };
4211
- }
4212
- function buildHydratedEcdsaSignerMaterial(input) {
4213
- return {
4214
- kind: "hydrated_ecdsa_signer_material",
4215
- walletId: input.walletId,
4216
- materialActivation: input.materialActivation,
4217
- publicFacts: input.publicFacts,
4218
- chainTarget: input.chainTarget,
4219
- transport: input.transport,
4220
- clientShare: input.clientShare,
4221
- routerAbEcdsaDerivationNormalSigning: input.routerAbEcdsaDerivationNormalSigning
4222
- };
4223
- }
4224
- function buildEvmFamilyEcdsaSessionLanePolicy(input) {
4225
- const ttlMs = Math.floor(Number(input.ttlMs));
4226
- const remainingUses = Math.floor(Number(input.remainingUses));
4227
- if (!Number.isFinite(ttlMs) || ttlMs <= 0) throw new Error("[evm-family-ecdsa] ttlMs must be a positive finite value");
4228
- if (!Number.isFinite(remainingUses) || remainingUses <= 0) throw new Error("[evm-family-ecdsa] remainingUses must be a positive finite value");
4229
- return {
4230
- chainTarget: input.chainTarget,
4231
- thresholdSessionId: SigningSessionIds.thresholdEcdsaSession(input.thresholdSessionId),
4232
- ttlMs,
4233
- remainingUses,
4234
- runtimePolicyScope: input.runtimePolicyScope
4235
- };
4236
- }
4237
- function buildEvmFamilyEcdsaRecoveredMaterialLanePolicy(input) {
4238
- const ttlMs = Math.floor(Number(input.ttlMs));
4239
- const remainingUses = Math.floor(Number(input.remainingUses));
4240
- if (!Number.isFinite(ttlMs) || ttlMs <= 0) throw new Error("[evm-family-ecdsa] ttlMs must be a positive finite value");
4241
- if (!Number.isFinite(remainingUses) || remainingUses <= 0) throw new Error("[evm-family-ecdsa] remainingUses must be a positive finite value");
4242
- return {
4243
- chainTarget: input.chainTarget,
4244
- thresholdSessionId: SigningSessionIds.thresholdEcdsaSession(input.thresholdSessionId),
4245
- ttlMs,
4246
- remainingUses,
4247
- runtimePolicyScope: input.runtimePolicyScope
4248
- };
4249
- }
4250
- function deriveEvmFamilyKeyFingerprint(key) {
4251
- return `evmfam-ecdsa:${fnv1a32Hex(alphabetizeStringify({
4252
- version: "evm_family_ecdsa_key_fingerprint_v2",
4253
- walletId: String(key.walletId),
4254
- baseEcdsaSubjectId: String(deriveBaseEcdsaSubjectIdFromWalletId(key.walletId)),
4255
- keyScope: key.keyScope,
4256
- ecdsaThresholdKeyId: String(key.ecdsaThresholdKeyId),
4257
- signingRootId: String(key.signingRootId),
4258
- signingRootVersion: String(key.signingRootVersion),
4259
- participantIds: key.participantIds.map((id) => Number(id)),
4260
- thresholdOwnerAddress: String(key.thresholdOwnerAddress)
4261
- }))}`;
4262
- }
4263
- function deriveEvmFamilyKeyFingerprintFromPublicFacts(input) {
4264
- return `evmfam-ecdsa:${fnv1a32Hex(alphabetizeStringify({
4265
- version: "evm_family_ecdsa_public_facts_fingerprint_v1",
4266
- walletId: String(toWalletId(input.walletId)),
4267
- keyHandle: String(input.publicFacts.keyHandle),
4268
- publicKeyB64u: String(input.publicFacts.publicKeyB64u),
4269
- participantIds: input.publicFacts.participantIds.map((id) => Number(id)),
4270
- thresholdOwnerAddress: String(input.publicFacts.thresholdOwnerAddress)
4271
- }))}`;
4272
- }
4273
- //#endregion
4274
- export { parseLinkedDeviceListRequestV1 as $, parseRouterAbEd25519YaoExportResultV1 as $t, buildImplicitNearAccountBinding as A, serializeQrLinkedDeviceSessionPayloadV5 as At, LINKED_DEVICE_CLOCK_SKEW_TOLERANCE_MS_V1 as B, ROUTER_AB_ED25519_YAO_EXPORT_EXECUTE_PATH_V1 as Bt, toThresholdOwnerAddress as C, parseLinkedDeviceOwnerAuthorizationRequestV1 as Ct, parseSigningWorkerParticipantRecordV1 as D, parseLinkedDeviceTargetPreparationRequestV1 as Dt, parseLaneParticipantBindingDigestB64u as E, parseLinkedDeviceTargetCredentialRegistrationResultV1 as Et, buildWalletIdentity as F, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationV1 as Ft, computeWalletSessionInstallationReceiptDigestB64u as G, ROUTER_AB_ED25519_YAO_REGISTRATION_ADMISSION_PATH_V1 as Gt, LINKED_DEVICE_REQUEST_PROOF_MAX_TTL_MS_V1 as H, ROUTER_AB_ED25519_YAO_RECOVERY_ADMISSION_PATH_V1 as Ht, nearAccountBindingFromRaw as I, sameEcdsaSourceSigner as It, parseLocalAuthorityActivationFinalAckV1 as J, parseRouterAbEd25519YaoActivationPublicReceiptV1 as Jt, computeWalletSessionOperationCredentialDigestB64u as K, ROUTER_AB_ED25519_YAO_REGISTRATION_EXECUTE_PATH_V1 as Kt, nearEd25519SignerBindingFromRaw as L, sameEcdsaTarget as Lt, buildNearEd25519SignerBinding as M, parseLinkedDeviceEcdsaSourcePreservingActivationReceiptV1 as Mt, buildPasskeyAuthScope as N, parseLinkedDeviceEd25519SourcePreservingReservationV1 as Nt, parseThresholdEcdsaKeyHandle as O, parseLinkedDeviceTargetPreparationV1 as Ot, buildPasskeyWalletAuthMethodBinding as P, parseLinkedDeviceOrdinaryMaterialSourceContributionPreparationTupleV1 as Pt, parseLinkedDeviceWalletSessionCredentialDeliveryV1 as Q, parseRouterAbEd25519YaoExportExecuteRequestV1 as Qt, parseRpId as R, ROUTER_AB_ED25519_YAO_EMAIL_OTP_RECOVERY_BOOTSTRAP_KIND_V1 as Rt, toThresholdEcdsaPublicKeyB64u as S, parseLinkedDeviceEmailOtpVerificationResultV1 as St, parseLaneHolderParticipantRecordV1 as T, parseLinkedDeviceSessionClaimV1 as Tt, computeLinkedDevicePublicKeyDigestV1 as U, ROUTER_AB_ED25519_YAO_RECOVERY_CHALLENGE_ID_HEADER_V1 as Ut, LINKED_DEVICE_REQUEST_PROOF_HEADER_V1 as V, ROUTER_AB_ED25519_YAO_RECOVERY_ACTIVATE_PATH_V1 as Vt, computeLinkedDeviceTargetPreparationDigestV1 as W, ROUTER_AB_ED25519_YAO_RECOVERY_EXECUTE_PATH_V1 as Wt, assertLinkedDeviceWalletSessionCredentialDeliveryIntegrityV1 as X, parseRouterAbEd25519YaoCeremonyBindingV1 as Xt, parseLocalAuthorityInstallationReceiptV1 as Y, parseRouterAbEd25519YaoApplicationBindingFactsV1 as Yt, parseLinkedDeviceWalletSessionCredentialDeliveryBindingV1 as Z, parseRouterAbEd25519YaoExportAdmissionReceiptV1 as Zt, resolveThresholdSigningRootBindingFromRecord as _, parseLinkedDeviceEd25519ExportRootPackageV1 as _n, parseLinkedDeviceEmailOtpChallengeResultV1 as _t, buildEvmFamilyEcdsaWalletKey as a, parseRouterAbEd25519YaoRecoveryAdmissionRequestV1 as an, buildLinkedDeviceSessionCancelClaimedRequestV1 as at, toParticipantId as b, serializeLinkedDeviceEd25519ExportRootTransferBindingV1 as bn, parseLinkedDeviceEmailOtpFactorReleaseEnvelopeV1 as bt, buildResolvedEvmFamilyEcdsaKey as c, parseRouterAbEd25519YaoRegistrationActivationResultV1 as cn, buildLinkedDeviceTargetCredentialRegistrationV1 as ct, deriveEvmFamilyKeyFingerprint as d, sameRouterAbEd25519YaoActivationBindingV1 as dn, parseLinkSessionProjectionV1 as dt, parseRouterAbEd25519YaoParticipantIdsV1 as en, parseLinkedDeviceListResultV1 as et, deriveEvmFamilyKeyFingerprintFromPublicFacts as f, sameRouterAbEd25519YaoRegistrationAdmissionRequestV1 as fn, parseLinkSessionTransportEventV1 as ft, resolveThresholdEcdsaKeyIdFromRecord as g, buildLinkedDeviceEd25519ExportRootTransferBindingV1 as gn, parseLinkedDeviceEmailOtpChallengeResendRequestV1 as gt, parseThresholdSigningRootBinding as h, LINKED_DEVICE_ED25519_EXPORT_ROOT_TRANSFER_ALG_V1 as hn, parseLinkedDeviceEmailOtpBaseFactorResolutionResultV1 as ht, buildEvmFamilyEcdsaSessionLanePolicy as i, parseRouterAbEd25519YaoRecoveryActivationResultV1 as in, buildLinkedDeviceApprovalV1 as it, buildNamedNearAccountBinding as j, parseCommittedAuthorityPackagesV1 as jt, buildEmailOtpWalletAuthMethodBinding as k, parseQrLinkedDeviceSessionPayloadV5 as kt, buildVerifiedEcdsaPublicFacts as l, parseRouterAbEd25519YaoRegistrationAdmissionRequestV1 as ln, buildQrLinkedDeviceSessionPayloadV5 as lt, evmFamilyEcdsaWalletKeyToIdentity as m, parseWalletAddAuthMethodRegistrationOptions as mn, parseLinkedDeviceApprovalResultV1 as mt, buildBaseEvmFamilyEcdsaKeyIdentity as n, parseRouterAbEd25519YaoRecoveryActivationExecuteRequestV1 as nn, parseLinkedDeviceRevokeResultV1 as nt, buildHydratedEcdsaSignerMaterial as o, parseRouterAbEd25519YaoRegistrationActivationAdmissionReceiptV1 as on, buildLinkedDeviceSessionCancelUnclaimedRequestV1 as ot, deriveEvmFamilySigningKeySlotId as p, deriveRouterAbEd25519YaoApplicationBindingDigestV1 as pn, parseLinkedDeviceApprovalDeliveryV1 as pt, parseActivateInstalledAuthorityResultV1 as q, ROUTER_AB_ED25519_YAO_WARM_RECOVERY_BOOTSTRAP_PATH_V1 as qt, buildEvmFamilyEcdsaRecoveredMaterialLanePolicy as r, parseRouterAbEd25519YaoRecoveryActivationReceiptV1 as rn, parseWebAuthnAuthenticatorDeviceInfo as rt, buildPasskeyEcdsaAuthBinding as s, parseRouterAbEd25519YaoRegistrationActivationExecuteRequestV1 as sn, buildLinkedDeviceSessionClaimRequestV1 as st, assertMatchingVerifiedEcdsaPublicFacts as t, parseRouterAbEd25519YaoRecoveryActivationAdmissionReceiptV1 as tn, parseLinkedDeviceRevokeRequestV1 as tt, deriveEvmFamilyEcdsaKeyHandle as u, parseRouterAbEd25519YaoWarmRecoveryBootstrapRequestV1 as un, parseLinkDevicePublicKeyB64u as ut, resolveThresholdSigningRootBindingFromRuntimePolicyScope as v, parseLinkedDeviceEd25519ExportRootRecipientPublicKeyB64u as vn, parseLinkedDeviceEmailOtpChallengeStartRequestV1 as vt, parseOwnerLaneParticipantContinuityV1 as w, parseLinkedDeviceOwnerAuthorizationSourceV1 as wt, toRpId as x, assertNeverLinkSessionStateV1 as xn, parseLinkedDeviceEmailOtpVerificationGrantV1 as xt, toEvmFamilyEcdsaKeyHandle as y, parseLinkedDeviceEd25519ExportRootRecipientV1 as yn, parseLinkedDeviceEmailOtpChallengeVerifyRequestV1 as yt, walletAuthMethodBindingFromRaw as z, ROUTER_AB_ED25519_YAO_EXPORT_ADMISSION_PATH_V1 as zt };