@seams/wallet 0.27.0 → 0.29.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 (389) hide show
  1. package/README.md +29 -4
  2. package/dist/.build-inputs.sha256 +1 -1
  3. package/dist/esm/SeamsWeb/publicApi/createPublicApi.js +11 -0
  4. package/dist/esm/SeamsWeb/publicApi/near.js +3 -0
  5. package/dist/esm/SeamsWeb/publicApi/ownerNearOperation.js +175 -0
  6. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +4 -0
  7. package/dist/esm/SeamsWeb/walletIframe/client/ownerNearOperation.js +67 -0
  8. package/dist/esm/SeamsWeb/walletIframe/client/progress/on-events-progress-bus.js +27 -17
  9. package/dist/esm/SeamsWeb/walletIframe/client/router.js +63 -2
  10. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +20 -0
  11. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +6 -0
  12. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +42 -5
  13. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +1 -1
  14. package/dist/esm/SeamsWeb/walletIframe/shared/ownerNearOperation.js +152 -0
  15. package/dist/esm/core/accountData/near/accountProjection.js +1 -1
  16. package/dist/esm/core/authMethods/plugins.js +8 -2
  17. package/dist/esm/core/indexedDB/seamsWalletDB/repositories.js +4 -3
  18. package/dist/esm/core/rpcClients/relayer/walletRegistration.js +1 -1
  19. package/dist/esm/core/signingEngine/flows/registration/accountLifecycle.js +1 -1
  20. package/dist/esm/core/signingEngine/flows/shared/signingConfirmation.js +1 -1
  21. package/dist/esm/core/signingEngine/flows/signEvmFamily/signEvmFamily.js +1 -1
  22. package/dist/esm/core/signingEngine/flows/signEvmFamily/signingFlow.js +1 -1
  23. package/dist/esm/core/signingEngine/flows/signNear/shared/ed25519YaoNormalSigning.js +2 -2
  24. package/dist/esm/core/signingEngine/flows/signNear/signDelegate.js +2 -2
  25. package/dist/esm/core/signingEngine/flows/signNear/signNear.js +3 -8
  26. package/dist/esm/core/signingEngine/flows/signNear/signNep413.js +1 -1
  27. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -4
  28. package/dist/esm/core/signingEngine/session/identity/exactSigningLaneIdentity.js +1 -1
  29. package/dist/esm/core/ui/messages.js +5 -0
  30. package/dist/esm/index.js +3 -2
  31. package/dist/esm/react/boundWallet.js +24 -0
  32. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +35 -22
  33. package/dist/esm/react/components/AccountMenuButton/AccountSettingsDialog.js +157 -0
  34. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +13 -1
  35. package/dist/esm/react/components/AccountMenuButton/ExternalWalletSettings.js +46 -0
  36. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +14 -2
  37. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +1 -1
  38. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +154 -5
  39. package/dist/esm/react/components/AccountMenuButton/index.js +7 -3
  40. package/dist/esm/react/context/reactLoginStateBuilders.js +20 -0
  41. package/dist/esm/react/context/useLoginStateRefresher.js +1 -0
  42. package/dist/esm/react/hooks/useAccountInput.js +1 -1
  43. package/dist/esm/react/hooks/useOwnerNearOperation.js +10 -0
  44. package/dist/esm/react/index.js +3 -2
  45. package/dist/esm/react/styles/styles.css +154 -5
  46. package/dist/esm/sdk/{ConfirmationDrawer-AZruQmhP.js → ConfirmationDrawer-BRnd5SEf.js} +1 -1
  47. package/dist/esm/sdk/NonceCoordinator-CNXYrOoy.js +1 -0
  48. package/dist/{public/sdk/SeamsWordmark-DwvPx2UA.js → esm/sdk/SeamsWordmark-CeEi2RlU.js} +1 -1
  49. package/dist/esm/sdk/accountLifecycle-B5a9SCM7.js +1 -0
  50. package/dist/esm/sdk/{adapters-d9yh1bdC.js → adapters-B2k8y0MB.js} +1 -1
  51. package/dist/esm/sdk/appearance-token-vars-DkF3EBbF.js +1 -0
  52. package/dist/esm/sdk/authorization-gVWwKwav.js +1 -0
  53. package/dist/esm/sdk/clientSessionPersistenceState-BxpITYM_.js +1 -0
  54. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js → collectAuthenticationCredentialForChallengeB64u-BoFVpdRS.js} +1 -1
  55. package/dist/esm/sdk/{commitQueue-CYruPlkm.js → commitQueue-C1wkey4q.js} +1 -1
  56. package/dist/esm/sdk/configBuilder-DpChXfDO.js +1 -0
  57. package/dist/esm/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  58. package/dist/esm/sdk/confirm-ui-Dx6c4-Rk.js +2 -0
  59. package/dist/esm/sdk/{device-linking-DiCNt3iA.js → device-linking-_o3_fgiG.js} +1 -1
  60. package/dist/esm/sdk/{deviceLinkApproval-CfEiotVt.js → deviceLinkApproval-CObsEWBa.js} +1 -1
  61. package/dist/esm/sdk/{display-D0EPmU4w.js → display-CUWg48tD.js} +1 -1
  62. package/dist/{public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js → esm/sdk/ecdsaCapabilityManifest--1Ztngfx.js} +1 -1
  63. package/dist/{public/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js → esm/sdk/ecdsaDerivationClientWasm-DJh2uN-q.js} +1 -1
  64. package/dist/esm/sdk/ecdsaDerivationExport-BUUUGc6o.js +1 -0
  65. package/dist/esm/sdk/{ecdsaWalletRecords-WLyq414E.js → ecdsaWalletRecords-CKaXfsVu.js} +1 -1
  66. package/dist/esm/sdk/ed25519OperationFingerprint-Dev4P6Og.js +1 -0
  67. package/dist/{public/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js → esm/sdk/emailOtpEcdsaDerivationIdentity-Qd4pBwHv.js} +1 -1
  68. package/dist/esm/sdk/{enrichDisplayModelWithAbi-O6Mw4i2E.js → enrichDisplayModelWithAbi-JeAcpa7r.js} +1 -1
  69. package/dist/esm/sdk/{evmCryptoWasm-BUPb4hBH.js → evmCryptoWasm-CeH6Qeaa.js} +1 -1
  70. package/dist/esm/sdk/{export-viewer-host-BtrKVXxu.js → export-viewer-host-O0OV1Oou.js} +1 -1
  71. package/dist/esm/sdk/exportKeypairOperation-DkqY9Bpf.js +1 -0
  72. package/dist/esm/sdk/host-BeE2dIU4.js +1 -0
  73. package/dist/{public/sdk/icons-BlMXolHv.js → esm/sdk/icons-pSZJ5Xrm.js} +1 -1
  74. package/dist/esm/sdk/indexedDB-CA4tGqkr.js +1 -0
  75. package/dist/esm/sdk/{intentDigest-HvRsBQ1z.js → intentDigest-gM3r4SVX.js} +1 -1
  76. package/dist/esm/sdk/{lanes-BU-fGqY4.js → lanes-vBKm6yBJ.js} +1 -1
  77. package/dist/esm/sdk/{localOnly-BATWJj78.js → localOnly-U_MucUAe.js} +1 -1
  78. package/dist/{public/sdk/mountExportPrivateKeySurface-CyHU8bVc.js → esm/sdk/mountExportPrivateKeySurface-C2-fnvP6.js} +1 -1
  79. package/dist/{public/sdk/mountRecoveryCodeBackupSurface-C7aglQxf.js → esm/sdk/mountRecoveryCodeBackupSurface-C_tJNPJX.js} +1 -1
  80. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-CnbgQfZc.js +1 -0
  81. package/dist/esm/sdk/{nonceLaneKeys-BF_UpvIy.js → nonceLaneKeys-DtBpxubF.js} +1 -1
  82. package/dist/esm/sdk/{normalization-Df9fZWJC.js → normalization-DmfGvZ_3.js} +1 -1
  83. package/dist/esm/sdk/ownerNearOperation-DjNDxW3_.js +1 -0
  84. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js → esm/sdk/pendingWalletRecoveryCodeBackup-DXFrQmO5.js} +1 -1
  85. package/dist/esm/sdk/{presignaturePool-BbvqRWYw.js → presignaturePool-Dq4RhzXn.js} +1 -1
  86. package/dist/{public/sdk/recovery-entrypoint-DJbMDC_m.js → esm/sdk/recovery-entrypoint-s9OoKBcl.js} +1 -1
  87. package/dist/esm/sdk/registration-CTtTocyo.js +1 -0
  88. package/dist/esm/sdk/{registration-HSwOHZOo.js → registration-D3p7muCc.js} +1 -1
  89. package/dist/esm/sdk/{registrationAccounts-4r74gX1l.js → registrationAccounts-Bso0ntMs.js} +1 -1
  90. package/dist/{public/sdk/registrationIntent-Do1tD1V7.js → esm/sdk/registrationIntent-C1-Kyx_-.js} +1 -1
  91. package/dist/esm/sdk/{registrationSignerPlan-DK2b3N_p.js → registrationSignerPlan-CeMidFme.js} +1 -1
  92. package/dist/{public/sdk/requireStepUpAuth-COqCGb1i.js → esm/sdk/requireStepUpAuth-iVo6h_U-.js} +1 -1
  93. package/dist/esm/sdk/resealedEnvelopeResult-DXDo-72P.js +1 -0
  94. package/dist/esm/sdk/{routerAbNormalSigning-D-UZmCBS.js → routerAbNormalSigning-DVFFkNhJ.js} +1 -1
  95. package/dist/esm/sdk/runtime-auth-Dsmw_dUA.js +1 -0
  96. package/dist/esm/sdk/runtime-device-link-qmYvGep9.js +1 -0
  97. package/dist/esm/sdk/runtime-ecdsa-tempo-Zh95TuLV.js +1 -0
  98. package/dist/esm/sdk/runtime-email-otp-CnLuW4H1.js +1 -0
  99. package/dist/esm/sdk/runtime-export-m8lvrXtw.js +1 -0
  100. package/dist/esm/sdk/runtime-near-BiXzXXhH.js +1 -0
  101. package/dist/esm/sdk/runtime-preferences-DlKHDIjb.js +1 -0
  102. package/dist/esm/sdk/runtime-recovery-C6lS71Jp.js +1 -0
  103. package/dist/esm/sdk/{runtime-recovery-codes-DeUjQsxZ.js → runtime-recovery-codes-B033ake_.js} +1 -1
  104. package/dist/esm/sdk/runtimeContext-RNS2E5wy.js +7 -0
  105. package/dist/{public/sdk/secp256k1-CE7-q9Sn.js → esm/sdk/secp256k1-DPeaOjM0.js} +1 -1
  106. package/dist/esm/sdk/signEvmFamily-Cksw3RpU.js +1 -0
  107. package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js → signEvmFamilyWithUiConfirmForTempo-B7p9UVix.js} +1 -1
  108. package/dist/esm/sdk/{signEvmWithUiConfirm-CGrLtMV6.js → signEvmWithUiConfirm-B14zYdwE.js} +1 -1
  109. package/dist/esm/sdk/signNear-D0rFEYP1.js +1 -0
  110. package/dist/esm/sdk/{signatureUses-kSrUHSSH.js → signatureUses-BLOoPRsb.js} +1 -1
  111. package/dist/{public/sdk/signingFlow-BcetvUeS.js → esm/sdk/signingFlow-Bd1X0e-1.js} +2 -2
  112. package/dist/{public/sdk/signingQueue-dMFOFOP5.js → esm/sdk/signingQueue-DoUBeaCv.js} +1 -1
  113. package/dist/esm/sdk/{thresholdEcdsa-CqR1fFA-.js → thresholdEcdsa-BxfOZmiR.js} +1 -1
  114. package/dist/esm/sdk/{trace--mRP2OQc.js → trace-BnhLKxcu.js} +1 -1
  115. package/dist/esm/sdk/{transaction-activity-DCzHGg3b.js → transaction-activity-BXSxMp1E.js} +1 -1
  116. package/dist/{public/sdk/transactionState-29T9xfvL.js → esm/sdk/transactionState-G_FPe-U8.js} +1 -1
  117. package/dist/esm/sdk/tx-confirm-ui.js +8 -0
  118. package/dist/esm/sdk/{types-f7dyj5N6.js → types-A-w1cYlJ.js} +1 -1
  119. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-yzxQjIFd.js → unlockedEd25519ExportRootCapability-5F1egCSv.js} +1 -1
  120. package/dist/esm/sdk/voiceid-host.js +1 -1
  121. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  122. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  123. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  124. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  125. package/dist/esm/sdk/{wallet-recovery-BZB2Vu3X.js → wallet-recovery-DXdm68_Q.js} +1 -1
  126. package/dist/{public/sdk/walletAuthMethodRecord-DLBB5fez.js → esm/sdk/walletAuthMethodRecord-BW-XV4fv.js} +1 -1
  127. package/dist/esm/sdk/{walletAuthority-BTGAuOi8.js → walletAuthority-DbGaSw7D.js} +1 -1
  128. package/dist/esm/sdk/{walletCapabilityBindings-D5YYB7nN.js → walletCapabilityBindings-mPx-6_r-.js} +1 -1
  129. package/dist/{public/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js → esm/sdk/walletCustodyEcdsaContinuity-BnyL1Ryu.js} +1 -1
  130. package/dist/esm/sdk/{walletOwnershipGeneration-CgjCtPrV.js → walletOwnershipGeneration-BZc6UKqX.js} +1 -1
  131. package/dist/esm/sdk/walletRecoveryAdminProof-DdwikrW3.js +1 -0
  132. package/dist/esm/sdk/walletRecoveryCommit-DbAoiJp5.js +1 -0
  133. package/dist/{public/sdk/walletSessionAuthorizationStore-B9Vwkshr.js → esm/sdk/walletSessionAuthorizationStore-BivTUoKY.js} +1 -1
  134. package/dist/esm/sdk/{webauthnP256-BsQQPurm.js → webauthnP256-BGHikiNl.js} +1 -1
  135. package/dist/esm/shared-ts/src/auth/externalAuth.js +53 -0
  136. package/dist/esm/shared-ts/src/utils/index.js +2 -2
  137. package/dist/esm/voiceid-host.js +2 -2
  138. package/dist/public/headers.manifest.json +1 -1
  139. package/dist/public/sdk/{ConfirmationDrawer-AZruQmhP.js → ConfirmationDrawer-BRnd5SEf.js} +1 -1
  140. package/dist/public/sdk/NonceCoordinator-CNXYrOoy.js +1 -0
  141. package/dist/{esm/sdk/SeamsWordmark-DwvPx2UA.js → public/sdk/SeamsWordmark-CeEi2RlU.js} +1 -1
  142. package/dist/public/sdk/accountLifecycle-B5a9SCM7.js +1 -0
  143. package/dist/public/sdk/{adapters-d9yh1bdC.js → adapters-B2k8y0MB.js} +1 -1
  144. package/dist/public/sdk/appearance-token-vars-DkF3EBbF.js +1 -0
  145. package/dist/public/sdk/authorization-gVWwKwav.js +1 -0
  146. package/dist/public/sdk/clientSessionPersistenceState-BxpITYM_.js +1 -0
  147. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js → collectAuthenticationCredentialForChallengeB64u-BoFVpdRS.js} +1 -1
  148. package/dist/public/sdk/{commitQueue-CYruPlkm.js → commitQueue-C1wkey4q.js} +1 -1
  149. package/dist/public/sdk/configBuilder-DpChXfDO.js +1 -0
  150. package/dist/public/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  151. package/dist/public/sdk/confirm-ui-Dx6c4-Rk.js +2 -0
  152. package/dist/public/sdk/{device-linking-DiCNt3iA.js → device-linking-_o3_fgiG.js} +1 -1
  153. package/dist/public/sdk/{deviceLinkApproval-CfEiotVt.js → deviceLinkApproval-CObsEWBa.js} +1 -1
  154. package/dist/public/sdk/{display-D0EPmU4w.js → display-CUWg48tD.js} +1 -1
  155. package/dist/{esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js → public/sdk/ecdsaCapabilityManifest--1Ztngfx.js} +1 -1
  156. package/dist/{esm/sdk/ecdsaDerivationClientWasm-AYOJgTJm.js → public/sdk/ecdsaDerivationClientWasm-DJh2uN-q.js} +1 -1
  157. package/dist/public/sdk/ecdsaDerivationExport-BUUUGc6o.js +1 -0
  158. package/dist/public/sdk/{ecdsaWalletRecords-WLyq414E.js → ecdsaWalletRecords-CKaXfsVu.js} +1 -1
  159. package/dist/public/sdk/ed25519OperationFingerprint-Dev4P6Og.js +1 -0
  160. package/dist/{esm/sdk/emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js → public/sdk/emailOtpEcdsaDerivationIdentity-Qd4pBwHv.js} +1 -1
  161. package/dist/public/sdk/{enrichDisplayModelWithAbi-O6Mw4i2E.js → enrichDisplayModelWithAbi-JeAcpa7r.js} +1 -1
  162. package/dist/public/sdk/{evmCryptoWasm-BUPb4hBH.js → evmCryptoWasm-CeH6Qeaa.js} +1 -1
  163. package/dist/public/sdk/{export-viewer-host-BtrKVXxu.js → export-viewer-host-O0OV1Oou.js} +1 -1
  164. package/dist/public/sdk/exportKeypairOperation-DkqY9Bpf.js +1 -0
  165. package/dist/public/sdk/host-BeE2dIU4.js +1 -0
  166. package/dist/{esm/sdk/icons-BlMXolHv.js → public/sdk/icons-pSZJ5Xrm.js} +1 -1
  167. package/dist/public/sdk/indexedDB-CA4tGqkr.js +1 -0
  168. package/dist/public/sdk/{intentDigest-HvRsBQ1z.js → intentDigest-gM3r4SVX.js} +1 -1
  169. package/dist/public/sdk/{lanes-BU-fGqY4.js → lanes-vBKm6yBJ.js} +1 -1
  170. package/dist/public/sdk/{localOnly-BATWJj78.js → localOnly-U_MucUAe.js} +1 -1
  171. package/dist/{esm/sdk/mountExportPrivateKeySurface-CyHU8bVc.js → public/sdk/mountExportPrivateKeySurface-C2-fnvP6.js} +1 -1
  172. package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-C7aglQxf.js → public/sdk/mountRecoveryCodeBackupSurface-C_tJNPJX.js} +1 -1
  173. package/dist/public/sdk/nearEd25519YaoSigningPreparation-CnbgQfZc.js +1 -0
  174. package/dist/public/sdk/{nonceLaneKeys-BF_UpvIy.js → nonceLaneKeys-DtBpxubF.js} +1 -1
  175. package/dist/public/sdk/{normalization-Df9fZWJC.js → normalization-DmfGvZ_3.js} +1 -1
  176. package/dist/public/sdk/ownerNearOperation-DjNDxW3_.js +1 -0
  177. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-Cjx-X-pP.js → public/sdk/pendingWalletRecoveryCodeBackup-DXFrQmO5.js} +1 -1
  178. package/dist/public/sdk/{presignaturePool-BbvqRWYw.js → presignaturePool-Dq4RhzXn.js} +1 -1
  179. package/dist/{esm/sdk/recovery-entrypoint-DJbMDC_m.js → public/sdk/recovery-entrypoint-s9OoKBcl.js} +1 -1
  180. package/dist/public/sdk/registration-CTtTocyo.js +1 -0
  181. package/dist/public/sdk/{registration-HSwOHZOo.js → registration-D3p7muCc.js} +1 -1
  182. package/dist/public/sdk/{registrationAccounts-4r74gX1l.js → registrationAccounts-Bso0ntMs.js} +1 -1
  183. package/dist/{esm/sdk/registrationIntent-Do1tD1V7.js → public/sdk/registrationIntent-C1-Kyx_-.js} +1 -1
  184. package/dist/public/sdk/{registrationSignerPlan-DK2b3N_p.js → registrationSignerPlan-CeMidFme.js} +1 -1
  185. package/dist/{esm/sdk/requireStepUpAuth-COqCGb1i.js → public/sdk/requireStepUpAuth-iVo6h_U-.js} +1 -1
  186. package/dist/public/sdk/resealedEnvelopeResult-DXDo-72P.js +1 -0
  187. package/dist/public/sdk/{routerAbNormalSigning-D-UZmCBS.js → routerAbNormalSigning-DVFFkNhJ.js} +1 -1
  188. package/dist/public/sdk/runtime-auth-Dsmw_dUA.js +1 -0
  189. package/dist/public/sdk/runtime-device-link-qmYvGep9.js +1 -0
  190. package/dist/public/sdk/runtime-ecdsa-tempo-Zh95TuLV.js +1 -0
  191. package/dist/public/sdk/runtime-email-otp-CnLuW4H1.js +1 -0
  192. package/dist/public/sdk/runtime-export-m8lvrXtw.js +1 -0
  193. package/dist/public/sdk/runtime-near-BiXzXXhH.js +1 -0
  194. package/dist/public/sdk/runtime-preferences-DlKHDIjb.js +1 -0
  195. package/dist/public/sdk/runtime-recovery-C6lS71Jp.js +1 -0
  196. package/dist/public/sdk/{runtime-recovery-codes-DeUjQsxZ.js → runtime-recovery-codes-B033ake_.js} +1 -1
  197. package/dist/public/sdk/runtimeContext-RNS2E5wy.js +7 -0
  198. package/dist/{esm/sdk/secp256k1-CE7-q9Sn.js → public/sdk/secp256k1-DPeaOjM0.js} +1 -1
  199. package/dist/public/sdk/signEvmFamily-Cksw3RpU.js +1 -0
  200. package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js → signEvmFamilyWithUiConfirmForTempo-B7p9UVix.js} +1 -1
  201. package/dist/public/sdk/{signEvmWithUiConfirm-CGrLtMV6.js → signEvmWithUiConfirm-B14zYdwE.js} +1 -1
  202. package/dist/public/sdk/signNear-D0rFEYP1.js +1 -0
  203. package/dist/public/sdk/{signatureUses-kSrUHSSH.js → signatureUses-BLOoPRsb.js} +1 -1
  204. package/dist/{esm/sdk/signingFlow-BcetvUeS.js → public/sdk/signingFlow-Bd1X0e-1.js} +2 -2
  205. package/dist/{esm/sdk/signingQueue-dMFOFOP5.js → public/sdk/signingQueue-DoUBeaCv.js} +1 -1
  206. package/dist/public/sdk/{thresholdEcdsa-CqR1fFA-.js → thresholdEcdsa-BxfOZmiR.js} +1 -1
  207. package/dist/public/sdk/{trace--mRP2OQc.js → trace-BnhLKxcu.js} +1 -1
  208. package/dist/public/sdk/{transaction-activity-DCzHGg3b.js → transaction-activity-BXSxMp1E.js} +1 -1
  209. package/dist/{esm/sdk/transactionState-29T9xfvL.js → public/sdk/transactionState-G_FPe-U8.js} +1 -1
  210. package/dist/public/sdk/tx-confirm-ui.js +8 -0
  211. package/dist/public/sdk/{types-f7dyj5N6.js → types-A-w1cYlJ.js} +1 -1
  212. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-yzxQjIFd.js → unlockedEd25519ExportRootCapability-5F1egCSv.js} +1 -1
  213. package/dist/public/sdk/voiceid-host.js +1 -1
  214. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  215. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  216. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  217. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  218. package/dist/public/sdk/{wallet-recovery-BZB2Vu3X.js → wallet-recovery-DXdm68_Q.js} +1 -1
  219. package/dist/{esm/sdk/walletAuthMethodRecord-DLBB5fez.js → public/sdk/walletAuthMethodRecord-BW-XV4fv.js} +1 -1
  220. package/dist/public/sdk/{walletAuthority-BTGAuOi8.js → walletAuthority-DbGaSw7D.js} +1 -1
  221. package/dist/public/sdk/{walletCapabilityBindings-D5YYB7nN.js → walletCapabilityBindings-mPx-6_r-.js} +1 -1
  222. package/dist/{esm/sdk/walletCustodyEcdsaContinuity-C31YQ9av.js → public/sdk/walletCustodyEcdsaContinuity-BnyL1Ryu.js} +1 -1
  223. package/dist/public/sdk/{walletOwnershipGeneration-CgjCtPrV.js → walletOwnershipGeneration-BZc6UKqX.js} +1 -1
  224. package/dist/public/sdk/walletRecoveryAdminProof-DdwikrW3.js +1 -0
  225. package/dist/public/sdk/walletRecoveryCommit-DbAoiJp5.js +1 -0
  226. package/dist/{esm/sdk/walletSessionAuthorizationStore-B9Vwkshr.js → public/sdk/walletSessionAuthorizationStore-BivTUoKY.js} +1 -1
  227. package/dist/public/sdk/{webauthnP256-BsQQPurm.js → webauthnP256-BGHikiNl.js} +1 -1
  228. package/dist/public/wallet-assets.manifest.json +262 -262
  229. package/dist/public/wallet-service/index.html +4 -4
  230. package/dist/types/shared-ts/src/auth/externalAuth.d.ts +127 -0
  231. package/dist/types/shared-ts/src/authorization/index.d.ts +1 -1
  232. package/dist/types/shared-ts/src/authorization/walletOwnerOperation.d.ts +10 -0
  233. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +4 -0
  234. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +2 -0
  235. package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
  236. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -1
  237. package/dist/types/wallet/src/SeamsWeb/operations/registration/pendingRegistrationRecovery.d.ts +1 -0
  238. package/dist/types/wallet/src/SeamsWeb/operations/registration/registration.d.ts +1 -0
  239. package/dist/types/wallet/src/SeamsWeb/operations/registration/registrationPasskeyMaterial.d.ts +24 -0
  240. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  241. package/dist/types/wallet/src/SeamsWeb/publicApi/createPublicApi.d.ts +1 -0
  242. package/dist/types/wallet/src/SeamsWeb/publicApi/nearCommands.d.ts +2 -0
  243. package/dist/types/wallet/src/SeamsWeb/publicApi/ownerNearOperation.d.ts +58 -0
  244. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +21 -2
  245. package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +57 -56
  246. package/dist/types/wallet/src/SeamsWeb/signingSurface/nearOwnerOperation.d.ts +16 -0
  247. package/dist/types/wallet/src/SeamsWeb/signingSurface/nearPasskeyOperationMaterial.d.ts +72 -0
  248. package/dist/types/wallet/src/SeamsWeb/signingSurface/types.d.ts +3 -0
  249. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/ownerNearOperation.d.ts +25 -0
  250. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +8 -1
  251. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +8 -2
  252. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createNearCommands.d.ts +2 -1
  253. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +9 -2
  254. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +31 -0
  255. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalOwnerApproval.d.ts +24 -0
  256. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ownerNearOperation.d.ts +12 -0
  257. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +2 -2
  258. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +1 -0
  259. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/exactSessionState.d.ts +8 -0
  260. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +17 -7
  261. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/ownerNearOperation.d.ts +51 -0
  262. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +2 -0
  263. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/registrationSetup.d.ts +1 -0
  264. package/dist/types/wallet/src/core/indexedDB/seamsWalletDB/repositories.d.ts +4 -0
  265. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +4 -0
  266. package/dist/types/wallet/src/core/rpcClients/relayer/walletRecoveryRotate.d.ts +2 -2
  267. package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +1 -0
  268. package/dist/types/wallet/src/core/signingEngine/session/passkey/ed25519YaoLocalMaterial.d.ts +21 -0
  269. package/dist/types/wallet/src/core/types/seams.d.ts +21 -6
  270. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  271. package/dist/types/wallet/src/index.d.ts +3 -0
  272. package/dist/types/wallet/src/react/boundWallet.d.ts +21 -1
  273. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  274. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountSettingsDialog.d.ts +10 -0
  275. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -2
  276. package/dist/types/wallet/src/react/components/AccountMenuButton/ExternalWalletSettings.d.ts +10 -0
  277. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -2
  278. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +1 -0
  279. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +2 -2
  280. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +4 -3
  281. package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +1 -1
  282. package/dist/types/wallet/src/react/hooks/useOwnerNearOperation.d.ts +4 -0
  283. package/dist/types/wallet/src/react/index.d.ts +3 -0
  284. package/dist/types/wallet/src/react/types.d.ts +13 -3
  285. package/dist/types/wallet/src/voiceid-host.d.ts +2 -2
  286. package/package.json +1 -1
  287. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +0 -66
  288. package/dist/esm/sdk/NonceCoordinator-3YhmDTS5.js +0 -1
  289. package/dist/esm/sdk/accountLifecycle-6DHYWf0v.js +0 -1
  290. package/dist/esm/sdk/appearance-token-vars-BJydfWT_.js +0 -1
  291. package/dist/esm/sdk/clientSessionPersistenceState-BCkJAYSz.js +0 -1
  292. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +0 -1
  293. package/dist/esm/sdk/confirm-ui-nU6ymgiv.js +0 -2
  294. package/dist/esm/sdk/ecdsaDerivationExport-DJKOzDbS.js +0 -1
  295. package/dist/esm/sdk/exportKeypairOperation-CGE9ZU1m.js +0 -1
  296. package/dist/esm/sdk/host-DayrOrgm.js +0 -1
  297. package/dist/esm/sdk/indexedDB-C4SDsyOG.js +0 -1
  298. package/dist/esm/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +0 -1
  299. package/dist/esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +0 -1
  300. package/dist/esm/sdk/registration-CNLUYN-p.js +0 -1
  301. package/dist/esm/sdk/resealedEnvelopeResult-B1p5UkYg.js +0 -1
  302. package/dist/esm/sdk/runtime-auth-BCoj7_-G.js +0 -1
  303. package/dist/esm/sdk/runtime-device-link-DAsq5tGT.js +0 -1
  304. package/dist/esm/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +0 -1
  305. package/dist/esm/sdk/runtime-email-otp-BxSKK9AG.js +0 -1
  306. package/dist/esm/sdk/runtime-export-BWnQXMzT.js +0 -1
  307. package/dist/esm/sdk/runtime-near-CuzPZrDS.js +0 -1
  308. package/dist/esm/sdk/runtime-preferences-B-nDWlm3.js +0 -1
  309. package/dist/esm/sdk/runtime-recovery-DpOdEJ8N.js +0 -1
  310. package/dist/esm/sdk/runtimeContext-5JcewRo3.js +0 -6
  311. package/dist/esm/sdk/sessionObservationRevision-JOvVF4Hf.js +0 -1
  312. package/dist/esm/sdk/signEvmFamily-BY5jlZEG.js +0 -1
  313. package/dist/esm/sdk/signNear-DMpJFkwF.js +0 -1
  314. package/dist/esm/sdk/signer-worker-BNodGJKY.js +0 -1
  315. package/dist/esm/sdk/walletRecoveryAdminProof-CvSYbyg5.js +0 -1
  316. package/dist/esm/sdk/walletRecoveryCommit-Cc2LAkCS.js +0 -1
  317. package/dist/public/sdk/NonceCoordinator-3YhmDTS5.js +0 -1
  318. package/dist/public/sdk/accountLifecycle-6DHYWf0v.js +0 -1
  319. package/dist/public/sdk/appearance-token-vars-BJydfWT_.js +0 -1
  320. package/dist/public/sdk/clientSessionPersistenceState-BCkJAYSz.js +0 -1
  321. package/dist/public/sdk/configBuilder-CSwJrmcR.js +0 -1
  322. package/dist/public/sdk/confirm-ui-nU6ymgiv.js +0 -2
  323. package/dist/public/sdk/ecdsaDerivationExport-DJKOzDbS.js +0 -1
  324. package/dist/public/sdk/exportKeypairOperation-CGE9ZU1m.js +0 -1
  325. package/dist/public/sdk/host-DayrOrgm.js +0 -1
  326. package/dist/public/sdk/indexedDB-C4SDsyOG.js +0 -1
  327. package/dist/public/sdk/nearEd25519YaoMaterialActivation-BfXmy3Jr.js +0 -1
  328. package/dist/public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js +0 -1
  329. package/dist/public/sdk/registration-CNLUYN-p.js +0 -1
  330. package/dist/public/sdk/resealedEnvelopeResult-B1p5UkYg.js +0 -1
  331. package/dist/public/sdk/runtime-auth-BCoj7_-G.js +0 -1
  332. package/dist/public/sdk/runtime-device-link-DAsq5tGT.js +0 -1
  333. package/dist/public/sdk/runtime-ecdsa-tempo-CVh_Vwl6.js +0 -1
  334. package/dist/public/sdk/runtime-email-otp-BxSKK9AG.js +0 -1
  335. package/dist/public/sdk/runtime-export-BWnQXMzT.js +0 -1
  336. package/dist/public/sdk/runtime-near-CuzPZrDS.js +0 -1
  337. package/dist/public/sdk/runtime-preferences-B-nDWlm3.js +0 -1
  338. package/dist/public/sdk/runtime-recovery-DpOdEJ8N.js +0 -1
  339. package/dist/public/sdk/runtimeContext-5JcewRo3.js +0 -6
  340. package/dist/public/sdk/sessionObservationRevision-JOvVF4Hf.js +0 -1
  341. package/dist/public/sdk/signEvmFamily-BY5jlZEG.js +0 -1
  342. package/dist/public/sdk/signNear-DMpJFkwF.js +0 -1
  343. package/dist/public/sdk/signer-worker-BNodGJKY.js +0 -1
  344. package/dist/public/sdk/walletRecoveryAdminProof-CvSYbyg5.js +0 -1
  345. package/dist/public/sdk/walletRecoveryCommit-Cc2LAkCS.js +0 -1
  346. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +0 -10
  347. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +0 -9
  348. /package/dist/esm/sdk/{accountIds-CW2BP-d9.js → accountIds-DGWFzEnw.js} +0 -0
  349. /package/dist/esm/sdk/{actions-DrtSTGus.js → actions-7SvZZut1.js} +0 -0
  350. /package/dist/esm/sdk/{authenticatorOptions-WCDKYRux.js → authenticatorOptions-B4q62CLs.js} +0 -0
  351. /package/dist/esm/sdk/{confirmTypes-BvVtQs-M.js → confirmTypes-DmEPoxys.js} +0 -0
  352. /package/dist/esm/sdk/{csp-stylesheet-DUSqfXvZ.js → csp-stylesheet-5LU6VGKK.js} +0 -0
  353. /package/dist/esm/sdk/{digestEncoding-CqNXPZY9.js → digestEncoding-34kXJoJr.js} +0 -0
  354. /package/dist/esm/sdk/{ecdsaChainTarget-Bm5X4k-V.js → ecdsaChainTarget-BoRVQtjQ.js} +0 -0
  355. /package/dist/esm/sdk/{executeWorkerOperation-C9FOCCR7.js → executeWorkerOperation-CAYSt0NA.js} +0 -0
  356. /package/dist/esm/sdk/{helpers-Dubwo5uK.js → helpers-B7c1zc7h.js} +0 -0
  357. /package/dist/esm/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-DGzeiNSa.js} +0 -0
  358. /package/dist/esm/sdk/{keccak-mS0Mejjx.js → keccak-DGHI1G6t.js} +0 -0
  359. /package/dist/esm/sdk/{keyMaterialEnvelope-Dm2ZEilb.js → keyMaterialEnvelope-Czkks9Ki.js} +0 -0
  360. /package/dist/esm/sdk/{presignatures-BCeq56DG.js → presignatures-CkhuZ0YQ.js} +0 -0
  361. /package/dist/esm/sdk/{profileAccountProjection-C5sNt-s2.js → profileAccountProjection-dvLchPBo.js} +0 -0
  362. /package/dist/esm/sdk/{registrationAuthMethodInput-BR1WVbK3.js → registrationAuthMethodInput-C4o7yFBJ.js} +0 -0
  363. /package/dist/esm/sdk/{sdkSentEvents-DjOlKtdW.js → sdkSentEvents-BFwv3mBw.js} +0 -0
  364. /package/dist/esm/sdk/{signerDomain-BAsLT3XN.js → signerDomain-D-EUTlLK.js} +0 -0
  365. /package/dist/esm/sdk/{signerSlot-D2RZnb27.js → signerSlot-BlijMq8C.js} +0 -0
  366. /package/dist/esm/sdk/{surface-measurement-reporter-DXsvq401.js → surface-measurement-reporter-DJ_dQhBV.js} +0 -0
  367. /package/dist/esm/sdk/{walletCustodyOperation-DimzAbCB.js → walletOwnerOperation-CScYv2K6.js} +0 -0
  368. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-DG7DPcgR.js → walletSessionAuthorizationStatus-GhcGvDCX.js} +0 -0
  369. /package/dist/public/sdk/{accountIds-CW2BP-d9.js → accountIds-DGWFzEnw.js} +0 -0
  370. /package/dist/public/sdk/{actions-DrtSTGus.js → actions-7SvZZut1.js} +0 -0
  371. /package/dist/public/sdk/{authenticatorOptions-WCDKYRux.js → authenticatorOptions-B4q62CLs.js} +0 -0
  372. /package/dist/public/sdk/{confirmTypes-BvVtQs-M.js → confirmTypes-DmEPoxys.js} +0 -0
  373. /package/dist/public/sdk/{csp-stylesheet-DUSqfXvZ.js → csp-stylesheet-5LU6VGKK.js} +0 -0
  374. /package/dist/public/sdk/{digestEncoding-CqNXPZY9.js → digestEncoding-34kXJoJr.js} +0 -0
  375. /package/dist/public/sdk/{ecdsaChainTarget-Bm5X4k-V.js → ecdsaChainTarget-BoRVQtjQ.js} +0 -0
  376. /package/dist/public/sdk/{executeWorkerOperation-C9FOCCR7.js → executeWorkerOperation-CAYSt0NA.js} +0 -0
  377. /package/dist/public/sdk/{helpers-Dubwo5uK.js → helpers-B7c1zc7h.js} +0 -0
  378. /package/dist/public/sdk/{jsonRpc-BVDv1wfm.js → jsonRpc-DGzeiNSa.js} +0 -0
  379. /package/dist/public/sdk/{keccak-mS0Mejjx.js → keccak-DGHI1G6t.js} +0 -0
  380. /package/dist/public/sdk/{keyMaterialEnvelope-Dm2ZEilb.js → keyMaterialEnvelope-Czkks9Ki.js} +0 -0
  381. /package/dist/public/sdk/{presignatures-BCeq56DG.js → presignatures-CkhuZ0YQ.js} +0 -0
  382. /package/dist/public/sdk/{profileAccountProjection-C5sNt-s2.js → profileAccountProjection-dvLchPBo.js} +0 -0
  383. /package/dist/public/sdk/{registrationAuthMethodInput-BR1WVbK3.js → registrationAuthMethodInput-C4o7yFBJ.js} +0 -0
  384. /package/dist/public/sdk/{sdkSentEvents-DjOlKtdW.js → sdkSentEvents-BFwv3mBw.js} +0 -0
  385. /package/dist/public/sdk/{signerDomain-BAsLT3XN.js → signerDomain-D-EUTlLK.js} +0 -0
  386. /package/dist/public/sdk/{signerSlot-D2RZnb27.js → signerSlot-BlijMq8C.js} +0 -0
  387. /package/dist/public/sdk/{surface-measurement-reporter-DXsvq401.js → surface-measurement-reporter-DJ_dQhBV.js} +0 -0
  388. /package/dist/public/sdk/{walletCustodyOperation-DimzAbCB.js → walletOwnerOperation-CScYv2K6.js} +0 -0
  389. /package/dist/public/sdk/{walletSessionAuthorizationStatus-DG7DPcgR.js → walletSessionAuthorizationStatus-GhcGvDCX.js} +0 -0
