@seams/wallet 0.22.0 → 0.24.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 (624) hide show
  1. package/README.md +19 -2
  2. package/THIRD_PARTY_NOTICES.md +186 -6
  3. package/dist/.build-inputs.sha256 +1 -1
  4. package/dist/esm/SeamsWeb/operations/recovery/walletRecoveryCommit.js +1 -0
  5. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +3 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/authMenuAnchor.js +44 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/overlay/overlay-styles.js +4 -6
  8. package/dist/esm/SeamsWeb/walletIframe/client/registrationCommands.js +12 -0
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +67 -31
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +4 -0
  11. package/dist/esm/SeamsWeb/walletIframe/client/surface/geometry.js +2 -2
  12. package/dist/esm/SeamsWeb/walletIframe/client/transport/iframe-transport-dom.js +2 -2
  13. package/dist/esm/SeamsWeb/walletIframe/host/auth-menu/domain.js +22 -3
  14. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +6 -2
  15. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuFooter.js +1 -3
  16. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +81 -19
  17. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/icons.js +1 -4
  18. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.js +7 -11
  19. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +86 -0
  20. package/dist/esm/SeamsWeb/walletIframe/shared/configuration.js +23 -1
  21. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +1 -0
  22. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  23. package/dist/esm/SeamsWeb/walletIframe/shared/transactionReview.js +20 -1
  24. package/dist/esm/core/authMethods/availability.js +28 -0
  25. package/dist/esm/core/authMethods/availabilityTypes.js +29 -0
  26. package/dist/esm/core/authMethods/plugins.js +17 -0
  27. package/dist/esm/core/config/configBuilder.js +2 -0
  28. package/dist/esm/core/config/defaultConfigs.js +1 -0
  29. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +41 -2
  30. package/dist/esm/core/indexedDB/unifiedIndexedDBManager.js +3 -0
  31. package/dist/esm/core/rpcClients/relayer/routerAbNormalSigning.js +1 -1
  32. package/dist/esm/core/rpcClients/relayer/walletSessionAuthorizationStatus.js +1 -1
  33. package/dist/esm/core/signingEngine/flows/signEvmFamily/authPlanning.js +2 -1
  34. package/dist/esm/core/signingEngine/flows/signEvmFamily/ecdsaSelection.js +29 -12
  35. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -0
  36. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlowRuntime.js +2 -1
  37. package/dist/esm/core/signingEngine/flows/signNear/requireNearStepUpAuth.js +1 -0
  38. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +1 -1
  39. package/dist/esm/core/signingEngine/flows/signNear/shared/signingSessionAuthMode.js +5 -0
  40. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +16 -12
  41. package/dist/esm/core/signingEngine/session/availability/availableSigningLanes.js +2 -3
  42. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +16 -1
  43. package/dist/esm/core/signingEngine/session/identity/signingLaneAuthBinding.js +6 -0
  44. package/dist/esm/core/signingEngine/session/material/ecdsaSigningCapability.js +3 -0
  45. package/dist/esm/core/signingEngine/session/operationState/lanes.js +21 -4
  46. package/dist/esm/core/signingEngine/session/passkey/ed25519YaoRecoveryCapability.js +94 -0
  47. package/dist/esm/core/signingEngine/stepUpConfirmation/methodSelection.js +1 -0
  48. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +19 -2
  49. package/dist/esm/core/signingEngine/uiConfirm/ui/confirmation-model.js +3 -1
  50. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.js +6 -0
  51. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.js +59 -23
  52. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +13 -0
  53. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/TransactionReview.js +48 -16
  54. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +146 -9
  55. package/dist/esm/core/signingEngine/walletCustody/ceremonyStepRunner.js +8 -0
  56. package/dist/esm/core/signingEngine/walletCustody/resealedEnvelopeResult.js +24 -0
  57. package/dist/esm/core/signingEngine/walletCustody/unlockedEd25519ExportRootCapability.js +74 -0
  58. package/dist/esm/core/signingEngine/workerManager/workerDeferred.js +25 -0
  59. package/dist/esm/core/ui/messages.js +15 -4
  60. package/dist/esm/externalNear/actions.js +26 -0
  61. package/dist/esm/externalNear/boundary.js +53 -0
  62. package/dist/esm/externalNear/controller.js +223 -0
  63. package/dist/esm/externalNear/hot.js +41 -0
  64. package/dist/esm/externalNear/index.js +3 -0
  65. package/dist/esm/externalNear/intear.js +110 -0
  66. package/dist/esm/externalNear/intearPopup.js +83 -0
  67. package/dist/esm/externalNear/message.js +60 -0
  68. package/dist/esm/externalNear/meteor.js +133 -0
  69. package/dist/esm/externalNear/meteorRequest.js +117 -0
  70. package/dist/esm/externalNear/types.js +17 -0
  71. package/dist/esm/externalNear/wallets.js +33 -0
  72. package/dist/esm/node_modules/borsh/lib/esm/buffer.js +67 -0
  73. package/dist/esm/node_modules/borsh/lib/esm/deserialize.js +94 -0
  74. package/dist/esm/node_modules/borsh/lib/esm/index.js +13 -0
  75. package/dist/esm/node_modules/borsh/lib/esm/serialize.js +127 -0
  76. package/dist/esm/node_modules/borsh/lib/esm/types.js +19 -0
  77. package/dist/esm/node_modules/borsh/lib/esm/utils.js +104 -0
  78. package/dist/esm/plugins/plugin-utils.js +2 -5
  79. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +10 -22
  80. package/dist/esm/react/components/AccountMenuButton/AccountMenuDeviceDetails.js +2 -2
  81. package/dist/esm/react/components/AccountMenuButton/AccountMenuMockScreens.js +7 -4
  82. package/dist/esm/react/components/AccountMenuButton/AddEvmAccount.js +124 -0
  83. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodRow.js +41 -23
  84. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +220 -164
  85. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsView.js +7 -5
  86. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.css +142 -36
  87. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +11 -2
  88. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.css +12 -10
  89. package/dist/esm/react/components/AccountMenuButton/TransactionSettingsSection.js +1 -1
  90. package/dist/esm/react/components/AccountMenuButton/VoiceIdAvailabilityControl.js +186 -0
  91. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +10 -8
  92. package/dist/esm/react/components/AccountMenuButton/icons/ChevronRightIcon.js +8 -0
  93. package/dist/esm/react/components/AccountMenuButton/icons/WalletIcon.js +8 -0
  94. package/dist/esm/react/components/AccountMenuButton/index.js +35 -13
  95. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +8 -4
  96. package/dist/esm/react/context/useLoginStateRefresher.js +10 -2
  97. package/dist/esm/react/externalNear.css +90 -0
  98. package/dist/esm/react/externalNear.js +104 -0
  99. package/dist/esm/react/index.js +2 -4
  100. package/dist/esm/react/styles/styles.css +22 -332
  101. package/dist/esm/react/styles.css +0 -1
  102. package/dist/esm/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  103. package/dist/esm/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  104. package/dist/esm/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  105. package/dist/esm/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  106. package/dist/esm/sdk/actions-GYsSR2Q2.js +1 -0
  107. package/dist/esm/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  108. package/dist/esm/sdk/adapters-D5MZ5NG5.js +2 -0
  109. package/dist/esm/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  110. package/dist/esm/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  111. package/dist/esm/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  112. package/dist/esm/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  113. package/dist/esm/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  114. package/dist/esm/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  115. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  116. package/dist/esm/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  117. package/dist/esm/sdk/configBuilder-DrxXNUpV.js +1 -0
  118. package/dist/esm/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  119. package/dist/esm/sdk/configuration-CAqANpTI.js +1 -0
  120. package/dist/esm/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  121. package/dist/esm/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  122. package/dist/esm/sdk/domainIds-t1lp25yU.js +1 -0
  123. package/dist/esm/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  124. package/dist/esm/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  125. package/dist/esm/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  126. package/dist/esm/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  127. package/dist/esm/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  128. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  129. package/dist/esm/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  130. package/dist/esm/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  131. package/dist/esm/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  132. package/dist/esm/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  133. package/dist/{public/sdk/helpers-BXezXx19.js → esm/sdk/helpers-CXqXyyCU.js} +1 -1
  134. package/dist/esm/sdk/host-C0Is56lU.js +1 -0
  135. package/dist/esm/sdk/icons-DyndJzSh.js +1 -0
  136. package/dist/esm/sdk/indexedDB-C1odKEC6.js +1 -0
  137. package/dist/esm/sdk/intentDigest-BMXki7yB.js +1 -0
  138. package/dist/esm/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  139. package/dist/esm/sdk/lanes-C7OvAK_L.js +1 -0
  140. package/dist/esm/sdk/localOnly-BB3Rx3J6.js +1 -0
  141. package/dist/esm/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  142. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → esm/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  143. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  144. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  145. package/dist/esm/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  146. package/dist/esm/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  147. package/dist/esm/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  148. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  149. package/dist/esm/sdk/presignaturePool-CultzkOG.js +1 -0
  150. package/dist/esm/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  151. package/dist/esm/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  152. package/dist/esm/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  153. package/dist/esm/sdk/registration-CM5a7WYO.js +1 -0
  154. package/dist/esm/sdk/registration-Hv0xi7-L.js +1 -0
  155. package/dist/esm/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  156. package/dist/esm/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  157. package/dist/esm/sdk/registrationIntent-DTs2SR9E.js +1 -0
  158. package/dist/esm/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  159. package/dist/{public/sdk/requireStepUpAuth-DsNLml1i.js → esm/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  160. package/dist/esm/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  161. package/dist/esm/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  162. package/dist/esm/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  163. package/dist/esm/sdk/runtime-auth-CVw1KoVD.js +1 -0
  164. package/dist/esm/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  165. package/dist/esm/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  166. package/dist/esm/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  167. package/dist/esm/sdk/runtime-export-upMPrZ4V.js +1 -0
  168. package/dist/esm/sdk/runtime-near-B64Hn3nc.js +1 -0
  169. package/dist/esm/sdk/runtime-preferences-CULdHkbg.js +1 -0
  170. package/dist/esm/sdk/runtime-recovery-D2saBaJy.js +1 -0
  171. package/dist/esm/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  172. package/dist/esm/sdk/runtimeContext-CNFJjcns.js +6 -0
  173. package/dist/{public/sdk/sdkSentEvents-BzMVO1AR.js → esm/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  174. package/dist/esm/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  175. package/dist/esm/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  176. package/dist/esm/sdk/shared-DcHtE-D-.js +1 -0
  177. package/dist/esm/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  178. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  179. package/dist/esm/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  180. package/dist/esm/sdk/signNear-r8VCOoTh.js +1 -0
  181. package/dist/esm/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  182. package/dist/esm/sdk/signerDomain-D-EUTlLK.js +1 -0
  183. package/dist/esm/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  184. package/dist/{public/sdk/signingFlow-Co_QtuHK.js → esm/sdk/signingFlow-BVvteILM.js} +1 -1
  185. package/dist/esm/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  186. package/dist/esm/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  187. package/dist/{public/sdk/thresholdEcdsa-LvkD6z8-.js → esm/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  188. package/dist/esm/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  189. package/dist/esm/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  190. package/dist/esm/sdk/transactionReview-DSGnpreN.js +1 -0
  191. package/dist/esm/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  192. package/dist/{public/sdk/transactionState-BaFSiA9t.js → esm/sdk/transactionState-BS1VLT7B.js} +1 -1
  193. package/dist/esm/sdk/tx-confirm-ui.js +418 -109
  194. package/dist/esm/sdk/types-DdzuHlAQ.js +1 -0
  195. package/dist/esm/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  196. package/dist/esm/sdk/voiceid-host.js +1 -0
  197. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  198. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  199. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  200. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  201. package/dist/esm/sdk/wallet-recovery-BjIQdOha.js +1 -0
  202. package/dist/esm/sdk/wallet-ui.css +1 -1
  203. package/dist/esm/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  204. package/dist/esm/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  205. package/dist/esm/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  206. package/dist/esm/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  207. package/dist/esm/sdk/walletDbName-DDJXrgA5.js +1 -0
  208. package/dist/esm/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  209. package/dist/esm/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  210. package/dist/esm/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  211. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  212. package/dist/esm/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  213. package/dist/{public/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → esm/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  214. package/dist/esm/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  215. package/dist/esm/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  216. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +4 -1
  217. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +11 -2
  218. package/dist/esm/shared-ts/src/authorization/voiceIdDeviceAssertion.js +110 -0
  219. package/dist/esm/shared-ts/src/device-linking/authorityActivation.js +1 -0
  220. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +1 -0
  221. package/dist/esm/shared-ts/src/device-linking/deviceManagement.js +17 -9
  222. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +62 -3
  223. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +1 -1
  224. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +5 -2
  225. package/dist/esm/shared-ts/src/utils/domainIds.js +14 -1
  226. package/dist/esm/shared-ts/src/utils/signerDomain.js +4 -2
  227. package/dist/esm/shared-ts/src/utils/validation.js +4 -1
  228. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +46 -2
  229. package/dist/esm/shared-ts/src/utils/walletAuthMethodRecord.js +116 -6
  230. package/dist/esm/shared-ts/src/utils/walletCapabilityBindings.js +39 -1
  231. package/dist/esm/voiceid-host.js +47 -0
  232. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  233. package/dist/esm/wasm/router_ab_ed25519_yao_client/pkg/router_ab_ed25519_yao_client_bg.wasm +0 -0
  234. package/dist/public/headers.manifest.json +1 -1
  235. package/dist/public/sdk/ConfirmationDrawer-CTaGM1AE.js +1 -0
  236. package/dist/public/sdk/{NonceCoordinator-Do23iTzQ.js → NonceCoordinator-Bti1HQPo.js} +1 -1
  237. package/dist/public/sdk/SeamsWordmark-CFpsGoLw.js +1 -0
  238. package/dist/public/sdk/{accountLifecycle-CXTlwnAS.js → accountLifecycle-B98g9zN9.js} +1 -1
  239. package/dist/public/sdk/actions-GYsSR2Q2.js +1 -0
  240. package/dist/public/sdk/activeWalletSession-H9JBdHyQ.js +1 -0
  241. package/dist/public/sdk/adapters-D5MZ5NG5.js +2 -0
  242. package/dist/public/sdk/appearance-token-vars-CgYTfCKg.js +1 -0
  243. package/dist/public/sdk/{canonicalPrimitives-D_1HyEuJ.js → canonicalPrimitives-B6YMrI3W.js} +1 -1
  244. package/dist/public/sdk/{capabilityKinds-CqHVzVsJ.js → capabilityKinds-BzrNeEyO.js} +1 -1
  245. package/dist/public/sdk/{chains-CPmd4s9f.js → chains-gV2K9gA4.js} +1 -1
  246. package/dist/public/sdk/{challengeDelivery-C88JNwKf.js → challengeDelivery-FW9gYyr0.js} +1 -1
  247. package/dist/public/sdk/clientSessionPersistenceState-BPYK9PYV.js +1 -0
  248. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-CSwy9csE.js → collectAuthenticationCredentialForChallengeB64u-kLIxmw3V.js} +1 -1
  249. package/dist/public/sdk/{commitQueue-BQPOhyGl.js → commitQueue-Bs23Rs57.js} +1 -1
  250. package/dist/public/sdk/configBuilder-DrxXNUpV.js +1 -0
  251. package/dist/public/sdk/{configHelpers-D50F_Txb.js → configHelpers-BNqoU2cv.js} +1 -1
  252. package/dist/public/sdk/configuration-CAqANpTI.js +1 -0
  253. package/dist/public/sdk/csp-stylesheet-DeuiM0Mo.js +2 -0
  254. package/dist/public/sdk/{display-Dtugjeya.js → display-BXjW58UF.js} +1 -1
  255. package/dist/public/sdk/domainIds-t1lp25yU.js +1 -0
  256. package/dist/public/sdk/ecdsaCapabilityManifest--FjbES8k.js +1 -0
  257. package/dist/public/sdk/{ecdsaChainTarget-svSlzhze.js → ecdsaChainTarget-DbLthshF.js} +1 -1
  258. package/dist/public/sdk/{ecdsaDerivationClientWasm-D1HzwUgV.js → ecdsaDerivationClientWasm-7Rp4TmYE.js} +1 -1
  259. package/dist/public/sdk/ecdsaDerivationExport-dInN7N6e.js +1 -0
  260. package/dist/public/sdk/{ecdsaWalletRecords-BmhuJF1y.js → ecdsaWalletRecords-BgcXXCZy.js} +1 -1
  261. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-CIh9IPai.js +1 -0
  262. package/dist/public/sdk/{enrichDisplayModelWithAbi-D0o0IL7_.js → enrichDisplayModelWithAbi-CudPUW0T.js} +1 -1
  263. package/dist/public/sdk/{evmCryptoWasm-S2gL5ht4.js → evmCryptoWasm-DacbCVNM.js} +1 -1
  264. package/dist/public/sdk/{export-viewer-host-C9n-62Pi.js → export-viewer-host-DsWOvc0t.js} +1 -1
  265. package/dist/public/sdk/exportKeypairOperation-BazJvSov.js +1 -0
  266. package/dist/{esm/sdk/helpers-BXezXx19.js → public/sdk/helpers-CXqXyyCU.js} +1 -1
  267. package/dist/public/sdk/host-C0Is56lU.js +1 -0
  268. package/dist/public/sdk/icons-DyndJzSh.js +1 -0
  269. package/dist/public/sdk/indexedDB-C1odKEC6.js +1 -0
  270. package/dist/public/sdk/intentDigest-BMXki7yB.js +1 -0
  271. package/dist/public/sdk/{keyMaterialEnvelope-B3v6HLtz.js → keyMaterialEnvelope-B-Q5KTJC.js} +1 -1
  272. package/dist/public/sdk/lanes-C7OvAK_L.js +1 -0
  273. package/dist/public/sdk/localOnly-BB3Rx3J6.js +1 -0
  274. package/dist/public/sdk/mountExportPrivateKeySurface-CV1KrFWg.js +1 -0
  275. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-D3QFgMGE.js → public/sdk/mountRecoveryCodeBackupSurface-CVXU1zzl.js} +2 -2
  276. package/dist/public/sdk/nearEd25519YaoMaterialActivation-D9cdMKIZ.js +1 -0
  277. package/dist/public/sdk/nearEd25519YaoSigningPreparation-D_Jvj7ht.js +1 -0
  278. package/dist/public/sdk/{nonceLaneKeys-CR2XEvnk.js → nonceLaneKeys-BS4fek17.js} +1 -1
  279. package/dist/public/sdk/{normalization-Ctkj80dW.js → normalization-BN-2VWZf.js} +1 -1
  280. package/dist/public/sdk/{operationFingerprint-DRPONhBD.js → operationFingerprint-Bn0lUYlm.js} +1 -1
  281. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-lr1oISjL.js +1 -0
  282. package/dist/public/sdk/presignaturePool-CultzkOG.js +1 -0
  283. package/dist/public/sdk/{presignatures-DGLNs29C.js → presignatures-B9GrGx0L.js} +1 -1
  284. package/dist/public/sdk/recovery-entrypoint-QBvJBngm.js +1 -0
  285. package/dist/public/sdk/{recoveryAuthorization-BplZWc-N.js → recoveryAuthorization-DB-zxeHq.js} +1 -1
  286. package/dist/public/sdk/registration-CM5a7WYO.js +1 -0
  287. package/dist/public/sdk/registration-Hv0xi7-L.js +1 -0
  288. package/dist/public/sdk/{registrationAccounts-BfO6Ztye.js → registrationAccounts-BHikxS5q.js} +1 -1
  289. package/dist/public/sdk/{registrationAuthMethodInput-DKz6Mgg4.js → registrationAuthMethodInput-BvbWl0y_.js} +1 -1
  290. package/dist/public/sdk/registrationIntent-DTs2SR9E.js +1 -0
  291. package/dist/public/sdk/{registrationSignerPlan-B66FjqIp.js → registrationSignerPlan-CgbFVsAp.js} +1 -1
  292. package/dist/{esm/sdk/requireStepUpAuth-DsNLml1i.js → public/sdk/requireStepUpAuth-B7tC4MrA.js} +1 -1
  293. package/dist/public/sdk/resealedEnvelopeResult--iCVt_Bh.js +1 -0
  294. package/dist/public/sdk/routerAbNormalSigning-Div3lZWV.js +1 -0
  295. package/dist/public/sdk/router_ab_ed25519_yao_client_bg.wasm +0 -0
  296. package/dist/public/sdk/runtime-auth-CVw1KoVD.js +1 -0
  297. package/dist/public/sdk/runtime-device-link-Dp0YMZTQ.js +1 -0
  298. package/dist/public/sdk/runtime-ecdsa-tempo-DEIjIgEO.js +1 -0
  299. package/dist/public/sdk/runtime-email-otp-gsr_FsQn.js +1 -0
  300. package/dist/public/sdk/runtime-export-upMPrZ4V.js +1 -0
  301. package/dist/public/sdk/runtime-near-B64Hn3nc.js +1 -0
  302. package/dist/public/sdk/runtime-preferences-CULdHkbg.js +1 -0
  303. package/dist/public/sdk/runtime-recovery-D2saBaJy.js +1 -0
  304. package/dist/public/sdk/runtime-recovery-codes-Bvc0IXMJ.js +1 -0
  305. package/dist/public/sdk/runtimeContext-CNFJjcns.js +6 -0
  306. package/dist/{esm/sdk/sdkSentEvents-BzMVO1AR.js → public/sdk/sdkSentEvents-DUht3AOD.js} +1 -1
  307. package/dist/public/sdk/{secp256k1-CYu8ENjP.js → secp256k1-BGVlx50C.js} +1 -1
  308. package/dist/public/sdk/sessionObservationRevision-84ZzJ-fC.js +1 -0
  309. package/dist/public/sdk/shared-DcHtE-D-.js +1 -0
  310. package/dist/public/sdk/signEvmFamily-PjwUc5MT.js +1 -0
  311. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-4A3D9nKv.js → signEvmFamilyWithUiConfirmForTempo-BMfC2sc2.js} +1 -1
  312. package/dist/public/sdk/{signEvmWithUiConfirm-lZyPfrGe.js → signEvmWithUiConfirm-BNkupz3z.js} +1 -1
  313. package/dist/public/sdk/signNear-r8VCOoTh.js +1 -0
  314. package/dist/public/sdk/{signatureUses-CY4U-X6V.js → signatureUses-DrqCoN12.js} +1 -1
  315. package/dist/public/sdk/signerDomain-D-EUTlLK.js +1 -0
  316. package/dist/public/sdk/{signerSlot-CpyIfl3J.js → signerSlot-D4ZOuK7e.js} +1 -1
  317. package/dist/{esm/sdk/signingFlow-Co_QtuHK.js → public/sdk/signingFlow-BVvteILM.js} +1 -1
  318. package/dist/public/sdk/{signingQueue-Cj9sCJLj.js → signingQueue-BJzOrwDq.js} +1 -1
  319. package/dist/public/sdk/surface-measurement-reporter-NUm_54LH.js +1 -0
  320. package/dist/{esm/sdk/thresholdEcdsa-LvkD6z8-.js → public/sdk/thresholdEcdsa-tnY83qyG.js} +1 -1
  321. package/dist/public/sdk/{trace-CWTzEALZ.js → trace-CGNqO1FV.js} +1 -1
  322. package/dist/public/sdk/{transaction-activity-CpDMkSPm.js → transaction-activity-DPq9RTh5.js} +1 -1
  323. package/dist/public/sdk/transactionReview-DSGnpreN.js +1 -0
  324. package/dist/public/sdk/transactionReviewAdmission--8tDis7M.js +1 -0
  325. package/dist/{esm/sdk/transactionState-BaFSiA9t.js → public/sdk/transactionState-BS1VLT7B.js} +1 -1
  326. package/dist/public/sdk/tx-confirm-ui.js +418 -109
  327. package/dist/public/sdk/types-DdzuHlAQ.js +1 -0
  328. package/dist/public/sdk/unlockedEd25519ExportRootCapability-D43rvO9a.js +1 -0
  329. package/dist/public/sdk/voiceid-host.js +1 -0
  330. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  331. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  332. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  333. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  334. package/dist/public/sdk/wallet-recovery-BjIQdOha.js +1 -0
  335. package/dist/public/sdk/wallet-ui.css +1 -1
  336. package/dist/public/sdk/walletAuthMethodRecord-yIqCeE-o.js +1 -0
  337. package/dist/public/sdk/walletCapabilityBindings-CUPk3mVH.js +1 -0
  338. package/dist/public/sdk/walletCustodyEcdsaContinuity-DlOBCmwb.js +1 -0
  339. package/dist/public/sdk/walletCustodyOperation-DzPcxEBS.js +1 -0
  340. package/dist/public/sdk/walletDbName-DDJXrgA5.js +1 -0
  341. package/dist/public/sdk/walletOwnershipGeneration-DI9ogcXF.js +1 -0
  342. package/dist/public/sdk/walletRecoveryAdminProof-BJxmg3f7.js +1 -0
  343. package/dist/public/sdk/walletRecoveryCommit-B7WsdR7y.js +1 -0
  344. package/dist/public/sdk/walletRegistrationSetupPrewarm-CEJCj78c.js +1 -0
  345. package/dist/public/sdk/walletSessionAuthorizationStatus-98G3Qji8.js +1 -0
  346. package/dist/{esm/sdk/walletSessionAuthorizationStore-DYRMCkiT.js → public/sdk/walletSessionAuthorizationStore-zkxcMdSp.js} +1 -1
  347. package/dist/public/sdk/warmSessionHydration-DqZyfi1h.js +1 -0
  348. package/dist/public/sdk/{webauthnP256-unqBoZCk.js → webauthnP256-BvTL8nq4.js} +1 -1
  349. package/dist/public/sdk/workers/device-linking-key.worker.js +93 -5
  350. package/dist/public/sdk/workers/ecdsa-derivation-client.worker.js +67 -65
  351. package/dist/public/sdk/workers/email-otp.worker.js +93 -4
  352. package/dist/public/sdk/workers/passkey-mpc-export.worker.js +21 -2
  353. package/dist/public/sdk/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  354. package/dist/public/sdk/workers/wallet-custody-ceremony.worker.js +20 -2
  355. package/dist/public/sdk/workers/wallet_custody_ceremony_bg.wasm +0 -0
  356. package/dist/public/sdk/workers/wasm_signer_worker_bg.wasm +0 -0
  357. package/dist/public/wallet-assets.manifest.json +503 -240
  358. package/dist/public/wallet-service/index.html +4 -4
  359. package/dist/types/shared-ts/src/authorization/voiceIdDeviceAssertion.d.ts +32 -0
  360. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +3 -1
  361. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +8 -0
  362. package/dist/types/shared-ts/src/device-linking/wireFields.d.ts +4 -4
  363. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +29 -0
  364. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +1 -0
  365. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +2 -2
  366. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +2 -1
  367. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +10 -2
  368. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +2 -2
  369. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +9 -0
  370. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +3 -3
  371. package/dist/types/shared-ts/src/utils/domainIds.d.ts +4 -5
  372. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +0 -1
  373. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +3 -0
  374. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +32 -2
  375. package/dist/types/shared-ts/src/utils/walletAuthMethodRecord.d.ts +15 -1
  376. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +20 -0
  377. package/dist/types/wallet/src/SeamsWeb/operations/authMethods/addAuthMethodSourceClaim.d.ts +2 -2
  378. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  379. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -1
  380. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +22 -0
  381. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +4 -0
  382. package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +2 -0
  383. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/authMenuAnchor.d.ts +17 -0
  384. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  385. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/surface/geometry.d.ts +0 -1
  386. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +2 -1
  387. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/domain.d.ts +9 -0
  388. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/auth-menu/session.d.ts +15 -0
  389. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createRegistrationCommands.d.ts +2 -1
  390. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +7 -2
  391. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  392. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/runtimeContext.d.ts +3 -0
  393. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.d.ts +4 -0
  394. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/icons.d.ts +0 -1
  395. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/presentation.d.ts +2 -2
  396. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/walletMutationGuard.d.ts +2 -0
  397. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +15 -4
  398. package/dist/types/wallet/src/core/authMethods/availability.d.ts +13 -0
  399. package/dist/types/wallet/src/core/authMethods/availabilityTypes.d.ts +13 -0
  400. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +82 -0
  401. package/dist/types/wallet/src/core/authMethods/hostRegistry.d.ts +5 -0
  402. package/dist/types/wallet/src/core/authMethods/installSession.d.ts +15 -0
  403. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +7 -0
  404. package/dist/types/wallet/src/core/authMethods/prepareEcdsaSession.d.ts +6 -0
  405. package/dist/types/wallet/src/core/authMethods/prepareNearSession.d.ts +18 -0
  406. package/dist/types/wallet/src/core/authMethods/sessionIdentity.d.ts +53 -0
  407. package/dist/types/wallet/src/core/indexedDB/passkeyClientDB.types.d.ts +11 -1
  408. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +53 -2
  409. package/dist/types/wallet/src/core/indexedDB/unifiedIndexedDBManager.d.ts +1 -0
  410. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -1
  411. package/dist/types/wallet/src/core/signingEngine/flows/recovery/ecdsaExportMaterial.d.ts +6 -3
  412. package/dist/types/wallet/src/core/signingEngine/flows/signEvmFamily/ecdsaSelection.d.ts +8 -2
  413. package/dist/types/wallet/src/core/signingEngine/session/availability/availableSigningLanes.d.ts +10 -10
  414. package/dist/types/wallet/src/core/signingEngine/session/identity/exactSigningLaneIdentity.d.ts +1 -1
  415. package/dist/types/wallet/src/core/signingEngine/session/identity/laneIdentity.d.ts +3 -1
  416. package/dist/types/wallet/src/core/signingEngine/session/identity/signingLaneAuthBinding.d.ts +16 -4
  417. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSealedRuntime.d.ts +13 -4
  418. package/dist/types/wallet/src/core/signingEngine/session/material/ecdsaSigningCapability.d.ts +15 -6
  419. package/dist/types/wallet/src/core/signingEngine/session/operationState/lanes.d.ts +11 -4
  420. package/dist/types/wallet/src/core/signingEngine/session/postconditions/runtimePostconditions.d.ts +3 -3
  421. package/dist/types/wallet/src/core/signingEngine/session/warmCapabilities/routerAbEd25519WalletSessionState.d.ts +6 -0
  422. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/methodSelection.d.ts +1 -1
  423. package/dist/types/wallet/src/core/signingEngine/stepUpConfirmation/requireStepUpAuth.d.ts +1 -1
  424. package/dist/types/wallet/src/core/signingEngine/threshold/ed25519/yaoPublicCapabilityReferences.d.ts +6 -0
  425. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +11 -1
  426. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirm-ui-types.d.ts +2 -0
  427. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/confirmation-model.d.ts +1 -1
  428. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmContent.d.ts +1 -0
  429. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/ConfirmationContent.d.ts +4 -0
  430. package/dist/types/wallet/src/core/signingEngine/uiConfirm/ui/preact/TransactionReview.d.ts +1 -1
  431. package/dist/types/wallet/src/core/signingEngine/walletCustody/passkeyLink.d.ts +2 -2
  432. package/dist/types/wallet/src/core/signingEngine/walletCustody/resealedEnvelopeResult.d.ts +10 -0
  433. package/dist/types/wallet/src/core/types/sdkSentEvents.d.ts +1 -1
  434. package/dist/types/wallet/src/core/types/seams.d.ts +4 -0
  435. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  436. package/dist/types/wallet/src/externalNear/actions.d.ts +20 -0
  437. package/dist/types/wallet/src/externalNear/boundary.d.ts +7 -0
  438. package/dist/types/wallet/src/externalNear/controller.d.ts +24 -0
  439. package/dist/types/wallet/src/externalNear/hot.d.ts +14 -0
  440. package/dist/types/wallet/src/externalNear/index.d.ts +4 -0
  441. package/dist/types/wallet/src/externalNear/intear.d.ts +13 -0
  442. package/dist/types/wallet/src/externalNear/intearPopup.d.ts +25 -0
  443. package/dist/types/wallet/src/externalNear/message.d.ts +14 -0
  444. package/dist/types/wallet/src/externalNear/meteor.d.ts +19 -0
  445. package/dist/types/wallet/src/externalNear/meteorRequest.d.ts +29 -0
  446. package/dist/types/wallet/src/externalNear/types.d.ts +87 -0
  447. package/dist/types/wallet/src/externalNear/wallets.d.ts +4 -0
  448. package/dist/types/wallet/src/index.d.ts +1 -0
  449. package/dist/types/wallet/src/plugins/plugin-utils.d.ts +1 -1
  450. package/dist/types/wallet/src/react/components/AccountMenuButton/AddEvmAccount.d.ts +29 -0
  451. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodRow.d.ts +8 -3
  452. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsView.d.ts +1 -2
  453. package/dist/types/wallet/src/react/components/AccountMenuButton/VoiceIdAvailabilityControl.d.ts +19 -0
  454. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/ChevronRightIcon.d.ts +2 -0
  455. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/WalletIcon.d.ts +2 -0
  456. package/dist/types/wallet/src/react/externalNear.d.ts +26 -0
  457. package/dist/types/wallet/src/react/index.d.ts +1 -4
  458. package/dist/types/wallet/src/voiceid-host.d.ts +52 -0
  459. package/dist/workers/device-linking-key.worker.js +93 -5
  460. package/dist/workers/ecdsa-derivation-client.worker.js +67 -65
  461. package/dist/workers/email-otp.worker.js +93 -4
  462. package/dist/workers/passkey-mpc-export.worker.js +21 -2
  463. package/dist/workers/router_ab_ed25519_yao_client_bg.wasm +0 -0
  464. package/dist/workers/wallet-custody-ceremony.worker.js +20 -2
  465. package/dist/workers/wallet_custody_ceremony_bg.wasm +0 -0
  466. package/dist/workers/wasm_signer_worker_bg.wasm +0 -0
  467. package/package.json +25 -3
  468. package/dist/esm/plugins/SeamsWeb/walletIframe/sanitization.js +0 -18
  469. package/dist/esm/react/components/AccountMenuButton/icons/PlusIcon.js +0 -8
  470. package/dist/esm/react/components/VoiceAssistantCard.css +0 -313
  471. package/dist/esm/react/components/VoiceAssistantCard.js +0 -150
  472. package/dist/esm/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  473. package/dist/esm/sdk/activeWalletSession-BtEHhe99.js +0 -1
  474. package/dist/esm/sdk/adapters-CgJpSAxH.js +0 -2
  475. package/dist/esm/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  476. package/dist/esm/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  477. package/dist/esm/sdk/configBuilder-BMNShuOu.js +0 -1
  478. package/dist/esm/sdk/domainIds-C3fUa33Q.js +0 -1
  479. package/dist/esm/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  480. package/dist/esm/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  481. package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  482. package/dist/esm/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  483. package/dist/esm/sdk/host-DoftJdVQ.js +0 -1
  484. package/dist/esm/sdk/intentDigest--FZ63NBy.js +0 -1
  485. package/dist/esm/sdk/lanes-l274pbT5.js +0 -1
  486. package/dist/esm/sdk/localOnly-CvFSZFUy.js +0 -1
  487. package/dist/esm/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  488. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  489. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  490. package/dist/esm/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  491. package/dist/esm/sdk/presignaturePool-DNiA3sgr.js +0 -1
  492. package/dist/esm/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  493. package/dist/esm/sdk/registration-CIxJvbTo.js +0 -1
  494. package/dist/esm/sdk/registration-CeOmKyCG.js +0 -1
  495. package/dist/esm/sdk/registrationIntent-DW_kKWlx.js +0 -1
  496. package/dist/esm/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  497. package/dist/esm/sdk/runtime-auth-C0V-5znH.js +0 -1
  498. package/dist/esm/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  499. package/dist/esm/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  500. package/dist/esm/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  501. package/dist/esm/sdk/runtime-export-Ba12ChDI.js +0 -1
  502. package/dist/esm/sdk/runtime-near-DRrdWzmr.js +0 -1
  503. package/dist/esm/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  504. package/dist/esm/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  505. package/dist/esm/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  506. package/dist/esm/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  507. package/dist/esm/sdk/shared-B95wnpoD.js +0 -6
  508. package/dist/esm/sdk/signEvmFamily-C4XMiSue.js +0 -1
  509. package/dist/esm/sdk/signNear-B_UcqMRf.js +0 -1
  510. package/dist/esm/sdk/signerDomain-YEHkugWX.js +0 -1
  511. package/dist/esm/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  512. package/dist/esm/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  513. package/dist/esm/sdk/types-BrEW276O.js +0 -1
  514. package/dist/esm/sdk/wallet-recovery-BEui57xM.js +0 -1
  515. package/dist/esm/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  516. package/dist/esm/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  517. package/dist/esm/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  518. package/dist/esm/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  519. package/dist/esm/sdk/walletDbName-BVZhb4xF.js +0 -1
  520. package/dist/esm/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  521. package/dist/esm/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  522. package/dist/esm/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  523. package/dist/esm/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  524. package/dist/esm/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  525. package/dist/esm/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  526. package/dist/public/sdk/ConfirmationDrawer-Ck33ZmU-.js +0 -1
  527. package/dist/public/sdk/activeWalletSession-BtEHhe99.js +0 -1
  528. package/dist/public/sdk/adapters-CgJpSAxH.js +0 -2
  529. package/dist/public/sdk/appearance-token-vars-BA3KQyEE.js +0 -2
  530. package/dist/public/sdk/clientSessionPersistenceState-DFGHXoKK.js +0 -1
  531. package/dist/public/sdk/configBuilder-BMNShuOu.js +0 -1
  532. package/dist/public/sdk/domainIds-C3fUa33Q.js +0 -1
  533. package/dist/public/sdk/ecdsaCapabilityManifest-B3u6J5gn.js +0 -1
  534. package/dist/public/sdk/ecdsaDerivationExport-DrFESeRP.js +0 -1
  535. package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-DreNrM6n.js +0 -1
  536. package/dist/public/sdk/exportKeypairOperation-Du9HKB8f.js +0 -1
  537. package/dist/public/sdk/host-DoftJdVQ.js +0 -1
  538. package/dist/public/sdk/intentDigest--FZ63NBy.js +0 -1
  539. package/dist/public/sdk/lanes-l274pbT5.js +0 -1
  540. package/dist/public/sdk/localOnly-CvFSZFUy.js +0 -1
  541. package/dist/public/sdk/mountExportPrivateKeySurface-DdJHWwqY.js +0 -1
  542. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BK8_DxHs.js +0 -1
  543. package/dist/public/sdk/nearEd25519YaoSigningPreparation-BgCxoh9S.js +0 -1
  544. package/dist/public/sdk/pendingWalletRecoveryCodeBackup-LbstFwcY.js +0 -1
  545. package/dist/public/sdk/presignaturePool-DNiA3sgr.js +0 -1
  546. package/dist/public/sdk/recovery-entrypoint-CNVjXz6A.js +0 -1
  547. package/dist/public/sdk/registration-CIxJvbTo.js +0 -1
  548. package/dist/public/sdk/registration-CeOmKyCG.js +0 -1
  549. package/dist/public/sdk/registrationIntent-DW_kKWlx.js +0 -1
  550. package/dist/public/sdk/routerAbNormalSigning-DSAfCcND.js +0 -1
  551. package/dist/public/sdk/runtime-auth-C0V-5znH.js +0 -1
  552. package/dist/public/sdk/runtime-device-link-B1jpHQSF.js +0 -1
  553. package/dist/public/sdk/runtime-ecdsa-tempo-CDSZ3pxS.js +0 -1
  554. package/dist/public/sdk/runtime-email-otp-DXuxFOjL.js +0 -1
  555. package/dist/public/sdk/runtime-export-Ba12ChDI.js +0 -1
  556. package/dist/public/sdk/runtime-near-DRrdWzmr.js +0 -1
  557. package/dist/public/sdk/runtime-preferences-BWyhRaBA.js +0 -1
  558. package/dist/public/sdk/runtime-recovery-DlJlaZlf.js +0 -1
  559. package/dist/public/sdk/runtime-recovery-codes-CuqYWqK7.js +0 -1
  560. package/dist/public/sdk/sessionObservationRevision-abErAhd6.js +0 -1
  561. package/dist/public/sdk/shared-B95wnpoD.js +0 -6
  562. package/dist/public/sdk/signEvmFamily-C4XMiSue.js +0 -1
  563. package/dist/public/sdk/signNear-B_UcqMRf.js +0 -1
  564. package/dist/public/sdk/signerDomain-YEHkugWX.js +0 -1
  565. package/dist/public/sdk/surface-measurement-reporter-F-fVB7d3.js +0 -1
  566. package/dist/public/sdk/transactionReviewAdmission-CNNho8IG.js +0 -1
  567. package/dist/public/sdk/types-BrEW276O.js +0 -1
  568. package/dist/public/sdk/wallet-recovery-BEui57xM.js +0 -1
  569. package/dist/public/sdk/walletAuthMethodRecord-Cv_MYpxt.js +0 -1
  570. package/dist/public/sdk/walletCapabilityBindings-CKOK39sP.js +0 -1
  571. package/dist/public/sdk/walletCustodyEcdsaContinuity-5XsLsT8D.js +0 -1
  572. package/dist/public/sdk/walletCustodyOperation-BO_tSfGY.js +0 -1
  573. package/dist/public/sdk/walletDbName-BVZhb4xF.js +0 -1
  574. package/dist/public/sdk/walletOwnershipGeneration-CQzaodhB.js +0 -1
  575. package/dist/public/sdk/walletRecoveryAdminProof-CtH8_lph.js +0 -1
  576. package/dist/public/sdk/walletRecoveryCommit-B_e4k5Pa.js +0 -1
  577. package/dist/public/sdk/walletRegistrationSetupPrewarm-CQow9u8m.js +0 -1
  578. package/dist/public/sdk/walletSessionAuthorizationStatus-_KtCVFYW.js +0 -1
  579. package/dist/public/sdk/warmSessionHydration-CY9ofEGr.js +0 -1
  580. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/PlusIcon.d.ts +0 -2
  581. package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +0 -37
  582. package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +0 -2
  583. /package/dist/esm/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  584. /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  585. /package/dist/esm/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  586. /package/dist/esm/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  587. /package/dist/esm/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  588. /package/dist/esm/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  589. /package/dist/esm/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  590. /package/dist/esm/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  591. /package/dist/esm/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  592. /package/dist/esm/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  593. /package/dist/esm/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  594. /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  595. /package/dist/esm/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  596. /package/dist/esm/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  597. /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  598. /package/dist/esm/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  599. /package/dist/esm/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  600. /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  601. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  602. /package/dist/esm/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  603. /package/dist/esm/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.js} +0 -0
  604. /package/dist/public/sdk/{accountIds-BzZs7YoX.js → accountIds-D5NI31F2.js} +0 -0
  605. /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DVFno9Tv.js} +0 -0
  606. /package/dist/public/sdk/{authenticatorOptions-BB_sU4uA.js → authenticatorOptions-EF_Rps52.js} +0 -0
  607. /package/dist/public/sdk/{authorizationAdmission-D7nx2n4d.js → authorizationAdmission-DbhNiY3X.js} +0 -0
  608. /package/dist/public/sdk/{browser-DkCRXFkk.js → browser-B2RI00tM.js} +0 -0
  609. /package/dist/public/sdk/{bytes-Cv07P0Pu.js → bytes-DVe42j_r.js} +0 -0
  610. /package/dist/public/sdk/{canonicalSignerErrorCode-CqHi6ji6.js → canonicalSignerErrorCode-AwNMAn8S.js} +0 -0
  611. /package/dist/public/sdk/{errors-CI1xdN0d.js → errors-ADOZT8oV.js} +0 -0
  612. /package/dist/public/sdk/{executeWorkerOperation-S6glYwAs.js → executeWorkerOperation-B-9JuL55.js} +0 -0
  613. /package/dist/public/sdk/{jsonRpc-B5zMY6lE.js → jsonRpc-CHutSlC9.js} +0 -0
  614. /package/dist/public/sdk/{keccak-CaPOCznk.js → keccak-C9kCkZem.js} +0 -0
  615. /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-DtruiNPw.js} +0 -0
  616. /package/dist/public/sdk/{prfCache-D25ZCg5n.js → prfCache-8Wm3etlV.js} +0 -0
  617. /package/dist/public/sdk/{profileAccountProjection-C1z9sKHa.js → profileAccountProjection-D01e10UY.js} +0 -0
  618. /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-Bz3YRl9D.js} +0 -0
  619. /package/dist/public/sdk/{signer-worker-Bh_5foqX.js → signer-worker-DlK58rEA.js} +0 -0
  620. /package/dist/public/sdk/{types-BNUuaUtl.js → types-fJKfUgTi.js} +0 -0
  621. /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
  622. /package/dist/public/sdk/{walletSessionAuthorizationProjection-UdGeS6x3.js → walletSessionAuthorizationProjection-BJgnZaBc.js} +0 -0
  623. /package/dist/public/sdk/{walletSessionFailure-Ct412mDZ.js → walletSessionFailure-CLUIF3Eh.js} +0 -0
  624. /package/dist/public/sdk/{webauthnPromptCoordinator-CBkTiMP0.js → webauthnPromptCoordinator-CU9ag7vz.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{M as h,O as g,S as _,c as v,d as y,f as b,g as x,j as S,k as C,l as w,n as T,t as E,u as D}from"./chains-gV2K9gA4.js";import{$ as ee,J as O,Q as k,X as A,Y as te,Z as j,a as M,at as N,i as P,n as ne,ot as F,tt as re}from"./activeWalletSession-H9JBdHyQ.js";import{i as I,r as L}from"./base64-BmKR3UqU.js";import{r as ie}from"./secureRandomId-8LSc91aN.js";import{s as R}from"./walletDbName-DDJXrgA5.js";import{c as ae,d as oe,f as se,l as ce,s as le,u as ue}from"./signingSessionSeal-DqbjG8c8.js";import{d as de,g as fe,h as pe,m as me}from"./capabilityKinds-BzrNeEyO.js";import{i as he,n as ge,r as _e}from"./canonicalPrimitives-B6YMrI3W.js";import{n as ve,o as ye,t as be}from"./errors-ADOZT8oV.js";import{c as xe,f as Se,g as Ce,h as we,l as Te,n as Ee}from"./signerDomain-D-EUTlLK.js";import{A as De,D as Oe,E as ke,P as Ae,k as je,v as Me,w as Ne,x as Pe,y as Fe}from"./registrationIntent-DTs2SR9E.js";import{a as Ie,i as Le,n as Re,r as ze}from"./presignatures-B9GrGx0L.js";import{a as Be,c as Ve,i as He,o as Ue,r as We,s as Ge}from"./ecdsaChainTarget-DbLthshF.js";import{t as Ke}from"./keyMaterialEnvelope-B-Q5KTJC.js";import{c as qe,d as Je,r as Ye,t as Xe}from"./accountIds-D5NI31F2.js";import{F as Ze,I as Qe,J as $e,P as et,U as tt,V as nt,X as rt,Y as it,ct as at,ot,rt as st,st as ct,ut as lt,x as ut,z as dt}from"./walletCapabilityBindings-CUPk3mVH.js";import{$ as ft,Bt as pt,Ct as mt,Et as ht,Ht as gt,Lt as _t,Ot as vt,Pt as yt,Rt as bt,St as xt,T as St,Tt as Ct,Ut as wt,Y as Tt,at as Et,ct as Dt,dn as Ot,et as kt,fn as At,ft as jt,in as Mt,kt as Nt,pn as Pt,rn as Ft,sn as It,st as Lt,w as Rt}from"./emailOtpEcdsaDerivationIdentity-CIh9IPai.js";import{r as zt}from"./walletAuthMethodRecord-yIqCeE-o.js";import{a as Bt,i as Vt,n as Ht,o as Ut,t as Wt}from"./signerSlot-D4ZOuK7e.js";import{A as Gt,B as Kt,I as qt,N as Jt,P as Yt,i as Xt,j as Zt}from"./ecdsaCapabilityManifest--FjbES8k.js";import{g as Qt,i as z,p as $t,s as en}from"./sdkSentEvents-DUht3AOD.js";import{C as tn,S as nn,T as rn,b as an,d as on,t as B,w as sn,x as cn,y as ln}from"./indexedDB-C1odKEC6.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-CgbFVsAp.js";import{n as _n}from"./authenticatorOptions-EF_Rps52.js";import{X as vn,j as yn}from"./walletOwnershipGeneration-DI9ogcXF.js";import{c as bn,r as xn}from"./types-DdzuHlAQ.js";import{o as Sn}from"./walletSessionAuthorizationStore-zkxcMdSp.js";import{t as Cn}from"./walletSessionAuthorizationStatus-98G3Qji8.js";import{r as wn,s as Tn,u as En}from"./unlockedEd25519ExportRootCapability-D43rvO9a.js";import{o as Dn,u as On}from"./helpers-CXqXyyCU.js";import{i as kn}from"./profileAccountProjection-D01e10UY.js";import{M as An,d as jn,f as Mn,p as Nn,u as Pn}from"./accountLifecycle-B98g9zN9.js";import{c as Fn,r as In}from"./walletCustodyEcdsaContinuity-DlOBCmwb.js";import{D as Ln,S as Rn,T as zn,b as Bn,c as Vn,d as Hn,f as Un,k as Wn,m as Gn,n as Kn,r as qn,s as Jn,t as Yn,u as Xn,v as Zn,w as Qn,x as $n}from"./nearEd25519YaoMaterialActivation-D9cdMKIZ.js";import{A as er,a as tr,d as nr,f as rr,j as ir,o as ar,u as or}from"./nearEd25519YaoSigningPreparation-D_Jvj7ht.js";import{n as sr}from"./lanes-C7OvAK_L.js";import{i as cr,n as lr,o as ur,t as dr}from"./pendingWalletRecoveryCodeBackup-lr1oISjL.js";import{c as fr,o as pr,s as mr}from"./wallet-recovery-BjIQdOha.js";import{n as hr}from"./prfCache-8Wm3etlV.js";import{u as gr}from"./trace-CGNqO1FV.js";import{t as _r}from"./webauthnPromptCoordinator-CU9ag7vz.js";import{t as vr}from"./intentDigest-BMXki7yB.js";import{n as yr}from"./challengeDelivery-FW9gYyr0.js";import{n as br}from"./walletSessionAuthorizationProjection-BJgnZaBc.js";function xr(){return Reflect.get(globalThis,`__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS`)===!0}function Sr(){}function Cr(e){if(e.keySet!==`near_ed25519_v1`)throw Error(`The custody worker began an EVM run for a NEAR request`);return e}function wr(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker began a NEAR run for an EVM request`);return e}function Tr(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker completed a NEAR run for an EVM request`);return e}function Er(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 Or(e)}}async function Dr(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 Or(e)}}function Or(e){throw Error(`Unsupported wallet custody origin: ${String(e)}`)}function kr(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 Ar(e,t,n){if(xr())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 jr(e){let t=e.ceremonyId||ie(`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=Cr(await e.runStep(`beginWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`near_ed25519_v1`,custody:Er(n),protocolInputsJson:r.protocolInputsJson})).yaoExecuteRequestJson;if(Ar(t,`begin`,a),i=!0,r.beforeRouterRound){a=performance.now();let n=await e.runStep(`checkpointNearRegistration`,{ceremonyId:t});Ar(t,`checkpoint`,a),await r.beforeRouterRound(n.checkpointJson)}a=performance.now();let s=await r.runRouterRound(o);Ar(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}),Ar(t,`complete`,a),await r.afterRouterRoundCompleted?.(s),a=performance.now();let c=await e.runStep(`finishWalletCustodyKeySetRun`,{ceremonyId:t,finish:await Dr(n)});return Ar(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=wr(a);await r.beforeRelayerRound();let s=await r.runRelayerRound({contextBinding32B64u:o.ecdsaContextBinding32B64u,clientSharePublicKey33B64u:o.ecdsaClientSharePublicKey33B64u,clientShareRetryCounter:o.ecdsaClientShareRetryCounter,preActivationCommitPayload:o.preActivationCommitPayload}),c=Tr(await e.runStep(`completeWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`evm_family_ecdsa_v1`,protocolResultJson:s}));return kr(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(Sr),n}}const Mr=[1,2];function Nr(e){let t=[],n=new Set;for(let r of e){let e=E(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 Pr(e){let t=[],n=new Set;for(let r of e.chains){let i=E(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 Fr(e){for(let t of e.signers)if(t.kind===`near_ed25519`)return!0;return!1}function Ir(e){let t=e.ecdsaChainTargets??Rr(e.configs,e.options);return zr(e.accountProvisioning??fn(),t)}function Lr(e){let t=null;for(let n of e.configs.network.chains)if(T(n.network)){t=Hr(e);break}return zr(t,Rr(e.configs,e.options))}function Rr(e,t){let n=Pr({signerOptions:t.signerOptions??e.signing.thresholdEcdsa.provisioningDefaults,chains:e.network.chains}),r=[];for(let e of n)r.push(e.chainTarget);return r}function zr(e,t){let n=[];if(e&&n.push({kind:`near_ed25519`,accountProvisioning:e,signerSlot:1,participantIds:[...ee],derivationVersion:1}),t.length&&n.push({kind:`evm_family_ecdsa`,chainTargets:[...t],participantIds:[...Mr]}),!n.length)throw Error(`Wallet registration requires at least one configured, enabled signer`);return{kind:`signer_set`,signers:n}}function Br(e){let t=qe(e);if(!t.ok)throw Error(t.message);return dn(t.value)}function Vr(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 Br(`${t}.${n}`)}function Hr(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 Vr({walletId:e.wallet.walletId,relayerAccountId:e.configs.network.relayer.accountId});default:return t}}var Ur=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ei.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ei.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmactivatedclientv1_free(e,0)}create_signing_share(e,t,n,r,i){let a=V(n,G.__wbindgen_malloc),o=W,s=H(r,G.__wbindgen_malloc,G.__wbindgen_realloc),c=W,l=V(i,G.__wbindgen_malloc),u=W,d=G.wasmactivatedclientv1_create_signing_share(this.__wbg_ptr,e,t,a,o,s,c,l,u);if(d[2])throw U(d[1]);return Wr.__wrap(d[0])}static import_linked_material(t,n,r,i){let a=V(t,G.__wbindgen_malloc),o=W,s=H(i,G.__wbindgen_malloc,G.__wbindgen_realloc),c=W,l=G.wasmactivatedclientv1_import_linked_material(a,o,n,r,s,c);if(l[2])throw U(l[1]);return e.__wrap(l[0])}static import_local_material(t,n,r,i,a,o,s,c,l){let u=V(t,G.__wbindgen_malloc),d=W,f=V(n,G.__wbindgen_malloc),p=W,m=V(r,G.__wbindgen_malloc),h=W,g=V(i,G.__wbindgen_malloc),_=W,v=V(a,G.__wbindgen_malloc),y=W,b=V(l,G.__wbindgen_malloc),x=W,S=G.wasmactivatedclientv1_import_local_material(u,d,f,p,m,h,g,_,v,y,o,s,c,b,x);if(S[2])throw U(S[1]);return e.__wrap(S[0])}registered_public_key(){let e=G.wasmactivatedclientv1_registered_public_key(this.__wbg_ptr);var t=fi(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}seal_local_material(e,t,n){let r=V(e,G.__wbindgen_malloc),i=W,a=V(t,G.__wbindgen_malloc),o=W,s=V(n,G.__wbindgen_malloc),c=W,l=G.wasmactivatedclientv1_seal_local_material(this.__wbg_ptr,r,i,a,o,s,c);if(l[3])throw U(l[2]);var u=fi(l[0],l[1]).slice();return G.__wbindgen_free(l[0],l[1]*1,1),u}state_epoch(){let e=G.wasmactivatedclientv1_state_epoch(this.__wbg_ptr);return BigInt.asUintN(64,e)}};Symbol.dispose&&(Ur.prototype[Symbol.dispose]=Ur.prototype.free);var Wr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ti.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ti.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmclientsigningsharev1_free(e,0)}client_commitments_json(){let e,t;try{let n=G.wasmclientsigningsharev1_client_commitments_json(this.__wbg_ptr);return e=n[0],t=n[1],hi(n[0],n[1])}finally{G.__wbindgen_free(e,t,1)}}client_signature_share_b64u(){let e,t;try{let n=G.wasmclientsigningsharev1_client_signature_share_b64u(this.__wbg_ptr);return e=n[0],t=n[1],hi(n[0],n[1])}finally{G.__wbindgen_free(e,t,1)}}client_verifying_share(){let e=G.wasmclientsigningsharev1_client_verifying_share(this.__wbg_ptr);var t=fi(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Wr.prototype[Symbol.dispose]=Wr.prototype.free);var Gr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ni.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,0)}complete(e){let t=H(e,G.__wbindgen_malloc,G.__wbindgen_realloc),n=W,r=G.wasmed25519yaoclientrootexportsessionv1_complete(this.__wbg_ptr,t,n);if(r[2])throw U(r[1]);return Yr.__wrap(r[0])}execute_request_json(){let e,t;try{let n=G.wasmed25519yaoclientrootexportsessionv1_execute_request_json(this.__wbg_ptr);return e=n[0],t=n[1],hi(n[0],n[1])}finally{G.__wbindgen_free(e,t,1)}}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=H(e,G.__wbindgen_malloc,G.__wbindgen_realloc),m=W,h=H(t,G.__wbindgen_malloc,G.__wbindgen_realloc),g=W,_=V(i,G.__wbindgen_malloc),v=W,y=H(a,G.__wbindgen_malloc,G.__wbindgen_realloc),b=W,x=V(o,G.__wbindgen_malloc),S=W,C=V(s,G.__wbindgen_malloc),w=W,T=V(c,G.__wbindgen_malloc),E=W,D=V(l,G.__wbindgen_malloc),ee=W,O=V(u,G.__wbindgen_malloc),k=W,A=V(d,G.__wbindgen_malloc),te=W,j=V(f,G.__wbindgen_malloc),M=W,N=G.wasmed25519yaoclientrootexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,ee,O,k,A,te,j,M);if(N[2])throw U(N[1]);return this.__wbg_ptr=N[0],ni.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Gr.prototype[Symbol.dispose]=Gr.prototype.free);var Kr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ri.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmed25519yaolaneclientv1_free(e,0)}complete(e){let t=G.wasmed25519yaolaneclientv1_complete(this.__wbg_ptr,e);if(t[2])throw U(t[1]);return U(t[0])}execute_request_json(){let e,t;try{let i=G.wasmed25519yaolaneclientv1_execute_request_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,hi(n,r)}finally{G.__wbindgen_free(e,t,1)}}constructor(){return this.__wbg_ptr=G.wasmed25519yaolaneclientv1_new(),ri.register(this,this.__wbg_ptr,this),this}prepare(e,t,n,r,i,a,o,s,c,l){ui(a,qr);let u=V(o,G.__wbindgen_malloc),d=W,f=V(s,G.__wbindgen_malloc),p=W,m=V(c,G.__wbindgen_malloc),h=W,g=V(l,G.__wbindgen_malloc),_=W,v=G.wasmed25519yaolaneclientv1_prepare(this.__wbg_ptr,e,t,n,r,i,a.__wbg_ptr,u,d,f,p,m,h,g,_);if(v[2])throw U(v[1]);return U(v[0])}};Symbol.dispose&&(Kr.prototype[Symbol.dispose]=Kr.prototype.free);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();G.__wbg_wasmed25519yaolanesourcev1_free(e,0)}constructor(e,t,n,r,i,a){let o=V(e,G.__wbindgen_malloc),s=W,c=H(t,G.__wbindgen_malloc,G.__wbindgen_realloc),l=W,u=V(n,G.__wbindgen_malloc),d=W,f=V(r,G.__wbindgen_malloc),p=W,m=V(i,G.__wbindgen_malloc),h=W,g=V(a,G.__wbindgen_malloc),_=W,v=G.wasmed25519yaolanesourcev1_new(o,s,c,l,u,d,f,p,m,h,g,_);if(v[2])throw U(v[1]);return this.__wbg_ptr=v[0],ii.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(qr.prototype[Symbol.dispose]=qr.prototype.free);var Jr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ai.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,0)}constructor(e,t,n,r,i,a,o,s,c){ui(i,qr);let l=V(a,G.__wbindgen_malloc),u=W,d=V(o,G.__wbindgen_malloc),f=W,p=V(s,G.__wbindgen_malloc),m=W,h=V(c,G.__wbindgen_malloc),g=W,_=G.wasmed25519yaosourcepreservingregistrationsessionv1_new(e,t,n,r,i.__wbg_ptr,l,u,d,f,p,m,h,g);if(_[2])throw U(_[1]);return this.__wbg_ptr=_[0],ai.register(this,this.__wbg_ptr,this),this}take_execute_request_json(){let e,t;try{let i=G.wasmed25519yaosourcepreservingregistrationsessionv1_take_execute_request_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,hi(n,r)}finally{G.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(Jr.prototype[Symbol.dispose]=Jr.prototype.free);var Yr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,oi.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,oi.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmexporteded25519seedv1_free(e,0)}take_export_artifact_json(){let e,t;try{let i=G.wasmexporteded25519seedv1_take_export_artifact_json(this.__wbg_ptr);var n=i[0],r=i[1];if(i[3])throw n=0,r=0,U(i[2]);return e=n,t=r,hi(n,r)}finally{G.__wbindgen_free(e,t,1)}}};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();G.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,0)}destroy(){G.wasmordinaryed25519activationclientmaterialv1_destroy(this.__wbg_ptr)}constructor(e,t,n,r,i,a){let o=H(e,G.__wbindgen_malloc,G.__wbindgen_realloc),s=W,c=H(t,G.__wbindgen_malloc,G.__wbindgen_realloc),l=W,u=H(n,G.__wbindgen_malloc,G.__wbindgen_realloc),d=W,f=V(r,G.__wbindgen_malloc),p=W,m=H(i,G.__wbindgen_malloc,G.__wbindgen_realloc),h=W,g=H(a,G.__wbindgen_malloc,G.__wbindgen_realloc),_=W,v=G.wasmordinaryed25519activationclientmaterialv1_new(o,s,c,l,u,d,f,p,m,h,g,_);if(v[2])throw U(v[1]);return this.__wbg_ptr=v[0],si.register(this,this.__wbg_ptr,this),this}take_client_material(){let e=G.wasmordinaryed25519activationclientmaterialv1_take_client_material(this.__wbg_ptr);if(e[3])throw U(e[2]);var t=fi(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Xr.prototype[Symbol.dispose]=Xr.prototype.free);var Zr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ci.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,0)}complete(e){let t=H(e,G.__wbindgen_malloc,G.__wbindgen_realloc),n=W,r=G.wasmwalletcustodyseedexportsessionv1_complete(this.__wbg_ptr,t,n);if(r[2])throw U(r[1]);return Yr.__wrap(r[0])}execute_request_json(){let e,t;try{let n=G.wasmwalletcustodyseedexportsessionv1_execute_request_json(this.__wbg_ptr);return e=n[0],t=n[1],hi(n[0],n[1])}finally{G.__wbindgen_free(e,t,1)}}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=H(e,G.__wbindgen_malloc,G.__wbindgen_realloc),m=W,h=H(t,G.__wbindgen_malloc,G.__wbindgen_realloc),g=W,_=V(i,G.__wbindgen_malloc),v=W,y=H(a,G.__wbindgen_malloc,G.__wbindgen_realloc),b=W,x=V(o,G.__wbindgen_malloc),S=W,C=V(s,G.__wbindgen_malloc),w=W,T=V(c,G.__wbindgen_malloc),E=W,D=V(l,G.__wbindgen_malloc),ee=W,O=V(u,G.__wbindgen_malloc),k=W,A=V(d,G.__wbindgen_malloc),te=W,j=V(f,G.__wbindgen_malloc),M=W,N=G.wasmwalletcustodyseedexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,ee,O,k,A,te,j,M);if(N[2])throw U(N[1]);return this.__wbg_ptr=N[0],ci.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Zr.prototype[Symbol.dispose]=Zr.prototype.free);function Qr(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=V(e,G.__wbindgen_malloc),h=W,g=H(t,G.__wbindgen_malloc,G.__wbindgen_realloc),_=W,v=V(n,G.__wbindgen_malloc),y=W,b=V(r,G.__wbindgen_malloc),x=W,S=V(i,G.__wbindgen_malloc),C=W,w=V(a,G.__wbindgen_malloc),T=W,E=V(o,G.__wbindgen_malloc),D=W,ee=V(s,G.__wbindgen_malloc),O=W,k=V(d,G.__wbindgen_malloc),A=W,te=V(f,G.__wbindgen_malloc),j=W,M=V(p,G.__wbindgen_malloc),N=W,P=G.openWalletCustodyEd25519MaterialV1(m,h,g,_,v,y,b,x,S,C,w,T,E,D,ee,O,c,l,u,k,A,te,j,M,N);if(P[2])throw U(P[1]);return Ur.__wrap(P[0])}function $r(){let e={__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,t){return Error(hi(e,t))},__wbg_Number_9a4e0ecb0fa16705:function(e){return Number(e)},__wbg_String_8564e559799eccda:function(e,t){let n=H(String(t),G.__wbindgen_malloc,G.__wbindgen_realloc),r=W;mi().setInt32(e+4,r,!0),mi().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;mi().setBigInt64(e+8,yi(r)?BigInt(0):r,!0),mi().setInt32(e+0,!yi(r),!0)},__wbg___wbindgen_boolean_get_fa956cfa2d1bd751:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return yi(n)?16777215:n?1:0},__wbg___wbindgen_debug_string_c25d447a39f5578f:function(e,t){let n=H(di(t),G.__wbindgen_malloc,G.__wbindgen_realloc),r=W;mi().setInt32(e+4,r,!0),mi().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;mi().setFloat64(e+8,yi(r)?0:r,!0),mi().setInt32(e+0,!yi(r),!0)},__wbg___wbindgen_string_get_b0ca35b86a603356:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=yi(r)?0:H(r,G.__wbindgen_malloc,G.__wbindgen_realloc),a=W;mi().setInt32(e+4,a,!0),mi().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw Error(hi(e,t))},__wbg_call_8a2dd23819f8a60a:function(){return vi(function(e,t){return e.call(t)},arguments)},__wbg_call_a6e5c5dce5018821:function(){return vi(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 vi(function(e,t){e.getRandomValues(t)},arguments)},__wbg_get_507a50627bffa49b:function(e,t){return e[t>>>0]},__wbg_get_78f252d074a84d0b:function(){return vi(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_c7eb1f358a7654df:function(){return vi(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 vi(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(fi(e,t),n)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return vi(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return vi(function(){return module.require},arguments)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_8535240470bf2500:function(){return vi(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 yi(e)?0:li(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){let e=typeof globalThis>`u`?null:globalThis;return yi(e)?0:li(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){let e=typeof self>`u`?null:self;return yi(e)?0:li(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){let e=typeof window>`u`?null:window;return yi(e)?0:li(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 fi(e,t)},__wbindgen_cast_0000000000000004:function(e,t){return hi(e,t)},__wbindgen_cast_0000000000000005:function(e){return BigInt.asUintN(64,e)},__wbindgen_init_externref_table:function(){let e=G.__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 ei=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmactivatedclientv1_free(e,1)),ti=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmclientsigningsharev1_free(e,1)),ni=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,1)),ri=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolaneclientv1_free(e,1)),ii=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolanesourcev1_free(e,1)),ai=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,1)),oi=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmexporteded25519seedv1_free(e,1)),si=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,1)),ci=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,1));function li(e){let t=G.__externref_table_alloc();return G.__wbindgen_externrefs.set(t,e),t}function ui(e,t){if(!(e instanceof t))throw Error(`expected instance of ${t.name}`)}function di(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+=di(e[0]));for(let r=1;r<t;r++)n+=`, `+di(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 fi(e,t){return e>>>=0,_i().subarray(e/1,e/1+t)}let pi=null;function mi(){return(pi===null||pi.buffer.detached===!0||pi.buffer.detached===void 0&&pi.buffer!==G.memory.buffer)&&(pi=new DataView(G.memory.buffer)),pi}function hi(e,t){return Si(e>>>0,t)}let gi=null;function _i(){return(gi===null||gi.byteLength===0)&&(gi=new Uint8Array(G.memory.buffer)),gi}function vi(e,t){try{return e.apply(this,t)}catch(e){let t=li(e);G.__wbindgen_exn_store(t)}}function yi(e){return e==null}function V(e,t){let n=t(e.length*1,1)>>>0;return _i().set(e,n/1),W=e.length,n}function H(e,t,n){if(n===void 0){let n=Ci.encode(e),r=t(n.length,1)>>>0;return _i().subarray(r,r+n.length).set(n),W=n.length,r}let r=e.length,i=t(r,1)>>>0,a=_i(),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=_i().subarray(i+o,i+r),a=Ci.encodeInto(e,t);o+=a.written,i=n(i,r,o,1)>>>0}return W=o,i}function U(e){let t=G.__wbindgen_externrefs.get(e);return G.__externref_table_dealloc(e),t}let bi=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});bi.decode();let xi=0;function Si(e,t){return xi+=t,xi>=2146435072&&(bi=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),bi.decode(),xi=t),bi.decode(_i().subarray(e,e+t))}const Ci=new TextEncoder;`encodeInto`in Ci||(Ci.encodeInto=function(e,t){let n=Ci.encode(e);return t.set(n),{read:e.length,written:n.length}});let W=0,G;function wi(e,t){return G=e.exports,pi=null,gi=null,G.__wbindgen_start(),G}async function Ti(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 Ei(e){if(G!==void 0)return G;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=$r();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Ti(await e,t);return wi(n,r)}const Di=`router_ab_ed25519_yao_active_client_v1`;function Oi(e){switch(e.authorization.kind){case`passkey`:return{protocol:e.protocol,authorization:{kind:`passkey`,webauthnAuthentication:On(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 ki=Symbol(`router-ab-ed25519-yao-active-client-construction`);function Ai(e,t){if(!(e instanceof Uint8Array)||e.length!==32)throw Error(`${t} must contain 32 bytes`);return e}function ji(e){return e.authorization.kind===`passkey`}function Mi(e){switch(e.kind){case`wallet_custody_seed_v1`:return Zr;case`ed25519_yao_client_root_v1`:return Gr;default:return zi(e.kind)}}function Ni(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(Mi(e.custodyEnvelope))(...t)}function Pi(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 Fi(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=$e(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:Pi(Reflect.get(e,`factorRelease`))}}function Ii(){return{recipientKeyMaterial:Vi(),deriverASealSeed:Vi(),deriverBSealSeed:Vi()}}function Li(e){e.recipientKeyMaterial.fill(0),e.deriverASealSeed.fill(0),e.deriverBSealSeed.fill(0)}function Ri(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 zi(e){throw Error(`Unhandled Ed25519 Yao Client lifecycle: ${String(e)}`)}function Bi(e){switch(e.kind){case`active`:return e.activated;case`disposed`:throw Error(`Ed25519 Yao Client state is disposed`);default:return zi(e)}}function Vi(){let e=new Uint8Array(32);do globalThis.crypto.getRandomValues(e);while(e.every(Hi));return e}function Hi(e){return e===0}function Ui(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 Wi(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&&Pt(t.binding.ceremony.material_activation,e.scope.material_activation)&&t.binding.state_epoch===e.state_epoch&&Ri(t.binding.registered_public_key,e.registered_public_key)&&Ri(t.binding.runtime_policy_binding,e.runtime_policy_binding)&&Ri(t.binding.authorization_digest,e.authorization.authorization_digest)}function Gi(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 Ki(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:qi(e.traceContext)}}function qi(e){if(!e)return sn();if(e.kind!==`router_ab_trace_context_v1`)throw Error(`Router trace context kind is invalid`);let t=rn(e.value);if(!t.ok)throw Error(t.message);return t.value}async function Ji(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||Yi(e.url);return{ok:!0,value:n,...r?{serverTiming:r}:{}}}let r=b(n)?.code;return{ok:!1,message:JSON.stringify(n),...typeof r==`string`?{code:r}:{}}}function Yi(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=Xi(Reflect.get(n,`serverTiming`));if(r)return r}return null}function Xi(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 Zi=class{config;constructor(e){this.config=Ki(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:{...aa(this.config.routing),...n?{authorization:n}:{},...r?{[dt]:r}:{},"content-type":`application/json`,[tn]: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 Ji(t)}},Qi=class{activeMetadata;lifecycle;constructor(e){if(e[ki]!==!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=Bi(this.lifecycle);try{return{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:e.nonce.slice(),ciphertext:t.seal_local_material(Ai(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.nonce)}}finally{e.ownedPasskeyPrfFirst.fill(0)}}async createSigningShare(e){let t=Bi(this.lifecycle),n=Ai(e.admittedDigest,`admitted digest`),r=Ai(e.signingWorkerVerifyingShare,`SigningWorker verifying share`);if(!Ri(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:Ui(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 zi(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 zi(this.lifecycle)}}};function $i(e){let t=null;try{return t=Ur.import_local_material(Ai(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 Qi({[ki]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedPasskeyPrfFirst.fill(0)}}function ea(e){let t=null;try{if(t=Ur.import_linked_material(Ai(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||!Ri(t.registered_public_key(),e.metadata.registeredPublicKey)||!Ri(e.publicReceipt.signing_worker_verifying_share,e.metadata.signingWorkerVerifyingShare))throw Error(`linked-device Ed25519 material metadata does not match its receipt`);return new Qi({[ki]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedClientScalarShare.fill(0)}}function ta(e){let t=null;try{return t=Qr(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 Qi({[ki]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedFactorSecret.fill(0)}}let na=null;function ra(e){throw na=null,e}var ia=class e{constructor(){}static async initializeBundled(){return na??=Ei().catch(ra),await na,new e}importLocalMaterial(e){return $i(e)}importLinkedMaterial(e){return ea(e)}openCustodyCache(e){return ta(e)}async exportSeed(e){let t=await e.transport.send({kind:`export_admit`,path:Ze,body:Oi({protocol:e.request,authorization:e.authorization})});if(!t.ok)return t;let n;try{n=Fi(t.value)}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}if(!Wi(e.request,n.protocol))return{ok:!1,message:`Router export admission does not match the requested exact capability`};let r;if(ji(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=Ii(),a;try{a=Ni({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),Li(i)}try{let t=it(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:Qe,body:{protocol:t.value}});if(!n.ok)return n;let r=rt(n.value);if(!r.ok)return{ok:!1,message:r.message};let i=a.complete(JSON.stringify(r.value));try{return{ok:!0,artifact:Gi(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 aa(e){switch(e.kind){case`discovery`:return{};case`direct`:case`regional`:return N(e);default:return zi(e)}}function oa(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:I(e.transcript),activationCapabilityBindingB64u:I(Uint8Array.from(e.activeCapabilityBinding))}}function sa(e){if(!Ae(e.binding))throw Error(`wallet custody cache accepts wallet custody seed envelopes only`);return{bindingJson:ke(e),nonceB64u:e.nonceB64u,ciphertextB64u:e.sealedCustodySecretB64u,aadHashB64u:e.aadHashB64u,ciphertextDigestB64u:e.ciphertextDigestB64u}}function ca(e){let{binding:t}=e.material,{activation:n}=e;return{kind:Di,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:At(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:L(t.registeredPublicKeyB64u),signingWorkerVerifyingShare:L(t.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(t.stateEpoch),transcript:L(n.activationTranscriptB64u),activeCapabilityBinding:Array.from(L(n.activationCapabilityBindingB64u)),materialActivation:n.materialActivation}}async function la(e){let t=ca({material:e.material,activation:e.activation});return(await ia.initializeBundled()).openCustodyCache({ownedFactorSecret:e.ownedFactorSecret,envelope:{bindingJson:e.envelope.bindingJson,nonce:L(e.envelope.nonceB64u),ciphertext:L(e.envelope.ciphertextB64u),aadHash:L(e.envelope.aadHashB64u),ciphertextDigest:L(e.envelope.ciphertextDigestB64u)},applicationBindingDigest:L(e.material.binding.applicationBindingDigestB64u),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:L(e.material.sealed.nonceB64u),ciphertext:L(e.material.sealed.ciphertextB64u)},metadata:t})}async function ua(e){let t=await e.loadCachedMaterial();return t.kind===`found`?{kind:`opened`,activeClient:await la({material:t.material,activation:e.activation,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret})}:(e.ownedFactorSecret.fill(0),{kind:`rejoin_required`})}function da(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=re(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 fa(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 pa=`[Registration] wallet timing summary`,ma=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 ha(e,t,n){xr()&&console.info(`[Registration] ECDSA Server-Timing header presence`,{leg:t,present:!!n?.trim()}),ga(e,n)}function ga(e,t){if(e)for(let[n,r]of _a(t))e.record(n,r)}function _a(e){if(!e)return[];let t=[];for(let n of e.split(`,`)){let e=n.split(`;`),r=String(e[0]||``).trim(),i=ma.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 K(e){ya({ceremonyId:e.ceremonyId,stage:e.stage,durationMs:Math.max(0,performance.now()-e.startedAt),outcome:e.outcome})}function va(e,t,n){ya({ceremonyId:e,stage:`session_hydration.${t}`,durationMs:n,outcome:`success`})}function ya(e){if(xr())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 ba=[`passkeyAuthConfirmationMs`,`passkeyAuthPrfExtractionMs`,`passkeyAuthCredentialRedactionMs`,`passkeyAuthWorkerReadyMs`,`passkeyAuthWorkerRequestRoundTripMs`,`passkeyAuthWorkerResponseValidationMs`,`passkeyAuthRequestSetupMs`,`passkeyAuthPromptUserMs`,`passkeyAuthPromptElementDefineMs`,`passkeyAuthPromptMountMs`,`passkeyAuthPromptHostFirstUpdateMs`,`passkeyAuthPromptHostInteractiveMs`,`passkeyAuthPromptConfirmEventMs`,`passkeyAuthPromptDecisionWaitMs`,`passkeyAuthCredentialCreateStartMs`,`passkeyAuthCredentialCreateMs`,`passkeyAuthCredentialSerializeMs`,`passkeyAuthDuplicateRetryCount`,`passkeyAuthMainThreadTotalMs`],xa=[`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`],Sa=[`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`ecdsaRegistrationClientCreateMs`,`ecdsaRegistrationGatewayRespondMs`,`ecdsaRegistrationClientProofVerifyMs`,`ecdsaRegistrationGatewayActivateMs`,`ecdsaRegistrationClientActivationFinalizeMs`],Ca=[`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`],wa=[...Sa,...Ca],Ta=[`registrationWarmupMs`,`registrationWarmupWaitMs`,`registrationWarmupAuthenticatedWalletStateMs`,`registrationWarmupNoncePrefetchMs`,`registrationWarmupKeyMaterialReadMs`,`registrationWarmupUiConfirmPrewarmMs`,`registrationWarmupEmailOtpWorkerPrewarmMs`,`registrationWarmupEmailOtpYaoWasmInitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,...ba,`emailOtpEnrollmentMaterialMs`,...xa,`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`,...Sa,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,...Ca];function q(e){throw Error(`Unexpected registration timing branch: ${String(e)}`)}function Ea(e){switch(e.kind){case`near_ed25519`:return`near_ed25519`;case`evm_family_ecdsa`:return`evm_family_ecdsa`;default:return q(e)}}function Da(e){return{kind:`signer_set`,branches:e.branches.map(Ea)}}function Oa(e,t){return e.branches.includes(t)}function ka(e){return Math.max(0,Math.round(performance.now()-e))}function Aa(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 ja(e){if(!_(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(!_(n))continue;let e=Aa(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 Ma(e){return{kind:e.kind,route:e.route,entries:e.entries.map(Na)}}function Na(e){return{name:e.name,durationMs:e.durationMs}}function Pa(e,t){let n={};for(let r of e)n[r]=t[r];return n}function Fa(e){let t={};for(let n of e)t[n]=0;return t}function Ia(e){switch(e.authMethod){case`passkey`:return{kind:`passkey`,authProofMs:e.buckets.authProofMs,...Pa(ba,e.buckets),emailOtpEnrollmentMaterialMs:0,emailOtpRecoveryCodeBackupMs:0};case`email_otp`:return{kind:`email_otp`,authProofMs:e.buckets.authProofMs,...Fa(ba),emailOtpEnrollmentMaterialMs:e.buckets.emailOtpEnrollmentMaterialMs,emailOtpRecoveryCodeBackupMs:e.buckets.emailOtpRecoveryCodeBackupMs};default:return q(e.authMethod)}}function La(e){return Oa(e.signerSet,`near_ed25519`)?{kind:`ed25519_yao_enabled`,...Pa(xa,e.buckets)}:{kind:`ed25519_disabled`,...Fa(xa)}}function Ra(e){return Oa(e.signerSet,`evm_family_ecdsa`)?{kind:`ecdsa_enabled`,...Pa(wa,e.buckets)}:{kind:`ecdsa_disabled`,...Fa(wa)}}const za=[`registrationWarmupWaitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,`emailOtpEnrollmentMaterialMs`,`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`,`walletRegisterStartMs`,`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,`ecdsaRegistrationPersistenceMs`];function Ba(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 Va(e){return{name:e.name,kind:e.kind,startOffsetMs:e.startOffsetMs,endOffsetMs:e.endOffsetMs}}function Ha(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 Ua(e){let t=za.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=Ha(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(Va)}}function Wa(e){let t=Pa(Ta,e.buckets);return{...t,auth:Ia({authMethod:e.authMethod,buckets:t}),ed25519:La({signerSet:e.signerSet,buckets:t}),ecdsa:Ra({signerSet:e.signerSet,buckets:t}),emailOtpYaoPrewarm:{...e.emailOtpYaoPrewarm}}}var Ga=class{startedAt;nearStageStartedAt;buckets;relayDiagnostics;spans;emailOtpYaoPrewarm;constructor(e){this.startedAt=e,this.nearStageStartedAt=e,this.buckets=Fa(Ta),this.relayDiagnostics=[],this.spans=[],this.emailOtpYaoPrewarm=Ka()}markNearStage(e,t){let n=performance.now();ya({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]=ka(n),this.recordSpan(e,n,performance.now())}}record(e,t){let n=Math.max(0,Math.round(t));this.buckets[e]+=n}snapshot(){return Pa(Ta,this.buckets)}spansSnapshot(){return this.spans.map(Va)}recordSpan(e,t,n){this.spans.push({name:e,kind:Ba(e),startOffsetMs:Math.max(0,Math.round(t-this.startedAt)),endOffsetMs:Math.max(0,Math.round(n-this.startedAt))})}captureRouteDiagnostics(e){let t=ja(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(Ma)}totalMs(){return ka(this.startedAt)}};function Ka(){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:Ua({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Wa({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function Ja(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:Ua({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),errorCode:e.errorCode,relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Wa({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function Ya(e){xr()&&(console.info(pa,e),console.info(`${pa} ${JSON.stringify(e)}`))}function Xa(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 Za(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 Qa(e){let t=e.authority.signerActivations;return e.keyFamily===`ed25519`?t.ed25519?.materialActivation??null:t.ecdsa?.materialActivation??null}function $a(e){return e.session.capabilitySubjects.filter(t=>t.kind===`sign`&&t.keyFamily===e.keyFamily&&f(t.materialActivation,e.materialActivation)).length===1}function eo(e){return er(e)?{keyFamily:`ecdsa_secp256k1`,materialActivation:e.signer.materialActivation}:{keyFamily:`ed25519`}}async function to(e){let{input:t,ports:n}=e,r;try{r=await n.resolveSelectedWalletAuthority(String(t.walletId))}catch{return J(`persistence_unavailable`)}let i=Za({selected:r,walletId:t.walletId,authMethod:t.authMethod});if(`kind`in i)return i;let a=Qa({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`):$a({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 no(e){return String(e||``).trim()}function ro(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:0}function io(e){let t=Math.floor(Number(e));return Number.isSafeInteger(t)&&t>=0?t:null}function ao(e){return e.expiresAtMs<=e.nowMs?{kind:`expired`}:e.remainingUses<=0?{kind:`exhausted`}:null}function oo(e,t){let n=no(e);return n?{kind:`wallet_session_opaque`,walletSessionToken:n,credential:{kind:`wallet_session_opaque`,walletSessionToken:n,home:t}}:null}function so(e){let n=oo(no(e.walletSessionToken),e.home);if(!n)return{ok:!1,reason:`missing_wallet_session_token`};let r=no(e.walletId),i=no(e.nearAccountId),a=no(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=io(e.nowMs),d=ro(e.remainingUses),f=ro(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=ao({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=k(e.runtimePolicyScope)}catch{return{ok:!1,reason:`missing_signing_root`}}return m.signingRootId!==no(e.signingRootId)||m.signingRootVersion!==no(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:no(m.signingRootVersion),routerAbNormalSigning:e.routerAbNormalSigning}}}const co=Ie.signingSessionSeals,lo=Ie.signingSessionRestoreLeases,uo=[Le.ed25519ThresholdSessionId,Le.ecdsaThresholdSessionId];function fo(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||Error(`IndexedDB request failed`))})}function po(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 mo(){if(Re.isDisabled())return null;try{return ze(await Re.getDB())}catch{return null}}function ho(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 go(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 _o(e,t){let n=new Map;for(let r of uo)try{let i=await ho(e.index(r),t);for(let e of i)n.set(String(e.primaryKey),e)}catch{}return n.size?[...n.values()]:await go(e).catch(()=>[])}const Y=new class{async collectAllRawSealedRecordEntries(){let e=await mo();if(!e)return[];let t=e.transaction(co,`readonly`),n=await go(t.objectStore(co));return await po(t).catch(()=>void 0),n}async collectRawSealedRecordEntriesByThresholdSessionId(e){let t=await mo();if(!t)return[];let n=t.transaction(co,`readonly`),r=await _o(n.objectStore(co),e);return await po(n).catch(()=>void 0),r}async replaceSealedRecord(e){let t=await mo();if(!t)return;let n=t.transaction(co,`readwrite`),r=n.objectStore(co);for(let t of e.staleStoreKeys)r.delete(t);r.put(e.row),await po(n)}async replaceSealedRecordAndDeleteRestoreLease(e){let t=await mo();if(!t)return!1;let n=t.transaction([co,lo],`readwrite`),r=n.objectStore(co);for(let t of e.staleStoreKeys)r.delete(t);return r.put(e.row),n.objectStore(lo).delete(e.restoreLeaseKey),await po(n),!0}async deleteSealedRecords(e){if(!e.length)return;let t=await mo();if(!t)return;let n=t.transaction(co,`readwrite`),r=n.objectStore(co);for(let t of e)r.delete(t);await po(n).catch(()=>void 0)}async deleteRestoreLease(e){let t=await mo();if(!t)return;let n=t.transaction(lo,`readwrite`);n.objectStore(lo).delete(e),await po(n).catch(()=>void 0)}async deleteRestoreLeaseIf(e){let t=await mo();if(!t)return;let n=t.transaction(lo,`readwrite`),r=n.objectStore(lo),i=await fo(r.get(e.leaseKey));e.shouldDelete(i)&&r.delete(e.leaseKey),await po(n).catch(()=>void 0)}async withRestoreLeaseTransaction(e,t){let n=await mo();if(!n)return null;try{let r=n.transaction([co,lo],`readwrite`),i=r.objectStore(co),a=r.objectStore(lo),o=await _o(i,e),s=!1,c=await t({entries:o,getRawRestoreLease:async e=>await fo(a.get(e)),putRestoreLease:e=>a.put(e),abort:()=>{s=!0}});return s?(r.abort(),c):(await po(r),c)}catch{return null}}};function vo(e){throw Error(`Unhandled durable sealed-session identity: ${String(e)}`)}function yo(e){return{kind:`delete_durable_sealed_session`,durableRecord:e.durableRecord,deleteReason:e.deleteReason,preserveResolvedIdentity:e.preserveResolvedIdentity}}function bo(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 vo(e)}}function xo(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 So=`ecdsa_inactive_sealed_material_v1`,Co=`sealed_record`;function wo(e){let t=b(e)??{},n=m(t.ed25519),r=m(t.ecdsa);return{...n?{ed25519:n}:{},...r?{ecdsa:r}:{}}}function To(e){return wo((b(e)??{}).thresholdSessionIds)}function Eo(e){let t=b(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 Do(e){let t=String(e||``).trim();return t===`ed25519`||t===`ecdsa`?t:void 0}function Oo(e){let t=b(e);return t&&Co in t?t[Co]:e}function ko(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,[Co]:e}}function Ao(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,[Co]:e}}function jo(e){return ko(e)}function Mo(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:void 0}function No(e){return e.curve?e.curve:e.thresholdSessionIds.ecdsa?`ecdsa`:e.thresholdSessionIds.ed25519?`ed25519`:null}function Po(e){try{return ft(e)}catch{return null}}function Fo(e){switch(e){case`login`:case`registration`:case`manual-bootstrap`:case`email_otp`:return e;default:return null}}function Io(e){try{let t=k(A(e)),n=m(t.signingRootId),r=m(t.signingRootVersion);return n&&r?{signingRootId:n,signingRootVersion:r}:null}catch{return null}}function Lo(e){let t=b(e);if(!t)return;let n=null;try{n=Be(b(t.chainTarget)??{})}catch{n=null}let r=Fo(t.source),i=pt(t.authority),a=m(t.rpId),o=t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?t.runtimePolicyScope:void 0,s=Io(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=Yt(t.roleLocalMaterialRef)}catch{p=null}let h=_t(t.emailOtpAuthority),g=t.provider===`google`||t.provider===`email`?t.provider:null,_=m(t.providerSubjectId),v=m(t.emailHashHex),y=m(t.keyHandle),x=m(t.ecdsaThresholdKeyId),S=Mo(t.ethereumAddress),C=m(t.relayerKeyId),w=m(t.thresholdEcdsaPublicKeyB64u),T=Po(t.routerAbEcdsaDerivationNormalSigning),E=null;try{E=kt(t.publicCapability)}catch{E=null}let D=Go(t.participantIds);if(!n||!r||!u||!d||!y||!S||!C||!T||!E||!D.length)return;let ee=f&&a&&p&&i&&r!==`email_otp`?{source:r,authority:i,roleLocalMaterialRef:p,rpId:a,credentialIdB64u:f}:_&&g&&v&&p&&i&&h&&r===`email_otp`?{source:r,provider:g,providerSubjectId:_,emailHashHex:v,authority:i,emailOtpAuthority:h,roleLocalMaterialRef:p}:null;if(!ee)return;let O=m(t.clientVerifyingShareB64u);return{chainTarget:n,signingRootId:u,signingRootVersion:d,...ee,keyHandle:y,...x?{ecdsaThresholdKeyId:x}:{},ethereumAddress:S,relayerKeyId:C,...O?{clientVerifyingShareB64u:O}:{},...w?{thresholdEcdsaPublicKeyB64u:w}:{},participantIds:D,routerAbEcdsaDerivationNormalSigning:T,publicCapability:E,...o?{runtimePolicyScope:o}:{}}}function Ro(e){let t=b(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=Go(t.participantIds),h=r(t.signerSlot),g=oe(t.routerAbNormalSigning),_=d(t.materialActivation),v=o&&!s&&_.ok?{credentialIdB64u:o,materialActivation:_.value}:c&&s&&l&&!o&&_.ok?{provider:c,providerSubjectId:s,emailHashHex:l,materialActivation:_.value}:null;if(!(!n||!i||!a||!f||!p.length||h==null||h<=0||!g||!v||u))return{nearAccountId:n,nearEd25519SigningKeyId:i,rpId:a,...v,relayerKeyId:f,participantIds:p,...t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?{runtimePolicyScope:t.runtimePolicyScope}:{},signerSlot:h,routerAbNormalSigning:g}}function zo(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(Vo).join(`:`)}function Bo(e){let t=e.restore.roleLocalMaterialRef;return[`inactive-material`,e.walletId,e.authMethod,`ecdsa`,Ue(e.restore.chainTarget),t.materialActivation.activationId].map(Vo).join(`:`)}function Vo(e){return encodeURIComponent(String(e||``).trim())}function Ho(e){let t=String(e||``).trim();return t===`passkey`||t===`email_otp`?t:void 0}function Uo(e){let t=b(e);return!!(m(t?.subjectId)||m(t?.userId))}function Wo(e){let t=b(e);return!!(m(t?.signingRootId)||m(t?.signingRootVersion))}function Go(e){return Array.isArray(e)?e.map(e=>Math.floor(Number(e))).filter(e=>Number.isFinite(e)&&e>0):[]}function Ko(e){return{authMethod:m(e?.authMethod)||null,curve:m(e?.curve)||null,storeKey:m(e?.storeKey)||null,walletId:m(e?.walletId)||null,thresholdSessionIds:To(e),hasEcdsaRestore:!!b(e?.ecdsaRestore),hasEd25519Restore:!!b(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:Ko(t)}}function qo(e){return{v:2,alg:le,storageScope:ce,authMethod:e,secretKind:ue}}function Jo(e){e=Oo(e);let t=b(e);if(!t)return X(`malformed`,null,`invalid_payload`);if(Eo(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===So){let e=Zo(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=To(t),a=m(t.sealedSecretB64u),o=Do(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),_=r(t.issuedAtMs),v=r(t.expiresAtMs),y=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=No({curve:o,thresholdSessionIds:i});if(!S||_==null||_<=0||v==null||v<=0||y==null||y<0||x==null||x<=0)return X(`malformed`,t,`invalid_identity`);let C=b(t.ecdsaRestore),w=b(t.ed25519Restore),T=Lo(t.ecdsaRestore),E=Ro(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(!Go(C.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!T)return X(`rebuild_required`,t,`missing_restore_metadata`);let e=xo({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:_,expiresAtMs:v,remainingUses:y,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(!Go(w.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!E)return X(`rebuild_required`,t,`missing_restore_metadata`);let D=zo({walletId:l,authMethod:n,restore:E}),ee=m(t.storeKey);return ee&&ee!==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:_,expiresAtMs:v,remainingUses:y,updatedAtMs:x}}}function Yo(e){let t=Jo(Oo(e));return t.kind===`current`?t.record:null}function Xo(e){let t=b(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=A(t.runtimePolicyScope);let e=ft(t.routerAbEcdsaDerivationNormalSigning);if(!e)return null;i=e,a=kt(t.publicCapability)}catch{return null}let o=m(t.signingRootId),s=m(t.signingRootVersion),c=null;try{c=Yt(t.roleLocalMaterialRef)}catch{c=null}let l=pt(t.authority),u=_t(t.emailOtpAuthority),d=m(t.keyHandle),f=m(t.ecdsaThresholdKeyId),p=m(t.ethereumAddress),h=m(t.relayerKeyId),g=m(t.thresholdEcdsaPublicKeyB64u),_=Go(t.participantIds);if(!o||!s||!d||!f||!p||!h||!g||!_.length)return null;let v={chainTarget:n,signingRootId:o,signingRootVersion:s,keyHandle:d,ecdsaThresholdKeyId:f,ethereumAddress:p,relayerKeyId:h,thresholdEcdsaPublicKeyB64u:g,participantIds:_,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:{...v,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:{...v,source:t.source,authority:l,roleLocalMaterialRef:c,rpId:e,credentialIdB64u:n}}default:return null}}function Zo(e){let t=b(Oo(e));if(!t||t.recordKind!==So||Eo(t)||t.thresholdSessionIds!=null||t.ed25519Restore!=null||t.curve!==`ecdsa`)return null;let n=Ho(t.authMethod),i=m(t.walletId),a=m(t.relayerUrl),o=Xo(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=Bo({walletId:i,authMethod:n,restore:o});return m(t.storeKey)===f?Qo({storeKey:f,walletId:i,relayerUrl:a,sealedSecretB64u:s,keyVersion:c,updatedAtMs:u,authorizationRetirementReason:d,authMethod:n,ecdsaRestore:o}):null}function Qo(e){let{authMethod:t,ecdsaRestore:n}=e,r={recordKind:So,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 $o(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 es(e){let t=String(e.thresholdSessionId||``).trim(),n=Do(e.curve),i=e.authMethod===`passkey`||e.authMethod===`email_otp`?e.authMethod:void 0;if(!n||!i)return null;let a=ts({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=Lo(e.ecdsaRestore),h=Ro(e.ed25519Restore);if(Uo(e)||n===`ecdsa`&&(!p?.chainTarget||!o||Wo(e)))return null;let g,_;e.curve===`ed25519`&&(g=m(e.signingRootId),_=m(e.signingRootVersion));let v=Jo({...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:($o({operation:`build current sealed session record`,classification:v}),null)}function ts(e){let t=wo(e.thresholdSessionIds),n=String(e.thresholdSessionId||``).trim();return n&&(e.curve===`ed25519`&&t.ed25519===n||e.curve===`ecdsa`&&t.ecdsa===n)?t:{}}function ns(e,t){let n=m(t),r=m(e.ecdsaThresholdKeyId),i=m(e.thresholdEcdsaPublicKeyB64u);if(!n||!r||!i)return null;let a;try{a=A(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:Yt(e.roleLocalMaterialRef)};case`login`:case`registration`:case`manual-bootstrap`:return{...o,source:e.source,authority:e.authority,roleLocalMaterialRef:Yt(e.roleLocalMaterialRef),rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}}}function rs(e){let t=e.record,n=ns(t.ecdsaRestore,t.relayerUrl);return n?Qo({storeKey:Bo({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 is(e){let t=rs(e);if(!t)throw Error(`[SigningSessionSealedStore] inactive ECDSA material requires exact public restore facts`);return t}const as=15e3;function os(e){return ie(e,32,`sealed signing session restore IDs`)}function ss(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 cs(e){let t=new Set,n=m(e.walletId);return n&&t.add(n),t}function ls(e,t){let n=cs(e);if(!n.size)return!1;for(let e of cs(t))if(n.has(e))return!0;return!1}function us(e,t){if(!ls(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 ds(e){return v({storeKey:e.storeKey,walletId:e.walletId,authMethod:e.authMethod,signingRootId:e.signingRootId??null,signingRootVersion:e.signingRootVersion??null,restore:e.ed25519Restore})}function fs(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 ps(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 ms(e,t={writeCanonical:!1}){let n=e[0];if(!n)return null;let r=ds(n.record);for(let t of e.slice(1))if(ds(t.record)!==r)throw Error(`[SigningSessionSealedStore] exact Ed25519 material has conflicting public identity facts`);let i=e.reduce(ps),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:jo(i.record),staleStoreKeys:o}),i.record}async function hs(e){let t=Oo(e.value),n=Jo(t);if(n.kind!==`current`)return n;let r=b(t);return Eo(b(e.value))||Eo(r)?X(`delete_required`,r,`invalid_identity`):n}function gs(e){return To(Oo(e))}function _s(e,t,n,r){$o({operation:e,classification:t}),(t.kind===`delete_required`||t.kind===`malformed`)&&r.push(n)}function vs(e){let t=b(e);if(!t)return null;if(b(t.lease))return vs(t.lease);if(Number(t.v)!==1||Eo(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 ys(e){return{v:1,leaseKey:e.leaseKey,ownerId:e.ownerId,attemptId:os(`restore-attempt`),startedAtMs:e.nowMs,expiresAtMs:e.nowMs+e.ttlMs}}function bs(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 xs(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 Ss(e){let t=await Y.collectRawSealedRecordEntriesByThresholdSessionId(e);return t.length?t:(await Y.collectAllRawSealedRecordEntries()).filter(t=>{let n=gs(t.value);return n.ed25519===e||n.ecdsa===e})}async function Cs(e,t,n){let r=await Ss(e),i=null,a=[],o=[];for(let s of r){let r=await hs(s);if(r.kind===`current`){bs(r.record,e,t)&&(i=r.record,r.record.curve===`ed25519`&&a.push(fs(s,r.record)));continue}_s(n,r,s.primaryKey,o)}return await Y.deleteSealedRecords(o),a.length>0?await ms(a):i}async function ws(e,t){try{let n=await Ss(e),r=[];for(let i of n){let n=await hs(i),a=n.kind===`current`?n.record:null;a?.storeKey&&bs(a,e,t)&&r.push(i.primaryKey)}await Y.deleteSealedRecords(r)}catch{}}async function Ts(e){if(!cs(e).size||!e.authMethod)return[];try{let t=await Y.collectAllRawSealedRecordEntries(),n=[];for(let r of t){let t=await hs(r),i=t.kind===`current`?t.record:null;i&&i.storeKey!==e.storeKey&&us(i,e)&&n.push(i)}return n}catch{return[]}}function Es(e){if(e.curve!==`ecdsa`)return null;let t=ns(e.ecdsaRestore,e.relayerUrl);return t?Bo({walletId:e.walletId,authMethod:e.authMethod,restore:t}):null}async function Ds(e,t){let n=xs(t,`read`),r=String(e||``).trim();return r?await Cs(r,n,`read`):null}function Os(e,t){return e.curve===`ed25519`&&e.authMethod===t.authMethod&&f(e.ed25519Restore.materialActivation,t.materialActivation)}async function ks(e){let t=await Y.collectAllRawSealedRecordEntries(),n=[],r=[];for(let i of t){let t=await hs(i);if(t.kind===`current`){let n=t.record;Os(n,e)&&r.push(fs(i,n));continue}_s(`read exact Ed25519 material`,t,i.primaryKey,n)}return await Y.deleteSealedRecords(n),await ms(r)}async function As(e){let t=m(e.walletId);if(!t)return[];let n=xs(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 hs(c);if(i.kind!==`current`){_s(`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(fs(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 ms(t);n&&e.push(n)}return await Y.deleteSealedRecords(a),e}finally{await Y.deleteSealedRecords(a)}}async function js(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 hs(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`){_s(`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 Ms(e){let t=Jo(e);if(t.kind!==`current`){$o({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 hs(r);t.kind===`current`&&t.record.curve===`ed25519`&&t.record.storeKey===n.storeKey&&e.push(fs(r,t.record))}await ms(e,{writeCanonical:!0});return}let r=await Ts(n),i=Es(n);await Y.replaceSealedRecord({row:jo(n),staleStoreKeys:[...r.map(e=>e.storeKey),...i?[i]:[]]})}function Ns(e,t,n){return Ps({current:e,inactive:is({record:e,retirement:t,updatedAtMs:n})})}async function Ps(e){await Y.replaceSealedRecordAndDeleteRestoreLease({row:Ao(e.inactive),staleStoreKeys:[e.current.storeKey],restoreLeaseKey:e.current.storeKey})}async function Fs(e){let t=xs(e.filter,`update policy`),n=String(e.thresholdSessionId||``).trim();if(!n)return;let r=await Ds(n,t);r&&await Ls(r,e)}async function Is(e){let t=await ks(e.locator);t&&await Ls(t,e)}async function Ls(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 Ns(o,e,a);return}}await Ms(o)}async function Rs(e,t,n){let r=xs(t,`delete`),i=String(e||``).trim();if(!i)return;let a=await Cs(i,r,`delete`);await ws(i,r),a&&n.deleteResolvedIdentity&&await Y.deleteRestoreLease(a.storeKey)}async function zs(e,t){let n=await Y.collectAllRawSealedRecordEntries(),r=[],i=[];for(let a of n){let n=await hs(a);if(n.kind!==`current`){$o({operation:`delete exact Ed25519 material`,classification:n});continue}let o=n.record;Os(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 Bs(e){let t=e.preserveResolvedIdentity?{deleteResolvedIdentity:!1}:{deleteResolvedIdentity:!0,resolvedIdentityDeleteReason:`durable_record_deleted`};if(e.durableRecord.curve===`ed25519`){await zs({kind:`ed25519_durable_material`,authMethod:e.durableRecord.authMethod,materialActivation:e.durableRecord.materialActivation},t);return}let n=bo(e.durableRecord),r=await Vs(e.durableRecord.thresholdSessionId,n);if(e.preserveResolvedIdentity&&e.durableRecord.curve===`ecdsa`&&r?.curve===`ecdsa`&&(e.deleteReason===`expired`||e.deleteReason===`exhausted`)){await Ns(r,e.deleteReason,Date.now());return}await Rs(e.durableRecord.thresholdSessionId,n,t)}async function Vs(e,t){try{return await Ds(e,t)}catch{return null}}async function Hs(e){let t=xs(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??as)??as),o=m(e.ownerId)||os(`restore-owner`);return await Cs(n,t,`acquire restore lease`)?await Y.withRestoreLeaseTransaction(n,async e=>{let r=[];for(let t of e.entries){let e=Yo(t.value);e?.storeKey&&!r.some(t=>t.storeKey===e.storeKey)&&r.push(e)}let s=r.find(e=>bs(e,n,t))||null;if(!s)return e.abort(),null;let c=vs(await e.getRawRestoreLease(s.storeKey));if(c&&c.expiresAtMs>i&&c.ownerId!==o)return e.abort(),null;let l=ys({leaseKey:s.storeKey,ownerId:o,nowMs:i,ttlMs:a});return e.putRestoreLease(ss(l)),{...l,thresholdSessionId:n}}):null}async function Us(e){!e?.leaseKey||!e.ownerId||!e.attemptId||await Y.deleteRestoreLeaseIf({leaseKey:e.leaseKey,shouldDelete:t=>{let n=vs(t);return n?.ownerId===e.ownerId&&n.attemptId===e.attemptId}})}function Ws(e){return String(e??``).trim()||null}function Gs(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:null}function Ks(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function qs(e){let t=re(e);return t?.length===2?[t[0],t[1]]:null}function Js(e){let t=e.ed25519Restore;switch(e.authMethod){case Ee.passkey:{let e=Ws(t.credentialIdB64u);return e?{kind:`passkey`,rpId:St(t.rpId),credentialIdB64u:e}:null}case Ee.emailOtp:{if(!(`provider`in t))return null;let e=Ws(t.providerSubjectId),n=Ws(t.emailHashHex);return!e||!n?null:{kind:`email_otp`,provider:t.provider,providerSubjectId:e,emailHashHex:n}}}}function Ys(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 Xs(e){let t=e.ed25519Restore,n=Ws(e.thresholdSessionIds.ed25519),r=Ws(e.relayerUrl),i=Ws(t.relayerKeyId),a=Gs(e.expiresAtMs),o=Ks(e.remainingUses),s=Wt(t.signerSlot),c=qs(t.participantIds),l=R(t.runtimePolicyScope),u=l?k(l):null,d=Ws(u?.signingRootVersion),f=oe(t.routerAbNormalSigning),p=Js(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:Xe(t.nearAccountId),nearEd25519SigningKeyId:Vt(t.nearEd25519SigningKeyId),signerSlot:s,factor:p,auth:Ys(p),thresholdSessionId:xn.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 Zs(e){let t;switch(e.runtime.factor.kind){case`passkey`:t=bt({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=_t({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 Qs(e.runtime.factor)}if(!t)throw Error(`[SigningEngine][near] sealed Ed25519 authority is invalid`);return await gt({authority:t})}function Qs(e){throw Error(`Unsupported Ed25519 factor: ${String(e)}`)}async function $s(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||!tr({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 Zs({runtime:n,walletAuthMethodId:t.selectedAuthMethod.walletAuthMethodId}),r=await gt({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 ec(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 tc(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 nc(e,t){return ec(e.auth,t.auth)}async function rc(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`&&tc({record:t,laneIdentity:e.laneIdentity}));if(n.length===0)return{kind:`missing`};if(n.length>1)return{kind:`conflict`};let r=Xs(n[0]);return!r||!nc(r,e.laneIdentity)?{kind:`corrupt`}:{kind:`resolved`,runtime:r}}async function ic(e){return await rc(e,{listExactSealedSessionsForWallet:As})}async function ac(e,t){return sc(await oc(e,t))}async function oc(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 sc(e){if(e.length===0)return{kind:`missing`};if(e.length>1)return{kind:`conflict`};let t=Xs(e[0]);return t?{kind:`resolved`,runtime:t}:{kind:`corrupt`}}async function cc(e){return await ac(e,{listExactSealedSessionsForWallet:As})}async function lc(e,t){let n=await oc(e.walletId,t),r=[];for(let t of n)t.ed25519Restore.nearAccountId===e.nearAccountId&&t.ed25519Restore.nearEd25519SigningKeyId===e.nearEd25519SigningKeyId&&r.push(t);return sc(r)}async function uc(e){return await lc(e,{listExactSealedSessionsForWallet:As})}function dc(e,t){let n=String(e).trim();if(!n)throw Error(`${t} is required for Ed25519 Wallet Session state`);return n}function fc(e,t){if(!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be positive for Ed25519 Wallet Session state`);return e}function pc(e){let t=xn.thresholdEd25519Session(dc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=dc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=dc(e.relayerUrl,`relayerUrl`),i=dc(e.providerSubjectId,`providerSubjectId`),a=fc(e.signerSlot,`signerSlot`),o=fc(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:sr({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 mc(e){return hc({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:dc(e.credentialIdB64u,`credentialIdB64u`)}})}function hc(e){let t=xn.thresholdEd25519Session(dc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=dc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=dc(e.relayerUrl,`relayerUrl`),i=fc(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:sr({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 gc(e){let t=e.authorization.operationCredential.token,n=e.authorization.session.authorizationId,r=await Zs({runtime:e.runtime,walletAuthMethodId:e.authorization.selectedAuthMethod.walletAuthMethodId}),i=await gt({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=so({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 mc({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 pc({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 _c(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 vc(e){return e.authorization.capabilitySubjects.some(t=>t.kind===`sign`&&t.keyFamily===`ed25519`&&f(t.materialActivation,e.materialActivation))}function yc(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||!vc({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=so({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{...hc({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{...mc({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{...pc({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 bc(t.signingLane.auth)}}function bc(e){throw Error(`Unknown Ed25519 signing lane auth: ${String(e)}`)}async function xc(e){let t=e.state.signingLane.identity.signer.account.wallet.walletId,n=await to({ports:e.ports,input:{walletId:t,authMethod:bn(e.state.signingLane.auth),walletSessionId:e.state.walletSessionId,quotaId:e.state.quotaId,requiredSigningSubject:eo(e.state.signingLane.identity),expiry:{kind:`unexpired`,nowMs:e.nowMs}}});return n.kind!==`resolved`||n.resolved.authMethod.walletAuthMethodId!==e.state.authority.walletAuthMethodId?null:yc({state:e.state,authorization:n.resolved.session,operationCredential:n.resolved.operationCredential,materialActivation:n.resolved.materialActivation,nowMs:e.nowMs})}function Sc(e){return wt(v({operation:`wallet_add_signer_activate_v2`,addSignerCeremonyId:e.addSignerCeremonyId,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts}))}async function Cc(e){return I(await D(String(Sc(e))))}function wc(e){let t;try{t=je(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:Oe(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 Tc(e){let t={};return xr()&&(t[`X-Seams-Benchmark-Diagnostics`]=`registration-flow`),e&&(t[tn]=e.value),Object.keys(t).length>0?t:void 0}function Ec(e){let t=L(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 Dc=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 Oc(e){switch(e.kind){case`issued`:return e.session;case`already_committed`:throw new Dc(e.session);default:return q(e)}}function kc(e){let t=e[0];if(t)for(let n of e.slice(1)){let e=jc(t,n);if(e)throw Error(`ECDSA registration returned partitioned EVM-family wallet key material: ${e}`)}}function Ac(e){for(let t of e.walletKeys)if(!mt(t.publicCapability,e.session.publicCapability))throw Error(`ECDSA registration wallet key public capability does not match client-verified activation`)}function jc(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 Mc(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 Nc(e){try{await e.context.signingEngine.closeRouterAbEcdsaRegistrationCeremony({kind:`close_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:e.ceremonyId})}catch{return}}function Pc(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 Fc(e){return{canonicalRequest:Sc(e),requestDigest:_e(await Cc(e))}}async function Ic(e){try{return await Xn(e)}catch{return await Xn(e)}}async function Lc(e){return e.registrationTiming?await e.registrationTiming.measure(e.bucket,e.operation):await e.operation()}async function Rc(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 Lc({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 Lc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Qn.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 Lc({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=wc(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=jt({registrationRequestDigestB64u:s.registrationRequestDigestB64u,proofTranscriptDigestB64u:s.proofTranscriptDigestB64u,contextBinding32B64u:a.contextBinding32B64u,derivationClientSharePublicKey33B64u:a.clientSharePublicKey33B64u,clientShareRetryCounter:a.clientShareRetryCounter,participantId:1}),c=await Fc({addSignerCeremonyId:r,activationCorrelationId:i,publicFacts:o}),u={bytes:Array.from(L(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:It(e.started.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:qt(e.started.prepare.ecdsaThresholdKeyId),signingRootId:Ft(e.started.prepare.signingRootId),signingRootVersion:Mt(e.started.prepare.signingRootVersion),runtimePolicyScope:e.started.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Gt(a.clientSharePublicKey33B64u),participantIds:[Rt(e.started.prepare.participantIds[0]),Rt(e.started.prepare.participantIds[1])],relayerKeyId:Kt(e.started.prepare.relayerKeyId),bindingDigest:Zt(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 Lc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Ic.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:Ec(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=Pc({prepare:e.started.prepare,verified:u.clientBootstrap}),h=$n({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 Nc({context:e.context,ceremonyId:r}),t}}async function zc(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 Bc(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 Vc(e){let[t]=e.walletKeys;if(!t)throw Error(`ECDSA registration did not return wallet key material`);let n=Bc(e.session.registrationEstablishedSession);if(String(e.session.registrationEstablishedSession.walletId)!==t.walletId||n.thresholdSessionId!==e.session.activatedThresholdSessionId||n.keyHandle!==t.keyHandle||!Hc(n.runtimePolicyScope,e.session.clientBootstrap.runtimePolicyScope)||!xt(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 Hc(e,t){return e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}async function Uc(e,t){e.kind===`passkey`&&await Promise.allSettled([Promise.resolve().then(t),ia.initializeBundled()])}function Wc(e){return Nt({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:String(e.credential.rawId||e.credential.id||``).trim()})}async function Gc(e){if(!e.material)throw Error(`Email OTP registration ${e.operation} is missing enrollment material`);return await e.material}function Kc(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=A(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]||!Hc(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 Jc(e){let t=qc(e.registrationEstablishedSession);if(t.nearAccountId!==String(e.nearAccountId)||t.nearEd25519SigningKeyId!==String(e.nearEd25519SigningKeyId)||t.thresholdSessionId!==String(e.thresholdSessionId)||!Hc(t.runtimePolicyScope,e.runtimePolicyScope))throw Error(`Registration-established Email OTP Ed25519 session changed signer identity`);let n=k(t.runtimePolicyScope),r=n.signingRootVersion;if(!r)throw Error(`Registration-established Ed25519 session is missing a signing-root version`);let i=so({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 gt({authority:e.emailOtpAuthContext.authority});return pc({walletId:e.walletId,nearAccountId:Xe(e.nearAccountId),nearEd25519SigningKeyId:Bt(e.nearEd25519SigningKeyId),providerSubjectId:rr(e.emailOtpAuthContext),signerSlot:e.signerSlot,relayerUrl:e.relayerUrl,authority:a,signingWalletSession:i.value})}function Yc(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 Xc(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 Zc(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 Qc(e,t){let n=await new Zi(t).send({kind:`admit`,path:nt,body:e.admissionRequest});if(!n.ok)throw Error(n.message);let r=st(n.value);if(!r.ok)throw Error(r.message);return r.value}function $c(e){let t=qc(e.session);return{thresholdSessionId:String(t.thresholdSessionId),prfFirstB64u:e.prfFirstB64u,expiresAtMs:e.session.expiresAtMs,remainingUses:e.session.remainingUses,diagnostics:{recordDuration:va.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:da({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 el(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 tl(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 nl(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 rl(e,t,n){let r=t.registrationEstablishedSession.session,i=nl(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 il(e,t,n){let r=e.ecdsa_activation.public_identity;return ht({registrationRequestDigestB64u:t.publicCapability.registration_request_digest_b64u,proofTranscriptDigestB64u:I(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 al(e,t){return e.derivationClientSharePublicKey33B64u===t.derivationClientSharePublicKey33B64u&&e.relayerPublicKey33B64u===t.relayerVerifyingShareB64u&&e.groupPublicKey33B64u===t.thresholdEcdsaPublicKeyB64u&&e.ethereumAddress===t.thresholdOwnerAddress.toLowerCase()}function ol(e,t){return e.server_public_key33_b64u===t.relayerVerifyingShareB64u&&e.threshold_public_key33_b64u===t.thresholdEcdsaPublicKeyB64u&&ul(e.ethereum_address20_b64u)===t.thresholdOwnerAddress&&e.server_share_retry_counter===t.relayerShareRetryCounter}function sl(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 cl(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 ll(e){let t=e.ecdsa.walletKeys[0];if(!t)throw Error(`pending ECDSA activation returned no wallet keys`);return kc(e.ecdsa.walletKeys),[t,...e.ecdsa.walletKeys.slice(1)]}function ul(e){let t=L(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 dl(e,t,n){if(!rl(e,t,n))throw Error(`pending ECDSA activation projection mismatch`);ln(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function fl(e){return e.ok===!0&&e.kind===`evm_family_ecdsa`&&e.registrationEstablishedSession.kind===`already_committed`}async function pl(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=_t(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 ml(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||I(Uint8Array.from(r.activation_request_digest.bytes))!==e.localMaterial.ecdsa.activationRequestDigestB64u||!il(r,n,o)||!al(t.ecdsa.bootstrap.publicIdentity,n)||i.context.application_binding_digest_b64u!==t.ecdsa.bootstrap.applicationBindingDigestB64u||!ol(a,n))throw Error(`pending ECDSA activation facts mismatch`);if(!sl(t.ecdsa.bootstrap,n))throw Error(`pending ECDSA bootstrap changed committed key identity`)}function hl(e){let t=nl(e).ecdsa,n=e.ecdsa.activation.ecdsa_activation;if(!f(t.materialActivation,Ot(n.material_activation))||!xt(t.routerAbEcdsaDerivationNormalSigning,e.ecdsa.bootstrap.routerAbEcdsaDerivationNormalSigning))throw Error(`pending ECDSA activation facts do not match the committed projection`)}async function gl(e){let t=e.response;if(!fl(t))throw Error(t.ok?`pending ECDSA activation replay did not return a committed projection`:`pending ECDSA activation replay failed`);let n=ll(t)[0];if(dl(e.pending,t,n),await pl(e.pending,t),ml(e.pending,t,n),hl(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 _l(e){let t=new on,n=Ot(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 In(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(!Ct(i.activation.serverActivation.serverActivationReceipt.protocolReceipt,e.activationReceipt)||!mt(a.roleLocalPublicFacts.publicCapability,e.publicCapability)||!yn(i.signer.scope,Xt({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 vl(e){let t=e[0];if(!t)throw Error(`ECDSA registration finalization returned no wallet keys`);return[t,...e.slice(1)]}function yl(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 bl(e){let t=vl(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 Pn({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=_t(e.response.authority);if(!n)throw Error(`ECDSA Email OTP registration authority is invalid`);return await Pn({kind:`email_otp`,walletId:e.pending.walletId,email:e.pending.auth.email,registrationAuthorityId:e.pending.auth.registrationAuthorityId,authority:n,walletKeys:t})}function xl(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 Sl(e){let t=await e.ports.activateWalletRegistration(cl(e.relayerUrl,e.pending)),n=await gl({pending:e.pending,response:t}),r=ll(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 gt({authority:n.authority}),c=await _l({authority:s,chainTargets:yl(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:nl(n).ecdsa.runtimePolicyScope,readyStateBlobB64u:a.readyStateBlobB64u,publicFacts:a.publicFacts}),l={kind:`ecdsa_role_local_worker_handle_v1`,materialHandle:Jt(c.roleLocalMaterialRef.durableMaterialRef),bindingDigest:c.roleLocalMaterialRef.bindingDigest,durableMaterialRef:c.roleLocalMaterialRef.durableMaterialRef},u=await e.signingSurface.finalizeWalletRegistrationEcdsaSessions({walletId:String(e.pending.walletId),session:{chainTargets:yl(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 bl({pending:e.pending,response:n,walletKeys:u});if(await e.ports.publishPendingWalletRegistrationCommit(xl({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=ur(a.credential,`Pending NEAR registration continuation`),n=qm({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:cr(a.credential),prfFirstB64u:t},ownedFactorSecret:L(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 Cl(e,t,n){e?.(Qt({flowId:`unlock:${t}`,accountId:t,...n}))}async function wl(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}),Cl(a,r,{phase:en.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 Tl(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)),Cl(i,n,{phase:l?en.CANCELLED:en.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 El(e){let t=mr(),n=null;try{let r=JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:I(e)}))),i=await jr({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=Bl(r),r}}});if(!n)throw Error(`the NEAR custody ceremony produced no activation session id`);let a=await zl(i,t);return{recoveryCodes:t.codes,activationReference:{kind:`router_ab_ed25519_yao_activation_reference_v1`,lifecycle_id:e.registrationCeremonyId,session_id:n},commitPayload:Rl(a),localMaterial:i.ed25519LocalMaterialB64u&&i.ed25519LocalMaterialNonceB64u&&i.ed25519ApplicationBindingDigestB64u?{b64u:i.ed25519LocalMaterialB64u,nonceB64u:i.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:i.ed25519ApplicationBindingDigestB64u}:null}}finally{t&&fr(t),t=null}}function Dl(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 Ol(e){let t=mr(),n=null,r=null;try{let i=t;if(!i)throw Error(`recovery codes were not issued`);let a=await jr({runStep:e.runStep,custody:{origin:`establish`,walletId:e.walletId,factorJson:e.factorJson,factorSecret:e.factorSecret,recoveryCodesJson:JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:I(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 zl(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&&fr(t),t=null}}async function kl(e){let t=null,n=null,r=await jr({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 Al(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 jl(e.factorReplacement)}}function jl(e){throw Error(`unsupported recovery factor replacement: ${String(e)}`)}async function Ml(e){if(await Il({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 jr({runStep:e.runStep,custody:Al(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 Nl(e){let t=await Il({walletId:e.walletId,evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,clientRootPublicKey33B64u:e.registeredClientRootPublicKey33B64u}),n=await jr({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 Pl(e,t){e.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255)}function Fl(e,t,n){let r=new TextEncoder().encode(t);Pl(e,r.length),e.push(...r),Pl(e,n.length),e.push(...n)}async function Il(e){let t=String(e.walletId||``).trim(),n=String(e.evmFamilySigningKeySlotId||``).trim(),r=L(e.clientRootPublicKey33B64u);if(!t||!n||r.length!==33)throw Error(`EVM custody continuity identity is invalid`);let i=[];return Fl(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/evm-family-ecdsa/v1`)),Fl(i,`walletId`,new TextEncoder().encode(t)),Fl(i,`evmFamilySigningKeySlotId`,new TextEncoder().encode(n)),Fl(i,`clientRootPublicKey33`,r),I(await w(Uint8Array.from(i)))}async function Ll(e){let t=String(e.walletId||``).trim(),n=String(e.nearEd25519SigningKeyId||``).trim(),r=L(e.registeredPublicKeyB64u);if(!t||!n||r.length!==32)throw Error(`NEAR custody continuity identity is invalid`);let i=[];return Fl(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/near-ed25519/v1`)),Fl(i,`walletId`,new TextEncoder().encode(t)),Fl(i,`nearEd25519SigningKeyId`,new TextEncoder().encode(n)),Fl(i,`registeredPublicKey`,r),I(await w(Uint8Array.from(i)))}function Rl(e){let{ed25519LocalMaterialB64u:t,ed25519LocalMaterialNonceB64u:n,ed25519ApplicationBindingDigestB64u:r,ecdsaReadyStateBlobB64u:i,recoveryReplacementEnvelope:a,...o}=e;return o}async function zl(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 pr(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 Bl(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 Vl(e){if(await Ll({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 jr({runStep:e.runStep,custody:Al(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 Hl(e){return await Wl(e,e.registrationCeremonyId,void 0,`registration join`)}async function Ul(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 Wl({...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 Wl(e,t,n,r,i){let a=null,o=await jr({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=Bl(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:Rl(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 Gl(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 Kl=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 Jl(e){throw new Kl(e)}function Yl(e){return e.freshRouteFamily===`registration`?Gl({routeFamily:`registration`,operation:Se}):Gl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function Xl(e){return e?.kind!==`signing_session`&&Jl({kind:`auth_lane_missing`,source:`route_plan`,expectedCurve:`unknown`}),e}function Zl(e){return Gl({routeFamily:`signing_session`,authLane:e.authLane,operation:e.operation})}function Ql(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 $l(e){if(e.routeFamily===`signing_session`)return Ql(e.authLane)}async function eu(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 tu(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 nu(e){let t=await tu({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 ru(e){let t=await tu({base:e,material:{kind:`ed25519_yao_recovery`,providerSubject:e.providerSubject,nearAccountId:e.nearAccountId,expectedOperationalPublicKey:e.expectedOperationalPublicKey,expectedThresholdSessionId:e.expectedThresholdSessionId,walletCustodyEd25519Material:e.walletCustodyEd25519Material,ed25519YaoRecovery:{kind:et,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 iu(e){let t=await tu({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:et,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 au(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 ou(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be a positive integer`);return e}function su(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 cu(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}function lu(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(S(e.walletId,`session.walletId`)!==n.walletId||S(e.nearAccountId,`session.nearAccountId`)!==n.nearAccountId||S(e.nearEd25519SigningKeyId,`session.nearEd25519SigningKeyId`)!==n.nearEd25519SigningKeyId)throw Error(`Yao recovery session identity does not match the verified passkey`);let o=A(C(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=ou(e.expiresAtMs,`session.expiresAtMs`),d=ou(e.remainingUses,`session.remainingUses`),p=r.capabilitySubjects.find(cu);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:S(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 uu(e){let t=e.capability,n=e.session,r=k(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]||!j(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 du(e){if(uu(e),e.capability.lifecycle.thresholdSessionId!==e.session.thresholdSessionId)throw Error(`Yao recovery response does not preserve the threshold material lifecycle`)}function fu(e,t){if(uu(e),!f(e.capability.materialActivation,t))throw Error(`Yao warm recovery response does not preserve exact material activation`)}function pu(e){return`operationCredential`in e?e.operationCredential.token:e.walletSessionToken}function mu(e){let t=C(e,`sync-account response`);if(t.ok!==!0||t.verified!==!0)throw Error(`sync-account response is not verified`);let r=Ut(S(t.walletId,`walletId`)),i=Xe(S(t.nearAccountId,`nearAccountId`)),a=S(t.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),s=C(t.thresholdEd25519,`thresholdEd25519`),c=su(s.participantIds),l=C(t.ed25519YaoRecovery,`ed25519YaoRecovery`);if(l.kind!==`router_ab_ed25519_yao_sync_recovery_v1`)throw Error(`sync-account recovery kind is invalid`);let u=pt(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=ut(t.foundingAuthority),m=zt(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 h=C(t.walletCustody,`walletCustody`);if(h.kind!==`wallet_custody_sync_bootstrap_v1`)throw Error(`walletCustody kind is invalid`);let g=En(l.capability),_=ne(t.walletSession),v=P(t.operationCredential),y={authority:u,walletAuthMethodId:d.value,walletAuthorityId:f.value,foundingAuthority:p.value,foundingAuthMethod:m,walletId:r,nearAccountId:i,nearEd25519SigningKeyId:a,signerSlot:ou(t.signerSlot,`signerSlot`),operationalPublicKey:S(t.publicKey,`publicKey`),relayerKeyId:S(s.relayerKeyId,`thresholdEd25519.relayerKeyId`),keyVersion:S(s.keyVersion,`thresholdEd25519.keyVersion`),credentialIdB64u:S(t.credentialIdB64u,`credentialIdB64u`),credentialPublicKeyB64u:S(t.credentialPublicKeyB64u,`credentialPublicKeyB64u`),session:lu(C(s.session,`thresholdEd25519.session`),c,{walletId:String(r),nearAccountId:String(i),nearEd25519SigningKeyId:a},_,v,{walletAuthorityId:f.value,walletAuthMethodId:d.value,authorityDigestB64u:p.value.authorityDigestB64u,authorityRevocationEpoch:p.value.revocationEpoch,materialActivation:g.materialActivation}),capability:g,walletSession:_,operationCredential:v,walletCustody:{envelope:je(h.envelope),storeVersion:S(h.storeVersion,`walletCustody.storeVersion`)}};return du(y),y}function hu(e){let t=e.parsed,n=t.session,r=k(n.runtimePolicyScope),i=so({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:pu(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 mc({walletId:Ve(t.walletId),nearAccountId:t.nearAccountId,nearEd25519SigningKeyId:Vt(t.nearEd25519SigningKeyId),signerSlot:t.signerSlot,rpId:St(e.rpId),credentialIdB64u:t.credentialIdB64u,relayerUrl:e.relayerUrl,authority:t.authority,signingWalletSession:i.value})}function gu(e){if(!_(e)||e.kind!==`wallet_custody_passkey_login_v1`)throw Error(`Passkey wallet unlock returned invalid custody data`);if(!_(e.ed25519))throw Error(`Passkey wallet unlock omitted Ed25519 custody continuity`);if(e.ed25519.kind===`absent`)return{kind:`wallet_custody_passkey_login_v1`,envelope:je(e.envelope),storeVersion:S(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:je(e.envelope),storeVersion:S(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`active`,nearAccountId:S(e.ed25519.nearAccountId,`walletCustody.ed25519.nearAccountId`),nearEd25519SigningKeyId:S(e.ed25519.nearEd25519SigningKeyId,`walletCustody.ed25519.nearEd25519SigningKeyId`),signerSlot:t,publicKey:S(e.ed25519.publicKey,`walletCustody.ed25519.publicKey`),relayerKeyId:S(e.ed25519.relayerKeyId,`walletCustody.ed25519.relayerKeyId`),participantIds:[Number(n[0]),Number(n[1])],capability:En(e.ed25519.capability)}}}function _u(e){if(!_(e))throw Error(`ECDSA custody chain target is invalid`);let t=S(e.kind,`ecdsaCustody.chainTarget.kind`),n=Number(e.chainId),r=S(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 vu(e){if(!_(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(!_(n)||!_(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:_u(n.chainTarget),walletKey:{walletId:S(e.walletId,`ecdsaCustody.walletKey.walletId`),keyHandle:S(e.keyHandle,`ecdsaCustody.walletKey.keyHandle`),ecdsaThresholdKeyId:S(e.ecdsaThresholdKeyId,`ecdsaCustody.walletKey.ecdsaThresholdKeyId`),signingRootId:S(e.signingRootId,`ecdsaCustody.walletKey.signingRootId`),signingRootVersion:S(e.signingRootVersion,`ecdsaCustody.walletKey.signingRootVersion`),relayerKeyId:S(e.relayerKeyId,`ecdsaCustody.walletKey.relayerKeyId`),contextBinding32B64u:S(e.contextBinding32B64u,`ecdsaCustody.walletKey.contextBinding32B64u`),derivationClientSharePublicKey33B64u:S(e.derivationClientSharePublicKey33B64u,`ecdsaCustody.walletKey.derivationClientSharePublicKey33B64u`),participantIds:[1,2],publicCapability:kt(e.publicCapability)},activationReceipt:Dt(n.activationReceipt),runtimePolicyScope:A(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 yu(e){let t=e.raw.sessionKind;if(t===`issued_exact_wallet_session`){let n=P(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(P(e.unlockCredential).walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 session reuses another Wallet Session`);return{sessionKind:t}}function bu(e,n){if(e===null)return null;if(!_(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=A(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=yu({raw:e,walletSessionId:a.value,unlockCredential:n});return{walletId:S(e.walletId,`ed25519Session.walletId`),nearAccountId:S(e.nearAccountId,`ed25519Session.nearAccountId`),nearEd25519SigningKeyId:S(e.nearEd25519SigningKeyId,`ed25519Session.nearEd25519SigningKeyId`),relayerKeyId:S(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 xu(e){let t=e.authorization.record,n=Ot(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 Su(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 Cu(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:ne(e.data.walletSession),operationCredential:P(e.data.operationCredential)};return Su({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 Su({ed25519Session:e.ed25519Session,authorization:i}),i}async function wu(e,t){let n=await Cu(e,t);return xu({ed25519Session:e.ed25519Session,ecdsaSession:e.ecdsaSession,authorization:n}),n}function Tu(e){let t=Vn(e)??Jn(e);return t?{success:!1,kind:`already_committed`,code:t.code,message:t.message,next:t.next,committed:t.committed}:null}async function Eu(e,t,n){try{if(t.type!==`passkey_assertion`)throw Error(`Passkey wallet unlock requires a passkey assertion`);let r=S(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:On(i),ed25519SessionRequest:t.ed25519SessionRequest,...a?{expected_origin:a}:{},...t.ecdsaSessionPolicy?{ecdsaSessionPolicy:Et(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=_(u)?u:{};if(!l.ok)return Tu(d)||{success:!1,error:typeof d.message==`string`?d.message:`HTTP ${l.status}`};if(d.ok!==!0)return Tu(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=bu(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=gu(d.walletCustody),h,g,v,y;if(f){if(d.ecdsaSession===void 0)throw Error(`Wallet unlock omitted the requested ECDSA Wallet Session activation`);if(h=_(d.ecdsaSession)&&d.ecdsaSession.kind===`router_ab_ecdsa_credential_free_session_activated_v1`?Tt(d.ecdsaSession):Lt(d.ecdsaSession),d.ecdsaActivationReceipt===void 0||d.ecdsaCustody===void 0)throw Error(`Wallet unlock omitted ECDSA custody continuity`);if(v=Dt(d.ecdsaActivationReceipt),y=vu(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 wu({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 Cu({relayServerUrl:e,data:d,ed25519Session:p},n));if(h&&v&&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:v,ecdsaCustody:y,ed25519Session:p,walletCustody:m,walletSessionAuthorization:g}}return{success:!0,ecdsaSession:h,ecdsaActivationReceipt:v,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 Du(e,t){try{let n=S(t.challengeId,`challengeId`),r=String(t.expected_origin||``).trim(),i={unlockBackend:`passkey`,challengeId:n,webauthn_authentication:On(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=_(o)?o:{};if(!a.ok||c.ok!==!0)return Tu(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=bu(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:ne(c.walletSession),operationCredential:P(c.operationCredential),ed25519Session:l}}catch(e){return{success:!1,error:be(e)||`Failed to verify linked passkey Wallet Session`}}}function Ou(e){let t=c(e);if(!t.ok)throw Error(`ECDSA registration recovery could not create a session id`);return t.value}function ku(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 Au(e){return Et({kind:`router_ab_ecdsa_post_registration_session_activation_policy_v1`,key_handle:e.keyHandle,session_policy:{threshold_session_id:Ou(hr(`threshold-ecdsa-registration-recovery`)),wallet_session_mint_id:ku(hr(`wallet-session-mint`)),ttl_ms:e.sessionPolicy.ttlMs,remaining_uses:e.sessionPolicy.unlockRemainingUses,runtime_policy_scope:e.runtimePolicyScope}})}async function ju(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=C(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:g(n.challengeId,`Passkey unlock challenge ID`),challengeB64u:g(n.challengeB64u,`Passkey unlock challenge`)}}function Mu(e){return e===`ble`||e===`hybrid`||e===`internal`||e===`nfc`||e===`usb`}function Nu(e,t){return{id:e,type:`public-key`,transports:t.filter(Mu)}}function Pu(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||!mt(e.session.public_capability,e.walletKey.publicCapability))throw Error(`ECDSA registration unlock did not issue the exact Wallet Session`)}function Fu(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||!mt(n.walletKey.publicCapability,i.publicCapability)||!Ct(n.activationReceipt,e.response.ecdsa.activation))throw Error(`ECDSA registration unlock returned different custody continuity`)}}function Iu(e){new Uint8Array(e).fill(0)}async function Lu(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`);Cl(e.onEvent,String(e.pending.walletId),{phase:en.STEP_03_PASSKEY_CHALLENGE_STARTED,status:`running`,authMethod:`passkey`});let r=await ju({relayerUrl:e.relayerUrl,walletId:String(e.pending.walletId),rpId:e.pending.auth.rpId});Cl(e.onEvent,String(e.pending.walletId),{phase:en.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:[Nu(e.pending.auth.credentialIdB64u,e.pending.auth.transports)],includeSecondPrfOutput:!0});if(cr(i)!==e.pending.auth.credentialIdB64u)throw Error(`ECDSA registration unlock returned a different Passkey credential`);Cl(e.onEvent,String(e.pending.walletId),{phase:en.STEP_03_PASSKEY_PROMPT_SUCCEEDED,status:`succeeded`,authMethod:`passkey`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let a=ur(i,`ECDSA registration recovery`),o=await Eu(e.relayerUrl,{type:`passkey_assertion`,challengeId:r.challengeId,walletId:String(e.pending.walletId),webauthn_authentication:i,ed25519SessionRequest:{kind:`not_requested`},expected_origin:n,ecdsaSessionPolicy:Au({keyHandle:t.keyHandle,sessionPolicy:e.sessionPolicy,runtimePolicyScope:nl(e.response).ecdsa.runtimePolicyScope})},new Cn);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`);Pu({pending:e.pending,response:e.response,session:o.ecdsaSession,walletKey:t}),Fu({pending:e.pending,response:e.response,walletKeys:e.walletKeys,signers:o.ecdsaCustody.signers});let s=Uint8Array.from(L(a)).buffer;try{let n=await e.signingSurface.rejoinWalletCustodyEvmFamilyKeySet({walletId:String(e.pending.walletId),custodyJson:Dl(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{Iu(s)}}async function Ru(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=nl(e.response).ecdsa.runtimePolicyScope,r=await nu({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:Yl({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:Au({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 Pu({pending:e.pending,response:e.response,session:r.ecdsaSession,walletKey:t}),Fu({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 zu(e){switch(e.exactMethod.kind){case`passkey`:return await Lu({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 Ru({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 Bu={listPendingWalletRegistrationCommits:Vu,completeWalletRegistrationNearProvisioning:Un,publishPendingWalletRegistrationCommit:Hu};async function Vu(){return await B.initialize(),await B.listPendingWalletRegistrationCommits()}async function Hu(e){return await B.publishPendingWalletRegistrationCommit(e)}function Uu(e){return e instanceof Error?e:Error(String(e||`pending registration replay failed`))}function Wu(e){return e.operation===`near_provisioning`&&e.phase===`joined`}function Gu(e,t){let n=e.localMaterial.ed25519.metadata,r=e.localMaterial.ed25519.localMaterial;return{binding:{kind:An,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 Ku(e){let t=L(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(Xc({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 Zc({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`);ln(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function Ju(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 Yu(e,t){Ju(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 Xu(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,Ku(e)),t}function Zu(e,t){let n=Xu(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 Yu(e,n),n}async function Qu(e,t){let n=Ku(e),r={walletId:e.walletId,nearAccountId:Xe(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:Gu(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 jn({...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=_t(t.authority);if(!i)throw Error(`pending Email OTP registration replay returned an invalid authority`);return await Nn({...r,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:i})}function $u(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 ed(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 td(e,t){return{relayerUrl:e,registrationCeremonyId:t.registrationCeremonyId,signedSetup:t.signedSetup,idempotencyKey:t.idempotencyKey,ed25519:{activationReference:t.localMaterial.ed25519.activationReference},auth:ed(t),walletCustodyCommit:t.localMaterial.custodyCommit}}async function nd(e){let t=td(e.relayerUrl,e.pending),n=await e.ports.completeWalletRegistrationNearProvisioning(t);return Zu(e.pending,n)}async function rd(e){let t=await Un({...td(e.relayerUrl,e.pending),headers:F(e.operationCredential)}),n=Zu(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=ct({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(/\/$/,``)}${tt}`,{method:`POST`,headers:{...F(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=En(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||I(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:ca({material:Gu(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:I(Uint8Array.from(u.activationTranscript)),activationCapabilityBindingB64u:I(Uint8Array.from(c.activeCapabilityBinding))}})},admissionRequest:u.admissionRequest,admissionReceipt:u.admissionReceipt}}async function id(e){let t=await nd(e),n=await Qu(e.pending,t);return await e.ports.publishPendingWalletRegistrationCommit($u(e.pending,t,n)),{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId}}async function ad(e){let t=e.ports||Bu,n=await t.listPendingWalletRegistrationCommits(),r=[];for(let i of n){if(el(i)||tl(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(Wu(i))try{r.push(await id({relayerUrl:e.relayerUrl,pending:i,ports:t}))}catch(e){r.push({kind:`failed`,registrationCeremonyId:i.registrationCeremonyId,error:Uu(e)})}}return r}const od={activateWalletRegistration:Hn,publishPendingWalletRegistrationCommit:Hu,unlockPendingEcdsaRegistration:zu};async function sd(e){await B.initialize();let t=null;for(let n of await B.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(!el(t)&&!tl(t))throw Error(`pending registration commit is not ECDSA-enabled`);return t}async function cd(e){if(e.pending.auth.kind!==e.exactMethod.kind)throw Error(`pending registration requires its exact authentication method`);return await Sl({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,pending:e.pending,exactMethod:e.exactMethod,signingSurface:e.signingSurface,ports:od,nearContext:e.nearContext,nearCompletion:e.nearCompletion,onEvent:e.onEvent})}async function ld(e){let t=performance.now();gr(`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);gr(`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{gr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:`failed`,reason:`unexpected_error`,durationMs:performance.now()-t})}}const ud=new Map,dd=new Set;function fd(e,t){for(let n of dd)try{n(e,t)}catch{}}function pd(e,t){let n=String(e),r=ud.get(n);if(r)return r;let i={state:{status:`near_pending`,updatedAtMs:t},inFlight:null};return ud.set(n,i),i}function md(e){return ud.get(String(e))?.state??null}async function hd(e){let t=ud.get(String(e));return t?t.inFlight?await t.inFlight:t.state:null}function gd(e,t){let n=pd(e,t.updatedAtMs);n.state.status===`near_ready`&&t.status!==`near_ready`||(n.state=t,fd(e,t))}function _d(e){return dd.add(e),()=>{dd.delete(e)}}function vd(e){let t=pd(e.walletId,e.nowMs());if(t.inFlight)return t.inFlight;if(t.state.status===`near_ready`)return Promise.resolve(t.state);gd(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,gd(e.walletId,n),n));return t.inFlight=n,n}function yd(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 bd(e){let t=(await B.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 xd(e){let t=await bd(e);return await gt({authority:{walletId:t.walletId,factor:{kind:`passkey`,credentialIdB64u:t.credentialIdB64u},verifier:{kind:`webauthn`,rpId:t.rpId},bindingId:t.walletAuthMethodId}})}const Sd=[`walletId`,`envelopeId`,`factor`,`envelopeRevision`,`binding`,`ownership`];function Cd(e){let t=wd(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=je({kind:Fe,envelopeId:t.envelopeId,walletId:t.walletId,binding:t.binding,factor:t.factor,ownership:De(t.ownership,`recoveryReplacementEnvelope.binding.ownership`),envelopeVersion:Fe,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 wd(e){let t;try{t=JSON.parse(e)}catch{throw Error(`recovery replacement envelope binding is not JSON`)}let n=C(t,`recoveryReplacementEnvelope.binding`);return O(n,Sd,`recoveryReplacementEnvelope.binding`),n}const Td=`passkeyCustodyEnvelopeCacheV1`,Ed=`passkey_custody_envelope_cache_v1`;let Dd={kind:`unconfigured`};const Od=new Map;function kd(e){throw Error(`unknown passkey custody session cache persistence state: ${String(e)}`)}function Ad(){switch(Dd.kind){case`configured`:return Dd.persistence;case`unconfigured`:throw Error(`passkey custody session cache persistence is not configured`);default:return kd(Dd)}}function jd(e){Dd={kind:`configured`,persistence:e}}function Md(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 Nd(){return{kind:Ed,envelopes:[]}}function Pd(e){if(e==null)return Nd();if(typeof e!=`object`||Array.isArray(e))throw Error(`passkey custody envelope cache is invalid`);let t=e;if(t.kind!==Ed||!Array.isArray(t.envelopes))throw Error(`passkey custody envelope cache has an invalid shape`);return{kind:Ed,envelopes:t.envelopes.map(e=>{let t=je(e);if(!Ae(t.binding))throw Error(`generic passkey custody cache cannot contain an Ed25519 export root`);return t})}}async function Fd(){return Pd(await Ad().readCacheEntry(Td))}async function Id(e){await Ad().writeCacheEntry(Td,e)}async function Ld(e){if(e.envelope.lifecycle.state!==`active`)throw Error(`passkey custody session envelope is not active`);if(!Ae(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=Md(String(e.walletId),String(e.credentialIdB64u));Od.set(t,e.envelope);let n=(await Fd()).envelopes.filter(e=>e.factor.kind!==`passkey`||Md(String(e.walletId),String(e.factor.credentialIdB64u))!==t);n.push(e.envelope),await Id({kind:Ed,envelopes:n.slice(-32)})}async function Rd(e){let t=Md(String(e.walletId),String(e.credentialIdB64u)),n=Od.get(t);if(n)return n;let r=(await Fd()).envelopes.find(e=>e.lifecycle.state===`active`&&e.factor.kind===`passkey`&&Md(String(e.walletId),String(e.factor.credentialIdB64u))===t);return r?(Od.set(t,r),r):null}function zd(e){return Math.max(0,Math.round(performance.now()-e))}function Bd(){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 Vd(e){let t=performance.now(),n=ur(e.credential,`Passkey registration authority`),r=zd(t),i=performance.now(),a=Dn(e.credential),o=zd(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 Hd(e){let t=performance.now();return Vd({credential:await e,diagnostics:Bd(),requestConfirmationMs:zd(t)})}async function Ud(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=zd(t),i=n.registrationDiagnostics??Bd();return Vd({credential:n.credential,diagnostics:i,requestConfirmationMs:r})}function Wd(e){let t=e.trim();if(!t)throw Error(`Registration finalize idempotency key is required`);return t}function Gd(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=R(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 Kd(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`,...Gd(t)}}function qd(e){let t=Xd(e,`wallet/email-otp/challenge signerSelection`);if(t.kind===`ed25519_only`)return{kind:`ed25519_only`,...Gd(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:A(t.runtimePolicyScope),ed25519:Kd(t.ed25519)}}var Jd=class extends Error{code;status;retryAfterMs;resetAtMs;constructor(e){super(e.message),this.name=`EmailOtpRouteError`;let t=Zd(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 Yd(e){let t=e||globalThis.fetch;if(typeof t!=`function`)throw Error(`fetch is unavailable in this runtime`);return t}function Xd(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} returned invalid JSON`);return e}function Z(e,t){return S(e,t)}function Zd(e){return h(e)}function Qd(e){let t={"Content-Type":`application/json`},n=String(e.publishableKey||``).trim();return n&&(t.Authorization=`Bearer ${n}`),t}function $d(e){return e.routeFamily===`registration`?Gl({routeFamily:`registration`,operation:Se}):Gl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function ef(e){let t=Zd(e.challenge.action);if(t&&t!==e.expectedAction)throw Error(`${e.context} returned ${t}; expected ${e.expectedAction}`)}async function tf(e){let t=await Yd(e.fetchImpl)(e.url,{method:`POST`,headers:Qd({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=Xd(r,e.url);if(!t.ok||i.ok===!1)throw new Jd({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 nf(e){if(e.restartRegistrationOffer===!0&&e.accountMode!==`register`)throw Error(`restartRegistrationOffer is only valid with register account mode`);let t=await tf({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=Zd(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=Xd(t.offer,`auth/google/verify offer`),c=(Array.isArray(o.candidates)?o.candidates:[]).map(rf),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:af(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 rf(e){let t=Xd(e,`auth/google/verify offer candidate`);return{candidateId:Z(t.candidateId,`offer candidate candidateId`),walletId:Z(t.walletId,`offer candidate walletId`)}}function af(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 of(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:$d({routeFamily:`login`,operation:t}),otpChannel:xe,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}});let n=await tf({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=Xd(n.challenge,`wallet/email-otp/challenge`);ef({challenge:r,expectedAction:Te.login,context:`wallet/email-otp/challenge`});let i=yr(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:qd(n.signerSelection)};return Number.isFinite(a)&&(o.expiresAtMs=a),o}async function sf(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:$d({routeFamily:`registration`}),otpChannel:xe}}});let t=await tf({url:s(e.relayUrl,`/wallet/email-otp/registration/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Z(e.walletId,`walletId`),otpChannel:e.otpChannel||`email_otp`}}),n=Xd(t.challenge,`wallet/email-otp/registration/challenge`);ef({challenge:n,expectedAction:Te.registration,context:`wallet/email-otp/registration/challenge`});let r=yr(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 cf(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 lf(e){let t=cf(e.authMethod.email,`email`).toLowerCase(),n=cf(e.authMethod.providerSubject,`providerSubject`),r=cf(e.relayUrl,`relayUrl`),i=cf(e.walletId,`walletId`),a=cf(e.registrationIntentDigestB64u,`registrationIntentDigestB64u`);if(e.authMethod.proofKind===`google_sso_registration`){let r=cf(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:cf(e.authMethod.googleEmailOtpRegistrationOfferId,`googleEmailOtpRegistrationOfferId`),googleEmailOtpRegistrationCandidateId:cf(e.authMethod.googleEmailOtpRegistrationCandidateId,`googleEmailOtpRegistrationCandidateId`),registrationIntentDigestB64u:a},registrationAuthorityId:r,providerSubject:n,email:t}}let o=cf(e.authMethod.otpCode,`otpCode`),s=typeof e.authMethod.challengeId==`string`?e.authMethod.challengeId.trim():``,c=s?null:await sf({relayUrl:r,walletId:i,fetchImpl:e.fetchImpl}),l=s||cf(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 uf(e,t,n){if(e!==t)throw Error(`${n} does not match the verified add-signer intent`)}function df(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 ff(e){let t=x(e.verifiedIntent.addSignerIntentGrant,`add-signer intent grant`);return{routerOrigin:x(e.httpTransport.routerOrigin,`Yao Router origin`),routing:{kind:`discovery`},authorization:{kind:`bearer`,value:`Bearer ${t}`},fetch:e.httpTransport.fetch}}async function pf(e){let t=e.verifiedIntent.intent,n=t.signerSelection.ed25519;uf(String(t.walletId),String(e.verifiedAuthority.walletId),`Passkey authority wallet ID`),uf(e.verifiedIntent.addSignerIntentDigestB64u,e.verifiedAuthority.addSignerIntentDigestB64u,`Passkey authority intent digest`),x(e.verifiedAuthority.credentialIdB64u,`passkey credential ID`);let r=A(t.runtimePolicyScope),i=te(r),a=ot(e.admissionRequest);if(!a.ok)throw Error(a.message);let o=a.value,s=x(e.verifiedIntent.addSignerCeremonyId,`add-signer ceremony ID`);if(uf(o.scope.lifecycle_id,s,`Yao lifecycle ID`),uf(o.scope.threshold_session_id,s,`Yao Threshold Session ID`),uf(o.scope.account_id,String(t.walletId),`Yao account ID`),uf(o.scope.signer_set_id,String(un(n.signerSlot)),`Yao signer-set ID`),uf(o.scope.root_share_epoch,r.signingRootVersion,`Yao root-share epoch`),uf(o.application_binding.wallet_id,String(t.walletId),`Yao application wallet ID`),uf(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`);df(n.participantIds,o.participant_ids);let c=await Ht({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 uf(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:ff(e)}}async function mf(e){let t=await pf(e),n=await new Zi(t.transportConfig).send({kind:`admit`,path:nt,body:t.request});if(!n.ok)throw Error(n.message);let r=st(n.value);if(!r.ok)throw Error(r.message);return{request:t.request,receipt:r.value}}var hf=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 gf(e){return hf.build(e)}const _f=`router_ab_ed25519_yao_active_client_v1`,vf=`chacha20poly1305-hkdf-sha256-prf-first-v1`,yf=(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 bf(e,t){let n=Number(e);if(!Number.isSafeInteger(n)||n<1)throw Error(`${t} must be a positive safe integer`);return n}function xf(e,n){let r=t(e);if(!r.ok)throw Error(`${n}: ${r.error.message}`);return r.value}function Sf(e,t){let n=Q(e,t);if(L(n).length!==32)throw Error(`${t} must encode 32 bytes`);return n}function Cf(e){if(!Array.isArray(e)||e.length!==2)throw Error(`participantIds must contain exactly two entries`);let t=[bf(e[0],`participantIds[0]`),bf(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 wf(e,t){let n=Q(e,t);if(!/^(0|[1-9][0-9]*)$/.test(n)||BigInt(n)>yf)throw Error(`${t} must be a canonical u64`);return n}function Tf(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:xf(e.signingLane.identity.thresholdSessionId,`thresholdSessionId`),signerSlot:bf(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 Ef(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:_f,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:xf(t.scope.threshold_session_id,`thresholdSessionId`),materialActivation:Yn(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:I(t.registeredPublicKey),signingWorkerVerifyingShareB64u:I(t.signingWorkerVerifyingShare),stateEpoch:t.stateEpoch.toString(10),activationTranscriptB64u:I(t.transcript),activationCapabilityBindingB64u:I(Uint8Array.from(t.activeCapabilityBinding))}}function Df(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 Of(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 kf(e){let t=b(e);if(!t||t.kind!==_f)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:_f,walletId:Q(t.walletId,`binding.walletId`),nearAccountId:Q(t.nearAccountId,`binding.nearAccountId`),nearEd25519SigningKeyId:Q(t.nearEd25519SigningKeyId,`binding.nearEd25519SigningKeyId`),signerSlot:bf(t.signerSlot,`binding.signerSlot`),rpId:Q(t.rpId,`binding.rpId`),credentialIdB64u:Q(t.credentialIdB64u,`binding.credentialIdB64u`),lifecycleId:Q(t.lifecycleId,`binding.lifecycleId`),thresholdSessionId:xf(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:Cf(t.participantIds),registeredPublicKeyB64u:Sf(t.registeredPublicKeyB64u,`binding.registeredPublicKeyB64u`),signingWorkerVerifyingShareB64u:Sf(t.signingWorkerVerifyingShareB64u,`binding.signingWorkerVerifyingShareB64u`),stateEpoch:wf(t.stateEpoch,`binding.stateEpoch`),activationTranscriptB64u:Sf(t.activationTranscriptB64u,`binding.activationTranscriptB64u`),activationCapabilityBindingB64u:Sf(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 Af(e,t){let n=kf(e);return Of(n,t),n}function jf(e){let t=b(e);if(!t)throw Error(`Stored Ed25519 Client stable server scope is invalid`);let n=R(t.runtimePolicyScope);if(!n)throw Error(`Stored Ed25519 Client server runtime policy scope is invalid`);return{relayerKeyId:Q(t.relayerKeyId,`stableServerScope.relayerKeyId`),participantIds:Cf(t.participantIds),runtimePolicyScope:n,routerAbNormalSigning:se(t.routerAbNormalSigning)}}async function Mf(e){let t=e.stored.payload,n=b(t);if(!n)throw Error(`Stored Ed25519 Client local material locator is invalid`);let r=kf(n.binding),i=`ed25519:${Je(L(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!==_f||e.stored.schemaVersion!==3||e.stored.publicKey!==i||e.stored.signerId!==r.nearEd25519SigningKeyId||a?.encVersion!==1||a.alg!==vf)throw Error(`Stored Ed25519 Client local material record is invalid`);let o=bt({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 gt({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:gf(JSON.stringify([e.stored.profileId,e.stored.signerSlot,e.stored.chainIdKey,e.stored.keyKind,r.materialActivation.activationId])),stableServerScope:jf(n.stableServerScope)}}function Nf(e){let t=b(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!==_f||t?.kind!==_f||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 Pf(e,t){let n=Q(t,`thresholdSessionId`);return{kind:Di,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:At(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:L(e.registeredPublicKeyB64u),signingWorkerVerifyingShare:L(e.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(e.stateEpoch),transcript:L(e.activationTranscriptB64u),activeCapabilityBinding:Array.from(L(e.activationCapabilityBindingB64u)),materialActivation:e.materialActivation}}function Ff(){let e=new Uint8Array(12);return globalThis.crypto.getRandomValues(e),e}function If(e){let t=e.identity,n=e.activeClient.metadata(),r=Ef({identity:t,metadata:n}),i=Ff(),a=e.activeClient.sealLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Df(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:_f,algorithm:`ed25519`,publicKey:`ed25519:${Je(n.registeredPublicKey)}`,signerId:t.nearEd25519SigningKeyId,payload:o,payloadEnvelope:{encVersion:1,alg:vf,nonce:I(a.nonce),ciphertext:I(a.ciphertext),aad:Ke({profileId:e.target.profileId,signerSlot:t.signerSlot,chainIdKey:e.target.chainIdKey,accountAddress:e.target.accountAddress,keyKind:_f,schemaVersion:3,signerId:t.nearEd25519SigningKeyId})},timestamp:Date.now(),schemaVersion:3}}async function Lf(e){let t=await Fn(e.store,{accountRefs:kn(e.identity.nearAccountId)});if(!t)throw Error(`Local Ed25519 material requires a persisted wallet profile`);let n=If({target:t,activeClient:e.activeClient,identity:e.identity,stableServerScope:e.stableServerScope,ownedPasskeyPrfFirst:L(e.passkeyPrfFirstB64u),lifecycle:{kind:`registration_or_rehydration`}});await e.store.storeKeyMaterial(n)}async function Rf(e){let t=Q(e.nearAccountId,`nearAccountId`),n=await Fn(e.store,{accountRefs:kn(t)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,bf(e.signerSlot,`signerSlot`),n.chainIdKey,_f);return r?(Nf({stored:r,target:n,input:e}),{kind:`available`,locator:await Mf({stored:r,target:n,authority:e.authority})}):{kind:`unavailable`}}function zf(e){return e.publicLocator.walletId===e.identity.walletId&&e.publicLocator.nearAccountId===e.identity.nearAccountId&&e.publicLocator.signerSlot===e.identity.signerSlot}async function Bf(e){let t=bt({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 gt({authority:t});if(n.authorityDigest!==e.authority.authorityDigest)throw Error(`Passkey Ed25519 authority does not match the Wallet Session`);return n}function Vf(e){if(!e||e.activeClient.status().kind!==`active`)return{kind:`absent`};let t=Yn(e.activeClient.metadata());return{kind:`live`,runtime:Kn(t),materialActivation:t}}function Hf(e){return{kind:`blocked`,plan:e}}async function Uf(e){let t=await Bf(e),n=e.publicLocator.kind===`available`&&!zf({publicLocator:e.publicLocator,identity:e.identity})?{kind:`conflict`}:e.publicLocator.kind===`available`?{...e.publicLocator,authority:t}:e.publicLocator,r;try{r=await Rf({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 Wf(e,t){let n=qn({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 Gf(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await Uf(e);if(r.kind===`corrupt`)return{kind:`blocked`,plan:Wf(n,{kind:`absent`})};let i=qn({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 Kf(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await Uf(e);if(r.kind===`corrupt`)return Hf(Wf(n,Vf(e.liveMaterial)));let i=e.unlockSource.kind===`available`?{kind:`available`,authority:t}:{kind:`unavailable`},a=qn({publicLocator:n,sealed:r,runtime:Vf(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,Yn(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 qf({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=Yn(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 Hf(a);case`reauthorize_public_anchor`:throw Error(`Near Ed25519 material retirement requires explicit reauthorization`);default:throw Error(`Unsupported Near Ed25519 hydration plan`)}}async function qf(e){let t=e.identity,n=await Fn(e.store,{accountRefs:kn(t.nearAccountId)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,t.signerSlot,n.chainIdKey,_f);return r?Jf({stored:r,target:n,identity:t,ownedPasskeyPrfFirst:L(e.passkeyPrfFirstB64u)}):{kind:`unavailable`}}async function Jf(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!==_f||n.schemaVersion!==3||i?.encVersion!==1||i.alg!==vf)throw Error(`Stored Ed25519 Client material record is invalid`);let a=Af(n.payload?.binding,t),o=Pf(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 ia.initializeBundled()).importLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Df(a),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:L(i.nonce),ciphertext:L(i.ciphertext)},metadata:o})}}function Yf(e){let t=a(e);if(!t.ok)throw Error(t.error.message);return t.value}function Xf(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 Zf(e){let t=e.configs.signing.emailOtp.authPolicy;return ar({policy:t,retention:`session`,reason:`login`,authority:e.authority})}async function Qf(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:Xf({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(!yt(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=_t({...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 Zf({configs:e.configs,authority:i}),authority:i}}default:return q(e.authMethod)}}function $f(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||!Mc(e.session.chainTargets,e.expectedChainTargets))throw Error(`ECDSA registration family session target projection is incomplete`);return kc(e.walletKeys),Ac({session:e.session,walletKeys:e.walletKeys}),Vc({session:e.session,walletKeys:e.walletKeys}),{kind:`evm_family_ecdsa`,session:e.session,walletKeys:[t,...n],expectedChainTargets:[r,...i]}}function ep(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 tp(e){return{kind:`registration_persistence_plan_v1`,walletId:e.walletId,auth:e.auth,ecdsa:e.ecdsa,foundingAuthority:e.foundingAuthority,foundingAuthMethod:e.foundingAuthMethod}}function np(e){let t=an(e);if(!t)throw Error(`pending wallet registration commit is invalid`);return t}function rp(e){let t=Ve(e.walletId),r=n(e.walletAuthMethodId);if(!r.ok)throw Error(r.error.message);let i=ip(e.auth),a={kind:`pending_wallet_registration_commit_v1`,registrationCeremonyId:ap(e.registrationCeremonyId,`registrationCeremonyId`),idempotencyKey:ap(e.idempotencyKey,`idempotencyKey`),walletId:t,walletAuthMethodId:r.value,signedSetup:ap(e.signedSetup,`signedSetup`),auth:i,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs};if(e.operation===`registration_activate`)return np({...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 np({...a,operation:e.operation,phase:`joined`,completion:e.completion,signerPlanKind:e.signerPlanKind,localMaterial:e.localMaterial})}function ip(e){if(e.kind===`passkey`){let t=Yf(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:ap(e.enrollment.enrollmentSealKeyVersion,`enrollment.enrollmentSealKeyVersion`),serverSealedFactorCiphertextB64u:ap(e.enrollment.serverSealedFactorCiphertextB64u,`enrollment.serverSealedFactorCiphertextB64u`),clientUnlockPublicKeyB64u:ap(e.enrollment.clientUnlockPublicKeyB64u,`enrollment.clientUnlockPublicKeyB64u`),unlockKeyVersion:ap(e.enrollment.unlockKeyVersion,`enrollment.unlockKeyVersion`)}}}function ap(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 op(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`,ka(t))}}async function sp(e){if(e.plan.auth.kind===`passkey`){await e.context.signingEngine.finalizeWalletEcdsaRegistration({walletId:e.plan.walletId,rpId:Yf(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 cp(e){let t=await op(e),n=performance.now();try{if(await sp({context:e.context,plan:e.plan,walletKeys:t}),await B.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 B.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`,ka(n))}await br(Sn,e.plan.ecdsa.session.registrationEstablishedSession)}function lp(e){return cp.bind(void 0,e)}async function up(e){await e.registrationTiming.measure(`ecdsaRegistrationPersistenceMs`,lp(e))}var dp=e({REGISTRATION_TIMING_LABEL:()=>pa,addSigner:()=>Oh,cancelHostedPasskeyRegistration:()=>Qp,prepareHostedPasskeyRegistration:()=>Zp,registerPreparedHostedPasskeyRegistration:()=>em,registerWallet:()=>hh,resumeNearRegistrationAfterUnlock:()=>qm,startHostedPasskeyRegistrationCredential:()=>$p});async function fp(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 mp({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 dr.write({walletId:t,recoveryCodes:r});default:throw Error(`Wallet recovery-code backup result is invalid`)}}async function pp(e,t,n,r,i){e.value=await fp(t,n,r,i)}async function mp(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 lr(e.request,e.context.signingEngine.getWalletIframeSurfaceMeasurementBinding());case`custom_handler`:return await e.backup.handler(e.request);default:return q(e.backup)}}function hp(e){e.byteLength>0&&new Uint8Array(e).fill(0)}function gp(e){let t=e.established.metadata;return{binding:{kind:An,applicationBindingDigestB64u:e.established.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:I(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:I(t.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:e.established.localMaterial.b64u,nonceB64u:e.established.localMaterial.nonceB64u}}}function _p(e){let t=e.metadata;return{materialActivation:Yn(t),registeredPublicKeyB64u:I(t.registeredPublicKey),signingWorkerVerifyingShareB64u:I(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 vp(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 yp(e){let t=e.commit.establishedCustody;if(!t)throw Error(`Passkey registration custody commit is missing its established envelope`);return Cd({expectedWalletId:e.walletId,replacement:t,activatedAtMs:e.activatedAtMs})}async function bp(e){await e.signingEngine.establishUnlockedWalletEd25519ExportRootCapabilityV1({existingEnvelope:yp({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 xp(e){try{await wn(Tn(e.context.signingEngine.getSignerWorkerContext()),{existingEnvelope:yp({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 Sp(e){let t=yp(e);if(t.factor.kind!==`passkey`)throw Error(`Passkey registration custody commit has a non-passkey factor`);await Ld({walletId:e.walletId,credentialIdB64u:t.factor.credentialIdB64u,envelope:t})}function Cp(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:et,session:{walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authorityScope:{kind:`email_otp`,provider:nr(e.authContext),providerUserId:rr(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 wp=Symbol(`hostedPasskeyRegistrationPrepared`),Tp=new WeakMap;function Ep(e){let t=pn(e);if(!t.ok)throw Error(t.message);return t.value}function Dp(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 Op(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 kp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`near_ed25519`:return t.kind===`near_ed25519`&&Op(e.accountProvisioning,t.accountProvisioning)&&e.signerSlot===t.signerSlot&&Dp(e.participantIds,t.participantIds)&&e.derivationVersion===t.derivationVersion;case`evm_family_ecdsa`:return t.kind===`evm_family_ecdsa`&&Dp(e.participantIds,t.participantIds)&&gn(e.chainTargets)===gn(t.chainTargets);default:return q(e)}}function Ap(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||!kp(r,i))return!1}return!0}function jp(e){return e.signingEngine.warmCriticalResources.bind(e.signingEngine,{kind:`none`})}function Mp(){return Promise.resolve(Ka())}function Np(e){return e.signers.some(e=>e.kind===`evm_family_ecdsa`)}function Pp(e){return e.authMethod.kind!==`email_otp`||!Fr(e.signerSelection)?Mp:Ip.bind(void 0,{prewarm:e.context.signingEngine.prewarmEmailOtpYao.bind(e.context.signingEngine)})}function Fp(e,t){let n=ka(t);return{kind:`failed`,elapsedMs:n,workerPrewarmMs:n,yaoWasmInitMs:0,failureStage:`worker_ready`}}function Ip(e){let t=performance.now();return e.prewarm().catch(e=>Fp(e,t))}function Lp(e){let[t,n]=e;return{kind:`completed`,diagnostics:{...t,emailOtpWorkerPrewarmMs:n.workerPrewarmMs,emailOtpYaoWasmInitMs:n.yaoWasmInitMs,emailOtpYaoPrewarm:n}}}function Rp(e){return{kind:`failed`,error:e}}function zp(e){Rn({relayerUrl:e.relayerUrl,nearEd25519:e.signerSelection.signers.some(e=>e.kind===`near_ed25519`),evmFamilyEcdsa:Np(e.signerSelection)}),Fr(e.signerSelection)&&Uc(e.authMethod,e.context.signingEngine.prewarmNearSigner.bind(e.context.signingEngine));let t=e.recorder.measure(`registrationWarmupMs`,jp(e.context)),n=e.recorder.measure(`registrationWarmupEmailOtpYaoWasmInitMs`,Pp({context:e.context,authMethod:e.authMethod,signerSelection:e.signerSelection}));return Np(e.signerSelection)&&e.context.signingEngine.prewarmEcdsaRegistrationCrypto?.().catch(()=>{}),Promise.all([t,n]).then(Lp,Rp)}function Bp(e){e.warmup.then(t=>{t.kind===`completed`&&e.recorder.captureWarmupDiagnostics(t.diagnostics)})}function Vp(e){return hn(Ep(e))?.signerSlot??1}async function Hp(e){return e.passkeyExecution?.kind===`use_hosted_preparation`?await e.passkeyExecution.authority:await Ud({context:e.context,walletId:e.walletId,signerSlot:e.signerSlot,registrationIntentDigestB64u:e.registrationIntentDigestB64u,options:e.options,confirmationConfigOverride:e.confirmationConfigOverride})}function Up(e){if(e[wp]!==!0)throw Error(`Invalid hosted passkey registration preparation`);let t=Tp.get(e);if(!t)throw Error(`Hosted passkey registration preparation is unknown`);return t}function Wp(e){if(e.lifecycle!==`ready`)throw Error(`Hosted passkey registration preparation is no longer usable`);if(Date.now()>=e.prepared.expiresAtMs)throw Qp(e.prepared),Error(`Hosted passkey registration preparation expired`);if(e.controller.signal.aborted)throw Error(`Hosted passkey registration preparation was cancelled`);if(!_r.isLiveReservation({reservation:e.prepared.reservation,owner:e.prepared.owner}))throw Qp(e.prepared),Error(`Hosted passkey registration prompt reservation is no longer active`)}function Gp(e){return v({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:e.walletId,signerSlot:e.signerSlot,rpId:e.rpId,challengeB64u:e.challengeB64u})}function Kp(){return Error(`Hosted passkey registration preparation was cancelled`)}function qp(e){if(e.aborted)throw Kp()}function Jp(e){let t=e.cancellation.signal;return qp(t),new Promise((n,r)=>{let i=!1,a=()=>{c(Kp())},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 Yp(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=Om(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 Xp(e){e.ceremony.kind!==`not_required`&&Nc({context:e.context,ceremonyId:e.ceremony.ceremonyId})}async function Zp(e){let t=e.authMethod,n=Yf(String(t.rpId));if(Yf(String(e.context.signingEngine.getRpId()||``))!==n)throw Error(`Hosted passkey registration rpId does not match the wallet runtime`);let r=Vp(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&&Qp(c)},f=()=>{e.cancellation.signal.removeEventListener(`abort`,d)};qp(e.cancellation.signal),e.cancellation.signal.addEventListener(`abort`,d,{once:!0});let p=new Ga(performance.now());try{let i=await Jp({operation:xm({context:e.context,authMethod:t,wallet:e.wallet,signerSelection:e.signerSelection,recorder:p}),cancellation:e.cancellation}),d=Yc(i.setup.intent);if(String(d.authMethod.rpId)!==String(n)||!Ap(d.signerSelection,e.signerSelection))throw Error(`Hosted passkey registration setup changed its authority binding`);let m=Ut(String(d.walletId)),h=String(i.setup.registrationIntentDigestB64u||``).trim();if(!h)throw Error(`Hosted passkey registration setup returned no challenge`);if(r!==Vp(e.signerSelection))throw Error(`Hosted passkey registration signer slot changed during preparation`);if(u=Yp({context:e.context,setup:i.setup}),Bp({recorder:p,warmup:i.registrationWarmup}),Date.now()>=a)throw Error(`Hosted passkey registration preparation expired before reservation`);let g=await _r.reserveRegistrationPrompt({owner:o,expiresAtMs:a,cancellation:e.cancellation});l=g;let _=Gp({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},[wp]:!0});return Tp.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(),Xp({context:e.context,ceremony:u}),c?Qp(c):l&&_r.releaseReservation(l),t}}function Qp(e){let t=Up(e);t.lifecycle===`finished`||t.lifecycle===`cancelled`||(t.lifecycle=`cancelled`,t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,Xp({context:t.context,ceremony:t.ecdsaClientCeremony}),_r.releaseReservation(e.reservation))}function $p(e){let t=Up(e);Wp(t),t.lifecycle=`consuming`;let n=Hd(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`)},()=>{Qp(e)}),n}async function em(e){let t=Up(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 ph({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`,Xp({context:t.context,ceremony:t.ecdsaClientCeremony}),t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,_r.releaseReservation(e.prepared.reservation)}}async function tm(e){return Wd(`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 nm(e){let t=globalThis.crypto;if(t&&typeof t.randomUUID==`function`)return Wd(`${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),Wd(`${e}:${[...n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`)}function rm(e){return e.recorder.measure(`emailOtpEnrollmentMaterialMs`,()=>am({context:e.context,authMethod:e.authMethod,relayerUrl:e.relayerUrl,walletId:e.walletId,providerSubject:e.providerSubject,clientSecret32:e.clientSecret32}))}function im(e){if(e.emailOtpSessionHandle.kind!==`not_requested`)throw Error(`Strict ECDSA registration received obsolete Email OTP root-share material`)}async function am(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 im(t),t}finally{e.clientSecret32.fill(0)}}function om(e){let t=e.event.authMethod,n=sm(e.accountId);return $t({...e.event,flowId:`registration:${t}:${n}`,accountId:n,authMethod:t})}function sm(e){let t=String(e||``).trim();if(!t)throw Error(`Registration event account id is required`);return t}function cm(e){return _(e)&&`code`in e?String(e.code||``).trim():``}function lm(e,t){return Object.assign(Error(e),t?{code:t}:{})}function um(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?.(om({accountId:t,event:n}))}function dm(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 fm(e){let t=String(e||``).trim().toLowerCase();if(!t)throw Error(`Email OTP registration auth context requires email`);return y(t)}function pm(e){switch(e.proofKind){case`otp_challenge`:return`email`;case`google_sso_registration`:return`google`;default:return q(e)}}function mm(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 hm(e){let t=performance.now();try{let n=await Qc(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 K({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`success`}),{deferredNear:e.deferredNear,admissionReceipt:n}}catch(n){throw K({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`failure`}),n}}function gm(e){if(!e)throw Error(`Mixed registration did not start NEAR admission`);return e}function _m(e,t,n){switch(e.kind){case`passkey`:return{auth:{kind:`passkey`,rpId:St(e.rpId),credentialIdB64u:t}};case`email_otp`:return{auth:{kind:`email_otp`,providerSubjectId:rr(e.emailOtpAuthContext)},remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs};default:return q(e)}}async function vm(e){let t=wt(v({operation:`wallet_registration_activate_v2`,registrationCeremonyId:e.registrationCeremonyId,activationCorrelationId:e.activationCorrelationId,idempotencyKey:e.idempotencyKey,publicFacts:e.publicFacts}));return{canonicalRequest:t,requestDigest:_e(I(await D(String(t))))}}async function ym(e){let t={authority:e.materialAuthority,targetMemberships:e.chainTargets,evmFamilySigningKeySlotId:It(e.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:qt(e.ecdsaPrepare.prepare.ecdsaThresholdKeyId),signingRootId:Ft(e.ecdsaPrepare.prepare.signingRootId),signingRootVersion:Mt(e.ecdsaPrepare.prepare.signingRootVersion),runtimePolicyScope:e.ecdsaPrepare.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Gt(e.clientActivation.derivationClientSharePublicKey33B64u),participantIds:[Rt(e.ecdsaPrepare.prepare.participantIds[0]),Rt(e.ecdsaPrepare.prepare.participantIds[1])],relayerKeyId:Kt(e.ecdsaPrepare.prepare.relayerKeyId),bindingDigest:Zt(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 bm(e){let t=L(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 xm(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=zp({recorder:e.recorder,context:e.context,relayerUrl:t,authMethod:e.authMethod,signerSelection:e.signerSelection}),o=await e.recorder.measure(`registrationIntentMs`,()=>Ln({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 lm(o.message,o.code);return{relayerUrl:t,setup:o,registrationWarmup:a}}async function Sm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return await xm({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=Up(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=Yc(n.setup.intent),i=String(n.setup.registrationIntentDigestB64u||``).trim(),a=Vp(e.signerSelection);if(Gp({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:Ut(String(r.walletId)),signerSlot:a,rpId:Yf(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 Cm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return{kind:`create_after_authority`};let t=Up(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 wm(e){return await e}function Tm(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 wm.bind(void 0,e.clientCeremony.operation);default:return q(e.clientCeremony)}}async function Em(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 Lc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientCreateMs`,operation:Tm({context:e.context,ceremonyId:r,registration:e.ecdsaPrepare.strictRegistration,clientCeremony:e.clientCeremony})}),s=await Lc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:zn.bind(void 0,{relayerUrl:e.relayerUrl,headers:Tc(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,ecdsa:{kind:`router_ab_ecdsa_registration_v1`,strictRegistration:o.registrationRequest,requestDigestB64u:o.registrationRequestDigestB64u},...mm(e.authority),onServerTiming:t=>ha(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?hm({home:e.home,relayerUrl:e.relayerUrl,registrationCeremonyId:r,signedSetup:e.signedSetup,deferredNear:c,traceContext:e.traceContext}):null;l?.catch(Bm);let u=await Lc({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=jt({registrationRequestDigestB64u:u.registrationRequestDigestB64u,proofTranscriptDigestB64u:u.proofTranscriptDigestB64u,contextBinding32B64u:t.contextBinding32B64u,derivationClientSharePublicKey33B64u:t.clientSharePublicKey33B64u,clientShareRetryCounter:t.clientShareRetryCounter,participantId:1}),o=await vm({registrationCeremonyId:r,activationCorrelationId:i,idempotencyKey:e.idempotencyKey,publicFacts:n}),s=Rl(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:gm(l),establishedEvmCustodyCommit:t.preActivationCommitPayload}),a.catch(Bm)}else await e.persistPendingCommit({signerPlanKind:e.signerPlanKind,localMaterial:{keyFamilies:[`ecdsa_secp256k1`],custodyCommit:s,ecdsa:p},emailOtpEnrollment:d.enrollment});let m=await ym({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 Lc({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Hn.bind(void 0,{relayerUrl:e.relayerUrl,headers:Tc(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=>ha(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:bm(_.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=Pc({prepare:e.ecdsaPrepare.prepare,verified:g.clientBootstrap}),y=$n({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 gt({authority:_.authority}),materialActivation:b.materialActivation,clientPublicFacts:b.publicFacts,publicCapability:b.publicCapability,registrationEstablishedSession:Oc(_.registrationEstablishedSession)},activated:_,deferredNear:c,activateEmailOtp:{enrollment:d.enrollment},walletCustody:g,deferredNearCustodyWork:a}}catch(t){throw Lm(a),await Nc({context:e.context,ceremonyId:r}),t}}function Dm(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 Om(e){let[t,...n]=e.chainTargets;if(!t)throw Error(`Registration setup ECDSA chain targets are required`);return{kind:e.kind,chainTargets:[Dm(t),...n.map(Dm)],prepare:e.prepare,strictRegistration:e.strictRegistration}}function km(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 Am(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 jm(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:Mm(e.emailOtpEnrollment)}}function Mm(e){if(!e)throw Error(`Email OTP registration has no enrollment material for pending recovery`);return e}async function Nm(e){let t=Date.now(),n=rp({...e,createdAtMs:t,updatedAtMs:t});return await B.putPendingWalletRegistrationCommit(n),n}function Pm(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 Fm(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 Pn({kind:`passkey`,walletId:e.walletId,rpId:Yf(e.auth.rpId),credentialIdB64u:n,credentialPublicKeyB64u:e.auth.credentialPublicKeyB64u,transports:e.auth.credential.response?.transports??[],walletKeys:t})}return await Pn({kind:`email_otp`,walletId:e.walletId,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:e.auth.authority,walletKeys:t})}async function Im(e){let t=await op({context:e.context,relayerUrl:e.relayerUrl,registrationTiming:e.registrationTiming,plan:e.plan}),n=await Fm({auth:e.plan.auth,walletId:e.plan.walletId,walletKeys:t}),r=e.plan.ecdsa.session.registrationEstablishedSession;await B.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 Lm(e){if(e)try{hp((await e).factorSecret32)}catch{}}function Rm(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 zm(e,t,n){let r=performance.now();await B.advancePendingNearRegistration({expected:e,next:nn(e,t,n)}),Ar(e.registrationCeremonyId,`journal_prepared`,r)}function Bm(){}async function Vm(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 B.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(!lt(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 Um({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:yp({commit:t.establishedEvmCustodyCommit,walletId:r.walletId,activatedAtMs:Date.now()}),factorSecret32:n}}catch(e){throw hp(n),e}finally{K({ceremonyId:e.registrationCeremonyId,stage:`custody_join`,startedAt:r,outcome:i})}}async function Hm(e){return e.pending.phase===`execution_prepared`?e.pending.admissionReceipt:e.admitted?e.admitted:await Qc({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 Um(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 Hm({home:e.home,pending:n,relayerUrl:e.relayerUrl,credential:e.credential,traceContext:e.traceContext,...e.admitted?{admitted:e.admitted}:{}});Ar(n.registrationCeremonyId,`admission`,i);let o=await e.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:e.home,...n.phase===`planned`?{preparation:{kind:`fresh`},beforeRouterRound:zm.bind(void 0,n,a)}:{preparation:{kind:`checkpoint`,checkpointJson:n.checkpointJson}},custodyJson:Dl(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(I(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 B.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=rp({operation:`near_provisioning`,signerPlanKind:`near_ed25519_and_evm_family_ecdsa`,completion:{kind:`encrypted_checkpoint`,prepared:c},registrationCeremonyId:c.registrationCeremonyId,idempotencyKey:await tm({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:_p(o)}}});if(l.operation!==`near_provisioning`||l.phase!==`joined`)throw Error(`Invalid joined NEAR continuation`);return await B.advancePendingNearRegistration({expected:c,next:l}),Ar(n.registrationCeremonyId,`journal_joined`,s),{joined:o,admissionReceipt:a}}function Wm(e){return e.chainTarget}function Gm(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=_t({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:ar({policy:`session`,retention:`session`,reason:`login`,authority:n})}}throw Error(`NEAR continuation requires its founding authentication method`)}async function Km(e){if(await Xm(e.sessionAuthority),e.pending.phase===`joined`&&e.pending.completion.kind===`sealed_material`){let t=await rd({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 Um({home:e.sessionAuthority.operationCredential.home,pending:e.pending,signingEngine:e.context.signingEngine,relayerUrl:e.relayerUrl,credential:e.sessionAuthority.operationCredential.token,traceContext:sn(),factorSecret:e.factorSecret});return{joined:n.joined,admissionReceipt:n.admissionReceipt,admissionRequest:t.admissionRequest,envelope:e.envelope,factorSecret32:e.factorSecret}}async function qm(e){let t=performance.now();try{let n=await B.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 B.getPendingWalletRegistrationCommit({registrationCeremonyId:r.registrationCeremonyId,operation:`registration_activate`}))continue;let n=e.context.configs.network.relayer.url,i=Gm(r,e.factor),a=Km.bind(void 0,{context:e.context,pending:r,envelope:e.custodyEnvelope,relayerUrl:n,sessionAuthority:e.sessionAuthority,factorSecret:e.ownedFactorSecret});await ah({context:e.context,walletId:r.walletId,commit:{context:e.context,registrationTiming:null,registrationStartedAt:t,relayerUrl:n,registrationCeremonyId:r.registrationCeremonyId,signedSetup:r.signedSetup,headers:Tc(),nearCustodyWork:a,sessionAuthority:e.sessionAuthority,expectedChainTargets:Nr(e.context.configs.network.chains).map(Wm),walletId:r.walletId,authMaterial:i}})}}catch(e){console.warn(`[registration] NEAR continuation remains pending`,e instanceof Error?e.message:`continuation failed`)}finally{hp(e.ownedFactorSecret)}}function Jm(e){if(!e)throw Error(`Mixed registration did not start its NEAR custody join`);return e}function Ym(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()||!M(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 Xm(e){let t=await Sn.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 Zm(e){let t=await B.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 Qm(e){let{metadata:t,materialFacts:n}=e,r={materialActivation:Yn(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:I(t.transcript),activationCapabilityBindingB64u:I(Uint8Array.from(t.activeCapabilityBinding))},i=null;try{i=await la({material:e.material,activation:r,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret}),await Lf({store:B,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 Xm(e.sessionAuthority),await e.signingEngine.activateVerifiedNearEd25519YaoMaterial({activeClient:i,facts:{thresholdSessionId:n.identity.thresholdSessionId,signer:ir({walletId:Ve(n.identity.walletId),nearAccountId:Xe(n.identity.nearAccountId),nearEd25519SigningKeyId:Bt(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 Xm(e.sessionAuthority),i=null}catch(e){throw i?.dispose(),e}finally{e.ownedFactorSecret.fill(0)}}async function $m(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{K({ceremonyId:e.ceremonyId,stage:`session_hydration`,startedAt:t,outcome:n})}}async function eh(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{K({ceremonyId:e.ceremonyId,stage:`session_seal_preparation`,startedAt:t,outcome:n})}}function th(e){let n=t(e.thresholdSessionId);if(!n.ok)throw Error(`Invalid admitted NEAR session identity`);let r=nm(`near-session-client-seal`);return{kind:`preparing`,thresholdSessionId:String(n.value),preparationId:r,result:eh({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,input:{preparationId:r,thresholdSessionId:String(n.value),prfFirstB64u:e.prfFirstB64u}})}}async function nh(e){try{await Xm(e.sessionAuthority);let t=await B.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`}:th({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,thresholdSessionId:t.admissionRequest.scope.threshold_session_id,prfFirstB64u:e.prfFirstB64u})}catch{return{kind:`none`}}}function rh(){return null}async function ih(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 nh({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 tm({registrationCeremonyId:e.registrationCeremonyId,activationReference:l}),d=await Zm({registrationCeremonyId:e.registrationCeremonyId,walletId:e.walletId,walletAuthMethodId:String(e.sessionAuthority.record.authMethodId)});await Xm(e.sessionAuthority),t.kind===`passkey`&&o.kind===`none`&&(o=th({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(K({ceremonyId:e.registrationCeremonyId,stage:`session_seal_preparation_wait`,startedAt:t,outcome:n.kind===`completed`?`success`:`failure`}),n.kind===`failed`)throw n.error;await Xm(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,...F(e.sessionAuthority.operationCredential)},idempotencyKey:u,ed25519:{activationReference:l},walletCustodyCommit:s.commitPayload,onServerTiming:ga.bind(void 0,e.registrationTiming)},h;if(f){if(e.authMaterial.kind!==`passkey`)throw Error(`Prepared session sealing requires a passkey authority`);h=await Un({...m,auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:f.thresholdSessionId,ciphertext:f.ciphertext}})}else h=await Un({...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`);K({ceremonyId:e.registrationCeremonyId,stage:`server_finalize`,startedAt:p,outcome:`success`});let _=Ym(e.sessionAuthority,g.registrationEstablishedSession,g.foundingAuthority,g.foundingAuthMethod),v=Xe(g.ed25519.nearAccountId),y=e.authMaterial.kind===`passkey`?e.authMaterial.credentialIdB64u:``;t.kind===`passkey`?Xc({clientPublicKey:c,finalized:g,expectedRpId:t.rpId,expectedWalletId:e.walletId}):Zc({clientPublicKey:c,finalized:g,expectedRegistrationAuthorityId:d.auth.kind===`email_otp`?d.auth.registrationAuthorityId:``,expectedWalletId:e.walletId});let b=Kc({admissionRequest:n.admissionRequest,finalized:g.ed25519,walletId:e.walletId,expectedRuntimePolicyScope:A(g.ed25519.runtimePolicyScope)}),x=s.metadata,S=Yn(x),C=gp({established:s,walletId:String(e.walletId),nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,signerSlot:g.ed25519.signerSlot}),w=performance.now(),T=await Qu(d,g);await Xm(e.sessionAuthority);let E=(await B.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(!E||E.signerSlot!==g.ed25519.signerSlot)throw Error(`Deferred Ed25519 registration persisted a different signer slot`);let D=new Cn;for(let t of e.expectedChainTargets)ld({signingEngine:e.context.signingEngine,walletId:e.walletId,chainTarget:t,trigger:`registration`,statusReads:D});K({ceremonyId:e.registrationCeremonyId,stage:`local_publication`,startedAt:w,outcome:`success`}),await Xm(e.sessionAuthority),e.authMaterial.kind===`passkey`&&_.remainingUses>0&&(a=$m({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,input:$c({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 ee=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,..._m(t,y,_),nearEd25519SigningKeyId:Bt(g.ed25519.nearEd25519SigningKeyId),signerSlot:g.ed25519.signerSlot}),K({ceremonyId:e.registrationCeremonyId,stage:`session_install`,startedAt:ee,outcome:`success`});let O=performance.now();if(t.kind===`email_otp`&&_.remainingUses>0){let r=await Jc({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=Cp({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:rr(t.emailOtpAuthContext),emailHashHex:or(t.emailOtpAuthContext),signerSlot:g.ed25519.signerSlot,expectedOperationalPublicKey:c,expectedThresholdSessionId:b.identity.thresholdSessionId,bootstrap:a,material:C,envelope:sa(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 Qm({signingEngine:e.context.signingEngine,sessionAuthority:e.sessionAuthority,metadata:x,material:C,materialFacts:b,envelope:sa(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 Ld({walletId:String(e.walletId),credentialIdB64u:e.authMaterial.credentialIdB64u,envelope:n.envelope}),K({ceremonyId:e.registrationCeremonyId,stage:`signer_activation`,startedAt:O,outcome:`success`}),await Xm(e.sessionAuthority);let k=performance.now(),te=await a;if(K({ceremonyId:e.registrationCeremonyId,stage:`session_hydration_wait`,startedAt:k,outcome:te.kind===`completed`?`success`:`failure`}),te.kind===`failed`)throw te.error;await Xm(e.sessionAuthority);let j=performance.now();return await B.completePendingNearRegistration({pending:d,walletSession:_.walletSession,operationCredential:_.operationCredential,nearAccountId:String(v)}),K({ceremonyId:e.registrationCeremonyId,stage:`durable_ready`,startedAt:j,outcome:`success`}),r=`success`,{status:`near_ready`,updatedAtMs:Date.now(),nearAccountId:String(v)}}catch(t){let n=await B.getProfile(String(e.walletId)).catch(rh);if(n?.nearProvisioning?.status===`near_ready`)return n.nearProvisioning;let r=oh(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(Bm)),i&&hp(i),K({ceremonyId:e.registrationCeremonyId,stage:`provisioning_total`,startedAt:n,outcome:r}),K({ceremonyId:e.registrationCeremonyId,stage:`registration_total`,startedAt:e.registrationStartedAt,outcome:r})}}async function ah(e){try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_provisioning`})}catch(t){let n=oh(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{}gd(e.walletId,r);return}await vd({walletId:e.walletId,nowMs:Date.now,attempt:ih.bind(void 0,e.commit)})}function oh(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 sh(e){let t=oh(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 gd(e.walletId,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:n,errorCode:t}),{status:`retryable`,error:n,errorCode:t}}async function ch(e){try{return await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_pending`}),gd(e.walletId,{status:`near_pending`,updatedAtMs:Date.now()}),{status:`pending`}}catch(t){return await sh({context:e.context,walletId:e.walletId,error:t})}}async function lh(e){let{context:t,wallet:r,signerSelection:a}=e,o=e.options||{},{onEvent:s,onError:c,afterCall:l}=o,u=performance.now(),d=new Ga(u),f=sn(),p=null,m=null,h=sm(r.kind===`provided`?String(r.walletId):`wallet-registration`);$(s,h,{authMethod:e.authMethod.kind,phase:z.STEP_01_STARTED,status:`started`});try{let c=nm(`wallet-registration-finalize`),h=await Sm({context:t,authMethod:e.authMethod,wallet:r,signerSelection:a,recorder:d,passkeyExecution:e.passkeyExecution});e.authMethod.kind===`email_otp`&&Bp({recorder:d,warmup:h.registrationWarmup});let{relayerUrl:g,setup:_}=h,v=Om(km(_,e.kind).ecdsa),y=Cm({passkeyExecution:e.passkeyExecution,ceremonyId:_.registrationCeremonyId}),b={intent:_.intent,registrationIntentDigestB64u:_.registrationIntentDigestB64u},x=b.intent.walletId,S=sm(String(x)),C=null,w=``,T=``,E=``,D=null,ee=null,O=null,k;if(e.authMethod.kind===`passkey`){$(s,S,{authMethod:e.authMethod.kind,phase:z.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??{}};O=await d.measure(`authProofMs`,()=>Hp({context:t,walletId:x,signerSlot:Am(e),registrationIntentDigestB64u:b.registrationIntentDigestB64u,options:o,confirmationConfigOverride:n,passkeyExecution:e.passkeyExecution})),d.capturePasskeyAuthDiagnostics(O.diagnostics),p=performance.now();let r=i(String(O.credential.rawId||O.credential.id||``).trim());if(!r.ok)throw Error(`passkey credential id ${r.error.message}`);k={kind:`passkey`,webauthnRegistration:O.webauthnRegistration,walletCustodyFactorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ne({rpId:Yf(e.authMethod.rpId),credentialIdB64u:r.value}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId}),walletCustodyFactorSecret:L(O.prfFirstB64u).buffer},$(s,S,{authMethod:e.authMethod.kind,phase:z.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(),ee=r.slice().buffer;let i=await d.measure(`authProofMs`,()=>lf({authMethod:n,relayUrl:g,walletId:String(x),registrationIntentDigestB64u:b.registrationIntentDigestB64u}));C=rm({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=pm(i.proof),k={kind:`email_otp`,emailOtpRegistrationProof:i.proof,walletCustodyFactorSecret:ee}}let A=n(_.walletAuthMethodId);if(!A.ok)throw Error(`Registration setup auth-method identity is invalid: ${A.error.message}`);let te;if(e.authMethod.kind===`passkey`){if(!O)throw Error(`ECDSA registration is missing its verified passkey authority`);te=await gt({authority:{...Wc({walletId:x,rpId:e.authMethod.rpId,credential:O.credential}),bindingId:A.value}})}else{if(!D)throw Error(`Email OTP registration is missing its verified provider`);te=await gt({authority:{...vt({walletId:x,provider:D,providerUserId:E,emailHashHex:await fm(T)}),bindingId:A.value}})}$(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let j={value:e.kind===`near_ed25519_and_evm_family_ecdsa`?k.walletCustodyFactorSecret.slice(0):null},M=null,N={value:null},P;try{P=await d.measure(`ecdsaRegistrationTotalMs`,()=>Em({home:_.home,context:t,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signerPlanKind:e.kind,signedSetup:_.signedSetup,ecdsaPrepare:v,clientCeremony:y,authority:k,materialAuthority:te,idempotencyKey:c,resolveActivateEmailOtp:async()=>{let t=null,n=null;if(e.authMethod.kind===`email_otp`){let e=await Gc({material:C,operation:`activate`});t=e.emailOtpEnrollment??null,n=JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Pe({enrollmentId:e.enrollmentId,enrollmentSealKeyVersion:e.enrollmentSealKeyVersion}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId})}return{enrollment:t,walletCustodyFactorJson:n}},traceContext:f,registrationTiming:d,confirmRecoveryCodesBackedUp:pp.bind(void 0,N,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:jm({authMethod:e.authMethod,passkeyAuthority:O,email:T,registrationAuthorityId:w,providerSubject:E,emailOtpEnrollment:t.emailOtpEnrollment})};if(t.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){let e=Date.now(),r=Pm(rp({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial,createdAtMs:e,updatedAtMs:e})),i=cn(r,t.deferredNear.admissionRequest);await B.putPendingWalletRegistrationCommits([r,i]),M=r;return}M=await Nm({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial})},startDeferredNearCustody:Vm.bind(void 0,{home:_.home,context:t,factorSecretOwner:j,registrationCeremonyId:_.registrationCeremonyId,relayerUrl:g,signedSetup:String(_.signedSetup),traceContext:f})}))}finally{hp(k.walletCustodyFactorSecret),j.value&&=(hp(j.value),null)}if(N.value){let e=P.activated.walletCustody;if(e?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await dr.bindIssuedAtMs(N.value,e.issuedAtMs)}let ne=P.session;if(P.activated.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration activate returned a different signer branch`);let F=ep(P.activated),re=P.activateEmailOtp.enrollment;if(F.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration finalize returned a different signer branch`);if(e.authMethod.kind===`email_otp`&&!Bn(F))throw Error(`Email OTP registration finalize returned a different auth method`);d.captureRouteDiagnostics(F.registrationDiagnostics);let I=F.ecdsa.walletKeys;if(I.length===0)throw Error(`Wallet registration finalize did not return ECDSA wallet keys`);let ie=await Qf({authMethod:e.authMethod,configs:t.configs,walletId:Ve(F.walletId),finalized:F,passkeyAuthority:O,email:T,providerSubject:E,registrationAuthorityId:w}),R=tp({walletId:Ve(F.walletId),auth:ie,foundingAuthority:F.foundingAuthority,foundingAuthMethod:F.foundingAuthMethod,ecdsa:$f({session:ne,walletKeys:I,expectedChainTargets:ne.chainTargets})});$(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`}),$(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let ae=Ve(F.walletId),oe={status:`pending`};e.kind===`near_ed25519_and_evm_family_ecdsa`?(await Im({context:t,relayerUrl:g,registrationTiming:d,pending:Pm(M),plan:R,activated:P.activated}),oe=await ch({context:t,walletId:ae})):await up({context:t,relayerUrl:g,registrationTiming:d,plan:R});let se=Cn.fromRegistration(g,R.ecdsa.session.registrationEstablishedSession);for(let e of ne.chainTargets)ld({signingEngine:t.signingEngine,walletId:ae,chainTarget:e,trigger:`registration`,statusReads:se});let ce=R.ecdsa.walletKeys[0];if(e.authMethod.kind===`passkey`){if(!O)throw Error(`Passkey registration authority was not collected`);let n=R.ecdsa.session.registrationEstablishedSession;try{await bp({signingEngine:t.signingEngine,commit:P.walletCustody.commitPayload,passkeyPrfFirstB64u:O.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 sh({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 xp({context:t,commit:P.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=Rm({auth:R.auth,emailOtpEnrollment:re,passkeyAuthority:O});try{ah({context:t,walletId:ae,commit:{context:t,registrationTiming:d,registrationStartedAt:u,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signedSetup:_.signedSetup,headers:Tc(f),nearCustodyWork:Jm.bind(void 0,P.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=oh(e);oe={status:`retryable`,error:ve(e,`registration`,String(ae)),errorCode:t},gd(ae,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:oe.error,errorCode:t})}}e.kind===`evm_family_ecdsa`&&await B.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:F.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ce.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ce.thresholdEcdsaPublicKeyB64u}],nearProvisioning:oe}:{success:!0,kind:`wallet_registered`,walletId:F.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ce.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ce.thresholdEcdsaPublicKeyB64u}]};if($(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_11_COMPLETED,status:`succeeded`}),p!==null){let e=performance.now();Xa({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-p,traceContext:f}),Xa({callback:o.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:f})}return Ya(qa({recorder:d,authMethod:e.authMethod.kind,signerSet:Da(e.signerPlan)})),mh(e.context,le,e.authMethod.kind),l?.(!0,le),le}catch(t){let n=cm(t),r=ve(t,`registration`,h);p!==null&&Xa({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-p,traceContext:f});let i=lm(r,n);c?.(i),$(s,h,{authMethod:e.authMethod.kind,phase:z.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 Ya(Ja({recorder:d,authMethod:e.authMethod.kind,signerSet:Da(e.signerPlan),errorCode:n||null})),l?.(!1),a}finally{m?.fill(0)}}async function uh(e){let{context:t,options:n}=e,r=sm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),i=new Ga(performance.now()),a=null;$(n.onEvent,r,{authMethod:`email_otp`,phase:z.STEP_01_STARTED,status:`started`});try{let r=await xm({context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:i});Bp({recorder:i,warmup:r.registrationWarmup});let{relayerUrl:o,setup:s}=r,c=s.intent.walletId,l=sm(String(c)),u=await i.measure(`authProofMs`,lf.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=rm({recorder:i,context:t,authMethod:e.authMethod,relayerUrl:o,walletId:String(c),providerSubject:u.providerSubject,clientSecret32:d});$(n.onEvent,l,{authMethod:`email_otp`,phase:z.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let m=await i.measure(`walletRegisterStartMs`,zn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:s.signedSetup,headers:{...Tc(),...N(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 Gc({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:Pe({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{hp(f)}let _=await fp(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 tm({registrationCeremonyId:s.registrationCeremonyId,activationReference:g.activationReference}),b=await Nm({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:_p(g)}}}),x=`ed25519:${Je(g.metadata.registeredPublicKey)}`,S=await i.measure(`walletRegisterFinalizeMs`,Un.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signedSetup:s.signedSetup,headers:{...Tc(),...N(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(!Bn(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 dr.bindIssuedAtMs(_,S.walletCustody.issuedAtMs),S.ed25519.signerSlot!==e.ed25519Selection.signerSlot)throw Error(`Ed25519 Yao finalize returned a different signer slot`);let C=Oc(S.registrationEstablishedSession);Zc({clientPublicKey:x,finalized:S,expectedRegistrationAuthorityId:u.registrationAuthorityId,expectedWalletId:c});let w=await Qf({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:z.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`}),$(n.onEvent,l,{authMethod:`email_otp`,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let T=Kc({admissionRequest:m.ed25519.admissionRequest,finalized:S.ed25519,walletId:c,expectedRuntimePolicyScope:A(s.intent.runtimePolicyScope)}),E=g.metadata,D=Xe(S.ed25519.nearAccountId),ee=gp({established:g,walletId:String(S.walletId),nearAccountId:String(D),nearEd25519SigningKeyId:S.ed25519.nearEd25519SigningKeyId,signerSlot:S.ed25519.signerSlot}),O=await Nn({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:ee}),k=await B.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:O});Cn.acceptRegistrationSession(o,C);let te=k.signerActivations[1];if(!te||te.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:Yn(E),auth:{kind:`email_otp`,providerSubjectId:u.providerSubject},nearEd25519SigningKeyId:Bt(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 xp({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:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(n.onEvent,l,{authMethod:`email_otp`,phase:z.STEP_11_COMPLETED,status:`succeeded`});let j={success:!0,kind:`wallet_registered`,walletId:S.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:S.accountProvisioning,resolvedAccount:S.resolvedAccount,nearEd25519SigningKeyId:Bt(S.ed25519.nearEd25519SigningKeyId),operationalPublicKey:x,nearAccountId:Xe(S.ed25519.nearAccountId),transactionId:S.resolvedAccount.kind===`sponsored_named_account`?S.resolvedAccount.transactionHash:null}]};return Ya(qa({recorder:i,authMethod:`email_otp`,signerSet:Da(e.signerPlan)})),mh(t,j,`email_otp`),n.afterCall?.(!0,j),j}catch(t){let a=cm(t),o=ve(t,`registration`,r);n.onError?.(lm(o,a)),$(n.onEvent,r,{authMethod:`email_otp`,phase:z.FAILED,status:`failed`,message:o,error:{...a?{code:a}:{},message:o}});let s={success:!1,error:o,...a?{errorCode:a}:{}};return Ya(Ja({recorder:i,authMethod:`email_otp`,signerSet:Da(e.signerPlan),errorCode:a||null})),n.afterCall?.(!1),s}finally{a?.fill(0)}}function dh(){}async function fh(e){let{context:t,options:n}=e,r=sm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),a=sn(),o=null,s={kind:`none`};$(n.onEvent,r,{authMethod:`passkey`,phase:z.STEP_01_STARTED,status:`started`});try{let r=new Ga(performance.now()),{relayerUrl:c,setup:l}=await Sm({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=Yc(l.intent),d=sm(String(u.walletId));$(n.onEvent,d,{authMethod:`passkey`,phase:z.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=Hp({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:z.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_create`,overlay:`hide`}}),e)),m=dm(n.onEvent,d,z.STEP_05_ED25519_SIGNER_PROVISION_DELAYED),h=async(e,t)=>{let n=await m(zn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:l.signedSetup,headers:{...Tc(a),...N(l.home)},kind:`passkey`,webauthnRegistration:e.webauthnRegistration,...t?{ed25519Execution:t}:{},onServerTiming:ga.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=>(_=L(t.prfFirstB64u).buffer,{factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ne({rpId:Yf(e.authMethod.rpId),credentialIdB64u:g(t)}),walletAuthMethodId:l.intent.foundingWalletAuthMethodId}),factorSecret:_}),y=(e,n)=>th({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(!at(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(dh),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{_&&hp(_)}let w={value:g(x)};r.markNearStage(l.registrationCeremonyId,`near_only.custody`);let T=await fp(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 tm({registrationCeremonyId:l.registrationCeremonyId,activationReference:C.activationReference}),ee=await Nm({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:_p(C)}}}),O=`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 k=await s.result;if(k.kind===`failed`)throw k.error;let te=await t.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId}),j=await dm(n.onEvent,d,z.STEP_06_RELAY_BOOTSTRAP_DELAYED)(Un({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signedSetup:l.signedSetup,headers:{...Tc(a),...N(l.home)},idempotencyKey:D,ed25519:{activationReference:C.activationReference},auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:s.thresholdSessionId,ciphertext:te.ciphertext},walletCustodyCommit:E}));if(r.markNearStage(l.registrationCeremonyId,`near_only.finalize`),!j.ok||j.kind!==`near_ed25519`)throw Error(`Deferred NEAR provisioning returned a different signer branch`);if(!j.sessionSeal)throw Error(`NEAR finalization did not return the prepared session seal`);if(C.commitPayload&&j.walletCustody?.status!==`committed`){let e=j.walletCustody?.status??`not_reported`,t=j.walletCustody?.status===`rejected`?`: ${j.walletCustody.reason}`:``;throw Error(`Wallet custody did not commit (${e})${t}. The recovery codes shown are not usable.`)}if(T){if(j.walletCustody?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await dr.bindIssuedAtMs(T,j.walletCustody.issuedAtMs)}let M=Oc(j.registrationEstablishedSession),P=Xc({clientPublicKey:O,finalized:j,expectedRpId:e.authMethod.rpId,expectedWalletId:u.walletId}),ne=Xe(j.ed25519.nearAccountId),F=Xf({finalized:j,credential:x.credential}),re=Kc({admissionRequest:S.admissionRequest,finalized:j.ed25519,walletId:u.walletId,expectedRuntimePolicyScope:A(u.runtimePolicyScope)}),I=C.metadata,ie=gp({established:C,walletId:String(j.walletId),nearAccountId:String(ne),nearEd25519SigningKeyId:j.ed25519.nearEd25519SigningKeyId,signerSlot:j.ed25519.signerSlot});await Sp({commit:C.commitPayload,walletId:String(j.walletId),activatedAtMs:Date.now()}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:j.walletId,nearAccountId:Xe(j.ed25519.nearAccountId),thresholdSessionId:re.identity.thresholdSessionId,runtimePolicyScope:re.stableServerScope.runtimePolicyScope,materialActivation:Yn(I),auth:{kind:`passkey`,rpId:St(P.rpId),credentialIdB64u:P.credentialIdB64u},nearEd25519SigningKeyId:Bt(j.ed25519.nearEd25519SigningKeyId),signerSlot:j.ed25519.signerSlot});let R=Mn({walletId:j.walletId,nearAccountId:ne,nearEd25519SigningKeyId:j.ed25519.nearEd25519SigningKeyId,rpId:Yf(P.rpId),credential:x.credential,credentialPublicKeyB64u:F,signerSlot:j.ed25519.signerSlot,operationalPublicKey:O,relayerKeyId:j.ed25519.relayerKeyId,keyVersion:j.ed25519.keyVersion,participantIds:[...j.ed25519.participantIds],custodyMaterial:ie}),ae=await B.publishPendingWalletRegistrationCommit({pending:ee,ecdsaContinuity:[],authority:j.authority,foundingAuthority:{authority:j.foundingAuthority,authMethod:j.foundingAuthMethod},request:{operation:`near_provisioning`,registrationCeremonyId:l.registrationCeremonyId,idempotencyKey:D,walletId:j.walletId,walletAuthMethodId:j.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:M.walletSession,operationCredential:M.operationCredential},registration:R});Cn.acceptRegistrationSession(c,M);let oe=ae.signerActivations[1];if(!oe||oe.signerSlot!==j.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);r.markNearStage(l.registrationCeremonyId,`near_only.publication`);let se=await $m({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,input:$c({session:M,ceremonyId:l.registrationCeremonyId,walletId:String(j.walletId),relayerUrl:c,prfFirstB64u:x.prfFirstB64u,preparedServerSeal:{preparationId:s.preparationId,...j.sessionSeal},restore:{rpId:P.rpId,nearAccountId:String(ne),nearEd25519SigningKeyId:j.ed25519.nearEd25519SigningKeyId,relayerKeyId:j.ed25519.relayerKeyId,participantIds:j.ed25519.participantIds,signerSlot:j.ed25519.signerSlot,credentialIdB64u:P.credentialIdB64u,materialActivation:Yn(I)}})});if(se.kind===`failed`)throw se.error;if(s={kind:`consumed`},r.markNearStage(l.registrationCeremonyId,`near_only.session_hydration`),await Qm({signingEngine:t.signingEngine,sessionAuthority:{record:M.walletSession,operationCredential:M.operationCredential},metadata:I,material:ie,materialFacts:re,envelope:vp(C.commitPayload),ownedFactorSecret:L(x.prfFirstB64u),rpId:P.rpId,credentialIdB64u:P.credentialIdB64u,passkeyPrfFirstB64u:x.prfFirstB64u,relayerUrl:c}),r.markNearStage(l.registrationCeremonyId,`near_only.material_activation`),await bp({signingEngine:t.signingEngine,commit:C.commitPayload,passkeyPrfFirstB64u:x.prfFirstB64u,walletId:String(j.walletId),walletAuthMethodId:String(j.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(M.walletSessionId),expiresAtMs:M.expiresAtMs}),r.markNearStage(l.registrationCeremonyId,`near_only.export_capability`),await t.signingEngine.activateAuthenticatedWalletState({walletId:j.walletId,nearAccountId:ne,signerSlot:j.ed25519.signerSlot,nearClient:t.nearClient}),$(n.onEvent,d,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),o!==null){let e=performance.now();Xa({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-o,traceContext:a}),Xa({callback:n.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:a})}r.markNearStage(l.registrationCeremonyId,`near_only.wallet_ready`),Ya(qa({recorder:r,authMethod:`passkey`,signerSet:Da(e.signerPlan)}));let ce={success:!0,kind:`wallet_registered`,walletId:j.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:j.accountProvisioning,resolvedAccount:j.resolvedAccount,nearEd25519SigningKeyId:Bt(j.ed25519.nearEd25519SigningKeyId),operationalPublicKey:O,nearAccountId:Xe(j.ed25519.nearAccountId),transactionId:j.resolvedAccount.kind===`sponsored_named_account`?j.resolvedAccount.transactionHash:null}]};return mh(t,ce,`passkey`),n.afterCall?.(!0,ce),ce}catch(e){let t=cm(e),i=ve(e,`registration`,r);o!==null&&Xa({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-o,traceContext:a}),n.onError?.(lm(i,t)),$(n.onEvent,r,{authMethod:`passkey`,phase:z.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(Bm))}}async function ph(e){let t=Ep(e.signerSelection),n=hn(t);if(n){let r=mn(t);if(r)return await lh({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 uh({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,options:e.options,passkeyExecution:e.passkeyExecution})}return await fh({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 lh({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 mh(e,t,n){e.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:t.walletId,authMethod:n})}async function hh(e){try{return await ph({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 gh(e,t,n){try{$(e,t,n)}catch{}}function _h(e,t){try{e?.(t)}catch{}}function vh(e,t,n){try{t&&n?e?.(!0,n):e?.(!1)}catch{}}function yh(e){let t=[];for(let n of e){let e=String(n.credentialId||``).trim();e&&t.push({id:e,type:`public-key`,transports:um(n.transports)})}if(t.length===0)throw Error(`Wallet add-signer requires an existing passkey credential`);return t}function bh(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 xh(e){if(e.started.intent.walletId!==e.walletId)throw Error(`Wallet add-signer start returned a different wallet`);if(await vr(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 Sh(e,t){return e.length===2&&t.length===2&&e[0]===t[0]&&e[1]===t[1]}function Ch(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||!Sh(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 wh(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 Th(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 mf({kind:`verified_passkey_ed25519_yao_add_signer_input_v1`,verifiedIntent:{kind:`verified_passkey_ed25519_add_signer_intent_v1`,intent:wh(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=wc(e.started.ed25519.custodyEnvelope);if(!o.ok)throw Error(o.reason);i=Uint8Array.from(L(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 Zn({relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:nm(`wallet-ed25519-add-signer-finalize`),kind:`near_ed25519`,ed25519:{activationReference:s.activationReference},custodyKeySet:{kind:`near_ed25519_v1`,keyManifestDigestB64u:s.commitPayload.keyManifestDigestB64u,registeredPublicKeyB64u:I(s.metadata.registeredPublicKey)}});if(l.kind!==`near_ed25519`)throw Error(`Wallet add-signer finalize returned a different signer branch`);let u=Ch({finalized:l,started:e.started,walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,clientPublicKey:c});gh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let d=await e.context.signingEngine.finalizeWalletEd25519SignerRegistration({walletId:e.walletId,nearAccountId:Xe(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:An,applicationBindingDigestB64u:s.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:I(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:I(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:Xe(u.ed25519.nearAccountId),thresholdSessionId:p.value,runtimePolicyScope:A(e.started.intent.runtimePolicyScope),materialActivation:Yn(m),auth:{kind:`passkey`,rpId:St(e.rpId),credentialIdB64u:e.credentialIdB64u},nearEd25519SigningKeyId:Bt(u.ed25519.nearEd25519SigningKeyId),signerSlot:u.ed25519.signerSlot}),n=null,gh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),{success:!0,kind:`wallet_signer_added`,walletId:u.walletId,capabilities:[{kind:`near_ed25519`,nearEd25519SigningKeyId:Bt(u.ed25519.nearEd25519SigningKeyId),operationalPublicKey:c,nearAccountId:Xe(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&&hp(i)}}async function Eh(e){if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody ECDSA add-signer requires WebAuthn authorization`);let t=await xd({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}),n=Uint8Array.from(L(e.passkeyPrfFirstB64u)).buffer,r;try{r=await Rc({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{hp(n)}let i={relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:nm(`wallet-add-signer-finalize`),kind:`evm_family_ecdsa`,ecdsa:{expectedKeyHandles:[r.bootstrap.keyHandle]},custodyKeySet:r.custodyKeySet},a;try{a=await Zn(i)}catch(e){if(!(e instanceof TypeError))throw e;a=await Zn(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 zc({context:e.context,pending:r});gh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.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 B.adoptAddedEcdsaSignerAuthority({authority:a.authority,materialActivation:c.materialActivation}),gh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.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 Dh(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 Th({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 Eh({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 Oh(e){let{context:t,signerSelection:n}=e,r=e.options||{},i=Ut(String(e.walletId||``).trim()),a=sm(String(i)),o=Yf(String(e.rpId||``).trim());gh(r.onEvent,a,{authMethod:`passkey`,phase:z.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=yd(t.configs);if(!s)throw Error(`addSigner requires registration.publishableKey and registration.projectEnvironmentId`);let c=await Gn({relayerUrl:e,walletId:i,request:{walletId:i,rpId:o,signerSelection:n},auth:{publishableKey:s.publishableKey,environmentId:s.projectEnvironmentId}});if(await vr(c.intent)!==c.addSignerIntentDigestB64u)throw Error(`Add-signer intent digest mismatch`);gh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_assert`,overlay:`show`}});let l=yh(await B.listProfileAuthenticators(String(i))),u=await t.signingEngine.getAuthenticationCredentialsSerialized({subjectId:String(i),challengeB64u:c.addSignerIntentDigestB64u,allowCredentials:l,includeSecondPrfOutput:!1}),d=bh(u,l),f=ur(u,`Wallet add-signer authorization`);gh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let p=await Wn({relayerUrl:e,walletId:i,addSignerIntentGrant:c.addSignerIntentGrant,addSignerIntentDigestB64u:c.addSignerIntentDigestB64u,intent:c.intent,auth:{kind:`webauthn_assertion`,rpId:o,credential:On(u),expectedChallengeDigestB64u:c.addSignerIntentDigestB64u}});await xh({started:p,walletId:i,expectedDigestB64u:c.addSignerIntentDigestB64u});let m=await Dh({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 gh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),vh(r.afterCall,!0,m),m}catch(e){let t=cm(e),n=ve(e,`registration`,a);_h(r.onError,lm(n,t)),gh(r.onEvent,a,{authMethod:`passkey`,phase:z.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 vh(r.afterCall,!1),i}}export{Nl as $,ad as A,so as At,iu as B,ia as Bt,yd as C,Ds as Ct,ld as D,Ms as Dt,_d as E,Fs as Et,mu as F,ua as Ft,Jl as G,Hr as Gt,Zl as H,Lr as Ht,au as I,la as It,El as J,Gl as K,Nr as Kt,eu as L,oa as Lt,Eu as M,to as Mt,fu as N,da as Nt,sd as O,es as Ot,hu as P,fa as Pt,Vl as Q,ru as R,sa as Rt,bd as S,ks as St,md as T,Is as Tt,Yl as U,Ir as Ut,Xl as V,Zi as Vt,$l as W,Fr as Wt,Hl as X,kl as Y,Ml as Z,jd as _,uc as _t,hh as a,wc as at,Cd as b,js as bt,Tf as c,mc as ct,Gf as d,xc as dt,Ul as et,Rf as f,$s as ft,nf as g,cc as gt,of as h,ic as ht,em as i,Hc as it,Du as j,eo as jt,cd as k,yo as kt,Kf as l,_c as lt,lf as m,Xs as mt,Qp as n,Tl as nt,dp as o,pc as ot,gf as p,Zs as pt,Ol as q,Pr as qt,Zp as r,wl as rt,$p as s,hc as st,Oh as t,Cl as tt,Lf as u,gc as ut,Rd as v,Hs as vt,hd as w,Us as wt,xd as x,As as xt,Ld as y,Bs as yt,nu as z,Di as zt};