@seams/wallet 0.7.1 → 0.8.0

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