@@ -0,0 +1 @@
1
+ import{n as e}from"./chunk-dVx5-UGu.js";import{C as t,E as n,L as r,M as i,N as a,O as o,P as s,S as c,T as l,c as u,g as d,i as f,s as p,z as m}from"./domainIds-t1lp25yU.js";import{S as h,T as g,a as _,h as v,i as y,l as b,n as x,r as S,t as C,w,x as T}from"./digests-BIaE0DMd.js";import{c as E,r as D,s as O,t as k}from"./participants-BXdREC5k.js";import{i as A,r as j}from"./base64-BmKR3UqU.js";import{r as M}from"./secureRandomId-8LSc91aN.js";import{s as N}from"./walletDbName-Ca0rCq5r.js";import{J as P,Q as F,X as I,Y as ee,Z as te,a as L,i as ne,n as re}from"./activeWalletSession-BJ4B-nJo.js";import{n as ie,t as ae}from"./chains-B72I4PDH.js";import{c as R,d as oe,f as se,l as ce,s as le,u as ue}from"./signingSessionSeal-BFOBKj-J.js";import{d as de,g as fe,h as pe,m as me}from"./capabilityKinds-DVlGMspk.js";import{i as he,n as ge,r as _e}from"./canonicalPrimitives-Jd3i_Ngz.js";import{n as ve,s as ye,t as be}from"./errors-BJBDbwHk.js";import{c as xe,f as Se,g as Ce,h as we,l as Te,n as Ee}from"./signerDomain-D-EUTlLK.js";import{c as De,r as Oe}from"./types-A-w1cYlJ.js";import{c as ke,d as Ae,r as je,t as Me}from"./accountIds-DGWFzEnw.js";import{E as Ne,S as Pe,d as Fe,g as Ie,p as Le,u as Re,v as ze,x as Be,y as Ve}from"./registrationIntent-C1-Kyx_-.js";import{a as He,i as Ue,n as We,r as Ge}from"./presignatures-CkhuZ0YQ.js";import{a as Ke,c as qe,i as Je,o as Ye,r as Xe,s as Ze}from"./ecdsaChainTarget-BoRVQtjQ.js";import{t as Qe}from"./keyMaterialEnvelope-Czkks9Ki.js";import{B as $e,E as et,N as tt,Q as nt,R as rt,T as it,X as at,Z as ot,d as st,et as ct,j as lt,k as ut,p as dt,q as ft,w as pt,z as mt}from"./walletAuthority-DbGaSw7D.js";import{A as ht,D as gt,Et as _t,Ft as vt,G as yt,J as bt,Nt as xt,P as St,Pt as Ct,S as wt,Tt,W as Et,X as Dt,Z as Ot,_ as kt,at as At,ct as jt,dt as Mt,k as Nt,kt as Pt,nt as Ft,ot as It,q as Lt,ut as Rt,x as zt}from"./digestEncoding-34kXJoJr.js";import{r as Bt}from"./walletAuthMethodRecord-BW-XV4fv.js";import{a as Vt,i as Ht,n as Ut,o as Wt,t as Gt}from"./signerSlot-BlijMq8C.js";import{A as Kt,B as qt,I as Jt,N as Yt,P as Xt,i as Zt,j as Qt}from"./ecdsaCapabilityManifest--1Ztngfx.js";import{g as $t,i as z,p as en,s as tn}from"./sdkSentEvents-BFwv3mBw.js";import{C as nn,E as rn,S as an,T as on,b as sn,c as cn,f as ln,o as un,t as B,w as dn,x as fn}from"./indexedDB-CA4tGqkr.js";import{c as pn,d as mn,i as hn,l as gn,n as _n,r as vn,s as yn}from"./registrationSignerPlan-CeMidFme.js";import{n as bn}from"./authenticatorOptions-B4q62CLs.js";import{X as xn,j as Sn}from"./walletOwnershipGeneration-BZc6UKqX.js";import{T as Cn,w as wn}from"./emailOtpEcdsaDerivationIdentity-Qd4pBwHv.js";import{o as Tn}from"./walletSessionAuthorizationStore-BivTUoKY.js";import{t as En}from"./walletSessionAuthorizationStatus-GhcGvDCX.js";import{r as Dn,s as On,u as kn}from"./unlockedEd25519ExportRootCapability-5F1egCSv.js";import{C as An,D as jn,E as Mn,T as Nn,a as Pn,c as Fn,f as In,g as Ln,h as Rn,i as zn,m as Bn,n as Vn,o as Hn,t as Un,v as Wn,x as Gn,y as Kn}from"./authorization-gVWwKwav.js";import{i as qn}from"./profileAccountProjection-dvLchPBo.js";import{c as Jn,r as Yn}from"./walletCustodyEcdsaContinuity-BnyL1Ryu.js";import{o as Xn,u as Zn}from"./helpers-B7c1zc7h.js";import{P as Qn,d as $n,f as er,p as tr,u as nr}from"./accountLifecycle-B5a9SCM7.js";import{A as rr,a as ir,d as ar,f as or,j as sr,o as cr,u as lr}from"./nearEd25519YaoSigningPreparation-CnbgQfZc.js";import{n as ur}from"./lanes-vBKm6yBJ.js";import{i as dr,n as fr,o as pr,t as mr}from"./pendingWalletRecoveryCodeBackup-DXFrQmO5.js";import{c as hr,o as gr,s as _r}from"./wallet-recovery-DXdm68_Q.js";import{n as vr}from"./prfCache-DEHaUPSW.js";import{u as yr}from"./trace-BnhLKxcu.js";import{n as br,o as xr,t as Sr}from"./walletSessionAuthorizationProjection-BzUH6gHV.js";import{t as Cr}from"./webauthnPromptCoordinator-npsSRD51.js";import{t as wr}from"./intentDigest-gM3r4SVX.js";import{n as Tr}from"./challengeDelivery-Dj9HrjW9.js";var Er=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,Lr.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Lr.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 Dr.__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=Yr(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=Yr(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&&(Er.prototype[Symbol.dispose]=Er.prototype.free);var Dr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,Rr.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Rr.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],Qr(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],Qr(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=Yr(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Dr.prototype[Symbol.dispose]=Dr.prototype.free);var Or=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,zr.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 Mr.__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],Qr(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),O=W,k=V(u,G.__wbindgen_malloc),A=W,j=V(d,G.__wbindgen_malloc),M=W,N=V(f,G.__wbindgen_malloc),P=W,F=G.wasmed25519yaoclientrootexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P);if(F[2])throw U(F[1]);return this.__wbg_ptr=F[0],zr.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Or.prototype[Symbol.dispose]=Or.prototype.free);var kr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Br.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,Qr(n,r)}finally{G.__wbindgen_free(e,t,1)}}constructor(){return this.__wbg_ptr=G.wasmed25519yaolaneclientv1_new(),Br.register(this,this.__wbg_ptr,this),this}prepare(e,t,n,r,i,a,o,s,c,l){qr(a,Ar);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 Ar=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,Vr.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Vr.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],Vr.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Ar.prototype[Symbol.dispose]=Ar.prototype.free);var jr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Hr.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){qr(i,Ar);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],Hr.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,Qr(n,r)}finally{G.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(jr.prototype[Symbol.dispose]=jr.prototype.free);var Mr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,Ur.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Ur.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,Qr(n,r)}finally{G.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(Mr.prototype[Symbol.dispose]=Mr.prototype.free);var Nr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Wr.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],Wr.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=Yr(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Nr.prototype[Symbol.dispose]=Nr.prototype.free);var Pr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,Gr.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 Mr.__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],Qr(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),O=W,k=V(u,G.__wbindgen_malloc),A=W,j=V(d,G.__wbindgen_malloc),M=W,N=V(f,G.__wbindgen_malloc),P=W,F=G.wasmwalletcustodyseedexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P);if(F[2])throw U(F[1]);return this.__wbg_ptr=F[0],Gr.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Pr.prototype[Symbol.dispose]=Pr.prototype.free);function Fr(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,O=V(s,G.__wbindgen_malloc),k=W,A=V(d,G.__wbindgen_malloc),j=W,M=V(f,G.__wbindgen_malloc),N=W,P=V(p,G.__wbindgen_malloc),F=W,I=G.openWalletCustodyEd25519MaterialV1(m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,c,l,u,A,j,M,N,P,F);if(I[2])throw U(I[1]);return Er.__wrap(I[0])}function Ir(){let e={__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,t){return Error(Qr(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;Zr().setInt32(e+4,r,!0),Zr().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;Zr().setBigInt64(e+8,ni(r)?BigInt(0):r,!0),Zr().setInt32(e+0,!ni(r),!0)},__wbg___wbindgen_boolean_get_fa956cfa2d1bd751:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return ni(n)?16777215:n?1:0},__wbg___wbindgen_debug_string_c25d447a39f5578f:function(e,t){let n=H(Jr(t),G.__wbindgen_malloc,G.__wbindgen_realloc),r=W;Zr().setInt32(e+4,r,!0),Zr().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;Zr().setFloat64(e+8,ni(r)?0:r,!0),Zr().setInt32(e+0,!ni(r),!0)},__wbg___wbindgen_string_get_b0ca35b86a603356:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=ni(r)?0:H(r,G.__wbindgen_malloc,G.__wbindgen_realloc),a=W;Zr().setInt32(e+4,a,!0),Zr().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw Error(Qr(e,t))},__wbg_call_8a2dd23819f8a60a:function(){return ti(function(e,t){return e.call(t)},arguments)},__wbg_call_a6e5c5dce5018821:function(){return ti(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 ti(function(e,t){e.getRandomValues(t)},arguments)},__wbg_get_507a50627bffa49b:function(e,t){return e[t>>>0]},__wbg_get_78f252d074a84d0b:function(){return ti(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_c7eb1f358a7654df:function(){return ti(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 ti(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(Yr(e,t),n)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return ti(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return ti(function(){return module.require},arguments)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_8535240470bf2500:function(){return ti(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 ni(e)?0:Kr(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){let e=typeof globalThis>`u`?null:globalThis;return ni(e)?0:Kr(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){let e=typeof self>`u`?null:self;return ni(e)?0:Kr(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){let e=typeof window>`u`?null:window;return ni(e)?0:Kr(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 Yr(e,t)},__wbindgen_cast_0000000000000004:function(e,t){return Qr(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 Lr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmactivatedclientv1_free(e,1)),Rr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmclientsigningsharev1_free(e,1)),zr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,1)),Br=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolaneclientv1_free(e,1)),Vr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolanesourcev1_free(e,1)),Hr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,1)),Ur=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmexporteded25519seedv1_free(e,1)),Wr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,1)),Gr=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,1));function Kr(e){let t=G.__externref_table_alloc();return G.__wbindgen_externrefs.set(t,e),t}function qr(e,t){if(!(e instanceof t))throw Error(`expected instance of ${t.name}`)}function Jr(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+=Jr(e[0]));for(let r=1;r<t;r++)n+=`, `+Jr(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 Yr(e,t){return e>>>=0,ei().subarray(e/1,e/1+t)}let Xr=null;function Zr(){return(Xr===null||Xr.buffer.detached===!0||Xr.buffer.detached===void 0&&Xr.buffer!==G.memory.buffer)&&(Xr=new DataView(G.memory.buffer)),Xr}function Qr(e,t){return ai(e>>>0,t)}let $r=null;function ei(){return($r===null||$r.byteLength===0)&&($r=new Uint8Array(G.memory.buffer)),$r}function ti(e,t){try{return e.apply(this,t)}catch(e){let t=Kr(e);G.__wbindgen_exn_store(t)}}function ni(e){return e==null}function V(e,t){let n=t(e.length*1,1)>>>0;return ei().set(e,n/1),W=e.length,n}function H(e,t,n){if(n===void 0){let n=oi.encode(e),r=t(n.length,1)>>>0;return ei().subarray(r,r+n.length).set(n),W=n.length,r}let r=e.length,i=t(r,1)>>>0,a=ei(),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=ei().subarray(i+o,i+r),a=oi.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 ri=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});ri.decode();let ii=0;function ai(e,t){return ii+=t,ii>=2146435072&&(ri=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),ri.decode(),ii=t),ri.decode(ei().subarray(e,e+t))}const oi=new TextEncoder;`encodeInto`in oi||(oi.encodeInto=function(e,t){let n=oi.encode(e);return t.set(n),{read:e.length,written:n.length}});let W=0,G;function si(e,t){return G=e.exports,Xr=null,$r=null,G.__wbindgen_start(),G}async function ci(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 li(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=Ir();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await ci(await e,t);return si(n,r)}const ui=`router_ab_ed25519_yao_active_client_v1`;function di(e){switch(e.authorization.kind){case`passkey`:return{protocol:e.protocol,authorization:{kind:`passkey`,webauthnAuthentication:Zn(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 fi=Symbol(`router-ab-ed25519-yao-active-client-construction`);function pi(e,t){if(!(e instanceof Uint8Array)||e.length!==32)throw Error(`${t} must contain 32 bytes`);return e}function mi(e){return e.authorization.kind===`passkey`}function hi(e){switch(e.kind){case`wallet_custody_seed_v1`:return Pr;case`ed25519_yao_client_root_v1`:return Or;default:return Si(e.kind)}}function gi(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(hi(e.custodyEnvelope))(...t)}function _i(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 vi(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=rt(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:_i(Reflect.get(e,`factorRelease`))}}function yi(){return{recipientKeyMaterial:wi(),deriverASealSeed:wi(),deriverBSealSeed:wi()}}function bi(e){e.recipientKeyMaterial.fill(0),e.deriverASealSeed.fill(0),e.deriverBSealSeed.fill(0)}function xi(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 Si(e){throw Error(`Unhandled Ed25519 Yao Client lifecycle: ${String(e)}`)}function Ci(e){switch(e.kind){case`active`:return e.activated;case`disposed`:throw Error(`Ed25519 Yao Client state is disposed`);default:return Si(e)}}function wi(){let e=new Uint8Array(32);do globalThis.crypto.getRandomValues(e);while(e.every(Ti));return e}function Ti(e){return e===0}function Ei(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 Di(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&&vt(t.binding.ceremony.material_activation,e.scope.material_activation)&&t.binding.state_epoch===e.state_epoch&&xi(t.binding.registered_public_key,e.registered_public_key)&&xi(t.binding.runtime_policy_binding,e.runtime_policy_binding)&&xi(t.binding.authorization_digest,e.authorization.authorization_digest)}function Oi(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:Ai(e.traceContext)}}function Ai(e){if(!e)return on();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||Mi(e.url);return{ok:!0,value:n,...r?{serverTiming:r}:{}}}let r=_(n)?.code;return{ok:!1,message:JSON.stringify(n),...typeof r==`string`?{code:r}:{}}}function Mi(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=Ni(Reflect.get(n,`serverTiming`));if(r)return r}return null}function Ni(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 Pi=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:{...Hi(this.config.routing),...n?{authorization:n}:{},...r?{[ut]:r}:{},"content-type":`application/json`,[dn]: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)}},Fi=class{activeMetadata;lifecycle;constructor(e){if(e[fi]!==!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=Ci(this.lifecycle);try{return{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:e.nonce.slice(),ciphertext:t.seal_local_material(pi(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.nonce)}}finally{e.ownedPasskeyPrfFirst.fill(0)}}async createSigningShare(e){let t=Ci(this.lifecycle),n=pi(e.admittedDigest,`admitted digest`),r=pi(e.signingWorkerVerifyingShare,`SigningWorker verifying share`);if(!xi(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:Ei(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 Si(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 Si(this.lifecycle)}}};function Ii(e){let t=null;try{return t=Er.import_local_material(pi(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.sealed.nonce,e.sealed.ciphertext,e.metadata.registeredPublicKey,e.metadata.stateEpoch,e.metadata.participantIds[0],e.metadata.participantIds[1],e.metadata.signingWorkerVerifyingShare),new Fi({[fi]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedPasskeyPrfFirst.fill(0)}}function Li(e){let t=null;try{if(t=Er.import_linked_material(pi(e.ownedClientScalarShare,`linked-device Ed25519 Client share`),e.metadata.participantIds[0],e.metadata.participantIds[1],JSON.stringify(e.publicReceipt)),t.state_epoch()!==e.metadata.stateEpoch||!xi(t.registered_public_key(),e.metadata.registeredPublicKey)||!xi(e.publicReceipt.signing_worker_verifying_share,e.metadata.signingWorkerVerifyingShare))throw Error(`linked-device Ed25519 material metadata does not match its receipt`);return new Fi({[fi]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedClientScalarShare.fill(0)}}function Ri(e){let t=null;try{return t=Fr(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 Fi({[fi]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedFactorSecret.fill(0)}}let zi=null;function Bi(e){throw zi=null,e}var Vi=class e{constructor(){}static async initializeBundled(){return zi??=li().catch(Bi),await zi,new e}importLocalMaterial(e){return Ii(e)}importLinkedMaterial(e){return Li(e)}openCustodyCache(e){return Ri(e)}async exportSeed(e){let t=await e.transport.send({kind:`export_admit`,path:it,body:di({protocol:e.request,authorization:e.authorization})});if(!t.ok)return t;let n;try{n=vi(t.value)}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}if(!Di(e.request,n.protocol))return{ok:!1,message:`Router export admission does not match the requested exact capability`};let r;if(mi(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=yi(),a;try{a=gi({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),bi(i)}try{let t=mt(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:et,body:{protocol:t.value}});if(!n.ok)return n;let r=$e(n.value);if(!r.ok)return{ok:!1,message:r.message};let i=a.complete(JSON.stringify(r.value));try{return{ok:!0,artifact:Oi(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 Hi(e){switch(e.kind){case`discovery`:return{};case`direct`:case`regional`:return O(e);default:return Si(e)}}var Ui=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 Wi(e){return Ui.build(e)}const Gi=`router_ab_ed25519_yao_active_client_v1`,Ki=`chacha20poly1305-hkdf-sha256-prf-first-v1`,qi=(1n<<64n)-1n;function K(e,t){let n=String(e??``).trim();if(!n)throw Error(`${t} is required for local Ed25519 material`);return n}function Ji(e,t){let n=Number(e);if(!Number.isSafeInteger(n)||n<1)throw Error(`${t} must be a positive safe integer`);return n}function Yi(e,n){let r=t(e);if(!r.ok)throw Error(`${n}: ${r.error.message}`);return r.value}function Xi(e,t){let n=K(e,t);if(j(n).length!==32)throw Error(`${t} must encode 32 bytes`);return n}function Zi(e){if(!Array.isArray(e)||e.length!==2)throw Error(`participantIds must contain exactly two entries`);let t=[Ji(e[0],`participantIds[0]`),Ji(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 Qi(e,t){let n=K(e,t);if(!/^(0|[1-9][0-9]*)$/.test(n)||BigInt(n)>qi)throw Error(`${t} must be a canonical u64`);return n}function $i(e,t,n){let r=e.signingLane.identity.signer;return{walletId:K(r.account.wallet.walletId,`walletId`),nearAccountId:K(r.account.nearAccountId,`nearAccountId`),nearEd25519SigningKeyId:K(r.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),thresholdSessionId:Yi(e.signingLane.identity.thresholdSessionId,`thresholdSessionId`),signerSlot:Ji(r.signerSlot,`signerSlot`),rpId:K(t,`rpId`),credentialIdB64u:K(n,`credentialIdB64u`),signingRootId:K(e.signingRootId,`signingRootId`),signingRootVersion:K(e.signingRootVersion,`signingRootVersion`),signingWorkerId:K(e.routerAbNormalSigning.signingWorkerId,`signingWorkerId`)}}function ea(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:Gi,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:K(t.scope.lifecycle_id,`lifecycleId`),thresholdSessionId:Yi(t.scope.threshold_session_id,`thresholdSessionId`),materialActivation:Nn(t),signingRootId:e.identity.signingRootId,signingRootVersion:e.identity.signingRootVersion,signerSetId:K(t.scope.signer_set_id,`signerSetId`),signingWorkerId:e.identity.signingWorkerId,participantIds:[t.participantIds[0],t.participantIds[1]],registeredPublicKeyB64u:A(t.registeredPublicKey),signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare),stateEpoch:t.stateEpoch.toString(10),activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))}}function ta(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 na(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 ra(e){let t=_(e);if(!t||t.kind!==Gi)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:Gi,walletId:K(t.walletId,`binding.walletId`),nearAccountId:K(t.nearAccountId,`binding.nearAccountId`),nearEd25519SigningKeyId:K(t.nearEd25519SigningKeyId,`binding.nearEd25519SigningKeyId`),signerSlot:Ji(t.signerSlot,`binding.signerSlot`),rpId:K(t.rpId,`binding.rpId`),credentialIdB64u:K(t.credentialIdB64u,`binding.credentialIdB64u`),lifecycleId:K(t.lifecycleId,`binding.lifecycleId`),thresholdSessionId:Yi(t.thresholdSessionId,`binding.thresholdSessionId`),materialActivation:n.value,signingRootId:K(t.signingRootId,`binding.signingRootId`),signingRootVersion:K(t.signingRootVersion,`binding.signingRootVersion`),signerSetId:K(t.signerSetId,`binding.signerSetId`),signingWorkerId:K(t.signingWorkerId,`binding.signingWorkerId`),participantIds:Zi(t.participantIds),registeredPublicKeyB64u:Xi(t.registeredPublicKeyB64u,`binding.registeredPublicKeyB64u`),signingWorkerVerifyingShareB64u:Xi(t.signingWorkerVerifyingShareB64u,`binding.signingWorkerVerifyingShareB64u`),stateEpoch:Qi(t.stateEpoch,`binding.stateEpoch`),activationTranscriptB64u:Xi(t.activationTranscriptB64u,`binding.activationTranscriptB64u`),activationCapabilityBindingB64u:Xi(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 ia(e,t){let n=ra(e);return na(n,t),n}function aa(e){let t=_(e);if(!t)throw Error(`Stored Ed25519 Client stable server scope is invalid`);let n=N(t.runtimePolicyScope);if(!n)throw Error(`Stored Ed25519 Client server runtime policy scope is invalid`);return{relayerKeyId:K(t.relayerKeyId,`stableServerScope.relayerKeyId`),participantIds:Zi(t.participantIds),runtimePolicyScope:n,routerAbNormalSigning:se(t.routerAbNormalSigning)}}async function oa(e){let t=e.stored.payload,n=_(t);if(!n)throw Error(`Stored Ed25519 Client local material locator is invalid`);let r=ra(n.binding),i=`ed25519:${Ae(j(r.registeredPublicKeyB64u))}`,a=e.stored.payloadEnvelope;if(e.stored.profileId!==e.target.profileId||e.stored.chainIdKey!==e.target.chainIdKey||e.stored.accountAddress!==e.target.accountAddress||e.stored.keyKind!==Gi||e.stored.schemaVersion!==3||e.stored.publicKey!==i||e.stored.signerId!==r.nearEd25519SigningKeyId||a?.encVersion!==1||a.alg!==Ki)throw Error(`Stored Ed25519 Client local material record is invalid`);let o=It({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 Rt({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:Wi(JSON.stringify([e.stored.profileId,e.stored.signerSlot,e.stored.chainIdKey,e.stored.keyKind,r.materialActivation.activationId])),stableServerScope:aa(n.stableServerScope)}}function sa(e){let t=_(e.stored.payload?.binding);if(e.stored.profileId!==e.target.profileId||e.stored.chainIdKey!==e.target.chainIdKey||e.stored.accountAddress!==e.target.accountAddress||e.stored.signerSlot!==e.input.signerSlot||e.stored.signerId!==e.input.nearEd25519SigningKeyId||e.stored.keyKind!==Gi||t?.kind!==Gi||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 ca(e,t){let n=K(t,`thresholdSessionId`);return{kind:ui,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:Ct(e.materialActivation)},applicationBinding:{wallet_id:e.walletId,near_ed25519_signing_key_id:e.nearEd25519SigningKeyId,signing_root_id:e.signingRootId,key_creation_signer_slot:e.signerSlot},participantIds:e.participantIds,registeredPublicKey:j(e.registeredPublicKeyB64u),signingWorkerVerifyingShare:j(e.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(e.stateEpoch),transcript:j(e.activationTranscriptB64u),activeCapabilityBinding:Array.from(j(e.activationCapabilityBindingB64u)),materialActivation:e.materialActivation}}function la(){let e=new Uint8Array(12);return globalThis.crypto.getRandomValues(e),e}function ua(e){let t=e.identity,n=e.activeClient.metadata(),r=ea({identity:t,metadata:n}),i=la(),a=e.activeClient.sealLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:ta(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:Gi,algorithm:`ed25519`,publicKey:`ed25519:${Ae(n.registeredPublicKey)}`,signerId:t.nearEd25519SigningKeyId,payload:o,payloadEnvelope:{encVersion:1,alg:Ki,nonce:A(a.nonce),ciphertext:A(a.ciphertext),aad:Qe({profileId:e.target.profileId,signerSlot:t.signerSlot,chainIdKey:e.target.chainIdKey,accountAddress:e.target.accountAddress,keyKind:Gi,schemaVersion:3,signerId:t.nearEd25519SigningKeyId})},timestamp:Date.now(),schemaVersion:3}}async function da(e){let t=await Jn(e.store,{accountRefs:qn(e.identity.nearAccountId)});if(!t)throw Error(`Local Ed25519 material requires a persisted wallet profile`);let n=ua({target:t,activeClient:e.activeClient,identity:e.identity,stableServerScope:e.stableServerScope,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u),lifecycle:{kind:`registration_or_rehydration`}});await e.store.storeKeyMaterial(n)}async function fa(e){let t=K(e.nearAccountId,`nearAccountId`),n=await Jn(e.store,{accountRefs:qn(t)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,Ji(e.signerSlot,`signerSlot`),n.chainIdKey,Gi);return r?(sa({stored:r,target:n,input:e}),{kind:`available`,locator:await oa({stored:r,target:n,authority:e.authority})}):{kind:`unavailable`}}function pa(e){return e.publicLocator.walletId===e.identity.walletId&&e.publicLocator.nearAccountId===e.identity.nearAccountId&&e.publicLocator.signerSlot===e.identity.signerSlot}async function ma(e){let t=It({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 Rt({authority:t});if(n.authorityDigest!==e.authority.authorityDigest)throw Error(`Passkey Ed25519 authority does not match the Wallet Session`);return n}function ha(e){if(!e||e.activeClient.status().kind!==`active`)return{kind:`absent`};let t=Nn(e.activeClient.metadata());return{kind:`live`,runtime:Mn(t),materialActivation:t}}function ga(e){return{kind:`blocked`,plan:e}}async function _a(e){let t=await ma(e),n=e.publicLocator.kind===`available`&&!pa({publicLocator:e.publicLocator,identity:e.identity})?{kind:`conflict`}:e.publicLocator.kind===`available`?{...e.publicLocator,authority:t}:e.publicLocator,r;try{r=await fa({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 va(e,t){let n=jn({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 ya(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await _a(e);if(r.kind===`corrupt`)return{kind:`blocked`,plan:va(n,{kind:`absent`})};let i=jn({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 ba(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await _a(e);if(r.kind===`corrupt`)return ga(va(n,ha(e.liveMaterial)));let i=e.unlockSource.kind===`available`?{kind:`available`,authority:t}:{kind:`unavailable`},a=jn({publicLocator:n,sealed:r,runtime:ha(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,Nn(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 xa({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=Nn(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 ga(a);case`reauthorize_public_anchor`:throw Error(`Near Ed25519 material retirement requires explicit reauthorization`);default:throw Error(`Unsupported Near Ed25519 hydration plan`)}}async function xa(e){let t=e.identity,n=await Jn(e.store,{accountRefs:qn(t.nearAccountId)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,t.signerSlot,n.chainIdKey,Gi);return r?Sa({stored:r,target:n,identity:t,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u)}):{kind:`unavailable`}}async function Sa(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!==Gi||n.schemaVersion!==3||i?.encVersion!==1||i.alg!==Ki)throw Error(`Stored Ed25519 Client material record is invalid`);let a=ia(n.payload?.binding,t),o=ca(a,t.thresholdSessionId),s=`ed25519:${Ae(o.registeredPublicKey)}`;if(n.publicKey!==s)throw Error(`Stored Ed25519 Client public key does not match its sealed binding`);return{kind:`rehydrated`,activeClient:(await Vi.initializeBundled()).importLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:ta(a),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:j(i.nonce),ciphertext:j(i.ciphertext)},metadata:o})}}function Ca(e){return{materialActivation:e.materialActivation,lifecycleId:e.scope.lifecycle_id,signingRootVersion:e.scope.root_share_epoch,signingRootId:e.applicationBinding.signing_root_id,signerSetId:e.scope.signer_set_id,thresholdSessionId:e.scope.threshold_session_id,activationTranscriptB64u:A(e.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(e.activeCapabilityBinding))}}function wa(e){if(!Ne(e.binding))throw Error(`wallet custody cache accepts wallet custody seed envelopes only`);return{bindingJson:ze(e),nonceB64u:e.nonceB64u,ciphertextB64u:e.sealedCustodySecretB64u,aadHashB64u:e.aadHashB64u,ciphertextDigestB64u:e.ciphertextDigestB64u}}function Ta(e){let{binding:t}=e.material,{activation:n}=e;return{kind:ui,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:Ct(n.materialActivation)},applicationBinding:{wallet_id:t.walletId,near_ed25519_signing_key_id:t.nearEd25519SigningKeyId,signing_root_id:n.signingRootId,key_creation_signer_slot:t.signerSlot},participantIds:t.participantIds,registeredPublicKey:j(t.registeredPublicKeyB64u),signingWorkerVerifyingShare:j(t.signingWorkerVerifyingShareB64u),stateEpoch:BigInt(t.stateEpoch),transcript:j(n.activationTranscriptB64u),activeCapabilityBinding:Array.from(j(n.activationCapabilityBindingB64u)),materialActivation:n.materialActivation}}async function Ea(e){let t=Ta({material:e.material,activation:e.activation});return(await Vi.initializeBundled()).openCustodyCache({ownedFactorSecret:e.ownedFactorSecret,envelope:{bindingJson:e.envelope.bindingJson,nonce:j(e.envelope.nonceB64u),ciphertext:j(e.envelope.ciphertextB64u),aadHash:j(e.envelope.aadHashB64u),ciphertextDigest:j(e.envelope.ciphertextDigestB64u)},applicationBindingDigest:j(e.material.binding.applicationBindingDigestB64u),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:j(e.material.sealed.nonceB64u),ciphertext:j(e.material.sealed.ciphertextB64u)},metadata:t})}async function Da(e){let t=await e.loadCachedMaterial();return t.kind===`found`?{kind:`opened`,activeClient:await Ea({material:t.material,activation:e.activation,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret})}:(e.ownedFactorSecret.fill(0),{kind:`rejoin_required`})}async function Oa(e){let t=e.metadata;return await Ea({material:e.material,activation:{materialActivation:Nn(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:e.materialFacts.identity.thresholdSessionId,activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))},envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret})}function ka(e,t,n){return{walletId:e.identity.walletId,nearAccountId:e.identity.nearAccountId,nearEd25519SigningKeyId:e.identity.nearEd25519SigningKeyId,thresholdSessionId:e.identity.thresholdSessionId,signerSlot:e.identity.signerSlot,rpId:t,credentialIdB64u:n,signingRootId:e.identity.signingRootId,signingRootVersion:e.identity.signingRootVersion,signingWorkerId:e.stableServerScope.routerAbNormalSigning.signingWorkerId}}async function Aa(e){let t=j(e.passkeyPrfFirstB64u),n=null;try{n=await Oa(e);let r=e.registration.keyMaterials.find(ja);if(!r)throw Error(`The owner registration has no NEAR material target.`);let i=ua({target:{profileId:r.profileId,chainIdKey:r.chainIdKey,accountAddress:r.accountAddress},activeClient:n,identity:ka(e.materialFacts,e.rpId,e.credentialIdB64u),stableServerScope:e.materialFacts.stableServerScope,ownedPasskeyPrfFirst:t,lifecycle:{kind:`registration_or_rehydration`}});return{profiles:e.registration.profiles,initialAuthMethod:e.registration.initialAuthMethod,authenticators:e.registration.authenticators,signerActivations:e.registration.signerActivations,keyMaterials:[...e.registration.keyMaterials,i],lastProfileState:e.registration.lastProfileState}}finally{n?.dispose(),t.fill(0),e.ownedFactorSecret.fill(0)}}function ja(e){return e.keyKind===Qn}function Ma(e){let t=String(e.rpId).trim(),n=String(e.nearAccountId).trim(),r=String(e.nearEd25519SigningKeyId).trim(),i=String(e.relayerKeyId).trim(),a=String(e.credentialIdB64u).trim(),o=D(e.participantIds),s=Math.floor(Number(e.signerSlot));if(!t||!n||!r||!i||!a||!o||!Number.isSafeInteger(s)||s<1)throw Error(`Passkey Ed25519 sealed restore metadata is incomplete`);return{rpId:t,nearAccountId:n,nearEd25519SigningKeyId:r,relayerKeyId:i,participantIds:[...o],runtimePolicyScope:e.runtimePolicyScope,signerSlot:s,routerAbNormalSigning:e.routerAbNormalSigning,credentialIdB64u:a,materialActivation:e.materialActivation}}async function Na(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})}function Pa(){return Reflect.get(globalThis,`__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS`)===!0}const Fa=`[Registration] wallet timing summary`,Ia=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 La(e,t,n){Pa()&&console.info(`[Registration] ECDSA Server-Timing header presence`,{leg:t,present:!!n?.trim()}),Ra(e,n)}function Ra(e,t){if(e)for(let[n,r]of za(t))e.record(n,r)}function za(e){if(!e)return[];let t=[];for(let n of e.split(`,`)){let e=n.split(`;`),r=String(e[0]||``).trim(),i=Ia.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 q(e){Va({ceremonyId:e.ceremonyId,stage:e.stage,durationMs:Math.max(0,performance.now()-e.startedAt),outcome:e.outcome})}function Ba(e,t,n){Va({ceremonyId:e,stage:`session_hydration.${t}`,durationMs:n,outcome:`success`})}function Va(e){if(Pa())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 Ha=[`passkeyAuthConfirmationMs`,`passkeyAuthPrfExtractionMs`,`passkeyAuthCredentialRedactionMs`,`passkeyAuthWorkerReadyMs`,`passkeyAuthWorkerRequestRoundTripMs`,`passkeyAuthWorkerResponseValidationMs`,`passkeyAuthRequestSetupMs`,`passkeyAuthPromptUserMs`,`passkeyAuthPromptElementDefineMs`,`passkeyAuthPromptMountMs`,`passkeyAuthPromptHostFirstUpdateMs`,`passkeyAuthPromptHostInteractiveMs`,`passkeyAuthPromptConfirmEventMs`,`passkeyAuthPromptDecisionWaitMs`,`passkeyAuthCredentialCreateStartMs`,`passkeyAuthCredentialCreateMs`,`passkeyAuthCredentialSerializeMs`,`passkeyAuthDuplicateRetryCount`,`passkeyAuthMainThreadTotalMs`],Ua=[`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`],Wa=[`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`ecdsaRegistrationClientCreateMs`,`ecdsaRegistrationGatewayRespondMs`,`ecdsaRegistrationClientProofVerifyMs`,`ecdsaRegistrationGatewayActivateMs`,`ecdsaRegistrationClientActivationFinalizeMs`],Ga=[`ecdsaRegistrationPersistenceMs`,`ecdsaRegistrationSessionFinalizeMs`,`ecdsaRegistrationLocalRecordPersistenceMs`,`ecdsaRegistrationTargetCount`,`ecdsaRegistrationClientFinalizeMs`,`ecdsaRegistrationClientMaterialStoreMs`,`ecdsaRegistrationServerBootstrapMs`,`ecdsaRegistrationPasskeyBootstrapStoreMs`,`ecdsaRegistrationRoleLocalRecordPersistenceMs`,`ecdsaRegistrationWarmSessionHydrationMs`,`ecdsaRegistrationWarmSessionWorkerReadyMs`,`ecdsaRegistrationWarmSessionWorkerPutMs`,`ecdsaRegistrationWarmSessionSealedRecordPersistMs`,`ecdsaRegistrationWarmSessionSealResolveTransportMs`,`ecdsaRegistrationWarmSessionSealExistingRecordReadMs`,`ecdsaRegistrationWarmSessionSealPolicyReadMs`,`ecdsaRegistrationWarmSessionSealApplyServerSealMs`,`ecdsaRegistrationWarmSessionSealApplyRuntimeSetupMs`,`ecdsaRegistrationWarmSessionSealApplyClientSealMs`,`ecdsaRegistrationWarmSessionSealApplyServerRouteMs`,`ecdsaRegistrationWarmSessionSealApplyClientUnsealMs`,`ecdsaRegistrationWarmSessionSealApplyPolicyUpdateMs`,`ecdsaRegistrationWarmSessionSealRegisterMs`,`ecdsaRegistrationWarmSessionSealVerifyReadMs`,`ecdsaRegistrationEmailOtpSessionCommitMs`],Ka=[...Wa,...Ga],qa=[`registrationWarmupMs`,`registrationWarmupWaitMs`,`registrationWarmupAuthenticatedWalletStateMs`,`registrationWarmupNoncePrefetchMs`,`registrationWarmupKeyMaterialReadMs`,`registrationWarmupUiConfirmPrewarmMs`,`registrationWarmupEmailOtpWorkerPrewarmMs`,`registrationWarmupEmailOtpYaoWasmInitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,...Ha,`emailOtpEnrollmentMaterialMs`,...Ua,`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`,...Wa,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,...Ga];function J(e){throw Error(`Unexpected registration timing branch: ${String(e)}`)}function Ja(e){switch(e.kind){case`near_ed25519`:return`near_ed25519`;case`evm_family_ecdsa`:return`evm_family_ecdsa`;default:return J(e)}}function Ya(e){return{kind:`signer_set`,branches:e.branches.map(Ja)}}function Xa(e,t){return e.branches.includes(t)}function Za(e){return Math.max(0,Math.round(performance.now()-e))}function Qa(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 $a(e){if(!v(e)||e.kind!==`wallet_registration_route_diagnostics_v1`||e.route!==`wallets_register_start`&&e.route!==`wallets_register_ecdsa_derivation_respond`&&e.route!==`wallets_register_finalize`||!Array.isArray(e.entries))return null;let t=[];for(let n of e.entries){if(!v(n))continue;let e=Qa(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 eo(e){return{kind:e.kind,route:e.route,entries:e.entries.map(to)}}function to(e){return{name:e.name,durationMs:e.durationMs}}function no(e,t){let n={};for(let r of e)n[r]=t[r];return n}function ro(e){let t={};for(let n of e)t[n]=0;return t}function io(e){switch(e.authMethod){case`passkey`:return{kind:`passkey`,authProofMs:e.buckets.authProofMs,...no(Ha,e.buckets),emailOtpEnrollmentMaterialMs:0,emailOtpRecoveryCodeBackupMs:0};case`email_otp`:return{kind:`email_otp`,authProofMs:e.buckets.authProofMs,...ro(Ha),emailOtpEnrollmentMaterialMs:e.buckets.emailOtpEnrollmentMaterialMs,emailOtpRecoveryCodeBackupMs:e.buckets.emailOtpRecoveryCodeBackupMs};default:return J(e.authMethod)}}function ao(e){return Xa(e.signerSet,`near_ed25519`)?{kind:`ed25519_yao_enabled`,...no(Ua,e.buckets)}:{kind:`ed25519_disabled`,...ro(Ua)}}function oo(e){return Xa(e.signerSet,`evm_family_ecdsa`)?{kind:`ecdsa_enabled`,...no(Ka,e.buckets)}:{kind:`ecdsa_disabled`,...ro(Ka)}}const so=[`registrationWarmupWaitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,`emailOtpEnrollmentMaterialMs`,`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`,`walletRegisterStartMs`,`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,`ecdsaRegistrationPersistenceMs`];function co(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 lo(e){return{name:e.name,kind:e.kind,startOffsetMs:e.startOffsetMs,endOffsetMs:e.endOffsetMs}}function uo(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 fo(e){let t=so.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=uo(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(lo)}}function po(e){let t=no(qa,e.buckets);return{...t,auth:io({authMethod:e.authMethod,buckets:t}),ed25519:ao({signerSet:e.signerSet,buckets:t}),ecdsa:oo({signerSet:e.signerSet,buckets:t}),emailOtpYaoPrewarm:{...e.emailOtpYaoPrewarm}}}var mo=class{startedAt;nearStageStartedAt;buckets;relayDiagnostics;spans;emailOtpYaoPrewarm;constructor(e){this.startedAt=e,this.nearStageStartedAt=e,this.buckets=ro(qa),this.relayDiagnostics=[],this.spans=[],this.emailOtpYaoPrewarm=ho()}markNearStage(e,t){let n=performance.now();Va({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]=Za(n),this.recordSpan(e,n,performance.now())}}record(e,t){let n=Math.max(0,Math.round(t));this.buckets[e]+=n}snapshot(){return no(qa,this.buckets)}spansSnapshot(){return this.spans.map(lo)}recordSpan(e,t,n){this.spans.push({name:e,kind:co(e),startOffsetMs:Math.max(0,Math.round(t-this.startedAt)),endOffsetMs:Math.max(0,Math.round(n-this.startedAt))})}captureRouteDiagnostics(e){let t=$a(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(eo)}totalMs(){return Za(this.startedAt)}};function ho(){return{kind:`not_requested`,elapsedMs:0,workerPrewarmMs:0,yaoWasmInitMs:0}}function go(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:fo({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:po({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function _o(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:fo({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),errorCode:e.errorCode,relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:po({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function vo(e){Pa()&&(console.info(Fa,e),console.info(`${Fa} ${JSON.stringify(e)}`))}function yo(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 Y(e){return{kind:`unavailable`,reason:e}}function bo(e){let t=e.selected;if(t.kind!==`resolved`)switch(t.kind){case`missing_selection`:return Y(`selected_authority_missing`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return Y(`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?Y(`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}:Y(`auth_method_mismatch`):Y(`authority_inactive`):Y(`auth_method_inactive`):Y(`wallet_locked`)}function xo(e){let t=e.authority.signerActivations;return e.keyFamily===`ed25519`?t.ed25519?.materialActivation??null:t.ecdsa?.materialActivation??null}function So(e){return e.session.capabilitySubjects.filter(t=>t.kind===`sign`&&t.keyFamily===e.keyFamily&&f(t.materialActivation,e.materialActivation)).length===1}function Co(e){return rr(e)?{keyFamily:`ecdsa_secp256k1`,materialActivation:e.signer.materialActivation}:{keyFamily:`ed25519`}}async function wo(e){let{input:t,ports:n}=e,r;try{r=await n.resolveSelectedWalletAuthority(String(t.walletId))}catch{return Y(`persistence_unavailable`)}let i=bo({selected:r,walletId:t.walletId,authMethod:t.authMethod});if(`kind`in i)return i;let a=xo({authority:i.authority,keyFamily:t.requiredSigningSubject.keyFamily});if(!a)return Y(`signer_material_missing`);if(t.requiredSigningSubject.keyFamily===`ecdsa_secp256k1`&&!f(t.requiredSigningSubject.materialActivation,a))return Y(`signer_material_mismatch`);let o;try{o=await n.readExactWithOperationCredential({walletId:t.walletId,authorityId:i.authority.authorityId,authMethodId:i.authMethod.walletAuthMethodId})}catch{return Y(`persistence_unavailable`)}switch(o.kind){case`found`:break;case`missing`:return Y(`wallet_session_missing`);case`upgrade_required`:return Y(`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?Y(`wallet_session_identity_mismatch`):t.expiry.kind===`unexpired`&&s.expiresAtMs<=t.expiry.nowMs?Y(`wallet_session_expired`):t.expiry.kind===`expired`&&s.expiresAtMs>t.expiry.nowMs?Y(`wallet_session_not_expired`):So({session:s,keyFamily:t.requiredSigningSubject.keyFamily,materialActivation:a})?{kind:`resolved`,resolved:{authMethod:i.authMethod,session:s,operationCredential:c,walletSessionId:c.walletSessionId,materialActivation:a}}:Y(`wallet_session_capability_mismatch`)}function To(e){return String(e||``).trim()}function Eo(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:0}function Do(e){let t=Math.floor(Number(e));return Number.isSafeInteger(t)&&t>=0?t:null}function Oo(e){return e.expiresAtMs<=e.nowMs?{kind:`expired`}:e.remainingUses<=0?{kind:`exhausted`}:null}function ko(e,t){let n=To(e);return n?{kind:`wallet_session_opaque`,walletSessionToken:n,credential:{kind:`wallet_session_opaque`,walletSessionToken:n,home:t}}:null}function Ao(e){let n=ko(To(e.walletSessionToken),e.home);if(!n)return{ok:!1,reason:`missing_wallet_session_token`};let r=To(e.walletId),i=To(e.nearAccountId),a=To(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=Do(e.nowMs),d=Eo(e.remainingUses),f=Eo(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=Oo({remainingUses:Math.max(0,Math.floor(e.remainingUses)),expiresAtMs:Math.max(0,Math.floor(e.expiresAtMs)),nowMs:u});if(p?.kind===`expired`)return{ok:!1,reason:`expired`};if(p?.kind===`exhausted`)return{ok:!1,reason:`exhausted`};let m;try{m=F(e.runtimePolicyScope)}catch{return{ok:!1,reason:`missing_signing_root`}}return m.signingRootId!==To(e.signingRootId)||m.signingRootVersion!==To(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:To(m.signingRootVersion),routerAbNormalSigning:e.routerAbNormalSigning}}}const jo=He.signingSessionSeals,Mo=He.signingSessionRestoreLeases,No=[Ue.ed25519ThresholdSessionId,Ue.ecdsaThresholdSessionId];function Po(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||Error(`IndexedDB request failed`))})}function Fo(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 Io(){if(We.isDisabled())return null;try{return Ge(await We.getDB())}catch{return null}}function Lo(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 Ro(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 zo(e,t){let n=new Map;for(let r of No)try{let i=await Lo(e.index(r),t);for(let e of i)n.set(String(e.primaryKey),e)}catch{}return n.size?[...n.values()]:await Ro(e).catch(()=>[])}const X=new class{async collectAllRawSealedRecordEntries(){let e=await Io();if(!e)return[];let t=e.transaction(jo,`readonly`),n=await Ro(t.objectStore(jo));return await Fo(t).catch(()=>void 0),n}async collectRawSealedRecordEntriesByThresholdSessionId(e){let t=await Io();if(!t)return[];let n=t.transaction(jo,`readonly`),r=await zo(n.objectStore(jo),e);return await Fo(n).catch(()=>void 0),r}async replaceSealedRecord(e){let t=await Io();if(!t)return;let n=t.transaction(jo,`readwrite`),r=n.objectStore(jo);for(let t of e.staleStoreKeys)r.delete(t);r.put(e.row),await Fo(n)}async replaceSealedRecordAndDeleteRestoreLease(e){let t=await Io();if(!t)return!1;let n=t.transaction([jo,Mo],`readwrite`),r=n.objectStore(jo);for(let t of e.staleStoreKeys)r.delete(t);return r.put(e.row),n.objectStore(Mo).delete(e.restoreLeaseKey),await Fo(n),!0}async deleteSealedRecords(e){if(!e.length)return;let t=await Io();if(!t)return;let n=t.transaction(jo,`readwrite`),r=n.objectStore(jo);for(let t of e)r.delete(t);await Fo(n).catch(()=>void 0)}async deleteRestoreLease(e){let t=await Io();if(!t)return;let n=t.transaction(Mo,`readwrite`);n.objectStore(Mo).delete(e),await Fo(n).catch(()=>void 0)}async deleteRestoreLeaseIf(e){let t=await Io();if(!t)return;let n=t.transaction(Mo,`readwrite`),r=n.objectStore(Mo),i=await Po(r.get(e.leaseKey));e.shouldDelete(i)&&r.delete(e.leaseKey),await Fo(n).catch(()=>void 0)}async withRestoreLeaseTransaction(e,t){let n=await Io();if(!n)return null;try{let r=n.transaction([jo,Mo],`readwrite`),i=r.objectStore(jo),a=r.objectStore(Mo),o=await zo(i,e),s=!1,c=await t({entries:o,getRawRestoreLease:async e=>await Po(a.get(e)),putRestoreLease:e=>a.put(e),abort:()=>{s=!0}});return s?(r.abort(),c):(await Fo(r),c)}catch{return null}}};function Bo(e){throw Error(`Unhandled durable sealed-session identity: ${String(e)}`)}function Vo(e){return{kind:`delete_durable_sealed_session`,durableRecord:e.durableRecord,deleteReason:e.deleteReason,preserveResolvedIdentity:e.preserveResolvedIdentity}}function Ho(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 Bo(e)}}function Uo(e){return[`ecdsa-material-v2`,e.walletId,e.authMethod,Ye(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 Wo=`ecdsa_inactive_sealed_material_v1`,Go=`sealed_record`;function Ko(e){let t=_(e)??{},n=m(t.ed25519),r=m(t.ecdsa);return{...n?{ed25519:n}:{},...r?{ecdsa:r}:{}}}function qo(e){return Ko((_(e)??{}).thresholdSessionIds)}function Jo(e){let t=_(e);if(!t)return!1;let n=[`signing`,`Grant`,`Id`].join(``),r=[`signing`,`grant`,`id`].join(`_`);return Object.prototype.hasOwnProperty.call(t,n)||Object.prototype.hasOwnProperty.call(t,r)}function Yo(e){let t=String(e||``).trim();return t===`ed25519`||t===`ecdsa`?t:void 0}function Xo(e){let t=_(e);return t&&Go in t?t[Go]:e}function Zo(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?Ye(t):void 0,expires_at_ms:e.expiresAtMs,updated_at:e.updatedAtMs,[Go]:e}}function Qo(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:Ye(e.ecdsaRestore.chainTarget),updated_at:e.updatedAtMs,[Go]:e}}function $o(e){return Zo(e)}function es(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:void 0}function ts(e){return e.curve?e.curve:e.thresholdSessionIds.ecdsa?`ecdsa`:e.thresholdSessionIds.ed25519?`ed25519`:null}function ns(e){try{return zt(e)}catch{return null}}function rs(e){switch(e){case`login`:case`registration`:case`manual-bootstrap`:case`email_otp`:return e;default:return null}}function is(e){try{let t=F(I(e)),n=m(t.signingRootId),r=m(t.signingRootVersion);return n&&r?{signingRootId:n,signingRootVersion:r}:null}catch{return null}}function as(e){let t=_(e);if(!t)return;let n=null;try{n=Ke(_(t.chainTarget)??{})}catch{n=null}let r=rs(t.source),i=jt(t.authority),a=m(t.rpId),o=t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?t.runtimePolicyScope:void 0,s=is(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=Xt(t.roleLocalMaterialRef)}catch{p=null}let h=At(t.emailOtpAuthority),g=t.provider===`google`||t.provider===`email`?t.provider:null,v=m(t.providerSubjectId),y=m(t.emailHashHex),b=m(t.keyHandle),x=m(t.ecdsaThresholdKeyId),S=es(t.ethereumAddress),C=m(t.relayerKeyId),w=m(t.thresholdEcdsaPublicKeyB64u),T=ns(t.routerAbEcdsaDerivationNormalSigning),E=null;try{E=wt(t.publicCapability)}catch{E=null}let D=ps(t.participantIds);if(!n||!r||!u||!d||!b||!S||!C||!T||!E||!D.length)return;let O=f&&a&&p&&i&&r!==`email_otp`?{source:r,authority:i,roleLocalMaterialRef:p,rpId:a,credentialIdB64u:f}:v&&g&&y&&p&&i&&h&&r===`email_otp`?{source:r,provider:g,providerSubjectId:v,emailHashHex:y,authority:i,emailOtpAuthority:h,roleLocalMaterialRef:p}:null;if(!O)return;let k=m(t.clientVerifyingShareB64u);return{chainTarget:n,signingRootId:u,signingRootVersion:d,...O,keyHandle:b,...x?{ecdsaThresholdKeyId:x}:{},ethereumAddress:S,relayerKeyId:C,...k?{clientVerifyingShareB64u:k}:{},...w?{thresholdEcdsaPublicKeyB64u:w}:{},participantIds:D,routerAbEcdsaDerivationNormalSigning:T,publicCapability:E,...o?{runtimePolicyScope:o}:{}}}function os(e){let t=_(e);if(!t)return;let n=m(t.nearAccountId),i=m(t.nearEd25519SigningKeyId),a=m(t.rpId),o=m(t.credentialIdB64u),s=m(t.providerSubjectId),c=t.provider===`google`||t.provider===`email`?t.provider:null,l=m(t.emailHashHex),u=m(t.authSubjectId),f=m(t.relayerKeyId),p=ps(t.participantIds),h=r(t.signerSlot),g=oe(t.routerAbNormalSigning),v=d(t.materialActivation),y=o&&!s&&v.ok?{credentialIdB64u:o,materialActivation:v.value}:c&&s&&l&&!o&&v.ok?{provider:c,providerSubjectId:s,emailHashHex:l,materialActivation:v.value}:null;if(!(!n||!i||!a||!f||!p.length||h==null||h<=0||!g||!y||u))return{nearAccountId:n,nearEd25519SigningKeyId:i,rpId:a,...y,relayerKeyId:f,participantIds:p,...t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?{runtimePolicyScope:t.runtimePolicyScope}:{},signerSlot:h,routerAbNormalSigning:g}}function ss(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(ls).join(`:`)}function cs(e){let t=e.restore.roleLocalMaterialRef;return[`inactive-material`,e.walletId,e.authMethod,`ecdsa`,Ye(e.restore.chainTarget),t.materialActivation.activationId].map(ls).join(`:`)}function ls(e){return encodeURIComponent(String(e||``).trim())}function us(e){let t=String(e||``).trim();return t===`passkey`||t===`email_otp`?t:void 0}function ds(e){let t=_(e);return!!(m(t?.subjectId)||m(t?.userId))}function fs(e){let t=_(e);return!!(m(t?.signingRootId)||m(t?.signingRootVersion))}function ps(e){return Array.isArray(e)?e.map(e=>Math.floor(Number(e))).filter(e=>Number.isFinite(e)&&e>0):[]}function ms(e){return{authMethod:m(e?.authMethod)||null,curve:m(e?.curve)||null,storeKey:m(e?.storeKey)||null,walletId:m(e?.walletId)||null,thresholdSessionIds:qo(e),hasEcdsaRestore:!!_(e?.ecdsaRestore),hasEd25519Restore:!!_(e?.ed25519Restore),issuedAtMs:r(e?.issuedAtMs),expiresAtMs:r(e?.expiresAtMs),remainingUses:r(e?.remainingUses),updatedAtMs:r(e?.updatedAtMs)}}function Z(e,t,n){return{kind:e,storeKey:m(t?.storeKey)||null,walletId:m(t?.walletId)||null,reason:n,safeSummary:ms(t)}}function hs(e){return{v:2,alg:le,storageScope:ce,authMethod:e,secretKind:ue}}function gs(e){e=Xo(e);let t=_(e);if(!t)return Z(`malformed`,null,`invalid_payload`);if(Jo(t))return Z(`delete_required`,t,`invalid_identity`);if(t.recordKind===`ecdsa_reauth_anchor_v1`)return Z(`delete_required`,t,`invalid_header`);if(t.recordKind===Wo){let e=ys(t);return e?{kind:`ecdsa_inactive_material`,record:e}:Z(`malformed`,t,`invalid_identity`)}if(Number(t.v)===1)return Z(`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 Z(`malformed`,t,`invalid_header`);let n=String(t.authMethod||``).trim(),i=qo(t),a=m(t.sealedSecretB64u),o=Yo(t.curve),s=m(t.subjectId),c=m(t.userId),l=m(t.walletId),u=m(t.signingRootId),d=m(t.signingRootVersion),f=d||(u?`default`:null),p=m(t.relayerUrl),h=m(t.keyVersion),g=m(t.groupId),v=r(t.issuedAtMs),y=r(t.expiresAtMs),b=r(t.remainingUses),x=r(t.updatedAtMs);if(!a||!h||g!==`rfc2409-group2`||n!==`passkey`&&n!==`email_otp`||!i.ed25519&&!i.ecdsa||!l)return Z(`malformed`,t,`invalid_identity`);let S=ts({curve:o,thresholdSessionIds:i});if(!S||v==null||v<=0||y==null||y<=0||b==null||b<0||x==null||x<=0)return Z(`malformed`,t,`invalid_identity`);let C=_(t.ecdsaRestore),w=_(t.ed25519Restore),T=as(t.ecdsaRestore),E=os(t.ed25519Restore);if(S===`ecdsa`){if(!i.ecdsa)return Z(`malformed`,t,`invalid_identity`);if(s||c||u||d)return Z(`delete_required`,t,`invalid_identity`);if(!C||!p)return Z(`rebuild_required`,t,`missing_restore_metadata`);if(!ps(C.participantIds).length)return Z(`delete_required`,t,`missing_participant_ids`);if(!T)return Z(`rebuild_required`,t,`missing_restore_metadata`);let e=Uo({walletId:l,authMethod:n,chainTarget:T.chainTarget,materialActivation:T.roleLocalMaterialRef.materialActivation}),r=m(t.storeKey);return r&&r!==e?Z(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...hs(n),storeKey:e,thresholdSessionIds:{...i.ed25519?{ed25519:i.ed25519}:{},ecdsa:i.ecdsa},sealedSecretB64u:a,curve:`ecdsa`,walletId:l,relayerUrl:p,keyVersion:h,groupId:R,ecdsaRestore:T,...E?{ed25519Restore:E}:{},issuedAtMs:v,expiresAtMs:y,remainingUses:b,updatedAtMs:x}}}if(!i.ed25519)return Z(`malformed`,t,`invalid_identity`);if(s||c)return Z(`delete_required`,t,`invalid_identity`);if(!w||!p)return Z(`rebuild_required`,t,`missing_restore_metadata`);if(!ps(w.participantIds).length)return Z(`delete_required`,t,`missing_participant_ids`);if(!E)return Z(`rebuild_required`,t,`missing_restore_metadata`);let D=ss({walletId:l,authMethod:n,restore:E}),O=m(t.storeKey);return O&&O!==D?Z(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...hs(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:R,...T?{ecdsaRestore:T}:{},ed25519Restore:E,issuedAtMs:v,expiresAtMs:y,remainingUses:b,updatedAtMs:x}}}function _s(e){let t=gs(Xo(e));return t.kind===`current`?t.record:null}function vs(e){let t=_(e);if(!t||t.clientVerifyingShareB64u!=null)return null;let n,r,i,a;try{n=Ke(t.chainTarget&&typeof t.chainTarget==`object`?t.chainTarget:{}),r=I(t.runtimePolicyScope);let e=zt(t.routerAbEcdsaDerivationNormalSigning);if(!e)return null;i=e,a=wt(t.publicCapability)}catch{return null}let o=m(t.signingRootId),s=m(t.signingRootVersion),c=null;try{c=Xt(t.roleLocalMaterialRef)}catch{c=null}let l=jt(t.authority),u=At(t.emailOtpAuthority),d=m(t.keyHandle),f=m(t.ecdsaThresholdKeyId),p=m(t.ethereumAddress),h=m(t.relayerKeyId),g=m(t.thresholdEcdsaPublicKeyB64u),v=ps(t.participantIds);if(!o||!s||!d||!f||!p||!h||!g||!v.length)return null;let y={chainTarget:n,signingRootId:o,signingRootVersion:s,keyHandle:d,ecdsaThresholdKeyId:f,ethereumAddress:p,relayerKeyId:h,thresholdEcdsaPublicKeyB64u:g,participantIds:v,runtimePolicyScope:r,routerAbEcdsaDerivationNormalSigning:i,publicCapability:a};switch(t.source){case`email_otp`:{let e=t.provider===`google`||t.provider===`email`?t.provider:null,n=m(t.providerSubjectId),r=m(t.emailHashHex);return!e||!n||!r||!c||!l||!u||t.rpId!=null||t.credentialIdB64u!=null?null:{...y,source:`email_otp`,provider:e,providerSubjectId:n,emailHashHex:r,authority:l,emailOtpAuthority:u,roleLocalMaterialRef:c}}case`login`:case`registration`:case`manual-bootstrap`:{let e=m(t.rpId),n=m(t.credentialIdB64u);return!e||!n||!c||!l||t.providerSubjectId!=null||t.emailHashHex!=null?null:{...y,source:t.source,authority:l,roleLocalMaterialRef:c,rpId:e,credentialIdB64u:n}}default:return null}}function ys(e){let t=_(Xo(e));if(!t||t.recordKind!==Wo||Jo(t)||t.thresholdSessionIds!=null||t.ed25519Restore!=null||t.curve!==`ecdsa`)return null;let n=us(t.authMethod),i=m(t.walletId),a=m(t.relayerUrl),o=vs(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=cs({walletId:i,authMethod:n,restore:o});return m(t.storeKey)===f?bs({storeKey:f,walletId:i,relayerUrl:a,sealedSecretB64u:s,keyVersion:c,updatedAtMs:u,authorizationRetirementReason:d,authMethod:n,ecdsaRestore:o}):null}function bs(e){let{authMethod:t,ecdsaRestore:n}=e,r={recordKind:Wo,storeKey:e.storeKey,curve:`ecdsa`,walletId:e.walletId,relayerUrl:e.relayerUrl,alg:le,storageScope:ce,secretKind:ue,sealedSecretB64u:e.sealedSecretB64u,keyVersion:e.keyVersion,groupId:R,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 xs(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 Ss(e){let t=String(e.thresholdSessionId||``).trim(),n=Yo(e.curve),i=e.authMethod===`passkey`||e.authMethod===`email_otp`?e.authMethod:void 0;if(!n||!i)return null;let a=Cs({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=as(e.ecdsaRestore),h=os(e.ed25519Restore);if(ds(e)||n===`ecdsa`&&(!p?.chainTarget||!o||fs(e)))return null;let g,_;e.curve===`ed25519`&&(g=m(e.signingRootId),_=m(e.signingRootVersion));let v=gs({...hs(i),thresholdSessionIds:a,sealedSecretB64u:s,curve:n,...o?{walletId:o}:{},...g?{signingRootId:g}:{},..._?{signingRootVersion:_}:{},...m(e.relayerUrl)?{relayerUrl:m(e.relayerUrl)}:{},keyVersion:f,groupId:R,...p?{ecdsaRestore:p}:{},...h?{ed25519Restore:h}:{},issuedAtMs:u,expiresAtMs:c,remainingUses:l,updatedAtMs:d});return v.kind===`current`?v.record:(xs({operation:`build current sealed session record`,classification:v}),null)}function Cs(e){let t=Ko(e.thresholdSessionIds),n=String(e.thresholdSessionId||``).trim();return n&&(e.curve===`ed25519`&&t.ed25519===n||e.curve===`ecdsa`&&t.ecdsa===n)?t:{}}function ws(e,t){let n=m(t),r=m(e.ecdsaThresholdKeyId),i=m(e.thresholdEcdsaPublicKeyB64u);if(!n||!r||!i)return null;let a;try{a=I(e.runtimePolicyScope)}catch{return null}let o={chainTarget:e.chainTarget,signingRootId:e.signingRootId,signingRootVersion:e.signingRootVersion,keyHandle:e.keyHandle,ecdsaThresholdKeyId:r,ethereumAddress:e.ethereumAddress,relayerKeyId:e.relayerKeyId,thresholdEcdsaPublicKeyB64u:i,participantIds:[...e.participantIds],runtimePolicyScope:a,routerAbEcdsaDerivationNormalSigning:e.routerAbEcdsaDerivationNormalSigning,publicCapability:e.publicCapability};switch(e.source){case`email_otp`:return{...o,source:`email_otp`,provider:e.provider,providerSubjectId:e.providerSubjectId,emailHashHex:e.emailHashHex,authority:e.authority,emailOtpAuthority:e.emailOtpAuthority,roleLocalMaterialRef:Xt(e.roleLocalMaterialRef)};case`login`:case`registration`:case`manual-bootstrap`:return{...o,source:e.source,authority:e.authority,roleLocalMaterialRef:Xt(e.roleLocalMaterialRef),rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}}}function Ts(e){let t=e.record,n=ws(t.ecdsaRestore,t.relayerUrl);return n?bs({storeKey:cs({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 Es(e){let t=Ts(e);if(!t)throw Error(`[SigningSessionSealedStore] inactive ECDSA material requires exact public restore facts`);return t}const Ds=15e3;function Os(e){return M(e,32,`sealed signing session restore IDs`)}function ks(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 As(e){let t=new Set,n=m(e.walletId);return n&&t.add(n),t}function js(e,t){let n=As(e);if(!n.size)return!1;for(let e of As(t))if(n.has(e))return!0;return!1}function Ms(e,t){if(!js(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||!Ze(i,a))return!1}return!0}function Ns(e){return C({storeKey:e.storeKey,walletId:e.walletId,authMethod:e.authMethod,signingRootId:e.signingRootId??null,signingRootVersion:e.signingRootVersion??null,restore:e.ed25519Restore})}function Ps(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 Fs(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 Is(e,t={writeCanonical:!1}){let n=e[0];if(!n)return null;let r=Ns(n.record);for(let t of e.slice(1))if(Ns(t.record)!==r)throw Error(`[SigningSessionSealedStore] exact Ed25519 material has conflicting public identity facts`);let i=e.reduce(Fs),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 X.replaceSealedRecord({row:$o(i.record),staleStoreKeys:o}),i.record}async function Ls(e){let t=Xo(e.value),n=gs(t);if(n.kind!==`current`)return n;let r=_(t);return Jo(_(e.value))||Jo(r)?Z(`delete_required`,r,`invalid_identity`):n}function Rs(e){return qo(Xo(e))}function zs(e,t,n,r){xs({operation:e,classification:t}),(t.kind===`delete_required`||t.kind===`malformed`)&&r.push(n)}function Bs(e){let t=_(e);if(!t)return null;if(_(t.lease))return Bs(t.lease);if(Number(t.v)!==1||Jo(t))return null;let n=m(t.leaseKey),i=m(t.ownerId),a=m(t.attemptId),o=r(t.startedAtMs),s=r(t.expiresAtMs);return!n||!i||!a||o==null||o<=0||s==null||s<=o?null:{v:1,leaseKey:n,ownerId:i,attemptId:a,startedAtMs:o,expiresAtMs:s}}function Vs(e){return{v:1,leaseKey:e.leaseKey,ownerId:e.ownerId,attemptId:Os(`restore-attempt`),startedAtMs:e.nowMs,expiresAtMs:e.nowMs+e.ttlMs}}function Hs(e,t,n){return!(e.authMethod!==n.authMethod||e.thresholdSessionIds[n.curve]!==t||n.curve===`ecdsa`&&(!e.ecdsaRestore?.chainTarget||!Ze(e.ecdsaRestore.chainTarget,n.chainTarget)))}function Us(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 Ws(e){let t=await X.collectRawSealedRecordEntriesByThresholdSessionId(e);return t.length?t:(await X.collectAllRawSealedRecordEntries()).filter(t=>{let n=Rs(t.value);return n.ed25519===e||n.ecdsa===e})}async function Gs(e,t,n){let r=await Ws(e),i=null,a=[],o=[];for(let s of r){let r=await Ls(s);if(r.kind===`current`){Hs(r.record,e,t)&&(i=r.record,r.record.curve===`ed25519`&&a.push(Ps(s,r.record)));continue}zs(n,r,s.primaryKey,o)}return await X.deleteSealedRecords(o),a.length>0?await Is(a):i}async function Ks(e,t){try{let n=await Ws(e),r=[];for(let i of n){let n=await Ls(i),a=n.kind===`current`?n.record:null;a?.storeKey&&Hs(a,e,t)&&r.push(i.primaryKey)}await X.deleteSealedRecords(r)}catch{}}async function qs(e){if(!As(e).size||!e.authMethod)return[];try{let t=await X.collectAllRawSealedRecordEntries(),n=[];for(let r of t){let t=await Ls(r),i=t.kind===`current`?t.record:null;i&&i.storeKey!==e.storeKey&&Ms(i,e)&&n.push(i)}return n}catch{return[]}}function Js(e){if(e.curve!==`ecdsa`)return null;let t=ws(e.ecdsaRestore,e.relayerUrl);return t?cs({walletId:e.walletId,authMethod:e.authMethod,restore:t}):null}async function Ys(e,t){let n=Us(t,`read`),r=String(e||``).trim();return r?await Gs(r,n,`read`):null}function Xs(e,t){return e.curve===`ed25519`&&e.authMethod===t.authMethod&&f(e.ed25519Restore.materialActivation,t.materialActivation)}async function Zs(e){let t=await X.collectAllRawSealedRecordEntries(),n=[],r=[];for(let i of t){let t=await Ls(i);if(t.kind===`current`){let n=t.record;Xs(n,e)&&r.push(Ps(i,n));continue}zs(`read exact Ed25519 material`,t,i.primaryKey,n)}return await X.deleteSealedRecords(n),await Is(r)}async function Qs(e){let t=m(e.walletId);if(!t)return[];let n=Us(e.filter,`list exact account records`),r=e.filter.curve===`ecdsa`?e.filter.chainTarget:void 0,i=await X.collectAllRawSealedRecordEntries(),a=[];try{let e=[],o=new Set,s=new Map;for(let c of i){let i=await Ls(c);if(i.kind!==`current`){zs(`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||!Ze(l.ecdsaRestore.chainTarget,r)))){if(l.curve===`ed25519`){let e=s.get(l.storeKey)??[];e.push(Ps(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 Is(t);n&&e.push(n)}return await X.deleteSealedRecords(a),e}finally{await X.deleteSealedRecords(a)}}async function $s(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 X.collectAllRawSealedRecordEntries(),r=[];try{let i=[],a=new Set;for(let o of n){let n=await Ls(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`){zs(`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 X.deleteSealedRecords(r),i}finally{await X.deleteSealedRecords(r)}}async function ec(e){let t=gs(e);if(t.kind!==`current`){xs({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 X.collectAllRawSealedRecordEntries();for(let r of t){let t=await Ls(r);t.kind===`current`&&t.record.curve===`ed25519`&&t.record.storeKey===n.storeKey&&e.push(Ps(r,t.record))}await Is(e,{writeCanonical:!0});return}let r=await qs(n),i=Js(n);await X.replaceSealedRecord({row:$o(n),staleStoreKeys:[...r.map(e=>e.storeKey),...i?[i]:[]]})}function tc(e,t,n){return nc({current:e,inactive:Es({record:e,retirement:t,updatedAtMs:n})})}async function nc(e){await X.replaceSealedRecordAndDeleteRestoreLease({row:Qo(e.inactive),staleStoreKeys:[e.current.storeKey],restoreLeaseKey:e.current.storeKey})}async function rc(e){let t=Us(e.filter,`update policy`),n=String(e.thresholdSessionId||``).trim();if(!n)return;let r=await Ys(n,t);r&&await ac(r,e)}async function ic(e){let t=await Zs(e.locator);t&&await ac(t,e)}async function ac(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 tc(o,e,a);return}}await ec(o)}async function oc(e,t,n){let r=Us(t,`delete`),i=String(e||``).trim();if(!i)return;let a=await Gs(i,r,`delete`);await Ks(i,r),a&&n.deleteResolvedIdentity&&await X.deleteRestoreLease(a.storeKey)}async function sc(e,t){let n=await X.collectAllRawSealedRecordEntries(),r=[],i=[];for(let a of n){let n=await Ls(a);if(n.kind!==`current`){xs({operation:`delete exact Ed25519 material`,classification:n});continue}let o=n.record;Xs(o,e)&&(r.push(a.primaryKey),t.deleteResolvedIdentity&&i.push(o.storeKey))}if(await X.deleteSealedRecords(r),t.deleteResolvedIdentity)for(let e of i)await X.deleteRestoreLease(e)}async function cc(e){let t=e.preserveResolvedIdentity?{deleteResolvedIdentity:!1}:{deleteResolvedIdentity:!0,resolvedIdentityDeleteReason:`durable_record_deleted`};if(e.durableRecord.curve===`ed25519`){await sc({kind:`ed25519_durable_material`,authMethod:e.durableRecord.authMethod,materialActivation:e.durableRecord.materialActivation},t);return}let n=Ho(e.durableRecord),r=await lc(e.durableRecord.thresholdSessionId,n);if(e.preserveResolvedIdentity&&e.durableRecord.curve===`ecdsa`&&r?.curve===`ecdsa`&&(e.deleteReason===`expired`||e.deleteReason===`exhausted`)){await tc(r,e.deleteReason,Date.now());return}await oc(e.durableRecord.thresholdSessionId,n,t)}async function lc(e,t){try{return await Ys(e,t)}catch{return null}}async function uc(e){let t=Us(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??Ds)??Ds),o=m(e.ownerId)||Os(`restore-owner`);return await Gs(n,t,`acquire restore lease`)?await X.withRestoreLeaseTransaction(n,async e=>{let r=[];for(let t of e.entries){let e=_s(t.value);e?.storeKey&&!r.some(t=>t.storeKey===e.storeKey)&&r.push(e)}let s=r.find(e=>Hs(e,n,t))||null;if(!s)return e.abort(),null;let c=Bs(await e.getRawRestoreLease(s.storeKey));if(c&&c.expiresAtMs>i&&c.ownerId!==o)return e.abort(),null;let l=Vs({leaseKey:s.storeKey,ownerId:o,nowMs:i,ttlMs:a});return e.putRestoreLease(ks(l)),{...l,thresholdSessionId:n}}):null}async function dc(e){!e?.leaseKey||!e.ownerId||!e.attemptId||await X.deleteRestoreLeaseIf({leaseKey:e.leaseKey,shouldDelete:t=>{let n=Bs(t);return n?.ownerId===e.ownerId&&n.attemptId===e.attemptId}})}function fc(e){return String(e??``).trim()||null}function pc(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:null}function mc(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function hc(e){let t=D(e);return t?.length===2?[t[0],t[1]]:null}function gc(e){let t=e.ed25519Restore;switch(e.authMethod){case Ee.passkey:{let e=fc(t.credentialIdB64u);return e?{kind:`passkey`,rpId:Cn(t.rpId),credentialIdB64u:e}:null}case Ee.emailOtp:{if(!(`provider`in t))return null;let e=fc(t.providerSubjectId),n=fc(t.emailHashHex);return!e||!n?null:{kind:`email_otp`,provider:t.provider,providerSubjectId:e,emailHashHex:n}}}}function _c(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 vc(e){let t=e.ed25519Restore,n=fc(e.thresholdSessionIds.ed25519),r=fc(e.relayerUrl),i=fc(t.relayerKeyId),a=pc(e.expiresAtMs),o=mc(e.remainingUses),s=Gt(t.signerSlot),c=hc(t.participantIds),l=N(t.runtimePolicyScope),u=l?F(l):null,d=fc(u?.signingRootVersion),f=oe(t.routerAbNormalSigning),p=gc(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:qe(e.walletId),nearAccountId:Me(t.nearAccountId),nearEd25519SigningKeyId:Ht(t.nearEd25519SigningKeyId),signerSlot:s,factor:p,auth:_c(p),thresholdSessionId:Oe.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 yc(e){let t;switch(e.runtime.factor.kind){case`passkey`:t=It({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=At({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 bc(e.runtime.factor)}if(!t)throw Error(`[SigningEngine][near] sealed Ed25519 authority is invalid`);return await Rt({authority:t})}function bc(e){throw Error(`Unsupported Ed25519 factor: ${String(e)}`)}async function xc(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||!ir({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 yc({runtime:n,walletAuthMethodId:t.selectedAuthMethod.walletAuthMethodId}),r=await Rt({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 Sc(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 Cc(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 wc(e,t){return Sc(e.auth,t.auth)}async function Tc(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`&&Cc({record:t,laneIdentity:e.laneIdentity}));if(n.length===0)return{kind:`missing`};if(n.length>1)return{kind:`conflict`};let r=vc(n[0]);return!r||!wc(r,e.laneIdentity)?{kind:`corrupt`}:{kind:`resolved`,runtime:r}}async function Ec(e){return await Tc(e,{listExactSealedSessionsForWallet:Qs})}async function Dc(e,t){return kc(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 kc(e){if(e.length===0)return{kind:`missing`};if(e.length>1)return{kind:`conflict`};let t=vc(e[0]);return t?{kind:`resolved`,runtime:t}:{kind:`corrupt`}}async function Ac(e){return await Dc(e,{listExactSealedSessionsForWallet:Qs})}async function jc(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 kc(r)}async function Mc(e){return await jc(e,{listExactSealedSessionsForWallet:Qs})}function Nc(e,t){let n=String(e).trim();if(!n)throw Error(`${t} is required for Ed25519 Wallet Session state`);return n}function Pc(e,t){if(!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be positive for Ed25519 Wallet Session state`);return e}function Fc(e){let t=Oe.thresholdEd25519Session(Nc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=Nc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=Nc(e.relayerUrl,`relayerUrl`),i=Nc(e.providerSubjectId,`providerSubjectId`),a=Pc(e.signerSlot,`signerSlot`),o=Pc(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:ur({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 Ic(e){return Lc({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:Nc(e.credentialIdB64u,`credentialIdB64u`)}})}function Lc(e){let t=Oe.thresholdEd25519Session(Nc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=Nc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=Nc(e.relayerUrl,`relayerUrl`),i=Pc(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:ur({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 Rc(e){let t=e.authorization.operationCredential.token,n=e.authorization.session.authorizationId,r=await yc({runtime:e.runtime,walletAuthMethodId:e.authorization.selectedAuthMethod.walletAuthMethodId}),i=await Rt({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=Ao({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 Ic({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 Fc({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 zc(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 Bc(e){return e.authorization.capabilitySubjects.some(t=>t.kind===`sign`&&t.keyFamily===`ed25519`&&f(t.materialActivation,e.materialActivation))}function Vc(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||!Bc({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=Ao({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{...Lc({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{...Ic({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{...Fc({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 Hc(t.signingLane.auth)}}function Hc(e){throw Error(`Unknown Ed25519 signing lane auth: ${String(e)}`)}async function Uc(e){let t=e.state.signingLane.identity.signer.account.wallet.walletId,n=await wo({ports:e.ports,input:{walletId:t,authMethod:De(e.state.signingLane.auth),walletSessionId:e.state.walletSessionId,quotaId:e.state.quotaId,requiredSigningSubject:Co(e.state.signingLane.identity),expiry:{kind:`unexpired`,nowMs:e.nowMs}}});return n.kind!==`resolved`||n.resolved.authMethod.walletAuthMethodId!==e.state.authority.walletAuthMethodId?null:Vc({state:e.state,authorization:n.resolved.session,operationCredential:n.resolved.operationCredential,materialActivation:n.resolved.materialActivation,nowMs:e.nowMs})}function Wc(e){return Mt(C({operation:`wallet_add_signer_activate_v2`,addSignerCeremonyId:e.addSignerCeremonyId,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts}))}async function Gc(e){return A(await S(String(Wc(e))))}function Kc(e){let t;try{t=Be(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:Ve(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 qc(e){let t={};return Pa()&&(t[`X-Seams-Benchmark-Diagnostics`]=`registration-flow`),e&&(t[dn]=e.value),Object.keys(t).length>0?t:void 0}function Jc(e){let t=j(e);if(t.length!==20)throw Error(`ECDSA activation returned an invalid address`);let n=``;for(let e of t)n+=e.toString(16).padStart(2,`0`);return`0x${n}`}var Yc=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 Xc(e){switch(e.kind){case`owner_operations`:throw Error(`Owner registration has no reusable session`);case`issued`:return e.session;case`already_committed`:throw new Yc(e.session);default:return J(e)}}function Zc(e){let t=e[0];if(t)for(let n of e.slice(1)){let e=$c(t,n);if(e)throw Error(`ECDSA registration returned partitioned EVM-family wallet key material: ${e}`)}}function Qc(e){for(let t of e.walletKeys)if(!yt(t.publicCapability,e.session.publicCapability))throw Error(`ECDSA registration wallet key public capability does not match client-verified activation`)}function $c(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 el(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||Ye(r)!==Ye(i))return!1}return!0}async function tl(e){try{await e.context.signingEngine.closeRouterAbEcdsaRegistrationCeremony({kind:`close_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:e.ceremonyId})}catch{return}}function nl(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 rl(e){return{canonicalRequest:Wc(e),requestDigest:_e(await Gc(e))}}async function il(e){try{return await zn(e)}catch{return await zn(e)}}async function al(e){return e.registrationTiming?await e.registrationTiming.measure(e.bucket,e.operation):await e.operation()}async function ol(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 al({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 al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Wn.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 al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientProofVerifyMs`,operation:e.context.signingEngine.verifyRouterAbEcdsaRegistrationClientProofs.bind(e.context.signingEngine,{kind:`verify_router_ab_ecdsa_registration_client_proofs_v1`,bootstrapOwner:`wallet_custody`,ceremonyId:r,clientProofFinalization:{kind:`finalize_encrypted_client_proof_bundles_v2`,bundles:o.ecdsa.strictResult.response.bundles}})}),c=Kc(e.custodyEnvelope);if(!c.ok)throw Error(c.reason);let l={response:null,journalId:null},u=await e.context.signingEngine.joinWalletCustodyEvmFamilyKeySet({walletId:e.walletId,custodyJson:c.custodyJson,factorSecret:e.factorSecret,evmFamilySigningKeySlotId:e.started.prepare.evmFamilySigningKeySlotId,applicationBindingDigestB64u:s.applicationBindingDigestB64u,runRelayerRound:async a=>{let o=St({registrationRequestDigestB64u:s.registrationRequestDigestB64u,proofTranscriptDigestB64u:s.proofTranscriptDigestB64u,contextBinding32B64u:a.contextBinding32B64u,derivationClientSharePublicKey33B64u:a.clientSharePublicKey33B64u,clientShareRetryCounter:a.clientShareRetryCounter,participantId:1}),c=await rl({addSignerCeremonyId:r,activationCorrelationId:i,publicFacts:o}),u={bytes:Array.from(j(String(c.requestDigest)))},d=await e.context.signingEngine.persistInitialCanonicalEcdsaActivation({kind:`persist_initial_canonical_ecdsa_activation_v1`,bootstrapOwner:`wallet_custody`,ceremonyId:r,clientActivation:o,planInput:{authority:e.authority,targetMemberships:[t,...n],evmFamilySigningKeySlotId:Pt(e.started.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:Jt(e.started.prepare.ecdsaThresholdKeyId),signingRootId:Tt(e.started.prepare.signingRootId),signingRootVersion:_t(e.started.prepare.signingRootVersion),runtimePolicyScope:e.started.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Kt(a.clientSharePublicKey33B64u),participantIds:[wn(e.started.prepare.participantIds[0]),wn(e.started.prepare.participantIds[1])],relayerKeyId:qt(e.started.prepare.relayerKeyId),bindingDigest:Qt(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 al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:il.bind(void 0,{relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:r,activationCorrelationId:i,publicFacts:o,expectedActivationRequestDigest:u})});let f=l.response.ecdsa.activation.ecdsa_activation.public_identity;return JSON.stringify({relayerKeyId:e.started.prepare.relayerKeyId,relayerPublicKey33B64u:f.server_public_key33_b64u,groupPublicKey33B64u:f.threshold_public_key33_b64u,ethereumAddress:Jc(f.ethereum_address20_b64u),relayerShareRetryCounter:f.server_share_retry_counter})}});if(!l.response||!l.journalId)throw Error(`Add-signer ECDSA custody join did not activate`);let d=l.response,f=l.journalId,p=u.commitPayload.clientRootPublicKey33B64u;if(!p)throw Error(`Add-signer ECDSA custody join returned no client root public key`);let m=nl({prepare:e.started.prepare,verified:u.clientBootstrap}),h=Rn({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 tl({context:e.context,ceremonyId:r}),t}}async function sl(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 cl(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 J(e.tokens)}}function ll(e){let[t]=e.walletKeys;if(!t)throw Error(`ECDSA registration did not return wallet key material`);let n=cl(e.session.registrationEstablishedSession);if(String(e.session.registrationEstablishedSession.walletId)!==t.walletId||n.thresholdSessionId!==e.session.activatedThresholdSessionId||n.keyHandle!==t.keyHandle||!ul(n.runtimePolicyScope,e.session.clientBootstrap.runtimePolicyScope)||!Et(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 ul(e,t){return e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}async function dl(e,t){e.kind===`passkey`&&await Promise.allSettled([Promise.resolve().then(t),Vi.initializeBundled()])}function fl(e){return Ot({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:String(e.credential.rawId||e.credential.id||``).trim()})}async function pl(e){if(!e.material)throw Error(`Email OTP registration ${e.operation} is missing enrollment material`);return await e.material}function ml(e){let n=e.admissionRequest,r=t(n.scope.threshold_session_id);if(!r.ok)throw Error(`Ed25519 registration threshold-session identity is invalid`);let i=n.participant_ids,a=I(e.finalized.runtimePolicyScope);if(n.application_binding.wallet_id!==e.walletId||n.application_binding.near_ed25519_signing_key_id!==e.finalized.nearEd25519SigningKeyId||n.application_binding.key_creation_signer_slot!==e.finalized.signerSlot||i[0]!==e.finalized.participantIds[0]||i[1]!==e.finalized.participantIds[1]||!ul(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 hl(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 J(e.tokens)}}async function gl(e){let t=hl(e.registrationEstablishedSession);if(t.nearAccountId!==String(e.nearAccountId)||t.nearEd25519SigningKeyId!==String(e.nearEd25519SigningKeyId)||t.thresholdSessionId!==String(e.thresholdSessionId)||!ul(t.runtimePolicyScope,e.runtimePolicyScope))throw Error(`Registration-established Email OTP Ed25519 session changed signer identity`);let n=F(t.runtimePolicyScope),r=n.signingRootVersion;if(!r)throw Error(`Registration-established Ed25519 session is missing a signing-root version`);let i=Ao({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 Rt({authority:e.emailOtpAuthContext.authority});return Fc({walletId:e.walletId,nearAccountId:Me(e.nearAccountId),nearEd25519SigningKeyId:Vt(e.nearEd25519SigningKeyId),providerSubjectId:or(e.emailOtpAuthContext),signerSlot:e.signerSlot,relayerUrl:e.relayerUrl,authority:a,signingWalletSession:i.value})}function _l(e){if(e.authMethod.kind!==`passkey`)throw Error(`Ed25519 Yao registration requires a passkey registration intent`);return{version:e.version,completion:e.completion,walletId:e.walletId,authMethod:e.authMethod,signerSelection:e.signerSelection,foundingWalletAuthMethodId:e.foundingWalletAuthMethodId,...e.runtimePolicyScope?{runtimePolicyScope:e.runtimePolicyScope}:{},nonceB64u:e.nonceB64u}}function vl(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 yl(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 bl(e,t){let n=await new Pi(t).send({kind:`admit`,path:lt,body:e.admissionRequest});if(!n.ok)throw Error(n.message);let r=ft(n.value);if(!r.ok)throw Error(r.message);return r.value}function xl(e){let t=hl(e.session);return{thresholdSessionId:String(t.thresholdSessionId),prfFirstB64u:e.prfFirstB64u,expiresAtMs:e.session.expiresAtMs,remainingUses:e.session.remainingUses,diagnostics:{recordDuration:Ba.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:Ma({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 Sl(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 Cl(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 wl(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 Tl(e,t,n){let r=t.registrationEstablishedSession.session,i=wl(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 El(e,t,n){let r=e.ecdsa_activation.public_identity;return bt({registrationRequestDigestB64u:t.publicCapability.registration_request_digest_b64u,proofTranscriptDigestB64u:A(Uint8Array.from(e.transcript_digest.bytes)),contextBinding32B64u:r.context_binding_b64u,derivationClientSharePublicKey33B64u:r.derivation_client_share_public_key33_b64u,clientShareRetryCounter:r.client_share_retry_counter,participantId:1},n)}function Dl(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&&Ml(e.ethereum_address20_b64u)===t.thresholdOwnerAddress&&e.server_share_retry_counter===t.relayerShareRetryCounter}function kl(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 Al(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 jl(e){let t=e.ecdsa.walletKeys[0];if(!t)throw Error(`pending ECDSA activation returned no wallet keys`);return Zc(e.ecdsa.walletKeys),[t,...e.ecdsa.walletKeys.slice(1)]}function Ml(e){let t=j(e);if(t.length!==20)throw Error(`pending ECDSA activation returned an invalid address`);let n=`0x`;for(let e of t)n+=e.toString(16).padStart(2,`0`);return n}function Nl(e,t,n){if(!Tl(e,t,n))throw Error(`pending ECDSA activation projection mismatch`);sn(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function Pl(e){return e.ok===!0&&e.kind===`evm_family_ecdsa`&&e.registrationEstablishedSession.kind===`already_committed`}async function Fl(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=At(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 Il(e,t,n){let r=t.ecdsa.activation,i=r.ecdsa_activation,a=i.public_identity,o=e.localMaterial.ecdsa.clientActivation;if(r.activation_correlation_id!==e.localMaterial.ecdsa.activationJournalId||A(Uint8Array.from(r.activation_request_digest.bytes))!==e.localMaterial.ecdsa.activationRequestDigestB64u||!El(r,n,o)||!Dl(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(!kl(t.ecdsa.bootstrap,n))throw Error(`pending ECDSA bootstrap changed committed key identity`)}function Ll(e){let t=wl(e).ecdsa,n=e.ecdsa.activation.ecdsa_activation;if(!f(t.materialActivation,xt(n.material_activation))||!Et(t.routerAbEcdsaDerivationNormalSigning,e.ecdsa.bootstrap.routerAbEcdsaDerivationNormalSigning))throw Error(`pending ECDSA activation facts do not match the committed projection`)}async function Rl(e){let t=e.response;if(!Pl(t))throw Error(t.ok?`pending ECDSA activation replay did not return a committed projection`:`pending ECDSA activation replay failed`);let n=jl(t)[0];if(Nl(e.pending,t,n),await Fl(e.pending,t),Il(e.pending,t,n),Ll(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 zl(e){let t=new ln,n=xt(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 Yn(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(!Lt(i.activation.serverActivation.serverActivationReceipt.protocolReceipt,e.activationReceipt)||!yt(a.roleLocalPublicFacts.publicCapability,e.publicCapability)||!Sn(i.signer.scope,Zt({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||!xn(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 Bl(e){let t=e[0];if(!t)throw Error(`ECDSA registration finalization returned no wallet keys`);return[t,...e.slice(1)]}function Vl(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 Hl(e){let t=Bl(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 nr({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=At(e.response.authority);if(!n)throw Error(`ECDSA Email OTP registration authority is invalid`);return await nr({kind:`email_otp`,walletId:e.pending.walletId,email:e.pending.auth.email,registrationAuthorityId:e.pending.auth.registrationAuthorityId,authority:n,walletKeys:t})}function Ul(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 Wl(e){let t=await e.ports.activateWalletRegistration(Al(e.relayerUrl,e.pending)),n=await Rl({pending:e.pending,response:t}),r=jl(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 Rt({authority:n.authority}),c=await zl({authority:s,chainTargets:Vl(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:wl(n).ecdsa.runtimePolicyScope,readyStateBlobB64u:a.readyStateBlobB64u,publicFacts:a.publicFacts}),l={kind:`ecdsa_role_local_worker_handle_v1`,materialHandle:Yt(c.roleLocalMaterialRef.durableMaterialRef),bindingDigest:c.roleLocalMaterialRef.bindingDigest,durableMaterialRef:c.roleLocalMaterialRef.durableMaterialRef},u=await e.signingSurface.finalizeWalletRegistrationEcdsaSessions({walletId:String(e.pending.walletId),session:{chainTargets:Vl(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 Hl({pending:e.pending,response:n,walletKeys:u});if(await e.ports.publishPendingWalletRegistrationCommit(Ul({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=pr(a.credential,`Pending NEAR registration continuation`),n=uh({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:dr(a.credential),prfFirstB64u:t},ownedFactorSecret:j(t).slice().buffer,custodyEnvelope:a.custody.envelope});e.nearCompletion===`await`&&await n}return{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId,walletId:n.walletId,signingSession:{sessionId:String(a.session.session.threshold_session_id),status:`active`,authMethod:a.kind,remainingUses:a.session.session.remaining_uses,expiresAtMs:a.session.session.expires_at_ms}}}function Gl(e,t,n){e?.($t({flowId:`unlock:${t}`,accountId:t,...n}))}async function Kl(e){let{context:t,authMethod:n,unlockSubjectId:r,loginResult:i,onEvent:a,afterCall:o}=e;return i.success&&t.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:i.walletId,authMethod:n}),Gl(a,r,{phase:tn.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 ql(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)),Gl(i,n,{phase:l?tn.CANCELLED:tn.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}}function Jl(){}function Yl(e){if(e.keySet!==`near_ed25519_v1`)throw Error(`The custody worker began an EVM run for a NEAR request`);return e}function Xl(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker began a NEAR run for an EVM request`);return e}function Zl(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker completed a NEAR run for an EVM request`);return e}function Ql(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 eu(e)}}async function $l(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 eu(e)}}function eu(e){throw Error(`Unsupported wallet custody origin: ${String(e)}`)}function tu(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 nu(e,t,n){if(Pa())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 ru(e){let t=e.ceremonyId||M(`wallet-custody-ceremony`,32,`wallet custody ceremony IDs`),{custody:n,keySetRun:r}=e,i=!1;try{if(r.keySet===`near_ed25519_v1`){let a=performance.now(),o;if(r.checkpointJson!==void 0){if(n.origin!==`join`)throw Error(`Checkpoint restoration requires existing custody`);o=(await e.runStep(`restoreNearRegistration`,{ceremonyId:t,custodyJson:n.custodyJson,factorSecret:n.factorSecret,checkpointJson:r.checkpointJson})).yaoExecuteRequestJson}else o=Yl(await e.runStep(`beginWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`near_ed25519_v1`,custody:Ql(n),protocolInputsJson:r.protocolInputsJson})).yaoExecuteRequestJson;if(nu(t,`begin`,a),i=!0,r.beforeRouterRound){a=performance.now();let n=await e.runStep(`checkpointNearRegistration`,{ceremonyId:t});nu(t,`checkpoint`,a),await r.beforeRouterRound(n.checkpointJson)}a=performance.now();let s=await r.runRouterRound(o);nu(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}),nu(t,`complete`,a),await r.afterRouterRoundCompleted?.(s),a=performance.now();let c=await e.runStep(`finishWalletCustodyKeySetRun`,{ceremonyId:t,finish:await $l(n)});return nu(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=Xl(a);await r.beforeRelayerRound();let s=await r.runRelayerRound({contextBinding32B64u:o.ecdsaContextBinding32B64u,clientSharePublicKey33B64u:o.ecdsaClientSharePublicKey33B64u,clientShareRetryCounter:o.ecdsaClientShareRetryCounter,preActivationCommitPayload:o.preActivationCommitPayload}),c=Zl(await e.runStep(`completeWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`evm_family_ecdsa_v1`,protocolResultJson:s}));return tu(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(Jl),n}}async function iu(e){let t=_r(),n=null;try{let r=JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:A(e)}))),i=await ru({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=vu(r),r}}});if(!n)throw Error(`the NEAR custody ceremony produced no activation session id`);let a=await _u(i,t);return{recoveryCodes:t.codes,activationReference:{kind:`router_ab_ed25519_yao_activation_reference_v1`,lifecycle_id:e.registrationCeremonyId,session_id:n},commitPayload:gu(a),localMaterial:i.ed25519LocalMaterialB64u&&i.ed25519LocalMaterialNonceB64u&&i.ed25519ApplicationBindingDigestB64u?{b64u:i.ed25519LocalMaterialB64u,nonceB64u:i.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:i.ed25519ApplicationBindingDigestB64u}:null}}finally{t&&hr(t),t=null}}function au(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 ou(e){let t=_r(),n=null,r=null;try{let i=t;if(!i)throw Error(`recovery codes were not issued`);let a=await ru({runStep:e.runStep,custody:{origin:`establish`,walletId:e.walletId,factorJson:e.factorJson,factorSecret:e.factorSecret,recoveryCodesJson:JSON.stringify(t.codeBytes.map(e=>({codeBytesB64u:A(e)})))},keySetRun:{keySet:`evm_family_ecdsa_v1`,protocolInputsJson:JSON.stringify({applicationBindingDigestB64u:e.applicationBindingDigestB64u}),evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,beforeRelayerRound:e.confirmRecoveryCodesBackedUp.bind(void 0,t.codes),runRelayerRound:async t=>{let a=Re(await _u(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&&hr(t),t=null}}async function su(e){let t=null,n=null,r=await ru({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 cu(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 lu(e.factorReplacement)}}function lu(e){throw Error(`unsupported recovery factor replacement: ${String(e)}`)}async function uu(e){if(await mu({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 ru({runStep:e.runStep,custody:cu(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 du(e){let t=await mu({walletId:e.walletId,evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,clientRootPublicKey33B64u:e.registeredClientRootPublicKey33B64u}),n=await ru({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 fu(e,t){e.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255)}function pu(e,t,n){let r=new TextEncoder().encode(t);fu(e,r.length),e.push(...r),fu(e,n.length),e.push(...n)}async function mu(e){let t=String(e.walletId||``).trim(),n=String(e.evmFamilySigningKeySlotId||``).trim(),r=j(e.clientRootPublicKey33B64u);if(!t||!n||r.length!==33)throw Error(`EVM custody continuity identity is invalid`);let i=[];return pu(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/evm-family-ecdsa/v1`)),pu(i,`walletId`,new TextEncoder().encode(t)),pu(i,`evmFamilySigningKeySlotId`,new TextEncoder().encode(n)),pu(i,`clientRootPublicKey33`,r),A(await x(Uint8Array.from(i)))}async function hu(e){let t=String(e.walletId||``).trim(),n=String(e.nearEd25519SigningKeyId||``).trim(),r=j(e.registeredPublicKeyB64u);if(!t||!n||r.length!==32)throw Error(`NEAR custody continuity identity is invalid`);let i=[];return pu(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/near-ed25519/v1`)),pu(i,`walletId`,new TextEncoder().encode(t)),pu(i,`nearEd25519SigningKeyId`,new TextEncoder().encode(n)),pu(i,`registeredPublicKey`,r),A(await x(Uint8Array.from(i)))}function gu(e){let{ed25519LocalMaterialB64u:t,ed25519LocalMaterialNonceB64u:n,ed25519ApplicationBindingDigestB64u:r,ecdsaReadyStateBlobB64u:i,recoveryReplacementEnvelope:a,...o}=e;return o}async function _u(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 gr(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 vu(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 yu(e){if(await hu({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 ru({runStep:e.runStep,custody:cu(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 bu(e){return await Su(e,e.registrationCeremonyId,void 0,`registration join`)}async function xu(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 Su({...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 Su(e,t,n,r,i){let a=null,o=await ru({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=vu(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:gu(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 Cu(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 wu=class e extends Error{kind=`email_otp_signing_session_auth_state_error`;failure;constructor(t){super(Tu(t)),this.name=`EmailOtpSigningSessionAuthStateError`,this.failure=t,Object.setPrototypeOf(this,e.prototype)}};function Tu(e){return`Email OTP ${e.expectedCurve} signing-session auth lane is unavailable at ${e.source}; unlock wallet again`}function Eu(e){throw new wu(e)}function Du(e){return e.freshRouteFamily===`registration`?Cu({routeFamily:`registration`,operation:Se}):Cu({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function Ou(e){return e?.kind!==`signing_session`&&Eu({kind:`auth_lane_missing`,source:`route_plan`,expectedCurve:`unknown`}),e}function ku(e){return Cu({routeFamily:`signing_session`,authLane:e.authLane,operation:e.operation})}function Au(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 ju(e){if(e.routeFamily===`signing_session`)return Au(e.authLane)}async function Mu(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 Nu(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 Pu(e){let t=await Nu({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 Fu(e){let t=await Nu({base:e,material:{kind:`ed25519_yao_recovery`,providerSubject:e.providerSubject,nearAccountId:e.nearAccountId,expectedOperationalPublicKey:e.expectedOperationalPublicKey,expectedThresholdSessionId:e.expectedThresholdSessionId,walletCustodyEd25519Material:e.walletCustodyEd25519Material,ed25519YaoRecovery:{kind:pt,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 Nu({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:pt,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 Lu(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 Ru(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be a positive integer`);return e}function zu(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 Bu(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}function Vu(e,t,n,r,i,a){if(`sessionKind`in e||`walletSessionToken`in e)throw Error(`sync-account signer bootstrap must not carry a Wallet Session bearer`);if(w(e.walletId,`session.walletId`)!==n.walletId||w(e.nearAccountId,`session.nearAccountId`)!==n.nearAccountId||w(e.nearEd25519SigningKeyId,`session.nearEd25519SigningKeyId`)!==n.nearEd25519SigningKeyId)throw Error(`Yao recovery session identity does not match the verified passkey`);let o=I(h(e.runtimePolicyScope,`session.runtimePolicyScope`)),s=oe(e.routerAbNormalSigning);if(!s)throw Error(`Yao recovery session signing state is invalid`);let c=pe(e.walletSessionId),l=de(e.quotaId);if(!c.ok||!l.ok)throw Error(`Yao recovery Wallet Session identity is invalid`);let u=Ru(e.expiresAtMs,`session.expiresAtMs`),d=Ru(e.remainingUses,`session.remainingUses`),p=r.capabilitySubjects.find(Bu);if(r.walletId!==n.walletId||r.authorityId!==a.walletAuthorityId||r.authMethodId!==a.walletAuthMethodId||r.authorityDigestB64u!==a.authorityDigestB64u||r.authorityRevocationEpoch!==a.authorityRevocationEpoch||r.expiresAtMs!==u||i.walletSessionId!==c.value||!p||!f(p.materialActivation,a.materialActivation))throw Error(`Yao recovery session does not match the exact Wallet Session`);return{thresholdSessionId:w(e.thresholdSessionId,`session.thresholdSessionId`),authorizationId:r.authorizationId,walletSessionId:i.walletSessionId,quotaId:l.value,expiresAtMs:u,remainingUses:d,runtimePolicyScope:o,participantIds:t,routerAbNormalSigning:s,walletSession:r,operationCredential:i}}function Hu(e){let t=e.capability,n=e.session,r=F(n.runtimePolicyScope);if(!r||t.applicationBinding.wallet_id!==String(e.walletId)||t.applicationBinding.near_ed25519_signing_key_id!==e.nearEd25519SigningKeyId||t.applicationBinding.key_creation_signer_slot!==e.signerSlot||t.nearAccountId!==e.nearAccountId||t.lifecycle.accountId!==String(e.walletId)||t.lifecycle.signingWorkerId!==e.relayerKeyId||n.routerAbNormalSigning?.signingWorkerId!==e.relayerKeyId||n.participantIds[0]!==t.participantIds[0]||n.participantIds[1]!==t.participantIds[1]||!te(n.runtimePolicyScope,t.runtimePolicyScope)||n.runtimePolicyScope.signingRootVersion!==t.lifecycle.rootShareEpoch||t.applicationBinding.signing_root_id!==r.signingRootId||e.operationalPublicKey!==`ed25519:${Ae(Uint8Array.from(t.registeredPublicKey))}`)throw Error(`Yao recovery response does not preserve the registered wallet identity`)}function Uu(e){if(Hu(e),e.capability.lifecycle.thresholdSessionId!==e.session.thresholdSessionId)throw Error(`Yao recovery response does not preserve the threshold material lifecycle`)}function Wu(e,t){if(Hu(e),!f(e.capability.materialActivation,t))throw Error(`Yao warm recovery response does not preserve exact material activation`)}function Gu(e){return`operationCredential`in e?e.operationCredential.token:e.walletSessionToken}function Ku(e){let t=h(e,`sync-account response`);if(t.ok!==!0||t.verified!==!0)throw Error(`sync-account response is not verified`);let r=Wt(w(t.walletId,`walletId`)),i=Me(w(t.nearAccountId,`nearAccountId`)),a=w(t.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),s=h(t.thresholdEd25519,`thresholdEd25519`),c=zu(s.participantIds),l=h(t.ed25519YaoRecovery,`ed25519YaoRecovery`);if(l.kind!==`router_ab_ed25519_yao_sync_recovery_v1`)throw Error(`sync-account recovery kind is invalid`);let u=jt(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=st(t.foundingAuthority),m=Bt(t.foundingAuthMethod);if(!d.ok||!f.ok||d.value!==u.walletAuthMethodId||!p.ok||p.value.state!==`active`||p.value.provenance.kind!==`wallet_registration`||p.value.walletId!==r||p.value.authorityId!==f.value||!m||m.kind!==`passkey`||m.status!==`active`||m.walletId!==r||m.walletAuthorityId!==f.value||m.walletAuthMethodId!==d.value)throw Error(`sync-account exact auth-method identity is invalid`);let g=h(t.walletCustody,`walletCustody`);if(g.kind!==`wallet_custody_sync_bootstrap_v1`)throw Error(`walletCustody kind is invalid`);let _=kn(l.capability),v=re(t.walletSession),y=ne(t.operationCredential),b={authority:u,walletAuthMethodId:d.value,walletAuthorityId:f.value,foundingAuthority:p.value,foundingAuthMethod:m,walletId:r,nearAccountId:i,nearEd25519SigningKeyId:a,signerSlot:Ru(t.signerSlot,`signerSlot`),operationalPublicKey:w(t.publicKey,`publicKey`),relayerKeyId:w(s.relayerKeyId,`thresholdEd25519.relayerKeyId`),keyVersion:w(s.keyVersion,`thresholdEd25519.keyVersion`),credentialIdB64u:w(t.credentialIdB64u,`credentialIdB64u`),credentialPublicKeyB64u:w(t.credentialPublicKeyB64u,`credentialPublicKeyB64u`),session:Vu(h(s.session,`thresholdEd25519.session`),c,{walletId:String(r),nearAccountId:String(i),nearEd25519SigningKeyId:a},v,y,{walletAuthorityId:f.value,walletAuthMethodId:d.value,authorityDigestB64u:p.value.authorityDigestB64u,authorityRevocationEpoch:p.value.revocationEpoch,materialActivation:_.materialActivation}),capability:_,walletSession:v,operationCredential:y,walletCustody:{envelope:Be(g.envelope),storeVersion:w(g.storeVersion,`walletCustody.storeVersion`)}};return Uu(b),b}function qu(e){let t=e.parsed,n=t.session,r=F(n.runtimePolicyScope),i=Ao({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:Gu(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 Ic({walletId:qe(t.walletId),nearAccountId:t.nearAccountId,nearEd25519SigningKeyId:Ht(t.nearEd25519SigningKeyId),signerSlot:t.signerSlot,rpId:Cn(e.rpId),credentialIdB64u:t.credentialIdB64u,relayerUrl:e.relayerUrl,authority:t.authority,signingWalletSession:i.value})}function Ju(e){if(!v(e)||e.kind!==`wallet_custody_passkey_login_v1`)throw Error(`Passkey wallet unlock returned invalid custody data`);if(!v(e.ed25519))throw Error(`Passkey wallet unlock omitted Ed25519 custody continuity`);if(e.ed25519.kind===`absent`)return{kind:`wallet_custody_passkey_login_v1`,envelope:Be(e.envelope),storeVersion:w(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`absent`}};if(e.ed25519.kind!==`active`)throw Error(`Passkey wallet unlock returned invalid Ed25519 custody state`);let t=Number(e.ed25519.signerSlot),n=e.ed25519.participantIds;if(!Number.isSafeInteger(t)||t<1||!Array.isArray(n)||n.length!==2||!n.every(e=>Number.isSafeInteger(e)&&Number(e)>0)||n[0]===n[1])throw Error(`Passkey wallet unlock returned invalid Ed25519 signer identity`);return{kind:`wallet_custody_passkey_login_v1`,envelope:Be(e.envelope),storeVersion:w(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`active`,nearAccountId:w(e.ed25519.nearAccountId,`walletCustody.ed25519.nearAccountId`),nearEd25519SigningKeyId:w(e.ed25519.nearEd25519SigningKeyId,`walletCustody.ed25519.nearEd25519SigningKeyId`),signerSlot:t,publicKey:w(e.ed25519.publicKey,`walletCustody.ed25519.publicKey`),relayerKeyId:w(e.ed25519.relayerKeyId,`walletCustody.ed25519.relayerKeyId`),participantIds:[Number(n[0]),Number(n[1])],capability:kn(e.ed25519.capability)}}}function Yu(e){if(!v(e))throw Error(`ECDSA custody chain target is invalid`);let t=w(e.kind,`ecdsaCustody.chainTarget.kind`),n=Number(e.chainId),r=w(e.networkSlug,`ecdsaCustody.chainTarget.networkSlug`);if(!Number.isSafeInteger(n)||n<0||!r)throw Error(`ECDSA custody chain target is invalid`);if(t===`evm`){if(e.namespace!==`eip155`)throw Error(`ECDSA custody EVM namespace is invalid`);return{kind:`evm`,namespace:`eip155`,chainId:n,networkSlug:r}}if(t===`tempo`)return{kind:`tempo`,chainId:n,networkSlug:r};throw Error(`ECDSA custody chain target kind is invalid`)}function Xu(e){if(!v(e)||e.kind!==`wallet_custody_ecdsa_sync_continuity_v1`)throw Error(`Passkey wallet unlock returned invalid ECDSA custody continuity`);if(!Array.isArray(e.signers))throw Error(`Passkey wallet unlock returned invalid ECDSA custody signers`);let t=[];for(let n of e.signers){if(!v(n)||!v(n.walletKey))throw Error(`Passkey wallet unlock returned invalid ECDSA custody signer`);let e=n.walletKey,r=e.participantIds;if(!Array.isArray(r)||r.length!==2||r[0]!==1||r[1]!==2)throw Error(`Passkey wallet unlock returned invalid ECDSA custody participants`);t.push({chainTarget:Yu(n.chainTarget),walletKey:{walletId:w(e.walletId,`ecdsaCustody.walletKey.walletId`),keyHandle:w(e.keyHandle,`ecdsaCustody.walletKey.keyHandle`),ecdsaThresholdKeyId:w(e.ecdsaThresholdKeyId,`ecdsaCustody.walletKey.ecdsaThresholdKeyId`),signingRootId:w(e.signingRootId,`ecdsaCustody.walletKey.signingRootId`),signingRootVersion:w(e.signingRootVersion,`ecdsaCustody.walletKey.signingRootVersion`),relayerKeyId:w(e.relayerKeyId,`ecdsaCustody.walletKey.relayerKeyId`),contextBinding32B64u:w(e.contextBinding32B64u,`ecdsaCustody.walletKey.contextBinding32B64u`),derivationClientSharePublicKey33B64u:w(e.derivationClientSharePublicKey33B64u,`ecdsaCustody.walletKey.derivationClientSharePublicKey33B64u`),participantIds:[1,2],publicCapability:wt(e.publicCapability)},activationReceipt:ht(n.activationReceipt),runtimePolicyScope:I(n.runtimePolicyScope)})}if(t.length===0)throw Error(`Passkey wallet unlock omitted ECDSA custody signers`);return{kind:`wallet_custody_ecdsa_sync_continuity_v1`,signers:t}}function Zu(e){let t=e.raw.sessionKind;if(t===`issued_exact_wallet_session`){let n=ne(e.raw.operationCredential);if(n.walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 credential does not identify its session`);return{sessionKind:t,operationCredential:n}}if(t!==`already_committed_exact_wallet_session`)throw Error(`Wallet unlock returned an unsupported Ed25519 session kind`);if(e.raw.operationCredential!==void 0)throw Error(`Reused Ed25519 Wallet Session must not carry its own credential`);if(ne(e.unlockCredential).walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 session reuses another Wallet Session`);return{sessionKind:t}}function Qu(e,n){if(e===null)return null;if(!v(e))throw Error(`Wallet unlock returned invalid Ed25519 session data`);let r=t(e.thresholdSessionId),i=me(e.authorizationId),a=pe(e.walletSessionId),o=de(e.quotaId),s=Number(e.expiresAtMs),c=Number(e.remainingUses),l=I(e.runtimePolicyScope),u=se(e.routerAbNormalSigning),d=e.participantIds;if(!r.ok||!i.ok||!a.ok||!o.ok||!Number.isSafeInteger(s)||s<=Date.now()||!Number.isSafeInteger(c)||c<1||!Array.isArray(d)||d.length!==2||!d.every(e=>Number.isSafeInteger(e)&&e>0)||d[0]===d[1])throw Error(`Wallet unlock returned invalid Ed25519 session lifecycle`);let f=Zu({raw:e,walletSessionId:a.value,unlockCredential:n});return{walletId:w(e.walletId,`ed25519Session.walletId`),nearAccountId:w(e.nearAccountId,`ed25519Session.nearAccountId`),nearEd25519SigningKeyId:w(e.nearEd25519SigningKeyId,`ed25519Session.nearEd25519SigningKeyId`),relayerKeyId:w(e.relayerKeyId,`ed25519Session.relayerKeyId`),participantIds:[Number(d[0]),Number(d[1])],thresholdSessionId:r.value,authorizationId:i.value,walletSessionId:a.value,quotaId:o.value,expiresAtMs:s,remainingUses:c,runtimePolicyScope:l,routerAbNormalSigning:u,...f}}function $u(e){let t=e.authorization.record,n=xt(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 ed(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 td(e,t){let n=e.data.walletSession!==void 0;if(n!==(e.data.operationCredential!==void 0))throw Error(`Passkey wallet unlock returned a partial Wallet Session authorization`);if(n){if(e.ed25519Session.sessionKind!==`already_committed_exact_wallet_session`)throw Error(`Passkey wallet unlock returned competing Wallet Session credentials`);let t={record:re(e.data.walletSession),operationCredential:ne(e.data.operationCredential)};return ed({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 ed({ed25519Session:e.ed25519Session,authorization:i}),i}async function nd(e,t){let n=await td(e,t);return $u({ed25519Session:e.ed25519Session,ecdsaSession:e.ecdsaSession,authorization:n}),n}function rd(e){let t=Vn(e)??Un(e);return t?{success:!1,kind:`already_committed`,code:t.code,message:t.message,next:t.next,committed:t.committed}:null}async function id(e,t,n){try{if(t.type!==`passkey_assertion`)throw Error(`Passkey wallet unlock requires a passkey assertion`);let r=w(t.challengeId,`challengeId`),i=t.webauthn_authentication,a=String(t.expected_origin||``).trim(),o={unlockBackend:`passkey`,challengeId:r,...`walletId`in t&&t.walletId?{walletId:t.walletId}:{},webauthn_authentication:Zn(i),ed25519SessionRequest:t.ed25519SessionRequest,...a?{expected_origin:a}:{},...t.ecdsaSessionPolicy?{ecdsaSessionPolicy:gt(t.ecdsaSessionPolicy)}:{}},c=s(e,`/wallet/unlock/verify`),l=await fetch(c,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(o)}),u=await l.json().catch(()=>({})),d=v(u)?u:{};if(!l.ok)return rd(d)||{success:!1,error:typeof d.message==`string`?d.message:`HTTP ${l.status}`};if(d.ok!==!0)return rd(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=Qu(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=Ju(d.walletCustody),h,g,_,y;if(f){if(d.ecdsaSession===void 0)throw Error(`Wallet unlock omitted the requested ECDSA Wallet Session activation`);if(h=v(d.ecdsaSession)&&d.ecdsaSession.kind===`router_ab_ecdsa_credential_free_session_activated_v1`?kt(d.ecdsaSession):Nt(d.ecdsaSession),d.ecdsaActivationReceipt===void 0||d.ecdsaCustody===void 0)throw Error(`Wallet unlock omitted ECDSA custody continuity`);if(_=ht(d.ecdsaActivationReceipt),y=Xu(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 nd({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 td({relayServerUrl:e,data:d,ed25519Session:p},n));if(h&&_&&y&&m){if(h.kind===`router_ab_ecdsa_credential_free_session_activated_v1`){if(!g)throw Error(`Credential-free ECDSA activation omitted exact Wallet Session authority`);return{success:!0,ecdsaSession:h,ecdsaActivationReceipt:_,ecdsaCustody:y,ed25519Session:p,walletCustody:m,walletSessionAuthorization:g}}return{success:!0,ecdsaSession:h,ecdsaActivationReceipt:_,ecdsaCustody:y,ed25519Session:p,walletCustody:m}}if(m&&p&&g)return{success:!0,ed25519Session:p,walletCustody:m,walletSessionAuthorization:g};if(m&&!p)return{success:!0,ed25519Session:null,walletCustody:m};throw Error(`Passkey wallet unlock returned incomplete exact session state`)}catch(e){return{success:!1,error:be(e)||`Failed to verify wallet unlock`}}}async function ad(e,t){try{let n=w(t.challengeId,`challengeId`),r=String(t.expected_origin||``).trim(),i={unlockBackend:`passkey`,challengeId:n,webauthn_authentication:Zn(t.webauthn_authentication),ed25519SessionRequest:t.ed25519SessionRequest,...r?{expected_origin:r}:{}},a=await fetch(s(e,`/wallet/unlock/verify`),{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(i)}),o=await a.json().catch(()=>({})),c=v(o)?o:{};if(!a.ok||c.ok!==!0)return rd(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=Qu(c.ed25519Session,c.operationCredential);if(t.ed25519SessionRequest.kind===`requested`&&!l)throw Error(`Linked passkey unlock omitted the requested Ed25519 Wallet Session`);if(t.ed25519SessionRequest.kind===`not_requested`&&l)throw Error(`Linked passkey unlock returned an unrequested Ed25519 Wallet Session`);return{success:!0,walletSession:re(c.walletSession),operationCredential:ne(c.operationCredential),ed25519Session:l}}catch(e){return{success:!1,error:be(e)||`Failed to verify linked passkey Wallet Session`}}}function od(e){let t=c(e);if(!t.ok)throw Error(`ECDSA registration recovery could not create a session id`);return t.value}function sd(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 cd(e){return gt({kind:`router_ab_ecdsa_post_registration_session_activation_policy_v1`,key_handle:e.keyHandle,session_policy:{threshold_session_id:od(vr(`threshold-ecdsa-registration-recovery`)),wallet_session_mint_id:sd(vr(`wallet-session-mint`)),ttl_ms:e.sessionPolicy.ttlMs,remaining_uses:e.sessionPolicy.unlockRemainingUses,runtime_policy_scope:e.runtimePolicyScope}})}async function ld(e){let t=await fetch(s(e.relayerUrl,`/wallet/unlock/challenge`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({unlockBackend:`passkey`,userId:e.walletId,rpId:e.rpId})}),n=h(await t.json().catch(()=>({})),`Passkey unlock challenge response`);if(!t.ok||n.ok!==!0)throw Error(typeof n.message==`string`&&n.message?n.message:`wallet/unlock/challenge failed (HTTP ${t.status})`);return{challengeId:T(n.challengeId,`Passkey unlock challenge ID`),challengeB64u:T(n.challengeB64u,`Passkey unlock challenge`)}}function ud(e){return e===`ble`||e===`hybrid`||e===`internal`||e===`nfc`||e===`usb`}function dd(e,t){return{id:e,type:`public-key`,transports:t.filter(ud)}}function fd(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||!yt(e.session.public_capability,e.walletKey.publicCapability))throw Error(`ECDSA registration unlock did not issue the exact Wallet Session`)}function pd(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=Ye(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=Ye(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||!yt(n.walletKey.publicCapability,i.publicCapability)||!Lt(n.activationReceipt,e.response.ecdsa.activation))throw Error(`ECDSA registration unlock returned different custody continuity`)}}function md(e){new Uint8Array(e).fill(0)}async function hd(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`);Gl(e.onEvent,String(e.pending.walletId),{phase:tn.STEP_03_PASSKEY_CHALLENGE_STARTED,status:`running`,authMethod:`passkey`});let r=await ld({relayerUrl:e.relayerUrl,walletId:String(e.pending.walletId),rpId:e.pending.auth.rpId});Gl(e.onEvent,String(e.pending.walletId),{phase:tn.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:[dd(e.pending.auth.credentialIdB64u,e.pending.auth.transports)],includeSecondPrfOutput:!0});if(dr(i)!==e.pending.auth.credentialIdB64u)throw Error(`ECDSA registration unlock returned a different Passkey credential`);Gl(e.onEvent,String(e.pending.walletId),{phase:tn.STEP_03_PASSKEY_PROMPT_SUCCEEDED,status:`succeeded`,authMethod:`passkey`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let a=pr(i,`ECDSA registration recovery`),o=await id(e.relayerUrl,{type:`passkey_assertion`,challengeId:r.challengeId,walletId:String(e.pending.walletId),webauthn_authentication:i,ed25519SessionRequest:{kind:`not_requested`},expected_origin:n,ecdsaSessionPolicy:cd({keyHandle:t.keyHandle,sessionPolicy:e.sessionPolicy,runtimePolicyScope:wl(e.response).ecdsa.runtimePolicyScope})},new En);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`);fd({pending:e.pending,response:e.response,session:o.ecdsaSession,walletKey:t}),pd({pending:e.pending,response:e.response,walletKeys:e.walletKeys,signers:o.ecdsaCustody.signers});let s=Uint8Array.from(j(a)).buffer;try{let n=await e.signingSurface.rejoinWalletCustodyEvmFamilyKeySet({walletId:String(e.pending.walletId),custodyJson:au(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{md(s)}}async function gd(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=wl(e.response).ecdsa.runtimePolicyScope,r=await Pu({walletSession:{walletId:qe(e.pending.walletId),walletSessionUserId:String(e.pending.walletId)},authoritySelector:{kind:`wallet_auth_method`,walletAuthMethodId:e.pending.walletAuthMethodId},relayUrl:e.relayerUrl,groupId:R,routePlan:Du({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:cd({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 fd({pending:e.pending,response:e.response,session:r.ecdsaSession,walletKey:t}),pd({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 _d(e){switch(e.exactMethod.kind){case`passkey`:return await hd({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 gd({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 vd={listPendingWalletRegistrationCommits:yd,completeWalletRegistrationNearProvisioning:Hn,publishPendingWalletRegistrationCommit:bd};async function yd(){return await B.initialize(),await B.listPendingWalletRegistrationCommits()}async function bd(e){return await B.publishPendingWalletRegistrationCommit(e)}function xd(e){return e instanceof Error?e:Error(String(e||`pending registration replay failed`))}function Sd(e){return e.operation===`near_provisioning`&&e.phase===`joined`}function Cd(e,t){let n=e.localMaterial.ed25519.metadata,r=e.localMaterial.ed25519.localMaterial;return{binding:{kind:Qn,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 wd(e){let t=j(e.localMaterial.ed25519.metadata.registeredPublicKeyB64u);if(t.length!==32)throw Error(`pending registration has an invalid Ed25519 registered public key`);return`ed25519:${Ae(t)}`}function Td(e,t,n){let r=e.localMaterial.ed25519.metadata,i=e.localMaterial.custodyCommit;if(e.auth.kind===`passkey`){if(vl({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 yl({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`);sn(e,{operation:e.operation,walletId:t.walletId,walletAuthMethodId:t.foundingAuthMethod.walletAuthMethodId,authority:t.authority})}function Ed(e,t){let n=t.registrationEstablishedSession;if(n.kind===`owner_operations`){if(n.walletId!==e.walletId||e.signerPlanKind!==`near_ed25519`)throw Error(`Owner registration replay identity mismatch`);return}let r=n.session,i=r.tokens.kind===`near_ed25519`||r.tokens.kind===`near_ed25519_and_evm_family_ecdsa`?r.tokens.ed25519:null,a=e.localMaterial.ed25519.metadata;if(r.walletId!==e.walletId||!i||i.nearAccountId!==t.ed25519.nearAccountId||i.nearEd25519SigningKeyId!==t.ed25519.nearEd25519SigningKeyId||i.routerAbNormalSigning.signingWorkerId!==a.signingWorkerId||!f(i.materialActivation,a.materialActivation))throw Error(`pending registration does not match the committed Wallet Session projection`)}function Dd(e,t){Ed(e,t);let n=t.registrationEstablishedSession;if(n.kind!==`owner_operations`){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 Od(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 Td(e,t,wd(e)),t}function kd(e,t){let n=Od(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 Dd(e,n),n}async function Ad(e,t){let n=wd(e),r={walletId:e.walletId,nearAccountId:Me(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:Cd(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 $n({...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=At(t.authority);if(!i)throw Error(`pending Email OTP registration replay returned an invalid authority`);return await tr({...r,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:i})}function jd(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===`owner_operations`?{kind:`owner_operations`}: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 Md(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 Nd(e,t){return{relayerUrl:e,registrationCeremonyId:t.registrationCeremonyId,signedSetup:t.signedSetup,idempotencyKey:t.idempotencyKey,ed25519:{activationReference:t.localMaterial.ed25519.activationReference},auth:Md(t),walletCustodyCommit:t.localMaterial.custodyCommit}}async function Pd(e){let t=Nd(e.relayerUrl,e.pending),n=await e.ports.completeWalletRegistrationNearProvisioning(t);return kd(e.pending,n)}async function Fd(e){let t=await Hn({...Nd(e.relayerUrl,e.pending),headers:E(e.operationCredential)}),n=kd(e.pending,t);if(n.registrationEstablishedSession.kind===`owner_operations`)throw Error(`Owner registration has no reusable session to restore`);let 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=ot({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:{...E(e.operationCredential),"Content-Type":`application/json`},body:JSON.stringify(a.value)}),s=await o.json();if(!o.ok||!s||typeof s!=`object`)throw Error(`Persisted NEAR registration activation is unavailable`);let c=kn(Reflect.get(s,`capability`)),l=e.pending.localMaterial.ed25519.metadata;if(c.registrationContinuity.kind!==`registration`||c.applicationBinding.wallet_id!==e.pending.walletId||c.applicationBinding.near_ed25519_signing_key_id!==l.nearEd25519SigningKeyId||c.lifecycle.lifecycleId!==e.pending.localMaterial.ed25519.activationReference.lifecycle_id||c.lifecycle.thresholdSessionId!==i.thresholdSessionId||c.lifecycle.signingWorkerId!==l.signingWorkerId||c.applicationBinding.key_creation_signer_slot!==l.signerSlot||A(Uint8Array.from(c.registeredPublicKey))!==l.registeredPublicKeyB64u||!f(c.materialActivation,l.materialActivation))throw Error(`Persisted NEAR registration activation changed identity`);let u=c.registrationContinuity;return{joined:{commitPayload:e.pending.localMaterial.custodyCommit,activationReference:e.pending.localMaterial.ed25519.activationReference,localMaterial:e.pending.localMaterial.ed25519.localMaterial,metadata:Ta({material:Cd(e.pending,n),activation:{materialActivation:c.materialActivation,lifecycleId:c.lifecycle.lifecycleId,signingRootVersion:c.lifecycle.rootShareEpoch,signingRootId:c.applicationBinding.signing_root_id,signerSetId:c.lifecycle.signerSetId,thresholdSessionId:c.lifecycle.thresholdSessionId,activationTranscriptB64u:A(Uint8Array.from(u.activationTranscript)),activationCapabilityBindingB64u:A(Uint8Array.from(c.activeCapabilityBinding))}})},admissionRequest:u.admissionRequest,admissionReceipt:u.admissionReceipt}}async function Id(e){let t=await Pd(e),n=await Ad(e.pending,t);return await e.ports.publishPendingWalletRegistrationCommit(jd(e.pending,t,n)),{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId}}async function Ld(e){let t=e.ports||vd,n=await t.listPendingWalletRegistrationCommits(),r=[];for(let i of n){if(Sl(i)||Cl(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(Sd(i))try{r.push(await Id({relayerUrl:e.relayerUrl,pending:i,ports:t}))}catch(e){r.push({kind:`failed`,registrationCeremonyId:i.registrationCeremonyId,error:xd(e)})}}return r}const Rd={activateWalletRegistration:Pn,publishPendingWalletRegistrationCommit:bd,unlockPendingEcdsaRegistration:_d};async function zd(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(!Sl(t)&&!Cl(t))throw Error(`pending registration commit is not ECDSA-enabled`);return t}async function Bd(e){if(e.pending.auth.kind!==e.exactMethod.kind)throw Error(`pending registration requires its exact authentication method`);return await Wl({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,pending:e.pending,exactMethod:e.exactMethod,signingSurface:e.signingSurface,ports:Rd,nearContext:e.nearContext,nearCompletion:e.nearCompletion,onEvent:e.onEvent})}const Vd=[1,2];function Hd(e){let t=[],n=new Set;for(let r of e){let e=ae(r.network);if(e!==`evm`&&e!==`tempo`)continue;let i=Je(r),a=Ye(i);n.has(a)||(n.add(a),t.push({chainTarget:i}))}return t}function Ud(e){let t=[],n=new Set;for(let r of e.chains){let i=ae(r.network);if(i!==`evm`&&i!==`tempo`||!(i===`tempo`?e.signerOptions.tempo:e.signerOptions.evm).enabled)continue;let a=Je(r),o=Ye(a);n.has(o)||(n.add(o),t.push({chainTarget:a}))}return t}function Wd(e){for(let t of e.signers)if(t.kind===`near_ed25519`)return!0;return!1}function Gd(e){let t=e.ecdsaChainTargets??qd(e.configs,e.options);return Jd(e.accountProvisioning??hn(),t)}function Kd(e){let t=null;for(let n of e.configs.network.chains)if(ie(n.network)){t=Zd(e);break}return Jd(t,qd(e.configs,e.options))}function qd(e,t){let n=Ud({signerOptions:t.signerOptions??e.signing.thresholdEcdsa.provisioningDefaults,chains:e.network.chains}),r=[];for(let e of n)r.push(e.chainTarget);return r}function Jd(e,t){let n=[];if(e&&n.push({kind:`near_ed25519`,accountProvisioning:e,signerSlot:1,participantIds:[...k],derivationVersion:1}),t.length&&n.push({kind:`evm_family_ecdsa`,chainTargets:[...t],participantIds:[...Vd]}),!n.length)throw Error(`Wallet registration requires at least one configured, enabled signer`);return{kind:`signer_set`,signers:n}}function Yd(e){let t=ke(e);if(!t.ok)throw Error(t.message);return mn(t.value)}function Xd(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 Yd(`${t}.${n}`)}function Zd(e){let t=e.preference??e.configs.registration.nearAccountProvisioning;switch(t.kind){case`implicit_account`:return hn();case`relayer_named_subaccount`:if(e.wallet.kind!==`provided`)throw Error(`Relayer named NEAR registration requires a provided walletId`);return Xd({walletId:e.wallet.walletId,relayerAccountId:e.configs.network.relayer.accountId});default:return t}}async function Qd(e){let t=performance.now();yr(`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);yr(`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{yr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:`failed`,reason:`unexpected_error`,durationMs:performance.now()-t})}}const $d=new Map,ef=new Set;function tf(e,t){for(let n of ef)try{n(e,t)}catch{}}function nf(e,t){let n=String(e),r=$d.get(n);if(r)return r;let i={state:{status:`near_pending`,updatedAtMs:t},inFlight:null};return $d.set(n,i),i}function rf(e){return $d.get(String(e))?.state??null}async function af(e){let t=$d.get(String(e));return t?t.inFlight?await t.inFlight:t.state:null}function of(e,t){let n=nf(e,t.updatedAtMs);n.state.status===`near_ready`&&t.status!==`near_ready`||(n.state=t,tf(e,t))}function sf(e){return ef.add(e),()=>{ef.delete(e)}}function cf(e){let t=nf(e.walletId,e.nowMs());if(t.inFlight)return t.inFlight;if(t.state.status===`near_ready`)return Promise.resolve(t.state);of(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,of(e.walletId,n),n));return t.inFlight=n,n}function lf(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 uf(e){let{session:t,previous:n}=e;if(n.walletId!==t.walletId||n.authorityId!==t.authorityId||n.revocationEpoch!==t.authorityRevocationEpoch||n.authorityDigestB64u===t.authorityDigestB64u||!n.signerActivations.ed25519)return;let r=t.capabilitySubjects.find(df);if(!r||r.kind!==`sign`)return;let i=await dt({authority:n,materialActivation:r.materialActivation,updatedAtMs:Date.now()});i.authorityDigestB64u===t.authorityDigestB64u&&await We.runTransaction([He.walletAuthorities,He.signingSessionSeals],`readwrite`,ff.bind(null,n,i))}function df(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}async function ff(e,t,n){let r=n.store(He.walletAuthorities),i=un(await r.get(e.authorityId));if(!i||i.record.state!==`active`||i.record.walletId!==e.walletId||i.record.revocationEpoch!==e.revocationEpoch||i.record.authorityDigestB64u!==e.authorityDigestB64u&&i.record.authorityDigestB64u!==t.authorityDigestB64u)throw Error(`Recovered Ed25519 authority changed before local adoption`);i.record.authorityDigestB64u!==t.authorityDigestB64u&&await r.put(cn(t));let a=e.signerActivations.ed25519;if(!a)return;let o=await n.store(He.signingSessionSeals).index(`wallet_id`).openCursor(e.walletId);for(;o;){let t=gs(Xo(o.value));t.kind===`current`&&t.record.curve===`ed25519`&&t.record.walletId===e.walletId&&f(t.record.ed25519Restore.materialActivation,a.materialActivation)&&await o.delete(),o=await o.continue()}}async function pf(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 mf(e){return await hf(await pf(e))}async function hf(e){return await Rt({authority:{walletId:e.walletId,factor:{kind:`passkey`,credentialIdB64u:e.credentialIdB64u},verifier:{kind:`webauthn`,rpId:e.rpId},bindingId:e.walletAuthMethodId}})}async function gf(e){let{record:t,operationCredential:n}=e.authorization;e.statusReads.invalidateCredential(n.token);let r=await e.statusReads.read({relayerUrl:e.relayerUrl,operationCredential:n},{walletSessionId:n.walletSessionId,quotaId:t.quotaId});if(r.status!==`active`||!xr(r.authorization,t)||r.authorization.authorityRevocationEpoch!==t.authorityRevocationEpoch||!r.authorization.capabilitySubjects.some(_f.bind(null,e.materialActivation)))throw Error(`Recovered Ed25519 material does not match the active Wallet Session`);if(await uf({session:r.authorization,previous:e.previousAuthority}),await vf({walletId:t.walletId,authorization:{record:r.authorization,operationCredential:n}}),(await B.replaceExactActiveWalletSessionFromStatus({active:r.authorization,operationCredential:n})).kind===`superseded`)throw Error(`Wallet Session changed before recovered authority adoption`)}function _f(e,t){return t.kind===`sign`&&t.keyFamily===`ed25519`&&f(e,t.materialActivation)}async function vf(e){let t=await B.getWalletAuthMethodV2(e.authorization.record.authMethodId);if(!t||t.kind!==`passkey`||t.status!==`active`||t.walletId!==e.walletId||t.walletAuthorityId!==e.authorization.record.authorityId)throw Error(`Passkey Wallet Session authorization changed auth-method identity`);let n=await B.getWalletAuthority(t.walletAuthorityId);if(!n||n.state!==`active`||n.walletId!==e.walletId||n.authorityId!==e.authorization.record.authorityId||n.authorityDigestB64u!==e.authorization.record.authorityDigestB64u||n.revocationEpoch!==e.authorization.record.authorityRevocationEpoch)throw Error(`Passkey Wallet Session authorization changed authority identity`);return{reference:await hf(t),identity:Sr({authority:n,walletAuthMethodId:t.walletAuthMethodId})}}async function yf(e){let t=await B.getWalletAuthMethodV2(e.authMethodId);if(!t||t.kind!==`passkey`||t.status!==`active`||t.walletId!==e.walletId)throw Error(`Passkey recovery requires its active authentication method`);let n=await B.getWalletAuthority(t.walletAuthorityId);if(!n||n.state!==`active`||n.walletId!==e.walletId)throw Error(`Passkey recovery requires its active wallet authority`);return n}const bf=[`walletId`,`envelopeId`,`factor`,`envelopeRevision`,`binding`,`ownership`];function xf(e){let t=Sf(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=Be({kind:Fe,envelopeId:t.envelopeId,walletId:t.walletId,binding:t.binding,factor:t.factor,ownership:Pe(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 Sf(e){let t;try{t=JSON.parse(e)}catch{throw Error(`recovery replacement envelope binding is not JSON`)}let n=h(t,`recoveryReplacementEnvelope.binding`);return P(n,bf,`recoveryReplacementEnvelope.binding`),n}const Cf=`passkeyCustodyEnvelopeCacheV1`,wf=`passkey_custody_envelope_cache_v1`;let Tf={kind:`unconfigured`};const Ef=new Map;function Df(e){throw Error(`unknown passkey custody session cache persistence state: ${String(e)}`)}function Of(){switch(Tf.kind){case`configured`:return Tf.persistence;case`unconfigured`:throw Error(`passkey custody session cache persistence is not configured`);default:return Df(Tf)}}function kf(e){Tf={kind:`configured`,persistence:e}}function Af(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 jf(){return{kind:wf,envelopes:[]}}function Mf(e){if(e==null)return jf();if(typeof e!=`object`||Array.isArray(e))throw Error(`passkey custody envelope cache is invalid`);let t=e;if(t.kind!==wf||!Array.isArray(t.envelopes))throw Error(`passkey custody envelope cache has an invalid shape`);return{kind:wf,envelopes:t.envelopes.map(e=>{let t=Be(e);if(!Ne(t.binding))throw Error(`generic passkey custody cache cannot contain an Ed25519 export root`);return t})}}async function Nf(){return Mf(await Of().readCacheEntry(Cf))}async function Pf(e){await Of().writeCacheEntry(Cf,e)}async function Ff(e){if(e.envelope.lifecycle.state!==`active`)throw Error(`passkey custody session envelope is not active`);if(!Ne(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=Af(String(e.walletId),String(e.credentialIdB64u));Ef.set(t,e.envelope);let n=(await Nf()).envelopes.filter(e=>e.factor.kind!==`passkey`||Af(String(e.walletId),String(e.factor.credentialIdB64u))!==t);n.push(e.envelope),await Pf({kind:wf,envelopes:n.slice(-32)})}async function If(e){let t=Af(String(e.walletId),String(e.credentialIdB64u)),n=Ef.get(t);if(n)return n;let r=(await Nf()).envelopes.find(e=>e.lifecycle.state===`active`&&e.factor.kind===`passkey`&&Af(String(e.walletId),String(e.factor.credentialIdB64u))===t);return r?(Ef.set(t,r),r):null}function Lf(e){return Math.max(0,Math.round(performance.now()-e))}function Rf(){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 zf(e){let t=performance.now(),n=pr(e.credential,`Passkey registration authority`),r=Lf(t),i=performance.now(),a=Xn(e.credential),o=Lf(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 Bf(e){let t=performance.now();return zf({credential:await e,diagnostics:Rf(),requestConfirmationMs:Lf(t)})}async function Vf(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=Lf(t),i=n.registrationDiagnostics??Rf();return zf({credential:n.credential,diagnostics:i,requestConfirmationMs:r})}function Hf(e){let t=e.trim();if(!t)throw Error(`Registration finalize idempotency key is required`);return t}function Uf(e){let t=d(e.materialActivation);if(!t.ok)throw Error(`Email OTP Ed25519 material activation is invalid`);let n=String(e.nearAccountId||``).trim(),r=String(e.operationalPublicKey||``).trim(),i=String(e.thresholdSessionId||``).trim(),a=Number(e.signerSlot);if(!n||!r||!i)throw Error(`Email OTP Ed25519 signer identity is incomplete`);if(!Number.isSafeInteger(a)||a<1)throw Error(`Email OTP Ed25519 signer slot is invalid`);let o=N(e.runtimePolicyScope);if(!o)throw Error(`Email OTP Ed25519 runtime policy scope is invalid`);return{materialActivation:t.value,nearAccountId:n,signerSlot:a,operationalPublicKey:r,thresholdSessionId:i,runtimePolicyScope:o}}function Wf(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`,...Uf(t)}}function Gf(e){let t=Jf(e,`wallet/email-otp/challenge signerSelection`);if(t.kind===`ed25519_only`)return{kind:`ed25519_only`,...Uf(t)};if(t.kind!==`ecdsa`)throw Error(`wallet/email-otp/challenge signerSelection kind is invalid`);return{kind:`ecdsa`,keyHandle:Q(t.keyHandle,`wallet/email-otp/challenge keyHandle`),runtimePolicyScope:I(t.runtimePolicyScope),ed25519:Wf(t.ed25519)}}var Kf=class extends Error{code;status;retryAfterMs;resetAtMs;constructor(e){super(e.message),this.name=`EmailOtpRouteError`;let t=Yf(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 qf(e){let t=e||globalThis.fetch;if(typeof t!=`function`)throw Error(`fetch is unavailable in this runtime`);return t}function Jf(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} returned invalid JSON`);return e}function Q(e,t){return w(e,t)}function Yf(e){return g(e)}function Xf(e){let t={"Content-Type":`application/json`},n=String(e.publishableKey||``).trim();return n&&(t.Authorization=`Bearer ${n}`),t}function Zf(e){return e.routeFamily===`registration`?Cu({routeFamily:`registration`,operation:Se}):Cu({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function Qf(e){let t=Yf(e.challenge.action);if(t&&t!==e.expectedAction)throw Error(`${e.context} returned ${t}; expected ${e.expectedAction}`)}async function $f(e){let t=await qf(e.fetchImpl)(e.url,{method:`POST`,headers:Xf({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=Jf(r,e.url);if(!t.ok||i.ok===!1)throw new Kf({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 ep(e){if(e.restartRegistrationOffer===!0&&e.accountMode!==`register`)throw Error(`restartRegistrationOffer is only valid with register account mode`);let t=await $f({url:s(e.relayUrl,`/auth/google/verify`),fetchImpl:e.fetchImpl,publishableKey:Q(e.publishableKey,`publishableKey`),body:{id_token:Q(e.idToken,`idToken`),account_mode:e.accountMode,project_environment_id:Q(e.projectEnvironmentId,`projectEnvironmentId`),...e.loginWalletId?{wallet_id:Q(e.loginWalletId,`loginWalletId`)}:{},...e.restartRegistrationOffer===!0?{restart_registration_offer:!0}:{}}}),n=Q(t.mode,`auth/google/verify mode`),r=Q(t.walletId,`auth/google/verify walletId`),i=Q(t.providerSubject,`auth/google/verify providerSubject`),a=Yf(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=Jf(t.offer,`auth/google/verify offer`),c=(Array.isArray(o.candidates)?o.candidates:[]).map(tp),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:Q(t.registrationAttemptId,`auth/google/verify registrationAttemptId`),expiresAtMs:np(t.expiresAtMs,`auth/google/verify expiresAtMs`),offer:{offerId:Q(o.offerId,`auth/google/verify offer.offerId`),selectedCandidateId:Q(o.selectedCandidateId,`auth/google/verify offer.selectedCandidateId`),candidates:[l,...c.slice(1)]}}}function tp(e){let t=Jf(e,`auth/google/verify offer candidate`);return{candidateId:Q(t.candidateId,`offer candidate candidateId`),walletId:Q(t.walletId,`offer candidate walletId`)}}function np(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 rp(e){let t=e.operation??`wallet_unlock`;if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpChallenge`,payload:{relayUrl:Q(e.relayUrl,`relayUrl`),walletId:Q(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Q(e.walletAuthMethodId,`walletAuthMethodId`)}:{},routePlan:Zf({routeFamily:`login`,operation:t}),otpChannel:xe,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}});let n=await $f({url:s(e.relayUrl,`/wallet/email-otp/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Q(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Q(e.walletAuthMethodId,`walletAuthMethodId`)}:{},otpChannel:e.otpChannel||`email_otp`,operation:t,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}),r=Jf(n.challenge,`wallet/email-otp/challenge`);Qf({challenge:r,expectedAction:Te.login,context:`wallet/email-otp/challenge`});let i=Tr(n.delivery,`wallet/email-otp/challenge delivery`),a=Number(r.expiresAtMs),o={challengeId:Q(r.challengeId,`wallet/email-otp/challenge challengeId`),otpChannel:xe,delivery:i,emailHint:i.emailHint,ownerProofBindingDigest:Q(r.ownerProofBindingDigest,`wallet/email-otp/challenge ownerProofBindingDigest`),walletAuthMethodId:Q(n.walletAuthMethodId,`wallet/email-otp/challenge walletAuthMethodId`),signerSelection:Gf(n.signerSelection)};return Number.isFinite(a)&&(o.expiresAtMs=a),o}async function ip(e){if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpEnrollmentChallenge`,payload:{relayUrl:Q(e.relayUrl,`relayUrl`),walletId:Q(e.walletId,`walletId`),routePlan:Zf({routeFamily:`registration`}),otpChannel:xe}}});let t=await $f({url:s(e.relayUrl,`/wallet/email-otp/registration/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Q(e.walletId,`walletId`),otpChannel:e.otpChannel||`email_otp`}}),n=Jf(t.challenge,`wallet/email-otp/registration/challenge`);Qf({challenge:n,expectedAction:Te.registration,context:`wallet/email-otp/registration/challenge`});let r=Tr(t.delivery,`wallet/email-otp/registration/challenge delivery`),i=Number(n.expiresAtMs),a={challengeId:Q(n.challengeId,`wallet/email-otp/registration/challenge challengeId`),otpChannel:xe,delivery:r,emailHint:r.emailHint};return Number.isFinite(i)&&(a.expiresAtMs=i),a}function ap(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 op(e){let t=ap(e.authMethod.email,`email`).toLowerCase(),n=ap(e.authMethod.providerSubject,`providerSubject`),r=ap(e.relayUrl,`relayUrl`),i=ap(e.walletId,`walletId`),a=ap(e.registrationIntentDigestB64u,`registrationIntentDigestB64u`);if(e.authMethod.proofKind===`google_sso_registration`){let r=ap(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:ap(e.authMethod.googleEmailOtpRegistrationOfferId,`googleEmailOtpRegistrationOfferId`),googleEmailOtpRegistrationCandidateId:ap(e.authMethod.googleEmailOtpRegistrationCandidateId,`googleEmailOtpRegistrationCandidateId`),registrationIntentDigestB64u:a},registrationAuthorityId:r,providerSubject:n,email:t}}let o=ap(e.authMethod.otpCode,`otpCode`),s=typeof e.authMethod.challengeId==`string`?e.authMethod.challengeId.trim():``,c=s?null:await ip({relayUrl:r,walletId:i,fetchImpl:e.fetchImpl}),l=s||ap(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 sp(e,t,n){if(e!==t)throw Error(`${n} does not match the verified add-signer intent`)}function cp(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 lp(e){let t=b(e.verifiedIntent.addSignerIntentGrant,`add-signer intent grant`);return{routerOrigin:b(e.httpTransport.routerOrigin,`Yao Router origin`),routing:{kind:`discovery`},authorization:{kind:`bearer`,value:`Bearer ${t}`},fetch:e.httpTransport.fetch}}async function up(e){let t=e.verifiedIntent.intent,n=t.signerSelection.ed25519;sp(String(t.walletId),String(e.verifiedAuthority.walletId),`Passkey authority wallet ID`),sp(e.verifiedIntent.addSignerIntentDigestB64u,e.verifiedAuthority.addSignerIntentDigestB64u,`Passkey authority intent digest`),b(e.verifiedAuthority.credentialIdB64u,`passkey credential ID`);let r=I(t.runtimePolicyScope),i=ee(r),a=at(e.admissionRequest);if(!a.ok)throw Error(a.message);let o=a.value,s=b(e.verifiedIntent.addSignerCeremonyId,`add-signer ceremony ID`);if(sp(o.scope.lifecycle_id,s,`Yao lifecycle ID`),sp(o.scope.threshold_session_id,s,`Yao Threshold Session ID`),sp(o.scope.account_id,String(t.walletId),`Yao account ID`),sp(o.scope.signer_set_id,String(pn(n.signerSlot)),`Yao signer-set ID`),sp(o.scope.root_share_epoch,r.signingRootVersion,`Yao root-share epoch`),sp(o.application_binding.wallet_id,String(t.walletId),`Yao application wallet ID`),sp(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`);cp(n.participantIds,o.participant_ids);let c=await Ut({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 sp(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:lp(e)}}async function dp(e){let t=await up(e),n=await new Pi(t.transportConfig).send({kind:`admit`,path:lt,body:t.request});if(!n.ok)throw Error(n.message);let r=ft(n.value);if(!r.ok)throw Error(r.message);return{request:t.request,receipt:r.value}}function fp(e){let t=a(e);if(!t.ok)throw Error(t.error.message);return t.value}function pp(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 mp(e){let t=e.configs.signing.emailOtp.authPolicy;return cr({policy:t,retention:`session`,reason:`login`,authority:e.authority})}async function hp(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:pp({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(!Ft(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=At({...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 mp({configs:e.configs,authority:i}),authority:i}}default:return J(e.authMethod)}}function gp(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||!el(e.session.chainTargets,e.expectedChainTargets))throw Error(`ECDSA registration family session target projection is incomplete`);return Zc(e.walletKeys),Qc({session:e.session,walletKeys:e.walletKeys}),ll({session:e.session,walletKeys:e.walletKeys}),{kind:`evm_family_ecdsa`,session:e.session,walletKeys:[t,...n],expectedChainTargets:[r,...i]}}function _p(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 vp(e){return{kind:`registration_persistence_plan_v1`,walletId:e.walletId,auth:e.auth,ecdsa:e.ecdsa,foundingAuthority:e.foundingAuthority,foundingAuthMethod:e.foundingAuthMethod}}function yp(e){let t=fn(e);if(!t)throw Error(`pending wallet registration commit is invalid`);return t}function bp(e){let t=qe(e.walletId),r=n(e.walletAuthMethodId);if(!r.ok)throw Error(r.error.message);let i=xp(e.auth),a={kind:`pending_wallet_registration_commit_v1`,registrationCeremonyId:Sp(e.registrationCeremonyId,`registrationCeremonyId`),idempotencyKey:Sp(e.idempotencyKey,`idempotencyKey`),walletId:t,walletAuthMethodId:r.value,signedSetup:Sp(e.signedSetup,`signedSetup`),auth:i,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs};if(e.operation===`registration_activate`)return yp({...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 yp({...a,operation:e.operation,phase:`joined`,completion:e.completion,signerPlanKind:e.signerPlanKind,localMaterial:e.localMaterial})}function xp(e){if(e.kind===`passkey`){let t=fp(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:Sp(e.enrollment.enrollmentSealKeyVersion,`enrollment.enrollmentSealKeyVersion`),serverSealedFactorCiphertextB64u:Sp(e.enrollment.serverSealedFactorCiphertextB64u,`enrollment.serverSealedFactorCiphertextB64u`),clientUnlockPublicKeyB64u:Sp(e.enrollment.clientUnlockPublicKeyB64u,`enrollment.clientUnlockPublicKeyB64u`),unlockKeyVersion:Sp(e.enrollment.unlockKeyVersion,`enrollment.unlockKeyVersion`)}}}function Sp(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 Cp(e){e.registrationTiming.record(`ecdsaRegistrationTargetCount`,e.plan.ecdsa.walletKeys.length);let t=performance.now();try{return await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:qe(e.plan.walletId),session:e.plan.ecdsa.session,walletKeys:[...e.plan.ecdsa.walletKeys]})}finally{e.registrationTiming.record(`ecdsaRegistrationSessionFinalizeMs`,Za(t))}}async function wp(e){if(e.plan.auth.kind===`passkey`){await e.context.signingEngine.finalizeWalletEcdsaRegistration({walletId:e.plan.walletId,rpId:fp(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 Tp(e){let t=await Cp(e),n=performance.now();try{if(await wp({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`,Za(n))}await br(Tn,e.plan.ecdsa.session.registrationEstablishedSession)}function Ep(e){return Tp.bind(void 0,e)}async function Dp(e){await e.registrationTiming.measure(`ecdsaRegistrationPersistenceMs`,Ep(e))}var Op=e({REGISTRATION_TIMING_LABEL:()=>Fa,addSigner:()=>Gh,cancelHostedPasskeyRegistration:()=>hm,prepareHostedPasskeyRegistration:()=>mm,registerPreparedHostedPasskeyRegistration:()=>_m,registerWallet:()=>Mh,resumeNearRegistrationAfterUnlock:()=>uh,startHostedPasskeyRegistrationCredential:()=>gm});async function kp(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 jp({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 mr.write({walletId:t,recoveryCodes:r});default:throw Error(`Wallet recovery-code backup result is invalid`)}}async function Ap(e,t,n,r,i){e.value=await kp(t,n,r,i)}async function jp(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 fr(e.request,e.context.signingEngine.getWalletIframeSurfaceMeasurementBinding());case`custom_handler`:return await e.backup.handler(e.request);default:return J(e.backup)}}function Mp(e){e.byteLength>0&&new Uint8Array(e).fill(0)}function Np(e){let t=e.established.metadata;return{binding:{kind:Qn,applicationBindingDigestB64u:e.established.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:A(t.registeredPublicKey),participantIds:t.participantIds,stateEpoch:String(t.stateEpoch),walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:e.signerSlot,signingWorkerId:t.scope.signing_worker_id,signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:e.established.localMaterial.b64u,nonceB64u:e.established.localMaterial.nonceB64u}}}function Pp(e){let t=e.metadata;return{materialActivation:Nn(t),registeredPublicKeyB64u:A(t.registeredPublicKey),signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare),stateEpoch:String(t.stateEpoch),signingWorkerId:t.scope.signing_worker_id,participantIds:t.participantIds,nearEd25519SigningKeyId:t.applicationBinding.near_ed25519_signing_key_id,signerSlot:t.applicationBinding.key_creation_signer_slot}}function Fp(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 Ip(e){let t=e.commit.establishedCustody;if(!t)throw Error(`Passkey registration custody commit is missing its established envelope`);return xf({expectedWalletId:e.walletId,replacement:t,activatedAtMs:e.activatedAtMs})}async function Lp(e){await e.signingEngine.establishUnlockedWalletEd25519ExportRootCapabilityV1({existingEnvelope:Ip({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 Rp(e){try{await Dn(On(e.context.signingEngine.getSignerWorkerContext()),{existingEnvelope:Ip({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 zp(e){let t=Ip(e);if(t.factor.kind!==`passkey`)throw Error(`Passkey registration custody commit has a non-passkey factor`);await Ff({walletId:e.walletId,credentialIdB64u:t.factor.credentialIdB64u,envelope:t})}function Bp(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:pt,session:{walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authorityScope:{kind:`email_otp`,provider:ar(e.authContext),providerUserId:or(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 Vp=Symbol(`hostedPasskeyRegistrationPrepared`),Hp=new WeakMap;function Up(e){let t=gn(e);if(!t.ok)throw Error(t.message);return t.value}function Wp(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 Gp(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 J(e)}}function Kp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`near_ed25519`:return t.kind===`near_ed25519`&&Gp(e.accountProvisioning,t.accountProvisioning)&&e.signerSlot===t.signerSlot&&Wp(e.participantIds,t.participantIds)&&e.derivationVersion===t.derivationVersion;case`evm_family_ecdsa`:return t.kind===`evm_family_ecdsa`&&Wp(e.participantIds,t.participantIds)&&yn(e.chainTargets)===yn(t.chainTargets);default:return J(e)}}function qp(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 Yp(){return Promise.resolve(ho())}function Xp(e){return e.signers.some(e=>e.kind===`evm_family_ecdsa`)}function Zp(e){return e.authMethod.kind!==`email_otp`||!Wd(e.signerSelection)?Yp:$p.bind(void 0,{prewarm:e.context.signingEngine.prewarmEmailOtpYao.bind(e.context.signingEngine)})}function Qp(e,t){let n=Za(t);return{kind:`failed`,elapsedMs:n,workerPrewarmMs:n,yaoWasmInitMs:0,failureStage:`worker_ready`}}function $p(e){let t=performance.now();return e.prewarm().catch(e=>Qp(e,t))}function em(e){let[t,n]=e;return{kind:`completed`,diagnostics:{...t,emailOtpWorkerPrewarmMs:n.workerPrewarmMs,emailOtpYaoWasmInitMs:n.yaoWasmInitMs,emailOtpYaoPrewarm:n}}}function tm(e){return{kind:`failed`,error:e}}function nm(e){Ln({relayerUrl:e.relayerUrl,nearEd25519:e.signerSelection.signers.some(e=>e.kind===`near_ed25519`),evmFamilyEcdsa:Xp(e.signerSelection)}),Wd(e.signerSelection)&&dl(e.authMethod,e.context.signingEngine.prewarmNearSigner.bind(e.context.signingEngine));let t=e.recorder.measure(`registrationWarmupMs`,Jp(e.context)),n=e.recorder.measure(`registrationWarmupEmailOtpYaoWasmInitMs`,Zp({context:e.context,authMethod:e.authMethod,signerSelection:e.signerSelection}));return Xp(e.signerSelection)&&e.context.signingEngine.prewarmEcdsaRegistrationCrypto?.().catch(()=>{}),Promise.all([t,n]).then(em,tm)}function rm(e){e.warmup.then(t=>{t.kind===`completed`&&e.recorder.captureWarmupDiagnostics(t.diagnostics)})}function im(e){return vn(Up(e))?.signerSlot??1}async function am(e){return e.passkeyExecution?.kind===`use_hosted_preparation`?await e.passkeyExecution.authority:await Vf({context:e.context,walletId:e.walletId,signerSlot:e.signerSlot,registrationIntentDigestB64u:e.registrationIntentDigestB64u,options:e.options,confirmationConfigOverride:e.confirmationConfigOverride})}function om(e){if(e[Vp]!==!0)throw Error(`Invalid hosted passkey registration preparation`);let t=Hp.get(e);if(!t)throw Error(`Hosted passkey registration preparation is unknown`);return t}function sm(e){if(e.lifecycle!==`ready`)throw Error(`Hosted passkey registration preparation is no longer usable`);if(Date.now()>=e.prepared.expiresAtMs)throw hm(e.prepared),Error(`Hosted passkey registration preparation expired`);if(e.controller.signal.aborted)throw Error(`Hosted passkey registration preparation was cancelled`);if(!Cr.isLiveReservation({reservation:e.prepared.reservation,owner:e.prepared.owner}))throw hm(e.prepared),Error(`Hosted passkey registration prompt reservation is no longer active`)}function cm(e){return C({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:e.walletId,signerSlot:e.signerSlot,rpId:e.rpId,challengeB64u:e.challengeB64u})}function lm(){return Error(`Hosted passkey registration preparation was cancelled`)}function um(e){if(e.aborted)throw lm()}function dm(e){let t=e.cancellation.signal;return um(t),new Promise((n,r)=>{let i=!1,a=()=>{c(lm())},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 fm(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=Gm(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 J(e.setup)}}function pm(e){e.ceremony.kind!==`not_required`&&tl({context:e.context,ceremonyId:e.ceremony.ceremonyId})}async function mm(e){let t=e.authMethod,n=fp(String(t.rpId));if(fp(String(e.context.signingEngine.getRpId()||``))!==n)throw Error(`Hosted passkey registration rpId does not match the wallet runtime`);let r=im(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&&hm(c)},f=()=>{e.cancellation.signal.removeEventListener(`abort`,d)};um(e.cancellation.signal),e.cancellation.signal.addEventListener(`abort`,d,{once:!0});let p=new mo(performance.now());try{let i=await dm({operation:Rm({completion:`wallet_session`,context:e.context,authMethod:t,wallet:e.wallet,signerSelection:e.signerSelection,recorder:p}),cancellation:e.cancellation}),d=_l(i.setup.intent);if(String(d.authMethod.rpId)!==String(n)||!qp(d.signerSelection,e.signerSelection))throw Error(`Hosted passkey registration setup changed its authority binding`);let m=Wt(String(d.walletId)),h=String(i.setup.registrationIntentDigestB64u||``).trim();if(!h)throw Error(`Hosted passkey registration setup returned no challenge`);if(r!==im(e.signerSelection))throw Error(`Hosted passkey registration signer slot changed during preparation`);if(u=fm({context:e.context,setup:i.setup}),rm({recorder:p,warmup:i.registrationWarmup}),Date.now()>=a)throw Error(`Hosted passkey registration preparation expired before reservation`);let g=await Cr.reserveRegistrationPrompt({owner:o,expiresAtMs:a,cancellation:e.cancellation});l=g;let _=cm({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},[Vp]:!0});return Hp.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(),pm({context:e.context,ceremony:u}),c?hm(c):l&&Cr.releaseReservation(l),t}}function hm(e){let t=om(e);t.lifecycle===`finished`||t.lifecycle===`cancelled`||(t.lifecycle=`cancelled`,t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,pm({context:t.context,ceremony:t.ecdsaClientCeremony}),Cr.releaseReservation(e.reservation))}function gm(e){let t=om(e);sm(t),t.lifecycle=`consuming`;let n=Bf(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`)},()=>{hm(e)}),n}async function _m(e){let t=om(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 Ah({completion:`wallet_session`,context:t.context,authMethod:t.authMethod,wallet:t.wallet,signerSelection:t.signerSelection,options:t.options,authenticatorOptions:bn(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`,pm({context:t.context,ceremony:t.ecdsaClientCeremony}),t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,Cr.releaseReservation(e.prepared.reservation)}}async function vm(e){return Hf(`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 ym(e){let t=globalThis.crypto;if(t&&typeof t.randomUUID==`function`)return Hf(`${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),Hf(`${e}:${[...n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`)}function bm(e){return e.recorder.measure(`emailOtpEnrollmentMaterialMs`,()=>Sm({context:e.context,authMethod:e.authMethod,relayerUrl:e.relayerUrl,walletId:e.walletId,providerSubject:e.providerSubject,clientSecret32:e.clientSecret32}))}function xm(e){if(e.emailOtpSessionHandle.kind!==`not_requested`)throw Error(`Strict ECDSA registration received obsolete Email OTP root-share material`)}async function Sm(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:qe(e.walletId),userId:e.providerSubject,clientSecret32:e.clientSecret32});return xm(t),t}finally{e.clientSecret32.fill(0)}}function Cm(e){let t=e.event.authMethod,n=wm(e.accountId);return en({...e.event,flowId:`registration:${t}:${n}`,accountId:n,authMethod:t})}function wm(e){let t=String(e||``).trim();if(!t)throw Error(`Registration event account id is required`);return t}function Tm(e){return v(e)&&`code`in e?String(e.code||``).trim():``}function Em(e,t){return Object.assign(Error(e),t?{code:t}:{})}function Dm(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?.(Cm({accountId:t,event:n}))}function Om(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 km(e){let t=String(e||``).trim().toLowerCase();if(!t)throw Error(`Email OTP registration auth context requires email`);return y(t)}function Am(e){switch(e.proofKind){case`otp_challenge`:return`email`;case`google_sso_registration`:return`google`;default:return J(e)}}function jm(e){switch(e.kind){case`passkey`:return{kind:`passkey`,webauthnRegistration:e.webauthnRegistration};case`email_otp`:return{kind:`email_otp`,emailOtpRegistrationProof:e.emailOtpRegistrationProof};default:return J(e)}}async function Mm(e){let t=performance.now();try{let n=await bl(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 q({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`success`}),{deferredNear:e.deferredNear,admissionReceipt:n}}catch(n){throw q({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`failure`}),n}}function Nm(e){if(!e)throw Error(`Mixed registration did not start NEAR admission`);return e}function Pm(e,t,n){switch(e.kind){case`passkey`:return{auth:{kind:`passkey`,rpId:Cn(e.rpId),credentialIdB64u:t}};case`email_otp`:return{auth:{kind:`email_otp`,providerSubjectId:or(e.emailOtpAuthContext)},remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs};default:return J(e)}}async function Fm(e){let t=Mt(C({operation:`wallet_registration_activate_v2`,registrationCeremonyId:e.registrationCeremonyId,activationCorrelationId:e.activationCorrelationId,idempotencyKey:e.idempotencyKey,publicFacts:e.publicFacts}));return{canonicalRequest:t,requestDigest:_e(A(await S(String(t))))}}async function Im(e){let t={authority:e.materialAuthority,targetMemberships:e.chainTargets,evmFamilySigningKeySlotId:Pt(e.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:Jt(e.ecdsaPrepare.prepare.ecdsaThresholdKeyId),signingRootId:Tt(e.ecdsaPrepare.prepare.signingRootId),signingRootVersion:_t(e.ecdsaPrepare.prepare.signingRootVersion),runtimePolicyScope:e.ecdsaPrepare.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:Kt(e.clientActivation.derivationClientSharePublicKey33B64u),participantIds:[wn(e.ecdsaPrepare.prepare.participantIds[0]),wn(e.ecdsaPrepare.prepare.participantIds[1])],relayerKeyId:qt(e.ecdsaPrepare.prepare.relayerKeyId),bindingDigest:Qt(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 Lm(e){let t=j(e);if(t.length!==20)throw Error(`ECDSA activation address must contain 20 bytes`);return`0x${Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}`}async function Rm(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=nm({recorder:e.recorder,context:e.context,relayerUrl:t,authMethod:e.authMethod,signerSelection:e.signerSelection}),o=await e.recorder.measure(`registrationIntentMs`,()=>Gn({relayerUrl:t,request:{completion:e.completion,...e.wallet.kind===`provided`?{wallet:e.wallet}:{},signerSelection:e.signerSelection,authMethod:e.authMethod},auth:{publishableKey:r,environmentId:i}}));if(!o.ok)throw Em(o.message,o.code);return{relayerUrl:t,setup:o,registrationWarmup:a}}async function zm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return await Rm({completion:e.completion,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=om(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=_l(n.setup.intent),i=String(n.setup.registrationIntentDigestB64u||``).trim(),a=im(e.signerSelection);if(cm({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:Wt(String(r.walletId)),signerSlot:a,rpId:fp(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 Bm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return{kind:`create_after_authority`};let t=om(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 Vm(e){return await e}function Hm(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 Vm.bind(void 0,e.clientCeremony.operation);default:return J(e.clientCeremony)}}async function Um(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 al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientCreateMs`,operation:Hm({context:e.context,ceremonyId:r,registration:e.ecdsaPrepare.strictRegistration,clientCeremony:e.clientCeremony})}),s=await al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Kn.bind(void 0,{relayerUrl:e.relayerUrl,headers:qc(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,ecdsa:{kind:`router_ab_ecdsa_registration_v1`,strictRegistration:o.registrationRequest,requestDigestB64u:o.registrationRequestDigestB64u},...jm(e.authority),onServerTiming:t=>La(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?Mm({home:e.home,relayerUrl:e.relayerUrl,registrationCeremonyId:r,signedSetup:e.signedSetup,deferredNear:c,traceContext:e.traceContext}):null;l?.catch(rh);let u=await al({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=St({registrationRequestDigestB64u:u.registrationRequestDigestB64u,proofTranscriptDigestB64u:u.proofTranscriptDigestB64u,contextBinding32B64u:t.contextBinding32B64u,derivationClientSharePublicKey33B64u:t.clientSharePublicKey33B64u,clientShareRetryCounter:t.clientShareRetryCounter,participantId:1}),o=await Fm({registrationCeremonyId:r,activationCorrelationId:i,idempotencyKey:e.idempotencyKey,publicFacts:n}),s=gu(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:Nm(l),establishedEvmCustodyCommit:t.preActivationCommitPayload}),a.catch(rh)}else await e.persistPendingCommit({signerPlanKind:e.signerPlanKind,localMaterial:{keyFamilies:[`ecdsa_secp256k1`],custodyCommit:s,ecdsa:p},emailOtpEnrollment:d.enrollment});let m=await Im({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 al({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Pn.bind(void 0,{relayerUrl:e.relayerUrl,headers:qc(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=>La(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:Lm(_.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=nl({prepare:e.ecdsaPrepare.prepare,verified:g.clientBootstrap}),y=Rn({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 Rt({authority:_.authority}),materialActivation:b.materialActivation,clientPublicFacts:b.publicFacts,publicCapability:b.publicCapability,registrationEstablishedSession:Xc(_.registrationEstablishedSession)},activated:_,deferredNear:c,activateEmailOtp:{enrollment:d.enrollment},walletCustody:g,deferredNearCustodyWork:a}}catch(t){throw eh(a),await tl({context:e.context,ceremonyId:r}),t}}function Wm(e){switch(e.kind){case`evm`:return Xe({chain:`evm`,chainId:e.chainId,networkSlug:e.networkSlug});case`tempo`:return Xe({chain:`tempo`,chainId:e.chainId,networkSlug:e.networkSlug});default:return J(e)}}function Gm(e){let[t,...n]=e.chainTargets;if(!t)throw Error(`Registration setup ECDSA chain targets are required`);return{kind:e.kind,chainTargets:[Wm(t),...n.map(Wm)],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 J(e)}}function qm(e){switch(e.kind){case`evm_family_ecdsa`:return 1;case`near_ed25519_and_evm_family_ecdsa`:return e.ed25519Selection.signerSlot;default:return J(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:Ym(e.emailOtpEnrollment)}}function Ym(e){if(!e)throw Error(`Email OTP registration has no enrollment material for pending recovery`);return e}async function Xm(e){let t=Date.now(),n=bp({...e,createdAtMs:t,updatedAtMs:t});return await B.putPendingWalletRegistrationCommit(n),n}function Zm(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 Qm(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 nr({kind:`passkey`,walletId:e.walletId,rpId:fp(e.auth.rpId),credentialIdB64u:n,credentialPublicKeyB64u:e.auth.credentialPublicKeyB64u,transports:e.auth.credential.response?.transports??[],walletKeys:t})}return await nr({kind:`email_otp`,walletId:e.walletId,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:e.auth.authority,walletKeys:t})}async function $m(e){let t=await Cp({context:e.context,relayerUrl:e.relayerUrl,registrationTiming:e.registrationTiming,plan:e.plan}),n=await Qm({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 eh(e){if(e)try{Mp((await e).factorSecret32)}catch{}}function th(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 J(e.auth)}}async function nh(e,t,n){let r=performance.now();await B.advancePendingNearRegistration({expected:e,next:nn(e,t,n)}),nu(e.registrationCeremonyId,`journal_prepared`,r)}function rh(){}async function ih(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(!ct(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 oh({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:Ip({commit:t.establishedEvmCustodyCommit,walletId:r.walletId,activatedAtMs:Date.now()}),factorSecret32:n}}catch(e){throw Mp(n),e}finally{q({ceremonyId:e.registrationCeremonyId,stage:`custody_join`,startedAt:r,outcome:i})}}async function ah(e){return e.pending.phase===`execution_prepared`?e.pending.admissionReceipt:e.admitted?e.admitted:await bl({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 oh(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 ah({home:e.home,pending:n,relayerUrl:e.relayerUrl,credential:e.credential,traceContext:e.traceContext,...e.admitted?{admitted:e.admitted}:{}});nu(n.registrationCeremonyId,`admission`,i);let o=await e.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:e.home,...n.phase===`planned`?{preparation:{kind:`fresh`},beforeRouterRound:nh.bind(void 0,n,a)}:{preparation:{kind:`checkpoint`,checkpointJson:n.checkpointJson}},custodyJson:au(n.baseCustodyCommit),factorSecret:e.factorSecret,nearEd25519SigningKeyId:r.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:n.registrationCeremonyId,admissionRequest:r,admissionReceipt:a,participantIds:r.participant_ids,routerOrigin:new URL(e.relayerUrl).origin,authorization:`Bearer ${e.credential}`,traceContext:e.traceContext});if(t.phase===`joined`){if(A(o.metadata.registeredPublicKey)!==t.localMaterial.ed25519.metadata.registeredPublicKeyB64u||JSON.stringify(o.activationReference)!==JSON.stringify(t.localMaterial.ed25519.activationReference))throw Error(`Restored NEAR checkpoint changed the joined key`);return{joined:o,admissionReceipt:a}}let s=performance.now(),c=await 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=bp({operation:`near_provisioning`,signerPlanKind:`near_ed25519_and_evm_family_ecdsa`,completion:{kind:`encrypted_checkpoint`,prepared:c},registrationCeremonyId:c.registrationCeremonyId,idempotencyKey:await vm({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:Pp(o)}}});if(l.operation!==`near_provisioning`||l.phase!==`joined`)throw Error(`Invalid joined NEAR continuation`);return await B.advancePendingNearRegistration({expected:c,next:l}),nu(n.registrationCeremonyId,`journal_joined`,s),{joined:o,admissionReceipt:a}}function sh(e){return e.chainTarget}function ch(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=At({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:cr({policy:`session`,retention:`session`,reason:`login`,authority:n})}}throw Error(`NEAR continuation requires its founding authentication method`)}async function lh(e){if(await ph(e.sessionAuthority),e.pending.phase===`joined`&&e.pending.completion.kind===`sealed_material`){let t=await Fd({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 oh({home:e.sessionAuthority.operationCredential.home,pending:e.pending,signingEngine:e.context.signingEngine,relayerUrl:e.relayerUrl,credential:e.sessionAuthority.operationCredential.token,traceContext:on(),factorSecret:e.factorSecret});return{joined:n.joined,admissionReceipt:n.admissionReceipt,admissionRequest:t.admissionRequest,envelope:e.envelope,factorSecret32:e.factorSecret}}async function uh(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=ch(r,e.factor),a=lh.bind(void 0,{context:e.context,pending:r,envelope:e.custodyEnvelope,relayerUrl:n,sessionAuthority:e.sessionAuthority,factorSecret:e.ownedFactorSecret});await Sh({context:e.context,walletId:r.walletId,commit:{context:e.context,registrationTiming:null,registrationStartedAt:t,relayerUrl:n,registrationCeremonyId:r.registrationCeremonyId,signedSetup:r.signedSetup,headers:qc(),nearCustodyWork:a,sessionAuthority:e.sessionAuthority,expectedChainTargets:Hd(e.context.configs.network.chains).map(sh),walletId:r.walletId,authMaterial:i}})}}catch(e){console.warn(`[registration] NEAR continuation remains pending`,e instanceof Error?e.message:`continuation failed`)}finally{Mp(e.ownedFactorSecret)}}function dh(e){if(!e)throw Error(`Mixed registration did not start its NEAR custody join`);return e}function fh(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()||!L(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 ph(e){let t=await Tn.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 mh(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 hh(e){let{materialFacts:t}=e,n=null;try{n=await Oa(e),await da({store:B,activeClient:n,identity:ka(t,e.rpId,e.credentialIdB64u),stableServerScope:t.stableServerScope,passkeyPrfFirstB64u:e.passkeyPrfFirstB64u}),await ph(e.sessionAuthority),await e.signingEngine.activateVerifiedNearEd25519YaoMaterial({activeClient:n,facts:{thresholdSessionId:t.identity.thresholdSessionId,signer:sr({walletId:qe(t.identity.walletId),nearAccountId:Me(t.identity.nearAccountId),nearEd25519SigningKeyId:Vt(t.identity.nearEd25519SigningKeyId),signerSlot:t.identity.signerSlot}),signingRootId:t.identity.signingRootId,signingRootVersion:t.identity.signingRootVersion,routerAbNormalSigning:t.stableServerScope.routerAbNormalSigning,runtimePolicyScope:t.stableServerScope.runtimePolicyScope,relayerUrl:e.relayerUrl}}),await ph(e.sessionAuthority),n=null}catch(e){throw n?.dispose(),e}finally{e.ownedFactorSecret.fill(0)}}async function gh(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{q({ceremonyId:e.ceremonyId,stage:`session_hydration`,startedAt:t,outcome:n})}}async function _h(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{q({ceremonyId:e.ceremonyId,stage:`session_seal_preparation`,startedAt:t,outcome:n})}}function vh(e){let n=t(e.thresholdSessionId);if(!n.ok)throw Error(`Invalid admitted NEAR session identity`);let r=ym(`near-session-client-seal`);return{kind:`preparing`,thresholdSessionId:String(n.value),preparationId:r,result:_h({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,input:{preparationId:r,thresholdSessionId:String(n.value),prfFirstB64u:e.prfFirstB64u}})}}async function yh(e){try{await ph(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`}:vh({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,thresholdSessionId:t.admissionRequest.scope.threshold_session_id,prfFirstB64u:e.prfFirstB64u})}catch{return{kind:`none`}}}function bh(){return null}async function xh(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 yh({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:${Ae(s.metadata.registeredPublicKey)}`,l=s.activationReference,u=await vm({registrationCeremonyId:e.registrationCeremonyId,activationReference:l}),d=await mh({registrationCeremonyId:e.registrationCeremonyId,walletId:e.walletId,walletAuthMethodId:String(e.sessionAuthority.record.authMethodId)});await ph(e.sessionAuthority),t.kind===`passkey`&&o.kind===`none`&&(o=vh({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(q({ceremonyId:e.registrationCeremonyId,stage:`session_seal_preparation_wait`,startedAt:t,outcome:n.kind===`completed`?`success`:`failure`}),n.kind===`failed`)throw n.error;await ph(e.sessionAuthority);let r=await e.context.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:o.thresholdSessionId,preparationId:o.preparationId});f={preparationId:o.preparationId,thresholdSessionId:o.thresholdSessionId,ciphertext:r.ciphertext}}let p=performance.now(),m={relayerUrl:e.relayerUrl,registrationCeremonyId:e.registrationCeremonyId,signedSetup:e.signedSetup,headers:{...e.headers,...E(e.sessionAuthority.operationCredential)},idempotencyKey:u,ed25519:{activationReference:l},walletCustodyCommit:s.commitPayload,onServerTiming:Ra.bind(void 0,e.registrationTiming)},h;if(f){if(e.authMaterial.kind!==`passkey`)throw Error(`Prepared session sealing requires a passkey authority`);h=await Hn({...m,auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:f.thresholdSessionId,ciphertext:f.ciphertext}})}else h=await Hn({...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`);q({ceremonyId:e.registrationCeremonyId,stage:`server_finalize`,startedAt:p,outcome:`success`});let _=fh(e.sessionAuthority,g.registrationEstablishedSession,g.foundingAuthority,g.foundingAuthMethod),v=Me(g.ed25519.nearAccountId),y=e.authMaterial.kind===`passkey`?e.authMaterial.credentialIdB64u:``;t.kind===`passkey`?vl({clientPublicKey:c,finalized:g,expectedRpId:t.rpId,expectedWalletId:e.walletId}):yl({clientPublicKey:c,finalized:g,expectedRegistrationAuthorityId:d.auth.kind===`email_otp`?d.auth.registrationAuthorityId:``,expectedWalletId:e.walletId});let b=ml({admissionRequest:n.admissionRequest,finalized:g.ed25519,walletId:e.walletId,expectedRuntimePolicyScope:I(g.ed25519.runtimePolicyScope)}),x=s.metadata,S=Nn(x),C=Np({established:s,walletId:String(e.walletId),nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,signerSlot:g.ed25519.signerSlot}),w=performance.now(),T=await Ad(d,g);await ph(e.sessionAuthority);let D=(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(!D||D.signerSlot!==g.ed25519.signerSlot)throw Error(`Deferred Ed25519 registration persisted a different signer slot`);let O=new En;for(let t of e.expectedChainTargets)Qd({signingEngine:e.context.signingEngine,walletId:e.walletId,chainTarget:t,trigger:`registration`,statusReads:O});q({ceremonyId:e.registrationCeremonyId,stage:`local_publication`,startedAt:w,outcome:`success`}),await ph(e.sessionAuthority),e.authMaterial.kind===`passkey`&&_.remainingUses>0&&(a=gh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,input:xl({session:_,ceremonyId:e.registrationCeremonyId,walletId:String(e.walletId),relayerUrl:e.relayerUrl,prfFirstB64u:e.authMaterial.prfFirstB64u,preparedServerSeal:f&&g.sessionSeal?{preparationId:f.preparationId,...g.sessionSeal}:null,restore:{rpId:e.authMaterial.rpId,nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,relayerKeyId:g.ed25519.relayerKeyId,participantIds:g.ed25519.participantIds,signerSlot:g.ed25519.signerSlot,credentialIdB64u:e.authMaterial.credentialIdB64u,materialActivation:S}})}));let k=performance.now();await e.context.signingEngine.activateAuthenticatedWalletState({walletId:e.walletId,nearAccountId:v,signerSlot:g.ed25519.signerSlot,nearClient:e.context.nearClient}),await e.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:e.walletId,nearAccountId:v,thresholdSessionId:b.identity.thresholdSessionId,runtimePolicyScope:b.stableServerScope.runtimePolicyScope,materialActivation:S,...Pm(t,y,_),nearEd25519SigningKeyId:Vt(g.ed25519.nearEd25519SigningKeyId),signerSlot:g.ed25519.signerSlot}),q({ceremonyId:e.registrationCeremonyId,stage:`session_install`,startedAt:k,outcome:`success`});let A=performance.now();if(t.kind===`email_otp`&&_.remainingUses>0){let r=await gl({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=Bp({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:or(t.emailOtpAuthContext),emailHashHex:lr(t.emailOtpAuthContext),signerSlot:g.ed25519.signerSlot,expectedOperationalPublicKey:c,expectedThresholdSessionId:b.identity.thresholdSessionId,bootstrap:a,material:C,envelope:wa(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 hh({signingEngine:e.context.signingEngine,sessionAuthority:e.sessionAuthority,metadata:x,material:C,materialFacts:b,envelope:wa(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 Ff({walletId:String(e.walletId),credentialIdB64u:e.authMaterial.credentialIdB64u,envelope:n.envelope}),q({ceremonyId:e.registrationCeremonyId,stage:`signer_activation`,startedAt:A,outcome:`success`}),await ph(e.sessionAuthority);let j=performance.now(),M=await a;if(q({ceremonyId:e.registrationCeremonyId,stage:`session_hydration_wait`,startedAt:j,outcome:M.kind===`completed`?`success`:`failure`}),M.kind===`failed`)throw M.error;await ph(e.sessionAuthority);let N=performance.now();return await B.completePendingNearRegistration({pending:d,walletSession:_.walletSession,operationCredential:_.operationCredential,nearAccountId:String(v)}),q({ceremonyId:e.registrationCeremonyId,stage:`durable_ready`,startedAt:N,outcome:`success`}),r=`success`,{status:`near_ready`,updatedAtMs:Date.now(),nearAccountId:String(v)}}catch(t){let n=await B.getProfile(String(e.walletId)).catch(bh);if(n?.nearProvisioning?.status===`near_ready`)return n.nearProvisioning;let r=Ch(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(rh)),i&&Mp(i),q({ceremonyId:e.registrationCeremonyId,stage:`provisioning_total`,startedAt:n,outcome:r}),q({ceremonyId:e.registrationCeremonyId,stage:`registration_total`,startedAt:e.registrationStartedAt,outcome:r})}}async function Sh(e){try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_provisioning`})}catch(t){let n=Ch(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{}of(e.walletId,r);return}await cf({walletId:e.walletId,nowMs:Date.now,attempt:xh.bind(void 0,e.commit)})}function Ch(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 wh(e){let t=Ch(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 of(e.walletId,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:n,errorCode:t}),{status:`retryable`,error:n,errorCode:t}}async function Th(e){try{return await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_pending`}),of(e.walletId,{status:`near_pending`,updatedAtMs:Date.now()}),{status:`pending`}}catch(t){return await wh({context:e.context,walletId:e.walletId,error:t})}}async function Eh(e){let{context:t,wallet:r,signerSelection:a}=e,o=e.options||{},{onEvent:s,onError:c,afterCall:l}=o,u=performance.now(),d=new mo(u),f=on(),p=null,m=null,h=wm(r.kind===`provided`?String(r.walletId):`wallet-registration`);$(s,h,{authMethod:e.authMethod.kind,phase:z.STEP_01_STARTED,status:`started`});try{let c=ym(`wallet-registration-finalize`),h=await zm({completion:`wallet_session`,context:t,authMethod:e.authMethod,wallet:r,signerSelection:a,recorder:d,passkeyExecution:e.passkeyExecution});e.authMethod.kind===`email_otp`&&rm({recorder:d,warmup:h.registrationWarmup});let{relayerUrl:g,setup:_}=h,v=Gm(Km(_,e.kind).ecdsa),y=Bm({passkeyExecution:e.passkeyExecution,ceremonyId:_.registrationCeremonyId}),b={intent:_.intent,registrationIntentDigestB64u:_.registrationIntentDigestB64u},x=b.intent.walletId,S=wm(String(x)),C=null,w=``,T=``,E=``,D=null,O=null,k=null,A;if(e.authMethod.kind===`passkey`){$(s,S,{authMethod:e.authMethod.kind,phase: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??{}};k=await d.measure(`authProofMs`,()=>am({context:t,walletId:x,signerSlot:qm(e),registrationIntentDigestB64u:b.registrationIntentDigestB64u,options:o,confirmationConfigOverride:n,passkeyExecution:e.passkeyExecution})),d.capturePasskeyAuthDiagnostics(k.diagnostics),p=performance.now();let r=i(String(k.credential.rawId||k.credential.id||``).trim());if(!r.ok)throw Error(`passkey credential id ${r.error.message}`);A={kind:`passkey`,webauthnRegistration:k.webauthnRegistration,walletCustodyFactorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ie({rpId:fp(e.authMethod.rpId),credentialIdB64u:r.value}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId}),walletCustodyFactorSecret:j(k.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(),O=r.slice().buffer;let i=await d.measure(`authProofMs`,()=>op({authMethod:n,relayUrl:g,walletId:String(x),registrationIntentDigestB64u:b.registrationIntentDigestB64u}));C=bm({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=Am(i.proof),A={kind:`email_otp`,emailOtpRegistrationProof:i.proof,walletCustodyFactorSecret:O}}let M=n(_.walletAuthMethodId);if(!M.ok)throw Error(`Registration setup auth-method identity is invalid: ${M.error.message}`);let N;if(e.authMethod.kind===`passkey`){if(!k)throw Error(`ECDSA registration is missing its verified passkey authority`);N=await Rt({authority:{...fl({walletId:x,rpId:e.authMethod.rpId,credential:k.credential}),bindingId:M.value}})}else{if(!D)throw Error(`Email OTP registration is missing its verified provider`);N=await Rt({authority:{...Dt({walletId:x,provider:D,providerUserId:E,emailHashHex:await km(T)}),bindingId:M.value}})}$(s,S,{authMethod:e.authMethod.kind,phase:z.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let P={value:e.kind===`near_ed25519_and_evm_family_ecdsa`?A.walletCustodyFactorSecret.slice(0):null},F=null,I={value:null},ee;try{ee=await d.measure(`ecdsaRegistrationTotalMs`,()=>Um({home:_.home,context:t,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signerPlanKind:e.kind,signedSetup:_.signedSetup,ecdsaPrepare:v,clientCeremony:y,authority:A,materialAuthority:N,idempotencyKey:c,resolveActivateEmailOtp:async()=>{let t=null,n=null;if(e.authMethod.kind===`email_otp`){let e=await pl({material:C,operation:`activate`});t=e.emailOtpEnrollment??null,n=JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Le({enrollmentId:e.enrollmentId,enrollmentSealKeyVersion:e.enrollmentSealKeyVersion}),walletAuthMethodId:b.intent.foundingWalletAuthMethodId})}return{enrollment:t,walletCustodyFactorJson:n}},traceContext:f,registrationTiming:d,confirmRecoveryCodesBackedUp:Ap.bind(void 0,I,t,String(x),o.recoveryCodeBackup),persistPendingCommit:async t=>{let n={operation:`registration_activate`,registrationCeremonyId:_.registrationCeremonyId,idempotencyKey:c,walletId:String(x),walletAuthMethodId:String(b.intent.foundingWalletAuthMethodId),signedSetup:String(_.signedSetup),auth:Jm({authMethod:e.authMethod,passkeyAuthority:k,email:T,registrationAuthorityId:w,providerSubject:E,emailOtpEnrollment:t.emailOtpEnrollment})};if(t.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){let e=Date.now(),r=Zm(bp({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial,createdAtMs:e,updatedAtMs:e})),i=an(r,t.deferredNear.admissionRequest);await B.putPendingWalletRegistrationCommits([r,i]),F=r;return}F=await Xm({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial})},startDeferredNearCustody:ih.bind(void 0,{home:_.home,context:t,factorSecretOwner:P,registrationCeremonyId:_.registrationCeremonyId,relayerUrl:g,signedSetup:String(_.signedSetup),traceContext:f})}))}finally{Mp(A.walletCustodyFactorSecret),P.value&&=(Mp(P.value),null)}if(I.value){let e=ee.activated.walletCustody;if(e?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await mr.bindIssuedAtMs(I.value,e.issuedAtMs)}let te=ee.session;if(ee.activated.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration activate returned a different signer branch`);let L=_p(ee.activated),ne=ee.activateEmailOtp.enrollment;if(L.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration finalize returned a different signer branch`);if(e.authMethod.kind===`email_otp`&&!Bn(L))throw Error(`Email OTP registration finalize returned a different auth method`);d.captureRouteDiagnostics(L.registrationDiagnostics);let re=L.ecdsa.walletKeys;if(re.length===0)throw Error(`Wallet registration finalize did not return ECDSA wallet keys`);let ie=await hp({authMethod:e.authMethod,configs:t.configs,walletId:qe(L.walletId),finalized:L,passkeyAuthority:k,email:T,providerSubject:E,registrationAuthorityId:w}),ae=vp({walletId:qe(L.walletId),auth:ie,foundingAuthority:L.foundingAuthority,foundingAuthMethod:L.foundingAuthMethod,ecdsa:gp({session:te,walletKeys:re,expectedChainTargets:te.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 R=qe(L.walletId),oe={status:`pending`};e.kind===`near_ed25519_and_evm_family_ecdsa`?(await $m({context:t,relayerUrl:g,registrationTiming:d,pending:Zm(F),plan:ae,activated:ee.activated}),oe=await Th({context:t,walletId:R})):await Dp({context:t,relayerUrl:g,registrationTiming:d,plan:ae});let se=En.fromRegistration(g,ae.ecdsa.session.registrationEstablishedSession);for(let e of te.chainTargets)Qd({signingEngine:t.signingEngine,walletId:R,chainTarget:e,trigger:`registration`,statusReads:se});let ce=ae.ecdsa.walletKeys[0];if(e.authMethod.kind===`passkey`){if(!k)throw Error(`Passkey registration authority was not collected`);let n=ae.ecdsa.session.registrationEstablishedSession;try{await Lp({signingEngine:t.signingEngine,commit:ee.walletCustody.commitPayload,passkeyPrfFirstB64u:k.prfFirstB64u,walletId:String(x),walletAuthMethodId:String(ae.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(n.walletSessionId),expiresAtMs:n.expiresAtMs})}catch(n){if(e.kind!==`near_ed25519_and_evm_family_ecdsa`)throw n;oe=await wh({context:t,walletId:R,error:n})}}else{if(ie.kind!==`email_otp`||!m)throw Error(`Email OTP registration has no custody capability material`);let e=ae.ecdsa.session.registrationEstablishedSession;await Rp({context:t,commit:ee.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=th({auth:ae.auth,emailOtpEnrollment:ne,passkeyAuthority:k});try{Sh({context:t,walletId:R,commit:{context:t,registrationTiming:d,registrationStartedAt:u,relayerUrl:g,registrationCeremonyId:_.registrationCeremonyId,signedSetup:_.signedSetup,headers:qc(f),nearCustodyWork:dh.bind(void 0,ee.deferredNearCustodyWork),sessionAuthority:{record:ae.ecdsa.session.registrationEstablishedSession.walletSession,operationCredential:ae.ecdsa.session.registrationEstablishedSession.operationCredential},expectedChainTargets:ae.ecdsa.expectedChainTargets,walletId:R,authMaterial:e}})}catch(e){let t=Ch(e);oe={status:`retryable`,error:ve(e,`registration`,String(R)),errorCode:t},of(R,{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:L.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ce.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ce.thresholdEcdsaPublicKeyB64u}],nearProvisioning:oe}:{success:!0,kind:`wallet_registered`,walletId:L.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();yo({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-p,traceContext:f}),yo({callback:o.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:f})}return vo(go({recorder:d,authMethod:e.authMethod.kind,signerSet:Ya(e.signerPlan)})),jh(e.context,le,e.authMethod.kind),l?.(!0,le),le}catch(t){let n=Tm(t),r=ve(t,`registration`,h);p!==null&&yo({callback:o.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-p,traceContext:f});let i=Em(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 vo(_o({recorder:d,authMethod:e.authMethod.kind,signerSet:Ya(e.signerPlan),errorCode:n||null})),l?.(!1),a}finally{m?.fill(0)}}async function Dh(e){let{context:t,options:n}=e,r=wm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),i=new mo(performance.now()),a=null;$(n.onEvent,r,{authMethod:`email_otp`,phase:z.STEP_01_STARTED,status:`started`});try{let r=await Rm({completion:`wallet_session`,context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:i});rm({recorder:i,warmup:r.registrationWarmup});let{relayerUrl:o,setup:s}=r,c=s.intent.walletId,l=wm(String(c)),u=await i.measure(`authProofMs`,op.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=bm({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`,Kn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:s.signedSetup,headers:{...qc(),...O(s.home)},kind:`email_otp`,emailOtpRegistrationProof:u.proof}));if(m.kind!==`near_ed25519`)throw Error(`Ed25519-only registration respond returned a different signer branch`);let h=await pl({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:Le({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{Mp(f)}let _=await kp(t,String(c),n.recoveryCodeBackup,g.recoveryCodes),v=Re(g.commitPayload);if(!g.localMaterial)throw Error(`Email OTP registration produced no sealed local custody material`);let y=await vm({registrationCeremonyId:s.registrationCeremonyId,activationReference:g.activationReference}),b=await Xm({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:Pp(g)}}}),x=`ed25519:${Ae(g.metadata.registeredPublicKey)}`,S=await i.measure(`walletRegisterFinalizeMs`,Hn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signedSetup:s.signedSetup,headers:{...qc(),...O(s.home)},idempotencyKey:y,ed25519:{activationReference:g.activationReference},auth:{kind:`email_otp`,enrollment:h.emailOtpEnrollment},walletCustodyCommit:v}));if(!S.ok)throw Error(`Deferred NEAR provisioning did not complete`);if(i.captureRouteDiagnostics(S.registrationDiagnostics),S.kind!==`near_ed25519`)throw Error(`Wallet registration finalize returned a different signer branch`);if(!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 mr.bindIssuedAtMs(_,S.walletCustody.issuedAtMs),S.ed25519.signerSlot!==e.ed25519Selection.signerSlot)throw Error(`Ed25519 Yao finalize returned a different signer slot`);let C=Xc(S.registrationEstablishedSession);yl({clientPublicKey:x,finalized:S,expectedRegistrationAuthorityId:u.registrationAuthorityId,expectedWalletId:c});let w=await hp({authMethod:e.authMethod,configs:t.configs,walletId:qe(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=ml({admissionRequest:m.ed25519.admissionRequest,finalized:S.ed25519,walletId:c,expectedRuntimePolicyScope:I(s.intent.runtimePolicyScope)}),E=g.metadata,D=Me(S.ed25519.nearAccountId),k=Np({established:g,walletId:String(S.walletId),nearAccountId:String(D),nearEd25519SigningKeyId:S.ed25519.nearEd25519SigningKeyId,signerSlot:S.ed25519.signerSlot}),A=await tr({walletId:S.walletId,nearAccountId:D,nearEd25519SigningKeyId:S.ed25519.nearEd25519SigningKeyId,email:w.email,registrationAuthorityId:w.registrationAuthorityId,authority:w.authority,signerSlot:S.ed25519.signerSlot,operationalPublicKey:x,relayerKeyId:S.ed25519.relayerKeyId,keyVersion:S.ed25519.keyVersion,participantIds:[...S.ed25519.participantIds],custodyMaterial:k}),j=await 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:A});En.acceptRegistrationSession(o,C);let M=j.signerActivations[1];if(!M||M.signerSlot!==S.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);if(await t.signingEngine.activateAuthenticatedWalletState({walletId:S.walletId,nearAccountId:D,signerSlot:S.ed25519.signerSlot,nearClient:t.nearClient}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:S.walletId,nearAccountId:D,thresholdSessionId:T.identity.thresholdSessionId,runtimePolicyScope:T.stableServerScope.runtimePolicyScope,materialActivation:Nn(E),auth:{kind:`email_otp`,providerSubjectId:u.providerSubject},nearEd25519SigningKeyId:Vt(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 Rp({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 N={success:!0,kind:`wallet_registered`,walletId:S.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:S.accountProvisioning,resolvedAccount:S.resolvedAccount,nearEd25519SigningKeyId:Vt(S.ed25519.nearEd25519SigningKeyId),operationalPublicKey:x,nearAccountId:Me(S.ed25519.nearAccountId),transactionId:S.resolvedAccount.kind===`sponsored_named_account`?S.resolvedAccount.transactionHash:null}]};return vo(go({recorder:i,authMethod:`email_otp`,signerSet:Ya(e.signerPlan)})),jh(t,N,`email_otp`),n.afterCall?.(!0,N),N}catch(t){let a=Tm(t),o=ve(t,`registration`,r);n.onError?.(Em(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 vo(_o({recorder:i,authMethod:`email_otp`,signerSet:Ya(e.signerPlan),errorCode:a||null})),n.afterCall?.(!1),s}finally{a?.fill(0)}}function Oh(){}async function kh(e){let{context:t,options:n}=e,r=wm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),a=on(),o=null,s={kind:`none`};$(n.onEvent,r,{authMethod:`passkey`,phase:z.STEP_01_STARTED,status:`started`});try{let r=new mo(performance.now()),{relayerUrl:c,setup:l}=await zm({completion:e.completion,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=_l(l.intent),d=wm(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=am({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=Om(n.onEvent,d,z.STEP_05_ED25519_SIGNER_PROVISION_DELAYED),h=async(e,t)=>{let n=await m(Kn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:l.signedSetup,headers:{...qc(a),...O(l.home)},kind:`passkey`,webauthnRegistration:e.webauthnRegistration,...t?{ed25519Execution:t}:{},onServerTiming:Ra.bind(void 0,r)}));if(r.markNearStage(l.registrationCeremonyId,`near_only.respond`),n.kind!==`near_ed25519`)throw Error(`Ed25519-only registration respond returned a different signer branch`);return n.ed25519},g=e=>{let t=i(String(e.credential.rawId||e.credential.id||``).trim());if(!t.ok)throw Error(`passkey credential id ${t.error.message}`);return t.value},_=null,v=t=>(_=j(t.prfFirstB64u).buffer,{factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Ie({rpId:fp(e.authMethod.rpId),credentialIdB64u:g(t)}),walletAuthMethodId:l.intent.foundingWalletAuthMethodId}),factorSecret:_}),y=Kh.bind(null,t.signingEngine,l.registrationCeremonyId,e.completion),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(!nt(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(Oh),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{_&&Mp(_)}let w={value:g(x)};r.markNearStage(l.registrationCeremonyId,`near_only.custody`);let T=await kp(t,String(u.walletId),n.recoveryCodeBackup,C.recoveryCodes),E=Re(C.commitPayload);if(!C.localMaterial)throw Error(`Passkey registration produced no sealed local custody material`);let D=await vm({registrationCeremonyId:l.registrationCeremonyId,activationReference:C.activationReference}),k=await Xm({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:Pp(C)}}});if(k.operation!==`near_provisioning`||k.phase!==`joined`)throw Error(`Invalid pending owner registration branch`);let A=`ed25519:${Ae(C.metadata.registeredPublicKey)}`;r.markNearStage(l.registrationCeremonyId,`near_only.provision_checkpoint`);let M=null;if(e.completion===`wallet_session`){if(s.kind!==`preparing`)throw Error(`NEAR registration session seal preparation is missing`);let e=await s.result;if(e.kind===`failed`)throw e.error;let n=await t.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId});M={thresholdSessionId:s.thresholdSessionId,ciphertext:n.ciphertext}}let N=await Om(n.onEvent,d,z.STEP_06_RELAY_BOOTSTRAP_DELAYED)(Hn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signedSetup:l.signedSetup,headers:{...qc(a),...O(l.home)},idempotencyKey:D,ed25519:{activationReference:C.activationReference},auth:{kind:`passkey`},...M?{sessionSeal:M}:{},walletCustodyCommit:E}));if(r.markNearStage(l.registrationCeremonyId,`near_only.finalize`),!N.ok||N.kind!==`near_ed25519`)throw Error(`Deferred NEAR provisioning returned a different signer branch`);if(e.completion===`wallet_session`&&!N.sessionSeal)throw Error(`NEAR finalization did not return the prepared session seal`);if(C.commitPayload&&N.walletCustody?.status!==`committed`){let e=N.walletCustody?.status??`not_reported`,t=N.walletCustody?.status===`rejected`?`: ${N.walletCustody.reason}`:``;throw Error(`Wallet custody did not commit (${e})${t}. The recovery codes shown are not usable.`)}if(T){if(N.walletCustody?.status!==`committed`)throw Error(`Deferred recovery codes lack a committed server issuance`);await mr.bindIssuedAtMs(T,N.walletCustody.issuedAtMs)}let P=vl({clientPublicKey:A,finalized:N,expectedRpId:e.authMethod.rpId,expectedWalletId:u.walletId}),F=Me(N.ed25519.nearAccountId),ee=pp({finalized:N,credential:x.credential}),te=ml({admissionRequest:S.admissionRequest,finalized:N.ed25519,walletId:u.walletId,expectedRuntimePolicyScope:I(u.runtimePolicyScope)}),L=C.metadata,ne=Np({established:C,walletId:String(N.walletId),nearAccountId:String(F),nearEd25519SigningKeyId:N.ed25519.nearEd25519SigningKeyId,signerSlot:N.ed25519.signerSlot});await zp({commit:C.commitPayload,walletId:String(N.walletId),activatedAtMs:Date.now()}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:N.walletId,nearAccountId:Me(N.ed25519.nearAccountId),thresholdSessionId:te.identity.thresholdSessionId,runtimePolicyScope:te.stableServerScope.runtimePolicyScope,materialActivation:Nn(L),auth:{kind:`passkey`,rpId:Cn(P.rpId),credentialIdB64u:P.credentialIdB64u},nearEd25519SigningKeyId:Vt(N.ed25519.nearEd25519SigningKeyId),signerSlot:N.ed25519.signerSlot});let re=er({walletId:N.walletId,nearAccountId:F,nearEd25519SigningKeyId:N.ed25519.nearEd25519SigningKeyId,rpId:fp(P.rpId),credential:x.credential,credentialPublicKeyB64u:ee,signerSlot:N.ed25519.signerSlot,operationalPublicKey:A,relayerKeyId:N.ed25519.relayerKeyId,keyVersion:N.ed25519.keyVersion,participantIds:[...N.ed25519.participantIds],custodyMaterial:ne});if(e.completion===`owner_operations`){if(N.registrationEstablishedSession.kind!==`owner_operations`)throw Error(`Owner onboarding unexpectedly issued a Wallet Session`);let e=await Aa({registration:re,metadata:L,material:ne,materialFacts:te,envelope:Fp(C.commitPayload),ownedFactorSecret:j(x.prfFirstB64u),rpId:P.rpId,credentialIdB64u:P.credentialIdB64u,passkeyPrfFirstB64u:x.prfFirstB64u});await B.publishPendingWalletRegistrationCommit(jd(k,N,e));let t={success:!0,kind:`wallet_owner_registered`,walletId:N.walletId,capabilities:[qh(N,A)]};return $(n.onEvent,d,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),n.afterCall?.(!0,t),t}let ie=Xc(N.registrationEstablishedSession),ae=await B.publishPendingWalletRegistrationCommit(jd(k,N,re));En.acceptRegistrationSession(c,ie);let R=ae.signerActivations[1];if(!R||R.signerSlot!==N.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);if(r.markNearStage(l.registrationCeremonyId,`near_only.publication`),s.kind!==`preparing`||!N.sessionSeal)throw Error(`Registration session seal is unavailable`);let oe=await gh({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,input:xl({session:ie,ceremonyId:l.registrationCeremonyId,walletId:String(N.walletId),relayerUrl:c,prfFirstB64u:x.prfFirstB64u,preparedServerSeal:{preparationId:s.preparationId,...N.sessionSeal},restore:{rpId:P.rpId,nearAccountId:String(F),nearEd25519SigningKeyId:N.ed25519.nearEd25519SigningKeyId,relayerKeyId:N.ed25519.relayerKeyId,participantIds:N.ed25519.participantIds,signerSlot:N.ed25519.signerSlot,credentialIdB64u:P.credentialIdB64u,materialActivation:Nn(L)}})});if(oe.kind===`failed`)throw oe.error;if(s={kind:`consumed`},r.markNearStage(l.registrationCeremonyId,`near_only.session_hydration`),await hh({signingEngine:t.signingEngine,sessionAuthority:{record:ie.walletSession,operationCredential:ie.operationCredential},metadata:L,material:ne,materialFacts:te,envelope:Fp(C.commitPayload),ownedFactorSecret:j(x.prfFirstB64u),rpId:P.rpId,credentialIdB64u:P.credentialIdB64u,passkeyPrfFirstB64u:x.prfFirstB64u,relayerUrl:c}),r.markNearStage(l.registrationCeremonyId,`near_only.material_activation`),await Lp({signingEngine:t.signingEngine,commit:C.commitPayload,passkeyPrfFirstB64u:x.prfFirstB64u,walletId:String(N.walletId),walletAuthMethodId:String(N.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(ie.walletSessionId),expiresAtMs:ie.expiresAtMs}),r.markNearStage(l.registrationCeremonyId,`near_only.export_capability`),await t.signingEngine.activateAuthenticatedWalletState({walletId:N.walletId,nearAccountId:F,signerSlot:N.ed25519.signerSlot,nearClient:t.nearClient}),$(n.onEvent,d,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),o!==null){let e=performance.now();yo({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-o,traceContext:a}),yo({callback:n.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:a})}r.markNearStage(l.registrationCeremonyId,`near_only.wallet_ready`),vo(go({recorder:r,authMethod:`passkey`,signerSet:Ya(e.signerPlan)}));let se={success:!0,kind:`wallet_registered`,walletId:N.walletId,capabilities:[qh(N,A)]};return jh(t,se,`passkey`),n.afterCall?.(!0,se),se}catch(e){let t=Tm(e),i=ve(e,`registration`,r);o!==null&&yo({callback:n.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-o,traceContext:a}),n.onError?.(Em(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(rh))}}async function Ah(e){let t=Up(e.signerSelection),n=vn(t);if(e.completion===`owner_operations`&&(e.authMethod.kind!==`passkey`||!n||_n(t)))throw Error(`Owner-operation onboarding requires a NEAR-only wallet and a wallet-origin passkey.`);if(n){let r=_n(t);if(r)return await Eh({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 Dh({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,options:e.options,passkeyExecution:e.passkeyExecution})}return await kh({completion:e.completion,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=_n(t);if(!r)throw Error(`Wallet registration requires an ECDSA signer branch`);return await Eh({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 jh(e,t,n){e.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:t.walletId,authMethod:n})}async function Mh(e){try{return await Ah({completion:e.completion,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 Nh(e,t,n){try{$(e,t,n)}catch{}}function Ph(e,t){try{e?.(t)}catch{}}function Fh(e,t,n){try{t&&n?e?.(!0,n):e?.(!1)}catch{}}function Ih(e){let t=[];for(let n of e){let e=String(n.credentialId||``).trim();e&&t.push({id:e,type:`public-key`,transports:Dm(n.transports)})}if(t.length===0)throw Error(`Wallet add-signer requires an existing passkey credential`);return t}function Lh(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 Rh(e){if(e.started.intent.walletId!==e.walletId)throw Error(`Wallet add-signer start returned a different wallet`);if(await wr(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 zh(e,t){return e.length===2&&t.length===2&&e[0]===t[0]&&e[1]===t[1]}function Bh(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=je(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||!zh(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 Vh(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 Hh(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 dp({kind:`verified_passkey_ed25519_yao_add_signer_input_v1`,verifiedIntent:{kind:`verified_passkey_ed25519_add_signer_intent_v1`,intent:Vh(e.started),addSignerIntentDigestB64u:e.intentResponse.addSignerIntentDigestB64u,addSignerIntentGrant:e.intentResponse.addSignerIntentGrant,addSignerCeremonyId:e.started.addSignerCeremonyId},verifiedAuthority:{kind:`verified_passkey_ed25519_add_signer_authority_v1`,walletId:e.walletId,addSignerIntentDigestB64u:e.intentResponse.addSignerIntentDigestB64u,credentialIdB64u:e.credentialIdB64u},admissionRequest:e.started.ed25519.admissionRequest,httpTransport:{kind:`passkey_ed25519_yao_http_transport_v1`,routerOrigin:new URL(e.relayerUrl).origin,fetch:globalThis.fetch}}),o=Kc(e.started.ed25519.custodyEnvelope);if(!o.ok)throw Error(o.reason);i=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer;let s=await e.context.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:{kind:`discovery`},preparation:{kind:`fresh`},custodyJson:o.custodyJson,factorSecret:i,nearEd25519SigningKeyId:a.request.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:e.started.addSignerCeremonyId,admissionRequest:a.request,admissionReceipt:a.receipt,participantIds:a.request.participant_ids,routerOrigin:new URL(e.relayerUrl).origin,authorization:`Bearer ${String(e.intentResponse.addSignerIntentGrant)}`}),c=`ed25519:${Ae(s.metadata.registeredPublicKey)}`,l=await In({relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:ym(`wallet-ed25519-add-signer-finalize`),kind:`near_ed25519`,ed25519:{activationReference:s.activationReference},custodyKeySet:{kind:`near_ed25519_v1`,keyManifestDigestB64u:s.commitPayload.keyManifestDigestB64u,registeredPublicKeyB64u:A(s.metadata.registeredPublicKey)}});if(l.kind!==`near_ed25519`)throw Error(`Wallet add-signer finalize returned a different signer branch`);let u=Bh({finalized:l,started:e.started,walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,clientPublicKey:c});Nh(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:Me(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:Qn,applicationBindingDigestB64u:s.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:A(m.registeredPublicKey),participantIds:m.participantIds,stateEpoch:String(m.stateEpoch),walletId:String(u.walletId),nearAccountId:String(u.ed25519.nearAccountId),nearEd25519SigningKeyId:u.ed25519.nearEd25519SigningKeyId,signerSlot:u.ed25519.signerSlot,signingWorkerId:m.scope.signing_worker_id,signingWorkerVerifyingShareB64u:A(m.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:s.localMaterial.b64u,nonceB64u:s.localMaterial.nonceB64u}}),r={nearAccountId:u.ed25519.nearAccountId,signerSlot:u.ed25519.signerSlot},await e.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:u.walletId,nearAccountId:Me(u.ed25519.nearAccountId),thresholdSessionId:p.value,runtimePolicyScope:I(e.started.intent.runtimePolicyScope),materialActivation:Nn(m),auth:{kind:`passkey`,rpId:Cn(e.rpId),credentialIdB64u:e.credentialIdB64u},nearEd25519SigningKeyId:Vt(u.ed25519.nearEd25519SigningKeyId),signerSlot:u.ed25519.signerSlot}),n=null,Nh(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:Vt(u.ed25519.nearEd25519SigningKeyId),operationalPublicKey:c,nearAccountId:Me(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&&Mp(i)}}async function Uh(e){if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody ECDSA add-signer requires WebAuthn authorization`);let t=await mf({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}),n=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer,r;try{r=await ol({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{Mp(n)}let i={relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:ym(`wallet-add-signer-finalize`),kind:`evm_family_ecdsa`,ecdsa:{expectedKeyHandles:[r.bootstrap.keyHandle]},custodyKeySet:r.custodyKeySet},a;try{a=await In(i)}catch(e){if(!(e instanceof TypeError))throw e;a=await In(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 sl({context:e.context,pending:r});Nh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let l=await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:qe(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}),Nh(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 Wh(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 Hh({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 Uh({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 J(e.signerSelection)}}async function Gh(e){let{context:t,signerSelection:n}=e,r=e.options||{},i=Wt(String(e.walletId||``).trim()),a=wm(String(i)),o=fp(String(e.rpId||``).trim());Nh(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=lf(t.configs);if(!s)throw Error(`addSigner requires registration.publishableKey and registration.projectEnvironmentId`);let c=await Fn({relayerUrl:e,walletId:i,request:{walletId:i,rpId:o,signerSelection:n},auth:{publishableKey:s.publishableKey,environmentId:s.projectEnvironmentId}});if(await wr(c.intent)!==c.addSignerIntentDigestB64u)throw Error(`Add-signer intent digest mismatch`);Nh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_assert`,overlay:`show`}});let l=Ih(await B.listProfileAuthenticators(String(i))),u=await t.signingEngine.getAuthenticationCredentialsSerialized({subjectId:String(i),challengeB64u:c.addSignerIntentDigestB64u,allowCredentials:l,includeSecondPrfOutput:!1}),d=Lh(u,l),f=pr(u,`Wallet add-signer authorization`);Nh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let p=await An({relayerUrl:e,walletId:i,addSignerIntentGrant:c.addSignerIntentGrant,addSignerIntentDigestB64u:c.addSignerIntentDigestB64u,intent:c.intent,auth:{kind:`webauthn_assertion`,rpId:o,credential:Zn(u),expectedChallengeDigestB64u:c.addSignerIntentDigestB64u}});await Rh({started:p,walletId:i,expectedDigestB64u:c.addSignerIntentDigestB64u});let m=await Wh({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 Nh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),Fh(r.afterCall,!0,m),m}catch(e){let t=Tm(e),n=ve(e,`registration`,a);Ph(r.onError,Em(n,t)),Nh(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 Fh(r.afterCall,!1),i}}function Kh(e,t,n,r,i){return n===`owner_operations`?{kind:`none`}:vh({signingEngine:e,ceremonyId:t,thresholdSessionId:i,prfFirstB64u:r.prfFirstB64u})}function qh(e,t){return{kind:`near_ed25519`,accountProvisioning:e.accountProvisioning,resolvedAccount:e.resolvedAccount,nearEd25519SigningKeyId:Vt(e.ed25519.nearEd25519SigningKeyId),operationalPublicKey:t,nearAccountId:Me(e.ed25519.nearAccountId),transactionId:e.resolvedAccount.kind===`sponsored_named_account`?e.resolvedAccount.transactionHash:null}}export{su as $,Hd as A,rc as At,Lu as B,Ea as Bt,rf as C,cc as Ct,Gd as D,Ys as Dt,Kd as E,Zs as Et,ad as F,Co as Ft,Ou as G,da as Gt,Fu as H,wa as Ht,id as I,wo as It,ju as J,Wi as Jt,ku as K,ya as Kt,Wu as L,Ma as Lt,zd as M,Ss as Mt,Bd as N,Vo as Nt,Wd as O,dc as Ot,Ld as P,Ao as Pt,iu as Q,qu as R,Na as Rt,af as S,uc as St,Qd as T,Qs as Tt,Pu as U,$i as Ut,Mu as V,Ca as Vt,Iu as W,ba as Wt,Cu as X,Vi as Xt,Eu as Y,ui as Yt,ou as Z,Pi as Zt,yf as _,yc as _t,Mh as a,Gl as at,uf as b,Ac as bt,op as c,ul as ct,kf as d,Lc as dt,bu as et,If as f,Ic as ft,pf as g,xc as gt,mf as h,Uc as ht,_m as i,xu as it,Ud as j,ec as jt,Zd as k,ic as kt,rp as l,Kc as lt,xf as m,Rc as mt,hm as n,yu as nt,Op as o,ql as ot,Ff as p,zc as pt,Du as q,fa as qt,mm as r,du as rt,gm as s,Kl as st,Gh as t,uu as tt,ep as u,Fc as ut,gf as v,vc as vt,sf as w,$s as wt,lf as x,Mc as xt,vf as y,Ec as yt,Ku as z,Da as zt};