@seams/wallet 0.24.0 → 0.27.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 (543) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/operations/tempo/executeEvmFamilyTransaction.js +1 -0
  3. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  4. package/dist/esm/SeamsWeb/walletIframe/client/evmFamilyCommands.js +1 -0
  5. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  6. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +73 -39
  7. package/dist/esm/SeamsWeb/walletIframe/client/router.js +61 -38
  8. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +1 -0
  9. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  10. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  11. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  12. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +6 -0
  13. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +8 -1
  14. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  15. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +7 -0
  16. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  17. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  19. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  20. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  21. package/dist/esm/core/ui/messages.js +12 -0
  22. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonMock.js +5 -7
  23. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +21 -5
  24. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +66 -0
  25. package/dist/esm/react/components/AccountMenuButton/AccountsSection.css +18 -11
  26. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +5 -11
  27. package/dist/esm/react/components/AccountMenuButton/ExportKeysSection.css +17 -15
  28. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +156 -106
  29. package/dist/esm/react/components/AccountMenuButton/MenuItem.css +37 -29
  30. package/dist/esm/react/components/AccountMenuButton/ProfileDropdown.css +53 -21
  31. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +124 -82
  32. package/dist/esm/react/components/AccountMenuButton/UserAccountButton.css +45 -27
  33. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.css +115 -93
  34. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +179 -92
  35. package/dist/esm/react/components/AccountMenuButton/hooks/useProfileState.js +62 -49
  36. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +36 -12
  37. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +10 -2
  38. package/dist/esm/react/components/AccountMenuButton/icons/Icon.css +10 -0
  39. package/dist/esm/react/components/AccountMenuButton/icons/LogOutIcon2.js +15 -16
  40. package/dist/esm/react/components/AccountMenuButton/icons/SpinnerIcon.js +12 -18
  41. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.css +3 -3
  42. package/dist/esm/react/components/AccountMenuButton/icons/TouchIcon.js +11 -5
  43. package/dist/esm/react/components/AccountMenuButton/icons/lucideIcon.js +20 -6
  44. package/dist/esm/react/components/AccountMenuButton/index.js +18 -42
  45. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  46. package/dist/esm/react/components/FingerprintIcon.js +13 -19
  47. package/dist/esm/react/components/HostedSeamsAuthMenu/SeamsAuthMenuMock.js +13 -2
  48. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  49. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  50. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +20 -5
  51. package/dist/esm/react/components/QRCodeIcon.js +37 -43
  52. package/dist/esm/react/components/QRCodeScanner.css +65 -60
  53. package/dist/esm/react/components/ShowQRCode.css +145 -40
  54. package/dist/esm/react/components/ShowQRCode.js +27 -37
  55. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  56. package/dist/esm/react/components/theme/Theme.css +67 -0
  57. package/dist/esm/react/components/theme/ThemeProvider.js +6 -6
  58. package/dist/esm/react/externalEvm.js +11 -4
  59. package/dist/esm/react/externalNear.js +15 -10
  60. package/dist/esm/react/externalWalletPicker.css +117 -0
  61. package/dist/esm/react/index.js +3 -2
  62. package/dist/esm/react/styles/styles.css +2148 -550
  63. package/dist/esm/react/styles.css +7 -1
  64. package/dist/esm/react/transactionReview/TransactionReviewHost.js +3 -0
  65. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  66. package/dist/esm/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  67. package/dist/esm/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
  68. package/dist/{public/sdk/SeamsWordmark-CFpsGoLw.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  69. package/dist/esm/sdk/accountLifecycle-6DHYWf0v.js +1 -0
  70. package/dist/esm/sdk/actions-DrtSTGus.js +1 -0
  71. package/dist/esm/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
  72. package/dist/esm/sdk/adapters-d9yh1bdC.js +1 -0
  73. package/dist/esm/sdk/appearance-DL7c6bML.js +1 -0
  74. package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  75. package/dist/esm/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
  76. package/dist/esm/sdk/chains-B72I4PDH.js +1 -0
  77. package/dist/esm/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
  78. package/dist/esm/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
  79. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  80. package/dist/esm/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
  81. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +1 -0
  82. package/dist/esm/sdk/configuration-DBEc3bsj.js +1 -0
  83. package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +2 -0
  84. package/dist/esm/sdk/confirmTypes-BvVtQs-M.js +1 -0
  85. package/dist/esm/sdk/device-linking-DiCNt3iA.js +1 -0
  86. package/dist/esm/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
  87. package/dist/esm/sdk/digestEncoding-CqNXPZY9.js +1 -0
  88. package/dist/esm/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
  89. package/dist/esm/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
  90. package/dist/esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
  91. package/dist/esm/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
  92. package/dist/esm/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
  93. package/dist/esm/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
  94. package/dist/esm/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  95. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
  96. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  97. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  98. package/dist/esm/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  99. package/dist/esm/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
  100. package/dist/esm/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
  101. package/dist/esm/sdk/helpers-Dubwo5uK.js +1 -0
  102. package/dist/esm/sdk/host-DayrOrgm.js +1 -0
  103. package/dist/esm/sdk/icons-BlMXolHv.js +1 -0
  104. package/dist/esm/sdk/indexedDB-C4SDsyOG.js +1 -0
  105. package/dist/esm/sdk/intentDigest-HvRsBQ1z.js +1 -0
  106. package/dist/esm/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
  107. package/dist/esm/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
  108. package/dist/esm/sdk/localOnly-BATWJj78.js +1 -0
  109. package/dist/{public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  110. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  111. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
  112. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
  113. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  114. package/dist/esm/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  115. package/dist/esm/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
  116. package/dist/esm/sdk/operationFingerprint-Bas59T7L.js +1 -0
  117. package/dist/esm/sdk/participants-BXdREC5k.js +1 -0
  118. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  119. package/dist/esm/sdk/presignaturePool-BbvqRWYw.js +1 -0
  120. package/dist/{public/sdk/presignatures-B9GrGx0L.js → esm/sdk/presignatures-BCeq56DG.js} +1 -1
  121. package/dist/esm/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
  122. package/dist/esm/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
  123. package/dist/esm/sdk/registration-CNLUYN-p.js +1 -0
  124. package/dist/esm/sdk/registration-HSwOHZOo.js +1 -0
  125. package/dist/esm/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
  126. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  127. package/dist/esm/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
  128. package/dist/esm/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
  129. package/dist/esm/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
  130. package/dist/esm/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
  131. package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +1 -0
  132. package/dist/esm/sdk/runtime-device-link-DAsq5tGT.js +1 -0
  133. package/dist/esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
  134. package/dist/esm/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
  135. package/dist/esm/sdk/runtime-export-BWnQXMzT.js +1 -0
  136. package/dist/esm/sdk/runtime-near-CuzPZrDS.js +1 -0
  137. package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  138. package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  139. package/dist/esm/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
  140. package/dist/esm/sdk/runtimeContext-5JcewRo3.js +6 -0
  141. package/dist/esm/sdk/secp256k1-CE7-q9Sn.js +1 -0
  142. package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  143. package/dist/esm/sdk/signEvmFamily-BY5jlZEG.js +1 -0
  144. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  145. package/dist/esm/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  146. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  147. package/dist/esm/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
  148. package/dist/esm/sdk/signerSlot-D2RZnb27.js +1 -0
  149. package/dist/esm/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
  150. package/dist/esm/sdk/signingQueue-dMFOFOP5.js +1 -0
  151. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  152. package/dist/esm/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
  153. package/dist/esm/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
  154. package/dist/esm/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
  155. package/dist/esm/sdk/transactionReview-CGIlI835.js +1 -0
  156. package/dist/esm/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  157. package/dist/{public/sdk/transactionState-BS1VLT7B.js → esm/sdk/transactionState-29T9xfvL.js} +1 -1
  158. package/dist/esm/sdk/tx-confirm-ui.js +173 -18
  159. package/dist/esm/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
  160. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
  161. package/dist/esm/sdk/voiceid-host.js +1 -1
  162. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  163. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  164. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  165. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  166. package/dist/esm/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
  167. package/dist/esm/sdk/wallet-ui.css +1 -1
  168. package/dist/esm/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
  169. package/dist/esm/sdk/walletAuthority-BTGAuOi8.js +1 -0
  170. package/dist/esm/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
  171. package/dist/esm/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
  172. package/dist/esm/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
  173. package/dist/esm/sdk/walletDbName-Ca0rCq5r.js +1 -0
  174. package/dist/esm/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
  175. package/dist/esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
  176. package/dist/esm/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
  177. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
  178. package/dist/esm/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
  179. package/dist/esm/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
  180. package/dist/esm/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  181. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  182. package/dist/{public/sdk/webauthnP256-BvTL8nq4.js → esm/sdk/webauthnP256-BsQQPurm.js} +1 -1
  183. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  184. package/dist/esm/shared-ts/src/utils/errors.js +56 -3
  185. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  186. package/dist/esm/voiceid-host.js +1 -1
  187. package/dist/public/headers.manifest.json +1 -1
  188. package/dist/public/sdk/{ConfirmationDrawer-CTaGM1AE.js → ConfirmationDrawer-AZruQmhP.js} +1 -1
  189. package/dist/public/sdk/NonceCoordinator-3YhmDTS5.js +1 -0
  190. package/dist/{esm/sdk/SeamsWordmark-CFpsGoLw.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  191. package/dist/public/sdk/accountLifecycle-6DHYWf0v.js +1 -0
  192. package/dist/public/sdk/actions-DrtSTGus.js +1 -0
  193. package/dist/public/sdk/activeWalletSession-BJ4B-nJo.js +1 -0
  194. package/dist/public/sdk/adapters-d9yh1bdC.js +1 -0
  195. package/dist/public/sdk/appearance-DL7c6bML.js +1 -0
  196. package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +1 -0
  197. package/dist/public/sdk/canonicalPrimitives-Jd3i_Ngz.js +1 -0
  198. package/dist/public/sdk/chains-B72I4PDH.js +1 -0
  199. package/dist/public/sdk/challengeDelivery-Dj9HrjW9.js +1 -0
  200. package/dist/public/sdk/clientSessionPersistenceState-BCkJAYSz.js +1 -0
  201. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  202. package/dist/public/sdk/{commitQueue-Bs23Rs57.js → commitQueue-CYruPlkm.js} +1 -1
  203. package/dist/public/sdk/configBuilder-CSwJrmcR.js +1 -0
  204. package/dist/public/sdk/configuration-DBEc3bsj.js +1 -0
  205. package/dist/public/sdk/confirm-ui-nU6ymgiv.js +2 -0
  206. package/dist/public/sdk/confirmTypes-BvVtQs-M.js +1 -0
  207. package/dist/public/sdk/device-linking-DiCNt3iA.js +1 -0
  208. package/dist/public/sdk/deviceLinkApproval-CfEiotVt.js +2 -0
  209. package/dist/public/sdk/digestEncoding-CqNXPZY9.js +1 -0
  210. package/dist/public/sdk/{chains-gV2K9gA4.js → digests-BIaE0DMd.js} +1 -1
  211. package/dist/public/sdk/{display-BXjW58UF.js → display-D0EPmU4w.js} +1 -1
  212. package/dist/public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js +1 -0
  213. package/dist/public/sdk/{ecdsaChainTarget-DbLthshF.js → ecdsaChainTarget-Bm5X4k-V.js} +1 -1
  214. package/dist/public/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js +1 -0
  215. package/dist/public/sdk/ecdsaDerivationExport-DJKOzDbS.js +1 -0
  216. package/dist/public/sdk/{ecdsaWalletRecords-BgcXXCZy.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  217. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js +1 -0
  218. package/dist/public/sdk/{enrichDisplayModelWithAbi-CudPUW0T.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  219. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  220. package/dist/public/sdk/{evmCryptoWasm-DacbCVNM.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  221. package/dist/public/sdk/{export-viewer-host-DsWOvc0t.js → export-viewer-host-BtrKVXxu.js} +1 -1
  222. package/dist/public/sdk/exportKeypairOperation-CGE9ZU1m.js +1 -0
  223. package/dist/public/sdk/helpers-Dubwo5uK.js +1 -0
  224. package/dist/public/sdk/host-DayrOrgm.js +1 -0
  225. package/dist/public/sdk/icons-BlMXolHv.js +1 -0
  226. package/dist/public/sdk/indexedDB-C4SDsyOG.js +1 -0
  227. package/dist/public/sdk/intentDigest-HvRsBQ1z.js +1 -0
  228. package/dist/public/sdk/keyMaterialEnvelope-Dm2ZEilb.js +1 -0
  229. package/dist/public/sdk/{lanes-C7OvAK_L.js → lanes-BU-fGqY4.js} +1 -1
  230. package/dist/public/sdk/localOnly-BATWJj78.js +1 -0
  231. package/dist/{esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js → public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js} +1 -1
  232. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-CVXU1zzl.js → mountRecoveryCodeBackupSurface-C7aglQxf.js} +1 -1
  233. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +1 -0
  234. package/dist/public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +1 -0
  235. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  236. package/dist/public/sdk/{nonceLaneKeys-BS4fek17.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  237. package/dist/public/sdk/{normalization-BN-2VWZf.js → normalization-Df9fZWJC.js} +1 -1
  238. package/dist/public/sdk/operationFingerprint-Bas59T7L.js +1 -0
  239. package/dist/public/sdk/participants-BXdREC5k.js +1 -0
  240. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js → public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js} +1 -1
  241. package/dist/public/sdk/presignaturePool-BbvqRWYw.js +1 -0
  242. package/dist/{esm/sdk/presignatures-B9GrGx0L.js → public/sdk/presignatures-BCeq56DG.js} +1 -1
  243. package/dist/public/sdk/recovery-entrypoint-DJbMDC_m.js +1 -0
  244. package/dist/public/sdk/recoveryAuthorization-CQsjb8Tm.js +1 -0
  245. package/dist/public/sdk/registration-CNLUYN-p.js +1 -0
  246. package/dist/public/sdk/registration-HSwOHZOo.js +1 -0
  247. package/dist/public/sdk/{registrationAccounts-BHikxS5q.js → registrationAccounts-4r74gX1l.js} +1 -1
  248. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  249. package/dist/public/sdk/registrationSignerPlan-DK2b3N_p.js +1 -0
  250. package/dist/public/sdk/requireStepUpAuth-COqCGb1i.js +1 -0
  251. package/dist/public/sdk/resealedEnvelopeResult-B1p5UkYg.js +1 -0
  252. package/dist/public/sdk/routerAbNormalSigning-D-UZmCBS.js +1 -0
  253. package/dist/public/sdk/runtime-auth-BCoj7_-G.js +1 -0
  254. package/dist/public/sdk/runtime-device-link-DAsq5tGT.js +1 -0
  255. package/dist/public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +1 -0
  256. package/dist/public/sdk/runtime-email-otp-BxSKK9AG.js +1 -0
  257. package/dist/public/sdk/runtime-export-BWnQXMzT.js +1 -0
  258. package/dist/public/sdk/runtime-near-CuzPZrDS.js +1 -0
  259. package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +1 -0
  260. package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +1 -0
  261. package/dist/public/sdk/runtime-recovery-codes-DeUjQsxZ.js +1 -0
  262. package/dist/public/sdk/runtimeContext-5JcewRo3.js +6 -0
  263. package/dist/public/sdk/secp256k1-CE7-q9Sn.js +1 -0
  264. package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +1 -0
  265. package/dist/public/sdk/signEvmFamily-BY5jlZEG.js +1 -0
  266. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js → signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  267. package/dist/public/sdk/{signEvmWithUiConfirm-BNkupz3z.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  268. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  269. package/dist/public/sdk/{signatureUses-DrqCoN12.js → signatureUses-kSrUHSSH.js} +1 -1
  270. package/dist/public/sdk/signerSlot-D2RZnb27.js +1 -0
  271. package/dist/public/sdk/{signingFlow-BVvteILM.js → signingFlow-BcetvUeS.js} +2 -2
  272. package/dist/public/sdk/signingQueue-dMFOFOP5.js +1 -0
  273. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  274. package/dist/public/sdk/thresholdEcdsa-CqR1fFA-.js +1 -0
  275. package/dist/public/sdk/{trace-CGNqO1FV.js → trace--mRP2OQc.js} +1 -1
  276. package/dist/public/sdk/{transaction-activity-DPq9RTh5.js → transaction-activity-DCzHGg3b.js} +1 -1
  277. package/dist/public/sdk/transactionReview-CGIlI835.js +1 -0
  278. package/dist/public/sdk/{transactionReviewAdmission--8tDis7M.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  279. package/dist/{esm/sdk/transactionState-BS1VLT7B.js → public/sdk/transactionState-29T9xfvL.js} +1 -1
  280. package/dist/public/sdk/tx-confirm-ui.js +173 -18
  281. package/dist/public/sdk/{types-DdzuHlAQ.js → types-f7dyj5N6.js} +1 -1
  282. package/dist/public/sdk/unlockedEd25519ExportRootCapability-yzxQjIFd.js +1 -0
  283. package/dist/public/sdk/voiceid-host.js +1 -1
  284. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  285. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  286. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  287. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  288. package/dist/public/sdk/wallet-recovery-BZB2Vu3X.js +1 -0
  289. package/dist/public/sdk/wallet-ui.css +1 -1
  290. package/dist/public/sdk/walletAuthMethodRecord-DLBB5fez.js +1 -0
  291. package/dist/public/sdk/walletAuthority-BTGAuOi8.js +1 -0
  292. package/dist/public/sdk/walletCapabilityBindings-D5YYB7nN.js +1 -0
  293. package/dist/public/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js +1 -0
  294. package/dist/public/sdk/walletCustodyOperation-DimzAbCB.js +1 -0
  295. package/dist/public/sdk/walletDbName-Ca0rCq5r.js +1 -0
  296. package/dist/public/sdk/walletOwnershipGeneration-CgjCtPrV.js +1 -0
  297. package/dist/public/sdk/walletRecoveryAdminProof-CvSYbyg5.js +1 -0
  298. package/dist/public/sdk/walletRecoveryCommit-Cc2LAkCS.js +1 -0
  299. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEvGKQSg.js +1 -0
  300. package/dist/public/sdk/{walletSessionAuthorizationProjection-BJgnZaBc.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +1 -1
  301. package/dist/public/sdk/walletSessionAuthorizationStatus-DG7DPcgR.js +1 -0
  302. package/dist/public/sdk/{walletSessionAuthorizationStore-zkxcMdSp.js → walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  303. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  304. package/dist/{esm/sdk/webauthnP256-BvTL8nq4.js → public/sdk/webauthnP256-BsQQPurm.js} +1 -1
  305. package/dist/public/wallet-assets.manifest.json +476 -260
  306. package/dist/public/wallet-service/index.html +4 -4
  307. package/dist/types/shared-ts/src/utils/errors.d.ts +1 -0
  308. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/passkey/exactPasskeyAuthority.d.ts +24 -0
  309. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -0
  310. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +3 -0
  311. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +2 -0
  312. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +1 -0
  313. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createDeviceDomain.d.ts +2 -1
  314. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/deviceLinkApproval.d.ts +27 -0
  315. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  316. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +4 -1
  317. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  318. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +4 -0
  319. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/recoveredEd25519Authority.d.ts +8 -0
  320. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +1 -0
  321. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  322. package/dist/types/wallet/src/core/rpcClients/relayer/walletSessionAuthorizationStatus.d.ts +2 -0
  323. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  324. package/dist/types/wallet/src/core/signingEngine/session/persistence/walletSessionAuthorizationProjection.d.ts +1 -0
  325. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  326. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  327. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +2 -0
  328. package/dist/types/wallet/src/core/types/seams.d.ts +15 -3
  329. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  330. package/dist/types/wallet/src/index.d.ts +1 -1
  331. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonMock.d.ts +11 -2
  332. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  333. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +9 -0
  334. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +13 -5
  335. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  336. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/lucideIcon.d.ts +1 -1
  337. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +19 -3
  338. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  339. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  340. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  341. package/dist/types/wallet/src/react/components/ShowQRCode.d.ts +1 -1
  342. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  343. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  344. package/dist/types/wallet/src/react/externalNear.d.ts +3 -23
  345. package/dist/types/wallet/src/react/index.d.ts +3 -1
  346. package/dist/types/wallet/src/react/transactionReview/boundCalls.d.ts +7 -0
  347. package/dist/types/wallet/src/voiceid-host.d.ts +1 -1
  348. package/package.json +1 -1
  349. package/dist/esm/react/externalNear.css +0 -90
  350. package/dist/esm/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
  351. package/dist/esm/sdk/accountLifecycle-B98g9zN9.js +0 -1
  352. package/dist/esm/sdk/actions-GYsSR2Q2.js +0 -1
  353. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
  354. package/dist/esm/sdk/adapters-D5MZ5NG5.js +0 -2
  355. package/dist/esm/sdk/appearance-DVFno9Tv.js +0 -1
  356. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
  357. package/dist/esm/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
  358. package/dist/esm/sdk/challengeDelivery-FW9gYyr0.js +0 -1
  359. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
  360. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +0 -1
  361. package/dist/esm/sdk/configuration-CAqANpTI.js +0 -1
  362. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
  363. package/dist/esm/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
  364. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
  365. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
  366. package/dist/esm/sdk/errors-ADOZT8oV.js +0 -1
  367. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +0 -1
  368. package/dist/esm/sdk/helpers-CXqXyyCU.js +0 -1
  369. package/dist/esm/sdk/host-C0Is56lU.js +0 -1
  370. package/dist/esm/sdk/icons-DyndJzSh.js +0 -1
  371. package/dist/esm/sdk/indexedDB-C1odKEC6.js +0 -1
  372. package/dist/esm/sdk/intentDigest-BMXki7yB.js +0 -1
  373. package/dist/esm/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
  374. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +0 -1
  375. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
  376. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
  377. package/dist/esm/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
  378. package/dist/esm/sdk/presignaturePool-CultzkOG.js +0 -1
  379. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
  380. package/dist/esm/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
  381. package/dist/esm/sdk/registration-CM5a7WYO.js +0 -1
  382. package/dist/esm/sdk/registration-Hv0xi7-L.js +0 -1
  383. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +0 -1
  384. package/dist/esm/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
  385. package/dist/esm/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
  386. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
  387. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
  388. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +0 -1
  389. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
  390. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
  391. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
  392. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +0 -1
  393. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +0 -1
  394. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +0 -1
  395. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +0 -1
  396. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
  397. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +0 -6
  398. package/dist/esm/sdk/secp256k1-BGVlx50C.js +0 -1
  399. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
  400. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +0 -1
  401. package/dist/esm/sdk/signNear-r8VCOoTh.js +0 -1
  402. package/dist/esm/sdk/signerSlot-D4ZOuK7e.js +0 -1
  403. package/dist/esm/sdk/signingQueue-BJzOrwDq.js +0 -1
  404. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
  405. package/dist/esm/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
  406. package/dist/esm/sdk/transactionReview-DSGnpreN.js +0 -1
  407. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
  408. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +0 -1
  409. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
  410. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
  411. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
  412. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
  413. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +0 -1
  414. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
  415. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
  416. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
  417. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
  418. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
  419. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
  420. package/dist/public/sdk/NonceCoordinator-Bti1HQPo.js +0 -1
  421. package/dist/public/sdk/accountLifecycle-B98g9zN9.js +0 -1
  422. package/dist/public/sdk/actions-GYsSR2Q2.js +0 -1
  423. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +0 -1
  424. package/dist/public/sdk/adapters-D5MZ5NG5.js +0 -2
  425. package/dist/public/sdk/appearance-DVFno9Tv.js +0 -1
  426. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +0 -1
  427. package/dist/public/sdk/canonicalPrimitives-B6YMrI3W.js +0 -1
  428. package/dist/public/sdk/challengeDelivery-FW9gYyr0.js +0 -1
  429. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +0 -1
  430. package/dist/public/sdk/configBuilder-DrxXNUpV.js +0 -1
  431. package/dist/public/sdk/configuration-CAqANpTI.js +0 -1
  432. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +0 -1
  433. package/dist/public/sdk/ecdsaDerivationClientWasm-7Rp4TmYE.js +0 -1
  434. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +0 -1
  435. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +0 -1
  436. package/dist/public/sdk/errors-ADOZT8oV.js +0 -1
  437. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +0 -1
  438. package/dist/public/sdk/helpers-CXqXyyCU.js +0 -1
  439. package/dist/public/sdk/host-C0Is56lU.js +0 -1
  440. package/dist/public/sdk/icons-DyndJzSh.js +0 -1
  441. package/dist/public/sdk/indexedDB-C1odKEC6.js +0 -1
  442. package/dist/public/sdk/intentDigest-BMXki7yB.js +0 -1
  443. package/dist/public/sdk/keyMaterialEnvelope-B-Q5KTJC.js +0 -1
  444. package/dist/public/sdk/localOnly-BB3Rx3J6.js +0 -1
  445. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +0 -1
  446. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +0 -1
  447. package/dist/public/sdk/operationFingerprint-Bn0lUYlm.js +0 -1
  448. package/dist/public/sdk/presignaturePool-CultzkOG.js +0 -1
  449. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +0 -1
  450. package/dist/public/sdk/recoveryAuthorization-DB-zxeHq.js +0 -1
  451. package/dist/public/sdk/registration-CM5a7WYO.js +0 -1
  452. package/dist/public/sdk/registration-Hv0xi7-L.js +0 -1
  453. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +0 -1
  454. package/dist/public/sdk/registrationSignerPlan-CgbFVsAp.js +0 -1
  455. package/dist/public/sdk/requireStepUpAuth-B7tC4MrA.js +0 -1
  456. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +0 -1
  457. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +0 -1
  458. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +0 -1
  459. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +0 -1
  460. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +0 -1
  461. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +0 -1
  462. package/dist/public/sdk/runtime-export-upMPrZ4V.js +0 -1
  463. package/dist/public/sdk/runtime-near-B64Hn3nc.js +0 -1
  464. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +0 -1
  465. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +0 -1
  466. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +0 -1
  467. package/dist/public/sdk/runtimeContext-CNFJjcns.js +0 -6
  468. package/dist/public/sdk/secp256k1-BGVlx50C.js +0 -1
  469. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +0 -1
  470. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +0 -1
  471. package/dist/public/sdk/signNear-r8VCOoTh.js +0 -1
  472. package/dist/public/sdk/signerSlot-D4ZOuK7e.js +0 -1
  473. package/dist/public/sdk/signingQueue-BJzOrwDq.js +0 -1
  474. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +0 -1
  475. package/dist/public/sdk/thresholdEcdsa-tnY83qyG.js +0 -1
  476. package/dist/public/sdk/transactionReview-DSGnpreN.js +0 -1
  477. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +0 -1
  478. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +0 -1
  479. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +0 -1
  480. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +0 -1
  481. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +0 -1
  482. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +0 -1
  483. package/dist/public/sdk/walletDbName-DDJXrgA5.js +0 -1
  484. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +0 -1
  485. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +0 -1
  486. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +0 -1
  487. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +0 -1
  488. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +0 -1
  489. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +0 -1
  490. /package/dist/esm/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
  491. /package/dist/esm/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
  492. /package/dist/esm/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  493. /package/dist/esm/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
  494. /package/dist/esm/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
  495. /package/dist/esm/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  496. /package/dist/esm/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
  497. /package/dist/esm/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
  498. /package/dist/esm/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  499. /package/dist/esm/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
  500. /package/dist/esm/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  501. /package/dist/esm/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
  502. /package/dist/esm/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
  503. /package/dist/esm/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
  504. /package/dist/esm/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
  505. /package/dist/esm/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  506. /package/dist/esm/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
  507. /package/dist/esm/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  508. /package/dist/esm/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  509. /package/dist/esm/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
  510. /package/dist/esm/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
  511. /package/dist/esm/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
  512. /package/dist/esm/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
  513. /package/dist/esm/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
  514. /package/dist/esm/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
  515. /package/dist/esm/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
  516. /package/dist/esm/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  517. /package/dist/public/sdk/{accountIds-D5NI31F2.js → accountIds-CW2BP-d9.js} +0 -0
  518. /package/dist/public/sdk/{authenticatorOptions-EF_Rps52.js → authenticatorOptions-WCDKYRux.js} +0 -0
  519. /package/dist/public/sdk/{authorizationAdmission-DbhNiY3X.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  520. /package/dist/public/sdk/{browser-B2RI00tM.js → browser-CKS7Tq2r.js} +0 -0
  521. /package/dist/public/sdk/{bytes-DVe42j_r.js → bytes-DXo6uALR.js} +0 -0
  522. /package/dist/public/sdk/{canonicalSignerErrorCode-AwNMAn8S.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  523. /package/dist/public/sdk/{capabilityKinds-BzrNeEyO.js → capabilityKinds-DVlGMspk.js} +0 -0
  524. /package/dist/public/sdk/{configHelpers-BNqoU2cv.js → configHelpers-CXDY3bKC.js} +0 -0
  525. /package/dist/public/sdk/{csp-stylesheet-DeuiM0Mo.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  526. /package/dist/public/sdk/{events-1dzC4Ocx.js → events-D6l0_ugy.js} +0 -0
  527. /package/dist/public/sdk/{executeWorkerOperation-B-9JuL55.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  528. /package/dist/public/sdk/{jsonRpc-CHutSlC9.js → jsonRpc-BVDv1wfm.js} +0 -0
  529. /package/dist/public/sdk/{keccak-C9kCkZem.js → keccak-mS0Mejjx.js} +0 -0
  530. /package/dist/public/sdk/{normalization-DtruiNPw.js → normalization-B3i1-rPQ.js} +0 -0
  531. /package/dist/public/sdk/{prfCache-8Wm3etlV.js → prfCache-DEHaUPSW.js} +0 -0
  532. /package/dist/public/sdk/{profileAccountProjection-D01e10UY.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  533. /package/dist/public/sdk/{promptText-Bz3YRl9D.js → promptText-bcKcsSka.js} +0 -0
  534. /package/dist/public/sdk/{registrationAuthMethodInput-BvbWl0y_.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  535. /package/dist/public/sdk/{sdkSentEvents-DUht3AOD.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  536. /package/dist/public/sdk/{shared-DcHtE-D-.js → shared-CkHhXgFB.js} +0 -0
  537. /package/dist/public/sdk/{signer-worker-DlK58rEA.js → signer-worker-BNodGJKY.js} +0 -0
  538. /package/dist/public/sdk/{signerDomain-D-EUTlLK.js → signerDomain-BAsLT3XN.js} +0 -0
  539. /package/dist/public/sdk/{signingSessionSeal-DqbjG8c8.js → signingSessionSeal-BFOBKj-J.js} +0 -0
  540. /package/dist/public/sdk/{types-fJKfUgTi.js → types-C4OErbBf.js} +0 -0
  541. /package/dist/public/sdk/{walletIframeIdentity-Cz82I_Uh.js → walletIframeIdentity-CpgyEnKg.js} +0 -0
  542. /package/dist/public/sdk/{walletSessionFailure-CLUIF3Eh.js → walletSessionFailure-CxsVtroW.js} +0 -0
  543. /package/dist/public/sdk/{webauthnPromptCoordinator-CU9ag7vz.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -0,0 +1 @@
1
+ import{n as e}from"./chunk-dVx5-UGu.js";import{C as t,E as n,L as r,M as i,N as a,O as o,P as s,S as c,T as l,c as u,g as d,i as f,s as p,z as m}from"./domainIds-t1lp25yU.js";import{S as h,T as g,a as _,h as v,i as y,l as b,n as x,r as S,t as C,w,x as T}from"./digests-BIaE0DMd.js";import{c as E,r as D,s as O,t as k}from"./participants-BXdREC5k.js";import{i as A,r as j}from"./base64-BmKR3UqU.js";import{r as M}from"./secureRandomId-8LSc91aN.js";import{s as N}from"./walletDbName-Ca0rCq5r.js";import{J as P,Q as F,X as I,Y as L,Z as ee,a as te,i as ne,n as re}from"./activeWalletSession-BJ4B-nJo.js";import{n as ie,t as R}from"./chains-B72I4PDH.js";import{c as ae,d as oe,f as se,l as ce,s as le,u as ue}from"./signingSessionSeal-BFOBKj-J.js";import{d as de,g as fe,h as pe,m as me}from"./capabilityKinds-DVlGMspk.js";import{i as he,n as ge,r as _e}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as ve,s as ye,t as be}from"./errors-BJBDbwHk.js";import{c as xe,f as Se,g as Ce,h as we,l as Te,n as Ee}from"./signerDomain-BAsLT3XN.js";import{E as De,S as Oe,d as ke,g as Ae,p as je,u as Me,v as Ne,x as Pe,y as Fe}from"./registrationIntent-Do1tD1V7.js";import{a as Ie,i as Le,n as Re,r as ze}from"./presignatures-BCeq56DG.js";import{a as Be,c as Ve,i as He,o as Ue,r as We,s as Ge}from"./ecdsaChainTarget-Bm5X4k-V.js";import{t as Ke}from"./keyMaterialEnvelope-Dm2ZEilb.js";import{c as qe,d as Je,r as Ye,t as z}from"./accountIds-CW2BP-d9.js";import{B as Xe,E as Ze,N as Qe,Q as $e,R as et,T as tt,X as nt,Z as rt,d as it,et as at,j as ot,k as st,p as ct,q as lt,w as ut,z as dt}from"./walletAuthority-BTGAuOi8.js";import{A as ft,D as pt,Et as mt,Ft as ht,G as gt,J as _t,Nt as vt,P as yt,Pt as bt,S as xt,Tt as St,W as Ct,X as wt,Z as Tt,_ as Et,at as Dt,ct as Ot,dt as kt,k as At,kt as jt,nt as Mt,ot as Nt,q as Pt,ut as Ft,x as It}from"./digestEncoding-CqNXPZY9.js";import{r as Lt}from"./walletAuthMethodRecord-DLBB5fez.js";import{a as Rt,i as zt,n as Bt,o as Vt,t as Ht}from"./signerSlot-D2RZnb27.js";import{A as Ut,B as Wt,I as Gt,N as Kt,P as qt,i as Jt,j as Yt}from"./ecdsaCapabilityManifest-DAJEVjlP.js";import{g as Xt,i as B,p as Zt,s as Qt}from"./sdkSentEvents-DjOlKtdW.js";import{C as $t,E as en,S as tn,T as nn,b as rn,c as an,f as on,o as sn,t as V,w as cn,x as ln}from"./indexedDB-C4SDsyOG.js";import{c as un,d as dn,i as fn,l as pn,n as mn,r as hn,s as gn}from"./registrationSignerPlan-DK2b3N_p.js";import{n as _n}from"./authenticatorOptions-WCDKYRux.js";import{X as vn,j as yn}from"./walletOwnershipGeneration-CgjCtPrV.js";import{T as bn,w as xn}from"./emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js";import{c as Sn,r as Cn}from"./types-f7dyj5N6.js";import{o as wn}from"./walletSessionAuthorizationStore-B9Vwkshr.js";import{t as Tn}from"./walletSessionAuthorizationStatus-DG7DPcgR.js";import{r as En,s as Dn,u as On}from"./unlockedEd25519ExportRootCapability-yzxQjIFd.js";import{o as kn,u as An}from"./helpers-Dubwo5uK.js";import{i as jn}from"./profileAccountProjection-C5sNt-s2.js";import{M as Mn,d as Nn,f as Pn,p as Fn,u as In}from"./accountLifecycle-6DHYWf0v.js";import{c as Ln,r as Rn}from"./walletCustodyEcdsaContinuity-C31YQ9av.js";import{D as zn,S as Bn,T as Vn,b as Hn,c as Un,d as Wn,f as Gn,k as Kn,m as qn,n as Jn,r as Yn,s as Xn,t as Zn,u as Qn,v as $n,w as er,x as tr}from"./nearEd25519YaoMaterialActivation-BfXmy3Jr.js";import{A as nr,a as rr,d as ir,f as ar,j as or,o as sr,u as cr}from"./nearEd25519YaoSigningPreparation-DHNk0F8e.js";import{n as lr}from"./lanes-BU-fGqY4.js";import{i as ur,n as dr,o as fr,t as pr}from"./pendingWalletRecoveryCodeBackup-Cjx-X-pP.js";import{c as mr,o as hr,s as gr}from"./wallet-recovery-BZB2Vu3X.js";import{n as _r}from"./prfCache-DEHaUPSW.js";import{u as vr}from"./trace--mRP2OQc.js";import{n as yr,o as br,t as xr}from"./walletSessionAuthorizationProjection-BzUH6gHV.js";import{t as Sr}from"./webauthnPromptCoordinator-npsSRD51.js";import{t as Cr}from"./intentDigest-HvRsBQ1z.js";import{n as wr}from"./challengeDelivery-Dj9HrjW9.js";function Tr(){return Reflect.get(globalThis,`__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS`)===!0}function Er(){}function Dr(e){if(e.keySet!==`near_ed25519_v1`)throw Error(`The custody worker began an EVM run for a NEAR request`);return e}function Or(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker began a NEAR run for an EVM request`);return e}function kr(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker completed a NEAR run for an EVM request`);return e}function Ar(e){switch(e.origin){case`establish`:case`establish_factor_after_round`:return{origin:`establish`,walletId:e.walletId};case`join`:return{origin:`join`,custodyJson:e.custodyJson,factorSecret:e.factorSecret};case`recover`:return{origin:`recover`,custodyJson:e.custodyJson,recoveryCode:e.recoveryCode};case`recover_and_reseal`:return{origin:`recover_and_reseal`,custodyJson:e.custodyJson,recoveryCode:e.recoveryCode,replacementFactorJson:e.replacementFactorJson,replacementFactorSecret:e.replacementFactorSecret};default:return Mr(e)}}async function jr(e){switch(e.origin){case`establish`:return{kind:`establish`,factorJson:e.factorJson,factorSecret:e.factorSecret,recoveryCodesJson:e.recoveryCodesJson};case`establish_factor_after_round`:{let t=await e.factor();return{kind:`establish`,factorJson:t.factorJson,factorSecret:t.factorSecret,recoveryCodesJson:e.recoveryCodesJson}}case`join`:case`recover`:return{kind:`existing`};case`recover_and_reseal`:return{kind:`recover_reseal`,replacementFactorJson:e.replacementFactorJson,replacementFactorSecret:e.replacementFactorSecret};default:return Mr(e)}}function Mr(e){throw Error(`Unsupported wallet custody origin: ${String(e)}`)}function Nr(e,t){if(e.walletId!==t.activation.walletId)throw Error(`EVM custody activation changed the wallet identity`);if(e.keyManifestDigestB64u!==t.activation.keyManifestDigestB64u)throw Error(`EVM custody activation changed the key manifest digest`);if(e.clientRootPublicKey33B64u!==t.activation.clientRootPublicKey33B64u)throw Error(`EVM custody activation changed the client root public key`)}function Pr(e,t,n){if(Tr())try{console.info(`[WalletCustody] timing `+JSON.stringify({event:`wallet_custody_timing`,ceremonyId:e,stage:`custody.${t}`,durationMs:Math.round((performance.now()-n)*10)/10,outcome:`success`}))}catch{}}async function Fr(e){let t=e.ceremonyId||M(`wallet-custody-ceremony`,32,`wallet custody ceremony IDs`),{custody:n,keySetRun:r}=e,i=!1;try{if(r.keySet===`near_ed25519_v1`){let a=performance.now(),o;if(r.checkpointJson!==void 0){if(n.origin!==`join`)throw Error(`Checkpoint restoration requires existing custody`);o=(await e.runStep(`restoreNearRegistration`,{ceremonyId:t,custodyJson:n.custodyJson,factorSecret:n.factorSecret,checkpointJson:r.checkpointJson})).yaoExecuteRequestJson}else o=Dr(await e.runStep(`beginWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`near_ed25519_v1`,custody:Ar(n),protocolInputsJson:r.protocolInputsJson})).yaoExecuteRequestJson;if(Pr(t,`begin`,a),i=!0,r.beforeRouterRound){a=performance.now();let n=await e.runStep(`checkpointNearRegistration`,{ceremonyId:t});Pr(t,`checkpoint`,a),await r.beforeRouterRound(n.checkpointJson)}a=performance.now();let s=await r.runRouterRound(o);Pr(t,`router_round`,a),a=performance.now(),await e.runStep(`completeWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`near_ed25519_v1`,protocolResultJson:s,nearEd25519SigningKeyId:r.nearEd25519SigningKeyId,recordedKeyManifestDigestB64u:e.recordedKeyManifestDigestB64u}),Pr(t,`complete`,a),await r.afterRouterRoundCompleted?.(s),a=performance.now();let c=await e.runStep(`finishWalletCustodyKeySetRun`,{ceremonyId:t,finish:await jr(n)});return Pr(t,`finish`,a),c}if(n.origin===`establish_factor_after_round`)throw Error(`An EVM custody run seals under its factor before the relayer round`);let a=await e.runStep(`beginWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`evm_family_ecdsa_v1`,custody:n,protocolInputsJson:r.protocolInputsJson,evmFamilySigningKeySlotId:r.evmFamilySigningKeySlotId,recordedKeyManifestDigestB64u:e.recordedKeyManifestDigestB64u});i=!0;let o=Or(a);await r.beforeRelayerRound();let s=await r.runRelayerRound({contextBinding32B64u:o.ecdsaContextBinding32B64u,clientSharePublicKey33B64u:o.ecdsaClientSharePublicKey33B64u,clientShareRetryCounter:o.ecdsaClientShareRetryCounter,preActivationCommitPayload:o.preActivationCommitPayload}),c=kr(await e.runStep(`completeWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`evm_family_ecdsa_v1`,protocolResultJson:s}));return Nr(o.preActivationCommitPayload,c),{...o.preActivationCommitPayload,clientRootPublicKey33B64u:c.activation.clientRootPublicKey33B64u,ecdsaReadyStateBlobB64u:c.activation.ecdsaReadyStateBlobB64u,ecdsaPublicFacts:c.activation.ecdsaPublicFacts}}catch(n){throw i&&await e.runStep(`discardWalletCustodyCeremony`,{ceremonyId:t}).catch(Er),n}}const Ir=[1,2];function Lr(e){let t=[],n=new Set;for(let r of e){let e=R(r.network);if(e!==`evm`&&e!==`tempo`)continue;let i=He(r),a=Ue(i);n.has(a)||(n.add(a),t.push({chainTarget:i}))}return t}function Rr(e){let t=[],n=new Set;for(let r of e.chains){let i=R(r.network);if(i!==`evm`&&i!==`tempo`||!(i===`tempo`?e.signerOptions.tempo:e.signerOptions.evm).enabled)continue;let a=He(r),o=Ue(a);n.has(o)||(n.add(o),t.push({chainTarget:a}))}return t}function zr(e){for(let t of e.signers)if(t.kind===`near_ed25519`)return!0;return!1}function Br(e){let t=e.ecdsaChainTargets??Hr(e.configs,e.options);return Ur(e.accountProvisioning??fn(),t)}function Vr(e){let t=null;for(let n of e.configs.network.chains)if(ie(n.network)){t=Kr(e);break}return Ur(t,Hr(e.configs,e.options))}function Hr(e,t){let n=Rr({signerOptions:t.signerOptions??e.signing.thresholdEcdsa.provisioningDefaults,chains:e.network.chains}),r=[];for(let e of n)r.push(e.chainTarget);return r}function Ur(e,t){let n=[];if(e&&n.push({kind:`near_ed25519`,accountProvisioning:e,signerSlot:1,participantIds:[...k],derivationVersion:1}),t.length&&n.push({kind:`evm_family_ecdsa`,chainTargets:[...t],participantIds:[...Ir]}),!n.length)throw Error(`Wallet registration requires at least one configured, enabled signer`);return{kind:`signer_set`,signers:n}}function Wr(e){let t=qe(e);if(!t.ok)throw Error(t.message);return dn(t.value)}function Gr(e){let t=String(e.walletId||``).trim(),n=String(e.relayerAccountId||``).trim();if(!t)throw Error(`Relayer named NEAR registration requires walletId`);if(!n)throw Error(`Relayer named NEAR registration requires relayer accountId`);return Wr(`${t}.${n}`)}function Kr(e){let t=e.preference??e.configs.registration.nearAccountProvisioning;switch(t.kind){case`implicit_account`:return fn();case`relayer_named_subaccount`:if(e.wallet.kind!==`provided`)throw Error(`Relayer named NEAR registration requires a provided walletId`);return Gr({walletId:e.wallet.walletId,relayerAccountId:e.configs.network.relayer.accountId});default:return t}}var qr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ii.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ii.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmactivatedclientv1_free(e,0)}create_signing_share(e,t,n,r,i){let a=H(n,K.__wbindgen_malloc),o=G,s=U(r,K.__wbindgen_malloc,K.__wbindgen_realloc),c=G,l=H(i,K.__wbindgen_malloc),u=G,d=K.wasmactivatedclientv1_create_signing_share(this.__wbg_ptr,e,t,a,o,s,c,l,u);if(d[2])throw W(d[1]);return Jr.__wrap(d[0])}static import_linked_material(t,n,r,i){let a=H(t,K.__wbindgen_malloc),o=G,s=U(i,K.__wbindgen_malloc,K.__wbindgen_realloc),c=G,l=K.wasmactivatedclientv1_import_linked_material(a,o,n,r,s,c);if(l[2])throw W(l[1]);return e.__wrap(l[0])}static import_local_material(t,n,r,i,a,o,s,c,l){let u=H(t,K.__wbindgen_malloc),d=G,f=H(n,K.__wbindgen_malloc),p=G,m=H(r,K.__wbindgen_malloc),h=G,g=H(i,K.__wbindgen_malloc),_=G,v=H(a,K.__wbindgen_malloc),y=G,b=H(l,K.__wbindgen_malloc),x=G,S=K.wasmactivatedclientv1_import_local_material(u,d,f,p,m,h,g,_,v,y,o,s,c,b,x);if(S[2])throw W(S[1]);return e.__wrap(S[0])}registered_public_key(){let e=K.wasmactivatedclientv1_registered_public_key(this.__wbg_ptr);var t=gi(e[0],e[1]).slice();return K.__wbindgen_free(e[0],e[1]*1,1),t}seal_local_material(e,t,n){let r=H(e,K.__wbindgen_malloc),i=G,a=H(t,K.__wbindgen_malloc),o=G,s=H(n,K.__wbindgen_malloc),c=G,l=K.wasmactivatedclientv1_seal_local_material(this.__wbg_ptr,r,i,a,o,s,c);if(l[3])throw W(l[2]);var u=gi(l[0],l[1]).slice();return K.__wbindgen_free(l[0],l[1]*1,1),u}state_epoch(){let e=K.wasmactivatedclientv1_state_epoch(this.__wbg_ptr);return BigInt.asUintN(64,e)}};Symbol.dispose&&(qr.prototype[Symbol.dispose]=qr.prototype.free);var Jr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ai.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ai.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmclientsigningsharev1_free(e,0)}client_commitments_json(){let e,t;try{let n=K.wasmclientsigningsharev1_client_commitments_json(this.__wbg_ptr);return e=n[0],t=n[1],yi(n[0],n[1])}finally{K.__wbindgen_free(e,t,1)}}client_signature_share_b64u(){let e,t;try{let n=K.wasmclientsigningsharev1_client_signature_share_b64u(this.__wbg_ptr);return e=n[0],t=n[1],yi(n[0],n[1])}finally{K.__wbindgen_free(e,t,1)}}client_verifying_share(){let e=K.wasmclientsigningsharev1_client_verifying_share(this.__wbg_ptr);var t=gi(e[0],e[1]).slice();return K.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Jr.prototype[Symbol.dispose]=Jr.prototype.free);var Yr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,oi.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,0)}complete(e){let t=U(e,K.__wbindgen_malloc,K.__wbindgen_realloc),n=G,r=K.wasmed25519yaoclientrootexportsessionv1_complete(this.__wbg_ptr,t,n);if(r[2])throw W(r[1]);return $r.__wrap(r[0])}execute_request_json(){let e,t;try{let n=K.wasmed25519yaoclientrootexportsessionv1_execute_request_json(this.__wbg_ptr);return e=n[0],t=n[1],yi(n[0],n[1])}finally{K.__wbindgen_free(e,t,1)}}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=U(e,K.__wbindgen_malloc,K.__wbindgen_realloc),m=G,h=U(t,K.__wbindgen_malloc,K.__wbindgen_realloc),g=G,_=H(i,K.__wbindgen_malloc),v=G,y=U(a,K.__wbindgen_malloc,K.__wbindgen_realloc),b=G,x=H(o,K.__wbindgen_malloc),S=G,C=H(s,K.__wbindgen_malloc),w=G,T=H(c,K.__wbindgen_malloc),E=G,D=H(l,K.__wbindgen_malloc),O=G,k=H(u,K.__wbindgen_malloc),A=G,j=H(d,K.__wbindgen_malloc),M=G,N=H(f,K.__wbindgen_malloc),P=G,F=K.wasmed25519yaoclientrootexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P);if(F[2])throw W(F[1]);return this.__wbg_ptr=F[0],oi.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Yr.prototype[Symbol.dispose]=Yr.prototype.free);var Xr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,si.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmed25519yaolaneclientv1_free(e,0)}complete(e){let t=K.wasmed25519yaolaneclientv1_complete(this.__wbg_ptr,e);if(t[2])throw W(t[1]);return W(t[0])}execute_request_json(){let e,t;try{let i=K.wasmed25519yaolaneclientv1_execute_request_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,W(i[2]);return e=n,t=r,yi(n,r)}finally{K.__wbindgen_free(e,t,1)}}constructor(){return this.__wbg_ptr=K.wasmed25519yaolaneclientv1_new(),si.register(this,this.__wbg_ptr,this),this}prepare(e,t,n,r,i,a,o,s,c,l){mi(a,Zr);let u=H(o,K.__wbindgen_malloc),d=G,f=H(s,K.__wbindgen_malloc),p=G,m=H(c,K.__wbindgen_malloc),h=G,g=H(l,K.__wbindgen_malloc),_=G,v=K.wasmed25519yaolaneclientv1_prepare(this.__wbg_ptr,e,t,n,r,i,a.__wbg_ptr,u,d,f,p,m,h,g,_);if(v[2])throw W(v[1]);return W(v[0])}};Symbol.dispose&&(Xr.prototype[Symbol.dispose]=Xr.prototype.free);var Zr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ci.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ci.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmed25519yaolanesourcev1_free(e,0)}constructor(e,t,n,r,i,a){let o=H(e,K.__wbindgen_malloc),s=G,c=U(t,K.__wbindgen_malloc,K.__wbindgen_realloc),l=G,u=H(n,K.__wbindgen_malloc),d=G,f=H(r,K.__wbindgen_malloc),p=G,m=H(i,K.__wbindgen_malloc),h=G,g=H(a,K.__wbindgen_malloc),_=G,v=K.wasmed25519yaolanesourcev1_new(o,s,c,l,u,d,f,p,m,h,g,_);if(v[2])throw W(v[1]);return this.__wbg_ptr=v[0],ci.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Zr.prototype[Symbol.dispose]=Zr.prototype.free);var Qr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,li.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,0)}constructor(e,t,n,r,i,a,o,s,c){mi(i,Zr);let l=H(a,K.__wbindgen_malloc),u=G,d=H(o,K.__wbindgen_malloc),f=G,p=H(s,K.__wbindgen_malloc),m=G,h=H(c,K.__wbindgen_malloc),g=G,_=K.wasmed25519yaosourcepreservingregistrationsessionv1_new(e,t,n,r,i.__wbg_ptr,l,u,d,f,p,m,h,g);if(_[2])throw W(_[1]);return this.__wbg_ptr=_[0],li.register(this,this.__wbg_ptr,this),this}take_execute_request_json(){let e,t;try{let i=K.wasmed25519yaosourcepreservingregistrationsessionv1_take_execute_request_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,W(i[2]);return e=n,t=r,yi(n,r)}finally{K.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(Qr.prototype[Symbol.dispose]=Qr.prototype.free);var $r=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ui.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ui.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmexporteded25519seedv1_free(e,0)}take_export_artifact_json(){let e,t;try{let i=K.wasmexporteded25519seedv1_take_export_artifact_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,W(i[2]);return e=n,t=r,yi(n,r)}finally{K.__wbindgen_free(e,t,1)}}};Symbol.dispose&&($r.prototype[Symbol.dispose]=$r.prototype.free);var ei=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,di.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,0)}destroy(){K.wasmordinaryed25519activationclientmaterialv1_destroy(this.__wbg_ptr)}constructor(e,t,n,r,i,a){let o=U(e,K.__wbindgen_malloc,K.__wbindgen_realloc),s=G,c=U(t,K.__wbindgen_malloc,K.__wbindgen_realloc),l=G,u=U(n,K.__wbindgen_malloc,K.__wbindgen_realloc),d=G,f=H(r,K.__wbindgen_malloc),p=G,m=U(i,K.__wbindgen_malloc,K.__wbindgen_realloc),h=G,g=U(a,K.__wbindgen_malloc,K.__wbindgen_realloc),_=G,v=K.wasmordinaryed25519activationclientmaterialv1_new(o,s,c,l,u,d,f,p,m,h,g,_);if(v[2])throw W(v[1]);return this.__wbg_ptr=v[0],di.register(this,this.__wbg_ptr,this),this}take_client_material(){let e=K.wasmordinaryed25519activationclientmaterialv1_take_client_material(this.__wbg_ptr);if(e[3])throw W(e[2]);var t=gi(e[0],e[1]).slice();return K.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(ei.prototype[Symbol.dispose]=ei.prototype.free);var ti=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,fi.unregister(this),e}free(){let e=this.__destroy_into_raw();K.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,0)}complete(e){let t=U(e,K.__wbindgen_malloc,K.__wbindgen_realloc),n=G,r=K.wasmwalletcustodyseedexportsessionv1_complete(this.__wbg_ptr,t,n);if(r[2])throw W(r[1]);return $r.__wrap(r[0])}execute_request_json(){let e,t;try{let n=K.wasmwalletcustodyseedexportsessionv1_execute_request_json(this.__wbg_ptr);return e=n[0],t=n[1],yi(n[0],n[1])}finally{K.__wbindgen_free(e,t,1)}}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=U(e,K.__wbindgen_malloc,K.__wbindgen_realloc),m=G,h=U(t,K.__wbindgen_malloc,K.__wbindgen_realloc),g=G,_=H(i,K.__wbindgen_malloc),v=G,y=U(a,K.__wbindgen_malloc,K.__wbindgen_realloc),b=G,x=H(o,K.__wbindgen_malloc),S=G,C=H(s,K.__wbindgen_malloc),w=G,T=H(c,K.__wbindgen_malloc),E=G,D=H(l,K.__wbindgen_malloc),O=G,k=H(u,K.__wbindgen_malloc),A=G,j=H(d,K.__wbindgen_malloc),M=G,N=H(f,K.__wbindgen_malloc),P=G,F=K.wasmwalletcustodyseedexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P);if(F[2])throw W(F[1]);return this.__wbg_ptr=F[0],fi.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(ti.prototype[Symbol.dispose]=ti.prototype.free);function ni(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=H(e,K.__wbindgen_malloc),h=G,g=U(t,K.__wbindgen_malloc,K.__wbindgen_realloc),_=G,v=H(n,K.__wbindgen_malloc),y=G,b=H(r,K.__wbindgen_malloc),x=G,S=H(i,K.__wbindgen_malloc),C=G,w=H(a,K.__wbindgen_malloc),T=G,E=H(o,K.__wbindgen_malloc),D=G,O=H(s,K.__wbindgen_malloc),k=G,A=H(d,K.__wbindgen_malloc),j=G,M=H(f,K.__wbindgen_malloc),N=G,P=H(p,K.__wbindgen_malloc),F=G,I=K.openWalletCustodyEd25519MaterialV1(m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,c,l,u,A,j,M,N,P,F);if(I[2])throw W(I[1]);return qr.__wrap(I[0])}function ri(){let e={__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,t){return Error(yi(e,t))},__wbg_Number_9a4e0ecb0fa16705:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=U(String(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;vi().setInt32(e+4,r,!0),vi().setInt32(e+0,n,!0)},__wbg___wbindgen_bigint_get_as_i64_d968e41184ae354f:function(e,t){let n=t,r=typeof n==`bigint`?n:void 0;vi().setBigInt64(e+8,Ci(r)?BigInt(0):r,!0),vi().setInt32(e+0,!Ci(r),!0)},__wbg___wbindgen_boolean_get_fa956cfa2d1bd751:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return Ci(n)?16777215:n?1:0},__wbg___wbindgen_debug_string_c25d447a39f5578f:function(e,t){let n=U(hi(t),K.__wbindgen_malloc,K.__wbindgen_realloc),r=G;vi().setInt32(e+4,r,!0),vi().setInt32(e+0,n,!0)},__wbg___wbindgen_in_aca499c5de7ff5e5:function(e,t){return e in t},__wbg___wbindgen_is_bigint_2f76dc55065b4273:function(e){return typeof e==`bigint`},__wbg___wbindgen_is_function_1ff95bcc5517c252:function(e){return typeof e==`function`},__wbg___wbindgen_is_object_a27215656b807791:function(e){let t=e;return typeof t==`object`&&!!t},__wbg___wbindgen_is_string_ea5e6cc2e4141dfe:function(e){return typeof e==`string`},__wbg___wbindgen_is_undefined_c05833b95a3cf397:function(e){return e===void 0},__wbg___wbindgen_jsval_eq_e659fcf7b0e32763:function(e,t){return e===t},__wbg___wbindgen_jsval_loose_eq_db4c3b15f63fc170:function(e,t){return e==t},__wbg___wbindgen_number_get_394265ed1e1b84ee:function(e,t){let n=t,r=typeof n==`number`?n:void 0;vi().setFloat64(e+8,Ci(r)?0:r,!0),vi().setInt32(e+0,!Ci(r),!0)},__wbg___wbindgen_string_get_b0ca35b86a603356:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=Ci(r)?0:U(r,K.__wbindgen_malloc,K.__wbindgen_realloc),a=G;vi().setInt32(e+4,a,!0),vi().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw Error(yi(e,t))},__wbg_call_8a2dd23819f8a60a:function(){return Si(function(e,t){return e.call(t)},arguments)},__wbg_call_a6e5c5dce5018821:function(){return Si(function(e,t,n){return e.call(t,n)},arguments)},__wbg_crypto_38df2bab126b63dc:function(e){return e.crypto},__wbg_done_89b2b13e91a60321:function(e){return e.done},__wbg_entries_015dc610cd81ede0:function(e){return Object.entries(e)},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return Si(function(e,t){e.getRandomValues(t)},arguments)},__wbg_get_507a50627bffa49b:function(e,t){return e[t>>>0]},__wbg_get_78f252d074a84d0b:function(){return Si(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_c7eb1f358a7654df:function(){return Si(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_unchecked_6e0ad6d2a41b06f6:function(e,t){return e[t>>>0]},__wbg_get_with_ref_key_6412cf3094599694:function(e,t){return e[t]},__wbg_instanceof_ArrayBuffer_4480b9e0068a8adb:function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},__wbg_instanceof_Map_e5b5e3db98422fcc:function(e){let t;try{t=e instanceof Map}catch{t=!1}return t},__wbg_instanceof_Uint8Array_309b927aaf7a3fc7:function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},__wbg_isArray_0677c962b281d01a:function(e){return Array.isArray(e)},__wbg_isSafeInteger_04f36e4056f1b851:function(e){return Number.isSafeInteger(e)},__wbg_iterator_6f722e4a93058b71:function(){return Symbol.iterator},__wbg_length_1f0964f4a5e2c6d8:function(e){return e.length},__wbg_length_370319915dc99107:function(e){return e.length},__wbg_msCrypto_bd5a034af96bcba6:function(e){return e.msCrypto},__wbg_new_cd45aabdf6073e84:function(e){return new Uint8Array(e)},__wbg_new_da52cf8fe3429cb2:function(){return{}},__wbg_new_with_length_e6785c33c8e4cce8:function(e){return new Uint8Array(e>>>0)},__wbg_next_6dbf2c0ac8cde20f:function(e){return e.next},__wbg_next_71f2aa1cb3d1e37e:function(){return Si(function(e){return e.next()},arguments)},__wbg_node_84ea875411254db1:function(e){return e.node},__wbg_process_44c7a14e11e9f69e:function(e){return e.process},__wbg_prototypesetcall_4770620bbe4688a0:function(e,t,n){Uint8Array.prototype.set.call(gi(e,t),n)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return Si(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return Si(function(){return module.require},arguments)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_8535240470bf2500:function(){return Si(function(e,t,n){return Reflect.set(e,t,n)},arguments)},__wbg_static_accessor_GLOBAL_4ef717fb391d88b7:function(){let e=typeof global>`u`?null:global;return Ci(e)?0:pi(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){let e=typeof globalThis>`u`?null:globalThis;return Ci(e)?0:pi(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){let e=typeof self>`u`?null:self;return Ci(e)?0:pi(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){let e=typeof window>`u`?null:window;return Ci(e)?0:pi(e)},__wbg_subarray_3ed232c8a6baee09:function(e,t,n){return e.subarray(t>>>0,n>>>0)},__wbg_value_a5d5488a9589444a:function(e){return e.value},__wbg_versions_276b2795b1c6a219:function(e){return e.versions},__wbindgen_cast_0000000000000001:function(e){return e},__wbindgen_cast_0000000000000002:function(e){return e},__wbindgen_cast_0000000000000003:function(e,t){return gi(e,t)},__wbindgen_cast_0000000000000004:function(e,t){return yi(e,t)},__wbindgen_cast_0000000000000005:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=K.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}};return{__proto__:null,"./router_ab_ed25519_yao_client_bg.js":e}}const ii=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmactivatedclientv1_free(e,1)),ai=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmclientsigningsharev1_free(e,1)),oi=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,1)),si=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmed25519yaolaneclientv1_free(e,1)),ci=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmed25519yaolanesourcev1_free(e,1)),li=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,1)),ui=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmexporteded25519seedv1_free(e,1)),di=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,1)),fi=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>K.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,1));function pi(e){let t=K.__externref_table_alloc();return K.__wbindgen_externrefs.set(t,e),t}function mi(e,t){if(!(e instanceof t))throw Error(`expected instance of ${t.name}`)}function hi(e){let t=typeof e;if(t==`number`||t==`boolean`||e==null)return`${e}`;if(t==`string`)return`"${e}"`;if(t==`symbol`){let t=e.description;return t==null?`Symbol`:`Symbol(${t})`}if(t==`function`){let t=e.name;return typeof t==`string`&&t.length>0?`Function(${t})`:`Function`}if(Array.isArray(e)){let t=e.length,n=`[`;t>0&&(n+=hi(e[0]));for(let r=1;r<t;r++)n+=`, `+hi(e[r]);return n+=`]`,n}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r==`Object`)try{return`Object(`+JSON.stringify(e)+`)`}catch{return`Object`}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:r}function gi(e,t){return e>>>=0,xi().subarray(e/1,e/1+t)}let _i=null;function vi(){return(_i===null||_i.buffer.detached===!0||_i.buffer.detached===void 0&&_i.buffer!==K.memory.buffer)&&(_i=new DataView(K.memory.buffer)),_i}function yi(e,t){return Ei(e>>>0,t)}let bi=null;function xi(){return(bi===null||bi.byteLength===0)&&(bi=new Uint8Array(K.memory.buffer)),bi}function Si(e,t){try{return e.apply(this,t)}catch(e){let t=pi(e);K.__wbindgen_exn_store(t)}}function Ci(e){return e==null}function H(e,t){let n=t(e.length*1,1)>>>0;return xi().set(e,n/1),G=e.length,n}function U(e,t,n){if(n===void 0){let n=Di.encode(e),r=t(n.length,1)>>>0;return xi().subarray(r,r+n.length).set(n),G=n.length,r}let r=e.length,i=t(r,1)>>>0,a=xi(),o=0;for(;o<r;o++){let t=e.charCodeAt(o);if(t>127)break;a[i+o]=t}if(o!==r){o!==0&&(e=e.slice(o)),i=n(i,r,r=o+e.length*3,1)>>>0;let t=xi().subarray(i+o,i+r),a=Di.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return G=o,i}function W(e){let t=K.__wbindgen_externrefs.get(e);return K.__externref_table_dealloc(e),t}let wi=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});wi.decode();let Ti=0;function Ei(e,t){return Ti+=t,Ti>=2146435072&&(wi=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),wi.decode(),Ti=t),wi.decode(xi().subarray(e,e+t))}const Di=new TextEncoder;`encodeInto`in Di||(Di.encodeInto=function(e,t){let n=Di.encode(e);return t.set(n),{read:e.length,written:n.length}});let G=0,K;function Oi(e,t){return K=e.exports,_i=null,bi=null,K.__wbindgen_start(),K}async function ki(e,t){if(typeof Response==`function`&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming==`function`)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if(e.ok&&n(e.type)&&e.headers.get(`Content-Type`)!==`application/wasm`)console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}function n(e){switch(e){case`basic`:case`cors`:case`default`:return!0}return!1}}async function Ai(e){if(K!==void 0)return K;e!==void 0&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn(`using deprecated parameters for the initialization function; pass a single object instead`)),e===void 0&&(e=new URL(`router_ab_ed25519_yao_client_bg.wasm`,import.meta.url));let t=ri();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await ki(await e,t);return Oi(n,r)}const ji=`router_ab_ed25519_yao_active_client_v1`;function Mi(e){switch(e.authorization.kind){case`passkey`:return{protocol:e.protocol,authorization:{kind:`passkey`,webauthnAuthentication:An(e.authorization.webauthnAuthentication)}};case`email_otp_factor`:return{protocol:e.protocol,authorization:{kind:`email_otp_factor`,providerSubjectId:e.authorization.providerSubjectId,walletAuthMethodId:e.authorization.walletAuthMethodId,challengeId:e.authorization.challengeId,otpCode:e.authorization.otpCode}}}}const Ni=Symbol(`router-ab-ed25519-yao-active-client-construction`);function Pi(e,t){if(!(e instanceof Uint8Array)||e.length!==32)throw Error(`${t} must contain 32 bytes`);return e}function Fi(e){return e.authorization.kind===`passkey`}function Ii(e){switch(e.kind){case`wallet_custody_seed_v1`:return ti;case`ed25519_yao_client_root_v1`:return Yr;default:return Ui(e.kind)}}function Li(e){let t=[JSON.stringify(e.admission),JSON.stringify(e.applicationBinding),e.participantIds[0],e.participantIds[1],e.custodyEnvelope.factorSecret,e.custodyEnvelope.bindingJson,e.custodyEnvelope.nonce,e.custodyEnvelope.ciphertext,e.custodyEnvelope.aadHash,e.custodyEnvelope.ciphertextDigest,e.entropy.recipientKeyMaterial,e.entropy.deriverASealSeed,e.entropy.deriverBSealSeed];return new(Ii(e.custodyEnvelope))(...t)}function Ri(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=Object.keys(e);if(t.length!==4||![`kind`,`challengeId`,`loginGrant`,`expiresAtMs`].every(e=>t.includes(e))||Reflect.get(e,`kind`)!==`email_otp_login_grant`)return null;let n=Reflect.get(e,`challengeId`),r=Reflect.get(e,`loginGrant`),i=Reflect.get(e,`expiresAtMs`);return typeof n!=`string`||n.trim().length===0||typeof r!=`string`||r.trim().length===0||typeof i!=`number`||!Number.isSafeInteger(i)||i<=0?null:{kind:`email_otp_login_grant`,challengeId:n,loginGrant:r}}function zi(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Router export admission response must be an object`);let t=Object.keys(e),n=t.length===1&&t[0]===`protocol`,r=t.length===2&&t.includes(`protocol`)&&t.includes(`factorRelease`);if(!n&&!r)throw Error(`Router export admission response contains unexpected fields`);let i=et(Reflect.get(e,`protocol`));if(!i.ok)throw Error(i.message);return n?{kind:`protocol_only`,protocol:i.value}:{kind:`protocol_with_factor_release`,protocol:i.value,factorRelease:Ri(Reflect.get(e,`factorRelease`))}}function Bi(){return{recipientKeyMaterial:Gi(),deriverASealSeed:Gi(),deriverBSealSeed:Gi()}}function Vi(e){e.recipientKeyMaterial.fill(0),e.deriverASealSeed.fill(0),e.deriverBSealSeed.fill(0)}function Hi(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r+=1)n|=e[r]^t[r];return n===0}function Ui(e){throw Error(`Unhandled Ed25519 Yao Client lifecycle: ${String(e)}`)}function Wi(e){switch(e.kind){case`active`:return e.activated;case`disposed`:throw Error(`Ed25519 Yao Client state is disposed`);default:return Ui(e)}}function Gi(){let e=new Uint8Array(32);do globalThis.crypto.getRandomValues(e);while(e.every(Ki));return e}function Ki(e){return e===0}function qi(e){let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Client commitments must be an object`);let n=Object.keys(t);if(n.length!==2||!n.includes(`hiding`)||!n.includes(`binding`))throw Error(`Client commitments contain unexpected fields`);let r=Reflect.get(t,`hiding`),i=Reflect.get(t,`binding`);if(typeof r!=`string`||typeof i!=`string`)throw Error(`Client commitments must contain hiding and binding strings`);return{hiding:r,binding:i}}function Ji(e,t){let n=t.binding.ceremony.lifecycle;return n.lifecycle_id===e.scope.lifecycle_id&&n.root_share_epoch===e.scope.root_share_epoch&&n.account_id===e.scope.account_id&&n.session_id===e.scope.threshold_session_id&&n.signer_set_id===e.scope.signer_set_id&&n.selected_server_id===e.scope.signing_worker_id&&ht(t.binding.ceremony.material_activation,e.scope.material_activation)&&t.binding.state_epoch===e.state_epoch&&Hi(t.binding.registered_public_key,e.registered_public_key)&&Hi(t.binding.runtime_policy_binding,e.runtime_policy_binding)&&Hi(t.binding.authorization_digest,e.authorization.authorization_digest)}function Yi(e){let t=JSON.parse(e);if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Ed25519 Yao export artifact must be an object`);let n=Object.keys(t).sort(),r=[`artifactKind`,`privateKey`,`publicKey`];if(n.length!==r.length||n.some((e,t)=>e!==r[t]))throw Error(`Ed25519 Yao export artifact contains unexpected fields`);if(Reflect.get(t,`artifactKind`)!==`near-ed25519-seed-v1`||typeof Reflect.get(t,`publicKey`)!=`string`||typeof Reflect.get(t,`privateKey`)!=`string`||!String(Reflect.get(t,`publicKey`)).startsWith(`ed25519:`)||!String(Reflect.get(t,`privateKey`)).startsWith(`ed25519:`))throw Error(`Ed25519 Yao export artifact is invalid`);let i=Reflect.get(t,`publicKey`),a=Reflect.get(t,`privateKey`);if(typeof i!=`string`||typeof a!=`string`)throw Error(`Ed25519 Yao export artifact is invalid`);return{artifactKind:`near-ed25519-seed-v1`,publicKey:i,privateKey:a}}function Xi(e){let t=new URL(e.routerOrigin);if(t.protocol!==`http:`&&t.protocol!==`https:`||t.pathname!==`/`)throw Error(`Router origin must be an HTTP origin without a path`);if(t.search||t.hash)throw Error(`Router origin must not contain query or hash`);if(typeof e.fetch!=`function`)throw Error(`Router fetch is required`);switch(e.authorization.kind){case`bearer`:if(!e.authorization.value.trim())throw Error(`Router bearer authorization is required`);break;case`recovery_challenge`:if(!e.authorization.challengeId.trim())throw Error(`Router recovery challenge ID is required`);break;case`cookies`:break}return{routerOrigin:t.origin,routing:e.routing,authorization:e.authorization,fetch:e.fetch,traceContext:Zi(e.traceContext)}}function Zi(e){if(!e)return nn();if(e.kind!==`router_ab_trace_context_v1`)throw Error(`Router trace context kind is invalid`);let t=en(e.value);if(!t.ok)throw Error(t.message);return t.value}async function Qi(e){let t=e.headers.get(`Server-Timing`),n;try{n=await e.json()}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}if(e.ok){let r=t||$i(e.url);return{ok:!0,value:n,...r?{serverTiming:r}:{}}}let r=_(n)?.code;return{ok:!1,message:JSON.stringify(n),...typeof r==`string`?{code:r}:{}}}function $i(e){if(!e||typeof performance>`u`||typeof performance.getEntriesByName!=`function`)return null;let t=performance.getEntriesByName(e,`resource`);for(let e=t.length-1;e>=0;--e){let n=t[e];if(!n||n.entryType!==`resource`)continue;let r=ea(Reflect.get(n,`serverTiming`));if(r)return r}return null}function ea(e){if(!Array.isArray(e))return null;let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=String(Reflect.get(n,`name`)||``).trim(),r=Number(Reflect.get(n,`duration`));/^[a-z0-9_]+$/.test(e)&&(!Number.isFinite(r)||r<0||t.push(`${e};dur=${r}`))}return t.length>0?t.join(`, `):null}var ta=class{config;constructor(e){this.config=Xi(e)}async send(e){let t;try{let n=!(e.kind===`export_admit`||e.kind===`export_execute`)&&this.config.authorization.kind===`bearer`?this.config.authorization.value:null,r=e.kind===`recovery_admit`&&this.config.authorization.kind===`recovery_challenge`?this.config.authorization.challengeId:null,i=this.config.authorization.kind===`cookies`;t=await this.config.fetch.call(globalThis,new URL(e.path,this.config.routerOrigin),{method:`POST`,headers:{...la(this.config.routing),...n?{authorization:n}:{},...r?{[st]:r}:{},"content-type":`application/json`,[cn]:this.config.traceContext.value},credentials:i?`include`:`omit`,body:JSON.stringify(e.body)})}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}return Qi(t)}},na=class{activeMetadata;lifecycle;constructor(e){if(e[Ni]!==!0)throw Error(`Ed25519 Yao Client state requires verified WASM completion`);this.activeMetadata={kind:e.metadata.kind,scope:{lifecycle_id:e.metadata.scope.lifecycle_id,root_share_epoch:e.metadata.scope.root_share_epoch,account_id:e.metadata.scope.account_id,threshold_session_id:e.metadata.scope.threshold_session_id,signer_set_id:e.metadata.scope.signer_set_id,signing_worker_id:e.metadata.scope.signing_worker_id,material_activation:e.metadata.scope.material_activation},applicationBinding:{wallet_id:e.metadata.applicationBinding.wallet_id,near_ed25519_signing_key_id:e.metadata.applicationBinding.near_ed25519_signing_key_id,signing_root_id:e.metadata.applicationBinding.signing_root_id,key_creation_signer_slot:e.metadata.applicationBinding.key_creation_signer_slot},participantIds:[e.metadata.participantIds[0],e.metadata.participantIds[1]],registeredPublicKey:e.metadata.registeredPublicKey.slice(),signingWorkerVerifyingShare:e.metadata.signingWorkerVerifyingShare.slice(),stateEpoch:e.metadata.stateEpoch,transcript:e.metadata.transcript.slice(),activeCapabilityBinding:[...e.metadata.activeCapabilityBinding],materialActivation:e.metadata.materialActivation},this.lifecycle={kind:`active`,activated:e.activated}}sealLocalMaterial(e){let t=Wi(this.lifecycle);try{return{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:e.nonce.slice(),ciphertext:t.seal_local_material(Pi(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.nonce)}}finally{e.ownedPasskeyPrfFirst.fill(0)}}async createSigningShare(e){let t=Wi(this.lifecycle),n=Pi(e.admittedDigest,`admitted digest`),r=Pi(e.signingWorkerVerifyingShare,`SigningWorker verifying share`);if(!Hi(r,this.activeMetadata.signingWorkerVerifyingShare))throw Error(`SigningWorker verifying share does not match activated Client state`);let i=t.create_signing_share(this.activeMetadata.participantIds[0],this.activeMetadata.participantIds[1],n,JSON.stringify(e.signingWorkerCommitments),r);try{return{clientCommitments:qi(i.client_commitments_json()),clientVerifyingShare:i.client_verifying_share(),clientSignatureShareB64u:i.client_signature_share_b64u()}}finally{i.free()}}metadata(){return{kind:this.activeMetadata.kind,scope:{lifecycle_id:this.activeMetadata.scope.lifecycle_id,root_share_epoch:this.activeMetadata.scope.root_share_epoch,account_id:this.activeMetadata.scope.account_id,threshold_session_id:this.activeMetadata.scope.threshold_session_id,signer_set_id:this.activeMetadata.scope.signer_set_id,signing_worker_id:this.activeMetadata.scope.signing_worker_id,material_activation:this.activeMetadata.scope.material_activation},applicationBinding:{wallet_id:this.activeMetadata.applicationBinding.wallet_id,near_ed25519_signing_key_id:this.activeMetadata.applicationBinding.near_ed25519_signing_key_id,signing_root_id:this.activeMetadata.applicationBinding.signing_root_id,key_creation_signer_slot:this.activeMetadata.applicationBinding.key_creation_signer_slot},participantIds:[this.activeMetadata.participantIds[0],this.activeMetadata.participantIds[1]],registeredPublicKey:this.activeMetadata.registeredPublicKey.slice(),signingWorkerVerifyingShare:this.activeMetadata.signingWorkerVerifyingShare.slice(),stateEpoch:this.activeMetadata.stateEpoch,transcript:this.activeMetadata.transcript.slice(),activeCapabilityBinding:[...this.activeMetadata.activeCapabilityBinding],materialActivation:this.activeMetadata.materialActivation}}status(){switch(this.lifecycle.kind){case`active`:return{kind:`active`};case`disposed`:return{kind:`disposed`};default:return Ui(this.lifecycle)}}dispose(){switch(this.lifecycle.kind){case`active`:{let e=this.lifecycle.activated;this.lifecycle={kind:`disposed`},e.free();return}case`disposed`:return;default:return Ui(this.lifecycle)}}};function ra(e){let t=null;try{return t=qr.import_local_material(Pi(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.sealed.nonce,e.sealed.ciphertext,e.metadata.registeredPublicKey,e.metadata.stateEpoch,e.metadata.participantIds[0],e.metadata.participantIds[1],e.metadata.signingWorkerVerifyingShare),new na({[Ni]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedPasskeyPrfFirst.fill(0)}}function ia(e){let t=null;try{if(t=qr.import_linked_material(Pi(e.ownedClientScalarShare,`linked-device Ed25519 Client share`),e.metadata.participantIds[0],e.metadata.participantIds[1],JSON.stringify(e.publicReceipt)),t.state_epoch()!==e.metadata.stateEpoch||!Hi(t.registered_public_key(),e.metadata.registeredPublicKey)||!Hi(e.publicReceipt.signing_worker_verifying_share,e.metadata.signingWorkerVerifyingShare))throw Error(`linked-device Ed25519 material metadata does not match its receipt`);return new na({[Ni]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedClientScalarShare.fill(0)}}function aa(e){let t=null;try{return t=ni(e.ownedFactorSecret,e.envelope.bindingJson,e.envelope.nonce,e.envelope.ciphertext,e.envelope.aadHash,e.envelope.ciphertextDigest,e.applicationBindingDigest,e.metadata.registeredPublicKey,e.metadata.stateEpoch,e.metadata.participantIds[0],e.metadata.participantIds[1],e.metadata.signingWorkerVerifyingShare,e.sealed.nonce,e.sealed.ciphertext),new na({[Ni]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedFactorSecret.fill(0)}}let oa=null;function sa(e){throw oa=null,e}var ca=class e{constructor(){}static async initializeBundled(){return oa??=Ai().catch(sa),await oa,new e}importLocalMaterial(e){return ra(e)}importLinkedMaterial(e){return ia(e)}openCustodyCache(e){return aa(e)}async exportSeed(e){let t=await e.transport.send({kind:`export_admit`,path:tt,body:Mi({protocol:e.request,authorization:e.authorization})});if(!t.ok)return t;let n;try{n=zi(t.value)}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}if(!Ji(e.request,n.protocol))return{ok:!1,message:`Router export admission does not match the requested exact capability`};let r;if(Fi(e)){if(n.kind!==`protocol_only`)return{ok:!1,message:`Passkey export admission returned an Email OTP factor release`};r=e.custodyEnvelope}else{if(n.kind!==`protocol_with_factor_release`)return{ok:!1,message:`Email OTP export admission did not return the matching factor release`};let t=n.factorRelease;if(!t||t.challengeId!==e.authorization.challengeId)return{ok:!1,message:`Email OTP export admission did not return the matching factor release`};try{r=await e.resolveCustodyEnvelope(t)}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}}let i=Bi(),a;try{a=Li({admission:n.protocol,applicationBinding:e.request.application_binding,participantIds:e.request.participant_ids,custodyEnvelope:r,entropy:i})}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}finally{r.factorSecret.fill(0),Vi(i)}try{let t=dt(JSON.parse(a.execute_request_json()));if(!t.ok)return{ok:!1,message:t.message};let n=await e.transport.send({kind:`export_execute`,path:Ze,body:{protocol:t.value}});if(!n.ok)return n;let r=Xe(n.value);if(!r.ok)return{ok:!1,message:r.message};let i=a.complete(JSON.stringify(r.value));try{return{ok:!0,artifact:Yi(i.take_export_artifact_json())}}finally{i.free()}}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}finally{a.free()}}};function la(e){switch(e.kind){case`discovery`:return{};case`direct`:case`regional`:return O(e);default:return Ui(e)}}function ua(e){return{materialActivation:e.materialActivation,lifecycleId:e.scope.lifecycle_id,signingRootVersion:e.scope.root_share_epoch,signingRootId:e.applicationBinding.signing_root_id,signerSetId:e.scope.signer_set_id,thresholdSessionId:e.scope.threshold_session_id,activationTranscriptB64u:A(e.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(e.activeCapabilityBinding))}}function da(e){if(!De(e.binding))throw Error(`wallet custody cache accepts wallet custody seed envelopes only`);return{bindingJson:Ne(e),nonceB64u:e.nonceB64u,ciphertextB64u:e.sealedCustodySecretB64u,aadHashB64u:e.aadHashB64u,ciphertextDigestB64u:e.ciphertextDigestB64u}}function fa(e){let{binding:t}=e.material,{activation:n}=e;return{kind:ji,scope:{lifecycle_id:n.lifecycleId,root_share_epoch:n.signingRootVersion,account_id:t.walletId,threshold_session_id:n.thresholdSessionId,signer_set_id:n.signerSetId,signing_worker_id:t.signingWorkerId,material_activation:bt(n.materialActivation)},applicationBinding:{wallet_id:t.walletId,near_ed25519_signing_key_id:t.nearEd25519SigningKeyId,signing_root_id:n.signingRootId,key_creation_signer_slot:t.signerSlot},participantIds:t.participantIds,registeredPublicKey:j(t.registeredPublicKeyB64u),signingWorkerVerifyingShare:j(t.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(t.stateEpoch),transcript:j(n.activationTranscriptB64u),activeCapabilityBinding:Array.from(j(n.activationCapabilityBindingB64u)),materialActivation:n.materialActivation}}async function pa(e){let t=fa({material:e.material,activation:e.activation});return(await ca.initializeBundled()).openCustodyCache({ownedFactorSecret:e.ownedFactorSecret,envelope:{bindingJson:e.envelope.bindingJson,nonce:j(e.envelope.nonceB64u),ciphertext:j(e.envelope.ciphertextB64u),aadHash:j(e.envelope.aadHashB64u),ciphertextDigest:j(e.envelope.ciphertextDigestB64u)},applicationBindingDigest:j(e.material.binding.applicationBindingDigestB64u),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:j(e.material.sealed.nonceB64u),ciphertext:j(e.material.sealed.ciphertextB64u)},metadata:t})}async function ma(e){let t=await e.loadCachedMaterial();return t.kind===`found`?{kind:`opened`,activeClient:await pa({material:t.material,activation:e.activation,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret})}:(e.ownedFactorSecret.fill(0),{kind:`rejoin_required`})}function ha(e){let t=String(e.rpId).trim(),n=String(e.nearAccountId).trim(),r=String(e.nearEd25519SigningKeyId).trim(),i=String(e.relayerKeyId).trim(),a=String(e.credentialIdB64u).trim(),o=D(e.participantIds),s=Math.floor(Number(e.signerSlot));if(!t||!n||!r||!i||!a||!o||!Number.isSafeInteger(s)||s<1)throw Error(`Passkey Ed25519 sealed restore metadata is incomplete`);return{rpId:t,nearAccountId:n,nearEd25519SigningKeyId:r,relayerKeyId:i,participantIds:[...o],runtimePolicyScope:e.runtimePolicyScope,signerSlot:s,routerAbNormalSigning:e.routerAbNormalSigning,credentialIdB64u:a,materialActivation:e.materialActivation}}async function ga(e){let t=String(e.session.thresholdSessionId||``).trim(),n=String(e.session.walletSessionAuth.walletSessionToken||``).trim(),r=String(e.session.signingLane.identity.signer.account.wallet.walletId||``).trim(),i=String(e.prfFirstB64u||``).trim(),a=Math.floor(Number(e.session.signingWalletSession.expiresAtMs)||0),o=Math.floor(Number(e.session.remainingUses)),s=e.session.signingLane.identity.auth;if(s.kind!==`passkey`)throw Error(`Ed25519 Yao sealed refresh persistence requires a passkey lane`);if(!t||!n||!r||!i||a<=0||!Number.isSafeInteger(o)||o<0)throw Error(`Ed25519 Yao sealed refresh persistence received an invalid session`);let c=e.session.signingLane.identity.signer;if(r!==String(c.account.wallet.walletId)||e.ed25519Restore.nearAccountId!==String(c.account.nearAccountId)||e.ed25519Restore.nearEd25519SigningKeyId!==String(c.nearEd25519SigningKeyId)||e.ed25519Restore.signerSlot!==c.signerSlot||e.ed25519Restore.rpId!==String(s.rpId)||e.ed25519Restore.credentialIdB64u!==s.credentialIdB64u||!f(e.ed25519Restore.materialActivation,e.materialActivation)||e.ed25519Restore.routerAbNormalSigning?.signingWorkerId!==e.session.routerAbNormalSigning.signingWorkerId)throw Error(`Ed25519 Yao sealed refresh metadata does not match the exact session`);let l={curve:`ed25519`,authMethod:`passkey`,walletId:r,relayerUrl:e.session.relayerUrl,walletSessionToken:n,ed25519Restore:e.ed25519Restore};await e.persistence.hydrateSigningSession({thresholdSessionId:t,prfFirstB64u:i,expiresAtMs:a,remainingUses:o,transport:l})}const _a=`[Registration] wallet timing summary`,va=new Map(Object.entries({yao_credential_digest:`yaoServerCredentialDigestMs`,yao_d1_admission_read:`yaoServerD1AdmissionReadMs`,yao_router_execution:`yaoServerRouterExecutionMs`,yao_result_reconstruction:`yaoServerResultReconstructionMs`,yao_router_prepare_pair:`yaoServerRouterPreparePairMs`,yao_router_role_execution:`yaoServerRouterRoleExecutionMs`,yao_router_signing_worker_delivery:`yaoServerRouterSigningWorkerDeliveryMs`,ecdsa_respond_d1_claim:`ecdsaRespondD1ClaimMs`,ecdsa_respond_reconcile:`ecdsaRespondReconcileMs`,ecdsa_respond_router:`ecdsaRespondRouterMs`,ecdsa_respond_d1_commit:`ecdsaRespondD1CommitMs`,ecdsa_respond_total:`ecdsaRespondTotalMs`,ecdsa_activate_d1_claim:`ecdsaActivateD1ClaimMs`,ecdsa_activate_reconcile:`ecdsaActivateReconcileMs`,ecdsa_activate_router:`ecdsaActivateRouterMs`,ecdsa_activate_bootstrap:`ecdsaActivateBootstrapMs`,ecdsa_activate_session_provision:`ecdsaActivateSessionProvisionMs`,ecdsa_activate_d1_commit:`ecdsaActivateD1CommitMs`,ecdsa_activate_policy_lookup:`ecdsaActivatePolicyLookupMs`,ecdsa_activate_jwt_mint:`ecdsaActivateJwtMintMs`,ecdsa_activate_total:`ecdsaActivateTotalMs`,ecdsa_rt_authorize:`ecdsaRtAuthorizeMs`,ecdsa_rt_admission:`ecdsaRtAdmissionMs`,ecdsa_rt_derivers:`ecdsaRtDeriversMs`,ecdsa_rt_deriver_a:`ecdsaRtDeriverAMs`,ecdsa_rt_deriver_b:`ecdsaRtDeriverBMs`,ecdsa_rt_completion:`ecdsaRtCompletionMs`,ecdsa_rt_total:`ecdsaRtTotalMs`,ecdsa_rt_act_session:`ecdsaRtActSessionMs`,ecdsa_rt_act_worker:`ecdsaRtActWorkerMs`,ecdsa_rt_act_total:`ecdsaRtActTotalMs`,ecdsa_a_parse:`ecdsaDeriverAParseMs`,ecdsa_a_preload:`ecdsaDeriverAPreloadMs`,ecdsa_a_execute:`ecdsaDeriverAExecuteMs`,ecdsa_a_total:`ecdsaDeriverATotalMs`,ecdsa_b_parse:`ecdsaDeriverBParseMs`,ecdsa_b_preload:`ecdsaDeriverBPreloadMs`,ecdsa_b_execute:`ecdsaDeriverBExecuteMs`,ecdsa_b_total:`ecdsaDeriverBTotalMs`,ecdsa_sw_parse:`ecdsaSigningWorkerParseMs`,ecdsa_sw_activate:`ecdsaSigningWorkerActivateMs`,ecdsa_sw_total:`ecdsaSigningWorkerTotalMs`,near_finalize_authority:`nearFinalizeAuthorityMs`,near_finalize_fingerprint:`nearFinalizeFingerprintMs`,near_finalize_side_effect:`nearFinalizeSideEffectMs`,near_finalize_cleanup:`nearFinalizeCleanupMs`,near_finalize_session_projection:`nearFinalizeSessionProjectionMs`,near_finalize_session_seal:`nearFinalizeSessionSealMs`,near_finalize_total:`nearFinalizeTotalMs`}));function ya(e,t,n){Tr()&&console.info(`[Registration] ECDSA Server-Timing header presence`,{leg:t,present:!!n?.trim()}),ba(e,n)}function ba(e,t){if(e)for(let[n,r]of xa(t))e.record(n,r)}function xa(e){if(!e)return[];let t=[];for(let n of e.split(`,`)){let e=n.split(`;`),r=String(e[0]||``).trim(),i=va.get(r);if(i)for(let n of e.slice(1)){let[e,r]=n.split(`=`);if(String(e||``).trim()!==`dur`)continue;let a=Number(String(r||``).trim());if(!Number.isFinite(a)||a<0)break;t.push([i,a]);break}}return t}function Sa(e){wa({ceremonyId:e.ceremonyId,stage:e.stage,durationMs:Math.max(0,performance.now()-e.startedAt),outcome:e.outcome})}function Ca(e,t,n){wa({ceremonyId:e,stage:`session_hydration.${t}`,durationMs:n,outcome:`success`})}function wa(e){if(Tr())try{console.info(`[Registration] NEAR timing`,JSON.stringify({event:`near_registration_timing`,ceremonyId:e.ceremonyId,stage:e.stage,durationMs:e.durationMs,outcome:e.outcome}))}catch{}}const Ta=[`passkeyAuthConfirmationMs`,`passkeyAuthPrfExtractionMs`,`passkeyAuthCredentialRedactionMs`,`passkeyAuthWorkerReadyMs`,`passkeyAuthWorkerRequestRoundTripMs`,`passkeyAuthWorkerResponseValidationMs`,`passkeyAuthRequestSetupMs`,`passkeyAuthPromptUserMs`,`passkeyAuthPromptElementDefineMs`,`passkeyAuthPromptMountMs`,`passkeyAuthPromptHostFirstUpdateMs`,`passkeyAuthPromptHostInteractiveMs`,`passkeyAuthPromptConfirmEventMs`,`passkeyAuthPromptDecisionWaitMs`,`passkeyAuthCredentialCreateStartMs`,`passkeyAuthCredentialCreateMs`,`passkeyAuthCredentialSerializeMs`,`passkeyAuthDuplicateRetryCount`,`passkeyAuthMainThreadTotalMs`],Ea=[`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`],Da=[`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`ecdsaRegistrationClientCreateMs`,`ecdsaRegistrationGatewayRespondMs`,`ecdsaRegistrationClientProofVerifyMs`,`ecdsaRegistrationGatewayActivateMs`,`ecdsaRegistrationClientActivationFinalizeMs`],Oa=[`ecdsaRegistrationPersistenceMs`,`ecdsaRegistrationSessionFinalizeMs`,`ecdsaRegistrationLocalRecordPersistenceMs`,`ecdsaRegistrationTargetCount`,`ecdsaRegistrationClientFinalizeMs`,`ecdsaRegistrationClientMaterialStoreMs`,`ecdsaRegistrationServerBootstrapMs`,`ecdsaRegistrationPasskeyBootstrapStoreMs`,`ecdsaRegistrationRoleLocalRecordPersistenceMs`,`ecdsaRegistrationWarmSessionHydrationMs`,`ecdsaRegistrationWarmSessionWorkerReadyMs`,`ecdsaRegistrationWarmSessionWorkerPutMs`,`ecdsaRegistrationWarmSessionSealedRecordPersistMs`,`ecdsaRegistrationWarmSessionSealResolveTransportMs`,`ecdsaRegistrationWarmSessionSealExistingRecordReadMs`,`ecdsaRegistrationWarmSessionSealPolicyReadMs`,`ecdsaRegistrationWarmSessionSealApplyServerSealMs`,`ecdsaRegistrationWarmSessionSealApplyRuntimeSetupMs`,`ecdsaRegistrationWarmSessionSealApplyClientSealMs`,`ecdsaRegistrationWarmSessionSealApplyServerRouteMs`,`ecdsaRegistrationWarmSessionSealApplyClientUnsealMs`,`ecdsaRegistrationWarmSessionSealApplyPolicyUpdateMs`,`ecdsaRegistrationWarmSessionSealRegisterMs`,`ecdsaRegistrationWarmSessionSealVerifyReadMs`,`ecdsaRegistrationEmailOtpSessionCommitMs`],ka=[...Da,...Oa],Aa=[`registrationWarmupMs`,`registrationWarmupWaitMs`,`registrationWarmupAuthenticatedWalletStateMs`,`registrationWarmupNoncePrefetchMs`,`registrationWarmupKeyMaterialReadMs`,`registrationWarmupUiConfirmPrewarmMs`,`registrationWarmupEmailOtpWorkerPrewarmMs`,`registrationWarmupEmailOtpYaoWasmInitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,...Ta,`emailOtpEnrollmentMaterialMs`,...Ea,`yaoBranchTotalMs`,`yaoAdmissionMs`,`yaoClientSessionCreateMs`,`yaoClientCompletionMs`,`yaoServerCredentialDigestMs`,`yaoServerD1AdmissionReadMs`,`yaoServerRouterExecutionMs`,`yaoServerResultReconstructionMs`,`yaoServerRouterPreparePairMs`,`yaoServerRouterRoleExecutionMs`,`yaoServerRouterSigningWorkerDeliveryMs`,`ecdsaRespondD1ClaimMs`,`ecdsaRespondReconcileMs`,`ecdsaRespondRouterMs`,`ecdsaRespondD1CommitMs`,`ecdsaRespondTotalMs`,`ecdsaActivateD1ClaimMs`,`ecdsaActivateReconcileMs`,`ecdsaActivateRouterMs`,`ecdsaActivateBootstrapMs`,`ecdsaActivateSessionProvisionMs`,`ecdsaActivateD1CommitMs`,`ecdsaActivatePolicyLookupMs`,`ecdsaActivateJwtMintMs`,`ecdsaActivateTotalMs`,`ecdsaRtAuthorizeMs`,`ecdsaRtAdmissionMs`,`ecdsaRtDeriversMs`,`ecdsaRtDeriverAMs`,`ecdsaRtDeriverBMs`,`ecdsaRtCompletionMs`,`ecdsaRtTotalMs`,`ecdsaRtActSessionMs`,`ecdsaRtActWorkerMs`,`ecdsaRtActTotalMs`,`ecdsaDeriverAParseMs`,`ecdsaDeriverAPreloadMs`,`ecdsaDeriverAExecuteMs`,`ecdsaDeriverATotalMs`,`ecdsaDeriverBParseMs`,`ecdsaDeriverBPreloadMs`,`ecdsaDeriverBExecuteMs`,`ecdsaDeriverBTotalMs`,`ecdsaSigningWorkerParseMs`,`ecdsaSigningWorkerActivateMs`,`ecdsaSigningWorkerTotalMs`,`nearFinalizeAuthorityMs`,`nearFinalizeFingerprintMs`,`nearFinalizeSideEffectMs`,`nearFinalizeCleanupMs`,`nearFinalizeSessionProjectionMs`,`nearFinalizeSessionSealMs`,`nearFinalizeTotalMs`,`walletRegisterStartMs`,...Da,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,...Oa];function q(e){throw Error(`Unexpected registration timing branch: ${String(e)}`)}function ja(e){switch(e.kind){case`near_ed25519`:return`near_ed25519`;case`evm_family_ecdsa`:return`evm_family_ecdsa`;default:return q(e)}}function Ma(e){return{kind:`signer_set`,branches:e.branches.map(ja)}}function Na(e,t){return e.branches.includes(t)}function Pa(e){return Math.max(0,Math.round(performance.now()-e))}function Fa(e){switch(e){case`registrationIntentLoadMs`:case`registrationIntentDigestMs`:case`registrationIntentConsumeMs`:case`registrationPreparationPersistMs`:case`registrationPreparationLoadMs`:case`registrationPreparationConsumeMs`:case`registrationPreparationScopeCheckMs`:case`registrationAuthorityVerifyMs`:case`registrationEcdsaPrepareMs`:case`registrationCeremonyPersistMs`:case`registerPrepareTotalMs`:case`registerStartTotalMs`:case`registrationEcdsaRespondMs`:case`registrationFinalizeReplayLoadMs`:case`registrationCeremonyLoadMs`:case`registrationEcdsaBootstrapVerifyMs`:case`sponsoredNearAccountCreateMs`:case`registrationKeygenMs`:case`registrationEmailOtpEnrollmentPlanMs`:case`relaySessionMintMs`:case`relayGoogleEmailOtpActivationPlanMs`:case`relayPersistenceMs`:case`registrationFinalizeReplayCacheMs`:case`registerFinalizeTotalMs`:return e;default:return null}}function Ia(e){if(!v(e)||e.kind!==`wallet_registration_route_diagnostics_v1`||e.route!==`wallets_register_start`&&e.route!==`wallets_register_ecdsa_derivation_respond`&&e.route!==`wallets_register_finalize`||!Array.isArray(e.entries))return null;let t=[];for(let n of e.entries){if(!v(n))continue;let e=Fa(n.name),r=Number(n.durationMs);!e||!Number.isFinite(r)||r<0||t.push({name:e,durationMs:r})}return{kind:`wallet_registration_route_diagnostics_v1`,route:e.route,entries:t}}function La(e){return{kind:e.kind,route:e.route,entries:e.entries.map(Ra)}}function Ra(e){return{name:e.name,durationMs:e.durationMs}}function za(e,t){let n={};for(let r of e)n[r]=t[r];return n}function Ba(e){let t={};for(let n of e)t[n]=0;return t}function Va(e){switch(e.authMethod){case`passkey`:return{kind:`passkey`,authProofMs:e.buckets.authProofMs,...za(Ta,e.buckets),emailOtpEnrollmentMaterialMs:0,emailOtpRecoveryCodeBackupMs:0};case`email_otp`:return{kind:`email_otp`,authProofMs:e.buckets.authProofMs,...Ba(Ta),emailOtpEnrollmentMaterialMs:e.buckets.emailOtpEnrollmentMaterialMs,emailOtpRecoveryCodeBackupMs:e.buckets.emailOtpRecoveryCodeBackupMs};default:return q(e.authMethod)}}function Ha(e){return Na(e.signerSet,`near_ed25519`)?{kind:`ed25519_yao_enabled`,...za(Ea,e.buckets)}:{kind:`ed25519_disabled`,...Ba(Ea)}}function Ua(e){return Na(e.signerSet,`evm_family_ecdsa`)?{kind:`ecdsa_enabled`,...za(ka,e.buckets)}:{kind:`ecdsa_disabled`,...Ba(ka)}}const Wa=[`registrationWarmupWaitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,`emailOtpEnrollmentMaterialMs`,`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`,`walletRegisterStartMs`,`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,`ecdsaRegistrationPersistenceMs`];function Ga(e){return e.startsWith(`registrationWarmup`)?`warmup`:e.startsWith(`passkeyAuth`)||e===`authProofMs`?`auth`:e.includes(`Yao`)||e.includes(`yao`)?`ed25519_yao`:e.includes(`ecdsa`)?`ecdsa`:`registration`}function Ka(e){return{name:e.name,kind:e.kind,startOffsetMs:e.startOffsetMs,endOffsetMs:e.endOffsetMs}}function qa(e,t){let n=t.map(t=>({start:Math.max(0,Math.min(e,t.startOffsetMs)),end:Math.max(0,Math.min(e,t.endOffsetMs))})).filter(e=>e.end>e.start).sort((e,t)=>e.start-t.start||e.end-t.end),r=0,i=0,a=0;for(let e of n){if(a<=i){i=e.start,a=e.end;continue}if(e.start>a){r+=a-i,i=e.start,a=e.end;continue}a=Math.max(a,e.end)}return a>i?r+a-i:r}function Ja(e){let t=Wa.map(t=>({name:t,durationMs:e.buckets[t]})),n=t.reduce((e,t)=>e+Math.max(0,t.durationMs),0),r=t.filter(e=>e.durationMs>0).sort((e,t)=>t.durationMs===e.durationMs?e.name.localeCompare(t.name):t.durationMs-e.durationMs).slice(0,5),i=qa(e.totalElapsedMs,e.spans);return{kind:`registration_critical_path_summary_v2`,totalElapsedMs:e.totalElapsedMs,measuredWorkMs:n,spanUnionMs:i,spanCoverageRatio:e.totalElapsedMs>0?Math.min(1,i/e.totalElapsedMs):1,unattributedElapsedMs:Math.max(0,e.totalElapsedMs-i),overlappedOrBackgroundMs:Math.max(0,n-e.totalElapsedMs),topBuckets:r,spans:e.spans.map(Ka)}}function Ya(e){let t=za(Aa,e.buckets);return{...t,auth:Va({authMethod:e.authMethod,buckets:t}),ed25519:Ha({signerSet:e.signerSet,buckets:t}),ecdsa:Ua({signerSet:e.signerSet,buckets:t}),emailOtpYaoPrewarm:{...e.emailOtpYaoPrewarm}}}var Xa=class{startedAt;nearStageStartedAt;buckets;relayDiagnostics;spans;emailOtpYaoPrewarm;constructor(e){this.startedAt=e,this.nearStageStartedAt=e,this.buckets=Ba(Aa),this.relayDiagnostics=[],this.spans=[],this.emailOtpYaoPrewarm=Za()}markNearStage(e,t){let n=performance.now();wa({ceremonyId:e,stage:t,durationMs:n-this.nearStageStartedAt,outcome:`success`}),this.nearStageStartedAt=n}async measure(e,t){let n=performance.now();try{return await t()}finally{this.buckets[e]=Pa(n),this.recordSpan(e,n,performance.now())}}record(e,t){let n=Math.max(0,Math.round(t));this.buckets[e]+=n}snapshot(){return za(Aa,this.buckets)}spansSnapshot(){return this.spans.map(Ka)}recordSpan(e,t,n){this.spans.push({name:e,kind:Ga(e),startOffsetMs:Math.max(0,Math.round(t-this.startedAt)),endOffsetMs:Math.max(0,Math.round(n-this.startedAt))})}captureRouteDiagnostics(e){let t=Ia(e);t&&this.relayDiagnostics.push(t)}captureWarmupDiagnostics(e){this.buckets.registrationWarmupAuthenticatedWalletStateMs=e.authenticatedWalletStateMs,this.buckets.registrationWarmupNoncePrefetchMs=e.noncePrefetchMs,this.buckets.registrationWarmupKeyMaterialReadMs=e.keyMaterialReadMs,this.buckets.registrationWarmupUiConfirmPrewarmMs=e.uiConfirmPrewarmMs,this.buckets.registrationWarmupEmailOtpWorkerPrewarmMs=e.emailOtpWorkerPrewarmMs,this.buckets.registrationWarmupEmailOtpYaoWasmInitMs=e.emailOtpYaoWasmInitMs,this.emailOtpYaoPrewarm={...e.emailOtpYaoPrewarm}}emailOtpYaoPrewarmSnapshot(){return{...this.emailOtpYaoPrewarm}}capturePasskeyAuthDiagnostics(e){this.buckets.passkeyAuthConfirmationMs=e.requestConfirmationMs,this.buckets.passkeyAuthPrfExtractionMs=e.prfExtractionMs,this.buckets.passkeyAuthCredentialRedactionMs=e.credentialRedactionMs,this.buckets.passkeyAuthWorkerReadyMs=e.confirmationWorkerReadyMs,this.buckets.passkeyAuthWorkerRequestRoundTripMs=e.confirmationWorkerRequestRoundTripMs,this.buckets.passkeyAuthWorkerResponseValidationMs=e.confirmationWorkerResponseValidationMs,this.buckets.passkeyAuthRequestSetupMs=e.confirmationRequestSetupMs,this.buckets.passkeyAuthPromptUserMs=e.confirmationPromptUserMs,this.buckets.passkeyAuthPromptElementDefineMs=e.confirmationPromptElementDefineMs,this.buckets.passkeyAuthPromptMountMs=e.confirmationPromptMountMs,this.buckets.passkeyAuthPromptHostFirstUpdateMs=e.confirmationPromptHostFirstUpdateMs,this.buckets.passkeyAuthPromptHostInteractiveMs=e.confirmationPromptHostInteractiveMs,this.buckets.passkeyAuthPromptConfirmEventMs=e.confirmationPromptConfirmEventMs,this.buckets.passkeyAuthPromptDecisionWaitMs=e.confirmationPromptDecisionWaitMs,this.buckets.passkeyAuthCredentialCreateStartMs=e.confirmationCredentialCreateStartMs,this.buckets.passkeyAuthCredentialCreateMs=e.confirmationCredentialCreateMs,this.buckets.passkeyAuthCredentialSerializeMs=e.confirmationCredentialSerializeMs,this.buckets.passkeyAuthDuplicateRetryCount=e.confirmationDuplicateRetryCount,this.buckets.passkeyAuthMainThreadTotalMs=e.confirmationMainThreadTotalMs}routeDiagnosticsSnapshot(){return this.relayDiagnostics.map(La)}totalMs(){return Pa(this.startedAt)}};function Za(){return{kind:`not_requested`,elapsedMs:0,workerPrewarmMs:0,yaoWasmInitMs:0}}function Qa(e){let t=e.recorder.totalMs(),n=e.recorder.snapshot();return{kind:`registration_timing_summary_v2`,status:`succeeded`,authMethod:e.authMethod,signerSet:e.signerSet,totalMs:t,criticalPath:Ja({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Ya({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function $a(e){let t=e.recorder.totalMs(),n=e.recorder.snapshot();return{kind:`registration_timing_summary_v2`,status:`failed`,authMethod:e.authMethod,signerSet:e.signerSet,totalMs:t,criticalPath:Ja({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),errorCode:e.errorCode,relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Ya({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function eo(e){Tr()&&(console.info(_a,e),console.info(`${_a} ${JSON.stringify(e)}`))}function to(e){let t={event:`seams_registration_timing_span_v1`,span:e.span,operation:`registration`,outcome:e.outcome,duration_ms:Math.max(0,Math.round(e.durationMs)),trace_id:e.traceContext.value};try{e.callback?.(t)}catch{}}function J(e){return{kind:`unavailable`,reason:e}}function no(e){let t=e.selected;if(t.kind!==`resolved`)switch(t.kind){case`missing_selection`:return J(`selected_authority_missing`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return J(`selected_authority_invalid`);default:return t}return t.selection.walletId!==e.walletId||t.authMethod.walletId!==e.walletId||t.authority.walletId!==e.walletId||t.selection.walletAuthMethodId!==t.authMethod.walletAuthMethodId||t.authMethod.walletAuthorityId!==t.authority.authorityId?J(`authority_identity_mismatch`):t.selection.lockState===`unlocked`?t.authMethod.status===`active`?t.authority.state===`active`?t.authMethod.kind===e.authMethod?{authority:t.authority,authMethod:t.authMethod}:J(`auth_method_mismatch`):J(`authority_inactive`):J(`auth_method_inactive`):J(`wallet_locked`)}function ro(e){let t=e.authority.signerActivations;return e.keyFamily===`ed25519`?t.ed25519?.materialActivation??null:t.ecdsa?.materialActivation??null}function io(e){return e.session.capabilitySubjects.filter(t=>t.kind===`sign`&&t.keyFamily===e.keyFamily&&f(t.materialActivation,e.materialActivation)).length===1}function ao(e){return nr(e)?{keyFamily:`ecdsa_secp256k1`,materialActivation:e.signer.materialActivation}:{keyFamily:`ed25519`}}async function oo(e){let{input:t,ports:n}=e,r;try{r=await n.resolveSelectedWalletAuthority(String(t.walletId))}catch{return J(`persistence_unavailable`)}let i=no({selected:r,walletId:t.walletId,authMethod:t.authMethod});if(`kind`in i)return i;let a=ro({authority:i.authority,keyFamily:t.requiredSigningSubject.keyFamily});if(!a)return J(`signer_material_missing`);if(t.requiredSigningSubject.keyFamily===`ecdsa_secp256k1`&&!f(t.requiredSigningSubject.materialActivation,a))return J(`signer_material_mismatch`);let o;try{o=await n.readExactWithOperationCredential({walletId:t.walletId,authorityId:i.authority.authorityId,authMethodId:i.authMethod.walletAuthMethodId})}catch{return J(`persistence_unavailable`)}switch(o.kind){case`found`:break;case`missing`:return J(`wallet_session_missing`);case`upgrade_required`:return J(`wallet_session_upgrade_required`)}let s=o.record,c=o.operationCredential;return s.walletId!==t.walletId||s.authorityId!==i.authority.authorityId||s.authMethodId!==i.authMethod.walletAuthMethodId||s.authorityDigestB64u!==i.authority.authorityDigestB64u||s.authorityRevocationEpoch!==i.authority.revocationEpoch||s.quotaId!==t.quotaId||c.walletSessionId!==t.walletSessionId||c.token.trim().length===0?J(`wallet_session_identity_mismatch`):t.expiry.kind===`unexpired`&&s.expiresAtMs<=t.expiry.nowMs?J(`wallet_session_expired`):t.expiry.kind===`expired`&&s.expiresAtMs>t.expiry.nowMs?J(`wallet_session_not_expired`):io({session:s,keyFamily:t.requiredSigningSubject.keyFamily,materialActivation:a})?{kind:`resolved`,resolved:{authMethod:i.authMethod,session:s,operationCredential:c,walletSessionId:c.walletSessionId,materialActivation:a}}:J(`wallet_session_capability_mismatch`)}function so(e){return String(e||``).trim()}function co(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:0}function lo(e){let t=Math.floor(Number(e));return Number.isSafeInteger(t)&&t>=0?t:null}function uo(e){return e.expiresAtMs<=e.nowMs?{kind:`expired`}:e.remainingUses<=0?{kind:`exhausted`}:null}function fo(e,t){let n=so(e);return n?{kind:`wallet_session_opaque`,walletSessionToken:n,credential:{kind:`wallet_session_opaque`,walletSessionToken:n,home:t}}:null}function po(e){let n=fo(so(e.walletSessionToken),e.home);if(!n)return{ok:!1,reason:`missing_wallet_session_token`};let r=so(e.walletId),i=so(e.nearAccountId),a=so(e.nearEd25519SigningKeyId);if(!r||!i||!a)return{ok:!1,reason:`wallet_binding_mismatch`};let o=pe(e.walletSessionId),s=me(e.authorizationId),c=de(e.quotaId),l=t(e.thresholdSessionId);if(!o.ok||!s.ok)return{ok:!1,reason:`missing_session_identity`};if(!c.ok)return{ok:!1,reason:`missing_quota_id`};if(!l.ok)return{ok:!1,reason:`missing_threshold_session_id`};let u=lo(e.nowMs),d=co(e.remainingUses),f=co(e.expiresAtMs);if(u==null||!Number.isSafeInteger(e.remainingUses)||!Number.isSafeInteger(e.expiresAtMs)||e.remainingUses<0||e.expiresAtMs<=0)return{ok:!1,reason:`invalid_budget`};let p=uo({remainingUses:Math.max(0,Math.floor(e.remainingUses)),expiresAtMs:Math.max(0,Math.floor(e.expiresAtMs)),nowMs:u});if(p?.kind===`expired`)return{ok:!1,reason:`expired`};if(p?.kind===`exhausted`)return{ok:!1,reason:`exhausted`};let m;try{m=F(e.runtimePolicyScope)}catch{return{ok:!1,reason:`missing_signing_root`}}return m.signingRootId!==so(e.signingRootId)||m.signingRootVersion!==so(e.signingRootVersion)?{ok:!1,reason:`signing_root_mismatch`}:{ok:!0,value:{curve:`ed25519`,auth:n,walletSessionId:o.value,authorizationId:s.value,quotaId:c.value,thresholdSessionId:l.value,remainingUses:d,expiresAtMs:f,runtimePolicyScope:e.runtimePolicyScope,signingRootId:m.signingRootId,signingRootVersion:so(m.signingRootVersion),routerAbNormalSigning:e.routerAbNormalSigning}}}const mo=Ie.signingSessionSeals,ho=Ie.signingSessionRestoreLeases,go=[Le.ed25519ThresholdSessionId,Le.ecdsaThresholdSessionId];function _o(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||Error(`IndexedDB request failed`))})}function vo(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error||Error(`IndexedDB transaction aborted`)),e.onerror=()=>n(e.error||Error(`IndexedDB transaction failed`))})}async function yo(){if(Re.isDisabled())return null;try{return ze(await Re.getDB())}catch{return null}}function bo(e,t){return new Promise((n,r)=>{let i=[],a=e.openCursor(t);a.onsuccess=()=>{let e=a.result;if(!e){n(i);return}i.push({primaryKey:e.primaryKey,value:e.value}),e.continue()},a.onerror=()=>r(a.error||Error(`IndexedDB cursor failed`))})}function xo(e){return new Promise((t,n)=>{let r=[],i=e.openCursor();i.onsuccess=()=>{let e=i.result;if(!e){t(r);return}r.push({primaryKey:e.primaryKey,value:e.value}),e.continue()},i.onerror=()=>n(i.error||Error(`IndexedDB cursor failed`))})}async function So(e,t){let n=new Map;for(let r of go)try{let i=await bo(e.index(r),t);for(let e of i)n.set(String(e.primaryKey),e)}catch{}return n.size?[...n.values()]:await xo(e).catch(()=>[])}const Y=new class{async collectAllRawSealedRecordEntries(){let e=await yo();if(!e)return[];let t=e.transaction(mo,`readonly`),n=await xo(t.objectStore(mo));return await vo(t).catch(()=>void 0),n}async collectRawSealedRecordEntriesByThresholdSessionId(e){let t=await yo();if(!t)return[];let n=t.transaction(mo,`readonly`),r=await So(n.objectStore(mo),e);return await vo(n).catch(()=>void 0),r}async replaceSealedRecord(e){let t=await yo();if(!t)return;let n=t.transaction(mo,`readwrite`),r=n.objectStore(mo);for(let t of e.staleStoreKeys)r.delete(t);r.put(e.row),await vo(n)}async replaceSealedRecordAndDeleteRestoreLease(e){let t=await yo();if(!t)return!1;let n=t.transaction([mo,ho],`readwrite`),r=n.objectStore(mo);for(let t of e.staleStoreKeys)r.delete(t);return r.put(e.row),n.objectStore(ho).delete(e.restoreLeaseKey),await vo(n),!0}async deleteSealedRecords(e){if(!e.length)return;let t=await yo();if(!t)return;let n=t.transaction(mo,`readwrite`),r=n.objectStore(mo);for(let t of e)r.delete(t);await vo(n).catch(()=>void 0)}async deleteRestoreLease(e){let t=await yo();if(!t)return;let n=t.transaction(ho,`readwrite`);n.objectStore(ho).delete(e),await vo(n).catch(()=>void 0)}async deleteRestoreLeaseIf(e){let t=await yo();if(!t)return;let n=t.transaction(ho,`readwrite`),r=n.objectStore(ho),i=await _o(r.get(e.leaseKey));e.shouldDelete(i)&&r.delete(e.leaseKey),await vo(n).catch(()=>void 0)}async withRestoreLeaseTransaction(e,t){let n=await yo();if(!n)return null;try{let r=n.transaction([mo,ho],`readwrite`),i=r.objectStore(mo),a=r.objectStore(ho),o=await So(i,e),s=!1,c=await t({entries:o,getRawRestoreLease:async e=>await _o(a.get(e)),putRestoreLease:e=>a.put(e),abort:()=>{s=!0}});return s?(r.abort(),c):(await vo(r),c)}catch{return null}}};function Co(e){throw Error(`Unhandled durable sealed-session identity: ${String(e)}`)}function wo(e){return{kind:`delete_durable_sealed_session`,durableRecord:e.durableRecord,deleteReason:e.deleteReason,preserveResolvedIdentity:e.preserveResolvedIdentity}}function To(e){switch(e.curve){case`ed25519`:return{authMethod:e.authMethod,curve:`ed25519`};case`ecdsa`:return{authMethod:e.authMethod,curve:`ecdsa`,chainTarget:e.chainTarget};default:return Co(e)}}function Eo(e){return[`ecdsa-material-v2`,e.walletId,e.authMethod,Ue(e.chainTarget),e.materialActivation.activationId,e.materialActivation.capability,e.materialActivation.materialOwner,e.materialActivation.keyBinding,e.materialActivation.lifecycleBinding,e.materialActivation.signingWorker].map(e=>encodeURIComponent(String(e))).join(`:`)}const Do=`ecdsa_inactive_sealed_material_v1`,Oo=`sealed_record`;function ko(e){let t=_(e)??{},n=m(t.ed25519),r=m(t.ecdsa);return{...n?{ed25519:n}:{},...r?{ecdsa:r}:{}}}function Ao(e){return ko((_(e)??{}).thresholdSessionIds)}function jo(e){let t=_(e);if(!t)return!1;let n=[`signing`,`Grant`,`Id`].join(``),r=[`signing`,`grant`,`id`].join(`_`);return Object.prototype.hasOwnProperty.call(t,n)||Object.prototype.hasOwnProperty.call(t,r)}function Mo(e){let t=String(e||``).trim();return t===`ed25519`||t===`ecdsa`?t:void 0}function No(e){let t=_(e);return t&&Oo in t?t[Oo]:e}function Po(e){let t=e.ecdsaRestore?.chainTarget,n=m(e.thresholdSessionIds.ecdsa),r=m(e.thresholdSessionIds.ed25519);return{store_key:e.storeKey,wallet_id:e.walletId,auth_method:e.authMethod,curve:e.curve,signing_root_id:m(`signingRootId`in e?e.signingRootId:void 0),signing_root_version:m(`signingRootVersion`in e?e.signingRootVersion:void 0),ed25519_threshold_session_id:r,ecdsa_threshold_session_id:n,threshold_session_id:n||r,key_handle:m(e.ecdsaRestore?.keyHandle),chain_target_key:t?Ue(t):void 0,expires_at_ms:e.expiresAtMs,updated_at:e.updatedAtMs,[Oo]:e}}function Fo(e){return{store_key:e.storeKey,wallet_id:e.walletId,auth_method:e.authMethod,curve:e.curve,key_handle:e.ecdsaRestore.keyHandle,chain_target_key:Ue(e.ecdsaRestore.chainTarget),updated_at:e.updatedAtMs,[Oo]:e}}function Io(e){return Po(e)}function Lo(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:void 0}function Ro(e){return e.curve?e.curve:e.thresholdSessionIds.ecdsa?`ecdsa`:e.thresholdSessionIds.ed25519?`ed25519`:null}function zo(e){try{return It(e)}catch{return null}}function Bo(e){switch(e){case`login`:case`registration`:case`manual-bootstrap`:case`email_otp`:return e;default:return null}}function Vo(e){try{let t=F(I(e)),n=m(t.signingRootId),r=m(t.signingRootVersion);return n&&r?{signingRootId:n,signingRootVersion:r}:null}catch{return null}}function Ho(e){let t=_(e);if(!t)return;let n=null;try{n=Be(_(t.chainTarget)??{})}catch{n=null}let r=Bo(t.source),i=Ot(t.authority),a=m(t.rpId),o=t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?t.runtimePolicyScope:void 0,s=Vo(o),c=m(t.signingRootId),l=m(t.signingRootVersion);if(c&&s?.signingRootId&&c!==s.signingRootId||l&&s?.signingRootVersion&&l!==s.signingRootVersion)return;let u=c||s?.signingRootId||``,d=l||s?.signingRootVersion||``,f=m(t.credentialIdB64u),p=null;try{p=qt(t.roleLocalMaterialRef)}catch{p=null}let h=Dt(t.emailOtpAuthority),g=t.provider===`google`||t.provider===`email`?t.provider:null,v=m(t.providerSubjectId),y=m(t.emailHashHex),b=m(t.keyHandle),x=m(t.ecdsaThresholdKeyId),S=Lo(t.ethereumAddress),C=m(t.relayerKeyId),w=m(t.thresholdEcdsaPublicKeyB64u),T=zo(t.routerAbEcdsaDerivationNormalSigning),E=null;try{E=xt(t.publicCapability)}catch{E=null}let D=Xo(t.participantIds);if(!n||!r||!u||!d||!b||!S||!C||!T||!E||!D.length)return;let O=f&&a&&p&&i&&r!==`email_otp`?{source:r,authority:i,roleLocalMaterialRef:p,rpId:a,credentialIdB64u:f}:v&&g&&y&&p&&i&&h&&r===`email_otp`?{source:r,provider:g,providerSubjectId:v,emailHashHex:y,authority:i,emailOtpAuthority:h,roleLocalMaterialRef:p}:null;if(!O)return;let k=m(t.clientVerifyingShareB64u);return{chainTarget:n,signingRootId:u,signingRootVersion:d,...O,keyHandle:b,...x?{ecdsaThresholdKeyId:x}:{},ethereumAddress:S,relayerKeyId:C,...k?{clientVerifyingShareB64u:k}:{},...w?{thresholdEcdsaPublicKeyB64u:w}:{},participantIds:D,routerAbEcdsaDerivationNormalSigning:T,publicCapability:E,...o?{runtimePolicyScope:o}:{}}}function Uo(e){let t=_(e);if(!t)return;let n=m(t.nearAccountId),i=m(t.nearEd25519SigningKeyId),a=m(t.rpId),o=m(t.credentialIdB64u),s=m(t.providerSubjectId),c=t.provider===`google`||t.provider===`email`?t.provider:null,l=m(t.emailHashHex),u=m(t.authSubjectId),f=m(t.relayerKeyId),p=Xo(t.participantIds),h=r(t.signerSlot),g=oe(t.routerAbNormalSigning),v=d(t.materialActivation),y=o&&!s&&v.ok?{credentialIdB64u:o,materialActivation:v.value}:c&&s&&l&&!o&&v.ok?{provider:c,providerSubjectId:s,emailHashHex:l,materialActivation:v.value}:null;if(!(!n||!i||!a||!f||!p.length||h==null||h<=0||!g||!y||u))return{nearAccountId:n,nearEd25519SigningKeyId:i,rpId:a,...y,relayerKeyId:f,participantIds:p,...t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?{runtimePolicyScope:t.runtimePolicyScope}:{},signerSlot:h,routerAbNormalSigning:g}}function Wo(e){let t=e.restore.materialActivation;return[`ed25519-material-v2`,e.walletId,e.authMethod,`ed25519`,t.activationId,t.capability,t.materialOwner,t.keyBinding,t.lifecycleBinding,t.signingWorker].map(Ko).join(`:`)}function Go(e){let t=e.restore.roleLocalMaterialRef;return[`inactive-material`,e.walletId,e.authMethod,`ecdsa`,Ue(e.restore.chainTarget),t.materialActivation.activationId].map(Ko).join(`:`)}function Ko(e){return encodeURIComponent(String(e||``).trim())}function qo(e){let t=String(e||``).trim();return t===`passkey`||t===`email_otp`?t:void 0}function Jo(e){let t=_(e);return!!(m(t?.subjectId)||m(t?.userId))}function Yo(e){let t=_(e);return!!(m(t?.signingRootId)||m(t?.signingRootVersion))}function Xo(e){return Array.isArray(e)?e.map(e=>Math.floor(Number(e))).filter(e=>Number.isFinite(e)&&e>0):[]}function Zo(e){return{authMethod:m(e?.authMethod)||null,curve:m(e?.curve)||null,storeKey:m(e?.storeKey)||null,walletId:m(e?.walletId)||null,thresholdSessionIds:Ao(e),hasEcdsaRestore:!!_(e?.ecdsaRestore),hasEd25519Restore:!!_(e?.ed25519Restore),issuedAtMs:r(e?.issuedAtMs),expiresAtMs:r(e?.expiresAtMs),remainingUses:r(e?.remainingUses),updatedAtMs:r(e?.updatedAtMs)}}function X(e,t,n){return{kind:e,storeKey:m(t?.storeKey)||null,walletId:m(t?.walletId)||null,reason:n,safeSummary:Zo(t)}}function Qo(e){return{v:2,alg:le,storageScope:ce,authMethod:e,secretKind:ue}}function $o(e){e=No(e);let t=_(e);if(!t)return X(`malformed`,null,`invalid_payload`);if(jo(t))return X(`delete_required`,t,`invalid_identity`);if(t.recordKind===`ecdsa_reauth_anchor_v1`)return X(`delete_required`,t,`invalid_header`);if(t.recordKind===Do){let e=ns(t);return e?{kind:`ecdsa_inactive_material`,record:e}:X(`malformed`,t,`invalid_identity`)}if(Number(t.v)===1)return X(`delete_required`,t,`invalid_header`);if(Number(t.v)!==2||String(t.alg||``).trim()!==`shamir3pass-v2`||String(t.storageScope||``).trim()!==`iframe_origin_indexeddb`||String(t.secretKind||``).trim()!==`signing_session_secret32`)return X(`malformed`,t,`invalid_header`);let n=String(t.authMethod||``).trim(),i=Ao(t),a=m(t.sealedSecretB64u),o=Mo(t.curve),s=m(t.subjectId),c=m(t.userId),l=m(t.walletId),u=m(t.signingRootId),d=m(t.signingRootVersion),f=d||(u?`default`:null),p=m(t.relayerUrl),h=m(t.keyVersion),g=m(t.groupId),v=r(t.issuedAtMs),y=r(t.expiresAtMs),b=r(t.remainingUses),x=r(t.updatedAtMs);if(!a||!h||g!==`rfc2409-group2`||n!==`passkey`&&n!==`email_otp`||!i.ed25519&&!i.ecdsa||!l)return X(`malformed`,t,`invalid_identity`);let S=Ro({curve:o,thresholdSessionIds:i});if(!S||v==null||v<=0||y==null||y<=0||b==null||b<0||x==null||x<=0)return X(`malformed`,t,`invalid_identity`);let C=_(t.ecdsaRestore),w=_(t.ed25519Restore),T=Ho(t.ecdsaRestore),E=Uo(t.ed25519Restore);if(S===`ecdsa`){if(!i.ecdsa)return X(`malformed`,t,`invalid_identity`);if(s||c||u||d)return X(`delete_required`,t,`invalid_identity`);if(!C||!p)return X(`rebuild_required`,t,`missing_restore_metadata`);if(!Xo(C.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!T)return X(`rebuild_required`,t,`missing_restore_metadata`);let e=Eo({walletId:l,authMethod:n,chainTarget:T.chainTarget,materialActivation:T.roleLocalMaterialRef.materialActivation}),r=m(t.storeKey);return r&&r!==e?X(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...Qo(n),storeKey:e,thresholdSessionIds:{...i.ed25519?{ed25519:i.ed25519}:{},ecdsa:i.ecdsa},sealedSecretB64u:a,curve:`ecdsa`,walletId:l,relayerUrl:p,keyVersion:h,groupId:ae,ecdsaRestore:T,...E?{ed25519Restore:E}:{},issuedAtMs:v,expiresAtMs:y,remainingUses:b,updatedAtMs:x}}}if(!i.ed25519)return X(`malformed`,t,`invalid_identity`);if(s||c)return X(`delete_required`,t,`invalid_identity`);if(!w||!p)return X(`rebuild_required`,t,`missing_restore_metadata`);if(!Xo(w.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!E)return X(`rebuild_required`,t,`missing_restore_metadata`);let D=Wo({walletId:l,authMethod:n,restore:E}),O=m(t.storeKey);return O&&O!==D?X(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...Qo(n),storeKey:D,thresholdSessionIds:{ed25519:i.ed25519,...i.ecdsa?{ecdsa:i.ecdsa}:{}},sealedSecretB64u:a,curve:`ed25519`,walletId:l,...u?{signingRootId:u}:{},...f?{signingRootVersion:f}:{},relayerUrl:p,keyVersion:h,groupId:ae,...T?{ecdsaRestore:T}:{},ed25519Restore:E,issuedAtMs:v,expiresAtMs:y,remainingUses:b,updatedAtMs:x}}}function es(e){let t=$o(No(e));return t.kind===`current`?t.record:null}function ts(e){let t=_(e);if(!t||t.clientVerifyingShareB64u!=null)return null;let n,r,i,a;try{n=Be(t.chainTarget&&typeof t.chainTarget==`object`?t.chainTarget:{}),r=I(t.runtimePolicyScope);let e=It(t.routerAbEcdsaDerivationNormalSigning);if(!e)return null;i=e,a=xt(t.publicCapability)}catch{return null}let o=m(t.signingRootId),s=m(t.signingRootVersion),c=null;try{c=qt(t.roleLocalMaterialRef)}catch{c=null}let l=Ot(t.authority),u=Dt(t.emailOtpAuthority),d=m(t.keyHandle),f=m(t.ecdsaThresholdKeyId),p=m(t.ethereumAddress),h=m(t.relayerKeyId),g=m(t.thresholdEcdsaPublicKeyB64u),v=Xo(t.participantIds);if(!o||!s||!d||!f||!p||!h||!g||!v.length)return null;let y={chainTarget:n,signingRootId:o,signingRootVersion:s,keyHandle:d,ecdsaThresholdKeyId:f,ethereumAddress:p,relayerKeyId:h,thresholdEcdsaPublicKeyB64u:g,participantIds:v,runtimePolicyScope:r,routerAbEcdsaDerivationNormalSigning:i,publicCapability:a};switch(t.source){case`email_otp`:{let e=t.provider===`google`||t.provider===`email`?t.provider:null,n=m(t.providerSubjectId),r=m(t.emailHashHex);return!e||!n||!r||!c||!l||!u||t.rpId!=null||t.credentialIdB64u!=null?null:{...y,source:`email_otp`,provider:e,providerSubjectId:n,emailHashHex:r,authority:l,emailOtpAuthority:u,roleLocalMaterialRef:c}}case`login`:case`registration`:case`manual-bootstrap`:{let e=m(t.rpId),n=m(t.credentialIdB64u);return!e||!n||!c||!l||t.providerSubjectId!=null||t.emailHashHex!=null?null:{...y,source:t.source,authority:l,roleLocalMaterialRef:c,rpId:e,credentialIdB64u:n}}default:return null}}function ns(e){let t=_(No(e));if(!t||t.recordKind!==Do||jo(t)||t.thresholdSessionIds!=null||t.ed25519Restore!=null||t.curve!==`ecdsa`)return null;let n=qo(t.authMethod),i=m(t.walletId),a=m(t.relayerUrl),o=ts(t.ecdsaRestore),s=m(t.sealedSecretB64u),c=m(t.keyVersion),l=m(t.groupId),u=r(t.updatedAtMs),d=t.authorizationRetirementReason;if(!n||!i||!a||!o||t.alg!==`shamir3pass-v2`||t.storageScope!==`iframe_origin_indexeddb`||t.secretKind!==`signing_session_secret32`||!s||!c||l!==`rfc2409-group2`||t.issuedAtMs!=null||t.expiresAtMs!=null||t.remainingUses!=null||u==null||u<=0||d!==`expired`&&d!==`exhausted`)return null;let f=Go({walletId:i,authMethod:n,restore:o});return m(t.storeKey)===f?rs({storeKey:f,walletId:i,relayerUrl:a,sealedSecretB64u:s,keyVersion:c,updatedAtMs:u,authorizationRetirementReason:d,authMethod:n,ecdsaRestore:o}):null}function rs(e){let{authMethod:t,ecdsaRestore:n}=e,r={recordKind:Do,storeKey:e.storeKey,curve:`ecdsa`,walletId:e.walletId,relayerUrl:e.relayerUrl,alg:le,storageScope:ce,secretKind:ue,sealedSecretB64u:e.sealedSecretB64u,keyVersion:e.keyVersion,groupId:ae,updatedAtMs:e.updatedAtMs,authorizationRetirementReason:e.authorizationRetirementReason};return t===`email_otp`&&n.source===`email_otp`||t===`passkey`&&n.source!==`email_otp`?{...r,authMethod:t,ecdsaRestore:n}:null}function is(e){if(e.classification.kind===`ecdsa_inactive_material`||e.classification.kind===`rebuild_required`)return;let t=e.classification.kind===`malformed`?`malformed`:`rejected`,n={operation:e.operation,outcome:t,classificationKind:e.classification.kind,...e.classification};console.warn(`[SigningSessionSealedStore] rejected sealed record`,n)}function as(e){let t=String(e.thresholdSessionId||``).trim(),n=Mo(e.curve),i=e.authMethod===`passkey`||e.authMethod===`email_otp`?e.authMethod:void 0;if(!n||!i)return null;let a=os({thresholdSessionId:t,curve:n,thresholdSessionIds:e.thresholdSessionIds}),o=m(e.walletId),s=m(e.sealedSecretB64u),c=r(e.expiresAtMs),l=r(e.remainingUses),u=r(e.issuedAtMs),d=r(e.updatedAtMs),f=m(e.keyVersion);if(!t||!s||!f||e.groupId!==`rfc2409-group2`||!a.ed25519&&!a.ecdsa||u==null||u<=0||c==null||c<=0||l==null||l<0||d==null||d<=0)return null;let p=Ho(e.ecdsaRestore),h=Uo(e.ed25519Restore);if(Jo(e)||n===`ecdsa`&&(!p?.chainTarget||!o||Yo(e)))return null;let g,_;e.curve===`ed25519`&&(g=m(e.signingRootId),_=m(e.signingRootVersion));let v=$o({...Qo(i),thresholdSessionIds:a,sealedSecretB64u:s,curve:n,...o?{walletId:o}:{},...g?{signingRootId:g}:{},..._?{signingRootVersion:_}:{},...m(e.relayerUrl)?{relayerUrl:m(e.relayerUrl)}:{},keyVersion:f,groupId:ae,...p?{ecdsaRestore:p}:{},...h?{ed25519Restore:h}:{},issuedAtMs:u,expiresAtMs:c,remainingUses:l,updatedAtMs:d});return v.kind===`current`?v.record:(is({operation:`build current sealed session record`,classification:v}),null)}function os(e){let t=ko(e.thresholdSessionIds),n=String(e.thresholdSessionId||``).trim();return n&&(e.curve===`ed25519`&&t.ed25519===n||e.curve===`ecdsa`&&t.ecdsa===n)?t:{}}function ss(e,t){let n=m(t),r=m(e.ecdsaThresholdKeyId),i=m(e.thresholdEcdsaPublicKeyB64u);if(!n||!r||!i)return null;let a;try{a=I(e.runtimePolicyScope)}catch{return null}let o={chainTarget:e.chainTarget,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,keyHandle:e.keyHandle,ecdsaThresholdKeyId:r,ethereumAddress:e.ethereumAddress,relayerKeyId:e.relayerKeyId,thresholdEcdsaPublicKeyB64u:i,participantIds:[...e.participantIds],runtimePolicyScope:a,routerAbEcdsaDerivationNormalSigning:e.routerAbEcdsaDerivationNormalSigning,publicCapability:e.publicCapability};switch(e.source){case`email_otp`:return{...o,source:`email_otp`,provider:e.provider,providerSubjectId:e.providerSubjectId,emailHashHex:e.emailHashHex,authority:e.authority,emailOtpAuthority:e.emailOtpAuthority,roleLocalMaterialRef:qt(e.roleLocalMaterialRef)};case`login`:case`registration`:case`manual-bootstrap`:return{...o,source:e.source,authority:e.authority,roleLocalMaterialRef:qt(e.roleLocalMaterialRef),rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}}}function cs(e){let t=e.record,n=ss(t.ecdsaRestore,t.relayerUrl);return n?rs({storeKey:Go({walletId:t.walletId,authMethod:t.authMethod,restore:n}),walletId:t.walletId,relayerUrl:t.relayerUrl,sealedSecretB64u:t.sealedSecretB64u,keyVersion:t.keyVersion,updatedAtMs:e.updatedAtMs,authorizationRetirementReason:e.retirement,authMethod:t.authMethod,ecdsaRestore:n}):null}function ls(e){let t=cs(e);if(!t)throw Error(`[SigningSessionSealedStore] inactive ECDSA material requires exact public restore facts`);return t}const us=15e3;function ds(e){return M(e,32,`sealed signing session restore IDs`)}function fs(e){return{lease_key:e.leaseKey,owner_id:e.ownerId,attempt_id:e.attemptId,started_at_ms:e.startedAtMs,expires_at_ms:e.expiresAtMs,lease:e}}function ps(e){let t=new Set,n=m(e.walletId);return n&&t.add(n),t}function ms(e,t){let n=ps(e);if(!n.size)return!1;for(let e of ps(t))if(n.has(e))return!0;return!1}function hs(e,t){if(!ms(e,t)||e.authMethod!==t.authMethod||e.curve!==t.curve)return!1;if(e.curve===`ed25519`&&t.curve===`ed25519`)return f(e.ed25519Restore.materialActivation,t.ed25519Restore.materialActivation);if(e.curve===`ecdsa`){let n=m(e.ecdsaRestore?.keyHandle),r=m(t.ecdsaRestore?.keyHandle);if(!n||!r||n!==r)return!1;let i=e.ecdsaRestore?.chainTarget,a=t.ecdsaRestore?.chainTarget;if(!i||!a||!Ge(i,a))return!1}return!0}function gs(e){return C({storeKey:e.storeKey,walletId:e.walletId,authMethod:e.authMethod,signingRootId:e.signingRootId??null,signingRootVersion:e.signingRootVersion??null,restore:e.ed25519Restore})}function _s(e,t){if(typeof e.primaryKey!=`string`||!e.primaryKey.trim())throw Error(`[SigningSessionSealedStore] exact Ed25519 record key is invalid`);return{primaryKey:e.primaryKey,record:t}}function vs(e,t){return e.record.updatedAtMs===t.record.updatedAtMs?e.primaryKey===e.record.storeKey?e:t.primaryKey===t.record.storeKey?t:e.primaryKey.localeCompare(t.primaryKey)<=0?e:t:e.record.updatedAtMs>t.record.updatedAtMs?e:t}async function ys(e,t={writeCanonical:!1}){let n=e[0];if(!n)return null;let r=gs(n.record);for(let t of e.slice(1))if(gs(t.record)!==r)throw Error(`[SigningSessionSealedStore] exact Ed25519 material has conflicting public identity facts`);let i=e.reduce(vs),a=i.record.storeKey,o=[...new Set(e.map(e=>e.primaryKey))].filter(e=>e!==a);return(t.writeCanonical||o.length>0||i.primaryKey!==a)&&await Y.replaceSealedRecord({row:Io(i.record),staleStoreKeys:o}),i.record}async function bs(e){let t=No(e.value),n=$o(t);if(n.kind!==`current`)return n;let r=_(t);return jo(_(e.value))||jo(r)?X(`delete_required`,r,`invalid_identity`):n}function xs(e){return Ao(No(e))}function Ss(e,t,n,r){is({operation:e,classification:t}),(t.kind===`delete_required`||t.kind===`malformed`)&&r.push(n)}function Cs(e){let t=_(e);if(!t)return null;if(_(t.lease))return Cs(t.lease);if(Number(t.v)!==1||jo(t))return null;let n=m(t.leaseKey),i=m(t.ownerId),a=m(t.attemptId),o=r(t.startedAtMs),s=r(t.expiresAtMs);return!n||!i||!a||o==null||o<=0||s==null||s<=o?null:{v:1,leaseKey:n,ownerId:i,attemptId:a,startedAtMs:o,expiresAtMs:s}}function ws(e){return{v:1,leaseKey:e.leaseKey,ownerId:e.ownerId,attemptId:ds(`restore-attempt`),startedAtMs:e.nowMs,expiresAtMs:e.nowMs+e.ttlMs}}function Ts(e,t,n){return!(e.authMethod!==n.authMethod||e.thresholdSessionIds[n.curve]!==t||n.curve===`ecdsa`&&(!e.ecdsaRestore?.chainTarget||!Ge(e.ecdsaRestore.chainTarget,n.chainTarget)))}function Es(e,t){if(e?.authMethod&&e.curve===`ed25519`||e?.authMethod&&e.curve===`ecdsa`&&e.chainTarget)return e;throw console.warn(`[SigningSessionSealedStore] rejected ambiguous sealed record access`,{operation:t}),Error(`[SigningSessionSealedStore] ${t} requires an explicit authMethod, curve, and ECDSA chain target`)}async function Ds(e){let t=await Y.collectRawSealedRecordEntriesByThresholdSessionId(e);return t.length?t:(await Y.collectAllRawSealedRecordEntries()).filter(t=>{let n=xs(t.value);return n.ed25519===e||n.ecdsa===e})}async function Os(e,t,n){let r=await Ds(e),i=null,a=[],o=[];for(let s of r){let r=await bs(s);if(r.kind===`current`){Ts(r.record,e,t)&&(i=r.record,r.record.curve===`ed25519`&&a.push(_s(s,r.record)));continue}Ss(n,r,s.primaryKey,o)}return await Y.deleteSealedRecords(o),a.length>0?await ys(a):i}async function ks(e,t){try{let n=await Ds(e),r=[];for(let i of n){let n=await bs(i),a=n.kind===`current`?n.record:null;a?.storeKey&&Ts(a,e,t)&&r.push(i.primaryKey)}await Y.deleteSealedRecords(r)}catch{}}async function As(e){if(!ps(e).size||!e.authMethod)return[];try{let t=await Y.collectAllRawSealedRecordEntries(),n=[];for(let r of t){let t=await bs(r),i=t.kind===`current`?t.record:null;i&&i.storeKey!==e.storeKey&&hs(i,e)&&n.push(i)}return n}catch{return[]}}function js(e){if(e.curve!==`ecdsa`)return null;let t=ss(e.ecdsaRestore,e.relayerUrl);return t?Go({walletId:e.walletId,authMethod:e.authMethod,restore:t}):null}async function Ms(e,t){let n=Es(t,`read`),r=String(e||``).trim();return r?await Os(r,n,`read`):null}function Ns(e,t){return e.curve===`ed25519`&&e.authMethod===t.authMethod&&f(e.ed25519Restore.materialActivation,t.materialActivation)}async function Ps(e){let t=await Y.collectAllRawSealedRecordEntries(),n=[],r=[];for(let i of t){let t=await bs(i);if(t.kind===`current`){let n=t.record;Ns(n,e)&&r.push(_s(i,n));continue}Ss(`read exact Ed25519 material`,t,i.primaryKey,n)}return await Y.deleteSealedRecords(n),await ys(r)}async function Fs(e){let t=m(e.walletId);if(!t)return[];let n=Es(e.filter,`list exact account records`),r=e.filter.curve===`ecdsa`?e.filter.chainTarget:void 0,i=await Y.collectAllRawSealedRecordEntries(),a=[];try{let e=[],o=new Set,s=new Map;for(let c of i){let i=await bs(c);if(i.kind!==`current`){Ss(`list exact account records`,i,c.primaryKey,a);continue}let l=i.record;if(l.walletId===t&&l.authMethod===n.authMethod&&l.thresholdSessionIds[n.curve]&&!(r&&(!l.ecdsaRestore?.chainTarget||!Ge(l.ecdsaRestore.chainTarget,r)))){if(l.curve===`ed25519`){let e=s.get(l.storeKey)??[];e.push(_s(c,l)),s.set(l.storeKey,e);continue}o.has(l.storeKey)||(o.add(l.storeKey),e.push(l))}}for(let t of s.values()){let n=await ys(t);n&&e.push(n)}return await Y.deleteSealedRecords(a),e}finally{await Y.deleteSealedRecords(a)}}async function Is(e){let t=m(e.walletId);if(!t)return[];if(e.filter.curve!==`ecdsa`)return console.warn(`[SigningSessionSealedStore] rejected non-ECDSA wallet-scoped list`,{operation:`list wallet ecdsa records`}),[];let n=await Y.collectAllRawSealedRecordEntries(),r=[];try{let i=[],a=new Set;for(let o of n){let n=await bs(o);if(n.kind===`ecdsa_inactive_material`){let r=n.record;if(r.walletId!==t||e.filter.authMethod&&r.authMethod!==e.filter.authMethod||a.has(r.storeKey))continue;a.add(r.storeKey),i.push(r);continue}if(n.kind!==`current`){Ss(`list wallet ecdsa records`,n,o.primaryKey,r);continue}let s=n.record;s.walletId===t&&(e.filter.authMethod&&s.authMethod!==e.filter.authMethod||s.thresholdSessionIds.ecdsa&&s.ecdsaRestore?.chainTarget&&(a.has(s.storeKey)||(a.add(s.storeKey),i.push(s))))}return await Y.deleteSealedRecords(r),i}finally{await Y.deleteSealedRecords(r)}}async function Ls(e){let t=$o(e);if(t.kind!==`current`){is({operation:`write exact sealed session`,classification:t});return}let n=t.record;if(n.curve===`ed25519`){let e=[{primaryKey:n.storeKey,record:n}],t=await Y.collectAllRawSealedRecordEntries();for(let r of t){let t=await bs(r);t.kind===`current`&&t.record.curve===`ed25519`&&t.record.storeKey===n.storeKey&&e.push(_s(r,t.record))}await ys(e,{writeCanonical:!0});return}let r=await As(n),i=js(n);await Y.replaceSealedRecord({row:Io(n),staleStoreKeys:[...r.map(e=>e.storeKey),...i?[i]:[]]})}function Rs(e,t,n){return zs({current:e,inactive:ls({record:e,retirement:t,updatedAtMs:n})})}async function zs(e){await Y.replaceSealedRecordAndDeleteRestoreLease({row:Fo(e.inactive),staleStoreKeys:[e.current.storeKey],restoreLeaseKey:e.current.storeKey})}async function Bs(e){let t=Es(e.filter,`update policy`),n=String(e.thresholdSessionId||``).trim();if(!n)return;let r=await Ms(n,t);r&&await Hs(r,e)}async function Vs(e){let t=await Ps(e.locator);t&&await Hs(t,e)}async function Hs(e,t){let n=r(t.expiresAtMs??e.expiresAtMs),i=r(t.remainingUses??e.remainingUses),a=r(t.updatedAtMs);if(n==null||n<=0||i==null||i<0||a==null||a<=0)return;let o={...e,expiresAtMs:n,remainingUses:i,updatedAtMs:a};if(o.curve===`ecdsa`){let e=n<=Date.now()?`expired`:i===0?`exhausted`:null;if(e){await Rs(o,e,a);return}}await Ls(o)}async function Us(e,t,n){let r=Es(t,`delete`),i=String(e||``).trim();if(!i)return;let a=await Os(i,r,`delete`);await ks(i,r),a&&n.deleteResolvedIdentity&&await Y.deleteRestoreLease(a.storeKey)}async function Ws(e,t){let n=await Y.collectAllRawSealedRecordEntries(),r=[],i=[];for(let a of n){let n=await bs(a);if(n.kind!==`current`){is({operation:`delete exact Ed25519 material`,classification:n});continue}let o=n.record;Ns(o,e)&&(r.push(a.primaryKey),t.deleteResolvedIdentity&&i.push(o.storeKey))}if(await Y.deleteSealedRecords(r),t.deleteResolvedIdentity)for(let e of i)await Y.deleteRestoreLease(e)}async function Gs(e){let t=e.preserveResolvedIdentity?{deleteResolvedIdentity:!1}:{deleteResolvedIdentity:!0,resolvedIdentityDeleteReason:`durable_record_deleted`};if(e.durableRecord.curve===`ed25519`){await Ws({kind:`ed25519_durable_material`,authMethod:e.durableRecord.authMethod,materialActivation:e.durableRecord.materialActivation},t);return}let n=To(e.durableRecord),r=await Ks(e.durableRecord.thresholdSessionId,n);if(e.preserveResolvedIdentity&&e.durableRecord.curve===`ecdsa`&&r?.curve===`ecdsa`&&(e.deleteReason===`expired`||e.deleteReason===`exhausted`)){await Rs(r,e.deleteReason,Date.now());return}await Us(e.durableRecord.thresholdSessionId,n,t)}async function Ks(e,t){try{return await Ms(e,t)}catch{return null}}async function qs(e){let t=Es(e,`acquire restore lease`),n=String(e.thresholdSessionId||``).trim();if(!n)return null;let i=r(e.nowMs??Date.now())??Date.now(),a=Math.max(1,r(e.ttlMs??us)??us),o=m(e.ownerId)||ds(`restore-owner`);return await Os(n,t,`acquire restore lease`)?await Y.withRestoreLeaseTransaction(n,async e=>{let r=[];for(let t of e.entries){let e=es(t.value);e?.storeKey&&!r.some(t=>t.storeKey===e.storeKey)&&r.push(e)}let s=r.find(e=>Ts(e,n,t))||null;if(!s)return e.abort(),null;let c=Cs(await e.getRawRestoreLease(s.storeKey));if(c&&c.expiresAtMs>i&&c.ownerId!==o)return e.abort(),null;let l=ws({leaseKey:s.storeKey,ownerId:o,nowMs:i,ttlMs:a});return e.putRestoreLease(fs(l)),{...l,thresholdSessionId:n}}):null}async function Js(e){!e?.leaseKey||!e.ownerId||!e.attemptId||await Y.deleteRestoreLeaseIf({leaseKey:e.leaseKey,shouldDelete:t=>{let n=Cs(t);return n?.ownerId===e.ownerId&&n.attemptId===e.attemptId}})}function Ys(e){return String(e??``).trim()||null}function Xs(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:null}function Zs(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function Qs(e){let t=D(e);return t?.length===2?[t[0],t[1]]:null}function $s(e){let t=e.ed25519Restore;switch(e.authMethod){case Ee.passkey:{let e=Ys(t.credentialIdB64u);return e?{kind:`passkey`,rpId:bn(t.rpId),credentialIdB64u:e}:null}case Ee.emailOtp:{if(!(`provider`in t))return null;let e=Ys(t.providerSubjectId),n=Ys(t.emailHashHex);return!e||!n?null:{kind:`email_otp`,provider:t.provider,providerSubjectId:e,emailHashHex:n}}}}function ec(e){switch(e.kind){case`passkey`:return{kind:Ee.passkey,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u};case`email_otp`:return{kind:Ee.emailOtp,providerSubjectId:e.providerSubjectId}}}function tc(e){let t=e.ed25519Restore,n=Ys(e.thresholdSessionIds.ed25519),r=Ys(e.relayerUrl),i=Ys(t.relayerKeyId),a=Xs(e.expiresAtMs),o=Zs(e.remainingUses),s=Ht(t.signerSlot),c=Qs(t.participantIds),l=N(t.runtimePolicyScope),u=l?F(l):null,d=Ys(u?.signingRootVersion),f=oe(t.routerAbNormalSigning),p=$s(e);if(!n||!r||!i||!a||o===null||!s||!c||!l||!u||!d||!f||f.signingWorkerId!==i||!p||e.signingRootId!==u.signingRootId||e.signingRootVersion!==d)return null;try{return{kind:`exact_ed25519_sealed_session_runtime`,sealedRecord:e,walletId:Ve(e.walletId),nearAccountId:z(t.nearAccountId),nearEd25519SigningKeyId:zt(t.nearEd25519SigningKeyId),signerSlot:s,factor:p,auth:ec(p),thresholdSessionId:Cn.thresholdEd25519Session(n),remainingUses:o,expiresAtMs:a,relayerUrl:r,relayerKeyId:i,participantIds:c,runtimePolicyScope:l,signingRootId:u.signingRootId,signingRootVersion:d,routerAbNormalSigning:f}}catch{return null}}async function nc(e){let t;switch(e.runtime.factor.kind){case`passkey`:t=Nt({walletId:e.runtime.walletId,factor:{kind:`passkey`,credentialIdB64u:e.runtime.factor.credentialIdB64u},verifier:{kind:`webauthn`,rpId:e.runtime.factor.rpId},bindingId:e.walletAuthMethodId});break;case`email_otp`:t=Dt({walletId:e.runtime.walletId,factor:{kind:`email_otp`,provider:e.runtime.factor.provider,providerUserId:e.runtime.factor.providerSubjectId},verifier:{kind:`email_otp_wallet_auth_method`,emailHashHex:e.runtime.factor.emailHashHex},bindingId:e.walletAuthMethodId});break;default:return rc(e.runtime.factor)}if(!t)throw Error(`[SigningEngine][near] sealed Ed25519 authority is invalid`);return await Ft({authority:t})}function rc(e){throw Error(`Unsupported Ed25519 factor: ${String(e)}`)}async function ic(e){let{authorization:t,runtime:n}=e;if(t.session.walletId!==n.walletId||t.session.authMethodId!==t.selectedAuthMethod.walletAuthMethodId||t.session.quotaId!==t.status.quotaId||t.operationCredential.walletSessionId!==t.status.walletSessionId||t.operationCredential.token.trim().length===0||t.status.remainingUses<=0||!rr({session:t.session,materialActivation:n.sealedRecord.ed25519Restore.materialActivation}))return!1;if(n.factor.kind===`passkey`){if(t.selectedAuthMethod.kind!==`passkey`||String(t.selectedAuthMethod.rpId)!==String(n.factor.rpId)||t.selectedAuthMethod.credentialIdB64u!==n.factor.credentialIdB64u||t.selectedFactorAuthority.factor.kind!==`passkey`||t.selectedFactorAuthority.factor.credentialIdB64u!==n.factor.credentialIdB64u||t.selectedFactorAuthority.verifier.kind!==`webauthn`||String(t.selectedFactorAuthority.verifier.rpId)!==String(n.factor.rpId))return!1}else if(t.selectedAuthMethod.kind!==`email_otp`||t.selectedAuthMethod.emailHashHex!==n.factor.emailHashHex||t.selectedFactorAuthority.factor.kind!==`email_otp`||t.selectedFactorAuthority.factor.provider!==n.factor.provider||t.selectedFactorAuthority.factor.providerUserId!==n.factor.providerSubjectId||t.selectedFactorAuthority.verifier.kind!==`email_otp_wallet_auth_method`||t.selectedFactorAuthority.verifier.emailHashHex!==n.factor.emailHashHex)return!1;try{let e=await nc({runtime:n,walletAuthMethodId:t.selectedAuthMethod.walletAuthMethodId}),r=await Ft({authority:t.selectedFactorAuthority});return e.walletId===t.selectedAuthority.walletId&&e.walletAuthMethodId===t.selectedAuthMethod.walletAuthMethodId&&e.walletId===r.walletId&&e.walletAuthMethodId===r.walletAuthMethodId&&e.authorityDigest===r.authorityDigest}catch{return!1}}function ac(e,t){switch(e.kind){case`voiceid`:return t.kind===`voiceid`&&e.walletAuthMethodId===t.walletAuthMethodId&&e.deviceKeyId===t.deviceKeyId;case`passkey`:return t.kind===`passkey`&&e.rpId===t.rpId&&e.credentialIdB64u===t.credentialIdB64u;case`email_otp`:return t.kind===`email_otp`&&e.providerSubjectId===t.providerSubjectId}}function oc(e){let t=e.laneIdentity.signer,n=e.record.ed25519Restore;return e.record.walletId===t.account.wallet.walletId&&n.nearAccountId===t.account.nearAccountId&&n.nearEd25519SigningKeyId===t.nearEd25519SigningKeyId&&n.signerSlot===t.signerSlot&&e.record.thresholdSessionIds.ed25519===e.laneIdentity.thresholdSessionId}function sc(e,t){return ac(e.auth,t.auth)}async function cc(e,t){if(e.laneIdentity.auth.kind===`voiceid`)return{kind:`missing`};let n=(await t.listExactSealedSessionsForWallet({walletId:e.walletId,filter:{authMethod:e.laneIdentity.auth.kind,curve:`ed25519`}})).filter(t=>t.curve===`ed25519`&&oc({record:t,laneIdentity:e.laneIdentity}));if(n.length===0)return{kind:`missing`};if(n.length>1)return{kind:`conflict`};let r=tc(n[0]);return!r||!sc(r,e.laneIdentity)?{kind:`corrupt`}:{kind:`resolved`,runtime:r}}async function lc(e){return await cc(e,{listExactSealedSessionsForWallet:Fs})}async function uc(e,t){return fc(await dc(e,t))}async function dc(e,t){let n=await Promise.all([t.listExactSealedSessionsForWallet({walletId:e,filter:{authMethod:Ee.passkey,curve:`ed25519`}}),t.listExactSealedSessionsForWallet({walletId:e,filter:{authMethod:Ee.emailOtp,curve:`ed25519`}})]),r=[];for(let e of n)for(let t of e)t.curve===`ed25519`&&r.push(t);return r}function fc(e){if(e.length===0)return{kind:`missing`};if(e.length>1)return{kind:`conflict`};let t=tc(e[0]);return t?{kind:`resolved`,runtime:t}:{kind:`corrupt`}}async function pc(e){return await uc(e,{listExactSealedSessionsForWallet:Fs})}async function mc(e,t){let n=await dc(e.walletId,t),r=[];for(let t of n)t.ed25519Restore.nearAccountId===e.nearAccountId&&t.ed25519Restore.nearEd25519SigningKeyId===e.nearEd25519SigningKeyId&&r.push(t);return fc(r)}async function hc(e){return await mc(e,{listExactSealedSessionsForWallet:Fs})}function gc(e,t){let n=String(e).trim();if(!n)throw Error(`${t} is required for Ed25519 Wallet Session state`);return n}function _c(e,t){if(!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be positive for Ed25519 Wallet Session state`);return e}function vc(e){let t=Cn.thresholdEd25519Session(gc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=gc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=gc(e.relayerUrl,`relayerUrl`),i=gc(e.providerSubjectId,`providerSubjectId`),a=_c(e.signerSlot,`signerSlot`),o=_c(e.signingWalletSession.remainingUses,`remainingUses`);return{walletSessionAuth:{kind:`wallet_session_opaque`,home:e.signingWalletSession.auth.credential.home,walletSessionToken:n},walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,signingLane:lr({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:a,auth:{kind:`email_otp`,providerSubjectId:i},walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,retention:`session`,sessionOrigin:`login`}),remainingUses:o,signingRootId:e.signingWalletSession.signingRootId,signingRootVersion:e.signingWalletSession.signingRootVersion,routerAbNormalSigning:e.signingWalletSession.routerAbNormalSigning,runtimePolicyScope:e.signingWalletSession.runtimePolicyScope,relayerUrl:r,signingWalletSession:e.signingWalletSession,authority:e.authority}}function yc(e){return bc({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,relayerUrl:e.relayerUrl,authority:e.authority,signingWalletSession:e.signingWalletSession,auth:{kind:`passkey`,rpId:e.rpId,credentialIdB64u:gc(e.credentialIdB64u,`credentialIdB64u`)}})}function bc(e){let t=Cn.thresholdEd25519Session(gc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=gc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=gc(e.relayerUrl,`relayerUrl`),i=_c(e.signerSlot,`signerSlot`);return{walletSessionAuth:{kind:`wallet_session_opaque`,home:e.signingWalletSession.auth.credential.home,walletSessionToken:n},walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,signingLane:lr({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:i,auth:e.auth,walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,storageSource:`login`}),remainingUses:e.signingWalletSession.remainingUses,signingRootId:e.signingWalletSession.signingRootId,signingRootVersion:e.signingWalletSession.signingRootVersion,routerAbNormalSigning:e.signingWalletSession.routerAbNormalSigning,runtimePolicyScope:e.signingWalletSession.runtimePolicyScope,relayerUrl:r,signingWalletSession:e.signingWalletSession,authority:e.authority}}async function xc(e){let t=e.authorization.operationCredential.token,n=e.authorization.session.authorizationId,r=await nc({runtime:e.runtime,walletAuthMethodId:e.authorization.selectedAuthMethod.walletAuthMethodId}),i=await Ft({authority:e.authorization.selectedFactorAuthority}),a=Math.min(e.runtime.expiresAtMs,e.authorization.status.expiresAtMs);if(!t||!n||e.authorization.session.walletId!==e.runtime.walletId||e.authorization.selectedAuthMethod.kind!==e.runtime.auth.kind||r.walletId!==e.runtime.walletId||r.walletAuthMethodId!==e.authorization.selectedAuthMethod.walletAuthMethodId||r.walletId!==i.walletId||r.walletAuthMethodId!==i.walletAuthMethodId||String(r.authorityDigest)!==String(i.authorityDigest)||e.authorization.operationCredential.walletSessionId!==e.authorization.status.walletSessionId||a<=e.nowMs)throw Error(`Ed25519 Wallet Session authorization does not match sealed material`);let o=po({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,walletSessionId:e.authorization.operationCredential.walletSessionId,authorizationId:n,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.runtime.thresholdSessionId,remainingUses:Math.min(e.runtime.remainingUses,e.authorization.status.remainingUses),expiresAtMs:a,runtimePolicyScope:e.runtime.runtimePolicyScope,signingRootId:e.runtime.signingRootId,signingRootVersion:e.runtime.signingRootVersion,routerAbNormalSigning:e.runtime.routerAbNormalSigning,walletSessionToken:t,home:e.authorization.operationCredential.home,nowMs:e.nowMs});if(!o.ok)throw Error(`Ed25519 Wallet Session runtime is invalid: ${o.reason}`);if(e.runtime.factor.kind===`passkey`&&e.runtime.auth.kind===`passkey`)return yc({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,signerSlot:e.runtime.signerSlot,rpId:e.runtime.factor.rpId,credentialIdB64u:e.runtime.factor.credentialIdB64u,relayerUrl:e.runtime.relayerUrl,authority:r,signingWalletSession:o.value});if(e.runtime.factor.kind===`email_otp`&&e.runtime.auth.kind===`email_otp`)return vc({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,providerSubjectId:e.runtime.auth.providerSubjectId,signerSlot:e.runtime.signerSlot,relayerUrl:e.runtime.relayerUrl,authority:r,signingWalletSession:o.value});throw Error(`Ed25519 sealed runtime factor and auth binding disagree`)}function Sc(e){return{thresholdSessionId:e.thresholdSessionId,signer:e.signingLane.identity.signer,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,routerAbNormalSigning:e.routerAbNormalSigning,runtimePolicyScope:e.runtimePolicyScope,relayerUrl:e.relayerUrl}}function Cc(e){return e.authorization.capabilitySubjects.some(t=>t.kind===`sign`&&t.keyFamily===`ed25519`&&f(t.materialActivation,e.materialActivation))}function wc(e){let t=e.state,n=e.authorization,r=t.signingLane.identity.signer.account.wallet.walletId,i=e.operationCredential.token,a=t.signingLane.identity.signer,o=Math.min(t.signingWalletSession.expiresAtMs,n.expiresAtMs);if(!i||!Cc({authorization:n,materialActivation:e.materialActivation})||n.walletId!==r||n.authMethodId!==t.authority.walletAuthMethodId||e.operationCredential.walletSessionId!==t.walletSessionId||n.authorizationId!==t.signingWalletSession.authorizationId||o<=e.nowMs||!Number.isSafeInteger(o))return null;let s=po({walletId:String(a.account.wallet.walletId),nearAccountId:String(a.account.nearAccountId),nearEd25519SigningKeyId:String(a.nearEd25519SigningKeyId),walletSessionId:String(t.walletSessionId),authorizationId:String(t.signingWalletSession.authorizationId),quotaId:String(t.quotaId),thresholdSessionId:String(t.thresholdSessionId),remainingUses:t.remainingUses,expiresAtMs:o,runtimePolicyScope:t.runtimePolicyScope,signingRootId:t.signingRootId,signingRootVersion:t.signingRootVersion,routerAbNormalSigning:t.routerAbNormalSigning,walletSessionToken:i,home:e.operationCredential.home,nowMs:e.nowMs});if(!s.ok)return null;switch(t.signingLane.auth.kind){case`voiceid`:return{...bc({walletId:a.account.wallet.walletId,nearAccountId:a.account.nearAccountId,nearEd25519SigningKeyId:a.nearEd25519SigningKeyId,signerSlot:a.signerSlot,auth:t.signingLane.auth,relayerUrl:t.relayerUrl,authority:t.authority,signingWalletSession:s.value}),walletSessionAuthorization:n,walletSessionOperationCredential:e.operationCredential};case`passkey`:return{...yc({walletId:a.account.wallet.walletId,nearAccountId:a.account.nearAccountId,nearEd25519SigningKeyId:a.nearEd25519SigningKeyId,signerSlot:a.signerSlot,rpId:t.signingLane.auth.rpId,credentialIdB64u:t.signingLane.auth.credentialIdB64u,relayerUrl:t.relayerUrl,authority:t.authority,signingWalletSession:s.value}),walletSessionAuthorization:n,walletSessionOperationCredential:e.operationCredential};case`email_otp`:return{...vc({walletId:a.account.wallet.walletId,nearAccountId:a.account.nearAccountId,nearEd25519SigningKeyId:a.nearEd25519SigningKeyId,providerSubjectId:t.signingLane.auth.providerSubjectId,signerSlot:a.signerSlot,relayerUrl:t.relayerUrl,authority:t.authority,signingWalletSession:s.value}),walletSessionAuthorization:n,walletSessionOperationCredential:e.operationCredential};default:return Tc(t.signingLane.auth)}}function Tc(e){throw Error(`Unknown Ed25519 signing lane auth: ${String(e)}`)}async function Ec(e){let t=e.state.signingLane.identity.signer.account.wallet.walletId,n=await oo({ports:e.ports,input:{walletId:t,authMethod:Sn(e.state.signingLane.auth),walletSessionId:e.state.walletSessionId,quotaId:e.state.quotaId,requiredSigningSubject:ao(e.state.signingLane.identity),expiry:{kind:`unexpired`,nowMs:e.nowMs}}});return n.kind!==`resolved`||n.resolved.authMethod.walletAuthMethodId!==e.state.authority.walletAuthMethodId?null:wc({state:e.state,authorization:n.resolved.session,operationCredential:n.resolved.operationCredential,materialActivation:n.resolved.materialActivation,nowMs:e.nowMs})}function Dc(e){return kt(C({operation:`wallet_add_signer_activate_v2`,addSignerCeremonyId:e.addSignerCeremonyId,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts}))}async function Oc(e){return A(await S(String(Dc(e))))}function kc(e){let t;try{t=Pe(e,`custody envelope`)}catch(e){return{ok:!1,reason:e instanceof Error?e.message:`custody envelope is invalid`}}let n=t.lifecycle.state;return n===`active`?t.binding.kind===`wallet_custody_seed_v1`?{ok:!0,custodyJson:JSON.stringify({envelopeBinding:{walletId:t.walletId,envelopeId:t.envelopeId,factor:t.factor,envelopeRevision:t.envelopeRevision,binding:t.binding,ownership:Fe(t.ownership)},nonceB64u:t.nonceB64u,sealedCustodySecretB64u:t.sealedCustodySecretB64u,aadHashB64u:t.aadHashB64u,ciphertextDigestB64u:t.ciphertextDigestB64u})}:{ok:!1,reason:`generic custody wire rejects non-seed envelopes`}:{ok:!1,reason:`custody envelope is ${n}`}}function Ac(e){let t={};return Tr()&&(t[`X-Seams-Benchmark-Diagnostics`]=`registration-flow`),e&&(t[cn]=e.value),Object.keys(t).length>0?t:void 0}function jc(e){let t=j(e);if(t.length!==20)throw Error(`ECDSA activation returned an invalid address`);let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return`0x${n}`}var Mc=class extends Error{code=`wallet_unlock_required`;next=`unlock_exact_method`;projection;constructor(e){super(`Registration response was already committed; exact-method unlock is required`),this.name=`RegistrationExactMethodUnlockRequiredError`,this.projection=e}};function Nc(e){switch(e.kind){case`issued`:return e.session;case`already_committed`:throw new Mc(e.session);default:return q(e)}}function Pc(e){let t=e[0];if(t)for(let n of e.slice(1)){let e=Ic(t,n);if(e)throw Error(`ECDSA registration returned partitioned EVM-family wallet key material: ${e}`)}}function Fc(e){for(let t of e.walletKeys)if(!gt(t.publicCapability,e.session.publicCapability))throw Error(`ECDSA registration wallet key public capability does not match client-verified activation`)}function Ic(e,t){return e.keyScope!==`evm-family`||t.keyScope!==`evm-family`?`keyScope`:e.walletId===t.walletId?e.evmFamilySigningKeySlotId===t.evmFamilySigningKeySlotId?e.keyHandle===t.keyHandle?e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId?e.signingRootId===t.signingRootId?e.signingRootVersion===t.signingRootVersion?e.thresholdEcdsaPublicKeyB64u===t.thresholdEcdsaPublicKeyB64u?e.thresholdOwnerAddress.trim().toLowerCase()===t.thresholdOwnerAddress.trim().toLowerCase()?e.relayerKeyId===t.relayerKeyId?e.relayerVerifyingShareB64u===t.relayerVerifyingShareB64u?e.participantIds.join(`,`)===t.participantIds.join(`,`)?null:`participantIds`:`relayerVerifyingShareB64u`:`relayerKeyId`:`thresholdOwnerAddress`:`thresholdEcdsaPublicKeyB64u`:`signingRootVersion`:`signingRootId`:`ecdsaThresholdKeyId`:`keyHandle`:`evmFamilySigningKeySlotId`:`walletId`}function Lc(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||Ue(r)!==Ue(i))return!1}return!0}async function Rc(e){try{await e.context.signingEngine.closeRouterAbEcdsaRegistrationCeremony({kind:`close_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:e.ceremonyId})}catch{return}}function zc(e){let t=e.prepare;return{formatVersion:t.formatVersion,walletId:t.walletId,evmFamilySigningKeySlotId:t.evmFamilySigningKeySlotId,ecdsaThresholdKeyId:t.ecdsaThresholdKeyId,signingRootId:t.signingRootId,signingRootVersion:t.signingRootVersion,keyScope:t.keyScope,relayerKeyId:t.relayerKeyId,registrationPreparationId:t.registrationPreparationId,requestId:t.requestId,thresholdSessionId:t.thresholdSessionId,ttlMs:t.ttlMs,remainingUses:t.remainingUses,participantIds:[...t.participantIds],runtimePolicyScope:t.runtimePolicyScope,derivationClientSharePublicKey33B64u:e.verified.derivationClientSharePublicKey33B64u,clientShareRetryCounter:e.verified.clientShareRetryCounter,contextBinding32B64u:e.verified.contextBinding32B64u}}async function Bc(e){return{canonicalRequest:Dc(e),requestDigest:_e(await Oc(e))}}async function Vc(e){try{return await Qn(e)}catch{return await Qn(e)}}async function Hc(e){return e.registrationTiming?await e.registrationTiming.measure(e.bucket,e.operation):await e.operation()}async function Uc(e){let[t,...n]=e.started.chainTargets;if(!t)throw Error(`Strict ECDSA ceremony requires at least one EVM-family target`);let r=e.addSignerCeremonyId,i=ge(r);try{let a=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientCreateMs`,operation:e.context.signingEngine.createRouterAbEcdsaRegistrationCeremony.bind(e.context.signingEngine,{kind:`create_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:r,registration:e.started.strictRegistration})}),o=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:er.bind(void 0,{relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:r,ecdsa:{kind:`router_ab_ecdsa_registration_v1`,strictRegistration:a.registrationRequest,requestDigestB64u:a.registrationRequestDigestB64u}})}),s=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientProofVerifyMs`,operation:e.context.signingEngine.verifyRouterAbEcdsaRegistrationClientProofs.bind(e.context.signingEngine,{kind:`verify_router_ab_ecdsa_registration_client_proofs_v1`,bootstrapOwner:`wallet_custody`,ceremonyId:r,clientProofFinalization:{kind:`finalize_encrypted_client_proof_bundles_v2`,bundles:o.ecdsa.strictResult.response.bundles}})}),c=kc(e.custodyEnvelope);if(!c.ok)throw Error(c.reason);let l={response:null,journalId:null},u=await e.context.signingEngine.joinWalletCustodyEvmFamilyKeySet({walletId:e.walletId,custodyJson:c.custodyJson,factorSecret:e.factorSecret,evmFamilySigningKeySlotId:e.started.prepare.evmFamilySigningKeySlotId,applicationBindingDigestB64u:s.applicationBindingDigestB64u,runRelayerRound:async a=>{let o=yt({registrationRequestDigestB64u:s.registrationRequestDigestB64u,proofTranscriptDigestB64u:s.proofTranscriptDigestB64u,contextBinding32B64u:a.contextBinding32B64u,derivationClientSharePublicKey33B64u:a.clientSharePublicKey33B64u,clientShareRetryCounter:a.clientShareRetryCounter,participantId:1}),c=await Bc({addSignerCeremonyId:r,activationCorrelationId:i,publicFacts:o}),u={bytes:Array.from(j(String(c.requestDigest)))},d=await e.context.signingEngine.persistInitialCanonicalEcdsaActivation({kind:`persist_initial_canonical_ecdsa_activation_v1`,bootstrapOwner:`wallet_custody`,ceremonyId:r,clientActivation:o,planInput:{authority:e.authority,targetMemberships:[t,...n],evmFamilySigningKeySlotId:jt(e.started.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:Gt(e.started.prepare.ecdsaThresholdKeyId),signingRootId:St(e.started.prepare.signingRootId),signingRootVersion:mt(e.started.prepare.signingRootVersion),runtimePolicyScope:e.started.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Ut(a.clientSharePublicKey33B64u),participantIds:[xn(e.started.prepare.participantIds[0]),xn(e.started.prepare.participantIds[1])],relayerKeyId:Wt(e.started.prepare.relayerKeyId),bindingDigest:Yt(a.contextBinding32B64u),journalId:i,requestDigest:c.requestDigest,canonicalRequest:c.canonicalRequest,createdAt:he(new Date().toISOString())}});if(!d.ok)throw Error(`Canonical ECDSA activation persistence failed (${d.code}): ${d.message}`);l.journalId=d.journalId,l.response=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Vc.bind(void 0,{relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:r,activationCorrelationId:i,publicFacts:o,expectedActivationRequestDigest:u})});let f=l.response.ecdsa.activation.ecdsa_activation.public_identity;return JSON.stringify({relayerKeyId:e.started.prepare.relayerKeyId,relayerPublicKey33B64u:f.server_public_key33_b64u,groupPublicKey33B64u:f.threshold_public_key33_b64u,ethereumAddress:jc(f.ethereum_address20_b64u),relayerShareRetryCounter:f.server_share_retry_counter})}});if(!l.response||!l.journalId)throw Error(`Add-signer ECDSA custody join did not activate`);let d=l.response,f=l.journalId,p=u.commitPayload.clientRootPublicKey33B64u;if(!p)throw Error(`Add-signer ECDSA custody join returned no client root public key`);let m=zc({prepare:e.started.prepare,verified:u.clientBootstrap}),h=tr({clientBootstrap:m,serverBootstrap:d.ecdsa.bootstrap,activationEpoch:d.ecdsa.activation.ecdsa_activation.activation_epoch});return{chainTargets:[t,...n],clientBootstrap:m,bootstrap:h,activatedThresholdSessionId:d.ecdsa.bootstrap.thresholdSessionId,journalId:f,activationReceipt:d.ecdsa.activation,custodyKeySet:{kind:`evm_family_ecdsa_v1`,keyManifestDigestB64u:u.commitPayload.keyManifestDigestB64u,clientRootPublicKey33B64u:p},custodyLocalMaterial:u.localMaterial}}catch(t){throw await Rc({context:e.context,ceremonyId:r}),t}}async function Wc(e){let t=await e.context.signingEngine.finalizeRouterAbEcdsaRegistrationActivation({kind:`finalize_router_ab_ecdsa_registration_activation_v1`,bootstrapOwner:`wallet_custody`,journalId:e.pending.journalId,activationReceipt:e.pending.activationReceipt,routerAbEcdsaDerivationNormalSigning:e.pending.bootstrap.routerAbEcdsaDerivationNormalSigning,readyStateBlobB64u:e.pending.custodyLocalMaterial.readyStateBlobB64u,walletCustodyPublicFacts:e.pending.custodyLocalMaterial.publicFacts});return{chainTargets:e.pending.chainTargets,authority:t.authority,clientBootstrap:e.pending.clientBootstrap,bootstrap:e.pending.bootstrap,activatedThresholdSessionId:e.pending.activatedThresholdSessionId,roleLocalMaterial:t.roleLocalMaterial,materialActivation:t.materialActivation,clientPublicFacts:t.publicFacts,publicCapability:t.publicCapability}}function Gc(e){switch(e.tokens.kind){case`evm_family_ecdsa`:case`near_ed25519_and_evm_family_ecdsa`:return e.tokens.ecdsa;case`near_ed25519`:throw Error(`Registration-established session is missing ECDSA authorization`);default:return q(e.tokens)}}function Kc(e){let[t]=e.walletKeys;if(!t)throw Error(`ECDSA registration did not return wallet key material`);let n=Gc(e.session.registrationEstablishedSession);if(String(e.session.registrationEstablishedSession.walletId)!==t.walletId||n.thresholdSessionId!==e.session.activatedThresholdSessionId||n.keyHandle!==t.keyHandle||!qc(n.runtimePolicyScope,e.session.clientBootstrap.runtimePolicyScope)||!Ct(n.routerAbEcdsaDerivationNormalSigning,e.session.bootstrap.routerAbEcdsaDerivationNormalSigning))throw Error(`Registration-established ECDSA session changed the signer identity`);for(let r of e.walletKeys)if(r.walletId!==t.walletId||r.keyHandle!==n.keyHandle||r.ecdsaThresholdKeyId!==t.ecdsaThresholdKeyId)throw Error(`ECDSA registration material changed the established session identity`)}function qc(e,t){return e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}async function Jc(e,t){e.kind===`passkey`&&await Promise.allSettled([Promise.resolve().then(t),ca.initializeBundled()])}function Yc(e){return Tt({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:String(e.credential.rawId||e.credential.id||``).trim()})}async function Xc(e){if(!e.material)throw Error(`Email OTP registration ${e.operation} is missing enrollment material`);return await e.material}function Zc(e){let n=e.admissionRequest,r=t(n.scope.threshold_session_id);if(!r.ok)throw Error(`Ed25519 registration threshold-session identity is invalid`);let i=n.participant_ids,a=I(e.finalized.runtimePolicyScope);if(n.application_binding.wallet_id!==e.walletId||n.application_binding.near_ed25519_signing_key_id!==e.finalized.nearEd25519SigningKeyId||n.application_binding.key_creation_signer_slot!==e.finalized.signerSlot||i[0]!==e.finalized.participantIds[0]||i[1]!==e.finalized.participantIds[1]||!qc(a,e.expectedRuntimePolicyScope)||n.application_binding.signing_root_id!==`${a.projectId}:${a.envId}`||n.scope.root_share_epoch!==a.signingRootVersion||n.scope.signing_worker_id!==e.finalized.routerAbNormalSigning.signingWorkerId||e.finalized.relayerKeyId!==e.finalized.routerAbNormalSigning.signingWorkerId)throw Error(`Ed25519 registration material changed the admitted signer identity`);return{identity:{walletId:String(e.walletId),nearAccountId:e.finalized.nearAccountId,nearEd25519SigningKeyId:e.finalized.nearEd25519SigningKeyId,thresholdSessionId:r.value,signerSlot:e.finalized.signerSlot,signingRootId:n.application_binding.signing_root_id,signingRootVersion:n.scope.root_share_epoch,signingWorkerId:n.scope.signing_worker_id},stableServerScope:{relayerKeyId:e.finalized.relayerKeyId,participantIds:e.finalized.participantIds,runtimePolicyScope:a,routerAbNormalSigning:e.finalized.routerAbNormalSigning}}}function Qc(e){switch(e.tokens.kind){case`near_ed25519`:case`near_ed25519_and_evm_family_ecdsa`:return e.tokens.ed25519;case`evm_family_ecdsa`:throw Error(`Registration-established session is missing Ed25519 authorization`);default:return q(e.tokens)}}async function $c(e){let t=Qc(e.registrationEstablishedSession);if(t.nearAccountId!==String(e.nearAccountId)||t.nearEd25519SigningKeyId!==String(e.nearEd25519SigningKeyId)||t.thresholdSessionId!==String(e.thresholdSessionId)||!qc(t.runtimePolicyScope,e.runtimePolicyScope))throw Error(`Registration-established Email OTP Ed25519 session changed signer identity`);let n=F(t.runtimePolicyScope),r=n.signingRootVersion;if(!r)throw Error(`Registration-established Ed25519 session is missing a signing-root version`);let i=po({walletId:String(e.walletId),nearAccountId:String(e.nearAccountId),nearEd25519SigningKeyId:String(e.nearEd25519SigningKeyId),walletSessionId:String(e.registrationEstablishedSession.walletSessionId),authorizationId:String(e.registrationEstablishedSession.authorizationId),quotaId:String(e.registrationEstablishedSession.quotaId),thresholdSessionId:t.thresholdSessionId,remainingUses:e.registrationEstablishedSession.remainingUses,expiresAtMs:e.registrationEstablishedSession.expiresAtMs,runtimePolicyScope:t.runtimePolicyScope,signingRootId:n.signingRootId,signingRootVersion:r,routerAbNormalSigning:t.routerAbNormalSigning,walletSessionToken:e.registrationEstablishedSession.operationCredential.token,home:e.registrationEstablishedSession.operationCredential.home,nowMs:Date.now()});if(!i.ok)throw Error(`Registration-established Email OTP Ed25519 session is unusable (${i.reason})`);let a=await Ft({authority:e.emailOtpAuthContext.authority});return vc({walletId:e.walletId,nearAccountId:z(e.nearAccountId),nearEd25519SigningKeyId:Rt(e.nearEd25519SigningKeyId),providerSubjectId:ar(e.emailOtpAuthContext),signerSlot:e.signerSlot,relayerUrl:e.relayerUrl,authority:a,signingWalletSession:i.value})}function el(e){if(e.authMethod.kind!==`passkey`)throw Error(`Ed25519 Yao registration requires a passkey registration intent`);return{version:e.version,walletId:e.walletId,authMethod:e.authMethod,signerSelection:e.signerSelection,foundingWalletAuthMethodId:e.foundingWalletAuthMethodId,...e.runtimePolicyScope?{runtimePolicyScope:e.runtimePolicyScope}:{},nonceB64u:e.nonceB64u}}function tl(e){if(e.finalized.authMethod.kind!==`passkey`||e.finalized.rpId!==e.expectedRpId)throw Error(`Ed25519 Yao finalize returned a different passkey authority`);if(e.finalized.walletId!==e.expectedWalletId)throw Error(`Ed25519 Yao finalize returned a different wallet`);if(e.finalized.ed25519.publicKey!==e.clientPublicKey||e.finalized.ed25519.nearEd25519SigningKeyId!==e.finalized.resolvedAccount.nearEd25519SigningKeyId||e.finalized.ed25519.nearAccountId!==e.finalized.resolvedAccount.nearAccountId)throw Error(`Ed25519 Yao finalize returned mismatched signer identity`);return{rpId:e.finalized.rpId,credentialIdB64u:e.finalized.authMethod.credentialIdB64u}}function nl(e){if(e.finalized.authMethod.kind!==`email_otp`||e.finalized.authMethod.registrationAuthorityId!==e.expectedRegistrationAuthorityId)throw Error(`Ed25519 Yao finalize returned a different Email OTP authority`);if(e.finalized.walletId!==e.expectedWalletId)throw Error(`Ed25519 Yao finalize returned a different wallet`);if(e.finalized.ed25519.publicKey!==e.clientPublicKey||e.finalized.ed25519.nearEd25519SigningKeyId!==e.finalized.resolvedAccount.nearEd25519SigningKeyId||e.finalized.ed25519.nearAccountId!==e.finalized.resolvedAccount.nearAccountId)throw Error(`Ed25519 Yao finalize returned mismatched signer identity`)}async function rl(e,t){let n=await new ta(t).send({kind:`admit`,path:ot,body:e.admissionRequest});if(!n.ok)throw Error(n.message);let r=lt(n.value);if(!r.ok)throw Error(r.message);return r.value}function il(e){let t=Qc(e.session);return{thresholdSessionId:String(t.thresholdSessionId),prfFirstB64u:e.prfFirstB64u,expiresAtMs:e.session.expiresAtMs,remainingUses:e.session.remainingUses,diagnostics:{recordDuration:Ca.bind(void 0,e.ceremonyId)},...e.preparedServerSeal?{preparedServerSeal:e.preparedServerSeal}:{},transport:{curve:`ed25519`,authMethod:`passkey`,walletId:e.walletId,relayerUrl:e.relayerUrl,walletSessionToken:e.session.operationCredential.token,ed25519Restore:ha({rpId:e.restore.rpId,nearAccountId:e.restore.nearAccountId,nearEd25519SigningKeyId:e.restore.nearEd25519SigningKeyId,relayerKeyId:e.restore.relayerKeyId,participantIds:e.restore.participantIds,runtimePolicyScope:t.runtimePolicyScope,signerSlot:e.restore.signerSlot,routerAbNormalSigning:t.routerAbNormalSigning,credentialIdB64u:e.restore.credentialIdB64u,materialActivation:e.restore.materialActivation})}}}function al(e){if(e.operation!==`registration_activate`||e.signerPlanKind!==`evm_family_ecdsa`)return!1;let t=e.localMaterial.keyFamilies;return t.length===1&&t[0]===`ecdsa_secp256k1`}function ol(e){if(e.operation!==`registration_activate`||e.signerPlanKind!==`near_ed25519_and_evm_family_ecdsa`)return!1;let t=e.localMaterial.keyFamilies;return t.length===1&&t[0]===`ecdsa_secp256k1`}function sl(e){let t=e.registrationEstablishedSession.session.tokens;if(t.kind===`evm_family_ecdsa`||t.kind===`near_ed25519_and_evm_family_ecdsa`)return t;throw Error(`pending ECDSA activation returned no ECDSA projection`)}function cl(e,t,n){let r=t.registrationEstablishedSession.session,i=sl(t);return t.walletId===e.walletId&&t.custodyKeyManifestDigestB64u===e.localMaterial.custodyCommit.keyManifestDigestB64u&&t.walletCustody?.status===`committed`&&r.walletId===e.walletId&&r.walletSession.walletId===e.walletId&&r.walletSession.authMethodId===e.walletAuthMethodId&&r.tokens.kind===`evm_family_ecdsa`&&i.ecdsa.keyHandle===n.keyHandle&&i.ecdsa.thresholdSessionId===t.ecdsa.bootstrap.thresholdSessionId&&r.expiresAtMs===t.ecdsa.bootstrap.expiresAtMs&&r.remainingUses===t.ecdsa.bootstrap.remainingUses}function ll(e,t,n){let r=e.ecdsa_activation.public_identity;return _t({registrationRequestDigestB64u:t.publicCapability.registration_request_digest_b64u,proofTranscriptDigestB64u:A(Uint8Array.from(e.transcript_digest.bytes)),contextBinding32B64u:r.context_binding_b64u,derivationClientSharePublicKey33B64u:r.derivation_client_share_public_key33_b64u,clientShareRetryCounter:r.client_share_retry_counter,participantId:1},n)}function ul(e,t){return e.derivationClientSharePublicKey33B64u===t.derivationClientSharePublicKey33B64u&&e.relayerPublicKey33B64u===t.relayerVerifyingShareB64u&&e.groupPublicKey33B64u===t.thresholdEcdsaPublicKeyB64u&&e.ethereumAddress===t.thresholdOwnerAddress.toLowerCase()}function dl(e,t){return e.server_public_key33_b64u===t.relayerVerifyingShareB64u&&e.threshold_public_key33_b64u===t.thresholdEcdsaPublicKeyB64u&&hl(e.ethereum_address20_b64u)===t.thresholdOwnerAddress&&e.server_share_retry_counter===t.relayerShareRetryCounter}function fl(e,t){return e.walletId===t.walletId&&e.keyHandle===t.keyHandle&&e.ecdsaThresholdKeyId===t.ecdsaThresholdKeyId&&e.evmFamilySigningKeySlotId===t.evmFamilySigningKeySlotId&&e.signingRootId===t.signingRootId&&e.signingRootVersion===t.signingRootVersion&&e.thresholdEcdsaPublicKeyB64u===t.thresholdEcdsaPublicKeyB64u&&e.ethereumAddress.toLowerCase()===t.thresholdOwnerAddress.toLowerCase()&&e.relayerKeyId===t.relayerKeyId&&e.relayerVerifyingShareB64u===t.relayerVerifyingShareB64u&&e.clientShareRetryCounter===t.clientShareRetryCounter&&e.relayerShareRetryCounter===t.relayerShareRetryCounter}function pl(e,t){let n={relayerUrl:e,registrationCeremonyId:t.registrationCeremonyId,signedSetup:t.signedSetup,idempotencyKey:t.idempotencyKey,walletCustodyCommit:t.localMaterial.custodyCommit,...t.auth.kind===`email_otp`?{emailOtpEnrollment:t.auth.enrollment}:{}},r={activationCorrelationId:t.localMaterial.ecdsa.activationJournalId,activationRequestDigestB64u:t.localMaterial.ecdsa.activationRequestDigestB64u,clientActivation:t.localMaterial.ecdsa.clientActivation};return{...n,signerPlanKind:t.signerPlanKind,ecdsa:r}}function ml(e){let t=e.ecdsa.walletKeys[0];if(!t)throw Error(`pending ECDSA activation returned no wallet keys`);return Pc(e.ecdsa.walletKeys),[t,...e.ecdsa.walletKeys.slice(1)]}function hl(e){let t=j(e);if(t.length!==20)throw Error(`pending ECDSA activation returned an invalid address`);let n=`0x`;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n}function gl(e,t,n){if(!cl(e,t,n))throw Error(`pending ECDSA activation projection mismatch`);rn(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function _l(e){return e.ok===!0&&e.kind===`evm_family_ecdsa`&&e.registrationEstablishedSession.kind===`already_committed`}async function vl(e,t){if(e.auth.kind===`passkey`){if(t.authMethod.kind!==`passkey`||t.rpId!==e.auth.rpId||t.authMethod.credentialIdB64u!==e.auth.credentialIdB64u)throw Error(`pending ECDSA activation returned a different Passkey method`);return}if(t.authMethod.kind!==`email_otp`||t.authMethod.registrationAuthorityId!==e.auth.registrationAuthorityId)throw Error(`pending ECDSA activation returned a different Email OTP method`);let n=Dt(t.authority),r=await y(e.auth.email);if(!n||n.factor.providerUserId!==e.auth.providerSubject||n.verifier.emailHashHex.toLowerCase()!==r.toLowerCase())throw Error(`pending ECDSA activation returned a different Email OTP identity`)}function yl(e,t,n){let r=t.ecdsa.activation,i=r.ecdsa_activation,a=i.public_identity,o=e.localMaterial.ecdsa.clientActivation;if(r.activation_correlation_id!==e.localMaterial.ecdsa.activationJournalId||A(Uint8Array.from(r.activation_request_digest.bytes))!==e.localMaterial.ecdsa.activationRequestDigestB64u||!ll(r,n,o)||!ul(t.ecdsa.bootstrap.publicIdentity,n)||i.context.application_binding_digest_b64u!==t.ecdsa.bootstrap.applicationBindingDigestB64u||!dl(a,n))throw Error(`pending ECDSA activation facts mismatch`);if(!fl(t.ecdsa.bootstrap,n))throw Error(`pending ECDSA bootstrap changed committed key identity`)}function bl(e){let t=sl(e).ecdsa,n=e.ecdsa.activation.ecdsa_activation;if(!f(t.materialActivation,vt(n.material_activation))||!Ct(t.routerAbEcdsaDerivationNormalSigning,e.ecdsa.bootstrap.routerAbEcdsaDerivationNormalSigning))throw Error(`pending ECDSA activation facts do not match the committed projection`)}async function xl(e){let t=e.response;if(!_l(t))throw Error(t.ok?`pending ECDSA activation replay did not return a committed projection`:`pending ECDSA activation replay failed`);let n=ml(t)[0];if(gl(e.pending,t,n),await vl(e.pending,t),yl(e.pending,t,n),bl(t),e.pending.signerPlanKind===`evm_family_ecdsa`){if(t.nearProvisioning!==void 0)throw Error(`ECDSA-only registration unexpectedly has deferred NEAR provisioning`)}else if(t.nearProvisioning?.status!==`near_pending`)throw Error(`mixed registration did not retain deferred NEAR provisioning`);return t}async function Sl(e){let t=new on,n=vt(e.activationReceipt.ecdsa_activation.material_activation),r=await t.lookupByMaterialActivation({walletId:e.authority.walletId,authority:e.authority,materialActivation:n});if(r.kind===`missing`){let t=await Rn(e);return{roleLocalMaterialRef:t.roleLocalMaterialRef,publication:[t]}}if(r.kind!==`active`)throw Error(`Pending ECDSA registration continuity is ${r.kind}`);let i=r.manifest,a=i.durableMaterial;if(!Pt(i.activation.serverActivation.serverActivationReceipt.protocolReceipt,e.activationReceipt)||!gt(a.roleLocalPublicFacts.publicCapability,e.publicCapability)||!yn(i.signer.scope,Jt({targetMemberships:e.chainTargets}))||a.roleLocalBinding.keyHandle!==e.keyHandle||a.roleLocalBinding.ecdsaThresholdKeyId!==e.ecdsaThresholdKeyId||a.roleLocalBinding.relayerKeyId!==e.relayerKeyId||a.bindingDigest!==e.publicFacts.contextBinding32B64u||i.signer.signingRootId!==e.signingRootId||i.signer.signingRootVersion!==e.signingRootVersion||!vn(a.runtimePolicyScope,e.runtimePolicyScope))throw Error(`Pending ECDSA registration conflicts with its restored activation`);return{roleLocalMaterialRef:{kind:`ecdsa_role_local_persisted_material_ref_v1`,durableMaterialRef:a.durableMaterialRef,bindingDigest:a.bindingDigest,materialActivation:n},publication:[]}}function Cl(e){let t=e[0];if(!t)throw Error(`ECDSA registration finalization returned no wallet keys`);return[t,...e.slice(1)]}function wl(e){let t=e[0];if(!t)throw Error(`ECDSA registration activation returned no chain targets`);return[t.chainTarget,...e.slice(1).map(e=>e.chainTarget)]}async function Tl(e){let t=Cl(e.walletKeys);if(e.pending.auth.kind===`passkey`){if(e.response.authMethod.kind!==`passkey`||!e.response.authMethod.credentialPublicKeyB64u)throw Error(`ECDSA registration publication has no exact Passkey credential`);return await In({kind:`passkey`,walletId:e.pending.walletId,rpId:e.pending.auth.rpId,credentialIdB64u:e.pending.auth.credentialIdB64u,credentialPublicKeyB64u:e.response.authMethod.credentialPublicKeyB64u,transports:e.pending.auth.transports,walletKeys:t})}if(e.response.authMethod.kind!==`email_otp`)throw Error(`ECDSA Email OTP registration publication has a different auth method`);let n=Dt(e.response.authority);if(!n)throw Error(`ECDSA Email OTP registration authority is invalid`);return await In({kind:`email_otp`,walletId:e.pending.walletId,email:e.pending.auth.email,registrationAuthorityId:e.pending.auth.registrationAuthorityId,authority:n,walletKeys:t})}function El(e){return{pending:e.pending,authority:e.response.authority,foundingAuthority:{authority:e.response.foundingAuthority,authMethod:e.response.foundingAuthMethod},request:{operation:e.pending.operation,registrationCeremonyId:e.pending.registrationCeremonyId,idempotencyKey:e.pending.idempotencyKey,walletId:e.pending.walletId,walletAuthMethodId:e.pending.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:e.session.session.wallet_session,operationCredential:e.session.session.operation_credential},ecdsaContinuity:e.ecdsaContinuity,registration:e.registration}}async function Dl(e){let t=await e.ports.activateWalletRegistration(pl(e.relayerUrl,e.pending)),n=await xl({pending:e.pending,response:t}),r=ml(n),i={sessionPolicy:e.sessionPolicy,onEvent:e.onEvent,relayerUrl:e.relayerUrl,pending:e.pending,response:n,walletKeys:r,exactMethod:e.exactMethod,signingSurface:e.signingSurface},a=await e.ports.unlockPendingEcdsaRegistration(i),o=r[0];if(!o)throw Error(`ECDSA registration activation returned no primary key`);let s=await Ft({authority:n.authority}),c=await Sl({authority:s,chainTargets:wl(r),walletId:String(e.pending.walletId),keyHandle:o.keyHandle,ecdsaThresholdKeyId:o.ecdsaThresholdKeyId,signingRootId:o.signingRootId,signingRootVersion:o.signingRootVersion,relayerKeyId:o.relayerKeyId,participantIds:o.participantIds,publicCapability:o.publicCapability,activationReceipt:n.ecdsa.activation,runtimePolicyScope:sl(n).ecdsa.runtimePolicyScope,readyStateBlobB64u:a.readyStateBlobB64u,publicFacts:a.publicFacts}),l={kind:`ecdsa_role_local_worker_handle_v1`,materialHandle:Kt(c.roleLocalMaterialRef.durableMaterialRef),bindingDigest:c.roleLocalMaterialRef.bindingDigest,durableMaterialRef:c.roleLocalMaterialRef.durableMaterialRef},u=await e.signingSurface.finalizeWalletRegistrationEcdsaSessions({walletId:String(e.pending.walletId),session:{chainTargets:wl(r),authority:s,bootstrap:{applicationBindingDigestB64u:n.ecdsa.bootstrap.applicationBindingDigestB64u},roleLocalMaterial:l,materialActivation:c.roleLocalMaterialRef.materialActivation,clientPublicFacts:{contextBinding32B64u:a.publicFacts.contextBinding32B64u,derivationClientSharePublicKey33B64u:a.publicFacts.derivationClientSharePublicKey33B64u,clientVerifyingShareB64u:a.publicFacts.clientVerifyingShare33B64u,relayerPublicKey33B64u:a.publicFacts.relayerPublicKey33B64u,groupPublicKey33B64u:a.publicFacts.groupPublicKey33B64u,ethereumAddress:a.publicFacts.ethereumAddress},publicCapability:o.publicCapability},walletKeys:r}),d=await Tl({pending:e.pending,response:n,walletKeys:u});if(await e.ports.publishPendingWalletRegistrationCommit(El({pending:e.pending,response:n,registration:d,session:a.session,ecdsaContinuity:c.publication})),e.pending.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`&&e.pending.auth.kind===`passkey`&&a.kind===`passkey`){let t=fr(a.credential,`Pending NEAR registration continuation`),n=oh({context:e.nearContext,sessionAuthority:{record:a.session.session.wallet_session,operationCredential:a.session.session.operation_credential},factor:{kind:`passkey`,rpId:e.pending.auth.rpId,credentialIdB64u:ur(a.credential),prfFirstB64u:t},ownedFactorSecret:j(t).slice().buffer,custodyEnvelope:a.custody.envelope});e.nearCompletion===`await`&&await n}return{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId,walletId:n.walletId,signingSession:{sessionId:String(a.session.session.threshold_session_id),status:`active`,authMethod:a.kind,remainingUses:a.session.session.remaining_uses,expiresAtMs:a.session.session.expires_at_ms}}}function Ol(e,t,n){e?.(Xt({flowId:`unlock:${t}`,accountId:t,...n}))}async function kl(e){let{context:t,authMethod:n,unlockSubjectId:r,loginResult:i,onEvent:a,afterCall:o}=e;return i.success&&t.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:i.walletId,authMethod:n}),Ol(a,r,{phase:Qt.STEP_07_COMPLETED,status:`succeeded`,data:{...i.success&&i.kind===`near_wallet_unlocked`?{operationalPublicKey:i.operationalPublicKey??``}:{walletId:i.success?String(i.walletId):``}}}),await o?.(!0,i),i}async function Al(e){let{message:t,unlockSubjectId:n,error:r,onEvent:i,onError:a,afterCall:o,callOnError:s=!0,callAfterCall:c=!0,cancelled:l=!1}=e;return s&&a?.(ye(r)),Ol(i,n,{phase:l?Qt.CANCELLED:Qt.FAILED,status:l?`cancelled`:`failed`,...l?{}:{message:t},interaction:{kind:`passkey_assert`,overlay:`hide`},error:{message:t}}),c&&await o?.(!1),{success:!1,error:t}}async function jl(e){let t=gr(),n=null;try{let r=JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:A(e)}))),i=await Fr({runStep:e.runStep,custody:e.factorAfterRouterRound?{origin:`establish_factor_after_round`,walletId:e.walletId,recoveryCodesJson:r,factor:e.factorAfterRouterRound}:{origin:`establish`,walletId:e.walletId,factorJson:e.factorJson,factorSecret:e.factorSecret,recoveryCodesJson:r},keySetRun:{keySet:`near_ed25519_v1`,protocolInputsJson:JSON.stringify({yaoAdmission:e.yaoAdmission,yaoApplication:e.yaoApplication,clientParticipantId:e.participantIds[0],signingWorkerParticipantId:e.participantIds[1],...e.continuityRegisteredPublicKeyB64u===void 0?{}:{continuityRegisteredPublicKeyB64u:e.continuityRegisteredPublicKeyB64u}}),nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,runRouterRound:async t=>{let r=await e.runRouterRound(t);return n=Gl(r),r}}});if(!n)throw Error(`the NEAR custody ceremony produced no activation session id`);let a=await Wl(i,t);return{recoveryCodes:t.codes,activationReference:{kind:`router_ab_ed25519_yao_activation_reference_v1`,lifecycle_id:e.registrationCeremonyId,session_id:n},commitPayload:Ul(a),localMaterial:i.ed25519LocalMaterialB64u&&i.ed25519LocalMaterialNonceB64u&&i.ed25519ApplicationBindingDigestB64u?{b64u:i.ed25519LocalMaterialB64u,nonceB64u:i.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:i.ed25519ApplicationBindingDigestB64u}:null}}finally{t&&mr(t),t=null}}function Ml(e){let t=e.establishedCustody;if(!t)throw Error(`wallet custody join requires an established envelope`);let n;try{n=JSON.parse(t.envelopeBindingJson)}catch{throw Error(`wallet custody envelope binding is not JSON`)}if(typeof n!=`object`||!n||Array.isArray(n))throw Error(`wallet custody envelope binding must be an object`);return JSON.stringify({envelopeBinding:n,nonceB64u:t.envelopeNonceB64u,sealedCustodySecretB64u:t.sealedCustodySecretB64u,aadHashB64u:t.envelopeAadHashB64u,ciphertextDigestB64u:t.envelopeCiphertextDigestB64u})}async function Nl(e){let t=gr(),n=null,r=null;try{let i=t;if(!i)throw Error(`recovery codes were not issued`);let a=await Fr({runStep:e.runStep,custody:{origin:`establish`,walletId:e.walletId,factorJson:e.factorJson,factorSecret:e.factorSecret,recoveryCodesJson:JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:A(e)})))},keySetRun:{keySet:`evm_family_ecdsa_v1`,protocolInputsJson:JSON.stringify({applicationBindingDigestB64u:e.applicationBindingDigestB64u}),evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,beforeRelayerRound:e.confirmRecoveryCodesBackedUp.bind(void 0,t.codes),runRelayerRound:async t=>{let a=Me(await Wl(t.preActivationCommitPayload,i));return n=a,r={contextBinding32B64u:t.contextBinding32B64u,derivationClientSharePublicKey33B64u:t.clientSharePublicKey33B64u,clientShareRetryCounter:t.clientShareRetryCounter,participantId:1},await e.runRelayerRound({...t,preActivationCommitPayload:a})}}});if(!n||!r)throw Error(`the EVM custody ceremony reached no activation round`);if(!a.ecdsaReadyStateBlobB64u||!a.ecdsaPublicFacts)throw Error(`the EVM custody ceremony produced no local signing material`);return{recoveryCodes:t.codes,commitPayload:n,clientBootstrap:r,localMaterial:{readyStateBlobB64u:a.ecdsaReadyStateBlobB64u,publicFacts:a.ecdsaPublicFacts}}}finally{t&&mr(t),t=null}}async function Pl(e){let t=null,n=null,r=await Fr({runStep:e.runStep,custody:{origin:`join`,custodyJson:e.custodyJson,factorSecret:e.factorSecret},keySetRun:{keySet:`evm_family_ecdsa_v1`,protocolInputsJson:JSON.stringify({applicationBindingDigestB64u:e.applicationBindingDigestB64u}),evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,beforeRelayerRound:async()=>void 0,runRelayerRound:async r=>(t=r.preActivationCommitPayload,n={contextBinding32B64u:r.contextBinding32B64u,derivationClientSharePublicKey33B64u:r.clientSharePublicKey33B64u,clientShareRetryCounter:r.clientShareRetryCounter,participantId:1},await e.runRelayerRound(r))}});if(!t||!n)throw Error(`the EVM custody join reached no activation round`);if(r.establishedCustody)throw Error(`an EVM custody join must not establish a second wallet seed`);if(!r.ecdsaReadyStateBlobB64u||!r.ecdsaPublicFacts)throw Error(`the EVM custody join produced no local signing material`);return{commitPayload:t,clientBootstrap:n,localMaterial:{readyStateBlobB64u:r.ecdsaReadyStateBlobB64u,publicFacts:r.ecdsaPublicFacts}}}function Fl(e){switch(e.factorReplacement.kind){case`preserve_existing`:return{origin:`recover`,custodyJson:e.custodyJson,recoveryCode:e.recoveryCode};case`reseal_replacement_factor`:return{origin:`recover_and_reseal`,custodyJson:e.custodyJson,recoveryCode:e.recoveryCode,replacementFactorJson:e.factorReplacement.factorJson,replacementFactorSecret:e.factorReplacement.factorSecret};default:return Il(e.factorReplacement)}}function Il(e){throw Error(`unsupported recovery factor replacement: ${String(e)}`)}async function Ll(e){if(await Vl({walletId:e.walletId,evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,clientRootPublicKey33B64u:e.registeredClientRootPublicKey33B64u})!==e.recordedKeyManifestDigestB64u)throw Error(`EVM recovery manifest digest does not match the registered identity`);let t=await Fr({runStep:e.runStep,custody:Fl(e),keySetRun:{keySet:`evm_family_ecdsa_v1`,protocolInputsJson:JSON.stringify({applicationBindingDigestB64u:e.applicationBindingDigestB64u}),evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,beforeRelayerRound:async()=>void 0,runRelayerRound:e.resolveRelayerPublicIdentity},recordedKeyManifestDigestB64u:e.recordedKeyManifestDigestB64u});if(!t.ecdsaReadyStateBlobB64u||!t.ecdsaPublicFacts)throw Error(`the EVM recovery produced no local signing material`);if(t.clientRootPublicKey33B64u!==e.registeredClientRootPublicKey33B64u)throw Error(`the EVM recovery changed the registered client root public key`);return{readyStateBlobB64u:t.ecdsaReadyStateBlobB64u,publicFacts:t.ecdsaPublicFacts,recoveryReplacementEnvelope:t.recoveryReplacementEnvelope??null}}async function Rl(e){let t=await Vl({walletId:e.walletId,evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,clientRootPublicKey33B64u:e.registeredClientRootPublicKey33B64u}),n=await Fr({runStep:e.runStep,custody:{origin:`join`,custodyJson:e.custodyJson,factorSecret:e.factorSecret},keySetRun:{keySet:`evm_family_ecdsa_v1`,protocolInputsJson:JSON.stringify({applicationBindingDigestB64u:e.applicationBindingDigestB64u}),evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,beforeRelayerRound:async()=>void 0,runRelayerRound:async()=>e.relayerPublicIdentityJson},recordedKeyManifestDigestB64u:t});if(n.establishedCustody)throw Error(`an EVM cold unlock must not establish custody`);if(!n.ecdsaReadyStateBlobB64u||!n.ecdsaPublicFacts)throw Error(`the EVM cold unlock produced no local signing material`);return{readyStateBlobB64u:n.ecdsaReadyStateBlobB64u,publicFacts:n.ecdsaPublicFacts}}function zl(e,t){e.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255)}function Bl(e,t,n){let r=new TextEncoder().encode(t);zl(e,r.length),e.push(...r),zl(e,n.length),e.push(...n)}async function Vl(e){let t=String(e.walletId||``).trim(),n=String(e.evmFamilySigningKeySlotId||``).trim(),r=j(e.clientRootPublicKey33B64u);if(!t||!n||r.length!==33)throw Error(`EVM custody continuity identity is invalid`);let i=[];return Bl(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/evm-family-ecdsa/v1`)),Bl(i,`walletId`,new TextEncoder().encode(t)),Bl(i,`evmFamilySigningKeySlotId`,new TextEncoder().encode(n)),Bl(i,`clientRootPublicKey33`,r),A(await x(Uint8Array.from(i)))}async function Hl(e){let t=String(e.walletId||``).trim(),n=String(e.nearEd25519SigningKeyId||``).trim(),r=j(e.registeredPublicKeyB64u);if(!t||!n||r.length!==32)throw Error(`NEAR custody continuity identity is invalid`);let i=[];return Bl(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/near-ed25519/v1`)),Bl(i,`walletId`,new TextEncoder().encode(t)),Bl(i,`nearEd25519SigningKeyId`,new TextEncoder().encode(n)),Bl(i,`registeredPublicKey`,r),A(await x(Uint8Array.from(i)))}function Ul(e){let{ed25519LocalMaterialB64u:t,ed25519LocalMaterialNonceB64u:n,ed25519ApplicationBindingDigestB64u:r,ecdsaReadyStateBlobB64u:i,recoveryReplacementEnvelope:a,...o}=e;return o}async function Wl(e,t){let n=e.establishedCustody;if(!n)return e;if(n.recoveryManifestKekWraps.length!==t.codeBytes.length)throw Error(`recovery code and wrap counts do not match`);let r=await Promise.all(t.codeBytes.map(async(e,t)=>{let r=n.recoveryManifestKekWraps[t];if(!r)throw Error(`recovery code and wrap counts do not match`);return{locatorB64u:await hr(e),recoveryKeyId:r.recoveryKeyId}}));if(new Set(r.map(e=>e.locatorB64u)).size!==r.length)throw Error(`recovery code locators must be unique`);return{...e,establishedCustody:{...n,recoveryCodeLocators:r}}}function Gl(e){let t;try{t=JSON.parse(e)}catch{throw Error(`the Router activation result is not JSON`)}let n=t?.binding?.session_id;if(!Array.isArray(n)||n.length===0)throw Error(`the Router activation result carries no session id`);return n.map(e=>{if(typeof e!=`number`||!Number.isInteger(e)||e<0||e>255)throw Error(`the Router activation session id is not a byte array`);return e})}async function Kl(e){if(await Hl({walletId:e.walletId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,registeredPublicKeyB64u:e.registeredPublicKeyB64u})!==e.recordedKeyManifestDigestB64u)throw Error(`NEAR recovery manifest digest does not match the registered identity`);let t=null,n=null,r=await Fr({runStep:e.runStep,custody:Fl(e),keySetRun:{keySet:`near_ed25519_v1`,protocolInputsJson:JSON.stringify({yaoAdmission:e.yaoAdmission,yaoApplication:e.yaoApplication,clientParticipantId:e.participantIds[0],signingWorkerParticipantId:e.participantIds[1],continuityRegisteredPublicKeyB64u:e.registeredPublicKeyB64u}),nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,runRouterRound:async n=>(t=await e.runRouterRound(n),t),afterRouterRoundCompleted:async t=>{n=await e.activateRouterRecovery(t)}},recordedKeyManifestDigestB64u:e.recordedKeyManifestDigestB64u});if(!r.ed25519LocalMaterialB64u||!r.ed25519LocalMaterialNonceB64u)throw Error(`the NEAR recovery sealed no local signing material`);if(!r.ed25519ApplicationBindingDigestB64u)throw Error(`the NEAR recovery omitted its application binding digest`);if(!t||!n)throw Error(`the NEAR recovery produced no Router activation`);return{localMaterial:{b64u:r.ed25519LocalMaterialB64u,nonceB64u:r.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:r.ed25519ApplicationBindingDigestB64u},activationResultJson:t,activationReceipt:n,recoveryReplacementEnvelope:r.recoveryReplacementEnvelope??null}}async function ql(e){return await Yl(e,e.registrationCeremonyId,void 0,`registration join`)}async function Jl(e){let t=String(e.registeredPublicKeyB64u||``).trim();if(!t)throw Error(`a cold unlock must name the key set it reproduces`);let n=null,r=null,i=await Yl({...e,preparation:{kind:`fresh`}},e.recoveryLifecycleId,t,`cold unlock`,async t=>{n=t,r=await e.activateRouterRecovery(t)});if(!n||!r)throw Error(`the NEAR cold unlock produced no Router recovery activation`);return{...i,activationResultJson:n,activationReceipt:r}}async function Yl(e,t,n,r,i){let a=null,o=await Fr({runStep:e.runStep,custody:{origin:`join`,custodyJson:e.custodyJson,factorSecret:e.factorSecret},keySetRun:{keySet:`near_ed25519_v1`,...e.preparation.kind===`checkpoint`?{checkpointJson:e.preparation.checkpointJson}:{protocolInputsJson:JSON.stringify({yaoAdmission:e.yaoAdmission,yaoApplication:e.yaoApplication,clientParticipantId:e.participantIds[0],signingWorkerParticipantId:e.participantIds[1],...n?{continuityRegisteredPublicKeyB64u:n}:{}}),beforeRouterRound:e.beforeRouterRound},nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,runRouterRound:async t=>{let n=await e.runRouterRound(t);return a=Gl(n),n},...i?{afterRouterRoundCompleted:i}:{}}});if(!a)throw Error(`the NEAR ${r} produced no activation session id`);if(o.establishedCustody)throw Error(`a NEAR ${r} must not establish custody`);if(!o.ed25519LocalMaterialB64u||!o.ed25519LocalMaterialNonceB64u)throw Error(`the NEAR ${r} sealed no local material`);return{commitPayload:Ul(o),activationReference:{kind:`router_ab_ed25519_yao_activation_reference_v1`,lifecycle_id:t,session_id:a},localMaterial:{b64u:o.ed25519LocalMaterialB64u,nonceB64u:o.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:String(o.ed25519ApplicationBindingDigestB64u||``)}}}function Xl(e){switch(e.routeFamily){case`operation_step_up`:return{routeFamily:e.routeFamily,operation:e.operation,operationCredential:e.operationCredential};case`registration`:if(e.operation!==`registration`)throw Error(`Email OTP registration routes require registration operation`);return{routeFamily:`registration`,operation:e.operation};case`login`:if(!Ce(e.operation))throw Error(`Email OTP login routes require a login operation`);return{routeFamily:`login`,operation:e.operation};case`signing_session`:if(e.operation!==`transaction_sign`&&e.operation!==`export_key`)throw Error(`Email OTP signing-session routes require signing or export operation`);return{routeFamily:`signing_session`,authLane:e.authLane,operation:e.operation}}throw Error(`Unsupported Email OTP route family`)}var Zl=class e extends Error{kind=`email_otp_signing_session_auth_state_error`;failure;constructor(t){super(Ql(t)),this.name=`EmailOtpSigningSessionAuthStateError`,this.failure=t,Object.setPrototypeOf(this,e.prototype)}};function Ql(e){return`Email OTP ${e.expectedCurve} signing-session auth lane is unavailable at ${e.source}; unlock wallet again`}function $l(e){throw new Zl(e)}function eu(e){return e.freshRouteFamily===`registration`?Xl({routeFamily:`registration`,operation:Se}):Xl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function tu(e){return e?.kind!==`signing_session`&&$l({kind:`auth_lane_missing`,source:`route_plan`,expectedCurve:`unknown`}),e}function nu(e){return Xl({routeFamily:`signing_session`,authLane:e.authLane,operation:e.operation})}function ru(e){if(e.kind===`signing_session`&&e.curve===`ecdsa`)return{kind:`threshold_ecdsa_session`,operationCredential:e.operationCredential,curve:`ecdsa`,thresholdSessionId:e.thresholdSessionId,chainTarget:e.chainTarget}}function iu(e){if(e.routeFamily===`signing_session`)return ru(e.authLane)}async function au(e){return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`unlockEmailOtpAuthorityWallet`,timeoutMs:6e4,payload:{relayUrl:e.relayUrl,walletId:e.walletId,walletAuthMethodId:e.walletAuthMethodId,challengeId:e.challengeId,otpCode:e.otpCode,ed25519:e.ed25519}}})}async function ou(e){return await e.base.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`loginWithEmailOtpWallet`,timeoutMs:6e4,payload:{relayUrl:e.base.relayUrl,walletId:String(e.base.walletSession.walletId),authoritySelector:e.base.authoritySelector,userId:String(e.base.walletSession.walletSessionUserId),verification:e.base.verification,groupId:e.base.groupId,routePlan:e.base.routePlan,otpChannel:xe,material:e.material},onEvent:e.base.onProgress}})}async function su(e){let t=await ou({base:e,material:e.ecdsaSessionPolicy?{kind:`ecdsa`,ecdsaSessionHandleBinding:e.ecdsaSessionHandleBinding,runtimePolicyScope:e.runtimePolicyScope,ecdsaSessionPolicy:e.ecdsaSessionPolicy}:{kind:`ecdsa`,ecdsaSessionHandleBinding:e.ecdsaSessionHandleBinding,runtimePolicyScope:e.runtimePolicyScope}});if(t.kind!==`ecdsa`)throw Error(`Email OTP wallet unlock returned the wrong material branch`);if(e.ecdsaSessionPolicy){if(t.operation!==`wallet_unlock`)throw Error(`Email OTP wallet unlock returned a non-unlock ECDSA result`);return{kind:`ecdsa`,operation:`wallet_unlock`,recovery:t.recovery,emailOtpSessionHandle:t.emailOtpSessionHandle,ecdsaSession:t.ecdsaSession,ecdsaCustody:t.ecdsaCustody}}if(t.operation!==e.ecdsaSessionHandleBinding.operation)throw Error(`Email OTP ECDSA result operation does not match its request`);return{kind:`ecdsa`,operation:t.operation,recovery:t.recovery,emailOtpSessionHandle:t.emailOtpSessionHandle}}async function cu(e){let t=await ou({base:e,material:{kind:`ed25519_yao_recovery`,providerSubject:e.providerSubject,nearAccountId:e.nearAccountId,expectedOperationalPublicKey:e.expectedOperationalPublicKey,expectedThresholdSessionId:e.expectedThresholdSessionId,walletCustodyEd25519Material:e.walletCustodyEd25519Material,ed25519YaoRecovery:{kind:ut,signerSlot:e.signerSlot,remainingUses:e.remainingUses,orgId:e.orgId}}});if(t.kind===`ed25519_yao_capability`)return{kind:t.kind,recovery:t.recovery,activeClientHandle:t.activeClientHandle,metadata:t.metadata,ed25519YaoCapability:t.ed25519YaoCapability,walletSessionAuthorization:t.walletSessionAuthorization,...t.walletCustodyEd25519Material?{walletCustodyEd25519Material:t.walletCustodyEd25519Material}:{},ed25519ExportRootCustody:t.ed25519ExportRootCustody};if(t.kind!==`wallet_custody_cache_absent`)throw Error(`Email OTP Ed25519 Yao unlock returned the wrong material branch`);return{kind:`wallet_custody_cache_absent`,recovery:t.recovery,ed25519YaoRecovery:t.ed25519YaoRecovery}}async function lu(e){let t=await ou({base:e,material:{kind:`wallet_unlock_capabilities`,ecdsa:{sessionHandleBinding:e.ecdsaSessionHandleBinding,runtimePolicyScope:e.runtimePolicyScope,sessionPolicy:e.ecdsaSessionPolicy},ed25519Yao:{providerSubject:e.providerSubject,nearAccountId:e.nearAccountId,expectedOperationalPublicKey:e.expectedOperationalPublicKey,expectedThresholdSessionId:e.expectedThresholdSessionId,walletCustodyEd25519Material:e.walletCustodyEd25519Material,recovery:{kind:ut,signerSlot:e.signerSlot,remainingUses:e.remainingUses,orgId:e.runtimePolicyScope.orgId}}}});if(t.kind!==`wallet_unlock_capabilities`)throw Error(`Email OTP capability unlock returned the wrong material branch`);return{kind:`wallet_unlock_capabilities`,recovery:t.recovery,walletSessionAuthorization:t.walletSessionAuthorization,ed25519ExportRootCustody:t.ed25519ExportRootCustody,ecdsa:{kind:`ecdsa`,operation:`wallet_unlock`,recovery:t.recovery,emailOtpSessionHandle:t.ecdsa.emailOtpSessionHandle,ecdsaSession:t.ecdsa.session,ecdsaCustody:t.ecdsa.custody},ed25519Yao:t.ed25519Yao.kind===`wallet_custody_cache_absent`?{kind:`wallet_custody_cache_absent`,recovery:t.recovery,ed25519YaoRecovery:t.ed25519Yao.bootstrap}:{kind:`ed25519_yao_capability`,recovery:t.recovery,activeClientHandle:t.ed25519Yao.activeClientHandle,metadata:t.ed25519Yao.metadata,ed25519YaoCapability:t.ed25519Yao.bootstrap,walletSessionAuthorization:t.walletSessionAuthorization,ed25519ExportRootCustody:t.ed25519ExportRootCustody}}}function uu(e){let t=e.walletSessionState.signingLane;if(t.auth.kind!==`passkey`)throw Error(`[SigningEngine][near] Passkey recovery returned another auth lane`);let n=t.identity.signer;return{walletId:n.account.wallet.walletId,nearAccountId:n.account.nearAccountId,thresholdSessionId:e.walletSessionState.thresholdSessionId,runtimePolicyScope:e.walletSessionState.runtimePolicyScope,materialActivation:e.materialActivation,auth:{kind:`passkey`,rpId:t.auth.rpId,credentialIdB64u:t.auth.credentialIdB64u},nearEd25519SigningKeyId:n.nearEd25519SigningKeyId,signerSlot:n.signerSlot}}function du(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be a positive integer`);return e}function fu(e){if(!Array.isArray(e)||e.length!==2||!Number.isSafeInteger(e[0])||!Number.isSafeInteger(e[1])||e[0]<1||e[1]<1||e[0]===e[1])throw Error(`participantIds must contain two distinct positive integers`);return[Number(e[0]),Number(e[1])]}function pu(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}function mu(e,t,n,r,i,a){if(`sessionKind`in e||`walletSessionToken`in e)throw Error(`sync-account signer bootstrap must not carry a Wallet Session bearer`);if(w(e.walletId,`session.walletId`)!==n.walletId||w(e.nearAccountId,`session.nearAccountId`)!==n.nearAccountId||w(e.nearEd25519SigningKeyId,`session.nearEd25519SigningKeyId`)!==n.nearEd25519SigningKeyId)throw Error(`Yao recovery session identity does not match the verified passkey`);let o=I(h(e.runtimePolicyScope,`session.runtimePolicyScope`)),s=oe(e.routerAbNormalSigning);if(!s)throw Error(`Yao recovery session signing state is invalid`);let c=pe(e.walletSessionId),l=de(e.quotaId);if(!c.ok||!l.ok)throw Error(`Yao recovery Wallet Session identity is invalid`);let u=du(e.expiresAtMs,`session.expiresAtMs`),d=du(e.remainingUses,`session.remainingUses`),p=r.capabilitySubjects.find(pu);if(r.walletId!==n.walletId||r.authorityId!==a.walletAuthorityId||r.authMethodId!==a.walletAuthMethodId||r.authorityDigestB64u!==a.authorityDigestB64u||r.authorityRevocationEpoch!==a.authorityRevocationEpoch||r.expiresAtMs!==u||i.walletSessionId!==c.value||!p||!f(p.materialActivation,a.materialActivation))throw Error(`Yao recovery session does not match the exact Wallet Session`);return{thresholdSessionId:w(e.thresholdSessionId,`session.thresholdSessionId`),authorizationId:r.authorizationId,walletSessionId:i.walletSessionId,quotaId:l.value,expiresAtMs:u,remainingUses:d,runtimePolicyScope:o,participantIds:t,routerAbNormalSigning:s,walletSession:r,operationCredential:i}}function hu(e){let t=e.capability,n=e.session,r=F(n.runtimePolicyScope);if(!r||t.applicationBinding.wallet_id!==String(e.walletId)||t.applicationBinding.near_ed25519_signing_key_id!==e.nearEd25519SigningKeyId||t.applicationBinding.key_creation_signer_slot!==e.signerSlot||t.nearAccountId!==e.nearAccountId||t.lifecycle.accountId!==String(e.walletId)||t.lifecycle.signingWorkerId!==e.relayerKeyId||n.routerAbNormalSigning?.signingWorkerId!==e.relayerKeyId||n.participantIds[0]!==t.participantIds[0]||n.participantIds[1]!==t.participantIds[1]||!ee(n.runtimePolicyScope,t.runtimePolicyScope)||n.runtimePolicyScope.signingRootVersion!==t.lifecycle.rootShareEpoch||t.applicationBinding.signing_root_id!==r.signingRootId||e.operationalPublicKey!==`ed25519:${Je(Uint8Array.from(t.registeredPublicKey))}`)throw Error(`Yao recovery response does not preserve the registered wallet identity`)}function gu(e){if(hu(e),e.capability.lifecycle.thresholdSessionId!==e.session.thresholdSessionId)throw Error(`Yao recovery response does not preserve the threshold material lifecycle`)}function _u(e,t){if(hu(e),!f(e.capability.materialActivation,t))throw Error(`Yao warm recovery response does not preserve exact material activation`)}function vu(e){return`operationCredential`in e?e.operationCredential.token:e.walletSessionToken}function yu(e){let t=h(e,`sync-account response`);if(t.ok!==!0||t.verified!==!0)throw Error(`sync-account response is not verified`);let r=Vt(w(t.walletId,`walletId`)),i=z(w(t.nearAccountId,`nearAccountId`)),a=w(t.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),s=h(t.thresholdEd25519,`thresholdEd25519`),c=fu(s.participantIds),l=h(t.ed25519YaoRecovery,`ed25519YaoRecovery`);if(l.kind!==`router_ab_ed25519_yao_sync_recovery_v1`)throw Error(`sync-account recovery kind is invalid`);let u=Ot(l.authorityRef);if(!u||String(u.walletId)!==String(r))throw Error(`sync-account recovery authority is invalid`);let d=n(t.walletAuthMethodId),f=o(t.walletAuthorityId),p=it(t.foundingAuthority),m=Lt(t.foundingAuthMethod);if(!d.ok||!f.ok||d.value!==u.walletAuthMethodId||!p.ok||p.value.state!==`active`||p.value.provenance.kind!==`wallet_registration`||p.value.walletId!==r||p.value.authorityId!==f.value||!m||m.kind!==`passkey`||m.status!==`active`||m.walletId!==r||m.walletAuthorityId!==f.value||m.walletAuthMethodId!==d.value)throw Error(`sync-account exact auth-method identity is invalid`);let g=h(t.walletCustody,`walletCustody`);if(g.kind!==`wallet_custody_sync_bootstrap_v1`)throw Error(`walletCustody kind is invalid`);let _=On(l.capability),v=re(t.walletSession),y=ne(t.operationCredential),b={authority:u,walletAuthMethodId:d.value,walletAuthorityId:f.value,foundingAuthority:p.value,foundingAuthMethod:m,walletId:r,nearAccountId:i,nearEd25519SigningKeyId:a,signerSlot:du(t.signerSlot,`signerSlot`),operationalPublicKey:w(t.publicKey,`publicKey`),relayerKeyId:w(s.relayerKeyId,`thresholdEd25519.relayerKeyId`),keyVersion:w(s.keyVersion,`thresholdEd25519.keyVersion`),credentialIdB64u:w(t.credentialIdB64u,`credentialIdB64u`),credentialPublicKeyB64u:w(t.credentialPublicKeyB64u,`credentialPublicKeyB64u`),session:mu(h(s.session,`thresholdEd25519.session`),c,{walletId:String(r),nearAccountId:String(i),nearEd25519SigningKeyId:a},v,y,{walletAuthorityId:f.value,walletAuthMethodId:d.value,authorityDigestB64u:p.value.authorityDigestB64u,authorityRevocationEpoch:p.value.revocationEpoch,materialActivation:_.materialActivation}),capability:_,walletSession:v,operationCredential:y,walletCustody:{envelope:Pe(g.envelope),storeVersion:w(g.storeVersion,`walletCustody.storeVersion`)}};return gu(b),b}function bu(e){let t=e.parsed,n=t.session,r=F(n.runtimePolicyScope),i=po({walletId:String(t.walletId),nearAccountId:String(t.nearAccountId),nearEd25519SigningKeyId:t.nearEd25519SigningKeyId,walletSessionId:n.walletSessionId,authorizationId:n.authorizationId,quotaId:n.quotaId,thresholdSessionId:e.thresholdSessionId,remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs,runtimePolicyScope:n.runtimePolicyScope,signingRootId:r.signingRootId,signingRootVersion:String(r.signingRootVersion||``),routerAbNormalSigning:n.routerAbNormalSigning,walletSessionToken:vu(n),home:`operationCredential`in n?n.operationCredential.home:n.home,nowMs:Math.min(Date.now(),n.expiresAtMs-1)});if(!i.ok)throw Error(`recovered Yao Wallet Session is unusable: ${i.reason}`);return yc({walletId:Ve(t.walletId),nearAccountId:t.nearAccountId,nearEd25519SigningKeyId:zt(t.nearEd25519SigningKeyId),signerSlot:t.signerSlot,rpId:bn(e.rpId),credentialIdB64u:t.credentialIdB64u,relayerUrl:e.relayerUrl,authority:t.authority,signingWalletSession:i.value})}function xu(e){if(!v(e)||e.kind!==`wallet_custody_passkey_login_v1`)throw Error(`Passkey wallet unlock returned invalid custody data`);if(!v(e.ed25519))throw Error(`Passkey wallet unlock omitted Ed25519 custody continuity`);if(e.ed25519.kind===`absent`)return{kind:`wallet_custody_passkey_login_v1`,envelope:Pe(e.envelope),storeVersion:w(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`absent`}};if(e.ed25519.kind!==`active`)throw Error(`Passkey wallet unlock returned invalid Ed25519 custody state`);let t=Number(e.ed25519.signerSlot),n=e.ed25519.participantIds;if(!Number.isSafeInteger(t)||t<1||!Array.isArray(n)||n.length!==2||!n.every(e=>Number.isSafeInteger(e)&&Number(e)>0)||n[0]===n[1])throw Error(`Passkey wallet unlock returned invalid Ed25519 signer identity`);return{kind:`wallet_custody_passkey_login_v1`,envelope:Pe(e.envelope),storeVersion:w(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`active`,nearAccountId:w(e.ed25519.nearAccountId,`walletCustody.ed25519.nearAccountId`),nearEd25519SigningKeyId:w(e.ed25519.nearEd25519SigningKeyId,`walletCustody.ed25519.nearEd25519SigningKeyId`),signerSlot:t,publicKey:w(e.ed25519.publicKey,`walletCustody.ed25519.publicKey`),relayerKeyId:w(e.ed25519.relayerKeyId,`walletCustody.ed25519.relayerKeyId`),participantIds:[Number(n[0]),Number(n[1])],capability:On(e.ed25519.capability)}}}function Su(e){if(!v(e))throw Error(`ECDSA custody chain target is invalid`);let t=w(e.kind,`ecdsaCustody.chainTarget.kind`),n=Number(e.chainId),r=w(e.networkSlug,`ecdsaCustody.chainTarget.networkSlug`);if(!Number.isSafeInteger(n)||n<0||!r)throw Error(`ECDSA custody chain target is invalid`);if(t===`evm`){if(e.namespace!==`eip155`)throw Error(`ECDSA custody EVM namespace is invalid`);return{kind:`evm`,namespace:`eip155`,chainId:n,networkSlug:r}}if(t===`tempo`)return{kind:`tempo`,chainId:n,networkSlug:r};throw Error(`ECDSA custody chain target kind is invalid`)}function Cu(e){if(!v(e)||e.kind!==`wallet_custody_ecdsa_sync_continuity_v1`)throw Error(`Passkey wallet unlock returned invalid ECDSA custody continuity`);if(!Array.isArray(e.signers))throw Error(`Passkey wallet unlock returned invalid ECDSA custody signers`);let t=[];for(let n of e.signers){if(!v(n)||!v(n.walletKey))throw Error(`Passkey wallet unlock returned invalid ECDSA custody signer`);let e=n.walletKey,r=e.participantIds;if(!Array.isArray(r)||r.length!==2||r[0]!==1||r[1]!==2)throw Error(`Passkey wallet unlock returned invalid ECDSA custody participants`);t.push({chainTarget:Su(n.chainTarget),walletKey:{walletId:w(e.walletId,`ecdsaCustody.walletKey.walletId`),keyHandle:w(e.keyHandle,`ecdsaCustody.walletKey.keyHandle`),ecdsaThresholdKeyId:w(e.ecdsaThresholdKeyId,`ecdsaCustody.walletKey.ecdsaThresholdKeyId`),signingRootId:w(e.signingRootId,`ecdsaCustody.walletKey.signingRootId`),signingRootVersion:w(e.signingRootVersion,`ecdsaCustody.walletKey.signingRootVersion`),relayerKeyId:w(e.relayerKeyId,`ecdsaCustody.walletKey.relayerKeyId`),contextBinding32B64u:w(e.contextBinding32B64u,`ecdsaCustody.walletKey.contextBinding32B64u`),derivationClientSharePublicKey33B64u:w(e.derivationClientSharePublicKey33B64u,`ecdsaCustody.walletKey.derivationClientSharePublicKey33B64u`),participantIds:[1,2],publicCapability:xt(e.publicCapability)},activationReceipt:ft(n.activationReceipt),runtimePolicyScope:I(n.runtimePolicyScope)})}if(t.length===0)throw Error(`Passkey wallet unlock omitted ECDSA custody signers`);return{kind:`wallet_custody_ecdsa_sync_continuity_v1`,signers:t}}function wu(e){let t=e.raw.sessionKind;if(t===`issued_exact_wallet_session`){let n=ne(e.raw.operationCredential);if(n.walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 credential does not identify its session`);return{sessionKind:t,operationCredential:n}}if(t!==`already_committed_exact_wallet_session`)throw Error(`Wallet unlock returned an unsupported Ed25519 session kind`);if(e.raw.operationCredential!==void 0)throw Error(`Reused Ed25519 Wallet Session must not carry its own credential`);if(ne(e.unlockCredential).walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 session reuses another Wallet Session`);return{sessionKind:t}}function Tu(e,n){if(e===null)return null;if(!v(e))throw Error(`Wallet unlock returned invalid Ed25519 session data`);let r=t(e.thresholdSessionId),i=me(e.authorizationId),a=pe(e.walletSessionId),o=de(e.quotaId),s=Number(e.expiresAtMs),c=Number(e.remainingUses),l=I(e.runtimePolicyScope),u=se(e.routerAbNormalSigning),d=e.participantIds;if(!r.ok||!i.ok||!a.ok||!o.ok||!Number.isSafeInteger(s)||s<=Date.now()||!Number.isSafeInteger(c)||c<1||!Array.isArray(d)||d.length!==2||!d.every(e=>Number.isSafeInteger(e)&&e>0)||d[0]===d[1])throw Error(`Wallet unlock returned invalid Ed25519 session lifecycle`);let f=wu({raw:e,walletSessionId:a.value,unlockCredential:n});return{walletId:w(e.walletId,`ed25519Session.walletId`),nearAccountId:w(e.nearAccountId,`ed25519Session.nearAccountId`),nearEd25519SigningKeyId:w(e.nearEd25519SigningKeyId,`ed25519Session.nearEd25519SigningKeyId`),relayerKeyId:w(e.relayerKeyId,`ed25519Session.relayerKeyId`),participantIds:[Number(d[0]),Number(d[1])],thresholdSessionId:r.value,authorizationId:i.value,walletSessionId:a.value,quotaId:o.value,expiresAtMs:s,remainingUses:c,runtimePolicyScope:l,routerAbNormalSigning:u,...f}}function Eu(e){let t=e.authorization.record,n=vt(e.ecdsaSession.public_capability.material_activation),r=0;for(let e of t.capabilitySubjects)e.kind===`sign`&&e.keyFamily===`ecdsa_secp256k1`&&f(e.materialActivation,n)&&(r+=1);if(t.walletId!==e.ed25519Session.walletId||t.walletId!==e.ecdsaSession.public_capability.client_id||t.authorizationId!==e.ed25519Session.authorizationId||t.authorizationId!==e.ecdsaSession.session.authorization_id||t.quotaId!==e.ed25519Session.quotaId||t.quotaId!==e.ecdsaSession.session.quota_id||t.expiresAtMs!==e.ed25519Session.expiresAtMs||t.expiresAtMs!==e.ecdsaSession.session.expires_at_ms||e.ed25519Session.walletSessionId!==e.ecdsaSession.session.wallet_session_id||e.authorization.operationCredential.walletSessionId!==e.ed25519Session.walletSessionId||e.ed25519Session.remainingUses!==e.ecdsaSession.session.remaining_uses||r!==1)throw Error(`Passkey ECDSA activation authority does not match its Wallet Session`)}function Du(e){let t=e.authorization.record;if(t.walletId!==e.ed25519Session.walletId||t.authorizationId!==e.ed25519Session.authorizationId||t.quotaId!==e.ed25519Session.quotaId||t.expiresAtMs!==e.ed25519Session.expiresAtMs||e.authorization.operationCredential.walletSessionId!==e.ed25519Session.walletSessionId)throw Error(`Passkey Ed25519 Wallet Session authorization is inconsistent`)}async function Ou(e,t){let n=e.data.walletSession!==void 0;if(n!==(e.data.operationCredential!==void 0))throw Error(`Passkey wallet unlock returned a partial Wallet Session authorization`);if(n){if(e.ed25519Session.sessionKind!==`already_committed_exact_wallet_session`)throw Error(`Passkey wallet unlock returned competing Wallet Session credentials`);let t={record:re(e.data.walletSession),operationCredential:ne(e.data.operationCredential)};return Du({ed25519Session:e.ed25519Session,authorization:t}),t}if(e.ed25519Session.sessionKind!==`issued_exact_wallet_session`)throw Error(`Passkey wallet unlock omitted the exact Wallet Session credential`);let r=await t.read({relayerUrl:e.relayServerUrl,operationCredential:e.ed25519Session.operationCredential},{walletSessionId:e.ed25519Session.walletSessionId,quotaId:e.ed25519Session.quotaId});if(r.status!==`active`||r.walletSessionId!==e.ed25519Session.walletSessionId||r.quotaId!==e.ed25519Session.quotaId||r.expiresAtMs!==e.ed25519Session.expiresAtMs||r.remainingUses!==e.ed25519Session.remainingUses)throw Error(`Passkey wallet unlock returned an inconsistent issued Wallet Session`);let i={record:r.authorization,operationCredential:e.ed25519Session.operationCredential};return Du({ed25519Session:e.ed25519Session,authorization:i}),i}async function ku(e,t){let n=await Ou(e,t);return Eu({ed25519Session:e.ed25519Session,ecdsaSession:e.ecdsaSession,authorization:n}),n}function Au(e){let t=Un(e)??Xn(e);return t?{success:!1,kind:`already_committed`,code:t.code,message:t.message,next:t.next,committed:t.committed}:null}async function ju(e,t,n){try{if(t.type!==`passkey_assertion`)throw Error(`Passkey wallet unlock requires a passkey assertion`);let r=w(t.challengeId,`challengeId`),i=t.webauthn_authentication,a=String(t.expected_origin||``).trim(),o={unlockBackend:`passkey`,challengeId:r,...`walletId`in t&&t.walletId?{walletId:t.walletId}:{},webauthn_authentication:An(i),ed25519SessionRequest:t.ed25519SessionRequest,...a?{expected_origin:a}:{},...t.ecdsaSessionPolicy?{ecdsaSessionPolicy:pt(t.ecdsaSessionPolicy)}:{}},c=s(e,`/wallet/unlock/verify`),l=await fetch(c,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(o)}),u=await l.json().catch(()=>({})),d=v(u)?u:{};if(!l.ok)return Au(d)||{success:!1,error:typeof d.message==`string`?d.message:`HTTP ${l.status}`};if(d.ok!==!0)return Au(d)||{success:!1,error:typeof d.message==`string`?d.message:`Wallet unlock verification failed`};let f=t.type===`passkey_assertion`&&t.ecdsaSessionPolicy!==void 0,p=Tu(d.ed25519Session,d.operationCredential);if(t.ed25519SessionRequest.kind===`requested`&&!p)throw Error(`Wallet unlock omitted the requested Ed25519 Wallet Session`);if(t.ed25519SessionRequest.kind===`not_requested`&&p)throw Error(`Wallet unlock returned an unrequested Ed25519 Wallet Session`);let m=xu(d.walletCustody),h,g,_,y;if(f){if(d.ecdsaSession===void 0)throw Error(`Wallet unlock omitted the requested ECDSA Wallet Session activation`);if(h=v(d.ecdsaSession)&&d.ecdsaSession.kind===`router_ab_ecdsa_credential_free_session_activated_v1`?Et(d.ecdsaSession):At(d.ecdsaSession),d.ecdsaActivationReceipt===void 0||d.ecdsaCustody===void 0)throw Error(`Wallet unlock omitted ECDSA custody continuity`);if(_=ft(d.ecdsaActivationReceipt),y=Cu(d.ecdsaCustody),!m)throw Error(`Wallet unlock omitted wallet custody for ECDSA activation`);if(h.kind===`router_ab_ecdsa_credential_free_session_activated_v1`){if(!p)throw Error(`Credential-free ECDSA activation requires an Ed25519 Wallet Session`);g=await ku({relayServerUrl:e,data:d,ed25519Session:p,ecdsaSession:h},n)}}else if(d.ecdsaSession!==void 0)throw Error(`Wallet unlock returned an unrequested ECDSA Wallet Session activation`);else p&&(g=await Ou({relayServerUrl:e,data:d,ed25519Session:p},n));if(h&&_&&y&&m){if(h.kind===`router_ab_ecdsa_credential_free_session_activated_v1`){if(!g)throw Error(`Credential-free ECDSA activation omitted exact Wallet Session authority`);return{success:!0,ecdsaSession:h,ecdsaActivationReceipt:_,ecdsaCustody:y,ed25519Session:p,walletCustody:m,walletSessionAuthorization:g}}return{success:!0,ecdsaSession:h,ecdsaActivationReceipt:_,ecdsaCustody:y,ed25519Session:p,walletCustody:m}}if(m&&p&&g)return{success:!0,ed25519Session:p,walletCustody:m,walletSessionAuthorization:g};if(m&&!p)return{success:!0,ed25519Session:null,walletCustody:m};throw Error(`Passkey wallet unlock returned incomplete exact session state`)}catch(e){return{success:!1,error:be(e)||`Failed to verify wallet unlock`}}}async function Mu(e,t){try{let n=w(t.challengeId,`challengeId`),r=String(t.expected_origin||``).trim(),i={unlockBackend:`passkey`,challengeId:n,webauthn_authentication:An(t.webauthn_authentication),ed25519SessionRequest:t.ed25519SessionRequest,...r?{expected_origin:r}:{}},a=await fetch(s(e,`/wallet/unlock/verify`),{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(i)}),o=await a.json().catch(()=>({})),c=v(o)?o:{};if(!a.ok||c.ok!==!0)return Au(c)||{success:!1,error:typeof c.message==`string`?c.message:`Wallet Session unlock failed (HTTP ${a.status})`};if(c.walletCustody!==void 0&&c.walletCustody!==null)throw Error(`Linked passkey unlock returned custody data`);if(c.ecdsaSession!==void 0&&c.ecdsaSession!==null)throw Error(`Linked passkey unlock returned an ECDSA activation`);let l=Tu(c.ed25519Session,c.operationCredential);if(t.ed25519SessionRequest.kind===`requested`&&!l)throw Error(`Linked passkey unlock omitted the requested Ed25519 Wallet Session`);if(t.ed25519SessionRequest.kind===`not_requested`&&l)throw Error(`Linked passkey unlock returned an unrequested Ed25519 Wallet Session`);return{success:!0,walletSession:re(c.walletSession),operationCredential:ne(c.operationCredential),ed25519Session:l}}catch(e){return{success:!1,error:be(e)||`Failed to verify linked passkey Wallet Session`}}}function Nu(e){let t=c(e);if(!t.ok)throw Error(`ECDSA registration recovery could not create a session id`);return t.value}function Pu(e){let t=fe(e);if(!t.ok)throw Error(`ECDSA registration recovery could not create a Wallet Session mint id`);return t.value}function Fu(e){return pt({kind:`router_ab_ecdsa_post_registration_session_activation_policy_v1`,key_handle:e.keyHandle,session_policy:{threshold_session_id:Nu(_r(`threshold-ecdsa-registration-recovery`)),wallet_session_mint_id:Pu(_r(`wallet-session-mint`)),ttl_ms:e.sessionPolicy.ttlMs,remaining_uses:e.sessionPolicy.unlockRemainingUses,runtime_policy_scope:e.runtimePolicyScope}})}async function Iu(e){let t=await fetch(s(e.relayerUrl,`/wallet/unlock/challenge`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({unlockBackend:`passkey`,userId:e.walletId,rpId:e.rpId})}),n=h(await t.json().catch(()=>({})),`Passkey unlock challenge response`);if(!t.ok||n.ok!==!0)throw Error(typeof n.message==`string`&&n.message?n.message:`wallet/unlock/challenge failed (HTTP ${t.status})`);return{challengeId:T(n.challengeId,`Passkey unlock challenge ID`),challengeB64u:T(n.challengeB64u,`Passkey unlock challenge`)}}function Lu(e){return e===`ble`||e===`hybrid`||e===`internal`||e===`nfc`||e===`usb`}function Ru(e,t){return{id:e,type:`public-key`,transports:t.filter(Lu)}}function zu(e){let t=e.session.session.wallet_session;if(t.walletId!==e.pending.walletId||t.authMethodId!==e.pending.walletAuthMethodId||t.authorityId!==e.response.foundingAuthority.authorityId||t.expiresAtMs!==e.session.session.expires_at_ms||t.authorizationId!==e.session.session.authorization_id||t.quotaId!==e.session.session.quota_id||e.session.session.remaining_uses<=0||e.session.session.expires_at_ms<=Date.now()||e.session.session.wallet_session_id!==e.session.session.operation_credential.walletSessionId||!gt(e.session.public_capability,e.walletKey.publicCapability))throw Error(`ECDSA registration unlock did not issue the exact Wallet Session`)}function Bu(e){if(e.signers.length!==e.walletKeys.length)throw Error(`ECDSA registration unlock returned incomplete custody continuity`);let t=new Map;for(let n of e.walletKeys){let e=Ue(n.chainTarget);if(t.has(e))throw Error(`ECDSA registration has duplicate custody targets`);t.set(e,n)}for(let n of e.signers){let r=Ue(n.chainTarget),i=t.get(r);if(!i)throw Error(`ECDSA registration unlock returned an unknown target`);if(t.delete(r),n.walletKey.walletId!==e.pending.walletId||n.walletKey.keyHandle!==i.keyHandle||n.walletKey.ecdsaThresholdKeyId!==i.ecdsaThresholdKeyId||n.walletKey.signingRootId!==i.signingRootId||n.walletKey.signingRootVersion!==i.signingRootVersion||n.walletKey.relayerKeyId!==i.relayerKeyId||n.walletKey.contextBinding32B64u!==i.contextBinding32B64u||n.walletKey.derivationClientSharePublicKey33B64u!==i.derivationClientSharePublicKey33B64u||!gt(n.walletKey.publicCapability,i.publicCapability)||!Pt(n.activationReceipt,e.response.ecdsa.activation))throw Error(`ECDSA registration unlock returned different custody continuity`)}}function Vu(e){new Uint8Array(e).fill(0)}async function Hu(e){if(e.pending.auth.kind!==`passkey`)throw Error(`ECDSA registration passkey unlock has a different pending factor`);let t=e.walletKeys[0];if(!t)throw Error(`ECDSA registration unlock has no primary wallet key`);let n=typeof window<`u`?window.location.origin:``;if(!n)throw Error(`ECDSA registration passkey unlock requires an origin`);Ol(e.onEvent,String(e.pending.walletId),{phase:Qt.STEP_03_PASSKEY_CHALLENGE_STARTED,status:`running`,authMethod:`passkey`});let r=await Iu({relayerUrl:e.relayerUrl,walletId:String(e.pending.walletId),rpId:e.pending.auth.rpId});Ol(e.onEvent,String(e.pending.walletId),{phase:Qt.STEP_03_PASSKEY_PROMPT_STARTED,status:`waiting_for_user`,authMethod:`passkey`,interaction:{kind:`passkey_assert`,overlay:`show`}});let i=await e.signingSurface.getAuthenticationCredentialsSerialized({subjectId:String(e.pending.walletId),challengeB64u:r.challengeB64u,allowCredentials:[Ru(e.pending.auth.credentialIdB64u,e.pending.auth.transports)],includeSecondPrfOutput:!0});if(ur(i)!==e.pending.auth.credentialIdB64u)throw Error(`ECDSA registration unlock returned a different Passkey credential`);Ol(e.onEvent,String(e.pending.walletId),{phase:Qt.STEP_03_PASSKEY_PROMPT_SUCCEEDED,status:`succeeded`,authMethod:`passkey`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let a=fr(i,`ECDSA registration recovery`),o=await ju(e.relayerUrl,{type:`passkey_assertion`,challengeId:r.challengeId,walletId:String(e.pending.walletId),webauthn_authentication:i,ed25519SessionRequest:{kind:`not_requested`},expected_origin:n,ecdsaSessionPolicy:Fu({keyHandle:t.keyHandle,sessionPolicy:e.sessionPolicy,runtimePolicyScope:sl(e.response).ecdsa.runtimePolicyScope})},new Tn);if(!o.success)throw Error(o.error||`Passkey ECDSA registration unlock failed`);if(o.ecdsaSession.kind!==`router_ab_ecdsa_post_registration_session_activated_v1`||!o.ecdsaCustody||!o.walletCustody)throw Error(`Passkey ECDSA registration unlock did not issue exact session custody`);zu({pending:e.pending,response:e.response,session:o.ecdsaSession,walletKey:t}),Bu({pending:e.pending,response:e.response,walletKeys:e.walletKeys,signers:o.ecdsaCustody.signers});let s=Uint8Array.from(j(a)).buffer;try{let n=await e.signingSurface.rejoinWalletCustodyEvmFamilyKeySet({walletId:String(e.pending.walletId),custodyJson:Ml(e.pending.localMaterial.custodyCommit),factorSecret:s,evmFamilySigningKeySlotId:t.evmFamilySigningKeySlotId,applicationBindingDigestB64u:e.response.ecdsa.bootstrap.applicationBindingDigestB64u,registeredClientRootPublicKey33B64u:t.derivationClientSharePublicKey33B64u,relayerPublicIdentityJson:JSON.stringify({relayerKeyId:t.relayerKeyId,relayerPublicKey33B64u:t.relayerVerifyingShareB64u,groupPublicKey33B64u:t.thresholdEcdsaPublicKeyB64u,ethereumAddress:t.thresholdOwnerAddress,relayerShareRetryCounter:t.relayerShareRetryCounter})});return{kind:`passkey`,credential:i,custody:o.walletCustody,session:o.ecdsaSession,readyStateBlobB64u:n.readyStateBlobB64u,publicFacts:n.publicFacts}}finally{Vu(s)}}async function Uu(e){if(e.pending.auth.kind!==`email_otp`)throw Error(`ECDSA registration Email OTP unlock has a different pending factor`);let t=e.walletKeys[0];if(!t)throw Error(`ECDSA registration unlock has no primary wallet key`);let n=sl(e.response).ecdsa.runtimePolicyScope,r=await su({walletSession:{walletId:Ve(e.pending.walletId),walletSessionUserId:String(e.pending.walletId)},authoritySelector:{kind:`wallet_auth_method`,walletAuthMethodId:e.pending.walletAuthMethodId},relayUrl:e.relayerUrl,groupId:ae,routePlan:eu({freshRouteFamily:`login`,operation:we}),workerCtx:e.signingSurface.getSignerWorkerContext(),verification:{kind:`otp`,challengeId:e.exactMethod.challengeId,otpCode:e.exactMethod.otpCode},runtimePolicyScope:n,ecdsaSessionHandleBinding:{keyHandle:t.keyHandle,authSubjectId:e.pending.auth.providerSubject,operation:`wallet_unlock`,chainTarget:t.chainTarget},ecdsaSessionPolicy:Fu({keyHandle:t.keyHandle,sessionPolicy:e.sessionPolicy,runtimePolicyScope:n})});if(r.operation!==`wallet_unlock`)throw Error(`Email OTP ECDSA registration unlock returned the wrong operation`);return zu({pending:e.pending,response:e.response,session:r.ecdsaSession,walletKey:t}),Bu({pending:e.pending,response:e.response,walletKeys:e.walletKeys,signers:r.ecdsaCustody.continuity.signers}),{kind:`email_otp`,session:r.ecdsaSession,readyStateBlobB64u:r.ecdsaCustody.readyStateBlobB64u,publicFacts:r.ecdsaCustody.publicFacts}}async function Wu(e){switch(e.exactMethod.kind){case`passkey`:return await Hu({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,onEvent:e.onEvent,pending:e.pending,response:e.response,walletKeys:e.walletKeys,exactMethod:e.exactMethod,signingSurface:e.signingSurface});case`email_otp`:return await Uu({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,onEvent:e.onEvent,pending:e.pending,response:e.response,walletKeys:e.walletKeys,exactMethod:e.exactMethod,signingSurface:e.signingSurface});default:throw e.exactMethod,Error(`Unsupported pending registration unlock method: ${String(e.exactMethod)}`)}}const Gu={listPendingWalletRegistrationCommits:Ku,completeWalletRegistrationNearProvisioning:Gn,publishPendingWalletRegistrationCommit:qu};async function Ku(){return await V.initialize(),await V.listPendingWalletRegistrationCommits()}async function qu(e){return await V.publishPendingWalletRegistrationCommit(e)}function Ju(e){return e instanceof Error?e:Error(String(e||`pending registration replay failed`))}function Yu(e){return e.operation===`near_provisioning`&&e.phase===`joined`}function Xu(e,t){let n=e.localMaterial.ed25519.metadata,r=e.localMaterial.ed25519.localMaterial;return{binding:{kind:Mn,applicationBindingDigestB64u:r.applicationBindingDigestB64u,registeredPublicKeyB64u:n.registeredPublicKeyB64u,participantIds:n.participantIds,stateEpoch:n.stateEpoch,walletId:String(t.walletId),nearAccountId:t.ed25519.nearAccountId,nearEd25519SigningKeyId:t.ed25519.nearEd25519SigningKeyId,signerSlot:t.ed25519.signerSlot,signingWorkerId:n.signingWorkerId,signingWorkerVerifyingShareB64u:n.signingWorkerVerifyingShareB64u},sealed:{ciphertextB64u:r.b64u,nonceB64u:r.nonceB64u}}}function Zu(e){let t=j(e.localMaterial.ed25519.metadata.registeredPublicKeyB64u);if(t.length!==32)throw Error(`pending registration has an invalid Ed25519 registered public key`);return`ed25519:${Je(t)}`}function Qu(e,t,n){let r=e.localMaterial.ed25519.metadata,i=e.localMaterial.custodyCommit;if(e.auth.kind===`passkey`){if(tl({clientPublicKey:n,finalized:t,expectedRpId:e.auth.rpId,expectedWalletId:e.walletId}).credentialIdB64u!==e.auth.credentialIdB64u)throw Error(`pending registration returned a different Passkey credential`)}else nl({clientPublicKey:n,finalized:t,expectedRegistrationAuthorityId:e.auth.registrationAuthorityId,expectedWalletId:e.walletId});if(t.foundingAuthMethod.walletAuthMethodId!==e.walletAuthMethodId||t.foundingAuthMethod.walletId!==e.walletId||t.foundingAuthority.walletId!==e.walletId||t.ed25519.signerSlot!==r.signerSlot||t.ed25519.nearEd25519SigningKeyId!==r.nearEd25519SigningKeyId||t.ed25519.participantIds[0]!==r.participantIds[0]||t.ed25519.participantIds[1]!==r.participantIds[1]||t.ed25519.routerAbNormalSigning.signingWorkerId!==r.signingWorkerId||t.ed25519.relayerKeyId!==t.ed25519.routerAbNormalSigning.signingWorkerId||t.custodyKeyManifestDigestB64u!==i.keyManifestDigestB64u||i.registeredPublicKeyB64u!==void 0&&i.registeredPublicKeyB64u!==r.registeredPublicKeyB64u)throw Error(`pending registration does not match the committed NEAR projection`);rn(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function $u(e,t){let n=t.registrationEstablishedSession.session,r=n.tokens.kind===`near_ed25519`||n.tokens.kind===`near_ed25519_and_evm_family_ecdsa`?n.tokens.ed25519:null,i=e.localMaterial.ed25519.metadata;if(n.walletId!==e.walletId||!r||r.nearAccountId!==t.ed25519.nearAccountId||r.nearEd25519SigningKeyId!==t.ed25519.nearEd25519SigningKeyId||r.routerAbNormalSigning.signingWorkerId!==i.signingWorkerId||!f(r.materialActivation,i.materialActivation))throw Error(`pending registration does not match the committed Wallet Session projection`)}function ed(e,t){$u(e,t);let n=t.registrationEstablishedSession;if(n.kind===`issued`){if(n.session.walletSession.walletId!==e.walletId||n.session.walletSession.authMethodId!==e.walletAuthMethodId)throw Error(`pending registration issued a Wallet Session for another auth method`);return}if(n.next!==`unlock_exact_method`)throw Error(`pending registration replay has an invalid continuation`)}function td(e,t,n){if(!t.ok||t.kind!==`near_ed25519`)throw Error(t.ok?`pending registration replay returned a different signer branch`:`pending registration replay failed: ${t.code}`);if(t.walletCustody?.status!==n)throw Error(`pending registration replay did not commit the expected wallet custody`);return Qu(e,t,Zu(e)),t}function nd(e,t){let n=td(e,t,e.signerPlanKind===`near_ed25519`?`committed`:`joined`);if(e.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`&&(n.registrationEstablishedSession.kind!==`already_committed`||n.registrationEstablishedSession.session.tokens.kind!==`near_ed25519_and_evm_family_ecdsa`))throw Error(`NEAR completion must extend the committed ECDSA session`);return ed(e,n),n}async function rd(e,t){let n=Zu(e),r={walletId:e.walletId,nearAccountId:z(t.ed25519.nearAccountId),nearEd25519SigningKeyId:t.ed25519.nearEd25519SigningKeyId,signerSlot:t.ed25519.signerSlot,operationalPublicKey:n,relayerKeyId:t.ed25519.relayerKeyId,keyVersion:t.ed25519.keyVersion,participantIds:t.ed25519.participantIds,custodyMaterial:Xu(e,t)};if(e.auth.kind===`passkey`){if(t.authMethod.kind!==`passkey`)throw Error(`pending Passkey registration replay returned a non-Passkey auth method`);return Nn({...r,rpId:e.auth.rpId,credentialIdB64u:e.auth.credentialIdB64u,credentialPublicKeyB64u:t.authMethod.credentialPublicKeyB64u,transports:e.auth.transports})}if(t.authMethod.kind!==`email_otp`)throw Error(`pending Email OTP registration replay returned a non-Email OTP auth method`);let i=Dt(t.authority);if(!i)throw Error(`pending Email OTP registration replay returned an invalid authority`);return await Fn({...r,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:i})}function id(e,t,n){return{pending:e,authority:t.authority,foundingAuthority:{authority:t.foundingAuthority,authMethod:t.foundingAuthMethod},request:{operation:e.operation,registrationCeremonyId:e.registrationCeremonyId,idempotencyKey:e.idempotencyKey,walletId:e.walletId,walletAuthMethodId:e.walletAuthMethodId},ecdsaContinuity:[],walletSessionPublication:t.registrationEstablishedSession.kind===`issued`?{kind:`issued`,walletSession:t.registrationEstablishedSession.session.walletSession,operationCredential:t.registrationEstablishedSession.session.operationCredential}:{kind:`credential_free_projection`,walletSession:t.registrationEstablishedSession.session.walletSession},registration:n}}function ad(e){switch(e.auth.kind){case`passkey`:return{kind:`passkey`};case`email_otp`:return{kind:`email_otp`,enrollment:e.auth.enrollment};default:throw e.auth,Error(`pending registration has an unsupported auth method`)}}function od(e,t){return{relayerUrl:e,registrationCeremonyId:t.registrationCeremonyId,signedSetup:t.signedSetup,idempotencyKey:t.idempotencyKey,ed25519:{activationReference:t.localMaterial.ed25519.activationReference},auth:ad(t),walletCustodyCommit:t.localMaterial.custodyCommit}}async function sd(e){let t=od(e.relayerUrl,e.pending),n=await e.ports.completeWalletRegistrationNearProvisioning(t);return nd(e.pending,n)}async function cd(e){let t=await Gn({...od(e.relayerUrl,e.pending),headers:E(e.operationCredential)}),n=nd(e.pending,t),r=n.registrationEstablishedSession.session;if(r.tokens.kind!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`Persisted mixed registration has no NEAR session`);let i=r.tokens.ed25519,a=rt({kind:`router_ab_ed25519_yao_warm_recovery_bootstrap_request_v1`,walletId:e.pending.walletId,nearAccountId:n.ed25519.nearAccountId,nearEd25519SigningKeyId:n.ed25519.nearEd25519SigningKeyId,signerSlot:n.ed25519.signerSlot,thresholdSessionId:i.thresholdSessionId,signingWorkerId:n.ed25519.routerAbNormalSigning.signingWorkerId,participantIds:n.ed25519.participantIds});if(!a.ok)throw Error(a.message);let o=await fetch(`${e.relayerUrl.replace(/\/$/,``)}${Qe}`,{method:`POST`,headers:{...E(e.operationCredential),"Content-Type":`application/json`},body:JSON.stringify(a.value)}),s=await o.json();if(!o.ok||!s||typeof s!=`object`)throw Error(`Persisted NEAR registration activation is unavailable`);let c=On(Reflect.get(s,`capability`)),l=e.pending.localMaterial.ed25519.metadata;if(c.registrationContinuity.kind!==`registration`||c.applicationBinding.wallet_id!==e.pending.walletId||c.applicationBinding.near_ed25519_signing_key_id!==l.nearEd25519SigningKeyId||c.lifecycle.lifecycleId!==e.pending.localMaterial.ed25519.activationReference.lifecycle_id||c.lifecycle.thresholdSessionId!==i.thresholdSessionId||c.lifecycle.signingWorkerId!==l.signingWorkerId||c.applicationBinding.key_creation_signer_slot!==l.signerSlot||A(Uint8Array.from(c.registeredPublicKey))!==l.registeredPublicKeyB64u||!f(c.materialActivation,l.materialActivation))throw Error(`Persisted NEAR registration activation changed identity`);let u=c.registrationContinuity;return{joined:{commitPayload:e.pending.localMaterial.custodyCommit,activationReference:e.pending.localMaterial.ed25519.activationReference,localMaterial:e.pending.localMaterial.ed25519.localMaterial,metadata:fa({material:Xu(e.pending,n),activation:{materialActivation:c.materialActivation,lifecycleId:c.lifecycle.lifecycleId,signingRootVersion:c.lifecycle.rootShareEpoch,signingRootId:c.applicationBinding.signing_root_id,signerSetId:c.lifecycle.signerSetId,thresholdSessionId:c.lifecycle.thresholdSessionId,activationTranscriptB64u:A(Uint8Array.from(u.activationTranscript)),activationCapabilityBindingB64u:A(Uint8Array.from(c.activeCapabilityBinding))}})},admissionRequest:u.admissionRequest,admissionReceipt:u.admissionReceipt}}async function ld(e){let t=await sd(e),n=await rd(e.pending,t);return await e.ports.publishPendingWalletRegistrationCommit(id(e.pending,t,n)),{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId}}async function ud(e){let t=e.ports||Gu,n=await t.listPendingWalletRegistrationCommits(),r=[];for(let i of n){if(al(i)||ol(i)){r.push({kind:`unlock_required`,registrationCeremonyId:i.registrationCeremonyId,keyFamilies:i.localMaterial.keyFamilies,next:`unlock_exact_method`,reason:`ecdsa_local_finalization`});continue}if(i.operation===`near_provisioning`&&i.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){r.push({kind:`unlock_required`,reason:`near_provisioning`,registrationCeremonyId:i.registrationCeremonyId,next:`unlock_exact_method`});continue}if(Yu(i))try{r.push(await ld({relayerUrl:e.relayerUrl,pending:i,ports:t}))}catch(e){r.push({kind:`failed`,registrationCeremonyId:i.registrationCeremonyId,error:Ju(e)})}}return r}const dd={activateWalletRegistration:Wn,publishPendingWalletRegistrationCommit:qu,unlockPendingEcdsaRegistration:Wu};async function fd(e){await V.initialize();let t=null;for(let n of await V.listPendingWalletRegistrationCommits())if(!(n.operation!==`registration_activate`||n.walletId!==e)){if(t)throw Error(`wallet has multiple pending registration activations`);t=n}if(!t)return null;if(!al(t)&&!ol(t))throw Error(`pending registration commit is not ECDSA-enabled`);return t}async function pd(e){if(e.pending.auth.kind!==e.exactMethod.kind)throw Error(`pending registration requires its exact authentication method`);return await Dl({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,pending:e.pending,exactMethod:e.exactMethod,signingSurface:e.signingSurface,ports:dd,nearContext:e.nearContext,nearCompletion:e.nearCompletion,onEvent:e.onEvent})}async function md(e){let t=performance.now();vr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:`started`,startedAtMs:t});try{let n=await e.signingEngine.scheduleRouterAbEcdsaDerivationLoginPresignaturePrefill({walletId:e.walletId,chainTarget:e.chainTarget},e.statusReads);vr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:n.status,reason:n.reason,scheduleReason:`schedule`in n?n.schedule.reason:null,walletSessionId:n.walletSessionId,durationMs:performance.now()-t})}catch{vr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:`failed`,reason:`unexpected_error`,durationMs:performance.now()-t})}}const hd=new Map,gd=new Set;function _d(e,t){for(let n of gd)try{n(e,t)}catch{}}function vd(e,t){let n=String(e),r=hd.get(n);if(r)return r;let i={state:{status:`near_pending`,updatedAtMs:t},inFlight:null};return hd.set(n,i),i}function yd(e){return hd.get(String(e))?.state??null}async function bd(e){let t=hd.get(String(e));return t?t.inFlight?await t.inFlight:t.state:null}function xd(e,t){let n=vd(e,t.updatedAtMs);n.state.status===`near_ready`&&t.status!==`near_ready`||(n.state=t,_d(e,t))}function Sd(e){return gd.add(e),()=>{gd.delete(e)}}function Cd(e){let t=vd(e.walletId,e.nowMs());if(t.inFlight)return t.inFlight;if(t.state.status===`near_ready`)return Promise.resolve(t.state);xd(e.walletId,{status:`near_provisioning`,updatedAtMs:e.nowMs()});let n=(async()=>{try{return await e.attempt()}catch(t){return{status:`near_failed_retryable`,updatedAtMs:e.nowMs(),error:t instanceof Error?t.message:String(t),errorCode:`near_provisioning_failed`}}})().then(n=>(t.inFlight=null,xd(e.walletId,n),n));return t.inFlight=n,n}function wd(e){let t=e.registration;if(t.mode!==`managed`)return;let n=String(t.projectEnvironmentId||``).trim(),r=String(t.publishableKey||``).trim();if(!(!n||!r))return{projectEnvironmentId:n,publishableKey:r}}async function Td(e){let{session:t,previous:n}=e;if(n.walletId!==t.walletId||n.authorityId!==t.authorityId||n.revocationEpoch!==t.authorityRevocationEpoch||n.authorityDigestB64u===t.authorityDigestB64u||!n.signerActivations.ed25519)return;let r=t.capabilitySubjects.find(Ed);if(!r||r.kind!==`sign`)return;let i=await ct({authority:n,materialActivation:r.materialActivation,updatedAtMs:Date.now()});i.authorityDigestB64u===t.authorityDigestB64u&&await Re.runTransaction([Ie.walletAuthorities,Ie.signingSessionSeals],`readwrite`,Dd.bind(null,n,i))}function Ed(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}async function Dd(e,t,n){let r=n.store(Ie.walletAuthorities),i=sn(await r.get(e.authorityId));if(!i||i.record.state!==`active`||i.record.walletId!==e.walletId||i.record.revocationEpoch!==e.revocationEpoch||i.record.authorityDigestB64u!==e.authorityDigestB64u&&i.record.authorityDigestB64u!==t.authorityDigestB64u)throw Error(`Recovered Ed25519 authority changed before local adoption`);i.record.authorityDigestB64u!==t.authorityDigestB64u&&await r.put(an(t));let a=e.signerActivations.ed25519;if(!a)return;let o=await n.store(Ie.signingSessionSeals).index(`wallet_id`).openCursor(e.walletId);for(;o;){let t=$o(No(o.value));t.kind===`current`&&t.record.curve===`ed25519`&&t.record.walletId===e.walletId&&f(t.record.ed25519Restore.materialActivation,a.materialActivation)&&await o.delete(),o=await o.continue()}}async function Od(e){let t=(await V.listWalletAuthMethodsV2ForWallet(String(e.walletId))).filter(t=>t.kind===`passkey`&&t.status===`active`&&t.walletId===e.walletId&&String(t.rpId)===e.rpId&&String(t.credentialIdB64u)===e.credentialIdB64u),[n]=t;if(t.length!==1||!n)throw Error(`passkey authority requires one exact active V2 auth method`);return n}async function kd(e){return await Ad(await Od(e))}async function Ad(e){return await Ft({authority:{walletId:e.walletId,factor:{kind:`passkey`,credentialIdB64u:e.credentialIdB64u},verifier:{kind:`webauthn`,rpId:e.rpId},bindingId:e.walletAuthMethodId}})}async function jd(e){let{record:t,operationCredential:n}=e.authorization;e.statusReads.invalidateCredential(n.token);let r=await e.statusReads.read({relayerUrl:e.relayerUrl,operationCredential:n},{walletSessionId:n.walletSessionId,quotaId:t.quotaId});if(r.status!==`active`||!br(r.authorization,t)||r.authorization.authorityRevocationEpoch!==t.authorityRevocationEpoch||!r.authorization.capabilitySubjects.some(Md.bind(null,e.materialActivation)))throw Error(`Recovered Ed25519 material does not match the active Wallet Session`);if(await Td({session:r.authorization,previous:e.previousAuthority}),await Nd({walletId:t.walletId,authorization:{record:r.authorization,operationCredential:n}}),(await V.replaceExactActiveWalletSessionFromStatus({active:r.authorization,operationCredential:n})).kind===`superseded`)throw Error(`Wallet Session changed before recovered authority adoption`)}function Md(e,t){return t.kind===`sign`&&t.keyFamily===`ed25519`&&f(e,t.materialActivation)}async function Nd(e){let t=await V.getWalletAuthMethodV2(e.authorization.record.authMethodId);if(!t||t.kind!==`passkey`||t.status!==`active`||t.walletId!==e.walletId||t.walletAuthorityId!==e.authorization.record.authorityId)throw Error(`Passkey Wallet Session authorization changed auth-method identity`);let n=await V.getWalletAuthority(t.walletAuthorityId);if(!n||n.state!==`active`||n.walletId!==e.walletId||n.authorityId!==e.authorization.record.authorityId||n.authorityDigestB64u!==e.authorization.record.authorityDigestB64u||n.revocationEpoch!==e.authorization.record.authorityRevocationEpoch)throw Error(`Passkey Wallet Session authorization changed authority identity`);return{reference:await Ad(t),identity:xr({authority:n,walletAuthMethodId:t.walletAuthMethodId})}}async function Pd(e){let t=await V.getWalletAuthMethodV2(e.authMethodId);if(!t||t.kind!==`passkey`||t.status!==`active`||t.walletId!==e.walletId)throw Error(`Passkey recovery requires its active authentication method`);let n=await V.getWalletAuthority(t.walletAuthorityId);if(!n||n.state!==`active`||n.walletId!==e.walletId)throw Error(`Passkey recovery requires its active wallet authority`);return n}const Fd=[`walletId`,`envelopeId`,`factor`,`envelopeRevision`,`binding`,`ownership`];function Id(e){let t=Ld(e.replacement.envelopeBindingJson);if(t.walletId!==e.expectedWalletId)throw Error(`recovery replacement envelope changed the wallet identity`);if(t.envelopeId!==e.replacement.envelopeId)throw Error(`recovery replacement envelope changed the envelope identity`);let n=Pe({kind:ke,envelopeId:t.envelopeId,walletId:t.walletId,binding:t.binding,factor:t.factor,ownership:Oe(t.ownership,`recoveryReplacementEnvelope.binding.ownership`),envelopeVersion:ke,envelopeRevision:t.envelopeRevision,nonceB64u:e.replacement.envelopeNonceB64u,sealedCustodySecretB64u:e.replacement.sealedCustodySecretB64u,ciphertextDigestB64u:e.replacement.envelopeCiphertextDigestB64u,aadHashB64u:e.replacement.envelopeAadHashB64u,lifecycle:{state:`active`,activatedAtMs:e.activatedAtMs},createdAtMs:e.activatedAtMs,updatedAtMs:e.activatedAtMs},`recoveryReplacementEnvelope`);if(n.binding.kind!==`wallet_custody_seed_v1`)throw Error(`custody envelope must seal the wallet custody seed`);return n}function Ld(e){let t;try{t=JSON.parse(e)}catch{throw Error(`recovery replacement envelope binding is not JSON`)}let n=h(t,`recoveryReplacementEnvelope.binding`);return P(n,Fd,`recoveryReplacementEnvelope.binding`),n}const Rd=`passkeyCustodyEnvelopeCacheV1`,zd=`passkey_custody_envelope_cache_v1`;let Bd={kind:`unconfigured`};const Vd=new Map;function Hd(e){throw Error(`unknown passkey custody session cache persistence state: ${String(e)}`)}function Ud(){switch(Bd.kind){case`configured`:return Bd.persistence;case`unconfigured`:throw Error(`passkey custody session cache persistence is not configured`);default:return Hd(Bd)}}function Wd(e){Bd={kind:`configured`,persistence:e}}function Gd(e,t){let n=String(e||``).trim(),r=String(t||``).trim();if(!n||!r)throw Error(`passkey custody session identity is required`);return`${n}:${r}`}function Kd(){return{kind:zd,envelopes:[]}}function qd(e){if(e==null)return Kd();if(typeof e!=`object`||Array.isArray(e))throw Error(`passkey custody envelope cache is invalid`);let t=e;if(t.kind!==zd||!Array.isArray(t.envelopes))throw Error(`passkey custody envelope cache has an invalid shape`);return{kind:zd,envelopes:t.envelopes.map(e=>{let t=Pe(e);if(!De(t.binding))throw Error(`generic passkey custody cache cannot contain an Ed25519 export root`);return t})}}async function Jd(){return qd(await Ud().readCacheEntry(Rd))}async function Yd(e){await Ud().writeCacheEntry(Rd,e)}async function Xd(e){if(e.envelope.lifecycle.state!==`active`)throw Error(`passkey custody session envelope is not active`);if(!De(e.envelope.binding))throw Error(`generic passkey custody cache accepts wallet custody seeds only`);if(String(e.envelope.walletId)!==String(e.walletId)||e.envelope.factor.kind!==`passkey`||String(e.envelope.factor.credentialIdB64u)!==String(e.credentialIdB64u))throw Error(`passkey custody session envelope identity changed`);let t=Gd(String(e.walletId),String(e.credentialIdB64u));Vd.set(t,e.envelope);let n=(await Jd()).envelopes.filter(e=>e.factor.kind!==`passkey`||Gd(String(e.walletId),String(e.factor.credentialIdB64u))!==t);n.push(e.envelope),await Yd({kind:zd,envelopes:n.slice(-32)})}async function Zd(e){let t=Gd(String(e.walletId),String(e.credentialIdB64u)),n=Vd.get(t);if(n)return n;let r=(await Jd()).envelopes.find(e=>e.lifecycle.state===`active`&&e.factor.kind===`passkey`&&Gd(String(e.walletId),String(e.factor.credentialIdB64u))===t);return r?(Vd.set(t,r),r):null}function Qd(e){return Math.max(0,Math.round(performance.now()-e))}function $d(){return{kind:`registration_confirmation_diagnostics_v1`,workerReadyMs:0,workerRequestRoundTripMs:0,workerResponseValidationMs:0,requestSetupMs:0,promptUserMs:0,promptElementDefineMs:0,promptMountMs:0,promptHostFirstUpdateMs:0,promptHostInteractiveMs:0,promptConfirmEventMs:0,promptDecisionWaitMs:0,credentialCreateStartMs:0,credentialCreateMs:0,credentialSerializeMs:0,duplicateRetryCount:0,mainThreadTotalMs:0}}function ef(e){let t=performance.now(),n=fr(e.credential,`Passkey registration authority`),r=Qd(t),i=performance.now(),a=kn(e.credential),o=Qd(i);return{kind:`passkey`,credential:e.credential,webauthnRegistration:a,prfFirstB64u:n,diagnostics:{kind:`passkey_registration_authority_diagnostics_v1`,requestConfirmationMs:e.requestConfirmationMs,prfExtractionMs:r,credentialRedactionMs:o,confirmationWorkerReadyMs:e.diagnostics.workerReadyMs,confirmationWorkerRequestRoundTripMs:e.diagnostics.workerRequestRoundTripMs,confirmationWorkerResponseValidationMs:e.diagnostics.workerResponseValidationMs,confirmationRequestSetupMs:e.diagnostics.requestSetupMs,confirmationPromptUserMs:e.diagnostics.promptUserMs,confirmationPromptElementDefineMs:e.diagnostics.promptElementDefineMs,confirmationPromptMountMs:e.diagnostics.promptMountMs,confirmationPromptHostFirstUpdateMs:e.diagnostics.promptHostFirstUpdateMs,confirmationPromptHostInteractiveMs:e.diagnostics.promptHostInteractiveMs,confirmationPromptConfirmEventMs:e.diagnostics.promptConfirmEventMs,confirmationPromptDecisionWaitMs:e.diagnostics.promptDecisionWaitMs,confirmationCredentialCreateStartMs:e.diagnostics.credentialCreateStartMs,confirmationCredentialCreateMs:e.diagnostics.credentialCreateMs,confirmationCredentialSerializeMs:e.diagnostics.credentialSerializeMs,confirmationDuplicateRetryCount:e.diagnostics.duplicateRetryCount,confirmationMainThreadTotalMs:e.diagnostics.mainThreadTotalMs}}}async function tf(e){let t=performance.now();return ef({credential:await e,diagnostics:$d(),requestConfirmationMs:Qd(t)})}async function nf(e){let t=performance.now(),n=await e.context.signingEngine.requestRegistrationCredentialConfirmation({walletId:e.walletId,signerSlot:e.signerSlot,confirmerText:e.options.confirmerText,confirmationConfigOverride:e.confirmationConfigOverride,challengeB64u:e.registrationIntentDigestB64u}),r=Qd(t),i=n.registrationDiagnostics??$d();return ef({credential:n.credential,diagnostics:i,requestConfirmationMs:r})}function rf(e){let t=e.trim();if(!t)throw Error(`Registration finalize idempotency key is required`);return t}function af(e){let t=d(e.materialActivation);if(!t.ok)throw Error(`Email OTP Ed25519 material activation is invalid`);let n=String(e.nearAccountId||``).trim(),r=String(e.operationalPublicKey||``).trim(),i=String(e.thresholdSessionId||``).trim(),a=Number(e.signerSlot);if(!n||!r||!i)throw Error(`Email OTP Ed25519 signer identity is incomplete`);if(!Number.isSafeInteger(a)||a<1)throw Error(`Email OTP Ed25519 signer slot is invalid`);let o=N(e.runtimePolicyScope);if(!o)throw Error(`Email OTP Ed25519 runtime policy scope is invalid`);return{materialActivation:t.value,nearAccountId:n,signerSlot:a,operationalPublicKey:r,thresholdSessionId:i,runtimePolicyScope:o}}function of(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Email OTP Ed25519 signer selection must be an object`);let t=e;if(t.kind===`absent`)return{kind:`absent`};if(t.kind!==`present`)throw Error(`Email OTP Ed25519 signer selection kind is invalid`);return{kind:`present`,...af(t)}}function sf(e){let t=uf(e,`wallet/email-otp/challenge signerSelection`);if(t.kind===`ed25519_only`)return{kind:`ed25519_only`,...af(t)};if(t.kind!==`ecdsa`)throw Error(`wallet/email-otp/challenge signerSelection kind is invalid`);return{kind:`ecdsa`,keyHandle:Z(t.keyHandle,`wallet/email-otp/challenge keyHandle`),runtimePolicyScope:I(t.runtimePolicyScope),ed25519:of(t.ed25519)}}var cf=class extends Error{code;status;retryAfterMs;resetAtMs;constructor(e){super(e.message),this.name=`EmailOtpRouteError`;let t=df(e.code);t&&(this.code=t),this.status=e.status;let n=Number(e.retryAfterMs);Number.isFinite(n)&&n>=0&&(this.retryAfterMs=Math.floor(n));let r=Number(e.resetAtMs);Number.isFinite(r)&&r>=0&&(this.resetAtMs=Math.floor(r))}};function lf(e){let t=e||globalThis.fetch;if(typeof t!=`function`)throw Error(`fetch is unavailable in this runtime`);return t}function uf(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} returned invalid JSON`);return e}function Z(e,t){return w(e,t)}function df(e){return g(e)}function ff(e){let t={"Content-Type":`application/json`},n=String(e.publishableKey||``).trim();return n&&(t.Authorization=`Bearer ${n}`),t}function pf(e){return e.routeFamily===`registration`?Xl({routeFamily:`registration`,operation:Se}):Xl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function mf(e){let t=df(e.challenge.action);if(t&&t!==e.expectedAction)throw Error(`${e.context} returned ${t}; expected ${e.expectedAction}`)}async function hf(e){let t=await lf(e.fetchImpl)(e.url,{method:`POST`,headers:ff({publishableKey:e.publishableKey}),credentials:`include`,body:JSON.stringify(e.body)}),n=await t.text(),r=null;try{r=n?JSON.parse(n):null}catch{throw Error(`${e.url} returned non-JSON response (HTTP ${t.status})`)}let i=uf(r,e.url);if(!t.ok||i.ok===!1)throw new cf({message:typeof i.message==`string`&&i.message.trim()||`${e.url} failed (HTTP ${t.status})`,status:t.status,code:i.code,retryAfterMs:i.retryAfterMs,resetAtMs:i.resetAtMs});return i}async function gf(e){if(e.restartRegistrationOffer===!0&&e.accountMode!==`register`)throw Error(`restartRegistrationOffer is only valid with register account mode`);let t=await hf({url:s(e.relayUrl,`/auth/google/verify`),fetchImpl:e.fetchImpl,publishableKey:Z(e.publishableKey,`publishableKey`),body:{id_token:Z(e.idToken,`idToken`),account_mode:e.accountMode,project_environment_id:Z(e.projectEnvironmentId,`projectEnvironmentId`),...e.loginWalletId?{wallet_id:Z(e.loginWalletId,`loginWalletId`)}:{},...e.restartRegistrationOffer===!0?{restart_registration_offer:!0}:{}}}),n=Z(t.mode,`auth/google/verify mode`),r=Z(t.walletId,`auth/google/verify walletId`),i=Z(t.providerSubject,`auth/google/verify providerSubject`),a=df(t.email);if(n===`existing_wallet`){if(t.hasEmailOtpEnrollment!==!0)throw Error(`auth/google/verify existing wallet is missing Email OTP enrollment`);if(!a)throw Error(`auth/google/verify existing wallet is missing email`);return{mode:n,walletId:r,providerSubject:i,email:a,hasEmailOtpEnrollment:!0}}if(n!==`register_started`)throw Error(`auth/google/verify returned unsupported mode: ${n}`);if(!a)throw Error(`auth/google/verify registration is missing email`);let o=uf(t.offer,`auth/google/verify offer`),c=(Array.isArray(o.candidates)?o.candidates:[]).map(_f),l=c[0];if(!l)throw Error(`auth/google/verify offer has no wallet candidates`);return{mode:n,walletId:r,providerSubject:i,email:a,registrationAttemptId:Z(t.registrationAttemptId,`auth/google/verify registrationAttemptId`),expiresAtMs:vf(t.expiresAtMs,`auth/google/verify expiresAtMs`),offer:{offerId:Z(o.offerId,`auth/google/verify offer.offerId`),selectedCandidateId:Z(o.selectedCandidateId,`auth/google/verify offer.selectedCandidateId`),candidates:[l,...c.slice(1)]}}}function _f(e){let t=uf(e,`auth/google/verify offer candidate`);return{candidateId:Z(t.candidateId,`offer candidate candidateId`),walletId:Z(t.walletId,`offer candidate walletId`)}}function vf(e,t){let n=Number(e);if(!Number.isSafeInteger(n)||n<=Date.now())throw Error(`${t} must be a future timestamp`);return n}async function yf(e){let t=e.operation??`wallet_unlock`;if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpChallenge`,payload:{relayUrl:Z(e.relayUrl,`relayUrl`),walletId:Z(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Z(e.walletAuthMethodId,`walletAuthMethodId`)}:{},routePlan:pf({routeFamily:`login`,operation:t}),otpChannel:xe,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}});let n=await hf({url:s(e.relayUrl,`/wallet/email-otp/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Z(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Z(e.walletAuthMethodId,`walletAuthMethodId`)}:{},otpChannel:e.otpChannel||`email_otp`,operation:t,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}),r=uf(n.challenge,`wallet/email-otp/challenge`);mf({challenge:r,expectedAction:Te.login,context:`wallet/email-otp/challenge`});let i=wr(n.delivery,`wallet/email-otp/challenge delivery`),a=Number(r.expiresAtMs),o={challengeId:Z(r.challengeId,`wallet/email-otp/challenge challengeId`),otpChannel:xe,delivery:i,emailHint:i.emailHint,ownerProofBindingDigest:Z(r.ownerProofBindingDigest,`wallet/email-otp/challenge ownerProofBindingDigest`),walletAuthMethodId:Z(n.walletAuthMethodId,`wallet/email-otp/challenge walletAuthMethodId`),signerSelection:sf(n.signerSelection)};return Number.isFinite(a)&&(o.expiresAtMs=a),o}async function bf(e){if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpEnrollmentChallenge`,payload:{relayUrl:Z(e.relayUrl,`relayUrl`),walletId:Z(e.walletId,`walletId`),routePlan:pf({routeFamily:`registration`}),otpChannel:xe}}});let t=await hf({url:s(e.relayUrl,`/wallet/email-otp/registration/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Z(e.walletId,`walletId`),otpChannel:e.otpChannel||`email_otp`}}),n=uf(t.challenge,`wallet/email-otp/registration/challenge`);mf({challenge:n,expectedAction:Te.registration,context:`wallet/email-otp/registration/challenge`});let r=wr(t.delivery,`wallet/email-otp/registration/challenge delivery`),i=Number(n.expiresAtMs),a={challengeId:Z(n.challengeId,`wallet/email-otp/registration/challenge challengeId`),otpChannel:xe,delivery:r,emailHint:r.emailHint};return Number.isFinite(i)&&(a.expiresAtMs=i),a}function xf(e,t){let n=typeof e==`string`?e.trim():``;if(!n)throw Error(`${t} is required for Email OTP registration authority`);return n}async function Sf(e){let t=xf(e.authMethod.email,`email`).toLowerCase(),n=xf(e.authMethod.providerSubject,`providerSubject`),r=xf(e.relayUrl,`relayUrl`),i=xf(e.walletId,`walletId`),a=xf(e.registrationIntentDigestB64u,`registrationIntentDigestB64u`);if(e.authMethod.proofKind===`google_sso_registration`){let r=xf(e.authMethod.googleEmailOtpRegistrationAttemptId,`googleEmailOtpRegistrationAttemptId`);return{kind:`email_otp`,proof:{version:`email_otp_registration_proof_v1`,proofKind:`google_sso_registration`,providerSubject:n,email:t,googleEmailOtpRegistrationAttemptId:r,googleEmailOtpRegistrationOfferId:xf(e.authMethod.googleEmailOtpRegistrationOfferId,`googleEmailOtpRegistrationOfferId`),googleEmailOtpRegistrationCandidateId:xf(e.authMethod.googleEmailOtpRegistrationCandidateId,`googleEmailOtpRegistrationCandidateId`),registrationIntentDigestB64u:a},registrationAuthorityId:r,providerSubject:n,email:t}}let o=xf(e.authMethod.otpCode,`otpCode`),s=typeof e.authMethod.challengeId==`string`?e.authMethod.challengeId.trim():``,c=s?null:await bf({relayUrl:r,walletId:i,fetchImpl:e.fetchImpl}),l=s||xf(c?.challengeId,`challengeId`);return{kind:`email_otp`,proof:{version:`email_otp_registration_proof_v1`,proofKind:`otp_challenge`,providerSubject:n,email:t,challengeId:l,otpCode:o,otpChannel:xe,registrationIntentDigestB64u:a},registrationAuthorityId:l,providerSubject:n,email:t}}function Cf(e,t,n){if(e!==t)throw Error(`${n} does not match the verified add-signer intent`)}function wf(e,t){if(e.length!==2||e[0]!==t[0]||e[1]!==t[1])throw Error(`Yao participant IDs do not match the verified add-signer intent`)}function Tf(e){let t=b(e.verifiedIntent.addSignerIntentGrant,`add-signer intent grant`);return{routerOrigin:b(e.httpTransport.routerOrigin,`Yao Router origin`),routing:{kind:`discovery`},authorization:{kind:`bearer`,value:`Bearer ${t}`},fetch:e.httpTransport.fetch}}async function Ef(e){let t=e.verifiedIntent.intent,n=t.signerSelection.ed25519;Cf(String(t.walletId),String(e.verifiedAuthority.walletId),`Passkey authority wallet ID`),Cf(e.verifiedIntent.addSignerIntentDigestB64u,e.verifiedAuthority.addSignerIntentDigestB64u,`Passkey authority intent digest`),b(e.verifiedAuthority.credentialIdB64u,`passkey credential ID`);let r=I(t.runtimePolicyScope),i=L(r),a=nt(e.admissionRequest);if(!a.ok)throw Error(a.message);let o=a.value,s=b(e.verifiedIntent.addSignerCeremonyId,`add-signer ceremony ID`);if(Cf(o.scope.lifecycle_id,s,`Yao lifecycle ID`),Cf(o.scope.threshold_session_id,s,`Yao Threshold Session ID`),Cf(o.scope.account_id,String(t.walletId),`Yao account ID`),Cf(o.scope.signer_set_id,String(un(n.signerSlot)),`Yao signer-set ID`),Cf(o.scope.root_share_epoch,r.signingRootVersion,`Yao root-share epoch`),Cf(o.application_binding.wallet_id,String(t.walletId),`Yao application wallet ID`),Cf(o.application_binding.signing_root_id,i,`Yao signing-root ID`),o.application_binding.key_creation_signer_slot!==n.signerSlot)throw Error(`Yao signer slot does not match the verified add-signer intent`);wf(n.participantIds,o.participant_ids);let c=await Bt({kind:`wallet_add_signer_implicit_near_ed25519_key_v1`,walletId:t.walletId,signingRootId:i,signingRootVersion:r.signingRootVersion,signerSlot:n.signerSlot,participantIds:n.participantIds,keyPurpose:n.keyPurpose,keyVersion:n.keyVersion,derivationVersion:n.derivationVersion});return Cf(o.application_binding.near_ed25519_signing_key_id,String(c),`Yao NEAR signing-key ID`),{kind:`prepared_passkey_ed25519_yao_add_signer_v1`,request:o,transportConfig:Tf(e)}}async function Df(e){let t=await Ef(e),n=await new ta(t.transportConfig).send({kind:`admit`,path:ot,body:t.request});if(!n.ok)throw Error(n.message);let r=lt(n.value);if(!r.ok)throw Error(r.message);return{request:t.request,receipt:r.value}}var Of=class e{kind=`restorable_mpc_material_ref`;durableMaterialRef;protocolProof=!0;constructor(e){this.durableMaterialRef=e,this.protocolProof}static build(t){let n=String(t||``).trim();if(!n)throw Error(`Restorable MPC material reference is required`);return new e(n)}};function kf(e){return Of.build(e)}const Af=`router_ab_ed25519_yao_active_client_v1`,jf=`chacha20poly1305-hkdf-sha256-prf-first-v1`,Mf=(1n<<64n)-1n;function Q(e,t){let n=String(e??``).trim();if(!n)throw Error(`${t} is required for local Ed25519 material`);return n}function Nf(e,t){let n=Number(e);if(!Number.isSafeInteger(n)||n<1)throw Error(`${t} must be a positive safe integer`);return n}function Pf(e,n){let r=t(e);if(!r.ok)throw Error(`${n}: ${r.error.message}`);return r.value}function Ff(e,t){let n=Q(e,t);if(j(n).length!==32)throw Error(`${t} must encode 32 bytes`);return n}function If(e){if(!Array.isArray(e)||e.length!==2)throw Error(`participantIds must contain exactly two entries`);let t=[Nf(e[0],`participantIds[0]`),Nf(e[1],`participantIds[1]`)];if(t[0]>65535||t[1]>65535||t[0]===t[1])throw Error(`participantIds must contain two distinct u16 identifiers`);return t}function Lf(e,t){let n=Q(e,t);if(!/^(0|[1-9][0-9]*)$/.test(n)||BigInt(n)>Mf)throw Error(`${t} must be a canonical u64`);return n}function Rf(e,t,n){let r=e.signingLane.identity.signer;return{walletId:Q(r.account.wallet.walletId,`walletId`),nearAccountId:Q(r.account.nearAccountId,`nearAccountId`),nearEd25519SigningKeyId:Q(r.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),thresholdSessionId:Pf(e.signingLane.identity.thresholdSessionId,`thresholdSessionId`),signerSlot:Nf(r.signerSlot,`signerSlot`),rpId:Q(t,`rpId`),credentialIdB64u:Q(n,`credentialIdB64u`),signingRootId:Q(e.signingRootId,`signingRootId`),signingRootVersion:Q(e.signingRootVersion,`signingRootVersion`),signingWorkerId:Q(e.routerAbNormalSigning.signingWorkerId,`signingWorkerId`)}}function zf(e){let t=e.metadata;if(t.scope.account_id!==e.identity.walletId||t.applicationBinding.wallet_id!==e.identity.walletId||t.applicationBinding.near_ed25519_signing_key_id!==e.identity.nearEd25519SigningKeyId||t.scope.threshold_session_id!==e.identity.thresholdSessionId||t.applicationBinding.key_creation_signer_slot!==e.identity.signerSlot||t.applicationBinding.signing_root_id!==e.identity.signingRootId||t.scope.root_share_epoch!==e.identity.signingRootVersion||t.scope.signing_worker_id!==e.identity.signingWorkerId)throw Error(`Active Ed25519 Client metadata does not match the wallet signing lane`);return{kind:Af,walletId:e.identity.walletId,nearAccountId:e.identity.nearAccountId,nearEd25519SigningKeyId:e.identity.nearEd25519SigningKeyId,signerSlot:e.identity.signerSlot,rpId:e.identity.rpId,credentialIdB64u:e.identity.credentialIdB64u,lifecycleId:Q(t.scope.lifecycle_id,`lifecycleId`),thresholdSessionId:Pf(t.scope.threshold_session_id,`thresholdSessionId`),materialActivation:Zn(t),signingRootId:e.identity.signingRootId,signingRootVersion:e.identity.signingRootVersion,signerSetId:Q(t.scope.signer_set_id,`signerSetId`),signingWorkerId:e.identity.signingWorkerId,participantIds:[t.participantIds[0],t.participantIds[1]],registeredPublicKeyB64u:A(t.registeredPublicKey),signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare),stateEpoch:t.stateEpoch.toString(10),activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))}}function Bf(e){return new TextEncoder().encode(JSON.stringify([e.kind,e.walletId,e.nearAccountId,e.nearEd25519SigningKeyId,e.signerSlot,e.rpId,e.credentialIdB64u,e.lifecycleId,e.thresholdSessionId,e.materialActivation.kind,e.materialActivation.activationId,e.materialActivation.capability,e.materialActivation.materialOwner,e.materialActivation.keyBinding,e.materialActivation.lifecycleBinding,e.materialActivation.signingWorker,e.signingRootId,e.signingRootVersion,e.signerSetId,e.signingWorkerId,e.participantIds[0],e.participantIds[1],e.registeredPublicKeyB64u,e.signingWorkerVerifyingShareB64u,e.stateEpoch,e.activationTranscriptB64u,e.activationCapabilityBindingB64u]))}function Vf(e,t){if(e.walletId!==t.walletId||e.nearAccountId!==t.nearAccountId||e.nearEd25519SigningKeyId!==t.nearEd25519SigningKeyId||e.signerSlot!==t.signerSlot||e.rpId!==t.rpId||e.credentialIdB64u!==t.credentialIdB64u||e.signingRootId!==t.signingRootId||e.signingRootVersion!==t.signingRootVersion||e.signingWorkerId!==t.signingWorkerId)throw Error(`Stored Ed25519 Client material does not match the wallet signing lane`)}function Hf(e){let t=_(e);if(!t||t.kind!==Af)throw Error(`Stored Ed25519 Client material binding is invalid`);let n=d(t.materialActivation);if(!n.ok)throw Error(n.error.message);let r={kind:Af,walletId:Q(t.walletId,`binding.walletId`),nearAccountId:Q(t.nearAccountId,`binding.nearAccountId`),nearEd25519SigningKeyId:Q(t.nearEd25519SigningKeyId,`binding.nearEd25519SigningKeyId`),signerSlot:Nf(t.signerSlot,`binding.signerSlot`),rpId:Q(t.rpId,`binding.rpId`),credentialIdB64u:Q(t.credentialIdB64u,`binding.credentialIdB64u`),lifecycleId:Q(t.lifecycleId,`binding.lifecycleId`),thresholdSessionId:Pf(t.thresholdSessionId,`binding.thresholdSessionId`),materialActivation:n.value,signingRootId:Q(t.signingRootId,`binding.signingRootId`),signingRootVersion:Q(t.signingRootVersion,`binding.signingRootVersion`),signerSetId:Q(t.signerSetId,`binding.signerSetId`),signingWorkerId:Q(t.signingWorkerId,`binding.signingWorkerId`),participantIds:If(t.participantIds),registeredPublicKeyB64u:Ff(t.registeredPublicKeyB64u,`binding.registeredPublicKeyB64u`),signingWorkerVerifyingShareB64u:Ff(t.signingWorkerVerifyingShareB64u,`binding.signingWorkerVerifyingShareB64u`),stateEpoch:Lf(t.stateEpoch,`binding.stateEpoch`),activationTranscriptB64u:Ff(t.activationTranscriptB64u,`binding.activationTranscriptB64u`),activationCapabilityBindingB64u:Ff(t.activationCapabilityBindingB64u,`binding.activationCapabilityBindingB64u`)};if(r.materialActivation.materialOwner!==r.walletId||r.materialActivation.signingWorker!==r.signingWorkerId)throw Error(`Stored Ed25519 Client material activation does not match its binding`);return r}function Uf(e,t){let n=Hf(e);return Vf(n,t),n}function Wf(e){let t=_(e);if(!t)throw Error(`Stored Ed25519 Client stable server scope is invalid`);let n=N(t.runtimePolicyScope);if(!n)throw Error(`Stored Ed25519 Client server runtime policy scope is invalid`);return{relayerKeyId:Q(t.relayerKeyId,`stableServerScope.relayerKeyId`),participantIds:If(t.participantIds),runtimePolicyScope:n,routerAbNormalSigning:se(t.routerAbNormalSigning)}}async function Gf(e){let t=e.stored.payload,n=_(t);if(!n)throw Error(`Stored Ed25519 Client local material locator is invalid`);let r=Hf(n.binding),i=`ed25519:${Je(j(r.registeredPublicKeyB64u))}`,a=e.stored.payloadEnvelope;if(e.stored.profileId!==e.target.profileId||e.stored.chainIdKey!==e.target.chainIdKey||e.stored.accountAddress!==e.target.accountAddress||e.stored.keyKind!==Af||e.stored.schemaVersion!==3||e.stored.publicKey!==i||e.stored.signerId!==r.nearEd25519SigningKeyId||a?.encVersion!==1||a.alg!==jf)throw Error(`Stored Ed25519 Client local material record is invalid`);let o=Nt({walletId:r.walletId,factor:{kind:`passkey`,credentialIdB64u:r.credentialIdB64u},verifier:{kind:`webauthn`,rpId:r.rpId},bindingId:e.authority.walletAuthMethodId});if(!o)throw Error(`Stored Ed25519 Client local material authority is invalid`);let s=await Ft({authority:o});if(s.authorityDigest!==e.authority.authorityDigest)throw Error(`Stored Ed25519 Client local material authority changed`);return{kind:`passkey_ed25519_yao_local_material_locator_v1`,authority:s,materialActivation:r.materialActivation,sealedMaterial:kf(JSON.stringify([e.stored.profileId,e.stored.signerSlot,e.stored.chainIdKey,e.stored.keyKind,r.materialActivation.activationId])),stableServerScope:Wf(n.stableServerScope)}}function Kf(e){let t=_(e.stored.payload?.binding);if(e.stored.profileId!==e.target.profileId||e.stored.chainIdKey!==e.target.chainIdKey||e.stored.accountAddress!==e.target.accountAddress||e.stored.signerSlot!==e.input.signerSlot||e.stored.signerId!==e.input.nearEd25519SigningKeyId||e.stored.keyKind!==Af||t?.kind!==Af||t.walletId!==e.input.walletId||t.nearAccountId!==e.input.nearAccountId||t.nearEd25519SigningKeyId!==e.input.nearEd25519SigningKeyId||t.signerSlot!==e.input.signerSlot||t.rpId!==e.input.rpId||t.credentialIdB64u!==e.input.credentialIdB64u)throw Error(`Stored Ed25519 Client material locator does not match local custody`)}function qf(e,t){let n=Q(t,`thresholdSessionId`);return{kind:ji,scope:{lifecycle_id:e.lifecycleId,root_share_epoch:e.signingRootVersion,account_id:e.walletId,threshold_session_id:n,signer_set_id:e.signerSetId,signing_worker_id:e.signingWorkerId,material_activation:bt(e.materialActivation)},applicationBinding:{wallet_id:e.walletId,near_ed25519_signing_key_id:e.nearEd25519SigningKeyId,signing_root_id:e.signingRootId,key_creation_signer_slot:e.signerSlot},participantIds:e.participantIds,registeredPublicKey:j(e.registeredPublicKeyB64u),signingWorkerVerifyingShare:j(e.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(e.stateEpoch),transcript:j(e.activationTranscriptB64u),activeCapabilityBinding:Array.from(j(e.activationCapabilityBindingB64u)),materialActivation:e.materialActivation}}function Jf(){let e=new Uint8Array(12);return globalThis.crypto.getRandomValues(e),e}function Yf(e){let t=e.identity,n=e.activeClient.metadata(),r=zf({identity:t,metadata:n}),i=Jf(),a=e.activeClient.sealLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Bf(r),nonce:i}),o={binding:r,stableServerScope:e.stableServerScope};switch(e.lifecycle.kind){case`registration_or_rehydration`:break;case`recovery_promotion`:o.lifecycleReceipt=e.lifecycle.promotionReceipt;break;default:e.lifecycle}return{profileId:e.target.profileId,signerSlot:t.signerSlot,chainIdKey:e.target.chainIdKey,accountAddress:e.target.accountAddress,keyKind:Af,algorithm:`ed25519`,publicKey:`ed25519:${Je(n.registeredPublicKey)}`,signerId:t.nearEd25519SigningKeyId,payload:o,payloadEnvelope:{encVersion:1,alg:jf,nonce:A(a.nonce),ciphertext:A(a.ciphertext),aad:Ke({profileId:e.target.profileId,signerSlot:t.signerSlot,chainIdKey:e.target.chainIdKey,accountAddress:e.target.accountAddress,keyKind:Af,schemaVersion:3,signerId:t.nearEd25519SigningKeyId})},timestamp:Date.now(),schemaVersion:3}}async function Xf(e){let t=await Ln(e.store,{accountRefs:jn(e.identity.nearAccountId)});if(!t)throw Error(`Local Ed25519 material requires a persisted wallet profile`);let n=Yf({target:t,activeClient:e.activeClient,identity:e.identity,stableServerScope:e.stableServerScope,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u),lifecycle:{kind:`registration_or_rehydration`}});await e.store.storeKeyMaterial(n)}async function Zf(e){let t=Q(e.nearAccountId,`nearAccountId`),n=await Ln(e.store,{accountRefs:jn(t)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,Nf(e.signerSlot,`signerSlot`),n.chainIdKey,Af);return r?(Kf({stored:r,target:n,input:e}),{kind:`available`,locator:await Gf({stored:r,target:n,authority:e.authority})}):{kind:`unavailable`}}function Qf(e){return e.publicLocator.walletId===e.identity.walletId&&e.publicLocator.nearAccountId===e.identity.nearAccountId&&e.publicLocator.signerSlot===e.identity.signerSlot}async function $f(e){let t=Nt({walletId:e.identity.walletId,factor:{kind:`passkey`,credentialIdB64u:e.identity.credentialIdB64u},verifier:{kind:`webauthn`,rpId:e.identity.rpId},bindingId:e.authority.walletAuthMethodId});if(!t)throw Error(`Passkey Ed25519 authority is invalid`);let n=await Ft({authority:t});if(n.authorityDigest!==e.authority.authorityDigest)throw Error(`Passkey Ed25519 authority does not match the Wallet Session`);return n}function ep(e){if(!e||e.activeClient.status().kind!==`active`)return{kind:`absent`};let t=Zn(e.activeClient.metadata());return{kind:`live`,runtime:Jn(t),materialActivation:t}}function tp(e){return{kind:`blocked`,plan:e}}async function np(e){let t=await $f(e),n=e.publicLocator.kind===`available`&&!Qf({publicLocator:e.publicLocator,identity:e.identity})?{kind:`conflict`}:e.publicLocator.kind===`available`?{...e.publicLocator,authority:t}:e.publicLocator,r;try{r=await Zf({store:e.store,walletId:String(e.identity.walletId),nearAccountId:String(e.identity.nearAccountId),nearEd25519SigningKeyId:String(e.identity.nearEd25519SigningKeyId),signerSlot:e.identity.signerSlot,rpId:e.identity.rpId,credentialIdB64u:e.identity.credentialIdB64u,authority:t})}catch{return{expectedAuthority:t,publicLocator:n,sealed:{kind:`corrupt`}}}return{expectedAuthority:t,publicLocator:n,sealed:r.kind===`available`?{kind:`available`,authority:r.locator.authority,materialActivation:r.locator.materialActivation,sealedMaterial:r.locator.sealedMaterial}:{kind:`missing`}}}function rp(e,t){let n=Yn({publicLocator:e,sealed:{kind:`corrupt`},runtime:t,unlockSource:{kind:`unavailable`}});if(n.kind!==`blocked`)throw Error(`Corrupt Near Ed25519 material resolved to an executable hydration plan`);return n}async function ip(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await np(e);if(r.kind===`corrupt`)return{kind:`blocked`,plan:rp(n,{kind:`absent`})};let i=Yn({publicLocator:n,sealed:r,runtime:{kind:`absent`},unlockSource:{kind:`available`,authority:t}});switch(i.kind){case`rehydrate_material_activation`:return{kind:`prepared`,plan:i};case`blocked`:return{kind:`blocked`,plan:i};case`use_live_runtime`:case`reauthorize_public_anchor`:throw Error(`Sealed Near Ed25519 preparation resolved an invalid hydration plan`);default:throw Error(`Unsupported sealed Near Ed25519 preparation plan`)}}async function ap(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await np(e);if(r.kind===`corrupt`)return tp(rp(n,ep(e.liveMaterial)));let i=e.unlockSource.kind===`available`?{kind:`available`,authority:t}:{kind:`unavailable`},a=Yn({publicLocator:n,sealed:r,runtime:ep(e.liveMaterial),unlockSource:i});switch(a.kind){case`use_live_runtime`:{let t=e.liveMaterial;if(!t||t.activeClient.status().kind!==`active`||!f(a.materialActivation,Zn(t.activeClient.metadata())))throw Error(`Near Ed25519 live hydration plan lost its exact runtime`);return{kind:`live`,plan:a}}case`rehydrate_material_activation`:{if(e.unlockSource.kind!==`available`)throw Error(`Near Ed25519 rehydration plan lost its unlock source`);let t=await op({store:e.store,identity:e.identity,passkeyPrfFirstB64u:e.unlockSource.passkeyPrfFirstB64u});if(t.kind!==`rehydrated`)throw Error(`Near Ed25519 rehydration plan lost its sealed material`);let n=Zn(t.activeClient.metadata());if(!f(a.materialActivation,n))throw t.activeClient.dispose(),Error(`Near Ed25519 rehydration changed the material activation`);return{kind:`rehydrated`,plan:a,activeClient:t.activeClient}}case`blocked`:return tp(a);case`reauthorize_public_anchor`:throw Error(`Near Ed25519 material retirement requires explicit reauthorization`);default:throw Error(`Unsupported Near Ed25519 hydration plan`)}}async function op(e){let t=e.identity,n=await Ln(e.store,{accountRefs:jn(t.nearAccountId)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,t.signerSlot,n.chainIdKey,Af);return r?sp({stored:r,target:n,identity:t,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u)}):{kind:`unavailable`}}async function sp(e){let t=e.identity,n=e.stored,r=e.target,i=n.payloadEnvelope;if(n.profileId!==r.profileId||n.accountAddress!==r.accountAddress||n.signerId!==t.nearEd25519SigningKeyId||n.keyKind!==Af||n.schemaVersion!==3||i?.encVersion!==1||i.alg!==jf)throw Error(`Stored Ed25519 Client material record is invalid`);let a=Uf(n.payload?.binding,t),o=qf(a,t.thresholdSessionId),s=`ed25519:${Je(o.registeredPublicKey)}`;if(n.publicKey!==s)throw Error(`Stored Ed25519 Client public key does not match its sealed binding`);return{kind:`rehydrated`,activeClient:(await ca.initializeBundled()).importLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Bf(a),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:j(i.nonce),ciphertext:j(i.ciphertext)},metadata:o})}}function cp(e){let t=a(e);if(!t.ok)throw Error(t.error.message);return t.value}function lp(e){let t=e.finalized.authMethod;if(!t||t.kind!==`passkey`)throw Error(`Passkey registration finalize returned non-passkey auth material`);let n=String(e.credential.rawId||e.credential.id||``).trim(),r=String(t.credentialIdB64u||``).trim();if(!n||r!==n)throw Error(`Passkey registration finalize returned credential id mismatch`);let i=String(t.credentialPublicKeyB64u||``).trim();if(!i)throw Error(`Passkey registration finalize returned missing credentialPublicKeyB64u`);return i}async function up(e){let t=e.configs.signing.emailOtp.authPolicy;return sr({policy:t,retention:`session`,reason:`login`,authority:e.authority})}async function dp(e){switch(e.authMethod.kind){case`passkey`:if(!e.passkeyAuthority)throw Error(`Passkey registration authority was not collected`);return{kind:`passkey`,rpId:e.authMethod.rpId,credential:e.passkeyAuthority.credential,credentialPublicKeyB64u:lp({finalized:e.finalized,credential:e.passkeyAuthority.credential})};case`email_otp`:{let t=String(e.email||``).trim(),n=String(e.providerSubject||``).trim(),r=String(e.registrationAuthorityId||``).trim();if(!t||!n||!r)throw Error(`Email OTP registration persistence requires provider identity`);if(!Mt(e.finalized.authority))throw Error(`Email OTP registration finalize returned a different authority`);if(e.finalized.foundingAuthMethod.kind!==`email_otp`)throw Error(`Email OTP registration finalize returned a different founding method`);let i=Dt({...e.finalized.authority,bindingId:e.finalized.foundingAuthMethod.walletAuthMethodId});if(!i)throw Error(`Email OTP registration finalize returned an invalid exact authority`);return{kind:`email_otp`,email:t,registrationAuthorityId:r,emailOtpAuthContext:await up({configs:e.configs,authority:i}),authority:i}}default:return q(e.authMethod)}}function fp(e){let[t,...n]=e.walletKeys,[r,...i]=e.expectedChainTargets;if(!t||!r)throw Error(`ECDSA registration persistence requires session, key, and target material`);if(e.walletKeys.length!==e.expectedChainTargets.length)throw Error(`ECDSA registration persistence requires one family session projected to every target`);if(e.session.chainTargets.length!==e.expectedChainTargets.length||!Lc(e.session.chainTargets,e.expectedChainTargets))throw Error(`ECDSA registration family session target projection is incomplete`);return Pc(e.walletKeys),Fc({session:e.session,walletKeys:e.walletKeys}),Kc({session:e.session,walletKeys:e.walletKeys}),{kind:`evm_family_ecdsa`,session:e.session,walletKeys:[t,...n],expectedChainTargets:[r,...i]}}function pp(e){let{walletId:t,authority:n,foundingAuthority:r,foundingAuthMethod:i,registrationDiagnostics:a,rpId:o,authMethod:s,custodyKeyManifestDigestB64u:c,ecdsa:l}=e,{activation:u,bootstrap:d,...f}=l,p={ok:!0,walletId:t,authority:n,foundingAuthority:r,foundingAuthMethod:i,...a?{registrationDiagnostics:a}:{},...c===void 0?{}:{custodyKeyManifestDigestB64u:c},kind:`evm_family_ecdsa`,ecdsa:f};if(s.kind===`passkey`){if(!o)throw Error(`Passkey activation is missing its relying-party id`);return{...p,rpId:o,authMethod:s}}if(o!==void 0)throw Error(`Email OTP activation returned a relying-party id`);return{...p,authMethod:s}}function mp(e){return{kind:`registration_persistence_plan_v1`,walletId:e.walletId,auth:e.auth,ecdsa:e.ecdsa,foundingAuthority:e.foundingAuthority,foundingAuthMethod:e.foundingAuthMethod}}function hp(e){let t=ln(e);if(!t)throw Error(`pending wallet registration commit is invalid`);return t}function gp(e){let t=Ve(e.walletId),r=n(e.walletAuthMethodId);if(!r.ok)throw Error(r.error.message);let i=_p(e.auth),a={kind:`pending_wallet_registration_commit_v1`,registrationCeremonyId:vp(e.registrationCeremonyId,`registrationCeremonyId`),idempotencyKey:vp(e.idempotencyKey,`idempotencyKey`),walletId:t,walletAuthMethodId:r.value,signedSetup:vp(e.signedSetup,`signedSetup`),auth:i,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs};if(e.operation===`registration_activate`)return hp({...a,operation:e.operation,signerPlanKind:e.signerPlanKind,localMaterial:e.localMaterial});if(e.signerPlanKind!==`near_ed25519`&&e.signerPlanKind!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`near provisioning requires a NEAR signer plan`);return hp({...a,operation:e.operation,phase:`joined`,completion:e.completion,signerPlanKind:e.signerPlanKind,localMaterial:e.localMaterial})}function _p(e){if(e.kind===`passkey`){let t=cp(e.rpId),n=i(e.credentialIdB64u);if(!n.ok)throw Error(n.error.message);return{kind:`passkey`,rpId:t,credentialIdB64u:n.value,transports:[...e.transports]}}let t=l(e.email);if(!t.ok)throw Error(t.error.message);let n=p(e.registrationAuthorityId);if(!n.ok)throw Error(n.error.message);let r=u(e.providerSubject);if(!r.ok)throw Error(r.error.message);return{kind:`email_otp`,email:t.value,registrationAuthorityId:n.value,providerSubject:r.value,enrollment:{enrollmentSealKeyVersion:vp(e.enrollment.enrollmentSealKeyVersion,`enrollment.enrollmentSealKeyVersion`),serverSealedFactorCiphertextB64u:vp(e.enrollment.serverSealedFactorCiphertextB64u,`enrollment.serverSealedFactorCiphertextB64u`),clientUnlockPublicKeyB64u:vp(e.enrollment.clientUnlockPublicKeyB64u,`enrollment.clientUnlockPublicKeyB64u`),unlockKeyVersion:vp(e.enrollment.unlockKeyVersion,`enrollment.unlockKeyVersion`)}}}function vp(e,t){if(typeof e!=`string`||e.length===0||e.trim()!==e)throw Error(`${t} must be a non-empty canonical string`);return e}async function yp(e){e.registrationTiming.record(`ecdsaRegistrationTargetCount`,e.plan.ecdsa.walletKeys.length);let t=performance.now();try{return await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:Ve(e.plan.walletId),session:e.plan.ecdsa.session,walletKeys:[...e.plan.ecdsa.walletKeys]})}finally{e.registrationTiming.record(`ecdsaRegistrationSessionFinalizeMs`,Pa(t))}}async function bp(e){if(e.plan.auth.kind===`passkey`){await e.context.signingEngine.finalizeWalletEcdsaRegistration({walletId:e.plan.walletId,rpId:cp(e.plan.auth.rpId),credential:e.plan.auth.credential,credentialPublicKeyB64u:e.plan.auth.credentialPublicKeyB64u,walletKeys:e.walletKeys});return}await e.context.signingEngine.storeWalletEmailOtpEcdsaRegistrationData({walletId:e.plan.walletId,email:e.plan.auth.email,registrationAuthorityId:e.plan.auth.registrationAuthorityId,authority:e.plan.auth.authority,walletKeys:e.walletKeys})}async function xp(e){let t=await yp(e),n=performance.now();try{if(await bp({context:e.context,plan:e.plan,walletKeys:t}),await V.persistFoundingWalletAuthority({authority:e.plan.foundingAuthority,authMethod:e.plan.foundingAuthMethod}),e.plan.auth.kind===`email_otp`){let t=l(e.plan.auth.email);if(!t.ok)throw Error(t.error.message);let n=await V.retainVerifiedEmailOtpLocalPresentation({walletId:e.plan.walletId,walletAuthMethodId:e.plan.foundingAuthMethod.walletAuthMethodId,emailAddress:t.value});if(n.kind!==`retained`)throw Error(`Verified Email OTP presentation was not retained: ${n.reason}`)}}finally{e.registrationTiming.record(`ecdsaRegistrationLocalRecordPersistenceMs`,Pa(n))}await yr(wn,e.plan.ecdsa.session.registrationEstablishedSession)}function Sp(e){return xp.bind(void 0,e)}async function Cp(e){await e.registrationTiming.measure(`ecdsaRegistrationPersistenceMs`,Sp(e))}var wp=e({REGISTRATION_TIMING_LABEL:()=>_a,addSigner:()=>Vh,cancelHostedPasskeyRegistration:()=>dm,prepareHostedPasskeyRegistration:()=>um,registerPreparedHostedPasskeyRegistration:()=>pm,registerWallet:()=>Oh,resumeNearRegistrationAfterUnlock:()=>oh,startHostedPasskeyRegistrationCredential:()=>fm});async function Tp(e,t,n,r){if(r.length!==10||new Set(r).size!==10)throw Error(`Wallet custody must issue exactly ten distinct recovery codes`);switch((await Dp({backup:n,context:e,request:{kind:`wallet_recovery_code_backup_request_v1`,walletId:t,recoveryCodes:r,continuation:`registration_may_defer`}}))?.kind){case`wallet_recovery_codes_backed_up_v1`:return null;case`wallet_recovery_code_backup_deferred_v1`:return await pr.write({walletId:t,recoveryCodes:r});default:throw Error(`Wallet recovery-code backup result is invalid`)}}async function Ep(e,t,n,r,i){e.value=await Tp(t,n,r,i)}async function Dp(e){if(!e.backup)return{kind:`wallet_recovery_code_backup_deferred_v1`};switch(e.backup.kind){case`defer_to_account_menu`:return{kind:`wallet_recovery_code_backup_deferred_v1`};case`show_builtin_dialog`:return await dr(e.request,e.context.signingEngine.getWalletIframeSurfaceMeasurementBinding());case`custom_handler`:return await e.backup.handler(e.request);default:return q(e.backup)}}function Op(e){e.byteLength>0&&new Uint8Array(e).fill(0)}function kp(e){let t=e.established.metadata;return{binding:{kind:Mn,applicationBindingDigestB64u:e.established.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:A(t.registeredPublicKey),participantIds:t.participantIds,stateEpoch:String(t.stateEpoch),walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,signingWorkerId:t.scope.signing_worker_id,signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:e.established.localMaterial.b64u,nonceB64u:e.established.localMaterial.nonceB64u}}}function Ap(e){let t=e.metadata;return{materialActivation:Zn(t),registeredPublicKeyB64u:A(t.registeredPublicKey),signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare),stateEpoch:String(t.stateEpoch),signingWorkerId:t.scope.signing_worker_id,participantIds:t.participantIds,nearEd25519SigningKeyId:t.applicationBinding.near_ed25519_signing_key_id,signerSlot:t.applicationBinding.key_creation_signer_slot}}function jp(e){let t=e.establishedCustody;if(!t)throw Error(`Mixed registration custody commit is missing its established envelope`);return{bindingJson:t.envelopeBindingJson,nonceB64u:t.envelopeNonceB64u,ciphertextB64u:t.sealedCustodySecretB64u,aadHashB64u:t.envelopeAadHashB64u,ciphertextDigestB64u:t.envelopeCiphertextDigestB64u}}function Mp(e){let t=e.commit.establishedCustody;if(!t)throw Error(`Passkey registration custody commit is missing its established envelope`);return Id({expectedWalletId:e.walletId,replacement:t,activatedAtMs:e.activatedAtMs})}async function Np(e){await e.signingEngine.establishUnlockedWalletEd25519ExportRootCapabilityV1({existingEnvelope:Mp({commit:e.commit,walletId:e.walletId,activatedAtMs:Date.now()}),passkeyPrfFirstB64u:e.passkeyPrfFirstB64u,walletId:e.walletId,walletAuthMethodId:e.walletAuthMethodId,walletSessionId:e.walletSessionId,expiresAtMs:e.expiresAtMs})}async function Pp(e){try{await En(Dn(e.context.signingEngine.getSignerWorkerContext()),{existingEnvelope:Mp({commit:e.commit,walletId:e.walletId,activatedAtMs:Date.now()}),existingFactorSecret:e.factorSecret32,walletId:e.walletId,walletAuthMethodId:String(e.emailOtpAuthContext.authority.bindingId),walletSessionId:e.walletSessionId,expiresAtMs:e.expiresAtMs})}catch(e){console.warn(`[registration][email-otp] unlocked Ed25519 export-root capability was not established:`,e instanceof Error?e.message:String(e||`unknown error`))}}async function Fp(e){let t=Mp(e);if(t.factor.kind!==`passkey`)throw Error(`Passkey registration custody commit has a non-passkey factor`);await Xd({walletId:e.walletId,credentialIdB64u:t.factor.credentialIdB64u,envelope:t})}function Ip(e){let n=e.joined.metadata,r=t(n.scope.threshold_session_id);if(!r.ok)throw Error(`Registration Ed25519 capability has an invalid threshold session`);return{kind:ut,session:{walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authorityScope:{kind:`email_otp`,provider:ir(e.authContext),providerUserId:ar(e.authContext)},thresholdSessionId:r.value,authorizationId:e.sessionState.signingWalletSession.authorizationId,walletSessionId:e.sessionState.walletSessionId,quotaId:e.sessionState.quotaId,expiresAtMs:e.sessionState.signingWalletSession.expiresAtMs,participantIds:n.participantIds,remainingUses:e.sessionState.signingWalletSession.remainingUses,signingRootId:e.sessionState.signingRootId,signingRootVersion:e.sessionState.signingRootVersion,runtimePolicyScope:e.sessionState.runtimePolicyScope,routerAbNormalSigning:e.sessionState.routerAbNormalSigning},capability:{kind:`router_ab_ed25519_yao_active_capability_v1`,materialActivation:n.materialActivation,activeCapabilityBinding:n.activeCapabilityBinding,registeredPublicKey:[...n.registeredPublicKey],nearAccountId:e.nearAccountId,applicationBinding:n.applicationBinding,runtimePolicyScope:e.sessionState.runtimePolicyScope,participantIds:n.participantIds,lifecycle:{lifecycleId:n.scope.lifecycle_id,rootShareEpoch:n.scope.root_share_epoch,accountId:n.scope.account_id,thresholdSessionId:r.value,signerSetId:n.scope.signer_set_id,signingWorkerId:n.scope.signing_worker_id},stateEpoch:Number(n.stateEpoch),registrationContinuity:{kind:`registration`,admissionRequest:e.deferredNear.admissionRequest,admissionReceipt:e.admissionReceipt,activationTranscript:[...n.transcript]}}}}const Lp=Symbol(`hostedPasskeyRegistrationPrepared`),Rp=new WeakMap;function zp(e){let t=pn(e);if(!t.ok)throw Error(t.message);return t.value}function Bp(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Vp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`implicit_account`:return t.kind===`implicit_account`&&e.accountIdSource===t.accountIdSource;case`sponsored_named_account`:return t.kind===`sponsored_named_account`&&e.requestedAccountId===t.requestedAccountId&&e.sponsor===t.sponsor;default:return q(e)}}function Hp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`near_ed25519`:return t.kind===`near_ed25519`&&Vp(e.accountProvisioning,t.accountProvisioning)&&e.signerSlot===t.signerSlot&&Bp(e.participantIds,t.participantIds)&&e.derivationVersion===t.derivationVersion;case`evm_family_ecdsa`:return t.kind===`evm_family_ecdsa`&&Bp(e.participantIds,t.participantIds)&&gn(e.chainTargets)===gn(t.chainTargets);default:return q(e)}}function Up(e,t){if(e.kind!==t.kind||e.signers.length!==t.signers.length)return!1;for(let n=0;n<e.signers.length;n+=1){let r=e.signers[n],i=t.signers[n];if(!r||!i||!Hp(r,i))return!1}return!0}function Wp(e){return e.signingEngine.warmCriticalResources.bind(e.signingEngine,{kind:`none`})}function Gp(){return Promise.resolve(Za())}function Kp(e){return e.signers.some(e=>e.kind===`evm_family_ecdsa`)}function qp(e){return e.authMethod.kind!==`email_otp`||!zr(e.signerSelection)?Gp:Yp.bind(void 0,{prewarm:e.context.signingEngine.prewarmEmailOtpYao.bind(e.context.signingEngine)})}function Jp(e,t){let n=Pa(t);return{kind:`failed`,elapsedMs:n,workerPrewarmMs:n,yaoWasmInitMs:0,failureStage:`worker_ready`}}function Yp(e){let t=performance.now();return e.prewarm().catch(e=>Jp(e,t))}function Xp(e){let[t,n]=e;return{kind:`completed`,diagnostics:{...t,emailOtpWorkerPrewarmMs:n.workerPrewarmMs,emailOtpYaoWasmInitMs:n.yaoWasmInitMs,emailOtpYaoPrewarm:n}}}function Zp(e){return{kind:`failed`,error:e}}function Qp(e){Bn({relayerUrl:e.relayerUrl,nearEd25519:e.signerSelection.signers.some(e=>e.kind===`near_ed25519`),evmFamilyEcdsa:Kp(e.signerSelection)}),zr(e.signerSelection)&&Jc(e.authMethod,e.context.signingEngine.prewarmNearSigner.bind(e.context.signingEngine));let t=e.recorder.measure(`registrationWarmupMs`,Wp(e.context)),n=e.recorder.measure(`registrationWarmupEmailOtpYaoWasmInitMs`,qp({context:e.context,authMethod:e.authMethod,signerSelection:e.signerSelection}));return Kp(e.signerSelection)&&e.context.signingEngine.prewarmEcdsaRegistrationCrypto?.().catch(()=>{}),Promise.all([t,n]).then(Xp,Zp)}function $p(e){e.warmup.then(t=>{t.kind===`completed`&&e.recorder.captureWarmupDiagnostics(t.diagnostics)})}function em(e){return hn(zp(e))?.signerSlot??1}async function tm(e){return e.passkeyExecution?.kind===`use_hosted_preparation`?await e.passkeyExecution.authority:await nf({context:e.context,walletId:e.walletId,signerSlot:e.signerSlot,registrationIntentDigestB64u:e.registrationIntentDigestB64u,options:e.options,confirmationConfigOverride:e.confirmationConfigOverride})}function nm(e){if(e[Lp]!==!0)throw Error(`Invalid hosted passkey registration preparation`);let t=Rp.get(e);if(!t)throw Error(`Hosted passkey registration preparation is unknown`);return t}function rm(e){if(e.lifecycle!==`ready`)throw Error(`Hosted passkey registration preparation is no longer usable`);if(Date.now()>=e.prepared.expiresAtMs)throw dm(e.prepared),Error(`Hosted passkey registration preparation expired`);if(e.controller.signal.aborted)throw Error(`Hosted passkey registration preparation was cancelled`);if(!Sr.isLiveReservation({reservation:e.prepared.reservation,owner:e.prepared.owner}))throw dm(e.prepared),Error(`Hosted passkey registration prompt reservation is no longer active`)}function im(e){return C({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:e.walletId,signerSlot:e.signerSlot,rpId:e.rpId,challengeB64u:e.challengeB64u})}function am(){return Error(`Hosted passkey registration preparation was cancelled`)}function om(e){if(e.aborted)throw am()}function sm(e){let t=e.cancellation.signal;return om(t),new Promise((n,r)=>{let i=!1,a=()=>{c(am())},o=()=>{t.removeEventListener(`abort`,a)},s=e=>{i||(i=!0,o(),n(e))},c=e=>{i||(i=!0,o(),r(e))};t.addEventListener(`abort`,a,{once:!0}),e.operation.then(s,c)})}function cm(e){switch(e.setup.kind){case`near_ed25519`:return{kind:`not_required`};case`evm_family_ecdsa`:case`near_ed25519_and_evm_family_ecdsa`:{let t=e.setup.registrationCeremonyId,n=Vm(e.setup.ecdsa),r=e.context.signingEngine.createRouterAbEcdsaRegistrationCeremony({kind:`create_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:t,registration:n.strictRegistration});return r.catch(()=>void 0),{kind:`started`,ceremonyId:t,operation:r}}default:return q(e.setup)}}function lm(e){e.ceremony.kind!==`not_required`&&Rc({context:e.context,ceremonyId:e.ceremony.ceremonyId})}async function um(e){let t=e.authMethod,n=cp(String(t.rpId));if(cp(String(e.context.signingEngine.getRpId()||``))!==n)throw Error(`Hosted passkey registration rpId does not match the wallet runtime`);let r=em(e.signerSelection),i=e.expiresInMs??300*1e3;if(!Number.isSafeInteger(i)||i<=0)throw Error(`Hosted passkey registration expiry must be a positive safe integer`);let a=Date.now()+i,o={kind:`hosted_auth_menu_registration`,authMenuSessionId:e.authMenuSessionId,requestId:e.requestId},s=new AbortController,c=null,l=null,u={kind:`not_required`},d=()=>{s.abort(),c&&dm(c)},f=()=>{e.cancellation.signal.removeEventListener(`abort`,d)};om(e.cancellation.signal),e.cancellation.signal.addEventListener(`abort`,d,{once:!0});let p=new Xa(performance.now());try{let i=await sm({operation:Pm({context:e.context,authMethod:t,wallet:e.wallet,signerSelection:e.signerSelection,recorder:p}),cancellation:e.cancellation}),d=el(i.setup.intent);if(String(d.authMethod.rpId)!==String(n)||!Up(d.signerSelection,e.signerSelection))throw Error(`Hosted passkey registration setup changed its authority binding`);let m=Vt(String(d.walletId)),h=String(i.setup.registrationIntentDigestB64u||``).trim();if(!h)throw Error(`Hosted passkey registration setup returned no challenge`);if(r!==em(e.signerSelection))throw Error(`Hosted passkey registration signer slot changed during preparation`);if(u=cm({context:e.context,setup:i.setup}),$p({recorder:p,warmup:i.registrationWarmup}),Date.now()>=a)throw Error(`Hosted passkey registration preparation expired before reservation`);let g=await Sr.reserveRegistrationPrompt({owner:o,expiresAtMs:a,cancellation:e.cancellation});l=g;let _=im({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:t,walletId:m,signerSlot:r,rpId:n,challengeB64u:h}),v=Object.freeze({kind:`hosted_passkey_registration_prepared_v1`,walletId:m,signerSlot:r,rpId:n,challengeB64u:h,registrationIntentDigestB64u:h,expiresAtMs:a,owner:o,reservation:g,cancellation:{kind:`abort_signal`,signal:s.signal},[Lp]:!0});return Rp.set(v,{prepared:v,context:e.context,wallet:e.wallet,signerSelection:e.signerSelection,authMethod:t,options:e.options??{},...e.confirmationConfigOverride?{confirmationConfigOverride:e.confirmationConfigOverride}:{},setup:i,controller:s,removeExternalCancellationListener:f,binding:_,lifecycle:`ready`,authority:null,registrationStarted:!1,ecdsaClientCeremony:u}),c=v,v}catch(t){throw s.abort(),f(),lm({context:e.context,ceremony:u}),c?dm(c):l&&Sr.releaseReservation(l),t}}function dm(e){let t=nm(e);t.lifecycle===`finished`||t.lifecycle===`cancelled`||(t.lifecycle=`cancelled`,t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,lm({context:t.context,ceremony:t.ecdsaClientCeremony}),Sr.releaseReservation(e.reservation))}function fm(e){let t=nm(e);rm(t),t.lifecycle=`consuming`;let n=tf(t.context.signingEngine.startPreparedPasskeyRegistrationCredential({walletId:String(e.walletId),signerSlot:e.signerSlot,challengeB64u:e.challengeB64u,expectedRpId:String(e.rpId),reservation:e.reservation,owner:e.owner,cancellation:e.cancellation}));return t.authority=n,n.then(()=>{t.lifecycle===`consuming`&&(t.lifecycle=`consumed`)},()=>{dm(e)}),n}async function pm(e){let t=nm(e.prepared);if(t.lifecycle!==`consuming`&&t.lifecycle!==`consumed`||!t.authority)throw Error(`Hosted passkey registration credential must be started by its CTA`);if(t.registrationStarted)throw Error(`Hosted passkey registration continuation was already consumed`);t.registrationStarted=!0;try{return await Eh({context:t.context,authMethod:t.authMethod,wallet:t.wallet,signerSelection:t.signerSelection,options:t.options,authenticatorOptions:_n(t.context.configs.webauthn.authenticatorOptions),...t.confirmationConfigOverride?{confirmationConfigOverride:t.confirmationConfigOverride}:{},passkeyExecution:{kind:`use_hosted_preparation`,prepared:e.prepared,authority:t.authority}})}finally{t.lifecycle=`finished`,lm({context:t.context,ceremony:t.ecdsaClientCeremony}),t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,Sr.releaseReservation(e.prepared.reservation)}}async function mm(e){return rf(`wallet-registration-near-provisioning:${await y([`wallet-registration-near-provisioning`,e.registrationCeremonyId,e.activationReference.lifecycle_id,e.activationReference.session_id.map(e=>e.toString(16).padStart(2,`0`)).join(``)].join(`:`))}`)}function hm(e){let t=globalThis.crypto;if(t&&typeof t.randomUUID==`function`)return rf(`${e}:${t.randomUUID()}`);let n=new Uint8Array(16);if(!t||typeof t.getRandomValues!=`function`)throw Error(`Secure randomness is required for registration finalization`);return t.getRandomValues(n),rf(`${e}:${[...n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`)}function gm(e){return e.recorder.measure(`emailOtpEnrollmentMaterialMs`,()=>vm({context:e.context,authMethod:e.authMethod,relayerUrl:e.relayerUrl,walletId:e.walletId,providerSubject:e.providerSubject,clientSecret32:e.clientSecret32}))}function _m(e){if(e.emailOtpSessionHandle.kind!==`not_requested`)throw Error(`Strict ECDSA registration received obsolete Email OTP root-share material`)}async function vm(e){if(e.authMethod.kind!==`email_otp`)throw Error(`Email OTP enrollment material requires Email OTP auth`);try{let t=await e.context.signingEngine.prepareEmailOtpRegistrationEnrollmentMaterialInternal({relayUrl:e.relayerUrl,walletId:Ve(e.walletId),userId:e.providerSubject,clientSecret32:e.clientSecret32});return _m(t),t}finally{e.clientSecret32.fill(0)}}function ym(e){let t=e.event.authMethod,n=bm(e.accountId);return Zt({...e.event,flowId:`registration:${t}:${n}`,accountId:n,authMethod:t})}function bm(e){let t=String(e||``).trim();if(!t)throw Error(`Registration event account id is required`);return t}function xm(e){return v(e)&&`code`in e?String(e.code||``).trim():``}function Sm(e,t){return Object.assign(Error(e),t?{code:t}:{})}function Cm(e){return Array.isArray(e)?e.filter(e=>{switch(e){case`ble`:case`hybrid`:case`internal`:case`nfc`:case`smart-card`:case`usb`:return!0;default:return!1}}):[]}function $(e,t,n){e?.(ym({accountId:t,event:n}))}function wm(e,t,n){let r=!1;return async i=>{if(!e||r)return await i;let a=setTimeout(()=>{r||(r=!0,$(e,t,{authMethod:`passkey`,phase:n,status:`running`}))},5e3);try{return await i}finally{clearTimeout(a)}}}async function Tm(e){let t=String(e||``).trim().toLowerCase();if(!t)throw Error(`Email OTP registration auth context requires email`);return y(t)}function Em(e){switch(e.proofKind){case`otp_challenge`:return`email`;case`google_sso_registration`:return`google`;default:return q(e)}}function Dm(e){switch(e.kind){case`passkey`:return{kind:`passkey`,webauthnRegistration:e.webauthnRegistration};case`email_otp`:return{kind:`email_otp`,emailOtpRegistrationProof:e.emailOtpRegistrationProof};default:return q(e)}}async function Om(e){let t=performance.now();try{let n=await rl(e.deferredNear,{routerOrigin:new URL(e.relayerUrl).origin,routing:e.home,authorization:{kind:`bearer`,value:`Bearer ${e.signedSetup}`},fetch:globalThis.fetch,...e.traceContext?{traceContext:e.traceContext}:{}});return Sa({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`success`}),{deferredNear:e.deferredNear,admissionReceipt:n}}catch(n){throw Sa({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`failure`}),n}}function km(e){if(!e)throw Error(`Mixed registration did not start NEAR admission`);return e}function Am(e,t,n){switch(e.kind){case`passkey`:return{auth:{kind:`passkey`,rpId:bn(e.rpId),credentialIdB64u:t}};case`email_otp`:return{auth:{kind:`email_otp`,providerSubjectId:ar(e.emailOtpAuthContext)},remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs};default:return q(e)}}async function jm(e){let t=kt(C({operation:`wallet_registration_activate_v2`,registrationCeremonyId:e.registrationCeremonyId,activationCorrelationId:e.activationCorrelationId,idempotencyKey:e.idempotencyKey,publicFacts:e.publicFacts}));return{canonicalRequest:t,requestDigest:_e(A(await S(String(t))))}}async function Mm(e){let t={authority:e.materialAuthority,targetMemberships:e.chainTargets,evmFamilySigningKeySlotId:jt(e.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:Gt(e.ecdsaPrepare.prepare.ecdsaThresholdKeyId),signingRootId:St(e.ecdsaPrepare.prepare.signingRootId),signingRootVersion:mt(e.ecdsaPrepare.prepare.signingRootVersion),runtimePolicyScope:e.ecdsaPrepare.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Ut(e.clientActivation.derivationClientSharePublicKey33B64u),participantIds:[xn(e.ecdsaPrepare.prepare.participantIds[0]),xn(e.ecdsaPrepare.prepare.participantIds[1])],relayerKeyId:Wt(e.ecdsaPrepare.prepare.relayerKeyId),bindingDigest:Yt(e.clientActivation.contextBinding32B64u),journalId:e.activationCorrelationId,requestDigest:e.activationCommand.requestDigest,canonicalRequest:e.activationCommand.canonicalRequest,createdAt:he(new Date().toISOString())},n=await e.context.signingEngine.persistInitialCanonicalEcdsaActivation({kind:`persist_initial_canonical_ecdsa_activation_v1`,bootstrapOwner:`wallet_custody`,clientActivation:e.clientActivation,ceremonyId:e.ceremonyId,planInput:t});if(!n.ok)throw Error(`Canonical ECDSA activation persistence failed (${n.code}): ${n.message}`);return n}function Nm(e){let t=j(e);if(t.length!==20)throw Error(`ECDSA activation address must contain 20 bytes`);return`0x${Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}`}async function Pm(e){let t=String(e.context.configs.network.relayer.url||``).trim();if(!t)throw Error(`registerWallet requires relayer.url`);let n=e.context.configs.registration,r=String(n?.publishableKey||``).trim(),i=String(n?.projectEnvironmentId||``).trim();if(!r||!i)throw Error(`registerWallet requires registration.publishableKey and registration.projectEnvironmentId`);let a=Qp({recorder:e.recorder,context:e.context,relayerUrl:t,authMethod:e.authMethod,signerSelection:e.signerSelection}),o=await e.recorder.measure(`registrationIntentMs`,()=>zn({relayerUrl:t,request:{...e.wallet.kind===`provided`?{wallet:e.wallet}:{},signerSelection:e.signerSelection,authMethod:e.authMethod},auth:{publishableKey:r,environmentId:i}}));if(!o.ok)throw Sm(o.message,o.code);return{relayerUrl:t,setup:o,registrationWarmup:a}}async function Fm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return await Pm({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:e.recorder});if(e.authMethod.kind!==`passkey`)throw Error(`Hosted passkey preparation requires passkey registration`);let t=nm(e.passkeyExecution.prepared);if(t.context!==e.context||t.lifecycle===`cancelled`)throw Error(`Hosted passkey registration preparation belongs to a different operation`);let n=t.setup,r=el(n.setup.intent),i=String(n.setup.registrationIntentDigestB64u||``).trim(),a=em(e.signerSelection);if(im({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:Vt(String(r.walletId)),signerSlot:a,rpId:cp(String(e.authMethod.rpId)),challengeB64u:i})!==t.binding||String(r.walletId)!==String(e.passkeyExecution.prepared.walletId)||i!==e.passkeyExecution.prepared.challengeB64u)throw Error(`Hosted passkey registration preparation binding changed`);return n}function Im(e){if(e.passkeyExecution.kind===`collect_during_registration`)return{kind:`create_after_authority`};let t=nm(e.passkeyExecution.prepared);if(t.ecdsaClientCeremony.kind!==`started`||t.ecdsaClientCeremony.ceremonyId!==e.ceremonyId)throw Error(`Hosted passkey registration has no matching ECDSA client ceremony`);return{kind:`use_hosted_preparation`,ceremonyId:t.ecdsaClientCeremony.ceremonyId,operation:t.ecdsaClientCeremony.operation}}async function Lm(e){return await e}function Rm(e){switch(e.clientCeremony.kind){case`create_after_authority`:return e.context.signingEngine.createRouterAbEcdsaRegistrationCeremony.bind(e.context.signingEngine,{kind:`create_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:e.ceremonyId,registration:e.registration});case`use_hosted_preparation`:if(e.clientCeremony.ceremonyId!==e.ceremonyId)throw Error(`Prepared ECDSA client ceremony identity changed`);return Lm.bind(void 0,e.clientCeremony.operation);default:return q(e.clientCeremony)}}async function zm(e){let[t,...n]=e.ecdsaPrepare.chainTargets;if(!t)throw Error(`Strict ECDSA ceremony requires at least one EVM-family target`);let r=e.registrationCeremonyId,i=ge(r),a=null;try{let o=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientCreateMs`,operation:Rm({context:e.context,ceremonyId:r,registration:e.ecdsaPrepare.strictRegistration,clientCeremony:e.clientCeremony})}),s=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Vn.bind(void 0,{relayerUrl:e.relayerUrl,headers:Ac(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,ecdsa:{kind:`router_ab_ecdsa_registration_v1`,strictRegistration:o.registrationRequest,requestDigestB64u:o.registrationRequestDigestB64u},...Dm(e.authority),onServerTiming:t=>ya(e.registrationTiming,`respond`,t)})});if(s.kind===`near_ed25519`)throw Error(`ECDSA registration ceremony received an Ed25519-only respond result`);let c=s.kind===`near_ed25519_and_evm_family_ecdsa`?s.ed25519:null,l=c?Om({home:e.home,relayerUrl:e.relayerUrl,registrationCeremonyId:r,signedSetup:e.signedSetup,deferredNear:c,traceContext:e.traceContext}):null;l?.catch($m);let u=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientProofVerifyMs`,operation:e.context.signingEngine.verifyRouterAbEcdsaRegistrationClientProofs.bind(e.context.signingEngine,{kind:`verify_router_ab_ecdsa_registration_client_proofs_v1`,bootstrapOwner:`wallet_custody`,ceremonyId:r,clientProofFinalization:{kind:`finalize_encrypted_client_proof_bundles_v2`,bundles:s.ecdsa.strictResult.response.bundles}})}),d=await e.resolveActivateEmailOtp(),f=[t,...n],p=e.authority.kind===`passkey`?e.authority.walletCustodyFactorJson:d.walletCustodyFactorJson;if(!p)throw Error(`ECDSA registration has no wallet custody factor binding`);let m=e.authority.walletCustodyFactorSecret,h={},g=await e.context.signingEngine.establishWalletCustodyEvmFamilyKeySet({walletId:e.ecdsaPrepare.prepare.walletId,factorJson:p,factorSecret:m,evmFamilySigningKeySlotId:e.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,applicationBindingDigestB64u:u.applicationBindingDigestB64u,confirmRecoveryCodesBackedUp:e.confirmRecoveryCodesBackedUp,runRelayerRound:async t=>{let n=yt({registrationRequestDigestB64u:u.registrationRequestDigestB64u,proofTranscriptDigestB64u:u.proofTranscriptDigestB64u,contextBinding32B64u:t.contextBinding32B64u,derivationClientSharePublicKey33B64u:t.clientSharePublicKey33B64u,clientShareRetryCounter:t.clientShareRetryCounter,participantId:1}),o=await jm({registrationCeremonyId:r,activationCorrelationId:i,idempotencyKey:e.idempotencyKey,publicFacts:n}),s=Ul(t.preActivationCommitPayload),p={activationJournalId:i,clientActivation:n,activationRequestDigestB64u:o.requestDigest};if(e.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){if(!c)throw Error(`Mixed registration has no NEAR continuation`);await e.persistPendingCommit({signerPlanKind:e.signerPlanKind,localMaterial:{keyFamilies:[`ecdsa_secp256k1`],custodyCommit:s,ecdsa:p},emailOtpEnrollment:d.enrollment,deferredNear:c}),a=e.startDeferredNearCustody({admission:km(l),establishedEvmCustodyCommit:t.preActivationCommitPayload}),a.catch($m)}else await e.persistPendingCommit({signerPlanKind:e.signerPlanKind,localMaterial:{keyFamilies:[`ecdsa_secp256k1`],custodyCommit:s,ecdsa:p},emailOtpEnrollment:d.enrollment});let m=await Mm({context:e.context,ceremonyId:r,materialAuthority:e.materialAuthority,ecdsaPrepare:e.ecdsaPrepare,chainTargets:f,activationCorrelationId:i,activationCommand:o,clientActivation:n});if(String(m.journalId)!==String(i))throw Error(`ECDSA activation journal identity changed before activate`);let g=await Hc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Wn.bind(void 0,{relayerUrl:e.relayerUrl,headers:Ac(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey,ecdsa:{clientActivation:n,activationCorrelationId:i,activationRequestDigestB64u:o.requestDigest},walletCustodyCommit:t.preActivationCommitPayload,...d.enrollment?{emailOtpEnrollment:d.enrollment}:{},onServerTiming:t=>ya(e.registrationTiming,`activate`,t)})});if(g.kind!==`evm_family_ecdsa`||!g.ecdsa)throw Error(`ECDSA registration ceremony received a non-ECDSA activate result`);h.value=g,h.journalId=m.journalId;let _=g.ecdsa.activation.ecdsa_activation.public_identity;return JSON.stringify({relayerKeyId:e.ecdsaPrepare.prepare.relayerKeyId,relayerPublicKey33B64u:_.server_public_key33_b64u,groupPublicKey33B64u:_.threshold_public_key33_b64u,ethereumAddress:Nm(_.ethereum_address20_b64u),relayerShareRetryCounter:_.server_share_retry_counter})}});if(!h.value||!h.journalId)throw Error(`Wallet custody ECDSA activation did not return its committed receipt`);let _=h.value;if(_.walletCustody?.status!==`committed`){let e=_.walletCustody?.status??`not_reported`;throw Error(`Wallet custody did not commit during ECDSA activation (${e})`)}let v=zc({prepare:e.ecdsaPrepare.prepare,verified:g.clientBootstrap}),y=tr({clientBootstrap:v,serverBootstrap:_.ecdsa.bootstrap,activationEpoch:_.ecdsa.activation.ecdsa_activation.activation_epoch}),b=await e.context.signingEngine.finalizeRouterAbEcdsaRegistrationActivation({kind:`finalize_router_ab_ecdsa_registration_activation_v1`,bootstrapOwner:`wallet_custody`,journalId:h.journalId,activationReceipt:_.ecdsa.activation,routerAbEcdsaDerivationNormalSigning:y.routerAbEcdsaDerivationNormalSigning,readyStateBlobB64u:g.localMaterial.readyStateBlobB64u,walletCustodyPublicFacts:g.localMaterial.publicFacts});return{session:{chainTargets:[t,...n],clientBootstrap:v,bootstrap:y,activatedThresholdSessionId:_.ecdsa.bootstrap.thresholdSessionId,roleLocalMaterial:b.roleLocalMaterial,authority:await Ft({authority:_.authority}),materialActivation:b.materialActivation,clientPublicFacts:b.publicFacts,publicCapability:b.publicCapability,registrationEstablishedSession:Nc(_.registrationEstablishedSession)},activated:_,deferredNear:c,activateEmailOtp:{enrollment:d.enrollment},walletCustody:g,deferredNearCustodyWork:a}}catch(t){throw Xm(a),await Rc({context:e.context,ceremonyId:r}),t}}function Bm(e){switch(e.kind){case`evm`:return We({chain:`evm`,chainId:e.chainId,networkSlug:e.networkSlug});case`tempo`:return We({chain:`tempo`,chainId:e.chainId,networkSlug:e.networkSlug});default:return q(e)}}function Vm(e){let[t,...n]=e.chainTargets;if(!t)throw Error(`Registration setup ECDSA chain targets are required`);return{kind:e.kind,chainTargets:[Bm(t),...n.map(Bm)],prepare:e.prepare,strictRegistration:e.strictRegistration}}function Hm(e,t){switch(e.kind){case`near_ed25519`:throw Error(`Registration setup returned an Ed25519-only signer branch`);case`evm_family_ecdsa`:case`near_ed25519_and_evm_family_ecdsa`:if(e.kind!==t)throw Error(`Registration setup returned a different signer branch`);return e;default:return q(e)}}function Um(e){switch(e.kind){case`evm_family_ecdsa`:return 1;case`near_ed25519_and_evm_family_ecdsa`:return e.ed25519Selection.signerSlot;default:return q(e)}}function Wm(e){if(e.authMethod.kind===`passkey`){if(!e.passkeyAuthority)throw Error(`Passkey registration authority was not collected`);return{kind:`passkey`,rpId:e.authMethod.rpId,credentialIdB64u:String(e.passkeyAuthority.credential.rawId||e.passkeyAuthority.credential.id||``).trim(),transports:[...e.passkeyAuthority.webauthnRegistration.response.transports]}}return{kind:`email_otp`,email:e.email,registrationAuthorityId:e.registrationAuthorityId,providerSubject:e.providerSubject,enrollment:Gm(e.emailOtpEnrollment)}}function Gm(e){if(!e)throw Error(`Email OTP registration has no enrollment material for pending recovery`);return e}async function Km(e){let t=Date.now(),n=gp({...e,createdAtMs:t,updatedAtMs:t});return await V.putPendingWalletRegistrationCommit(n),n}function qm(e){if(!e||e.operation!==`registration_activate`||e.signerPlanKind!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`Mixed registration activation commit was not persisted`);return e}async function Jm(e){let t=e.walletKeys;if(e.auth.kind===`passkey`){let n=String(e.auth.credential.rawId||e.auth.credential.id||``).trim();if(!n)throw Error(`Passkey registration publication has no credential id`);return await In({kind:`passkey`,walletId:e.walletId,rpId:cp(e.auth.rpId),credentialIdB64u:n,credentialPublicKeyB64u:e.auth.credentialPublicKeyB64u,transports:e.auth.credential.response?.transports??[],walletKeys:t})}return await In({kind:`email_otp`,walletId:e.walletId,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:e.auth.authority,walletKeys:t})}async function Ym(e){let t=await yp({context:e.context,relayerUrl:e.relayerUrl,registrationTiming:e.registrationTiming,plan:e.plan}),n=await Jm({auth:e.plan.auth,walletId:e.plan.walletId,walletKeys:t}),r=e.plan.ecdsa.session.registrationEstablishedSession;await V.publishPendingWalletRegistrationCommit({pending:e.pending,authority:e.activated.authority,foundingAuthority:{authority:e.activated.foundingAuthority,authMethod:e.activated.foundingAuthMethod},request:{operation:e.pending.operation,registrationCeremonyId:e.pending.registrationCeremonyId,idempotencyKey:e.pending.idempotencyKey,walletId:e.pending.walletId,walletAuthMethodId:e.pending.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:r.walletSession,operationCredential:r.operationCredential},ecdsaContinuity:[],registration:n})}async function Xm(e){if(e)try{Op((await e).factorSecret32)}catch{}}function Zm(e){switch(e.auth.kind){case`passkey`:{if(!e.passkeyAuthority)throw Error(`Deferred passkey registration requires authority material`);let t=String(e.passkeyAuthority.credential.rawId||e.passkeyAuthority.credential.id||``).trim(),n=String(e.passkeyAuthority.prfFirstB64u||``).trim();if(!t||!n)throw Error(`Deferred passkey registration requires credential PRF material`);return{kind:`passkey`,rpId:e.auth.rpId,credentialIdB64u:t,prfFirstB64u:n}}case`email_otp`:if(!e.emailOtpEnrollment)throw Error(`Deferred Email OTP registration requires enrollment material`);return{kind:`email_otp`,enrollment:e.emailOtpEnrollment,emailOtpAuthContext:e.auth.emailOtpAuthContext};default:return q(e.auth)}}async function Qm(e,t,n){let r=performance.now();await V.advancePendingNearRegistration({expected:e,next:$t(e,t,n)}),Pr(e.registrationCeremonyId,`journal_prepared`,r)}function $m(){}async function eh(e,t){let n=e.factorSecretOwner.value;if(!n)throw Error(`Mixed registration has no NEAR custody factor secret`);e.factorSecretOwner.value=null;let r=performance.now(),i=`failure`;try{let r=await V.getPendingWalletRegistrationCommit({registrationCeremonyId:e.registrationCeremonyId,operation:`near_provisioning`});if(!r||r.operation!==`near_provisioning`||r.phase!==`planned`)throw Error(`NEAR registration has no planned continuation`);let a;try{let e=await t.admission;if(!at(e.deferredNear.admissionRequest,r.admissionRequest))throw Error(`NEAR admission changed the authorized request`);a=e.admissionReceipt}catch(e){if(e instanceof Error&&e.message===`NEAR admission changed the authorized request`)throw e;a=void 0}let{joined:o,admissionReceipt:s}=await nh({home:e.home,pending:r,signingEngine:e.context.signingEngine,relayerUrl:e.relayerUrl,credential:e.signedSetup,traceContext:e.traceContext,factorSecret:n,...a?{admitted:a}:{}});return i=`success`,{admissionReceipt:s,joined:o,admissionRequest:r.admissionRequest,envelope:Mp({commit:t.establishedEvmCustodyCommit,walletId:r.walletId,activatedAtMs:Date.now()}),factorSecret32:n}}catch(e){throw Op(n),e}finally{Sa({ceremonyId:e.registrationCeremonyId,stage:`custody_join`,startedAt:r,outcome:i})}}async function th(e){return e.pending.phase===`execution_prepared`?e.pending.admissionReceipt:e.admitted?e.admitted:await rl({status:`deferred`,admissionRequest:e.pending.admissionRequest},{routerOrigin:new URL(e.relayerUrl).origin,routing:e.home,authorization:{kind:`bearer`,value:`Bearer ${e.credential}`},fetch:globalThis.fetch,traceContext:e.traceContext})}async function nh(e){let t=e.pending;if(t.phase===`joined`&&t.completion.kind!==`encrypted_checkpoint`)throw Error(`Joined material has no encrypted execution checkpoint`);let n=t.phase===`joined`&&t.completion.kind===`encrypted_checkpoint`?t.completion.prepared:t;if(n.phase===`joined`)throw Error(`Invalid NEAR continuation phase`);let r=n.admissionRequest,i=performance.now(),a=await th({home:e.home,pending:n,relayerUrl:e.relayerUrl,credential:e.credential,traceContext:e.traceContext,...e.admitted?{admitted:e.admitted}:{}});Pr(n.registrationCeremonyId,`admission`,i);let o=await e.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:e.home,...n.phase===`planned`?{preparation:{kind:`fresh`},beforeRouterRound:Qm.bind(void 0,n,a)}:{preparation:{kind:`checkpoint`,checkpointJson:n.checkpointJson}},custodyJson:Ml(n.baseCustodyCommit),factorSecret:e.factorSecret,nearEd25519SigningKeyId:r.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:n.registrationCeremonyId,admissionRequest:r,admissionReceipt:a,participantIds:r.participant_ids,routerOrigin:new URL(e.relayerUrl).origin,authorization:`Bearer ${e.credential}`,traceContext:e.traceContext});if(t.phase===`joined`){if(A(o.metadata.registeredPublicKey)!==t.localMaterial.ed25519.metadata.registeredPublicKeyB64u||JSON.stringify(o.activationReference)!==JSON.stringify(t.localMaterial.ed25519.activationReference))throw Error(`Restored NEAR checkpoint changed the joined key`);return{joined:o,admissionReceipt:a}}let s=performance.now(),c=await V.getPendingWalletRegistrationCommit({registrationCeremonyId:n.registrationCeremonyId,operation:`near_provisioning`});if(!c||c.operation!==`near_provisioning`||c.phase!==`execution_prepared`)throw Error(`NEAR execution checkpoint was not persisted`);let l=gp({operation:`near_provisioning`,signerPlanKind:`near_ed25519_and_evm_family_ecdsa`,completion:{kind:`encrypted_checkpoint`,prepared:c},registrationCeremonyId:c.registrationCeremonyId,idempotencyKey:await mm({registrationCeremonyId:c.registrationCeremonyId,activationReference:o.activationReference}),walletId:c.walletId,walletAuthMethodId:c.walletAuthMethodId,signedSetup:c.signedSetup,auth:c.auth,createdAtMs:c.createdAtMs,updatedAtMs:Date.now(),localMaterial:{keyFamilies:[`ed25519`],custodyCommit:o.commitPayload,ed25519:{activationReference:o.activationReference,localMaterial:o.localMaterial,metadata:Ap(o)}}});if(l.operation!==`near_provisioning`||l.phase!==`joined`)throw Error(`Invalid joined NEAR continuation`);return await V.advancePendingNearRegistration({expected:c,next:l}),Pr(n.registrationCeremonyId,`journal_joined`,s),{joined:o,admissionReceipt:a}}function rh(e){return e.chainTarget}function ih(e,t){if(e.auth.kind===`passkey`&&t.kind===`passkey`&&e.auth.rpId===t.rpId&&e.auth.credentialIdB64u===t.credentialIdB64u)return{kind:`passkey`,rpId:t.rpId,credentialIdB64u:t.credentialIdB64u,prfFirstB64u:t.prfFirstB64u};if(e.auth.kind===`email_otp`&&t.kind===`email_otp`&&e.auth.providerSubject===t.providerSubject){let n=Dt({walletId:e.walletId,bindingId:e.walletAuthMethodId,factor:{kind:`email_otp`,provider:t.provider,providerUserId:t.providerSubject},verifier:{kind:`email_otp_wallet_auth_method`,emailHashHex:t.emailHashHex}});if(!n)throw Error(`NEAR continuation requires its founding Email OTP method`);return{kind:`email_otp`,enrollment:e.auth.enrollment,emailOtpAuthContext:sr({policy:`session`,retention:`session`,reason:`login`,authority:n})}}throw Error(`NEAR continuation requires its founding authentication method`)}async function ah(e){if(await lh(e.sessionAuthority),e.pending.phase===`joined`&&e.pending.completion.kind===`sealed_material`){let t=await cd({pending:e.pending,relayerUrl:e.relayerUrl,operationCredential:e.sessionAuthority.operationCredential});return{joined:t.joined,admissionRequest:t.admissionRequest,admissionReceipt:t.admissionReceipt,envelope:e.envelope,factorSecret32:e.factorSecret}}let t=e.pending.phase===`joined`?e.pending.completion.prepared:e.pending;if(!t)throw Error(`NEAR continuation has no encrypted checkpoint`);let n=await nh({home:e.sessionAuthority.operationCredential.home,pending:e.pending,signingEngine:e.context.signingEngine,relayerUrl:e.relayerUrl,credential:e.sessionAuthority.operationCredential.token,traceContext:nn(),factorSecret:e.factorSecret});return{joined:n.joined,admissionReceipt:n.admissionReceipt,admissionRequest:t.admissionRequest,envelope:e.envelope,factorSecret32:e.factorSecret}}async function oh(e){let t=performance.now();try{let n=await V.listPendingWalletRegistrationCommits();for(let r of n){if(r.operation!==`near_provisioning`||r.walletId!==e.sessionAuthority.record.walletId||r.walletAuthMethodId!==e.sessionAuthority.record.authMethodId||r.signerPlanKind!==`near_ed25519_and_evm_family_ecdsa`||await V.getPendingWalletRegistrationCommit({registrationCeremonyId:r.registrationCeremonyId,operation:`registration_activate`}))continue;let n=e.context.configs.network.relayer.url,i=ih(r,e.factor),a=ah.bind(void 0,{context:e.context,pending:r,envelope:e.custodyEnvelope,relayerUrl:n,sessionAuthority:e.sessionAuthority,factorSecret:e.ownedFactorSecret});await vh({context:e.context,walletId:r.walletId,commit:{context:e.context,registrationTiming:null,registrationStartedAt:t,relayerUrl:n,registrationCeremonyId:r.registrationCeremonyId,signedSetup:r.signedSetup,headers:Ac(),nearCustodyWork:a,sessionAuthority:e.sessionAuthority,expectedChainTargets:Lr(e.context.configs.network.chains).map(rh),walletId:r.walletId,authMaterial:i}})}}catch(e){console.warn(`[registration] NEAR continuation remains pending`,e instanceof Error?e.message:`continuation failed`)}finally{Op(e.ownedFactorSecret)}}function sh(e){if(!e)throw Error(`Mixed registration did not start its NEAR custody join`);return e}function ch(e,t,n,r){if(t.kind!==`already_committed`||t.session.tokens.kind!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`NEAR completion must extend the current Wallet Session`);let i=t.session,a=e.record,o=i.walletSession;if(i.walletId!==a.walletId||i.authorizationId!==a.authorizationId||i.quotaId!==a.quotaId||i.walletSessionId!==e.operationCredential.walletSessionId||o.authorityId!==a.authorityId||o.authMethodId!==a.authMethodId||o.issuedAtMs!==a.issuedAtMs||o.expiresAtMs!==a.expiresAtMs||o.authorityRevocationEpoch!==a.authorityRevocationEpoch||o.expiresAtMs<=Date.now()||!te(a,o)||n.authorityId!==o.authorityId||n.walletId!==o.walletId||n.authorityDigestB64u!==o.authorityDigestB64u||n.revocationEpoch!==o.authorityRevocationEpoch||r.walletAuthMethodId!==o.authMethodId||r.walletId!==o.walletId||r.walletAuthorityId!==o.authorityId)throw Error(`NEAR completion changed the current Wallet Session authority`);return{kind:`registration_established_wallet_session_v2`,walletId:i.walletId,authorizationId:i.authorizationId,walletSessionId:i.walletSessionId,quotaId:i.quotaId,expiresAtMs:i.expiresAtMs,remainingUses:i.remainingUses,walletSession:o,operationCredential:e.operationCredential,tokens:i.tokens}}async function lh(e){let t=await wn.readExactWithOperationCredential({walletId:e.record.walletId,authorityId:e.record.authorityId,authMethodId:e.record.authMethodId});if(t.kind!==`found`||t.record.expiresAtMs<=Date.now()||t.record.authorizationId!==e.record.authorizationId||t.record.authorityRevocationEpoch!==e.record.authorityRevocationEpoch||t.operationCredential.token!==e.operationCredential.token)throw Error(`NEAR continuation requires the current unlocked Wallet Session`)}async function uh(e){let t=await V.getPendingWalletRegistrationCommit({registrationCeremonyId:e.registrationCeremonyId,operation:`near_provisioning`});if(!t||t.operation!==`near_provisioning`||t.phase!==`joined`||t.walletId!==e.walletId||t.walletAuthMethodId!==e.walletAuthMethodId)throw Error(`NEAR joined checkpoint was not persisted`);return t}async function dh(e){let{metadata:t,materialFacts:n}=e,r={materialActivation:Zn(t),lifecycleId:t.scope.lifecycle_id,signingRootVersion:t.scope.root_share_epoch,signingRootId:t.applicationBinding.signing_root_id,signerSetId:t.scope.signer_set_id,thresholdSessionId:n.identity.thresholdSessionId,activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))},i=null;try{i=await pa({material:e.material,activation:r,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret}),await Xf({store:V,activeClient:i,identity:{walletId:n.identity.walletId,nearAccountId:n.identity.nearAccountId,nearEd25519SigningKeyId:n.identity.nearEd25519SigningKeyId,thresholdSessionId:n.identity.thresholdSessionId,signerSlot:n.identity.signerSlot,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,signingRootId:n.identity.signingRootId,signingRootVersion:n.identity.signingRootVersion,signingWorkerId:n.stableServerScope.routerAbNormalSigning.signingWorkerId},stableServerScope:n.stableServerScope,passkeyPrfFirstB64u:e.passkeyPrfFirstB64u}),await lh(e.sessionAuthority),await e.signingEngine.activateVerifiedNearEd25519YaoMaterial({activeClient:i,facts:{thresholdSessionId:n.identity.thresholdSessionId,signer:or({walletId:Ve(n.identity.walletId),nearAccountId:z(n.identity.nearAccountId),nearEd25519SigningKeyId:Rt(n.identity.nearEd25519SigningKeyId),signerSlot:n.identity.signerSlot}),signingRootId:n.identity.signingRootId,signingRootVersion:n.identity.signingRootVersion,routerAbNormalSigning:n.stableServerScope.routerAbNormalSigning,runtimePolicyScope:n.stableServerScope.runtimePolicyScope,relayerUrl:e.relayerUrl}}),await lh(e.sessionAuthority),i=null}catch(e){throw i?.dispose(),e}finally{e.ownedFactorSecret.fill(0)}}async function fh(e){let t=performance.now(),n=`failure`;try{return await e.signingEngine.hydrateSigningSession(e.input),n=`success`,{kind:`completed`}}catch(e){return{kind:`failed`,error:e}}finally{Sa({ceremonyId:e.ceremonyId,stage:`session_hydration`,startedAt:t,outcome:n})}}async function ph(e){let t=performance.now(),n=`failure`;try{return await e.signingEngine.prepareSigningSessionHydration(e.input),n=`success`,{kind:`completed`}}catch(e){return{kind:`failed`,error:e}}finally{Sa({ceremonyId:e.ceremonyId,stage:`session_seal_preparation`,startedAt:t,outcome:n})}}function mh(e){let n=t(e.thresholdSessionId);if(!n.ok)throw Error(`Invalid admitted NEAR session identity`);let r=hm(`near-session-client-seal`);return{kind:`preparing`,thresholdSessionId:String(n.value),preparationId:r,result:ph({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,input:{preparationId:r,thresholdSessionId:String(n.value),prfFirstB64u:e.prfFirstB64u}})}}async function hh(e){try{await lh(e.sessionAuthority);let t=await V.getPendingWalletRegistrationCommit({registrationCeremonyId:e.ceremonyId,operation:`near_provisioning`});return!t||t.operation!==`near_provisioning`||t.phase===`joined`||t.walletId!==e.sessionAuthority.record.walletId||t.walletAuthMethodId!==e.sessionAuthority.record.authMethodId?{kind:`none`}:mh({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,thresholdSessionId:t.admissionRequest.scope.threshold_session_id,prfFirstB64u:e.prfFirstB64u})}catch{return{kind:`none`}}}function gh(){return null}async function _h(e){let t=e.authMaterial,n=performance.now(),r=`failure`,i=null,a=Promise.resolve({kind:`completed`}),o={kind:`none`};try{t.kind===`passkey`&&(o=await hh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,sessionAuthority:e.sessionAuthority,prfFirstB64u:t.prfFirstB64u}));let n=await e.nearCustodyWork();i=n.factorSecret32;let s=n.joined,c=`ed25519:${Je(s.metadata.registeredPublicKey)}`,l=s.activationReference,u=await mm({registrationCeremonyId:e.registrationCeremonyId,activationReference:l}),d=await uh({registrationCeremonyId:e.registrationCeremonyId,walletId:e.walletId,walletAuthMethodId:String(e.sessionAuthority.record.authMethodId)});await lh(e.sessionAuthority),t.kind===`passkey`&&o.kind===`none`&&(o=mh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,thresholdSessionId:s.metadata.scope.threshold_session_id,prfFirstB64u:t.prfFirstB64u}));let f;if(o.kind===`preparing`){let t=performance.now(),n=await o.result;if(Sa({ceremonyId:e.registrationCeremonyId,stage:`session_seal_preparation_wait`,startedAt:t,outcome:n.kind===`completed`?`success`:`failure`}),n.kind===`failed`)throw n.error;await lh(e.sessionAuthority);let r=await e.context.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:o.thresholdSessionId,preparationId:o.preparationId});f={preparationId:o.preparationId,thresholdSessionId:o.thresholdSessionId,ciphertext:r.ciphertext}}let p=performance.now(),m={relayerUrl:e.relayerUrl,registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,headers:{...e.headers,...E(e.sessionAuthority.operationCredential)},idempotencyKey:u,ed25519:{activationReference:l},walletCustodyCommit:s.commitPayload,onServerTiming:ba.bind(void 0,e.registrationTiming)},h;if(f){if(e.authMaterial.kind!==`passkey`)throw Error(`Prepared session sealing requires a passkey authority`);h=await Gn({...m,auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:f.thresholdSessionId,ciphertext:f.ciphertext}})}else h=await Gn({...m,auth:e.authMaterial});if(!h.ok)throw Error(`Deferred NEAR provisioning did not complete`);let g=h;if(g.kind!==`near_ed25519`)throw Error(`Deferred Ed25519 finalize returned a different signer branch`);if(g.walletCustody?.status!==`joined`){let e=g.walletCustody?.status??`not_reported`;throw Error(`Deferred NEAR custody join did not commit (${e})`)}if(f&&!g.sessionSeal)throw Error(`Deferred NEAR finalization did not return the prepared session seal`);Sa({ceremonyId:e.registrationCeremonyId,stage:`server_finalize`,startedAt:p,outcome:`success`});let _=ch(e.sessionAuthority,g.registrationEstablishedSession,g.foundingAuthority,g.foundingAuthMethod),v=z(g.ed25519.nearAccountId),y=e.authMaterial.kind===`passkey`?e.authMaterial.credentialIdB64u:``;t.kind===`passkey`?tl({clientPublicKey:c,finalized:g,expectedRpId:t.rpId,expectedWalletId:e.walletId}):nl({clientPublicKey:c,finalized:g,expectedRegistrationAuthorityId:d.auth.kind===`email_otp`?d.auth.registrationAuthorityId:``,expectedWalletId:e.walletId});let b=Zc({admissionRequest:n.admissionRequest,finalized:g.ed25519,walletId:e.walletId,expectedRuntimePolicyScope:I(g.ed25519.runtimePolicyScope)}),x=s.metadata,S=Zn(x),C=kp({established:s,walletId:String(e.walletId),nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,signerSlot:g.ed25519.signerSlot}),w=performance.now(),T=await rd(d,g);await lh(e.sessionAuthority);let D=(await V.publishPendingWalletRegistrationCommitAndRetain({pending:d,ecdsaContinuity:[],authority:g.authority,foundingAuthority:{authority:g.foundingAuthority,authMethod:g.foundingAuthMethod},request:{operation:d.operation,registrationCeremonyId:e.registrationCeremonyId,idempotencyKey:d.idempotencyKey,walletId:e.walletId,walletAuthMethodId:g.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`credential_free_projection`,walletSession:_.walletSession},registration:T})).signerActivations[0];if(!D||D.signerSlot!==g.ed25519.signerSlot)throw Error(`Deferred Ed25519 registration persisted a different signer slot`);let O=new Tn;for(let t of e.expectedChainTargets)md({signingEngine:e.context.signingEngine,walletId:e.walletId,chainTarget:t,trigger:`registration`,statusReads:O});Sa({ceremonyId:e.registrationCeremonyId,stage:`local_publication`,startedAt:w,outcome:`success`}),await lh(e.sessionAuthority),e.authMaterial.kind===`passkey`&&_.remainingUses>0&&(a=fh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,input:il({session:_,ceremonyId:e.registrationCeremonyId,walletId:String(e.walletId),relayerUrl:e.relayerUrl,prfFirstB64u:e.authMaterial.prfFirstB64u,preparedServerSeal:f&&g.sessionSeal?{preparationId:f.preparationId,...g.sessionSeal}:null,restore:{rpId:e.authMaterial.rpId,nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,relayerKeyId:g.ed25519.relayerKeyId,participantIds:g.ed25519.participantIds,signerSlot:g.ed25519.signerSlot,credentialIdB64u:e.authMaterial.credentialIdB64u,materialActivation:S}})}));let k=performance.now();await e.context.signingEngine.activateAuthenticatedWalletState({walletId:e.walletId,nearAccountId:v,signerSlot:g.ed25519.signerSlot,nearClient:e.context.nearClient}),await e.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:e.walletId,nearAccountId:v,thresholdSessionId:b.identity.thresholdSessionId,runtimePolicyScope:b.stableServerScope.runtimePolicyScope,materialActivation:S,...Am(t,y,_),nearEd25519SigningKeyId:Rt(g.ed25519.nearEd25519SigningKeyId),signerSlot:g.ed25519.signerSlot}),Sa({ceremonyId:e.registrationCeremonyId,stage:`session_install`,startedAt:k,outcome:`success`});let A=performance.now();if(t.kind===`email_otp`&&_.remainingUses>0){let r=await $c({registrationEstablishedSession:_,walletId:e.walletId,nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,thresholdSessionId:b.identity.thresholdSessionId,runtimePolicyScope:b.stableServerScope.runtimePolicyScope,signerSlot:g.ed25519.signerSlot,relayerUrl:e.relayerUrl,emailOtpAuthContext:t.emailOtpAuthContext}),a=Ip({walletId:e.walletId,nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,sessionState:r,joined:s,deferredNear:{status:`deferred`,admissionRequest:n.admissionRequest},admissionReceipt:n.admissionReceipt,authContext:t.emailOtpAuthContext});await e.context.signingEngine.activateEmailOtpEd25519RegistrationMaterialInternal({walletSession:{walletId:e.walletId,walletSessionUserId:String(e.walletId)},providerSubject:ar(t.emailOtpAuthContext),emailHashHex:cr(t.emailOtpAuthContext),signerSlot:g.ed25519.signerSlot,expectedOperationalPublicKey:c,expectedThresholdSessionId:b.identity.thresholdSessionId,bootstrap:a,material:C,envelope:da(n.envelope),factorSecret32:i}),i=null}else if(t.kind===`passkey`){if(e.authMaterial.kind!==`passkey`)throw Error(`Deferred passkey registration has no Passkey authorization material`);if(!i)throw Error(`Deferred passkey registration has no custody factor secret`);await dh({signingEngine:e.context.signingEngine,sessionAuthority:e.sessionAuthority,metadata:x,material:C,materialFacts:b,envelope:da(n.envelope),ownedFactorSecret:new Uint8Array(i),rpId:e.authMaterial.rpId,credentialIdB64u:e.authMaterial.credentialIdB64u,passkeyPrfFirstB64u:e.authMaterial.prfFirstB64u,relayerUrl:e.relayerUrl}),i=null}e.authMaterial.kind===`passkey`&&await Xd({walletId:String(e.walletId),credentialIdB64u:e.authMaterial.credentialIdB64u,envelope:n.envelope}),Sa({ceremonyId:e.registrationCeremonyId,stage:`signer_activation`,startedAt:A,outcome:`success`}),await lh(e.sessionAuthority);let j=performance.now(),M=await a;if(Sa({ceremonyId:e.registrationCeremonyId,stage:`session_hydration_wait`,startedAt:j,outcome:M.kind===`completed`?`success`:`failure`}),M.kind===`failed`)throw M.error;await lh(e.sessionAuthority);let N=performance.now();return await V.completePendingNearRegistration({pending:d,walletSession:_.walletSession,operationCredential:_.operationCredential,nearAccountId:String(v)}),Sa({ceremonyId:e.registrationCeremonyId,stage:`durable_ready`,startedAt:N,outcome:`success`}),r=`success`,{status:`near_ready`,updatedAtMs:Date.now(),nearAccountId:String(v)}}catch(t){let n=await V.getProfile(String(e.walletId)).catch(gh);if(n?.nearProvisioning?.status===`near_ready`)return n.nearProvisioning;let r=yh(t);try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_failed_retryable`,errorCode:r})}catch{}return{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:ve(t,`registration`,String(e.walletId)),errorCode:r}}finally{await a,o.kind===`preparing`&&(await o.result,await e.context.signingEngine.discardSigningSessionHydration({thresholdSessionId:o.thresholdSessionId,preparationId:o.preparationId}).catch($m)),i&&Op(i),Sa({ceremonyId:e.registrationCeremonyId,stage:`provisioning_total`,startedAt:n,outcome:r}),Sa({ceremonyId:e.registrationCeremonyId,stage:`registration_total`,startedAt:e.registrationStartedAt,outcome:r})}}async function vh(e){try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_provisioning`})}catch(t){let n=yh(t),r={status:`near_failed_retryable`,updatedAtMs:Date.now(),error:ve(t,`registration`,String(e.walletId)),errorCode:n};try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_failed_retryable`,errorCode:n})}catch{}xd(e.walletId,r);return}await Cd({walletId:e.walletId,nowMs:Date.now,attempt:_h.bind(void 0,e.commit)})}function yh(e){let t=e instanceof Error?e.message:String(e);return t.includes(`finalize`)?`near_finalize_failed`:t.includes(`seal`)||t.includes(`Yao`)?`near_seal_failed`:t.includes(`wallet session`)?`near_capability_persist_failed`:`near_provisioning_failed`}async function bh(e){let t=yh(e.error),n=ve(e.error,`registration`,String(e.walletId));try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_failed_retryable`,errorCode:t})}catch{}return xd(e.walletId,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:n,errorCode:t}),{status:`retryable`,error:n,errorCode:t}}async function xh(e){try{return await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_pending`}),xd(e.walletId,{status:`near_pending`,updatedAtMs:Date.now()}),{status:`pending`}}catch(t){return await bh({context:e.context,walletId:e.walletId,error:t})}}async function Sh(e){let{context:t,wallet:r,signerSelection:a}=e,o=e.options||{},{onEvent:s,onError:c,afterCall:l}=o,u=performance.now(),d=new Xa(u),f=nn(),p=null,m=null,h=bm(r.kind===`provided`?String(r.walletId):`wallet-registration`);$(s,h,{authMethod:e.authMethod.kind,phase:B.STEP_01_STARTED,status:`started`});try{let c=hm(`wallet-registration-finalize`),h=await Fm({context:t,authMethod:e.authMethod,wallet:r,signerSelection:a,recorder:d,passkeyExecution:e.passkeyExecution});e.authMethod.kind===`email_otp`&&$p({recorder:d,warmup:h.registrationWarmup});let{relayerUrl:g,setup:_}=h,v=Vm(Hm(_,e.kind).ecdsa),y=Im({passkeyExecution:e.passkeyExecution,ceremonyId:_.registrationCeremonyId}),b={intent:_.intent,registrationIntentDigestB64u:_.registrationIntentDigestB64u},x=b.intent.walletId,S=bm(String(x)),C=null,w=``,T=``,E=``,D=null,O=null,k=null,A;if(e.authMethod.kind===`passkey`){$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_create`,overlay:`show`}});let n={uiMode:`modal`,behavior:`requireClick`,...e.confirmationConfigOverride??o?.confirmationConfig??{}};k=await d.measure(`authProofMs`,()=>tm({context:t,walletId:x,signerSlot:Um(e),registrationIntentDigestB64u:b.registrationIntentDigestB64u,options:o,confirmationConfigOverride:n,passkeyExecution:e.passkeyExecution})),d.capturePasskeyAuthDiagnostics(k.diagnostics),p=performance.now();let r=i(String(k.credential.rawId||k.credential.id||``).trim());if(!r.ok)throw Error(`passkey credential id ${r.error.message}`);A={kind:`passkey`,webauthnRegistration:k.webauthnRegistration,walletCustodyFactorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ae({rpId:cp(e.authMethod.rpId),credentialIdB64u:r.value}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId}),walletCustodyFactorSecret:j(k.prfFirstB64u).buffer},$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_create`,overlay:`hide`}})}else{let n=e.authMethod,r=crypto.getRandomValues(new Uint8Array(32));m=r.slice(),O=r.slice().buffer;let i=await d.measure(`authProofMs`,()=>Sf({authMethod:n,relayUrl:g,walletId:String(x),registrationIntentDigestB64u:b.registrationIntentDigestB64u}));C=gm({recorder:d,context:t,authMethod:n,relayerUrl:g,walletId:String(x),providerSubject:i.providerSubject,clientSecret32:r}),w=i.registrationAuthorityId,T=i.email,E=i.providerSubject,D=Em(i.proof),A={kind:`email_otp`,emailOtpRegistrationProof:i.proof,walletCustodyFactorSecret:O}}let M=n(_.walletAuthMethodId);if(!M.ok)throw Error(`Registration setup auth-method identity is invalid: ${M.error.message}`);let N;if(e.authMethod.kind===`passkey`){if(!k)throw Error(`ECDSA registration is missing its verified passkey authority`);N=await Ft({authority:{...Yc({walletId:x,rpId:e.authMethod.rpId,credential:k.credential}),bindingId:M.value}})}else{if(!D)throw Error(`Email OTP registration is missing its verified provider`);N=await Ft({authority:{...wt({walletId:x,provider:D,providerUserId:E,emailHashHex:await Tm(T)}),bindingId:M.value}})}$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let P={value:e.kind===`near_ed25519_and_evm_family_ecdsa`?A.walletCustodyFactorSecret.slice(0):null},F=null,I={value:null},L;try{L=await d.measure(`ecdsaRegistrationTotalMs`,()=>zm({home:_.home,context:t,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signerPlanKind:e.kind,signedSetup:_.signedSetup,ecdsaPrepare:v,clientCeremony:y,authority:A,materialAuthority:N,idempotencyKey:c,resolveActivateEmailOtp:async()=>{let t=null,n=null;if(e.authMethod.kind===`email_otp`){let e=await Xc({material:C,operation:`activate`});t=e.emailOtpEnrollment??null,n=JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:je({enrollmentId:e.enrollmentId,enrollmentSealKeyVersion:e.enrollmentSealKeyVersion}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId})}return{enrollment:t,walletCustodyFactorJson:n}},traceContext:f,registrationTiming:d,confirmRecoveryCodesBackedUp:Ep.bind(void 0,I,t,String(x),o.recoveryCodeBackup),persistPendingCommit:async t=>{let n={operation:`registration_activate`,registrationCeremonyId:_.registrationCeremonyId,idempotencyKey:c,walletId:String(x),walletAuthMethodId:String(b.intent.foundingWalletAuthMethodId),signedSetup:String(_.signedSetup),auth:Wm({authMethod:e.authMethod,passkeyAuthority:k,email:T,registrationAuthorityId:w,providerSubject:E,emailOtpEnrollment:t.emailOtpEnrollment})};if(t.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){let e=Date.now(),r=qm(gp({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial,createdAtMs:e,updatedAtMs:e})),i=tn(r,t.deferredNear.admissionRequest);await V.putPendingWalletRegistrationCommits([r,i]),F=r;return}F=await Km({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial})},startDeferredNearCustody:eh.bind(void 0,{home:_.home,context:t,factorSecretOwner:P,registrationCeremonyId:_.registrationCeremonyId,relayerUrl:g,signedSetup:String(_.signedSetup),traceContext:f})}))}finally{Op(A.walletCustodyFactorSecret),P.value&&=(Op(P.value),null)}if(I.value){let e=L.activated.walletCustody;if(e?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await pr.bindIssuedAtMs(I.value,e.issuedAtMs)}let ee=L.session;if(L.activated.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration activate returned a different signer branch`);let te=pp(L.activated),ne=L.activateEmailOtp.enrollment;if(te.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration finalize returned a different signer branch`);if(e.authMethod.kind===`email_otp`&&!Hn(te))throw Error(`Email OTP registration finalize returned a different auth method`);d.captureRouteDiagnostics(te.registrationDiagnostics);let re=te.ecdsa.walletKeys;if(re.length===0)throw Error(`Wallet registration finalize did not return ECDSA wallet keys`);let ie=await dp({authMethod:e.authMethod,configs:t.configs,walletId:Ve(te.walletId),finalized:te,passkeyAuthority:k,email:T,providerSubject:E,registrationAuthorityId:w}),R=mp({walletId:Ve(te.walletId),auth:ie,foundingAuthority:te.foundingAuthority,foundingAuthMethod:te.foundingAuthMethod,ecdsa:fp({session:ee,walletKeys:re,expectedChainTargets:ee.chainTargets})});$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`}),$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let ae=Ve(te.walletId),oe={status:`pending`};e.kind===`near_ed25519_and_evm_family_ecdsa`?(await Ym({context:t,relayerUrl:g,registrationTiming:d,pending:qm(F),plan:R,activated:L.activated}),oe=await xh({context:t,walletId:ae})):await Cp({context:t,relayerUrl:g,registrationTiming:d,plan:R});let se=Tn.fromRegistration(g,R.ecdsa.session.registrationEstablishedSession);for(let e of ee.chainTargets)md({signingEngine:t.signingEngine,walletId:ae,chainTarget:e,trigger:`registration`,statusReads:se});let ce=R.ecdsa.walletKeys[0];if(e.authMethod.kind===`passkey`){if(!k)throw Error(`Passkey registration authority was not collected`);let n=R.ecdsa.session.registrationEstablishedSession;try{await Np({signingEngine:t.signingEngine,commit:L.walletCustody.commitPayload,passkeyPrfFirstB64u:k.prfFirstB64u,walletId:String(x),walletAuthMethodId:String(R.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(n.walletSessionId),expiresAtMs:n.expiresAtMs})}catch(n){if(e.kind!==`near_ed25519_and_evm_family_ecdsa`)throw n;oe=await bh({context:t,walletId:ae,error:n})}}else{if(ie.kind!==`email_otp`||!m)throw Error(`Email OTP registration has no custody capability material`);let e=R.ecdsa.session.registrationEstablishedSession;await Pp({context:t,commit:L.walletCustody.commitPayload,factorSecret32:m,emailOtpAuthContext:ie.emailOtpAuthContext,walletId:String(x),walletSessionId:String(e.walletSessionId),expiresAtMs:e.expiresAtMs})}if(e.kind===`near_ed25519_and_evm_family_ecdsa`){let e=Zm({auth:R.auth,emailOtpEnrollment:ne,passkeyAuthority:k});try{vh({context:t,walletId:ae,commit:{context:t,registrationTiming:d,registrationStartedAt:u,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signedSetup:_.signedSetup,headers:Ac(f),nearCustodyWork:sh.bind(void 0,L.deferredNearCustodyWork),sessionAuthority:{record:R.ecdsa.session.registrationEstablishedSession.walletSession,operationCredential:R.ecdsa.session.registrationEstablishedSession.operationCredential},expectedChainTargets:R.ecdsa.expectedChainTargets,walletId:ae,authMaterial:e}})}catch(e){let t=yh(e);oe={status:`retryable`,error:ve(e,`registration`,String(ae)),errorCode:t},xd(ae,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:oe.error,errorCode:t})}}e.kind===`evm_family_ecdsa`&&await V.deletePendingWalletRegistrationCommit({registrationCeremonyId:_.registrationCeremonyId,operation:`registration_activate`});let le=e.kind===`near_ed25519_and_evm_family_ecdsa`?{success:!0,kind:`ecdsa_wallet_registered_near_pending`,walletId:te.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ce.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ce.thresholdEcdsaPublicKeyB64u}],nearProvisioning:oe}:{success:!0,kind:`wallet_registered`,walletId:te.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ce.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ce.thresholdEcdsaPublicKeyB64u}]};if($(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(s,S,{authMethod:e.authMethod.kind,phase:B.STEP_11_COMPLETED,status:`succeeded`}),p!==null){let e=performance.now();to({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-p,traceContext:f}),to({callback:o.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:f})}return eo(Qa({recorder:d,authMethod:e.authMethod.kind,signerSet:Ma(e.signerPlan)})),Dh(e.context,le,e.authMethod.kind),l?.(!0,le),le}catch(t){let n=xm(t),r=ve(t,`registration`,h);p!==null&&to({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-p,traceContext:f});let i=Sm(r,n);c?.(i),$(s,h,{authMethod:e.authMethod.kind,phase:B.FAILED,status:`failed`,message:r,interaction:{kind:`passkey_create`,overlay:`hide`},error:{...n?{code:n}:{},message:r}});let a={success:!1,error:r,...n?{errorCode:n}:{}};return eo($a({recorder:d,authMethod:e.authMethod.kind,signerSet:Ma(e.signerPlan),errorCode:n||null})),l?.(!1),a}finally{m?.fill(0)}}async function Ch(e){let{context:t,options:n}=e,r=bm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),i=new Xa(performance.now()),a=null;$(n.onEvent,r,{authMethod:`email_otp`,phase:B.STEP_01_STARTED,status:`started`});try{let r=await Pm({context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:i});$p({recorder:i,warmup:r.registrationWarmup});let{relayerUrl:o,setup:s}=r,c=s.intent.walletId,l=bm(String(c)),u=await i.measure(`authProofMs`,Sf.bind(void 0,{authMethod:e.authMethod,relayUrl:o,walletId:String(c),registrationIntentDigestB64u:s.registrationIntentDigestB64u})),d=crypto.getRandomValues(new Uint8Array(32));a=d.slice();let f=d.slice().buffer,p=gm({recorder:i,context:t,authMethod:e.authMethod,relayerUrl:o,walletId:String(c),providerSubject:u.providerSubject,clientSecret32:d});$(n.onEvent,l,{authMethod:`email_otp`,phase:B.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let m=await i.measure(`walletRegisterStartMs`,Vn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:s.signedSetup,headers:{...Ac(),...O(s.home)},kind:`email_otp`,emailOtpRegistrationProof:u.proof}));if(m.kind!==`near_ed25519`)throw Error(`Ed25519-only registration respond returned a different signer branch`);let h=await Xc({material:p,operation:`finalize`}),g;try{g=await t.signingEngine.establishWalletCustodyNearEd25519KeySet({home:s.home,walletId:String(c),factor:{factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:je({enrollmentId:h.enrollmentId,enrollmentSealKeyVersion:h.enrollmentSealKeyVersion}),walletAuthMethodId:s.intent.foundingWalletAuthMethodId}),factorSecret:f},nearEd25519SigningKeyId:m.ed25519.admissionRequest.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:s.registrationCeremonyId,admissionRequest:m.ed25519.admissionRequest,admissionReceipt:m.ed25519.admissionReceipt,participantIds:m.ed25519.admissionRequest.participant_ids,routerOrigin:new URL(o).origin,authorization:`Bearer ${String(s.signedSetup)}`})}finally{Op(f)}let _=await Tp(t,String(c),n.recoveryCodeBackup,g.recoveryCodes),v=Me(g.commitPayload);if(!g.localMaterial)throw Error(`Email OTP registration produced no sealed local custody material`);let y=await mm({registrationCeremonyId:s.registrationCeremonyId,activationReference:g.activationReference}),b=await Km({operation:`near_provisioning`,completion:{kind:`sealed_material`},signerPlanKind:`near_ed25519`,registrationCeremonyId:s.registrationCeremonyId,idempotencyKey:y,walletId:String(c),walletAuthMethodId:String(s.intent.foundingWalletAuthMethodId),signedSetup:String(s.signedSetup),auth:{kind:`email_otp`,email:u.email,registrationAuthorityId:u.registrationAuthorityId,providerSubject:u.providerSubject,enrollment:h.emailOtpEnrollment},localMaterial:{keyFamilies:[`ed25519`],custodyCommit:v,ed25519:{activationReference:g.activationReference,localMaterial:g.localMaterial,metadata:Ap(g)}}}),x=`ed25519:${Je(g.metadata.registeredPublicKey)}`,S=await i.measure(`walletRegisterFinalizeMs`,Gn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signedSetup:s.signedSetup,headers:{...Ac(),...O(s.home)},idempotencyKey:y,ed25519:{activationReference:g.activationReference},auth:{kind:`email_otp`,enrollment:h.emailOtpEnrollment},walletCustodyCommit:v}));if(!S.ok)throw Error(`Deferred NEAR provisioning did not complete`);if(i.captureRouteDiagnostics(S.registrationDiagnostics),S.kind!==`near_ed25519`)throw Error(`Wallet registration finalize returned a different signer branch`);if(!Hn(S))throw Error(`Email OTP registration finalize returned a different auth method`);if(S.walletCustody?.status!==`committed`){let e=S.walletCustody?.status??`not_reported`;throw Error(`Wallet custody did not commit (${e})`)}if(_&&await pr.bindIssuedAtMs(_,S.walletCustody.issuedAtMs),S.ed25519.signerSlot!==e.ed25519Selection.signerSlot)throw Error(`Ed25519 Yao finalize returned a different signer slot`);let C=Nc(S.registrationEstablishedSession);nl({clientPublicKey:x,finalized:S,expectedRegistrationAuthorityId:u.registrationAuthorityId,expectedWalletId:c});let w=await dp({authMethod:e.authMethod,configs:t.configs,walletId:Ve(S.walletId),finalized:S,passkeyAuthority:null,email:u.email,providerSubject:u.providerSubject,registrationAuthorityId:u.registrationAuthorityId});if(w.kind!==`email_otp`)throw Error(`Email OTP Ed25519 registration produced a different persistence authority`);$(n.onEvent,l,{authMethod:`email_otp`,phase:B.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`}),$(n.onEvent,l,{authMethod:`email_otp`,phase:B.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let T=Zc({admissionRequest:m.ed25519.admissionRequest,finalized:S.ed25519,walletId:c,expectedRuntimePolicyScope:I(s.intent.runtimePolicyScope)}),E=g.metadata,D=z(S.ed25519.nearAccountId),k=kp({established:g,walletId:String(S.walletId),nearAccountId:String(D),nearEd25519SigningKeyId:S.ed25519.nearEd25519SigningKeyId,signerSlot:S.ed25519.signerSlot}),A=await Fn({walletId:S.walletId,nearAccountId:D,nearEd25519SigningKeyId:S.ed25519.nearEd25519SigningKeyId,email:w.email,registrationAuthorityId:w.registrationAuthorityId,authority:w.authority,signerSlot:S.ed25519.signerSlot,operationalPublicKey:x,relayerKeyId:S.ed25519.relayerKeyId,keyVersion:S.ed25519.keyVersion,participantIds:[...S.ed25519.participantIds],custodyMaterial:k}),j=await V.publishPendingWalletRegistrationCommit({pending:b,ecdsaContinuity:[],authority:S.authority,foundingAuthority:{authority:S.foundingAuthority,authMethod:S.foundingAuthMethod},request:{operation:`near_provisioning`,registrationCeremonyId:s.registrationCeremonyId,idempotencyKey:y,walletId:S.walletId,walletAuthMethodId:S.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:C.walletSession,operationCredential:C.operationCredential},registration:A});Tn.acceptRegistrationSession(o,C);let M=j.signerActivations[1];if(!M||M.signerSlot!==S.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);if(await t.signingEngine.activateAuthenticatedWalletState({walletId:S.walletId,nearAccountId:D,signerSlot:S.ed25519.signerSlot,nearClient:t.nearClient}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:S.walletId,nearAccountId:D,thresholdSessionId:T.identity.thresholdSessionId,runtimePolicyScope:T.stableServerScope.runtimePolicyScope,materialActivation:Zn(E),auth:{kind:`email_otp`,providerSubjectId:u.providerSubject},nearEd25519SigningKeyId:Rt(S.ed25519.nearEd25519SigningKeyId),signerSlot:S.ed25519.signerSlot,remainingUses:C.remainingUses,expiresAtMs:C.expiresAtMs}),!a)throw Error(`Email OTP registration has no custody capability material`);await Pp({context:t,commit:v,factorSecret32:a,emailOtpAuthContext:w.emailOtpAuthContext,walletId:String(S.walletId),walletSessionId:String(C.walletSessionId),expiresAtMs:C.expiresAtMs}),$(n.onEvent,l,{authMethod:`email_otp`,phase:B.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(n.onEvent,l,{authMethod:`email_otp`,phase:B.STEP_11_COMPLETED,status:`succeeded`});let N={success:!0,kind:`wallet_registered`,walletId:S.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:S.accountProvisioning,resolvedAccount:S.resolvedAccount,nearEd25519SigningKeyId:Rt(S.ed25519.nearEd25519SigningKeyId),operationalPublicKey:x,nearAccountId:z(S.ed25519.nearAccountId),transactionId:S.resolvedAccount.kind===`sponsored_named_account`?S.resolvedAccount.transactionHash:null}]};return eo(Qa({recorder:i,authMethod:`email_otp`,signerSet:Ma(e.signerPlan)})),Dh(t,N,`email_otp`),n.afterCall?.(!0,N),N}catch(t){let a=xm(t),o=ve(t,`registration`,r);n.onError?.(Sm(o,a)),$(n.onEvent,r,{authMethod:`email_otp`,phase:B.FAILED,status:`failed`,message:o,error:{...a?{code:a}:{},message:o}});let s={success:!1,error:o,...a?{errorCode:a}:{}};return eo($a({recorder:i,authMethod:`email_otp`,signerSet:Ma(e.signerPlan),errorCode:a||null})),n.afterCall?.(!1),s}finally{a?.fill(0)}}function wh(){}async function Th(e){let{context:t,options:n}=e,r=bm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),a=nn(),o=null,s={kind:`none`};$(n.onEvent,r,{authMethod:`passkey`,phase:B.STEP_01_STARTED,status:`started`});try{let r=new Xa(performance.now()),{relayerUrl:c,setup:l}=await Fm({context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:r,passkeyExecution:e.passkeyExecution});r.markNearStage(l.registrationCeremonyId,`near_only.setup`);let u=el(l.intent),d=bm(String(u.walletId));$(n.onEvent,d,{authMethod:`passkey`,phase:B.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_create`,overlay:`show`}});let f=l.kind===`near_ed25519`&&l.ed25519.status===`described`?l.ed25519:null,p=tm({context:t,walletId:u.walletId,signerSlot:e.ed25519Selection.signerSlot,registrationIntentDigestB64u:l.registrationIntentDigestB64u,options:n,confirmationConfigOverride:{uiMode:`modal`,behavior:`requireClick`,...e.confirmationConfigOverride??n.confirmationConfig??{}},passkeyExecution:e.passkeyExecution}).then(e=>(o=performance.now(),r.capturePasskeyAuthDiagnostics(e.diagnostics),r.markNearStage(l.registrationCeremonyId,`near_only.authentication`),$(n.onEvent,d,{authMethod:`passkey`,phase:B.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_create`,overlay:`hide`}}),e)),m=wm(n.onEvent,d,B.STEP_05_ED25519_SIGNER_PROVISION_DELAYED),h=async(e,t)=>{let n=await m(Vn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:l.signedSetup,headers:{...Ac(a),...O(l.home)},kind:`passkey`,webauthnRegistration:e.webauthnRegistration,...t?{ed25519Execution:t}:{},onServerTiming:ba.bind(void 0,r)}));if(r.markNearStage(l.registrationCeremonyId,`near_only.respond`),n.kind!==`near_ed25519`)throw Error(`Ed25519-only registration respond returned a different signer branch`);return n.ed25519},g=e=>{let t=i(String(e.credential.rawId||e.credential.id||``).trim());if(!t.ok)throw Error(`passkey credential id ${t.error.message}`);return t.value},_=null,v=t=>(_=j(t.prfFirstB64u).buffer,{factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ae({rpId:cp(e.authMethod.rpId),credentialIdB64u:g(t)}),walletAuthMethodId:l.intent.foundingWalletAuthMethodId}),factorSecret:_}),y=(e,n)=>mh({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,thresholdSessionId:n,prfFirstB64u:e.prfFirstB64u}),b=e=>({home:l.home,walletId:String(u.walletId),nearEd25519SigningKeyId:e.admissionRequest.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:l.registrationCeremonyId,admissionRequest:e.admissionRequest,admissionReceipt:e.admissionReceipt,participantIds:e.admissionRequest.participant_ids,routerOrigin:new URL(c).origin,authorization:`Bearer ${String(l.signedSetup)}`,traceContext:a}),x,S,C;try{if(f){S=f;let e=t.signingEngine.establishWalletCustodyNearEd25519KeySet({...b(f),factor:{factorAfterRouterRound:async()=>v(await p)},executeWithProof:async e=>{let t=await h(await p,JSON.parse(e));if(!$e(t.admissionReceipt.binding,f.admissionReceipt.binding))throw Error(`Registration respond issued another admission than setup described`);return t.status===`executed`?JSON.stringify(t.activationResult):null}});e.catch(wh),x=await p,s=y(x,f.admissionRequest.scope.threshold_session_id),C=await m(e)}else x=await p,S=await h(x),s=y(x,S.admissionRequest.scope.threshold_session_id),C=await m(t.signingEngine.establishWalletCustodyNearEd25519KeySet({...b(S),factor:v(x)}))}finally{_&&Op(_)}let w={value:g(x)};r.markNearStage(l.registrationCeremonyId,`near_only.custody`);let T=await Tp(t,String(u.walletId),n.recoveryCodeBackup,C.recoveryCodes),E=Me(C.commitPayload);if(!C.localMaterial)throw Error(`Passkey registration produced no sealed local custody material`);let D=await mm({registrationCeremonyId:l.registrationCeremonyId,activationReference:C.activationReference}),k=await Km({operation:`near_provisioning`,completion:{kind:`sealed_material`},signerPlanKind:`near_ed25519`,registrationCeremonyId:l.registrationCeremonyId,idempotencyKey:D,walletId:String(u.walletId),walletAuthMethodId:String(l.intent.foundingWalletAuthMethodId),signedSetup:String(l.signedSetup),auth:{kind:`passkey`,rpId:e.authMethod.rpId,credentialIdB64u:w.value,transports:[...x.webauthnRegistration.response.transports]},localMaterial:{keyFamilies:[`ed25519`],custodyCommit:E,ed25519:{activationReference:C.activationReference,localMaterial:C.localMaterial,metadata:Ap(C)}}}),A=`ed25519:${Je(C.metadata.registeredPublicKey)}`;if(r.markNearStage(l.registrationCeremonyId,`near_only.provision_checkpoint`),s.kind!==`preparing`)throw Error(`NEAR registration session seal preparation is missing`);let M=await s.result;if(M.kind===`failed`)throw M.error;let N=await t.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId}),P=await wm(n.onEvent,d,B.STEP_06_RELAY_BOOTSTRAP_DELAYED)(Gn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signedSetup:l.signedSetup,headers:{...Ac(a),...O(l.home)},idempotencyKey:D,ed25519:{activationReference:C.activationReference},auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:s.thresholdSessionId,ciphertext:N.ciphertext},walletCustodyCommit:E}));if(r.markNearStage(l.registrationCeremonyId,`near_only.finalize`),!P.ok||P.kind!==`near_ed25519`)throw Error(`Deferred NEAR provisioning returned a different signer branch`);if(!P.sessionSeal)throw Error(`NEAR finalization did not return the prepared session seal`);if(C.commitPayload&&P.walletCustody?.status!==`committed`){let e=P.walletCustody?.status??`not_reported`,t=P.walletCustody?.status===`rejected`?`: ${P.walletCustody.reason}`:``;throw Error(`Wallet custody did not commit (${e})${t}. The recovery codes shown are not usable.`)}if(T){if(P.walletCustody?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await pr.bindIssuedAtMs(T,P.walletCustody.issuedAtMs)}let F=Nc(P.registrationEstablishedSession),L=tl({clientPublicKey:A,finalized:P,expectedRpId:e.authMethod.rpId,expectedWalletId:u.walletId}),ee=z(P.ed25519.nearAccountId),te=lp({finalized:P,credential:x.credential}),ne=Zc({admissionRequest:S.admissionRequest,finalized:P.ed25519,walletId:u.walletId,expectedRuntimePolicyScope:I(u.runtimePolicyScope)}),re=C.metadata,ie=kp({established:C,walletId:String(P.walletId),nearAccountId:String(ee),nearEd25519SigningKeyId:P.ed25519.nearEd25519SigningKeyId,signerSlot:P.ed25519.signerSlot});await Fp({commit:C.commitPayload,walletId:String(P.walletId),activatedAtMs:Date.now()}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:P.walletId,nearAccountId:z(P.ed25519.nearAccountId),thresholdSessionId:ne.identity.thresholdSessionId,runtimePolicyScope:ne.stableServerScope.runtimePolicyScope,materialActivation:Zn(re),auth:{kind:`passkey`,rpId:bn(L.rpId),credentialIdB64u:L.credentialIdB64u},nearEd25519SigningKeyId:Rt(P.ed25519.nearEd25519SigningKeyId),signerSlot:P.ed25519.signerSlot});let R=Pn({walletId:P.walletId,nearAccountId:ee,nearEd25519SigningKeyId:P.ed25519.nearEd25519SigningKeyId,rpId:cp(L.rpId),credential:x.credential,credentialPublicKeyB64u:te,signerSlot:P.ed25519.signerSlot,operationalPublicKey:A,relayerKeyId:P.ed25519.relayerKeyId,keyVersion:P.ed25519.keyVersion,participantIds:[...P.ed25519.participantIds],custodyMaterial:ie}),ae=await V.publishPendingWalletRegistrationCommit({pending:k,ecdsaContinuity:[],authority:P.authority,foundingAuthority:{authority:P.foundingAuthority,authMethod:P.foundingAuthMethod},request:{operation:`near_provisioning`,registrationCeremonyId:l.registrationCeremonyId,idempotencyKey:D,walletId:P.walletId,walletAuthMethodId:P.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:F.walletSession,operationCredential:F.operationCredential},registration:R});Tn.acceptRegistrationSession(c,F);let oe=ae.signerActivations[1];if(!oe||oe.signerSlot!==P.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);r.markNearStage(l.registrationCeremonyId,`near_only.publication`);let se=await fh({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,input:il({session:F,ceremonyId:l.registrationCeremonyId,walletId:String(P.walletId),relayerUrl:c,prfFirstB64u:x.prfFirstB64u,preparedServerSeal:{preparationId:s.preparationId,...P.sessionSeal},restore:{rpId:L.rpId,nearAccountId:String(ee),nearEd25519SigningKeyId:P.ed25519.nearEd25519SigningKeyId,relayerKeyId:P.ed25519.relayerKeyId,participantIds:P.ed25519.participantIds,signerSlot:P.ed25519.signerSlot,credentialIdB64u:L.credentialIdB64u,materialActivation:Zn(re)}})});if(se.kind===`failed`)throw se.error;if(s={kind:`consumed`},r.markNearStage(l.registrationCeremonyId,`near_only.session_hydration`),await dh({signingEngine:t.signingEngine,sessionAuthority:{record:F.walletSession,operationCredential:F.operationCredential},metadata:re,material:ie,materialFacts:ne,envelope:jp(C.commitPayload),ownedFactorSecret:j(x.prfFirstB64u),rpId:L.rpId,credentialIdB64u:L.credentialIdB64u,passkeyPrfFirstB64u:x.prfFirstB64u,relayerUrl:c}),r.markNearStage(l.registrationCeremonyId,`near_only.material_activation`),await Np({signingEngine:t.signingEngine,commit:C.commitPayload,passkeyPrfFirstB64u:x.prfFirstB64u,walletId:String(P.walletId),walletAuthMethodId:String(P.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(F.walletSessionId),expiresAtMs:F.expiresAtMs}),r.markNearStage(l.registrationCeremonyId,`near_only.export_capability`),await t.signingEngine.activateAuthenticatedWalletState({walletId:P.walletId,nearAccountId:ee,signerSlot:P.ed25519.signerSlot,nearClient:t.nearClient}),$(n.onEvent,d,{authMethod:`passkey`,phase:B.STEP_11_COMPLETED,status:`succeeded`}),o!==null){let e=performance.now();to({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-o,traceContext:a}),to({callback:n.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:a})}r.markNearStage(l.registrationCeremonyId,`near_only.wallet_ready`),eo(Qa({recorder:r,authMethod:`passkey`,signerSet:Ma(e.signerPlan)}));let ce={success:!0,kind:`wallet_registered`,walletId:P.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:P.accountProvisioning,resolvedAccount:P.resolvedAccount,nearEd25519SigningKeyId:Rt(P.ed25519.nearEd25519SigningKeyId),operationalPublicKey:A,nearAccountId:z(P.ed25519.nearAccountId),transactionId:P.resolvedAccount.kind===`sponsored_named_account`?P.resolvedAccount.transactionHash:null}]};return Dh(t,ce,`passkey`),n.afterCall?.(!0,ce),ce}catch(e){let t=xm(e),i=ve(e,`registration`,r);o!==null&&to({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-o,traceContext:a}),n.onError?.(Sm(i,t)),$(n.onEvent,r,{authMethod:`passkey`,phase:B.FAILED,status:`failed`,message:i,interaction:{kind:`passkey_create`,overlay:`hide`},error:{...t?{code:t}:{},message:i}});let s={success:!1,error:i,...t?{errorCode:t}:{}};return n.afterCall?.(!1),s}finally{s.kind===`preparing`&&(await s.result,await t.signingEngine.discardSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId}).catch($m))}}async function Eh(e){let t=zp(e.signerSelection),n=hn(t);if(n){let r=mn(t);if(r)return await Sh({kind:`near_ed25519_and_evm_family_ecdsa`,context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,ecdsaSelection:r,options:e.options,passkeyExecution:e.passkeyExecution,...e.confirmationConfigOverride?{confirmationConfigOverride:e.confirmationConfigOverride}:{}});if(e.authMethod.kind===`email_otp`){if(e.passkeyExecution.kind!==`collect_during_registration`)throw Error(`Prepared registration authority requires passkey authentication`);return await Ch({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,options:e.options,passkeyExecution:e.passkeyExecution})}return await Th({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,options:e.options,passkeyExecution:e.passkeyExecution,...e.confirmationConfigOverride?{confirmationConfigOverride:e.confirmationConfigOverride}:{}})}let r=mn(t);if(!r)throw Error(`Wallet registration requires an ECDSA signer branch`);return await Sh({kind:`evm_family_ecdsa`,context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ecdsaSelection:r,options:e.options,passkeyExecution:e.passkeyExecution,...e.confirmationConfigOverride?{confirmationConfigOverride:e.confirmationConfigOverride}:{}})}function Dh(e,t,n){e.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:t.walletId,authMethod:n})}async function Oh(e){try{return await Eh({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,options:e.options,authenticatorOptions:e.authenticatorOptions,...e.confirmationConfigOverride?{confirmationConfigOverride:e.confirmationConfigOverride}:{},passkeyExecution:{kind:`collect_during_registration`}})}finally{e.context.signingEngine.closeRegistrationPreparationModal()}}function kh(e,t,n){try{$(e,t,n)}catch{}}function Ah(e,t){try{e?.(t)}catch{}}function jh(e,t,n){try{t&&n?e?.(!0,n):e?.(!1)}catch{}}function Mh(e){let t=[];for(let n of e){let e=String(n.credentialId||``).trim();e&&t.push({id:e,type:`public-key`,transports:Cm(n.transports)})}if(t.length===0)throw Error(`Wallet add-signer requires an existing passkey credential`);return t}function Nh(e,t){let n=String(e.id||``).trim(),r=String(e.rawId||``).trim();if(!n||!r||n!==r)throw Error(`Wallet add-signer selected an invalid passkey credential identity`);for(let e of t)if(e.id===r)return r;throw Error(`Wallet add-signer selected a passkey outside the authorized wallet`)}async function Ph(e){if(e.started.intent.walletId!==e.walletId)throw Error(`Wallet add-signer start returned a different wallet`);if(await Cr(e.started.intent)!==e.expectedDigestB64u)throw Error(`Wallet add-signer start returned a different intent`);if(!String(e.started.addSignerCeremonyId||``).trim())throw Error(`Wallet add-signer start returned an invalid ceremony ID`)}function Fh(e,t){return e.length===2&&t.length===2&&e[0]===t[0]&&e[1]===t[1]}function Ih(e){let t=e.started.intent.signerSelection;if(t.mode!==`ed25519`)throw Error(`Wallet add-signer start intent changed signer branch`);let n=t.ed25519,r=e.started.ed25519.admissionRequest,i=e.finalized,a=i.ed25519,o=Ye(e.clientPublicKey);if(i.walletId!==e.walletId||i.rpId!==e.rpId||i.credentialIdB64u!==e.credentialIdB64u||a.publicKey!==e.clientPublicKey||a.nearAccountId!==o||a.signerSlot!==n.signerSlot||a.keyVersion!==n.keyVersion||a.recoveryExportCapable!==!0||!Fh(a.participantIds,n.participantIds)||a.nearEd25519SigningKeyId!==r.application_binding.near_ed25519_signing_key_id||a.relayerKeyId!==r.scope.signing_worker_id||r.application_binding.wallet_id!==e.walletId||r.application_binding.key_creation_signer_slot!==n.signerSlot)throw Error(`Wallet add-signer finalize returned mismatched Ed25519 Yao identity`);return i}function Lh(e){let t=e.intent.signerSelection;if(t.mode!==`ed25519`)throw Error(`Wallet add-signer start intent changed signer branch`);return{version:e.intent.version,walletId:e.intent.walletId,signerSelection:t,...e.intent.runtimePolicyScope?{runtimePolicyScope:e.intent.runtimePolicyScope}:{},nonceB64u:e.intent.nonceB64u}}async function Rh(e){if(e.started.intent.signerSelection.mode!==`ed25519`)throw Error(`Wallet add-signer start returned a different signer branch`);let n=null,r=null,i=null;try{if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody Ed25519 add-signer requires WebAuthn authorization`);let a=await Df({kind:`verified_passkey_ed25519_yao_add_signer_input_v1`,verifiedIntent:{kind:`verified_passkey_ed25519_add_signer_intent_v1`,intent:Lh(e.started),addSignerIntentDigestB64u:e.intentResponse.addSignerIntentDigestB64u,addSignerIntentGrant:e.intentResponse.addSignerIntentGrant,addSignerCeremonyId:e.started.addSignerCeremonyId},verifiedAuthority:{kind:`verified_passkey_ed25519_add_signer_authority_v1`,walletId:e.walletId,addSignerIntentDigestB64u:e.intentResponse.addSignerIntentDigestB64u,credentialIdB64u:e.credentialIdB64u},admissionRequest:e.started.ed25519.admissionRequest,httpTransport:{kind:`passkey_ed25519_yao_http_transport_v1`,routerOrigin:new URL(e.relayerUrl).origin,fetch:globalThis.fetch}}),o=kc(e.started.ed25519.custodyEnvelope);if(!o.ok)throw Error(o.reason);i=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer;let s=await e.context.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:{kind:`discovery`},preparation:{kind:`fresh`},custodyJson:o.custodyJson,factorSecret:i,nearEd25519SigningKeyId:a.request.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:e.started.addSignerCeremonyId,admissionRequest:a.request,admissionReceipt:a.receipt,participantIds:a.request.participant_ids,routerOrigin:new URL(e.relayerUrl).origin,authorization:`Bearer ${String(e.intentResponse.addSignerIntentGrant)}`}),c=`ed25519:${Je(s.metadata.registeredPublicKey)}`,l=await $n({relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:hm(`wallet-ed25519-add-signer-finalize`),kind:`near_ed25519`,ed25519:{activationReference:s.activationReference},custodyKeySet:{kind:`near_ed25519_v1`,keyManifestDigestB64u:s.commitPayload.keyManifestDigestB64u,registeredPublicKeyB64u:A(s.metadata.registeredPublicKey)}});if(l.kind!==`near_ed25519`)throw Error(`Wallet add-signer finalize returned a different signer branch`);let u=Ih({finalized:l,started:e.started,walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,clientPublicKey:c});kh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:B.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let d=await e.context.signingEngine.finalizeWalletEd25519SignerRegistration({walletId:e.walletId,nearAccountId:z(u.ed25519.nearAccountId),nearEd25519SigningKeyId:u.ed25519.nearEd25519SigningKeyId,auth:{kind:`passkey`,credential:e.credential},signerSlot:u.ed25519.signerSlot,operationalPublicKey:c,relayerKeyId:u.ed25519.relayerKeyId,keyVersion:u.ed25519.keyVersion,participantIds:[...u.ed25519.participantIds]});if(d.signerSlot!==u.ed25519.signerSlot)throw Error(`Wallet add-signer persisted a different Ed25519 signer slot`);n=d.rollbackReceipt;let f=e.started.ed25519.admissionRequest,p=t(f.scope.threshold_session_id);if(!p.ok)throw Error(`Wallet add-signer threshold-session identity is invalid`);let m=s.metadata;return await e.context.signingEngine.persistWalletCustodyEd25519Material({binding:{kind:Mn,applicationBindingDigestB64u:s.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:A(m.registeredPublicKey),participantIds:m.participantIds,stateEpoch:String(m.stateEpoch),walletId:String(u.walletId),nearAccountId:String(u.ed25519.nearAccountId),nearEd25519SigningKeyId:u.ed25519.nearEd25519SigningKeyId,signerSlot:u.ed25519.signerSlot,signingWorkerId:m.scope.signing_worker_id,signingWorkerVerifyingShareB64u:A(m.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:s.localMaterial.b64u,nonceB64u:s.localMaterial.nonceB64u}}),r={nearAccountId:u.ed25519.nearAccountId,signerSlot:u.ed25519.signerSlot},await e.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:u.walletId,nearAccountId:z(u.ed25519.nearAccountId),thresholdSessionId:p.value,runtimePolicyScope:I(e.started.intent.runtimePolicyScope),materialActivation:Zn(m),auth:{kind:`passkey`,rpId:bn(e.rpId),credentialIdB64u:e.credentialIdB64u},nearEd25519SigningKeyId:Rt(u.ed25519.nearEd25519SigningKeyId),signerSlot:u.ed25519.signerSlot}),n=null,kh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:B.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),{success:!0,kind:`wallet_signer_added`,walletId:u.walletId,capabilities:[{kind:`near_ed25519`,nearEd25519SigningKeyId:Rt(u.ed25519.nearEd25519SigningKeyId),operationalPublicKey:c,nearAccountId:z(u.ed25519.nearAccountId)}]}}catch(t){let i=[];if(r)try{await e.context.signingEngine.deleteWalletCustodyEd25519Material({nearAccountId:r.nearAccountId,signerSlot:r.signerSlot})}catch(e){i.push(e instanceof Error?e.message:String(e))}if(n)try{await e.context.signingEngine.rollbackWalletEd25519SignerRegistration(n)}catch(e){i.push(e instanceof Error?e.message:String(e))}if(i.length>0){let e=t instanceof Error?t.message:String(t);throw Error(`${e}; add-signer cleanup failed: ${i.join(`; `)}`)}throw t}finally{i&&Op(i)}}async function zh(e){if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody ECDSA add-signer requires WebAuthn authorization`);let t=await kd({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}),n=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer,r;try{r=await Uc({context:e.context,relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,started:e.started.ecdsa,custodyEnvelope:e.started.ecdsa.custodyEnvelope,factorSecret:n,authority:t,registrationTiming:null})}finally{Op(n)}let i={relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:hm(`wallet-add-signer-finalize`),kind:`evm_family_ecdsa`,ecdsa:{expectedKeyHandles:[r.bootstrap.keyHandle]},custodyKeySet:r.custodyKeySet},a;try{a=await $n(i)}catch(e){if(!(e instanceof TypeError))throw e;a=await $n(i)}if(a.kind!==`evm_family_ecdsa`||a.walletId!==e.walletId||a.rpId!==e.rpId)throw Error(`Wallet add-signer finalize returned a different ECDSA identity`);let o=a.ecdsa.walletKeys,s=o[0];if(!s)throw Error(`Wallet add-signer finalize did not return ECDSA wallet keys`);let c=await Wc({context:e.context,pending:r});kh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:B.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let l=await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:Ve(e.walletId),session:c,walletKeys:[s,...o.slice(1)]});return await e.context.signingEngine.storeWalletEcdsaSignerRecords({walletId:e.walletId,walletKeys:l}),await V.adoptAddedEcdsaSignerAuthority({authority:a.authority,materialActivation:c.materialActivation}),kh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:B.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),{success:!0,kind:`wallet_signer_added`,walletId:e.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:s.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:s.thresholdEcdsaPublicKeyB64u}]}}async function Bh(e){switch(e.signerSelection.mode){case`ed25519`:if(e.started.kind!==`near_ed25519`)throw Error(`Wallet add-signer start returned a different signer branch`);return await Rh({context:e.input.context,walletId:e.input.walletId,rpId:e.input.rpId,relayerUrl:e.input.relayerUrl,intentResponse:e.input.intentResponse,credential:e.input.credential,credentialIdB64u:e.input.credentialIdB64u,passkeyPrfFirstB64u:e.input.passkeyPrfFirstB64u,eventAccountId:e.input.eventAccountId,onEvent:e.input.onEvent,started:e.started});case`ecdsa`:if(e.started.kind!==`evm_family_ecdsa`)throw Error(`Wallet add-signer start returned a different signer branch`);return await zh({context:e.input.context,walletId:e.input.walletId,rpId:e.input.rpId,relayerUrl:e.input.relayerUrl,intentResponse:e.input.intentResponse,credential:e.input.credential,credentialIdB64u:e.input.credentialIdB64u,passkeyPrfFirstB64u:e.input.passkeyPrfFirstB64u,eventAccountId:e.input.eventAccountId,onEvent:e.input.onEvent,started:e.started});default:return q(e.signerSelection)}}async function Vh(e){let{context:t,signerSelection:n}=e,r=e.options||{},i=Vt(String(e.walletId||``).trim()),a=bm(String(i)),o=cp(String(e.rpId||``).trim());kh(r.onEvent,a,{authMethod:`passkey`,phase:B.STEP_01_STARTED,status:`started`});try{let e=String(t.configs.network.relayer.url||``).trim();if(!e)throw Error(`addSigner requires relayer.url`);let s=wd(t.configs);if(!s)throw Error(`addSigner requires registration.publishableKey and registration.projectEnvironmentId`);let c=await qn({relayerUrl:e,walletId:i,request:{walletId:i,rpId:o,signerSelection:n},auth:{publishableKey:s.publishableKey,environmentId:s.projectEnvironmentId}});if(await Cr(c.intent)!==c.addSignerIntentDigestB64u)throw Error(`Add-signer intent digest mismatch`);kh(r.onEvent,a,{authMethod:`passkey`,phase:B.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_assert`,overlay:`show`}});let l=Mh(await V.listProfileAuthenticators(String(i))),u=await t.signingEngine.getAuthenticationCredentialsSerialized({subjectId:String(i),challengeB64u:c.addSignerIntentDigestB64u,allowCredentials:l,includeSecondPrfOutput:!1}),d=Nh(u,l),f=fr(u,`Wallet add-signer authorization`);kh(r.onEvent,a,{authMethod:`passkey`,phase:B.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let p=await Kn({relayerUrl:e,walletId:i,addSignerIntentGrant:c.addSignerIntentGrant,addSignerIntentDigestB64u:c.addSignerIntentDigestB64u,intent:c.intent,auth:{kind:`webauthn_assertion`,rpId:o,credential:An(u),expectedChallengeDigestB64u:c.addSignerIntentDigestB64u}});await Ph({started:p,walletId:i,expectedDigestB64u:c.addSignerIntentDigestB64u});let m=await Bh({input:{context:t,walletId:i,rpId:o,relayerUrl:e,intentResponse:c,credential:u,credentialIdB64u:d,passkeyPrfFirstB64u:f,eventAccountId:a,onEvent:r.onEvent},signerSelection:n,started:p});return kh(r.onEvent,a,{authMethod:`passkey`,phase:B.STEP_11_COMPLETED,status:`succeeded`}),jh(r.afterCall,!0,m),m}catch(e){let t=xm(e),n=ve(e,`registration`,a);Ah(r.onError,Sm(n,t)),kh(r.onEvent,a,{authMethod:`passkey`,phase:B.FAILED,status:`failed`,message:n,interaction:{kind:`passkey_assert`,overlay:`hide`},error:{...t?{code:t}:{},message:n}});let i={success:!1,error:n,...t?{errorCode:t}:{}};return jh(r.afterCall,!1),i}}export{Pl as $,Sd as A,Bs as At,uu as B,pa as Bt,Pd as C,Gs as Ct,wd as D,Ms as Dt,Td as E,Ps as Et,Mu as F,ao as Ft,tu as G,ta as Gt,cu as H,da as Ht,ju as I,oo as It,iu as J,zr as Jt,nu as K,Vr as Kt,_u as L,ha as Lt,fd as M,as as Mt,pd as N,wo as Nt,bd as O,Js as Ot,ud as P,po as Pt,jl as Q,bu as R,ga as Rt,Od as S,qs as St,Nd as T,Fs as Tt,su as U,ji as Ut,au as V,ua as Vt,lu as W,ca as Wt,Xl as X,Lr as Xt,$l as Y,Kr as Yt,Nl as Z,Rr as Zt,Wd as _,nc as _t,Oh as a,Ol as at,Id as b,pc as bt,Rf as c,qc as ct,ip as d,bc as dt,ql as et,Zf as f,yc as ft,gf as g,ic as gt,yf as h,Ec as ht,pm as i,Jl as it,md as j,Ls as jt,yd as k,Vs as kt,ap as l,kc as lt,Sf as m,xc as mt,dm as n,Kl as nt,wp as o,Al as ot,kf as p,Sc as pt,eu as q,Br as qt,um as r,Rl as rt,fm as s,kl as st,Vh as t,Ll as tt,Xf as u,vc as ut,Zd as v,tc as vt,jd as w,Is as wt,kd as x,hc as xt,Xd as y,lc as yt,yu as z,ma as zt};