@seams/wallet 0.9.3 → 0.10.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.
- package/README.md +3 -3
- package/THIRD_PARTY_NOTICES.md +33 -1
- package/dist/.build-inputs.sha256 +1 -1
- package/dist/esm/core/rpcClients/relayer/walletRegistration.js +1 -1
- package/dist/esm/react/components/VoiceAssistantCard.css +313 -0
- package/dist/esm/react/components/VoiceAssistantCard.js +150 -0
- package/dist/esm/react/index.js +3 -1
- package/dist/esm/react/styles/styles.css +314 -0
- package/dist/esm/react/styles.css +1 -0
- package/dist/esm/sdk/{ConfirmationDrawer-DY0_yeUV.js → ConfirmationDrawer-Frj3uEee.js} +1 -1
- package/dist/{public/sdk/NonceCoordinator-CFFq8-Q9.js → esm/sdk/NonceCoordinator-S5ZbrkDp.js} +1 -1
- package/dist/{public/sdk/accountLifecycle-CAMVowDl.js → esm/sdk/accountLifecycle-HEUmDLus.js} +1 -1
- package/dist/esm/sdk/activeWalletSession-WdZkhtBB.js +1 -0
- package/dist/esm/sdk/{adapters-DdDOQzl4.js → adapters-DYPu0nK9.js} +2 -2
- package/dist/esm/sdk/{canonicalPrimitives-CKPGgpxg.js → canonicalPrimitives-Dsbsxgxc.js} +1 -1
- package/dist/esm/sdk/{capabilityKinds-CKQ4Uqnv.js → capabilityKinds-N8xo_IEh.js} +1 -1
- package/dist/esm/sdk/{chains-CiYQT1K4.js → chains-C_X_fNuS.js} +1 -1
- package/dist/esm/sdk/challengeDelivery-5lIu9spR.js +1 -0
- package/dist/{public/sdk/clientSessionPersistenceState-CImFWDj6.js → esm/sdk/clientSessionPersistenceState-DRdve9rC.js} +1 -1
- package/dist/esm/sdk/{commitQueue-iBNUt9Bz.js → commitQueue-qjvY_zWn.js} +1 -1
- package/dist/esm/sdk/{configHelpers-D8Ivi6p8.js → configHelpers-B-hs0mTO.js} +1 -1
- package/dist/esm/sdk/digestEncoding-CkUc5vtR.js +1 -0
- package/dist/esm/sdk/{display-ClqZq-Xt.js → display-DjoWrSgE.js} +1 -1
- package/dist/esm/sdk/domainIds-BzkGsRqO.js +1 -0
- package/dist/{public/sdk/ecdsaCapabilityManifest-BlzJAQF8.js → esm/sdk/ecdsaCapabilityManifest-ChszYCC0.js} +1 -1
- package/dist/esm/sdk/{ecdsaChainTarget-C8ZtMZ8l.js → ecdsaChainTarget-DJBXHzbH.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationClientWasm-CVeNEou2.js → esm/sdk/ecdsaDerivationClientWasm-CpH-b3jx.js} +1 -1
- package/dist/{public/sdk/ecdsaDerivationExport-BZFHSMCv.js → esm/sdk/ecdsaDerivationExport-C1cE5m0t.js} +1 -1
- package/dist/esm/sdk/{ecdsaWalletRecords-D4WeYc7H.js → ecdsaWalletRecords-Di_NUxD_.js} +1 -1
- package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-p0C1CQva.js +1 -0
- package/dist/esm/sdk/{enrichDisplayModelWithAbi-69bNckvi.js → enrichDisplayModelWithAbi-DZIhvE-x.js} +1 -1
- package/dist/esm/sdk/{evmCryptoWasm-BXsIyRon.js → evmCryptoWasm-DeobzyP-.js} +1 -1
- package/dist/{public/sdk/export-viewer-host-CsFeiIhd.js → esm/sdk/export-viewer-host-DUMwD6zP.js} +1 -1
- package/dist/{public/sdk/exportKeypairOperation-DGQIYML3.js → esm/sdk/exportKeypairOperation-DYCzCbqL.js} +1 -1
- package/dist/esm/sdk/{helpers-Ddy72ULN.js → helpers-BnkILY2_.js} +1 -1
- package/dist/esm/sdk/host-CCwkhJHK.js +1 -0
- package/dist/esm/sdk/{intentDigest-CE-tLw87.js → intentDigest-DJBrMyLJ.js} +1 -1
- package/dist/esm/sdk/{lanes-DnBwWv4l.js → lanes-Ck81oEGv.js} +1 -1
- package/dist/esm/sdk/{localOnly-ClCo6602.js → localOnly-KvZeKkH5.js} +1 -1
- package/dist/{public/sdk/messages-vxz27Way.js → esm/sdk/messages-DgJlG9NU.js} +1 -1
- package/dist/esm/sdk/{mountExportPrivateKeySurface-CBZ0wRYj.js → mountExportPrivateKeySurface-B4gH1Sel.js} +1 -1
- package/dist/{public/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js → esm/sdk/mountRecoveryCodeBackupSurface-BA2ttbTM.js} +1 -1
- package/dist/esm/sdk/nearEd25519YaoMaterialActivation-DMGPKrn8.js +1 -0
- package/dist/esm/sdk/{nearEd25519YaoSigningPreparation-B0d1AG3u.js → nearEd25519YaoSigningPreparation-Eiq_ikXk.js} +1 -1
- package/dist/esm/sdk/{nonceLaneKeys-Fkvk2UPy.js → nonceLaneKeys-Do5Vs-De.js} +1 -1
- package/dist/esm/sdk/{normalization-DCvuCvh0.js → normalization-DJPmcXTg.js} +1 -1
- package/dist/esm/sdk/{operationFingerprint-CTR9G1NT.js → operationFingerprint-CUrnoh-M.js} +1 -1
- package/dist/esm/sdk/passkey-custody-Cd_yyoRa.js +1 -0
- package/dist/esm/sdk/{pendingWalletRecoveryCodeBackup-yJN8VAHn.js → pendingWalletRecoveryCodeBackup-BkIrbd6Q.js} +1 -1
- package/dist/esm/sdk/presignaturePool-CLHu7HaU.js +1 -0
- package/dist/esm/sdk/{prfCache-BMpqZZ-v.js → prfCache-DCkuB8Lu.js} +1 -1
- package/dist/esm/sdk/primitives-CqrjmIAH.js +1 -0
- package/dist/{public/sdk/recovery-entrypoint-Bl5GgbW9.js → esm/sdk/recovery-entrypoint-DoXswV9I.js} +1 -1
- package/dist/esm/sdk/{registration-C4sALQZO.js → registration-BFHEYmgh.js} +1 -1
- package/dist/esm/sdk/registration-Cx_f58rb.js +1 -0
- package/dist/esm/sdk/{registrationAccounts-D4RVetMz.js → registrationAccounts-DP-32yCK.js} +1 -1
- package/dist/esm/sdk/{registrationAuthMethodInput-6ccY2Vuh.js → registrationAuthMethodInput-BBCeWDmw.js} +1 -1
- package/dist/esm/sdk/{registrationIds-CdPqm-Ya.js → registrationIds-ByuReLUc.js} +1 -1
- package/dist/esm/sdk/registrationIntent-BHU5k2Q-.js +1 -0
- package/dist/esm/sdk/{registrationSignerPlan-B9GCvpTV.js → registrationSignerPlan-dY9Rp0m_.js} +1 -1
- package/dist/esm/sdk/{requireStepUpAuth-DCVqmeee.js → requireStepUpAuth-C67sluoC.js} +1 -1
- package/dist/esm/sdk/routerAbNormalSigning-DVKFBYgV.js +1 -0
- package/dist/esm/sdk/{runtime-auth-DiEJDFkJ.js → runtime-auth-Cjvf3UFB.js} +1 -1
- package/dist/{public/sdk/runtime-device-link-5u31t1H0.js → esm/sdk/runtime-device-link-BCKuKNp1.js} +1 -1
- package/dist/esm/sdk/{runtime-ecdsa-tempo-C3CRzwph.js → runtime-ecdsa-tempo-Bpmv6fe0.js} +1 -1
- package/dist/esm/sdk/{runtime-email-otp-DHlirACG.js → runtime-email-otp-Bp16EG2j.js} +1 -1
- package/dist/esm/sdk/{runtime-export-CFy4-Ebn.js → runtime-export-fONYqIZg.js} +1 -1
- package/dist/{public/sdk/runtime-near-BxYOozPP.js → esm/sdk/runtime-near-s4rtAbA2.js} +1 -1
- package/dist/esm/sdk/runtime-preferences-1v5EHalc.js +1 -0
- package/dist/esm/sdk/{runtime-recovery-codes-BZMiAR_5.js → runtime-recovery-codes-Dn-NccpU.js} +1 -1
- package/dist/esm/sdk/runtime-recovery-mppuqUaS.js +1 -0
- package/dist/esm/sdk/{sdkSentEvents-D3q1h-Uo.js → sdkSentEvents-DiQ3YVlj.js} +1 -1
- package/dist/esm/sdk/{secp256k1-DSLttQND.js → secp256k1-C-AETUpI.js} +1 -1
- package/dist/esm/sdk/{secureRandomId-BIekT8bE.js → secureRandomId-LwBFx84B.js} +1 -1
- package/dist/esm/sdk/{sessionPolicy-J-RrlPZQ.js → sessionPolicy-CBTZQe1n.js} +1 -1
- package/dist/esm/sdk/shared-Big0VQEK.js +6 -0
- package/dist/{public/sdk/signEvmFamily-KUNWKVeh.js → esm/sdk/signEvmFamily-DjD3tn8e.js} +1 -1
- package/dist/esm/sdk/{signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js → signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js} +1 -1
- package/dist/esm/sdk/{signEvmWithUiConfirm-CqxL7UbT.js → signEvmWithUiConfirm-BHG0dwVG.js} +1 -1
- package/dist/esm/sdk/signNear-D0tlQXb9.js +1 -0
- package/dist/esm/sdk/{signatureUses-CjJ233KX.js → signatureUses-8c8Ku_Fw.js} +1 -1
- package/dist/esm/sdk/{signerDomain-vQmlnsbF.js → signerDomain-DqLCvI-D.js} +1 -1
- package/dist/esm/sdk/{signingFlow-vrXxrhlG.js → signingFlow-Mym5j6aw.js} +1 -1
- package/dist/esm/sdk/signingQueue-2pr7lAUS.js +1 -0
- package/dist/esm/sdk/thresholdEcdsa-D-QMyevW.js +1 -0
- package/dist/esm/sdk/{trace-BvbCxdXF.js → trace-QLsbYdld.js} +1 -1
- package/dist/esm/sdk/{transaction-activity-D40ih2j-.js → transaction-activity-Cb2JyYKv.js} +1 -1
- package/dist/{public/sdk/transactionReviewAdmission-C-a3ctCJ.js → esm/sdk/transactionReviewAdmission-CIvR4W5_.js} +1 -1
- package/dist/{public/sdk/transactionState-DVinJk4K.js → esm/sdk/transactionState-CGULLokO.js} +1 -1
- package/dist/esm/sdk/{types-D3GM-uHR.js → types-WGrFMQSw.js} +1 -1
- package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/esm/sdk/wallet-recovery-D7ywcIHw.js +1 -0
- package/dist/{public/sdk/walletAuthMethodRecord-CXedSgpV.js → esm/sdk/walletAuthMethodRecord-CnBw27ED.js} +1 -1
- package/dist/esm/sdk/walletAuthority-BWvfaKIX.js +1 -0
- package/dist/esm/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js +1 -0
- package/dist/esm/sdk/{walletOwnershipGeneration-DoXVMDWe.js → walletOwnershipGeneration-CAycHv-H.js} +1 -1
- package/dist/esm/sdk/walletRecoveryCommit-C3EgMjo-.js +1 -0
- package/dist/esm/sdk/walletRecoveryRotate-D_1a8Agl.js +1 -0
- package/dist/esm/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +1 -0
- package/dist/esm/sdk/walletSessionAuthorizationStatus-BLyzJbU8.js +1 -0
- package/dist/esm/sdk/{walletSessionAuthorizationStore-gEYPmu-G.js → walletSessionAuthorizationStore-BiKGIBWQ.js} +1 -1
- package/dist/esm/sdk/warmSessionHydration-B7-kCnJh.js +1 -0
- package/dist/esm/sdk/{webauthnP256-BEz4DEAs.js → webauthnP256-DZCusNY9.js} +1 -1
- package/dist/{public/sdk/webauthnPromptCoordinator-BEudHQBr.js → esm/sdk/webauthnPromptCoordinator-CS4Xc_jZ.js} +1 -1
- package/dist/public/headers.manifest.json +1 -1
- package/dist/public/sdk/{ConfirmationDrawer-DY0_yeUV.js → ConfirmationDrawer-Frj3uEee.js} +1 -1
- package/dist/{esm/sdk/NonceCoordinator-CFFq8-Q9.js → public/sdk/NonceCoordinator-S5ZbrkDp.js} +1 -1
- package/dist/{esm/sdk/accountLifecycle-CAMVowDl.js → public/sdk/accountLifecycle-HEUmDLus.js} +1 -1
- package/dist/public/sdk/activeWalletSession-WdZkhtBB.js +1 -0
- package/dist/public/sdk/{adapters-DdDOQzl4.js → adapters-DYPu0nK9.js} +2 -2
- package/dist/public/sdk/{canonicalPrimitives-CKPGgpxg.js → canonicalPrimitives-Dsbsxgxc.js} +1 -1
- package/dist/public/sdk/{capabilityKinds-CKQ4Uqnv.js → capabilityKinds-N8xo_IEh.js} +1 -1
- package/dist/public/sdk/{chains-CiYQT1K4.js → chains-C_X_fNuS.js} +1 -1
- package/dist/public/sdk/challengeDelivery-5lIu9spR.js +1 -0
- package/dist/{esm/sdk/clientSessionPersistenceState-CImFWDj6.js → public/sdk/clientSessionPersistenceState-DRdve9rC.js} +1 -1
- package/dist/public/sdk/{commitQueue-iBNUt9Bz.js → commitQueue-qjvY_zWn.js} +1 -1
- package/dist/public/sdk/{configHelpers-D8Ivi6p8.js → configHelpers-B-hs0mTO.js} +1 -1
- package/dist/public/sdk/digestEncoding-CkUc5vtR.js +1 -0
- package/dist/public/sdk/{display-ClqZq-Xt.js → display-DjoWrSgE.js} +1 -1
- package/dist/public/sdk/domainIds-BzkGsRqO.js +1 -0
- package/dist/{esm/sdk/ecdsaCapabilityManifest-BlzJAQF8.js → public/sdk/ecdsaCapabilityManifest-ChszYCC0.js} +1 -1
- package/dist/public/sdk/{ecdsaChainTarget-C8ZtMZ8l.js → ecdsaChainTarget-DJBXHzbH.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationClientWasm-CVeNEou2.js → public/sdk/ecdsaDerivationClientWasm-CpH-b3jx.js} +1 -1
- package/dist/{esm/sdk/ecdsaDerivationExport-BZFHSMCv.js → public/sdk/ecdsaDerivationExport-C1cE5m0t.js} +1 -1
- package/dist/public/sdk/{ecdsaWalletRecords-D4WeYc7H.js → ecdsaWalletRecords-Di_NUxD_.js} +1 -1
- package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-p0C1CQva.js +1 -0
- package/dist/public/sdk/{enrichDisplayModelWithAbi-69bNckvi.js → enrichDisplayModelWithAbi-DZIhvE-x.js} +1 -1
- package/dist/public/sdk/{evmCryptoWasm-BXsIyRon.js → evmCryptoWasm-DeobzyP-.js} +1 -1
- package/dist/{esm/sdk/export-viewer-host-CsFeiIhd.js → public/sdk/export-viewer-host-DUMwD6zP.js} +1 -1
- package/dist/{esm/sdk/exportKeypairOperation-DGQIYML3.js → public/sdk/exportKeypairOperation-DYCzCbqL.js} +1 -1
- package/dist/public/sdk/{helpers-Ddy72ULN.js → helpers-BnkILY2_.js} +1 -1
- package/dist/public/sdk/host-CCwkhJHK.js +1 -0
- package/dist/public/sdk/{intentDigest-CE-tLw87.js → intentDigest-DJBrMyLJ.js} +1 -1
- package/dist/public/sdk/{lanes-DnBwWv4l.js → lanes-Ck81oEGv.js} +1 -1
- package/dist/public/sdk/{localOnly-ClCo6602.js → localOnly-KvZeKkH5.js} +1 -1
- package/dist/{esm/sdk/messages-vxz27Way.js → public/sdk/messages-DgJlG9NU.js} +1 -1
- package/dist/public/sdk/{mountExportPrivateKeySurface-CBZ0wRYj.js → mountExportPrivateKeySurface-B4gH1Sel.js} +1 -1
- package/dist/{esm/sdk/mountRecoveryCodeBackupSurface-B1qhFF6G.js → public/sdk/mountRecoveryCodeBackupSurface-BA2ttbTM.js} +1 -1
- package/dist/public/sdk/nearEd25519YaoMaterialActivation-DMGPKrn8.js +1 -0
- package/dist/public/sdk/{nearEd25519YaoSigningPreparation-B0d1AG3u.js → nearEd25519YaoSigningPreparation-Eiq_ikXk.js} +1 -1
- package/dist/public/sdk/{nonceLaneKeys-Fkvk2UPy.js → nonceLaneKeys-Do5Vs-De.js} +1 -1
- package/dist/public/sdk/{normalization-DCvuCvh0.js → normalization-DJPmcXTg.js} +1 -1
- package/dist/public/sdk/{operationFingerprint-CTR9G1NT.js → operationFingerprint-CUrnoh-M.js} +1 -1
- package/dist/public/sdk/passkey-custody-Cd_yyoRa.js +1 -0
- package/dist/public/sdk/{pendingWalletRecoveryCodeBackup-yJN8VAHn.js → pendingWalletRecoveryCodeBackup-BkIrbd6Q.js} +1 -1
- package/dist/public/sdk/presignaturePool-CLHu7HaU.js +1 -0
- package/dist/public/sdk/{prfCache-BMpqZZ-v.js → prfCache-DCkuB8Lu.js} +1 -1
- package/dist/public/sdk/primitives-CqrjmIAH.js +1 -0
- package/dist/{esm/sdk/recovery-entrypoint-Bl5GgbW9.js → public/sdk/recovery-entrypoint-DoXswV9I.js} +1 -1
- package/dist/public/sdk/{registration-C4sALQZO.js → registration-BFHEYmgh.js} +1 -1
- package/dist/public/sdk/registration-Cx_f58rb.js +1 -0
- package/dist/public/sdk/{registrationAccounts-D4RVetMz.js → registrationAccounts-DP-32yCK.js} +1 -1
- package/dist/public/sdk/{registrationAuthMethodInput-6ccY2Vuh.js → registrationAuthMethodInput-BBCeWDmw.js} +1 -1
- package/dist/public/sdk/{registrationIds-CdPqm-Ya.js → registrationIds-ByuReLUc.js} +1 -1
- package/dist/public/sdk/registrationIntent-BHU5k2Q-.js +1 -0
- package/dist/public/sdk/{registrationSignerPlan-B9GCvpTV.js → registrationSignerPlan-dY9Rp0m_.js} +1 -1
- package/dist/public/sdk/{requireStepUpAuth-DCVqmeee.js → requireStepUpAuth-C67sluoC.js} +1 -1
- package/dist/public/sdk/routerAbNormalSigning-DVKFBYgV.js +1 -0
- package/dist/public/sdk/{runtime-auth-DiEJDFkJ.js → runtime-auth-Cjvf3UFB.js} +1 -1
- package/dist/{esm/sdk/runtime-device-link-5u31t1H0.js → public/sdk/runtime-device-link-BCKuKNp1.js} +1 -1
- package/dist/public/sdk/{runtime-ecdsa-tempo-C3CRzwph.js → runtime-ecdsa-tempo-Bpmv6fe0.js} +1 -1
- package/dist/public/sdk/{runtime-email-otp-DHlirACG.js → runtime-email-otp-Bp16EG2j.js} +1 -1
- package/dist/public/sdk/{runtime-export-CFy4-Ebn.js → runtime-export-fONYqIZg.js} +1 -1
- package/dist/{esm/sdk/runtime-near-BxYOozPP.js → public/sdk/runtime-near-s4rtAbA2.js} +1 -1
- package/dist/public/sdk/runtime-preferences-1v5EHalc.js +1 -0
- package/dist/public/sdk/{runtime-recovery-codes-BZMiAR_5.js → runtime-recovery-codes-Dn-NccpU.js} +1 -1
- package/dist/public/sdk/runtime-recovery-mppuqUaS.js +1 -0
- package/dist/public/sdk/{sdkSentEvents-D3q1h-Uo.js → sdkSentEvents-DiQ3YVlj.js} +1 -1
- package/dist/public/sdk/{secp256k1-DSLttQND.js → secp256k1-C-AETUpI.js} +1 -1
- package/dist/public/sdk/{secureRandomId-BIekT8bE.js → secureRandomId-LwBFx84B.js} +1 -1
- package/dist/public/sdk/{sessionPolicy-J-RrlPZQ.js → sessionPolicy-CBTZQe1n.js} +1 -1
- package/dist/public/sdk/shared-Big0VQEK.js +6 -0
- package/dist/{esm/sdk/signEvmFamily-KUNWKVeh.js → public/sdk/signEvmFamily-DjD3tn8e.js} +1 -1
- package/dist/public/sdk/{signEvmFamilyWithUiConfirmForTempo-Dc57bJ3V.js → signEvmFamilyWithUiConfirmForTempo-CwRFbaLM.js} +1 -1
- package/dist/public/sdk/{signEvmWithUiConfirm-CqxL7UbT.js → signEvmWithUiConfirm-BHG0dwVG.js} +1 -1
- package/dist/public/sdk/signNear-D0tlQXb9.js +1 -0
- package/dist/public/sdk/{signatureUses-CjJ233KX.js → signatureUses-8c8Ku_Fw.js} +1 -1
- package/dist/public/sdk/{signerDomain-vQmlnsbF.js → signerDomain-DqLCvI-D.js} +1 -1
- package/dist/public/sdk/{signingFlow-vrXxrhlG.js → signingFlow-Mym5j6aw.js} +1 -1
- package/dist/public/sdk/signingQueue-2pr7lAUS.js +1 -0
- package/dist/public/sdk/thresholdEcdsa-D-QMyevW.js +1 -0
- package/dist/public/sdk/{trace-BvbCxdXF.js → trace-QLsbYdld.js} +1 -1
- package/dist/public/sdk/{transaction-activity-D40ih2j-.js → transaction-activity-Cb2JyYKv.js} +1 -1
- package/dist/{esm/sdk/transactionReviewAdmission-C-a3ctCJ.js → public/sdk/transactionReviewAdmission-CIvR4W5_.js} +1 -1
- package/dist/{esm/sdk/transactionState-DVinJk4K.js → public/sdk/transactionState-CGULLokO.js} +1 -1
- package/dist/public/sdk/{types-D3GM-uHR.js → types-WGrFMQSw.js} +1 -1
- package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
- package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
- package/dist/public/sdk/wallet-recovery-D7ywcIHw.js +1 -0
- package/dist/{esm/sdk/walletAuthMethodRecord-CXedSgpV.js → public/sdk/walletAuthMethodRecord-CnBw27ED.js} +1 -1
- package/dist/public/sdk/walletAuthority-BWvfaKIX.js +1 -0
- package/dist/public/sdk/walletCustodyEcdsaContinuity-B8aO2NFb.js +1 -0
- package/dist/public/sdk/{walletOwnershipGeneration-DoXVMDWe.js → walletOwnershipGeneration-CAycHv-H.js} +1 -1
- package/dist/public/sdk/walletRecoveryCommit-C3EgMjo-.js +1 -0
- package/dist/public/sdk/walletRecoveryRotate-D_1a8Agl.js +1 -0
- package/dist/public/sdk/walletRegistrationSetupPrewarm-B9kpnrbK.js +1 -0
- package/dist/public/sdk/walletSessionAuthorizationStatus-BLyzJbU8.js +1 -0
- package/dist/public/sdk/{walletSessionAuthorizationStore-gEYPmu-G.js → walletSessionAuthorizationStore-BiKGIBWQ.js} +1 -1
- package/dist/public/sdk/warmSessionHydration-B7-kCnJh.js +1 -0
- package/dist/public/sdk/{webauthnP256-BEz4DEAs.js → webauthnP256-DZCusNY9.js} +1 -1
- package/dist/{esm/sdk/webauthnPromptCoordinator-BEudHQBr.js → public/sdk/webauthnPromptCoordinator-CS4Xc_jZ.js} +1 -1
- package/dist/public/wallet-assets.manifest.json +264 -240
- package/dist/public/wallet-service/index.html +4 -4
- package/dist/types/shared-ts/src/utils/walletManagementProtocol.d.ts +1 -1
- package/dist/types/wallet/src/SeamsWeb/signingSurface/BrowserSigningSurface.d.ts +2 -16
- package/dist/types/wallet/src/SeamsWeb/signingSurface/ports.d.ts +24 -15
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistration.d.ts +44 -6
- package/dist/types/wallet/src/core/rpcClients/relayer/walletRegistrationSetupPrewarm.d.ts +4 -0
- package/dist/types/wallet/src/core/signingEngine/walletCustody/ceremonyDriver.d.ts +14 -0
- package/dist/types/wallet/src/core/signingEngine/walletCustody/registrationCeremony.d.ts +27 -5
- package/dist/types/wallet/src/react/components/VoiceAssistantCard.d.ts +38 -0
- package/dist/types/wallet/src/react/components/VoiceAssistantCard.typecheck.d.ts +2 -0
- package/dist/types/wallet/src/react/index.d.ts +5 -1
- package/package.json +3 -2
- package/dist/esm/sdk/activeWalletSession-DiZcKjB_.js +0 -1
- package/dist/esm/sdk/challengeDelivery-DxXAkOfS.js +0 -1
- package/dist/esm/sdk/digestEncoding-Dzc1rzWV.js +0 -1
- package/dist/esm/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +0 -1
- package/dist/esm/sdk/host-CWE1mHHY.js +0 -1
- package/dist/esm/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +0 -1
- package/dist/esm/sdk/normalize-kUDm5zfS.js +0 -1
- package/dist/esm/sdk/passkey-custody-BQj44jEM.js +0 -1
- package/dist/esm/sdk/presignaturePool-DwlTReFO.js +0 -1
- package/dist/esm/sdk/primitives-CAcl7ON7.js +0 -1
- package/dist/esm/sdk/registration-CEqVAgNJ.js +0 -1
- package/dist/esm/sdk/registrationIntent-DOkZcKSP.js +0 -1
- package/dist/esm/sdk/routerAbNormalSigning-BG75eyI2.js +0 -1
- package/dist/esm/sdk/runtime-preferences-C1Exkn4E.js +0 -1
- package/dist/esm/sdk/runtime-recovery-DSbvI1DT.js +0 -1
- package/dist/esm/sdk/shared-6SvVPZD0.js +0 -6
- package/dist/esm/sdk/signNear-C6ljzB87.js +0 -1
- package/dist/esm/sdk/signingQueue-BrGJXBqe.js +0 -1
- package/dist/esm/sdk/thresholdEcdsa-CO7xo1So.js +0 -1
- package/dist/esm/sdk/wallet-recovery-C1kesLCF.js +0 -1
- package/dist/esm/sdk/walletAuthority-B5hXHWpK.js +0 -1
- package/dist/esm/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +0 -1
- package/dist/esm/sdk/walletRecoveryCommit-Cc9AqHr0.js +0 -1
- package/dist/esm/sdk/walletRecoveryRotate-DWTAFYiv.js +0 -1
- package/dist/esm/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +0 -1
- package/dist/esm/sdk/warmSessionHydration-DgjuUacN.js +0 -1
- package/dist/public/sdk/activeWalletSession-DiZcKjB_.js +0 -1
- package/dist/public/sdk/challengeDelivery-DxXAkOfS.js +0 -1
- package/dist/public/sdk/digestEncoding-Dzc1rzWV.js +0 -1
- package/dist/public/sdk/emailOtpEcdsaDerivationIdentity-B8HzTh4T.js +0 -1
- package/dist/public/sdk/host-CWE1mHHY.js +0 -1
- package/dist/public/sdk/nearEd25519YaoMaterialActivation-fWQI3rYj.js +0 -1
- package/dist/public/sdk/normalize-kUDm5zfS.js +0 -1
- package/dist/public/sdk/passkey-custody-BQj44jEM.js +0 -1
- package/dist/public/sdk/presignaturePool-DwlTReFO.js +0 -1
- package/dist/public/sdk/primitives-CAcl7ON7.js +0 -1
- package/dist/public/sdk/registration-CEqVAgNJ.js +0 -1
- package/dist/public/sdk/registrationIntent-DOkZcKSP.js +0 -1
- package/dist/public/sdk/routerAbNormalSigning-BG75eyI2.js +0 -1
- package/dist/public/sdk/runtime-preferences-C1Exkn4E.js +0 -1
- package/dist/public/sdk/runtime-recovery-DSbvI1DT.js +0 -1
- package/dist/public/sdk/shared-6SvVPZD0.js +0 -6
- package/dist/public/sdk/signNear-C6ljzB87.js +0 -1
- package/dist/public/sdk/signingQueue-BrGJXBqe.js +0 -1
- package/dist/public/sdk/thresholdEcdsa-CO7xo1So.js +0 -1
- package/dist/public/sdk/wallet-recovery-C1kesLCF.js +0 -1
- package/dist/public/sdk/walletAuthority-B5hXHWpK.js +0 -1
- package/dist/public/sdk/walletCustodyEcdsaContinuity-abNZ_dvX.js +0 -1
- package/dist/public/sdk/walletRecoveryCommit-Cc9AqHr0.js +0 -1
- package/dist/public/sdk/walletRecoveryRotate-DWTAFYiv.js +0 -1
- package/dist/public/sdk/walletSessionAuthorizationStatus-o1VgsLhA.js +0 -1
- package/dist/public/sdk/warmSessionHydration-DgjuUacN.js +0 -1
- /package/dist/esm/sdk/{appearance-ZGVLwA4N.js → appearance-DITtYj-z.js} +0 -0
- /package/dist/esm/sdk/{authenticatorOptions-DMLnDWT2.js → authenticatorOptions-C9aCKgeF.js} +0 -0
- /package/dist/esm/sdk/{authorizationAdmission-Ckx6q6tp.js → authorizationAdmission-CGinGhXH.js} +0 -0
- /package/dist/esm/sdk/{base64-CsEj-_bC.js → base64-DW79QA0h.js} +0 -0
- /package/dist/esm/sdk/{browser-D4wUl_77.js → browser-DkCRXFkk.js} +0 -0
- /package/dist/esm/sdk/{bytes-BBYkulRB.js → bytes-DZRW2UDg.js} +0 -0
- /package/dist/esm/sdk/{canonicalSignerErrorCode-DEHsPxNm.js → canonicalSignerErrorCode-Cz48v4oy.js} +0 -0
- /package/dist/esm/sdk/{configBuilder-ZiZwFKt4.js → configBuilder-BMawmNpz.js} +0 -0
- /package/dist/esm/sdk/{errors-BZO3LF6G.js → errors-DIWY1KR9.js} +0 -0
- /package/dist/esm/sdk/{events-DsQJQ0Cl.js → events-1dzC4Ocx.js} +0 -0
- /package/dist/esm/sdk/{executeWorkerOperation-BInr8RYN.js → executeWorkerOperation-DKCRRq5E.js} +0 -0
- /package/dist/esm/sdk/{jsonRpc-DrCYQIM9.js → jsonRpc-YKL5n8VL.js} +0 -0
- /package/dist/esm/sdk/{jsxRuntime.module-BcZNe_OA.js → jsxRuntime.module-C8JOKu_4.js} +0 -0
- /package/dist/esm/sdk/{keccak-B02Fekdh.js → keccak-BArcwgbj.js} +0 -0
- /package/dist/esm/sdk/{normalization-CpLZcL2f.js → normalization-CeZT7ob0.js} +0 -0
- /package/dist/esm/sdk/{presignatures-DB2IPD-A.js → presignatures-DZm0d6Wy.js} +0 -0
- /package/dist/esm/sdk/{profileAccountProjection-DmmfMood.js → profileAccountProjection-B3LXAUmo.js} +0 -0
- /package/dist/esm/sdk/{promptText-D2f5Rg0h.js → promptText-B8RprJhO.js} +0 -0
- /package/dist/esm/sdk/{signerSlot-Dto7dObP.js → signerSlot-B4Eq8Oe2.js} +0 -0
- /package/dist/esm/sdk/{signingSessionSeal-CDLUmAFY.js → signingSessionSeal-DX41aXUL.js} +0 -0
- /package/dist/esm/sdk/{surface-measurement-reporter-IlPOI3QK.js → surface-measurement-reporter-DvVHPu_O.js} +0 -0
- /package/dist/esm/sdk/{theme-_AUTWLS_.js → theme-BKaFqCAj.js} +0 -0
- /package/dist/esm/sdk/{types-BNUuaUtl.js → types-DhtByIcQ.js} +0 -0
- /package/dist/esm/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
- /package/dist/esm/sdk/{walletSessionAuthorizationProjection-DWBksIJR.js → walletSessionAuthorizationProjection-DuU6w0FP.js} +0 -0
- /package/dist/esm/sdk/{walletSessionFailure-Bu4VPKTz.js → walletSessionFailure-YuhraC3P.js} +0 -0
- /package/dist/public/sdk/{appearance-ZGVLwA4N.js → appearance-DITtYj-z.js} +0 -0
- /package/dist/public/sdk/{authenticatorOptions-DMLnDWT2.js → authenticatorOptions-C9aCKgeF.js} +0 -0
- /package/dist/public/sdk/{authorizationAdmission-Ckx6q6tp.js → authorizationAdmission-CGinGhXH.js} +0 -0
- /package/dist/public/sdk/{base64-CsEj-_bC.js → base64-DW79QA0h.js} +0 -0
- /package/dist/public/sdk/{browser-D4wUl_77.js → browser-DkCRXFkk.js} +0 -0
- /package/dist/public/sdk/{bytes-BBYkulRB.js → bytes-DZRW2UDg.js} +0 -0
- /package/dist/public/sdk/{canonicalSignerErrorCode-DEHsPxNm.js → canonicalSignerErrorCode-Cz48v4oy.js} +0 -0
- /package/dist/public/sdk/{configBuilder-ZiZwFKt4.js → configBuilder-BMawmNpz.js} +0 -0
- /package/dist/public/sdk/{errors-BZO3LF6G.js → errors-DIWY1KR9.js} +0 -0
- /package/dist/public/sdk/{events-DsQJQ0Cl.js → events-1dzC4Ocx.js} +0 -0
- /package/dist/public/sdk/{executeWorkerOperation-BInr8RYN.js → executeWorkerOperation-DKCRRq5E.js} +0 -0
- /package/dist/public/sdk/{jsonRpc-DrCYQIM9.js → jsonRpc-YKL5n8VL.js} +0 -0
- /package/dist/public/sdk/{jsxRuntime.module-BcZNe_OA.js → jsxRuntime.module-C8JOKu_4.js} +0 -0
- /package/dist/public/sdk/{keccak-B02Fekdh.js → keccak-BArcwgbj.js} +0 -0
- /package/dist/public/sdk/{normalization-CpLZcL2f.js → normalization-CeZT7ob0.js} +0 -0
- /package/dist/public/sdk/{presignatures-DB2IPD-A.js → presignatures-DZm0d6Wy.js} +0 -0
- /package/dist/public/sdk/{profileAccountProjection-DmmfMood.js → profileAccountProjection-B3LXAUmo.js} +0 -0
- /package/dist/public/sdk/{promptText-D2f5Rg0h.js → promptText-B8RprJhO.js} +0 -0
- /package/dist/public/sdk/{signerSlot-Dto7dObP.js → signerSlot-B4Eq8Oe2.js} +0 -0
- /package/dist/public/sdk/{signingSessionSeal-CDLUmAFY.js → signingSessionSeal-DX41aXUL.js} +0 -0
- /package/dist/public/sdk/{surface-measurement-reporter-IlPOI3QK.js → surface-measurement-reporter-DvVHPu_O.js} +0 -0
- /package/dist/public/sdk/{theme-_AUTWLS_.js → theme-BKaFqCAj.js} +0 -0
- /package/dist/public/sdk/{types-BNUuaUtl.js → types-DhtByIcQ.js} +0 -0
- /package/dist/public/sdk/{walletIframeIdentity-DJ0KOBHg.js → walletIframeIdentity-Cz82I_Uh.js} +0 -0
- /package/dist/public/sdk/{walletSessionAuthorizationProjection-DWBksIJR.js → walletSessionAuthorizationProjection-DuU6w0FP.js} +0 -0
- /package/dist/public/sdk/{walletSessionFailure-Bu4VPKTz.js → walletSessionFailure-YuhraC3P.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-dVx5-UGu.js";import{A as t,B as n,I as r,L as i,N as a,P as o,V as s,f as c,g as l,h as u,i as d,j as f,o as p,p as m,t as h,w as g}from"./normalize-kUDm5zfS.js";import{C as _,M as v,O as y,S as b,c as x,d as S,f as C,g as w,j as T,k as E,l as D,t as O,u as k}from"./chains-CiYQT1K4.js";import{i as A,r as j}from"./base64-CsEj-_bC.js";import{r as M}from"./secureRandomId-BIekT8bE.js";import{S as ee,_ as te,b as N,c as ne,v as re,w as ie,x as P,y as F}from"./primitives-CAcl7ON7.js";import{o as ae}from"./sessionPolicy-J-RrlPZQ.js";import{c as oe,d as I,f as se,l as ce,s as le,u as ue}from"./signingSessionSeal-CDLUmAFY.js";import{a as de,i as fe,n as pe}from"./activeWalletSession-DiZcKjB_.js";import{d as me,g as he,h as ge,m as _e}from"./capabilityKinds-CKQ4Uqnv.js";import{i as ve,n as ye,r as be}from"./canonicalPrimitives-CKPGgpxg.js";import{n as xe,o as Se,t as Ce}from"./errors-BZO3LF6G.js";import{f as we,l as Te,p as Ee}from"./digestEncoding-Dzc1rzWV.js";import{c as De,d as Oe,r as ke,t as L}from"./accountIds-BzZs7YoX.js";import{c as Ae,d as je,i as Me,l as Ne,n as Pe,r as Fe,s as Ie}from"./registrationSignerPlan-B9GCvpTV.js";import{a as Le,c as R,i as Re,o as ze,r as Be,s as Ve}from"./ecdsaChainTarget-C8ZtMZ8l.js";import{c as He,d as Ue,h as We,m as Ge,n as Ke,s as qe}from"./signerDomain-vQmlnsbF.js";import{a as Je,i as Ye,n as Xe,t as Ze}from"./singletons-8UH3gOnZ.js";import{L as Qe,M as $e,d as et,f as tt,p as nt,u as rt}from"./accountLifecycle-CAMVowDl.js";import{d as it}from"./walletAuthority-B5hXHWpK.js";import{Et as at,H as ot,Jt as st,K as ct,Nt as lt,Ot as ut,Pt as dt,Q as ft,St as pt,T as mt,Yt as ht,at as gt,en as _t,et as vt,gt as yt,ht as bt,jt as xt,kt as St,nn as Ct,q as wt,tn as Tt,tt as Et,vt as Dt,w as Ot,xt as kt,yt as At}from"./emailOtpEcdsaDerivationIdentity-B8HzTh4T.js";import{D as jt,F as Mt,I as Nt,K as Pt,P as Ft,S as It,T as Lt,U as Rt,X as zt,b as Bt,k as Vt,n as Ht,q as Ut,x as Wt}from"./challengeDelivery-DxXAkOfS.js";import{r as Gt}from"./walletAuthMethodRecord-CXedSgpV.js";import{a as Kt,i as qt,r as Jt,t as Yt}from"./registrationIds-CdPqm-Ya.js";import{a as Xt,c as Zt,d as Qt,f as $t,h as en,l as tn,n as nn,r as rn,u as an}from"./passkey-custody-BQj44jEM.js";import{A as on,B as sn,I as cn,N as ln,P as un,i as dn,j as fn}from"./ecdsaCapabilityManifest-BlzJAQF8.js";import{g as pn,i as z,p as mn,s as hn}from"./sdkSentEvents-D3q1h-Uo.js";import{C as gn,S as _n,b as vn,c as yn,g as bn,r as xn,u as B,v as Sn,w as Cn,x as wn,y as Tn}from"./walletCustodyEcdsaContinuity-abNZ_dvX.js";import{t as En}from"./signerSlot-Dto7dObP.js";import{c as Dn,o as On,s as kn}from"./wallet-recovery-C1kesLCF.js";import{n as An}from"./authenticatorOptions-DMLnDWT2.js";import{X as jn,j as Mn}from"./walletOwnershipGeneration-DoXVMDWe.js";import{c as Nn,r as Pn}from"./types-D3GM-uHR.js";import{o as Fn}from"./walletSessionAuthorizationStore-gEYPmu-G.js";import{l as In,o as Ln,u as Rn}from"./helpers-Ddy72ULN.js";import{i as zn}from"./profileAccountProjection-DmmfMood.js";import{A as Bn,C as Vn,E as Hn,O as Un,S as Wn,T as Gn,c as Kn,d as qn,f as Jn,h as Yn,n as Xn,p as Zn,r as Qn,s as $n,t as er,x as tr,y as nr}from"./nearEd25519YaoMaterialActivation-fWQI3rYj.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-B0d1AG3u.js";import{n as ur}from"./lanes-DnBwWv4l.js";import{t as dr}from"./walletSessionAuthorizationStatus-o1VgsLhA.js";import{n as fr}from"./prfCache-BMpqZZ-v.js";import{u as pr}from"./trace-BvbCxdXF.js";import{t as mr}from"./webauthnPromptCoordinator-BEudHQBr.js";import{t as hr}from"./intentDigest-CE-tLw87.js";import{n as gr,t as _r}from"./pendingWalletRecoveryCodeBackup-yJN8VAHn.js";import{n as vr}from"./walletSessionAuthorizationProjection-DWBksIJR.js";function yr(){return Reflect.get(globalThis,`__SEAMS_REGISTRATION_BENCHMARK_DIAGNOSTICS`)===!0}function br(){}function xr(e){if(e.keySet!==`near_ed25519_v1`)throw Error(`The custody worker began an EVM run for a NEAR request`);return e}function Sr(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker began a NEAR run for an EVM request`);return e}function Cr(e){if(e.keySet!==`evm_family_ecdsa_v1`)throw Error(`The custody worker completed a NEAR run for an EVM request`);return e}function wr(e){switch(e.origin){case`establish`: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 Er(e)}}function Tr(e){switch(e.origin){case`establish`:return{kind:`establish`,factorJson:e.factorJson,factorSecret:e.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 Er(e)}}function Er(e){throw Error(`Unsupported wallet custody origin: ${String(e)}`)}function Dr(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 Or(e,t,n){if(yr())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 kr(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=xr(await e.runStep(`beginWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`near_ed25519_v1`,custody:wr(n),protocolInputsJson:r.protocolInputsJson})).yaoExecuteRequestJson;if(Or(t,`begin`,a),i=!0,r.beforeRouterRound){a=performance.now();let n=await e.runStep(`checkpointNearRegistration`,{ceremonyId:t});Or(t,`checkpoint`,a),await r.beforeRouterRound(n.checkpointJson)}a=performance.now();let s=await r.runRouterRound(o);Or(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}),Or(t,`complete`,a),await r.afterRouterRoundCompleted?.(s),a=performance.now();let c=await e.runStep(`finishWalletCustodyKeySetRun`,{ceremonyId:t,finish:Tr(n)});return Or(t,`finish`,a),c}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=Sr(a);await r.beforeRelayerRound();let s=await r.runRelayerRound({contextBinding32B64u:o.ecdsaContextBinding32B64u,clientSharePublicKey33B64u:o.ecdsaClientSharePublicKey33B64u,clientShareRetryCounter:o.ecdsaClientShareRetryCounter,preActivationCommitPayload:o.preActivationCommitPayload}),c=Cr(await e.runStep(`completeWalletCustodyKeySetRun`,{ceremonyId:t,keySet:`evm_family_ecdsa_v1`,protocolResultJson:s}));return Dr(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(br),n}}const Ar=[1,2];function jr(e){let t=[],n=new Set;for(let r of e){let e=O(r.network);if(e!==`evm`&&e!==`tempo`)continue;let i=Re(r),a=ze(i);n.has(a)||(n.add(a),t.push({chainTarget:i}))}return t}function Mr(e){let t=[],n=new Set;for(let r of e.chains){let i=O(r.network);if(i!==`evm`&&i!==`tempo`||!(i===`tempo`?e.signerOptions.tempo:e.signerOptions.evm).enabled)continue;let a=Re(r),o=ze(a);n.has(o)||(n.add(o),t.push({chainTarget:a}))}return t}function Nr(e){for(let t of e.signers)if(t.kind===`near_ed25519`)return!0;return!1}function Pr(e){let t={kind:`near_ed25519`,accountProvisioning:e.accountProvisioning??Me(),signerSlot:1,participantIds:[...ee],derivationVersion:1},n=e.ecdsaChainTargets??Mr({signerOptions:e.options.signerOptions??e.configs.signing.thresholdEcdsa.provisioningDefaults,chains:e.configs.network.chains}).map(e=>e.chainTarget);return n.length?{kind:`signer_set`,signers:[t,{kind:`evm_family_ecdsa`,chainTargets:[...n],participantIds:[...Ar]}]}:{kind:`signer_set`,signers:[t]}}function Fr(e){let t=De(e);if(!t.ok)throw Error(t.message);return je(t.value)}function Ir(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 Fr(`${t}.${n}`)}function Lr(e){let t=e.preference??e.configs.registration.nearAccountProvisioning;switch(t.kind){case`implicit_account`:return Me();case`relayer_named_subaccount`:if(e.wallet.kind!==`provided`)throw Error(`Relayer named NEAR registration requires a provided walletId`);return Ir({walletId:e.wallet.walletId,relayerAccountId:e.configs.network.relayer.accountId});default:return t}}function Rr(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be a positive integer`);return e}function zr(e,t){let n=f(e);if(!n.ok)throw Error(`${t} is invalid`);return n.value}function Br(e,t){if(!Array.isArray(e)||e.length!==32)throw Error(`${t} must contain exactly 32 bytes`);let n=[];for(let r of e){if(typeof r!=`number`||!Number.isInteger(r)||r<0||r>255)throw Error(`${t} must contain exactly 32 bytes`);n.push(r)}return Object.freeze(n)}function Vr(e,t){if(!Array.isArray(e)||e.length===0)throw Error(`${t} must contain bytes`);return e.map(e=>{if(typeof e!=`number`||!Number.isInteger(e)||e<0||e>255)throw Error(`${t} must contain bytes`);return e})}function Hr(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 Ur(e){let t=E(e,`capability.registrationContinuity`);if(t.kind===`recovery`)return{kind:`recovery`,activationTranscript:Vr(t.activationTranscript,`capability.registrationContinuity.activationTranscript`)};if(t.kind!==`registration`)throw Error(`capability.registrationContinuity kind is invalid`);let n=Pt(t.admissionRequest),r=Rt(t.admissionReceipt);if(!n.ok)throw Error(`capability registration continuity transcript is invalid: ${n.message}`);if(!r.ok)throw Error(`capability registration continuity transcript is invalid: ${r.message}`);return{kind:`registration`,admissionRequest:n.value,admissionReceipt:r.value,activationTranscript:Vr(t.activationTranscript,`capability.registrationContinuity.activationTranscript`)}}function Wr(e){let t=E(e,`capability`);if(t.kind!==`router_ab_ed25519_yao_active_capability_v1`)throw Error(`Yao recovery capability kind is invalid`);let n=E(t.applicationBinding,`capability.applicationBinding`),r=E(t.lifecycle,`capability.lifecycle`),i;try{i=_t(t.materialActivation)}catch(e){throw Error(`capability.materialActivation is invalid: ${e instanceof Error?e.message:String(e)}`)}return{materialActivation:i,activeCapabilityBinding:Br(t.activeCapabilityBinding,`capability.activeCapabilityBinding`),registeredPublicKey:Br(t.registeredPublicKey,`capability.registeredPublicKey`),nearAccountId:L(T(t.nearAccountId,`capability.nearAccountId`)),applicationBinding:{wallet_id:T(n.wallet_id,`applicationBinding.wallet_id`),near_ed25519_signing_key_id:T(n.near_ed25519_signing_key_id,`applicationBinding.near_ed25519_signing_key_id`),signing_root_id:T(n.signing_root_id,`applicationBinding.signing_root_id`),key_creation_signer_slot:Rr(n.key_creation_signer_slot,`applicationBinding.key_creation_signer_slot`)},participantIds:Hr(t.participantIds),runtimePolicyScope:F(E(t.runtimePolicyScope,`capability.runtimePolicyScope`)),lifecycle:{lifecycleId:T(r.lifecycleId,`lifecycle.lifecycleId`),rootShareEpoch:T(r.rootShareEpoch,`lifecycle.rootShareEpoch`),accountId:T(r.accountId,`lifecycle.accountId`),thresholdSessionId:zr(T(r.thresholdSessionId,`lifecycle.thresholdSessionId`),`lifecycle.thresholdSessionId`),signerSetId:T(r.signerSetId,`lifecycle.signerSetId`),signingWorkerId:T(r.signingWorkerId,`lifecycle.signingWorkerId`)},stateEpoch:Rr(t.stateEpoch,`capability.stateEpoch`),registrationContinuity:Ur(t.registrationContinuity)}}var Gr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ni.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ni.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_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 Kr.__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=mi(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=mi(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&&(Gr.prototype[Symbol.dispose]=Gr.prototype.free);var Kr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ri.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ri.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_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],_i(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],_i(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=mi(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Kr.prototype[Symbol.dispose]=Kr.prototype.free);var qr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ii.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_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 Zr.__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],_i(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,ee=V(f,G.__wbindgen_malloc),te=W,N=G.wasmed25519yaoclientrootexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,ee,te);if(N[2])throw U(N[1]);return this.__wbg_ptr=N[0],ii.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(qr.prototype[Symbol.dispose]=qr.prototype.free);var Jr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ai.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_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,_i(n,r)}finally{G.__wbindgen_free(e,t,1)}}constructor(){return this.__wbg_ptr=G.wasmed25519yaolaneclientv1_new(),ai.register(this,this.__wbg_ptr,this),this}prepare(e,t,n,r,i,a,o,s,c,l){fi(a,Yr);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&&(Jr.prototype[Symbol.dispose]=Jr.prototype.free);var Yr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,oi.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,oi.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_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],oi.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&(Yr.prototype[Symbol.dispose]=Yr.prototype.free);var Xr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,si.unregister(this),e}free(){let e=this.__destroy_into_raw();G.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,0)}constructor(e,t,n,r,i,a,o,s,c){fi(i,Yr);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],si.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,_i(n,r)}finally{G.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(Xr.prototype[Symbol.dispose]=Xr.prototype.free);var Zr=class e{static __wrap(t){let n=Object.create(e.prototype);return n.__wbg_ptr=t,ci.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ci.unregister(this),e}free(){let e=this.__destroy_into_raw();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,_i(n,r)}finally{G.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(Zr.prototype[Symbol.dispose]=Zr.prototype.free);var Qr=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,li.unregister(this),e}free(){let e=this.__destroy_into_raw();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],li.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=mi(e[0],e[1]).slice();return G.__wbindgen_free(e[0],e[1]*1,1),t}};Symbol.dispose&&(Qr.prototype[Symbol.dispose]=Qr.prototype.free);var $r=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ui.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 Zr.__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],_i(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,ee=V(f,G.__wbindgen_malloc),te=W,N=G.wasmwalletcustodyseedexportsessionv1_new(p,m,h,g,n,r,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,ee,te);if(N[2])throw U(N[1]);return this.__wbg_ptr=N[0],ui.register(this,this.__wbg_ptr,this),this}};Symbol.dispose&&($r.prototype[Symbol.dispose]=$r.prototype.free);function ei(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),ee=W,te=V(p,G.__wbindgen_malloc),N=W,ne=G.openWalletCustodyEd25519MaterialV1(m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,c,l,u,A,j,M,ee,te,N);if(ne[2])throw U(ne[1]);return Gr.__wrap(ne[0])}function ti(){let e={__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,t){return Error(_i(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;gi().setInt32(e+4,r,!0),gi().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;gi().setBigInt64(e+8,xi(r)?BigInt(0):r,!0),gi().setInt32(e+0,!xi(r),!0)},__wbg___wbindgen_boolean_get_fa956cfa2d1bd751:function(e){let t=e,n=typeof t==`boolean`?t:void 0;return xi(n)?16777215:n?1:0},__wbg___wbindgen_debug_string_c25d447a39f5578f:function(e,t){let n=H(pi(t),G.__wbindgen_malloc,G.__wbindgen_realloc),r=W;gi().setInt32(e+4,r,!0),gi().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;gi().setFloat64(e+8,xi(r)?0:r,!0),gi().setInt32(e+0,!xi(r),!0)},__wbg___wbindgen_string_get_b0ca35b86a603356:function(e,t){let n=t,r=typeof n==`string`?n:void 0;var i=xi(r)?0:H(r,G.__wbindgen_malloc,G.__wbindgen_realloc),a=W;gi().setInt32(e+4,a,!0),gi().setInt32(e+0,i,!0)},__wbg___wbindgen_throw_344f42d3211c4765:function(e,t){throw Error(_i(e,t))},__wbg_call_8a2dd23819f8a60a:function(){return bi(function(e,t){return e.call(t)},arguments)},__wbg_call_a6e5c5dce5018821:function(){return bi(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 bi(function(e,t){e.getRandomValues(t)},arguments)},__wbg_get_507a50627bffa49b:function(e,t){return e[t>>>0]},__wbg_get_78f252d074a84d0b:function(){return bi(function(e,t){return Reflect.get(e,t)},arguments)},__wbg_get_c7eb1f358a7654df:function(){return bi(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 bi(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(mi(e,t),n)},__wbg_randomFillSync_6c25eac9869eb53c:function(){return bi(function(e,t){e.randomFillSync(t)},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return bi(function(){return module.require},arguments)},__wbg_set_6be42768c690e380:function(e,t,n){e[t]=n},__wbg_set_8535240470bf2500:function(){return bi(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 xi(e)?0:di(e)},__wbg_static_accessor_GLOBAL_THIS_8d1badc68b5a74f4:function(){let e=typeof globalThis>`u`?null:globalThis;return xi(e)?0:di(e)},__wbg_static_accessor_SELF_146583524fe1469b:function(){let e=typeof self>`u`?null:self;return xi(e)?0:di(e)},__wbg_static_accessor_WINDOW_f2829a2234d7819e:function(){let e=typeof window>`u`?null:window;return xi(e)?0:di(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 mi(e,t)},__wbindgen_cast_0000000000000004:function(e,t){return _i(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 ni=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmactivatedclientv1_free(e,1)),ri=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmclientsigningsharev1_free(e,1)),ii=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaoclientrootexportsessionv1_free(e,1)),ai=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolaneclientv1_free(e,1)),oi=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaolanesourcev1_free(e,1)),si=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmed25519yaosourcepreservingregistrationsessionv1_free(e,1)),ci=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmexporteded25519seedv1_free(e,1)),li=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmordinaryed25519activationclientmaterialv1_free(e,1)),ui=typeof FinalizationRegistry>`u`?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>G.__wbg_wasmwalletcustodyseedexportsessionv1_free(e,1));function di(e){let t=G.__externref_table_alloc();return G.__wbindgen_externrefs.set(t,e),t}function fi(e,t){if(!(e instanceof t))throw Error(`expected instance of ${t.name}`)}function pi(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+=pi(e[0]));for(let r=1;r<t;r++)n+=`, `+pi(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 mi(e,t){return e>>>=0,yi().subarray(e/1,e/1+t)}let hi=null;function gi(){return(hi===null||hi.buffer.detached===!0||hi.buffer.detached===void 0&&hi.buffer!==G.memory.buffer)&&(hi=new DataView(G.memory.buffer)),hi}function _i(e,t){return wi(e>>>0,t)}let vi=null;function yi(){return(vi===null||vi.byteLength===0)&&(vi=new Uint8Array(G.memory.buffer)),vi}function bi(e,t){try{return e.apply(this,t)}catch(e){let t=di(e);G.__wbindgen_exn_store(t)}}function xi(e){return e==null}function V(e,t){let n=t(e.length*1,1)>>>0;return yi().set(e,n/1),W=e.length,n}function H(e,t,n){if(n===void 0){let n=Ti.encode(e),r=t(n.length,1)>>>0;return yi().subarray(r,r+n.length).set(n),W=n.length,r}let r=e.length,i=t(r,1)>>>0,a=yi(),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=yi().subarray(i+o,i+r),a=Ti.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 Si=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0});Si.decode();let Ci=0;function wi(e,t){return Ci+=t,Ci>=2146435072&&(Si=new TextDecoder(`utf-8`,{ignoreBOM:!0,fatal:!0}),Si.decode(),Ci=t),Si.decode(yi().subarray(e,e+t))}const Ti=new TextEncoder;`encodeInto`in Ti||(Ti.encodeInto=function(e,t){let n=Ti.encode(e);return t.set(n),{read:e.length,written:n.length}});let W=0,G;function Ei(e,t){return G=e.exports,hi=null,vi=null,G.__wbindgen_start(),G}async function Di(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 Oi(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=ti();(typeof e==`string`||typeof Request==`function`&&e instanceof Request||typeof URL==`function`&&e instanceof URL)&&(e=fetch(e));let{instance:n,module:r}=await Di(await e,t);return Ei(n,r)}const ki=`router_ab_ed25519_yao_active_client_v1`;function Ai(e){switch(e.authorization.kind){case`passkey`:return{protocol:e.protocol,authorization:{kind:`passkey`,webauthnAuthentication:Rn(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 ji=Symbol(`router-ab-ed25519-yao-active-client-construction`);function Mi(e,t){if(!(e instanceof Uint8Array)||e.length!==32)throw Error(`${t} must contain 32 bytes`);return e}function Ni(e){return e.authorization.kind===`passkey`}function Pi(e){switch(e.kind){case`wallet_custody_seed_v1`:return $r;case`ed25519_yao_client_root_v1`:return qr;default:return Vi(e.kind)}}function Fi(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(Pi(e.custodyEnvelope))(...t)}function Ii(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 Li(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=Ft(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:Ii(Reflect.get(e,`factorRelease`))}}function Ri(){return{recipientKeyMaterial:Ui(),deriverASealSeed:Ui(),deriverBSealSeed:Ui()}}function zi(e){e.recipientKeyMaterial.fill(0),e.deriverASealSeed.fill(0),e.deriverBSealSeed.fill(0)}function Bi(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 Vi(e){throw Error(`Unhandled Ed25519 Yao Client lifecycle: ${String(e)}`)}function Hi(e){switch(e.kind){case`active`:return e.activated;case`disposed`:throw Error(`Ed25519 Yao Client state is disposed`);default:return Vi(e)}}function Ui(){let e=new Uint8Array(32);do globalThis.crypto.getRandomValues(e);while(e.every(Wi));return e}function Wi(e){return e===0}function Gi(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 Ki(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&&Ct(t.binding.ceremony.material_activation,e.scope.material_activation)&&t.binding.state_epoch===e.state_epoch&&Bi(t.binding.registered_public_key,e.registered_public_key)&&Bi(t.binding.runtime_policy_binding,e.runtime_policy_binding)&&Bi(t.binding.authorization_digest,e.authorization.authorization_digest)}function qi(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 Ji(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:Yi(e.traceContext)}}function Yi(e){if(!e)return gn();if(e.kind!==`router_ab_trace_context_v1`)throw Error(`Router trace context kind is invalid`);let t=Cn(e.value);if(!t.ok)throw Error(t.message);return t.value}async function Xi(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||Zi(e.url);return{ok:!0,value:n,...r?{serverTiming:r}:{}}}let r=C(n)?.code;return{ok:!1,message:JSON.stringify(n),...typeof r==`string`?{code:r}:{}}}function Zi(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=Qi(Reflect.get(n,`serverTiming`));if(r)return r}return null}function Qi(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 $i=class{constructor(e){this.config=Ji(e)}async send(e){let t;try{let n=!(e.kind===`export_admit`||e.kind===`export_execute`)&&this.config.authorization.kind===`bearer`?this.config.authorization.value:null,r=e.kind===`recovery_admit`&&this.config.authorization.kind===`recovery_challenge`?this.config.authorization.challengeId:null,i=this.config.authorization.kind===`cookies`;t=await this.config.fetch.call(globalThis,new URL(e.path,this.config.routerOrigin),{method:`POST`,headers:{...aa(this.config.routing),...n?{authorization:n}:{},...r?{[Lt]:r}:{},"content-type":`application/json`,[_n]: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 Xi(t)}},ea=class{constructor(e){if(e[ji]!==!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=Hi(this.lifecycle);try{return{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:e.nonce.slice(),ciphertext:t.seal_local_material(Mi(e.ownedPasskeyPrfFirst,`passkey PRF.first`),e.binding,e.nonce)}}finally{e.ownedPasskeyPrfFirst.fill(0)}}async createSigningShare(e){let t=Hi(this.lifecycle),n=Mi(e.admittedDigest,`admitted digest`),r=Mi(e.signingWorkerVerifyingShare,`SigningWorker verifying share`);if(!Bi(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:Gi(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 Vi(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 Vi(this.lifecycle)}}};function ta(e){let t=null;try{return t=Gr.import_local_material(Mi(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 ea({[ji]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedPasskeyPrfFirst.fill(0)}}function na(e){let t=null;try{if(t=Gr.import_linked_material(Mi(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||!Bi(t.registered_public_key(),e.metadata.registeredPublicKey)||!Bi(e.publicReceipt.signing_worker_verifying_share,e.metadata.signingWorkerVerifyingShare))throw Error(`linked-device Ed25519 material metadata does not match its receipt`);return new ea({[ji]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedClientScalarShare.fill(0)}}function ra(e){let t=null;try{return t=ei(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 ea({[ji]:!0,metadata:e.metadata,activated:t})}catch(e){throw t?.free(),e}finally{e.ownedFactorSecret.fill(0)}}var ia=class e{constructor(){}static async initializeBundled(){return await Oi(),new e}importLocalMaterial(e){return ta(e)}importLinkedMaterial(e){return na(e)}openCustodyCache(e){return ra(e)}async exportSeed(e){let t=await e.transport.send({kind:`export_admit`,path:Wt,body:Ai({protocol:e.request,authorization:e.authorization})});if(!t.ok)return t;let n;try{n=Li(t.value)}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}if(!Ki(e.request,n.protocol))return{ok:!1,message:`Router export admission does not match the requested exact capability`};let r;if(Ni(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=Ri(),a;try{a=Fi({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),zi(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:It,body:{protocol:t.value}});if(!n.ok)return n;let r=Nt(n.value);if(!r.ok)return{ok:!1,message:r.message};let i=a.complete(JSON.stringify(r.value));try{return{ok:!0,artifact:qi(i.take_export_artifact_json())}}finally{i.free()}}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}finally{a.free()}}};function aa(e){switch(e.kind){case`discovery`:return{};case`direct`:case`regional`:return we(e);default:return Vi(e)}}function oa(e){return{materialActivation:e.materialActivation,lifecycleId:e.scope.lifecycle_id,signingRootVersion:e.scope.root_share_epoch,signingRootId:e.applicationBinding.signing_root_id,signerSetId:e.scope.signer_set_id,thresholdSessionId:e.scope.threshold_session_id,activationTranscriptB64u:A(e.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(e.activeCapabilityBinding))}}function sa(e){if(!en(e.binding))throw Error(`wallet custody cache accepts wallet custody seed envelopes only`);return{bindingJson:tn(e),nonceB64u:e.nonceB64u,ciphertextB64u:e.sealedCustodySecretB64u,aadHashB64u:e.aadHashB64u,ciphertextDigestB64u:e.ciphertextDigestB64u}}function ca(e){let{binding:t}=e.material,{activation:n}=e;return{kind:ki,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:Tt(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 la(e){let t=ca({material:e.material,activation:e.activation});return(await ia.initializeBundled()).openCustodyCache({ownedFactorSecret:e.ownedFactorSecret,envelope:{bindingJson:e.envelope.bindingJson,nonce: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 ua(e){let t=await e.loadCachedMaterial();return t.kind===`found`?{kind:`opened`,activeClient:await la({material:t.material,activation:e.activation,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret})}:(e.ownedFactorSecret.fill(0),{kind:`rejoin_required`})}function da(e){let t=String(e.rpId).trim(),n=String(e.nearAccountId).trim(),r=String(e.nearEd25519SigningKeyId).trim(),i=String(e.relayerKeyId).trim(),a=String(e.credentialIdB64u).trim(),o=ie(e.participantIds),s=Math.floor(Number(e.signerSlot));if(!t||!n||!r||!i||!a||!o||!Number.isSafeInteger(s)||s<1)throw Error(`Passkey Ed25519 sealed restore metadata is incomplete`);return{rpId:t,nearAccountId:n,nearEd25519SigningKeyId:r,relayerKeyId:i,participantIds:[...o],runtimePolicyScope:e.runtimePolicyScope,signerSlot:s,routerAbNormalSigning:e.routerAbNormalSigning,credentialIdB64u:a,materialActivation:e.materialActivation}}async function fa(e){let t=String(e.session.thresholdSessionId||``).trim(),n=String(e.session.walletSessionAuth.walletSessionToken||``).trim(),r=String(e.session.signingLane.identity.signer.account.wallet.walletId||``).trim(),i=String(e.prfFirstB64u||``).trim(),a=Math.floor(Number(e.session.signingWalletSession.expiresAtMs)||0),o=Math.floor(Number(e.session.remainingUses)),s=e.session.signingLane.identity.auth;if(s.kind!==`passkey`)throw Error(`Ed25519 Yao sealed refresh persistence requires a passkey lane`);if(!t||!n||!r||!i||a<=0||!Number.isSafeInteger(o)||o<0)throw Error(`Ed25519 Yao sealed refresh persistence received an invalid session`);let l=e.session.signingLane.identity.signer;if(r!==String(l.account.wallet.walletId)||e.ed25519Restore.nearAccountId!==String(l.account.nearAccountId)||e.ed25519Restore.nearEd25519SigningKeyId!==String(l.nearEd25519SigningKeyId)||e.ed25519Restore.signerSlot!==l.signerSlot||e.ed25519Restore.rpId!==String(s.rpId)||e.ed25519Restore.credentialIdB64u!==s.credentialIdB64u||!c(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 u={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:u})}const pa=`[Registration] wallet timing summary`,ma=new Map(Object.entries({yao_credential_digest:`yaoServerCredentialDigestMs`,yao_d1_admission_read:`yaoServerD1AdmissionReadMs`,yao_router_execution:`yaoServerRouterExecutionMs`,yao_result_reconstruction:`yaoServerResultReconstructionMs`,yao_router_prepare_pair:`yaoServerRouterPreparePairMs`,yao_router_role_execution:`yaoServerRouterRoleExecutionMs`,yao_router_signing_worker_delivery:`yaoServerRouterSigningWorkerDeliveryMs`,ecdsa_respond_d1_claim:`ecdsaRespondD1ClaimMs`,ecdsa_respond_reconcile:`ecdsaRespondReconcileMs`,ecdsa_respond_router:`ecdsaRespondRouterMs`,ecdsa_respond_d1_commit:`ecdsaRespondD1CommitMs`,ecdsa_respond_total:`ecdsaRespondTotalMs`,ecdsa_activate_d1_claim:`ecdsaActivateD1ClaimMs`,ecdsa_activate_reconcile:`ecdsaActivateReconcileMs`,ecdsa_activate_router:`ecdsaActivateRouterMs`,ecdsa_activate_bootstrap:`ecdsaActivateBootstrapMs`,ecdsa_activate_session_provision:`ecdsaActivateSessionProvisionMs`,ecdsa_activate_d1_commit:`ecdsaActivateD1CommitMs`,ecdsa_activate_policy_lookup:`ecdsaActivatePolicyLookupMs`,ecdsa_activate_jwt_mint:`ecdsaActivateJwtMintMs`,ecdsa_activate_total:`ecdsaActivateTotalMs`,ecdsa_rt_authorize:`ecdsaRtAuthorizeMs`,ecdsa_rt_admission:`ecdsaRtAdmissionMs`,ecdsa_rt_derivers:`ecdsaRtDeriversMs`,ecdsa_rt_deriver_a:`ecdsaRtDeriverAMs`,ecdsa_rt_deriver_b:`ecdsaRtDeriverBMs`,ecdsa_rt_completion:`ecdsaRtCompletionMs`,ecdsa_rt_total:`ecdsaRtTotalMs`,ecdsa_rt_act_session:`ecdsaRtActSessionMs`,ecdsa_rt_act_worker:`ecdsaRtActWorkerMs`,ecdsa_rt_act_total:`ecdsaRtActTotalMs`,ecdsa_a_parse:`ecdsaDeriverAParseMs`,ecdsa_a_preload:`ecdsaDeriverAPreloadMs`,ecdsa_a_execute:`ecdsaDeriverAExecuteMs`,ecdsa_a_total:`ecdsaDeriverATotalMs`,ecdsa_b_parse:`ecdsaDeriverBParseMs`,ecdsa_b_preload:`ecdsaDeriverBPreloadMs`,ecdsa_b_execute:`ecdsaDeriverBExecuteMs`,ecdsa_b_total:`ecdsaDeriverBTotalMs`,ecdsa_sw_parse:`ecdsaSigningWorkerParseMs`,ecdsa_sw_activate:`ecdsaSigningWorkerActivateMs`,ecdsa_sw_total:`ecdsaSigningWorkerTotalMs`,near_finalize_authority:`nearFinalizeAuthorityMs`,near_finalize_fingerprint:`nearFinalizeFingerprintMs`,near_finalize_side_effect:`nearFinalizeSideEffectMs`,near_finalize_cleanup:`nearFinalizeCleanupMs`,near_finalize_session_projection:`nearFinalizeSessionProjectionMs`,near_finalize_session_seal:`nearFinalizeSessionSealMs`,near_finalize_total:`nearFinalizeTotalMs`}));function ha(e,t,n){yr()&&console.info(`[Registration] ECDSA Server-Timing header presence`,{leg:t,present:!!n?.trim()}),ga(e,n)}function ga(e,t){if(e)for(let[n,r]of _a(t))e.record(n,r)}function _a(e){if(!e)return[];let t=[];for(let n of e.split(`,`)){let e=n.split(`;`),r=String(e[0]||``).trim(),i=ma.get(r);if(i)for(let n of e.slice(1)){let[e,r]=n.split(`=`);if(String(e||``).trim()!==`dur`)continue;let a=Number(String(r||``).trim());if(!Number.isFinite(a)||a<0)break;t.push([i,a]);break}}return t}function K(e){ya({ceremonyId:e.ceremonyId,stage:e.stage,durationMs:Math.max(0,performance.now()-e.startedAt),outcome:e.outcome})}function va(e,t,n){ya({ceremonyId:e,stage:`session_hydration.${t}`,durationMs:n,outcome:`success`})}function ya(e){if(yr())try{console.info(`[Registration] NEAR timing`,JSON.stringify({event:`near_registration_timing`,ceremonyId:e.ceremonyId,stage:e.stage,durationMs:e.durationMs,outcome:e.outcome}))}catch{}}const ba=[`passkeyAuthConfirmationMs`,`passkeyAuthPrfExtractionMs`,`passkeyAuthCredentialRedactionMs`,`passkeyAuthWorkerReadyMs`,`passkeyAuthWorkerRequestRoundTripMs`,`passkeyAuthWorkerResponseValidationMs`,`passkeyAuthRequestSetupMs`,`passkeyAuthPromptUserMs`,`passkeyAuthPromptElementDefineMs`,`passkeyAuthPromptMountMs`,`passkeyAuthPromptHostFirstUpdateMs`,`passkeyAuthPromptHostInteractiveMs`,`passkeyAuthPromptConfirmEventMs`,`passkeyAuthPromptDecisionWaitMs`,`passkeyAuthCredentialCreateStartMs`,`passkeyAuthCredentialCreateMs`,`passkeyAuthCredentialSerializeMs`,`passkeyAuthDuplicateRetryCount`,`passkeyAuthMainThreadTotalMs`],xa=[`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`],Sa=[`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`ecdsaRegistrationClientCreateMs`,`ecdsaRegistrationGatewayRespondMs`,`ecdsaRegistrationClientProofVerifyMs`,`ecdsaRegistrationGatewayActivateMs`,`ecdsaRegistrationClientActivationFinalizeMs`],Ca=[`ecdsaRegistrationPersistenceMs`,`ecdsaRegistrationSessionFinalizeMs`,`ecdsaRegistrationLocalRecordPersistenceMs`,`ecdsaRegistrationTargetCount`,`ecdsaRegistrationClientFinalizeMs`,`ecdsaRegistrationClientMaterialStoreMs`,`ecdsaRegistrationServerBootstrapMs`,`ecdsaRegistrationPasskeyBootstrapStoreMs`,`ecdsaRegistrationRoleLocalRecordPersistenceMs`,`ecdsaRegistrationWarmSessionHydrationMs`,`ecdsaRegistrationWarmSessionWorkerReadyMs`,`ecdsaRegistrationWarmSessionWorkerPutMs`,`ecdsaRegistrationWarmSessionSealedRecordPersistMs`,`ecdsaRegistrationWarmSessionSealResolveTransportMs`,`ecdsaRegistrationWarmSessionSealExistingRecordReadMs`,`ecdsaRegistrationWarmSessionSealPolicyReadMs`,`ecdsaRegistrationWarmSessionSealApplyServerSealMs`,`ecdsaRegistrationWarmSessionSealApplyRuntimeSetupMs`,`ecdsaRegistrationWarmSessionSealApplyClientSealMs`,`ecdsaRegistrationWarmSessionSealApplyServerRouteMs`,`ecdsaRegistrationWarmSessionSealApplyClientUnsealMs`,`ecdsaRegistrationWarmSessionSealApplyPolicyUpdateMs`,`ecdsaRegistrationWarmSessionSealRegisterMs`,`ecdsaRegistrationWarmSessionSealVerifyReadMs`,`ecdsaRegistrationEmailOtpSessionCommitMs`],wa=[...Sa,...Ca],Ta=[`registrationWarmupMs`,`registrationWarmupWaitMs`,`registrationWarmupAuthenticatedWalletStateMs`,`registrationWarmupNoncePrefetchMs`,`registrationWarmupKeyMaterialReadMs`,`registrationWarmupUiConfirmPrewarmMs`,`registrationWarmupEmailOtpWorkerPrewarmMs`,`registrationWarmupEmailOtpYaoWasmInitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,...ba,`emailOtpEnrollmentMaterialMs`,...xa,`yaoBranchTotalMs`,`yaoAdmissionMs`,`yaoClientSessionCreateMs`,`yaoClientCompletionMs`,`yaoServerCredentialDigestMs`,`yaoServerD1AdmissionReadMs`,`yaoServerRouterExecutionMs`,`yaoServerResultReconstructionMs`,`yaoServerRouterPreparePairMs`,`yaoServerRouterRoleExecutionMs`,`yaoServerRouterSigningWorkerDeliveryMs`,`ecdsaRespondD1ClaimMs`,`ecdsaRespondReconcileMs`,`ecdsaRespondRouterMs`,`ecdsaRespondD1CommitMs`,`ecdsaRespondTotalMs`,`ecdsaActivateD1ClaimMs`,`ecdsaActivateReconcileMs`,`ecdsaActivateRouterMs`,`ecdsaActivateBootstrapMs`,`ecdsaActivateSessionProvisionMs`,`ecdsaActivateD1CommitMs`,`ecdsaActivatePolicyLookupMs`,`ecdsaActivateJwtMintMs`,`ecdsaActivateTotalMs`,`ecdsaRtAuthorizeMs`,`ecdsaRtAdmissionMs`,`ecdsaRtDeriversMs`,`ecdsaRtDeriverAMs`,`ecdsaRtDeriverBMs`,`ecdsaRtCompletionMs`,`ecdsaRtTotalMs`,`ecdsaRtActSessionMs`,`ecdsaRtActWorkerMs`,`ecdsaRtActTotalMs`,`ecdsaDeriverAParseMs`,`ecdsaDeriverAPreloadMs`,`ecdsaDeriverAExecuteMs`,`ecdsaDeriverATotalMs`,`ecdsaDeriverBParseMs`,`ecdsaDeriverBPreloadMs`,`ecdsaDeriverBExecuteMs`,`ecdsaDeriverBTotalMs`,`ecdsaSigningWorkerParseMs`,`ecdsaSigningWorkerActivateMs`,`ecdsaSigningWorkerTotalMs`,`nearFinalizeAuthorityMs`,`nearFinalizeFingerprintMs`,`nearFinalizeSideEffectMs`,`nearFinalizeCleanupMs`,`nearFinalizeSessionProjectionMs`,`nearFinalizeSessionSealMs`,`nearFinalizeTotalMs`,`walletRegisterStartMs`,...Sa,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,...Ca];function q(e){throw Error(`Unexpected registration timing branch: ${String(e)}`)}function Ea(e){switch(e.kind){case`near_ed25519`:return`near_ed25519`;case`evm_family_ecdsa`:return`evm_family_ecdsa`;default:return q(e)}}function Da(e){return{kind:`signer_set`,branches:e.branches.map(Ea)}}function Oa(e,t){return e.branches.includes(t)}function ka(e){return Math.max(0,Math.round(performance.now()-e))}function Aa(e){switch(e){case`registrationIntentLoadMs`:case`registrationIntentDigestMs`:case`registrationIntentConsumeMs`:case`registrationPreparationPersistMs`:case`registrationPreparationLoadMs`:case`registrationPreparationConsumeMs`:case`registrationPreparationScopeCheckMs`:case`registrationAuthorityVerifyMs`:case`registrationEcdsaPrepareMs`:case`registrationCeremonyPersistMs`:case`registerPrepareTotalMs`:case`registerStartTotalMs`:case`registrationEcdsaRespondMs`:case`registrationFinalizeReplayLoadMs`:case`registrationCeremonyLoadMs`:case`registrationEcdsaBootstrapVerifyMs`:case`sponsoredNearAccountCreateMs`:case`registrationKeygenMs`:case`registrationEmailOtpEnrollmentPlanMs`:case`relaySessionMintMs`:case`relayGoogleEmailOtpActivationPlanMs`:case`relayPersistenceMs`:case`registrationFinalizeReplayCacheMs`:case`registerFinalizeTotalMs`:return e;default:return null}}function ja(e){if(!b(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(!b(n))continue;let e=Aa(n.name),r=Number(n.durationMs);!e||!Number.isFinite(r)||r<0||t.push({name:e,durationMs:r})}return{kind:`wallet_registration_route_diagnostics_v1`,route:e.route,entries:t}}function Ma(e){return{kind:e.kind,route:e.route,entries:e.entries.map(Na)}}function Na(e){return{name:e.name,durationMs:e.durationMs}}function Pa(e,t){let n={};for(let r of e)n[r]=t[r];return n}function Fa(e){let t={};for(let n of e)t[n]=0;return t}function Ia(e){switch(e.authMethod){case`passkey`:return{kind:`passkey`,authProofMs:e.buckets.authProofMs,...Pa(ba,e.buckets),emailOtpEnrollmentMaterialMs:0,emailOtpRecoveryCodeBackupMs:0};case`email_otp`:return{kind:`email_otp`,authProofMs:e.buckets.authProofMs,...Fa(ba),emailOtpEnrollmentMaterialMs:e.buckets.emailOtpEnrollmentMaterialMs,emailOtpRecoveryCodeBackupMs:e.buckets.emailOtpRecoveryCodeBackupMs};default:return q(e.authMethod)}}function La(e){return Oa(e.signerSet,`near_ed25519`)?{kind:`ed25519_yao_enabled`,...Pa(xa,e.buckets)}:{kind:`ed25519_disabled`,...Fa(xa)}}function Ra(e){return Oa(e.signerSet,`evm_family_ecdsa`)?{kind:`ecdsa_enabled`,...Pa(wa,e.buckets)}:{kind:`ecdsa_disabled`,...Fa(wa)}}const za=[`registrationWarmupWaitMs`,`managedRegistrationGrantMs`,`registrationIntentMs`,`registrationIntentDigestMs`,`authProofMs`,`emailOtpEnrollmentMaterialMs`,`emailOtpYaoEnrollmentMaterialWaitMs`,`emailOtpYaoWorkerRegistrationMs`,`emailOtpYaoTotalMs`,`walletRegisterStartMs`,`ecdsaClientBootstrapMs`,`ecdsaRegistrationTotalMs`,`emailOtpRecoveryCodeBackupMs`,`walletRegisterFinalizeMs`,`ecdsaRegistrationPersistenceMs`];function Ba(e){return e.startsWith(`registrationWarmup`)?`warmup`:e.startsWith(`passkeyAuth`)||e===`authProofMs`?`auth`:e.includes(`Yao`)||e.includes(`yao`)?`ed25519_yao`:e.includes(`ecdsa`)?`ecdsa`:`registration`}function Va(e){return{name:e.name,kind:e.kind,startOffsetMs:e.startOffsetMs,endOffsetMs:e.endOffsetMs}}function Ha(e,t){let n=t.map(t=>({start:Math.max(0,Math.min(e,t.startOffsetMs)),end:Math.max(0,Math.min(e,t.endOffsetMs))})).filter(e=>e.end>e.start).sort((e,t)=>e.start-t.start||e.end-t.end),r=0,i=0,a=0;for(let e of n){if(a<=i){i=e.start,a=e.end;continue}if(e.start>a){r+=a-i,i=e.start,a=e.end;continue}a=Math.max(a,e.end)}return a>i?r+a-i:r}function Ua(e){let t=za.map(t=>({name:t,durationMs:e.buckets[t]})),n=t.reduce((e,t)=>e+Math.max(0,t.durationMs),0),r=t.filter(e=>e.durationMs>0).sort((e,t)=>t.durationMs===e.durationMs?e.name.localeCompare(t.name):t.durationMs-e.durationMs).slice(0,5),i=Ha(e.totalElapsedMs,e.spans);return{kind:`registration_critical_path_summary_v2`,totalElapsedMs:e.totalElapsedMs,measuredWorkMs:n,spanUnionMs:i,spanCoverageRatio:e.totalElapsedMs>0?Math.min(1,i/e.totalElapsedMs):1,unattributedElapsedMs:Math.max(0,e.totalElapsedMs-i),overlappedOrBackgroundMs:Math.max(0,n-e.totalElapsedMs),topBuckets:r,spans:e.spans.map(Va)}}function Wa(e){let t=Pa(Ta,e.buckets);return{...t,auth:Ia({authMethod:e.authMethod,buckets:t}),ed25519:La({signerSet:e.signerSet,buckets:t}),ecdsa:Ra({signerSet:e.signerSet,buckets:t}),emailOtpYaoPrewarm:{...e.emailOtpYaoPrewarm}}}var Ga=class{constructor(e){this.startedAt=e,this.nearStageStartedAt=e,this.buckets=Fa(Ta),this.relayDiagnostics=[],this.spans=[],this.emailOtpYaoPrewarm=Ka()}markNearStage(e,t){let n=performance.now();ya({ceremonyId:e,stage:t,durationMs:n-this.nearStageStartedAt,outcome:`success`}),this.nearStageStartedAt=n}async measure(e,t){let n=performance.now();try{return await t()}finally{this.buckets[e]=ka(n),this.recordSpan(e,n,performance.now())}}record(e,t){let n=Math.max(0,Math.round(t));this.buckets[e]+=n}snapshot(){return Pa(Ta,this.buckets)}spansSnapshot(){return this.spans.map(Va)}recordSpan(e,t,n){this.spans.push({name:e,kind:Ba(e),startOffsetMs:Math.max(0,Math.round(t-this.startedAt)),endOffsetMs:Math.max(0,Math.round(n-this.startedAt))})}captureRouteDiagnostics(e){let t=ja(e);t&&this.relayDiagnostics.push(t)}captureWarmupDiagnostics(e){this.buckets.registrationWarmupAuthenticatedWalletStateMs=e.authenticatedWalletStateMs,this.buckets.registrationWarmupNoncePrefetchMs=e.noncePrefetchMs,this.buckets.registrationWarmupKeyMaterialReadMs=e.keyMaterialReadMs,this.buckets.registrationWarmupUiConfirmPrewarmMs=e.uiConfirmPrewarmMs,this.buckets.registrationWarmupEmailOtpWorkerPrewarmMs=e.emailOtpWorkerPrewarmMs,this.buckets.registrationWarmupEmailOtpYaoWasmInitMs=e.emailOtpYaoWasmInitMs,this.emailOtpYaoPrewarm={...e.emailOtpYaoPrewarm}}emailOtpYaoPrewarmSnapshot(){return{...this.emailOtpYaoPrewarm}}capturePasskeyAuthDiagnostics(e){this.buckets.passkeyAuthConfirmationMs=e.requestConfirmationMs,this.buckets.passkeyAuthPrfExtractionMs=e.prfExtractionMs,this.buckets.passkeyAuthCredentialRedactionMs=e.credentialRedactionMs,this.buckets.passkeyAuthWorkerReadyMs=e.confirmationWorkerReadyMs,this.buckets.passkeyAuthWorkerRequestRoundTripMs=e.confirmationWorkerRequestRoundTripMs,this.buckets.passkeyAuthWorkerResponseValidationMs=e.confirmationWorkerResponseValidationMs,this.buckets.passkeyAuthRequestSetupMs=e.confirmationRequestSetupMs,this.buckets.passkeyAuthPromptUserMs=e.confirmationPromptUserMs,this.buckets.passkeyAuthPromptElementDefineMs=e.confirmationPromptElementDefineMs,this.buckets.passkeyAuthPromptMountMs=e.confirmationPromptMountMs,this.buckets.passkeyAuthPromptHostFirstUpdateMs=e.confirmationPromptHostFirstUpdateMs,this.buckets.passkeyAuthPromptHostInteractiveMs=e.confirmationPromptHostInteractiveMs,this.buckets.passkeyAuthPromptConfirmEventMs=e.confirmationPromptConfirmEventMs,this.buckets.passkeyAuthPromptDecisionWaitMs=e.confirmationPromptDecisionWaitMs,this.buckets.passkeyAuthCredentialCreateStartMs=e.confirmationCredentialCreateStartMs,this.buckets.passkeyAuthCredentialCreateMs=e.confirmationCredentialCreateMs,this.buckets.passkeyAuthCredentialSerializeMs=e.confirmationCredentialSerializeMs,this.buckets.passkeyAuthDuplicateRetryCount=e.confirmationDuplicateRetryCount,this.buckets.passkeyAuthMainThreadTotalMs=e.confirmationMainThreadTotalMs}routeDiagnosticsSnapshot(){return this.relayDiagnostics.map(Ma)}totalMs(){return ka(this.startedAt)}};function Ka(){return{kind:`not_requested`,elapsedMs:0,workerPrewarmMs:0,yaoWasmInitMs:0}}function qa(e){let t=e.recorder.totalMs(),n=e.recorder.snapshot();return{kind:`registration_timing_summary_v2`,status:`succeeded`,authMethod:e.authMethod,signerSet:e.signerSet,totalMs:t,criticalPath:Ua({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Wa({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function Ja(e){let t=e.recorder.totalMs(),n=e.recorder.snapshot();return{kind:`registration_timing_summary_v2`,status:`failed`,authMethod:e.authMethod,signerSet:e.signerSet,totalMs:t,criticalPath:Ua({totalElapsedMs:t,buckets:n,spans:e.recorder.spansSnapshot()}),errorCode:e.errorCode,relayDiagnostics:e.recorder.routeDiagnosticsSnapshot(),timings:Wa({authMethod:e.authMethod,signerSet:e.signerSet,buckets:n,emailOtpYaoPrewarm:e.recorder.emailOtpYaoPrewarmSnapshot()})}}function Ya(e){yr()&&(console.info(pa,e),console.info(`${pa} ${JSON.stringify(e)}`))}function Xa(e){let t={event:`seams_registration_timing_span_v1`,span:e.span,operation:`registration`,outcome:e.outcome,duration_ms:Math.max(0,Math.round(e.durationMs)),trace_id:e.traceContext.value};try{e.callback?.(t)}catch{}}function J(e){return{kind:`unavailable`,reason:e}}function Za(e){let t=e.selected;if(t.kind!==`resolved`)switch(t.kind){case`missing_selection`:return J(`selected_authority_missing`);case`missing_auth_method`:case`missing_authority`:case`integrity_error`:return J(`selected_authority_invalid`);default:return t}return t.selection.walletId!==e.walletId||t.authMethod.walletId!==e.walletId||t.authority.walletId!==e.walletId||t.selection.walletAuthMethodId!==t.authMethod.walletAuthMethodId||t.authMethod.walletAuthorityId!==t.authority.authorityId?J(`authority_identity_mismatch`):t.selection.lockState===`unlocked`?t.authMethod.status===`active`?t.authority.state===`active`?t.authMethod.kind===e.authMethod?{authority:t.authority,authMethod:t.authMethod}:J(`auth_method_mismatch`):J(`authority_inactive`):J(`auth_method_inactive`):J(`wallet_locked`)}function Qa(e){let t=e.authority.signerActivations;return e.keyFamily===`ed25519`?t.ed25519?.materialActivation??null:t.ecdsa?.materialActivation??null}function $a(e){return e.session.capabilitySubjects.filter(t=>t.kind===`sign`&&t.keyFamily===e.keyFamily&&c(t.materialActivation,e.materialActivation)).length===1}function eo(e){return rr(e)?{keyFamily:`ecdsa_secp256k1`,materialActivation:e.signer.materialActivation}:{keyFamily:`ed25519`}}async function to(e){let{input:t,ports:n}=e,r;try{r=await n.resolveSelectedWalletAuthority(String(t.walletId))}catch{return J(`persistence_unavailable`)}let i=Za({selected:r,walletId:t.walletId,authMethod:t.authMethod});if(`kind`in i)return i;let a=Qa({authority:i.authority,keyFamily:t.requiredSigningSubject.keyFamily});if(!a)return J(`signer_material_missing`);if(t.requiredSigningSubject.keyFamily===`ecdsa_secp256k1`&&!c(t.requiredSigningSubject.materialActivation,a))return J(`signer_material_mismatch`);let o;try{o=await n.readExactWithOperationCredential({walletId:t.walletId,authorityId:i.authority.authorityId,authMethodId:i.authMethod.walletAuthMethodId})}catch{return J(`persistence_unavailable`)}switch(o.kind){case`found`:break;case`missing`:return J(`wallet_session_missing`);case`upgrade_required`:return J(`wallet_session_upgrade_required`)}let s=o.record,l=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||l.walletSessionId!==t.walletSessionId||l.token.trim().length===0?J(`wallet_session_identity_mismatch`):t.expiry.kind===`unexpired`&&s.expiresAtMs<=t.expiry.nowMs?J(`wallet_session_expired`):t.expiry.kind===`expired`&&s.expiresAtMs>t.expiry.nowMs?J(`wallet_session_not_expired`):$a({session:s,keyFamily:t.requiredSigningSubject.keyFamily,materialActivation:a})?{kind:`resolved`,resolved:{authMethod:i.authMethod,session:s,operationCredential:l,walletSessionId:l.walletSessionId,materialActivation:a}}:J(`wallet_session_capability_mismatch`)}function no(e){return String(e||``).trim()}function ro(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:0}function io(e){let t=Math.floor(Number(e));return Number.isSafeInteger(t)&&t>=0?t:null}function ao(e){return e.expiresAtMs<=e.nowMs?{kind:`expired`}:e.remainingUses<=0?{kind:`exhausted`}:null}function oo(e,t){let n=no(e);return n?{kind:`wallet_session_opaque`,walletSessionToken:n,credential:{kind:`wallet_session_opaque`,walletSessionToken:n,home:t}}:null}function so(e){let t=oo(no(e.walletSessionToken),e.home);if(!t)return{ok:!1,reason:`missing_wallet_session_token`};let n=no(e.walletId),r=no(e.nearAccountId),i=no(e.nearEd25519SigningKeyId);if(!n||!r||!i)return{ok:!1,reason:`wallet_binding_mismatch`};let a=ge(e.walletSessionId),o=_e(e.authorizationId),s=me(e.quotaId),c=f(e.thresholdSessionId);if(!a.ok||!o.ok)return{ok:!1,reason:`missing_session_identity`};if(!s.ok)return{ok:!1,reason:`missing_quota_id`};if(!c.ok)return{ok:!1,reason:`missing_threshold_session_id`};let l=io(e.nowMs),u=ro(e.remainingUses),d=ro(e.expiresAtMs);if(l==null||!Number.isSafeInteger(e.remainingUses)||!Number.isSafeInteger(e.expiresAtMs)||e.remainingUses<0||e.expiresAtMs<=0)return{ok:!1,reason:`invalid_budget`};let p=ao({remainingUses:Math.max(0,Math.floor(e.remainingUses)),expiresAtMs:Math.max(0,Math.floor(e.expiresAtMs)),nowMs:l});if(p?.kind===`expired`)return{ok:!1,reason:`expired`};if(p?.kind===`exhausted`)return{ok:!1,reason:`exhausted`};let m;try{m=P(e.runtimePolicyScope)}catch{return{ok:!1,reason:`missing_signing_root`}}return m.signingRootId!==no(e.signingRootId)||m.signingRootVersion!==no(e.signingRootVersion)?{ok:!1,reason:`signing_root_mismatch`}:{ok:!0,value:{curve:`ed25519`,auth:t,walletSessionId:a.value,authorizationId:o.value,quotaId:s.value,thresholdSessionId:c.value,remainingUses:u,expiresAtMs:d,runtimePolicyScope:e.runtimePolicyScope,signingRootId:m.signingRootId,signingRootVersion:no(m.signingRootVersion),routerAbNormalSigning:e.routerAbNormalSigning}}}const co=Je.signingSessionSeals,lo=Je.signingSessionRestoreLeases,uo=[Ye.ed25519ThresholdSessionId,Ye.ecdsaThresholdSessionId];function fo(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error||Error(`IndexedDB request failed`))})}function po(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onabort=()=>n(e.error||Error(`IndexedDB transaction aborted`)),e.onerror=()=>n(e.error||Error(`IndexedDB transaction failed`))})}async function mo(){if(Ze.isDisabled())return null;try{return Xe(await Ze.getDB())}catch{return null}}function ho(e,t){return new Promise((n,r)=>{let i=[],a=e.openCursor(t);a.onsuccess=()=>{let e=a.result;if(!e){n(i);return}i.push({primaryKey:e.primaryKey,value:e.value}),e.continue()},a.onerror=()=>r(a.error||Error(`IndexedDB cursor failed`))})}function go(e){return new Promise((t,n)=>{let r=[],i=e.openCursor();i.onsuccess=()=>{let e=i.result;if(!e){t(r);return}r.push({primaryKey:e.primaryKey,value:e.value}),e.continue()},i.onerror=()=>n(i.error||Error(`IndexedDB cursor failed`))})}async function _o(e,t){let n=new Map;for(let r of uo)try{let i=await ho(e.index(r),t);for(let e of i)n.set(String(e.primaryKey),e)}catch{}return n.size?[...n.values()]:await go(e).catch(()=>[])}const Y=new class{async collectAllRawSealedRecordEntries(){let e=await mo();if(!e)return[];let t=e.transaction(co,`readonly`),n=await go(t.objectStore(co));return await po(t).catch(()=>void 0),n}async collectRawSealedRecordEntriesByThresholdSessionId(e){let t=await mo();if(!t)return[];let n=t.transaction(co,`readonly`),r=await _o(n.objectStore(co),e);return await po(n).catch(()=>void 0),r}async replaceSealedRecord(e){let t=await mo();if(!t)return;let n=t.transaction(co,`readwrite`),r=n.objectStore(co);for(let t of e.staleStoreKeys)r.delete(t);r.put(e.row),await po(n)}async replaceSealedRecordAndDeleteRestoreLease(e){let t=await mo();if(!t)return!1;let n=t.transaction([co,lo],`readwrite`),r=n.objectStore(co);for(let t of e.staleStoreKeys)r.delete(t);return r.put(e.row),n.objectStore(lo).delete(e.restoreLeaseKey),await po(n),!0}async deleteSealedRecords(e){if(!e.length)return;let t=await mo();if(!t)return;let n=t.transaction(co,`readwrite`),r=n.objectStore(co);for(let t of e)r.delete(t);await po(n).catch(()=>void 0)}async deleteRestoreLease(e){let t=await mo();if(!t)return;let n=t.transaction(lo,`readwrite`);n.objectStore(lo).delete(e),await po(n).catch(()=>void 0)}async deleteRestoreLeaseIf(e){let t=await mo();if(!t)return;let n=t.transaction(lo,`readwrite`),r=n.objectStore(lo),i=await fo(r.get(e.leaseKey));e.shouldDelete(i)&&r.delete(e.leaseKey),await po(n).catch(()=>void 0)}async withRestoreLeaseTransaction(e,t){let n=await mo();if(!n)return null;try{let r=n.transaction([co,lo],`readwrite`),i=r.objectStore(co),a=r.objectStore(lo),o=await _o(i,e),s=!1,c=await t({entries:o,getRawRestoreLease:async e=>await fo(a.get(e)),putRestoreLease:e=>a.put(e),abort:()=>{s=!0}});return s?(r.abort(),c):(await po(r),c)}catch{return null}}};function vo(e){throw Error(`Unhandled durable sealed-session identity: ${String(e)}`)}function yo(e){return{kind:`delete_durable_sealed_session`,durableRecord:e.durableRecord,deleteReason:e.deleteReason,preserveResolvedIdentity:e.preserveResolvedIdentity}}function bo(e){switch(e.curve){case`ed25519`:return{authMethod:e.authMethod,curve:`ed25519`};case`ecdsa`:return{authMethod:e.authMethod,curve:`ecdsa`,chainTarget:e.chainTarget};default:return vo(e)}}function xo(e){return[`ecdsa-material-v2`,e.walletId,e.authMethod,ze(e.chainTarget),e.materialActivation.activationId,e.materialActivation.capability,e.materialActivation.materialOwner,e.materialActivation.keyBinding,e.materialActivation.lifecycleBinding,e.materialActivation.signingWorker].map(e=>encodeURIComponent(String(e))).join(`:`)}const So=`ecdsa_inactive_sealed_material_v1`,Co=`sealed_record`;function wo(e){let t=C(e)??{},n=p(t.ed25519),r=p(t.ecdsa);return{...n?{ed25519:n}:{},...r?{ecdsa:r}:{}}}function To(e){return wo((C(e)??{}).thresholdSessionIds)}function Eo(e){let t=C(e);if(!t)return!1;let n=[`signing`,`Grant`,`Id`].join(``),r=[`signing`,`grant`,`id`].join(`_`);return Object.prototype.hasOwnProperty.call(t,n)||Object.prototype.hasOwnProperty.call(t,r)}function Do(e){let t=String(e||``).trim();return t===`ed25519`||t===`ecdsa`?t:void 0}function Oo(e){let t=C(e);return t&&Co in t?t[Co]:e}function ko(e){let t=e.ecdsaRestore?.chainTarget,n=p(e.thresholdSessionIds.ecdsa),r=p(e.thresholdSessionIds.ed25519);return{store_key:e.storeKey,wallet_id:e.walletId,auth_method:e.authMethod,curve:e.curve,signing_root_id:p(`signingRootId`in e?e.signingRootId:void 0),signing_root_version:p(`signingRootVersion`in e?e.signingRootVersion:void 0),ed25519_threshold_session_id:r,ecdsa_threshold_session_id:n,threshold_session_id:n||r,key_handle:p(e.ecdsaRestore?.keyHandle),chain_target_key:t?ze(t):void 0,expires_at_ms:e.expiresAtMs,updated_at:e.updatedAtMs,[Co]:e}}function Ao(e){return{store_key:e.storeKey,wallet_id:e.walletId,auth_method:e.authMethod,curve:e.curve,key_handle:e.ecdsaRestore.keyHandle,chain_target_key:ze(e.ecdsaRestore.chainTarget),updated_at:e.updatedAtMs,[Co]:e}}function jo(e){return ko(e)}function Mo(e){let t=String(e||``).trim().toLowerCase();return/^0x[0-9a-f]{40}$/.test(t)?t:void 0}function No(e){return e.curve?e.curve:e.thresholdSessionIds.ecdsa?`ecdsa`:e.thresholdSessionIds.ed25519?`ed25519`:null}function Po(e){try{return ct(e)}catch{return null}}function Fo(e){switch(e){case`login`:case`registration`:case`manual-bootstrap`:case`email_otp`:return e;default:return null}}function Io(e){try{let t=P(F(e)),n=p(t.signingRootId),r=p(t.signingRootVersion);return n&&r?{signingRootId:n,signingRootVersion:r}:null}catch{return null}}function Lo(e){let t=C(e);if(!t)return;let n=null;try{n=Le(C(t.chainTarget)??{})}catch{n=null}let r=Fo(t.source),i=xt(t.authority),a=p(t.rpId),o=t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?t.runtimePolicyScope:void 0,s=Io(o),c=p(t.signingRootId),l=p(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=p(t.credentialIdB64u),m=null;try{m=un(t.roleLocalMaterialRef)}catch{m=null}let h=ut(t.emailOtpAuthority),g=t.provider===`google`||t.provider===`email`?t.provider:null,_=p(t.providerSubjectId),v=p(t.emailHashHex),y=p(t.keyHandle),b=p(t.ecdsaThresholdKeyId),x=Mo(t.ethereumAddress),S=p(t.relayerKeyId),w=p(t.thresholdEcdsaPublicKeyB64u),T=Po(t.routerAbEcdsaDerivationNormalSigning),E=null;try{E=wt(t.publicCapability)}catch{E=null}let D=Go(t.participantIds);if(!n||!r||!u||!d||!y||!x||!S||!T||!E||!D.length)return;let O=f&&a&&m&&i&&r!==`email_otp`?{source:r,authority:i,roleLocalMaterialRef:m,rpId:a,credentialIdB64u:f}:_&&g&&v&&m&&i&&h&&r===`email_otp`?{source:r,provider:g,providerSubjectId:_,emailHashHex:v,authority:i,emailOtpAuthority:h,roleLocalMaterialRef:m}:null;if(!O)return;let k=p(t.clientVerifyingShareB64u);return{chainTarget:n,signingRootId:u,signingRootVersion:d,...O,keyHandle:y,...b?{ecdsaThresholdKeyId:b}:{},ethereumAddress:x,relayerKeyId:S,...k?{clientVerifyingShareB64u:k}:{},...w?{thresholdEcdsaPublicKeyB64u:w}:{},participantIds:D,routerAbEcdsaDerivationNormalSigning:T,publicCapability:E,...o?{runtimePolicyScope:o}:{}}}function Ro(e){let t=C(e);if(!t)return;let n=p(t.nearAccountId),r=p(t.nearEd25519SigningKeyId),i=p(t.rpId),a=p(t.credentialIdB64u),o=p(t.providerSubjectId),s=t.provider===`google`||t.provider===`email`?t.provider:null,c=p(t.emailHashHex),l=p(t.authSubjectId),u=p(t.relayerKeyId),f=Go(t.participantIds),m=d(t.signerSlot),h=I(t.routerAbNormalSigning),_=g(t.materialActivation),v=a&&!o&&_.ok?{credentialIdB64u:a,materialActivation:_.value}:s&&o&&c&&!a&&_.ok?{provider:s,providerSubjectId:o,emailHashHex:c,materialActivation:_.value}:null;if(!(!n||!r||!i||!u||!f.length||m==null||m<=0||!h||!v||l))return{nearAccountId:n,nearEd25519SigningKeyId:r,rpId:i,...v,relayerKeyId:u,participantIds:f,...t.runtimePolicyScope&&typeof t.runtimePolicyScope==`object`?{runtimePolicyScope:t.runtimePolicyScope}:{},signerSlot:m,routerAbNormalSigning:h}}function zo(e){let t=e.restore.materialActivation;return[`ed25519-material-v2`,e.walletId,e.authMethod,`ed25519`,t.activationId,t.capability,t.materialOwner,t.keyBinding,t.lifecycleBinding,t.signingWorker].map(Vo).join(`:`)}function Bo(e){let t=e.restore.roleLocalMaterialRef;return[`inactive-material`,e.walletId,e.authMethod,`ecdsa`,ze(e.restore.chainTarget),t.materialActivation.activationId].map(Vo).join(`:`)}function Vo(e){return encodeURIComponent(String(e||``).trim())}function Ho(e){let t=String(e||``).trim();return t===`passkey`||t===`email_otp`?t:void 0}function Uo(e){let t=C(e);return!!(p(t?.subjectId)||p(t?.userId))}function Wo(e){let t=C(e);return!!(p(t?.signingRootId)||p(t?.signingRootVersion))}function Go(e){return Array.isArray(e)?e.map(e=>Math.floor(Number(e))).filter(e=>Number.isFinite(e)&&e>0):[]}function Ko(e){return{authMethod:p(e?.authMethod)||null,curve:p(e?.curve)||null,storeKey:p(e?.storeKey)||null,walletId:p(e?.walletId)||null,thresholdSessionIds:To(e),hasEcdsaRestore:!!C(e?.ecdsaRestore),hasEd25519Restore:!!C(e?.ed25519Restore),issuedAtMs:d(e?.issuedAtMs),expiresAtMs:d(e?.expiresAtMs),remainingUses:d(e?.remainingUses),updatedAtMs:d(e?.updatedAtMs)}}function X(e,t,n){return{kind:e,storeKey:p(t?.storeKey)||null,walletId:p(t?.walletId)||null,reason:n,safeSummary:Ko(t)}}function qo(e){return{v:2,alg:le,storageScope:ce,authMethod:e,secretKind:ue}}function Jo(e){e=Oo(e);let t=C(e);if(!t)return X(`malformed`,null,`invalid_payload`);if(Eo(t))return X(`delete_required`,t,`invalid_identity`);if(t.recordKind===`ecdsa_reauth_anchor_v1`)return X(`delete_required`,t,`invalid_header`);if(t.recordKind===So){let e=Zo(t);return e?{kind:`ecdsa_inactive_material`,record:e}:X(`malformed`,t,`invalid_identity`)}if(Number(t.v)===1)return X(`delete_required`,t,`invalid_header`);if(Number(t.v)!==2||String(t.alg||``).trim()!==`shamir3pass-v2`||String(t.storageScope||``).trim()!==`iframe_origin_indexeddb`||String(t.secretKind||``).trim()!==`signing_session_secret32`)return X(`malformed`,t,`invalid_header`);let n=String(t.authMethod||``).trim(),r=To(t),i=p(t.sealedSecretB64u),a=Do(t.curve),o=p(t.subjectId),s=p(t.userId),c=p(t.walletId),l=p(t.signingRootId),u=p(t.signingRootVersion),f=u||(l?`default`:null),m=p(t.relayerUrl),h=p(t.keyVersion),g=p(t.groupId),_=d(t.issuedAtMs),v=d(t.expiresAtMs),y=d(t.remainingUses),b=d(t.updatedAtMs);if(!i||!h||g!==`rfc2409-group2`||n!==`passkey`&&n!==`email_otp`||!r.ed25519&&!r.ecdsa||!c)return X(`malformed`,t,`invalid_identity`);let x=No({curve:a,thresholdSessionIds:r});if(!x||_==null||_<=0||v==null||v<=0||y==null||y<0||b==null||b<=0)return X(`malformed`,t,`invalid_identity`);let S=C(t.ecdsaRestore),w=C(t.ed25519Restore),T=Lo(t.ecdsaRestore),E=Ro(t.ed25519Restore);if(x===`ecdsa`){if(!r.ecdsa)return X(`malformed`,t,`invalid_identity`);if(o||s||l||u)return X(`delete_required`,t,`invalid_identity`);if(!S||!m)return X(`rebuild_required`,t,`missing_restore_metadata`);if(!Go(S.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!T)return X(`rebuild_required`,t,`missing_restore_metadata`);let e=xo({walletId:c,authMethod:n,chainTarget:T.chainTarget,materialActivation:T.roleLocalMaterialRef.materialActivation}),a=p(t.storeKey);return a&&a!==e?X(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...qo(n),storeKey:e,thresholdSessionIds:{...r.ed25519?{ed25519:r.ed25519}:{},ecdsa:r.ecdsa},sealedSecretB64u:i,curve:`ecdsa`,walletId:c,relayerUrl:m,keyVersion:h,groupId:oe,ecdsaRestore:T,...E?{ed25519Restore:E}:{},issuedAtMs:_,expiresAtMs:v,remainingUses:y,updatedAtMs:b}}}if(!r.ed25519)return X(`malformed`,t,`invalid_identity`);if(o||s)return X(`delete_required`,t,`invalid_identity`);if(!w||!m)return X(`rebuild_required`,t,`missing_restore_metadata`);if(!Go(w.participantIds).length)return X(`delete_required`,t,`missing_participant_ids`);if(!E)return X(`rebuild_required`,t,`missing_restore_metadata`);let D=zo({walletId:c,authMethod:n,restore:E}),O=p(t.storeKey);return O&&O!==D?X(`malformed`,t,`invalid_identity`):{kind:`current`,record:{...qo(n),storeKey:D,thresholdSessionIds:{ed25519:r.ed25519,...r.ecdsa?{ecdsa:r.ecdsa}:{}},sealedSecretB64u:i,curve:`ed25519`,walletId:c,...l?{signingRootId:l}:{},...f?{signingRootVersion:f}:{},relayerUrl:m,keyVersion:h,groupId:oe,...T?{ecdsaRestore:T}:{},ed25519Restore:E,issuedAtMs:_,expiresAtMs:v,remainingUses:y,updatedAtMs:b}}}function Yo(e){let t=Jo(Oo(e));return t.kind===`current`?t.record:null}function Xo(e){let t=C(e);if(!t||t.clientVerifyingShareB64u!=null)return null;let n,r,i,a;try{n=Le(t.chainTarget&&typeof t.chainTarget==`object`?t.chainTarget:{}),r=F(t.runtimePolicyScope);let e=ct(t.routerAbEcdsaDerivationNormalSigning);if(!e)return null;i=e,a=wt(t.publicCapability)}catch{return null}let o=p(t.signingRootId),s=p(t.signingRootVersion),c=null;try{c=un(t.roleLocalMaterialRef)}catch{c=null}let l=xt(t.authority),u=ut(t.emailOtpAuthority),d=p(t.keyHandle),f=p(t.ecdsaThresholdKeyId),m=p(t.ethereumAddress),h=p(t.relayerKeyId),g=p(t.thresholdEcdsaPublicKeyB64u),_=Go(t.participantIds);if(!o||!s||!d||!f||!m||!h||!g||!_.length)return null;let v={chainTarget:n,signingRootId:o,signingRootVersion:s,keyHandle:d,ecdsaThresholdKeyId:f,ethereumAddress:m,relayerKeyId:h,thresholdEcdsaPublicKeyB64u:g,participantIds:_,runtimePolicyScope:r,routerAbEcdsaDerivationNormalSigning:i,publicCapability:a};switch(t.source){case`email_otp`:{let e=t.provider===`google`||t.provider===`email`?t.provider:null,n=p(t.providerSubjectId),r=p(t.emailHashHex);return!e||!n||!r||!c||!l||!u||t.rpId!=null||t.credentialIdB64u!=null?null:{...v,source:`email_otp`,provider:e,providerSubjectId:n,emailHashHex:r,authority:l,emailOtpAuthority:u,roleLocalMaterialRef:c}}case`login`:case`registration`:case`manual-bootstrap`:{let e=p(t.rpId),n=p(t.credentialIdB64u);return!e||!n||!c||!l||t.providerSubjectId!=null||t.emailHashHex!=null?null:{...v,source:t.source,authority:l,roleLocalMaterialRef:c,rpId:e,credentialIdB64u:n}}default:return null}}function Zo(e){let t=C(Oo(e));if(!t||t.recordKind!==So||Eo(t)||t.thresholdSessionIds!=null||t.ed25519Restore!=null||t.curve!==`ecdsa`)return null;let n=Ho(t.authMethod),r=p(t.walletId),i=p(t.relayerUrl),a=Xo(t.ecdsaRestore),o=p(t.sealedSecretB64u),s=p(t.keyVersion),c=p(t.groupId),l=d(t.updatedAtMs),u=t.authorizationRetirementReason;if(!n||!r||!i||!a||t.alg!==`shamir3pass-v2`||t.storageScope!==`iframe_origin_indexeddb`||t.secretKind!==`signing_session_secret32`||!o||!s||c!==`rfc2409-group2`||t.issuedAtMs!=null||t.expiresAtMs!=null||t.remainingUses!=null||l==null||l<=0||u!==`expired`&&u!==`exhausted`)return null;let f=Bo({walletId:r,authMethod:n,restore:a});return p(t.storeKey)===f?Qo({storeKey:f,walletId:r,relayerUrl:i,sealedSecretB64u:o,keyVersion:s,updatedAtMs:l,authorizationRetirementReason:u,authMethod:n,ecdsaRestore:a}):null}function Qo(e){let{authMethod:t,ecdsaRestore:n}=e,r={recordKind:So,storeKey:e.storeKey,curve:`ecdsa`,walletId:e.walletId,relayerUrl:e.relayerUrl,alg:le,storageScope:ce,secretKind:ue,sealedSecretB64u:e.sealedSecretB64u,keyVersion:e.keyVersion,groupId:oe,updatedAtMs:e.updatedAtMs,authorizationRetirementReason:e.authorizationRetirementReason};return t===`email_otp`&&n.source===`email_otp`||t===`passkey`&&n.source!==`email_otp`?{...r,authMethod:t,ecdsaRestore:n}:null}function $o(e){if(e.classification.kind===`ecdsa_inactive_material`||e.classification.kind===`rebuild_required`)return;let t=e.classification.kind===`malformed`?`malformed`:`rejected`,n={operation:e.operation,outcome:t,classificationKind:e.classification.kind,...e.classification};console.warn(`[SigningSessionSealedStore] rejected sealed record`,n)}function es(e){let t=String(e.thresholdSessionId||``).trim(),n=Do(e.curve),r=e.authMethod===`passkey`||e.authMethod===`email_otp`?e.authMethod:void 0;if(!n||!r)return null;let i=ts({thresholdSessionId:t,curve:n,thresholdSessionIds:e.thresholdSessionIds}),a=p(e.walletId),o=p(e.sealedSecretB64u),s=d(e.expiresAtMs),c=d(e.remainingUses),l=d(e.issuedAtMs),u=d(e.updatedAtMs),f=p(e.keyVersion);if(!t||!o||!f||e.groupId!==`rfc2409-group2`||!i.ed25519&&!i.ecdsa||l==null||l<=0||s==null||s<=0||c==null||c<0||u==null||u<=0)return null;let m=Lo(e.ecdsaRestore),h=Ro(e.ed25519Restore);if(Uo(e)||n===`ecdsa`&&(!m?.chainTarget||!a||Wo(e)))return null;let g,_;e.curve===`ed25519`&&(g=p(e.signingRootId),_=p(e.signingRootVersion));let v=Jo({...qo(r),thresholdSessionIds:i,sealedSecretB64u:o,curve:n,...a?{walletId:a}:{},...g?{signingRootId:g}:{},..._?{signingRootVersion:_}:{},...p(e.relayerUrl)?{relayerUrl:p(e.relayerUrl)}:{},keyVersion:f,groupId:oe,...m?{ecdsaRestore:m}:{},...h?{ed25519Restore:h}:{},issuedAtMs:l,expiresAtMs:s,remainingUses:c,updatedAtMs:u});return v.kind===`current`?v.record:($o({operation:`build current sealed session record`,classification:v}),null)}function ts(e){let t=wo(e.thresholdSessionIds),n=String(e.thresholdSessionId||``).trim();return n&&(e.curve===`ed25519`&&t.ed25519===n||e.curve===`ecdsa`&&t.ecdsa===n)?t:{}}function ns(e,t){let n=p(t),r=p(e.ecdsaThresholdKeyId),i=p(e.thresholdEcdsaPublicKeyB64u);if(!n||!r||!i)return null;let a;try{a=F(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:un(e.roleLocalMaterialRef)};case`login`:case`registration`:case`manual-bootstrap`:return{...o,source:e.source,authority:e.authority,roleLocalMaterialRef:un(e.roleLocalMaterialRef),rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}}}function rs(e){let t=e.record,n=ns(t.ecdsaRestore,t.relayerUrl);return n?Qo({storeKey:Bo({walletId:t.walletId,authMethod:t.authMethod,restore:n}),walletId:t.walletId,relayerUrl:t.relayerUrl,sealedSecretB64u:t.sealedSecretB64u,keyVersion:t.keyVersion,updatedAtMs:e.updatedAtMs,authorizationRetirementReason:e.retirement,authMethod:t.authMethod,ecdsaRestore:n}):null}function is(e){let t=rs(e);if(!t)throw Error(`[SigningSessionSealedStore] inactive ECDSA material requires exact public restore facts`);return t}const as=15e3;function os(e){return M(e,32,`sealed signing session restore IDs`)}function ss(e){return{lease_key:e.leaseKey,owner_id:e.ownerId,attempt_id:e.attemptId,started_at_ms:e.startedAtMs,expires_at_ms:e.expiresAtMs,lease:e}}function cs(e){let t=new Set,n=p(e.walletId);return n&&t.add(n),t}function ls(e,t){let n=cs(e);if(!n.size)return!1;for(let e of cs(t))if(n.has(e))return!0;return!1}function us(e,t){if(!ls(e,t)||e.authMethod!==t.authMethod||e.curve!==t.curve)return!1;if(e.curve===`ed25519`&&t.curve===`ed25519`)return c(e.ed25519Restore.materialActivation,t.ed25519Restore.materialActivation);if(e.curve===`ecdsa`){let n=p(e.ecdsaRestore?.keyHandle),r=p(t.ecdsaRestore?.keyHandle);if(!n||!r||n!==r)return!1;let i=e.ecdsaRestore?.chainTarget,a=t.ecdsaRestore?.chainTarget;if(!i||!a||!Ve(i,a))return!1}return!0}function ds(e){return x({storeKey:e.storeKey,walletId:e.walletId,authMethod:e.authMethod,signingRootId:e.signingRootId??null,signingRootVersion:e.signingRootVersion??null,restore:e.ed25519Restore})}function fs(e,t){if(typeof e.primaryKey!=`string`||!e.primaryKey.trim())throw Error(`[SigningSessionSealedStore] exact Ed25519 record key is invalid`);return{primaryKey:e.primaryKey,record:t}}function ps(e,t){return e.record.updatedAtMs===t.record.updatedAtMs?e.primaryKey===e.record.storeKey?e:t.primaryKey===t.record.storeKey?t:e.primaryKey.localeCompare(t.primaryKey)<=0?e:t:e.record.updatedAtMs>t.record.updatedAtMs?e:t}async function ms(e,t={writeCanonical:!1}){let n=e[0];if(!n)return null;let r=ds(n.record);for(let t of e.slice(1))if(ds(t.record)!==r)throw Error(`[SigningSessionSealedStore] exact Ed25519 material has conflicting public identity facts`);let i=e.reduce(ps),a=i.record.storeKey,o=[...new Set(e.map(e=>e.primaryKey))].filter(e=>e!==a);return(t.writeCanonical||o.length>0||i.primaryKey!==a)&&await Y.replaceSealedRecord({row:jo(i.record),staleStoreKeys:o}),i.record}async function hs(e){let t=Oo(e.value),n=Jo(t);if(n.kind!==`current`)return n;let r=C(t);return Eo(C(e.value))||Eo(r)?X(`delete_required`,r,`invalid_identity`):n}function gs(e){return To(Oo(e))}function _s(e,t,n,r){$o({operation:e,classification:t}),(t.kind===`delete_required`||t.kind===`malformed`)&&r.push(n)}function vs(e){let t=C(e);if(!t)return null;if(C(t.lease))return vs(t.lease);if(Number(t.v)!==1||Eo(t))return null;let n=p(t.leaseKey),r=p(t.ownerId),i=p(t.attemptId),a=d(t.startedAtMs),o=d(t.expiresAtMs);return!n||!r||!i||a==null||a<=0||o==null||o<=a?null:{v:1,leaseKey:n,ownerId:r,attemptId:i,startedAtMs:a,expiresAtMs:o}}function ys(e){return{v:1,leaseKey:e.leaseKey,ownerId:e.ownerId,attemptId:os(`restore-attempt`),startedAtMs:e.nowMs,expiresAtMs:e.nowMs+e.ttlMs}}function bs(e,t,n){return!(e.authMethod!==n.authMethod||e.thresholdSessionIds[n.curve]!==t||n.curve===`ecdsa`&&(!e.ecdsaRestore?.chainTarget||!Ve(e.ecdsaRestore.chainTarget,n.chainTarget)))}function xs(e,t){if(e?.authMethod&&e.curve===`ed25519`||e?.authMethod&&e.curve===`ecdsa`&&e.chainTarget)return e;throw console.warn(`[SigningSessionSealedStore] rejected ambiguous sealed record access`,{operation:t}),Error(`[SigningSessionSealedStore] ${t} requires an explicit authMethod, curve, and ECDSA chain target`)}async function Ss(e){let t=await Y.collectRawSealedRecordEntriesByThresholdSessionId(e);return t.length?t:(await Y.collectAllRawSealedRecordEntries()).filter(t=>{let n=gs(t.value);return n.ed25519===e||n.ecdsa===e})}async function Cs(e,t,n){let r=await Ss(e),i=null,a=[],o=[];for(let s of r){let r=await hs(s);if(r.kind===`current`){bs(r.record,e,t)&&(i=r.record,r.record.curve===`ed25519`&&a.push(fs(s,r.record)));continue}_s(n,r,s.primaryKey,o)}return await Y.deleteSealedRecords(o),a.length>0?await ms(a):i}async function ws(e,t){try{let n=await Ss(e),r=[];for(let i of n){let n=await hs(i),a=n.kind===`current`?n.record:null;a?.storeKey&&bs(a,e,t)&&r.push(i.primaryKey)}await Y.deleteSealedRecords(r)}catch{}}async function Ts(e){if(!cs(e).size||!e.authMethod)return[];try{let t=await Y.collectAllRawSealedRecordEntries(),n=[];for(let r of t){let t=await hs(r),i=t.kind===`current`?t.record:null;i&&i.storeKey!==e.storeKey&&us(i,e)&&n.push(i)}return n}catch{return[]}}function Es(e){if(e.curve!==`ecdsa`)return null;let t=ns(e.ecdsaRestore,e.relayerUrl);return t?Bo({walletId:e.walletId,authMethod:e.authMethod,restore:t}):null}async function Ds(e,t){let n=xs(t,`read`),r=String(e||``).trim();return r?await Cs(r,n,`read`):null}function Os(e,t){return e.curve===`ed25519`&&e.authMethod===t.authMethod&&c(e.ed25519Restore.materialActivation,t.materialActivation)}async function ks(e){let t=await Y.collectAllRawSealedRecordEntries(),n=[],r=[];for(let i of t){let t=await hs(i);if(t.kind===`current`){let n=t.record;Os(n,e)&&r.push(fs(i,n));continue}_s(`read exact Ed25519 material`,t,i.primaryKey,n)}return await Y.deleteSealedRecords(n),await ms(r)}async function As(e){let t=p(e.walletId);if(!t)return[];let n=xs(e.filter,`list exact account records`),r=e.filter.curve===`ecdsa`?e.filter.chainTarget:void 0,i=await Y.collectAllRawSealedRecordEntries(),a=[];try{let e=[],o=new Set,s=new Map;for(let c of i){let i=await hs(c);if(i.kind!==`current`){_s(`list exact account records`,i,c.primaryKey,a);continue}let l=i.record;if(l.walletId===t&&l.authMethod===n.authMethod&&l.thresholdSessionIds[n.curve]&&!(r&&(!l.ecdsaRestore?.chainTarget||!Ve(l.ecdsaRestore.chainTarget,r)))){if(l.curve===`ed25519`){let e=s.get(l.storeKey)??[];e.push(fs(c,l)),s.set(l.storeKey,e);continue}o.has(l.storeKey)||(o.add(l.storeKey),e.push(l))}}for(let t of s.values()){let n=await ms(t);n&&e.push(n)}return await Y.deleteSealedRecords(a),e}finally{await Y.deleteSealedRecords(a)}}async function js(e){let t=p(e.walletId);if(!t)return[];if(e.filter.curve!==`ecdsa`)return console.warn(`[SigningSessionSealedStore] rejected non-ECDSA wallet-scoped list`,{operation:`list wallet ecdsa records`}),[];let n=await Y.collectAllRawSealedRecordEntries(),r=[];try{let i=[],a=new Set;for(let o of n){let n=await hs(o);if(n.kind===`ecdsa_inactive_material`){let r=n.record;if(r.walletId!==t||e.filter.authMethod&&r.authMethod!==e.filter.authMethod||a.has(r.storeKey))continue;a.add(r.storeKey),i.push(r);continue}if(n.kind!==`current`){_s(`list wallet ecdsa records`,n,o.primaryKey,r);continue}let s=n.record;s.walletId===t&&(e.filter.authMethod&&s.authMethod!==e.filter.authMethod||s.thresholdSessionIds.ecdsa&&s.ecdsaRestore?.chainTarget&&(a.has(s.storeKey)||(a.add(s.storeKey),i.push(s))))}return await Y.deleteSealedRecords(r),i}finally{await Y.deleteSealedRecords(r)}}async function Ms(e){let t=Jo(e);if(t.kind!==`current`){$o({operation:`write exact sealed session`,classification:t});return}let n=t.record;if(n.curve===`ed25519`){let e=[{primaryKey:n.storeKey,record:n}],t=await Y.collectAllRawSealedRecordEntries();for(let r of t){let t=await hs(r);t.kind===`current`&&t.record.curve===`ed25519`&&t.record.storeKey===n.storeKey&&e.push(fs(r,t.record))}await ms(e,{writeCanonical:!0});return}let r=await Ts(n),i=Es(n);await Y.replaceSealedRecord({row:jo(n),staleStoreKeys:[...r.map(e=>e.storeKey),...i?[i]:[]]})}function Ns(e,t,n){return Ps({current:e,inactive:is({record:e,retirement:t,updatedAtMs:n})})}async function Ps(e){await Y.replaceSealedRecordAndDeleteRestoreLease({row:Ao(e.inactive),staleStoreKeys:[e.current.storeKey],restoreLeaseKey:e.current.storeKey})}async function Fs(e){let t=xs(e.filter,`update policy`),n=String(e.thresholdSessionId||``).trim();if(!n)return;let r=await Ds(n,t);r&&await Ls(r,e)}async function Is(e){let t=await ks(e.locator);t&&await Ls(t,e)}async function Ls(e,t){let n=d(t.expiresAtMs??e.expiresAtMs),r=d(t.remainingUses??e.remainingUses),i=d(t.updatedAtMs);if(n==null||n<=0||r==null||r<0||i==null||i<=0)return;let a={...e,expiresAtMs:n,remainingUses:r,updatedAtMs:i};if(a.curve===`ecdsa`){let e=n<=Date.now()?`expired`:r===0?`exhausted`:null;if(e){await Ns(a,e,i);return}}await Ms(a)}async function Rs(e,t,n){let r=xs(t,`delete`),i=String(e||``).trim();if(!i)return;let a=await Cs(i,r,`delete`);await ws(i,r),a&&n.deleteResolvedIdentity&&await Y.deleteRestoreLease(a.storeKey)}async function zs(e,t){let n=await Y.collectAllRawSealedRecordEntries(),r=[],i=[];for(let a of n){let n=await hs(a);if(n.kind!==`current`){$o({operation:`delete exact Ed25519 material`,classification:n});continue}let o=n.record;Os(o,e)&&(r.push(a.primaryKey),t.deleteResolvedIdentity&&i.push(o.storeKey))}if(await Y.deleteSealedRecords(r),t.deleteResolvedIdentity)for(let e of i)await Y.deleteRestoreLease(e)}async function Bs(e){let t=e.preserveResolvedIdentity?{deleteResolvedIdentity:!1}:{deleteResolvedIdentity:!0,resolvedIdentityDeleteReason:`durable_record_deleted`};if(e.durableRecord.curve===`ed25519`){await zs({kind:`ed25519_durable_material`,authMethod:e.durableRecord.authMethod,materialActivation:e.durableRecord.materialActivation},t);return}let n=bo(e.durableRecord),r=await Vs(e.durableRecord.thresholdSessionId,n);if(e.preserveResolvedIdentity&&e.durableRecord.curve===`ecdsa`&&r?.curve===`ecdsa`&&(e.deleteReason===`expired`||e.deleteReason===`exhausted`)){await Ns(r,e.deleteReason,Date.now());return}await Rs(e.durableRecord.thresholdSessionId,n,t)}async function Vs(e,t){try{return await Ds(e,t)}catch{return null}}async function Hs(e){let t=xs(e,`acquire restore lease`),n=String(e.thresholdSessionId||``).trim();if(!n)return null;let r=d(e.nowMs??Date.now())??Date.now(),i=Math.max(1,d(e.ttlMs??as)??as),a=p(e.ownerId)||os(`restore-owner`);return await Cs(n,t,`acquire restore lease`)?await Y.withRestoreLeaseTransaction(n,async e=>{let o=[];for(let t of e.entries){let e=Yo(t.value);e?.storeKey&&!o.some(t=>t.storeKey===e.storeKey)&&o.push(e)}let s=o.find(e=>bs(e,n,t))||null;if(!s)return e.abort(),null;let c=vs(await e.getRawRestoreLease(s.storeKey));if(c&&c.expiresAtMs>r&&c.ownerId!==a)return e.abort(),null;let l=ys({leaseKey:s.storeKey,ownerId:a,nowMs:r,ttlMs:i});return e.putRestoreLease(ss(l)),{...l,thresholdSessionId:n}}):null}async function Us(e){!e?.leaseKey||!e.ownerId||!e.attemptId||await Y.deleteRestoreLeaseIf({leaseKey:e.leaseKey,shouldDelete:t=>{let n=vs(t);return n?.ownerId===e.ownerId&&n.attemptId===e.attemptId}})}function Ws(e){return String(e??``).trim()||null}function Gs(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0?e:null}function Ks(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0?e:null}function qs(e){let t=ie(e);return t?.length===2?[t[0],t[1]]:null}function Js(e){let t=e.ed25519Restore;switch(e.authMethod){case Ke.passkey:{let e=Ws(t.credentialIdB64u);return e?{kind:`passkey`,rpId:mt(t.rpId),credentialIdB64u:e}:null}case Ke.emailOtp:{if(!(`provider`in t))return null;let e=Ws(t.providerSubjectId),n=Ws(t.emailHashHex);return!e||!n?null:{kind:`email_otp`,provider:t.provider,providerSubjectId:e,emailHashHex:n}}}}function Ys(e){switch(e.kind){case`passkey`:return{kind:Ke.passkey,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u};case`email_otp`:return{kind:Ke.emailOtp,providerSubjectId:e.providerSubjectId}}}function Xs(e){let t=e.ed25519Restore,n=Ws(e.thresholdSessionIds.ed25519),r=Ws(e.relayerUrl),i=Ws(t.relayerKeyId),a=Gs(e.expiresAtMs),o=Ks(e.remainingUses),s=En(t.signerSlot),c=qs(t.participantIds),l=ae(t.runtimePolicyScope),u=l?P(l):null,d=Ws(u?.signingRootVersion),f=I(t.routerAbNormalSigning),p=Js(e);if(!n||!r||!i||!a||o===null||!s||!c||!l||!u||!d||!f||f.signingWorkerId!==i||!p||e.signingRootId!==u.signingRootId||e.signingRootVersion!==d)return null;try{return{kind:`exact_ed25519_sealed_session_runtime`,sealedRecord:e,walletId:R(e.walletId),nearAccountId:L(t.nearAccountId),nearEd25519SigningKeyId:Jt(t.nearEd25519SigningKeyId),signerSlot:s,factor:p,auth:Ys(p),thresholdSessionId:Pn.thresholdEd25519Session(n),remainingUses:o,expiresAtMs:a,relayerUrl:r,relayerKeyId:i,participantIds:c,runtimePolicyScope:l,signingRootId:u.signingRootId,signingRootVersion:d,routerAbNormalSigning:f}}catch{return null}}async function Zs(e){let t;switch(e.runtime.factor.kind){case`passkey`:t=St({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=ut({walletId:e.runtime.walletId,factor:{kind:`email_otp`,provider:e.runtime.factor.provider,providerUserId:e.runtime.factor.providerSubjectId},verifier:{kind:`email_otp_wallet_auth_method`,emailHashHex:e.runtime.factor.emailHashHex},bindingId:e.walletAuthMethodId});break;default:return Qs(e.runtime.factor)}if(!t)throw Error(`[SigningEngine][near] sealed Ed25519 authority is invalid`);return await lt({authority:t})}function Qs(e){throw Error(`Unsupported Ed25519 factor: ${String(e)}`)}async function $s(e){let{authorization:t,runtime:n}=e;if(t.session.walletId!==n.walletId||t.session.authMethodId!==t.selectedAuthMethod.walletAuthMethodId||t.session.quotaId!==t.status.quotaId||t.operationCredential.walletSessionId!==t.status.walletSessionId||t.operationCredential.token.trim().length===0||t.status.remainingUses<=0||!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 Zs({runtime:n,walletAuthMethodId:t.selectedAuthMethod.walletAuthMethodId}),r=await lt({authority:t.selectedFactorAuthority});return e.walletId===t.selectedAuthority.walletId&&e.walletAuthMethodId===t.selectedAuthMethod.walletAuthMethodId&&e.walletId===r.walletId&&e.walletAuthMethodId===r.walletAuthMethodId&&e.authorityDigest===r.authorityDigest}catch{return!1}}function ec(e,t){switch(e.kind){case`passkey`:return t.kind===`passkey`&&e.rpId===t.rpId&&e.credentialIdB64u===t.credentialIdB64u;case`email_otp`:return t.kind===`email_otp`&&e.providerSubjectId===t.providerSubjectId}}function tc(e){let t=e.laneIdentity.signer,n=e.record.ed25519Restore;return e.record.walletId===t.account.wallet.walletId&&n.nearAccountId===t.account.nearAccountId&&n.nearEd25519SigningKeyId===t.nearEd25519SigningKeyId&&n.signerSlot===t.signerSlot&&e.record.thresholdSessionIds.ed25519===e.laneIdentity.thresholdSessionId}function nc(e,t){return ec(e.auth,t.auth)}async function rc(e,t){let n=(await t.listExactSealedSessionsForWallet({walletId:e.walletId,filter:{authMethod:e.laneIdentity.auth.kind,curve:`ed25519`}})).filter(t=>t.curve===`ed25519`&&tc({record:t,laneIdentity:e.laneIdentity}));if(n.length===0)return{kind:`missing`};if(n.length>1)return{kind:`conflict`};let r=Xs(n[0]);return!r||!nc(r,e.laneIdentity)?{kind:`corrupt`}:{kind:`resolved`,runtime:r}}async function ic(e){return await rc(e,{listExactSealedSessionsForWallet:As})}async function ac(e,t){return sc(await oc(e,t))}async function oc(e,t){let n=await Promise.all([t.listExactSealedSessionsForWallet({walletId:e,filter:{authMethod:Ke.passkey,curve:`ed25519`}}),t.listExactSealedSessionsForWallet({walletId:e,filter:{authMethod:Ke.emailOtp,curve:`ed25519`}})]),r=[];for(let e of n)for(let t of e)t.curve===`ed25519`&&r.push(t);return r}function sc(e){if(e.length===0)return{kind:`missing`};if(e.length>1)return{kind:`conflict`};let t=Xs(e[0]);return t?{kind:`resolved`,runtime:t}:{kind:`corrupt`}}async function cc(e){return await ac(e,{listExactSealedSessionsForWallet:As})}async function lc(e,t){let n=await oc(e.walletId,t),r=[];for(let t of n)t.ed25519Restore.nearAccountId===e.nearAccountId&&t.ed25519Restore.nearEd25519SigningKeyId===e.nearEd25519SigningKeyId&&r.push(t);return sc(r)}async function uc(e){return await lc(e,{listExactSealedSessionsForWallet:As})}function dc(e,t){let n=String(e).trim();if(!n)throw Error(`${t} is required for Ed25519 Wallet Session state`);return n}function fc(e,t){if(!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be positive for Ed25519 Wallet Session state`);return e}function pc(e){let t=Pn.thresholdEd25519Session(dc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=dc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=dc(e.relayerUrl,`relayerUrl`),i=dc(e.providerSubjectId,`providerSubjectId`),a=fc(e.signerSlot,`signerSlot`),o=fc(e.signingWalletSession.remainingUses,`remainingUses`);return{walletSessionAuth:{kind:`wallet_session_opaque`,home:e.signingWalletSession.auth.credential.home,walletSessionToken:n},walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,signingLane: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 mc(e){let t=Pn.thresholdEd25519Session(dc(e.signingWalletSession.thresholdSessionId,`thresholdSessionId`)),n=dc(e.signingWalletSession.auth.walletSessionToken,`walletSessionToken`),r=dc(e.relayerUrl,`relayerUrl`),i=dc(e.credentialIdB64u,`credentialIdB64u`),a=fc(e.signerSlot,`signerSlot`);return{walletSessionAuth:{kind:`wallet_session_opaque`,home:e.signingWalletSession.auth.credential.home,walletSessionToken:n},walletSessionId:e.signingWalletSession.walletSessionId,quotaId:e.signingWalletSession.quotaId,thresholdSessionId:t,signingLane:ur({walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,signerSlot:a,auth:{kind:`passkey`,rpId:e.rpId,credentialIdB64u:i},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 hc(e){let t=e.authorization.operationCredential.token,n=e.authorization.session.authorizationId,r=await Zs({runtime:e.runtime,walletAuthMethodId:e.authorization.selectedAuthMethod.walletAuthMethodId}),i=await lt({authority:e.authorization.selectedFactorAuthority}),a=Math.min(e.runtime.expiresAtMs,e.authorization.status.expiresAtMs);if(!t||!n||e.authorization.session.walletId!==e.runtime.walletId||e.authorization.selectedAuthMethod.kind!==e.runtime.auth.kind||r.walletId!==e.runtime.walletId||r.walletAuthMethodId!==e.authorization.selectedAuthMethod.walletAuthMethodId||r.walletId!==i.walletId||r.walletAuthMethodId!==i.walletAuthMethodId||String(r.authorityDigest)!==String(i.authorityDigest)||e.authorization.operationCredential.walletSessionId!==e.authorization.status.walletSessionId||a<=e.nowMs)throw Error(`Ed25519 Wallet Session authorization does not match sealed material`);let o=so({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,walletSessionId:e.authorization.operationCredential.walletSessionId,authorizationId:n,quotaId:e.authorization.session.quotaId,thresholdSessionId:e.runtime.thresholdSessionId,remainingUses:Math.min(e.runtime.remainingUses,e.authorization.status.remainingUses),expiresAtMs:a,runtimePolicyScope:e.runtime.runtimePolicyScope,signingRootId:e.runtime.signingRootId,signingRootVersion:e.runtime.signingRootVersion,routerAbNormalSigning:e.runtime.routerAbNormalSigning,walletSessionToken:t,home:e.authorization.operationCredential.home,nowMs:e.nowMs});if(!o.ok)throw Error(`Ed25519 Wallet Session runtime is invalid: ${o.reason}`);if(e.runtime.factor.kind===`passkey`&&e.runtime.auth.kind===`passkey`)return mc({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,signerSlot:e.runtime.signerSlot,rpId:e.runtime.factor.rpId,credentialIdB64u:e.runtime.factor.credentialIdB64u,relayerUrl:e.runtime.relayerUrl,authority:r,signingWalletSession:o.value});if(e.runtime.factor.kind===`email_otp`&&e.runtime.auth.kind===`email_otp`)return pc({walletId:e.runtime.walletId,nearAccountId:e.runtime.nearAccountId,nearEd25519SigningKeyId:e.runtime.nearEd25519SigningKeyId,providerSubjectId:e.runtime.auth.providerSubjectId,signerSlot:e.runtime.signerSlot,relayerUrl:e.runtime.relayerUrl,authority:r,signingWalletSession:o.value});throw Error(`Ed25519 sealed runtime factor and auth binding disagree`)}function gc(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 _c(e){return e.authorization.capabilitySubjects.some(t=>t.kind===`sign`&&t.keyFamily===`ed25519`&&c(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||!_c({authorization:n,materialActivation:e.materialActivation})||n.walletId!==r||n.authMethodId!==t.authority.walletAuthMethodId||e.operationCredential.walletSessionId!==t.walletSessionId||n.authorizationId!==t.signingWalletSession.authorizationId||o<=e.nowMs||!Number.isSafeInteger(o))return null;let s=so({walletId:String(a.account.wallet.walletId),nearAccountId:String(a.account.nearAccountId),nearEd25519SigningKeyId:String(a.nearEd25519SigningKeyId),walletSessionId:String(t.walletSessionId),authorizationId:String(t.signingWalletSession.authorizationId),quotaId:String(t.quotaId),thresholdSessionId:String(t.thresholdSessionId),remainingUses:t.remainingUses,expiresAtMs:o,runtimePolicyScope:t.runtimePolicyScope,signingRootId:t.signingRootId,signingRootVersion:t.signingRootVersion,routerAbNormalSigning:t.routerAbNormalSigning,walletSessionToken:i,home:e.operationCredential.home,nowMs:e.nowMs});if(!s.ok)return null;switch(t.signingLane.auth.kind){case`passkey`:return{...mc({walletId:a.account.wallet.walletId,nearAccountId:a.account.nearAccountId,nearEd25519SigningKeyId:a.nearEd25519SigningKeyId,signerSlot:a.signerSlot,rpId:t.signingLane.auth.rpId,credentialIdB64u:t.signingLane.auth.credentialIdB64u,relayerUrl:t.relayerUrl,authority:t.authority,signingWalletSession:s.value}),walletSessionAuthorization:n,walletSessionOperationCredential:e.operationCredential};case`email_otp`:return{...pc({walletId:a.account.wallet.walletId,nearAccountId:a.account.nearAccountId,nearEd25519SigningKeyId:a.nearEd25519SigningKeyId,providerSubjectId:t.signingLane.auth.providerSubjectId,signerSlot:a.signerSlot,relayerUrl:t.relayerUrl,authority:t.authority,signingWalletSession:s.value}),walletSessionAuthorization:n,walletSessionOperationCredential:e.operationCredential};default:return yc(t.signingLane.auth)}}function yc(e){throw Error(`Unknown Ed25519 signing lane auth: ${String(e)}`)}async function bc(e){let t=e.state.signingLane.identity.signer.account.wallet.walletId,n=await to({ports:e.ports,input:{walletId:t,authMethod:Nn(e.state.signingLane.auth),walletSessionId:e.state.walletSessionId,quotaId:e.state.quotaId,requiredSigningSubject:eo(e.state.signingLane.identity),expiry:{kind:`unexpired`,nowMs:e.nowMs}}});return n.kind!==`resolved`||n.resolved.authMethod.walletAuthMethodId!==e.state.authority.walletAuthMethodId?null:vc({state:e.state,authorization:n.resolved.session,operationCredential:n.resolved.operationCredential,materialActivation:n.resolved.materialActivation,nowMs:e.nowMs})}function xc(e){return dt(x({operation:`wallet_add_signer_activate_v2`,addSignerCeremonyId:e.addSignerCeremonyId,activationCorrelationId:e.activationCorrelationId,publicFacts:e.publicFacts}))}async function Sc(e){return A(await k(String(xc(e))))}function Cc(e){let t;try{t=Qt(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:an(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 wc(e){let t={};return yr()&&(t[`X-Seams-Benchmark-Diagnostics`]=`registration-flow`),e&&(t[_n]=e.value),Object.keys(t).length>0?t:void 0}function Tc(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 Ec=class extends Error{constructor(e){super(`Registration response was already committed; exact-method unlock is required`),this.code=`wallet_unlock_required`,this.next=`unlock_exact_method`,this.name=`RegistrationExactMethodUnlockRequiredError`,this.projection=e}};function Dc(e){switch(e.kind){case`issued`:return e.session;case`already_committed`:throw new Ec(e.session);default:return q(e)}}function Oc(e){let t=e[0];if(t)for(let n of e.slice(1)){let e=Ac(t,n);if(e)throw Error(`ECDSA registration returned partitioned EVM-family wallet key material: ${e}`)}}function kc(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 Ac(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 jc(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||ze(r)!==ze(i))return!1}return!0}async function Mc(e){try{await e.context.signingEngine.closeRouterAbEcdsaRegistrationCeremony({kind:`close_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:e.ceremonyId})}catch{return}}function Nc(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 Pc(e){return{canonicalRequest:xc(e),requestDigest:be(await Sc(e))}}async function Fc(e){try{return await qn(e)}catch{return await qn(e)}}async function Ic(e){return e.registrationTiming?await e.registrationTiming.measure(e.bucket,e.operation):await e.operation()}async function Lc(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=ye(r);try{let a=await Ic({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 Ic({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Gn.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 Ic({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=Cc(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=gt({registrationRequestDigestB64u:s.registrationRequestDigestB64u,proofTranscriptDigestB64u:s.proofTranscriptDigestB64u,contextBinding32B64u:a.contextBinding32B64u,derivationClientSharePublicKey33B64u:a.clientSharePublicKey33B64u,clientShareRetryCounter:a.clientShareRetryCounter,participantId:1}),c=await Pc({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:Te(e.started.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:cn(e.started.prepare.ecdsaThresholdKeyId),signingRootId:st(e.started.prepare.signingRootId),signingRootVersion:ht(e.started.prepare.signingRootVersion),runtimePolicyScope:e.started.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:on(a.clientSharePublicKey33B64u),participantIds:[Ot(e.started.prepare.participantIds[0]),Ot(e.started.prepare.participantIds[1])],relayerKeyId:sn(e.started.prepare.relayerKeyId),bindingDigest:fn(a.contextBinding32B64u),journalId:i,requestDigest:c.requestDigest,canonicalRequest:c.canonicalRequest,createdAt:ve(new Date().toISOString())}});if(!d.ok)throw Error(`Canonical ECDSA activation persistence failed (${d.code}): ${d.message}`);l.journalId=d.journalId,l.response=await Ic({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Fc.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:Tc(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=Nc({prepare:e.started.prepare,verified:u.clientBootstrap}),h=Wn({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 Mc({context:e.context,ceremonyId:r}),t}}async function Rc(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 zc(e){switch(e.tokens.kind){case`evm_family_ecdsa`:case`near_ed25519_and_evm_family_ecdsa`:return e.tokens.ecdsa;case`near_ed25519`:throw Error(`Registration-established session is missing ECDSA authorization`);default:return q(e.tokens)}}function Bc(e){let[t]=e.walletKeys;if(!t)throw Error(`ECDSA registration did not return wallet key material`);let n=zc(e.session.registrationEstablishedSession);if(String(e.session.registrationEstablishedSession.walletId)!==t.walletId||n.thresholdSessionId!==e.session.activatedThresholdSessionId||n.keyHandle!==t.keyHandle||!Vc(n.runtimePolicyScope,e.session.clientBootstrap.runtimePolicyScope)||!bt(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 Vc(e,t){return e.orgId===t.orgId&&e.projectId===t.projectId&&e.envId===t.envId&&e.signingRootVersion===t.signingRootVersion}function Hc(e){return pt({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:String(e.credential.rawId||e.credential.id||``).trim()})}async function Uc(e){if(!e.material)throw Error(`Email OTP registration ${e.operation} is missing enrollment material`);return await e.material}function Wc(e){let t=e.admissionRequest,n=f(t.scope.threshold_session_id);if(!n.ok)throw Error(`Ed25519 registration threshold-session identity is invalid`);let r=t.participant_ids,i=F(e.finalized.runtimePolicyScope);if(t.application_binding.wallet_id!==e.walletId||t.application_binding.near_ed25519_signing_key_id!==e.finalized.nearEd25519SigningKeyId||t.application_binding.key_creation_signer_slot!==e.finalized.signerSlot||r[0]!==e.finalized.participantIds[0]||r[1]!==e.finalized.participantIds[1]||!Vc(i,e.expectedRuntimePolicyScope)||t.application_binding.signing_root_id!==`${i.projectId}:${i.envId}`||t.scope.root_share_epoch!==i.signingRootVersion||t.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:n.value,signerSlot:e.finalized.signerSlot,signingRootId:t.application_binding.signing_root_id,signingRootVersion:t.scope.root_share_epoch,signingWorkerId:t.scope.signing_worker_id},stableServerScope:{relayerKeyId:e.finalized.relayerKeyId,participantIds:e.finalized.participantIds,runtimePolicyScope:i,routerAbNormalSigning:e.finalized.routerAbNormalSigning}}}function Gc(e){switch(e.tokens.kind){case`near_ed25519`:case`near_ed25519_and_evm_family_ecdsa`:return e.tokens.ed25519;case`evm_family_ecdsa`:throw Error(`Registration-established session is missing Ed25519 authorization`);default:return q(e.tokens)}}async function Kc(e){let t=Gc(e.registrationEstablishedSession);if(t.nearAccountId!==String(e.nearAccountId)||t.nearEd25519SigningKeyId!==String(e.nearEd25519SigningKeyId)||t.thresholdSessionId!==String(e.thresholdSessionId)||!Vc(t.runtimePolicyScope,e.runtimePolicyScope))throw Error(`Registration-established Email OTP Ed25519 session changed signer identity`);let n=P(t.runtimePolicyScope),r=n.signingRootVersion;if(!r)throw Error(`Registration-established Ed25519 session is missing a signing-root version`);let i=so({walletId:String(e.walletId),nearAccountId:String(e.nearAccountId),nearEd25519SigningKeyId:String(e.nearEd25519SigningKeyId),walletSessionId:String(e.registrationEstablishedSession.walletSessionId),authorizationId:String(e.registrationEstablishedSession.authorizationId),quotaId:String(e.registrationEstablishedSession.quotaId),thresholdSessionId:t.thresholdSessionId,remainingUses:e.registrationEstablishedSession.remainingUses,expiresAtMs:e.registrationEstablishedSession.expiresAtMs,runtimePolicyScope:t.runtimePolicyScope,signingRootId:n.signingRootId,signingRootVersion:r,routerAbNormalSigning:t.routerAbNormalSigning,walletSessionToken:e.registrationEstablishedSession.operationCredential.token,home:e.registrationEstablishedSession.operationCredential.home,nowMs:Date.now()});if(!i.ok)throw Error(`Registration-established Email OTP Ed25519 session is unusable (${i.reason})`);let a=await lt({authority:e.emailOtpAuthContext.authority});return pc({walletId:e.walletId,nearAccountId:L(e.nearAccountId),nearEd25519SigningKeyId:qt(e.nearEd25519SigningKeyId),providerSubjectId:or(e.emailOtpAuthContext),signerSlot:e.signerSlot,relayerUrl:e.relayerUrl,authority:a,signingWalletSession:i.value})}function qc(e){if(e.authMethod.kind!==`passkey`)throw Error(`Ed25519 Yao registration requires a passkey registration intent`);return{version:e.version,walletId:e.walletId,authMethod:e.authMethod,signerSelection:e.signerSelection,foundingWalletAuthMethodId:e.foundingWalletAuthMethodId,...e.runtimePolicyScope?{runtimePolicyScope:e.runtimePolicyScope}:{},nonceB64u:e.nonceB64u}}function Jc(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 Yc(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 Xc(e,t){let n=await new $i(t).send({kind:`admit`,path:jt,body:e.admissionRequest});if(!n.ok)throw Error(n.message);let r=Rt(n.value);if(!r.ok)throw Error(r.message);return r.value}function Zc(e){let t=Gc(e.session);return{thresholdSessionId:String(t.thresholdSessionId),prfFirstB64u:e.prfFirstB64u,expiresAtMs:e.session.expiresAtMs,remainingUses:e.session.remainingUses,diagnostics:{recordDuration:va.bind(void 0,e.ceremonyId)},...e.preparedServerSeal?{preparedServerSeal:e.preparedServerSeal}:{},transport:{curve:`ed25519`,authMethod:`passkey`,walletId:e.walletId,relayerUrl:e.relayerUrl,walletSessionToken:e.session.operationCredential.token,ed25519Restore:da({rpId:e.restore.rpId,nearAccountId:e.restore.nearAccountId,nearEd25519SigningKeyId:e.restore.nearEd25519SigningKeyId,relayerKeyId:e.restore.relayerKeyId,participantIds:e.restore.participantIds,runtimePolicyScope:t.runtimePolicyScope,signerSlot:e.restore.signerSlot,routerAbNormalSigning:t.routerAbNormalSigning,credentialIdB64u:e.restore.credentialIdB64u,materialActivation:e.restore.materialActivation})}}}function Qc(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 $c(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 el(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=el(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 nl(e,t,n){let r=e.ecdsa_activation.public_identity;return At({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 rl(e,t){return e.derivationClientSharePublicKey33B64u===t.derivationClientSharePublicKey33B64u&&e.relayerPublicKey33B64u===t.relayerVerifyingShareB64u&&e.groupPublicKey33B64u===t.thresholdEcdsaPublicKeyB64u&&e.ethereumAddress===t.thresholdOwnerAddress.toLowerCase()}function il(e,t){return e.server_public_key33_b64u===t.relayerVerifyingShareB64u&&e.threshold_public_key33_b64u===t.thresholdEcdsaPublicKeyB64u&&cl(e.ethereum_address20_b64u)===t.thresholdOwnerAddress&&e.server_share_retry_counter===t.relayerShareRetryCounter}function al(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 ol(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 sl(e){let t=e.ecdsa.walletKeys[0];if(!t)throw Error(`pending ECDSA activation returned no wallet keys`);return Oc(e.ecdsa.walletKeys),[t,...e.ecdsa.walletKeys.slice(1)]}function cl(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 ll(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 ul(e){return e.ok===!0&&e.kind===`evm_family_ecdsa`&&e.registrationEstablishedSession.kind===`already_committed`}async function dl(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=ut(t.authority),r=await S(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 fl(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||!nl(r,n,o)||!rl(t.ecdsa.bootstrap.publicIdentity,n)||i.context.application_binding_digest_b64u!==t.ecdsa.bootstrap.applicationBindingDigestB64u||!il(a,n))throw Error(`pending ECDSA activation facts mismatch`);if(!al(t.ecdsa.bootstrap,n))throw Error(`pending ECDSA bootstrap changed committed key identity`)}function pl(e){let t=el(e).ecdsa,n=e.ecdsa.activation.ecdsa_activation;if(!c(t.materialActivation,_t(n.material_activation))||!bt(t.routerAbEcdsaDerivationNormalSigning,e.ecdsa.bootstrap.routerAbEcdsaDerivationNormalSigning))throw Error(`pending ECDSA activation facts do not match the committed projection`)}async function ml(e){let t=e.response;if(!ul(t))throw Error(t.ok?`pending ECDSA activation replay did not return a committed projection`:`pending ECDSA activation replay failed`);let n=sl(t)[0];if(ll(e.pending,t,n),await dl(e.pending,t),fl(e.pending,t,n),pl(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}function hl(e){return String(In(e)||``).trim()}function gl(e,t){let n=hl(e);if(!n)throw Error(`${t} requires PRF.first output from the passkey credential`);return n}function _l(e){return String(e?.rawId||e?.id||``).trim()}async function vl(e){let t=new bn,n=_t(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 xn(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(!Dt(i.activation.serverActivation.serverActivationReceipt.protocolReceipt,e.activationReceipt)||!yt(a.roleLocalPublicFacts.publicCapability,e.publicCapability)||!Mn(i.signer.scope,dn({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||!jn(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 yl(e){let t=e[0];if(!t)throw Error(`ECDSA registration finalization returned no wallet keys`);return[t,...e.slice(1)]}function bl(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 xl(e){let t=yl(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 rt({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=ut(e.response.authority);if(!n)throw Error(`ECDSA Email OTP registration authority is invalid`);return await rt({kind:`email_otp`,walletId:e.pending.walletId,email:e.pending.auth.email,registrationAuthorityId:e.pending.auth.registrationAuthorityId,authority:n,walletKeys:t})}function Sl(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 Cl(e){let t=await e.ports.activateWalletRegistration(ol(e.relayerUrl,e.pending)),n=await ml({pending:e.pending,response:t}),r=sl(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 lt({authority:n.authority}),c=await vl({authority:s,chainTargets:bl(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:el(n).ecdsa.runtimePolicyScope,readyStateBlobB64u:a.readyStateBlobB64u,publicFacts:a.publicFacts}),l={kind:`ecdsa_role_local_worker_handle_v1`,materialHandle:ln(c.roleLocalMaterialRef.durableMaterialRef),bindingDigest:c.roleLocalMaterialRef.bindingDigest,durableMaterialRef:c.roleLocalMaterialRef.durableMaterialRef},u=await e.signingSurface.finalizeWalletRegistrationEcdsaSessions({walletId:String(e.pending.walletId),session:{chainTargets:bl(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 xl({pending:e.pending,response:n,walletKeys:u});if(await e.ports.publishPendingWalletRegistrationCommit(Sl({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=gl(a.credential,`Pending NEAR registration continuation`),n=fh({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:_l(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 wl(e,t,n){e?.(pn({flowId:`unlock:${t}`,accountId:t,...n}))}async function Tl(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}),wl(a,r,{phase:hn.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 El(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?.(Se(r)),wl(i,n,{phase:l?hn.CANCELLED:hn.FAILED,status:l?`cancelled`:`failed`,...l?{}:{message:t},interaction:{kind:`passkey_assert`,overlay:`hide`},error:{message:t}}),c&&await o?.(!1),{success:!1,error:t}}async function Dl(e){let t=kn(),n=null;try{let r=await kr({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:`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=Vl(r),r}}});if(!n)throw Error(`the NEAR custody ceremony produced no activation session id`);let i=await Bl(r,t);return{recoveryCodes:t.codes,activationReference:{kind:`router_ab_ed25519_yao_activation_reference_v1`,lifecycle_id:e.registrationCeremonyId,session_id:n},commitPayload:zl(i),localMaterial:r.ed25519LocalMaterialB64u&&r.ed25519LocalMaterialNonceB64u&&r.ed25519ApplicationBindingDigestB64u?{b64u:r.ed25519LocalMaterialB64u,nonceB64u:r.ed25519LocalMaterialNonceB64u,applicationBindingDigestB64u:r.ed25519ApplicationBindingDigestB64u}:null}}finally{t&&Dn(t),t=null}}function Ol(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 kl(e){let t=kn(),n=null,r=null;try{let i=t;if(!i)throw Error(`recovery codes were not issued`);let a=await kr({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=nn(await Bl(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&&Dn(t),t=null}}async function Al(e){let t=null,n=null,r=await kr({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 jl(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 Ml(e.factorReplacement)}}function Ml(e){throw Error(`unsupported recovery factor replacement: ${String(e)}`)}async function Nl(e){if(await Ll({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 kr({runStep:e.runStep,custody:jl(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 Pl(e){let t=await Ll({walletId:e.walletId,evmFamilySigningKeySlotId:e.evmFamilySigningKeySlotId,clientRootPublicKey33B64u:e.registeredClientRootPublicKey33B64u}),n=await kr({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 Fl(e,t){e.push(t>>>24&255,t>>>16&255,t>>>8&255,t&255)}function Il(e,t,n){let r=new TextEncoder().encode(t);Fl(e,r.length),e.push(...r),Fl(e,n.length),e.push(...n)}async function Ll(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 Il(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/evm-family-ecdsa/v1`)),Il(i,`walletId`,new TextEncoder().encode(t)),Il(i,`evmFamilySigningKeySlotId`,new TextEncoder().encode(n)),Il(i,`clientRootPublicKey33`,r),A(await D(Uint8Array.from(i)))}async function Rl(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 Il(i,`context`,new TextEncoder().encode(`seams/wallet-custody/key-set-manifest/near-ed25519/v1`)),Il(i,`walletId`,new TextEncoder().encode(t)),Il(i,`nearEd25519SigningKeyId`,new TextEncoder().encode(n)),Il(i,`registeredPublicKey`,r),A(await D(Uint8Array.from(i)))}function zl(e){let{ed25519LocalMaterialB64u:t,ed25519LocalMaterialNonceB64u:n,ed25519ApplicationBindingDigestB64u:r,ecdsaReadyStateBlobB64u:i,recoveryReplacementEnvelope:a,...o}=e;return o}async function Bl(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 On(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 Vl(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 Hl(e){if(await Rl({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 kr({runStep:e.runStep,custody:jl(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 Ul(e){return await Gl(e,e.registrationCeremonyId,void 0,`registration join`)}async function Wl(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 Gl({...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 Gl(e,t,n,r,i){let a=null,o=await kr({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=Vl(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:zl(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 Kl(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(!We(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 ql=class e extends Error{constructor(t){super(Jl(t)),this.kind=`email_otp_signing_session_auth_state_error`,this.name=`EmailOtpSigningSessionAuthStateError`,this.failure=t,Object.setPrototypeOf(this,e.prototype)}};function Jl(e){return`Email OTP ${e.expectedCurve} signing-session auth lane is unavailable at ${e.source}; unlock wallet again`}function Yl(e){throw new ql(e)}function Xl(e){return e.freshRouteFamily===`registration`?Kl({routeFamily:`registration`,operation:Ue}):Kl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function Zl(e){return e?.kind!==`signing_session`&&Yl({kind:`auth_lane_missing`,source:`route_plan`,expectedCurve:`unknown`}),e}function Ql(e){return Kl({routeFamily:`signing_session`,authLane:e.authLane,operation:e.operation})}function $l(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 eu(e){if(e.routeFamily===`signing_session`)return $l(e.authLane)}async function tu(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:qe,material:e.material},onEvent:e.base.onProgress}})}async function ru(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 iu(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:Bt,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 au(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:Bt,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 ou(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 su(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<1)throw Error(`${t} must be a positive integer`);return e}function cu(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 lu(e){return e.kind===`sign`&&e.keyFamily===`ed25519`}function uu(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(T(e.walletId,`session.walletId`)!==n.walletId||T(e.nearAccountId,`session.nearAccountId`)!==n.nearAccountId||T(e.nearEd25519SigningKeyId,`session.nearEd25519SigningKeyId`)!==n.nearEd25519SigningKeyId)throw Error(`Yao recovery session identity does not match the verified passkey`);let o=F(E(e.runtimePolicyScope,`session.runtimePolicyScope`)),s=I(e.routerAbNormalSigning);if(!s)throw Error(`Yao recovery session signing state is invalid`);let l=ge(e.walletSessionId),u=me(e.quotaId);if(!l.ok||!u.ok)throw Error(`Yao recovery Wallet Session identity is invalid`);let d=su(e.expiresAtMs,`session.expiresAtMs`),f=su(e.remainingUses,`session.remainingUses`),p=r.capabilitySubjects.find(lu);if(r.walletId!==n.walletId||r.authorityId!==a.walletAuthorityId||r.authMethodId!==a.walletAuthMethodId||r.authorityDigestB64u!==a.authorityDigestB64u||r.authorityRevocationEpoch!==a.authorityRevocationEpoch||r.expiresAtMs!==d||i.walletSessionId!==l.value||!p||!c(p.materialActivation,a.materialActivation))throw Error(`Yao recovery session does not match the exact Wallet Session`);return{thresholdSessionId:T(e.thresholdSessionId,`session.thresholdSessionId`),authorizationId:r.authorizationId,walletSessionId:i.walletSessionId,quotaId:u.value,expiresAtMs:d,remainingUses:f,runtimePolicyScope:o,participantIds:t,routerAbNormalSigning:s,walletSession:r,operationCredential:i}}function du(e){let t=e.capability,n=e.session,r=P(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]||!N(n.runtimePolicyScope,t.runtimePolicyScope)||n.runtimePolicyScope.signingRootVersion!==t.lifecycle.rootShareEpoch||t.applicationBinding.signing_root_id!==r.signingRootId||e.operationalPublicKey!==`ed25519:${Oe(Uint8Array.from(t.registeredPublicKey))}`)throw Error(`Yao recovery response does not preserve the registered wallet identity`)}function fu(e){if(du(e),e.capability.lifecycle.thresholdSessionId!==e.session.thresholdSessionId)throw Error(`Yao recovery response does not preserve the threshold material lifecycle`)}function pu(e,t){if(du(e),!c(e.capability.materialActivation,t))throw Error(`Yao warm recovery response does not preserve exact material activation`)}function mu(e){return`operationCredential`in e?e.operationCredential.token:e.walletSessionToken}function hu(e){let t=E(e,`sync-account response`);if(t.ok!==!0||t.verified!==!0)throw Error(`sync-account response is not verified`);let n=Kt(T(t.walletId,`walletId`)),i=L(T(t.nearAccountId,`nearAccountId`)),a=T(t.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),s=E(t.thresholdEd25519,`thresholdEd25519`),c=cu(s.participantIds),l=E(t.ed25519YaoRecovery,`ed25519YaoRecovery`);if(l.kind!==`router_ab_ed25519_yao_sync_recovery_v1`)throw Error(`sync-account recovery kind is invalid`);let u=xt(l.authorityRef);if(!u||String(u.walletId)!==String(n))throw Error(`sync-account recovery authority is invalid`);let d=o(t.walletAuthMethodId),f=r(t.walletAuthorityId),p=it(t.foundingAuthority),m=Gt(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!==n||p.value.authorityId!==f.value||!m||m.kind!==`passkey`||m.status!==`active`||m.walletId!==n||m.walletAuthorityId!==f.value||m.walletAuthMethodId!==d.value)throw Error(`sync-account exact auth-method identity is invalid`);let h=E(t.walletCustody,`walletCustody`);if(h.kind!==`wallet_custody_sync_bootstrap_v1`)throw Error(`walletCustody kind is invalid`);let g=Wr(l.capability),_=pe(t.walletSession),v=fe(t.operationCredential),y={authority:u,walletAuthMethodId:d.value,walletAuthorityId:f.value,foundingAuthority:p.value,foundingAuthMethod:m,walletId:n,nearAccountId:i,nearEd25519SigningKeyId:a,signerSlot:su(t.signerSlot,`signerSlot`),operationalPublicKey:T(t.publicKey,`publicKey`),relayerKeyId:T(s.relayerKeyId,`thresholdEd25519.relayerKeyId`),keyVersion:T(s.keyVersion,`thresholdEd25519.keyVersion`),credentialIdB64u:T(t.credentialIdB64u,`credentialIdB64u`),credentialPublicKeyB64u:T(t.credentialPublicKeyB64u,`credentialPublicKeyB64u`),session:uu(E(s.session,`thresholdEd25519.session`),c,{walletId:String(n),nearAccountId:String(i),nearEd25519SigningKeyId:a},_,v,{walletAuthorityId:f.value,walletAuthMethodId:d.value,authorityDigestB64u:p.value.authorityDigestB64u,authorityRevocationEpoch:p.value.revocationEpoch,materialActivation:g.materialActivation}),capability:g,walletSession:_,operationCredential:v,walletCustody:{envelope:Qt(h.envelope),storeVersion:T(h.storeVersion,`walletCustody.storeVersion`)}};return fu(y),y}function gu(e){let t=e.parsed,n=t.session,r=P(n.runtimePolicyScope),i=so({walletId:String(t.walletId),nearAccountId:String(t.nearAccountId),nearEd25519SigningKeyId:t.nearEd25519SigningKeyId,walletSessionId:n.walletSessionId,authorizationId:n.authorizationId,quotaId:n.quotaId,thresholdSessionId:e.thresholdSessionId,remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs,runtimePolicyScope:n.runtimePolicyScope,signingRootId:r.signingRootId,signingRootVersion:String(r.signingRootVersion||``),routerAbNormalSigning:n.routerAbNormalSigning,walletSessionToken:mu(n),home:`operationCredential`in n?n.operationCredential.home:n.home,nowMs:Math.min(Date.now(),n.expiresAtMs-1)});if(!i.ok)throw Error(`recovered Yao Wallet Session is unusable: ${i.reason}`);return mc({walletId:R(t.walletId),nearAccountId:t.nearAccountId,nearEd25519SigningKeyId:Jt(t.nearEd25519SigningKeyId),signerSlot:t.signerSlot,rpId:mt(e.rpId),credentialIdB64u:t.credentialIdB64u,relayerUrl:e.relayerUrl,authority:t.authority,signingWalletSession:i.value})}function _u(e){if(!b(e)||e.kind!==`wallet_custody_passkey_login_v1`)throw Error(`Passkey wallet unlock returned invalid custody data`);if(!b(e.ed25519))throw Error(`Passkey wallet unlock omitted Ed25519 custody continuity`);if(e.ed25519.kind===`absent`)return{kind:`wallet_custody_passkey_login_v1`,envelope:Qt(e.envelope),storeVersion:T(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:Qt(e.envelope),storeVersion:T(e.storeVersion,`walletCustody.storeVersion`),ed25519:{kind:`active`,nearAccountId:T(e.ed25519.nearAccountId,`walletCustody.ed25519.nearAccountId`),nearEd25519SigningKeyId:T(e.ed25519.nearEd25519SigningKeyId,`walletCustody.ed25519.nearEd25519SigningKeyId`),signerSlot:t,publicKey:T(e.ed25519.publicKey,`walletCustody.ed25519.publicKey`),relayerKeyId:T(e.ed25519.relayerKeyId,`walletCustody.ed25519.relayerKeyId`),participantIds:[Number(n[0]),Number(n[1])],capability:Wr(e.ed25519.capability)}}}function vu(e){if(!b(e))throw Error(`ECDSA custody chain target is invalid`);let t=T(e.kind,`ecdsaCustody.chainTarget.kind`),n=Number(e.chainId),r=T(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 yu(e){if(!b(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(!b(n)||!b(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:vu(n.chainTarget),walletKey:{walletId:T(e.walletId,`ecdsaCustody.walletKey.walletId`),keyHandle:T(e.keyHandle,`ecdsaCustody.walletKey.keyHandle`),ecdsaThresholdKeyId:T(e.ecdsaThresholdKeyId,`ecdsaCustody.walletKey.ecdsaThresholdKeyId`),signingRootId:T(e.signingRootId,`ecdsaCustody.walletKey.signingRootId`),signingRootVersion:T(e.signingRootVersion,`ecdsaCustody.walletKey.signingRootVersion`),relayerKeyId:T(e.relayerKeyId,`ecdsaCustody.walletKey.relayerKeyId`),contextBinding32B64u:T(e.contextBinding32B64u,`ecdsaCustody.walletKey.contextBinding32B64u`),derivationClientSharePublicKey33B64u:T(e.derivationClientSharePublicKey33B64u,`ecdsaCustody.walletKey.derivationClientSharePublicKey33B64u`),participantIds:[1,2],publicCapability:wt(e.publicCapability)},activationReceipt:Et(n.activationReceipt),runtimePolicyScope:F(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 bu(e){let t=e.raw.sessionKind;if(t===`issued_exact_wallet_session`){let n=fe(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(fe(e.unlockCredential).walletSessionId!==e.walletSessionId)throw Error(`Wallet unlock Ed25519 session reuses another Wallet Session`);return{sessionKind:t}}function xu(e,t){if(e===null)return null;if(!b(e))throw Error(`Wallet unlock returned invalid Ed25519 session data`);let n=f(e.thresholdSessionId),r=_e(e.authorizationId),i=ge(e.walletSessionId),a=me(e.quotaId),o=Number(e.expiresAtMs),s=Number(e.remainingUses),c=F(e.runtimePolicyScope),l=se(e.routerAbNormalSigning),u=e.participantIds;if(!n.ok||!r.ok||!i.ok||!a.ok||!Number.isSafeInteger(o)||o<=Date.now()||!Number.isSafeInteger(s)||s<1||!Array.isArray(u)||u.length!==2||!u.every(e=>Number.isSafeInteger(e)&&e>0)||u[0]===u[1])throw Error(`Wallet unlock returned invalid Ed25519 session lifecycle`);let d=bu({raw:e,walletSessionId:i.value,unlockCredential:t});return{walletId:T(e.walletId,`ed25519Session.walletId`),nearAccountId:T(e.nearAccountId,`ed25519Session.nearAccountId`),nearEd25519SigningKeyId:T(e.nearEd25519SigningKeyId,`ed25519Session.nearEd25519SigningKeyId`),relayerKeyId:T(e.relayerKeyId,`ed25519Session.relayerKeyId`),participantIds:[Number(u[0]),Number(u[1])],thresholdSessionId:n.value,authorizationId:r.value,walletSessionId:i.value,quotaId:a.value,expiresAtMs:o,remainingUses:s,runtimePolicyScope:c,routerAbNormalSigning:l,...d}}function Su(e){let t=e.authorization.record,n=_t(e.ecdsaSession.public_capability.material_activation),r=0;for(let e of t.capabilitySubjects)e.kind===`sign`&&e.keyFamily===`ecdsa_secp256k1`&&c(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 Cu(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 wu(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:pe(e.data.walletSession),operationCredential:fe(e.data.operationCredential)};return Cu({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 Cu({ed25519Session:e.ed25519Session,authorization:i}),i}async function Tu(e,t){let n=await wu(e,t);return Su({ed25519Session:e.ed25519Session,ecdsaSession:e.ecdsaSession,authorization:n}),n}function Eu(e){let t=Kn(e)??$n(e);return t?{success:!1,kind:`already_committed`,code:t.code,message:t.message,next:t.next,committed:t.committed}:null}async function Du(e,t,n){try{if(t.type!==`passkey_assertion`)throw Error(`Passkey wallet unlock requires a passkey assertion`);let r=T(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:Rn(i),ed25519SessionRequest:t.ed25519SessionRequest,...a?{expected_origin:a}:{},...t.ecdsaSessionPolicy?{ecdsaSessionPolicy:ft(t.ecdsaSessionPolicy)}:{}},s=h(e,`/wallet/unlock/verify`),c=await fetch(s,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(o)}),l=await c.json().catch(()=>({})),u=b(l)?l:{};if(!c.ok)return Eu(u)||{success:!1,error:typeof u.message==`string`?u.message:`HTTP ${c.status}`};if(u.ok!==!0)return Eu(u)||{success:!1,error:typeof u.message==`string`?u.message:`Wallet unlock verification failed`};let d=t.type===`passkey_assertion`&&t.ecdsaSessionPolicy!==void 0,f=xu(u.ed25519Session,u.operationCredential);if(t.ed25519SessionRequest.kind===`requested`&&!f)throw Error(`Wallet unlock omitted the requested Ed25519 Wallet Session`);if(t.ed25519SessionRequest.kind===`not_requested`&&f)throw Error(`Wallet unlock returned an unrequested Ed25519 Wallet Session`);let p=_u(u.walletCustody),m,g,_,v;if(d){if(u.ecdsaSession===void 0)throw Error(`Wallet unlock omitted the requested ECDSA Wallet Session activation`);if(m=b(u.ecdsaSession)&&u.ecdsaSession.kind===`router_ab_ecdsa_credential_free_session_activated_v1`?ot(u.ecdsaSession):vt(u.ecdsaSession),u.ecdsaActivationReceipt===void 0||u.ecdsaCustody===void 0)throw Error(`Wallet unlock omitted ECDSA custody continuity`);if(_=Et(u.ecdsaActivationReceipt),v=yu(u.ecdsaCustody),!p)throw Error(`Wallet unlock omitted wallet custody for ECDSA activation`);if(m.kind===`router_ab_ecdsa_credential_free_session_activated_v1`){if(!f)throw Error(`Credential-free ECDSA activation requires an Ed25519 Wallet Session`);g=await Tu({relayServerUrl:e,data:u,ed25519Session:f,ecdsaSession:m},n)}}else if(u.ecdsaSession!==void 0)throw Error(`Wallet unlock returned an unrequested ECDSA Wallet Session activation`);else f&&(g=await wu({relayServerUrl:e,data:u,ed25519Session:f},n));if(m&&_&&v&&p){if(m.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:m,ecdsaActivationReceipt:_,ecdsaCustody:v,ed25519Session:f,walletCustody:p,walletSessionAuthorization:g}}return{success:!0,ecdsaSession:m,ecdsaActivationReceipt:_,ecdsaCustody:v,ed25519Session:f,walletCustody:p}}if(p&&f&&g)return{success:!0,ed25519Session:f,walletCustody:p,walletSessionAuthorization:g};if(p&&!f)return{success:!0,ed25519Session:null,walletCustody:p};throw Error(`Passkey wallet unlock returned incomplete exact session state`)}catch(e){return{success:!1,error:Ce(e)||`Failed to verify wallet unlock`}}}async function Ou(e,t){try{let n=T(t.challengeId,`challengeId`),r=String(t.expected_origin||``).trim(),i={unlockBackend:`passkey`,challengeId:n,webauthn_authentication:Rn(t.webauthn_authentication),ed25519SessionRequest:t.ed25519SessionRequest,...r?{expected_origin:r}:{}},a=await fetch(h(e,`/wallet/unlock/verify`),{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify(i)}),o=await a.json().catch(()=>({})),s=b(o)?o:{};if(!a.ok||s.ok!==!0)return Eu(s)||{success:!1,error:typeof s.message==`string`?s.message:`Wallet Session unlock failed (HTTP ${a.status})`};if(s.walletCustody!==void 0&&s.walletCustody!==null)throw Error(`Linked passkey unlock returned custody data`);if(s.ecdsaSession!==void 0&&s.ecdsaSession!==null)throw Error(`Linked passkey unlock returned an ECDSA activation`);let c=xu(s.ed25519Session,s.operationCredential);if(t.ed25519SessionRequest.kind===`requested`&&!c)throw Error(`Linked passkey unlock omitted the requested Ed25519 Wallet Session`);if(t.ed25519SessionRequest.kind===`not_requested`&&c)throw Error(`Linked passkey unlock returned an unrequested Ed25519 Wallet Session`);return{success:!0,walletSession:pe(s.walletSession),operationCredential:fe(s.operationCredential),ed25519Session:c}}catch(e){return{success:!1,error:Ce(e)||`Failed to verify linked passkey Wallet Session`}}}function ku(e){let n=t(e);if(!n.ok)throw Error(`ECDSA registration recovery could not create a session id`);return n.value}function Au(e){let t=he(e);if(!t.ok)throw Error(`ECDSA registration recovery could not create a Wallet Session mint id`);return t.value}function ju(e){return ft({kind:`router_ab_ecdsa_post_registration_session_activation_policy_v1`,key_handle:e.keyHandle,session_policy:{threshold_session_id:ku(fr(`threshold-ecdsa-registration-recovery`)),wallet_session_mint_id:Au(fr(`wallet-session-mint`)),ttl_ms:e.sessionPolicy.ttlMs,remaining_uses:e.sessionPolicy.unlockRemainingUses,runtime_policy_scope:e.runtimePolicyScope}})}async function Mu(e){let t=await fetch(h(e.relayerUrl,`/wallet/unlock/challenge`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({unlockBackend:`passkey`,userId:e.walletId,rpId:e.rpId})}),n=E(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:y(n.challengeId,`Passkey unlock challenge ID`),challengeB64u:y(n.challengeB64u,`Passkey unlock challenge`)}}function Nu(e){return e===`ble`||e===`hybrid`||e===`internal`||e===`nfc`||e===`usb`}function Pu(e,t){return{id:e,type:`public-key`,transports:t.filter(Nu)}}function Fu(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 Iu(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=ze(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=ze(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)||!Dt(n.activationReceipt,e.response.ecdsa.activation))throw Error(`ECDSA registration unlock returned different custody continuity`)}}function Lu(e){new Uint8Array(e).fill(0)}async function Ru(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`);wl(e.onEvent,String(e.pending.walletId),{phase:hn.STEP_03_PASSKEY_CHALLENGE_STARTED,status:`running`,authMethod:`passkey`});let r=await Mu({relayerUrl:e.relayerUrl,walletId:String(e.pending.walletId),rpId:e.pending.auth.rpId});wl(e.onEvent,String(e.pending.walletId),{phase:hn.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:[Pu(e.pending.auth.credentialIdB64u,e.pending.auth.transports)],includeSecondPrfOutput:!0});if(_l(i)!==e.pending.auth.credentialIdB64u)throw Error(`ECDSA registration unlock returned a different Passkey credential`);wl(e.onEvent,String(e.pending.walletId),{phase:hn.STEP_03_PASSKEY_PROMPT_SUCCEEDED,status:`succeeded`,authMethod:`passkey`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let a=gl(i,`ECDSA registration recovery`),o=await Du(e.relayerUrl,{type:`passkey_assertion`,challengeId:r.challengeId,walletId:String(e.pending.walletId),webauthn_authentication:i,ed25519SessionRequest:{kind:`not_requested`},expected_origin:n,ecdsaSessionPolicy:ju({keyHandle:t.keyHandle,sessionPolicy:e.sessionPolicy,runtimePolicyScope:el(e.response).ecdsa.runtimePolicyScope})},new dr);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`);Fu({pending:e.pending,response:e.response,session:o.ecdsaSession,walletKey:t}),Iu({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:Ol(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{Lu(s)}}async function zu(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=el(e.response).ecdsa.runtimePolicyScope,r=await ru({walletSession:{walletId:R(e.pending.walletId),walletSessionUserId:String(e.pending.walletId)},authoritySelector:{kind:`wallet_auth_method`,walletAuthMethodId:e.pending.walletAuthMethodId},relayUrl:e.relayerUrl,groupId:oe,routePlan:Xl({freshRouteFamily:`login`,operation:Ge}),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:ju({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 Fu({pending:e.pending,response:e.response,session:r.ecdsaSession,walletKey:t}),Iu({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 Bu(e){switch(e.exactMethod.kind){case`passkey`:return await Ru({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,onEvent:e.onEvent,pending:e.pending,response:e.response,walletKeys:e.walletKeys,exactMethod:e.exactMethod,signingSurface:e.signingSurface});case`email_otp`:return await zu({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 Vu={listPendingWalletRegistrationCommits:Hu,completeWalletRegistrationNearProvisioning:Zn,publishPendingWalletRegistrationCommit:Uu};async function Hu(){return await B.initialize(),await B.listPendingWalletRegistrationCommits()}async function Uu(e){return await B.publishPendingWalletRegistrationCommit(e)}function Wu(e){return e instanceof Error?e:Error(String(e||`pending registration replay failed`))}function Gu(e){return e.operation===`near_provisioning`&&e.phase===`joined`}function Ku(e,t){let n=e.localMaterial.ed25519.metadata,r=e.localMaterial.ed25519.localMaterial;return{binding:{kind:$e,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 qu(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:${Oe(t)}`}function Ju(e,t,n){let r=e.localMaterial.ed25519.metadata,i=e.localMaterial.custodyCommit;if(e.auth.kind===`passkey`){if(Jc({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 Yc({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 Yu(e,t){let n=t.registrationEstablishedSession.session,r=n.tokens.kind===`near_ed25519`||n.tokens.kind===`near_ed25519_and_evm_family_ecdsa`?n.tokens.ed25519:null,i=e.localMaterial.ed25519.metadata;if(n.walletId!==e.walletId||!r||r.nearAccountId!==t.ed25519.nearAccountId||r.nearEd25519SigningKeyId!==t.ed25519.nearEd25519SigningKeyId||r.routerAbNormalSigning.signingWorkerId!==i.signingWorkerId||!c(r.materialActivation,i.materialActivation))throw Error(`pending registration does not match the committed Wallet Session projection`)}function Xu(e,t){Yu(e,t);let n=t.registrationEstablishedSession;if(n.kind===`issued`){if(n.session.walletSession.walletId!==e.walletId||n.session.walletSession.authMethodId!==e.walletAuthMethodId)throw Error(`pending registration issued a Wallet Session for another auth method`);return}if(n.next!==`unlock_exact_method`)throw Error(`pending registration replay has an invalid continuation`)}function Zu(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 Ju(e,t,qu(e)),t}function Qu(e,t){let n=Zu(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 Xu(e,n),n}async function $u(e,t){let n=qu(e),r={walletId:e.walletId,nearAccountId:L(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:Ku(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 et({...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=ut(t.authority);if(!i)throw Error(`pending Email OTP registration replay returned an invalid authority`);return await nt({...r,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:i})}function ed(e,t,n){return{pending:e,authority:t.authority,foundingAuthority:{authority:t.foundingAuthority,authMethod:t.foundingAuthMethod},request:{operation:e.operation,registrationCeremonyId:e.registrationCeremonyId,idempotencyKey:e.idempotencyKey,walletId:e.walletId,walletAuthMethodId:e.walletAuthMethodId},ecdsaContinuity:[],walletSessionPublication:t.registrationEstablishedSession.kind===`issued`?{kind:`issued`,walletSession:t.registrationEstablishedSession.session.walletSession,operationCredential:t.registrationEstablishedSession.session.operationCredential}:{kind:`credential_free_projection`,walletSession:t.registrationEstablishedSession.session.walletSession},registration:n}}function td(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:td(t),walletCustodyCommit:t.localMaterial.custodyCommit}}async function rd(e){let t=nd(e.relayerUrl,e.pending),n=await e.ports.completeWalletRegistrationNearProvisioning(t);return Qu(e.pending,n)}async function id(e){let t=await Zn({...nd(e.relayerUrl,e.pending),headers:Ee(e.operationCredential)}),n=Qu(e.pending,t),r=n.registrationEstablishedSession.session;if(r.tokens.kind!==`near_ed25519_and_evm_family_ecdsa`)throw Error(`Persisted mixed registration has no NEAR session`);let i=r.tokens.ed25519,a=Ut({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(/\/$/,``)}${Vt}`,{method:`POST`,headers:{...Ee(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 l=Wr(Reflect.get(s,`capability`)),u=e.pending.localMaterial.ed25519.metadata;if(l.registrationContinuity.kind!==`registration`||l.applicationBinding.wallet_id!==e.pending.walletId||l.applicationBinding.near_ed25519_signing_key_id!==u.nearEd25519SigningKeyId||l.lifecycle.lifecycleId!==e.pending.localMaterial.ed25519.activationReference.lifecycle_id||l.lifecycle.thresholdSessionId!==i.thresholdSessionId||l.lifecycle.signingWorkerId!==u.signingWorkerId||l.applicationBinding.key_creation_signer_slot!==u.signerSlot||A(Uint8Array.from(l.registeredPublicKey))!==u.registeredPublicKeyB64u||!c(l.materialActivation,u.materialActivation))throw Error(`Persisted NEAR registration activation changed identity`);let d=l.registrationContinuity;return{joined:{commitPayload:e.pending.localMaterial.custodyCommit,activationReference:e.pending.localMaterial.ed25519.activationReference,localMaterial:e.pending.localMaterial.ed25519.localMaterial,metadata:ca({material:Ku(e.pending,n),activation:{materialActivation:l.materialActivation,lifecycleId:l.lifecycle.lifecycleId,signingRootVersion:l.lifecycle.rootShareEpoch,signingRootId:l.applicationBinding.signing_root_id,signerSetId:l.lifecycle.signerSetId,thresholdSessionId:l.lifecycle.thresholdSessionId,activationTranscriptB64u:A(Uint8Array.from(d.activationTranscript)),activationCapabilityBindingB64u:A(Uint8Array.from(l.activeCapabilityBinding))}})},admissionRequest:d.admissionRequest,admissionReceipt:d.admissionReceipt}}async function ad(e){let t=await rd(e),n=await $u(e.pending,t);return await e.ports.publishPendingWalletRegistrationCommit(ed(e.pending,t,n)),{kind:`published`,registrationCeremonyId:e.pending.registrationCeremonyId}}async function od(e){let t=e.ports||Vu,n=await t.listPendingWalletRegistrationCommits(),r=[];for(let i of n){if(Qc(i)||$c(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(Gu(i))try{r.push(await ad({relayerUrl:e.relayerUrl,pending:i,ports:t}))}catch(e){r.push({kind:`failed`,registrationCeremonyId:i.registrationCeremonyId,error:Wu(e)})}}return r}const sd={activateWalletRegistration:Jn,publishPendingWalletRegistrationCommit:Uu,unlockPendingEcdsaRegistration:Bu};async function cd(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(!Qc(t)&&!$c(t))throw Error(`pending registration commit is not ECDSA-enabled`);return t}async function ld(e){if(e.pending.auth.kind!==e.exactMethod.kind)throw Error(`pending registration requires its exact authentication method`);return await Cl({relayerUrl:e.relayerUrl,sessionPolicy:e.sessionPolicy,pending:e.pending,exactMethod:e.exactMethod,signingSurface:e.signingSurface,ports:sd,nearContext:e.nearContext,nearCompletion:e.nearCompletion,onEvent:e.onEvent})}async function ud(e){let t=performance.now();pr(`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);pr(`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{pr(`evm-family`,{event:`ecdsa_session_prefill`,trigger:e.trigger,chainTarget:e.chainTarget,status:`failed`,reason:`unexpected_error`,durationMs:performance.now()-t})}}const dd=new Map,fd=new Set;function pd(e,t){for(let n of fd)try{n(e,t)}catch{}}function md(e,t){let n=String(e),r=dd.get(n);if(r)return r;let i={state:{status:`near_pending`,updatedAtMs:t},inFlight:null};return dd.set(n,i),i}function hd(e){return dd.get(String(e))?.state??null}async function gd(e){let t=dd.get(String(e));return t?t.inFlight?await t.inFlight:t.state:null}function _d(e,t){let n=md(e,t.updatedAtMs);n.state.status===`near_ready`&&t.status!==`near_ready`||(n.state=t,pd(e,t))}function vd(e){return fd.add(e),()=>{fd.delete(e)}}function yd(e){let t=md(e.walletId,e.nowMs());if(t.inFlight)return t.inFlight;if(t.state.status===`near_ready`)return Promise.resolve(t.state);_d(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,_d(e.walletId,n),n));return t.inFlight=n,n}function bd(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 xd(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 Sd(e){let t=await xd(e);return await lt({authority:{walletId:t.walletId,factor:{kind:`passkey`,credentialIdB64u:t.credentialIdB64u},verifier:{kind:`webauthn`,rpId:t.rpId},bindingId:t.walletAuthMethodId}})}const Cd=[`walletId`,`envelopeId`,`factor`,`envelopeRevision`,`binding`,`ownership`];function wd(e){let t=Td(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=Qt({kind:rn,envelopeId:t.envelopeId,walletId:t.walletId,binding:t.binding,factor:t.factor,ownership:$t(t.ownership,`recoveryReplacementEnvelope.binding.ownership`),envelopeVersion:rn,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 Td(e){let t;try{t=JSON.parse(e)}catch{throw Error(`recovery replacement envelope binding is not JSON`)}let n=E(t,`recoveryReplacementEnvelope.binding`);return te(n,Cd,`recoveryReplacementEnvelope.binding`),n}const Ed=`passkeyCustodyEnvelopeCacheV1`,Dd=`passkey_custody_envelope_cache_v1`;let Od={kind:`unconfigured`};const kd=new Map;function Ad(e){throw Error(`unknown passkey custody session cache persistence state: ${String(e)}`)}function jd(){switch(Od.kind){case`configured`:return Od.persistence;case`unconfigured`:throw Error(`passkey custody session cache persistence is not configured`);default:return Ad(Od)}}function Md(e){Od={kind:`configured`,persistence:e}}function Nd(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 Pd(){return{kind:Dd,envelopes:[]}}function Fd(e){if(e==null)return Pd();if(typeof e!=`object`||Array.isArray(e))throw Error(`passkey custody envelope cache is invalid`);let t=e;if(t.kind!==Dd||!Array.isArray(t.envelopes))throw Error(`passkey custody envelope cache has an invalid shape`);return{kind:Dd,envelopes:t.envelopes.map(e=>{let t=Qt(e);if(!en(t.binding))throw Error(`generic passkey custody cache cannot contain an Ed25519 export root`);return t})}}async function Id(){return Fd(await jd().readCacheEntry(Ed))}async function Ld(e){await jd().writeCacheEntry(Ed,e)}async function Rd(e){if(e.envelope.lifecycle.state!==`active`)throw Error(`passkey custody session envelope is not active`);if(!en(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=Nd(String(e.walletId),String(e.credentialIdB64u));kd.set(t,e.envelope);let n=(await Id()).envelopes.filter(e=>e.factor.kind!==`passkey`||Nd(String(e.walletId),String(e.factor.credentialIdB64u))!==t);n.push(e.envelope),await Ld({kind:Dd,envelopes:n.slice(-32)})}async function zd(e){let t=Nd(String(e.walletId),String(e.credentialIdB64u)),n=kd.get(t);if(n)return n;let r=(await Id()).envelopes.find(e=>e.lifecycle.state===`active`&&e.factor.kind===`passkey`&&Nd(String(e.walletId),String(e.factor.credentialIdB64u))===t);return r?(kd.set(t,r),r):null}function Bd(e){return Math.max(0,Math.round(performance.now()-e))}function Vd(){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 Hd(e){let t=performance.now(),n=gl(e.credential,`Passkey registration authority`),r=Bd(t),i=performance.now(),a=Ln(e.credential),o=Bd(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 Ud(e){let t=performance.now();return Hd({credential:await e,diagnostics:Vd(),requestConfirmationMs:Bd(t)})}async function Wd(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=Bd(t),i=n.registrationDiagnostics??Vd();return Hd({credential:n.credential,diagnostics:i,requestConfirmationMs:r})}function Gd(e){let t=e.trim();if(!t)throw Error(`Registration finalize idempotency key is required`);return t}function Kd(e){let t=g(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=ae(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 qd(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`,...Kd(t)}}function Jd(e){let t=Zd(e,`wallet/email-otp/challenge signerSelection`);if(t.kind===`ed25519_only`)return{kind:`ed25519_only`,...Kd(t)};if(t.kind!==`ecdsa`)throw Error(`wallet/email-otp/challenge signerSelection kind is invalid`);return{kind:`ecdsa`,keyHandle:Z(t.keyHandle,`wallet/email-otp/challenge keyHandle`),runtimePolicyScope:F(t.runtimePolicyScope),ed25519:qd(t.ed25519)}}var Yd=class extends Error{constructor(e){super(e.message),this.name=`EmailOtpRouteError`;let t=Qd(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 Xd(e){let t=e||globalThis.fetch;if(typeof t!=`function`)throw Error(`fetch is unavailable in this runtime`);return t}function Zd(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} returned invalid JSON`);return e}function Z(e,t){return T(e,t)}function Qd(e){return v(e)}function $d(e){let t={"Content-Type":`application/json`},n=String(e.publishableKey||``).trim();return n&&(t.Authorization=`Bearer ${n}`),t}function ef(e){return e.routeFamily===`registration`?Kl({routeFamily:`registration`,operation:Ue}):Kl({routeFamily:`login`,operation:e.operation??`wallet_unlock`})}function tf(e){let t=Qd(e.challenge.action);if(t&&t!==e.expectedAction)throw Error(`${e.context} returned ${t}; expected ${e.expectedAction}`)}async function nf(e){let t=await Xd(e.fetchImpl)(e.url,{method:`POST`,headers:$d({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=Zd(r,e.url);if(!t.ok||i.ok===!1)throw new Yd({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 rf(e){if(e.restartRegistrationOffer===!0&&e.accountMode!==`register`)throw Error(`restartRegistrationOffer is only valid with register account mode`);let t=await nf({url:h(e.relayUrl,`/auth/google/verify`),fetchImpl:e.fetchImpl,publishableKey:Z(e.publishableKey,`publishableKey`),body:{id_token:Z(e.idToken,`idToken`),account_mode:e.accountMode,project_environment_id:Z(e.projectEnvironmentId,`projectEnvironmentId`),...e.loginWalletId?{wallet_id:Z(e.loginWalletId,`loginWalletId`)}:{},...e.restartRegistrationOffer===!0?{restart_registration_offer:!0}:{}}}),n=Z(t.mode,`auth/google/verify mode`),r=Z(t.walletId,`auth/google/verify walletId`),i=Z(t.providerSubject,`auth/google/verify providerSubject`),a=Qd(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=Zd(t.offer,`auth/google/verify offer`),s=(Array.isArray(o.candidates)?o.candidates:[]).map(af),c=s[0];if(!c)throw Error(`auth/google/verify offer has no wallet candidates`);return{mode:n,walletId:r,providerSubject:i,email:a,registrationAttemptId:Z(t.registrationAttemptId,`auth/google/verify registrationAttemptId`),expiresAtMs:of(t.expiresAtMs,`auth/google/verify expiresAtMs`),offer:{offerId:Z(o.offerId,`auth/google/verify offer.offerId`),selectedCandidateId:Z(o.selectedCandidateId,`auth/google/verify offer.selectedCandidateId`),candidates:[c,...s.slice(1)]}}}function af(e){let t=Zd(e,`auth/google/verify offer candidate`);return{candidateId:Z(t.candidateId,`offer candidate candidateId`),walletId:Z(t.walletId,`offer candidate walletId`)}}function of(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 sf(e){let t=e.operation??`wallet_unlock`;if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpChallenge`,payload:{relayUrl:Z(e.relayUrl,`relayUrl`),walletId:Z(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Z(e.walletAuthMethodId,`walletAuthMethodId`)}:{},routePlan:ef({routeFamily:`login`,operation:t}),otpChannel:qe,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}});let n=await nf({url:h(e.relayUrl,`/wallet/email-otp/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Z(e.walletId,`walletId`),...e.walletAuthMethodId?{walletAuthMethodId:Z(e.walletAuthMethodId,`walletAuthMethodId`)}:{},otpChannel:e.otpChannel||`email_otp`,operation:t,...e.operationFingerprintDigest?{operationFingerprintDigest:e.operationFingerprintDigest}:{}}}),r=Zd(n.challenge,`wallet/email-otp/challenge`);tf({challenge:r,expectedAction:He.login,context:`wallet/email-otp/challenge`});let i=Ht(n.delivery,`wallet/email-otp/challenge delivery`),a=Number(r.expiresAtMs),o={challengeId:Z(r.challengeId,`wallet/email-otp/challenge challengeId`),otpChannel:qe,delivery:i,emailHint:i.emailHint,ownerProofBindingDigest:Z(r.ownerProofBindingDigest,`wallet/email-otp/challenge ownerProofBindingDigest`),walletAuthMethodId:Z(n.walletAuthMethodId,`wallet/email-otp/challenge walletAuthMethodId`),signerSelection:Jd(n.signerSelection)};return Number.isFinite(a)&&(o.expiresAtMs=a),o}async function cf(e){if(!e.fetchImpl&&e.workerCtx)return await e.workerCtx.requestWorkerOperation({kind:`emailOtp`,request:{type:`requestEmailOtpEnrollmentChallenge`,payload:{relayUrl:Z(e.relayUrl,`relayUrl`),walletId:Z(e.walletId,`walletId`),routePlan:ef({routeFamily:`registration`}),otpChannel:qe}}});let t=await nf({url:h(e.relayUrl,`/wallet/email-otp/registration/challenge`),fetchImpl:e.fetchImpl,body:{walletId:Z(e.walletId,`walletId`),otpChannel:e.otpChannel||`email_otp`}}),n=Zd(t.challenge,`wallet/email-otp/registration/challenge`);tf({challenge:n,expectedAction:He.registration,context:`wallet/email-otp/registration/challenge`});let r=Ht(t.delivery,`wallet/email-otp/registration/challenge delivery`),i=Number(n.expiresAtMs),a={challengeId:Z(n.challengeId,`wallet/email-otp/registration/challenge challengeId`),otpChannel:qe,delivery:r,emailHint:r.emailHint};return Number.isFinite(i)&&(a.expiresAtMs=i),a}function lf(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 uf(e){let t=lf(e.authMethod.email,`email`).toLowerCase(),n=lf(e.authMethod.providerSubject,`providerSubject`),r=lf(e.relayUrl,`relayUrl`),i=lf(e.walletId,`walletId`),a=lf(e.registrationIntentDigestB64u,`registrationIntentDigestB64u`);if(e.authMethod.proofKind===`google_sso_registration`){let r=lf(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:lf(e.authMethod.googleEmailOtpRegistrationOfferId,`googleEmailOtpRegistrationOfferId`),googleEmailOtpRegistrationCandidateId:lf(e.authMethod.googleEmailOtpRegistrationCandidateId,`googleEmailOtpRegistrationCandidateId`),registrationIntentDigestB64u:a},registrationAuthorityId:r,providerSubject:n,email:t}}let o=lf(e.authMethod.otpCode,`otpCode`),s=typeof e.authMethod.challengeId==`string`?e.authMethod.challengeId.trim():``,c=s?null:await cf({relayUrl:r,walletId:i,fetchImpl:e.fetchImpl}),l=s||lf(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:qe,registrationIntentDigestB64u:a},registrationAuthorityId:l,providerSubject:n,email:t}}function df(e,t,n){if(e!==t)throw Error(`${n} does not match the verified add-signer intent`)}function ff(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 pf(e){let t=w(e.verifiedIntent.addSignerIntentGrant,`add-signer intent grant`);return{routerOrigin:w(e.httpTransport.routerOrigin,`Yao Router origin`),routing:{kind:`discovery`},authorization:{kind:`bearer`,value:`Bearer ${t}`},fetch:e.httpTransport.fetch}}async function mf(e){let t=e.verifiedIntent.intent,n=t.signerSelection.ed25519;df(String(t.walletId),String(e.verifiedAuthority.walletId),`Passkey authority wallet ID`),df(e.verifiedIntent.addSignerIntentDigestB64u,e.verifiedAuthority.addSignerIntentDigestB64u,`Passkey authority intent digest`),w(e.verifiedAuthority.credentialIdB64u,`passkey credential ID`);let r=F(t.runtimePolicyScope),i=re(r),a=Pt(e.admissionRequest);if(!a.ok)throw Error(a.message);let o=a.value,s=w(e.verifiedIntent.addSignerCeremonyId,`add-signer ceremony ID`);if(df(o.scope.lifecycle_id,s,`Yao lifecycle ID`),df(o.scope.threshold_session_id,s,`Yao Threshold Session ID`),df(o.scope.account_id,String(t.walletId),`Yao account ID`),df(o.scope.signer_set_id,String(Ae(n.signerSlot)),`Yao signer-set ID`),df(o.scope.root_share_epoch,r.signingRootVersion,`Yao root-share epoch`),df(o.application_binding.wallet_id,String(t.walletId),`Yao application wallet ID`),df(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`);ff(n.participantIds,o.participant_ids);let c=await Yt({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 df(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:pf(e)}}async function hf(e){let t=await mf(e),n=await new $i(t.transportConfig).send({kind:`admit`,path:jt,body:t.request});if(!n.ok)throw Error(n.message);let r=Rt(n.value);if(!r.ok)throw Error(r.message);return{request:t.request,receipt:r.value}}var gf=class e{constructor(e){this.kind=`restorable_mpc_material_ref`,this.protocolProof=!0,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 _f(e){return gf.build(e)}const vf=`router_ab_ed25519_yao_active_client_v1`,yf=`chacha20poly1305-hkdf-sha256-prf-first-v1`,bf=(1n<<64n)-1n;function Q(e,t){let n=String(e??``).trim();if(!n)throw Error(`${t} is required for local Ed25519 material`);return n}function xf(e,t){let n=Number(e);if(!Number.isSafeInteger(n)||n<1)throw Error(`${t} must be a positive safe integer`);return n}function Sf(e,t){let n=f(e);if(!n.ok)throw Error(`${t}: ${n.error.message}`);return n.value}function Cf(e,t){let n=Q(e,t);if(j(n).length!==32)throw Error(`${t} must encode 32 bytes`);return n}function wf(e){if(!Array.isArray(e)||e.length!==2)throw Error(`participantIds must contain exactly two entries`);let t=[xf(e[0],`participantIds[0]`),xf(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 Tf(e,t){let n=Q(e,t);if(!/^(0|[1-9][0-9]*)$/.test(n)||BigInt(n)>bf)throw Error(`${t} must be a canonical u64`);return n}function Ef(e,t,n){let r=e.signingLane.identity.signer;return{walletId:Q(r.account.wallet.walletId,`walletId`),nearAccountId:Q(r.account.nearAccountId,`nearAccountId`),nearEd25519SigningKeyId:Q(r.nearEd25519SigningKeyId,`nearEd25519SigningKeyId`),thresholdSessionId:Sf(e.signingLane.identity.thresholdSessionId,`thresholdSessionId`),signerSlot:xf(r.signerSlot,`signerSlot`),rpId:Q(t,`rpId`),credentialIdB64u:Q(n,`credentialIdB64u`),signingRootId:Q(e.signingRootId,`signingRootId`),signingRootVersion:Q(e.signingRootVersion,`signingRootVersion`),signingWorkerId:Q(e.routerAbNormalSigning.signingWorkerId,`signingWorkerId`)}}function Df(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:vf,walletId:e.identity.walletId,nearAccountId:e.identity.nearAccountId,nearEd25519SigningKeyId:e.identity.nearEd25519SigningKeyId,signerSlot:e.identity.signerSlot,rpId:e.identity.rpId,credentialIdB64u:e.identity.credentialIdB64u,lifecycleId:Q(t.scope.lifecycle_id,`lifecycleId`),thresholdSessionId:Sf(t.scope.threshold_session_id,`thresholdSessionId`),materialActivation:er(t),signingRootId:e.identity.signingRootId,signingRootVersion:e.identity.signingRootVersion,signerSetId:Q(t.scope.signer_set_id,`signerSetId`),signingWorkerId:e.identity.signingWorkerId,participantIds:[t.participantIds[0],t.participantIds[1]],registeredPublicKeyB64u:A(t.registeredPublicKey),signingWorkerVerifyingShareB64u:A(t.signingWorkerVerifyingShare),stateEpoch:t.stateEpoch.toString(10),activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))}}function Of(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 kf(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 Af(e){let t=C(e);if(!t||t.kind!==vf)throw Error(`Stored Ed25519 Client material binding is invalid`);let n=g(t.materialActivation);if(!n.ok)throw Error(n.error.message);let r={kind:vf,walletId:Q(t.walletId,`binding.walletId`),nearAccountId:Q(t.nearAccountId,`binding.nearAccountId`),nearEd25519SigningKeyId:Q(t.nearEd25519SigningKeyId,`binding.nearEd25519SigningKeyId`),signerSlot:xf(t.signerSlot,`binding.signerSlot`),rpId:Q(t.rpId,`binding.rpId`),credentialIdB64u:Q(t.credentialIdB64u,`binding.credentialIdB64u`),lifecycleId:Q(t.lifecycleId,`binding.lifecycleId`),thresholdSessionId:Sf(t.thresholdSessionId,`binding.thresholdSessionId`),materialActivation:n.value,signingRootId:Q(t.signingRootId,`binding.signingRootId`),signingRootVersion:Q(t.signingRootVersion,`binding.signingRootVersion`),signerSetId:Q(t.signerSetId,`binding.signerSetId`),signingWorkerId:Q(t.signingWorkerId,`binding.signingWorkerId`),participantIds:wf(t.participantIds),registeredPublicKeyB64u:Cf(t.registeredPublicKeyB64u,`binding.registeredPublicKeyB64u`),signingWorkerVerifyingShareB64u:Cf(t.signingWorkerVerifyingShareB64u,`binding.signingWorkerVerifyingShareB64u`),stateEpoch:Tf(t.stateEpoch,`binding.stateEpoch`),activationTranscriptB64u:Cf(t.activationTranscriptB64u,`binding.activationTranscriptB64u`),activationCapabilityBindingB64u:Cf(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 jf(e,t){let n=Af(e);return kf(n,t),n}function Mf(e){let t=C(e);if(!t)throw Error(`Stored Ed25519 Client stable server scope is invalid`);let n=ae(t.runtimePolicyScope);if(!n)throw Error(`Stored Ed25519 Client server runtime policy scope is invalid`);return{relayerKeyId:Q(t.relayerKeyId,`stableServerScope.relayerKeyId`),participantIds:wf(t.participantIds),runtimePolicyScope:n,routerAbNormalSigning:se(t.routerAbNormalSigning)}}async function Nf(e){let t=e.stored.payload,n=C(t);if(!n)throw Error(`Stored Ed25519 Client local material locator is invalid`);let r=Af(n.binding),i=`ed25519:${Oe(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!==vf||e.stored.schemaVersion!==3||e.stored.publicKey!==i||e.stored.signerId!==r.nearEd25519SigningKeyId||a?.encVersion!==1||a.alg!==yf)throw Error(`Stored Ed25519 Client local material record is invalid`);let o=St({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 lt({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:_f(JSON.stringify([e.stored.profileId,e.stored.signerSlot,e.stored.chainIdKey,e.stored.keyKind,r.materialActivation.activationId])),stableServerScope:Mf(n.stableServerScope)}}function Pf(e){let t=C(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!==vf||t?.kind!==vf||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 Ff(e,t){let n=Q(t,`thresholdSessionId`);return{kind:ki,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:Tt(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 If(){let e=new Uint8Array(12);return globalThis.crypto.getRandomValues(e),e}function Lf(e){let t=e.identity,n=e.activeClient.metadata(),r=Df({identity:t,metadata:n}),i=If(),a=e.activeClient.sealLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Of(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:vf,algorithm:`ed25519`,publicKey:`ed25519:${Oe(n.registeredPublicKey)}`,signerId:t.nearEd25519SigningKeyId,payload:o,payloadEnvelope:{encVersion:1,alg:yf,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:vf,schemaVersion:3,signerId:t.nearEd25519SigningKeyId})},timestamp:Date.now(),schemaVersion:3}}async function Rf(e){let t=await yn(e.store,{accountRefs:zn(e.identity.nearAccountId)});if(!t)throw Error(`Local Ed25519 material requires a persisted wallet profile`);let n=Lf({target:t,activeClient:e.activeClient,identity:e.identity,stableServerScope:e.stableServerScope,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u),lifecycle:{kind:`registration_or_rehydration`}});await e.store.storeKeyMaterial(n)}async function zf(e){let t=Q(e.nearAccountId,`nearAccountId`),n=await yn(e.store,{accountRefs:zn(t)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,xf(e.signerSlot,`signerSlot`),n.chainIdKey,vf);return r?(Pf({stored:r,target:n,input:e}),{kind:`available`,locator:await Nf({stored:r,target:n,authority:e.authority})}):{kind:`unavailable`}}function Bf(e){return e.publicLocator.walletId===e.identity.walletId&&e.publicLocator.nearAccountId===e.identity.nearAccountId&&e.publicLocator.signerSlot===e.identity.signerSlot}async function Vf(e){let t=St({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 lt({authority:t});if(n.authorityDigest!==e.authority.authorityDigest)throw Error(`Passkey Ed25519 authority does not match the Wallet Session`);return n}function Hf(e){if(!e||e.activeClient.status().kind!==`active`)return{kind:`absent`};let t=er(e.activeClient.metadata());return{kind:`live`,runtime:Xn(t),materialActivation:t}}function Uf(e){return{kind:`blocked`,plan:e}}async function Wf(e){let t=await Vf(e),n=e.publicLocator.kind===`available`&&!Bf({publicLocator:e.publicLocator,identity:e.identity})?{kind:`conflict`}:e.publicLocator.kind===`available`?{...e.publicLocator,authority:t}:e.publicLocator,r;try{r=await zf({store:e.store,walletId:String(e.identity.walletId),nearAccountId:String(e.identity.nearAccountId),nearEd25519SigningKeyId:String(e.identity.nearEd25519SigningKeyId),signerSlot:e.identity.signerSlot,rpId:e.identity.rpId,credentialIdB64u:e.identity.credentialIdB64u,authority:t})}catch{return{expectedAuthority:t,publicLocator:n,sealed:{kind:`corrupt`}}}return{expectedAuthority:t,publicLocator:n,sealed:r.kind===`available`?{kind:`available`,authority:r.locator.authority,materialActivation:r.locator.materialActivation,sealedMaterial:r.locator.sealedMaterial}:{kind:`missing`}}}function Gf(e,t){let n=Qn({publicLocator:e,sealed:{kind:`corrupt`},runtime:t,unlockSource:{kind:`unavailable`}});if(n.kind!==`blocked`)throw Error(`Corrupt Near Ed25519 material resolved to an executable hydration plan`);return n}async function Kf(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await Wf(e);if(r.kind===`corrupt`)return{kind:`blocked`,plan:Gf(n,{kind:`absent`})};let i=Qn({publicLocator:n,sealed:r,runtime:{kind:`absent`},unlockSource:{kind:`available`,authority:t}});switch(i.kind){case`rehydrate_material_activation`:return{kind:`prepared`,plan:i};case`blocked`:return{kind:`blocked`,plan:i};case`use_live_runtime`:case`reauthorize_public_anchor`:throw Error(`Sealed Near Ed25519 preparation resolved an invalid hydration plan`);default:throw Error(`Unsupported sealed Near Ed25519 preparation plan`)}}async function qf(e){let{expectedAuthority:t,publicLocator:n,sealed:r}=await Wf(e);if(r.kind===`corrupt`)return Uf(Gf(n,Hf(e.liveMaterial)));let i=e.unlockSource.kind===`available`?{kind:`available`,authority:t}:{kind:`unavailable`},a=Qn({publicLocator:n,sealed:r,runtime:Hf(e.liveMaterial),unlockSource:i});switch(a.kind){case`use_live_runtime`:{let t=e.liveMaterial;if(!t||t.activeClient.status().kind!==`active`||!c(a.materialActivation,er(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 Jf({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=er(t.activeClient.metadata());if(!c(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 Uf(a);case`reauthorize_public_anchor`:throw Error(`Near Ed25519 material retirement requires explicit reauthorization`);default:throw Error(`Unsupported Near Ed25519 hydration plan`)}}async function Jf(e){let t=e.identity,n=await yn(e.store,{accountRefs:zn(t.nearAccountId)});if(!n)return{kind:`unavailable`};let r=await e.store.getKeyMaterial(n.profileId,t.signerSlot,n.chainIdKey,vf);return r?Yf({stored:r,target:n,identity:t,ownedPasskeyPrfFirst:j(e.passkeyPrfFirstB64u)}):{kind:`unavailable`}}async function Yf(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!==vf||n.schemaVersion!==3||i?.encVersion!==1||i.alg!==yf)throw Error(`Stored Ed25519 Client material record is invalid`);let a=jf(n.payload?.binding,t),o=Ff(a,t.thresholdSessionId),s=`ed25519:${Oe(o.registeredPublicKey)}`;if(n.publicKey!==s)throw Error(`Stored Ed25519 Client public key does not match its sealed binding`);return{kind:`rehydrated`,activeClient:(await ia.initializeBundled()).importLocalMaterial({ownedPasskeyPrfFirst:e.ownedPasskeyPrfFirst,binding:Of(a),sealed:{kind:`router_ab_ed25519_yao_sealed_local_material_v1`,nonce:j(i.nonce),ciphertext:j(i.ciphertext)},metadata:o})}}function Xf(e,t){return e.requestWorkerOperation(t)}function Zf(e,t,n){return e.requestOperation({kind:`walletCustodyCeremony`,request:{type:t,payload:n}})}function Qf(e){return Zf.bind(void 0,e)}let $f=null,ep=null,tp=null,np=null;function rp(e){np=e}function ip(e){let t=np;if(!t||e.kind!==`unlocked_wallet_ed25519_export_root_capability_v1`)return;let n=e.upgradedEnvelope;if(n!==void 0)try{t({walletId:e.walletId,walletAuthMethodId:e.walletAuthMethodId,walletSessionId:e.walletSessionId,envelope:n})}catch(e){console.warn(`[walletCustody] the upgraded custody envelope was not forwarded:`,e instanceof Error?e.message:String(e||`unknown error`))}}function ap(e){return{requestOperation:Xf.bind(void 0,e)}}function op(){tp!==null&&(clearTimeout(tp),tp=null)}function sp(){op(),$f=null,ep=null}function cp(e,t){op();let n=Math.max(0,e.expiresAtMs-Date.now());tp=setTimeout(()=>{if(tp=null,!($f!==e||ep!==t)){if(e.expiresAtMs>Date.now()){cp(e,t);return}hp(t,{kind:`capability`,capabilityHandleId:e.capabilityHandleId})}},Math.min(n,2147483647))}function lp(e){if(!_(e))return null;if(e.kind===`unlocked_linked_device_ed25519_client_root_capability_v1`)return up(e);let t=Object.keys(e),n=t.includes(`upgradedEnvelope`),r=n?[`kind`,`capabilityHandleId`,`walletId`,`walletAuthMethodId`,`walletSessionId`,`expiresAtMs`,`upgradedEnvelope`]:[`kind`,`capabilityHandleId`,`walletId`,`walletAuthMethodId`,`walletSessionId`,`expiresAtMs`];if(t.length!==r.length||t.some(e=>!r.includes(e))||e.kind!==`unlocked_wallet_ed25519_export_root_capability_v1`)return null;let a=m(e.capabilityHandleId),s=i(e.walletId),c=o(e.walletAuthMethodId),l=ge(e.walletSessionId);if(!a.ok||!s.ok||!c.ok||!l.ok)return null;let u;try{u=ne(e.expiresAtMs,`unlocked Ed25519 export-root capability expiry`)}catch{return null}let d;if(n)try{d=Qt(e.upgradedEnvelope)}catch{}return{kind:`unlocked_wallet_ed25519_export_root_capability_v1`,capabilityHandleId:a.value,walletId:s.value,walletAuthMethodId:c.value,walletSessionId:l.value,expiresAtMs:u,...d?{upgradedEnvelope:d}:{}}}function up(e){let t=[`kind`,`capabilityHandleId`,`walletId`,`walletAuthMethodId`,`walletSessionId`,`expiresAtMs`],n=Object.keys(e);if(n.length!==t.length||n.some(e=>!t.includes(e)))return null;let r=m(e.capabilityHandleId),a=i(e.walletId),s=o(e.walletAuthMethodId),c=ge(e.walletSessionId);if(!r.ok||!a.ok||!s.ok||!c.ok)return null;let l;try{l=ne(e.expiresAtMs,`unlocked Ed25519 Client-root capability expiry`)}catch{return null}return{kind:`unlocked_linked_device_ed25519_client_root_capability_v1`,capabilityHandleId:r.value,walletId:a.value,walletAuthMethodId:s.value,walletSessionId:c.value,expiresAtMs:l}}async function dp(e,t){let n=t.existingEnvelope.binding;if(!en(n)&&n.kind!==`ed25519_yao_client_root_v1`)return;let r=t.existingFactorSecret.slice(),i;try{i=await e.requestOperation({kind:`walletCustodyCeremony`,request:{type:`establishUnlockedWalletEd25519ExportRootCapability`,payload:{existingEnvelope:t.existingEnvelope,existingFactorSecret:r.buffer,walletId:t.walletId,walletAuthMethodId:t.walletAuthMethodId,walletSessionId:t.walletSessionId,expiresAtMs:t.expiresAtMs},transfer:[r.buffer]}})}finally{r.byteLength>0&&r.fill(0)}let a=lp(i);if(a===null)throw Error(`unlocked Ed25519 export-root capability worker returned no reference`);return op(),$f=a,ep=e,cp(a,e),ip(a),a}function fp(e){let t=pp(e);return t?.kind===`unlocked_wallet_ed25519_export_root_capability_v1`?t:void 0}function pp(e){let t=$f;if(t&&t.walletId===e){if(t.expiresAtMs<=Date.now()){let e=ep;e?hp(e,{kind:`capability`,capabilityHandleId:t.capabilityHandleId}):sp();return}return t}}function mp(){sp()}async function hp(e,t){let n=$f;n!==null&&(t.kind===`all`||t.kind===`capability`&&t.capabilityHandleId===n.capabilityHandleId||t.kind===`wallet`&&t.walletId===n.walletId||t.kind===`wallet_session`&&t.walletSessionId===n.walletSessionId)&&sp();try{await e.requestOperation({kind:`walletCustodyCeremony`,request:{type:`destroyUnlockedWalletEd25519ExportRootCapabilities`,payload:{scope:t}}})}catch{}}function gp(e){let t=s(e);if(!t.ok)throw Error(t.error.message);return t.value}function _p(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 vp(e){let t=e.configs.signing.emailOtp.authPolicy;return cr({policy:t,retention:`session`,reason:`login`,authority:e.authority})}async function yp(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:_p({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(!at(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=ut({...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 vp({configs:e.configs,authority:i}),authority:i}}default:return q(e.authMethod)}}function bp(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||!jc(e.session.chainTargets,e.expectedChainTargets))throw Error(`ECDSA registration family session target projection is incomplete`);return Oc(e.walletKeys),kc({session:e.session,walletKeys:e.walletKeys}),Bc({session:e.session,walletKeys:e.walletKeys}),{kind:`evm_family_ecdsa`,session:e.session,walletKeys:[t,...n],expectedChainTargets:[r,...i]}}function xp(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 Sp(e){return{kind:`registration_persistence_plan_v1`,walletId:e.walletId,auth:e.auth,ecdsa:e.ecdsa,foundingAuthority:e.foundingAuthority,foundingAuthMethod:e.foundingAuthMethod}}function Cp(e){let t=Tn(e);if(!t)throw Error(`pending wallet registration commit is invalid`);return t}function wp(e){let t=R(e.walletId),n=o(e.walletAuthMethodId);if(!n.ok)throw Error(n.error.message);let r=Tp(e.auth),i={kind:`pending_wallet_registration_commit_v1`,registrationCeremonyId:Ep(e.registrationCeremonyId,`registrationCeremonyId`),idempotencyKey:Ep(e.idempotencyKey,`idempotencyKey`),walletId:t,walletAuthMethodId:n.value,signedSetup:Ep(e.signedSetup,`signedSetup`),auth:r,createdAtMs:e.createdAtMs,updatedAtMs:e.updatedAtMs};if(e.operation===`registration_activate`)return Cp({...i,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 Cp({...i,operation:e.operation,phase:`joined`,completion:e.completion,signerPlanKind:e.signerPlanKind,localMaterial:e.localMaterial})}function Tp(e){if(e.kind===`passkey`){let t=gp(e.rpId),r=n(e.credentialIdB64u);if(!r.ok)throw Error(r.error.message);return{kind:`passkey`,rpId:t,credentialIdB64u:r.value,transports:[...e.transports]}}let t=a(e.email);if(!t.ok)throw Error(t.error.message);let r=u(e.registrationAuthorityId);if(!r.ok)throw Error(r.error.message);let i=l(e.providerSubject);if(!i.ok)throw Error(i.error.message);return{kind:`email_otp`,email:t.value,registrationAuthorityId:r.value,providerSubject:i.value,enrollment:{enrollmentSealKeyVersion:Ep(e.enrollment.enrollmentSealKeyVersion,`enrollment.enrollmentSealKeyVersion`),serverSealedFactorCiphertextB64u:Ep(e.enrollment.serverSealedFactorCiphertextB64u,`enrollment.serverSealedFactorCiphertextB64u`),clientUnlockPublicKeyB64u:Ep(e.enrollment.clientUnlockPublicKeyB64u,`enrollment.clientUnlockPublicKeyB64u`),unlockKeyVersion:Ep(e.enrollment.unlockKeyVersion,`enrollment.unlockKeyVersion`)}}}function Ep(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 Dp(e){e.registrationTiming.record(`ecdsaRegistrationTargetCount`,e.plan.ecdsa.walletKeys.length);let t=performance.now();try{return await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:R(e.plan.walletId),session:e.plan.ecdsa.session,walletKeys:[...e.plan.ecdsa.walletKeys]})}finally{e.registrationTiming.record(`ecdsaRegistrationSessionFinalizeMs`,ka(t))}}async function Op(e){if(e.plan.auth.kind===`passkey`){await e.context.signingEngine.finalizeWalletEcdsaRegistration({walletId:e.plan.walletId,rpId:gp(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 kp(e){let t=await Dp(e),n=performance.now();try{if(await Op({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=a(e.plan.auth.email);if(!t.ok)throw Error(t.error.message);let n=await B.retainVerifiedEmailOtpLocalPresentation({walletId:e.plan.walletId,walletAuthMethodId:e.plan.foundingAuthMethod.walletAuthMethodId,emailAddress:t.value});if(n.kind!==`retained`)throw Error(`Verified Email OTP presentation was not retained: ${n.reason}`)}}finally{e.registrationTiming.record(`ecdsaRegistrationLocalRecordPersistenceMs`,ka(n))}await vr(Fn,e.plan.ecdsa.session.registrationEstablishedSession)}function Ap(e){return kp.bind(void 0,e)}async function jp(e){await e.registrationTiming.measure(`ecdsaRegistrationPersistenceMs`,Ap(e))}var Mp=e({REGISTRATION_TIMING_LABEL:()=>pa,addSigner:()=>qh,cancelHostedPasskeyRegistration:()=>vm,prepareHostedPasskeyRegistration:()=>_m,registerPreparedHostedPasskeyRegistration:()=>bm,registerWallet:()=>Ph,resumeNearRegistrationAfterUnlock:()=>fh,startHostedPasskeyRegistrationCredential:()=>ym});async function Np(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 Pp({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;case`wallet_recovery_code_backup_deferred_v1`:await _r.write({walletId:t,recoveryCodes:r});return;default:throw Error(`Wallet recovery-code backup result is invalid`)}}async function Pp(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 gr(e.request,e.context.signingEngine.getWalletIframeSurfaceMeasurementBinding());case`custom_handler`:return await e.backup.handler(e.request);default:return q(e.backup)}}function Fp(e){e.byteLength>0&&new Uint8Array(e).fill(0)}function Ip(e){let t=e.established.metadata;return{binding:{kind:$e,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 Lp(e){let t=e.metadata;return{materialActivation:er(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 Rp(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 zp(e){let t=e.commit.establishedCustody;if(!t)throw Error(`Passkey registration custody commit is missing its established envelope`);return wd({expectedWalletId:e.walletId,replacement:t,activatedAtMs:e.activatedAtMs})}async function Bp(e){await e.signingEngine.establishUnlockedWalletEd25519ExportRootCapabilityV1({existingEnvelope:zp({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 Vp(e){try{await dp(ap(e.context.signingEngine.getSignerWorkerContext()),{existingEnvelope:zp({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 Hp(e){let t=zp(e);if(t.factor.kind!==`passkey`)throw Error(`Passkey registration custody commit has a non-passkey factor`);await Rd({walletId:e.walletId,credentialIdB64u:t.factor.credentialIdB64u,envelope:t})}function Up(e){let t=e.joined.metadata,n=f(t.scope.threshold_session_id);if(!n.ok)throw Error(`Registration Ed25519 capability has an invalid threshold session`);return{kind:Bt,session:{walletId:e.walletId,nearAccountId:e.nearAccountId,nearEd25519SigningKeyId:e.nearEd25519SigningKeyId,authorityScope:{kind:`email_otp`,provider:ar(e.authContext),providerUserId:or(e.authContext)},thresholdSessionId:n.value,authorizationId:e.sessionState.signingWalletSession.authorizationId,walletSessionId:e.sessionState.walletSessionId,quotaId:e.sessionState.quotaId,expiresAtMs:e.sessionState.signingWalletSession.expiresAtMs,participantIds:t.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:t.materialActivation,activeCapabilityBinding:t.activeCapabilityBinding,registeredPublicKey:[...t.registeredPublicKey],nearAccountId:e.nearAccountId,applicationBinding:t.applicationBinding,runtimePolicyScope:e.sessionState.runtimePolicyScope,participantIds:t.participantIds,lifecycle:{lifecycleId:t.scope.lifecycle_id,rootShareEpoch:t.scope.root_share_epoch,accountId:t.scope.account_id,thresholdSessionId:n.value,signerSetId:t.scope.signer_set_id,signingWorkerId:t.scope.signing_worker_id},stateEpoch:Number(t.stateEpoch),registrationContinuity:{kind:`registration`,admissionRequest:e.deferredNear.admissionRequest,admissionReceipt:e.admissionReceipt,activationTranscript:[...t.transcript]}}}}const Wp=Symbol(`hostedPasskeyRegistrationPrepared`),Gp=new WeakMap;function Kp(e){let t=Ne(e);if(!t.ok)throw Error(t.message);return t.value}function qp(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 Jp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`implicit_account`:return t.kind===`implicit_account`&&e.accountIdSource===t.accountIdSource;case`sponsored_named_account`:return t.kind===`sponsored_named_account`&&e.requestedAccountId===t.requestedAccountId&&e.sponsor===t.sponsor;default:return q(e)}}function Yp(e,t){if(e.kind!==t.kind)return!1;switch(e.kind){case`near_ed25519`:return t.kind===`near_ed25519`&&Jp(e.accountProvisioning,t.accountProvisioning)&&e.signerSlot===t.signerSlot&&qp(e.participantIds,t.participantIds)&&e.derivationVersion===t.derivationVersion;case`evm_family_ecdsa`:return t.kind===`evm_family_ecdsa`&&qp(e.participantIds,t.participantIds)&&Ie(e.chainTargets)===Ie(t.chainTargets);default:return q(e)}}function Xp(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||!Yp(r,i))return!1}return!0}function Zp(e){return e.signingEngine.warmCriticalResources.bind(e.signingEngine,{kind:`none`})}function Qp(){return Promise.resolve(Ka())}function $p(e){return e.signers.some(e=>e.kind===`evm_family_ecdsa`)}function em(e){return e.authMethod.kind!==`email_otp`||!Nr(e.signerSelection)?Qp:nm.bind(void 0,{prewarm:e.context.signingEngine.prewarmEmailOtpYao.bind(e.context.signingEngine)})}function tm(e,t){let n=ka(t);return{kind:`failed`,elapsedMs:n,workerPrewarmMs:n,yaoWasmInitMs:0,failureStage:`worker_ready`}}function nm(e){let t=performance.now();return e.prewarm().catch(e=>tm(e,t))}function rm(e){let[t,n]=e;return{kind:`completed`,diagnostics:{...t,emailOtpWorkerPrewarmMs:n.workerPrewarmMs,emailOtpYaoWasmInitMs:n.yaoWasmInitMs,emailOtpYaoPrewarm:n}}}function im(e){return{kind:`failed`,error:e}}function am(e){Vn({relayerUrl:e.relayerUrl,nearEd25519:e.signerSelection.signers.some(e=>e.kind===`near_ed25519`),evmFamilyEcdsa:$p(e.signerSelection)});let t=e.recorder.measure(`registrationWarmupMs`,Zp(e.context)),n=e.recorder.measure(`registrationWarmupEmailOtpYaoWasmInitMs`,em({context:e.context,authMethod:e.authMethod,signerSelection:e.signerSelection}));return $p(e.signerSelection)&&e.context.signingEngine.prewarmEcdsaRegistrationCrypto?.().catch(()=>{}),Promise.all([t,n]).then(rm,im)}function om(e){e.warmup.then(t=>{t.kind===`completed`&&e.recorder.captureWarmupDiagnostics(t.diagnostics)})}function sm(e){return Fe(Kp(e))?.signerSlot??1}async function cm(e){return e.passkeyExecution?.kind===`use_hosted_preparation`?await e.passkeyExecution.authority:await Wd({context:e.context,walletId:e.walletId,signerSlot:e.signerSlot,registrationIntentDigestB64u:e.registrationIntentDigestB64u,options:e.options,confirmationConfigOverride:e.confirmationConfigOverride})}function lm(e){if(e[Wp]!==!0)throw Error(`Invalid hosted passkey registration preparation`);let t=Gp.get(e);if(!t)throw Error(`Hosted passkey registration preparation is unknown`);return t}function um(e){if(e.lifecycle!==`ready`)throw Error(`Hosted passkey registration preparation is no longer usable`);if(Date.now()>=e.prepared.expiresAtMs)throw vm(e.prepared),Error(`Hosted passkey registration preparation expired`);if(e.controller.signal.aborted)throw Error(`Hosted passkey registration preparation was cancelled`);if(!mr.isLiveReservation({reservation:e.prepared.reservation,owner:e.prepared.owner}))throw vm(e.prepared),Error(`Hosted passkey registration prompt reservation is no longer active`)}function dm(e){return x({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:e.walletId,signerSlot:e.signerSlot,rpId:e.rpId,challengeB64u:e.challengeB64u})}function fm(){return Error(`Hosted passkey registration preparation was cancelled`)}function pm(e){if(e.aborted)throw fm()}function mm(e){let t=e.cancellation.signal;return pm(t),new Promise((n,r)=>{let i=!1,a=()=>{c(fm())},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 hm(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=qm(e.setup.ecdsa),r=e.context.signingEngine.createRouterAbEcdsaRegistrationCeremony({kind:`create_router_ab_ecdsa_registration_ceremony_v1`,ceremonyId:t,registration:n.strictRegistration});return r.catch(()=>void 0),{kind:`started`,ceremonyId:t,operation:r}}default:return q(e.setup)}}function gm(e){e.ceremony.kind!==`not_required`&&Mc({context:e.context,ceremonyId:e.ceremony.ceremonyId})}async function _m(e){let t=e.authMethod,n=gp(String(t.rpId));if(gp(String(e.context.signingEngine.getRpId()||``))!==n)throw Error(`Hosted passkey registration rpId does not match the wallet runtime`);let r=sm(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&&vm(c)},f=()=>{e.cancellation.signal.removeEventListener(`abort`,d)};pm(e.cancellation.signal),e.cancellation.signal.addEventListener(`abort`,d,{once:!0});let p=new Ga(performance.now());try{let i=await mm({operation:Bm({context:e.context,authMethod:t,wallet:e.wallet,signerSelection:e.signerSelection,recorder:p}),cancellation:e.cancellation}),d=qc(i.setup.intent);if(String(d.authMethod.rpId)!==String(n)||!Xp(d.signerSelection,e.signerSelection))throw Error(`Hosted passkey registration setup changed its authority binding`);let m=Kt(String(d.walletId)),h=String(i.setup.registrationIntentDigestB64u||``).trim();if(!h)throw Error(`Hosted passkey registration setup returned no challenge`);if(r!==sm(e.signerSelection))throw Error(`Hosted passkey registration signer slot changed during preparation`);if(u=hm({context:e.context,setup:i.setup}),om({recorder:p,warmup:i.registrationWarmup}),Date.now()>=a)throw Error(`Hosted passkey registration preparation expired before reservation`);let g=await mr.reserveRegistrationPrompt({owner:o,expiresAtMs:a,cancellation:e.cancellation});l=g;let _=dm({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:t,walletId:m,signerSlot:r,rpId:n,challengeB64u:h}),v=Object.freeze({kind:`hosted_passkey_registration_prepared_v1`,walletId:m,signerSlot:r,rpId:n,challengeB64u:h,registrationIntentDigestB64u:h,expiresAtMs:a,owner:o,reservation:g,cancellation:{kind:`abort_signal`,signal:s.signal},[Wp]:!0});return Gp.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(),gm({context:e.context,ceremony:u}),c?vm(c):l&&mr.releaseReservation(l),t}}function vm(e){let t=lm(e);t.lifecycle===`finished`||t.lifecycle===`cancelled`||(t.lifecycle=`cancelled`,t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,gm({context:t.context,ceremony:t.ecdsaClientCeremony}),mr.releaseReservation(e.reservation))}function ym(e){let t=lm(e);um(t),t.lifecycle=`consuming`;let n=Ud(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`)},()=>{vm(e)}),n}async function bm(e){let t=lm(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 Mh({context:t.context,authMethod:t.authMethod,wallet:t.wallet,signerSelection:t.signerSelection,options:t.options,authenticatorOptions:An(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`,gm({context:t.context,ceremony:t.ecdsaClientCeremony}),t.controller.abort(),t.removeExternalCancellationListener?.(),t.removeExternalCancellationListener=null,mr.releaseReservation(e.prepared.reservation)}}async function xm(e){return Gd(`wallet-registration-near-provisioning:${await S([`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 Sm(e){let t=globalThis.crypto;if(t&&typeof t.randomUUID==`function`)return Gd(`${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),Gd(`${e}:${[...n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`)}function Cm(e){return e.recorder.measure(`emailOtpEnrollmentMaterialMs`,()=>Tm({context:e.context,authMethod:e.authMethod,relayerUrl:e.relayerUrl,walletId:e.walletId,providerSubject:e.providerSubject,clientSecret32:e.clientSecret32}))}function wm(e){if(e.emailOtpSessionHandle.kind!==`not_requested`)throw Error(`Strict ECDSA registration received obsolete Email OTP root-share material`)}async function Tm(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:R(e.walletId),userId:e.providerSubject,clientSecret32:e.clientSecret32});return wm(t),t}finally{e.clientSecret32.fill(0)}}function Em(e){let t=e.event.authMethod,n=Dm(e.accountId);return mn({...e.event,flowId:`registration:${t}:${n}`,accountId:n,authMethod:t})}function Dm(e){let t=String(e||``).trim();if(!t)throw Error(`Registration event account id is required`);return t}function Om(e){return b(e)&&`code`in e?String(e.code||``).trim():``}function km(e,t){return Object.assign(Error(e),t?{code:t}:{})}function Am(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?.(Em({accountId:t,event:n}))}async function jm(e){let t=String(e||``).trim().toLowerCase();if(!t)throw Error(`Email OTP registration auth context requires email`);return S(t)}function Mm(e){switch(e.proofKind){case`otp_challenge`:return`email`;case`google_sso_registration`:return`google`;default:return q(e)}}function Nm(e){switch(e.kind){case`passkey`:return{kind:`passkey`,webauthnRegistration:e.webauthnRegistration};case`email_otp`:return{kind:`email_otp`,emailOtpRegistrationProof:e.emailOtpRegistrationProof};default:return q(e)}}async function Pm(e){let t=performance.now();try{let n=await Xc(e.deferredNear,{routerOrigin:new URL(e.relayerUrl).origin,routing:e.home,authorization:{kind:`bearer`,value:`Bearer ${e.signedSetup}`},fetch:globalThis.fetch,...e.traceContext?{traceContext:e.traceContext}:{}});return K({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`success`}),{deferredNear:e.deferredNear,admissionReceipt:n}}catch(n){throw K({ceremonyId:e.registrationCeremonyId,stage:`early_admission`,startedAt:t,outcome:`failure`}),n}}function Fm(e){if(!e)throw Error(`Mixed registration did not start NEAR admission`);return e}function Im(e,t,n){switch(e.kind){case`passkey`:return{auth:{kind:`passkey`,rpId:mt(e.rpId),credentialIdB64u:t}};case`email_otp`:return{auth:{kind:`email_otp`,providerSubjectId:or(e.emailOtpAuthContext)},remainingUses:n.remainingUses,expiresAtMs:n.expiresAtMs};default:return q(e)}}async function Lm(e){let t=dt(x({operation:`wallet_registration_activate_v2`,registrationCeremonyId:e.registrationCeremonyId,activationCorrelationId:e.activationCorrelationId,idempotencyKey:e.idempotencyKey,publicFacts:e.publicFacts}));return{canonicalRequest:t,requestDigest:be(A(await k(String(t))))}}async function Rm(e){let t={authority:e.materialAuthority,targetMemberships:e.chainTargets,evmFamilySigningKeySlotId:Te(e.ecdsaPrepare.prepare.evmFamilySigningKeySlotId,`registration ECDSA signing key slot`),ecdsaThresholdKeyId:cn(e.ecdsaPrepare.prepare.ecdsaThresholdKeyId),signingRootId:st(e.ecdsaPrepare.prepare.signingRootId),signingRootVersion:ht(e.ecdsaPrepare.prepare.signingRootVersion),runtimePolicyScope:e.ecdsaPrepare.prepare.runtimePolicyScope,clientVerifyingPublicKey33B64u:on(e.clientActivation.derivationClientSharePublicKey33B64u),participantIds:[Ot(e.ecdsaPrepare.prepare.participantIds[0]),Ot(e.ecdsaPrepare.prepare.participantIds[1])],relayerKeyId:sn(e.ecdsaPrepare.prepare.relayerKeyId),bindingDigest:fn(e.clientActivation.contextBinding32B64u),journalId:e.activationCorrelationId,requestDigest:e.activationCommand.requestDigest,canonicalRequest:e.activationCommand.canonicalRequest,createdAt:ve(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 zm(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 Bm(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=am({recorder:e.recorder,context:e.context,relayerUrl:t,authMethod:e.authMethod,signerSelection:e.signerSelection}),o=await e.recorder.measure(`registrationIntentMs`,()=>Un({relayerUrl:t,request:{...e.wallet.kind===`provided`?{wallet:e.wallet}:{},signerSelection:e.signerSelection,authMethod:e.authMethod},auth:{publishableKey:r,environmentId:i}}));if(!o.ok)throw km(o.message,o.code);return{relayerUrl:t,setup:o,registrationWarmup:a}}async function Vm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return await Bm({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=lm(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=qc(n.setup.intent),i=String(n.setup.registrationIntentDigestB64u||``).trim(),a=sm(e.signerSelection);if(dm({wallet:e.wallet,signerSelection:e.signerSelection,authMethod:e.authMethod,walletId:Kt(String(r.walletId)),signerSlot:a,rpId:gp(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 Hm(e){if(e.passkeyExecution.kind===`collect_during_registration`)return{kind:`create_after_authority`};let t=lm(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 Um(e){return await e}function Wm(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 Um.bind(void 0,e.clientCeremony.operation);default:return q(e.clientCeremony)}}async function Gm(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=ye(r),a=null;try{let o=await Ic({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationClientCreateMs`,operation:Wm({context:e.context,ceremonyId:r,registration:e.ecdsaPrepare.strictRegistration,clientCeremony:e.clientCeremony})}),s=await Ic({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayRespondMs`,operation:Hn.bind(void 0,{relayerUrl:e.relayerUrl,headers:wc(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,ecdsa:{kind:`router_ab_ecdsa_registration_v1`,strictRegistration:o.registrationRequest,requestDigestB64u:o.registrationRequestDigestB64u},...Nm(e.authority),onServerTiming:t=>ha(e.registrationTiming,`respond`,t)})});if(s.kind===`near_ed25519`)throw Error(`ECDSA registration ceremony received an Ed25519-only respond result`);let c=s.kind===`near_ed25519_and_evm_family_ecdsa`?s.ed25519:null,l=c?Pm({home:e.home,relayerUrl:e.relayerUrl,registrationCeremonyId:r,signedSetup:e.signedSetup,deferredNear:c,traceContext:e.traceContext}):null;l?.catch(ah);let u=await Ic({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=gt({registrationRequestDigestB64u:u.registrationRequestDigestB64u,proofTranscriptDigestB64u:u.proofTranscriptDigestB64u,contextBinding32B64u:t.contextBinding32B64u,derivationClientSharePublicKey33B64u:t.clientSharePublicKey33B64u,clientShareRetryCounter:t.clientShareRetryCounter,participantId:1}),o=await Lm({registrationCeremonyId:r,activationCorrelationId:i,idempotencyKey:e.idempotencyKey,publicFacts:n}),s=zl(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:Fm(l),establishedEvmCustodyCommit:t.preActivationCommitPayload}),a.catch(ah)}else await e.persistPendingCommit({signerPlanKind:e.signerPlanKind,localMaterial:{keyFamilies:[`ecdsa_secp256k1`],custodyCommit:s,ecdsa:p},emailOtpEnrollment:d.enrollment});let m=await Rm({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 Ic({registrationTiming:e.registrationTiming,bucket:`ecdsaRegistrationGatewayActivateMs`,operation:Jn.bind(void 0,{relayerUrl:e.relayerUrl,headers:wc(e.traceContext),registrationCeremonyId:r,signerPlanKind:e.signerPlanKind,signedSetup:e.signedSetup,idempotencyKey:e.idempotencyKey,ecdsa:{clientActivation:n,activationCorrelationId:i,activationRequestDigestB64u:o.requestDigest},walletCustodyCommit:t.preActivationCommitPayload,...d.enrollment?{emailOtpEnrollment:d.enrollment}:{},onServerTiming:t=>ha(e.registrationTiming,`activate`,t)})});if(g.kind!==`evm_family_ecdsa`||!g.ecdsa)throw Error(`ECDSA registration ceremony received a non-ECDSA activate result`);h.value=g,h.journalId=m.journalId;let _=g.ecdsa.activation.ecdsa_activation.public_identity;return JSON.stringify({relayerKeyId:e.ecdsaPrepare.prepare.relayerKeyId,relayerPublicKey33B64u:_.server_public_key33_b64u,groupPublicKey33B64u:_.threshold_public_key33_b64u,ethereumAddress:zm(_.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=Nc({prepare:e.ecdsaPrepare.prepare,verified:g.clientBootstrap}),y=Wn({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 lt({authority:_.authority}),materialActivation:b.materialActivation,clientPublicFacts:b.publicFacts,publicCapability:b.publicCapability,registrationEstablishedSession:Dc(_.registrationEstablishedSession)},activated:_,deferredNear:c,activateEmailOtp:{enrollment:d.enrollment},walletCustody:g,deferredNearCustodyWork:a}}catch(t){throw nh(a),await Mc({context:e.context,ceremonyId:r}),t}}function Km(e){switch(e.kind){case`evm`:return Be({chain:`evm`,chainId:e.chainId,networkSlug:e.networkSlug});case`tempo`:return Be({chain:`tempo`,chainId:e.chainId,networkSlug:e.networkSlug});default:return q(e)}}function qm(e){let[t,...n]=e.chainTargets;if(!t)throw Error(`Registration setup ECDSA chain targets are required`);return{kind:e.kind,chainTargets:[Km(t),...n.map(Km)],prepare:e.prepare,strictRegistration:e.strictRegistration}}function Jm(e,t){switch(e.kind){case`near_ed25519`:throw Error(`Registration setup returned an Ed25519-only signer branch`);case`evm_family_ecdsa`:case`near_ed25519_and_evm_family_ecdsa`:if(e.kind!==t)throw Error(`Registration setup returned a different signer branch`);return e;default:return q(e)}}function Ym(e){switch(e.kind){case`evm_family_ecdsa`:return 1;case`near_ed25519_and_evm_family_ecdsa`:return e.ed25519Selection.signerSlot;default:return q(e)}}function Xm(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:Zm(e.emailOtpEnrollment)}}function Zm(e){if(!e)throw Error(`Email OTP registration has no enrollment material for pending recovery`);return e}async function Qm(e){let t=Date.now(),n=wp({...e,createdAtMs:t,updatedAtMs:t});return await B.putPendingWalletRegistrationCommit(n),n}function $m(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 eh(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 rt({kind:`passkey`,walletId:e.walletId,rpId:gp(e.auth.rpId),credentialIdB64u:n,credentialPublicKeyB64u:e.auth.credentialPublicKeyB64u,transports:e.auth.credential.response?.transports??[],walletKeys:t})}return await rt({kind:`email_otp`,walletId:e.walletId,email:e.auth.email,registrationAuthorityId:e.auth.registrationAuthorityId,authority:e.auth.authority,walletKeys:t})}async function th(e){let t=await Dp({context:e.context,relayerUrl:e.relayerUrl,registrationTiming:e.registrationTiming,plan:e.plan}),n=await eh({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 nh(e){if(e)try{Fp((await e).factorSecret32)}catch{}}function rh(e){switch(e.auth.kind){case`passkey`:{if(!e.passkeyAuthority)throw Error(`Deferred passkey registration requires authority material`);let t=String(e.passkeyAuthority.credential.rawId||e.passkeyAuthority.credential.id||``).trim(),n=String(e.passkeyAuthority.prfFirstB64u||``).trim();if(!t||!n)throw Error(`Deferred passkey registration requires credential PRF material`);return{kind:`passkey`,rpId:e.auth.rpId,credentialIdB64u:t,prfFirstB64u:n}}case`email_otp`:if(!e.emailOtpEnrollment)throw Error(`Deferred Email OTP registration requires enrollment material`);return{kind:`email_otp`,enrollment:e.emailOtpEnrollment,emailOtpAuthContext:e.auth.emailOtpAuthContext};default:return q(e.auth)}}async function ih(e,t,n){let r=performance.now();await B.advancePendingNearRegistration({expected:e,next:wn(e,t,n)}),Or(e.registrationCeremonyId,`journal_prepared`,r)}function ah(){}async function oh(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(!zt(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 ch({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:zp({commit:t.establishedEvmCustodyCommit,walletId:r.walletId,activatedAtMs:Date.now()}),factorSecret32:n}}catch(e){throw Fp(n),e}finally{K({ceremonyId:e.registrationCeremonyId,stage:`custody_join`,startedAt:r,outcome:i})}}async function sh(e){return e.pending.phase===`execution_prepared`?e.pending.admissionReceipt:e.admitted?e.admitted:await Xc({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 ch(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 sh({home:e.home,pending:n,relayerUrl:e.relayerUrl,credential:e.credential,traceContext:e.traceContext,...e.admitted?{admitted:e.admitted}:{}});Or(n.registrationCeremonyId,`admission`,i);let o=await e.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:e.home,...n.phase===`planned`?{preparation:{kind:`fresh`},beforeRouterRound:ih.bind(void 0,n,a)}:{preparation:{kind:`checkpoint`,checkpointJson:n.checkpointJson}},custodyJson:Ol(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=wp({operation:`near_provisioning`,signerPlanKind:`near_ed25519_and_evm_family_ecdsa`,completion:{kind:`encrypted_checkpoint`,prepared:c},registrationCeremonyId:c.registrationCeremonyId,idempotencyKey:await xm({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:Lp(o)}}});if(l.operation!==`near_provisioning`||l.phase!==`joined`)throw Error(`Invalid joined NEAR continuation`);return await B.advancePendingNearRegistration({expected:c,next:l}),Or(n.registrationCeremonyId,`journal_joined`,s),{joined:o,admissionReceipt:a}}function lh(e){return e.chainTarget}function uh(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=ut({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 dh(e){if(await hh(e.sessionAuthority),e.pending.phase===`joined`&&e.pending.completion.kind===`sealed_material`){let t=await id({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 ch({home:e.sessionAuthority.operationCredential.home,pending:e.pending,signingEngine:e.context.signingEngine,relayerUrl:e.relayerUrl,credential:e.sessionAuthority.operationCredential.token,traceContext:gn(),factorSecret:e.factorSecret});return{joined:n.joined,admissionReceipt:n.admissionReceipt,admissionRequest:t.admissionRequest,envelope:e.envelope,factorSecret32:e.factorSecret}}async function fh(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=uh(r,e.factor),a=dh.bind(void 0,{context:e.context,pending:r,envelope:e.custodyEnvelope,relayerUrl:n,sessionAuthority:e.sessionAuthority,factorSecret:e.ownedFactorSecret});await Th({context:e.context,walletId:r.walletId,commit:{context:e.context,registrationTiming:null,registrationStartedAt:t,clientPrewarm:Promise.resolve(),relayerUrl:n,registrationCeremonyId:r.registrationCeremonyId,signedSetup:r.signedSetup,headers:wc(),nearCustodyWork:a,sessionAuthority:e.sessionAuthority,expectedChainTargets:jr(e.context.configs.network.chains).map(lh),walletId:r.walletId,authMaterial:i}})}}catch(e){console.warn(`[registration] NEAR continuation remains pending`,e instanceof Error?e.message:`continuation failed`)}finally{Fp(e.ownedFactorSecret)}}function ph(e){if(!e)throw Error(`Mixed registration did not start its NEAR custody join`);return e}function mh(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()||!de(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 hh(e){let t=await Fn.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 gh(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 _h(e){let{metadata:t,materialFacts:n}=e,r={materialActivation:er(t),lifecycleId:t.scope.lifecycle_id,signingRootVersion:t.scope.root_share_epoch,signingRootId:t.applicationBinding.signing_root_id,signerSetId:t.scope.signer_set_id,thresholdSessionId:n.identity.thresholdSessionId,activationTranscriptB64u:A(t.transcript),activationCapabilityBindingB64u:A(Uint8Array.from(t.activeCapabilityBinding))},i=null;try{i=await la({material:e.material,activation:r,envelope:e.envelope,ownedFactorSecret:e.ownedFactorSecret}),await Rf({store:B,activeClient:i,identity:{walletId:n.identity.walletId,nearAccountId:n.identity.nearAccountId,nearEd25519SigningKeyId:n.identity.nearEd25519SigningKeyId,thresholdSessionId:n.identity.thresholdSessionId,signerSlot:n.identity.signerSlot,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,signingRootId:n.identity.signingRootId,signingRootVersion:n.identity.signingRootVersion,signingWorkerId:n.stableServerScope.routerAbNormalSigning.signingWorkerId},stableServerScope:n.stableServerScope,passkeyPrfFirstB64u:e.passkeyPrfFirstB64u}),await hh(e.sessionAuthority),await e.signingEngine.activateVerifiedNearEd25519YaoMaterial({activeClient:i,facts:{thresholdSessionId:n.identity.thresholdSessionId,signer:sr({walletId:R(n.identity.walletId),nearAccountId:L(n.identity.nearAccountId),nearEd25519SigningKeyId:qt(n.identity.nearEd25519SigningKeyId),signerSlot:n.identity.signerSlot}),signingRootId:n.identity.signingRootId,signingRootVersion:n.identity.signingRootVersion,routerAbNormalSigning:n.stableServerScope.routerAbNormalSigning,runtimePolicyScope:n.stableServerScope.runtimePolicyScope,relayerUrl:e.relayerUrl}}),await hh(e.sessionAuthority),i=null}catch(e){throw i?.dispose(),e}finally{e.ownedFactorSecret.fill(0)}}async function vh(e){if(e.kind===`passkey`)try{await ia.initializeBundled()}catch{}}async function yh(e){let t=performance.now(),n=`failure`;try{return await e.signingEngine.hydrateSigningSession(e.input),n=`success`,{kind:`completed`}}catch(e){return{kind:`failed`,error:e}}finally{K({ceremonyId:e.ceremonyId,stage:`session_hydration`,startedAt:t,outcome:n})}}async function bh(e){let t=performance.now(),n=`failure`;try{return await e.signingEngine.prepareSigningSessionHydration(e.input),n=`success`,{kind:`completed`}}catch(e){return{kind:`failed`,error:e}}finally{K({ceremonyId:e.ceremonyId,stage:`session_seal_preparation`,startedAt:t,outcome:n})}}function xh(e){let t=f(e.thresholdSessionId);if(!t.ok)throw Error(`Invalid admitted NEAR session identity`);let n=Sm(`near-session-client-seal`);return{kind:`preparing`,thresholdSessionId:String(t.value),preparationId:n,result:bh({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,input:{preparationId:n,thresholdSessionId:String(t.value),prfFirstB64u:e.prfFirstB64u}})}}async function Sh(e){try{await hh(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`}:xh({signingEngine:e.signingEngine,ceremonyId:e.ceremonyId,thresholdSessionId:t.admissionRequest.scope.threshold_session_id,prfFirstB64u:e.prfFirstB64u})}catch{return{kind:`none`}}}function Ch(){return null}async function wh(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 Sh({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:${Oe(s.metadata.registeredPublicKey)}`,l=s.activationReference,u=await xm({registrationCeremonyId:e.registrationCeremonyId,activationReference:l}),d=await gh({registrationCeremonyId:e.registrationCeremonyId,walletId:e.walletId,walletAuthMethodId:String(e.sessionAuthority.record.authMethodId)});await hh(e.sessionAuthority),t.kind===`passkey`&&o.kind===`none`&&(o=xh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,thresholdSessionId:s.metadata.scope.threshold_session_id,prfFirstB64u:t.prfFirstB64u}));let f;if(o.kind===`preparing`){let t=performance.now(),n=await o.result;if(K({ceremonyId:e.registrationCeremonyId,stage:`session_seal_preparation_wait`,startedAt:t,outcome:n.kind===`completed`?`success`:`failure`}),n.kind===`failed`)throw n.error;await hh(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,...Ee(e.sessionAuthority.operationCredential)},idempotencyKey:u,ed25519:{activationReference:l},walletCustodyCommit:s.commitPayload,onServerTiming:ga.bind(void 0,e.registrationTiming)},h;if(f){if(e.authMaterial.kind!==`passkey`)throw Error(`Prepared session sealing requires a passkey authority`);h=await Zn({...m,auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:f.thresholdSessionId,ciphertext:f.ciphertext}})}else h=await Zn({...m,auth:e.authMaterial});if(!h.ok)throw Error(`Deferred NEAR provisioning did not complete`);let g=h;if(g.kind!==`near_ed25519`)throw Error(`Deferred Ed25519 finalize returned a different signer branch`);if(g.walletCustody?.status!==`joined`){let e=g.walletCustody?.status??`not_reported`;throw Error(`Deferred NEAR custody join did not commit (${e})`)}if(f&&!g.sessionSeal)throw Error(`Deferred NEAR finalization did not return the prepared session seal`);K({ceremonyId:e.registrationCeremonyId,stage:`server_finalize`,startedAt:p,outcome:`success`});let _=mh(e.sessionAuthority,g.registrationEstablishedSession,g.foundingAuthority,g.foundingAuthMethod),v=L(g.ed25519.nearAccountId),y=e.authMaterial.kind===`passkey`?e.authMaterial.credentialIdB64u:``;t.kind===`passkey`?Jc({clientPublicKey:c,finalized:g,expectedRpId:t.rpId,expectedWalletId:e.walletId}):Yc({clientPublicKey:c,finalized:g,expectedRegistrationAuthorityId:d.auth.kind===`email_otp`?d.auth.registrationAuthorityId:``,expectedWalletId:e.walletId});let b=Wc({admissionRequest:n.admissionRequest,finalized:g.ed25519,walletId:e.walletId,expectedRuntimePolicyScope:F(g.ed25519.runtimePolicyScope)}),x=s.metadata,S=er(x),C=Ip({established:s,walletId:String(e.walletId),nearAccountId:String(v),nearEd25519SigningKeyId:g.ed25519.nearEd25519SigningKeyId,signerSlot:g.ed25519.signerSlot}),w=performance.now(),T=await $u(d,g);await hh(e.sessionAuthority);let E=(await B.publishPendingWalletRegistrationCommitAndRetain({pending:d,ecdsaContinuity:[],authority:g.authority,foundingAuthority:{authority:g.foundingAuthority,authMethod:g.foundingAuthMethod},request:{operation:d.operation,registrationCeremonyId:e.registrationCeremonyId,idempotencyKey:d.idempotencyKey,walletId:e.walletId,walletAuthMethodId:g.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`credential_free_projection`,walletSession:_.walletSession},registration:T})).signerActivations[0];if(!E||E.signerSlot!==g.ed25519.signerSlot)throw Error(`Deferred Ed25519 registration persisted a different signer slot`);let D=new dr;for(let t of e.expectedChainTargets)ud({signingEngine:e.context.signingEngine,walletId:e.walletId,chainTarget:t,trigger:`registration`,statusReads:D});K({ceremonyId:e.registrationCeremonyId,stage:`local_publication`,startedAt:w,outcome:`success`}),await hh(e.sessionAuthority),e.authMaterial.kind===`passkey`&&_.remainingUses>0&&(a=yh({signingEngine:e.context.signingEngine,ceremonyId:e.registrationCeremonyId,input:Zc({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 O=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,...Im(t,y,_),nearEd25519SigningKeyId:qt(g.ed25519.nearEd25519SigningKeyId),signerSlot:g.ed25519.signerSlot}),K({ceremonyId:e.registrationCeremonyId,stage:`session_install`,startedAt:O,outcome:`success`});let k=performance.now();if(t.kind===`email_otp`&&_.remainingUses>0){let r=await Kc({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=Up({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:sa(n.envelope),factorSecret32:i}),i=null}else if(t.kind===`passkey`){if(e.authMaterial.kind!==`passkey`)throw Error(`Deferred passkey registration has no Passkey authorization material`);if(!i)throw Error(`Deferred passkey registration has no custody factor secret`);await e.clientPrewarm,await _h({signingEngine:e.context.signingEngine,sessionAuthority:e.sessionAuthority,metadata:x,material:C,materialFacts:b,envelope:sa(n.envelope),ownedFactorSecret:new Uint8Array(i),rpId:e.authMaterial.rpId,credentialIdB64u:e.authMaterial.credentialIdB64u,passkeyPrfFirstB64u:e.authMaterial.prfFirstB64u,relayerUrl:e.relayerUrl}),i=null}e.authMaterial.kind===`passkey`&&await Rd({walletId:String(e.walletId),credentialIdB64u:e.authMaterial.credentialIdB64u,envelope:n.envelope}),K({ceremonyId:e.registrationCeremonyId,stage:`signer_activation`,startedAt:k,outcome:`success`}),await hh(e.sessionAuthority);let A=performance.now(),j=await a;if(K({ceremonyId:e.registrationCeremonyId,stage:`session_hydration_wait`,startedAt:A,outcome:j.kind===`completed`?`success`:`failure`}),j.kind===`failed`)throw j.error;await hh(e.sessionAuthority);let M=performance.now();return await B.completePendingNearRegistration({pending:d,walletSession:_.walletSession,operationCredential:_.operationCredential,nearAccountId:String(v)}),K({ceremonyId:e.registrationCeremonyId,stage:`durable_ready`,startedAt:M,outcome:`success`}),r=`success`,{status:`near_ready`,updatedAtMs:Date.now(),nearAccountId:String(v)}}catch(t){let n=await B.getProfile(String(e.walletId)).catch(Ch);if(n?.nearProvisioning?.status===`near_ready`)return n.nearProvisioning;let r=Eh(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:xe(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(ah)),i&&Fp(i),K({ceremonyId:e.registrationCeremonyId,stage:`provisioning_total`,startedAt:n,outcome:r}),K({ceremonyId:e.registrationCeremonyId,stage:`registration_total`,startedAt:e.registrationStartedAt,outcome:r})}}async function Th(e){try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_provisioning`})}catch(t){let n=Eh(t),r={status:`near_failed_retryable`,updatedAtMs:Date.now(),error:xe(t,`registration`,String(e.walletId)),errorCode:n};try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_failed_retryable`,errorCode:n})}catch{}_d(e.walletId,r);return}await yd({walletId:e.walletId,nowMs:Date.now,attempt:wh.bind(void 0,e.commit)})}function Eh(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 Dh(e){let t=Eh(e.error),n=xe(e.error,`registration`,String(e.walletId));try{await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_failed_retryable`,errorCode:t})}catch{}return _d(e.walletId,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:n,errorCode:t}),{status:`retryable`,error:n,errorCode:t}}async function Oh(e){try{return await e.context.signingEngine.setWalletNearProvisioningState({walletId:String(e.walletId),status:`near_pending`}),_d(e.walletId,{status:`near_pending`,updatedAtMs:Date.now()}),{status:`pending`}}catch(t){return await Dh({context:e.context,walletId:e.walletId,error:t})}}async function kh(e){let{context:t,wallet:r,signerSelection:i}=e,a=e.options||{},{onEvent:s,onError:c,afterCall:l}=a,u=performance.now(),d=new Ga(u),f=e.kind===`near_ed25519_and_evm_family_ecdsa`?vh(e.authMethod):Promise.resolve(),p=gn(),m=null,h=null,g=Dm(r.kind===`provided`?String(r.walletId):`wallet-registration`);$(s,g,{authMethod:e.authMethod.kind,phase:z.STEP_01_STARTED,status:`started`});try{let c=Sm(`wallet-registration-finalize`),g=await Vm({context:t,authMethod:e.authMethod,wallet:r,signerSelection:i,recorder:d,passkeyExecution:e.passkeyExecution});e.authMethod.kind===`email_otp`&&om({recorder:d,warmup:g.registrationWarmup});let{relayerUrl:_,setup:v}=g,y=qm(Jm(v,e.kind).ecdsa),b=Hm({passkeyExecution:e.passkeyExecution,ceremonyId:v.registrationCeremonyId}),x={intent:v.intent,registrationIntentDigestB64u:v.registrationIntentDigestB64u},S=x.intent.walletId,C=Dm(String(S)),w=null,T=``,E=``,D=``,O=null,k=null,A=null,M;if(e.authMethod.kind===`passkey`){$(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_create`,overlay:`show`}});let r={uiMode:`modal`,behavior:`requireClick`,...e.confirmationConfigOverride??a?.confirmationConfig??{}};A=await d.measure(`authProofMs`,()=>cm({context:t,walletId:S,signerSlot:Ym(e),registrationIntentDigestB64u:x.registrationIntentDigestB64u,options:a,confirmationConfigOverride:r,passkeyExecution:e.passkeyExecution})),d.capturePasskeyAuthDiagnostics(A.diagnostics),m=performance.now();let i=n(String(A.credential.rawId||A.credential.id||``).trim());if(!i.ok)throw Error(`passkey credential id ${i.error.message}`);M={kind:`passkey`,webauthnRegistration:A.webauthnRegistration,walletCustodyFactorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Zt({rpId:gp(e.authMethod.rpId),credentialIdB64u:i.value}),walletAuthMethodId:x.intent.foundingWalletAuthMethodId}),walletCustodyFactorSecret:j(A.prfFirstB64u).buffer},$(s,C,{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));h=r.slice(),k=r.slice().buffer;let i=await d.measure(`authProofMs`,()=>uf({authMethod:n,relayUrl:_,walletId:String(S),registrationIntentDigestB64u:x.registrationIntentDigestB64u}));w=Cm({recorder:d,context:t,authMethod:n,relayerUrl:_,walletId:String(S),providerSubject:i.providerSubject,clientSecret32:r}),T=i.registrationAuthorityId,E=i.email,D=i.providerSubject,O=Mm(i.proof),M={kind:`email_otp`,emailOtpRegistrationProof:i.proof,walletCustodyFactorSecret:k}}let ee=o(v.walletAuthMethodId);if(!ee.ok)throw Error(`Registration setup auth-method identity is invalid: ${ee.error.message}`);let te;if(e.authMethod.kind===`passkey`){if(!A)throw Error(`ECDSA registration is missing its verified passkey authority`);te=await lt({authority:{...Hc({walletId:S,rpId:e.authMethod.rpId,credential:A.credential}),bindingId:ee.value}})}else{if(!O)throw Error(`Email OTP registration is missing its verified provider`);te=await lt({authority:{...kt({walletId:S,provider:O,providerUserId:D,emailHashHex:await jm(E)}),bindingId:ee.value}})}$(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_05_ED25519_SIGNER_PREPARE_STARTED,status:`running`});let N={value:e.kind===`near_ed25519_and_evm_family_ecdsa`?M.walletCustodyFactorSecret.slice(0):null},ne=null,re;try{re=await d.measure(`ecdsaRegistrationTotalMs`,()=>Gm({home:v.home,context:t,relayerUrl:_,registrationCeremonyId:v.registrationCeremonyId,signerPlanKind:e.kind,signedSetup:v.signedSetup,ecdsaPrepare:y,clientCeremony:b,authority:M,materialAuthority:te,idempotencyKey:c,resolveActivateEmailOtp:async()=>{let t=null,n=null;if(e.authMethod.kind===`email_otp`){let e=await Uc({material:w,operation:`activate`});t=e.emailOtpEnrollment??null,n=JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Xt({enrollmentId:e.enrollmentId,enrollmentSealKeyVersion:e.enrollmentSealKeyVersion}),walletAuthMethodId:x.intent.foundingWalletAuthMethodId})}return{enrollment:t,walletCustodyFactorJson:n}},traceContext:p,registrationTiming:d,confirmRecoveryCodesBackedUp:Np.bind(void 0,t,String(S),a.recoveryCodeBackup),persistPendingCommit:async t=>{let n={operation:`registration_activate`,registrationCeremonyId:v.registrationCeremonyId,idempotencyKey:c,walletId:String(S),walletAuthMethodId:String(x.intent.foundingWalletAuthMethodId),signedSetup:String(v.signedSetup),auth:Xm({authMethod:e.authMethod,passkeyAuthority:A,email:E,registrationAuthorityId:T,providerSubject:D,emailOtpEnrollment:t.emailOtpEnrollment})};if(t.signerPlanKind===`near_ed25519_and_evm_family_ecdsa`){let e=Date.now(),r=$m(wp({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial,createdAtMs:e,updatedAtMs:e})),i=vn(r,t.deferredNear.admissionRequest);await B.putPendingWalletRegistrationCommits([r,i]),ne=r;return}ne=await Qm({...n,signerPlanKind:t.signerPlanKind,localMaterial:t.localMaterial})},startDeferredNearCustody:oh.bind(void 0,{home:v.home,context:t,factorSecretOwner:N,registrationCeremonyId:v.registrationCeremonyId,relayerUrl:_,signedSetup:String(v.signedSetup),traceContext:p})}))}finally{Fp(M.walletCustodyFactorSecret),N.value&&=(Fp(N.value),null)}let ie=re.session;if(re.activated.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration activate returned a different signer branch`);let P=xp(re.activated),F=re.activateEmailOtp.enrollment;if(P.kind!==`evm_family_ecdsa`)throw Error(`Wallet registration finalize returned a different signer branch`);if(e.authMethod.kind===`email_otp`&&!tr(P))throw Error(`Email OTP registration finalize returned a different auth method`);d.captureRouteDiagnostics(P.registrationDiagnostics);let ae=P.ecdsa.walletKeys;if(ae.length===0)throw Error(`Wallet registration finalize did not return ECDSA wallet keys`);let oe=await yp({authMethod:e.authMethod,configs:t.configs,walletId:R(P.walletId),finalized:P,passkeyAuthority:A,email:E,providerSubject:D,registrationAuthorityId:T}),I=Sp({walletId:R(P.walletId),auth:oe,foundingAuthority:P.foundingAuthority,foundingAuthMethod:P.foundingAuthMethod,ecdsa:bp({session:ie,walletKeys:ae,expectedChainTargets:ie.chainTargets})});$(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_05_ED25519_SIGNER_PREPARE_SUCCEEDED,status:`succeeded`}),$(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let se=R(P.walletId),ce={status:`pending`};e.kind===`near_ed25519_and_evm_family_ecdsa`?(await th({context:t,relayerUrl:_,registrationTiming:d,pending:$m(ne),plan:I,activated:re.activated}),ce=await Oh({context:t,walletId:se})):await jp({context:t,relayerUrl:_,registrationTiming:d,plan:I});let le=dr.fromRegistration(_,I.ecdsa.session.registrationEstablishedSession);for(let e of ie.chainTargets)ud({signingEngine:t.signingEngine,walletId:se,chainTarget:e,trigger:`registration`,statusReads:le});let ue=I.ecdsa.walletKeys[0];if(e.authMethod.kind===`passkey`){if(!A)throw Error(`Passkey registration authority was not collected`);let n=I.ecdsa.session.registrationEstablishedSession;try{await Bp({signingEngine:t.signingEngine,commit:re.walletCustody.commitPayload,passkeyPrfFirstB64u:A.prfFirstB64u,walletId:String(S),walletAuthMethodId:String(I.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(n.walletSessionId),expiresAtMs:n.expiresAtMs})}catch(n){if(e.kind!==`near_ed25519_and_evm_family_ecdsa`)throw n;ce=await Dh({context:t,walletId:se,error:n})}}else{if(oe.kind!==`email_otp`||!h)throw Error(`Email OTP registration has no custody capability material`);let e=I.ecdsa.session.registrationEstablishedSession;await Vp({context:t,commit:re.walletCustody.commitPayload,factorSecret32:h,emailOtpAuthContext:oe.emailOtpAuthContext,walletId:String(S),walletSessionId:String(e.walletSessionId),expiresAtMs:e.expiresAtMs})}if(e.kind===`near_ed25519_and_evm_family_ecdsa`){let e=rh({auth:I.auth,emailOtpEnrollment:F,passkeyAuthority:A});try{Th({context:t,walletId:se,commit:{context:t,registrationTiming:d,registrationStartedAt:u,clientPrewarm:f,relayerUrl:_,registrationCeremonyId:v.registrationCeremonyId,signedSetup:v.signedSetup,headers:wc(p),nearCustodyWork:ph.bind(void 0,re.deferredNearCustodyWork),sessionAuthority:{record:I.ecdsa.session.registrationEstablishedSession.walletSession,operationCredential:I.ecdsa.session.registrationEstablishedSession.operationCredential},expectedChainTargets:I.ecdsa.expectedChainTargets,walletId:se,authMaterial:e}})}catch(e){let t=Eh(e);ce={status:`retryable`,error:xe(e,`registration`,String(se)),errorCode:t},_d(se,{status:`near_failed_retryable`,updatedAtMs:Date.now(),error:ce.error,errorCode:t})}}e.kind===`evm_family_ecdsa`&&await B.deletePendingWalletRegistrationCommit({registrationCeremonyId:v.registrationCeremonyId,operation:`registration_activate`});let de=e.kind===`near_ed25519_and_evm_family_ecdsa`?{success:!0,kind:`ecdsa_wallet_registered_near_pending`,walletId:P.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ue.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ue.thresholdEcdsaPublicKeyB64u}],nearProvisioning:ce}:{success:!0,kind:`wallet_registered`,walletId:P.walletId,capabilities:[{kind:`evm_family_ecdsa`,thresholdEcdsaEthereumAddress:ue.thresholdOwnerAddress,thresholdEcdsaPublicKeyB64u:ue.thresholdEcdsaPublicKeyB64u}]};if($(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(s,C,{authMethod:e.authMethod.kind,phase:z.STEP_11_COMPLETED,status:`succeeded`}),m!==null){let e=performance.now();Xa({callback:a.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-m,traceContext:p}),Xa({callback:a.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:p})}return Ya(qa({recorder:d,authMethod:e.authMethod.kind,signerSet:Da(e.signerPlan)})),Nh(e.context,de,e.authMethod.kind),l?.(!0,de),de}catch(t){let n=Om(t),r=xe(t,`registration`,g);m!==null&&Xa({callback:a.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-m,traceContext:p});let i=km(r,n);c?.(i),$(s,g,{authMethod:e.authMethod.kind,phase:z.FAILED,status:`failed`,message:r,interaction:{kind:`passkey_create`,overlay:`hide`},error:{...n?{code:n}:{},message:r}});let o={success:!1,error:r,...n?{errorCode:n}:{}};return Ya(Ja({recorder:d,authMethod:e.authMethod.kind,signerSet:Da(e.signerPlan),errorCode:n||null})),l?.(!1),o}finally{h?.fill(0)}}async function Ah(e){let{context:t,options:n}=e,r=Dm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),i=new Ga(performance.now()),a=null;$(n.onEvent,r,{authMethod:`email_otp`,phase:z.STEP_01_STARTED,status:`started`});try{let r=await Bm({context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:i});om({recorder:i,warmup:r.registrationWarmup});let{relayerUrl:o,setup:s}=r,c=s.intent.walletId,l=Dm(String(c)),u=await i.measure(`authProofMs`,uf.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=Cm({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`,Hn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:s.signedSetup,headers:{...wc(),...we(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 Uc({material:p,operation:`finalize`}),g;try{g=await t.signingEngine.establishWalletCustodyNearEd25519KeySet({home:s.home,walletId:String(c),factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Xt({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{Fp(f)}await Np(t,String(c),n.recoveryCodeBackup,g.recoveryCodes);let _=nn(g.commitPayload);if(!g.localMaterial)throw Error(`Email OTP registration produced no sealed local custody material`);let v=await xm({registrationCeremonyId:s.registrationCeremonyId,activationReference:g.activationReference}),y=await Qm({operation:`near_provisioning`,completion:{kind:`sealed_material`},signerPlanKind:`near_ed25519`,registrationCeremonyId:s.registrationCeremonyId,idempotencyKey:v,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:_,ed25519:{activationReference:g.activationReference,localMaterial:g.localMaterial,metadata:Lp(g)}}}),b=`ed25519:${Oe(g.metadata.registeredPublicKey)}`,x=await i.measure(`walletRegisterFinalizeMs`,Zn.bind(void 0,{relayerUrl:o,registrationCeremonyId:s.registrationCeremonyId,signedSetup:s.signedSetup,headers:{...wc(),...we(s.home)},idempotencyKey:v,ed25519:{activationReference:g.activationReference},auth:{kind:`email_otp`,enrollment:h.emailOtpEnrollment},walletCustodyCommit:_}));if(!x.ok)throw Error(`Deferred NEAR provisioning did not complete`);if(i.captureRouteDiagnostics(x.registrationDiagnostics),x.kind!==`near_ed25519`)throw Error(`Wallet registration finalize returned a different signer branch`);if(!tr(x))throw Error(`Email OTP registration finalize returned a different auth method`);if(x.walletCustody?.status!==`committed`){let e=x.walletCustody?.status??`not_reported`;throw Error(`Wallet custody did not commit (${e})`)}if(x.ed25519.signerSlot!==e.ed25519Selection.signerSlot)throw Error(`Ed25519 Yao finalize returned a different signer slot`);let S=Dc(x.registrationEstablishedSession);Yc({clientPublicKey:b,finalized:x,expectedRegistrationAuthorityId:u.registrationAuthorityId,expectedWalletId:c});let C=await yp({authMethod:e.authMethod,configs:t.configs,walletId:R(x.walletId),finalized:x,passkeyAuthority:null,email:u.email,providerSubject:u.providerSubject,registrationAuthorityId:u.registrationAuthorityId});if(C.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 w=Wc({admissionRequest:m.ed25519.admissionRequest,finalized:x.ed25519,walletId:c,expectedRuntimePolicyScope:F(s.intent.runtimePolicyScope)}),T=g.metadata,E=L(x.ed25519.nearAccountId),D=Ip({established:g,walletId:String(x.walletId),nearAccountId:String(E),nearEd25519SigningKeyId:x.ed25519.nearEd25519SigningKeyId,signerSlot:x.ed25519.signerSlot}),O=await nt({walletId:x.walletId,nearAccountId:E,nearEd25519SigningKeyId:x.ed25519.nearEd25519SigningKeyId,email:C.email,registrationAuthorityId:C.registrationAuthorityId,authority:C.authority,signerSlot:x.ed25519.signerSlot,operationalPublicKey:b,relayerKeyId:x.ed25519.relayerKeyId,keyVersion:x.ed25519.keyVersion,participantIds:[...x.ed25519.participantIds],custodyMaterial:D}),k=await B.publishPendingWalletRegistrationCommit({pending:y,ecdsaContinuity:[],authority:x.authority,foundingAuthority:{authority:x.foundingAuthority,authMethod:x.foundingAuthMethod},request:{operation:`near_provisioning`,registrationCeremonyId:s.registrationCeremonyId,idempotencyKey:v,walletId:x.walletId,walletAuthMethodId:x.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:S.walletSession,operationCredential:S.operationCredential},registration:O});dr.acceptRegistrationSession(o,S);let A=k.signerActivations[1];if(!A||A.signerSlot!==x.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);if(await t.signingEngine.activateAuthenticatedWalletState({walletId:x.walletId,nearAccountId:E,signerSlot:x.ed25519.signerSlot,nearClient:t.nearClient}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:x.walletId,nearAccountId:E,thresholdSessionId:w.identity.thresholdSessionId,runtimePolicyScope:w.stableServerScope.runtimePolicyScope,materialActivation:er(T),auth:{kind:`email_otp`,providerSubjectId:u.providerSubject},nearEd25519SigningKeyId:qt(x.ed25519.nearEd25519SigningKeyId),signerSlot:x.ed25519.signerSlot,remainingUses:S.remainingUses,expiresAtMs:S.expiresAtMs}),!a)throw Error(`Email OTP registration has no custody capability material`);await Vp({context:t,commit:_,factorSecret32:a,emailOtpAuthContext:C.emailOtpAuthContext,walletId:String(x.walletId),walletSessionId:String(S.walletSessionId),expiresAtMs:S.expiresAtMs}),$(n.onEvent,l,{authMethod:`email_otp`,phase:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),$(n.onEvent,l,{authMethod:`email_otp`,phase:z.STEP_11_COMPLETED,status:`succeeded`});let j={success:!0,kind:`wallet_registered`,walletId:x.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:x.accountProvisioning,resolvedAccount:x.resolvedAccount,nearEd25519SigningKeyId:qt(x.ed25519.nearEd25519SigningKeyId),operationalPublicKey:b,nearAccountId:L(x.ed25519.nearAccountId),transactionId:x.resolvedAccount.kind===`sponsored_named_account`?x.resolvedAccount.transactionHash:null}]};return Ya(qa({recorder:i,authMethod:`email_otp`,signerSet:Da(e.signerPlan)})),Nh(t,j,`email_otp`),n.afterCall?.(!0,j),j}catch(t){let a=Om(t),o=xe(t,`registration`,r);n.onError?.(km(o,a)),$(n.onEvent,r,{authMethod:`email_otp`,phase:z.FAILED,status:`failed`,message:o,error:{...a?{code:a}:{},message:o}});let s={success:!1,error:o,...a?{errorCode:a}:{}};return Ya(Ja({recorder:i,authMethod:`email_otp`,signerSet:Da(e.signerPlan),errorCode:a||null})),n.afterCall?.(!1),s}finally{a?.fill(0)}}async function jh(e){let{context:t,options:r}=e,i=Dm(e.wallet.kind===`provided`?String(e.wallet.walletId):`wallet-registration`),a=gn(),o=null,s={kind:`none`};$(r.onEvent,i,{authMethod:`passkey`,phase:z.STEP_01_STARTED,status:`started`});try{let i=new Ga(performance.now()),{relayerUrl:c,setup:l}=await Vm({context:t,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,recorder:i,passkeyExecution:e.passkeyExecution});i.markNearStage(l.registrationCeremonyId,`near_only.setup`);let u=qc(l.intent),d=Dm(String(u.walletId));$(r.onEvent,d,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_create`,overlay:`show`}});let f=await cm({context:t,walletId:u.walletId,signerSlot:e.ed25519Selection.signerSlot,registrationIntentDigestB64u:l.registrationIntentDigestB64u,options:r,confirmationConfigOverride:{uiMode:`modal`,behavior:`requireClick`,...e.confirmationConfigOverride??r.confirmationConfig??{}},passkeyExecution:e.passkeyExecution});o=performance.now(),i.capturePasskeyAuthDiagnostics(f.diagnostics),i.markNearStage(l.registrationCeremonyId,`near_only.authentication`),$(r.onEvent,d,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_create`,overlay:`hide`}});let p=await Hn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signerPlanKind:`near_ed25519`,signedSetup:l.signedSetup,headers:{...wc(a),...we(l.home)},kind:`passkey`,webauthnRegistration:f.webauthnRegistration});if(i.markNearStage(l.registrationCeremonyId,`near_only.respond`),p.kind!==`near_ed25519`)throw Error(`Ed25519-only registration respond returned a different signer branch`);s=xh({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,thresholdSessionId:p.ed25519.admissionRequest.scope.threshold_session_id,prfFirstB64u:f.prfFirstB64u});let m=n(String(f.credential.rawId||f.credential.id||``).trim());if(!m.ok)throw Error(`passkey credential id ${m.error.message}`);let h=j(f.prfFirstB64u).buffer,g;try{g=await t.signingEngine.establishWalletCustodyNearEd25519KeySet({home:l.home,walletId:String(u.walletId),factorJson:JSON.stringify({envelopeId:`wallet-custody-envelope:${crypto.randomUUID()}`,factor:Zt({rpId:gp(e.authMethod.rpId),credentialIdB64u:m.value}),walletAuthMethodId:l.intent.foundingWalletAuthMethodId}),factorSecret:h,nearEd25519SigningKeyId:p.ed25519.admissionRequest.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:l.registrationCeremonyId,admissionRequest:p.ed25519.admissionRequest,admissionReceipt:p.ed25519.admissionReceipt,participantIds:p.ed25519.admissionRequest.participant_ids,routerOrigin:new URL(c).origin,authorization:`Bearer ${String(l.signedSetup)}`,traceContext:a})}finally{Fp(h)}i.markNearStage(l.registrationCeremonyId,`near_only.custody`),await Np(t,String(u.walletId),r.recoveryCodeBackup,g.recoveryCodes);let _=nn(g.commitPayload);if(!g.localMaterial)throw Error(`Passkey registration produced no sealed local custody material`);let v=await xm({registrationCeremonyId:l.registrationCeremonyId,activationReference:g.activationReference}),y=await Qm({operation:`near_provisioning`,completion:{kind:`sealed_material`},signerPlanKind:`near_ed25519`,registrationCeremonyId:l.registrationCeremonyId,idempotencyKey:v,walletId:String(u.walletId),walletAuthMethodId:String(l.intent.foundingWalletAuthMethodId),signedSetup:String(l.signedSetup),auth:{kind:`passkey`,rpId:e.authMethod.rpId,credentialIdB64u:m.value,transports:[...f.webauthnRegistration.response.transports]},localMaterial:{keyFamilies:[`ed25519`],custodyCommit:_,ed25519:{activationReference:g.activationReference,localMaterial:g.localMaterial,metadata:Lp(g)}}}),b=`ed25519:${Oe(g.metadata.registeredPublicKey)}`;if(i.markNearStage(l.registrationCeremonyId,`near_only.provision_checkpoint`),s.kind!==`preparing`)throw Error(`NEAR registration session seal preparation is missing`);let x=await s.result;if(x.kind===`failed`)throw x.error;let S=await t.signingEngine.readPreparedSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId}),C=await Zn({relayerUrl:c,registrationCeremonyId:l.registrationCeremonyId,signedSetup:l.signedSetup,headers:{...wc(a),...we(l.home)},idempotencyKey:v,ed25519:{activationReference:g.activationReference},auth:{kind:`passkey`},sessionSeal:{thresholdSessionId:s.thresholdSessionId,ciphertext:S.ciphertext},walletCustodyCommit:_});if(i.markNearStage(l.registrationCeremonyId,`near_only.finalize`),!C.ok||C.kind!==`near_ed25519`)throw Error(`Deferred NEAR provisioning returned a different signer branch`);if(!C.sessionSeal)throw Error(`NEAR finalization did not return the prepared session seal`);if(g.commitPayload&&C.walletCustody?.status!==`committed`){let e=C.walletCustody?.status??`not_reported`,t=C.walletCustody?.status===`rejected`?`: ${C.walletCustody.reason}`:``;throw Error(`Wallet custody did not commit (${e})${t}. The recovery codes shown are not usable.`)}let w=Dc(C.registrationEstablishedSession),T=Jc({clientPublicKey:b,finalized:C,expectedRpId:e.authMethod.rpId,expectedWalletId:u.walletId}),E=L(C.ed25519.nearAccountId),D=_p({finalized:C,credential:f.credential}),O=Wc({admissionRequest:p.ed25519.admissionRequest,finalized:C.ed25519,walletId:u.walletId,expectedRuntimePolicyScope:F(u.runtimePolicyScope)}),k=g.metadata,A=Ip({established:g,walletId:String(C.walletId),nearAccountId:String(E),nearEd25519SigningKeyId:C.ed25519.nearEd25519SigningKeyId,signerSlot:C.ed25519.signerSlot});await Hp({commit:g.commitPayload,walletId:String(C.walletId),activatedAtMs:Date.now()}),await t.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:C.walletId,nearAccountId:L(C.ed25519.nearAccountId),thresholdSessionId:O.identity.thresholdSessionId,runtimePolicyScope:O.stableServerScope.runtimePolicyScope,materialActivation:er(k),auth:{kind:`passkey`,rpId:mt(T.rpId),credentialIdB64u:T.credentialIdB64u},nearEd25519SigningKeyId:qt(C.ed25519.nearEd25519SigningKeyId),signerSlot:C.ed25519.signerSlot});let M=tt({walletId:C.walletId,nearAccountId:E,nearEd25519SigningKeyId:C.ed25519.nearEd25519SigningKeyId,rpId:gp(T.rpId),credential:f.credential,credentialPublicKeyB64u:D,signerSlot:C.ed25519.signerSlot,operationalPublicKey:b,relayerKeyId:C.ed25519.relayerKeyId,keyVersion:C.ed25519.keyVersion,participantIds:[...C.ed25519.participantIds],custodyMaterial:A}),ee=await B.publishPendingWalletRegistrationCommit({pending:y,ecdsaContinuity:[],authority:C.authority,foundingAuthority:{authority:C.foundingAuthority,authMethod:C.foundingAuthMethod},request:{operation:`near_provisioning`,registrationCeremonyId:l.registrationCeremonyId,idempotencyKey:v,walletId:C.walletId,walletAuthMethodId:C.foundingAuthMethod.walletAuthMethodId},walletSessionPublication:{kind:`issued`,walletSession:w.walletSession,operationCredential:w.operationCredential},registration:M});dr.acceptRegistrationSession(c,w);let te=ee.signerActivations[1];if(!te||te.signerSlot!==C.ed25519.signerSlot)throw Error(`Ed25519 Yao registration persisted a different signer slot`);i.markNearStage(l.registrationCeremonyId,`near_only.publication`);let N=await yh({signingEngine:t.signingEngine,ceremonyId:l.registrationCeremonyId,input:Zc({session:w,ceremonyId:l.registrationCeremonyId,walletId:String(C.walletId),relayerUrl:c,prfFirstB64u:f.prfFirstB64u,preparedServerSeal:{preparationId:s.preparationId,...C.sessionSeal},restore:{rpId:T.rpId,nearAccountId:String(E),nearEd25519SigningKeyId:C.ed25519.nearEd25519SigningKeyId,relayerKeyId:C.ed25519.relayerKeyId,participantIds:C.ed25519.participantIds,signerSlot:C.ed25519.signerSlot,credentialIdB64u:T.credentialIdB64u,materialActivation:er(k)}})});if(N.kind===`failed`)throw N.error;if(i.markNearStage(l.registrationCeremonyId,`near_only.session_hydration`),await _h({signingEngine:t.signingEngine,sessionAuthority:{record:w.walletSession,operationCredential:w.operationCredential},metadata:k,material:A,materialFacts:O,envelope:Rp(g.commitPayload),ownedFactorSecret:j(f.prfFirstB64u),rpId:T.rpId,credentialIdB64u:T.credentialIdB64u,passkeyPrfFirstB64u:f.prfFirstB64u,relayerUrl:c}),i.markNearStage(l.registrationCeremonyId,`near_only.material_activation`),await Bp({signingEngine:t.signingEngine,commit:g.commitPayload,passkeyPrfFirstB64u:f.prfFirstB64u,walletId:String(C.walletId),walletAuthMethodId:String(C.foundingAuthMethod.walletAuthMethodId),walletSessionId:String(w.walletSessionId),expiresAtMs:w.expiresAtMs}),i.markNearStage(l.registrationCeremonyId,`near_only.export_capability`),await t.signingEngine.activateAuthenticatedWalletState({walletId:C.walletId,nearAccountId:E,signerSlot:C.ed25519.signerSlot,nearClient:t.nearClient}),$(r.onEvent,d,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),o!==null){let e=performance.now();Xa({callback:r.onTimingSpan,span:`registration.post_touch_id`,outcome:`success`,durationMs:e-o,traceContext:a}),Xa({callback:r.onTimingSpan,span:`frontend.wallet_ready`,outcome:`success`,durationMs:0,traceContext:a})}i.markNearStage(l.registrationCeremonyId,`near_only.wallet_ready`),Ya(qa({recorder:i,authMethod:`passkey`,signerSet:Da(e.signerPlan)}));let ne={success:!0,kind:`wallet_registered`,walletId:C.walletId,capabilities:[{kind:`near_ed25519`,accountProvisioning:C.accountProvisioning,resolvedAccount:C.resolvedAccount,nearEd25519SigningKeyId:qt(C.ed25519.nearEd25519SigningKeyId),operationalPublicKey:b,nearAccountId:L(C.ed25519.nearAccountId),transactionId:C.resolvedAccount.kind===`sponsored_named_account`?C.resolvedAccount.transactionHash:null}]};return Nh(t,ne,`passkey`),r.afterCall?.(!0,ne),ne}catch(e){let t=Om(e),n=xe(e,`registration`,i);o!==null&&Xa({callback:r.onTimingSpan,span:`registration.post_touch_id`,outcome:`failure`,durationMs:performance.now()-o,traceContext:a}),r.onError?.(km(n,t)),$(r.onEvent,i,{authMethod:`passkey`,phase:z.FAILED,status:`failed`,message:n,interaction:{kind:`passkey_create`,overlay:`hide`},error:{...t?{code:t}:{},message:n}});let s={success:!1,error:n,...t?{errorCode:t}:{}};return r.afterCall?.(!1),s}finally{s.kind===`preparing`&&(await s.result,await t.signingEngine.discardSigningSessionHydration({thresholdSessionId:s.thresholdSessionId,preparationId:s.preparationId}).catch(ah))}}async function Mh(e){let t=Kp(e.signerSelection),n=Fe(t);if(n){let r=Pe(t);if(r)return await kh({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 Ah({context:e.context,authMethod:e.authMethod,wallet:e.wallet,signerSelection:e.signerSelection,signerPlan:t,ed25519Selection:n,options:e.options,passkeyExecution:e.passkeyExecution})}return await jh({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=Pe(t);if(!r)throw Error(`Wallet registration requires an ECDSA signer branch`);return await kh({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 Nh(e,t,n){e.signingEngine.setWalletAuthenticated({kind:`authenticated`,walletId:t.walletId,authMethod:n})}async function Ph(e){try{return await Mh({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 Fh(e,t,n){try{$(e,t,n)}catch{}}function Ih(e,t){try{e?.(t)}catch{}}function Lh(e,t,n){try{t&&n?e?.(!0,n):e?.(!1)}catch{}}function Rh(e){let t=[];for(let n of e){let e=String(n.credentialId||``).trim();e&&t.push({id:e,type:`public-key`,transports:Am(n.transports)})}if(t.length===0)throw Error(`Wallet add-signer requires an existing passkey credential`);return t}function zh(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 Bh(e){if(e.started.intent.walletId!==e.walletId)throw Error(`Wallet add-signer start returned a different wallet`);if(await hr(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 Vh(e,t){return e.length===2&&t.length===2&&e[0]===t[0]&&e[1]===t[1]}function Hh(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=ke(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||!Vh(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 Uh(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 Wh(e){if(e.started.intent.signerSelection.mode!==`ed25519`)throw Error(`Wallet add-signer start returned a different signer branch`);let t=null,n=null,r=null;try{if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody Ed25519 add-signer requires WebAuthn authorization`);let i=await hf({kind:`verified_passkey_ed25519_yao_add_signer_input_v1`,verifiedIntent:{kind:`verified_passkey_ed25519_add_signer_intent_v1`,intent:Uh(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}}),a=Cc(e.started.ed25519.custodyEnvelope);if(!a.ok)throw Error(a.reason);r=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer;let o=await e.context.signingEngine.joinWalletCustodyNearEd25519KeySet({routing:{kind:`discovery`},preparation:{kind:`fresh`},custodyJson:a.custodyJson,factorSecret:r,nearEd25519SigningKeyId:i.request.application_binding.near_ed25519_signing_key_id,registrationCeremonyId:e.started.addSignerCeremonyId,admissionRequest:i.request,admissionReceipt:i.receipt,participantIds:i.request.participant_ids,routerOrigin:new URL(e.relayerUrl).origin,authorization:`Bearer ${String(e.intentResponse.addSignerIntentGrant)}`}),s=`ed25519:${Oe(o.metadata.registeredPublicKey)}`,c=await nr({relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:Sm(`wallet-ed25519-add-signer-finalize`),kind:`near_ed25519`,ed25519:{activationReference:o.activationReference},custodyKeySet:{kind:`near_ed25519_v1`,keyManifestDigestB64u:o.commitPayload.keyManifestDigestB64u,registeredPublicKeyB64u:A(o.metadata.registeredPublicKey)}});if(c.kind!==`near_ed25519`)throw Error(`Wallet add-signer finalize returned a different signer branch`);let l=Hh({finalized:c,started:e.started,walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u,clientPublicKey:s});Fh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let u=await e.context.signingEngine.finalizeWalletEd25519SignerRegistration({walletId:e.walletId,nearAccountId:L(l.ed25519.nearAccountId),nearEd25519SigningKeyId:l.ed25519.nearEd25519SigningKeyId,auth:{kind:`passkey`,credential:e.credential},signerSlot:l.ed25519.signerSlot,operationalPublicKey:s,relayerKeyId:l.ed25519.relayerKeyId,keyVersion:l.ed25519.keyVersion,participantIds:[...l.ed25519.participantIds]});if(u.signerSlot!==l.ed25519.signerSlot)throw Error(`Wallet add-signer persisted a different Ed25519 signer slot`);t=u.rollbackReceipt;let d=e.started.ed25519.admissionRequest,p=f(d.scope.threshold_session_id);if(!p.ok)throw Error(`Wallet add-signer threshold-session identity is invalid`);let m=o.metadata;return await e.context.signingEngine.persistWalletCustodyEd25519Material({binding:{kind:$e,applicationBindingDigestB64u:o.localMaterial.applicationBindingDigestB64u,registeredPublicKeyB64u:A(m.registeredPublicKey),participantIds:m.participantIds,stateEpoch:String(m.stateEpoch),walletId:String(l.walletId),nearAccountId:String(l.ed25519.nearAccountId),nearEd25519SigningKeyId:l.ed25519.nearEd25519SigningKeyId,signerSlot:l.ed25519.signerSlot,signingWorkerId:m.scope.signing_worker_id,signingWorkerVerifyingShareB64u:A(m.signingWorkerVerifyingShare)},sealed:{ciphertextB64u:o.localMaterial.b64u,nonceB64u:o.localMaterial.nonceB64u}}),n={nearAccountId:l.ed25519.nearAccountId,signerSlot:l.ed25519.signerSlot},await e.context.signingEngine.upsertEd25519YaoPublicCapabilityLaneReference({walletId:l.walletId,nearAccountId:L(l.ed25519.nearAccountId),thresholdSessionId:p.value,runtimePolicyScope:F(e.started.intent.runtimePolicyScope),materialActivation:er(m),auth:{kind:`passkey`,rpId:mt(e.rpId),credentialIdB64u:e.credentialIdB64u},nearEd25519SigningKeyId:qt(l.ed25519.nearEd25519SigningKeyId),signerSlot:l.ed25519.signerSlot}),t=null,Fh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_SUCCEEDED,status:`succeeded`}),{success:!0,kind:`wallet_signer_added`,walletId:l.walletId,capabilities:[{kind:`near_ed25519`,nearEd25519SigningKeyId:qt(l.ed25519.nearEd25519SigningKeyId),operationalPublicKey:s,nearAccountId:L(l.ed25519.nearAccountId)}]}}catch(r){let i=[];if(n)try{await e.context.signingEngine.deleteWalletCustodyEd25519Material({nearAccountId:n.nearAccountId,signerSlot:n.signerSlot})}catch(e){i.push(e instanceof Error?e.message:String(e))}if(t)try{await e.context.signingEngine.rollbackWalletEd25519SignerRegistration(t)}catch(e){i.push(e instanceof Error?e.message:String(e))}if(i.length>0){let e=r instanceof Error?r.message:String(r);throw Error(`${e}; add-signer cleanup failed: ${i.join(`; `)}`)}throw r}finally{r&&Fp(r)}}async function Gh(e){if(e.started.authorizationKind!==`webauthn_assertion`)throw Error(`Wallet custody ECDSA add-signer requires WebAuthn authorization`);let t=await Sd({walletId:e.walletId,rpId:e.rpId,credentialIdB64u:e.credentialIdB64u}),n=Uint8Array.from(j(e.passkeyPrfFirstB64u)).buffer,r;try{r=await Lc({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{Fp(n)}let i={relayerUrl:e.relayerUrl,walletId:e.walletId,addSignerCeremonyId:e.started.addSignerCeremonyId,idempotencyKey:Sm(`wallet-add-signer-finalize`),kind:`evm_family_ecdsa`,ecdsa:{expectedKeyHandles:[r.bootstrap.keyHandle]},custodyKeySet:r.custodyKeySet},a;try{a=await nr(i)}catch(e){if(!(e instanceof TypeError))throw e;a=await nr(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 Rc({context:e.context,pending:r});Fh(e.onEvent,e.eventAccountId,{authMethod:`passkey`,phase:z.STEP_08_STORAGE_PERSIST_STARTED,status:`running`});let l=await e.context.signingEngine.finalizeWalletRegistrationEcdsaSessions({walletId:R(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}),Fh(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 Kh(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 Wh({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 Gh({context:e.input.context,walletId:e.input.walletId,rpId:e.input.rpId,relayerUrl:e.input.relayerUrl,intentResponse:e.input.intentResponse,credential:e.input.credential,credentialIdB64u:e.input.credentialIdB64u,passkeyPrfFirstB64u:e.input.passkeyPrfFirstB64u,eventAccountId:e.input.eventAccountId,onEvent:e.input.onEvent,started:e.started});default:return q(e.signerSelection)}}async function qh(e){let{context:t,signerSelection:n}=e,r=e.options||{},i=Kt(String(e.walletId||``).trim()),a=Dm(String(i)),o=gp(String(e.rpId||``).trim());Fh(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=bd(t.configs);if(!s)throw Error(`addSigner requires registration.publishableKey and registration.projectEnvironmentId`);let c=await Yn({relayerUrl:e,walletId:i,request:{walletId:i,rpId:o,signerSelection:n},auth:{publishableKey:s.publishableKey,environmentId:s.projectEnvironmentId}});if(await hr(c.intent)!==c.addSignerIntentDigestB64u)throw Error(`Add-signer intent digest mismatch`);Fh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_STARTED,status:`waiting_for_user`,interaction:{kind:`passkey_assert`,overlay:`show`}});let l=Rh(await B.listProfileAuthenticators(String(i))),u=await t.signingEngine.getAuthenticationCredentialsSerialized({subjectId:String(i),challengeB64u:c.addSignerIntentDigestB64u,allowCredentials:l,includeSecondPrfOutput:!1}),d=zh(u,l),f=gl(u,`Wallet add-signer authorization`);Fh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_04_PASSKEY_CREATE_SUCCEEDED,status:`succeeded`,interaction:{kind:`passkey_assert`,overlay:`hide`}});let p=await Bn({relayerUrl:e,walletId:i,addSignerIntentGrant:c.addSignerIntentGrant,addSignerIntentDigestB64u:c.addSignerIntentDigestB64u,intent:c.intent,auth:{kind:`webauthn_assertion`,rpId:o,credential:Rn(u),expectedChallengeDigestB64u:c.addSignerIntentDigestB64u}});await Bh({started:p,walletId:i,expectedDigestB64u:c.addSignerIntentDigestB64u});let m=await Kh({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 Fh(r.onEvent,a,{authMethod:`passkey`,phase:z.STEP_11_COMPLETED,status:`succeeded`}),Lh(r.afterCall,!0,m),m}catch(e){let t=Om(e),n=xe(e,`registration`,a);Ih(r.onError,km(n,t)),Fh(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 Lh(r.afterCall,!1),i}}export{eu as $,Wr as $t,Sd as A,Bs as At,Ou as B,yo as Bt,uf as C,$s as Ct,zd as D,cc as Dt,Md as E,ic as Et,vd as F,Us as Ft,ou as G,fa as Gt,pu as H,eo as Ht,ud as I,Is as It,ru as J,oa as Jt,tu as K,ua as Kt,cd as L,Fs as Lt,bd as M,As as Mt,gd as N,ks as Nt,Rd as O,uc as Ot,hd as P,Ds as Pt,Xl as Q,$i as Qt,ld as R,Ms as Rt,_f as S,bc as St,rf as T,Xs as Tt,gu as U,to as Ut,Du as V,so as Vt,hu as W,da as Wt,Zl as X,ki as Xt,au as Y,sa as Yt,Ql as Z,ia as Zt,Ef as _,Cc as _t,Ph as a,Ul as at,Kf as b,gc as bt,hp as c,Pl as ct,pp as d,El as dt,Pr as en,Yl as et,fp as f,Tl as ft,Qf as g,Vc as gt,Xf as h,gl as ht,bm as i,Mr as in,Al as it,xd as j,js as jt,wd as k,Hs as kt,mp as l,Wl as lt,ap as m,hl as mt,vm as n,Lr as nn,kl as nt,Mp as o,Nl as ot,rp as p,_l as pt,iu as q,la as qt,_m as r,jr as rn,Dl as rt,ym as s,Hl as st,qh as t,Nr as tn,Kl as tt,dp as u,wl as ut,qf as v,pc as vt,sf as w,Zs as wt,zf as x,hc as xt,Rf as y,mc as yt,od as z,es as zt};
|